下料清单完成
This commit is contained in:
parent
bd6286931f
commit
ccd2d2e375
|
@ -2,9 +2,10 @@ from django.db.models import base
|
|||
from rest_framework import urlpatterns
|
||||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from apps.develop.views import CleanDataView
|
||||
from apps.develop.views import CleanDataView, UpdateCuttingView
|
||||
|
||||
urlpatterns = [
|
||||
path('cleandata/', CleanDataView.as_view()),
|
||||
path('update_cutting/', UpdateCuttingView.as_view())
|
||||
]
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
from django.db import transaction
|
||||
from django.shortcuts import render
|
||||
from rest_framework.decorators import permission_classes
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.permissions import IsAdminUser
|
||||
from rest_framework.response import Response
|
||||
|
@ -7,7 +9,8 @@ from apps.mtm.models import Material
|
|||
from apps.pm.models import ProductionPlan
|
||||
from apps.sam.models import Order
|
||||
from apps.wf.models import Ticket
|
||||
from apps.wpm.models import Operation
|
||||
from apps.wpm.models import Operation, OperationMaterial, WProduct, WproductFlow
|
||||
from apps.wpm.services import WpmServies
|
||||
# Create your views here.
|
||||
|
||||
class CleanDataView(APIView):
|
||||
|
@ -25,4 +28,22 @@ class CleanDataView(APIView):
|
|||
Inventory.objects.filter(material__type__in=[Material.MA_TYPE_GOOD, Material.MA_TYPE_HALFGOOD]).delete()
|
||||
Ticket.objects.all().delete(soft=False)
|
||||
Operation.objects.all().delete()
|
||||
return Response()
|
||||
return Response()
|
||||
|
||||
|
||||
class UpdateCuttingView(APIView):
|
||||
permission_classes = [IsAdminUser]
|
||||
@transaction.atomic
|
||||
def post(self, request, format=None):
|
||||
"""
|
||||
更新下料清单
|
||||
"""
|
||||
for i in WProduct.objects.all():
|
||||
sp = WproductFlow.objects.filter(wproduct=i).order_by('id').first().subproduction_plan
|
||||
op_q = OperationMaterial.objects.filter(subproduction_plan=sp, operation__step__id=1, operation__is_submited=True)
|
||||
op = op_q.first().operation
|
||||
i.coperation = op
|
||||
i.save()
|
||||
WproductFlow.objects.filter(wproduct=i).update(coperation=op)
|
||||
WpmServies.update_cutting_list_with_operation(op)
|
||||
return Response()
|
||||
|
|
|
@ -2,7 +2,7 @@ from django_filters import rest_framework as filters
|
|||
from apps.mtm.models import Material, Step
|
||||
|
||||
from apps.wpm.services import WpmServies
|
||||
from .models import Operation, WMaterial, WProduct
|
||||
from .models import Operation, OperationMaterial, WMaterial, WProduct
|
||||
|
||||
class WMaterialFilterSet(filters.FilterSet):
|
||||
|
||||
|
@ -33,4 +33,10 @@ class WProductFilterSet(filters.FilterSet):
|
|||
def filter_tag(self, queryset, name, value):
|
||||
if value == 'no_scrap':
|
||||
queryset = queryset.exclude(act_state=WProduct.WPR_ACT_STATE_SCRAP)
|
||||
return queryset
|
||||
return queryset
|
||||
|
||||
class CuttingFilterSet(filters.FilterSet):
|
||||
production_plan = filters.NumberFilter(field_name='subproduction_plan__production_plan')
|
||||
class Meta:
|
||||
model = OperationMaterial
|
||||
fields = ['operation', 'subproduction_plan', 'material']
|
|
@ -207,7 +207,7 @@ class OperationCreateSerializer(serializers.Serializer):
|
|||
class OperationUpdateSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Operation
|
||||
fields =['use_scrap', 'remark']
|
||||
fields =['remark']
|
||||
|
||||
class OperationInitSerializer(serializers.Serializer):
|
||||
step = serializers.PrimaryKeyRelatedField(queryset=Step.objects.all(), label="子工序ID")
|
||||
|
|
|
@ -166,7 +166,10 @@ class WpmServies(object):
|
|||
from_batch = ''
|
||||
for m in input_q:
|
||||
count_cut = count_cut + m.count
|
||||
from_batch = from_batch + ';' + m.batch if m.batch else from_batch
|
||||
if from_batch and m.batch:
|
||||
from_batch = from_batch + ';' + m.batch
|
||||
else:
|
||||
from_batch = m.batch
|
||||
i.count_cut = count_cut
|
||||
i.from_batch = from_batch
|
||||
wpfs = WproductFlow.objects.filter(subproduction_plan=i.subproduction_plan,
|
||||
|
|
|
@ -19,7 +19,7 @@ from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
|
|||
from rest_framework.decorators import action
|
||||
from apps.wf.models import Workflow
|
||||
from apps.wf.serializers import WorkflowSimpleSerializer
|
||||
from apps.wpm.filters import WMaterialFilterSet, WProductFilterSet
|
||||
from apps.wpm.filters import CuttingFilterSet, WMaterialFilterSet, WProductFilterSet
|
||||
from apps.wpm.models import OperationEquip, OperationWproduct, Pick, PickWproduct, WMaterial, WProduct, Operation, OperationMaterial, OperationRecord, OperationRecordItem, WprouctTicket
|
||||
|
||||
from apps.wpm.serializers import CuttingListSerializer, OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationMaterialCreate1ListSerailizer, OperationMaterialCreate1Serailizer, OperationMaterialCreate2ListSerailizer, OperationMaterialCreate2Serailizer, OperationMaterialCreate3Serializer, OperationMaterialListSerializer, OperationRecordDetailSerializer, OperationRecordListSerializer, OperationRecordSubmitSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, PickHalfSerializer, PickHalfsSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, ScrapSerializer, WMaterialListSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestFormInitSerializer, WpmTestRecordCreateSerializer, WproductPutInSerializer, WproductPutInsSerializer, WproductTicketListSerializer
|
||||
|
@ -807,7 +807,7 @@ class CuttingListViewSet(ListModelMixin, GenericViewSet):
|
|||
queryset = OperationMaterial.objects.select_related('operation',
|
||||
'subproduction_plan', 'material', 'create_by').filter(operation__step__process__id=1)
|
||||
serializer_class = CuttingListSerializer
|
||||
filterset_fields = ['operation', 'subproduction_plan', 'material']
|
||||
filterset_class = CuttingFilterSet
|
||||
ordering_fields = ['id']
|
||||
ordering = ['-id']
|
||||
|
||||
|
|
Loading…
Reference in New Issue