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);
//判断是否配置并下发设备
if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) {
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
if ("0".equals(workerInfo.getUfaceDevId())) {
workerInfo.setUfaceDevId(null);
}
if (StringUtils.isNotEmpty(workerInfo.getUfaceDevId())) {
param.put("registerType", workerInfo.getRegisterType());
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";
String ufaceDevId = workerInfo.getUfaceDevId();
if (tempProjectUfaceConfig.getSupplierType() == 9) {
//isc设备
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
if ("0".equals(ufaceDevId)) {
workerInfo.setUfaceDevId(null);
}
List<Long> ufaceIds = ufaceDevToGroupMapper.selectList(new LambdaQueryWrapper<UfaceDevToGroup>()
.in(UfaceDevToGroup::getUfaceDevGroupId, Arrays.asList(StringUtils.split(ufaceDevGroupId, ",")))).stream().map(UfaceDevToGroup::getUfaceDevId).collect(Collectors.toList());
if (CollUtil.isEmpty(ufaceIds)) {
ufaceIds.add(0L);
if (StringUtils.isNotEmpty(ufaceDevId)) {
param.put("registerType", workerInfo.getRegisterType());
}
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(",");
param.put("accountType", 2);
if (Objects.equals(workerInfo.getDevType(), 1)) {
if (StrUtil.isBlank(ufaceDevId)) {
return;
}
if (devIdBuilder.length() > 0) {
devIdBuilder.append(",");
param.put("devIds", ufaceDevId);
} else if (Objects.equals(workerInfo.getDevType(), 2)) {
//设备分组情况
String ufaceDevGroupId = workerInfo.getUfaceDevGroupId();
if (StringUtils.isEmpty(ufaceDevGroupId)) {
return;
}
devBuilder.append(dev.getDevSn());
devIdBuilder.append(dev.getDeviceId());
List<Long> ufaceIds = ufaceDevToGroupMapper.selectList(new LambdaQueryWrapper<UfaceDevToGroup>()
.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);
//判断是否配置并下发设备
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) {
//海康门禁isc
String devSns = "";
@ -322,13 +288,82 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
}
} 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)) {
notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList()));
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<>();
param.put("projectSn", workerInfo.getProjectSn());
param.put("devIds", StringUtils.join(ufaceIds, ","));
param.put("accountType", 2);
List<UfaceDev> list1 = ufaceDevMapper.selectUserUfaceDevList(param);
if (CollUtil.isEmpty(list1)) {
return;

View File

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