feat: 优化enstat2
This commit is contained in:
parent
cf10f02829
commit
e94996471f
|
|
@ -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.utils.sql import DbConnection
|
||||||
from apps.enm.services import db_insert_mplogx_batch
|
from apps.enm.services import db_insert_mplogx_batch
|
||||||
from apps.enm.xscript import main
|
from apps.enm.xscript import main
|
||||||
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
myLogger = logging.getLogger("log")
|
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":
|
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.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) # 加锁
|
# enstat2 = EnStat2.objects.select_for_update().get(id=enstat2.id) # 加锁
|
||||||
material_bulk_clinker = Material.objects.get(code="bulk_clinker") # 散装熟料
|
try:
|
||||||
material_bulk_cement = Material.objects.get(code="bulk_cement") # 散装水泥
|
material_bulk_clinker = Material.objects.get(code="bulk_clinker") # 散装熟料
|
||||||
material_bag_cement = Material.objects.get(code="bag_cement") # 袋装水泥
|
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":
|
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":
|
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:
|
if enstat2.bulk_cement_val is None:
|
||||||
enstat2.bulk_cement_val = 0
|
enstat2.bulk_cement_val = 0
|
||||||
|
|
||||||
if type == "month_s":
|
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":
|
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:
|
if enstat2.bag_cement_val is None:
|
||||||
enstat2.bag_cement_val = 0
|
enstat2.bag_cement_val = 0
|
||||||
|
|
||||||
|
|
||||||
if type == "month_s":
|
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":
|
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:
|
if enstat2.bulk_clinker_val is None:
|
||||||
enstat2.bulk_clinker_val = 0
|
enstat2.bulk_clinker_val = 0
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue