Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
2fb5240c9a
|
@ -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.38)
|
||||
tolerance = serializers.FloatField(required=False, default=0.36)
|
||||
|
||||
class FaceLoginPathSerializer(serializers.Serializer):
|
||||
path = serializers.CharField()
|
||||
tolerance = serializers.FloatField(required=False, default=0.38)
|
||||
tolerance = serializers.FloatField(required=False, default=0.36)
|
||||
|
||||
class FaceClockCreateSerializer(serializers.Serializer):
|
||||
base64 = serializers.CharField()
|
||||
tolerance = serializers.FloatField(required=False, default=0.38)
|
||||
tolerance = serializers.FloatField(required=False, default=0.36)
|
||||
|
||||
class ClockRecordListSerializer(serializers.ModelSerializer):
|
||||
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
||||
|
|
|
@ -10,7 +10,7 @@ from django.core.cache import cache
|
|||
class HRMService:
|
||||
|
||||
@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
|
||||
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.38):
|
||||
def face_compare_from_base64(cls, base64_data, tolerance=0.36):
|
||||
filename = str(uuid.uuid4())
|
||||
filepath = settings.BASE_DIR +'/temp/' + filename +'.png'
|
||||
with open(filepath, 'wb') as f:
|
||||
|
|
|
@ -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.38))
|
||||
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.36))
|
||||
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.38))
|
||||
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.36))
|
||||
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.38))
|
||||
user, msg = HRMService.face_compare_from_path(request.data.get('path'), request.data.get('tolerance', 0.36))
|
||||
if user:
|
||||
refresh = RefreshToken.for_user(user)
|
||||
# 可设为在岗
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# Generated by Django 3.2.9 on 2022-04-27 02:36
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0004_auto_20220318_1705'),
|
||||
('mtm', '0050_auto_20220419_1109'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='material',
|
||||
name='file',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.file', verbose_name='文件'),
|
||||
),
|
||||
]
|
|
@ -43,6 +43,7 @@ class Material(CommonAModel):
|
|||
count = models.PositiveIntegerField('物料库存总数', default=0)
|
||||
count_safe = models.PositiveIntegerField('安全库存总数', null=True, blank=True)
|
||||
piece_count = models.PositiveSmallIntegerField('单片玻璃数量', null=True, blank=True)
|
||||
file = models.ForeignKey(File, verbose_name='文件', on_delete=models.SET_NULL, null=True, blank=True)
|
||||
class Meta:
|
||||
verbose_name = '物料表'
|
||||
verbose_name_plural = verbose_name
|
||||
|
|
|
@ -8,12 +8,14 @@ from apps.system.serializers import FileSimpleSerializer, OrganizationSimpleSeri
|
|||
|
||||
|
||||
class MaterialSerializer(DynamicFieldsSerializerMixin, serializers.ModelSerializer):
|
||||
file_ = FileSimpleSerializer(source='file', read_only=True)
|
||||
class Meta:
|
||||
model = Material
|
||||
fields = '__all__'
|
||||
|
||||
class MaterialDetailSerializer(serializers.ModelSerializer):
|
||||
processes_ = serializers.SerializerMethodField()
|
||||
file_ = FileSimpleSerializer(source='file', read_only=True)
|
||||
class Meta:
|
||||
model = Material
|
||||
fields = '__all__'
|
||||
|
|
|
@ -19,7 +19,7 @@ class MaterialViewSet(PageOrNot, CreateUpdateModelAMixin, ModelViewSet):
|
|||
"""
|
||||
perms_map = {'get': '*', 'post': 'material_create',
|
||||
'put': 'material_update', 'delete': 'material_delete'}
|
||||
queryset = Material.objects.all()
|
||||
queryset = Material.objects.select_related('file').all()
|
||||
serializer_class = MaterialSerializer
|
||||
search_fields = ['name', 'number']
|
||||
filterset_class = MaterialFilterSet
|
||||
|
|
|
@ -130,7 +130,7 @@ class AtWorkCountView(CreateAPIView):
|
|||
"""
|
||||
到岗天数统计
|
||||
"""
|
||||
perms_map = {'get':'*'}
|
||||
perms_map = {'post':'*'}
|
||||
serializer_class = AtWorkCountSerializer
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
|
|
|
@ -439,7 +439,7 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
|
|||
WpmService.add_wproduct_flow_log(instance=obj, change_str=change_str)
|
||||
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):
|
||||
"""
|
||||
流程卡
|
||||
|
|
Loading…
Reference in New Issue