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=(
|
act_state_choices=(
|
||||||
(1, '生产中'),
|
(WPR_ACT_STATE_DOING, '生产中'),
|
||||||
(2, '待检测'),
|
(WPR_ACT_STATE_TOTEST, '待检测'),
|
||||||
(3, '已合格')
|
(WPR_ACT_STATE_OK, '已合格')
|
||||||
)
|
)
|
||||||
number = models.CharField('物品编号', unique=True, null=True, blank=True, max_length=50)
|
number = models.CharField('物品编号', unique=True, null=True, blank=True, max_length=50)
|
||||||
m_state = models.ForeignKey(Material, verbose_name='所属物料状态', on_delete=models.CASCADE)
|
m_state = models.ForeignKey(Material, verbose_name='所属物料状态', on_delete=models.CASCADE)
|
||||||
|
|
|
@ -87,6 +87,27 @@ class WActionInitSerializer(serializers.Serializer):
|
||||||
wproducts = serializers.ListField(child=
|
wproducts = serializers.ListField(child=
|
||||||
serializers.PrimaryKeyRelatedField(queryset=WProduct.objects.all()), label="半成品ID列表", required=False)
|
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):
|
class DoInputSerializer(serializers.Serializer):
|
||||||
id = serializers.PrimaryKeyRelatedField(queryset=WMaterial.objects.all(), label='车间物料ID')
|
id = serializers.PrimaryKeyRelatedField(queryset=WMaterial.objects.all(), label='车间物料ID')
|
||||||
count_input = serializers.IntegerField(min_value=0, label='消耗数量')
|
count_input = serializers.IntegerField(min_value=0, label='消耗数量')
|
||||||
|
|
|
@ -105,7 +105,7 @@ class DoFormSubmit(CreateAPIView, GenericAPIView):
|
||||||
提交操作表单
|
提交操作表单
|
||||||
"""
|
"""
|
||||||
data = request.data
|
data = request.data
|
||||||
serializer = WActionInitSerializer(data=data)
|
serializer = WActionSubmitSerializer(data=data, context={'request':self.request})
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
vdata = serializer.validated_data #校验之后的数据
|
vdata = serializer.validated_data #校验之后的数据
|
||||||
# 创建一个生产操作记录
|
# 创建一个生产操作记录
|
||||||
|
@ -140,7 +140,7 @@ class DoFormSubmit(CreateAPIView, GenericAPIView):
|
||||||
if ma.is_main:
|
if ma.is_main:
|
||||||
# 计划开始, 第一步切割创建动态产品
|
# 计划开始, 第一步切割创建动态产品
|
||||||
wpr = dict(m_state=ma, p_state=vdata['step'],
|
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'],
|
subproduction_plan=vdata['subproduction_plan'],
|
||||||
production_plan=vdata['subproduction_plan'].production_plan)
|
production_plan=vdata['subproduction_plan'].production_plan)
|
||||||
for x in range(i['count_output']):
|
for x in range(i['count_output']):
|
||||||
|
|
Loading…
Reference in New Issue