feat: 光子批次统计增加组合件信息3

This commit is contained in:
caoqianming 2025-08-05 11:24:36 +08:00
parent 24a389d566
commit 94b0719f38
1 changed files with 37 additions and 36 deletions

View File

@ -419,42 +419,39 @@ def main(batch: str, mgroup_obj=None):
data["六车间生产入库_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["六车间生产入库_日期"]]) data["六车间生产入库_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["六车间生产入库_日期"]])
# 成品检验数据 # 成品检验数据
ftestwork_qs = FtestWork.objects.filter(batch=batch, type="prod") # ftestwork_qs = FtestWork.objects.filter(batch=batch, type="prod")
if ftestwork_qs.exists(): # if ftestwork_qs.exists():
data["成品检验_日期"] = [] # data["成品检验_日期"] = []
data['成品检验_检验人'] = [] # data['成品检验_检验人'] = []
for item in ftestwork_qs: # for item in ftestwork_qs:
if material_start is None: # if material_start is None:
material_start = item.material # material_start = item.material
if item.test_date: # if item.test_date:
data["成品检验_日期"].append(item.test_date) # data["成品检验_日期"].append(item.test_date)
if item.test_user: # if item.test_user:
data['成品检验_检验人'].append(item.test_user) # data['成品检验_检验人'].append(item.test_user)
for field in ftestwork_count_fields: # for field in ftestwork_count_fields:
if field == 'count_notok_json': # if field == 'count_notok_json':
for k, v in getattr(item, field).items(): # for k, v in getattr(item, field).items():
if f'成品检验_{k}' not in data: # if f'成品检验_{k}' not in data:
data[f'成品检验_{k}'] = v # data[f'成品检验_{k}'] = v
else: # else:
data[f'成品检验_{k}'] += v # data[f'成品检验_{k}'] += v
else: # else:
if getattr(item, field) > 0 or field in ["count", "count_ok"]: # if getattr(item, field) > 0 or field in ["count", "count_ok"]:
if f'成品检验_{field}' not in data: # if f'成品检验_{field}' not in data:
data[f'成品检验_{field}'] = getattr(item, field) # data[f'成品检验_{field}'] = getattr(item, field)
else: # else:
data[f'成品检验_{field}'] += getattr(item, field) # data[f'成品检验_{field}'] += getattr(item, field)
data["成品检验_日期"] = list(set(data["成品检验_日期"])) # data["成品检验_日期"] = list(set(data["成品检验_日期"]))
data["成品检验_日期"].sort() # data["成品检验_日期"].sort()
data["成品检验_小日期"] = max(data["成品检验_日期"]).strftime("%Y-%m-%d") # data["成品检验_小日期"] = max(data["成品检验_日期"]).strftime("%Y-%m-%d")
data["成品检验_大日期"] = min(data["成品检验_日期"]).strftime("%Y-%m-%d") # data["成品检验_大日期"] = min(data["成品检验_日期"]).strftime("%Y-%m-%d")
data["成品检验_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["成品检验_日期"]]) # data["成品检验_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["成品检验_日期"]])
data['成品检验_检验人'] = list(set(data['成品检验_检验人'])) # data['成品检验_检验人'] = list(set(data['成品检验_检验人']))
data['成品检验_检验人'] = ";".join([item.name for item in data['成品检验_检验人']]) # data['成品检验_检验人'] = ";".join([item.name for item in data['成品检验_检验人']])
data['成品检验_合格率'] = round(data['成品检验_count_ok'] * 100/ data['成品检验_count'], 1) # 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)
# 销售发货数据 # 销售发货数据
mioitem_qs = MIOItem.objects.filter(batch=batch, mio__type="sale_out", mio__submit_time__isnull=False) 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["销售发货_小日期"] = max(data["销售发货_日期"]).strftime("%Y-%m-%d")
data["销售发货_大日期"] = min(data["销售发货_日期"]).strftime("%Y-%m-%d") data["销售发货_大日期"] = min(data["销售发货_日期"]).strftime("%Y-%m-%d")
data["销售发货_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["销售发货_日期"]]) 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) res = get_f_l_date(data)