领半成品
This commit is contained in:
parent
03e0f0d1a2
commit
84ba718a98
|
@ -210,6 +210,18 @@ class Ticket(CommonBModel):
|
||||||
act_state = models.IntegerField('进行状态', default=1, help_text='当前工单的进行状态', choices=act_state_choices)
|
act_state = models.IntegerField('进行状态', default=1, help_text='当前工单的进行状态', choices=act_state_choices)
|
||||||
multi_all_person = models.JSONField('全部处理的结果', default=dict, blank=True, help_text='需要当前状态处理人全部处理时实际的处理结果,json格式')
|
multi_all_person = models.JSONField('全部处理的结果', default=dict, blank=True, help_text='需要当前状态处理人全部处理时实际的处理结果,json格式')
|
||||||
|
|
||||||
|
|
||||||
|
class TicketData():
|
||||||
|
"""
|
||||||
|
工单数据,自定义字段值
|
||||||
|
"""
|
||||||
|
form_field = models.ForeignKey(CustomField, verbose_name='关联字段', on_delete=models.SET_NULL, db_constraint=False, null=True, blank=True)
|
||||||
|
field_name = models.CharField('字段名', max_length=50)
|
||||||
|
field_key = models.CharField('字段标识', max_length=50)
|
||||||
|
field_type = models.CharField('字段类型', choices=CustomField.field_type_choices, max_length=50)
|
||||||
|
field_value = models.JSONField('录入值', default=dict, blank=True)
|
||||||
|
sort = models.IntegerField('排序号', default=1)
|
||||||
|
|
||||||
class TicketFlow(BaseModel):
|
class TicketFlow(BaseModel):
|
||||||
"""
|
"""
|
||||||
工单流转日志
|
工单流转日志
|
||||||
|
|
|
@ -52,7 +52,7 @@ class TicketCreateSerializer(serializers.ModelSerializer):
|
||||||
transition = serializers.IntegerField(label='流转ID')
|
transition = serializers.IntegerField(label='流转ID')
|
||||||
class Meta:
|
class Meta:
|
||||||
model=Ticket
|
model=Ticket
|
||||||
fields=['title','workflow','ticket_data', 'transition']
|
fields=['title','workflow', 'ticket_data', 'transition']
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
validated_data.pop('transition')
|
validated_data.pop('transition')
|
||||||
|
|
|
@ -18,8 +18,11 @@ from django.db import transaction
|
||||||
|
|
||||||
class PickHalfSerializer(serializers.Serializer):
|
class PickHalfSerializer(serializers.Serializer):
|
||||||
id = serializers.PrimaryKeyRelatedField(queryset=SubProductionProgress.objects.all(), label='子计划进度ID')
|
id = serializers.PrimaryKeyRelatedField(queryset=SubProductionProgress.objects.all(), label='子计划进度ID')
|
||||||
wproducts = serializers.PrimaryKeyRelatedField(queryset=WProduct.objects.all(), label='半成品ID', many=True, required=False) # 从半成品表里直接修改状态
|
wproducts = serializers.ListField(child=serializers.PrimaryKeyRelatedField(queryset=WProduct.objects.all())
|
||||||
|
, label='半成品ID', required=False) # 从半成品表里直接修改状态
|
||||||
|
|
||||||
|
class PickHalfsSerializer(serializers.ListSerializer):
|
||||||
|
child = PickHalfSerializer()
|
||||||
class PickDetailSerializer(serializers.Serializer):
|
class PickDetailSerializer(serializers.Serializer):
|
||||||
material = serializers.PrimaryKeyRelatedField(queryset=Material.objects.all(), label="物料ID")
|
material = serializers.PrimaryKeyRelatedField(queryset=Material.objects.all(), label="物料ID")
|
||||||
batch = serializers.CharField(label='物料批次', allow_blank=True)
|
batch = serializers.CharField(label='物料批次', allow_blank=True)
|
||||||
|
@ -289,11 +292,6 @@ class WpmTestRecordCreateSerializer(serializers.ModelSerializer):
|
||||||
model = TestRecord
|
model = TestRecord
|
||||||
fields = ['form', 'record_data', 'is_testok', 'wproduct']
|
fields = ['form', 'record_data', 'is_testok', 'wproduct']
|
||||||
|
|
||||||
class WproductPutInSerializer(serializers.Serializer):
|
|
||||||
"""
|
|
||||||
半成品入库序列化
|
|
||||||
"""
|
|
||||||
|
|
||||||
class WplanPutInSerializer(serializers.Serializer):
|
class WplanPutInSerializer(serializers.Serializer):
|
||||||
warehouse = serializers.PrimaryKeyRelatedField(queryset=WareHouse.objects.all(), label="仓库ID")
|
warehouse = serializers.PrimaryKeyRelatedField(queryset=WareHouse.objects.all(), label="仓库ID")
|
||||||
remark = serializers.CharField(label="入库备注", required =False)
|
remark = serializers.CharField(label="入库备注", required =False)
|
||||||
|
|
|
@ -18,7 +18,7 @@ from rest_framework.decorators import action
|
||||||
from apps.wpm.filters import WMaterialFilterSet
|
from apps.wpm.filters import WMaterialFilterSet
|
||||||
from apps.wpm.models import OperationEquip, OperationWproduct, Pick, PickWproduct, WMaterial, WProduct, Operation, OperationMaterial, OperationRecord, OperationRecordItem
|
from apps.wpm.models import OperationEquip, OperationWproduct, Pick, PickWproduct, WMaterial, WProduct, Operation, OperationMaterial, OperationRecord, OperationRecordItem
|
||||||
|
|
||||||
from apps.wpm.serializers import OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationMaterialCreate1Serailizer, OperationMaterialCreate2Serailizer, OperationMaterialCreate3Serializer, OperationMaterialListSerializer, OperationRecordListSerializer, OperationRecordSubmitSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, PickHalfSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, WMaterialListSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestRecordCreateSerializer, WproductPutInSerializer, WproductPutInsSerializer
|
from apps.wpm.serializers import OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationMaterialCreate1Serailizer, OperationMaterialCreate2Serailizer, OperationMaterialCreate3Serializer, OperationMaterialListSerializer, OperationRecordListSerializer, OperationRecordSubmitSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, PickHalfSerializer, PickHalfsSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, WMaterialListSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestRecordCreateSerializer, WproductPutInSerializer, WproductPutInsSerializer
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from rest_framework import exceptions, serializers
|
from rest_framework import exceptions, serializers
|
||||||
|
@ -41,7 +41,7 @@ class WPlanViewSet(ListModelMixin, GenericViewSet):
|
||||||
ordering_fields = []
|
ordering_fields = []
|
||||||
ordering = ['-update_time']
|
ordering = ['-update_time']
|
||||||
|
|
||||||
@action(methods=['post', 'get'], detail=True, perms_map={'post':'*', 'get':'*'}, serializer_class=PickHalfSerializer)
|
@action(methods=['post', 'get'], detail=True, perms_map={'post':'*', 'get':'*'}, serializer_class=PickHalfsSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def pick_half(self, request, pk=None):
|
def pick_half(self, request, pk=None):
|
||||||
"""
|
"""
|
||||||
|
@ -56,7 +56,7 @@ class WPlanViewSet(ListModelMixin, GenericViewSet):
|
||||||
material__type=Material.MA_TYPE_HALFGOOD, subproduction_plan=sp).select_related('material')
|
material__type=Material.MA_TYPE_HALFGOOD, subproduction_plan=sp).select_related('material')
|
||||||
return Response(SubProductionProgressSerializer(instance=spps, many=True).data)
|
return Response(SubProductionProgressSerializer(instance=spps, many=True).data)
|
||||||
elif request.method=='POST':
|
elif request.method=='POST':
|
||||||
serializer= PickHalfSerializer(data=request.data, many=True)
|
serializer= PickHalfsSerializer(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
vdata = serializer.data
|
vdata = serializer.data
|
||||||
first_step = Step.objects.get(pk=sp.steps[0]['id'])
|
first_step = Step.objects.get(pk=sp.steps[0]['id'])
|
||||||
|
@ -85,8 +85,6 @@ class WPlanViewSet(ListModelMixin, GenericViewSet):
|
||||||
pw.material = i.material
|
pw.material = i.material
|
||||||
pw.subproduction_plan = i.suproduction_plan
|
pw.subproduction_plan = i.suproduction_plan
|
||||||
pw.save()
|
pw.save()
|
||||||
else:
|
|
||||||
raise exceptions.APIException('未选择任何玻璃')
|
|
||||||
sp.is_picked = True
|
sp.is_picked = True
|
||||||
sp.save()
|
sp.save()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue