From 453e3471e94b91169beec1e258a06a132d927011 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 02 十二月 2024 15:01:50 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/service/SuYuanService.java |   76 ++++++++++++++++++++++++++++++--------
 1 files changed, 60 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/yssh/service/SuYuanService.java b/src/main/java/com/yssh/service/SuYuanService.java
index f697546..7d05b5f 100644
--- a/src/main/java/com/yssh/service/SuYuanService.java
+++ b/src/main/java/com/yssh/service/SuYuanService.java
@@ -4,6 +4,7 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import com.yssh.config.InitConfig;
 import com.yssh.entity.*;
 import com.yssh.mapper.*;
 import com.yssh.utils.CalculateUtils;
@@ -47,10 +48,18 @@
 	@Resource
 	private LocationService locService;
 
+	@Resource
+	private AlertConfigMapper alertConfigMapper;
+
+	private static HashMap<String, String> sites = new HashMap<>();
+
+	public double getJcyj() {
+		return alertConfigMapper.getAll().get(0).getJcyj();
+	}
+
 	//@Transactional
 	@Async("threadPoolTaskExecutor")
 	public void insertSuYuanDatasAsync(List<SuYuan> lists, String time) throws Exception {
-		//鎻掑叆鏁版嵁
 		List<List<SuYuan>> list = Lists.partition(lists, AsyncService.BATCH_INSERT_NUMBER);
 		CountDownLatch countDownLatch = new CountDownLatch(list.size());
 		for (List<SuYuan> corpReserveList : list) {
@@ -103,7 +112,7 @@
 	}
 
 	public Map<String, Object> selectSuYuan100(String name, Date date) {
-		Map<String, Object> result = new HashMap<String, Object>();
+		Map<String, Object> result = new HashMap<>();
 		MonitorPointPosition checkPoint = commonService.select3dCheckPointByName(name);
 		if (StringUtils.isNull(checkPoint)) {
 			return null;
@@ -117,7 +126,8 @@
 		}
 		if (suYuanMapper.isTableExists(dictRecord.getTableName()) == 0) return null;
 
-		List<DistanceSuYuan> list = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d);
+		List<DistanceSuYuan> source = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d);
+		List<DistanceSuYuan> list = getList(ids3d, source);
 		AtomicInteger i = new AtomicInteger(0);
 		list.stream().forEach(s -> {
 			s.setName(checkPoint.getName());
@@ -128,12 +138,26 @@
 			Collections.sort(list);
 			DistanceSuYuan max = list.get(0);
 			FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(),
-					max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, DateUtils.getNowDate());
+					max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, InitConfig.getDate());
 			feedbackMapper.insert(feedbackDetail);
 			result.put("feedbackId", feedbackDetail.getId());
 		}
 		result.put("data", list);
 		return result;
+	}
+
+	private List<DistanceSuYuan> getList(List<String> ids3d, List<DistanceSuYuan> source) {
+		List<DistanceSuYuan> list = new ArrayList<>();
+		for (String id : ids3d) {
+			DistanceSuYuan suYuan = source.stream().filter(db -> id.equals(db.getId())).findFirst().orElse(null);
+			if (null == suYuan) {
+				String[] strs = id.split("_");
+				suYuan = new DistanceSuYuan(null, null, 0.0, id, Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), 0, 0, null, 0.0, 0.0, 0.0, 0.0);
+			}
+			list.add(suYuan);
+		}
+
+		return list;
 	}
 
 	public Map<String, Object> selectSuYuan200(String name, Date date) {
@@ -151,7 +175,8 @@
 		}
 		if (suYuanMapper.isTableExists(dictRecord.getTableName()) == 0) return null;
 
-		List<DistanceSuYuan> list = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d);
+		List<DistanceSuYuan> source = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d);
+		List<DistanceSuYuan> list = getList(ids3d, source);
 		AtomicInteger i = new AtomicInteger(0);
 		list.stream().forEach(s -> {
 			s.setName(checkPoint.getName());
@@ -162,7 +187,7 @@
 			Collections.sort(list);
 			DistanceSuYuan max = list.get(0);
 			FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(),
-					max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, DateUtils.getNowDate());
+					max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, InitConfig.getDate());
 			feedbackMapper.insert(feedbackDetail);
 			result.put("feedbackId", feedbackDetail.getId());
 		}
