Merge branch 'master' of https://e.coding.net/ctcdevteam/ehs/ehs_server
This commit is contained in:
commit
12c6cc0d17
|
@ -424,7 +424,29 @@ def cal_mpointstat_manual(mpointId: str, sflogId: str, mgroupId: str, year: int,
|
||||||
手动录入的测点数据进行往上统计,一级一级往上
|
手动录入的测点数据进行往上统计,一级一级往上
|
||||||
"""
|
"""
|
||||||
mpoint = Mpoint.objects.get(id=mpointId)
|
mpoint = Mpoint.objects.get(id=mpointId)
|
||||||
mgroup = Mgroup.objects.get(id=mgroupId)
|
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:
|
if sflogId:
|
||||||
params_day_s = {"type": "day_s", "mpoint": mpoint, "year_s": year_s, "month_s": month_s, "day_s": day_s, "mgroup": mgroup}
|
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)
|
ms_day_s, _ = MpointStat.safe_get_or_create(**params_day_s, defaults=params_day_s)
|
||||||
|
|
|
@ -193,11 +193,21 @@ class MpointStatViewSet(BulkCreateModelMixin, BulkDestroyModelMixin, CustomListM
|
||||||
instance: MpointStat = self.get_object()
|
instance: MpointStat = self.get_object()
|
||||||
sr = MpointStatCorrectSerializer(data=request.data)
|
sr = MpointStatCorrectSerializer(data=request.data)
|
||||||
sr.is_valid(raise_exception=True)
|
sr.is_valid(raise_exception=True)
|
||||||
|
last_record = None
|
||||||
|
if instance.type in ['month_s', 'month']:
|
||||||
last_record = MpointStat.objects.filter(mpoint=instance.mpoint,
|
last_record = MpointStat.objects.filter(mpoint=instance.mpoint,
|
||||||
type=instance.type,
|
type=instance.type,
|
||||||
mgroup=instance.mgroup,
|
mgroup=instance.mgroup,
|
||||||
year_s=instance.year_s,
|
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_s=instance.month_s,
|
||||||
|
month = instance.month
|
||||||
).order_by(instance.type).values("id").last()
|
).order_by(instance.type).values("id").last()
|
||||||
last_id = last_record["id"] if last_record else None
|
last_id = last_record["id"] if last_record else None
|
||||||
if str(last_id) == str(instance_id):
|
if str(last_id) == str(instance_id):
|
||||||
|
@ -208,13 +218,17 @@ class MpointStatViewSet(BulkCreateModelMixin, BulkDestroyModelMixin, CustomListM
|
||||||
instance.val = val_correct
|
instance.val = val_correct
|
||||||
instance.update_by = request.user
|
instance.update_by = request.user
|
||||||
instance.save()
|
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
|
# sflog 可能为None
|
||||||
if sflog is None:
|
if sflog is None:
|
||||||
sflogId = None
|
sflogId = None
|
||||||
else:
|
else:
|
||||||
sflogId = sflog.id
|
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()
|
return Response()
|
||||||
|
|
||||||
@action(methods=["post"], detail=False, perms_map={"post": "mpointstat.correct"}, serializer_class=ReCalSerializer)
|
@action(methods=["post"], detail=False, perms_map={"post": "mpointstat.correct"}, serializer_class=ReCalSerializer)
|
||||||
|
|
Loading…
Reference in New Issue