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.core.cache import cache
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django_celery_beat.models import PeriodicTask
|
from django_celery_beat.models import PeriodicTask
|
||||||
|
from django_celery_results.models import TaskResult
|
||||||
|
from apps.system.serializers import PTaskResultSerializer
|
||||||
import json
|
import json
|
||||||
from apps.utils.tools import CodeAnalyzer
|
from apps.utils.tools import CodeAnalyzer
|
||||||
|
|
||||||
|
@ -251,4 +253,7 @@ class XscriptDetailSerializer(XscriptSerializer):
|
||||||
last_run_data = serializers.SerializerMethodField()
|
last_run_data = serializers.SerializerMethodField()
|
||||||
|
|
||||||
def get_last_run_data(self, obj):
|
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 apps.enm.models import EnStat
|
||||||
from django.db.models import Sum
|
from django.db.models import Sum
|
||||||
from typing import Dict, Any
|
from typing import Dict, Any
|
||||||
from decimal import Decimal
|
|
||||||
|
|
||||||
myLogger = logging.getLogger("log")
|
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):
|
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 django.utils.timezone import localtime
|
||||||
from apps.wpm.tasks import get_total_sec_now, cal_exp_duration_sec
|
from apps.wpm.tasks import get_total_sec_now, cal_exp_duration_sec
|
||||||
from apps.utils.sql import DbConnection
|
from apps.utils.sql import DbConnection
|
||||||
from apps.enm.services import insert_mplogx_item
|
from apps.enm.services import db_insert_mplogx_batch
|
||||||
from django.utils.timezone import make_aware
|
from apps.enm.xscript import main
|
||||||
from apps.utils.thread import MyThread
|
|
||||||
from django.core.cache import cache
|
|
||||||
myLogger = logging.getLogger("log")
|
myLogger = logging.getLogger("log")
|
||||||
|
|
||||||
|
|
||||||
|
@ -42,19 +40,9 @@ def insert_mplogx_from_xscript(xscript_id):
|
||||||
xscript = Xscript.objects.get(id=xscript_id)
|
xscript = Xscript.objects.get(id=xscript_id)
|
||||||
mcodes_list = Mpoint.objects.filter(enabled=True).values_list('code', flat=True)
|
mcodes_list = Mpoint.objects.filter(enabled=True).values_list('code', flat=True)
|
||||||
if mcodes_list:
|
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)
|
@shared_task(base=CustomTask)
|
||||||
def db_insert_mplogx(limit:bool=True):
|
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.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin, CustomListModelMixin
|
||||||
from apps.enm.serializers import (MpointSerializer, MpLogxSerializer, MpointStatSerializer,
|
from apps.enm.serializers import (MpointSerializer, MpLogxSerializer, MpointStatSerializer,
|
||||||
EnStatSerializer, EnStat2Serializer, ReCalSerializer,
|
EnStatSerializer, EnStat2Serializer, ReCalSerializer,
|
||||||
MpointStatCorrectSerializer, EnStatAnaSerializer, XscriptSerializer)
|
MpointStatCorrectSerializer, EnStatAnaSerializer, XscriptSerializer, XscriptDetailSerializer)
|
||||||
from apps.enm.filters import MpointStatFilter, EnStatFilter, EnStat2Filter
|
from apps.enm.filters import MpointStatFilter, EnStatFilter, EnStat2Filter
|
||||||
from apps.enm.tasks import cal_mpointstat_manual
|
from apps.enm.tasks import cal_mpointstat_manual
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
@ -77,6 +77,7 @@ class XscriptViewSet(CustomModelViewSet):
|
||||||
queryset = Xscript.objects.all()
|
queryset = Xscript.objects.all()
|
||||||
serializer_class = XscriptSerializer
|
serializer_class = XscriptSerializer
|
||||||
select_related_fields = ["myschedule", "periodictask"]
|
select_related_fields = ["myschedule", "periodictask"]
|
||||||
|
retrieve_serializer_class = XscriptDetailSerializer
|
||||||
search_fields = ['name']
|
search_fields = ['name']
|
||||||
|
|
||||||
@action(methods=['put'], detail=True, perms_map={'put': 'xscript.update'})
|
@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