diff --git a/apps/develop/views.py b/apps/develop/views.py index af19f14b..abf00557 100755 --- a/apps/develop/views.py +++ b/apps/develop/views.py @@ -158,19 +158,19 @@ class CorrectViewSet(CustomGenericViewSet): Opl.objects.filter(id=opl.id).update(number=sn) return Response() - @action(methods=['post'], detail=False, serializer_class=Serializer) - def mgroups_allocate(self, request, pk=None): - """矫正测点分配 + # @action(methods=['post'], detail=False, serializer_class=Serializer) + # def mgroups_allocate(self, request, pk=None): + # """矫正测点分配 - 矫正测点分配 - """ - from apps.enm.models import Mpoint - for mpoint in Mpoint.objects.exclude(mgroup=None): - mgroup = mpoint.mgroup - mpoint.mgroups_allocate = [ - {'mgroup': mgroup.id, 'mgroup_name': mgroup.name, 'ratio': 1}] - mpoint.save() - return Response() + # 矫正测点分配 + # """ + # from apps.enm.models import Mpoint + # for mpoint in Mpoint.objects.exclude(mgroup=None): + # mgroup = mpoint.mgroup + # mpoint.mgroups_allocate = [ + # {'mgroup': mgroup.id, 'mgroup_name': mgroup.name, 'ratio': 1}] + # mpoint.save() + # return Response() @action(methods=['post'], detail=False, serializer_class=Serializer) def mpointstat(self, request, pk=None): diff --git a/apps/enm/migrations/0033_remove_mpoint_mgroups_allocate.py b/apps/enm/migrations/0033_remove_mpoint_mgroups_allocate.py new file mode 100644 index 00000000..1cb761d0 --- /dev/null +++ b/apps/enm/migrations/0033_remove_mpoint_mgroups_allocate.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.12 on 2024-05-08 04:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('enm', '0032_mpoint_mpoint_affect'), + ] + + operations = [ + migrations.RemoveField( + model_name='mpoint', + name='mgroups_allocate', + ), + ] diff --git a/apps/enm/models.py b/apps/enm/models.py index 3b269455..1b90e738 100644 --- a/apps/enm/models.py +++ b/apps/enm/models.py @@ -23,7 +23,6 @@ class Mpoint(CommonBModel): material = models.ForeignKey(Material, verbose_name="计量某种物料", on_delete=models.CASCADE, null=True, blank=True) ep_belong = models.ForeignKey("em.equipment", verbose_name="所属设备", related_name="mp_ep_belong", on_delete=models.SET_NULL, null=True, blank=True) mgroup = models.ForeignKey("mtm.mgroup", verbose_name="所在集合", on_delete=models.SET_NULL, null=True, blank=True) - mgroups_allocate = models.JSONField("各工段分配", default=list, blank=True, help_text='[{"mgroup":"x", "ratio": 1}]') is_rep_mgroup = models.BooleanField("是否代表所分配集合数据", default=False) formula = models.TextField("计算公式", default="") func_on_change = models.CharField("数据变动时执行方法", max_length=100, default="", blank=True) # 废弃字段暂时不用 diff --git a/apps/enm/serializers.py b/apps/enm/serializers.py index c0d3b498..9c999ec2 100644 --- a/apps/enm/serializers.py +++ b/apps/enm/serializers.py @@ -35,18 +35,6 @@ class MpointSerializer(CustomModelSerializer): attrs["cate"] = "material" if "mgroup" in attrs and attrs["mgroup"]: attrs["belong_dept"] = attrs["mgroup"].belong_dept - # attrs['mgroups_allocate'] = [{'mgroup': attrs['mgroup'].id, 'mgroup_name': attrs['mgroup'].name, 'ratio': 1}] - ratio_ = 0 - mgroupIds = [] - for i in attrs["mgroups_allocate"]: - if i["mgroup"]: - ratio_ = ratio_ + i["ratio"] - if i["mgroup"] in mgroupIds: - raise ParseError("分配集错误") - mgroupIds.append(i["mgroup"]) - i["mgroup_name"] = Mgroup.objects.get(id=i["mgroup"]).name - if attrs["mgroups_allocate"] and round(ratio_, 3) != 1.0: - raise ParseError("比例合计错误") return attrs diff --git a/apps/enm/tasks.py b/apps/enm/tasks.py index 6c8887a3..b3cc3886 100644 --- a/apps/enm/tasks.py +++ b/apps/enm/tasks.py @@ -153,11 +153,8 @@ def cal_mpointstat_hour(mpointId: str, year: int, month: int, day: int, hour: in ms_year.val = sum_dict_year["sum"] ms_year.save() - if mpoint.mgroups_allocate: # 如果有分配系数 - for allocate in mpoint.mgroups_allocate: - mgroup = Mgroup.objects.get(id=allocate["mgroup"]) - ratio = allocate["ratio"] - # 查找并绑定值班记录 + mgroup = mpoint.mgroup + if mgroup: sflog = get_sflog(mgroup, dt) if sflog is None: myLogger.error(f'{mgroup.name}--{dt}') @@ -177,7 +174,7 @@ def cal_mpointstat_hour(mpointId: str, year: int, month: int, day: int, hour: in "hour": hour, } ms_hour_s, _ = MpointStat.objects.get_or_create(**params_hour_s, defaults=params_hour_s) - ms_hour_s.val = ms.val * ratio + ms_hour_s.val = ms.val ms_hour_s.save() # 开始往上计算 @@ -218,7 +215,7 @@ def cal_mpointstats(is_now=1, year=None, month=None, day=None, hour=None): cal_mpointstat_hour(item.id, year, month, day, hour) # 再统计计算测点 - mpoints_compute = Mpoint.objects.filter(type=Mpoint.MT_COMPUTE, enabled=True).exclude(formula="").order_by('report_sortstr', 'create_time') + mpoints_compute = Mpoint.objects.filter(type=Mpoint.MT_COMPUTE, enabled=True, material__isnull=False).exclude(formula="").order_by('report_sortstr', 'create_time') # mpoints_other_group = [] for item in mpoints_compute: # mpoints_other_group.append(cal_mpointstat_hour.s(item.id, year, month, day, hour)) @@ -607,7 +604,7 @@ def cal_enstat2(type: str, year_s: int, month_s: int, day_s: int, cascade=True): # 全厂电量 # 全厂的耗电量和水量都得单独处理 use_mpoint_elec_val = False - mp_elecs = Mpoint.objects.filter(material__code="elec", code__endswith='__all', mgroups_allocate=[]) + mp_elecs = Mpoint.objects.filter(material__code="elec", code__endswith='__all') if mp_elecs.exists(): # use_mpoint_elec_val = True if type == "month_s":