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["六车间生产入库_日期"]])
# 成品检验数据
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)