wpminit serializer
This commit is contained in:
parent
0bdd8a78a1
commit
b083f1cd8d
|
@ -23,10 +23,13 @@ class WProduct(CommonAModel):
|
|||
"""
|
||||
半成品/成品
|
||||
"""
|
||||
WPR_ACT_STATE_DOING = 1
|
||||
WPR_ACT_STATE_TOTEST = 2
|
||||
WPR_ACT_STATE_OK = 3
|
||||
act_state_choices=(
|
||||
(1, '生产中'),
|
||||
(2, '待检测'),
|
||||
(3, '已合格')
|
||||
(WPR_ACT_STATE_DOING, '生产中'),
|
||||
(WPR_ACT_STATE_TOTEST, '待检测'),
|
||||
(WPR_ACT_STATE_OK, '已合格')
|
||||
)
|
||||
number = models.CharField('物品编号', unique=True, null=True, blank=True, max_length=50)
|
||||
m_state = models.ForeignKey(Material, verbose_name='所属物料状态', on_delete=models.CASCADE)
|
||||
|
|
|
@ -86,6 +86,27 @@ class WActionInitSerializer(serializers.Serializer):
|
|||
subproduction_plan = serializers.PrimaryKeyRelatedField(queryset=SubProductionPlan.objects.all(), label="子计划ID")
|
||||
wproducts = serializers.ListField(child=
|
||||
serializers.PrimaryKeyRelatedField(queryset=WProduct.objects.all()), label="半成品ID列表", required=False)
|
||||
|
||||
def validate(self, data):
|
||||
subproduction_plan = data['subproduction_plan']
|
||||
step = data['step']
|
||||
|
||||
stepIds=[i['id'] for i in subproduction_plan.steps]
|
||||
if step.id not in stepIds:
|
||||
raise serializers.ValidationError('请选择正确的子工序操作')
|
||||
|
||||
if 'wproducts' in data:
|
||||
for i in data['wproducts']:
|
||||
if i.subproduction_plan != subproduction_plan:
|
||||
raise serializers.ValidationError('半成品所属子计划不一致')
|
||||
if i.step != step:
|
||||
raise serializers.ValidationError('半成品所属子工序不一致')
|
||||
else:
|
||||
if WProduct.objects.filter(subproduction_plan__production_plan=subproduction_plan.production_plan,
|
||||
is_deleted=False).exists(): # 存在动态半成品 # 这里后续需要更改比如报废状态
|
||||
raise serializers.ValidationError('请选择半成品进行操作')
|
||||
return data
|
||||
|
||||
|
||||
class DoInputSerializer(serializers.Serializer):
|
||||
id = serializers.PrimaryKeyRelatedField(queryset=WMaterial.objects.all(), label='车间物料ID')
|
||||
|
|
|
@ -105,7 +105,7 @@ class DoFormSubmit(CreateAPIView, GenericAPIView):
|
|||
提交操作表单
|
||||
"""
|
||||
data = request.data
|
||||
serializer = WActionInitSerializer(data=data)
|
||||
serializer = WActionSubmitSerializer(data=data, context={'request':self.request})
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data #校验之后的数据
|
||||
# 创建一个生产操作记录
|
||||
|
@ -140,7 +140,7 @@ class DoFormSubmit(CreateAPIView, GenericAPIView):
|
|||
if ma.is_main:
|
||||
# 计划开始, 第一步切割创建动态产品
|
||||
wpr = dict(m_state=ma, p_state=vdata['step'],
|
||||
act_state=1, is_executed=True, remark='',
|
||||
act_state=WProduct.WPR_ACT_STATE_DOING, is_executed=True, remark='',
|
||||
subproduction_plan=vdata['subproduction_plan'],
|
||||
production_plan=vdata['subproduction_plan'].production_plan)
|
||||
for x in range(i['count_output']):
|
||||
|
|
Loading…
Reference in New Issue