From 0910825ad5700e1f5a49e6469491922551ad98ad Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 25 Feb 2022 15:32:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=98=E5=9C=A8=E5=B7=A5=E5=8D=95=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E6=8A=A5=E5=BA=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/develop/tasks.py | 7 +++---- hb_server/apps/inm/serializers.py | 2 ++ hb_server/apps/inm/services.py | 13 ++++++++----- hb_server/apps/wpm/views.py | 2 ++ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/hb_server/apps/develop/tasks.py b/hb_server/apps/develop/tasks.py index f4e566d..a7345dc 100644 --- a/hb_server/apps/develop/tasks.py +++ b/hb_server/apps/develop/tasks.py @@ -1,7 +1,8 @@ from __future__ import absolute_import, unicode_literals from rest_framework.response import Response from celery import shared_task - +import os +import subprocess @shared_task @@ -9,15 +10,13 @@ def backup_database(): """ 备份数据库 """ - import os ret = os.popen('sudo pg_dump -U postgres -d hberp -f /home/lighthouse/hberp_backup.sql') return Response() @shared_task def reload_server(): - import os # 更新后端 os.chdir('/home/lighthouse/hberp') - ret = os.popen('sudo git pull && sudo service supervisor reload') + ret = subprocess.run('sudo git pull && sudo service supervisor reload') return Response(ret.read()) diff --git a/hb_server/apps/inm/serializers.py b/hb_server/apps/inm/serializers.py index 1b14ae3..6f29ac2 100644 --- a/hb_server/apps/inm/serializers.py +++ b/hb_server/apps/inm/serializers.py @@ -192,6 +192,8 @@ class FIFOInPurSerializer(serializers.ModelSerializer): def create(self, validated_data): pu_order = validated_data['pu_order'] + if pu_order.is_audited: + raise ValidationError('该采购订单未审核') validated_data['vendor'] = pu_order.vendor validated_data['number'] = 'RK' + ranstr(7) validated_data['type'] = FIFO.FIFO_TYPE_PUR_IN diff --git a/hb_server/apps/inm/services.py b/hb_server/apps/inm/services.py index aac1d34..3bff1ac 100644 --- a/hb_server/apps/inm/services.py +++ b/hb_server/apps/inm/services.py @@ -17,15 +17,18 @@ class InmService: for i in FIFOItem.objects.filter(fifo=instance): material = i.material warehouse = i.warehouse - o1, _ = Inventory.objects.get_or_create(material=material, warehouse=warehouse, \ - defaults={'material':material, 'warehouse':warehouse, 'count':0}) - o1.count = o1.count + i.count - o1.save() + o2, _ = MaterialBatch.objects.get_or_create(material=material, warehouse=warehouse, batch=i.batch,\ defaults={'material':material, 'warehouse':warehouse, 'count':0, 'batch':i.batch}) o2.count = o2.count + i.count o2.save() - material.count = material.count + i.count + + iv = Inventory.objects.get_or_create(material=material, warehouse=warehouse, \ + defaults={'material':material, 'warehouse':warehouse, 'count':0}) + iv.count = MaterialBatch.objects.filter(material=material, warehouse=warehouse).count() + iv.save() + + material.count = MaterialBatch.objects.filter(material=material).count() material.save() # 创建IProduct diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index 04c7f9f..00410a0 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -352,6 +352,8 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet): serializer = ScrapSerializer(data=request.data) serializer.is_valid(raise_exception=True) vdata = serializer.validated_data + if obj.ticket is not None: + raise exceptions.APIException('该产品存在进行工单') if obj.act_state == WProduct.WPR_ACT_STATE_NOTOK: pass elif obj.step.process.id == 1 and \