fix: do_in 可直接取用wm

This commit is contained in:
caoqianming 2025-11-17 13:57:10 +08:00
parent e7ebdb0e8e
commit 8b74d0b121
1 changed files with 21 additions and 18 deletions

View File

@ -160,9 +160,9 @@ def do_in(item: MIOItem):
for i in mias_list: for i in mias_list:
material, batch, rate = i material, batch, rate = i
new_count = rate * item.count # 假设 item.count 存在 new_count = rate * item.count # 假设 item.count 存在
action_list.append([material, batch, new_count, None]) action_list.append([material, batch, new_count, None, None])
else: else:
action_list = [[item.material, item.batch, item.count, defect]] action_list = [[item.material, item.batch, item.count, defect, item.wm]]
production_dept = None production_dept = None
@ -170,28 +170,31 @@ def do_in(item: MIOItem):
if is_zhj: if is_zhj:
xbatchs = [item.batch] xbatchs = [item.batch]
for al in action_list: for al in action_list:
xmaterial, xbatch, xcount, defect = al xmaterial, xbatch, xcount, defect, xwm = al
if xcount <= 0: if xcount <= 0:
raise ParseError("存在非正数!") raise ParseError("存在非正数!")
xbatchs.append(xbatch) xbatchs.append(xbatch)
if material.into_wm: if material.into_wm:
wm_qs = WMaterial.objects.filter( if xwm:
batch=xbatch, wm = xwm
material=xmaterial,
belong_dept=belong_dept,
mgroup=mgroup,
defect=defect,
state=WMaterial.WM_OK)
count_x = wm_qs.count()
if count_x == 1:
wm = wm_qs.first()
elif count_x == 0:
raise ParseError(
f'{str(xmaterial)}-{xbatch}-批次库存不存在!')
else: else:
raise ParseError( wm_qs = WMaterial.objects.filter(
f'{str(xmaterial)}-{xbatch}-存在多个相同批次!') batch=xbatch,
material=xmaterial,
belong_dept=belong_dept,
mgroup=mgroup,
defect=defect,
state=WMaterial.WM_OK)
count_x = wm_qs.count()
if count_x == 1:
wm = wm_qs.first()
elif count_x == 0:
raise ParseError(
f'{str(xmaterial)}-{xbatch}-批次库存不存在!')
else:
raise ParseError(
f'{str(xmaterial)}-{xbatch}-存在多个相同批次!')
# 扣减车间库存 # 扣减车间库存
new_count = wm.count - xcount new_count = wm.count - xcount