factory/apps/qm/services.py

42 lines
1.3 KiB
Python

from apps.qm.models import FtestWork
from apps.wpm.models import WMaterial
from apps.system.models import User
from rest_framework.exceptions import ParseError
from django.utils import timezone
def ftestwork_submit(ins:FtestWork, user: User):
wm:WMaterial = ins.wm
# 更新对应的车间库存
wm.count = wm.count - ins.count_notok
if wm.count >= 0:
# 已检测的数量
wm.count_xtest = wm.count_xtest + ins.count
wm.save()
else:
raise ParseError("车间库存不足")
# 生成合格的
count_ok = ins.count_ok
if count_ok > 0:
wm_ok = WMaterial()
wm_ok.material = wm.material
wm_ok.count = count_ok
wm_ok.batch = wm.batch
wm_ok.mgroup = wm.mgroup
wm_ok.belong_dept = wm.belong_dept
wm_ok.save()
# 生成不合格的
count_notok_json = ins.count_notok_json
for k, v in count_notok_json.items():
if v > 0:
wm_n = WMaterial()
wm_n.material = wm.material
wm_n.count = v
wm_n.batch = wm.batch
wm_n.mgroup = wm.mgroup
wm_n.belong_dept = wm.belong_dept
wm_n.notok_sign = k.replace('count_n_', '')
wm_n.save()
ins.submit_user = user
ins.submit_time = timezone.now()
ins.save()