feat: 增加recal接口
This commit is contained in:
parent
c0dd70982a
commit
f5f0675f91
|
@ -140,4 +140,9 @@ class EnStat2Serializer(CustomModelSerializer):
|
|||
ret_one_val = ret[key]
|
||||
if isinstance(ret_one_val, float):
|
||||
ret[key] = "{:.2f}".format(round(ret_one_val, 2))
|
||||
return ret
|
||||
return ret
|
||||
|
||||
|
||||
class ReCalSerializer(serializers.Serializer):
|
||||
start_time = serializers.DateTimeField(label="开始时间")
|
||||
end_time = serializers.DateTimeField(label="结束时间")
|
|
@ -3,10 +3,12 @@ from apps.enm.models import Mpoint, MpLog, MpointStat, EnStat, EnStat2
|
|||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
||||
from rest_framework.mixins import ListModelMixin
|
||||
from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin
|
||||
from apps.enm.serializers import (MpointSerializer, MpLogSerializer, MpointStatSerializer, EnStatSerializer, EnStat2Serializer)
|
||||
from apps.enm.serializers import (MpointSerializer, MpLogSerializer, MpointStatSerializer, EnStatSerializer, EnStat2Serializer, ReCalSerializer)
|
||||
from apps.enm.filters import MpointStatFilter, EnStatFilter
|
||||
from apps.enm.tasks import cal_mpointstat_manual
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.decorators import action
|
||||
from apps.enm.tasks import cal_mpointstats_duration
|
||||
|
||||
class MpointViewSet(CustomModelViewSet):
|
||||
"""
|
||||
|
@ -55,6 +57,18 @@ class MpointStatViewSet(BulkCreateModelMixin, BulkDestroyModelMixin, ListModelMi
|
|||
instance.delete()
|
||||
cal_mpointstat_manual.delay(mpoint.id, sflog.id, mgroup.id, None, None, None, None, year_s, month_s, day_s)
|
||||
|
||||
@action(methods=['post'], detail=False, perms_map={'post': 'mpointstat.create'}, serializer_class=ReCalSerializer)
|
||||
def recal(self, request, *args, **kwargs):
|
||||
"""重新运行某段时间的enm计算
|
||||
|
||||
重新运行某段时间的enm计算
|
||||
"""
|
||||
sr = ReCalSerializer(data=request.data)
|
||||
sr.is_valid(raise_exception=True)
|
||||
vdata = sr.validated_data
|
||||
task = cal_mpointstats_duration.delay(vdata['start_time'], vdata['end_time'])
|
||||
return Response({'task_id': task.task_id})
|
||||
|
||||
|
||||
class EnStatViewSet(ListModelMixin, CustomGenericViewSet):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue