wpminit serializer

This commit is contained in:
caoqianming 2021-11-08 14:47:06 +08:00
parent 0bdd8a78a1
commit b083f1cd8d
3 changed files with 29 additions and 5 deletions

View File

@ -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)

View File

@ -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')

View File

@ -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']):