fix: pmservice cal_real_task_count

This commit is contained in:
caoqianming 2025-01-14 12:37:42 +08:00
parent 620ed2e19e
commit 5b977d4cf9
1 changed files with 10 additions and 5 deletions

View File

@ -1,6 +1,6 @@
from apps.system.models import Dept, User
from apps.sam.models import OrderItem
from apps.mtm.models import Route, Material, Mgroup
from apps.mtm.models import Route, Material, Mgroup, Process
from rest_framework.exceptions import ParseError
from apps.pm.models import Mtask, Utask
from django.db.models.query import QuerySet
@ -24,9 +24,14 @@ class PmService:
xcount = count*1
while indx < rate_len:
if indx + 1 == rate_len: # 循环到最后一步
break
rate, div_number = rate_list[indx+1]
xcount = xcount/(rate/100)/div_number
break
div_number0 = 1
rate, div_number, mtype = rate_list[indx+1]
if mtype == Process.PRO_DIV:
div_number0 = div_number
elif mtype == Process.PRO_MERGE:
div_number0 = 1/div_number
xcount = xcount/(rate/100)/div_number0
indx = indx + 1
r_list.append(math.ceil(xcount))
return r_list
@ -131,7 +136,7 @@ class PmService:
if not rqs.exists():
raise ParseError('未配置工艺路线')
# 通过出材率校正任务数, out_rate 默认为 100
out_rate_list = [(rq.out_rate, rq.div_number) for rq in rqs]
out_rate_list = [(rq.out_rate, rq.div_number, rq.process.mtype) for rq in rqs]
count_task_list = cls.cal_real_task_count(count,out_rate_list)
# 创建小任务
for ind, val in enumerate(rqs):