diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java index a68fce937..0134743ef 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java @@ -8,6 +8,7 @@ import com.zhgd.xmgl.call.HikvisionCall; import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.basicdata.service.INoticeService; 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.video.mapper.ProjectVideoHkVqdMapper; @@ -41,8 +42,12 @@ import java.util.Objects; @Component public class AsyncHikvision { public static final String XZ_HIKVISION_SYNC_TIME = "xzHikvisionSyncTime"; + @Lazy + @Autowired + public CarInfoServiceImpl carInfoService; @Autowired @Lazy + public WorkerInfoServiceImpl workerInfoService; @Autowired @Lazy @@ -114,13 +119,6 @@ public class AsyncHikvision { } } - public void addWorkerForHikvision(WorkerInfo workerInfo) { - getSyncTimeWithInitIfAbsent(1, workerInfo.getId()); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(1).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId()))); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(1).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId()))); - asyncHikvision.addWorkerForHikvisionAsync(workerInfo); - } - @Async("hikvisionExecutor") public void editWorkerForHikvisionAsync(WorkerInfo workerInfo) { try { @@ -131,13 +129,6 @@ public class AsyncHikvision { } } - public void editWorkerForHikvision(WorkerInfo workerInfo) { - getSyncTimeWithInitIfAbsent(1, workerInfo.getId()); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId()))); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId()))); - asyncHikvision.editWorkerForHikvisionAsync(workerInfo); - } - private void sendNoticeForWorker(WorkerInfo workerInfo, Exception e, String action) { String title = action + "人员到海康isc失败"; String type = "23"; @@ -158,34 +149,13 @@ public class AsyncHikvision { @Async("hikvisionExecutor") public void deleteWorkerForHikvisionAsync(String uniqueId, WorkerInfo workerInfo) { try { - hikvisionCall.deleteWorkerForHikvision(uniqueId,workerInfo); + hikvisionCall.deleteWorkerForHikvision(uniqueId, workerInfo); } catch (Exception e) { log.error("海康:", e); sendNoticeForWorker(workerInfo, e, "删除"); } } - public void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo) { - getSyncTimeWithInitIfAbsent(1, workerInfo.getId()); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(3).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId()))); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(3).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId()))); - asyncHikvision.deleteWorkerForHikvisionAsync(uniqueId,workerInfo); - } - - public void addCarInfoForHikvision(CarInfo carInfo) { - if (carInfo.getIsBlack() == 1) { - deleteCarInfoForHikvision(carInfo, true); - } else { - if (Objects.equals(carInfo.getCarModuleType(), 1)) { - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - } 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); - } - } - @Async("carInfoExecutor") public void addCarInfoForHikvisionAsyc(CarInfo carInfo) { try { @@ -222,23 +192,6 @@ public class AsyncHikvision { hikvisionCall.updateAllFailStatusIfNullByNow(carInfo.getProjectSn(), carInfo.getId(), 4, getSyncTimeWithInitIfAbsent(2, carInfo.getId())); } - public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) { - if (carInfo.getIsBlack() == 1) { - deleteCarInfoForHikvision(carInfo, true); - } else { - if (Objects.equals(carInfo.getCarModuleType(), 1)) { - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(2).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - } 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()))); - } - if (old.getIsBlack() == 1) { - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - } - asyncHikvision.editCarInfoForHikvisionAsync(carInfo, old); - } - } - @Async("carInfoExecutor") public void editCarInfoForHikvisionAsync(CarInfo carInfo, CarInfo old) { try { @@ -249,14 +202,6 @@ public class AsyncHikvision { } } - public void deleteCarInfoForHikvision(CarInfo carInfo, boolean isSetBlack) { - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(isSetBlack ? 1 : 3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - asyncHikvision.deleteCarInfoForHikvisionAsync(carInfo, isSetBlack); - } - @Async("carInfoExecutor") public void deleteCarInfoForHikvisionAsync(CarInfo carInfo, boolean isSetBlack) { try { @@ -327,7 +272,7 @@ public class AsyncHikvision { @Async("carInfoExecutor") public void deleteTeamInfoForHikvision(String id, TeamInfo teamInfo) { try { - hikvisionCall.deleteTeamInfoForHikvision(id,teamInfo); + hikvisionCall.deleteTeamInfoForHikvision(id, teamInfo); } catch (Exception e) { log.error("海康:", e); sendNoticeForOrg(teamInfo.getTeamName(), e, "删除"); @@ -367,7 +312,7 @@ public class AsyncHikvision { @Async("carInfoExecutor") public void deleteDepartmentInfoForHikvision(String uniqueId, DepartmentInfo departmentInfo) { try { - hikvisionCall.deleteDepartmentInfoForHikvision(uniqueId,departmentInfo); + hikvisionCall.deleteDepartmentInfoForHikvision(uniqueId, departmentInfo); } catch (Exception e) { log.error("海康:", e); sendNoticeForOrg(departmentInfo.getDepartmentName(), e, "删除"); diff --git a/src/main/java/com/zhgd/xmgl/modules/car/service/ICarInfoService.java b/src/main/java/com/zhgd/xmgl/modules/car/service/ICarInfoService.java index a3d8061f8..4337469e3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/car/service/ICarInfoService.java +++ b/src/main/java/com/zhgd/xmgl/modules/car/service/ICarInfoService.java @@ -2,9 +2,11 @@ package com.zhgd.xmgl.modules.car.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo; import com.zhgd.xmgl.modules.project.entity.Project; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import java.util.List; import java.util.Map; @@ -38,4 +40,10 @@ public interface ICarInfoService extends IService { CarInfo queryById(String id); CarInfo queryByCarNumber(String carNumber); + + void addCarInfoForHikvision(CarInfo carInfo, AsyncHikvision asyncHikvision); + + void deleteCarInfoForHikvision(CarInfo carInfo, boolean isSetBlack); + + void editCarInfoForHikvision(CarInfo carInfo, CarInfo old); } 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 66b0e7410..da96ddb26 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 @@ -21,16 +21,21 @@ import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl; +import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync; +import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper; import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.PageUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import static com.zhgd.xmgl.async.AsyncHikvision.getSyncTimeWithInitIfAbsent; + /** * @Description: 车辆黑白名单管理 * @author: pds @@ -41,6 +46,9 @@ import java.util.*; @Transactional(rollbackFor = Exception.class) @Slf4j public class CarInfoServiceImpl extends ServiceImpl implements ICarInfoService { + @Lazy + @Autowired + private XzHikvisionSyncMapper xzHikvisionSyncMapper; @Autowired CarInfoApprovalFlowMapper carInfoApprovalFlowMapper; @Autowired @@ -102,7 +110,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl return; } if (c.getIsBlack() == 1) { - asyncHikvision.deleteCarInfoForHikvision(old, true); + deleteCarInfoForHikvision(old, true); } else { if (old.getIsBlack() == 0 && DateUtil.compare(old.getReserveStartTime(), now) < 0 && DateUtil.compare(old.getReserveEndTime(), now) > 0) { log.info("车辆在有效期内,不需要更新,车牌号:{}", c.getCarNumber()); @@ -114,7 +122,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl carInfoMapper.insert(c); addCarInfoForApprovalFlowIf(c); //同步海康 - asyncHikvision.addCarInfoForHikvision(c); + addCarInfoForHikvision(c, asyncHikvision); } } @@ -204,7 +212,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl } //同步海康 - asyncHikvision.editCarInfoForHikvision(carInfo, old); + editCarInfoForHikvision(carInfo, old); } private boolean isReservationType(CarInfo old) { @@ -288,7 +296,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl private void deleteCar(CarInfo carInfo) { carInfoMapper.deleteById(carInfo.getId()); //同步海康 - asyncHikvision.deleteCarInfoForHikvision(carInfo, false); + deleteCarInfoForHikvision(carInfo, false); } private void deleteFromApprovalFlowIf(CarInfo carInfo) { @@ -316,4 +324,46 @@ public class CarInfoServiceImpl extends ServiceImpl impl public CarInfo queryByCarNumber(String carNumber) { return baseMapper.queryByCarNumber(carNumber); } + + @Override + public void addCarInfoForHikvision(CarInfo carInfo, AsyncHikvision asyncHikvision) { + if (carInfo.getIsBlack() == 1) { + deleteCarInfoForHikvision(carInfo, true); + } else { + if (Objects.equals(carInfo.getCarModuleType(), 1)) { + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + } 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); + } + } + + @Override + public void deleteCarInfoForHikvision(CarInfo carInfo, boolean isSetBlack) { + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(isSetBlack ? 1 : 3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + asyncHikvision.deleteCarInfoForHikvisionAsync(carInfo, isSetBlack); + } + + @Override + public void editCarInfoForHikvision(CarInfo carInfo, CarInfo old) { + if (carInfo.getIsBlack() == 1) { + deleteCarInfoForHikvision(carInfo, true); + } else { + if (Objects.equals(carInfo.getCarModuleType(), 1)) { + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(2).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + } 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()))); + } + if (old.getIsBlack() == 1) { + xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); + } + asyncHikvision.editCarInfoForHikvisionAsync(carInfo, old); + } + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java index 187998742..c443783c5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java @@ -152,4 +152,10 @@ public interface IWorkerInfoService extends IService { void updateWorkerById(WorkerInfo workerInfo); void exportQrCode(Map param); + + void addWorkerForHikvision(WorkerInfo workerInfo); + + void deleteWorkerForHikvision(String uniqueId, WorkerInfo workerInfo); + + void editWorkerForHikvision(WorkerInfo workerInfo); } 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 f26ffa66d..a2baf5c51 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 @@ -37,6 +37,7 @@ import com.zhgd.xmgl.modules.basicdata.service.IDictionaryItemService; import com.zhgd.xmgl.modules.basicdata.service.UploadFileService; import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl; import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl; +import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl; import com.zhgd.xmgl.modules.dangerous.mapper.HiddenDangerInspectRecordMapper; import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService; import com.zhgd.xmgl.modules.inspection.mapper.InspectTaskRecordMapper; @@ -53,6 +54,8 @@ import com.zhgd.xmgl.modules.worker.entity.vo.*; import com.zhgd.xmgl.modules.worker.enums.EduTypeEnum; import com.zhgd.xmgl.modules.worker.mapper.*; import com.zhgd.xmgl.modules.worker.service.*; +import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync; +import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper; import com.zhgd.xmgl.modules.xz.service.impl.XzSupplierQualificationApplyServiceImpl; import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.*; @@ -62,6 +65,7 @@ import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -77,6 +81,8 @@ import java.util.*; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; +import static com.zhgd.xmgl.async.AsyncHikvision.getSyncTimeWithInitIfAbsent; + /** * @Description: 劳务人员 * @author: pds @@ -87,6 +93,12 @@ import java.util.stream.Collectors; @Slf4j @Transactional(rollbackFor = Exception.class) public class WorkerInfoServiceImpl extends ServiceImpl implements IWorkerInfoService { + @Lazy + @Autowired + public XzHikvisionSyncMapper xzHikvisionSyncMapper; + @Lazy + @Autowired + public CarInfoServiceImpl carInfoService; @Autowired IWorkerSafeEducationWorkerService workerSafeEducationWorkerService; @Autowired @@ -371,7 +383,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl c.getId()).collect(Collectors.toSet())); for (CarInfo carInfo : carInfos) { //同步海康 - asyncHikvision.deleteCarInfoForHikvision(carInfo, false); + asyncHikvision.carInfoService.deleteCarInfoForHikvision(carInfo, false); } } }