增加certificate url

This commit is contained in:
曹前明 2022-06-24 10:27:03 +08:00
parent 2f750d3e5b
commit 903dbf98ca
10 changed files with 57 additions and 26 deletions

View File

@ -38,7 +38,7 @@ def reload_web_git():
@shared_task @shared_task
def reload_server_only(): def reload_server_only():
command = 'echo "{}" | sudo supervisorctl reload'.format(SD_PWD) command = 'echo "{}" | sudo -S supervisorctl reload'.format(SD_PWD)
completed = subprocess.run(command, shell=True, capture_output=True, text=True) completed = subprocess.run(command, shell=True, capture_output=True, text=True)
return completed return completed

View File

@ -22,7 +22,7 @@ class ReloadServerGit(APIView):
else: else:
from server.settings import myLogger from server.settings import myLogger
myLogger.error(completed) myLogger.error(completed)
raise ParseError(completed.stdout) raise ParseError(completed.stderr)
class ReloadClientGit(APIView): class ReloadClientGit(APIView):

View File

@ -1,4 +1,5 @@
from apps.hrm.models import Employee from apps.hrm.models import Employee
from apps.third.models import TDevice
from apps.third.tapis import dhapis from apps.third.tapis import dhapis
from apps.third.clients import dhClient from apps.third.clients import dhClient
from apps.utils.tools import rannum from apps.utils.tools import rannum
@ -134,8 +135,14 @@ class HrmService:
dh_face_card = res['id'] dh_face_card = res['id']
return {'dh_id': dh_id, 'dh_photo': dh_photo, 'dh_face_card': dh_face_card} return {'dh_id': dh_id, 'dh_photo': dh_photo, 'dh_face_card': dh_face_card}
def swipe(cls, data:dict): @classmethod
def swipe(cls, data: dict):
""" """
刷卡事件 刷卡事件/用于记录考勤
""" """
pass deviceCode = data['infoArray']['deviceCode']
device = TDevice.objects.filter(code=deviceCode).first()
if not device:
device = TDevice.objects.create(type=TDevice.DEVICE_DCHANNEL, code=deviceCode)
if device.is_clock:
pass

View File

@ -1,4 +1,4 @@
from apps.hrm.views import ClockRecordViewSet, EmployeeViewSet, NotWorkRemarkViewSet from apps.hrm.views import CertificateViewSet, ClockRecordViewSet, EmployeeViewSet, NotWorkRemarkViewSet
from django.urls import path, include from django.urls import path, include
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
@ -9,6 +9,7 @@ router = DefaultRouter()
router.register('employee', EmployeeViewSet, basename='employee') router.register('employee', EmployeeViewSet, basename='employee')
router.register('clock_record', ClockRecordViewSet, basename='clock_record') router.register('clock_record', ClockRecordViewSet, basename='clock_record')
router.register('not_work_remark', NotWorkRemarkViewSet, basename='not_work_reamrk') router.register('not_work_remark', NotWorkRemarkViewSet, basename='not_work_reamrk')
router.register('certificate', CertificateViewSet, basename='certificate')
urlpatterns = [ urlpatterns = [
path(API_BASE_URL, include(router.urls)), path(API_BASE_URL, include(router.urls)),
] ]

View File

@ -51,6 +51,9 @@ class OplWorkerCreateSerializer(CustomModelSerializer):
fields = ['worker', 'duty', 'certificates', 'opl'] fields = ['worker', 'duty', 'certificates', 'opl']
def create(self, validated_data): def create(self, validated_data):
opl = validated_data['opl']
if opl.ticket:
raise ParseError('许可证已处理不可新增')
certificates = validated_data.pop('certificates') certificates = validated_data.pop('certificates')
if OplWorker.objects.filter(worker=validated_data['worker'], opl=validated_data['opl']).exists(): if OplWorker.objects.filter(worker=validated_data['worker'], opl=validated_data['opl']).exists():
raise ParseError('该成员已加入') raise ParseError('该成员已加入')
@ -98,6 +101,12 @@ class GasCheckCreateUpdateSerializer(CustomModelSerializer):
model = GasCheck model = GasCheck
exclude = EXCLUDE_FIELDS exclude = EXCLUDE_FIELDS
def create(self, validated_data):
opl = validated_data['opl']
if opl.ticket:
raise ParseError('许可证已处理不可新增')
return super().create(validated_data)
class GasCheckSerializer(CustomModelSerializer): class GasCheckSerializer(CustomModelSerializer):
class Meta: class Meta:
@ -115,6 +124,12 @@ class OplCreateUpdateSerializer(CustomModelSerializer):
'power_end_time', 'power_start_time', 'power_days', 'power_end_time', 'power_start_time', 'power_days',
'other_risk', 'other_emr', 'escape_route', 'other_risk', 'other_emr', 'escape_route',
'risks_checked', 'measures_checked', 'create_imgs'] 'risks_checked', 'measures_checked', 'create_imgs']
def create(self, validated_data):
operation = validated_data['operation']
if operation.state == Operation.OP_CLOSE:
raise ParseError('作业已关闭不可创建许可')
return super().create(validated_data)
class OplSerializer(CustomModelSerializer): class OplSerializer(CustomModelSerializer):

View File

