From bec660008951fd666743af953971cfd82f5aba6b Mon Sep 17 00:00:00 2001 From: zty Date: Tue, 21 Jan 2025 09:24:58 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20enm/model=20=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=A2=B3=E6=8E=92=E6=94=BE=E5=BC=BA=E5=BA=A6=20=E5=92=8C=20?= =?UTF-8?q?=E7=A2=B3=E6=8E=92=E6=94=BE=E9=87=8F=E5=AD=97=E6=AE=B5=E4=B8=8E?= =?UTF-8?q?=20task=20=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enm/migrations/0055_auto_20250120_1318.py | 23 +++++++++++++++++++ apps/enm/models.py | 2 ++ apps/enm/tasks.py | 6 +++++ 3 files changed, 31 insertions(+) create mode 100644 apps/enm/migrations/0055_auto_20250120_1318.py diff --git a/apps/enm/migrations/0055_auto_20250120_1318.py b/apps/enm/migrations/0055_auto_20250120_1318.py new file mode 100644 index 00000000..0186a374 --- /dev/null +++ b/apps/enm/migrations/0055_auto_20250120_1318.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.12 on 2025-01-20 05:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enm', '0054_mpoint_up_down'), + ] + + operations = [ + migrations.AddField( + model_name='enstat', + name='carbon_emission', + field=models.FloatField(default=0, help_text='t', verbose_name='碳排放'), + ), + migrations.AddField( + model_name='enstat', + name='carbon_emission_unit', + field=models.FloatField(default=0, help_text='t/t', verbose_name='碳排放强度'), + ), + ] diff --git a/apps/enm/models.py b/apps/enm/models.py index d091df5f..ddc58346 100644 --- a/apps/enm/models.py +++ b/apps/enm/models.py @@ -165,6 +165,8 @@ class EnStat(BaseModel): shut_sec = models.PositiveIntegerField("停机时长", default=0, help_text="s") run_rate = models.FloatField("运转率", default=0, help_text="%") ammonia_consume = models.FloatField("氨水消耗", default=0, help_text="t") + carbon_emission = models.FloatField("碳排放", default=0, help_text="t") + carbon_emission_unit = models.FloatField("碳排放强度", default=0, help_text="t/t") note = models.TextField("备注", default="", blank=True) diff --git a/apps/enm/tasks.py b/apps/enm/tasks.py index d1ab7eae..1634ebfb 100644 --- a/apps/enm/tasks.py +++ b/apps/enm/tasks.py @@ -564,6 +564,12 @@ def cal_enstat(type, sflogId, mgroupId, year, month, day, hour, year_s, month_s, enstat.elec_consume_unit = enstat.elec_consume / enstat.total_production except ZeroDivisionError: enstat.elec_consume_unit = 0 + elif material.code == "carbon": + enstat.carbon_emission = amount_consume + try: + enstat.carbon_emission_unit = enstat.carbon_emission / enstat.total_production + except ZeroDivisionError: + enstat.carbon_emission_unit = 0 elif material.code == "water": enstat.water_consume = amount_consume elif material.code == "pcoal": From fa18fee7203c541baed34594cc202eb5ec0cfbee Mon Sep 17 00:00:00 2001 From: zty Date: Tue, 21 Jan 2025 09:40:52 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat=EF=BC=9Aremove=20=E7=A2=B3=E6=8E=92?= =?UTF-8?q?=E6=94=BE=E5=BC=BA=E5=BA=A6=E8=AE=A1=E7=AE=97=E5=92=8C=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enm/migrations/0056_auto_20250121_0940.py | 21 +++++++++++++++++++ apps/enm/models.py | 2 -- apps/enm/tasks.py | 6 ------ 3 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 apps/enm/migrations/0056_auto_20250121_0940.py diff --git a/apps/enm/migrations/0056_auto_20250121_0940.py b/apps/enm/migrations/0056_auto_20250121_0940.py new file mode 100644 index 00000000..d11bba92 --- /dev/null +++ b/apps/enm/migrations/0056_auto_20250121_0940.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.12 on 2025-01-21 01:40 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enm', '0055_auto_20250120_1318'), + ] + + operations = [ + migrations.RemoveField( + model_name='enstat', + name='carbon_emission', + ), + migrations.RemoveField( + model_name='enstat', + name='carbon_emission_unit', + ), + ] diff --git a/apps/enm/models.py b/apps/enm/models.py index ddc58346..d091df5f 100644 --- a/apps/enm/models.py +++ b/apps/enm/models.py @@ -165,8 +165,6 @@ class EnStat(BaseModel): shut_sec = models.PositiveIntegerField("停机时长", default=0, help_text="s") run_rate = models.FloatField("运转率", default=0, help_text="%") ammonia_consume = models.FloatField("氨水消耗", default=0, help_text="t") - carbon_emission = models.FloatField("碳排放", default=0, help_text="t") - carbon_emission_unit = models.FloatField("碳排放强度", default=0, help_text="t/t") note = models.TextField("备注", default="", blank=True) diff --git a/apps/enm/tasks.py b/apps/enm/tasks.py index 1634ebfb..d1ab7eae 100644 --- a/apps/enm/tasks.py +++ b/apps/enm/tasks.py @@ -564,12 +564,6 @@ def cal_enstat(type, sflogId, mgroupId, year, month, day, hour, year_s, month_s, enstat.elec_consume_unit = enstat.elec_consume / enstat.total_production except ZeroDivisionError: enstat.elec_consume_unit = 0 - elif material.code == "carbon": - enstat.carbon_emission = amount_consume - try: - enstat.carbon_emission_unit = enstat.carbon_emission / enstat.total_production - except ZeroDivisionError: - enstat.carbon_emission_unit = 0 elif material.code == "water": enstat.water_consume = amount_consume elif material.code == "pcoal": From 4254e226d37e1cd61babaed1819aa628099f59df Mon Sep 17 00:00:00 2001 From: zty Date: Tue, 21 Jan 2025 12:45:51 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20enm/view=20=E4=BF=AE=E6=94=B9correc?= =?UTF-8?q?t=20=E5=A2=9E=E5=8A=A0=E4=B8=8D=E8=83=BD=E6=A0=A1=E6=AD=A3?= =?UTF-8?q?=E5=BD=93=E6=97=A5=E6=88=96=E5=BD=93=E6=9C=88=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/enm/views.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/apps/enm/views.py b/apps/enm/views.py index 9be28b55..c7fa715d 100644 --- a/apps/enm/views.py +++ b/apps/enm/views.py @@ -1,4 +1,5 @@ from django.conf import settings +from rest_framework.exceptions import ParseError from apps.enm.models import Mpoint, MpointStat, EnStat, EnStat2, MpLogx, Xscript from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin, CustomListModelMixin, BulkUpdateModelMixin @@ -186,9 +187,21 @@ class MpointStatViewSet(BulkCreateModelMixin, BulkDestroyModelMixin, CustomListM 修正测点统计记录及统计值 """ + instance_id = kwargs.get("pk") + if not instance_id: + return Response({"detail": "ID not provided in the URL"}, status=400) instance: MpointStat = self.get_object() sr = MpointStatCorrectSerializer(data=request.data) sr.is_valid(raise_exception=True) + last_record = MpointStat.objects.filter(mpoint=instance.mpoint, + type=instance.type, + mgroup=instance.mgroup, + year_s=instance.year_s, + month_s=instance.month_s, + ).order_by(instance.type).values("id").last() + last_id = last_record["id"] if last_record else None + if str(last_id) == str(instance_id): + raise ParseError("不能修正当日或当月数据") vdata = sr.validated_data val_correct = vdata["val_correct"] instance.val_correct = val_correct From e0f7ce4636ee67a4807df9314a532c9d3099f777 Mon Sep 17 00:00:00 2001 From: zty Date: Tue, 21 Jan 2025 15:15:24 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat:=20qm=20=E5=90=88=E6=A0=BC=E7=8E=87?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E9=98=88=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/qm/migrations/0040_quastat_rate_pass_t.py | 18 ++++++++++++++++++ apps/qm/models.py | 1 + 2 files changed, 19 insertions(+) create mode 100644 apps/qm/migrations/0040_quastat_rate_pass_t.py diff --git a/apps/qm/migrations/0040_quastat_rate_pass_t.py b/apps/qm/migrations/0040_quastat_rate_pass_t.py new file mode 100644 index 00000000..7198a8df --- /dev/null +++ b/apps/qm/migrations/0040_quastat_rate_pass_t.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2025-01-21 06:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('qm', '0039_ftest_defect_main'), + ] + + operations = [ + migrations.AddField( + model_name='quastat', + name='rate_pass_t', + field=models.FloatField(blank=True, null=True, verbose_name='合格率目标值'), + ), + ] diff --git a/apps/qm/models.py b/apps/qm/models.py index cdccc39d..c8cc4a67 100644 --- a/apps/qm/models.py +++ b/apps/qm/models.py @@ -201,6 +201,7 @@ class QuaStat(CommonBDModel): num_test = models.PositiveSmallIntegerField('检测次数', null=True, blank=True) num_ok = models.PositiveSmallIntegerField('合格次数', null=True, blank=True) rate_pass = models.FloatField('合格率', null=True, blank=True) + rate_pass_t = models.FloatField('合格率目标值', null=True, blank=True) class FtestWork(CommonBDModel):