From 2b0d7956faa548b2f913a333fbd2d0d99aedfa90 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期二, 19 九月 2023 16:58:25 +0800
Subject: [PATCH] 设备健康列表

---
 ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java |  189 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 185 insertions(+), 4 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 4f02ab1..ff86ec3 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
@@ -1,12 +1,24 @@
 package com.ruoyi.health.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+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.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;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.health.client.EquipmentsHealthClient;
+import com.ruoyi.health.param.GetEquipmentAlertInfoParam;
 import com.ruoyi.health.param.GetFMTrendParam;
 import com.ruoyi.health.param.GetTrendParam;
 import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.utils.result.Results;
 import com.ruoyi.utils.soap.ARDSoapUtil;
 import io.swagger.annotations.Api;
@@ -17,8 +29,10 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+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;
@@ -33,6 +47,160 @@
 
     @Autowired
     ISysConfigService configService;
+
+    @Resource
+    private IArdAlarmpointsWellService ardAlarmpointsWellService;
+
+    @Autowired
+    private ISysUserService sysUserService;
+
+    @Autowired
+    private ISysDeptService sysDeptService;
+
+
+
+    @PreAuthorize("@ss.hasPermi('sy:syCar:getEquipmentListByUser')")
+    @ApiOperation("鏍规嵁鏉冮檺鑾峰彇璁惧鍒楄〃")
+    @GetMapping("getEquipmentListByUser")
+    public Results getEquipmentListByUser(){
+        String usersId = SecurityUtils.getUserId();
+        //鏍规嵁userId鏌ヨ閮ㄩ棬Id
+        SysUser sysUser = sysUserService.selectUserById(usersId);
+        //鏍规嵁褰撳墠deptId鎴栬�呭綋鍓嶅強鎵�灞炰笅绾х殑鎵�鏈塪eptId
+        List<Long> deptList = sysDeptService.deptIdBySub(sysUser.getDeptId());
+        //鏍规嵁deptId鑾峰彇瀵瑰簲鎵�鏈夊叴瓒g偣鏁版嵁
+        List<ArdAlarmpointsWellDeptVo> list = ardAlarmpointsWellService.wellListDept(deptList);
+        //鏌ヨ鎺ュ彛杩斿洖鐨勮澶囧垪琛�
+        String url = configService.getHealth();
+        Map<String, Object> map = new HashMap();
+        String result = ARDSoapUtil.postSoapResult(url, "GetEquipmentList", map);
+        if ("".equals(result)) {
+            //杩斿洖缁撴灉涓虹┖
+            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)){
+                                //杩斿洖璁惧鏁版嵁
+                                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());
+                                healthVos.add(healthVo);
+                                if(listResult.get(i).get("EquipLevel").equals("0")){
+                                    count0++;
+                                }else if(listResult.get(i).get("EquipLevel").equals("1")){
+                                    count1++;
+                                }else if(listResult.get(i).get("EquipLevel").equals("2")){
+                                    count2++;
+                                }
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+            //鐢ㄩ�楀彿鍒嗛殧瀛楃鍚庣殑size涓烘渶澶х殑缁撴瀯灞傛暟
+            String[] ancestorsArray = longest.split(",");
+            int max = ancestorsArray.length;
+            //鑾峰彇閮ㄩ棬灞傜骇
+            List<SysDept> sysDepts = sysDeptService.all();
+            List<TreeSelectWell> tree = sysDeptService.wellTree(sysDepts);
+            //寰幆鏁版嵁鎸傚湪鍒伴儴闂ㄥ眰绾т笅
+            for (int i = 0; i < healthVos.size(); i++) {
+                HealthVo healthVo = healthVos.get(i);
+                Long deptId = healthVo.getDeptId();
+                //寰幆鏍戠粨鏋�
+                for (int j = 0; j < tree.size(); j++) {
+                    //濡傛灉绗竴灞傚尮閰嶈祴鍊�
+                    if(deptId.equals(tree.get(j).getId())){
+                        tree.get(j).getWell().add(healthVo);
+                        break;
+                    }else {
+                        //涓嶅尮閰嶄笖children澶т簬0鏌ヨ绗簩灞�
+                        if(tree.get(j).getChildren().size()>0){
+                            for (int k = 0; k < tree.get(j).getChildren().size(); k++) {
+                                //濡傛灉绗簩灞傚尮閰�
+                                if(deptId.equals(tree.get(j).getChildren().get(k).getId())){
+                                    tree.get(j).getChildren().get(k).getWell().add(healthVo);
+                                    break;
+                                }else {
+                                    //涓嶅尮閰嶄笖children澶т簬0鏌ヨ绗笁灞�
+                                    if(tree.get(j).getChildren().get(k).getChildren().size()>0){
+                                        for (int l = 0; l < tree.get(j).getChildren().get(k).getChildren().size(); l++) {
+                                            //濡傛灉绗笁灞傚尮閰�
+                                            if(deptId.equals(tree.get(j).getChildren().get(k).getChildren().get(l).getId())){
+                                                tree.get(j).getChildren().get(k).getChildren().get(l).getWell().add(healthVo);
+                                                break;
+                                            }else {
+                                                //涓嶅尮閰嶄笖children澶т簬0鏌ヨ绗洓灞�
+                                                if(tree.get(j).getChildren().get(k).getChildren().get(l).getChildren().size()>0){
+                                                    for (int m = 0; m < tree.get(j).getChildren().get(k).getChildren().get(l).getChildren().size(); m++) {
+                                                        //濡傛灉绗洓灞傚尮閰�
+                                                        if(deptId.equals(tree.get(j).getChildren().get(k).getChildren().get(l).getChildren().get(m).getId())){
+                                                            tree.get(j).getChildren().get(k).getChildren().get(l).getChildren().get(m).getWell().add(healthVo);
+                                                            break;
+                                                        }else {
+                                                            //涓嶅尮閰嶄笖children澶т簬0鏌ヨ绗簲灞�
+                                                            if(tree.get(j).getChildren().get(k).getChildren().get(l).getChildren().get(m).getChildren().size()>0){
+                                                                for (int n = 0; n < tree.get(j).getChildren().get(k).getChildren().get(l).getChildren().get(m).getChildren().size(); n++) {
+                                                                    //濡傛灉绗簲灞傚尮閰�
+                                                                    if(deptId.equals(tree.get(j).getChildren().get(k).getChildren().get(l).getChildren().get(m).getChildren().get(n).getId())){
+                                                                        tree.get(j).getChildren().get(k).getChildren().get(l).getChildren().get(m).getChildren().get(n).getWell().add(healthVo);
+                                                                        break;
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            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"));
+        }
+    }
 
     @PreAuthorize("@ss.hasPermi('sy:syCar:getEquipmentList')")
     @ApiOperation("鑾峰彇璁惧鍒楄〃")
@@ -322,7 +490,9 @@
     @PreAuthorize("@ss.hasPermi('sy:syCar:GetEquipmentAlertInfo')")
     @ApiOperation("鏍规嵁ID鑾峰彇璇︾粏璇存槑")
     @GetMapping("GetEquipmentAlertInfo")
-    public Results GetEquipmentAlertInfo(Integer id){
+    public  Results GetEquipmentAlertInfo(GetEquipmentAlertInfoParam param){
+        Integer id = param.getId();
+        String key = param.getPosition();
         List<SysConfig> sysConfigs = configService.getAccPwd();
         String account = null,password = null,url = null;
         for (int i = 0; i < sysConfigs.size(); i++) {
@@ -340,8 +510,19 @@
         String tokenUrl = url+"/RoadFlowApi/Home/ValidLogin";
         Map<String, Object> loginResult = EquipmentsHealthClient.getToken(tokenUrl, account, password);
         String token = (String) ((Map<String, Object>) ((Map<String, Object>) loginResult.get("data")).get("data")).get("token");
-        String GetPartsAlertLeveUrl = url + "/RoadFlowApi/ZX/MeasureData/GetEquipmentAlertInfo";
-        Map<String, Object> map = EquipmentsHealthClient.GetPartsAlertLeve(GetPartsAlertLeveUrl, token,id);
-        return Results.succeed(map);
+        String GetEquipmentAlertInfoUrl = url + "/RoadFlowApi/ZX/MeasureData/GetEquipmentAlertInfo";
+        Map<String, Object> map = EquipmentsHealthClient.GetEquipmentAlertInfo(GetEquipmentAlertInfoUrl, token,id);
+        List<Object> list = (List<Object>) ((Map<String, Object>) map.get("data")).get("rows");
+        List<Map<String,Object>> rList = new ArrayList<>();
+        if(list.size()>0){
+            for (int i = 0; i < list.size(); i++) {
+                Map<String,Object> listMap = (Map<String, Object>) list.get(i);
+                String position = (String) listMap.get("position");
+                if(key.equals(position)){
+                    rList.add(listMap);
+                }
+            }
+        }
+        return Results.succeed(rList);
     }
 }

--
Gitblit v1.9.3