diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 815878fe..5e907d9e 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -125,3 +125,7 @@ class MlogSerializer(CustomModelSerializer): class MlogRelatedSerializer(serializers.Serializer): mtask = serializers.PrimaryKeyRelatedField( label='小任务ID', queryset=Mtask.objects.all()) + + +class DeptBatchSerializer(serializers.Serializer): + belong_dept_name = serializers.CharField(label='车间名称') diff --git a/apps/wpm/views.py b/apps/wpm/views.py index e8174fc8..486f107f 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -12,7 +12,7 @@ from apps.utils.mixins import BulkCreateModelMixin from .filters import SfLogExpFilter, SfLogFilter from .models import SfLog, SfLogExp, StLog, WMaterial, Mlog -from .serializers import SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogSerializer, MlogRelatedSerializer +from .serializers import SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer # Create your views here. @@ -97,6 +97,20 @@ class WMaterialViewSet(ListModelMixin, CustomGenericViewSet): 'material__number', 'material__specification'] filterset_fields = ['material', 'belong_dept'] + @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=DeptBatchSerializer) + @transaction.atomic + def batchs(self, request): + """获取车间出现过的批次号 + + 获取车间出现过的批次号 + """ + sr = DeptBatchSerializer(data=request.data) + sr.is_valid(raise_exception=True) + vdata = sr.validated_data + batchs = WMaterial.objects.filter( + belong_dept__name=vdata['belong_dept_name']).values_list('batch', flat=True).distinct() + return Response(list(batchs)) + class MlogViewSet(CustomModelViewSet): """