@ -51,12 +51,6 @@ class OplViewSet(CustomModelViewSet):
raise ParseError('许可证已处理不可删除') raise ParseError('许可证已处理不可删除')
return super().destroy(request, *args, **kwargs) return super().destroy(request, *args, **kwargs)
def create(self, request, *args, **kwargs):
obj = self.get_object()
if obj.operation.state == Operation.OP_CLOSE:
raise ParseError('作业已关闭不可创建许可')
return super().create(request, *args, **kwargs)
def update(self, request, *args, **kwargs): def update(self, request, *args, **kwargs):
obj = self.get_object() obj = self.get_object()
if obj.ticket: if obj.ticket:
@ -71,12 +65,6 @@ class OplWorkerViewSet(CustomModelViewSet):
update_serializer_class = OplWorkerUpdateSerializer update_serializer_class = OplWorkerUpdateSerializer
serializer_class = OplSerializer serializer_class = OplSerializer
def create(self, request, *args, **kwargs):
obj = self.get_object()
if obj.opl.ticket:
raise ParseError('许可证已处理不可新增')
return super().create(request, *args, **kwargs)
def destroy(self, request, *args, **kwargs): def destroy(self, request, *args, **kwargs):
obj = self.get_object() obj = self.get_object()
if obj.opl.ticket: if obj.opl.ticket:
@ -96,12 +84,6 @@ class GasCheckViewSet(CreateModelMixin, ListModelMixin, DestroyModelMixin, Custo
create_serializer_class = GasCheckCreateUpdateSerializer create_serializer_class = GasCheckCreateUpdateSerializer
serializer_class = GasCheckSerializer serializer_class = GasCheckSerializer
def create(self, request, *args, **kwargs):
obj = self.get_object()
if obj.opl.ticket:
raise ParseError('许可证已处理不可新增')
return super().create(request, *args, **kwargs)
def destroy(self, request, *args, **kwargs): def destroy(self, request, *args, **kwargs):
obj = self.get_object() obj = self.get_object()
if obj.opl.ticket: if obj.opl.ticket:

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2022-06-24 01:12
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('third', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='tdevice',
name='is_clock',
field=models.BooleanField(default=False, verbose_name='是否打卡设备'),
),
]

View File

@ -37,5 +37,6 @@ class TDevice(BaseModel):
verbose_name='所在区', null=True, blank=True) verbose_name='所在区', null=True, blank=True)
areas = models.ManyToManyField(Area, verbose_name='覆盖区', areas = models.ManyToManyField(Area, verbose_name='覆盖区',
related_name='tareas') related_name='tareas')
is_clock = models.BooleanField('是否打卡设备', default=False)
third_info = models.JSONField('三方信息', default=dict, third_info = models.JSONField('三方信息', default=dict,
null=False, blank=True) null=False, blank=True)

View File

@ -1,3 +1,8 @@
{'id': None, 'category': 'alarm', 'method': 'alarm.msg', {'id': None, 'category': 'alarm', 'method': 'alarm.msg',
'info': {'orgName': '根节点', 'alarmPictureSize': '82496', 'nodeCode': '1000038$1$0$0', 'deviceCode': '1000038', 'alarmCode': '{00A84F4B-7E88-0B4F-910C-CCDA923D9900}', 'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_953328_1035824.jpg', 'nodeType': 2, 'deviceName': '10.0.11.23', 'info': {'orgName': '根节点', 'alarmPictureSize': '82496',
'alarmDate': '1655893102', 'alarmGrade': 2, 'isSave': True, 'unitType': 1, 'unitSeq': 0, 'extend': {'params': {'ObjectType': 'Human', 'GroupId': 0.0, 'ObjectSubType': ''}, 'objectSubType': ''}, 'alarmType': 964, 'channelSeq': 0, 'orgCode': '001', 'channelName': '测试摄像头1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'admin', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None} 'nodeCode': '1000038$1$0$0', 'deviceCode': '1000038',
'alarmCode': '{00A84F4B-7E88-0B4F-910C-CCDA923D9900}',
'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220622/1/dsf_453810dc-f202-11ec-bd2d-e4246c7d1635_953328_1035824.jpg',
'nodeType': 2,
'deviceName': '10.0.11.23',
'alarmDate': '1655893102', 'alarmGrade': 2, 'isSave': True, 'unitType': 1, 'unitSeq': 0, 'extend': {'params': {'ObjectType': 'Human', 'GroupId': 0.0, 'ObjectSubType': ''}, 'objectSubType': ''}, 'alarmType': 964, 'channelSeq': 0, 'orgCode': '001', 'channelName': '测试摄像头1', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'admin', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None}

View File

@ -1,6 +1,7 @@
import json import json
from rest_framework.exceptions import ParseError, APIException from rest_framework.exceptions import ParseError, APIException
from apps.ecm.service import EcmService from apps.ecm.service import EcmService
from apps.hrm.services import HrmService
from apps.third.tapis import dhapis, xxapis, spapis from apps.third.tapis import dhapis, xxapis, spapis
from apps.third.erros import TAPI_CODE_WRONG from apps.third.erros import TAPI_CODE_WRONG
from apps.third.clients import dhClient, spClient, xxClient from apps.third.clients import dhClient, spClient, xxClient
@ -226,6 +227,7 @@ class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet):
""" """
刷卡事件 刷卡事件
""" """
HrmService.swipe(data=data)
elif category == 'alarm' and subsystem == 'admin': elif category == 'alarm' and subsystem == 'admin':
""" """
视频报警 视频报警