v4.0 支持3d设备,数据库有变
This commit is contained in:
parent
e921fd57ab
commit
ce9efa70ab
|
@ -90,6 +90,9 @@ public class Constant {
|
||||||
public static final int PERSON_SYNC_MODIFY = 2;
|
public static final int PERSON_SYNC_MODIFY = 2;
|
||||||
public static final int PERSON_SYNC_DELETE = 3;
|
public static final int PERSON_SYNC_DELETE = 3;
|
||||||
|
|
||||||
|
public static final String DEVICE_FLAG_2D = "0";
|
||||||
|
public static final String DEVICE_FLAG_3D = "1";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@ public class CmdConstant {
|
||||||
public static final byte CMD_UPRECORD = 0x05;
|
public static final byte CMD_UPRECORD = 0x05;
|
||||||
public static final byte CMD_EXTRACT = 0x06;
|
public static final byte CMD_EXTRACT = 0x06;
|
||||||
|
|
||||||
|
public static final byte CMD_UPDATE_MEMBER = 0x14;
|
||||||
|
|
||||||
public static final byte CMD_CONFIG = 0x50;
|
public static final byte CMD_CONFIG = 0x50;
|
||||||
public static final byte CMD_CHANGE = 0x51;
|
public static final byte CMD_CHANGE = 0x51;
|
||||||
public static final byte CMD_OPENDOOR = 0x52;
|
public static final byte CMD_OPENDOOR = 0x52;
|
||||||
|
|
|
@ -13,6 +13,8 @@ public interface DeviceApiService {
|
||||||
|
|
||||||
boolean isOnline(String sn);
|
boolean isOnline(String sn);
|
||||||
|
|
||||||
|
void memberUpdate(Channel channel, String content);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,13 @@ import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import io.minio.MinioClient;
|
||||||
|
import io.minio.PutObjectOptions;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.shapelight.common.config.GlobalValue;
|
import net.shapelight.common.config.GlobalValue;
|
||||||
|
import net.shapelight.common.config.MinioConfig;
|
||||||
import net.shapelight.common.utils.*;
|
import net.shapelight.common.utils.*;
|
||||||
import net.shapelight.modules.nettyapi.config.ClientMap;
|
import net.shapelight.modules.nettyapi.config.ClientMap;
|
||||||
import net.shapelight.modules.nettyapi.config.CmdConstant;
|
import net.shapelight.modules.nettyapi.config.CmdConstant;
|
||||||
|
@ -16,19 +19,24 @@ import net.shapelight.modules.nettyapi.service.DeviceApiService;
|
||||||
import net.shapelight.modules.nettyapi.service.ServerApiService;
|
import net.shapelight.modules.nettyapi.service.ServerApiService;
|
||||||
import net.shapelight.modules.nettyapi.utils.Result;
|
import net.shapelight.modules.nettyapi.utils.Result;
|
||||||
import net.shapelight.modules.sys.entity.SysDeviceEntity;
|
import net.shapelight.modules.sys.entity.SysDeviceEntity;
|
||||||
|
import net.shapelight.modules.sys.entity.SysDeviceTypeEntity;
|
||||||
import net.shapelight.modules.sys.service.SysDeviceAppService;
|
import net.shapelight.modules.sys.service.SysDeviceAppService;
|
||||||
import net.shapelight.modules.sys.service.SysDeviceService;
|
import net.shapelight.modules.sys.service.SysDeviceService;
|
||||||
|
import net.shapelight.modules.sys.service.SysDeviceTypeService;
|
||||||
import net.shapelight.modules.ten.entity.*;
|
import net.shapelight.modules.ten.entity.*;
|
||||||
import net.shapelight.modules.ten.service.*;
|
import net.shapelight.modules.ten.service.*;
|
||||||
import net.shapelight.modules.vo.TenPersonIdUpdateAllVo;
|
import net.shapelight.modules.vo.TenPersonIdUpdateAllVo;
|
||||||
import net.shapelight.modules.vo.TenPersonIdUpdateVo;
|
import net.shapelight.modules.vo.TenPersonIdUpdateVo;
|
||||||
|
import net.shapelight.modules.vo.TenPersonOperationVo;
|
||||||
import net.shapelight.modules.vo.TenUserVo;
|
import net.shapelight.modules.vo.TenUserVo;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,6 +69,12 @@ public class DeviceApiServiceImpl implements DeviceApiService {
|
||||||
private TenDoorCardService tenDoorCardService;
|
private TenDoorCardService tenDoorCardService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisUtils redisUtils;
|
private RedisUtils redisUtils;
|
||||||
|
@Autowired
|
||||||
|
private SysDeviceTypeService sysDeviceTypeService;
|
||||||
|
@Autowired
|
||||||
|
private MinioConfig minioConfig;
|
||||||
|
@Autowired
|
||||||
|
private MinioClient minioClient;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -191,6 +205,16 @@ public class DeviceApiServiceImpl implements DeviceApiService {
|
||||||
configMap.put("support_stranger",false);
|
configMap.put("support_stranger",false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------3d数据--------------------------------------
|
||||||
|
// 以下是3d配置
|
||||||
|
SysDeviceTypeEntity deviceTypeEntity = sysDeviceTypeService.getById(sysDeviceEntity.getDeviceTypeId());
|
||||||
|
|
||||||
|
// if (deviceTypeEntity.getOther().equals(Constant.DEVICE_FLAG_3D)) {
|
||||||
|
// configMap.put("recognize_score_3d", deviceEntity.getRecognizeScore3d());
|
||||||
|
// configMap.put("detection_type", deviceEntity.getDetectionType());
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
dataMap.put("config",configMap);
|
dataMap.put("config",configMap);
|
||||||
res.put("data",dataMap);
|
res.put("data",dataMap);
|
||||||
String resContent = JSONObject.toJSONString(res);
|
String resContent = JSONObject.toJSONString(res);
|
||||||
|
@ -328,6 +352,33 @@ public class DeviceApiServiceImpl implements DeviceApiService {
|
||||||
+ p.getOrgImage());
|
+ p.getOrgImage());
|
||||||
puser.setFace_pic_base64("");
|
puser.setFace_pic_base64("");
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------3d数据--------------------------------------
|
||||||
|
/*
|
||||||
|
"rgb":"url"
|
||||||
|
"depth":"url"
|
||||||
|
"faceModel": "",
|
||||||
|
"souceFile": "url",
|
||||||
|
"cameraParam": "65464313212",
|
||||||
|
*/
|
||||||
|
// 以下是3d配置
|
||||||
|
SysDeviceTypeEntity deviceTypeEntity = sysDeviceTypeService.getById(sysDeviceEntity.getDeviceTypeId());
|
||||||
|
|
||||||
|
if (deviceTypeEntity.getOther().equals(Constant.DEVICE_FLAG_3D)) {
|
||||||
|
if(p.getSourceFile()!=null){
|
||||||
|
puser.setSourceFile(globalValue.getMinioEndpoint()+"/"
|
||||||
|
+ globalValue.getMinioBucketName()+"/"
|
||||||
|
+ p.getSourceFile());
|
||||||
|
}
|
||||||
|
if(p.getCameraParam()!=null){
|
||||||
|
puser.setCameraParam(p.getCameraParam());
|
||||||
|
}
|
||||||
|
if(p.getFaceModel()!=null){
|
||||||
|
puser.setFaceModel(p.getFaceModel());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// TenPersonSyncEntity syncEntity = tenPersonSyncService.getOne(new QueryWrapper<TenPersonSyncEntity>()
|
// TenPersonSyncEntity syncEntity = tenPersonSyncService.getOne(new QueryWrapper<TenPersonSyncEntity>()
|
||||||
// .eq("device_id",deviceEntity.getDeviceId())
|
// .eq("device_id",deviceEntity.getDeviceId())
|
||||||
// .eq("person_id",p.getPersonId()));
|
// .eq("person_id",p.getPersonId()));
|
||||||
|
@ -489,6 +540,33 @@ public class DeviceApiServiceImpl implements DeviceApiService {
|
||||||
record.setRecordFaceStr(captureFacePic);
|
record.setRecordFaceStr(captureFacePic);
|
||||||
record.setTenantId(deviceEntity.getTenantId());
|
record.setTenantId(deviceEntity.getTenantId());
|
||||||
|
|
||||||
|
//------------------------------------3d------------------------------------
|
||||||
|
/*
|
||||||
|
private String depth;
|
||||||
|
private String sourceFile;
|
||||||
|
private Integer duration;
|
||||||
|
private String threshold;
|
||||||
|
private Float distance;
|
||||||
|
private Float temperature;
|
||||||
|
private String cameraParam;
|
||||||
|
*/
|
||||||
|
|
||||||
|
String score3d = jsonContent.getString("score");
|
||||||
|
String sourceFileStr = jsonContent.getString("sourceFile");
|
||||||
|
Integer duration = jsonContent.getInteger("duration");
|
||||||
|
String threshold = jsonContent.getString("threshold");
|
||||||
|
Float distance = jsonContent.getFloat("distance");
|
||||||
|
Float temperature = jsonContent.getFloat("temperature");
|
||||||
|
String cameraParam = jsonContent.getString("cameraParam");
|
||||||
|
|
||||||
|
record.setScore3d(score3d);
|
||||||
|
record.setSourceFileStr(sourceFileStr);
|
||||||
|
record.setDuration(duration);
|
||||||
|
record.setThreshold(threshold);
|
||||||
|
record.setDistance(distance);
|
||||||
|
record.setTemperature(temperature);
|
||||||
|
record.setCameraParam(cameraParam);
|
||||||
|
|
||||||
// log.info("保存记录:----------------------"+record.getRecordTime()+"-"+record.getMemberId().intValue());
|
// log.info("保存记录:----------------------"+record.getRecordTime()+"-"+record.getMemberId().intValue());
|
||||||
tenRecordService.saveForFace(record);
|
tenRecordService.saveForFace(record);
|
||||||
|
|
||||||
|
@ -555,6 +633,90 @@ public class DeviceApiServiceImpl implements DeviceApiService {
|
||||||
channel.writeAndFlush(message);
|
channel.writeAndFlush(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void memberUpdate(Channel channel, String content) {
|
||||||
|
JSONObject jsonContent = JSONObject.parseObject(content);
|
||||||
|
String devId = jsonContent.getString("dev_id");
|
||||||
|
Long uid = jsonContent.getLongValue("uid");
|
||||||
|
|
||||||
|
// String rgbBase64 = jsonContent.getString("rgb");
|
||||||
|
// String depthBase64 = jsonContent.getString("depth");
|
||||||
|
// String faceModelBase64 = jsonContent.getString("faceModel");
|
||||||
|
String sourceFileBase64 = jsonContent.getString("sourceFile");
|
||||||
|
String cameraParam = jsonContent.getString("cameraParam");
|
||||||
|
|
||||||
|
TenDeviceEntity deviceEntity = tenDeviceService.findBySn(devId);
|
||||||
|
if(deviceEntity == null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SysDeviceEntity sysDeviceEntity = sysDeviceService.getOne(new QueryWrapper<SysDeviceEntity>()
|
||||||
|
.eq("sn",devId));
|
||||||
|
if(sysDeviceEntity.getState() == 0){
|
||||||
|
Result res = Result.error(202, "Device Is Stop");
|
||||||
|
String resContent = JSONObject.toJSONString(res);
|
||||||
|
MyMessage message = new MyMessage(CmdConstant.CMD_GETONE,resContent.length(),resContent.getBytes());
|
||||||
|
channel.writeAndFlush(message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
TenCellEntity cellEntity = tenCellService.getById(deviceEntity.getCellId());
|
||||||
|
TenPersonEntity p = tenPersonService.getById(uid,cellEntity.getCellId());
|
||||||
|
|
||||||
|
if(p!=null){
|
||||||
|
p.setLastUpdateTime(new Date());
|
||||||
|
|
||||||
|
p.setCameraParam(cameraParam);
|
||||||
|
|
||||||
|
//保存sourcefile
|
||||||
|
|
||||||
|
if (sourceFileBase64 != null && !sourceFileBase64.isEmpty()) {
|
||||||
|
try {
|
||||||
|
byte[] b = Base64.getDecoder().decode(sourceFileBase64.replace("\n", ""));
|
||||||
|
InputStream inputStream = new ByteArrayInputStream(b);
|
||||||
|
String fileName = globalValue.getImagesDir() + "/" +
|
||||||
|
p.getCellId().toString() + "/" +
|
||||||
|
p.getPersonId().toString() + "/so_" + UUIDUtil.uuid() + ".zip";
|
||||||
|
PutObjectOptions putObjectOptions = new PutObjectOptions(b.length, -1);
|
||||||
|
putObjectOptions.setContentType("application/zip");
|
||||||
|
minioClient.putObject(
|
||||||
|
minioConfig.getBucketName(), fileName, inputStream, putObjectOptions);
|
||||||
|
inputStream.close();
|
||||||
|
|
||||||
|
p.setSourceFile(fileName);
|
||||||
|
|
||||||
|
//保存人员信息
|
||||||
|
tenPersonService.updateNonal(p);
|
||||||
|
Result res = new Result();
|
||||||
|
String resContent = JSONObject.toJSONString(res);
|
||||||
|
MyMessage message = new MyMessage(CmdConstant.CMD_UPDATE_MEMBER, resContent.getBytes().length, resContent.getBytes());
|
||||||
|
channel.writeAndFlush(message);
|
||||||
|
|
||||||
|
//配置同步数据
|
||||||
|
List<TenPersonSyncEntity> syncEntitys = tenPersonSyncService.findByPersonId(p.getPersonId(), p.getTenantId());
|
||||||
|
for (TenPersonSyncEntity syncEn : syncEntitys) {
|
||||||
|
syncEn.setLastUpdateTime(p.getLastUpdateTime());
|
||||||
|
syncEn.setState(2);
|
||||||
|
tenPersonSyncService.updateById(syncEn);
|
||||||
|
//下发通知
|
||||||
|
List<TenPersonOperationVo> list = new ArrayList<>();
|
||||||
|
TenPersonOperationVo vo = new TenPersonOperationVo();
|
||||||
|
vo.setUid(p.getPersonId());
|
||||||
|
vo.setOperation(2);
|
||||||
|
vo.setLast_update_stamp(p.getLastUpdateTime());
|
||||||
|
list.add(vo);
|
||||||
|
serverApiService.personOperation(syncEn.getDeviceSn(), list);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isOnline(String sn) {
|
public boolean isOnline(String sn) {
|
||||||
return clientMap.isLogin(sn);
|
return clientMap.isLogin(sn);
|
||||||
|
|
|
@ -108,6 +108,19 @@ public class MessageServiceImpl implements MessageService {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case CmdConstant.CMD_UPDATE_MEMBER: {
|
||||||
|
log.debug("人员修改:" + msg.cmd);
|
||||||
|
if(!clientMap.hasUser(channel)){
|
||||||
|
Result res = Result.error(403,"No permission");
|
||||||
|
String resContent = JSONObject.toJSONString(res);
|
||||||
|
MyMessage message = new MyMessage(CmdConstant.CMD_UPDATE_MEMBER,resContent.length(),resContent.getBytes());
|
||||||
|
channel.writeAndFlush(message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
deviceApiService.memberUpdate(channel,content);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
case CmdConstant.CMD_CONFIG: {
|
case CmdConstant.CMD_CONFIG: {
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -250,4 +250,9 @@ public class TenDeviceEntity extends BaseEntity implements Serializable {
|
||||||
// @ApiModelProperty("户室")
|
// @ApiModelProperty("户室")
|
||||||
// private String roomName;
|
// private String roomName;
|
||||||
|
|
||||||
|
//--------------------------------------3d数据-------------------------------
|
||||||
|
private String recognizeScore3d;
|
||||||
|
|
||||||
|
private Integer detectionType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -334,4 +334,16 @@ public class TenPersonEntity extends BaseEntity implements Serializable {
|
||||||
private Integer xaSyncImage;
|
private Integer xaSyncImage;
|
||||||
|
|
||||||
|
|
||||||
|
// "rgb":"url"
|
||||||
|
// "depth":"url"
|
||||||
|
// "faceModel": "",
|
||||||
|
// "souceFile": "url",
|
||||||
|
// "cameraParam": "65464313212",
|
||||||
|
|
||||||
|
private String depth;
|
||||||
|
private String faceModel;
|
||||||
|
private String sourceFile;
|
||||||
|
private String cameraParam;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,4 +159,28 @@ public class TenRecordEntity implements Serializable {
|
||||||
@ApiModelProperty("")
|
@ApiModelProperty("")
|
||||||
private Integer xaSyncImage;
|
private Integer xaSyncImage;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
depth 否 string 人脸depth base64字符串
|
||||||
|
sourceFile 否 string 人脸ir base64字符串
|
||||||
|
duration 否 int 耗时
|
||||||
|
threshold 否 string 阈值,多个用“,”隔开
|
||||||
|
distance 否 float 距离
|
||||||
|
score 否 string 分数,多个用“,”隔开
|
||||||
|
temperature 否 String 体温
|
||||||
|
cameraParam 否 string 相机参数
|
||||||
|
*/
|
||||||
|
|
||||||
|
private String score3d;
|
||||||
|
private String depth;
|
||||||
|
private String sourceFile;
|
||||||
|
private Integer duration;
|
||||||
|
private String threshold;
|
||||||
|
private Float distance;
|
||||||
|
private Float temperature;
|
||||||
|
private String cameraParam;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String sourceFileStr;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,6 +204,27 @@ public class TenRecordServiceImpl implements TenRecordService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String source = entity.getSourceFileStr();
|
||||||
|
if(source!=null && !source.isEmpty()){
|
||||||
|
try {
|
||||||
|
byte[] b = Base64.getDecoder().decode(source.replace("\n", ""));
|
||||||
|
InputStream inputStream = new ByteArrayInputStream(b);
|
||||||
|
String userFileUrl = globalValue.getImagesDir() + "/" +
|
||||||
|
entity.getCellId().toString() + "/" +
|
||||||
|
entity.getPersonId().toString() + "/";
|
||||||
|
String fileName = userFileUrl + UUIDUtil.uuid() + ".zip";
|
||||||
|
// String fileName = "t_"+UUIDUtil.uuid()+ "." +extension;
|
||||||
|
PutObjectOptions putObjectOptions = new PutObjectOptions(b.length, -1);
|
||||||
|
putObjectOptions.setContentType("application/zip");
|
||||||
|
minioClient.putObject(
|
||||||
|
minioConfig.getBucketName(), fileName, inputStream, putObjectOptions);
|
||||||
|
inputStream.close();
|
||||||
|
entity.setSourceFile(fileName);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int flag = tenRecordDao.insert(entity);
|
int flag = tenRecordDao.insert(entity);
|
||||||
if (flag == 1) {
|
if (flag == 1) {
|
||||||
//推送到web实时刷新
|
//推送到web实时刷新
|
||||||
|
|
|
@ -26,5 +26,10 @@ public class TenUserVo {
|
||||||
private Integer active_end_time;
|
private Integer active_end_time;
|
||||||
private String card_id="";
|
private String card_id="";
|
||||||
|
|
||||||
|
private String depth;
|
||||||
|
private String faceModel;
|
||||||
|
private String sourceFile;
|
||||||
|
private String cameraParam;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ spring:
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
druid:
|
druid:
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
url: jdbc:mysql://192.168.50.20:3306/cell_db_0621?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&rewriteBatchedStatements=true
|
url: jdbc:mysql://192.168.50.20:3306/cell_db_v4.0?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&rewriteBatchedStatements=true
|
||||||
username: user
|
username: user
|
||||||
password: user@server001
|
password: user@server001
|
||||||
initial-size: 10
|
initial-size: 10
|
||||||
|
|
|
@ -3,57 +3,6 @@
|
||||||
|
|
||||||
<mapper namespace="net.shapelight.modules.ten.dao.TenDeviceDao">
|
<mapper namespace="net.shapelight.modules.ten.dao.TenDeviceDao">
|
||||||
|
|
||||||
<!-- 可根据自己的需求,是否要使用 -->
|
|
||||||
<resultMap type="net.shapelight.modules.ten.entity.TenDeviceEntity" id="tenDeviceMap">
|
|
||||||
<result property="deviceId" column="device_id"/>
|
|
||||||
<result property="name" column="name"/>
|
|
||||||
<result property="sn" column="sn"/>
|
|
||||||
<result property="mac" column="mac"/>
|
|
||||||
<result property="type" column="type"/>
|
|
||||||
<result property="gateFlag" column="gate_flag"/>
|
|
||||||
<result property="cellId" column="cell_id"/>
|
|
||||||
<result property="buildNumber" column="build_number"/>
|
|
||||||
<result property="buildId" column="build_id"/>
|
|
||||||
<result property="roomId" column="room_id"/>
|
|
||||||
<result property="tenantId" column="tenant_id"/>
|
|
||||||
<result property="apkVersion" column="apk_version"/>
|
|
||||||
<result property="faceCount" column="face_count"/>
|
|
||||||
<result property="algVersion" column="alg_version"/>
|
|
||||||
<result property="cpuTemplate" column="cpu_template"/>
|
|
||||||
<result property="cameraStatus" column="camera_status"/>
|
|
||||||
<result property="osType" column="os_type"/>
|
|
||||||
<result property="firmwareVersion" column="firmware_version"/>
|
|
||||||
<result property="licenseSerial" column="license_serial"/>
|
|
||||||
<result property="livenessFlag" column="liveness_flag"/>
|
|
||||||
<result property="rgbLiveThd" column="rgb_live_thd"/>
|
|
||||||
<result property="nirLiveThd" column="nir_live_thd"/>
|
|
||||||
<result property="recThd" column="rec_thd"/>
|
|
||||||
<result property="minFaceWidth" column="min_face_width"/>
|
|
||||||
<result property="heartbeatCycle" column="heartbeat_cycle"/>
|
|
||||||
<result property="lightScore" column="light_score"/>
|
|
||||||
<result property="songFlag" column="song_flag"/>
|
|
||||||
<result property="songDoor" column="song_door"/>
|
|
||||||
<result property="uploadImageFlag" column="upload_image_flag"/>
|
|
||||||
<result property="cutFaceFlag" column="cut_face_flag"/>
|
|
||||||
<result property="avCallFlag" column="av_call_flag"/>
|
|
||||||
<result property="recSpace" column="rec_space"/>
|
|
||||||
<result property="strangerFlag" column="stranger_flag"/>
|
|
||||||
<result property="createTime" column="create_time"/>
|
|
||||||
<result property="createBy" column="create_by"/>
|
|
||||||
<result property="lastUpdateTime" column="last_update_time"/>
|
|
||||||
<result property="lastUpdateBy" column="last_update_by"/>
|
|
||||||
<result property="deleteFlag" column="delete_flag"/>
|
|
||||||
|
|
||||||
<result property="doorOpenLevel" column="door_open_level"/>
|
|
||||||
<result property="lockOpenLevel" column="lock_open_level"/>
|
|
||||||
<result property="temperatureUp" column="temperature_up"/>
|
|
||||||
<result property="temperatureAlert" column="temperature_alert"/>
|
|
||||||
<result property="healthCodeFlag" column="health_code_flag"/>
|
|
||||||
|
|
||||||
<result column="xa_sync" property="xaSync"/>
|
|
||||||
|
|
||||||
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<select id="findAllSn" resultType="String">
|
<select id="findAllSn" resultType="String">
|
||||||
select sn from ten_device where delete_flag = 0
|
select sn from ten_device where delete_flag = 0
|
||||||
|
|
|
@ -47,6 +47,12 @@
|
||||||
<result column="xa_sync" jdbcType="TINYINT" property="xaSync" />
|
<result column="xa_sync" jdbcType="TINYINT" property="xaSync" />
|
||||||
<result column="xa_sync_card" jdbcType="TINYINT" property="xaSyncCard" />
|
<result column="xa_sync_card" jdbcType="TINYINT" property="xaSyncCard" />
|
||||||
<result column="xa_sync_image" jdbcType="TINYINT" property="xaSyncImage" />
|
<result column="xa_sync_image" jdbcType="TINYINT" property="xaSyncImage" />
|
||||||
|
|
||||||
|
<result column="depth" jdbcType="VARCHAR" property="depth" />
|
||||||
|
<result column="face_model" jdbcType="VARCHAR" property="faceModel" />
|
||||||
|
<result column="source_file" jdbcType="VARCHAR" property="sourceFile" />
|
||||||
|
<result column="camera_param" jdbcType="VARCHAR" property="cameraParam" />
|
||||||
|
|
||||||
<association property="cellName" javaType="String"
|
<association property="cellName" javaType="String"
|
||||||
select="net.shapelight.modules.ten.dao.TenCellDao.getCellName"
|
select="net.shapelight.modules.ten.dao.TenCellDao.getCellName"
|
||||||
column="cellId=cell_id">
|
column="cellId=cell_id">
|
||||||
|
@ -491,6 +497,12 @@
|
||||||
<if test="xaSyncImage != null">
|
<if test="xaSyncImage != null">
|
||||||
xa_sync_image = #{xaSyncImage,jdbcType=TINYINT},
|
xa_sync_image = #{xaSyncImage,jdbcType=TINYINT},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="cameraParam != null">
|
||||||
|
camera_param = #{cameraParam,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="sourceFile != null">
|
||||||
|
source_file = #{sourceFile,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
where person_id = #{personId,jdbcType=BIGINT}
|
where person_id = #{personId,jdbcType=BIGINT}
|
||||||
</update>
|
</update>
|
||||||
|
|
|
@ -3,7 +3,13 @@
|
||||||
|
|
||||||
<mapper namespace="net.shapelight.modules.ten.dao.TenRecordDao">
|
<mapper namespace="net.shapelight.modules.ten.dao.TenRecordDao">
|
||||||
|
|
||||||
<!-- -->
|
<!--private String depth;
|
||||||
|
private String sourceFile;
|
||||||
|
private Integer duration;
|
||||||
|
private String threshold;
|
||||||
|
private Float distance;
|
||||||
|
private Float temperature;
|
||||||
|
private String cameraParam; -->
|
||||||
<resultMap type="net.shapelight.modules.ten.entity.TenRecordEntity" id="tenRecordMap">
|
<resultMap type="net.shapelight.modules.ten.entity.TenRecordEntity" id="tenRecordMap">
|
||||||
<result property="recordId" column="record_id"/>
|
<result property="recordId" column="record_id"/>
|
||||||
<result property="cellId" column="cell_id"/>
|
<result property="cellId" column="cell_id"/>
|
||||||
|
@ -19,6 +25,15 @@
|
||||||
<result property="tenantId" column="tenant_id"/>
|
<result property="tenantId" column="tenant_id"/>
|
||||||
<result column="xa_sync" jdbcType="TINYINT" property="xaSync"/>
|
<result column="xa_sync" jdbcType="TINYINT" property="xaSync"/>
|
||||||
<result column="xa_sync_image" jdbcType="TINYINT" property="xaSyncImage"/>
|
<result column="xa_sync_image" jdbcType="TINYINT" property="xaSyncImage"/>
|
||||||
|
|
||||||
|
<result property="score3d" column="score3d"/>
|
||||||
|
<result property="depth" column="depth"/>
|
||||||
|
<result property="sourceFile" column="source_file"/>
|
||||||
|
<result property="duration" column="duration"/>
|
||||||
|
<result property="threshold" column="threshold"/>
|
||||||
|
<result property="distance" column="distance"/>
|
||||||
|
<result property="temperature" column="temperature"/>
|
||||||
|
<result property="cameraParam" column="camera_param"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,6 +82,31 @@
|
||||||
<if test="xaSyncImage != null">
|
<if test="xaSyncImage != null">
|
||||||
xa_sync_image,
|
xa_sync_image,
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
|
<if test="score3d != null">
|
||||||
|
score3d,
|
||||||
|
</if>
|
||||||
|
<if test="depth != null">
|
||||||
|
depth,
|
||||||
|
</if>
|
||||||
|
<if test="sourceFile != null">
|
||||||
|
source_file,
|
||||||
|
</if>
|
||||||
|
<if test="duration != null">
|
||||||
|
duration,
|
||||||
|
</if>
|
||||||
|
<if test="threshold != null">
|
||||||
|
threshold,
|
||||||
|
</if>
|
||||||
|
<if test="distance != null">
|
||||||
|
distance,
|
||||||
|
</if>
|
||||||
|
<if test="temperature != null">
|
||||||
|
temperature,
|
||||||
|
</if>
|
||||||
|
<if test="cameraParam != null">
|
||||||
|
camera_param,
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="recordId != null">
|
<if test="recordId != null">
|
||||||
|
@ -111,6 +151,33 @@
|
||||||
<if test="xaSyncImage != null">
|
<if test="xaSyncImage != null">
|
||||||
#{xaSyncImage},
|
#{xaSyncImage},
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
|
|
||||||
|
<if test="score3d != null">
|
||||||
|
#{score3d},
|
||||||
|
</if>
|
||||||
|
<if test="depth != null">
|
||||||
|
#{depth},
|
||||||
|
</if>
|
||||||
|
<if test="sourceFile != null">
|
||||||
|
#{sourceFile},
|
||||||
|
</if>
|
||||||
|
<if test="duration != null">
|
||||||
|
#{duration},
|
||||||
|
</if>
|
||||||
|
<if test="threshold != null">
|
||||||
|
#{threshold},
|
||||||
|
</if>
|
||||||
|
<if test="distance != null">
|
||||||
|
#{distance},
|
||||||
|
</if>
|
||||||
|
<if test="temperature != null">
|
||||||
|
#{temperature},
|
||||||
|
</if>
|
||||||
|
<if test="cameraParam != null">
|
||||||
|
#{cameraParam},
|
||||||
|
</if>
|
||||||
|
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
v4.0
|
||||||
|
1.sys_device_type表 启用other字段,0表示2d,1表示3d,v4.0加入,空表示2d
|
||||||
|
2.ten_device表增加两个字段,识别阈值:recognize_score_3d,检测方式:detection_type
|
||||||
|
3.ten_person表增加5个字段:depth,face_model,source_file,camera_param
|
||||||
|
4.ten_record表增加8个字段:depth,source_file,duration,threshold,distance,score3d,temperature,camera_param
|
||||||
|
|
||||||
|
|
||||||
|
v4.0 数据库修改内容
|
||||||
|
alter table ten_device_copy1
|
||||||
|
ADD COLUMN recognize_score3d varchar(30) DEFAULT '62,65' COMMENT '3d识别阈值',
|
||||||
|
ADD COLUMN detection_type tinyint(1) DEFAULT 0 COMMENT '0:默认2d检测, 1:3d检测';
|
||||||
|
|
||||||
|
|
||||||
|
alter table ten_person_copy1
|
||||||
|
ADD COLUMN depth varchar(200) COMMENT '深度图片',
|
||||||
|
ADD COLUMN face_model varchar(200) COMMENT '脸模',
|
||||||
|
ADD COLUMN source_file varchar(200) COMMENT '源文件',
|
||||||
|
ADD COLUMN camera_param varchar(200) COMMENT '相机参数';
|
||||||
|
|
||||||
|
alter table ten_record_9999999999999
|
||||||
|
ADD COLUMN depth varchar(200) COMMENT '深度图片',
|
||||||
|
ADD COLUMN source_file varchar(200) COMMENT '源文件',
|
||||||
|
ADD COLUMN camera_param varchar(200) COMMENT '相机参数',
|
||||||
|
ADD COLUMN duration int(11) COMMENT '耗时',
|
||||||
|
ADD COLUMN threshold varchar(50) COMMENT '阈值',
|
||||||
|
ADD COLUMN distance float COMMENT '距离',
|
||||||
|
ADD COLUMN score3d varchar(50) COMMENT '分数',
|
||||||
|
ADD COLUMN temperature float COMMENT '体温';
|
Loading…
Reference in New Issue