产品生产工艺流程增加删除
This commit is contained in:
parent
faf524604b
commit
70b1305bb7
|
@ -86,6 +86,7 @@ class StepOperationItem(CommonAModel):
|
|||
help_text='当为布尔类型时候,可以支持自定义显示形式。{"1":"是","0":"否"}或{"1":"需要","0":"不需要"},注意数字也需要引号')
|
||||
field_choice = models.JSONField('radio、checkbox、select的选项', default=dict, blank=True,
|
||||
help_text='radio,checkbox,select,multiselect类型可供选择的选项,格式为json如:{"1":"中国", "2":"美国"},注意数字也需要引号')
|
||||
sort = models.IntegerField('排序号', default=1)
|
||||
class Meta:
|
||||
verbose_name = '操作记录条目'
|
||||
verbose_name_plural = verbose_name
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from rest_framework.serializers import ModelSerializer
|
||||
|
||||
from .models import Material, Process, Step
|
||||
from .models import Material, Process, ProductProcess, Step
|
||||
from apps.system.serializers import FileSimpleSerializer
|
||||
|
||||
|
||||
|
@ -9,14 +9,35 @@ class MaterialSerializer(ModelSerializer):
|
|||
model = Material
|
||||
fields = '__all__'
|
||||
|
||||
class MaterialSimpleSerializer(ModelSerializer):
|
||||
class Meta:
|
||||
model = Material
|
||||
fields = ['id', 'name', 'number']
|
||||
|
||||
class ProcessSerializer(ModelSerializer):
|
||||
instruction_ = FileSimpleSerializer(source='instruction', read_only=True)
|
||||
class Meta:
|
||||
model = Process
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class ProcessSimpleSerializer(ModelSerializer):
|
||||
class Meta:
|
||||
model = Process
|
||||
fields = ['id', 'name', 'number']
|
||||
|
||||
class StepSerializer(ModelSerializer):
|
||||
class Meta:
|
||||
model = Step
|
||||
fields = '__all__'
|
||||
fields = '__all__'
|
||||
|
||||
class ProductProcessListSerializer(ModelSerializer):
|
||||
process_ = ProcessSimpleSerializer(source='process', read_only=True)
|
||||
product_ = MaterialSimpleSerializer(source='product', read_only=True)
|
||||
class Meta:
|
||||
model = ProductProcess
|
||||
fields = '__all__'
|
||||
|
||||
class ProductProcessUpdateSerializer(ModelSerializer):
|
||||
class Meta:
|
||||
model = ProductProcess
|
||||
fields = ['sort']
|
|
@ -1,12 +1,13 @@
|
|||
from django.db.models import base
|
||||
from rest_framework import urlpatterns
|
||||
from apps.mtm.views import MaterialViewSet, ProcessViewSet, StepViewSet
|
||||
from apps.mtm.views import MaterialViewSet, ProcessViewSet, ProductProcessViewSet, StepViewSet
|
||||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
router = DefaultRouter()
|
||||
router.register('material', MaterialViewSet, basename='material')
|
||||
router.register('process', ProcessViewSet, basename='process')
|
||||
router.register('productprocess', ProductProcessViewSet, basename='productprocess')
|
||||
router.register('step', StepViewSet, basename='step')
|
||||
urlpatterns = [
|
||||
path('', include(router.urls)),
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
from django.shortcuts import render
|
||||
from rest_framework.viewsets import ModelViewSet, GenericViewSet
|
||||
from rest_framework.mixins import CreateModelMixin, UpdateModelMixin, RetrieveModelMixin, DestroyModelMixin
|
||||
from rest_framework.mixins import CreateModelMixin, ListModelMixin, UpdateModelMixin, RetrieveModelMixin, DestroyModelMixin
|
||||
|
||||
from apps.mtm.models import Material, Process, Step
|
||||
from apps.mtm.serializers import MaterialSerializer, ProcessSerializer, StepSerializer
|
||||
from apps.mtm.models import Material, Process, ProductProcess, Step
|
||||
from apps.mtm.serializers import MaterialSerializer, ProductProcessListSerializer, ProductProcessUpdateSerializer, ProcessSerializer, StepSerializer
|
||||
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
|
@ -23,6 +23,16 @@ class MaterialViewSet(CreateUpdateModelAMixin, ModelViewSet):
|
|||
ordering_fields = ['number', 'sort_str']
|
||||
ordering = ['number']
|
||||
|
||||
@action(methods=['get'], detail=True, perms_map={'get':'*'}, pagination_class=None, serializer_class=StepSerializer)
|
||||
def steps(self, request, pk=None):
|
||||
"""
|
||||
工序下的子工序
|
||||
"""
|
||||
process = self.get_object()
|
||||
serializer = self.serializer_class(instance=Step.objects.filter(process=process, is_deleted=False), many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
|
||||
class ProcessViewSet(CreateUpdateModelAMixin, ModelViewSet):
|
||||
"""
|
||||
工序表-增删改查
|
||||
|
@ -46,9 +56,27 @@ class ProcessViewSet(CreateUpdateModelAMixin, ModelViewSet):
|
|||
return Response(serializer.data)
|
||||
|
||||
class StepViewSet(CreateModelMixin, UpdateModelMixin, RetrieveModelMixin, DestroyModelMixin, GenericViewSet):
|
||||
"""
|
||||
"""
|
||||
perms_map = {'*':'process_update'}
|
||||
queryset = Step.objects.all()
|
||||
serializer_class = StepSerializer
|
||||
search_fields = ['name', 'number']
|
||||
filterset_fields = ['process']
|
||||
ordering = ['sort']
|
||||
ordering = ['sort']
|
||||
|
||||
|
||||
class ProductProcessViewSet(CreateModelMixin, UpdateModelMixin, ListModelMixin, DestroyModelMixin, GenericViewSet):
|
||||
"""
|
||||
产品生产工艺流程增删改查
|
||||
"""
|
||||
perms_map={'*':'*'}
|
||||
queryset = ProductProcess.objects.select_related('process', 'product').all()
|
||||
filterset_fields = ['process', 'product']
|
||||
serializer_class = ProductProcessListSerializer
|
||||
ordering = ['sort']
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.action == 'update':
|
||||
return ProductProcessUpdateSerializer
|
||||
return super().get_serializer_class()
|
Loading…
Reference in New Issue