diff --git a/apps/qm/services.py b/apps/qm/services.py index ca5bab25..a6bb0577 100644 --- a/apps/qm/services.py +++ b/apps/qm/services.py @@ -24,7 +24,7 @@ def ftestwork_submit_validate(ins: FtestWork): def ftestwork_submit(ins:FtestWork, user: User): wm:WMaterial = ins.wm fwd_qs = FtestworkDefect.objects.filter(ftestwork=ins) - if ins.need_update_wm: + if wm and ins.need_update_wm: if ins.qct is None and not fwd_qs.exists(): if wm.state == WMaterial.WM_TEST: # 更新对应的车间库存 @@ -100,7 +100,7 @@ def ftestwork_submit(ins:FtestWork, user: User): else: wm:WMaterial = ins.wm # 此时调用了qct表 - for item in FtestworkDefect.objects.filter(ftestwork=ins): + for item in fwd_qs: item:FtestworkDefect = item if item.count > 0: wm.count = wm.count - item.count @@ -128,7 +128,7 @@ def ftestwork_submit(ins:FtestWork, user: User): if ins.mb: mb:MaterialBatch = ins.mb - for item in FtestworkDefect.objects.filter(ftestwork=ins): + for item in fwd_qs: item:FtestworkDefect = item if item.count > 0: mb.count = mb.count - item.count diff --git a/apps/qm/views.py b/apps/qm/views.py index 4e72a8e4..410bfd27 100644 --- a/apps/qm/views.py +++ b/apps/qm/views.py @@ -322,8 +322,8 @@ class FtestWorkViewSet(CustomModelViewSet): ins:FtestWork = self.get_object() if ins.ticket: raise ParseError('该检验工作存在审批!') - if ins.wm is None: - raise ParseError('该检验工作未关联车间库存') + if ins.wm is None or ins.mb is None: + raise ParseError('该检验工作未关联库存') if ins.submit_time is None: ftestwork_submit(ins, request.user) else: