技术文件增加筛选条件operation
This commit is contained in:
parent
fea32171f9
commit
30fb6749bb
|
@ -0,0 +1,15 @@
|
|||
from django_filters import rest_framework as filters
|
||||
from apps.mtm.models import TechDoc
|
||||
|
||||
|
||||
|
||||
|
||||
class TechDocFilterset(filters.FilterSet):
|
||||
# operation = filters.NumberFilter(method='filter_operation')
|
||||
operation = filters.NumberFilter(field_name="subproduction__subplan_subprod__ow_subplan__operation")
|
||||
class Meta:
|
||||
model = TechDoc
|
||||
fields = ['subproduction', 'operation']
|
||||
|
||||
# def filter_operation(self, queryset, name, value):
|
||||
# return queryset.filter(subproduction__subplan_subprod__ow_subplan__operation=value)
|
|
@ -1,6 +1,7 @@
|
|||
from django.shortcuts import render
|
||||
from rest_framework.viewsets import ModelViewSet, GenericViewSet
|
||||
from rest_framework.mixins import CreateModelMixin, ListModelMixin, UpdateModelMixin, RetrieveModelMixin, DestroyModelMixin
|
||||
from apps.mtm.filters import TechDocFilterset
|
||||
|
||||
from apps.mtm.models import Material, Process, RecordForm, RecordFormField, Step, SubprodctionMaterial, TechDoc, UsedStep, SubProduction
|
||||
from apps.mtm.serializers import InputMaterialSerializer, InputMaterialUpdateSerializer, MaterialDetailSerializer, MaterialSerializer, MaterialSimpleSerializer, OtherMaterialSerializer, OutputMaterialSerializer, OutputMaterialUpdateSerializer, ProcessSerializer, RecordFormCreateSerializer, RecordFormDetailSerializer, RecordFormFieldCreateSerializer, RecordFormFieldSerializer, RecordFormFieldUpdateSerializer, RecordFormSerializer, RecordFormUpdateSerializer, StepDetailSerializer, StepSerializer, SubProductionSerializer, SubprodctionMaterialListSerializer, TechDocCreateSerializer, TechDocListSerializer, TechDocUpdateSerializer, UsedStepCreateSerializer, UsedStepListSerializer, UsedStepUpdateSerializer
|
||||
|
@ -201,7 +202,7 @@ class TechDocViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet):
|
|||
"""
|
||||
perms_map = {'*':'*'}
|
||||
queryset = TechDoc.objects.select_related('file').all()
|
||||
filterset_fields = ['subproduction']
|
||||
filterset_class = TechDocFilterset
|
||||
search_fields = ['name']
|
||||
ordering = ['-id']
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ class OperationWproduct(BaseModel):
|
|||
wproduct = models.ForeignKey(WProduct, verbose_name='关联半成品', on_delete=models.CASCADE, related_name='ow_wproduct')
|
||||
number = models.CharField('物品编号', null=True, blank=True, max_length=50)
|
||||
material = models.ForeignKey(Material, verbose_name='操作时的物料状态', on_delete=models.CASCADE)
|
||||
subproduction_plan = models.ForeignKey(SubProductionPlan, verbose_name='当前子生产计划', on_delete=models.CASCADE)
|
||||
subproduction_plan = models.ForeignKey(SubProductionPlan, verbose_name='当前子生产计划', on_delete=models.CASCADE, related_name='ow_subplan')
|
||||
|
||||
|
||||
class OperationMaterial(BaseModel):
|
||||
|
|
|
@ -12,6 +12,7 @@ from apps.mtm.serializers import RecordFormDetailSerializer, SubprodctionMateria
|
|||
from apps.pm.models import SubProductionPlan, SubProductionProgress
|
||||
from apps.pm.serializers import SubProductionPlanListSerializer, SubProductionPlanUpdateSerializer, SubProductionProgressSerializer
|
||||
from apps.qm.models import TestRecord, TestRecordItem
|
||||
from apps.qm.serializers import TestRecordDetailSerializer
|
||||
|
||||
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
|
||||
from rest_framework.decorators import action
|
||||
|
@ -193,10 +194,20 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
|
|||
vdata = serializer.validated_data
|
||||
wproduct = vdata['wproduct']
|
||||
form = vdata['form']
|
||||
data = RecordFormDetailSerializer(instance=form).data
|
||||
# 后续加入系统带入数据
|
||||
# 如果是复检记录, 需要带入原数据
|
||||
|
||||
|
||||
# 如果是复检记录, 需要带入原数据
|
||||
if wproduct.act_state == WProduct.WPR_ACT_STATE_TORETEST:
|
||||
# 查找最近一条检验记录
|
||||
trs = TestRecord.objects.filter(wproduct=wproduct, type=TestRecord.TEST_PROCESS).order_by('-id').first()
|
||||
if trs:
|
||||
origin_data = TestRecordDetailSerializer()
|
||||
else:
|
||||
raise exceptions.APIException('原工序检验记录不存在')
|
||||
else:
|
||||
data = RecordFormDetailSerializer(instance=form).data
|
||||
|
||||
# 后续加入系统自带数据
|
||||
return Response(data)
|
||||
|
||||
@action(methods=['post'], detail=False, perms_map={'post':'*'}, serializer_class=WpmTestRecordCreateSerializer)
|
||||
|
@ -250,7 +261,6 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
|
|||
wproduct.act_state = WProduct.WPR_ACT_STATE_OK
|
||||
if wproduct.number is None: # 产生半成品编号
|
||||
wproduct.number = 'WP'+ranstr(7)
|
||||
wproduct.save()
|
||||
# 更新子计划状态
|
||||
# 更新子计划主产品数
|
||||
instance = SubProductionProgress.objects.get(subproduction_plan=wproduct.subproduction_plan,
|
||||
|
@ -259,8 +269,9 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
|
|||
instance.save()
|
||||
else:# 如果不合格
|
||||
wproduct.act_state = WProduct.WPR_ACT_STATE_NOTOK
|
||||
wproduct.save()
|
||||
# 需要走不合格品审理单
|
||||
wproduct.update_by = request.user
|
||||
wproduct.save()
|
||||
return Response()
|
||||
|
||||
@action(methods=['post'], detail=False, perms_map={'post':'*'}, serializer_class=WproductPutInsSerializer)
|
||||
|
@ -310,7 +321,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
|
|||
FIFOItemProduct.objects.bulk_create(ips)
|
||||
# 更新库存并修改半成品进行状态
|
||||
update_inm(fifo)
|
||||
wproducts.update(act_state=WProduct.WPR_ACT_STATE_INM, warehouse=warehouse, update_by=request.user)
|
||||
wproducts.update(act_state=WProduct.WPR_ACT_STATE_INM, warehouse=warehouse, update_by=request.user, update_time=timezone.now())
|
||||
return Response()
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=WproductPutInSerializer)
|
||||
|
@ -504,6 +515,7 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
|||
instance.count_real = instance.count_real + 1 # 这个地方可能会有问题,不够严谨
|
||||
instance.save()
|
||||
wp.operation = None
|
||||
wp.update_by = request.user
|
||||
wp.save()
|
||||
elif step.type == Step.STEP_TYPE_DIV:
|
||||
# 更新物料产出情况
|
||||
|
@ -534,10 +546,11 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
|||
instance = oms_w.subproduction_progress
|
||||
instance.count_real = instance.count_real + 1 # 这个地方可能会有问题,不够严谨
|
||||
instance.save()
|
||||
wproduct.create_by = request.user
|
||||
wproduct.save()
|
||||
# 隐藏原半成品
|
||||
wps = WProduct.objects.filter(ow_wproduct__operation = op)
|
||||
wps.update(is_hidden=True, child=wproduct)
|
||||
wps.update(is_hidden=True, child=wproduct, update_by=request.user, update_time=timezone.now())
|
||||
else:
|
||||
raise exceptions.APIException('产出物料错误')
|
||||
op.is_submited = True
|
||||
|
|
Loading…
Reference in New Issue