develp clean data bug
This commit is contained in:
parent
586fdfb219
commit
ee6177371a
|
@ -18,3 +18,8 @@ class TestTaskSerializer(serializers.Serializer):
|
|||
|
||||
class CleanDataSerializer(serializers.Serializer):
|
||||
datas = serializers.ListField(child=serializers.CharField(), label='数据分类列表', required=False, allow_null=True)
|
||||
|
||||
|
||||
class TestAlgoSerializer(serializers.Serializer):
|
||||
face_img = serializers.CharField()
|
||||
global_img = serializers.CharField()
|
||||
|
|
|
@ -5,11 +5,13 @@ from rest_framework.permissions import IsAdminUser
|
|||
from rest_framework.response import Response
|
||||
from rest_framework.serializers import Serializer
|
||||
from rest_framework.decorators import action
|
||||
from apps.develop.serializers import CleanDataSerializer, GenerateVoiceSerializer, SendSmsSerializer, TestTaskSerializer
|
||||
from apps.develop.serializers import CleanDataSerializer, GenerateVoiceSerializer, SendSmsSerializer, \
|
||||
TestTaskSerializer, TestAlgoSerializer
|
||||
from apps.develop.tasks import backup_database, backup_media, reload_web_git, reload_server_git, reload_server_only
|
||||
from rest_framework.exceptions import APIException
|
||||
from apps.ecm.service import create_remind, notify_event
|
||||
from apps.system.tasks import show
|
||||
from apps.third.clients import dhClient
|
||||
from apps.utils.sms import send_sms
|
||||
from apps.utils.speech import generate_voice
|
||||
|
||||
|
@ -161,17 +163,26 @@ class TestViewSet(CustomGenericViewSet):
|
|||
create_remind(event, params={'area': '生产车间', 'employee': '访客石非凡', 'event': '未带安全帽'})
|
||||
return Response()
|
||||
|
||||
@action(methods=['post'], detail=False, serializer_class=Serializer)
|
||||
@action(methods=['post'], detail=False, serializer_class=TestAlgoSerializer)
|
||||
def test_algo(self, request, pk=None):
|
||||
"""测试算法
|
||||
"""测试算法1
|
||||
|
||||
测试算法
|
||||
测试算法1
|
||||
"""
|
||||
from apps.ai.main import ai_analyse
|
||||
face_img = dhClient.get_full_pic(path=request.data['face_img'])
|
||||
global_img = dhClient.get_full_pic(path=request.data['global_img'])
|
||||
ret = ai_analyse(codes=['helmet'],
|
||||
face_img=face_img,
|
||||
global_img=global_img)
|
||||
return Response({'result':ret.keys(), 'face_img': face_img, 'global_img': global_img})
|
||||
|
||||
@action(methods=['post'], detail=False, serializer_class=Serializer)
|
||||
def test_algo_full(self, request, pk=None):
|
||||
"""测试算法2
|
||||
|
||||
测试算法2
|
||||
"""
|
||||
# from apps.ai.main import ai_analyse
|
||||
# ret = ai_analyse(codes=['helmet'],
|
||||
# face_img='https://10.99.5.24/evo-apigw/evo-oss/6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_caa9c522-24e2-11ed-884a-e4246c7d1635_62687586_62696295.jpg?token=0ff8bb53-c99e-4291-a587-272aa1f3f5eb',
|
||||
# global_img='https://10.99.5.24/evo-apigw/evo-oss/6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_caa9c522-24e2-11ed-884a-e4246c7d1635_62413404_62687586.jpg?token=0ff8bb53-c99e-4291-a587-272aa1f3f5eb')
|
||||
# return Response(ret.keys())
|
||||
from apps.ecm.service import dispatch_dahua_event
|
||||
data = {'id': 1661506561753, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '曲阳县金隅水泥厂', 'nodeCode': '1000038$1$0$23', 'deviceCode': '1000038', 'alarmCode': '30789599-b82b-45ba-9d3d-2de2bc1f1d00', 'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_3de82501-2521-11ed-884a-e4246c7d1635_2088390_2096301.jpg', 'nodeType': 2, 'alarmDate': '1661506557', 'alarmGrade': 2, 'isSave': True, 'extend': {'faceImageUrl': ['6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_3de82501-2521-11ed-884a-e4246c7d1635_2088390_2096301.jpg'], 'glass': 0, 'beard': 0, 'candidateInfo': [{'birthday': '2022-8-24', 'faceImageUrl': [
|
||||
'6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_3de82501-2521-11ed-884a-e4246c7d1635_2096301_2173187.jpg'], 'groupName': '全体人员', 'similarity': 96, 'sex': 1, 'cardType': 1, 'name': '石非凡', 'devPersonId': '46', 'id': '371324199803243658', 'type': 0}], 'sex': 0, 'occurrenceCount': 0, 'deviceCode': '1000038', 'globalScenePicUrl': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_3de82501-2521-11ed-884a-e4246c7d1635_1825520_2088390.jpg', 'eye': 0, 'alarmType': 1001003, 'perFlag': -1, 'mouth': 0, 'feature': [], 'isHit': True, 'channelSeq': 23, 'szSerialUUID': '', 'channelName': '窑头平台进料口', 'beginTime': 1661506557, 'endTime': 1661506557, 'age': -1, 'mask': 0}, 'unitType': 1, 'alarmType': 1001003, 'channelSeq': 23, 'orgCode': '001001001', 'channelName': '窑头平台进料口', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'evo-face', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None}
|
||||
|
@ -236,7 +247,7 @@ class TestViewSet(CustomGenericViewSet):
|
|||
Dept.objects.get_queryset(all=True).filter(type='rparty').delete(soft=False)
|
||||
if 'event' in datas:
|
||||
from apps.ecm.models import Event
|
||||
Event.objects.get_queryset(all=True).delete()
|
||||
Event.objects.all().delete()
|
||||
if 'opm' in datas:
|
||||
from apps.opm.models import Operation
|
||||
Operation.objects.all().delete()
|
||||
|
|
|
@ -87,4 +87,4 @@ def opl_task(vc_codes: list, opl_id: str):
|
|||
while True:
|
||||
for i in vchannels:
|
||||
Thread(target=snap_and_analyse, args=(i, algo_codes, opl)).start()
|
||||
time.sleep(2)
|
||||
time.sleep(4)
|
||||
|
|
|
@ -93,3 +93,27 @@ def opl_start(ticket: Ticket):
|
|||
task = opl_task.delay(vc_codes, opl_id)
|
||||
opl.mtask_id = task.task_id
|
||||
opl.save()
|
||||
|
||||
|
||||
def opl_end(ticket: Ticket):
|
||||
"""
|
||||
作业许可证关闭时执行
|
||||
"""
|
||||
opl = ticket.opl
|
||||
if opl.mtask_id:
|
||||
from celery.app.control import Control
|
||||
from server.celery import app
|
||||
celery_control = Control(app=app)
|
||||
# 关闭作业视频监控任务
|
||||
celery_control.revoke(opl.mtask_id, terminate=True)
|
||||
opl.mtask_id = None
|
||||
opl.save()
|
||||
operation = opl.operation
|
||||
opls = Opl.objects.filter(operation=operation)
|
||||
opls.filter(ticket=None).delete() # 删除无用许可证
|
||||
states = opls.values_list('ticket__state__type', flat=True)
|
||||
if 0 in states or 1 in states: # 查看工单状态
|
||||
pass
|
||||
else:
|
||||
operation.state = Operation.OP_CLOSE
|
||||
operation.save()
|
|
@ -7,30 +7,7 @@ from celery import shared_task
|
|||
from apps.wf.models import Ticket
|
||||
|
||||
|
||||
@shared_task(base=CustomTask)
|
||||
def opl_end(ticket_id):
|
||||
"""
|
||||
作业许可证关闭时执行
|
||||
"""
|
||||
ticket = Ticket.objects.get(id=ticket_id)
|
||||
opl = ticket.opl
|
||||
if opl.mtask_id:
|
||||
from celery.app.control import Control
|
||||
from server.celery import app
|
||||
celery_control = Control(app=app)
|
||||
# 关闭作业视频监控任务
|
||||
celery_control.revoke(opl.mtask_id, terminate=True)
|
||||
opl.mtask_id = None
|
||||
opl.save()
|
||||
operation = opl.operation
|
||||
opls = Opl.objects.filter(operation=operation)
|
||||
opls.filter(ticket=None).delete() # 删除无用许可证
|
||||
states = opls.values_list('ticket__state__type', flat=True)
|
||||
if 0 in states or 1 in states: # 查看工单状态
|
||||
pass
|
||||
else:
|
||||
operation.state = Operation.OP_CLOSE
|
||||
operation.save()
|
||||
|
||||
|
||||
|
||||
# @shared_task(base=CustomTask)
|
||||
|
|
|
@ -210,9 +210,9 @@ class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet):
|
|||
{
|
||||
"category": "alarm",
|
||||
},
|
||||
{
|
||||
"category": "state",
|
||||
}
|
||||
# {
|
||||
# "category": "state",
|
||||
# }
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -112,11 +112,19 @@ class TicketSerializer(CustomModelSerializer):
|
|||
class TicketListSerializer(CustomModelSerializer):
|
||||
workflow_ = WorkflowSimpleSerializer(source='workflow', read_only=True)
|
||||
state_ = StateSimpleSerializer(source='state', read_only=True)
|
||||
|
||||
participant_ = serializers.SerializerMethodField()
|
||||
class Meta:
|
||||
model = Ticket
|
||||
fields = ['id', 'title', 'sn', 'workflow', 'workflow_', 'state', 'state_',
|
||||
'act_state', 'create_time', 'update_time', 'participant_type', 'create_by', 'ticket_data']
|
||||
'act_state', 'create_time', 'update_time', 'participant_type', 'create_by', 'ticket_data',
|
||||
'participant_']
|
||||
|
||||
def get_participant_(self, obj):
|
||||
if obj.participant_type == 1:
|
||||
return UserSimpleSerializer(instance=User.objects.get(id=obj.participant)).data
|
||||
elif obj.participant_type == 2:
|
||||
return UserSimpleSerializer(instance=User.objects.filter(id__in=obj.participant), many=True).data
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def setup_eager_loading(queryset):
|
||||
|
@ -181,6 +189,7 @@ class TicketDetailSerializer(CustomModelSerializer):
|
|||
class TicketFlowSerializer(CustomModelSerializer):
|
||||
participant_ = UserSimpleSerializer(source='participant', read_only=True)
|
||||
state_ = StateSimpleSerializer(source='state', read_only=True)
|
||||
transition_attribute = serializers.CharField(source='transition.attribute_type', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = TicketFlow
|
||||
|
@ -190,6 +199,7 @@ class TicketFlowSerializer(CustomModelSerializer):
|
|||
class TicketFlowSimpleSerializer(CustomModelSerializer):
|
||||
participant_ = UserSimpleSerializer(source='participant', read_only=True)
|
||||
state_ = StateSimpleSerializer(source='state', read_only=True)
|
||||
transition_attribute = serializers.CharField(source='transition.attribute_type', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = TicketFlow
|
||||
|
|
Loading…
Reference in New Issue