From 7f4acd2370c4f6d1eb27228b0cfbde34bdce18a1 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 27 Dec 2024 09:17:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20objects.get=5For=5Fcreate=20=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E4=B8=BAsafe=5Fget=5For=5Fcreate=E7=94=A8=E4=BA=8E?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B9=B6=E5=8F=91=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/enm/tasks.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/apps/enm/tasks.py b/apps/enm/tasks.py index 51f0b1b7..b303717f 100644 --- a/apps/enm/tasks.py +++ b/apps/enm/tasks.py @@ -232,7 +232,7 @@ def cal_mpointstat_hour(mpointId: str, year: int, month: int, day: int, hour: in # 更新更高级别的值 if cascade or hour == 23: params_day = {"type": "day", "mpoint": mpoint, "year": year, "month": month, "day": day} - ms_day, _ = MpointStat.objects.get_or_create(**params_day, defaults=params_day) + ms_day, _ = MpointStat.safe_get_or_create(**params_day, defaults=params_day) if ms_day.val_correct is not None: ms_day.val = ms_day.val_correct else: @@ -243,7 +243,7 @@ def cal_mpointstat_hour(mpointId: str, year: int, month: int, day: int, hour: in if cascade or day in [28, 29, 30, 31]: params_month = {"type": "month", "mpoint": mpoint, "year": year, "month": month} - ms_month, _ = MpointStat.objects.get_or_create(**params_month, defaults=params_month) + ms_month, _ = MpointStat.safe_get_or_create(**params_month, defaults=params_month) if ms_month.val_correct is not None: ms_month.val = ms_month.val_correct else: @@ -254,7 +254,7 @@ def cal_mpointstat_hour(mpointId: str, year: int, month: int, day: int, hour: in if cascade or month == 12: params_year = {"type": "year", "mpoint": mpoint, "year": year} - ms_year, _ = MpointStat.objects.get_or_create(**params_year, defaults=params_year) + ms_year, _ = MpointStat.safe_get_or_create(**params_year, defaults=params_year) if ms_year.val_correct is not None: ms_year.val = ms_year.val_correct else: @@ -283,13 +283,13 @@ def cal_mpointstat_hour(mpointId: str, year: int, month: int, day: int, hour: in "day_s": day_s, "hour": hour, } - ms_hour_s, _ = MpointStat.objects.get_or_create(**params_hour_s, defaults=params_hour_s) + ms_hour_s, _ = MpointStat.safe_get_or_create(**params_hour_s, defaults=params_hour_s) ms_hour_s.val = ms_hour_s.val_correct if ms_hour_s.val_correct is not None else ms.val ms_hour_s.save() # 开始往上计算 params_sflog_s = {"type": "sflog", "mpoint": mpoint, "sflog": sflog, "year_s": year_s, "month_s": month_s, "day_s": day_s, "mgroup": mgroup} - ms_sflog_s, _ = MpointStat.objects.get_or_create(**params_sflog_s, defaults=params_sflog_s) + ms_sflog_s, _ = MpointStat.safe_get_or_create(**params_sflog_s, defaults=params_sflog_s) if ms_sflog_s.val_correct is not None: ms_sflog_s.val = ms_sflog_s.val_correct else: @@ -389,7 +389,7 @@ def cal_mpointstat_manual(mpointId: str, sflogId: str, mgroupId: str, year: int, mgroup = Mgroup.objects.get(id=mgroupId) if sflogId: params_day_s = {"type": "day_s", "mpoint": mpoint, "year_s": year_s, "month_s": month_s, "day_s": day_s, "mgroup": mgroup} - ms_day_s, _ = MpointStat.objects.get_or_create(**params_day_s, defaults=params_day_s) + ms_day_s, _ = MpointStat.safe_get_or_create(**params_day_s, defaults=params_day_s) if ms_day_s.val_correct is not None: ms_day_s.val = ms_day_s.val_correct else: @@ -400,7 +400,7 @@ def cal_mpointstat_manual(mpointId: str, sflogId: str, mgroupId: str, year: int, if day_s: params_month_s = {"type": "month_s", "mpoint": mpoint, "year_s": year_s, "month_s": month_s, "mgroup": mgroup} - ms_month_s, _ = MpointStat.objects.get_or_create(**params_month_s, defaults=params_month_s) + ms_month_s, _ = MpointStat.safe_get_or_create(**params_month_s, defaults=params_month_s) if ms_month_s.val_correct is not None: ms_month_s.val = ms_month_s.val_correct else: @@ -411,7 +411,7 @@ def cal_mpointstat_manual(mpointId: str, sflogId: str, mgroupId: str, year: int, if month_s: params_year_s = {"type": "year_s", "mpoint": mpoint, "year_s": year_s, "mgroup": mgroup} - ms_year_s, _ = MpointStat.objects.get_or_create(**params_year_s, defaults=params_year_s) + ms_year_s, _ = MpointStat.safe_get_or_create(**params_year_s, defaults=params_year_s) if ms_year_s.val_correct is not None: ms_year_s.val = ms_year_s.val_correct else: @@ -472,7 +472,7 @@ def cal_enstat(type, sflogId, mgroupId, year, month, day, hour, year_s, month_s, if team is None and type == "month_st": return year_s, month_s, day_s if type == "hour_s": - enstat, _ = EnStat.objects.get_or_create( + enstat, _ = EnStat.safe_get_or_create( type="hour_s", mgroup=mgroup, year=year, @@ -482,19 +482,19 @@ def cal_enstat(type, sflogId, mgroupId, year, month, day, hour, year_s, month_s, defaults={"type": "hour_s", "mgroup": mgroup, "year_s": year_s, "month_s": month_s, "day_s": day_s, "year": year, "month": month, "day": day, "hour": hour, "sflog": sflog}, ) elif type == "sflog": - enstat, _ = EnStat.objects.get_or_create(type="sflog", sflog=sflog, defaults={"type": "sflog", "sflog": sflog, "mgroup": mgroup, "year_s": year_s, "month_s": month_s, "day_s": day_s}) + enstat, _ = EnStat.safe_get_or_create(type="sflog", sflog=sflog, defaults={"type": "sflog", "sflog": sflog, "mgroup": mgroup, "year_s": year_s, "month_s": month_s, "day_s": day_s}) elif type == "day_s": - enstat, _ = EnStat.objects.get_or_create( + enstat, _ = EnStat.safe_get_or_create( type="day_s", mgroup=mgroup, year_s=year_s, month_s=month_s, day_s=day_s, defaults={"type": "day_s", "mgroup": mgroup, "year_s": year_s, "month_s": month_s, "day_s": day_s} ) elif type == "month_st": - enstat, _ = EnStat.objects.get_or_create( + enstat, _ = EnStat.safe_get_or_create( type="month_st", mgroup=mgroup, team=team, year_s=year_s, month_s=month_s, defaults={"type": "month_st", "mgroup": mgroup, "year_s": year_s, "month_s": month_s, "team": team} ) elif type == "month_s": - enstat, _ = EnStat.objects.get_or_create(type="month_s", mgroup=mgroup, year_s=year_s, month_s=month_s, defaults={"type": "month_s", "mgroup": mgroup, "year_s": year_s, "month_s": month_s}) + enstat, _ = EnStat.safe_get_or_create(type="month_s", mgroup=mgroup, year_s=year_s, month_s=month_s, defaults={"type": "month_s", "mgroup": mgroup, "year_s": year_s, "month_s": month_s}) elif type == "year_s": - enstat, _ = EnStat.objects.get_or_create(type="year_s", mgroup=mgroup, year_s=year_s, defaults={"type": "year_s", "mgroup": mgroup, "year_s": year_s}) + enstat, _ = EnStat.safe_get_or_create(type="year_s", mgroup=mgroup, year_s=year_s, defaults={"type": "year_s", "mgroup": mgroup, "year_s": year_s}) if "material" in this_cal_attrs: # 消耗物料统计(包括电耗) @@ -806,9 +806,9 @@ def cal_enstat2(type: str, year_s: int, month_s: int, day_s: int, cascade=True): else: return if type == "month_s": - enstat2, _ = EnStat2.objects.get_or_create(type="month_s", year_s=year_s, month_s=month_s, defaults={"year_s": year_s, "month_s": month_s, "type": "month_s"}) + enstat2, _ = EnStat2.safe_get_or_create(type="month_s", year_s=year_s, month_s=month_s, defaults={"year_s": year_s, "month_s": month_s, "type": "month_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.safe_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) # 加锁 try: material_bulk_clinker = Material.objects.get(code="bulk_clinker") # 散装熟料 @@ -996,7 +996,7 @@ def enm_alarm(year_s: int, month_s: int, day_s: int): from apps.ecm.service import notify_event now = timezone.now() - event_cate, _ = EventCate.objects.get_or_create(code="consume_exceed", defaults={"name": "能耗超过目标值", "code": "consume_exceed", "trigger": 30}) + event_cate, _ = EventCate.safe_get_or_create(code="consume_exceed", defaults={"name": "能耗超过目标值", "code": "consume_exceed", "trigger": 30}) for item in enm_alarms_list: mgroups = Mgroup.objects.filter(name=item[0]) for mgroup in mgroups: @@ -1027,7 +1027,7 @@ def enm_alarm(year_s: int, month_s: int, day_s: int): "enstat": enstat.id } event.save() - Eventdo.objects.get_or_create(cate=event_cate, event=event, defaults={"cate": event_cate, "event": event}) + Eventdo.safe_get_or_create(cate=event_cate, event=event, defaults={"cate": event_cate, "event": event}) notify_event(event)