feat: xscript相关调整
This commit is contained in:
parent
42cf64e9f7
commit
038e7f86cd
|
@ -7,6 +7,8 @@ from rest_framework.exceptions import ParseError
|
|||
from django.core.cache import cache
|
||||
from django.db import transaction
|
||||
from django_celery_beat.models import PeriodicTask
|
||||
from django_celery_results.models import TaskResult
|
||||
from apps.system.serializers import PTaskResultSerializer
|
||||
import json
|
||||
from apps.utils.tools import CodeAnalyzer
|
||||
|
||||
|
@ -251,4 +253,7 @@ class XscriptDetailSerializer(XscriptSerializer):
|
|||
last_run_data = serializers.SerializerMethodField()
|
||||
|
||||
def get_last_run_data(self, obj):
|
||||
return {}
|
||||
tr = TaskResult.objects.filter(task_kwargs__contains=obj.id).order_by('-date_done').first()
|
||||
if tr:
|
||||
return PTaskResultSerializer(instance=tr).data
|
||||
return None
|
|
@ -15,10 +15,18 @@ from server.settings import get_sysconfig
|
|||
from apps.enm.models import EnStat
|
||||
from django.db.models import Sum
|
||||
from typing import Dict, Any
|
||||
from decimal import Decimal
|
||||
|
||||
myLogger = logging.getLogger("log")
|
||||
|
||||
def db_insert_mplogx_batch(rows):
|
||||
for row in rows:
|
||||
_, tag_val, tag_code, tag_update = row
|
||||
# if '散装' in tag_code or '袋装' in tag_code:
|
||||
# myLogger.info(f"db_ins_mplogx tag_val: {tag_val} tag_code: {tag_code}-------{str(type(tag_val))}")
|
||||
# mpoint = Mpoint.objects.get(code=tag_code)
|
||||
# tag_val = float(tag_val)
|
||||
# myLogger.info(f"db_ins_mpoint_id: {mpoint.id}-------db_ins_float_val: {tag_val}")
|
||||
insert_mplogx_item(tag_code, tag_val, timezone.make_aware(tag_update), {})
|
||||
|
||||
def translate_eval_formula(exp_str: str, year: int, month: int, day: int, hour: int):
|
||||
"""
|
||||
|
|
|
@ -25,10 +25,8 @@ from apps.enm.services import insert_mplogx_from_king_rest_chunk, MpointCache
|
|||
from django.utils.timezone import localtime
|
||||
from apps.wpm.tasks import get_total_sec_now, cal_exp_duration_sec
|
||||
from apps.utils.sql import DbConnection
|
||||
from apps.enm.services import insert_mplogx_item
|
||||
from django.utils.timezone import make_aware
|
||||
from apps.utils.thread import MyThread
|
||||
from django.core.cache import cache
|
||||
from apps.enm.services import db_insert_mplogx_batch
|
||||
from apps.enm.xscript import main
|
||||
myLogger = logging.getLogger("log")
|
||||
|
||||
|
||||
|
@ -42,19 +40,9 @@ def insert_mplogx_from_xscript(xscript_id):
|
|||
xscript = Xscript.objects.get(id=xscript_id)
|
||||
mcodes_list = Mpoint.objects.filter(enabled=True).values_list('code', flat=True)
|
||||
if mcodes_list:
|
||||
exec(xscript.code)
|
||||
main(xscript, mcodes_list)
|
||||
|
||||
|
||||
def db_insert_mplogx_batch(rows):
|
||||
for row in rows:
|
||||
_, tag_val, tag_code, tag_update = row
|
||||
# if '散装' in tag_code or '袋装' in tag_code:
|
||||
# myLogger.info(f"db_ins_mplogx tag_val: {tag_val} tag_code: {tag_code}-------{str(type(tag_val))}")
|
||||
# mpoint = Mpoint.objects.get(code=tag_code)
|
||||
# tag_val = float(tag_val)
|
||||
# myLogger.info(f"db_ins_mpoint_id: {mpoint.id}-------db_ins_float_val: {tag_val}")
|
||||
insert_mplogx_item(tag_code, tag_val, make_aware(tag_update), {})
|
||||
|
||||
@shared_task(base=CustomTask)
|
||||
def db_insert_mplogx(limit:bool=True):
|
||||
"""
|
||||
|
|
|
@ -4,7 +4,7 @@ from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
|||
from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin, CustomListModelMixin
|
||||
from apps.enm.serializers import (MpointSerializer, MpLogxSerializer, MpointStatSerializer,
|
||||
EnStatSerializer, EnStat2Serializer, ReCalSerializer,
|
||||
MpointStatCorrectSerializer, EnStatAnaSerializer, XscriptSerializer)
|
||||
MpointStatCorrectSerializer, EnStatAnaSerializer, XscriptSerializer, XscriptDetailSerializer)
|
||||
from apps.enm.filters import MpointStatFilter, EnStatFilter, EnStat2Filter
|
||||
from apps.enm.tasks import cal_mpointstat_manual
|
||||
from rest_framework.response import Response
|
||||
|
@ -77,6 +77,7 @@ class XscriptViewSet(CustomModelViewSet):
|
|||
queryset = Xscript.objects.all()
|
||||
serializer_class = XscriptSerializer
|
||||
select_related_fields = ["myschedule", "periodictask"]
|
||||
retrieve_serializer_class = XscriptDetailSerializer
|
||||
search_fields = ['name']
|
||||
|
||||
@action(methods=['put'], detail=True, perms_map={'put': 'xscript.update'})
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
from django.utils import timezone
|
||||
from apps.utils.sql import DbConnection
|
||||
from datetime import datetime, timedelta
|
||||
from apps.enm.services import db_insert_mplogx_batch
|
||||
import requests
|
||||
|
||||
def main(xscript, mcodes_list):
|
||||
exec(xscript.code)
|
||||
|
Loading…
Reference in New Issue