From e94996471f7126c9e49efcf870174540dbbbe1c8 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 29 Aug 2024 09:28:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96enstat2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/enm/tasks.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/apps/enm/tasks.py b/apps/enm/tasks.py index f6ea1f5d..22ce1fef 100644 --- a/apps/enm/tasks.py +++ b/apps/enm/tasks.py @@ -27,6 +27,7 @@ from apps.wpm.tasks import get_total_sec_now, cal_exp_duration_sec from apps.utils.sql import DbConnection from apps.enm.services import db_insert_mplogx_batch from apps.enm.xscript import main +from django.core.exceptions import ObjectDoesNotExist myLogger = logging.getLogger("log") @@ -685,34 +686,42 @@ def cal_enstat2(type: str, year_s: int, month_s: int, day_s: int, cascade=True): elif type == "day_s": enstat2, _ = EnStat2.objects.get_or_create(type="day_s", year_s=year_s, month_s=month_s, day_s=day_s, defaults={"year_s": year_s, "month_s": month_s, "day_s": day_s, "type": "day_s"}) # enstat2 = EnStat2.objects.select_for_update().get(id=enstat2.id) # 加锁 - material_bulk_clinker = Material.objects.get(code="bulk_clinker") # 散装熟料 - material_bulk_cement = Material.objects.get(code="bulk_cement") # 散装水泥 - material_bag_cement = Material.objects.get(code="bag_cement") # 袋装水泥 + try: + material_bulk_clinker = Material.objects.get(code="bulk_clinker") # 散装熟料 + enstat2.bulk_clinker_price = get_price_unit(material_bulk_clinker, year_s, month_s) + except ObjectDoesNotExist: + enstat2.bulk_clinker_price = 0 + try: + material_bulk_cement = Material.objects.get(code="bulk_cement") # 散装水泥 + enstat2.bulk_cement_price = get_price_unit(material_bulk_cement, year_s, month_s) + except ObjectDoesNotExist: + enstat2.bulk_cement_price = 0 + try: + material_bag_cement = Material.objects.get(code="bag_cement") # 袋装水泥 + enstat2.bag_cement_price = get_price_unit(material_bag_cement, year_s, month_s) + except ObjectDoesNotExist: + enstat2.bag_cement_price = 0 - enstat2.bulk_cement_price = get_price_unit(material_bulk_cement, year_s, month_s) - enstat2.bulk_clinker_price = get_price_unit(material_bulk_clinker, year_s, month_s) - enstat2.bag_cement_price = get_price_unit(material_bag_cement, year_s, month_s) - if type == "month_s": - enstat2.bulk_cement_val = MpointStat.objects.filter(type="month_s", mpoint__material=material_bulk_cement, year_s=year_s, month_s=month_s).aggregate(sum=Sum("val"))["sum"] + enstat2.bulk_cement_val = MpointStat.objects.filter(type="month_s", mpoint__material__code="bulk_cement", year_s=year_s, month_s=month_s).aggregate(sum=Sum("val"))["sum"] elif type == "day_s": - enstat2.bulk_cement_val = MpointStat.objects.filter(type="day_s", mpoint__material=material_bulk_cement, year_s=year_s, month_s=month_s, day_s=day_s).aggregate(sum=Sum("val"))["sum"] + enstat2.bulk_cement_val = MpointStat.objects.filter(type="day_s", mpoint__material__code="bulk_cement", year_s=year_s, month_s=month_s, day_s=day_s).aggregate(sum=Sum("val"))["sum"] if enstat2.bulk_cement_val is None: enstat2.bulk_cement_val = 0 if type == "month_s": - enstat2.bag_cement_val = MpointStat.objects.filter(type="month_s", mpoint__material=material_bag_cement, year_s=year_s, month_s=month_s).aggregate(sum=Sum("val"))["sum"] + enstat2.bag_cement_val = MpointStat.objects.filter(type="month_s", mpoint__material__code='bag_cement', year_s=year_s, month_s=month_s).aggregate(sum=Sum("val"))["sum"] elif type == "day_s": - enstat2.bag_cement_val = MpointStat.objects.filter(type="day_s", mpoint__material=material_bag_cement, year_s=year_s, month_s=month_s, day_s=day_s).aggregate(sum=Sum("val"))["sum"] + enstat2.bag_cement_val = MpointStat.objects.filter(type="day_s", mpoint__material__code='bag_cement', year_s=year_s, month_s=month_s, day_s=day_s).aggregate(sum=Sum("val"))["sum"] if enstat2.bag_cement_val is None: enstat2.bag_cement_val = 0 if type == "month_s": - enstat2.bulk_clinker_val = MpointStat.objects.filter(type="month_s", mpoint__material=material_bulk_clinker, year_s=year_s, month_s=month_s).aggregate(sum=Sum("val"))["sum"] + enstat2.bulk_clinker_val = MpointStat.objects.filter(type="month_s", mpoint__material__code='bulk_clinker', year_s=year_s, month_s=month_s).aggregate(sum=Sum("val"))["sum"] elif type == "day_s": - enstat2.bulk_clinker_val = MpointStat.objects.filter(type="day_s", mpoint__material=material_bulk_clinker, year_s=year_s, month_s=month_s, day_s=day_s).aggregate(sum=Sum("val"))["sum"] + enstat2.bulk_clinker_val = MpointStat.objects.filter(type="day_s", mpoint__material__code='bulk_clinker', year_s=year_s, month_s=month_s, day_s=day_s).aggregate(sum=Sum("val"))["sum"] if enstat2.bulk_clinker_val is None: enstat2.bulk_clinker_val = 0