diff --git a/apps/wpm/services.py b/apps/wpm/services.py index 35181ff9..8309a8ea 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -909,10 +909,6 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, wpr:Wpr = item.wpr Wpr.change_or_new(wpr=wpr, wm=wm_to, old_wm=wpr.wm, old_mb=wpr.mb) - # 存在一个bug,找不到原因,此处先添加拦截校验 - if Wpr.objects.filter(wm=wm_to).count() != wm_to.count: - raise ParseError("所到库存与实际个数不一致,操作失败") - handover.submit_user = user handover.submit_time = now if handover.recive_user is None: @@ -951,12 +947,16 @@ def handover_revert(handover:Handover): wm_to = item.wm_to if wm is None or wm_to is None: raise ParseError('该交接单不支持撤销2!') - wm.count = wm.count + item.count - wm.save() - wm_to.count = wm_to.count - item.count - if wm_to.count < 0: - raise ParseError('库存不足无法撤回!') - wm_to.save() + if wm == wm_to: + # 此时是自己交给自己,不需要做任何操作 + pass + else: + wm.count = wm.count + item.count + wm.save() + wm_to.count = wm_to.count - item.count + if wm_to.count < 0: + raise ParseError('库存不足无法撤回!') + wm_to.save() if material.tracking == Material.MA_TRACKING_SINGLE: handoverbws = Handoverbw.objects.filter(handoverb=item) if handoverbws.count() != item.count: