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 | 146 +++++++++++++++++------------------------------- 1 files changed, 52 insertions(+), 94 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 9d77347..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; /** @@ -29,26 +32,21 @@ @Slf4j(topic = "external") @Order(5) public class ArdEquipExternalServiceImpl implements IArdEquipExternalService, ApplicationRunner { + 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) throws Exception { - //鑾峰彇鍏ㄩ儴娴峰悍鎶ヨ涓绘満灏濊瘯鐧诲綍 - 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(); } @@ -60,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 @@ -127,6 +92,30 @@ }, 10, 10, TimeUnit.SECONDS); } + /** + * 鏌ヨexternal + * + * @param ardEquipExternal external + * @return external闆嗗悎 + */ + @Override + public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) { + QueryWrapper<ArdEquipExternal> queryWrapper = new QueryWrapper<>(ardEquipExternal); + return ardEquipExternalMapper.selectOne(queryWrapper); + } + + /** + * 鎸夌被鍨嬪垪琛ㄦ煡璇xternal鍒楄〃 + * + * @param types 绫诲瀷鍒楄〃 + * @return external + */ + @Override + 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) { @@ -148,8 +137,6 @@ return differentFieldsList; } - - // 姹備袱涓璞ist鐨勫樊闆� private List<ArdEquipExternal> diffList(List<ArdEquipExternal> oldArrayList, List<ArdEquipExternal> newArrayList) { List<ArdEquipExternal> resultList = oldArrayList.stream() @@ -157,33 +144,4 @@ .collect(Collectors.toList()); return resultList; } - - /** - * 鏌ヨexternal - * - * @param id external涓婚敭 - * @return external - */ - @Override - public ArdEquipExternal selectArdEquipExternalById(String id) { - return ardEquipExternalMapper.selectArdEquipExternalById(id); - } - - @Override - public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) { - return ardEquipExternalMapper.selectArdEquipExternal(ardEquipExternal); - } - - /** - * 鏌ヨexternal鍒楄〃 - * - * @param ardEquipExternal external - * @return external - */ - @Override - public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal) { - return ardEquipExternalMapper.selectArdEquipExternalList(ardEquipExternal); - } - - } -- Gitblit v1.9.3