aijinhui
2023-09-19 2b0d7956faa548b2f913a333fbd2d0d99aedfa90
设备健康列表
已添加3个文件
已修改5个文件
279 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWellDeptVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java 110 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/HealthVo.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWell.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWellJson.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWellDeptVo.java
@@ -52,7 +52,7 @@
    private BigDecimal altitude;
    private Integer deptId;
    private Long deptId;
    private Integer parentId;
ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java
@@ -3,9 +3,11 @@
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.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;
@@ -55,6 +57,8 @@
    @Autowired
    private ISysDeptService sysDeptService;
    @PreAuthorize("@ss.hasPermi('sy:syCar:getEquipmentListByUser')")
    @ApiOperation("根据权限获取设备列表")
    @GetMapping("getEquipmentListByUser")
@@ -80,8 +84,11 @@
        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");
@@ -94,23 +101,19 @@
                        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());
                                healthVos.add(healthVo);
                                if(listResult.get(i).get("EquipLevel").equals("0")){
                                    count0++;
                                }else if(listResult.get(i).get("EquipLevel").equals("1")){
@@ -127,11 +130,72 @@
            //用逗号分隔字符后的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);
            //获取部门层级
            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"));
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/HealthVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.common.core.domain;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class HealthVo {
    private Integer id;
    private String equipName;
    private String equipNumber;
    private String equipKey;
    private String equipLevel;
    private String measureDate;
    private Long deptId;
    private BigDecimal longitude;
    private BigDecimal latitude;
    private BigDecimal altitude;
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWell.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.ruoyi.common.core.domain;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysMenu;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * Treeselect树结构实体类
 *
 * @author ruoyi
 */
public class TreeSelectWell implements Serializable
{
    private static final long serialVersionUID = 1L;
    /** èŠ‚ç‚¹ID */
    private Long id;
    /** èŠ‚ç‚¹åç§° */
    private String label;
    /** å­èŠ‚ç‚¹ */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<TreeSelectWell> children;
    public List<HealthVo> getWell() {
        return well;
    }
    public void setWell(List<HealthVo> well) {
        this.well = well;
    }
    private List<HealthVo> well = new ArrayList<>();
    public TreeSelectWell()
    {
    }
    public TreeSelectWell(SysDept dept)
    {
        this.id = dept.getDeptId();
        this.label = dept.getDeptName();
        this.children = dept.getChildren().stream().map(TreeSelectWell::new).collect(Collectors.toList());
    }
    public TreeSelectWell(SysMenu menu)
    {
        this.id = menu.getMenuId();
        this.label = menu.getMenuName();
        this.children = menu.getChildren().stream().map(TreeSelectWell::new).collect(Collectors.toList());
    }
    public Long getId()
    {
        return id;
    }
    public void setId(Long id)
    {
        this.id = id;
    }
    public String getLabel()
    {
        return label;
    }
    public void setLabel(String label)
    {
        this.label = label;
    }
    public List<TreeSelectWell> getChildren()
    {
        return children;
    }
    public void setChildren(List<TreeSelectWell> children)
    {
        this.children = children;
    }
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWellJson.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.ruoyi.common.core.domain;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysMenu;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
/**
 * Treeselect树结构实体类
 *
 * @author ruoyi
 */
@Data
public class TreeSelectWellJson implements Serializable
{
    private static final long serialVersionUID = 1L;
    List<TreeSelectWell> wellList;
    int count0;
    int count1;
    int count2;
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
@@ -7,6 +7,7 @@
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@@ -53,12 +54,14 @@
    private String delFlag;
    /** çˆ¶éƒ¨é—¨åç§° */
    @TableField(exist = false)
    private String parentName;
    
    /** å­éƒ¨é—¨ */
    @TableField(exist = false)
    private List<SysDept> children = new ArrayList<SysDept>();
    @TableField(exist = false)
    private boolean disabled;
    public boolean isDisabled() {
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
@@ -3,7 +3,9 @@
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.TreeSelectWell;
import com.ruoyi.common.core.domain.entity.SysDept;
/**
@@ -131,5 +133,13 @@
     */
    List<Long> deptIdBySub(Long deptId);
    List<SysDept> all();
    /**
     * é¢„留结构的树形
     * @param depts
     * @return
     */
    List<TreeSelectWell> wellTree(List<SysDept> depts);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -4,6 +4,7 @@
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.TreeSelectWell;
import org.springframework.stereotype.Service;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.constant.UserConstants;
@@ -351,5 +352,16 @@
        return deptList;
    }
    @Override
    public List<SysDept> all() {
        return deptMapper.selectList(null);
    }
    @Override
    public List<TreeSelectWell> wellTree(List<SysDept> depts) {
        List<SysDept> deptTrees = buildDeptTree(depts);
        return deptTrees.stream().map(TreeSelectWell::new).collect(Collectors.toList());
    }
}