0.42-0.38

This commit is contained in:
caoqianming 2022-04-24 12:38:49 +08:00
parent f9cfce58e5
commit 268b23be3a
12 changed files with 25 additions and 24 deletions

View File

@ -245,7 +245,7 @@
that.img = new Image(); that.img = new Image();
that.img.crossOrigin = 'anonymous'; that.img.crossOrigin = 'anonymous';
let value = imag[0].field_value?imag[0].field_value:imag[0].draw_template; let value = imag[0].field_value?imag[0].field_value:imag[0].draw_template;
that.img = 'http://49.232.14.174:2222'+value; that.img = value;
setTimeout(function(){ setTimeout(function(){
that.canvasInit(); that.canvasInit();
},500); },500);

View File

@ -217,10 +217,10 @@
<img :src="originImg"> <img :src="originImg">
</div> </div>
<div class="halfWidth"> <div class="halfWidth">
<img id="canvasImg" src="./../../assets/glass.png" style="width:500px;height: 300px;display: none"> <img id="canvasImg" :src="img" style="width:450px;height: 300px;display: none">
<div style="position: relative;display: flex;flex-direction: column; <div style="position: relative;display: flex;flex-direction: column;
border: 1px solid #DCDFE6;"> border: 1px solid #DCDFE6;">
<canvas id="canvas" width="500" height="300"> <canvas id="canvas" width="450" height="300">
您的浏览器不支持绘图请升级或更换浏览器 您的浏览器不支持绘图请升级或更换浏览器
</canvas> </canvas>
<input type="text" value="" class="hide" id="txt" placeholder="请输入文字"> <input type="text" value="" class="hide" id="txt" placeholder="请输入文字">
@ -329,8 +329,8 @@
}); });
that.img = new Image(); that.img = new Image();
that.img.crossOrigin = ''; that.img.crossOrigin = '';
that.img = 'http://49.232.14.174:2222'+imag[0].field_value; that.img = imag[0].field_value;
that.originImg = 'http://49.232.14.174:2222'+imag[0].origin_value; that.originImg = imag[0].origin_value;
listJudge.forEach(item => { listJudge.forEach(item => {
let obj = new Object(); let obj = new Object();
obj = item; obj = item;

View File

@ -462,7 +462,7 @@
<el-col v-for="item in recordFieldList" :key="item.id" :span="24"> <el-col v-for="item in recordFieldList" :key="item.id" :span="24">
<div class="items" v-if="item.field_type==='draw'" style="height: 400px"> <div class="items" v-if="item.field_type==='draw'" style="height: 400px">
<span class="itemLabel">{{item.field_name}}</span> <span class="itemLabel">{{item.field_name}}</span>
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/> <img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -106,7 +106,7 @@
<el-col v-for="item in fieldList" :key="item.id" :span="24"> <el-col v-for="item in fieldList" :key="item.id" :span="24">
<div class="items" v-if="item.field_type==='draw'" style="height: 400px"> <div class="items" v-if="item.field_type==='draw'" style="height: 400px">
<span class="itemLabel">{{item.field_name}}</span> <span class="itemLabel">{{item.field_name}}</span>
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/> <img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -146,7 +146,7 @@
<el-col v-for="item in fieldList" :key="item.id" :span="24"> <el-col v-for="item in fieldList" :key="item.id" :span="24">
<div class="items" v-if="item.field_type==='draw'" style="height: 400px"> <div class="items" v-if="item.field_type==='draw'" style="height: 400px">
<span class="itemLabel">{{item.field_name}}</span> <span class="itemLabel">{{item.field_name}}</span>
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/> <img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -79,7 +79,7 @@
<el-col v-for="item in fieldList" :key="item.id" :span="24"> <el-col v-for="item in fieldList" :key="item.id" :span="24">
<div class="items" v-if="item.field_type==='draw'" style="height: 400px"> <div class="items" v-if="item.field_type==='draw'" style="height: 400px">
<span class="itemLabel">{{item.field_name}}</span> <span class="itemLabel">{{item.field_name}}</span>
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/> <img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -275,7 +275,7 @@
<el-col v-for="item in recordFieldList" :key="item.id" :span="24"> <el-col v-for="item in recordFieldList" :key="item.id" :span="24">
<div class="items" v-if="item.field_type==='draw'" style="height: 400px"> <div class="items" v-if="item.field_type==='draw'" style="height: 400px">
<span class="itemLabel">{{item.field_name}}</span> <span class="itemLabel">{{item.field_name}}</span>
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/> <img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -476,7 +476,7 @@
</el-dialog> </el-dialog>
<!--复检检验表单--> <!--复检检验表单-->
<el-dialog <el-dialog
width="60%" width="75%"
:title="formName" :title="formName"
@close="recordCancel" @close="recordCancel"
:visible.sync="limitedReview" :visible.sync="limitedReview"
@ -739,7 +739,7 @@
<el-col v-for="item in fieldList" :key="item.id" :span="24"> <el-col v-for="item in fieldList" :key="item.id" :span="24">
<div class="items" v-if="item.field_type==='draw'" style="height: fit-content"> <div class="items" v-if="item.field_type==='draw'" style="height: fit-content">
<span class="itemLabel">{{item.field_name}}</span> <span class="itemLabel">{{item.field_name}}</span>
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/> <img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
</div> </div>
</el-col> </el-col>
<el-button @click="exportDom">导出</el-button> <el-button @click="exportDom">导出</el-button>
@ -946,7 +946,7 @@
debugger; debugger;
console.log(res.data.path) console.log(res.data.path)
let link = document.createElement('a'); let link = document.createElement('a');
link.href = 'http://49.232.14.174:2222'+res.data.path; link.href = res.data.path;
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
} }

View File

@ -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.42) tolerance = serializers.FloatField(required=False, default=0.38)
class FaceLoginPathSerializer(serializers.Serializer): class FaceLoginPathSerializer(serializers.Serializer):
path = serializers.CharField() path = serializers.CharField()
tolerance = serializers.FloatField(required=False, default=0.42) tolerance = serializers.FloatField(required=False, default=0.38)
class FaceClockCreateSerializer(serializers.Serializer): class FaceClockCreateSerializer(serializers.Serializer):
base64 = serializers.CharField() base64 = serializers.CharField()
tolerance = serializers.FloatField(required=False, default=0.42) tolerance = serializers.FloatField(required=False, default=0.38)
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)

View File

@ -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.42): def face_compare_from_path(cls, path, tolerance=0.38):
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.42): def face_compare_from_base64(cls, base64_data, tolerance=0.38):
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:

View File

@ -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.42)) user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.38))
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.42)) user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.38))
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.42)) user, msg = HRMService.face_compare_from_path(request.data.get('path'), request.data.get('tolerance', 0.38))
if user: if user:
refresh = RefreshToken.for_user(user) refresh = RefreshToken.for_user(user)
# 可设为在岗 # 可设为在岗

View File

@ -28,9 +28,10 @@ def exprot_test_record(tr:TestRecord, tm:str):
'l': InlineImage(doc, BASE_DIR + i['field_value'], width=Mm(80)), 'l': InlineImage(doc, BASE_DIR + i['field_value'], width=Mm(80)),
} }
else: else:
edata[i['field_key']] = i['field_value'] if i['field_value']:
if i.get('origin_value', ''): edata[i['field_key']] = i['field_value']
edata[i['field_key']] = '{}({})'.format(i['origin_value'] + i['field_value']) elif i.get('origin_value', ''):
edata[i['field_key']] = i['origin_value']
# 开始生成word # 开始生成word
doc.render(edata) doc.render(edata)