feat: batch_gxerp添加加工前缺陷

This commit is contained in:
caoqianming 2025-06-10 10:05:53 +08:00
parent 438d06af2f
commit 5e0c515929
1 changed files with 14 additions and 1 deletions

View File

@ -25,10 +25,17 @@ def main(batch: str):
if mlogb1_qs.exists():
data[f"{mgroup_name}_日期"] = []
data[f"{mgroup_name}_操作人"] = []
data[f"{mgroup_name}_count_use"] = 0
data[f"{mgroup_name}_count_real"] = 0
data[f"{mgroup_name}_count_ok"] = 0
data[f"{mgroup_name}_count_ok_full"] = 0
mlogb_q_ids = []
for item in mlogb1_qs:
# 找到对应的输入
mlogb_from:Mlogb = item.mlogb_from
if mlogb_from:
mlogb_q_ids.append(mlogb_from.id)
data[f"{mgroup_name}_count_use"] += mlogb_from.count_use
if item.mlog.handle_user:
data[f"{mgroup_name}_操作人"].append(item.mlog.handle_user)
if item.mlog.handle_date:
@ -48,6 +55,11 @@ def main(batch: str):
data[f"{mgroup_name}_合格率"] = 0
mlogbd1_qs = MlogbDefect.objects.filter(mlogb__in=mlogb1_qs, count__gt=0).values("defect__name").annotate(total=Sum("count"))
mlogbd1_q_qs = MlogbDefect.objects.filter(mlogb__id__in=mlogb_q_ids, count__gt=0).values("defect__name").annotate(total=Sum("count"))
for item in mlogbd1_q_qs:
data[f"{mgroup_name}_加工前_缺陷_{item['defect__name']}"] = item["total"]
data[f"{mgroup_name}_加工前_缺陷_{item['defect__name']}_比例"] = round((item["total"] / data[f"{mgroup_name}_count_use"])*100, 2)
for item in mlogbd1_qs:
data[f"{mgroup_name}_缺陷_{item['defect__name']}"] = item["total"]
@ -58,6 +70,7 @@ def main(batch: str):
data[f"{mgroup_name}_操作人"] = list(set(data[f"{mgroup_name}_操作人"]))
data[f"{mgroup_name}_操作人"] = ";".join([item.name for item in data[f"{mgroup_name}_操作人"]])
mlogb2_qs = Mlogb.objects.filter(mlog__submit_time__isnull=False, material_out__isnull=False, mlog__mgroup__name="外观检验", mlog__is_fix=True, batch=batch)
if mlogb2_qs.exists():
data["外观检验_返修_日期"] = []
@ -72,7 +85,7 @@ def main(batch: str):
data["外观检验_返修_日期"].append(item.mlog.handle_date)
data["外观检验_返修_count_real"] += item.count_real
data["外观检验_返修_count_ok"] += item.count_ok
data["外观检验_返修_count_ok_full"] += item.count_ok_full
data["外观检验_返修_count_ok_full"] += item.count_ok_full if item.count_ok_full else 0
data["外观检验_返修_日期"] = list(set(data["外观检验_返修_日期"]))
data["外观检验_返修_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["外观检验_返修_日期"]])