diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java index 1e6a5be66..8ab043a3f 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; 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.zhgd.jeecg.common.execption.OpenPromptException; import com.zhgd.jeecg.common.util.SpringContextUtils; import com.zhgd.jeecg.common.util.pass.HttpUtils; @@ -551,11 +552,11 @@ public class AsyncHikvision { String redNotice = ""; List redNameList = workerList.stream().filter(w -> NumberUtils.lt(w.getSafeScore(), 80D)).map(WorkerInfo::getWorkerName).collect(Collectors.toList()); if (CollUtil.isNotEmpty(redNameList)) { - redNotice = StrUtil.format(",其中{}是红码不下发", StrUtil.join(",", redNameList)); + redNotice = StrUtil.format(",{}是红码不下发", StrUtil.join(",", redNameList)); } Notice notice = new Notice(); notice.setAccountId(userId); - notice.setMsg(StrUtil.format("已经完成批量向设备下发{}个人{}", workerList.size(), redNotice)); + notice.setMsg(StrUtil.format("已经完成批量向设备下发{}个人{}", workerList.size() - redNameList.size(), redNotice)); notice.setTitle("人员批量下发设备提醒"); notice.setSendTime(format1.format(new Date())); notice.setType("1"); @@ -579,16 +580,22 @@ public class AsyncHikvision { private void sendExcNotice(Exception e, List workerList, UfaceDev dev) { String exc; if (HttpUtils.isTimeOut(e)) { - exc = ",网络异常"; + exc = ",连接ISC网络异常"; } else { exc = ",下发异常"; } - List failWorkers = workerList.stream().filter(workerInfo -> !Objects.equals(workerInfo.getSendSuccessStatus(), 1)).collect(Collectors.toList()); - for (WorkerInfo workerInfo : failWorkers) { - if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { - noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), - StrUtil.format("{}{}设备下发权限失败{}", workerInfo.getWorkerName(), dev != null ? dev.getDevName() : "有些", exc), - "人员下发设备提醒", "1"); + if (CollUtil.isNotEmpty(workerList)) { + List failWorkers = workerInfoService.list(Wrappers.lambdaQuery() + .eq(WorkerInfo::getProjectSn, dev.getProjectSn()) + .ne(WorkerInfo::getSendSuccessStatus, 1) + .in(WorkerInfo::getId, workerList.stream().map(WorkerInfo::getId).collect(Collectors.toList())) + ); + for (WorkerInfo workerInfo : failWorkers) { + if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { + noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), + StrUtil.format("[{}]下发{}设备权限失败{}", workerInfo.getWorkerName(), dev != null ? "[" + dev.getDevName() + "]" : "有些", exc), + "人员下发设备提醒", "1"); + } } } } diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index 769062117..7d9d01004 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -1792,7 +1792,7 @@ public class HikvisionCall { JSONArray orgList = getOrgList(project, StrUtil.join(",", enterpriseId, enterpriseInfo != null ? enterpriseInfo.getProjectEnterprise().getId() : ""), project.getProjectSn()); String index = null; if (CollUtil.isEmpty(orgList)) { - index = String.valueOf(enterpriseInfo.getProjectEnterprise().getId()); + index = enterpriseInfo != null ? String.valueOf(enterpriseInfo.getProjectEnterprise().getId()) : enterpriseId; } else { index = orgList.getJSONObject(0).getString("orgIndexCode"); } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/NoticeMapper.xml b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/NoticeMapper.xml index a871a915a..ec7ccf0d0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/NoticeMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/NoticeMapper.xml @@ -29,6 +29,6 @@ AND type not in (31,32) - ORDER BY send_time DESC + ORDER BY send_time DESC,id desc diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java index ff11ae265..7d1841f0f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java @@ -646,9 +646,6 @@ public class WorkerInfoController { }) @PostMapping(value = "/uploadWorkerInfoImgs") public Result uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException { - if (!redisRepository.setNx("uploadWorkerInfoImgs:projectSn" + projectSn, 1000 * 30L)) { - return Result.ok("正在导入中,请耐心等待通知!"); - } workerInfoService.uploadWorkerInfoImgs(file, projectSn); return Result.ok("导入中,请耐心等待通知!"); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index 19f8e1317..023f75ca5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -457,6 +457,12 @@ public class WorkerInfoServiceImpl extends ServiceImpl> list, Map teamMap, Map departmentMap) { for (Map importInfo : list) { String name = importInfo.get("*姓名"); @@ -2206,15 +2224,21 @@ public class WorkerInfoServiceImpl extends ServiceImpl editWorkerInfos = getEditWorkerInfos(f.getAbsolutePath(), formatSb, sucSb, projectSn); allEditWorkerInfos.addAll(editWorkerInfos); } + ArrayList futures = new ArrayList<>(); for (WorkerInfo workerInfo : allEditWorkerInfos) { - workerInfoService.editWorkerInfo(workerInfo); + Future future = workerInfoService.editWorkerInfoAsync(workerInfo); + futures.add(future); + } + for (Future future : futures) { + while (!future.isDone()) { + } } //通知 if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) { String msg = ""; String sucSbStr = sucSb.toString(); if (StrUtil.isNotBlank(sucSbStr)) { - msg = "成功>" + sucSbStr; + msg = "导入图片:" + sucSbStr; } String failStr = failSb.toString(); if (StrUtil.isNotBlank(failStr)) { @@ -2230,7 +2254,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl