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)