feat: enm/task view 修改校正测试 增加能修改 天和月的时间类型
This commit is contained in:
parent
5ecb3341e0
commit
095a6f9d51
|
@ -424,53 +424,75 @@ def cal_mpointstat_manual(mpointId: str, sflogId: str, mgroupId: str, year: int,
|
|||
手动录入的测点数据进行往上统计,一级一级往上
|
||||
"""
|
||||
mpoint = Mpoint.objects.get(id=mpointId)
|
||||
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.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:
|
||||
sum_dict_day_s = MpointStat.objects.filter(type="sflog", mpoint=mpoint, year_s=year_s, month_s=month_s, day_s=day_s, mgroup=mgroup).aggregate(sum=Sum("val"))
|
||||
ms_day_s.val = sum_dict_day_s['sum'] if sum_dict_day_s['sum'] is not None else 0
|
||||
ms_day_s.val_origin = ms_day_s.val
|
||||
ms_day_s.save()
|
||||
mgroup = Mgroup.objects.filter(id=mgroupId).first()
|
||||
if not mgroup:
|
||||
if day:
|
||||
params_month = {"type": "month", "mpoint": mpoint, "year": year, "month": 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:
|
||||
sum_dict_month = MpointStat.objects.filter(type="day", mpoint=mpoint, year=year, month=month).aggregate(sum=Sum("val"))
|
||||
ms_month.val = sum_dict_month['sum'] if sum_dict_month['sum'] is not None else 0
|
||||
ms_month.val_origin = ms_month.val
|
||||
ms_month.save()
|
||||
elif month:
|
||||
params_year = {"type": "year", "mpoint": mpoint, "year": 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:
|
||||
sum_dict_year = MpointStat.objects.filter(type="month", mpoint=mpoint, year=year).aggregate(sum=Sum("val"))
|
||||
ms_year.val = sum_dict_year['sum'] if sum_dict_year['sum'] is not None else 0
|
||||
ms_year.val_origin = ms_year.val
|
||||
ms_year.save()
|
||||
else:
|
||||
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.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:
|
||||
sum_dict_day_s = MpointStat.objects.filter(type="sflog", mpoint=mpoint, year_s=year_s, month_s=month_s, day_s=day_s, mgroup=mgroup).aggregate(sum=Sum("val"))
|
||||
ms_day_s.val = sum_dict_day_s['sum'] if sum_dict_day_s['sum'] is not None else 0
|
||||
ms_day_s.val_origin = ms_day_s.val
|
||||
ms_day_s.save()
|
||||
|
||||
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.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:
|
||||
sum_dict_month_s = MpointStat.objects.filter(type="day_s", mpoint=mpoint, year_s=year_s, month_s=month_s, mgroup=mgroup).aggregate(sum=Sum("val"))
|
||||
ms_month_s.val = sum_dict_month_s['sum'] if sum_dict_month_s['sum'] is not None else 0
|
||||
ms_month_s.val_origin = ms_month_s.val
|
||||
ms_month_s.save()
|
||||
|
||||
if month_s:
|
||||
params_year_s = {"type": "year_s", "mpoint": mpoint, "year_s": year_s, "mgroup": mgroup}
|
||||
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:
|
||||
sum_dict_year_s = MpointStat.objects.filter(type="month_s", mpoint=mpoint, year_s=year_s, mgroup=mgroup).aggregate(sum=Sum("val"))
|
||||
ms_year_s.val = sum_dict_year_s['sum'] if sum_dict_year_s['sum'] is not None else 0
|
||||
ms_year_s.val_origin = ms_year_s.val
|
||||
ms_year_s.save()
|
||||
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.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:
|
||||
sum_dict_month_s = MpointStat.objects.filter(type="day_s", mpoint=mpoint, year_s=year_s, month_s=month_s, mgroup=mgroup).aggregate(sum=Sum("val"))
|
||||
ms_month_s.val = sum_dict_month_s['sum'] if sum_dict_month_s['sum'] is not None else 0
|
||||
ms_month_s.val_origin = ms_month_s.val
|
||||
ms_month_s.save()
|
||||
|
||||
if month_s:
|
||||
params_year_s = {"type": "year_s", "mpoint": mpoint, "year_s": year_s, "mgroup": mgroup}
|
||||
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:
|
||||
sum_dict_year_s = MpointStat.objects.filter(type="month_s", mpoint=mpoint, year_s=year_s, mgroup=mgroup).aggregate(sum=Sum("val"))
|
||||
ms_year_s.val = sum_dict_year_s['sum'] if sum_dict_year_s['sum'] is not None else 0
|
||||
ms_year_s.val_origin = ms_year_s.val
|
||||
ms_year_s.save()
|
||||
|
||||
if next_cal: # 计算工段级数据,手动录入时调用
|
||||
start_cal_type = 'hour_s'
|
||||
if hour:
|
||||
if next_cal: # 计算工段级数据,手动录入时调用
|
||||
start_cal_type = 'hour_s'
|
||||
elif sflogId:
|
||||
start_cal_type = 'sflog'
|
||||
elif day_s:
|
||||
start_cal_type = 'day_s'
|
||||
elif month_s:
|
||||
start_cal_type = 'month_s'
|
||||
elif year_s:
|
||||
start_cal_type = 'year_s'
|
||||
cal_enstat(start_cal_type, sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s)
|
||||
if hour:
|
||||
start_cal_type = 'hour_s'
|
||||
elif sflogId:
|
||||
start_cal_type = 'sflog'
|
||||
elif day_s:
|
||||
start_cal_type = 'day_s'
|
||||
elif month_s:
|
||||
start_cal_type = 'month_s'
|
||||
elif year_s:
|
||||
start_cal_type = 'year_s'
|
||||
cal_enstat(start_cal_type, sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -193,12 +193,22 @@ class MpointStatViewSet(BulkCreateModelMixin, BulkDestroyModelMixin, CustomListM
|
|||
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_record = None
|
||||
if instance.type in ['month_s', 'month']:
|
||||
last_record = MpointStat.objects.filter(mpoint=instance.mpoint,
|
||||
type=instance.type,
|
||||
mgroup=instance.mgroup,
|
||||
year_s=instance.year_s,
|
||||
year = instance.year
|
||||
).order_by(instance.type).values("id").last()
|
||||
elif instance.type in ['day_s', 'day']:
|
||||
last_record = MpointStat.objects.filter(mpoint=instance.mpoint,
|
||||
type=instance.type,
|
||||
year = instance.year,
|
||||
year_s=instance.year_s,
|
||||
month_s=instance.month_s,
|
||||
month = instance.month
|
||||
).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("不能修正当日或当月数据")
|
||||
|
@ -208,13 +218,17 @@ class MpointStatViewSet(BulkCreateModelMixin, BulkDestroyModelMixin, CustomListM
|
|||
instance.val = val_correct
|
||||
instance.update_by = request.user
|
||||
instance.save()
|
||||
mpoint, sflog, mgroup, year_s, month_s, day_s = instance.mpoint, instance.sflog, instance.mgroup, instance.year_s, instance.month_s, instance.day_s
|
||||
mpoint, sflog, mgroup, year_s, month_s, day_s, year, month, day = instance.mpoint, instance.sflog, instance.mgroup, instance.year_s, instance.month_s, instance.day_s, instance.year, instance.month, instance.day
|
||||
# sflog 可能为None
|
||||
if sflog is None:
|
||||
sflogId = None
|
||||
else:
|
||||
sflogId = sflog.id
|
||||
cal_mpointstat_manual.delay(mpoint.id, sflogId, mgroup.id, None, None, None, None, year_s, month_s, day_s, next_cal=1)
|
||||
if mgroup is None:
|
||||
mgroupId = None
|
||||
else:
|
||||
mgroupId = mgroup.id
|
||||
cal_mpointstat_manual.delay(mpoint.id, sflogId, mgroupId, year, month, day, None, year_s, month_s, day_s, next_cal=1)
|
||||
return Response()
|
||||
|
||||
@action(methods=["post"], detail=False, perms_map={"post": "mpointstat.correct"}, serializer_class=ReCalSerializer)
|
||||
|
|
Loading…
Reference in New Issue