From d1883c9da86e3e36e0c997554ad79b44a8f35494 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 01 八月 2024 18:05:13 +0800 Subject: [PATCH] 数据上传及时性 --- ycl-server/src/main/java/com/ycl/task/HKTask.java | 30 ++-- ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java | 2 ycl-server/src/main/java/com/ycl/task/CarTask.java | 22 ++ ycl-server/src/main/java/com/ycl/feign/UYClient.java | 2 ycl-common/src/main/java/constant/ApiConstants.java | 6 ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java | 6 ycl-server/src/main/java/com/ycl/task/FaceTask.java | 18 ++ ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java | 141 ++++++++++++++++++++ ycl-common/src/main/java/constant/CalculationStrategyConstants.java | 12 + ycl-server/src/main/java/com/ycl/calculate/CarInFoAccuracyCalculation.java | 2 ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java | 136 +++++++++++++++++++ ycl-server/src/main/java/com/ycl/feign/UYFeignConfig.java | 2 ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java | 14 + 13 files changed, 359 insertions(+), 34 deletions(-) diff --git a/ycl-common/src/main/java/constant/ApiConstants.java b/ycl-common/src/main/java/constant/ApiConstants.java index 026249d..105d11d 100644 --- a/ycl-common/src/main/java/constant/ApiConstants.java +++ b/ycl-common/src/main/java/constant/ApiConstants.java @@ -10,9 +10,9 @@ public final static Integer pageNo = 1; public final static Integer pageSize = 5000; //璇锋眰鍙傛暟dataType-鍗″彛杩囪溅 - public final static Integer HK_DATATYPE_CAR = 1; + public final static Integer HK_DataType_CAR = 1; //璇锋眰鍙傛暟dataType-浜鸿劯鏁版嵁 - public final static Integer HK_DATATYPE_FACE = 2; + public final static Integer HK_DataType_FACE = 2; //鎶撴媿鏁版嵁閲忕洃娴嬬粨鏋� 姝e父 public final static Integer HK_SnapCount_ResultType_Normal = 1; @@ -22,7 +22,7 @@ public final static Integer HK_SnapCount_ResultType_Descent = 3; //璇锋眰鍙傛暟dataType 鏁版嵁閲忓皯 - public final static Integer HK_DATATYPE_ResultType_Low = 4; + public final static Integer HK_DataType_ResultType_Low = 4; //缁忕含搴︽娴嬬粨鏋� 姝e父 public final static Integer HK_Info_LayType_Normal = 1; diff --git a/ycl-common/src/main/java/constant/CalculationStrategyConstants.java b/ycl-common/src/main/java/constant/CalculationStrategyConstants.java index d1228fe..667e3d1 100644 --- a/ycl-common/src/main/java/constant/CalculationStrategyConstants.java +++ b/ycl-common/src/main/java/constant/CalculationStrategyConstants.java @@ -8,7 +8,7 @@ /** * 杞﹁締鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭�� */ - public static final String CAR_SiteOnline_ViewStability = "carSiteOnlineViewStability"; + public static final String Car_SiteOnline_ViewStability = "carSiteOnlineViewStability"; /** * 浜鸿劯鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭�� */ @@ -16,9 +16,17 @@ /** * 杞﹁締鍗″彛灞炴�х洃娴嬬粨鏋� */ - public static final String CAR_InfoAccuracy = "carInfoAccuracy"; + public static final String Car_InfoAccuracy = "carInfoAccuracy"; /** * 浜鸿劯灞炴�х洃娴嬬粨鏋� */ public static final String Face_InfoAccuracy = "faceInfoAccuracy"; + /** + * 杞﹁締鏁版嵁涓婁紶鍙婃椂鎬� + */ + public static final String Car_SnapshotDelay = "carSnapshotDelay"; + /** + * 浜鸿劯鏁版嵁涓婁紶鍙婃椂鎬� + */ + public static final String Face_SnapshotDelay = "faceSnapshotDelay"; } diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarInFoAccuracyCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarInFoAccuracyCalculation.java index c46d4d3..f1d31d6 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/CarInFoAccuracyCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/CarInFoAccuracyCalculation.java @@ -129,7 +129,7 @@ Map<String, Object> siteOnlineParam = new HashMap<>(); siteOnlineParam.put("totalSites", stats.totalSites); siteOnlineParam.put("qualifySite", stats.qualifySite); - BigDecimal infoAccuracy = InfoAccuracy(siteOnlineParam); + BigDecimal infoAccuracy = infoAccuracy(siteOnlineParam); checkIndexCar.setVehicleInformationCollectionAccuracy(infoAccuracy); return checkIndexCar; } diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java new file mode 100644 index 0000000..f58e3e9 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java @@ -0,0 +1,141 @@ +package com.ycl.calculate; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ycl.platform.domain.entity.CheckIndexCar; +import com.ycl.platform.domain.entity.TMonitor; +import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; +import com.ycl.platform.domain.result.HK.SnapshotDelayMonitorResult; +import com.ycl.platform.mapper.CheckIndexCarMapper; +import com.ycl.platform.service.ICheckIndexCarService; +import com.ycl.platform.service.ITMonitorService; +import com.ycl.system.mapper.SysConfigMapper; +import constant.ApiConstants; +import constant.CheckConstants; +import constant.CheckSnapCountConstants; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import utils.DateUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 璁$畻杞﹁締澶囨姄鎷嶆暟鎹笂浼犲強鏃舵�� + * 鑾峰彇鍒嗙渷鍘呫�佸尯鍩熺殑map<k,v> k涓篸eptId鎴栬�匬rovince_deptId + * 寰幆map璁$畻鏁版嵁涓婁紶鍙婃椂鎬� + * 鏇存柊鎴栨柊澧� + */ +@Component +public class CarSnapshotDelayCalculation extends IndexCalculationServe implements CalculationStrategy<SnapshotDelayMonitorResult> { + @Autowired + private CheckIndexCarMapper checkIndexCarMapper; + @Autowired + private SysConfigMapper sysConfigMapper; + @Autowired + private ITMonitorService monitorService; + @Autowired + private ICheckIndexCarService checkIndexCarService; + + //鍖哄煙杞﹁締鐐逛綅鍦ㄧ嚎鎸囨爣鐨勫唴閮ㄧ被 + private static class AreaStats { + int totalCount = 0; + //0-180s + int delayCount1 = 0; + //180-300s + int delayCount2 = 0; + //300-600s + int delayCount3 = 0; + } + + @Override + public void calculate(List<SnapshotDelayMonitorResult> list) { + if (CollectionUtils.isEmpty(list)) { + return; + } + + //鑾峰緱鍥芥爣鐮佷负key鐨勮澶噈ap + Map<String, TMonitor> monitorMap = monitorService.list(new QueryWrapper<TMonitor>() + .in("serial_number", list.stream().map(SnapshotDelayMonitorResult::getExternalIndexCode).collect(Collectors.toList()))) + .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); + //鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚� + List<String> provinceIds = getProvince(); + + Map<String, AreaStats> areaStatsMap = new HashMap<>(); + for (SnapshotDelayMonitorResult result : list) { + TMonitor monitor = monitorMap.get(result.getExternalIndexCode()); + if (monitor == null) continue; + + String deptId = monitor.getDeptId().toString(); + updateAreaStats(areaStatsMap, deptId, result); + + // 澶勭悊鐪佸巺鏁版嵁 + if (!CollectionUtils.isEmpty(provinceIds) && provinceIds.contains(monitor.getSerialNumber())) { + String provinceKey = "Province_" + deptId; + updateAreaStats(areaStatsMap, provinceKey, result); + } + } + + // 鏌ヨ鏄惁index琛ㄥ凡缁忓瓨鍦ㄤ粖鏃ユ暟鎹� + List<CheckIndexCar> checkIndexCarList = checkIndexCarMapper.selectToday(DateUtils.getDate()); + List<CheckIndexCar> checkIndexCars = new ArrayList<>(); + areaStatsMap.forEach((deptId, stats) -> { + if (stats.totalCount > 0) { + CheckIndexCar checkIndexCar = createOrUpdateCheckIndexCar(deptId, stats, checkIndexCarList); + checkIndexCars.add(checkIndexCar); + } + }); + + checkIndexCarService.saveOrUpdateBatch(checkIndexCars); + } + + /** + * 绱鎬荤偣浣嶆暟銆佺绾挎暟銆佹�绘姄鎷嶉噺 + */ + private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, SnapshotDelayMonitorResult result) { + //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value + AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats()); + stats.totalCount += result.getDataCount(); + stats.delayCount1 += result.getDataDelayCount1(); + stats.delayCount2 += result.getDataDelayCount2(); + stats.delayCount3 += result.getDataDelayCount3(); + } + + + /** + * 杞﹁締鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭�� + */ + private CheckIndexCar createOrUpdateCheckIndexCar(String key, AreaStats stats, List<CheckIndexCar> checkIndexCarList) { + CheckIndexCar checkIndexCar; + + // 妫�鏌ユ槸鍚﹀凡瀛樺湪浠婃棩鏁版嵁 + Optional<CheckIndexCar> existingCar = checkIndexCarList.stream() + .filter(car -> key.equals(car.getDeptId().toString()) && + (key.startsWith("Province_") ? CheckConstants.Examine_Tag_City.equals(car.getExamineTag()) + : CheckConstants.Examine_Tag_County.equals(car.getExamineTag()))) + .findFirst(); + + if (existingCar.isPresent()) { + checkIndexCar = existingCar.get(); + } else { + checkIndexCar = new CheckIndexCar(); + checkIndexCar.setDeptId(key.startsWith("Province_") ? Long.parseLong(key.split("_")[1]) : Long.parseLong(key)); + checkIndexCar.setExamineTag(key.startsWith("Province_") ? CheckConstants.Examine_Tag_City : CheckConstants.Examine_Tag_County); + checkIndexCar.setCreateTime(new Date()); + } + + //璋冪敤鎶撴媿涓婁紶鍙婃椂鎬ц绠楁柟娉� + Map<String, Object> param = new HashMap<>(); + param.put("totalCount", stats.totalCount); + param.put("delayCount1", stats.delayCount1); + param.put("delayCount2", stats.delayCount2); + param.put("delayCount3", stats.delayCount3); + BigDecimal index = snapshopDelay(param); + checkIndexCar.setSiteOnline(index); + return checkIndexCar; + } +} diff --git a/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java index 0cdabf8..3eef548 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java @@ -125,7 +125,7 @@ Map<String, Object> siteOnlineParam = new HashMap<>(); siteOnlineParam.put("totalSites", stats.totalSites); siteOnlineParam.put("qualifySite", stats.qualifySite); - BigDecimal infoAccuracy = InfoAccuracy(siteOnlineParam); + BigDecimal infoAccuracy = infoAccuracy(siteOnlineParam); checkIndexFace.setFaceInformationCollectionAccuracy(infoAccuracy); return checkIndexFace; } diff --git a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java new file mode 100644 index 0000000..8013800 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java @@ -0,0 +1,136 @@ +package com.ycl.calculate; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ycl.platform.domain.entity.CheckIndexFace; +import com.ycl.platform.domain.entity.TMonitor; +import com.ycl.platform.domain.result.HK.SnapshotDelayMonitorResult; +import com.ycl.platform.mapper.CheckIndexFaceMapper; +import com.ycl.platform.service.ICheckIndexFaceService; +import com.ycl.platform.service.ITMonitorService; +import com.ycl.system.mapper.SysConfigMapper; +import constant.CheckConstants; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import utils.DateUtils; + +import java.math.BigDecimal; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 璁$畻浜鸿劯璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬� + * 鑾峰彇鍒嗙渷鍘呫�佸尯鍩熺殑map<k,v> k涓篸eptId鎴栬�匬rovince_deptId + * 寰幆map璁$畻鏁版嵁涓婁紶鍙婃椂鎬� + * 鏇存柊鎴栨柊澧� + */ +@Component +public class FaceSnapshotDelayCalculation extends IndexCalculationServe implements CalculationStrategy<SnapshotDelayMonitorResult> { + @Autowired + private CheckIndexFaceMapper checkIndexFaceMapper; + @Autowired + private SysConfigMapper sysConfigMapper; + @Autowired + private ITMonitorService monitorService; + @Autowired + private ICheckIndexFaceService checkIndexFaceService; + + //鍖哄煙杞﹁締鐐逛綅鍦ㄧ嚎鎸囨爣鐨勫唴閮ㄧ被 + private static class AreaStats { + int totalCount = 0; + //0-180s + int delayCount1 = 0; + //180-300s + int delayCount2 = 0; + //300-600s + int delayCount3 = 0; + } + + @Override + public void calculate(List<SnapshotDelayMonitorResult> list) { + if (CollectionUtils.isEmpty(list)) { + return; + } + + //鑾峰緱鍥芥爣鐮佷负key鐨勮澶噈ap + Map<String, TMonitor> monitorMap = monitorService.list(new QueryWrapper<TMonitor>() + .in("serial_number", list.stream().map(SnapshotDelayMonitorResult::getExternalIndexCode).collect(Collectors.toList()))) + .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); + //鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚� + List<String> provinceIds = getProvince(); + + Map<String, AreaStats> areaStatsMap = new HashMap<>(); + for (SnapshotDelayMonitorResult result : list) { + TMonitor monitor = monitorMap.get(result.getExternalIndexCode()); + if (monitor == null) continue; + + String deptId = monitor.getDeptId().toString(); + updateAreaStats(areaStatsMap, deptId, result); + + // 澶勭悊鐪佸巺鏁版嵁 + if (!CollectionUtils.isEmpty(provinceIds) && provinceIds.contains(monitor.getSerialNumber())) { + String provinceKey = "Province_" + deptId; + updateAreaStats(areaStatsMap, provinceKey, result); + } + } + + // 鏌ヨ鏄惁index琛ㄥ凡缁忓瓨鍦ㄤ粖鏃ユ暟鎹� + List<CheckIndexFace> checkIndexFaceList = checkIndexFaceMapper.selectToday(DateUtils.getDate()); + List<CheckIndexFace> checkIndexFaces = new ArrayList<>(); + areaStatsMap.forEach((deptId, stats) -> { + if (stats.totalCount > 0) { + CheckIndexFace checkIndexFace = createOrUpdateCheckIndexFace(deptId, stats, checkIndexFaceList); + checkIndexFaces.add(checkIndexFace); + } + }); + + checkIndexFaceService.saveOrUpdateBatch(checkIndexFaces); + } + + /** + * 绱鎬荤偣浣嶆暟銆佺绾挎暟銆佹�绘姄鎷嶉噺 + */ + private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, SnapshotDelayMonitorResult result) { + //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value + AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats()); + stats.totalCount += result.getDataCount(); + stats.delayCount1 += result.getDataDelayCount1(); + stats.delayCount2 += result.getDataDelayCount2(); + stats.delayCount3 += result.getDataDelayCount3(); + } + + + /** + * 杞﹁締鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭�� + */ + private CheckIndexFace createOrUpdateCheckIndexFace(String key, AreaStats stats, List<CheckIndexFace> checkIndexFaceList) { + CheckIndexFace checkIndexFace; + + // 妫�鏌ユ槸鍚﹀凡瀛樺湪浠婃棩鏁版嵁 + Optional<CheckIndexFace> existingFace = checkIndexFaceList.stream() + .filter(face -> key.equals(face.getDeptId().toString()) && + (key.startsWith("Province_") ? CheckConstants.Examine_Tag_City.equals(face.getExamineTag()) + : CheckConstants.Examine_Tag_County.equals(face.getExamineTag()))) + .findFirst(); + + if (existingFace.isPresent()) { + checkIndexFace = existingFace.get(); + } else { + checkIndexFace = new CheckIndexFace(); + checkIndexFace.setDeptId(key.startsWith("Province_") ? Long.parseLong(key.split("_")[1]) : Long.parseLong(key)); + checkIndexFace.setExamineTag(key.startsWith("Province_") ? CheckConstants.Examine_Tag_City : CheckConstants.Examine_Tag_County); + checkIndexFace.setCreateTime(new Date()); + } + + //璋冪敤鎶撴媿涓婁紶鍙婃椂鎬ц绠楁柟娉� + Map<String, Object> param = new HashMap<>(); + param.put("totalCount", stats.totalCount); + param.put("delayCount1", stats.delayCount1); + param.put("delayCount2", stats.delayCount2); + param.put("delayCount3", stats.delayCount3); + BigDecimal index = snapshopDelay(param); + checkIndexFace.setSiteOnline(index); + return checkIndexFace; + } +} diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java index 4362c05..6d5d7b7 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java +++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java @@ -42,12 +42,24 @@ } //鏍囨敞姝g‘鐜� - public BigDecimal InfoAccuracy(Map<String, Object> param) { + public BigDecimal infoAccuracy(Map<String, Object> param) { BigDecimal totalSitesCount = new BigDecimal((Integer) param.get("totalSites")); BigDecimal qualifySiteCount = new BigDecimal((Integer) param.get("qualifySite")); return qualifySiteCount.divide(totalSitesCount, 4, RoundingMode.HALF_UP); } + //鏁版嵁涓婁紶鍙婃椂鎬� + public BigDecimal snapshopDelay(Map<String, Object> param) { + BigDecimal totalCount = new BigDecimal((Integer) param.get("totalCount")); + BigDecimal delayCount1 = new BigDecimal((Integer) param.get("delayCount1")); + BigDecimal delayCount2 = new BigDecimal((Integer) param.get("delayCount2")); + BigDecimal delayCount3 = new BigDecimal((Integer) param.get("delayCount3")); + + BigDecimal result = delayCount1.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(BigDecimal.ONE) + .add(delayCount2.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.8"))) + .add(delayCount3.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.6"))); + return result.setScale(4, RoundingMode.HALF_UP); + } //杩斿洖鐪佸巺鍥芥爣鐮侀泦鍚� public List<String> getProvince() { // TODO: 鍒嗙渷鍘呭競灞� 闇�瑕佽ˉ鍏呴泦鍚堟暟鎹� diff --git a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java index 1ad511a..912cd56 100644 --- a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java +++ b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java @@ -10,10 +10,12 @@ private static final Map<String, CalculationStrategy> calculators = new HashMap<>(); static { - calculators.put(CalculationStrategyConstants.CAR_SiteOnline_ViewStability, new CarSiteOnlineCalculation()); + calculators.put(CalculationStrategyConstants.Car_SiteOnline_ViewStability, new CarSiteOnlineCalculation()); calculators.put(CalculationStrategyConstants.Face_SiteOnline_ViewStability, new FaceSiteOnlineCalculation()); - calculators.put(CalculationStrategyConstants.CAR_InfoAccuracy, new CarInFoAccuracyCalculation()); + calculators.put(CalculationStrategyConstants.Car_InfoAccuracy, new CarInFoAccuracyCalculation()); calculators.put(CalculationStrategyConstants.Face_InfoAccuracy, new FaceInFoAccuracyCalculation()); + calculators.put(CalculationStrategyConstants.Car_SnapshotDelay, new CarSnapshotDelayCalculation()); + calculators.put(CalculationStrategyConstants.Face_SnapshotDelay, new FaceSnapshotDelayCalculation()); } public static CalculationStrategy getCalculator(String indexName) { diff --git a/ycl-server/src/main/java/com/ycl/feign/UYClient.java b/ycl-server/src/main/java/com/ycl/feign/UYClient.java index 44d25b8..7a5ccad 100644 --- a/ycl-server/src/main/java/com/ycl/feign/UYClient.java +++ b/ycl-server/src/main/java/com/ycl/feign/UYClient.java @@ -15,7 +15,7 @@ */ @Component -@FeignClient(name = "UYClient", url = "${request.youYunDomain}", configuration = YYFeignConfig.class) +@FeignClient(name = "UYClient", url = "${request.youYunDomain}", configuration = UYFeignConfig.class) public interface UYClient { /** diff --git a/ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java b/ycl-server/src/main/java/com/ycl/feign/UYFeignConfig.java similarity index 95% rename from ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java rename to ycl-server/src/main/java/com/ycl/feign/UYFeignConfig.java index cdc7833..d11f33e 100644 --- a/ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java +++ b/ycl-server/src/main/java/com/ycl/feign/UYFeignConfig.java @@ -11,7 +11,7 @@ * 浼樹簯鎺ュ彛閰嶇疆 */ @Configuration -public class YYFeignConfig { +public class UYFeignConfig { /** * 娉ㄥ叆鎷︽埅鍣� */ diff --git a/ycl-server/src/main/java/com/ycl/task/CarTask.java b/ycl-server/src/main/java/com/ycl/task/CarTask.java index e90d9ab..5608389 100644 --- a/ycl-server/src/main/java/com/ycl/task/CarTask.java +++ b/ycl-server/src/main/java/com/ycl/task/CarTask.java @@ -5,6 +5,7 @@ import com.ycl.factory.IndexCalculationFactory; import com.ycl.platform.domain.result.HK.CrossDetailResult; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; +import com.ycl.platform.domain.result.HK.SnapshotDelayMonitorResult; import com.ycl.utils.DateUtils; import constant.ApiConstants; import constant.CalculationStrategyConstants; @@ -34,19 +35,32 @@ Query query = new Query(); query.addCriteria(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)) - .and("dataType").is(ApiConstants.HK_DATATYPE_CAR)); + .and("dataType").is(ApiConstants.HK_DataType_CAR)); List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class); - CalculationStrategy<SnapshotDataMonitorResult> calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.CAR_SiteOnline_ViewStability); + CalculationStrategy<SnapshotDataMonitorResult> calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SiteOnline_ViewStability); calculator.calculate(results); } - public void InfoAccuracyTask(){ + public void infoAccuracyTask(){ Date yesterday = DateUtils.addDays(new Date(), -1); //璁$畻杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� Query query = new Query(); query.addCriteria(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))); List<CrossDetailResult> results = mongoTemplate.find(query, CrossDetailResult.class); - CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.CAR_InfoAccuracy); + CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_InfoAccuracy); calculator.calculate(results); } + public void snapShopDelay(){ + Date yesterday = DateUtils.addDays(new Date(), -1); + //璁$畻杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� + Query query = new Query(); + query.addCriteria(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)) + .and("dataType").is(ApiConstants.HK_DataType_CAR)); + List<SnapshotDelayMonitorResult> results = mongoTemplate.find(query, SnapshotDelayMonitorResult.class); + CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SnapshotDelay); + calculator.calculate(results); + } + + } diff --git a/ycl-server/src/main/java/com/ycl/task/FaceTask.java b/ycl-server/src/main/java/com/ycl/task/FaceTask.java index 23522d2..f258b5a 100644 --- a/ycl-server/src/main/java/com/ycl/task/FaceTask.java +++ b/ycl-server/src/main/java/com/ycl/task/FaceTask.java @@ -6,6 +6,7 @@ import com.ycl.platform.domain.result.HK.CrossDetailResult; import com.ycl.platform.domain.result.HK.MonitoringDetailResult; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; +import com.ycl.platform.domain.result.HK.SnapshotDelayMonitorResult; import com.ycl.utils.DateUtils; import constant.ApiConstants; import constant.CalculationStrategyConstants; @@ -35,9 +36,9 @@ Query query = new Query(); query.addCriteria(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)) - .and("dataType").is(ApiConstants.HK_DATATYPE_FACE)); + .and("dataType").is(ApiConstants.HK_DataType_FACE)); List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class); - CalculationStrategy<SnapshotDataMonitorResult> calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_SiteOnline_ViewStability); + CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_SiteOnline_ViewStability); calculator.calculate(results); } public void InfoAccuracyTask(){ @@ -47,7 +48,18 @@ query.addCriteria(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))); List<MonitoringDetailResult> results = mongoTemplate.find(query, MonitoringDetailResult.class); - CalculationStrategy<MonitoringDetailResult> calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_InfoAccuracy); + CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_InfoAccuracy); + calculator.calculate(results); + } + public void snapShopDelay(){ + Date yesterday = DateUtils.addDays(new Date(), -1); + //璁$畻杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� + Query query = new Query(); + query.addCriteria(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)) + .and("dataType").is(ApiConstants.HK_DataType_FACE)); + List<SnapshotDelayMonitorResult> results = mongoTemplate.find(query, SnapshotDelayMonitorResult.class); + CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_SnapshotDelay); calculator.calculate(results); } } diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java index dd81b77..376f750 100644 --- a/ycl-server/src/main/java/com/ycl/task/HKTask.java +++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java @@ -86,33 +86,33 @@ log.info("寮�濮嬫墽琛屾姄鎷嶆暟鎹噺妫�娴嬬粨鏋滄暟鎹悓姝�"); /** 杞﹁締鏁版嵁 */ SnapshotDataMonitorParam carParam = new SnapshotDataMonitorParam(); - carParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + carParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_CAR); JSONObject carJsonObject = hkClient.SnapshotDataMonitor(carParam); List<SnapshotDataMonitorResult> carList = getDataList(carJsonObject, SnapshotDataMonitorResult.class, "杞﹁締鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹�"); if (!CollectionUtils.isEmpty(carList)) { //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) - .and("dataType").is(ApiConstants.HK_DATATYPE_CAR)); + .and("dataType").is(ApiConstants.HK_DataType_CAR)); DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class); //瀛樻斁鍦╩ongo涓� - carList.forEach(item -> item.setDataType(ApiConstants.HK_DATATYPE_CAR)); + carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR)); mongoTemplate.insert(carList); } /** 浜鸿劯鏁版嵁 */ SnapshotDataMonitorParam faceParam = new SnapshotDataMonitorParam(); - faceParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_FACE); + faceParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_FACE); JSONObject faceJsonObject = hkClient.SnapshotDataMonitor(carParam); List<SnapshotDataMonitorResult> faceList = getDataList(faceJsonObject, SnapshotDataMonitorResult.class, "浜鸿劯鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹负绌�"); if (!CollectionUtils.isEmpty(faceList)) { //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) - .and("dataType").is(ApiConstants.HK_DATATYPE_FACE)); + .and("dataType").is(ApiConstants.HK_DataType_FACE)); DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class); //瀛樻斁鍦╩ongo涓� - carList.forEach(item -> item.setDataType(ApiConstants.HK_DATATYPE_FACE)); + carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE)); mongoTemplate.insert(faceList); } //TODO:宸ュ崟 @@ -164,7 +164,7 @@ log.info("寮�濮嬫墽琛屾暟鎹畬鏁存�х洃娴嬬粨鏋滄暟鎹悓姝�"); //杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬� DataIntegrityMonitoringParam param = new DataIntegrityMonitoringParam(); - param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_CAR); JSONObject jsonObject = hkClient.DataIntegrityMonitoring(param); List<DataIntegrityMonitoringResult> faceList = getDataList(jsonObject, DataIntegrityMonitoringResult.class, "鏁版嵁瀹屾暣鎬х洃娴嬬粨鏋滄暟鎹负绌�"); if (!CollectionUtils.isEmpty(faceList)) { @@ -184,7 +184,7 @@ log.info("寮�濮嬫墽琛屽睘鎬ц瘑鍒噯纭洃娴嬬粨鏋滄暟鎹悓姝�"); //杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬� AttrRecognitionParam param = new AttrRecognitionParam(); - param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_CAR); JSONObject jsonObject = hkClient.AttrRecognitionMonitor(param); List<AttrRecognitionMonitorResult> faceList = getDataList(jsonObject, AttrRecognitionMonitorResult.class, "灞炴�ц瘑鍒噯纭洃娴嬬粨鏋滄暟鎹负绌�"); if (!CollectionUtils.isEmpty(faceList)) { @@ -206,33 +206,33 @@ //杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬� /** 杞﹁締鏁版嵁 */ SnapshotDelayMonitorParam carParam = new SnapshotDelayMonitorParam(); - carParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + carParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_CAR); JSONObject carJsonObject = hkClient.SnapshotDelayMonitor(carParam); List<SnapshotDelayMonitorResult> carList = getDataList(carJsonObject, SnapshotDelayMonitorResult.class, "杞﹁締鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹�"); if (!CollectionUtils.isEmpty(carList)) { //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) - .and("dataType").is(ApiConstants.HK_DATATYPE_CAR)); + .and("dataType").is(ApiConstants.HK_DataType_CAR)); DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorParam.class); //瀛樻斁鍦╩ongo涓� - carList.forEach(item -> item.setDataType(ApiConstants.HK_DATATYPE_CAR)); + carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR)); mongoTemplate.insert(carList); } /** 浜鸿劯鏁版嵁 */ SnapshotDelayMonitorParam faceParam = new SnapshotDelayMonitorParam(); - faceParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_FACE); + faceParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_FACE); JSONObject faceJsonObject = hkClient.SnapshotDelayMonitor(faceParam); List<SnapshotDelayMonitorParam> faceList = getDataList(faceJsonObject, SnapshotDelayMonitorParam.class, "浜鸿劯鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹负绌�"); if (!CollectionUtils.isEmpty(faceList)) { //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) - .and("dataType").is(ApiConstants.HK_DATATYPE_FACE)); + .and("dataType").is(ApiConstants.HK_DataType_FACE)); DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorParam.class); //瀛樻斁鍦╩ongo涓� - carList.forEach(item -> item.setDataType(ApiConstants.HK_DATATYPE_FACE)); + carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE)); mongoTemplate.insert(faceList); } //TODO:宸ュ崟 @@ -244,7 +244,7 @@ log.info("寮�濮嬫墽琛屽浘鐗囪闂洃娴嬬粨鏋滄暟鎹悓姝�"); //杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜囥�佽溅杈嗗崱鍙h澶噓rl鍙敤鎬� PicAccessParam param = new PicAccessParam(); - param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_CAR); JSONObject jsonObject = hkClient.PicAccessMonitor(param); List<PicAccessResult> faceList = getDataList(jsonObject, PicAccessResult.class, "鍥剧墖璁块棶鐩戞祴缁撴灉鏁版嵁涓虹┖"); if (!CollectionUtils.isEmpty(faceList)) { -- Gitblit v1.8.0