feat: 移除mgroups_allocate字段
This commit is contained in:
parent
895b8c1810
commit
30974d90b0
|
@ -158,19 +158,19 @@ class CorrectViewSet(CustomGenericViewSet):
|
||||||
Opl.objects.filter(id=opl.id).update(number=sn)
|
Opl.objects.filter(id=opl.id).update(number=sn)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, serializer_class=Serializer)
|
# @action(methods=['post'], detail=False, serializer_class=Serializer)
|
||||||
def mgroups_allocate(self, request, pk=None):
|
# def mgroups_allocate(self, request, pk=None):
|
||||||
"""矫正测点分配
|
# """矫正测点分配
|
||||||
|
|
||||||
矫正测点分配
|
# 矫正测点分配
|
||||||
"""
|
# """
|
||||||
from apps.enm.models import Mpoint
|
# from apps.enm.models import Mpoint
|
||||||
for mpoint in Mpoint.objects.exclude(mgroup=None):
|
# for mpoint in Mpoint.objects.exclude(mgroup=None):
|
||||||
mgroup = mpoint.mgroup
|
# mgroup = mpoint.mgroup
|
||||||
mpoint.mgroups_allocate = [
|
# mpoint.mgroups_allocate = [
|
||||||
{'mgroup': mgroup.id, 'mgroup_name': mgroup.name, 'ratio': 1}]
|
# {'mgroup': mgroup.id, 'mgroup_name': mgroup.name, 'ratio': 1}]
|
||||||
mpoint.save()
|
# mpoint.save()
|
||||||
return Response()
|
# return Response()
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, serializer_class=Serializer)
|
@action(methods=['post'], detail=False, serializer_class=Serializer)
|
||||||
def mpointstat(self, request, pk=None):
|
def mpointstat(self, request, pk=None):
|
||||||
|
|
|
@ -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',
|
||||||
|
),
|
||||||
|
]
|
|
@ -23,7 +23,6 @@ class Mpoint(CommonBModel):
|
||||||
material = models.ForeignKey(Material, verbose_name="计量某种物料", on_delete=models.CASCADE, null=True, blank=True)
|
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)
|
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)
|
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)
|
is_rep_mgroup = models.BooleanField("是否代表所分配集合数据", default=False)
|
||||||
formula = models.TextField("计算公式", default="")
|
formula = models.TextField("计算公式", default="")
|
||||||
func_on_change = models.CharField("数据变动时执行方法", max_length=100, default="", blank=True) # 废弃字段暂时不用
|
func_on_change = models.CharField("数据变动时执行方法", max_length=100, default="", blank=True) # 废弃字段暂时不用
|
||||||
|
|
|
@ -35,18 +35,6 @@ class MpointSerializer(CustomModelSerializer):
|
||||||
attrs["cate"] = "material"
|
attrs["cate"] = "material"
|
||||||
if "mgroup" in attrs and attrs["mgroup"]:
|
if "mgroup" in attrs and attrs["mgroup"]:
|
||||||
attrs["belong_dept"] = attrs["mgroup"].belong_dept
|
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
|
return attrs
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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.val = sum_dict_year["sum"]
|
||||||
ms_year.save()
|
ms_year.save()
|
||||||
|
|
||||||
if mpoint.mgroups_allocate: # 如果有分配系数
|
mgroup = mpoint.mgroup
|
||||||
for allocate in mpoint.mgroups_allocate:
|
if mgroup:
|
||||||
mgroup = Mgroup.objects.get(id=allocate["mgroup"])
|
|
||||||
ratio = allocate["ratio"]
|
|
||||||
# 查找并绑定值班记录
|
|
||||||
sflog = get_sflog(mgroup, dt)
|
sflog = get_sflog(mgroup, dt)
|
||||||
if sflog is None:
|
if sflog is None:
|
||||||
myLogger.error(f'{mgroup.name}--{dt}')
|
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,
|
"hour": hour,
|
||||||
}
|
}
|
||||||
ms_hour_s, _ = MpointStat.objects.get_or_create(**params_hour_s, defaults=params_hour_s)
|
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()
|
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)
|
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 = []
|
# mpoints_other_group = []
|
||||||
for item in mpoints_compute:
|
for item in mpoints_compute:
|
||||||
# mpoints_other_group.append(cal_mpointstat_hour.s(item.id, year, month, day, hour))
|
# 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
|
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(): #
|
if mp_elecs.exists(): #
|
||||||
use_mpoint_elec_val = True
|
use_mpoint_elec_val = True
|
||||||
if type == "month_s":
|
if type == "month_s":
|
||||||
|
|
Loading…
Reference in New Issue