face 0.36 流程卡权限去除
This commit is contained in:
parent
268b23be3a
commit
bab858f8f1
|
@ -20,15 +20,15 @@ class EmployeeNotWorkRemarkSerializer(ModelSerializer):
|
||||||
fields = ['not_work_remark']
|
fields = ['not_work_remark']
|
||||||
class FaceLoginSerializer(serializers.Serializer):
|
class FaceLoginSerializer(serializers.Serializer):
|
||||||
base64 = serializers.CharField()
|
base64 = serializers.CharField()
|
||||||
tolerance = serializers.FloatField(required=False, default=0.38)
|
tolerance = serializers.FloatField(required=False, default=0.36)
|
||||||
|
|
||||||
class FaceLoginPathSerializer(serializers.Serializer):
|
class FaceLoginPathSerializer(serializers.Serializer):
|
||||||
path = serializers.CharField()
|
path = serializers.CharField()
|
||||||
tolerance = serializers.FloatField(required=False, default=0.38)
|
tolerance = serializers.FloatField(required=False, default=0.36)
|
||||||
|
|
||||||
class FaceClockCreateSerializer(serializers.Serializer):
|
class FaceClockCreateSerializer(serializers.Serializer):
|
||||||
base64 = serializers.CharField()
|
base64 = serializers.CharField()
|
||||||
tolerance = serializers.FloatField(required=False, default=0.38)
|
tolerance = serializers.FloatField(required=False, default=0.36)
|
||||||
|
|
||||||
class ClockRecordListSerializer(serializers.ModelSerializer):
|
class ClockRecordListSerializer(serializers.ModelSerializer):
|
||||||
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
||||||
|
|
|
@ -10,7 +10,7 @@ from django.core.cache import cache
|
||||||
class HRMService:
|
class HRMService:
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def face_compare_from_path(cls, path, tolerance=0.38):
|
def face_compare_from_path(cls, path, tolerance=0.36):
|
||||||
filepath = settings.BASE_DIR +path
|
filepath = settings.BASE_DIR +path
|
||||||
try:
|
try:
|
||||||
unknown_picture = face_recognition.load_image_file(filepath)
|
unknown_picture = face_recognition.load_image_file(filepath)
|
||||||
|
@ -43,7 +43,7 @@ class HRMService:
|
||||||
return None, '匹配多张人脸:' + user_name_str
|
return None, '匹配多张人脸:' + user_name_str
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def face_compare_from_base64(cls, base64_data, tolerance=0.38):
|
def face_compare_from_base64(cls, base64_data, tolerance=0.36):
|
||||||
filename = str(uuid.uuid4())
|
filename = str(uuid.uuid4())
|
||||||
filepath = settings.BASE_DIR +'/temp/' + filename +'.png'
|
filepath = settings.BASE_DIR +'/temp/' + filename +'.png'
|
||||||
with open(filepath, 'wb') as f:
|
with open(filepath, 'wb') as f:
|
||||||
|
|
|
@ -109,7 +109,7 @@ class ClockRecordViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
if 8<=now_local.hour<=17:
|
if 8<=now_local.hour<=17:
|
||||||
base64_data = base64.urlsafe_b64decode(tran64(
|
base64_data = base64.urlsafe_b64decode(tran64(
|
||||||
request.data.get('base64').replace(' ', '+')))
|
request.data.get('base64').replace(' ', '+')))
|
||||||
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.38))
|
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.36))
|
||||||
if user:
|
if user:
|
||||||
ins, created = ClockRecord.objects.get_or_create(
|
ins, created = ClockRecord.objects.get_or_create(
|
||||||
create_by = user, create_time__hour__range = [8,18],
|
create_by = user, create_time__hour__range = [8,18],
|
||||||
|
@ -160,7 +160,7 @@ class FaceLogin(CreateAPIView):
|
||||||
人脸识别登录
|
人脸识别登录
|
||||||
"""
|
"""
|
||||||
base64_data = base64.urlsafe_b64decode(tran64(request.data.get('base64').replace(' ', '+')))
|
base64_data = base64.urlsafe_b64decode(tran64(request.data.get('base64').replace(' ', '+')))
|
||||||
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.38))
|
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.36))
|
||||||
if user:
|
if user:
|
||||||
refresh = RefreshToken.for_user(user)
|
refresh = RefreshToken.for_user(user)
|
||||||
# 可设为在岗
|
# 可设为在岗
|
||||||
|
@ -198,7 +198,7 @@ class FacePathLogin(CreateAPIView):
|
||||||
"""
|
"""
|
||||||
人脸识别登录-文件地址
|
人脸识别登录-文件地址
|
||||||
"""
|
"""
|
||||||
user, msg = HRMService.face_compare_from_path(request.data.get('path'), request.data.get('tolerance', 0.38))
|
user, msg = HRMService.face_compare_from_path(request.data.get('path'), request.data.get('tolerance', 0.36))
|
||||||
if user:
|
if user:
|
||||||
refresh = RefreshToken.for_user(user)
|
refresh = RefreshToken.for_user(user)
|
||||||
# 可设为在岗
|
# 可设为在岗
|
||||||
|
|
|
@ -439,7 +439,7 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
|
||||||
WpmService.add_wproduct_flow_log(instance=obj, change_str=change_str)
|
WpmService.add_wproduct_flow_log(instance=obj, change_str=change_str)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
@action(methods=['get'], detail=True, perms_map={'get': 'wp_card'})
|
@action(methods=['get'], detail=True, perms_map={'get': '*'})
|
||||||
def card(self, request, pk=None):
|
def card(self, request, pk=None):
|
||||||
"""
|
"""
|
||||||
流程卡
|
流程卡
|
||||||
|
|
Loading…
Reference in New Issue