From 8f43ce26799c7c1b490507061fcc3c7d1b9e84e2 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期四, 10 四月 2025 15:30:37 +0800 Subject: [PATCH] 电池温度告警更新 --- src/main/java/com/whyc/service/BattStationTempAlarmService.java | 66 +++++++++++++++++++++++++++++++++ 1 files changed, 66 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/service/BattStationTempAlarmService.java b/src/main/java/com/whyc/service/BattStationTempAlarmService.java index a9d4e23..cafb8e0 100644 --- a/src/main/java/com/whyc/service/BattStationTempAlarmService.java +++ b/src/main/java/com/whyc/service/BattStationTempAlarmService.java @@ -8,18 +8,25 @@ import com.whyc.dto.Response; import com.whyc.mapper.BattStationTempAlarmMapper; import com.whyc.pojo.db_alarm.BattStationTempAlarm; +import com.whyc.pojo.db_batt.BattMonsLocation; import com.whyc.util.HikTempUtil; import com.whyc.util.PointUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.stream.Collectors; @Service public class BattStationTempAlarmService { @Resource private BattStationTempAlarmMapper mapper; + + @Autowired + private BattMonsLocationService battMonsLocationService; + public Response<PageInfo<BattStationTempAlarm>> getPage(int pageNum, int pageSize, Integer level) { PageHelper.startPage(pageNum,pageSize); @@ -55,10 +62,69 @@ alarm.setPointPercentage(pointPercentage); });*/ + /**鍒ゆ柇 鏈�楂樻俯搴︾偣 鍦� 鍥涗釜鐐瑰舰鎴愮殑妗� 鍐呴儴*/ + List<BattMonsLocation> batteryLocations = battMonsLocationService.getList(); + list.forEach(alarm->{ + String maxTempPointStr = alarm.getMaxTempPoint(); + if(maxTempPointStr.contains(",")){ // 涓囦竴鏈夊涓偣,鍙栫涓�涓偣 + maxTempPointStr = maxTempPointStr.split(",")[0]; + } + String[] split = maxTempPointStr.split("\\*"); + Point tempPoint = new Point(Integer.valueOf(split[0]),Integer.valueOf(split[1])); + List<BattMonsLocation> battGroupLocations = batteryLocations.stream().filter(location -> location.getBattGroupId().intValue() == alarm.getBattGroupId()).collect(Collectors.toList()); + for (int i = 0; i < battGroupLocations.size(); i++) { + BattMonsLocation battMonsLocation = batteryLocations.get(i); + String battMonsPoints = battMonsLocation.getBattMonsPoints(); + //battMonsPoints涓哄洓杈瑰舰鐨勫洓涓潗鏍囩偣,绀轰緥: x1*y1,x2*y2,x3*y3,x4*y4 + + // 瑙f瀽鍥涜竟褰㈢殑鍥涗釜椤剁偣鍧愭爣 + String[] points = battMonsPoints.split(","); + int[] pointsX = new int[4]; + int[] pointsY = new int[4]; + for (int j = 0; j < points.length; j++) { + String[] xy = points[j].split("\\*"); + pointsX[j] = Integer.parseInt(xy[0]); + pointsY[j] = Integer.parseInt(xy[1]); + } + + // 鍒ゆ柇鐐规槸鍚﹀湪鍥涜竟褰㈠唴 + boolean isInside = PointUtil.isPointInQuadrilateral(tempPoint.getX(), tempPoint.getY(),pointsX, pointsY); + //System.out.println("鐐规槸鍚﹀湪鍥涜竟褰㈠唴: " + isInside); + if(isInside){ + alarm.setBattMonsLocation(battMonsLocation); + break; + } + } + + }); PageInfo<BattStationTempAlarm> pageInfo = new PageInfo<>(list); return new Response<PageInfo<BattStationTempAlarm>>().set(1,pageInfo); } + public static void main(String[] args) { + String battMonsPoints = "0*0,0*4,4*4,4*0"; + String tempPointStr = "1*4"; + + // 瑙f瀽鍥涜竟褰㈢殑鍥涗釜椤剁偣鍧愭爣 + String[] points = battMonsPoints.split(","); + int[] pointsX = new int[4]; + int[] pointsY = new int[4]; + for (int i = 0; i < points.length; i++) { + String[] xy = points[i].split("\\*"); + pointsX[i] = Integer.parseInt(xy[0]); + pointsY[i] = Integer.parseInt(xy[1]); + } + + // 瑙f瀽寰呭垽鏂殑鐐瑰潗鏍� + String[] tempPointArray = tempPointStr.split("\\*"); + int tx = Integer.parseInt(tempPointArray[0]); + int ty = Integer.parseInt(tempPointArray[1]); + + // 鍒ゆ柇鐐规槸鍚﹀湪鍥涜竟褰㈠唴 + boolean isInside = PointUtil.isPointInQuadrilateral(tx, ty,pointsX, pointsY); + System.out.println("鐐规槸鍚﹀湪鍥涜竟褰㈠唴: " + isInside); + } + public Response<PageInfo<BattStationTempAlarm>> getHisPage(int pageNum, int pageSize, Integer level) { PageHelper.startPage(pageNum,pageSize); List<BattStationTempAlarm> list = mapper.getHisList(level); -- Gitblit v1.9.1