领半成品
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)
|
||||
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):
|
||||
"""
|
||||
工单流转日志
|
||||
|
|
|
@ -52,7 +52,7 @@ class TicketCreateSerializer(serializers.ModelSerializer):
|
|||
transition = serializers.IntegerField(label='流转ID')
|
||||
class Meta:
|
||||
model=Ticket
|
||||
fields=['title','workflow','ticket_data', 'transition']
|
||||
fields=['title','workflow', 'ticket_data', 'transition']
|
||||
|
||||
def create(self, validated_data):
|
||||
validated_data.pop('transition')
|
||||
|
|
|
@ -18,8 +18,11 @@ from django.db import transaction
|
|||
|
||||
class PickHalfSerializer(serializers.Serializer):
|
||||
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):
|
||||
material = serializers.PrimaryKeyRelatedField(queryset=Material.objects.all(), label="物料ID")
|
||||
batch = serializers.CharField(label='物料批次', allow_blank=True)
|
||||
|
@ -289,11 +292,6 @@ class WpmTestRecordCreateSerializer(serializers.ModelSerializer):
|
|||
model = TestRecord
|
||||
fields = ['form', 'record_data', 'is_testok', 'wproduct']
|
||||
|
||||
class WproductPutInSerializer(serializers.Serializer):
|
||||
"""
|
||||
半成品入库序列化
|
||||
"""
|
||||
|
||||
class WplanPutInSerializer(serializers.Serializer):
|
||||
warehouse = serializers.PrimaryKeyRelatedField(queryset=WareHouse.objects.all(), label="仓库ID")
|
||||
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.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 django.db import transaction
|
||||
from rest_framework import exceptions, serializers
|
||||
|
@ -41,7 +41,7 @@ class WPlanViewSet(ListModelMixin, GenericViewSet):
|
|||
ordering_fields = []
|
||||
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
|
||||
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')
|
||||
return Response(SubProductionProgressSerializer(instance=spps, many=True).data)
|
||||
elif request.method=='POST':
|
||||
serializer= PickHalfSerializer(data=request.data, many=True)
|
||||
serializer= PickHalfsSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.data
|
||||
first_step = Step.objects.get(pk=sp.steps[0]['id'])
|
||||
|
@ -85,8 +85,6 @@ class WPlanViewSet(ListModelMixin, GenericViewSet):
|
|||
pw.material = i.material
|
||||
pw.subproduction_plan = i.suproduction_plan
|
||||
pw.save()
|
||||
else:
|
||||
raise exceptions.APIException('未选择任何玻璃')
|
||||
sp.is_picked = True
|
||||
sp.save()
|
||||
|
||||
|
|
Loading…
Reference in New Issue