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