From 2574db703fa175765394dba9d4e0d623a1bcd16a Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期三, 29 十一月 2023 17:19:57 +0800 Subject: [PATCH] 修复bug --- src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java | 117 +++++++++++++++++----------------------------------------- 1 files changed, 35 insertions(+), 82 deletions(-) diff --git a/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java b/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java index e5fa5e8..782a1c9 100644 --- a/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java +++ b/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java @@ -11,12 +11,15 @@ import com.ard.alarm.external.mapper.ArdEquipExternalMapper; import com.ard.alarm.external.service.IArdEquipExternalService; import com.ard.utils.hiksdk.service.impl.HikClientUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; /** @@ -32,28 +35,17 @@ private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); - public static List<ArdEquipExternal> ardAlarmHostList = new ArrayList<>(); - public static List<ArdEquipExternal> ardAccessHostList = new ArrayList<>(); - - @Autowired + public static List<ArdEquipExternal> ardEquipExternalList = new ArrayList<>(); + @Resource private ArdEquipExternalMapper ardEquipExternalMapper; @Override - public void run(ApplicationArguments args){ - //鑾峰彇鍏ㄩ儴娴峰悍鎶ヨ涓绘満灏濊瘯鐧诲綍 - ArdEquipExternal alarmHost = new ArdEquipExternal(); - alarmHost.setFactory("1"); - alarmHost.setType("1"); - ardAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost); - HikClientUtil.loginAllAlarmHost(ardAlarmHostList); - - //鑾峰彇鍏ㄩ儴闂ㄧ涓绘満灏濊瘯鐧诲綍 - ArdEquipExternal accessControlHost = new ArdEquipExternal(); - accessControlHost.setFactory("1"); - accessControlHost.setType("6"); - ardAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(accessControlHost); - HikClientUtil.loginAllAccessControlHost(ardAccessHostList); - + public void run(ApplicationArguments args) { + List<String> targetTypes = Arrays.asList("1", "5", "6"); + List<ArdEquipExternal> ardEquipExternals = selectArdEquipExternalListByTypes(targetTypes); + HikClientUtil.loginAllArdEquipExternals(ardEquipExternals); + ardEquipExternalList.addAll(ardEquipExternals); + log.debug("澶栬仈璁惧灏濊瘯鐧诲綍"); //鍚屾浠诲姟 syncTask(); } @@ -66,64 +58,31 @@ private void syncTask() { scheduler.scheduleAtFixedRate(() -> { try { - //region 瀹氭椂鍚屾鎶ヨ涓绘満 - ArdEquipExternal alarmHost = new ArdEquipExternal(); - alarmHost.setFactory("1"); - alarmHost.setType("1"); - List<ArdEquipExternal> newAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost); + //region 瀹氭椂鍚屾澶栬仈璁惧 + List<String> targetTypes = Arrays.asList("1", "5", "6"); + List<ArdEquipExternal> ardEquipExternalsNew = selectArdEquipExternalListByTypes(targetTypes); //闇�瑕佹洿鏂扮殑鏁版嵁 - List<ArdEquipExternal> updateList = sameListWithDifferent(ardAlarmHostList, newAlarmHostList); + List<ArdEquipExternal> updateList = sameListWithDifferent(ardEquipExternalList, ardEquipExternalsNew); if (updateList.size() > 0) { - HikClientUtil.logoutAllAlarmHost(updateList); - HikClientUtil.loginAllAlarmHost(updateList); - ardAlarmHostList.clear(); - ardAlarmHostList.addAll(newAlarmHostList); + HikClientUtil.logoutAllArdEquipExternals(updateList); + HikClientUtil.loginAllArdEquipExternals(updateList); + ardEquipExternalList.clear(); + ardEquipExternalList.addAll(ardEquipExternalsNew); } //闇�瑕佸垹闄ょ殑鏁版嵁 - List<ArdEquipExternal> delList = diffList(ardAlarmHostList, newAlarmHostList); + List<ArdEquipExternal> delList = diffList(ardEquipExternalList, ardEquipExternalsNew); if (delList.size() > 0) { - HikClientUtil.logoutAllAlarmHost(delList); + HikClientUtil.logoutAllArdEquipExternals(delList); for (ArdEquipExternal ardEquipExternal : delList) { - ardAlarmHostList.remove(ardEquipExternal); + ardEquipExternalList.remove(ardEquipExternal); } } //闇�瑕佹柊澧炵殑鏁版嵁 - List<ArdEquipExternal> inserList = diffList(newAlarmHostList, ardAlarmHostList); + List<ArdEquipExternal> inserList = diffList(ardEquipExternalsNew, ardEquipExternalList); if (inserList.size() > 0) { - HikClientUtil.loginAllAlarmHost(inserList); + HikClientUtil.loginAllArdEquipExternals(inserList); for (ArdEquipExternal ardEquipExternal : inserList) { - ardAlarmHostList.add(ardEquipExternal); - } - } - - //endregion - //region 瀹氭椂鍚屾闂ㄧ涓绘満 - alarmHost = new ArdEquipExternal(); - alarmHost.setFactory("1"); - alarmHost.setType("6"); - List<ArdEquipExternal> newAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost); - //闇�瑕佹洿鏂扮殑鏁版嵁 - updateList = sameListWithDifferent(ardAccessHostList, newAccessHostList); - if (updateList.size() > 0) { - HikClientUtil.logoutAllAlarmHost(updateList); - HikClientUtil.loginAllAlarmHost(updateList); - ardAccessHostList.clear(); - ardAccessHostList.addAll(newAccessHostList); - } - //闇�瑕佸垹闄ょ殑鏁版嵁 - delList = diffList(ardAccessHostList, newAccessHostList); - if (delList.size() > 0) { - HikClientUtil.logoutAllAccessControlHost(delList); - for (ArdEquipExternal ardEquipExternal : delList) { - ardAccessHostList.remove(ardEquipExternal); - } - } - //闇�瑕佹柊澧炵殑鏁版嵁 - inserList = diffList(newAccessHostList, ardAccessHostList); - if (inserList.size() > 0) { - HikClientUtil.loginAllAccessControlHost(inserList); - for (ArdEquipExternal ardEquipExternal : inserList) { - ardAccessHostList.add(ardEquipExternal); + ardEquipExternalList.add(ardEquipExternal); } } //endregion @@ -133,34 +92,30 @@ }, 10, 10, TimeUnit.SECONDS); } - /** * 鏌ヨexternal * - * @param id external涓婚敭 - * @return external + * @param ardEquipExternal external + * @return external闆嗗悎 */ @Override - public ArdEquipExternal selectArdEquipExternalById(String id) { - return ardEquipExternalMapper.selectArdEquipExternalById(id); - } - - @Override public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) { - return ardEquipExternalMapper.selectArdEquipExternal(ardEquipExternal); + QueryWrapper<ArdEquipExternal> queryWrapper = new QueryWrapper<>(ardEquipExternal); + return ardEquipExternalMapper.selectOne(queryWrapper); } /** - * 鏌ヨexternal鍒楄〃 + * 鎸夌被鍨嬪垪琛ㄦ煡璇xternal鍒楄〃 * - * @param ardEquipExternal external + * @param types 绫诲瀷鍒楄〃 * @return external */ @Override - public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal) { - return ardEquipExternalMapper.selectArdEquipExternalList(ardEquipExternal); + public List<ArdEquipExternal> selectArdEquipExternalListByTypes(List<String> types) { + QueryWrapper<ArdEquipExternal> queryWrapper = new QueryWrapper<>(); + queryWrapper.in("type", types); + return ardEquipExternalMapper.selectList(queryWrapper); } - //姹備袱涓璞ist鐨勪氦闆嗗瓧娈典笉鍚孖d鐩稿悓 private List<ArdEquipExternal> sameListWithDifferent(List<ArdEquipExternal> oldList, List<ArdEquipExternal> newList) { @@ -182,8 +137,6 @@ return differentFieldsList; } - - // 姹備袱涓璞ist鐨勫樊闆� private List<ArdEquipExternal> diffList(List<ArdEquipExternal> oldArrayList, List<ArdEquipExternal> newArrayList) { List<ArdEquipExternal> resultList = oldArrayList.stream() -- Gitblit v1.9.3