下发人员加日志

This commit is contained in:
guoshengxiong 2024-07-16 11:56:13 +08:00
parent f6bbbfaf10
commit b81fc82551

View File

@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.gexin.fastjson.JSON;
import com.zhgd.jeecg.common.execption.OpenPromptException;
import com.zhgd.jeecg.common.util.SpringContextUtils;
import com.zhgd.jeecg.common.util.pass.HttpUtils;
@ -601,6 +602,20 @@ public class AsyncHikvision {
ProjectInfoExtVo project = projectService.getProjectInfoBySn(projectSn);
//判断人员的图片存在isc
Map<String, WorkerInfo> workerIdMap = workerList.stream().collect(Collectors.toMap(workerInfo -> workerInfo.getId() + "", Function.identity()));
Map<String, UfaceDev> devSnMap = allDevList.stream().collect(Collectors.toMap(UfaceDev::getDevSn, Function.identity()));
for (JSONObject jo : workerAndDevSnList) {
String workerId = jo.getString("workerId");
String devSn = jo.getString("devSn");
WorkerInfo workerInfo = workerIdMap.get(workerId);
if (workerInfo != null) {
jo.put("workerName", workerInfo.getWorkerName());
}
UfaceDev ufaceDev = devSnMap.get(devSn);
if (ufaceDev != null) {
jo.put("devName", ufaceDev.getDevName());
}
}
log.info("开始准备下发人员到isc{}", JSONObject.toJSONString(workerAndDevSnList));
ArrayList<Future> futures = new ArrayList<>();
if (checkEditWorkers) {
ArrayList<WorkerInfo> needEditWorkers = getNeedEditWorkers(workerList, project, workerIdMap);
@ -614,12 +629,12 @@ public class AsyncHikvision {
future.get();
}
}
Map<String, UfaceDev> devSnMap = allDevList.stream().collect(Collectors.toMap(UfaceDev::getDevSn, Function.identity()));
JSONObject gdvJo = HikvisionUtil.getDoorsV2(project, HikvisionUtil.addPageParamIfAbsent(new JSONObject()));
JSONObject gdvDataJo = HikvisionUtil.getJsonObjectData(gdvJo);
//门禁设备编号parentIndexCode门禁点编号indexCode门禁设备资源通道号channelNo
Map<String, JSONObject> devSnToIscDevSnMap = gdvDataJo.getJSONArray("list").stream().collect(Collectors.toMap(o -> ((JSONObject) o).getString("indexCode"), o -> (JSONObject) o));
workerAndDevSnList = this.addNeedSimpleAuthProp(workerAndDevSnList, devSnToIscDevSnMap, project);
log.info("准备下发人员到isc{}", JSONObject.toJSONString(workerAndDevSnList));
Map<String, List<JSONObject>> devSnToJoMap = workerAndDevSnList.stream().collect(Collectors.groupingBy(jsonObject -> jsonObject.getString("devSn")));
futures = new ArrayList<>();
for (Map.Entry<String, List<JSONObject>> entry : devSnToJoMap.entrySet()) {
@ -809,6 +824,7 @@ public class AsyncHikvision {
*/
@Async("workerBeWaitHkExecutor")
public Future sendBatchWorkersForOneDevAsync(UfaceDev dev, Map.Entry<String, List<JSONObject>> devSnToJoEntry, Map<String, WorkerInfo> workerIdMap, List<WorkerInfo> workerList, ProjectInfoExtVo project, String projectSn, boolean sendNotice, Long flowStartUser, JSONObject iscDevSnObj) {
log.info("一个设备批量下发人员:{}", JSON.toJSONString(devSnToJoEntry));
String devSn = devSnToJoEntry.getKey();
List<String> addAuthWorkerIds = devSnToJoEntry.getValue().stream().filter(jo -> jo.getBoolean(Cts.IS_ADD_AUTH)).map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList());
List<String> deleteAuthWorkerIds = devSnToJoEntry.getValue().stream().filter(jo -> !jo.getBoolean(Cts.IS_ADD_AUTH) && !jo.getBoolean(Cts.IS_SIMPLE_DELETE_AUTH)).map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList());
@ -846,7 +862,7 @@ public class AsyncHikvision {
} while (totalPercent != 100);
//权限下发后进度100后查询权限条目列表人员列表设备列表接口去查返回参数有权限状态返回已下载的就是有权限
List<String> workerIds = devSnToJoEntry.getValue().stream().map(jsonObject -> jsonObject.getString("workerId")).collect(Collectors.toList());
JSONArray qaiList = queryAuthItemByWorkerList(project, workerIds, getDevRqParam(iscDevSnObj));
JSONArray qaiList = this.queryAuthItemByWorkerList(project, workerIds, getDevRqParam(iscDevSnObj));
Set<String> rtWorkerIdSet;
if (CollUtil.isNotEmpty(qaiList)) {
for (int i = 0; i < qaiList.size(); i++) {
@ -960,8 +976,10 @@ public class AsyncHikvision {
* @param flowStartUser
*/
public void handlerBatchWorkersResult(Map<String, WorkerInfo> workerIdMap, List<String> addAuthWorkerIds, boolean sendNotice, UfaceDev dev, Long flowStartUser, JSONObject jo) {
String projectSn = dev.getProjectSn();
String personId = jo.getString("personId");
String workerName = workerIdMap.get(personId).getWorkerName();
log.info("处理结果一个设备批量下发人员:{},{}", workerName, dev.getDevName());
String projectSn = dev.getProjectSn();
//人脸状态
//0已配置未下载
//1更新待下载
@ -989,7 +1007,7 @@ public class AsyncHikvision {
for (Long noticeUserId : noticeUserIds) {
noticeService.addUserNotice(noticeUserId,
"人员下发设备提醒", StrUtil.format("[{}]下发到[{}]{}",
workerIdMap.get(personId).getWorkerName(),
workerName,
dev.getDevName(),
Objects.equals(faceStatus, 3) ? "成功" : "失败,下发异常"),
"1");
@ -1006,7 +1024,7 @@ public class AsyncHikvision {
for (Long noticeUserId : noticeUserIds) {
noticeService.addUserNotice(noticeUserId,
"人员下发设备提醒", StrUtil.format("[{}]取消下发到[{}]{}",
workerIdMap.get(personId).getWorkerName(),
workerName,
dev.getDevName(),
Objects.equals(faceStatus, deleteAuth) ? "成功" : "失败,下发异常"),
"1");