34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from typing import List
|
|
from apps.pm.models import SubProductionPlan
|
|
from apps.mtm.models import Step, SubprodctionMaterial
|
|
from apps.wpm.models import WProduct
|
|
class WpmServies(object):
|
|
|
|
@classmethod
|
|
def get_next_step(cls, subproduction_plan:SubProductionPlan, nowstep:Step):
|
|
"""
|
|
获取下一步骤
|
|
"""
|
|
stepIds = [i['id'] for i in subproduction_plan.steps]
|
|
pindex = stepIds.index(nowstep.id)
|
|
if pindex + 1 < len(stepIds):
|
|
return Step.objects.get(pk=stepIds[pindex+1]), True
|
|
else:
|
|
return nowstep, False
|
|
|
|
@classmethod
|
|
def get_subplans_queryset_from_wproducts(cls, wproducts:List):
|
|
"""
|
|
通过半成品列表获取所属子计划
|
|
"""
|
|
splans = SubProductionPlan.objects.filter(is_deleted=False, wproduct__subplan__in=wproducts)
|
|
return splans
|
|
|
|
@classmethod
|
|
def get_subplans_queyset_from_step(cls, step:Step):
|
|
"""
|
|
通过当前操作获取所有正在进行的子计划
|
|
"""
|
|
splans = SubProductionPlan.objects.filter(is_deleted=False,
|
|
subproduction__usedstep_subproduction__step=step, state=SubProductionPlan.SUBPLAN_STATE_WORKING)
|
|
return splans |