From c6a05cc862a98abd7d16560e7ac2ab9bf4e12feb Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期四, 21 九月 2023 09:28:07 +0800 Subject: [PATCH] 修改雷达报警数据合并 --- ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java | 142 ++++++++++++++++++++++++++++++++++------------ 1 files changed, 104 insertions(+), 38 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java b/ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java index f2bc7f7..4ba7c26 100644 --- a/ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java +++ b/ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java @@ -3,9 +3,12 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWellDeptVo; +import com.ruoyi.common.core.domain.HealthVo; import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService; +import com.ruoyi.common.core.domain.TreeDeptWell; +import com.ruoyi.common.core.domain.TreeSelectWell; +import com.ruoyi.common.core.domain.TreeSelectWellJson; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; @@ -30,10 +33,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author Administrator @@ -55,10 +55,13 @@ @Autowired private ISysDeptService sysDeptService; + + @PreAuthorize("@ss.hasPermi('sy:syCar:getEquipmentListByUser')") @ApiOperation("鏍规嵁鏉冮檺鑾峰彇璁惧鍒楄〃") @GetMapping("getEquipmentListByUser") public Results getEquipmentListByUser(){ + //鏌ヨ鐢ㄦ埛ID String usersId = SecurityUtils.getUserId(); //鏍规嵁userId鏌ヨ閮ㄩ棬Id SysUser sysUser = sysUserService.selectUserById(usersId); @@ -75,42 +78,34 @@ return Results.succeed("娌℃湁璁惧淇℃伅"); } Map<String, Object> mapResult = (Map<String, Object>) JSON.parse((String) result); - JSONArray jsonArray = new JSONArray(); - //ancestors瀛楁鏈�闀跨殑鏁版嵁 - String longest = ""; //绛夌骇 int count0 = 0,count1 = 0,count2 = 0; + //瑁呮暟鎹� + List<HealthVo> healthVos = new ArrayList<>(); if ((int) mapResult.get("code") == 200) { List<Map<String, Object>> listResult = (List<Map<String, Object>>) JSON.parse((String) mapResult.get("resdata")); + //寰幆寰楀埌鏉冮檺涓嬪尮閰嶆暟鎹� for (int i = 0; i < listResult.size(); i++) { - JSONObject jsonObject = new JSONObject(); String equipNumber = (String) listResult.get(i).get("EquipNumber"); if(equipNumber!=null){ for (int j = 0; j < list.size(); j++) { - String ancestors = list.get(j).getAncestors(); - if (ancestors.length() > longest.length()) { - longest = ancestors; - } String wellId = list.get(j).getWellId(); if(wellId!=null){ if(wellId.equals(equipNumber)){ - String[] ancestorsArray = ancestors.split(","); - int max = ancestorsArray.length; - jsonObject.put("id",listResult.get(i).get("id")); - jsonObject.put("EquipName",listResult.get(i).get("EquipName")); - jsonObject.put("EquipNumber",listResult.get(i).get("EquipNumber")); - jsonObject.put("EquipLevel",listResult.get(i).get("EquipLevel")); - jsonObject.put("MeasureDate",listResult.get(i).get("MeasureDate")); - jsonObject.put("EquipKey",listResult.get(i).get("EquipKey")); - jsonObject.put("longitude",list.get(j).getLongitude()); - jsonObject.put("latitude",list.get(j).getLatitude()); - jsonObject.put("altitude",list.get(j).getAltitude()); - jsonObject.put("deptId",list.get(j).getDeptId()); - jsonObject.put("deptName",list.get(j).getDeptName()); - jsonObject.put("parentId",list.get(j).getParentId()); - jsonObject.put("ancestors",list.get(j).getAncestors()); - jsonObject.put("tier",max); - jsonArray.add(jsonObject); + //杩斿洖璁惧鏁版嵁 + HealthVo healthVo = new HealthVo(); + healthVo.setId((Integer) listResult.get(i).get("id")); + healthVo.setEquipName((String) listResult.get(i).get("EquipName")); + healthVo.setEquipNumber((String) listResult.get(i).get("EquipNumber")); + healthVo.setEquipLevel((String) listResult.get(i).get("EquipLevel")); + healthVo.setEquipKey((String) listResult.get(i).get("EquipKey")); + healthVo.setMeasureDate((String) listResult.get(i).get("MeasureDate")); + healthVo.setLongitude(list.get(j).getLongitude()); + healthVo.setLatitude(list.get(j).getLatitude()); + healthVo.setAltitude(list.get(j).getAltitude()); + healthVo.setDeptId(list.get(j).getDeptId()); + healthVo.setAncestors(list.get(j).getAncestors()); + healthVos.add(healthVo); if(listResult.get(i).get("EquipLevel").equals("0")){ count0++; }else if(listResult.get(i).get("EquipLevel").equals("1")){ @@ -124,14 +119,85 @@ } } } - //鐢ㄩ�楀彿鍒嗛殧瀛楃鍚庣殑size涓烘渶澶х殑缁撴瀯灞傛暟 - String[] ancestorsArray = longest.split(","); - int max = ancestorsArray.length; - JSONObject j = new JSONObject(); - j.put("count0",count0); - j.put("count1",count1); - j.put("count2",count2); - return Results.succeed(jsonArray); + //鏍规嵁deptList鏌ヨ鍑虹敤鎴峰強浠ヤ笅鐨勬墍鏈夐儴闂ㄤ俊鎭� + List<SysDept> sysDepts = sysDeptService.allByUser(deptList); + //寰幆鏌ヨ鍑鸿鐢ㄦ埛鐨勬墍鏈変笂绾D + List<String> userParentId = new ArrayList<>(); + for (int i = 0; i < sysDepts.size(); i++) { + Long userDeptId = sysDepts.get(i).getDeptId(); + if(usersId.equals(userDeptId)){ + String ancestors = sysDepts.get(i).getAncestors(); + if(ancestors.contains(",")){ + userParentId = Arrays.asList(ancestors.split(",")); + }else { + userParentId.add(ancestors); + } + break; + } + } + //鎶婇儴闂ㄥ眰绾у拰鏁版嵁缁撳悎 + List<TreeDeptWell> treeDeptWells = new ArrayList<>(); + for (int i = 0; i < sysDepts.size(); i++) { + SysDept sysDept = sysDepts.get(i); + Long deptId = sysDept.getDeptId(); + List<HealthVo> deptHealths = new ArrayList<>(); + for (int j = 0; j < healthVos.size(); j++) { + HealthVo healthVo = healthVos.get(j); + Long healthDeptId = healthVo.getDeptId(); + if(deptId.equals(healthDeptId)){ + deptHealths.add(healthVo); + //鐖剁骇缁撴瀯璧嬪�� + String thisAncestors = healthVo.getAncestors(); + List<String> ancestorsA = Arrays.asList(thisAncestors.split(",")); + ancestorsA.removeAll(userParentId); + for (int k = 0; k < ancestorsA.size(); k++) { + Long ancestor = Long.parseLong(ancestorsA.get(k)); + //寰幆鏈�缁圠ist鍒ゆ柇鏄惁鏈夎鏁版嵁鐨勭埗绾э紝濡傛灉娌℃湁灏卞~杩涘幓 + boolean wellTrue = false; + if(ancestor==0){ + wellTrue = true; + }else { + if(treeDeptWells.size()>0){ + for (int l = 0; l < treeDeptWells.size(); l++) { + Long treeId = treeDeptWells.get(l).getDeptId(); + if(ancestor.equals(treeId)){ + wellTrue = true; + } + } + } + } + if(!wellTrue){ + SysDept sysDept1 = sysDeptService.selectDeptById(ancestor); + TreeDeptWell treeDeptWell = new TreeDeptWell(); + treeDeptWell.setDeptId(ancestor); + treeDeptWell.setAncestors(sysDept1.getAncestors()); + treeDeptWell.setDeptName(sysDept1.getDeptName()); + treeDeptWell.setOrderNum(sysDept1.getOrderNum()); + treeDeptWell.setParentId(sysDept1.getParentId()); + treeDeptWells.add(treeDeptWell); + } + } + } + } + if(deptHealths.size()>0){ + //鏈夎澶囧睍绀� + TreeDeptWell treeDeptWell = new TreeDeptWell(); + treeDeptWell.setDeptId(deptId); + treeDeptWell.setAncestors(sysDept.getAncestors()); + treeDeptWell.setDeptName(sysDept.getDeptName()); + treeDeptWell.setOrderNum(sysDept.getOrderNum()); + treeDeptWell.setParentId(sysDept.getParentId()); + treeDeptWell.setWell(deptHealths); + treeDeptWells.add(treeDeptWell); + } + } + List<TreeSelectWell> tree = sysDeptService.wellTree(treeDeptWells); + TreeSelectWellJson treeSelectWellJson = new TreeSelectWellJson(); + treeSelectWellJson.setWellList(tree); + treeSelectWellJson.setCount0(count0); + treeSelectWellJson.setCount1(count1); + treeSelectWellJson.setCount2(count2); + return Results.succeed(treeSelectWellJson); } else { //閿欒鎻愮ず return Results.error((String) mapResult.get("errmsg")); -- Gitblit v1.9.3