From bbfaaf83f149707edd5c5b598d9d822141ced6fc Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期三, 20 九月 2023 11:25:34 +0800
Subject: [PATCH] 设备健康列表
---
ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java | 143 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 112 insertions(+), 31 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..1f3aab1 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
@@ -54,6 +54,8 @@
@Autowired
private ISysDeptService sysDeptService;
+
+
@PreAuthorize("@ss.hasPermi('sy:syCar:getEquipmentListByUser')")
@ApiOperation("鏍规嵁鏉冮檺鑾峰彇璁惧鍒楄〃")
@@ -80,10 +82,12 @@
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++) {
@@ -94,23 +98,20 @@
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 +125,94 @@
}
}
}
- //鐢ㄩ�楀彿鍒嗛殧瀛楃鍚庣殑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 < userParentId.size(); k++) {
+// String a = userParentId.get(k);
+// for (int l = 0; l < ancestorsA.size(); l++) {
+// String b = ancestorsA.get(l);
+// if(a.equals(b)){
+// ancestorsA.remove(b);
+// }
+// }
+// }
+ 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