@@ -185,7 +210,8 @@
 		}
 		if (suYuanMapper.isTableExists(dictRecord.getTableName()) == 0) return null;
 
-		List<DistanceSuYuan> list = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d);
+		List<DistanceSuYuan> source = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d);
+		List<DistanceSuYuan> list = getList(ids3d, source);
 		AtomicInteger i = new AtomicInteger(0);
 		list.stream().forEach(s -> {
 			s.setName(checkPoint.getName());
@@ -196,7 +222,7 @@
 			Collections.sort(list);
 			DistanceSuYuan max = list.get(0);
 			FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(),
-					max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, DateUtils.getNowDate());
+					max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, InitConfig.getDate());
 			feedbackMapper.insert(feedbackDetail);
 			result.put("feedbackId", feedbackDetail.getId());
 		}
@@ -205,7 +231,7 @@
 	}
 
 	public Map<String, Object> selectSuYuan500(String name, Date date) {
-		Map<String, Object> result = new HashMap<String, Object>();
+		Map<String, Object> result = new HashMap<>();
 		MonitorPointPosition checkPoint = commonService.select3dCheckPointByName(name);
 		if (StringUtils.isNull(checkPoint)) {
 			return null;
@@ -219,7 +245,8 @@
 		}
 		if (suYuanMapper.isTableExists(dictRecord.getTableName()) == 0) return null;
 
-		List<DistanceSuYuan> list = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d);
+		List<DistanceSuYuan> source = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d);
+		List<DistanceSuYuan> list = getList(ids3d, source);
 		AtomicInteger i = new AtomicInteger(0);
 		list.stream().forEach(s -> {
 			s.setName(checkPoint.getName());
@@ -230,7 +257,7 @@
 			Collections.sort(list);
 			DistanceSuYuan max = list.get(0);
 			FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(),
-					max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, DateUtils.getNowDate());
+					max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, InitConfig.getDate());
 			feedbackMapper.insert(feedbackDetail);
 			result.put("feedbackId", feedbackDetail.getId());
 		}
@@ -263,11 +290,11 @@
 		calendar.add(Calendar.DATE, -7);
 		String start = DateUtils.getYyyyMmDdHh(calendar.getTime());
 
-		return suYuanMapper.getNewMonitorData(checkPoint.getName(), start, end);
+		return qxshMapper.getNewMonitorData(checkPoint.getName(), start, end);
 	}
 
 	public int updateVocsName(Date date, String id, String vocsName) {
-		String table = "su_yuan_" + DateUtils.getYyyyMmDdHh(date); // new Date()
+		String table = "su_yuan_" + DateUtils.getYyyyMmDdHh(date);
 		if (isTableExists(table) == 0) {
 			return 0;
 		}
@@ -321,9 +348,26 @@
 	}
 
 	public String selectSuYuanIdByName(String name) {
-		MonitorPointPosition mpp = commonService.select3dCheckPointByName(name);
-		if (null == mpp) return null;
+		if (sites.containsKey(name)) {
+			return sites.get(name);
+		}
 
-		return mpp.getId().substring(0, mpp.getId().lastIndexOf("_") + 1) + "0";
+		MonitorPointPosition mpp = commonService.select3dCheckPointByName(name);
+		if (null == mpp) {
+			return null;
+		}
+
+		String suYuanId = mpp.getId().substring(0, mpp.getId().lastIndexOf("_") + 1) + "0";
+		if (!sites.containsKey(name)) {
+			sites.put(name, suYuanId);
+		}
+
+		return suYuanId;
+	}
+
+	public List<SuYuanFast> selectFastById(String id, Date date) {
+		String time = DateUtils.getYyyyMmDdHhMmSs(date);
+
+		return suYuanMapper.selectFastById(id, time);
 	}
 }

--
Gitblit v1.9.3