From 7130d28d70a63767975c9c59e10cc555511976ce Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期六, 16 九月 2023 16:21:06 +0800 Subject: [PATCH] 优化 --- ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java | 165 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 97 insertions(+), 68 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java index f6b19e8..70a9e07 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java @@ -114,6 +114,7 @@ private Map<String, Integer> unGuideCountMapMove = new HashMap<>(); private Map<String, Integer> unGuideCountMapFire = new HashMap<>(); private Map<String, Integer> unGuideCountMapPump = new HashMap<>(); + /** * @鎻忚堪 鏌ヨ鎵�鏈夋姤璀︾殑褰撳墠鏁伴噺 * @鍙傛暟 [] @@ -309,6 +310,7 @@ return null; } } + /** * 鑾峰彇鐑姏鍥炬暟鎹� * 鍒樿嫃涔� @@ -348,19 +350,38 @@ return globalAlarmData; }).collect(Collectors.toList()); case 1003: - List<ArdAlarmRadarMove> ardAlarmRadarMoves = ardAlarmRadarMoveMapper.selectListAllByCommand(refreshTime); - return ardAlarmRadarMoves.stream() - .map(ardAlarmRadarMove -> { - GlobalAlarmData globalAlarmData = new GlobalAlarmData() - .setId(ardAlarmRadarMove.getId()) - .setName(ardAlarmRadarMove.getName()) - .setAlarmTime(ardAlarmRadarMove.getAlarmTime()) - .setLongitude(ardAlarmRadarMove.getLongitude()) - .setLatitude(ardAlarmRadarMove.getLatitude()) - .setCount(ardAlarmRadarMove.getCount()) - .setTotal(ardAlarmRadarMove.getTotal()); - return globalAlarmData; - }).collect(Collectors.toList()); + //浠庣紦瀛樿幏鍙栨暟鎹� + //String key = "radar_alarm:" + DateUtils.getDate(); + //List<ArdAlarmRadarMove> ardAlarmRadarMoves = redisCache.getCacheList(key); + //Map<String, List<ArdAlarmRadarMove>> groupedData = ardAlarmRadarMoves.stream() + // .collect(Collectors.groupingBy(ArdAlarmRadarMove::getName)); + //List<GlobalAlarmData> globalAlarmDataList = new ArrayList<>(); + //for (String name : groupedData.keySet()) { + // List<ArdAlarmRadarMove> ardAlarmRadarMove = groupedData.get(name); + // GlobalAlarmData globalAlarmData = new GlobalAlarmData() + // .setId(ardAlarmRadarMove.get(0).getId()) + // .setName(name) + // .setAlarmTime(ardAlarmRadarMove.get(0).getAlarmTime()) + // .setLongitude(ardAlarmRadarMove.get(0).getLongitude()) + // .setLatitude(ardAlarmRadarMove.get(0).getLatitude()) + // .setTotal(ardAlarmRadarMove.size()); + // globalAlarmDataList.add(globalAlarmData); + //} + //return globalAlarmDataList; + //浠庢暟鎹簱鑾峰彇 + List<ArdAlarmRadarMove> ardAlarmRadarMoves = ardAlarmRadarMoveMapper.selectListAllByCommand(refreshTime); + return ardAlarmRadarMoves.stream() + .map(ardAlarmRadarMove -> { + GlobalAlarmData globalAlarmData = new GlobalAlarmData() + .setId(ardAlarmRadarMove.getId()) + .setName(ardAlarmRadarMove.getName()) + .setAlarmTime(ardAlarmRadarMove.getAlarmTime()) + .setLongitude(ardAlarmRadarMove.getLongitude()) + .setLatitude(ardAlarmRadarMove.getLatitude()) + .setCount(ardAlarmRadarMove.getCount()) + .setTotal(ardAlarmRadarMove.getTotal()); + return globalAlarmData; + }).collect(Collectors.toList()); case 1004: List<ArdAlarmRadarFire> ardAlarmRadarFires = ardAlarmRadarFireMapper.selectListAllByCommand(refreshTime); return ardAlarmRadarFires.stream() @@ -484,12 +505,12 @@ .setAlarmType("1001"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1001.size()>0) { + if (alarmData1001.size() > 0) { GlobalAlarmDataList.addAll(alarmData1001); } List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectListAllByCommand(refreshTime); - List<GlobalAlarmData> alarmData1002= ardAlarmCameras.stream() + List<GlobalAlarmData> alarmData1002 = ardAlarmCameras.stream() .map(ardAlarmCamera -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmCamera.getId()) @@ -502,12 +523,12 @@ .setAlarmType("1002"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1002.size()>0) { + if (alarmData1002.size() > 0) { GlobalAlarmDataList.addAll(alarmData1002); } List<ArdAlarmRadarMove> ardAlarmRadarMoves = ardAlarmRadarMoveMapper.selectListAllByCommand(refreshTime); - List<GlobalAlarmData> alarmData1003= ardAlarmRadarMoves.stream() + List<GlobalAlarmData> alarmData1003 = ardAlarmRadarMoves.stream() .map(ardAlarmRadarMove -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmRadarMove.getId()) @@ -520,12 +541,12 @@ .setAlarmType("1003"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1003.size()>0) { + if (alarmData1003.size() > 0) { GlobalAlarmDataList.addAll(alarmData1003); } List<ArdAlarmRadarFire> ardAlarmRadarFires = ardAlarmRadarFireMapper.selectListAllByCommand(refreshTime); - List<GlobalAlarmData> alarmData1004= ardAlarmRadarFires.stream() + List<GlobalAlarmData> alarmData1004 = ardAlarmRadarFires.stream() .map(ardAlarmRadarFire -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmRadarFire.getId()) @@ -538,12 +559,12 @@ .setAlarmType("1004"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1004.size()>0) { + if (alarmData1004.size() > 0) { GlobalAlarmDataList.addAll(alarmData1004); } List<ArdAlarmExternal> ardAlarmExternals = ardAlarmExternalMapper.selectListAllByCommand(refreshTime, "闃插尯鎶ヨ"); - List<GlobalAlarmData> alarmData1005= ardAlarmExternals.stream() + List<GlobalAlarmData> alarmData1005 = ardAlarmExternals.stream() .map(ardAlarmExternal -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmExternal.getId()) @@ -556,12 +577,12 @@ .setAlarmType("1005"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1005.size()>0) { + if (alarmData1005.size() > 0) { GlobalAlarmDataList.addAll(alarmData1005); } List<ArdAlarmAccess> ardAlarmAccesses = ardAlarmAccessMapper.selectListAllByCommand(refreshTime); - List<GlobalAlarmData> alarmData1006= ardAlarmAccesses.stream() + List<GlobalAlarmData> alarmData1006 = ardAlarmAccesses.stream() .map(ardAlarmAccess -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmAccess.getId()) @@ -574,12 +595,12 @@ .setAlarmType("1006"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1006.size()>0) { + if (alarmData1006.size() > 0) { GlobalAlarmDataList.addAll(alarmData1006); } List<ArdAlarmRadarPump> ardAlarmRadarPumps = ardAlarmRadarPumpMapper.selectListAllByCommand(refreshTime); - List<GlobalAlarmData> alarmData1007= ardAlarmRadarPumps.stream() + List<GlobalAlarmData> alarmData1007 = ardAlarmRadarPumps.stream() .map(ardAlarmRadarPump -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmRadarPump.getId()) @@ -592,12 +613,12 @@ .setAlarmType("1007"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1007.size()>0) { + if (alarmData1007.size() > 0) { GlobalAlarmDataList.addAll(alarmData1007); } List<ArdAlarmApponekey> ardAlarmApponekeys = ardAlarmApponekeyMapper.selectListAllByCommand(refreshTime); - List<GlobalAlarmData> alarmData1009= ardAlarmApponekeys.stream() + List<GlobalAlarmData> alarmData1009 = ardAlarmApponekeys.stream() .map(ardAlarmApponekey -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmApponekey.getId()) @@ -610,12 +631,12 @@ .setAlarmType("1009"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1009.size()>0) { + if (alarmData1009.size() > 0) { GlobalAlarmDataList.addAll(alarmData1009); } List<ArdAlarmWall> ardAlarmWalls = ardAlarmWallMapper.selectListAllByCommand(refreshTime); - List<GlobalAlarmData> alarmData1010= ardAlarmWalls.stream() + List<GlobalAlarmData> alarmData1010 = ardAlarmWalls.stream() .map(ardAlarmWall -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmWall.getId()) @@ -628,12 +649,12 @@ .setAlarmType("1010"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1010.size()>0) { + if (alarmData1010.size() > 0) { GlobalAlarmDataList.addAll(alarmData1010); } List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime); - List<GlobalAlarmData> alarmData1014= ardAlarmTubes.stream() + List<GlobalAlarmData> alarmData1014 = ardAlarmTubes.stream() .map(ardAlarmTube -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmTube.getId()) @@ -647,11 +668,11 @@ .setAlarmType("1014"); return globalAlarmData; }).collect(Collectors.toList()); - if(alarmData1014.size()>0) { + if (alarmData1014.size() > 0) { GlobalAlarmDataList.addAll(alarmData1014); } return GlobalAlarmDataList; -} + } /** * @鎻忚堪 鍘嗗彶鎶ヨ鏌ヨ @@ -915,18 +936,18 @@ //region 澶勭悊闆疯揪鎶ヨ RadarAlarmData radarAlarmData = JSONObject.parseObject(message, RadarAlarmData.class); List<ArdAlarmRadar> ardAlarmRadars = radarAlarmData.getArdAlarmRadars(); - List<ArdAlarmRadarMove>ardAlarmRadarMoves=new ArrayList<>(); - List<ArdAlarmRadarFire>ardAlarmRadarFires=new ArrayList<>(); - List<ArdAlarmRadarPump>ardAlarmRadarPumps=new ArrayList<>(); + List<ArdAlarmRadarMove> ardAlarmRadarMoves = new ArrayList<>(); + List<ArdAlarmRadarFire> ardAlarmRadarFires = new ArrayList<>(); + List<ArdAlarmRadarPump> ardAlarmRadarPumps = new ArrayList<>(); for (ArdAlarmRadar ardAlarmRadar : ardAlarmRadars) { String uuid = IdUtils.simpleUUID(); String alarmpointName = ardAlarmRadar.getName();//鍏磋叮鐐瑰悕绉� Double longitude = ardAlarmRadar.getLongitude(); Double latitude = ardAlarmRadar.getLatitude(); - String targetId=ardAlarmRadar.getTargetId(); + String targetId = ardAlarmRadar.getTargetId(); switch (ardAlarmRadar.getAlarmType()) { case "杩愬姩鐩爣妫�娴�": - ArdAlarmRadarMove ardAlarmRadarMove=new ArdAlarmRadarMove(); + ArdAlarmRadarMove ardAlarmRadarMove = new ArdAlarmRadarMove(); ardAlarmRadarMove.setId(uuid); ardAlarmRadarMove.setTargetId(targetId); ardAlarmRadarMove.setAlarmTime(radarAlarmData.getAlarmTime()); @@ -938,10 +959,17 @@ //鍏ュ簱 ardAlarmRadarMoveMapper.insertArdAlarmRadarMove(ardAlarmRadarMove); ardAlarmRadarMoves.add(ardAlarmRadarMove); - + //鍏ョ紦瀛� + //String key = "radar_alarm:" + DateUtils.getDate(); + //if (redisCache.hasKey(key)) { + // redisCache.setCacheList(key, ardAlarmRadarMove, -1, TimeUnit.HOURS); + //} else { + // Integer expiryTimeInSeconds = DateUtils.getDayRemainingTime(ardAlarmRadarMove.getCreateTime()); + // redisCache.setCacheList(key, ardAlarmRadarMove, expiryTimeInSeconds, TimeUnit.SECONDS); + //} break; case "鐑簮妫�娴�": - ArdAlarmRadarFire ardAlarmRadarFire=new ArdAlarmRadarFire(); + ArdAlarmRadarFire ardAlarmRadarFire = new ArdAlarmRadarFire(); ardAlarmRadarFire.setId(uuid); ardAlarmRadarFire.setTargetId(targetId); ardAlarmRadarFire.setAlarmTime(radarAlarmData.getAlarmTime()); @@ -956,7 +984,7 @@ break; case "闆疯揪鎶芥补鏈哄仠鏈�": - ArdAlarmRadarPump ardAlarmRadarPump=new ArdAlarmRadarPump(); + ArdAlarmRadarPump ardAlarmRadarPump = new ArdAlarmRadarPump(); ardAlarmRadarPump.setId(uuid); ardAlarmRadarPump.setTargetId(targetId); ardAlarmRadarPump.setAlarmTime(radarAlarmData.getAlarmTime()); @@ -975,9 +1003,9 @@ break; } } - radarMoveGuide(ardAlarmRadarMoves,radarAlarmData); - radarFireGuide(ardAlarmRadarFires,radarAlarmData); - radarPumpGuide(ardAlarmRadarPumps,radarAlarmData); + radarMoveGuide(ardAlarmRadarMoves, radarAlarmData); + radarFireGuide(ardAlarmRadarFires, radarAlarmData); + radarPumpGuide(ardAlarmRadarPumps, radarAlarmData); break; case "external": //region 澶勭悊澶栬仈鎶ヨ @@ -1074,13 +1102,20 @@ //鐩告満ID guideTask.setCameraId(cameraId); //鎶ヨ绫诲瀷 - String aType=""; - switch (alarmType) - { - case "杩愬姩鐩爣妫�娴�": aType="sys_radar_move";break; - case "鐑簮妫�娴�": aType="sys_radar_fire";break; - case "闆疯揪鎶芥补鏈哄仠鏈�": aType="sys_radar_pump";break; - default: aType=alarmType;break; + String aType = ""; + switch (alarmType) { + case "杩愬姩鐩爣妫�娴�": + aType = "sys_radar_move"; + break; + case "鐑簮妫�娴�": + aType = "sys_radar_fire"; + break; + case "闆疯揪鎶芥补鏈哄仠鏈�": + aType = "sys_radar_pump"; + break; + default: + aType = alarmType; + break; } guideTask.setAlarmType(aType); //閫氶亾(閫氳繃鏃ュ鏃堕棿鐮斿垽) @@ -1170,11 +1205,10 @@ return minDistanceCameraId; } - /** * 闆疯揪寮曞鍏ラ槦 */ - private void radarGuideToQueue(String alarmId,String radarId, String name, String alarmType, Date createTime, double[] coordinate) { + private void radarGuideToQueue(String alarmId, String radarId, String name, String alarmType, Date createTime, double[] coordinate) { int index = name.indexOf("("); String alarmpointName = name.substring(0, index); //鑾峰彇闆疯揪鎵�鍦ㄥ涓婄殑澶у厜鐢� @@ -1183,9 +1217,7 @@ log.debug("鑾峰彇鍒伴浄杈惧涓婄殑鍏夌數:" + cameraIdWithTower); //濡傛灉闆疯揪濉斾笂鏈夊厜鐢� messagesEnqueued(cameraIdWithTower, alarmId, alarmType, createTime, 1, 1, coordinate); - } - else - { + } else { log.debug("鏈幏鍙栧埌闆疯揪濉斾笂鐨勫厜鐢�"); } //鑾峰彇鎶ヨ鐐瑰叧鑱旂殑澶у厜鐢� @@ -1198,20 +1230,17 @@ log.info("鑾峰彇鍒版姤璀︾偣鍏宠仈鐨勫厜鐢�:" + cameraId); //濡傛灉鎶ヨ鐐瑰叧鑱斾簡鍏夌數 messagesEnqueued(cameraId, alarmId, alarmType, createTime, 1, 2, coordinate); - } - else - { + } else { log.debug("鏈幏鍙栧埌鎶ヨ鐐瑰叧鑱旂殑鍏夌數"); } } - private void radarMoveGuide(List<ArdAlarmRadarMove> ardAlarmRadarMoves,RadarAlarmData radarAlarmData) - { + private void radarMoveGuide(List<ArdAlarmRadarMove> ardAlarmRadarMoves, RadarAlarmData radarAlarmData) { //鎸夊叴瓒g偣鍘婚噸,鐒跺悗鎸夊紩瀵奸�昏緫杩涜寮曞鍏ラ槦 ardAlarmRadarMoves = ardAlarmRadarMoves.stream() .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadarMove::getName))), ArrayList::new)); - if(ardAlarmRadarMoves.size()>0) { + if (ardAlarmRadarMoves.size() > 0) { for (ArdAlarmRadarMove ardAlarmRadarMove : ardAlarmRadarMoves) { //閬嶅巻鎶ヨ鏁版嵁杩涜寮曞 if (StringUtils.isNull(ardAlarmRadarMove.getLongitude()) || StringUtils.isNull(ardAlarmRadarMove.getLatitude())) { @@ -1259,12 +1288,12 @@ } //endregion } - private void radarFireGuide(List<ArdAlarmRadarFire> ardAlarmRadarFires,RadarAlarmData radarAlarmData) - { + + private void radarFireGuide(List<ArdAlarmRadarFire> ardAlarmRadarFires, RadarAlarmData radarAlarmData) { //鎸夊叴瓒g偣鍘婚噸,鐒跺悗鎸夊紩瀵奸�昏緫杩涜寮曞鍏ラ槦 ardAlarmRadarFires = ardAlarmRadarFires.stream() .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadarFire::getName))), ArrayList::new)); - if(ardAlarmRadarFires.size()>0) { + if (ardAlarmRadarFires.size() > 0) { for (ArdAlarmRadarFire ardAlarmRadarFire : ardAlarmRadarFires) { //閬嶅巻鎶ヨ鏁版嵁杩涜寮曞 if (StringUtils.isNull(ardAlarmRadarFire.getLongitude()) || StringUtils.isNull(ardAlarmRadarFire.getLatitude())) { @@ -1311,12 +1340,12 @@ } //endregion } - private void radarPumpGuide(List<ArdAlarmRadarPump> ardAlarmRadarPumps,RadarAlarmData radarAlarmData) - { + + private void radarPumpGuide(List<ArdAlarmRadarPump> ardAlarmRadarPumps, RadarAlarmData radarAlarmData) { //鎸夊叴瓒g偣鍘婚噸,鐒跺悗鎸夊紩瀵奸�昏緫杩涜寮曞鍏ラ槦 ardAlarmRadarPumps = ardAlarmRadarPumps.stream() .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadarPump::getName))), ArrayList::new)); - if(ardAlarmRadarPumps.size()>0) { + if (ardAlarmRadarPumps.size() > 0) { for (ArdAlarmRadarPump ardAlarmRadarPump : ardAlarmRadarPumps) { //閬嶅巻鎶ヨ鏁版嵁杩涜寮曞 if (StringUtils.isNull(ardAlarmRadarPump.getLongitude()) || StringUtils.isNull(ardAlarmRadarPump.getLatitude())) { -- Gitblit v1.9.3