编辑人员没有人脸就不要生成下发任务
This commit is contained in:
parent
2353b24d74
commit
55a0cd7710
@ -191,17 +191,6 @@ public class AsyncHikvision {
|
||||
projectUfaceConfigService.updateWorkerInfo(workerInfo, workerInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
public void saveWorker(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
this.saveWorkerAsync(workerInfo, isSaveWorker, isSaveWorkerFace);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步保存人员
|
||||
*
|
||||
@ -860,10 +849,19 @@ public class AsyncHikvision {
|
||||
List<String> workerIds = devSnToJoEntry.getValue().stream().map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList());
|
||||
JSONArray qaiList = this.queryAuthItemByWorkerList(project, workerIds, getDevRqParam(iscDevSnObj));
|
||||
Map<String, Integer> personId2FaceStatusMap = qaiList.stream().collect(Collectors.toMap(o -> ((JSONObject) o).getString("personId"), o -> ((JSONObject) o).getInteger("faceStatus"), (o1, o2) -> o1));
|
||||
Map<String, Integer> personId2FaceOperatorTypeMap = qaiList.stream().collect(Collectors.toMap(o -> ((JSONObject) o).getString("personId"), o -> Optional.ofNullable(((JSONObject) o).getJSONObject("personDownloadDetail")).map(m -> m.getJSONArray("faces")).map(m -> {
|
||||
if (CollUtil.isNotEmpty(m)) {
|
||||
//操作类型,0新增;1修改;2删除
|
||||
return m.getJSONObject(0).getInteger("operatorType");
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}).orElse(null), (o1, o2) -> o1));
|
||||
for (int i = 0; i < workerIds.size(); i++) {
|
||||
String workerId = workerIds.get(i);
|
||||
Integer faceStatus = personId2FaceStatusMap.get(workerId);
|
||||
handlerBatchWorkersResult(workerIdMap, addAuthWorkerIds, sendNotice, dev, flowStartUser, workerId, faceStatus);
|
||||
Integer faceOperatorType = personId2FaceOperatorTypeMap.get(workerId);
|
||||
handlerBatchWorkersResult(workerIdMap, addAuthWorkerIds, sendNotice, dev, flowStartUser, workerId, faceStatus, faceOperatorType);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("批量下发权限失败:", e);
|
||||
@ -939,15 +937,23 @@ public class AsyncHikvision {
|
||||
/**
|
||||
* 处理结果:一个设备批量下发人员
|
||||
*
|
||||
* @param personId
|
||||
* @param faceStatus
|
||||
* @param workerIdMap
|
||||
* @param addAuthWorkerIds
|
||||
* @param sendNotice
|
||||
* @param dev
|
||||
* @param flowStartUser
|
||||
* @param personId
|
||||
* @param faceStatus
|
||||
* @param faceOperatorType
|
||||
*/
|
||||
public void handlerBatchWorkersResult(Map<String, WorkerInfo> workerIdMap, List<String> addAuthWorkerIds, boolean sendNotice, UfaceDev dev, Long flowStartUser, String personId, Integer faceStatus) {
|
||||
public void handlerBatchWorkersResult(Map<String, WorkerInfo> workerIdMap,
|
||||
List<String> addAuthWorkerIds,
|
||||
boolean sendNotice,
|
||||
UfaceDev dev,
|
||||
Long flowStartUser,
|
||||
String personId,
|
||||
Integer faceStatus,
|
||||
Integer faceOperatorType) {
|
||||
String workerName = workerIdMap.get(personId).getWorkerName();
|
||||
log.info("处理结果一个设备批量下发人员:{},{}", workerName, dev.getDevName());
|
||||
String projectSn = dev.getProjectSn();
|
||||
@ -964,7 +970,7 @@ public class AsyncHikvision {
|
||||
if (addAuthWorkerIds.contains(personId)) {
|
||||
//添加权限
|
||||
int addAuth = 3;
|
||||
if (Objects.equals(faceStatus, addAuth)) {
|
||||
if (Objects.equals(faceStatus, addAuth) && !Objects.equals(faceOperatorType, 2)) {
|
||||
hikvisionCall.updateSuccessStatus(projectSn, Long.valueOf(personId), 3, 1, dev.getDevSn());
|
||||
Long syncId = ThreadLocalUtil.getByKey(Cts.TL_HK_SYNC_ID, Long.class);
|
||||
if (syncId != null) {
|
||||
|
||||
@ -657,16 +657,24 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
|
||||
|
||||
@Override
|
||||
public void addHkSyncRecordAndResetStatusForEditAuth(WorkerInfo workerInfo) {
|
||||
Pair<String, String> sendAndDeleteDevSnsPair = getSendAndDeleteDevSns(workerInfo);
|
||||
String devSns = sendAndDeleteDevSnsPair.getLeft();
|
||||
for (String devSn : StrUtil.split(devSns, Cts.COMMA)) {
|
||||
XzHikvisionSync sync = new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(1).setWhoId(workerInfo.getId()).setDeviceSn(devSn).setBigType(1).setCreateDate(getSyncTimeWithInitAndDeleteSyncIfAbsent(1, workerInfo.getId()));
|
||||
saveSyncDev(workerInfo, devSn, sync);
|
||||
}
|
||||
String deleteDevSns = sendAndDeleteDevSnsPair.getRight();
|
||||
for (String deleteDevSn : StrUtil.split(deleteDevSns, Cts.COMMA)) {
|
||||
XzHikvisionSync sync = new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(3).setWhoId(workerInfo.getId()).setDeviceSn(deleteDevSn).setBigType(1).setCreateDate(getSyncTimeWithInitAndDeleteSyncIfAbsent(1, workerInfo.getId()));
|
||||
saveSyncDev(workerInfo, deleteDevSn, sync);
|
||||
if (StrUtil.isNotBlank(workerInfo.getFieldAcquisitionUrl())) {
|
||||
Pair<String, String> sendAndDeleteDevSnsPair = getSendAndDeleteDevSns(workerInfo);
|
||||
String devSns = sendAndDeleteDevSnsPair.getLeft();
|
||||
for (String devSn : StrUtil.split(devSns, Cts.COMMA)) {
|
||||
XzHikvisionSync sync = new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(1).setWhoId(workerInfo.getId()).setDeviceSn(devSn).setBigType(1).setCreateDate(getSyncTimeWithInitAndDeleteSyncIfAbsent(1, workerInfo.getId()));
|
||||
saveSyncDev(workerInfo, devSn, sync);
|
||||
}
|
||||
String deleteDevSns = sendAndDeleteDevSnsPair.getRight();
|
||||
for (String deleteDevSn : StrUtil.split(deleteDevSns, Cts.COMMA)) {
|
||||
XzHikvisionSync sync = new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(3).setWhoId(workerInfo.getId()).setDeviceSn(deleteDevSn).setBigType(1).setCreateDate(getSyncTimeWithInitAndDeleteSyncIfAbsent(1, workerInfo.getId()));
|
||||
saveSyncDev(workerInfo, deleteDevSn, sync);
|
||||
}
|
||||
} else {
|
||||
xzHikvisionSyncService.remove(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getBigType, 1)
|
||||
.eq(XzHikvisionSync::getType, 3)
|
||||
.eq(XzHikvisionSync::getWhoId, workerInfo.getId())
|
||||
);
|
||||
}
|
||||
workerInfoService.updateWorkerHkStatus(workerInfo);
|
||||
}
|
||||
|
||||
54
src/main/java/com/zhgd/xmgl/util/AsyncTaskUtil.java
Normal file
54
src/main/java/com/zhgd/xmgl/util/AsyncTaskUtil.java
Normal file
@ -0,0 +1,54 @@
|
||||
package com.zhgd.xmgl.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class AsyncTaskUtil {
|
||||
|
||||
private static ThreadPoolTaskExecutor doubleCarbonExecutor;
|
||||
|
||||
/**
|
||||
* 执行异步任务
|
||||
*/
|
||||
public static CompletableFuture<Void> runAsync(Runnable task) {
|
||||
return runAsync(task, "异步任务执行异常");
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行异步任务
|
||||
*
|
||||
* @param task
|
||||
* @param errLogName 错误日志名称
|
||||
* @return
|
||||
*/
|
||||
public static CompletableFuture<Void> runAsync(Runnable task, String errLogName) {
|
||||
return CompletableFuture.runAsync(task, doubleCarbonExecutor).exceptionally(throwable -> {
|
||||
log.error(errLogName, throwable);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行异步任务并支持异常处理
|
||||
*/
|
||||
public static CompletableFuture<Void> runAsync(Runnable task, Consumer<Throwable> exceptionHandler) {
|
||||
return CompletableFuture.runAsync(task, doubleCarbonExecutor)
|
||||
.exceptionally(throwable -> {
|
||||
exceptionHandler.accept(throwable);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setDoubleCarbonExecutor(@Qualifier("doubleCarbonExecutor") ThreadPoolTaskExecutor executor) {
|
||||
AsyncTaskUtil.doubleCarbonExecutor = executor;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user