From 1d43e01376590a26a8e976a398b4744b6906cab4 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 02 九月 2024 18:16:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/task/OsdTask.java | 192 ++++++++++++++++++++++++++--------------------- 1 files changed, 106 insertions(+), 86 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/task/OsdTask.java b/ycl-server/src/main/java/com/ycl/task/OsdTask.java index 4b0ce3c..ae12191 100644 --- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java +++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java @@ -1,12 +1,10 @@ package com.ycl.task; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.mongodb.client.result.DeleteResult; -import com.ycl.api.DH.module.LoginModule; import com.ycl.api.DH.utils.DHApi; import com.ycl.api.HK.HKApi; +import com.ycl.api.YS.YSApi; import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.result.OSDResult; import com.ycl.platform.domain.result.UY.MonitorQualifyResult; @@ -49,20 +47,16 @@ public String DHUserName; @Value("${DH.password}") public String DHPassword; + @Value("${YS.userName}") + public String YSUserName; + @Value("${YS.password}") + public String YSPassword; @Autowired private MongoTemplate mongoTemplate; @Autowired private TMonitorMapper monitorMapper; @Autowired private UYErrorTypeCheckService uyErrorTypeCheckService; - - private static final ExecutorService executorService = new ThreadPoolExecutor(8, - 24, - 5000, - TimeUnit.SECONDS, - new ArrayBlockingQueue<>(1000), - new ThreadPoolExecutor.CallerRunsPolicy() - ); /** * 閫氳繃鏌ongoDB姣忔棩涓�鏈轰竴妗f暟鎹幏鍙栬澶噄p @@ -84,84 +78,97 @@ List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class); //闇�瑕佽�冩牳鐨勬暟鎹� List<String> serialNumbers = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList()); - - List<TMonitor> monitors = monitorMapper.selectByNumbers(serialNumbers); - monitors = monitors.stream().filter(monitor -> monitor.getId()<7000).collect(Collectors.toList()); - log.info("澶勭悊鏁版嵁澶у皬{}",monitors.size()); - for (TMonitor monitor : monitors) { - executorService.submit(() -> { - if (DeviceType.HK.getType().equals(monitor.getDeviceType())) { - //娴峰悍鍝佺墝 - OSDResult osd = HKApi.getOsdByIP(monitor.getIp(), HKUserName, HKPassword); - if (checkSuccess(osdResultList, monitor, osd)){ - log.info("娴峰悍璋冪敤鎴愬姛"+osd); - return; + if(!CollectionUtils.isEmpty(serialNumbers)) { + ExecutorService executorService = new ThreadPoolExecutor(8, + 24, + 5000, + TimeUnit.SECONDS, + new ArrayBlockingQueue<>(1000), + new ThreadPoolExecutor.CallerRunsPolicy() + ); + List<TMonitor> monitors = monitorMapper.selectByNumbers(serialNumbers); + monitors = monitors.stream().filter(monitor -> !StringUtils.isEmpty(monitor.getIp()) && !"127.0.0.1".equals(monitor.getIp())).collect(Collectors.toList()); +// log.info("澶勭悊鏁版嵁澶у皬{}", monitors.size()); + for (TMonitor monitor : monitors) { + executorService.submit(() -> { + if (DeviceType.HK.getType().equals(monitor.getDeviceType())) { + //娴峰悍 + OSDResult osd = HKApi.getOsdByIP(monitor.getIp(), HKUserName, HKPassword); + if (checkSuccess(osdResultList, monitor, osd)) { + log.info("娴峰悍璋冪敤鎴愬姛" + osd); + return; + } + } else if (DeviceType.DH.getType().equals(monitor.getDeviceType())) { + //澶у崕 + OSDResult osd = DHApi.getOsd(monitor.getIp(), DHUserName, DHPassword); + if (checkSuccess(osdResultList, monitor, osd)) { + log.info("澶у崕璋冪敤鎴愬姛" + osd); + return; + } + } else if (DeviceType.YS.getType().equals(monitor.getDeviceType())) { + //瀹囪 + OSDResult osd = YSApi.getOsd(monitor.getIp(), YSUserName, YSPassword); + if (checkSuccess(osdResultList, monitor, osd)) { + log.info("瀹囪璋冪敤鎴愬姛" + osd); + return; + } } - } else if (DeviceType.DH.getType().equals(monitor.getDeviceType())) { - //澶у崕鍝佺墝 - OSDResult osd = DHApi.getOsd(monitor.getIp(), DHUserName, DHPassword); - if (checkSuccess(osdResultList, monitor, osd)) { - log.info("澶у崕璋冪敤鎴愬姛"+osd); - return; + //鏈煡鍝佺墝鎴栬�卆pi璋冪敤澶辫触锛屾尐涓墽琛屾墍鏈塧pi + OSDResult osd = tryAllApi(monitor, hkList, dhList, ysList); + if (osd != null) { + synchronized (osdResultList) { + osdResultList.add(osd); + } } - } else if (DeviceType.YS.getType().equals(monitor.getDeviceType())) { - //TODO锛氬畤瑙哸pi + }); + } + //涓嶅啀鎺ユ敹鏂颁换鍔� + executorService.shutdown(); + try { + // 绛夊緟鎵�鏈変换鍔″畬鎴愶紝鏈�澶氱瓑寰�10绉掞紙鍙互鏍规嵁闇�瑕佽皟鏁达級 + if (!executorService.awaitTermination(10, TimeUnit.SECONDS)) { + // 濡傛灉瓒呮椂锛屽皾璇曞仠姝㈠綋鍓嶆鍦ㄦ墽琛岀殑浠诲姟 + executorService.shutdownNow(); } - //鏈煡鍝佺墝鎴栬�卆pi璋冪敤澶辫触锛屾尐涓墽琛屾墍鏈塧pi - OSDResult osd = tryAllApi(monitor, hkList, dhList, ysList); - if (osd != null) { - synchronized (osdResultList) { - osdResultList.add(osd); - } - } - }); - } - executorService.shutdown(); - try { - // 绛夊緟鎵�鏈変换鍔″畬鎴愶紝鏈�澶氱瓑寰�10绉掞紙鍙互鏍规嵁闇�瑕佽皟鏁达級 - if (!executorService.awaitTermination(10, TimeUnit.SECONDS)) { - // 濡傛灉瓒呮椂锛屽皾璇曞仠姝㈠綋鍓嶆鍦ㄦ墽琛岀殑浠诲姟 + } catch (InterruptedException e) { + // 褰撳墠绾跨▼鍦ㄧ瓑寰呰繃绋嬩腑琚腑鏂� executorService.shutdownNow(); } - } catch (InterruptedException e) { - // 褰撳墠绾跨▼鍦ㄧ瓑寰呰繃绋嬩腑琚腑鏂� - executorService.shutdownNow(); - // 澶勭悊涓柇锛屼緥濡傞噸鏂版姏鍑哄紓甯告垨璁板綍鏃ュ織 - Thread.currentThread().interrupt(); // 淇濇寔涓柇鐘舵�� + //缁撴潫api鎵ц锛屽紑濮嬫牎楠� + List<OsdCheckResult> checkResults = new ArrayList<>(); + Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); + for (OSDResult osdResult : osdResultList) { + TMonitor monitor = monitorMap.get(osdResult.getSerialNumber()); + //灏佽OsdCheckResult + OsdCheckResult osdCheckResult = getOsdCheckResult(osdResult, monitor); + checkCorrect(osdResult, monitor, osdCheckResult); + log.info("鏍¢獙缁撴灉锛歿}",osdCheckResult); + checkResults.add(osdCheckResult); + } + log.info("缁撴灉鏁版嵁澶у皬:{}", checkResults.size()); + //缁撴灉瀛樺叆mongo + if (!CollectionUtils.isEmpty(checkResults)) { + log.info("瀛樺叆mongo"); + //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 + Query pyQuery = new Query(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); + DeleteResult result = mongoTemplate.remove(pyQuery, OsdCheckResult.class); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insertAll(checkResults); + // 宸ュ崟鐢熸垚 + uyErrorTypeCheckService.osdCheck(checkResults); + } + //淇敼鏁版嵁搴撳搧鐗� + if (!CollectionUtils.isEmpty(hkList)) { + monitorMapper.batchUpdateDeviceType(hkList, DeviceType.HK.getType()); + } + if (!CollectionUtils.isEmpty(dhList)) { + monitorMapper.batchUpdateDeviceType(dhList, DeviceType.DH.getType()); + } + if (!CollectionUtils.isEmpty(ysList)) { + monitorMapper.batchUpdateDeviceType(ysList, DeviceType.YS.getType()); + } } - //缁撴潫api鎵ц锛屽紑濮嬫牎楠� - List<OsdCheckResult> checkResults = new ArrayList<>(); - Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); - for (OSDResult osdResult : osdResultList) { - TMonitor monitor = monitorMap.get(osdResult.getSerialNumber()); - //灏佽OsdCheckResult - OsdCheckResult osdCheckResult = getOsdCheckResult(osdResult, monitor); - checkCorrect(osdResult, monitor, osdCheckResult); - checkResults.add(osdCheckResult); - } - log.info("缁撴灉鏁版嵁澶у皬:{}",checkResults.size()); - //缁撴灉瀛樺叆mongo - if(!CollectionUtils.isEmpty(checkResults)){ - log.info("瀛樺叆mongo"); - //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 - Query pyQuery = new Query(Criteria - .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); - DeleteResult result = mongoTemplate.remove(pyQuery, OsdCheckResult.class); - //瀛樻斁鍦╩ongo涓� - mongoTemplate.insertAll(checkResults); - // 宸ュ崟鐢熸垚 - uyErrorTypeCheckService.osdCheck(checkResults); - } - //淇敼鏁版嵁搴撳搧鐗� - if(!CollectionUtils.isEmpty(hkList)){ - log.info("淇敼鍝佺墝"); - monitorMapper.batchUpdateDeviceType(hkList,DeviceType.HK.getType()); - } - if(!CollectionUtils.isEmpty(dhList)){ - log.info("淇敼鍝佺墝"); - monitorMapper.batchUpdateDeviceType(dhList,DeviceType.DH.getType()); - } - //TODO:瀹囪 log.info("缁撴潫鑾峰彇OSD"); } @@ -193,10 +200,12 @@ } } //妫�鏌ラ�氶亾鍚嶆槸鍚︽纭� + //鏍¢獙瑙勫垯锛岃繖閲屾殏鏃朵笉姣旇緝鍏ㄦ櫙鍜岀粏鑺備袱瀛椼�� if (!StringUtils.isEmpty(osdResult.getName()) && !StringUtils.isEmpty(monitor.getName())) { - if (monitor.getName().equals(osdResult.getName())) { + if (monitor.getName().equals(osdResult.getName()) || monitor.getName().replace("鍏ㄦ櫙","缁嗚妭").equals(osdResult.getName()) || monitor.getName().replace("缁嗚妭","鍏ㄦ櫙").equals(osdResult.getName())) { osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Correct); - } else { + osdCheckResult.setOsdName(osdResult.getName()); + }else { osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Error); } } @@ -244,6 +253,7 @@ OSDResult hkosd = HKApi.getOsdByIP(monitor.getIp(), HKUserName, HKPassword); if (hkosd != null) { hkosd.setSerialNumber(monitor.getSerialNumber()); + log.info("娴峰悍璋冪敤鎴愬姛"+hkosd); synchronized (hkList) { hkList.add(monitor.getSerialNumber()); } @@ -253,12 +263,22 @@ OSDResult dhosd = DHApi.getOsd(monitor.getIp(), DHUserName, DHPassword); if (dhosd != null) { dhosd.setSerialNumber(monitor.getSerialNumber()); + log.info("澶у崕璋冪敤鎴愬姛"+dhosd); synchronized (dhList) { dhList.add(monitor.getSerialNumber()); } return dhosd; } - //TODO锛氬畤瑙哸pi + //瀹囪api + OSDResult ysosd = YSApi.getOsd(monitor.getIp(), YSUserName, YSPassword); + if (ysosd != null) { + ysosd.setSerialNumber(monitor.getSerialNumber()); + log.info("瀹囪璋冪敤鎴愬姛"+ysosd); + synchronized (ysList) { + ysList.add(monitor.getSerialNumber()); + } + return ysosd; + } return null; } } -- Gitblit v1.8.0