From 94b0719f38dd103c5ebea6d93d3087f6f3cd00b4 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 5 Aug 2025 11:24:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=89=E5=AD=90=E6=89=B9=E6=AC=A1?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=A2=9E=E5=8A=A0=E7=BB=84=E5=90=88=E4=BB=B6?= =?UTF-8?q?=E4=BF=A1=E6=81=AF3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/scripts/batch_gzerp.py | 73 +++++++++++++++++---------------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/apps/wpm/scripts/batch_gzerp.py b/apps/wpm/scripts/batch_gzerp.py index 83c3b596..82fc4d2f 100644 --- a/apps/wpm/scripts/batch_gzerp.py +++ b/apps/wpm/scripts/batch_gzerp.py @@ -419,42 +419,39 @@ def main(batch: str, mgroup_obj=None): data["六车间生产入库_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["六车间生产入库_日期"]]) # 成品检验数据 - ftestwork_qs = FtestWork.objects.filter(batch=batch, type="prod") - if ftestwork_qs.exists(): - data["成品检验_日期"] = [] - data['成品检验_检验人'] = [] - for item in ftestwork_qs: - if material_start is None: - material_start = item.material - if item.test_date: - data["成品检验_日期"].append(item.test_date) - if item.test_user: - data['成品检验_检验人'].append(item.test_user) - for field in ftestwork_count_fields: - if field == 'count_notok_json': - for k, v in getattr(item, field).items(): - if f'成品检验_{k}' not in data: - data[f'成品检验_{k}'] = v - else: - data[f'成品检验_{k}'] += v - else: - if getattr(item, field) > 0 or field in ["count", "count_ok"]: - if f'成品检验_{field}' not in data: - data[f'成品检验_{field}'] = getattr(item, field) - else: - data[f'成品检验_{field}'] += getattr(item, field) - data["成品检验_日期"] = list(set(data["成品检验_日期"])) - data["成品检验_日期"].sort() - data["成品检验_小日期"] = max(data["成品检验_日期"]).strftime("%Y-%m-%d") - data["成品检验_大日期"] = min(data["成品检验_日期"]).strftime("%Y-%m-%d") - data["成品检验_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["成品检验_日期"]]) - data['成品检验_检验人'] = list(set(data['成品检验_检验人'])) - data['成品检验_检验人'] = ";".join([item.name for item in data['成品检验_检验人']]) - data['成品检验_合格率'] = round(data['成品检验_count_ok'] * 100/ data['成品检验_count'], 1) - if getattr(data, "六车间领料_count", 0) > 0: - data["六车间_批次生产合格率"] = round(data["成品检验_count_ok"] * 100/ data["六车间领料_count"], 1) - if getattr(data, "棒料成型_count_real", 0) > 0: - data["七车间_批次应出合格率"] = round(data["成品检验_count_ok"] * 100/ data["棒料成型_count_real"], 1) + # ftestwork_qs = FtestWork.objects.filter(batch=batch, type="prod") + # if ftestwork_qs.exists(): + # data["成品检验_日期"] = [] + # data['成品检验_检验人'] = [] + # for item in ftestwork_qs: + # if material_start is None: + # material_start = item.material + # if item.test_date: + # data["成品检验_日期"].append(item.test_date) + # if item.test_user: + # data['成品检验_检验人'].append(item.test_user) + # for field in ftestwork_count_fields: + # if field == 'count_notok_json': + # for k, v in getattr(item, field).items(): + # if f'成品检验_{k}' not in data: + # data[f'成品检验_{k}'] = v + # else: + # data[f'成品检验_{k}'] += v + # else: + # if getattr(item, field) > 0 or field in ["count", "count_ok"]: + # if f'成品检验_{field}' not in data: + # data[f'成品检验_{field}'] = getattr(item, field) + # else: + # data[f'成品检验_{field}'] += getattr(item, field) + # data["成品检验_日期"] = list(set(data["成品检验_日期"])) + # data["成品检验_日期"].sort() + # data["成品检验_小日期"] = max(data["成品检验_日期"]).strftime("%Y-%m-%d") + # data["成品检验_大日期"] = min(data["成品检验_日期"]).strftime("%Y-%m-%d") + # data["成品检验_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["成品检验_日期"]]) + # data['成品检验_检验人'] = list(set(data['成品检验_检验人'])) + # data['成品检验_检验人'] = ";".join([item.name for item in data['成品检验_检验人']]) + # data['成品检验_合格率'] = round(data['成品检验_count_ok'] * 100/ data['成品检验_count'], 1) + # 销售发货数据 mioitem_qs = MIOItem.objects.filter(batch=batch, mio__type="sale_out", mio__submit_time__isnull=False) @@ -500,6 +497,10 @@ def main(batch: str, mgroup_obj=None): data["销售发货_小日期"] = max(data["销售发货_日期"]).strftime("%Y-%m-%d") data["销售发货_大日期"] = min(data["销售发货_日期"]).strftime("%Y-%m-%d") data["销售发货_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["销售发货_日期"]]) + if getattr(data, "六车间领料_count", 0) > 0: + data["六车间_批次生产合格率"] = round(data["销售发货_count"] * 100/ data["六车间领料_count"], 1) + if getattr(data, "棒料成型_count_real", 0) > 0: + data["七车间_批次应出合格率"] = round(data["销售发货_count"] * 100/ data["棒料成型_count_real"], 1) res = get_f_l_date(data)