下发修改

This commit is contained in:
guoshengxiong 2024-06-14 18:54:36 +08:00
parent 947002d9b6
commit bcffb5b0ac

View File

@ -562,16 +562,16 @@ public class AsyncHikvision {
return null;
}
if (CollUtil.isNotEmpty(addAuthWorkerIds)) {
JSONObject aaRJo = HikvisionUtil.addAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, addAuthWorkerIds));
JSONObject aaRJo = HikvisionUtil.addAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, addAuthWorkerIds, devSnToIscDevSnMap));
HikvisionUtil.getJSONObjectData(aaRJo);
}
if (CollUtil.isNotEmpty(deleteAuthWorkerIds)) {
JSONObject aaRJo = HikvisionUtil.deleteAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, deleteAuthWorkerIds));
JSONObject aaRJo = HikvisionUtil.deleteAuth(project, getAddOrDeleteAuthParam(devSnToJoEntry, deleteAuthWorkerIds, devSnToIscDevSnMap));
HikvisionUtil.getJSONObjectData(aaRJo);
}
String devSn = devSnToJoEntry.getKey();
//然后调用根据出入权限配置快捷下载设备列表添加权限配置+快捷下发这是一个流程你添加了几个权限下发成功之后就清零了
JSONObject daJo = HikvisionUtil.downloadAuth(project, getQueryDownloadProgressParam(devSnToJoEntry));
JSONObject daJo = HikvisionUtil.downloadAuth(project, getQueryDownloadProgressParam(devSnToJoEntry, devSnToIscDevSnMap));
JSONObject daRtJo = HikvisionUtil.getJSONObjectData(daJo);
//然后调用查询下载任务进度上面那个的任务
int totalPercent = 0;
@ -586,15 +586,26 @@ public class AsyncHikvision {
JSONObject qaiJo = HikvisionUtil.queryAuthItem(project, getQueryAuthItemParam(devSnToJoEntry, devSnToIscDevSnMap));
JSONObject qaiRtJo = HikvisionUtil.getJSONObjectData(qaiJo);
JSONArray qaiList = qaiRtJo.getJSONArray("list");
Set<String> rtWorkerIdSet;
if (CollUtil.isNotEmpty(qaiList)) {
for (int i = 0; i < qaiList.size(); i++) {
handlerBatchWorkersResultForAddAuth(workerIdMap, devSnMap, iscDevSnToMyMap, qaiList, i, devSn, projectSn);
handlerBatchWorkersResult(workerIdMap, devSnMap, qaiList, i, devSn, projectSn, addAuthWorkerIds);
}
rtWorkerIdSet = qaiList.stream().map(o -> ((JSONObject) o).getString("personId")).collect(Collectors.toSet());
} else {
rtWorkerIdSet = new HashSet<>();
}
//处理删除权限的结果的
//1. 删除权限配置还没删除的时候权限变成 2更新待删除
//2. 删除以后删除的权限状态是 4未配置
//3. 这个人的权限都没了以后你就查不到这个权限条目了
//handlerBatchWorkersResultForDeleteAuth();
if (CollUtil.isNotEmpty(deleteAuthWorkerIds)) {
for (String workerId : deleteAuthWorkerIds) {
if (rtWorkerIdSet.contains(workerId)) {
//已经处理过了
continue;
}
hikvisionCall.updateSuccessStatus(projectSn, Long.valueOf(workerId), 3, 3, devSn);
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(),
@ -619,26 +630,29 @@ public class AsyncHikvision {
*
* @param workerIdMap
* @param devSnMap
* @param iscDevSnToMyMap
* @param qaiList
* @param i
* @param devSn
* @param projectSn
* @param addAuthWorkerIds
*/
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
public void handlerBatchWorkersResultForAddAuth(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, Map<String, Map<String, JSONObject>> iscDevSnToMyMap, JSONArray qaiList, int i, String devSn, String projectSn) {
public void handlerBatchWorkersResult(Map<String, WorkerInfo> workerIdMap, Map<String, UfaceDev> devSnMap, JSONArray qaiList, int i, String devSn, String projectSn, List<String> addAuthWorkerIds) {
JSONObject jo = qaiList.getJSONObject(i);
String personId = jo.getString("personId");
String resourceIndexCode = jo.getString("resourceIndexCode");
String channelNo = jo.getString("channelNo");
//人脸状态
//0已配置未下载
//1更新待下载
//2更新待删除
//3已下载
//4未配置
//1. 删除权限配置还没删除的时候权限变成 2更新待删除
//2. 删除以后删除的权限状态是 4未配置
//3. 这个人的权限都没了以后你就查不到这个权限条目了
Integer faceStatus = jo.getInteger("faceStatus");
UfaceDev dev = devSnMap.get(devSn);
if (addAuthWorkerIds.contains(personId)) {
//添加权限
if (Objects.equals(faceStatus, 3)) {
hikvisionCall.updateSuccessStatus(projectSn, Long.valueOf(personId), 3, 1, dev.getDevSn());
} else {
@ -652,32 +666,48 @@ public class AsyncHikvision {
Objects.equals(faceStatus, 3) ? "成功" : "失败,下发异常"),
"人员下发设备提醒", "1");
}
} else {
//删除权限
if (Objects.equals(faceStatus, 4)) {
hikvisionCall.updateSuccessStatus(projectSn, Long.valueOf(personId), 3, 3, dev.getDevSn());
} else {
hikvisionCall.updateFailStatus(projectSn, Long.valueOf(personId), 3, 3, dev.getDevSn());
}
if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) {
noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(),
StrUtil.format("[{}]取消下发到[{}]{}",
workerIdMap.get(personId).getWorkerName(),
dev.getDevName(),
Objects.equals(faceStatus, 4) ? "成功" : "失败,下发异常"),
"人员下发设备提醒", "1");
}
}
}
@NotNull
private JSONObject getAddOrDeleteAuthParam(Map.Entry<String, List<JSONObject>> entry, List<String> workerIds) {
private JSONObject getAddOrDeleteAuthParam(Map.Entry<String, List<JSONObject>> entry, List<String> workerIds, Map<String, JSONObject> devSnToIscDevSnMap) {
JSONObject aaJo = new JSONObject();
aaJo.put("personDatas", Collections.singletonList(new MapBuilder<String, Object>()
.put("indexCodes", workerIds)
.put("personDataType", "person")
.build()));
aaJo.put("resourceInfos", getDevRqParam(entry));
aaJo.put("resourceInfos", getDevRqParam(entry, devSnToIscDevSnMap));
return aaJo;
}
@NotNull
private List<JSONObject> getDevRqParam(Map.Entry<String, List<JSONObject>> entry) {
private List<JSONObject> getDevRqParam(Map.Entry<String, List<JSONObject>> entry, Map<String, JSONObject> devSnToIscDevSnMap) {
return Collections.singletonList(new JoBuilder()
.put("resourceIndexCode", entry.getKey())
.put("resourceType", "door")
.put("channelNos", Collections.singletonList(1))
.put("resourceIndexCode", devSnToIscDevSnMap.get(entry.getKey()).getString("parentIndexCode"))
.put("resourceType", "acsDevice")
.put("channelNos", Collections.singletonList(devSnToIscDevSnMap.get(entry.getKey()).getString("channelNo")))
.build());
}
private JSONObject getQueryDownloadProgressParam(Map.Entry<String, List<JSONObject>> entry) {
private JSONObject getQueryDownloadProgressParam(Map.Entry<String, List<JSONObject>> entry, Map<String, JSONObject> devSnToIscDevSnMap) {
JSONObject aaJo = new JSONObject();
aaJo.put("taskType", 4);
aaJo.put("resourceInfos", getDevRqParam(entry));
aaJo.put("resourceInfos", getDevRqParam(entry, devSnToIscDevSnMap));
return aaJo;
}