From 8820a10b09e1d1abe80c9978507450cbbdfb71c2 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 02 八月 2024 11:05:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ycl-server/src/main/java/com/ycl/calculate/CarSiteOnlineCalculation.java | 18 --
ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java | 3
ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java | 126 +++++++++++++++++++++
ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java | 21 ---
ycl-server/src/main/java/com/ycl/calculate/FaceSiteOnlineCalculation.java | 19 ---
ycl-server/src/main/java/com/ycl/calculate/CarInFoAccuracyCalculation.java | 30 ----
ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java | 21 ---
ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java | 30 ----
ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 19 +-
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java | 55 ++++++++-
10 files changed, 202 insertions(+), 140 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java
new file mode 100644
index 0000000..64e8cd4
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java
@@ -0,0 +1,126 @@
+package com.ycl.calculate;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ycl.platform.base.CheckIndex;
+import com.ycl.platform.domain.entity.CheckIndexCar;
+import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.result.HK.CrossDetailResult;
+import com.ycl.platform.domain.result.HK.DataIntegrityMonitoringResult;
+import com.ycl.platform.mapper.CheckIndexCarMapper;
+import com.ycl.platform.mapper.TMonitorMapper;
+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 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
+ * 鏇存柊鎴栨柊澧�
+ */
+@Component
+public class CarDataIntegrityCalculation extends IndexCalculationServe implements CalculationStrategy<DataIntegrityMonitoringResult> {
+ @Autowired
+ private CheckIndexCarMapper checkIndexCarMapper;
+ @Autowired
+ private ITMonitorService monitorService;
+ @Autowired
+ private ICheckIndexCarService checkIndexCarService;
+
+ //鍖哄煙杞﹁締淇℃伅閲囬泦鍑嗙‘鐜囩殑鍐呴儴绫�
+ private static class AreaStats {
+ int totalSites = 0;
+ int importantTotalSites = 0;
+ int integritySites = 0;
+ int importantIntegritySites = 0;
+ }
+
+ @Override
+ public void calculate(List<DataIntegrityMonitoringResult> list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ //杩斿洖浠ュ浗鏍囩爜涓簁ey鐨勮澶噈ap
+ //TODO锛歮onitor鍘绘帀浜哾eptId
+ Map<String, TMonitor> monitorMap = monitorService.list(new QueryWrapper<TMonitor>()
+ .in("serial_number", list.stream().map(DataIntegrityMonitoringResult::getExternalIndexCode).collect(Collectors.toList())))
+ .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity()));
+ //鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚�
+ List<String> provinceIds = getProvince();
+ //鑾峰彇閲嶇偣鐐逛綅闆嗗悎
+ List<String> importantIds = getImportant();
+ Map<String, AreaStats> areaStatsMap = new HashMap<>();
+ for (DataIntegrityMonitoringResult result : list) {
+ TMonitor monitor = monitorMap.get(result.getExternalIndexCode());
+ if (monitor == null) continue;
+ String deptId = monitor.getDeptId().toString();
+ updateAreaStats(areaStatsMap, deptId, result, importantIds);
+
+ // 澶勭悊鐪佸巺鏁版嵁
+ if (!CollectionUtils.isEmpty(provinceIds) && provinceIds.contains(monitor.getSerialNumber())) {
+ String provinceKey = "Province_" + deptId;
+ updateAreaStats(areaStatsMap, provinceKey, result, importantIds);
+ }
+ }
+
+ // 鏌ヨ鏄惁index琛ㄥ凡缁忓瓨鍦ㄤ粖鏃ユ暟鎹�
+ List<CheckIndexCar> checkIndexCarList = checkIndexCarMapper.selectToday(DateUtils.getDate());
+ List<CheckIndexCar> checkIndexCars = new ArrayList<>();
+ areaStatsMap.forEach((deptId, stats) -> {
+ if (stats.totalSites > 0) {
+ CheckIndexCar checkIndexCar = createOrUpdateCheckIndexCar(deptId, stats, checkIndexCarList);
+ checkIndexCars.add(checkIndexCar);
+ }
+ });
+
+ checkIndexCarService.saveOrUpdateBatch(checkIndexCars);
+ }
+
+ /**
+ * 绱鎶撴媿鏁版嵁瀹屾暣璁惧鏁板拰璁惧鎬绘暟锛屽尯鍒嗛噸鐐圭偣浣�
+ */
+ private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, DataIntegrityMonitoringResult result, List<String> importantIds) {
+ //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value
+ AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats());
+ stats.totalSites++;
+ //90%鍙婁互涓婃暟鎹悎鏍煎垯姝よ溅杈嗗崱鍙h澶囪瑙嗕负鎶撴媿鏁版嵁瀹屾暣
+ if(result.getMainNoIntegrityPercent() <= 0.1){
+ stats.integritySites++;
+ }
+ //閲嶇偣鐐逛綅涓哄叚椤瑰睘鎬�
+ if(importantIds.contains(key)){
+ stats.importantTotalSites++;
+ if(result.getNoIntegrityPercent() <= 0.1){
+ stats.importantIntegritySites++;
+ }
+ }
+ }
+
+ /**
+ * 杞﹁締淇℃伅閲囬泦姝g‘鐜�
+ */
+ private CheckIndexCar createOrUpdateCheckIndexCar(String key, AreaStats stats, List<CheckIndexCar> checkIndexCarList) {
+ CheckIndexCar checkIndexCar = getCheckIndex(key, checkIndexCarList);
+ //璋冪敤璁$畻鏂规硶
+ Map<String, Object> param = new HashMap<>();
+ param.put("totalSites", stats.totalSites);
+ param.put("importantTotalSites", stats.importantTotalSites);
+ param.put("integritySites", stats.integritySites);
+ param.put("importantIntegritySites", stats.importantIntegritySites);
+ BigDecimal dataIntegrity = dataIntegrity(param);
+ checkIndexCar.setVehicleCaptureIntegrity(dataIntegrity);
+ return checkIndexCar;
+ }
+
+
+}
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 f1d31d6..f7caf45 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarInFoAccuracyCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarInFoAccuracyCalculation.java
@@ -35,11 +35,7 @@
@Autowired
private CheckIndexCarMapper checkIndexCarMapper;
@Autowired
- private SysConfigMapper sysConfigMapper;
- @Autowired
private ITMonitorService monitorService;
- @Autowired
- private TMonitorMapper monitorMapper;
@Autowired
private ICheckIndexCarService checkIndexCarService;
@@ -108,28 +104,12 @@
* 杞﹁締淇℃伅閲囬泦姝g‘鐜�
*/
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());
- }
+ CheckIndexCar checkIndexCar = getCheckIndex(key, checkIndexCarList);
//璋冪敤璁$畻鏂规硶
- Map<String, Object> siteOnlineParam = new HashMap<>();
- siteOnlineParam.put("totalSites", stats.totalSites);
- siteOnlineParam.put("qualifySite", stats.qualifySite);
- BigDecimal infoAccuracy = infoAccuracy(siteOnlineParam);
+ Map<String, Object> param = new HashMap<>();
+ param.put("totalSites", stats.totalSites);
+ param.put("qualifySite", stats.qualifySite);
+ BigDecimal infoAccuracy = infoAccuracy(param);
checkIndexCar.setVehicleInformationCollectionAccuracy(infoAccuracy);
return checkIndexCar;
}
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSiteOnlineCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSiteOnlineCalculation.java
index 2b64436..f4bdbf2 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarSiteOnlineCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarSiteOnlineCalculation.java
@@ -115,23 +115,7 @@
/** 杞﹁締鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭�� */
private CheckIndexCar createOrUpdateCheckIndexCar(String key, AreaStats stats, BigDecimal cityCountAvg, BigDecimal countyCountAvg, 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());
- }
+ CheckIndexCar checkIndexCar = getCheckIndex(key, checkIndexCarList);
//璋冪敤鐐逛綅鍦ㄧ嚎璁$畻鏂规硶
Map<String, Object> siteOnlineParam = new HashMap<>();
siteOnlineParam.put("totalSites", stats.totalSites);
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
index f58e3e9..bac3ede 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
@@ -35,8 +35,6 @@
@Autowired
private CheckIndexCarMapper checkIndexCarMapper;
@Autowired
- private SysConfigMapper sysConfigMapper;
- @Autowired
private ITMonitorService monitorService;
@Autowired
private ICheckIndexCarService checkIndexCarService;
@@ -110,24 +108,7 @@
* 杞﹁締鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭��
*/
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());
- }
-
+ CheckIndexCar checkIndexCar = getCheckIndex(key, checkIndexCarList);
//璋冪敤鎶撴媿涓婁紶鍙婃椂鎬ц绠楁柟娉�
Map<String, Object> param = new HashMap<>();
param.put("totalCount", stats.totalCount);
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 3eef548..2137617 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/FaceInFoAccuracyCalculation.java
@@ -33,11 +33,7 @@
@Autowired
private ICheckIndexFaceService checkIndexFaceService;
@Autowired
- private SysConfigMapper sysConfigMapper;
- @Autowired
private ITMonitorService monitorService;
- @Autowired
- private TMonitorMapper monitorMapper;
//鍖哄煙杞﹁締淇℃伅閲囬泦鍑嗙‘鐜囩殑鍐呴儴绫�
private static class AreaStats {
@@ -104,28 +100,12 @@
* 杞﹁締淇℃伅閲囬泦姝g‘鐜�
*/
private CheckIndexFace createOrUpdateCheckIndexFace(String key, AreaStats stats, List<CheckIndexFace> checkIndexFaceList) {
- CheckIndexFace checkIndexFace;
-
- // 妫�鏌ユ槸鍚﹀凡瀛樺湪浠婃棩鏁版嵁
- Optional<CheckIndexFace> existingFace = checkIndexFaceList.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 (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());
- }
+ CheckIndexFace checkIndexFace = getCheckIndex(key, checkIndexFaceList);
//璋冪敤璁$畻鏂规硶
- Map<String, Object> siteOnlineParam = new HashMap<>();
- siteOnlineParam.put("totalSites", stats.totalSites);
- siteOnlineParam.put("qualifySite", stats.qualifySite);
- BigDecimal infoAccuracy = infoAccuracy(siteOnlineParam);
+ Map<String, Object> param = new HashMap<>();
+ param.put("totalSites", stats.totalSites);
+ param.put("qualifySite", stats.qualifySite);
+ BigDecimal infoAccuracy = infoAccuracy(param);
checkIndexFace.setFaceInformationCollectionAccuracy(infoAccuracy);
return checkIndexFace;
}
diff --git a/ycl-server/src/main/java/com/ycl/calculate/FaceSiteOnlineCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/FaceSiteOnlineCalculation.java
index 0058832..55cde0f 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/FaceSiteOnlineCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/FaceSiteOnlineCalculation.java
@@ -115,24 +115,7 @@
//杞﹁締鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭��
private CheckIndexFace createOrUpdateCheckIndexFace(String key, AreaStats stats, BigDecimal cityCountAvg, BigDecimal countyCountAvg, 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());
- }
-
+ CheckIndexFace checkIndexFace = getCheckIndex(key, checkIndexFaceList);
//璋冪敤鐐逛綅鍦ㄧ嚎璁$畻鏂规硶
Map<String, Object> siteOnlineParam = new HashMap<>();
siteOnlineParam.put("totalSites", stats.totalSites);
diff --git a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java
index 8013800..493533a 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDelayCalculation.java
@@ -30,8 +30,6 @@
@Autowired
private CheckIndexFaceMapper checkIndexFaceMapper;
@Autowired
- private SysConfigMapper sysConfigMapper;
- @Autowired
private ITMonitorService monitorService;
@Autowired
private ICheckIndexFaceService checkIndexFaceService;
@@ -105,24 +103,7 @@
* 杞﹁締鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭��
*/
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());
- }
-
+ CheckIndexFace checkIndexFace = getCheckIndex(key, checkIndexFaceList);
//璋冪敤鎶撴媿涓婁紶鍙婃椂鎬ц绠楁柟娉�
Map<String, Object> param = new HashMap<>();
param.put("totalCount", stats.totalCount);
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 6d5d7b7..cdd439c 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -2,18 +2,19 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ycl.platform.base.CheckIndex;
+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.service.ITMonitorService;
+import constant.CheckConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -22,9 +23,6 @@
*/
@Component
public class IndexCalculationServe {
-
- @Autowired
- private ITMonitorService monitorService;
//鐐逛綅鍦ㄧ嚎鐜�
public BigDecimal siteOnline(Map<String, Object> param) {
@@ -60,10 +58,55 @@
.add(delayCount3.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.6")));
return result.setScale(4, RoundingMode.HALF_UP);
}
+
+ //鏁版嵁瀹屾暣鎬�
+ public BigDecimal dataIntegrity(Map<String, Object> param){
+ BigDecimal totalSites = new BigDecimal((Integer) param.get("totalSites"));
+ BigDecimal importantTotalSites = new BigDecimal((Integer) param.get("importantTotalSites"));
+ BigDecimal integritySites = new BigDecimal((Integer) param.get("integritySites"));
+ BigDecimal importantIntegritySites = new BigDecimal((Integer) param.get("importantIntegritySites"));
+ BigDecimal result = integritySites.divide(totalSites, 10, RoundingMode.HALF_UP)
+ .add(importantIntegritySites.divide(importantTotalSites, 10, RoundingMode.HALF_UP));
+ return result.setScale(4, RoundingMode.HALF_UP);
+ }
+
//杩斿洖鐪佸巺鍥芥爣鐮侀泦鍚�
public List<String> getProvince() {
// TODO: 鍒嗙渷鍘呭競灞� 闇�瑕佽ˉ鍏呴泦鍚堟暟鎹�
List<String> list = new ArrayList<>();
return list;
}
+
+ //杩斿洖閲嶇偣鐐逛綅闆嗗悎
+ public List<String> getImportant() {
+ // TODO: 閲嶇偣鐐逛綅 闇�瑕佽ˉ鍏呴泦鍚堟暟鎹�
+ List<String> list = new ArrayList<>();
+ return list;
+ }
+
+ //妫�鏌ユ槸鍚﹀瓨鍦ㄥ綋鏃ユ暟鎹�
+ public <T extends CheckIndex> T getCheckIndex(String key, List<T> checkIndexList) {
+ T checkIndex;
+
+ // 妫�鏌ユ槸鍚﹀凡瀛樺湪浠婃棩鏁版嵁
+ Optional<T> existingIndex = checkIndexList.stream()
+ .filter(index -> key.equals(index.getDeptId().toString()) &&
+ (key.startsWith("Province_") ? CheckConstants.Examine_Tag_City.equals(index.getExamineTag())
+ : CheckConstants.Examine_Tag_County.equals(index.getExamineTag())))
+ .findFirst();
+
+ if (existingIndex.isPresent()) {
+ checkIndex = existingIndex.get();
+ } else {
+ try {
+ checkIndex = (T) CheckIndexCar.class.getDeclaredConstructor().newInstance();
+ checkIndex.setDeptId(key.startsWith("Province_") ? Long.parseLong(key.split("_")[1]) : Long.parseLong(key));
+ checkIndex.setExamineTag(key.startsWith("Province_") ? CheckConstants.Examine_Tag_City : CheckConstants.Examine_Tag_County);
+ checkIndex.setCreateTime(new Date());
+ } catch (Exception e) {
+ throw new RuntimeException("鏃犳硶鍒涘缓 CheckIndexCar 瀹炰緥", e);
+ }
+ }
+ return checkIndex;
+ }
}
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 912cd56..fc6b814 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,13 @@
private static final Map<String, CalculationStrategy> calculators = new HashMap<>();
static {
+ //鐐逛綅鍦ㄧ嚎銆佽鍥惧簱瀵规帴绋冲畾鎬�
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.Face_InfoAccuracy, new FaceInFoAccuracyCalculation());
+ //鎶撴媿鏁版嵁涓婁紶寤惰繜
calculators.put(CalculationStrategyConstants.Car_SnapshotDelay, new CarSnapshotDelayCalculation());
calculators.put(CalculationStrategyConstants.Face_SnapshotDelay, new FaceSnapshotDelayCalculation());
}
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
index ae6b11e..0e1d9cb 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -47,6 +47,16 @@
List<TMonitor> monitorList = new ArrayList<>();
//鏂扮殑鏁版嵁锛屽師鏁版嵁搴撲腑涓嶅瓨鍦ㄧ殑鏁版嵁
Set<TMonitor> newMonitorList = new HashSet<>();
+
+ //TODO:瑙f瀽鍖哄煙銆佽ˉ鍏卍eptId
+ List<SysDictData> areaCodeList = new ArrayList<>();
+ //TODO:瑙f瀽閲嶇偣鐐逛綅
+ //閲嶇偣鐐逛綅闆嗗悎瀛楀吀(瑙f瀽SXJCJQY瀛楁)
+ SysDictData sysDictData = new SysDictData();
+ sysDictData.setDictType("platform_important_site");
+ List<SysDictData> DictDataList = dictDataService.selectDictDataList(sysDictData);
+ List<String> importantSite = DictDataList.stream().map(SysDictData::getDictValue).collect(Collectors.toList());
+
for (OneMachineFileResult result : oneMachineFileResults) {
TMonitor monitor = setMonitor(result);
monitorList.add(monitor);
@@ -57,15 +67,6 @@
}
//鏂扮殑鏁版嵁鏀惧叆Redis涓瓑寰呰�冩牳鎸囨爣浠诲姟浣跨敤
redisTemplate.opsForValue().set(RedisConstant.New_Monitor_Set, JSONArray.toJSONString(newMonitorList));
- //TODO:瑙f瀽鍖哄煙
-
- //TODO:瑙f瀽閲嶇偣鐐逛綅
- //閲嶇偣鐐逛綅闆嗗悎瀛楀吀
- SysDictData sysDictData = new SysDictData();
- sysDictData.setDictType("platform_important_site");
- List<SysDictData> DictDataList = dictDataService.selectDictDataList(sysDictData);
- List<String> importantSite = DictDataList.stream().map(SysDictData::getDictValue).collect(Collectors.toList());
-
}
--
Gitblit v1.8.0