From 6f6707c0242890d1f99fda3cb0aa50095ecbdf14 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 1 Mar 2022 13:21:01 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E9=A2=86=E6=96=99=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=BD=A6=E9=97=B4=E7=89=A9=E6=96=99=E6=97=B6=E5=8F=AA=E5=A4=84?= =?UTF-8?q?=E7=90=86=E7=89=A9=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/mtm/views.py | 4 ++-- hb_server/apps/wpm/serializers.py | 19 ++++++++++--------- hb_server/apps/wpm/views.py | 2 ++ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/hb_server/apps/mtm/views.py b/hb_server/apps/mtm/views.py index 4a972cf..2862a39 100644 --- a/hb_server/apps/mtm/views.py +++ b/hb_server/apps/mtm/views.py @@ -77,8 +77,8 @@ class StepViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet): """ 子工序-增删改查 """ - perms_map = {'get':'*', 'post':'step_create', - 'put':'step_update', 'delete':'step_delete'} + perms_map = {'get':'*', 'post':'process_update', + 'put':'process_update', 'delete':'process_update'} queryset = Step.objects.all() serializer_class = StepSerializer search_fields = ['name', 'number'] diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py index 61ae4b5..79b4234 100644 --- a/hb_server/apps/wpm/serializers.py +++ b/hb_server/apps/wpm/serializers.py @@ -93,15 +93,16 @@ class PickSerializer(serializers.Serializer): FIFOItemProduct.objects.bulk_create(mls) # 更新车间物料 - wm, _ = WMaterial.objects.get_or_create(material=i['material'], batch=i['batch'], \ - subproduction_plan=sp,defaults={ - 'material':i['material'], - 'batch':i['batch'], - 'subproduction_plan':sp, - 'count':0 - }) - wm.count = wm.count + i['count'] - wm.save() + if i['material'].type != Material.MA_TYPE_HALFGOOD: + wm, _ = WMaterial.objects.get_or_create(material=i['material'], batch=i['batch'], \ + subproduction_plan=sp,defaults={ + 'material':i['material'], + 'batch':i['batch'], + 'subproduction_plan':sp, + 'count':0 + }) + wm.count = wm.count + i['count'] + wm.save() # 更新子计划物料情况 spp = SubProductionProgress.objects.get(material=i['material'], subproduction_plan=sp, type=SubprodctionMaterial.SUB_MA_TYPE_IN) spp.count_pick = spp.count_pick + i['count'] diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index 59a4086..d7b1480 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -281,6 +281,8 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet): ip = {} ip['fifoitem'] = fifoitem ip['wproduct'] = i + if i.number is None: + raise exceptions.APIException('缺少编号') ip['number'] = i.number ip['material'] = i.material ips.append(FIFOItemProduct(**ip)) From efd5c828537dbbea14c2bbd506e79ed417064218 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 1 Mar 2022 14:01:57 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=BD=A6=E9=97=B4=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=8D=8A=E6=88=90=E5=93=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/pm/views.py | 2 +- hb_server/apps/sam/views.py | 2 +- hb_server/apps/wpm/views.py | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hb_server/apps/pm/views.py b/hb_server/apps/pm/views.py index 4257e9f..c827e5d 100644 --- a/hb_server/apps/pm/views.py +++ b/hb_server/apps/pm/views.py @@ -411,7 +411,7 @@ class ResourceViewSet(GenericViewSet): del(half_list[0]) return Response(res) - @action(methods=['post'], detail=False, perms_map={'post':'resource_cal_equip'}, serializer_class=ResourceCalListSerializer) + @action(methods=['post'], detail=False, perms_map={'post':'resource_cal'}, serializer_class=ResourceCalListSerializer) def cal_equip(self, request, pk=None): """ 设备状态查看 diff --git a/hb_server/apps/sam/views.py b/hb_server/apps/sam/views.py index da60306..95200e2 100644 --- a/hb_server/apps/sam/views.py +++ b/hb_server/apps/sam/views.py @@ -63,7 +63,7 @@ class OrderViewSet(CreateUpdateCustomMixin, ModelViewSet): return OrderCreateUpdateSerializer return super().get_serializer_class() - @action(methods=['get'], detail=False, perms_map={'get':'order_toplan'}) + @action(methods=['get'], detail=False, perms_map={'get':'*'}) def toplan(self, request, pk=None): queryset = Order.objects.filter(count__gt=F('planed_count')).order_by('-id') page = self.paginate_queryset(queryset) diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index d7b1480..9bbb3c4 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -141,7 +141,7 @@ class WMaterialViewSet(CreateUpdateModelAMixin, ListModelMixin, GenericViewSet): ordering_fields = ['material__number'] ordering = ['material__number'] - @action(methods=['post'], detail=False, perms_map={'post': 'pick'}, serializer_class=PickSerializer) + @action(methods=['post'], detail=False, perms_map={'post': 'wmaterial_pick'}, serializer_class=PickSerializer) def pick(self, request, pk=None): """ 领料 @@ -817,6 +817,7 @@ class OperationWproductViewSet(ListModelMixin, DestroyModelMixin, UpdateModelMix raise exceptions.APIException('该操作已提交') instance.delete() wp = instance.wproduct + wp.state = WProduct.WPR_ACT_STATE_DOWAIT wp.operation = None wp.save() return Response() From 8eea8e956ec1ba34e3b1467126dfe0415e1b947f Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 1 Mar 2022 14:21:42 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A4=B9=E5=B1=82=E5=90=8E=E6=A3=80?= =?UTF-8?q?=E9=AA=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/wpm/services.py | 8 +++++--- hb_server/apps/wpm/views.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hb_server/apps/wpm/services.py b/hb_server/apps/wpm/services.py index f836273..36db321 100644 --- a/hb_server/apps/wpm/services.py +++ b/hb_server/apps/wpm/services.py @@ -54,6 +54,10 @@ class WpmService(object): if wproduct.act_state == WProduct.WPR_ACT_STATE_TORETEST: # 复检 wproduct.act_state = WProduct.WPR_ACT_STATE_DOWAIT + elif wproduct.act_state == WProduct.WPR_ACT_STATE_TOTEST and \ + wproduct.subproduction_plan.subproduction.need_combtest : # 配置中需要质检 + wproduct.act_state = WProduct.WPR_ACT_STATE_TOCOMBTEST + elif wproduct.act_state == WProduct.WPR_ACT_STATE_TOTEST and \ test.is_midtesting is True: wproduct.act_state = WProduct.WPR_ACT_STATE_DOWAIT @@ -62,9 +66,7 @@ class WpmService(object): elif wproduct.act_state == WProduct.WPR_ACT_STATE_TOTEST and wproduct.material.type == Material.MA_TYPE_GOOD: # 成品检验 wproduct.act_state = WProduct.WPR_ACT_STATE_TOFINALTEST - elif wproduct.act_state == WProduct.WPR_ACT_STATE_TOTEST and \ - wproduct.subproduction_plan.subproduction.need_combtest : # 配置中需要质检 - wproduct.act_state = WProduct.WPR_ACT_STATE_TOCOMBTEST + else: wproduct.act_state = WProduct.WPR_ACT_STATE_OK if wproduct.number is None: # 产生半成品编号 diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index 9bbb3c4..b2e6c3e 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -817,7 +817,7 @@ class OperationWproductViewSet(ListModelMixin, DestroyModelMixin, UpdateModelMix raise exceptions.APIException('该操作已提交') instance.delete() wp = instance.wproduct - wp.state = WProduct.WPR_ACT_STATE_DOWAIT + wp.act_state = WProduct.WPR_ACT_STATE_DOWAIT wp.operation = None wp.save() return Response()