From f59d7f75a997872935d55288d37cd80b3acb6dff Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 21 一月 2025 10:33:05 +0800 Subject: [PATCH] 批量审核离线工单修改pingonline --- ycl-server/src/main/java/com/ycl/task/OsdTask.java | 63 ++++++++++++++++++++++++++----- 1 files changed, 52 insertions(+), 11 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 76e3edd..83c71f5 100644 --- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java +++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java @@ -2,6 +2,11 @@ import com.mongodb.client.result.DeleteResult; +import com.ycl.api.DH.lib.NetSDKLib; +import com.ycl.api.DH.lib.structure.NET_CFG_GBMODE_INFO; +import com.ycl.api.DH.lib.structure.NET_GBMODE_CUSTOMTITLE_INFO; +import com.ycl.api.DH.lib.structure.NET_TITLE_OSD_INFO; +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; @@ -17,6 +22,7 @@ import com.ycl.utils.DateUtils; import com.ycl.utils.StringUtils; import constant.ApiConstants; +import constant.CheckConstants; import enumeration.DeviceType; import enumeration.general.AreaDeptEnum; import lombok.extern.slf4j.Slf4j; @@ -28,6 +34,9 @@ import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.nio.charset.StandardCharsets; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -35,6 +44,8 @@ import java.util.concurrent.*; import java.util.function.Function; import java.util.stream.Collectors; + +import static com.ycl.api.DH.lib.enumeration.NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_GBMODE; @Slf4j @Component("OsdTask") @@ -59,21 +70,34 @@ public String YSUserName; @Value("${YS.password}") public String YSPassword; + /** * 閫氳繃鏌ongoDB姣忔棩涓�鏈轰竴妗f暟鎹幏鍙栬澶噄p + * 绛涢�夎棰戣澶� * 閫氳繃璁惧ip銆佸搧鐗岃皟鐢ㄤ笉鍚宎pi鑾峰彇osd淇℃伅 * 姣斿mongoDB涓�鏈轰竴妗d俊鎭紝鏁寸悊鎴恟esult瀛樺叆mongo * 鍚屾鍝佺墝鍒癿ysql */ - //TODO锛氬ぇ鍗庡姩鎬佸簱linux鎹綅缃� public void getOSD() throws ExecutionException, InterruptedException { log.info("寮�濮嬭幏鍙朞SD"); +// //娴峰悍璁惧娴嬭瘯 +// //鍏ㄦ櫙 +// OSDResult osd1 = HKApi.getOsdByIP("51031140001320359101","51.95.99.112", HKUserName, HKPassword); +// log.info("娴峰悍鍏ㄦ櫙:{}",osd1); +// //缁嗚妭 +// OSDResult osd2 = HKApi.getOsdByIP("51031140001321359101","51.95.99.112", HKUserName, HKPassword); +// log.info("娴峰悍缁嗚妭:{}",osd2); +// //澶у崕璁惧娴嬭瘯 +// OSDResult osd3 = DHApi.getOsd("51030244001320120201","51.95.4.3", DHUserName, DHPassword); +// log.info("澶у崕鍏ㄦ櫙:{}",osd3); +// OSDResult osd4 = DHApi.getOsd("51030244001321120201","51.95.4.3", DHUserName, DHPassword); +// log.info("澶у崕缁嗚妭:{}",osd4); //鏌ヤ竴鏈轰竴妗onitor Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class); //闇�瑕佽�冩牳鐨勬暟鎹� List<String> serialNumbers = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(serialNumbers)) { + if (!CollectionUtils.isEmpty(serialNumbers)) { ExecutorService executorService = new ThreadPoolExecutor(16, 128, 5000, @@ -82,12 +106,15 @@ new ThreadPoolExecutor.CallerRunsPolicy() ); List<TMonitor> monitors = monitorMapper.selectByNumbers(serialNumbers); - //杩囨护ip - monitors = monitors.stream().filter(monitor -> !StringUtils.isEmpty(monitor.getIp()) && !"127.0.0.1".equals(monitor.getIp())).collect(Collectors.toList()); + //杩囨护鎺夋棤鏁坕p骞剁瓫閫夊嚭瑙嗛璁惧 + monitors = monitors.stream() + .filter(monitor -> !StringUtils.isEmpty(monitor.getIp()) && + !"127.0.0.1".equals(monitor.getIp())) + .collect(Collectors.toList()); List<Future<OSDResult>> futureList = new ArrayList<>(48); List<OSDResult> osdResultList = new ArrayList<>(); for (TMonitor monitor : monitors) { - OSDCheckThread thread = new OSDCheckThread(monitor,HKUserName,HKPassword,DHUserName,DHPassword,YSUserName,YSPassword); + OSDCheckThread thread = new OSDCheckThread(monitor); Future<OSDResult> future = executorService.submit(thread); futureList.add(future); } @@ -100,12 +127,11 @@ List<OsdCheckResult> checkResults = new ArrayList<>(); Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); for (OSDResult osdResult : osdResultList) { - if(osdResult!=null) { + if (osdResult != null) { TMonitor monitor = monitorMap.get(osdResult.getSerialNumber()); //灏佽OsdCheckResult OsdCheckResult osdCheckResult = getOsdCheckResult(osdResult, monitor); checkCorrect(osdResult, monitor, osdCheckResult); - log.info("鏍¢獙缁撴灉锛歿}", osdCheckResult); checkResults.add(osdCheckResult); } } @@ -117,7 +143,7 @@ Query pyQuery = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(pyQuery, OsdCheckResult.class); - pointService.setDeviceTagByGB(checkResults); + pointService.setDeviceTagByGB(checkResults, CheckConstants.Rule_Category_Video); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(checkResults); // 宸ュ崟鐢熸垚 @@ -130,6 +156,7 @@ private OsdCheckResult getOsdCheckResult(OSDResult osdResult, TMonitor monitor) { OsdCheckResult osdCheckResult = new OsdCheckResult(); osdCheckResult.setDeviceNo(osdResult.getSerialNumber()); + osdCheckResult.setNo(osdResult.getSerialNumber()); osdCheckResult.setIp(monitor.getIp()); osdCheckResult.setDeviceType(monitor.getCameraFunType()); osdCheckResult.setCheckTime(osdResult.getCheckTime()); @@ -148,22 +175,25 @@ if (osdResult.getCheckTime() != null && osdResult.getOsdTime() != null) { long checkTime = osdResult.getCheckTime().getTime(); long osdTime = osdResult.getOsdTime().getTime(); - long timeDiff = (checkTime - osdTime) / 1000; + long timeDiff = Math.abs((checkTime - osdTime) / 1000); if (timeDiff <= 60) { osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Correct); } else { osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Error); } + } else { + osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Unknown); } //妫�鏌ラ�氶亾鍚嶆槸鍚︽纭� - //鏍¢獙瑙勫垯锛岃繖閲屾殏鏃朵笉姣旇緝鍏ㄦ櫙鍜岀粏鑺備袱瀛椼�� if (!StringUtils.isEmpty(osdResult.getName()) && !StringUtils.isEmpty(monitor.getName())) { - if (monitor.getName().equals(osdResult.getName()) || monitor.getName().replace("鍏ㄦ櫙", "缁嗚妭").equals(osdResult.getName()) || monitor.getName().replace("缁嗚妭", "鍏ㄦ櫙").equals(osdResult.getName())) { + if (monitor.getName().equals(osdResult.getName())) { osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Correct); osdCheckResult.setOsdName(osdResult.getName()); } else { osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Error); } + } else { + osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Unknown); } //妫�鏌ョ渷鏄惁姝g‘ if (!StringUtils.isEmpty(osdResult.getOSD1())) { @@ -172,6 +202,8 @@ } else { osdCheckResult.setOsdProvinceCorrect(ApiConstants.OSD_Error); } + } else { + osdCheckResult.setOsdProvinceCorrect(ApiConstants.OSD_Unknown); } //妫�鏌ュ競鏄惁姝g‘ if (!StringUtils.isEmpty(osdResult.getOSD2())) { @@ -180,6 +212,8 @@ } else { osdCheckResult.setOsdCityCorrect(ApiConstants.OSD_Error); } + } else { + osdCheckResult.setOsdCityCorrect(ApiConstants.OSD_Unknown); } //妫�鏌ュ尯鍘挎槸鍚︽纭� if (!StringUtils.isEmpty(osdResult.getOSD3())) { @@ -189,8 +223,15 @@ } else { osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Error); } + } else { + osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Unknown); } } + public void test() throws ExecutionException, InterruptedException { + log.info("娴嬭瘯鑾峰彇OSD"); + OSDResult osd3 = DHApi.getOsd("51030446001320141102","51.95.68.3", DHUserName, DHPassword); + log.info("澶у崕缁撴灉鏁版嵁:{}",osd3); + } } -- Gitblit v1.8.0