From 5e0c515929cbd557db3c89effc5274d1418e01ab Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 10 Jun 2025 10:05:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20batch=5Fgxerp=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E5=89=8D=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/scripts/batch_gxerp.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/wpm/scripts/batch_gxerp.py b/apps/wpm/scripts/batch_gxerp.py index 8bff0645..34065099 100644 --- a/apps/wpm/scripts/batch_gxerp.py +++ b/apps/wpm/scripts/batch_gxerp.py @@ -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["外观检验_返修_日期"]])