From e9af9f5cfeddbe5c0b33a3060b8ea6364c51e744 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 15 十一月 2024 11:37:10 +0800 Subject: [PATCH] 白名单故障类型 --- ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 145 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 103 insertions(+), 42 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java index fde1d5b..32b9f2c 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java @@ -14,14 +14,12 @@ import com.ycl.platform.domain.query.DataCenterQuery; import com.ycl.platform.domain.query.HomeQuery; import com.ycl.platform.domain.result.BaseResult; -import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult; -import com.ycl.platform.domain.result.HK.FaceDeviceSamplingResult; -import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult; -import com.ycl.platform.domain.result.HK.VehicleDeviceSamplingResult; +import com.ycl.platform.domain.result.HK.*; import com.ycl.platform.domain.result.SYS.TMonitorResult; import com.ycl.platform.domain.result.UY.MonitorQualifyResult; import com.ycl.platform.domain.result.UY.OsdCheckResult; import com.ycl.platform.domain.result.UY.RecordMetaDSumResult; +import com.ycl.platform.domain.vo.DynamicColumnVO; import com.ycl.platform.domain.vo.TMonitorVO; import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.platform.domain.vo.home.BaseHomeVO; @@ -30,6 +28,7 @@ import com.ycl.platform.domain.vo.home.HomeVideoVO; import com.ycl.platform.domain.vo.screen.MonitorRateVO; import com.ycl.platform.domain.vo.screen.MonitorTotalVO; +import com.ycl.platform.mapper.DynamicColumnMapper; import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.mapper.WorkOrderMapper; import com.ycl.platform.service.ITMonitorService; @@ -91,6 +90,8 @@ private WorkOrderMapper workOrderMapper; @Autowired private SysDictDataMapper dictDataMapper; + @Autowired + private DynamicColumnMapper dynamicColumnMapper; /** * 鏌ヨ璁惧璧勪骇 @@ -133,7 +134,7 @@ for (TMonitorVO monitor : monitors) { if (!CollectionUtils.isEmpty(voList)) { for (WorkOrderVO workOrderVO : voList) { - if (monitor.getWorkOrderNo().equals(workOrderVO.getWorkOrderNo())) { + if (monitor.getWorkOrderNo()!=null && monitor.getWorkOrderNo().equals(workOrderVO.getWorkOrderNo())) { monitor.setUnitContact(workOrderVO.getUnitContact()); monitor.setUnitContactPhone(workOrderVO.getUnitContactPhone()); monitor.setYwPeopleName(workOrderVO.getYwPeopleName()); @@ -185,21 +186,30 @@ } // 杞﹁締鐩戞帶璁惧 if (Objects.equals(tMonitor.getCameraFunType(), "2")) { - //灞炴�т竴鑷寸巼銆佸ぇ鍥俱�乽rl + //灞炴�т竴鑷寸巼銆佸ぇ鍥� List<VehicleDeviceSamplingResult> sampleResults = mongoTemplate.find(query, VehicleDeviceSamplingResult.class); + List<PicAccessResult> picAccessResults = mongoTemplate.find(query, PicAccessResult.class); //鎶撴媿閲忋�佹椂閽熴�佷笂浼� List<VehicleDeviceInspectionResult> inspectResults = mongoTemplate.find(query, VehicleDeviceInspectionResult.class); for (TMonitorVO monitor : monitors) { monitor.setMongoCreateTime(now); //涓�鏈轰竴妗� setOneFile(monitorQualifyResults, monitor); - //灞炴�т竴鑷寸巼銆佸ぇ鍥俱�乽rl + //url + if (!CollectionUtils.isEmpty(sampleResults)) { + for (PicAccessResult picAccessResult : picAccessResults) { + if (monitor.getSerialNumber().equals(picAccessResult.getNo())) { + BigDecimal bigDecimal = PicAccessResult.calUrl(picAccessResult); + monitor.setUrlPercent(bigDecimal); + } + } + } + //灞炴�т竴鑷寸巼銆佸ぇ鍥� if (!CollectionUtils.isEmpty(sampleResults)) { for (VehicleDeviceSamplingResult sampleResult : sampleResults) { if (monitor.getSerialNumber().equals(sampleResult.getNo())) { if (sampleResult.getBigUseful() != null) { monitor.setBigUsefulPercent(sampleResult.getBigUseful().getBigUsefulPercent()); - monitor.setUrlPercent(VehicleDeviceSamplingResult.BigUsefulness.calUrl(sampleResult.getBigUseful())); } if (sampleResult.getVehDiff() != null) { monitor.setImportantConPercent(sampleResult.getVehDiff().getImportantConPercent()); @@ -233,13 +243,12 @@ monitor.setMongoCreateTime(now); //涓�鏈轰竴妗� setOneFile(monitorQualifyResults, monitor); - //浜鸿劯鍚堟牸銆佸ぇ鍥俱�乽rl璁块棶寮傚父 + //浜鸿劯鍚堟牸銆佸ぇ鍥� if (!CollectionUtils.isEmpty(sampleResults)) { for (FaceDeviceSamplingResult sampleResult : sampleResults) { if (monitor.getSerialNumber().equals(sampleResult.getNo())) { if (sampleResult.getBigUseful() != null) { monitor.setBigUsefulPercent(sampleResult.getBigUseful().getBigUsefulPercent()); - monitor.setUrlPercent(FaceDeviceSamplingResult.BigUsefulness.calUrl(sampleResult.getBigUseful())); } if (sampleResult.getFaceEligibility() != null) monitor.setFacePercent(sampleResult.getFaceEligibility().getFaceEligPercent()); @@ -452,9 +461,10 @@ List<TMonitorResult> onlines = onlineList.stream().filter(tMonitorResult -> tMonitorResult.getMongoCreateTime().minusDays(1).equals(parseTime)).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(onlines)) { videoExp.setTotal(onlines.size()); - videoExp.setOnline(Integer.valueOf(onlines.stream() - .filter(TMonitorResult::getOnline) - .count() + "")); + long count = onlines.stream() + .filter(item -> ApiConstants.UY_OnlineSite_Online.equals(item.getOnline())) + .count(); + videoExp.setOnline(Integer.valueOf(count+"")); videoExp.setOffline(videoExp.getTotal() - videoExp.getOnline()); } //璁剧疆瀛樺偍鎯呭喌 @@ -510,6 +520,17 @@ exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video + "")); VideoExportForm.convertTags(exportForm); List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm); + //鑾峰彇鍔ㄦ�佸垪鏁版嵁 + List<Integer> pointIds = tMonitorResults.stream().map(TMonitorResult::getPointId).collect(Collectors.toList()); + List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds); + //琛ュ厖鍔ㄦ�佸垪鏁版嵁 + if(!CollectionUtils.isEmpty(dynamics)) { + Map<Integer, List<DynamicColumnVO>> map = dynamics.stream().collect(Collectors.groupingBy(DynamicColumnVO::getRefId)); + for (TMonitorResult tMonitorResult : tMonitorResults) { + Integer pointId = tMonitorResult.getPointId(); + tMonitorResult.setDynamicColumnList(map.get(pointId)); + } + } List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList()); Query query = getQuery(deviceIds, exportForm.getMonth()); //鏈堜唤姣忔棩鍦ㄧ嚎鏁版嵁 @@ -530,12 +551,19 @@ videoDailyExp.setSerialNumber(result.getNo()); videoDailyExp.setDeviceName(result.getName()); videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName()); - String tag = "" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""); - // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲�� - if (tag.endsWith("銆�")) { - tag = tag.substring(0, tag.length() - 1); + StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : "")); + //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲� + if(!CollectionUtils.isEmpty(result.getDynamicColumnList())){ + List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList(); + for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) { + tag.append(dynamicColumnVO.getColumnValue()).append("銆�"); + } } - videoDailyExp.setTag(tag); + // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲�� + if (tag.toString().endsWith("銆�")) { + tag = new StringBuilder(tag.substring(0, tag.length() - 1)); + } + videoDailyExp.setTag(tag.toString()); setOnlineDaily(videoDailyExp, result, onlines); videoDailyExps.add(videoDailyExp); //鍏ㄩ噺琛� @@ -568,6 +596,17 @@ exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video + "")); VideoExportForm.convertTags(exportForm); List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm); + //鑾峰彇鍔ㄦ�佸垪鏁版嵁 + List<Integer> pointIds = tMonitorResults.stream().map(TMonitorResult::getPointId).collect(Collectors.toList()); + List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds); + //琛ュ厖鍔ㄦ�佸垪鏁版嵁 + if(!CollectionUtils.isEmpty(dynamics)) { + Map<Integer, List<DynamicColumnVO>> map = dynamics.stream().collect(Collectors.groupingBy(DynamicColumnVO::getRefId)); + for (TMonitorResult tMonitorResult : tMonitorResults) { + Integer pointId = tMonitorResult.getPointId(); + tMonitorResult.setDynamicColumnList(map.get(pointId)); + } + } List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList()); Query query = getQuery(deviceIds, exportForm.getMonth()); //鏈堜唤姣忔棩褰曞儚绾挎暟鎹� @@ -588,12 +627,19 @@ videoDailyExp.setSerialNumber(result.getNo()); videoDailyExp.setDeviceName(result.getName()); videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName()); - String tag = "" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""); - // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲�� - if (tag.endsWith("銆�")) { - tag = tag.substring(0, tag.length() - 1); + StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : "")); + //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲� + if(!CollectionUtils.isEmpty(result.getDynamicColumnList())){ + List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList(); + for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) { + tag.append(dynamicColumnVO.getColumnValue()).append("銆�"); + } } - videoDailyExp.setTag(tag); + // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲�� + if (tag.toString().endsWith("銆�")) { + tag = new StringBuilder(tag.substring(0, tag.length() - 1)); + } + videoDailyExp.setTag(tag.toString()); setRecordDaily(videoDailyExp, result, records); //鍖哄幙琛� videoDailyExps.add(videoDailyExp); @@ -626,6 +672,17 @@ exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video + "")); VideoExportForm.convertTags(exportForm); List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm); + //鑾峰彇鍔ㄦ�佸垪鏁版嵁 + List<Integer> pointIds = tMonitorResults.stream().map(TMonitorResult::getPointId).collect(Collectors.toList()); + List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds); + //琛ュ厖鍔ㄦ�佸垪鏁版嵁 + if(!CollectionUtils.isEmpty(dynamics)) { + Map<Integer, List<DynamicColumnVO>> map = dynamics.stream().collect(Collectors.groupingBy(DynamicColumnVO::getRefId)); + for (TMonitorResult tMonitorResult : tMonitorResults) { + Integer pointId = tMonitorResult.getPointId(); + tMonitorResult.setDynamicColumnList(map.get(pointId)); + } + } List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList()); Query query = getQuery(deviceIds, exportForm.getMonth()); //鏈堜唤姣忔棩褰曞儚绾挎暟鎹� @@ -646,12 +703,19 @@ videoDailyExp.setSerialNumber(result.getNo()); videoDailyExp.setDeviceName(result.getName()); videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName()); - String tag = "" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""); - // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲�� - if (tag.endsWith("銆�")) { - tag = tag.substring(0, tag.length() - 1); + StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : "")); + //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲� + if(!CollectionUtils.isEmpty(result.getDynamicColumnList())){ + List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList(); + for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) { + tag.append(dynamicColumnVO.getColumnValue()).append("銆�"); + } } - videoDailyExp.setTag(tag); + // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲�� + if (tag.toString().endsWith("銆�")) { + tag = new StringBuilder(tag.substring(0, tag.length() - 1)); + } + videoDailyExp.setTag(tag.toString()); setLoseDaily(videoDailyExp, result, records); videoDailyExps.add(videoDailyExp); //鍏ㄩ噺琛� @@ -751,7 +815,7 @@ new Document("$group", new Document("_id", "$mongoCreateTime") .append("onlineCount", new Document("$sum", new Document("$cond", Arrays.asList( - new Document("$eq", Arrays.asList("$online", Boolean.TRUE)), + new Document("$eq", Arrays.asList("$online",ApiConstants.UY_OnlineSite_Online)), 1, 0 )) @@ -821,8 +885,6 @@ matchConditions.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_CAR))); if (examineTag != null && examineTag.equals(1)) { matchConditions.add(new Document("provinceTag", true)); - } else if (examineTag != null && examineTag.equals(2)) { - matchConditions.add(new Document("deptTag", true)); } // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( @@ -831,7 +893,6 @@ .append("dataCount", new Document("$sum", "$dataCount")) ) ); - // 鎵ц鑱氬悎鏌ヨ骞惰幏鍙栫粨鏋� AggregateIterable<Document> result = collection.aggregate(pipeline); for (Document doc : result) { @@ -841,7 +902,7 @@ results.add(homecarVO); } - //mongo鏌ョ偣浣嶅湪绾� + //TODO锛氬湪绾夸慨鏀癸紝闇�瑕佹妸妫�娴嬫捣搴蜂紭浜戞娴嬬殑缁撴灉瀛樺叆mongo锛宮ongo鏌ョ偣浣嶅湪绾� MongoCollection<Document> onlineCollection = database.getCollection("t_monitor_online"); // 鏋勫缓鍩烘湰鐨�$match鏉′欢 List<Document> onlineMatch = new ArrayList<>(); @@ -849,8 +910,6 @@ onlineMatch.add(new Document("monitorType", new Document("$regex", "2"))); if (examineTag != null && examineTag.equals(1)) { onlineMatch.add(new Document("provinceTag", true)); - } else if (examineTag != null && examineTag.equals(2)) { - onlineMatch.add(new Document("deptTag", true)); } // 鏋勫缓鑱氬悎绠¢亾 List<Document> onlinePipeline = Arrays.asList( @@ -858,7 +917,7 @@ new Document("$group", new Document("_id", "$mongoCreateTime") .append("onlineCount", new Document("$sum", new Document("$cond", Arrays.asList( - new Document("$eq", Arrays.asList("$online", Boolean.TRUE)), + new Document("$eq", Arrays.asList("$online",ApiConstants.UY_OnlineSite_Online)), 1, 0 )) @@ -936,8 +995,6 @@ matchConditions.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_FACE))); if (examineTag != null && examineTag.equals(1)) { matchConditions.add(new Document("provinceTag", true)); - } else if (examineTag != null && examineTag.equals(2)) { - matchConditions.add(new Document("deptTag", true)); } // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( @@ -964,8 +1021,6 @@ onlineMatch.add(new Document("monitorType", new Document("$regex", "3"))); if (examineTag != null && examineTag.equals(1)) { onlineMatch.add(new Document("provinceTag", true)); - } else if (examineTag != null && examineTag.equals(2)) { - onlineMatch.add(new Document("deptTag", true)); } // 鏋勫缓鑱氬悎绠¢亾 List<Document> onlinePipeline = Arrays.asList( @@ -973,7 +1028,7 @@ new Document("$group", new Document("_id", "$mongoCreateTime") .append("onlineCount", new Document("$sum", new Document("$cond", Arrays.asList( - new Document("$eq", Arrays.asList("$online", Boolean.TRUE)), + new Document("$eq", Arrays.asList("$online", ApiConstants.UY_OnlineSite_Online)), 1, 0 )) @@ -1050,7 +1105,13 @@ for (TMonitorResult monitorResult : onlineResult) { int dayOfMonth = monitorResult.getMongoCreateTime().getDayOfMonth(); String online = ""; - online += monitorResult.getOnline() ? "鍦ㄧ嚎" : "绂荤嚎"; + if(ApiConstants.UY_OnlineSite_Online.equals(monitorResult.getOnline())){ + online +="鍦ㄧ嚎"; + }else if(ApiConstants.UY_OnlineSite_Offline.equals(monitorResult.getOnline())){ + online +="绂荤嚎"; + }else { + online +="鏈煡"; + } //鍙嶅皠璧嬪�硷紝瀛楁缁熶竴瀹氫箟涓篸ay+1锛�2锛�3... Field field = videoDailyExp.getClass().getDeclaredField("day" + dayOfMonth); field.setAccessible(true); -- Gitblit v1.8.0