feat: get_alldata_with_batch添加内容
This commit is contained in:
parent
dd0d6751c1
commit
5857b77aea
|
@ -12,7 +12,7 @@ import decimal
|
|||
import logging
|
||||
myLogger = logging.getLogger('log')
|
||||
|
||||
def get_alldata_with_batch_and_store(batch: str):
|
||||
def get_alldata_with_batch_and_store(batch: str, need_update_time=True):
|
||||
"""
|
||||
获取某个批次的整体生产数据并保存
|
||||
"""
|
||||
|
@ -29,6 +29,7 @@ def get_alldata_with_batch_and_store(batch: str):
|
|||
bobj, _ = BatchSt.objects.get_or_create(batch=batch, defaults={
|
||||
"last_time": last_time
|
||||
})
|
||||
if need_update_time:
|
||||
bobj.last_time = last_time
|
||||
bobj.data = json.loads(json.dumps(data, cls=MyJSONEncoder))
|
||||
bobj.save()
|
||||
|
@ -278,23 +279,6 @@ def get_alldata_with_batch(batch: str):
|
|||
myLogger.error(f"六车间_{mgroup_name}_合格率decimal.InvalidOperation-{data}")
|
||||
data[f'六车间_{mgroup_name}_合格率'] = 0
|
||||
|
||||
# 六车间入库/检验数据
|
||||
# mioitem6_qs2 = MIOItem.objects.filter(mio__belong_dept=dept6, mio__type="do_in",
|
||||
# batch=batch,
|
||||
# mio__submit_time__isnull=False)
|
||||
# if mioitem6_qs2.exists():
|
||||
# data["六车间生产入库_日期"] = []
|
||||
# for item in mioitem6_qs:
|
||||
# data["六车间生产入库_日期"].append(item.mio.inout_date)
|
||||
# for field in mioitem_count_fields:
|
||||
# if getattr(item, field) > 0:
|
||||
# if f'六车间生产入库_{field}' not in data:
|
||||
# data[f'六车间生产入库_{field}'] = getattr(item, field)
|
||||
# else:
|
||||
# data[f'六车间生产入库_{field}'] += getattr(item, field)
|
||||
# data["六车间生产入库_日期"] = list(set(data["六车间生产入库_日期"]))
|
||||
# data["六车间生产入库_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["六车间生产入库_日期"]])
|
||||
|
||||
ftestwork_count_fields = FtestWork.count_fields()
|
||||
# 六车间中检数据
|
||||
ftestwork_qs = FtestWork.objects.filter(batch=batch, type="process")
|
||||
|
@ -325,6 +309,35 @@ def get_alldata_with_batch(batch: str):
|
|||
data['六车间中检_检验人'] = list(set(data['六车间中检_检验人']))
|
||||
data['六车间中检_检验人'] = ";".join([item.name for item in data['六车间中检_检验人']])
|
||||
|
||||
# 六车间入库/检验数据
|
||||
mioitem6_qs2 = MIOItem.objects.filter(mio__belong_dept=dept6, mio__type="do_in",
|
||||
batch=batch,
|
||||
mio__submit_time__isnull=False)
|
||||
if mioitem6_qs2.exists():
|
||||
data["六车间生产入库_日期"] = []
|
||||
data["六车间生产入库_检验日期"] = []
|
||||
data["六车间生产入库_检验人"] = []
|
||||
for item in mioitem6_qs:
|
||||
data["六车间生产入库_日期"].append(item.mio.inout_date)
|
||||
if item.test_date:
|
||||
data["六车间生产入库_检验日期"].append(item.test_date)
|
||||
|
||||
for field in mioitem_count_fields:
|
||||
if getattr(item, field) > 0:
|
||||
if f'六车间生产入库_{field}' not in data:
|
||||
data[f'六车间生产入库_{field}'] = getattr(item, field)
|
||||
else:
|
||||
data[f'六车间生产入库_{field}'] += getattr(item, field)
|
||||
data["六车间生产入库_日期"] = list(set(data["六车间生产入库_日期"]))
|
||||
data["六车间生产入库_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["六车间生产入库_日期"]])
|
||||
data["六车间生产入库_检验日期"] = list(set(data["六车间生产入库_检验日期"]))
|
||||
data["六车间生产入库_检验日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["六车间生产入库_检验日期"]])
|
||||
try:
|
||||
data['六车间生产入库_合格率'] = round((data['六车间生产入库_count']-data['六车间生产入库_count_notok ']) * 100/ data['六车间生产入库_count'], 1)
|
||||
except decimal.InvalidOperation:
|
||||
myLogger.error("六车间生产入库_合格率decimal.InvalidOperation-{data}")
|
||||
data['六车间生产入库_合格率'] = 0
|
||||
|
||||
# 成品检验数据
|
||||
ftestwork_qs = FtestWork.objects.filter(batch=batch, type="prod")
|
||||
if ftestwork_qs.exists():
|
||||
|
@ -354,9 +367,27 @@ def get_alldata_with_batch(batch: str):
|
|||
data['成品检验_检验人'] = list(set(data['成品检验_检验人']))
|
||||
data['成品检验_检验人'] = ";".join([item.name for item in data['成品检验_检验人']])
|
||||
data['成品检验_合格率'] = round(data['成品检验_count_ok'] * 100/ data['成品检验_count'], 1)
|
||||
if data["六车间领料_count"]:
|
||||
data["六车间_批次生产合格率"] = round(data["成品检验_count_ok"] * 100/ data["六车间领料_count"], 1)
|
||||
if data["棒料成型_count_real"]:
|
||||
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)
|
||||
if mioitem_qs.exists():
|
||||
data["销售发货_日期"] = []
|
||||
data['销售发货_执行人'] = []
|
||||
data['销售发货_count'] = 0
|
||||
for item in mioitem_qs:
|
||||
last_time = item.mio.update_time if item.mio.update_time > last_time else last_time
|
||||
if item.mio.inout_date:
|
||||
data["销售发货_日期"].append(item.mio.inout_date)
|
||||
data['销售发货_执行人'].append(item.mio.user)
|
||||
data['销售发货_count']+= item.count
|
||||
if data["棒料成型_count_real"]:
|
||||
data["七车间_批次发货合格率"] = round(data["销售发货_count"] * 100/ data["棒料成型_count_real"], 1)
|
||||
if data["六车间领料_count"]:
|
||||
data["六车间_批次发货合格率"] = round(data["销售发货_count"] * 100/ data["六车间领料_count"], 1)
|
||||
|
||||
return last_time, data
|
||||
|
Loading…
Reference in New Issue