From 5f118acb0febb20edb952a03fe8bc2309599d6af Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 22 Apr 2022 16:38:12 +0800 Subject: [PATCH 1/3] 0.45 bug --- hb_server/apps/hrm/serializers.py | 1 + hb_server/apps/hrm/views.py | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hb_server/apps/hrm/serializers.py b/hb_server/apps/hrm/serializers.py index aa168d5..9c8a42a 100644 --- a/hb_server/apps/hrm/serializers.py +++ b/hb_server/apps/hrm/serializers.py @@ -20,6 +20,7 @@ class EmployeeNotWorkRemarkSerializer(ModelSerializer): fields = ['not_work_remark'] class FaceLoginSerializer(serializers.Serializer): base64 = serializers.CharField() + tolerance = serializers.FloatField(required=False, default=0.45) class FaceLoginPathSerializer(serializers.Serializer): path = serializers.CharField() diff --git a/hb_server/apps/hrm/views.py b/hb_server/apps/hrm/views.py index 915333a..975d70a 100644 --- a/hb_server/apps/hrm/views.py +++ b/hb_server/apps/hrm/views.py @@ -109,7 +109,7 @@ class ClockRecordViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): if 8<=now_local.hour<=17: base64_data = base64.urlsafe_b64decode(tran64( request.data.get('base64').replace(' ', '+'))) - user, msg = HRMService.face_compare_from_base64(base64_data) + user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.45)) if user: ins, created = ClockRecord.objects.get_or_create( create_by = user, create_time__hour__range = [8,18], @@ -159,8 +159,8 @@ class FaceLogin(CreateAPIView): """ 人脸识别登录 """ - base64_data = base64.urlsafe_b64decode(tran64(request.data.get('base64').replace(' ', '+')), request.data.get('tolerance', 0.45)) - user, msg = HRMService.face_compare_from_base64(base64_data) + 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.45)) if user: refresh = RefreshToken.for_user(user) # 可设为在岗 From 90b75e8892fe6a510234b1c35b1bb5cb7b559206 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Sun, 24 Apr 2022 08:42:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA0.42?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/hrm/serializers.py | 6 +++--- hb_server/apps/hrm/services.py | 4 ++-- hb_server/apps/hrm/views.py | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hb_server/apps/hrm/serializers.py b/hb_server/apps/hrm/serializers.py index 9c8a42a..8369da8 100644 --- a/hb_server/apps/hrm/serializers.py +++ b/hb_server/apps/hrm/serializers.py @@ -20,15 +20,15 @@ class EmployeeNotWorkRemarkSerializer(ModelSerializer): fields = ['not_work_remark'] class FaceLoginSerializer(serializers.Serializer): base64 = serializers.CharField() - tolerance = serializers.FloatField(required=False, default=0.45) + tolerance = serializers.FloatField(required=False, default=0.42) class FaceLoginPathSerializer(serializers.Serializer): path = serializers.CharField() - tolerance = serializers.FloatField(required=False, default=0.45) + tolerance = serializers.FloatField(required=False, default=0.42) class FaceClockCreateSerializer(serializers.Serializer): base64 = serializers.CharField() - tolerance = serializers.FloatField(required=False, default=0.45) + tolerance = serializers.FloatField(required=False, default=0.42) class ClockRecordListSerializer(serializers.ModelSerializer): create_by_ = UserSimpleSerializer(source='create_by', read_only=True) diff --git a/hb_server/apps/hrm/services.py b/hb_server/apps/hrm/services.py index 3aa2950..a75f1bf 100644 --- a/hb_server/apps/hrm/services.py +++ b/hb_server/apps/hrm/services.py @@ -10,7 +10,7 @@ from django.core.cache import cache class HRMService: @classmethod - def face_compare_from_path(cls, path, tolerance=0.45): + def face_compare_from_path(cls, path, tolerance=0.42): filepath = settings.BASE_DIR +path try: unknown_picture = face_recognition.load_image_file(filepath) @@ -43,7 +43,7 @@ class HRMService: return None, '匹配多张人脸:' + user_name_str @classmethod - def face_compare_from_base64(cls, base64_data, tolerance=0.45): + def face_compare_from_base64(cls, base64_data, tolerance=0.42): filename = str(uuid.uuid4()) filepath = settings.BASE_DIR +'/temp/' + filename +'.png' with open(filepath, 'wb') as f: diff --git a/hb_server/apps/hrm/views.py b/hb_server/apps/hrm/views.py index 975d70a..7f132e8 100644 --- a/hb_server/apps/hrm/views.py +++ b/hb_server/apps/hrm/views.py @@ -109,7 +109,7 @@ class ClockRecordViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): if 8<=now_local.hour<=17: 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.45)) + user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.42)) if user: ins, created = ClockRecord.objects.get_or_create( 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(' ', '+'))) - user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.45)) + user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.42)) if 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.45)) + user, msg = HRMService.face_compare_from_path(request.data.get('path'), request.data.get('tolerance', 0.42)) if user: refresh = RefreshToken.for_user(user) # 可设为在岗 From 2b88abf7f69f68386b1b557f7c0d8bd68bc20d64 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Sun, 24 Apr 2022 09:17:08 +0800 Subject: [PATCH 3/3] first test_ subplan is_submited --- hb_server/apps/pm/serializers.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hb_server/apps/pm/serializers.py b/hb_server/apps/pm/serializers.py index a261748..ee3953b 100644 --- a/hb_server/apps/pm/serializers.py +++ b/hb_server/apps/pm/serializers.py @@ -43,12 +43,19 @@ class SubProductionPlanListSerializer(DynamicFieldsSerializerMixin, serializers. leader_1_ = UserSimpleSerializer(source='leader_1', read_only=True) leader_2_ = UserSimpleSerializer(source='leader_2', read_only=True) leader_3_ = UserSimpleSerializer(source='leader_3', read_only=True) + first_test_ = serializers.SerializerMethodField() class Meta: model=SubProductionPlan fields = '__all__' def get_plan_product_(self, obj): return MaterialSimpleSerializer(instance=obj.production_plan.product).data + + def get_first_test_(self, obj): + tr = obj.first_test + if obj.first_test: + return {'id':tr.id, 'is_submited':tr.is_submited} + return None