From 4281929c0a1e12f1f2035b2474c5bc9211a2600d Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Tue, 11 Jun 2024 14:47:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=B7=E5=BA=B7=E7=8A=B6=E6=80=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/xmgl/async/AsyncHikvision.java | 83 +++++++++---------- .../car/service/impl/CarInfoServiceImpl.java | 2 +- .../service/IProjectUfaceConfigService.java | 4 + .../impl/ProjectUfaceConfigServiceImpl.java | 58 ++++++++++--- .../XzHikvisionCompareDataServiceImpl.java | 2 +- .../impl/XzHikvisionSyncServiceImpl.java | 36 ++++---- .../com/zhgd/xmgl/util/HikvisionUtil.java | 5 +- 7 files changed, 112 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java index 9fdb44652..dc7777497 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java @@ -11,6 +11,7 @@ import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl; import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; +import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService; import com.zhgd.xmgl.modules.video.mapper.ProjectVideoHkVqdMapper; import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper; import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo; @@ -34,7 +35,6 @@ import org.springframework.stereotype.Component; import java.util.Date; import java.util.HashMap; -import java.util.Objects; /** * 海康 @@ -50,6 +50,7 @@ public class AsyncHikvision { @Lazy public WorkerInfoServiceImpl workerInfoService; + public IProjectUfaceConfigService projectUfaceConfigService; @Autowired @Lazy HikvisionCall hikvisionCall; @@ -104,7 +105,6 @@ public class AsyncHikvision { return ThreadLocalUtil.getNotNull().getDate(XZ_HIKVISION_SYNC_TIME); } - /** * 添加劳务人员-海康 * @@ -122,6 +122,10 @@ public class AsyncHikvision { } } + public void addWorkerForHikvision(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) { + this.addWorkerForHikvisionAsync(workerInfo, isSaveWorker, isSaveWorkerFace); + } + @Async("hikvisionExecutor") public void editWorkerForHikvisionAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) { try { @@ -132,6 +136,10 @@ public class AsyncHikvision { } } + public void editWorkerForHikvision(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) { + this.editWorkerForHikvisionAsync(workerInfo, isSaveWorker, isSaveWorkerFace); + } + private void sendNoticeForWorker(WorkerInfo workerInfo, Exception e, String action) { String title = action + "人员到海康isc失败"; String type = "23"; @@ -159,8 +167,12 @@ public class AsyncHikvision { } } + public void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo) { + this.deleteWorkerForHikvisionAsync(uniqueId, workerInfo); + } + @Async("carInfoExecutor") - public void addCarInfoForHikvisionAsyc(CarInfo carInfo) { + public void addCarInfoForHikvisionAsync(CarInfo carInfo) { try { hikvisionCall.saveCarInfoFromHikvision(carInfo); } catch (Exception e) { @@ -169,13 +181,8 @@ public class AsyncHikvision { } } - @Async("carInfoExecutor") - public void handleAlarmCarForHikvision(CarInfo carInfo) { - Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, carInfo.getProjectSn())); - if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { - return; - } - hikvisionCall.handleAlarmCar(project, carInfo); + public void addCarInfoForHikvision(CarInfo carInfo) { + this.addCarInfoForHikvisionAsync(carInfo); } private void sendNoticeForCar(CarInfo carInfo, Exception e, String action) { @@ -192,7 +199,7 @@ public class AsyncHikvision { if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), msg, title, type); } - hikvisionCall.updateAllFailStatusIfNull(carInfo.getProjectSn(), carInfo.getId(), 4); + hikvisionCall.updateAllFailStatusIfNull(carInfo.getProjectSn(), carInfo.getId(), 2); } @Async("carInfoExecutor") @@ -205,6 +212,10 @@ public class AsyncHikvision { } } + public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) { + this.editCarInfoForHikvisionAsync(carInfo, old); + } + @Async("carInfoExecutor") public void deleteCarInfoAndSetBlackForHikvisionAsync(CarInfo carInfo, boolean isSetBlack) { try { @@ -215,6 +226,10 @@ public class AsyncHikvision { } } + public void deleteCarInfoAndSetBlackForHikvision(CarInfo carInfo, boolean isSetBlack) { + this.deleteCarInfoAndSetBlackForHikvisionAsync(carInfo, isSetBlack); + } + @Async("carInfoExecutor") public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) { try { @@ -331,24 +346,12 @@ public class AsyncHikvision { } } - public void addPersonAuth(WorkerInfo workerInfo, String devSn) { - if (StringUtils.isBlank(devSn)) { - return; - } - getSyncTimeWithInitIfAbsent(1, workerInfo.getId()); - String[] devSnArr = StringUtils.split(devSn, ","); - for (String ds : devSnArr) { - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(1).setWhoId(workerInfo.getId()).setDeviceSn(ds).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId()))); - } - asyncHikvision.addPersonAuthAsync(workerInfo, devSn); - } - @Async("hikvisionExecutor") - public void addPersonAuthAsync(WorkerInfo workerInfo, String devSn) { + public void addPersonAuthAsync(WorkerInfo workerInfo, String devSns) { try { StringBuilder sucSb = new StringBuilder(); StringBuilder failSb = new StringBuilder(); - String[] devSnArr = StringUtils.split(devSn, ","); + String[] devSnArr = StringUtils.split(devSns, ","); try { for (String ds : devSnArr) { hikvisionCall.updatePersonAuth(workerInfo, ds, sucSb, failSb, 0); @@ -359,7 +362,7 @@ public class AsyncHikvision { } else { noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), e.getMessage(), "人员下发设备提醒", "1"); } - hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); + hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 1, 1, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); return; } @@ -379,28 +382,14 @@ public class AsyncHikvision { if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), StringUtils.substring(msg, 0, msg.length() - 1), title, type); } - hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 1, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); + hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 1, 1, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); } catch (Exception e) { log.error("海康:", e); } } - /** - * 删除 - * - * @param workerInfo - * @param devSns - */ - public void deletePersonAuth(WorkerInfo workerInfo, String devSns) { - if (StringUtils.isBlank(devSns)) { - return; - } - getSyncTimeWithInitIfAbsent(1, workerInfo.getId()); - String[] devSnArr = StringUtils.split(devSns, ","); - for (String ds : devSnArr) { - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(3).setOperate(3).setWhoId(workerInfo.getId()).setDeviceSn(ds).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId()))); - } - asyncHikvision.deletePersonAuthAsync(workerInfo, devSns); + public void addPersonAuth(WorkerInfo workerInfo, String devSns) { + this.addPersonAuthAsync(workerInfo, devSns); } @Async("hikvisionExecutor") @@ -422,7 +411,7 @@ public class AsyncHikvision { } else { noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), e.getMessage(), "人员下发设备提醒", "1"); } - hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); + hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 1, 3, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); return; } @@ -442,12 +431,16 @@ public class AsyncHikvision { if (ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class) != null) { noticeService.addUserNotice(ThreadLocalUtil.getByKey(Cts.TL_AUTH_USER, UserInfo.class).getUserId(), StringUtils.substring(msg, 0, msg.length() - 1), title, type); } - hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 3, 3, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); + hikvisionCall.updateAllFailStatusIfNullForAuth(workerInfo.getProjectSn(), workerInfo.getId(), 1, 3, getSyncTimeWithInitIfAbsent(1, workerInfo.getId())); } catch (Exception e) { log.error("海康:", e); } } + public void deletePersonAuth(WorkerInfo workerInfo, String devSn) { + this.deletePersonAuthAsync(workerInfo, devSn); + } + @Async("getRecordForHikvisionTask") public void getCrossRecordsAsync(HashMap paramMap) { hikvisionCall.getCrossRecords(paramMap); diff --git a/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java index e98becdb7..c7d712540 100644 --- a/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java @@ -375,7 +375,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl } else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) { xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); } - asyncHikvision.addCarInfoForHikvisionAsyc(carInfo); + asyncHikvision.addCarInfoForHikvisionAsync(carInfo); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java index 76de7e55c..2fd327134 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java @@ -31,4 +31,8 @@ public interface IProjectUfaceConfigService extends IService void sendBatchWorkerInfo(WorkerInfo workerInfo, ProjectUfaceConfig projectUfaceConfig, List list); boolean isHikvisionConfig(String projectSn); + + void addPersonAuth(WorkerInfo workerInfo, String devSn); + + void deletePersonAuth(WorkerInfo workerInfo, String devSns); } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java index 1ee31c62c..0d3cc4eb0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.async.AsyncHikvision; -import com.zhgd.xmgl.modules.car.entity.ProjectCarCameraConfig; import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig; import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper; import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService; @@ -18,6 +17,8 @@ import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper; import com.zhgd.xmgl.modules.worker.mapper.UfaceDevToGroupMapper; import com.zhgd.xmgl.modules.worker.mapper.UserDevAuthorityMapper; import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl; +import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync; +import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper; import com.zhgd.xmgl.util.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -30,6 +31,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; +import static com.zhgd.xmgl.async.AsyncHikvision.getSyncTimeWithInitIfAbsent; + /** * @Description: 项目对应的人脸设备配置 * @author: pds @@ -40,6 +43,8 @@ import java.util.stream.Collectors; @Slf4j @Transactional(rollbackFor = Exception.class) public class ProjectUfaceConfigServiceImpl extends ServiceImpl implements IProjectUfaceConfigService { + @Autowired + XzHikvisionSyncMapper xzHikvisionSyncMapper; @Lazy @Autowired private WorkerInfoServiceImpl workerInfoService; @@ -53,7 +58,6 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl notExistList = ufaceDevMapper.getUfaceDevListForIscNotExist(StrUtil.split(ufaceDevGroupId, ","), workerInfo.getProjectSn()); if (CollUtil.isNotEmpty(notExistList)) { notDevSns = StrUtil.join(",", notExistList.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); - asyncHikvision.deletePersonAuth(workerInfo, notDevSns); + asyncHikvision.projectUfaceConfigService.deletePersonAuth(workerInfo, notDevSns); } if (CollUtil.isNotEmpty(listForIsc)) { devSns = StrUtil.join(",", listForIsc.stream().map(UfaceDev::getDevSn).collect(Collectors.toList())); - asyncHikvision.addPersonAuth(workerInfo, devSns); + this.addPersonAuth(workerInfo, devSns); } } else { //只删除 @@ -312,7 +316,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl