From a3d41aaa84c64dd296a2bd89198682276ef7b1d3 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 26 四月 2023 14:05:32 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java |   48 +++++++++++++++++++-----
 src/main/java/com/yssh/controller/WarningAnalyseController.java    |   60 ++++++++++++++++++------------
 2 files changed, 74 insertions(+), 34 deletions(-)

diff --git a/src/main/java/com/yssh/controller/WarningAnalyseController.java b/src/main/java/com/yssh/controller/WarningAnalyseController.java
index 7a63715..d724acb 100644
--- a/src/main/java/com/yssh/controller/WarningAnalyseController.java
+++ b/src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -23,9 +23,9 @@
 @RestController
 @SuppressWarnings("rawtypes")
 public class WarningAnalyseController {
-	
-	@Autowired
-	private IWarningAnalyseService warningService;
+
+    @Autowired
+    private IWarningAnalyseService warningService;
 
     private static ConcurrentHashMap<String, Object> cache = new ConcurrentHashMap<>(5);
 
@@ -33,7 +33,8 @@
 
     public static final long CACHE_HOLD_TIME_24H = 24 * 60 * 60 * 1000L;
 
-	//鎶ヨ鍒嗘瀽
+    //鎶ヨ鍒嗘瀽
+
     /**
      * 1.鏌ヨ褰撳墠鏃堕棿鐨勬墍鏈夌偣浣峷alue鍊硷紙浠�47.dat鏌ヨ鍗冲彲锛�
      * 2.绛涢�夊ぇ浜巠ssh_bjyj涓殑jcbj瀛楁鐨勫�� 杩斿洖id+缁忕含搴�+value
@@ -41,11 +42,12 @@
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "鑾峰彇瀹炴椂鎶ヨ", notes = "鑾峰彇瀹炴椂鎶ヨ鍒嗘瀽鏁版嵁")
     @GetMapping("/runAlarm")
-    public Result alarmAnalyse(){
-    	return Result.OK(warningService.getRunTimeAlarmAnalyse());
+    public Result alarmAnalyse() {
+        return Result.OK(warningService.getRunTimeAlarmAnalyse());
     }
-    
+
     //棰勮鍒嗘瀽
+
     /**
      * 1.鏌ヨ褰撳墠鏃堕棿鐨勬墍鏈夌偣浣峷alue鍊硷紙浠�47.dat鏌ヨ鍗冲彲锛�
      * 2.绛涢�夊ぇ浜巠ssh_bjyj涓殑jcyj瀛楁鐨勫�� 杩斿洖id+缁忕含搴�+value
@@ -53,51 +55,61 @@
     @ApiOperationSupport(order = 2)
     @ApiOperation(value = "鑾峰彇瀹炴椂棰勮", notes = "鑾峰彇瀹炴椂棰勮鍒嗘瀽鏁版嵁")
     @GetMapping("/runWarning")
-    public Result warningAnalyse(){
-    	return Result.OK(warningService.getRunTimeWarningAnalyse());
+    public Result warningAnalyse() {
+        return Result.OK(warningService.getRunTimeWarningAnalyse());
     }
-    
+
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "鏈湀棰勮銆佹姤璀︾粺璁�", notes = "鏈湀棰勮銆佹姤璀︾粺璁★紝杩斿洖鍙傛暟alarmNumber瀵瑰簲鍊间负鏈湀鎶ヨ鏁版嵁閲忥紝鍙傛暟warningNumber瀵瑰簲鍊间负鏈湀棰勮鏁版嵁閲�")
     @GetMapping("/monthCount")
-    public Result thisMonthCount(){
-    	return Result.OK(warningService.countThisMonthAlarmAndWarning());
+    public Result thisMonthCount() {
+        return Result.OK(warningService.countThisMonthAlarmAndWarning());
     }
-    
+
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "姣忔棩棰勮銆佹姤璀︽暟閲忓彉鍖栬秼鍔�", notes = "涓�鍛ㄦ瘡鏃ラ璀︺�佹姤璀︽暟閲忕粺璁★紝杩斿洖鍙傛暟alarmDayCount涓轰竴鍛ㄦ瘡鏃ユ姤璀︾粺璁℃暟閲忓垪琛紝鍙傛暟warningDayCount涓轰竴鍛ㄦ瘡鏃ラ璀︾粺璁℃暟閲忓垪琛�")
     @GetMapping("/everydayCount")
-    public Result everydayCount(){
-    	return Result.OK(warningService.countEverydayAlarmAndWarning());
+    public Result everydayCount() {
+        return Result.OK(warningService.countEverydayAlarmAndWarning());
     }
-    
+
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "涓夊皬鏃剁洃娴嬬珯鐐规暟鎹彉鍖栬秼鍔�", notes = "杩斿洖鍊间负涓夊皬鏃剁洃娴嬬珯鐐圭洃娴嬫暟鎹紝杩斿洖鍊间负map闆嗗悎锛屽叾涓璳ey涓虹珯鐐瑰悕绉帮紝value涓簂ist闆嗗悎锛屼繚瀛樻瘡澶╃洃娴嬫暟鍊兼暟鎹�")
     @GetMapping("/locationDataChange")
     public Result locationDataChange() {
         //return Result.OK(warningService.selectEachLocationDataChange());
 
-        String key = dateFormat.format(new Date());
-        Map<String, List<Double>> map = null;
+        String key = dateFormat.format(new Date()) + "_local";
+        Map<String, List<Double>> map;
         if (cache.containsKey(key)) {
             map = (Map<String, List<Double>>) cache.get(key);
         } else {
             map = warningService.selectEachLocationDataChange();
             if (null != map && map.size() > 0) {
-                if (cache.size() > 0) {
-                    cache.clear();
-                }
                 cache.put(key, map);
             }
         }
 
         return Result.ok(map);
     }
-    
+
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "鑾峰彇鏈湀鐩戞祴澶ф暟鎹珯鐐规渶澶у�糡OP10", notes = "鑾峰彇鏈湀鐩戞祴澶ф暟鎹珯鐐规渶澶у�糡OP10鏁伴噺鍒楄〃")
     @GetMapping("/monthTop10")
-    public Result monthTop10(){
-    	return Result.OK(warningService.selectThisMonthLocationValueDataTop10());
+    public Result monthTop10() {
+        //return Result.OK(warningService.selectThisMonthLocationValueDataTop10());
+
+        String key = dateFormat.format(new Date()) + "_top10";
+        List<Map<String, Object>> list;
+        if (cache.containsKey(key)) {
+            list = (List<Map<String, Object>>) cache.get(key);
+        } else {
+            list = warningService.selectThisMonthLocationValueDataTop10();
+            if (null != list && list.size() > 0) {
+                cache.put(key, list);
+            }
+        }
+
+        return Result.OK(list);
     }
 }
diff --git a/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java b/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
index eccd472..79b1a49 100644
--- a/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
+++ b/src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -253,28 +253,29 @@
 
 		Map<String, List<Double>> result = new LinkedHashMap<>();
 		List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
-
 		Date nowDate = DateUtils.getNowDate();
 		Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate));
 		Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getAPeriodOfTime(nowDate, -3, Calendar.HOUR_OF_DAY)));
 		List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
 
 		List<String> tableNames = new ArrayList<>();
-		for(DictRecord dr : recordList){
-			if (suYuanMapper.isTableExists(dr.getTableName())>0){
+		for (DictRecord dr : recordList) {
+			if (suYuanMapper.isTableExists(dr.getTableName()) > 0) {
 				tableNames.add(dr.getTableName());
 			}
 		}
-		if (tableNames.isEmpty()){
+		if (tableNames.isEmpty()) {
 			return result;
 		}
 
-		for(MonitorPointPosition c : checkPoints){
+		for (MonitorPointPosition c : checkPoints) {
 			List<Double> values = new ArrayList<>();
 			List<SuYuanMonitorData> data = suYuanMapper.getMonitorData(tableNames, c.getId());
-			data.forEach(v -> {
-				values.add(v.getValue());
-			});
+			if (null != data && data.size() > 0) {
+				for (SuYuanMonitorData v : data) {
+					values.add(v.getValue());
+				}
+			}
 			result.put(c.getName(), values);
 		}
 		return result;
@@ -282,7 +283,7 @@
 
 	@Override
 	public List<Map<String, Object>> selectThisMonthLocationValueDataTop10() {
-		List<Map<String, Object>> result = new ArrayList<>();
+		/*List<Map<String, Object>> result = new ArrayList<>();
 		List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
 		Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart()));
 		Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd()));
@@ -300,7 +301,34 @@
 			}
 			result.add(map);
 		});
+		return CalculateUtils.sort(result, "value", true).subList(0, 10);*/
+
+		List<Map<String, Object>> result = new ArrayList<>();
+		List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
+		Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart()));
+		Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd()));
+		List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
+
+		List<String> tableNames = new ArrayList<>();
+		for (DictRecord dr : recordList) {
+			if (suYuanMapper.isTableExists(dr.getTableName()) > 0) {
+				tableNames.add(dr.getTableName());
+			}
+		}
+		if (tableNames.isEmpty()) {
+			return result;
+		}
+
+		for (MonitorPointPosition c : checkPoints) {
+			Map<String, Object> map = suYuanMapper.getMonthValueDataMax(tableNames, c.getId());
+			if (null != map && map.size() > 0) {
+				String suYuanId = map.get("id").toString();
+				map.put("name", commonService.select3dCheckPointById(suYuanId).getName());
+				map.remove("id");
+			}
+			result.add(map);
+		}
+
 		return CalculateUtils.sort(result, "value", true).subList(0, 10);
 	}
-
 }

--
Gitblit v1.9.3