From 2bdc68f923c2fd3a8df6aee020edd2cfe2a0e0a3 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 17 Jan 2022 13:32:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fifo=20=E5=88=A0=E9=99=A4=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/inm/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hb_server/apps/inm/views.py b/hb_server/apps/inm/views.py index a0d9fb5..8f20cf7 100644 --- a/hb_server/apps/inm/views.py +++ b/hb_server/apps/inm/views.py @@ -147,7 +147,7 @@ class FIFOViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet): def destroy(self, request, *args, **kwargs): obj = self.get_object() - if obj.is_submited: + if obj.is_audited: raise exceptions.APIException('该记录已审核,不可删除') return super().destroy(request, *args, **kwargs) From 9b8518118afe3d93a01836c7b07864b1815a47bd Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 17 Jan 2022 13:59:42 +0800 Subject: [PATCH 2/3] =?UTF-8?q?order=20plan=20filter=E5=A2=9E=E5=8A=A0mate?= =?UTF-8?q?rial=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/pm/filters.py | 9 ++++++++- hb_server/apps/pm/models.py | 2 +- hb_server/apps/sam/filters.py | 7 +++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/hb_server/apps/pm/filters.py b/hb_server/apps/pm/filters.py index 551a6ee..3ee9a9a 100644 --- a/hb_server/apps/pm/filters.py +++ b/hb_server/apps/pm/filters.py @@ -23,9 +23,10 @@ class PlanFilterSet(filters.FilterSet): class SubproductionProgressFilterSet(filters.FilterSet): operation = filters.NumberFilter(method='filter_operation') + material = filters.NumberFilter(method='filter_material') class Meta: model = SubProductionProgress - fields = ['material', 'subproduction_plan', 'operation', 'type'] + fields = ['material', 'subproduction_plan', 'operation', 'type', 'material'] def filter_operation(self, queryset, name, value): operation = Operation.objects.get(pk=value) @@ -40,3 +41,9 @@ class SubproductionProgressFilterSet(filters.FilterSet): queryset = queryset.exclude(material__type__in =[Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD]) return queryset + def filter_material(self, queryset, name, value): + """ + 按物料筛选 + """ + return queryset.filter(subplan_plan__progress_subplan__material__id=value).distinct() + diff --git a/hb_server/apps/pm/models.py b/hb_server/apps/pm/models.py index 3e1c01e..3b59038 100644 --- a/hb_server/apps/pm/models.py +++ b/hb_server/apps/pm/models.py @@ -29,7 +29,7 @@ class ProductionPlan(CommonAModel): (PLAN_MTEST_DONE, '军检完成') ) number = models.CharField('编号', max_length=50, unique=True) - order = models.ForeignKey(Order, verbose_name='关联订单', null=True, blank=True, on_delete=models.SET_NULL) + order = models.ForeignKey(Order, verbose_name='关联订单', null=True, blank=True, on_delete=models.SET_NULL, related_name='plan_order') state = models.PositiveIntegerField('状态', choices=state_choices, default=PLAN_STATE_PLANING) product = models.ForeignKey(Material, verbose_name='生产产品', on_delete=models.CASCADE) count = models.PositiveIntegerField('生产数量', default=1) diff --git a/hb_server/apps/sam/filters.py b/hb_server/apps/sam/filters.py index 3087bbb..779e7b4 100644 --- a/hb_server/apps/sam/filters.py +++ b/hb_server/apps/sam/filters.py @@ -6,9 +6,16 @@ from apps.sam.models import Order class OrderFilterSet(filters.FilterSet): create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte') create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte') + material = filters.NumberFilter(method='filter_material') class Meta: model = Order fields = ['product', 'contract', 'customer', 'create_time_start', 'create_time_end'] + + def filter_material(self, queryset, name, value): + """ + 按物料筛选 + """ + return queryset.filter(plan_order__subplan_plan__progress_subplan__material__id=value).distinct() class ContractFilterSet(filters.FilterSet): From ce62354c8f9ad6a912647eb016e1b329bb6cfd32 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 17 Jan 2022 14:12:26 +0800 Subject: [PATCH 3/3] =?UTF-8?q?plan=E5=A2=9E=E5=8A=A0material=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/pm/filters.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/hb_server/apps/pm/filters.py b/hb_server/apps/pm/filters.py index 3ee9a9a..f530238 100644 --- a/hb_server/apps/pm/filters.py +++ b/hb_server/apps/pm/filters.py @@ -9,6 +9,7 @@ class PlanFilterSet(filters.FilterSet): create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte') create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte') tag = filters.CharFilter(method='filter_tag') + material = filters.NumberFilter(method='filter_material') class Meta: model = ProductionPlan fields = ['product', 'order', 'create_time_start', 'create_time_end'] @@ -19,14 +20,20 @@ class PlanFilterSet(filters.FilterSet): elif value == 'working': queryset = queryset.exclude(state__in=[ProductionPlan.PLAN_STATE_DONE, ProductionPlan.PLAN_MTEST_DONE]) return queryset + + def filter_material(self, queryset, name, value): + """ + 按物料筛选 + """ + return queryset.filter(subplan_plan__progress_subplan__material__id=value).distinct() class SubproductionProgressFilterSet(filters.FilterSet): operation = filters.NumberFilter(method='filter_operation') - material = filters.NumberFilter(method='filter_material') + class Meta: model = SubProductionProgress - fields = ['material', 'subproduction_plan', 'operation', 'type', 'material'] + fields = ['material', 'subproduction_plan', 'operation', 'type'] def filter_operation(self, queryset, name, value): operation = Operation.objects.get(pk=value) @@ -41,9 +48,5 @@ class SubproductionProgressFilterSet(filters.FilterSet): queryset = queryset.exclude(material__type__in =[Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD]) return queryset - def filter_material(self, queryset, name, value): - """ - 按物料筛选 - """ - return queryset.filter(subplan_plan__progress_subplan__material__id=value).distinct() +