diff --git a/apps/pm/services.py b/apps/pm/services.py index 7e3213df..3dc407fc 100644 --- a/apps/pm/services.py +++ b/apps/pm/services.py @@ -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):