bug修改

This commit is contained in:
guoshengxiong 2024-04-17 15:04:58 +08:00
parent f6f7b7b76c
commit dca25fc2ff
2 changed files with 144 additions and 107 deletions

View File

@ -126,46 +126,80 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper); ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
//判断是否配置并下发设备 //判断是否配置并下发设备
if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) { if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) {
Map<String, Object> param = new HashMap<>(); String ufaceDevId = workerInfo.getUfaceDevId();
param.put("projectSn", workerInfo.getProjectSn()); if (tempProjectUfaceConfig.getSupplierType() == 9) {
if ("0".equals(workerInfo.getUfaceDevId())) { //isc设备
workerInfo.setUfaceDevId(null); Map<String, Object> param = new HashMap<>();
} param.put("projectSn", workerInfo.getProjectSn());
if (StringUtils.isNotEmpty(workerInfo.getUfaceDevId())) { if ("0".equals(ufaceDevId)) {
param.put("registerType", workerInfo.getRegisterType()); workerInfo.setUfaceDevId(null);
param.put("accountType", workerInfo.getAccountType());
}
if (Objects.equals(workerInfo.getDevType(), 1)) {
param.put("devIds", workerInfo.getUfaceDevId());
} else if (Objects.equals(workerInfo.getDevType(), 2)) {
//设备分组情况
String ufaceDevGroupId = workerInfo.getUfaceDevGroupId();
if (StringUtils.isEmpty(ufaceDevGroupId)) {
ufaceDevGroupId = "0";
} }
List<Long> ufaceIds = ufaceDevToGroupMapper.selectList(new LambdaQueryWrapper<UfaceDevToGroup>() if (StringUtils.isNotEmpty(ufaceDevId)) {
.in(UfaceDevToGroup::getUfaceDevGroupId, Arrays.asList(StringUtils.split(ufaceDevGroupId, ",")))).stream().map(UfaceDevToGroup::getUfaceDevId).collect(Collectors.toList()); param.put("registerType", workerInfo.getRegisterType());
if (CollUtil.isEmpty(ufaceIds)) {
ufaceIds.add(0L);
} }
ufaceIds.stream().distinct(); param.put("accountType", 2);
param.put("devIds", StringUtils.join(ufaceIds, ",")); if (Objects.equals(workerInfo.getDevType(), 1)) {
} if (StrUtil.isBlank(ufaceDevId)) {
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param); return;
if (list != null && list.size() > 0) {
StringBuilder devBuilder = new StringBuilder();
StringBuilder devIdBuilder = new StringBuilder();
for (UfaceDev dev : list) {
if (devBuilder.length() > 0) {
devBuilder.append(",");
} }
if (devIdBuilder.length() > 0) { param.put("devIds", ufaceDevId);
devIdBuilder.append(","); } else if (Objects.equals(workerInfo.getDevType(), 2)) {
//设备分组情况
String ufaceDevGroupId = workerInfo.getUfaceDevGroupId();
if (StringUtils.isEmpty(ufaceDevGroupId)) {
return;
} }
devBuilder.append(dev.getDevSn()); List<Long> ufaceIds = ufaceDevToGroupMapper.selectList(new LambdaQueryWrapper<UfaceDevToGroup>()
devIdBuilder.append(dev.getDeviceId()); .in(UfaceDevToGroup::getUfaceDevGroupId, Arrays.asList(StringUtils.split(ufaceDevGroupId, ",")))).stream().map(UfaceDevToGroup::getUfaceDevId).collect(Collectors.toList());
if (CollUtil.isEmpty(ufaceIds)) {
return;
}
ufaceIds.stream().distinct();
param.put("devIds", StringUtils.join(ufaceIds, ","));
}
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
if (list != null && list.size() > 0) {
StringBuilder devBuilder = new StringBuilder();
StringBuilder devIdBuilder = new StringBuilder();
for (UfaceDev dev : list) {
if (devBuilder.length() > 0) {
devBuilder.append(",");
}
if (devIdBuilder.length() > 0) {
devIdBuilder.append(",");
}
devBuilder.append(dev.getDevSn());
devIdBuilder.append(dev.getDeviceId());
}
sendDev(tempProjectUfaceConfig, workerInfo, devBuilder.toString(), devIdBuilder.toString());
}
} else {
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
if ("0".equals(ufaceDevId)) {
workerInfo.setUfaceDevId(null);
}
if (StringUtils.isNotEmpty(ufaceDevId)) {
param.put("registerType", workerInfo.getRegisterType());
param.put("accountType", workerInfo.getAccountType());
param.put("devIds", ufaceDevId);
}
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
if (list != null && list.size() > 0) {
StringBuilder devBuilder = new StringBuilder();
StringBuilder devIdBuilder = new StringBuilder();
for (UfaceDev dev : list) {
if (devBuilder.length() > 0) {
devBuilder.append(",");
}
if (devIdBuilder.length() > 0) {
devIdBuilder.append(",");
}
devBuilder.append(dev.getDevSn());
devIdBuilder.append(dev.getDeviceId());
}
sendDev(tempProjectUfaceConfig, workerInfo, devBuilder.toString(), devIdBuilder.toString());
} }
sendDev(tempProjectUfaceConfig, workerInfo, devBuilder.toString(), devIdBuilder.toString());
} }
} }
} }
@ -206,74 +240,6 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper); ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
//判断是否配置并下发设备 //判断是否配置并下发设备
if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) { if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) {
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
log.info("---新数据:" + workerInfo.getUfaceDevId() + "-----老数据:" + oldWorkerInfo.getUfaceDevId());
//有选择设备
Boolean hasDev = true;
if (StringUtils.isEmpty(workerInfo.getUfaceDevId())) {
hasDev = false;
workerInfo.setUfaceDevId(oldWorkerInfo.getUfaceDevId());
}
if ("0".equals(workerInfo.getUfaceDevId())) {
workerInfo.setUfaceDevId(null);
}
if (StringUtils.isNotEmpty(workerInfo.getUfaceDevId())) {
param.put("registerType", workerInfo.getRegisterType());
param.put("accountType", 1);
param.put("devIds", workerInfo.getUfaceDevId());
}
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
if (list != null && list.size() > 0) {
StringBuilder devBuilder = new StringBuilder();
StringBuilder devIdBuilder = new StringBuilder();
for (UfaceDev dev : list) {
if (devBuilder.length() > 0) {
devBuilder.append(",");
}
if (devIdBuilder.length() > 0) {
devIdBuilder.append(",");
}
devBuilder.append(dev.getDevSn());
devIdBuilder.append(dev.getDeviceId());
}
if (tempProjectUfaceConfig.getSupplierType() == 1) {
String image = "";
if (StringUtils.isNotEmpty(workerInfo.getFieldAcquisitionUrl()) && workerInfo.getFieldAcquisitionUrl().startsWith("http")) {
image = workerInfo.getFieldAcquisitionUrl();
} else {
image = basePath + "/" + workerInfo.getFieldAcquisitionUrl();
}
UniUbiUtil.addPerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppKey(), tempProjectUfaceConfig.getAppSecret(),
workerInfo.getWorkerName(), workerInfo.getAttendanceNumber(), workerInfo.getIdCard(),
image, devBuilder.toString());
} else if (tempProjectUfaceConfig.getSupplierType() == 4) {
//人员唯一编号改变需要先删除再下发
if (oldWorkerInfo != null && workerInfo.getIdCard().equals(oldWorkerInfo.getIdCard())) {
try {
QYUfaceUtil.deleteNewPerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppSecret(), oldWorkerInfo.getIdCard());
} catch (Exception e) {
log.error("error", e);
}
}
QYUfaceUtil.addOrUpdatePerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppSecret(), 1, workerInfo.getIdCard(), workerInfo.getWorkerName(),
"", "", workerInfo.getIdCard(), "", "", 3, "", devIdBuilder.toString().split(","), basePath + "/" + workerInfo.getFieldAcquisitionUrl());
} else if (tempProjectUfaceConfig.getSupplierType() == 5) {
//佳信捷设备
JxjUfaceUtil.updateWorkerInfo(workerInfo, tempProjectUfaceConfig, serverUrl + "/image/");
} else if (tempProjectUfaceConfig.getSupplierType() == 6) {
//佳信捷新设备
JxjNewUfaceDevUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, basePath, devBuilder.toString(), jxjDevImageType);
} else if (tempProjectUfaceConfig.getSupplierType() == 7) {
//海康门禁sdk
HikvisionUfaceSDKUtil.deletePerson(workerInfo, tempProjectUfaceConfig, oldWorkerInfo.getUfaceDevId());
if (hasDev) {
HikvisionUfaceSDKUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, devBuilder.toString());
}
}
}
if (tempProjectUfaceConfig.getSupplierType() == 9) { if (tempProjectUfaceConfig.getSupplierType() == 9) {
//海康门禁isc //海康门禁isc
String devSns = ""; String devSns = "";
@ -322,13 +288,82 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
} }
} else { } else {
//只删除 //只删除
List<UfaceDev> notExistList = ufaceDevMapper.getUfaceDevListForIscNotExist(StrUtil.split(ufaceDevGroupId, ","), workerInfo.getProjectSn()); List<UfaceDev> notExistList = ufaceDevMapper.selectList(new LambdaQueryWrapper<UfaceDev>()
.eq(UfaceDev::getProjectSn, workerInfo.getProjectSn())
);
if (CollUtil.isNotEmpty(notExistList)) { if (CollUtil.isNotEmpty(notExistList)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
asyncHikvision.deletePersonAuth(workerInfo, notDevSns); asyncHikvision.deletePersonAuth(workerInfo, notDevSns);
} }
} }
} }
} else {
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
log.info("---新数据:" + workerInfo.getUfaceDevId() + "-----老数据:" + oldWorkerInfo.getUfaceDevId());
//有选择设备
Boolean hasDev = true;
if (StringUtils.isEmpty(workerInfo.getUfaceDevId())) {
hasDev = false;
workerInfo.setUfaceDevId(oldWorkerInfo.getUfaceDevId());
}
if ("0".equals(workerInfo.getUfaceDevId())) {
workerInfo.setUfaceDevId(null);
}
if (StringUtils.isNotEmpty(workerInfo.getUfaceDevId())) {
param.put("registerType", workerInfo.getRegisterType());
param.put("accountType", 1);
param.put("devIds", workerInfo.getUfaceDevId());
}
List<UfaceDev> list = ufaceDevMapper.selectUserUfaceDevList(param);
if (list != null && list.size() > 0) {
StringBuilder devBuilder = new StringBuilder();
StringBuilder devIdBuilder = new StringBuilder();
for (UfaceDev dev : list) {
if (devBuilder.length() > 0) {
devBuilder.append(",");
}
if (devIdBuilder.length() > 0) {
devIdBuilder.append(",");
}
devBuilder.append(dev.getDevSn());
devIdBuilder.append(dev.getDeviceId());
}
if (tempProjectUfaceConfig.getSupplierType() == 1) {
String image = "";
if (StringUtils.isNotEmpty(workerInfo.getFieldAcquisitionUrl()) && workerInfo.getFieldAcquisitionUrl().startsWith("http")) {
image = workerInfo.getFieldAcquisitionUrl();
} else {
image = basePath + "/" + workerInfo.getFieldAcquisitionUrl();
}
UniUbiUtil.addPerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppKey(), tempProjectUfaceConfig.getAppSecret(),
workerInfo.getWorkerName(), workerInfo.getAttendanceNumber(), workerInfo.getIdCard(),
image, devBuilder.toString());
} else if (tempProjectUfaceConfig.getSupplierType() == 4) {
//人员唯一编号改变需要先删除再下发
if (oldWorkerInfo != null && workerInfo.getIdCard().equals(oldWorkerInfo.getIdCard())) {
try {
QYUfaceUtil.deleteNewPerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppSecret(), oldWorkerInfo.getIdCard());
} catch (Exception e) {
log.error("error", e);
}
}
QYUfaceUtil.addOrUpdatePerson(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppSecret(), 1, workerInfo.getIdCard(), workerInfo.getWorkerName(),
"", "", workerInfo.getIdCard(), "", "", 3, "", devIdBuilder.toString().split(","), basePath + "/" + workerInfo.getFieldAcquisitionUrl());
} else if (tempProjectUfaceConfig.getSupplierType() == 5) {
//佳信捷设备
JxjUfaceUtil.updateWorkerInfo(workerInfo, tempProjectUfaceConfig, serverUrl + "/image/");
} else if (tempProjectUfaceConfig.getSupplierType() == 6) {
//佳信捷新设备
JxjNewUfaceDevUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, basePath, devBuilder.toString(), jxjDevImageType);
} else if (tempProjectUfaceConfig.getSupplierType() == 7) {
//海康门禁sdk
HikvisionUfaceSDKUtil.deletePerson(workerInfo, tempProjectUfaceConfig, oldWorkerInfo.getUfaceDevId());
if (hasDev) {
HikvisionUfaceSDKUtil.addOrUpdatePerson(workerInfo, tempProjectUfaceConfig, devBuilder.toString());
}
}
}
} }
} }
} }
@ -388,6 +423,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn()); param.put("projectSn", workerInfo.getProjectSn());
param.put("devIds", StringUtils.join(ufaceIds, ",")); param.put("devIds", StringUtils.join(ufaceIds, ","));
param.put("accountType", 2);
List<UfaceDev> list1 = ufaceDevMapper.selectUserUfaceDevList(param); List<UfaceDev> list1 = ufaceDevMapper.selectUserUfaceDevList(param);
if (CollUtil.isEmpty(list1)) { if (CollUtil.isEmpty(list1)) {
return; return;

View File

@ -135,19 +135,20 @@
separator="," open="(" close=")"> separator="," open="(" close=")">
#{item} #{item}
</foreach> </foreach>
and ud.project_sn =#{projectSn}
</select> </select>
<select id="getUfaceDevListForIscNotExist" resultType="com.zhgd.xmgl.modules.worker.entity.UfaceDev"> <select id="getUfaceDevListForIscNotExist" resultType="com.zhgd.xmgl.modules.worker.entity.UfaceDev">
select distinct ud.* from uface_dev ud select distinct ud.* from uface_dev ud
LEFT join uface_dev_to_group udtg on ud.id = udtg.uface_dev_id LEFT join uface_dev_to_group udtg on ud.id = udtg.uface_dev_id
where (1=1 where 1=1
<if test="list != null"> <if test="list != null">
and udtg.uface_dev_group_id not in and (udtg.uface_dev_group_id not in
<foreach collection="list" item="item" index="index" <foreach collection="list" item="item" index="index"
separator="," open="(" close=")"> separator="," open="(" close=")">
#{item} #{item}
</foreach> </foreach>
OR udtg.id is null)
</if> </if>
OR udtg.id is null)
and ud.project_sn =#{projectSn} and ud.project_sn =#{projectSn}
</select> </select>
</mapper> </mapper>