门禁重新授权
This commit is contained in:
parent
fcffe29f05
commit
b90fe9078f
|
|
@ -98,8 +98,9 @@ class EmployeeImproveSerializer(CustomModelSerializer):
|
|||
|
||||
|
||||
class ChannelAuthoritySerializer(serializers.Serializer):
|
||||
pks = serializers.ListField(child=serializers.CharField(max_length=20), label="员工ID列表")
|
||||
channels = serializers.ListField(child=serializers.CharField(max_length=20), label="门通道ID列表")
|
||||
# pks = serializers.ListField(child=serializers.CharField(max_length=20), label="员工ID列表")
|
||||
start_time = serializers.DateTimeField(label="开始时间")
|
||||
end_time = serializers.DateTimeField(label="结束时间")
|
||||
|
||||
|
||||
class EmployeeSerializer(CustomModelSerializer):
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ from apps.hrm.serializers import (CertificateCreateUpdateSerializer, Certificate
|
|||
EmployeeNotWorkRemarkSerializer,
|
||||
EmployeeSerializer,
|
||||
NotWorkRemarkListSerializer)
|
||||
from apps.hrm.services import HrmService
|
||||
|
||||
from apps.third.clients import dhClient
|
||||
from apps.third.tapis import dhapis
|
||||
|
|
@ -122,38 +123,40 @@ class EmployeeViewSet(CustomModelViewSet):
|
|||
raise ParseError(**NO_NEED_LEVEL_REMARK)
|
||||
|
||||
@transaction.atomic
|
||||
@action(methods=['post'], detail=False, perms_map={'post': 'employee.channel_authority'},
|
||||
serializer_class=ChannelAuthoritySerializer)
|
||||
@action(methods=['post'], detail=True, perms_map={'post': 'employee.channel_authority'},
|
||||
serializer_class=serializers.Serializer)
|
||||
def channel_authority(self, request, pk=None):
|
||||
"""门通道授权
|
||||
"""重新门禁授权
|
||||
|
||||
门通道授权
|
||||
重新门禁授权
|
||||
"""
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data
|
||||
objs = Employee.objects.filter(pk__in=vdata['pks'], third_info__dh_face_card__isnull=False)
|
||||
infos = objs.values('third_info')
|
||||
cards = []
|
||||
for i in infos:
|
||||
if isinstance(i['third_info'], dict) and 'dh_face_card' in i['third_info']:
|
||||
cards.append(i['third_info']['dh_face_card'])
|
||||
details = []
|
||||
for i in vdata['channels']:
|
||||
details.append({
|
||||
"privilegeType": 1,
|
||||
"resouceCode": i
|
||||
})
|
||||
if cards and details:
|
||||
json_data = {
|
||||
"cardNumbers": cards,
|
||||
"timeQuantumId": 1,
|
||||
"cardPrivilegeDetails": details
|
||||
}
|
||||
dhClient.request(**dhapis['card_door_authority'], json=json_data)
|
||||
for i in objs:
|
||||
i.third_info['dh_channels'] = vdata['channels']
|
||||
Employee.objects.bulk_update(objs, fields=['third_info'])
|
||||
obj = self.get_object()
|
||||
if obj.third_info.get('dh_face_card', None):
|
||||
HrmService.door_auth()
|
||||
else:
|
||||
raise ParseError('该员工缺少主卡')
|
||||
# objs = Employee.objects.filter(pk__in=vdata['pks'], third_info__dh_face_card__isnull=False)
|
||||
# infos = objs.values('third_info')
|
||||
# cards = []
|
||||
# for i in infos:
|
||||
# if isinstance(i['third_info'], dict) and 'dh_face_card' in i['third_info']:
|
||||
# cards.append(i['third_info']['dh_face_card'])
|
||||
# details = []
|
||||
# for i in vdata['channels']:
|
||||
# details.append({
|
||||
# "privilegeType": 1,
|
||||
# "resouceCode": i
|
||||
# })
|
||||
# if cards and details:
|
||||
# json_data = {
|
||||
# "cardNumbers": cards,
|
||||
# "timeQuantumId": 1,
|
||||
# "cardPrivilegeDetails": details
|
||||
# }
|
||||
# dhClient.request(**dhapis['card_door_authority'], json=json_data)
|
||||
# for i in objs:
|
||||
# i.third_info['dh_channels'] = vdata['channels']
|
||||
# Employee.objects.bulk_update(objs, fields=['third_info'])
|
||||
return Response()
|
||||
|
||||
@transaction.atomic
|
||||
|
|
|
|||
Loading…
Reference in New Issue