Merge branch 'master' of https://e.coding.net/ctcdevteam/ehs/ehs_server
This commit is contained in:
commit
42d8dced09
|
@ -7,6 +7,7 @@ from apps.wpm.models import SfLog, WMaterial
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
class NotOkOption(models.TextChoices):
|
class NotOkOption(models.TextChoices):
|
||||||
|
# 不合格项
|
||||||
zw = "zw", _("炸纹")
|
zw = "zw", _("炸纹")
|
||||||
tw = "tw", _("条纹")
|
tw = "tw", _("条纹")
|
||||||
qp = "qp", _("气泡")
|
qp = "qp", _("气泡")
|
||||||
|
@ -35,7 +36,6 @@ class NotOkOption(models.TextChoices):
|
||||||
thhs = "thhs", _("退火后碎")
|
thhs = "thhs", _("退火后碎")
|
||||||
swen = "swen", _("水纹")
|
swen = "swen", _("水纹")
|
||||||
bb = "bb", _("崩边")
|
bb = "bb", _("崩边")
|
||||||
xbb = "xbb", _("小崩边")
|
|
||||||
wm = "wm", _("雾面")
|
wm = "wm", _("雾面")
|
||||||
md = "md", _("麻点")
|
md = "md", _("麻点")
|
||||||
xh = "xh", _("线痕")
|
xh = "xh", _("线痕")
|
||||||
|
@ -55,13 +55,30 @@ class NotOkOption(models.TextChoices):
|
||||||
txd = "txd", _("同心度不良")
|
txd = "txd", _("同心度不良")
|
||||||
hd = "hd", _("厚度不良")
|
hd = "hd", _("厚度不良")
|
||||||
z = "z", _("脏")
|
z = "z", _("脏")
|
||||||
|
lg = "lg", _("漏光")
|
||||||
|
ccx = "ccx", _("尺寸小")
|
||||||
|
|
||||||
|
# 合格B类项
|
||||||
zhg = "zhg", _("准合格")
|
zhg = "zhg", _("准合格")
|
||||||
yz = "yz", _("圆准")
|
yz = "yz", _("圆准")
|
||||||
|
xbb = "xbb", _("小崩边")
|
||||||
|
qsw = "qsw", _("浅水纹")
|
||||||
|
qhm = "qhm", _("浅划麻")
|
||||||
|
|
||||||
jgqbl = "jgqbl", _("加工前不良")
|
jgqbl = "jgqbl", _("加工前不良")
|
||||||
|
|
||||||
qt = "qt", _("其它")
|
qt = "qt", _("其它")
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_extra_info(cls, value):
|
||||||
|
extra_info = {
|
||||||
|
"zhg": {"cate": "ok_b"},
|
||||||
|
"yz": {"cate": "ok_b"},
|
||||||
|
"xbb": {"cate": "ok_b"},
|
||||||
|
"qsw": {"cate": "ok_b"},
|
||||||
|
"qhm": {"cate": "ok_b"}
|
||||||
|
}
|
||||||
|
return extra_info.get(value, {"cate": "notok"})
|
||||||
|
|
||||||
FTEST_TYPE_CHOICES = (
|
FTEST_TYPE_CHOICES = (
|
||||||
('first', '首件检验'),
|
('first', '首件检验'),
|
||||||
('process', '过程检验'),
|
('process', '过程检验'),
|
||||||
|
|
|
@ -3,6 +3,8 @@ from apps.wpm.models import WMaterial
|
||||||
from apps.system.models import User
|
from apps.system.models import User
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
from apps.wf.models import Ticket
|
||||||
|
from apps.qm.models import NotOkOption
|
||||||
|
|
||||||
|
|
||||||
def ftestwork_submit(ins:FtestWork, user: User):
|
def ftestwork_submit(ins:FtestWork, user: User):
|
||||||
|
@ -17,8 +19,15 @@ def ftestwork_submit(ins:FtestWork, user: User):
|
||||||
wm.save()
|
wm.save()
|
||||||
else:
|
else:
|
||||||
raise ParseError("超过待检数量")
|
raise ParseError("超过待检数量")
|
||||||
# 生成合格的
|
# 寻找count_notok_json中的b类不合格不进行处理
|
||||||
count_ok = ins.count_ok
|
count_notok_json = ins.count_notok_json
|
||||||
|
need_move_count = 0
|
||||||
|
for k, v in count_notok_json.items():
|
||||||
|
if v > 0:
|
||||||
|
notok_sign = k.replace('count_n_', '')
|
||||||
|
if NotOkOption.get_extra_info(notok_sign)['cate'] == 'ok_b': # b类不合格在后续处理
|
||||||
|
need_move_count = need_move_count + v
|
||||||
|
count_ok = ins.count_ok - need_move_count
|
||||||
if count_ok > 0:
|
if count_ok > 0:
|
||||||
wm, new_create = WMaterial.objects.get_or_create(
|
wm, new_create = WMaterial.objects.get_or_create(
|
||||||
material=wm.material,
|
material=wm.material,
|
||||||
|
@ -26,18 +35,15 @@ def ftestwork_submit(ins:FtestWork, user: User):
|
||||||
mgroup=wm.mgroup,
|
mgroup=wm.mgroup,
|
||||||
belong_dept=wm.belong_dept,
|
belong_dept=wm.belong_dept,
|
||||||
state=WMaterial.WM_OK,
|
state=WMaterial.WM_OK,
|
||||||
|
notok_sign=None,
|
||||||
defaults={
|
defaults={
|
||||||
'count': count_ok,
|
'count': count_ok,
|
||||||
'material': wm.material,
|
|
||||||
'batch': wm.batch,
|
|
||||||
'mgroup': wm.mgroup,
|
|
||||||
'belong_dept': wm.belong_dept,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
if not new_create:
|
if not new_create:
|
||||||
wm.count = wm.count + count_ok
|
wm.count = wm.count + count_ok
|
||||||
wm.save()
|
wm.save()
|
||||||
else:
|
else: # 如果直接对工段库存检验 , 则直接扣减不合格数
|
||||||
wm.count = wm.count - ins.count_notok
|
wm.count = wm.count - ins.count_notok
|
||||||
if wm.count >= 0:
|
if wm.count >= 0:
|
||||||
wm.save()
|
wm.save()
|
||||||
|
@ -49,13 +55,16 @@ def ftestwork_submit(ins:FtestWork, user: User):
|
||||||
for k, v in count_notok_json.items():
|
for k, v in count_notok_json.items():
|
||||||
if v > 0:
|
if v > 0:
|
||||||
notok_sign = k.replace('count_n_', '')
|
notok_sign = k.replace('count_n_', '')
|
||||||
|
astate = WMaterial.WM_NOTOK
|
||||||
|
if NotOkOption.get_extra_info(notok_sign)['cate'] == 'ok_b':
|
||||||
|
astate = WMaterial.WM_OK
|
||||||
wm_n, new_create = WMaterial.objects.get_or_create(
|
wm_n, new_create = WMaterial.objects.get_or_create(
|
||||||
material=wm.material,
|
material=wm.material,
|
||||||
batch=wm.batch,
|
batch=wm.batch,
|
||||||
mgroup=wm.mgroup,
|
mgroup=wm.mgroup,
|
||||||
belong_dept=wm.belong_dept,
|
belong_dept=wm.belong_dept,
|
||||||
notok_sign=notok_sign,
|
notok_sign=notok_sign,
|
||||||
state=WMaterial.WM_NOTOK,
|
state=astate,
|
||||||
defaults={
|
defaults={
|
||||||
'count': v,
|
'count': v,
|
||||||
'material': wm.material,
|
'material': wm.material,
|
||||||
|
@ -63,7 +72,7 @@ def ftestwork_submit(ins:FtestWork, user: User):
|
||||||
'mgroup': wm.mgroup,
|
'mgroup': wm.mgroup,
|
||||||
'belong_dept': wm.belong_dept,
|
'belong_dept': wm.belong_dept,
|
||||||
'notok_sign': notok_sign,
|
'notok_sign': notok_sign,
|
||||||
'state': WMaterial.WM_NOTOK,
|
'state': astate,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
if not new_create:
|
if not new_create:
|
||||||
|
@ -72,3 +81,6 @@ def ftestwork_submit(ins:FtestWork, user: User):
|
||||||
ins.submit_user = user
|
ins.submit_user = user
|
||||||
ins.submit_time = timezone.now()
|
ins.submit_time = timezone.now()
|
||||||
ins.save()
|
ins.save()
|
||||||
|
|
||||||
|
def bind_ftestwork(ticket: Ticket, transition, new_ticket_data: dict):
|
||||||
|
pass
|
|
@ -29,7 +29,7 @@ class NotOkOptionView(APIView):
|
||||||
|
|
||||||
获取不合格项
|
获取不合格项
|
||||||
"""
|
"""
|
||||||
res1 = [{'value': i.value, 'label': i.label} for i in NotOkOption]
|
res1 = [{'value': i.value, 'label': i.label, 'extra_info': i.get_extra_info(i.value)} for i in NotOkOption]
|
||||||
res2 = {i.value: i.label for i in NotOkOption}
|
res2 = {i.value: i.label for i in NotOkOption}
|
||||||
return Response({"res_list": res1, "res_dict": res2})
|
return Response({"res_list": res1, "res_dict": res2})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue