From 19f6e18154c9f473cef69ee0cdf6d514c65e3aca Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 9 Apr 2024 08:40:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20material=E7=9A=84count=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=AF=B9=E6=89=80=E6=9C=89=E5=BA=93=E5=AD=98=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/inm/correct.py | 7 ------- apps/inm/services.py | 6 +++++- apps/inm/tasks.py | 8 ++++++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/apps/inm/correct.py b/apps/inm/correct.py index 588f27fe..bd4587c9 100644 --- a/apps/inm/correct.py +++ b/apps/inm/correct.py @@ -44,10 +44,3 @@ def correct_mb_count_notok(): InmService.update_mb_after_test(mi) except ParseError as e: MIOItem.objects.filter(id=mi.id).update(test_date=None) - - -def correct_material_count(): - """ - 矫正现有物料总数量 - """ - res = MaterialBatch.objects.values('material').aggregate(total=Sum('count')) \ No newline at end of file diff --git a/apps/inm/services.py b/apps/inm/services.py index ce2ce8df..8241177c 100644 --- a/apps/inm/services.py +++ b/apps/inm/services.py @@ -45,10 +45,14 @@ class InmService: def cal_mat_count(cls, material: Material): material_count = MaterialBatch.objects.filter( material=material).aggregate(total=Sum('count'))['total'] + from apps.wpm.models import WMaterial + wm_count = WMaterial.objects.filter(material=material).aggregate(total=Sum('count'))['total'] if material_count is None: material_count = 0 + if wm_count is None: + wm_count = 0 Material.objects.filter(id=material.id).update( - count=material_count) + count=material_count+wm_count) @classmethod def update_mb(cls, instance: MIO, in_or_out: int = 1): diff --git a/apps/inm/tasks.py b/apps/inm/tasks.py index cff8fbfa..8eb0b929 100644 --- a/apps/inm/tasks.py +++ b/apps/inm/tasks.py @@ -4,10 +4,14 @@ from celery import shared_task from apps.mtm.models import Material @shared_task(base=CustomTask) -def correct_material_count(): +def correct_material_count(materialId: str = ''): """ 矫正现有物料总数量 """ from apps.inm.services import InmService - for m in Material.objects.all(): + if materialId: + objs = Material.objects.filter(id=materialId) + else: + objs = Material.objects.all() + for m in objs: InmService.cal_mat_count(m) \ No newline at end of file