From 2b0d7956faa548b2f913a333fbd2d0d99aedfa90 Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期二, 19 九月 2023 16:58:25 +0800 Subject: [PATCH] 设备健康列表 --- ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWellJson.java | 28 +++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 12 ++ ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java | 5 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java | 10 ++ ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java | 110 +++++++++++++++++---- ruoyi-common/src/main/java/com/ruoyi/common/core/domain/HealthVo.java | 22 ++++ ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWellDeptVo.java | 2 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWell.java | 90 ++++++++++++++++++ 8 files changed, 254 insertions(+), 25 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWellDeptVo.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWellDeptVo.java index fe4c08d..90223ca 100644 --- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWellDeptVo.java +++ b/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; 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..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 @@ -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")); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/HealthVo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/HealthVo.java new file mode 100644 index 0000000..d3dc190 --- /dev/null +++ b/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; + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWell.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWell.java new file mode 100644 index 0000000..df3a0bc --- /dev/null +++ b/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; + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWellJson.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelectWellJson.java new file mode 100644 index 0000000..f36d151 --- /dev/null +++ b/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; + + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index 46c50ae..4ea64a0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/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() { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index c18f045..40598fa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/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); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 7c8faa3..a7e0212 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/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()); + } + } -- Gitblit v1.9.3