增加certificate url
This commit is contained in:
parent
2f750d3e5b
commit
903dbf98ca
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)),
|
||||||
]
|
]
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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='是否打卡设备'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -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)
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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':
|
||||||
"""
|
"""
|
||||||
视频报警
|
视频报警
|
||||||
|
|
Loading…
Reference in New Issue