diff --git a/ruoyi-module/src/main/java/com/ruoyi/base/controller/BaseCabinetInfoController.java b/ruoyi-module/src/main/java/com/ruoyi/base/controller/BaseCabinetInfoController.java index d0de36b..3bdeb06 100644 --- a/ruoyi-module/src/main/java/com/ruoyi/base/controller/BaseCabinetInfoController.java +++ b/ruoyi-module/src/main/java/com/ruoyi/base/controller/BaseCabinetInfoController.java @@ -3,7 +3,9 @@ package com.ruoyi.base.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.base.domain.CabinetAndBusbarTree; import com.ruoyi.base.domain.baseCabinetInfoTreeSelects; +import com.ruoyi.base.service.ICabinetAndBusbarTreeService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -36,6 +38,9 @@ public class BaseCabinetInfoController extends BaseController @Autowired private IBaseCabinetInfoService baseCabinetInfoService; + @Autowired + private ICabinetAndBusbarTreeService cabinetAndBusbarTreeService; + /** * 查询电柜信息列表 */ @@ -105,11 +110,21 @@ public class BaseCabinetInfoController extends BaseController } /** - * 查询计量设备信息下拉树结构 + * 查询电柜信息下拉树结构 * */ @PostMapping("/getBaseCabinetInfoTree") public AjaxResult getBaseCabinetInfoTree(@RequestBody BaseCabinetInfo baseCabinetInfo) { List list = baseCabinetInfoService.selectCabinetInfoTreeList(baseCabinetInfo); return success(list); } + /** + * 查询电柜和母排信息下拉树结构 + * 电柜信息的子节点是母排信息 + * */ + @PostMapping("/CabinetAndBusbarTree") + public AjaxResult CabinetAndBusbarTree(@RequestBody BaseCabinetInfo baseCabinetInfo) { + List list = cabinetAndBusbarTreeService.selectCabinetAndBusbarTree(baseCabinetInfo); + return success(list); + } + } diff --git a/ruoyi-module/src/main/java/com/ruoyi/base/domain/BaseBusbarInfo.java b/ruoyi-module/src/main/java/com/ruoyi/base/domain/BaseBusbarInfo.java index 06eb5f9..3a1cf85 100644 --- a/ruoyi-module/src/main/java/com/ruoyi/base/domain/BaseBusbarInfo.java +++ b/ruoyi-module/src/main/java/com/ruoyi/base/domain/BaseBusbarInfo.java @@ -91,6 +91,8 @@ public class BaseBusbarInfo extends BaseEntity @Excel(name = "是否旋转:1-是;0-否") private Long isRotate; + List children = new ArrayList(); + public void setObjId(Long objId) { this.objId = objId; @@ -245,6 +247,15 @@ public class BaseBusbarInfo extends BaseEntity return isRotate; } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-module/src/main/java/com/ruoyi/base/domain/BaseCabinetInfo.java b/ruoyi-module/src/main/java/com/ruoyi/base/domain/BaseCabinetInfo.java index 67c69d3..3e13bdb 100644 --- a/ruoyi-module/src/main/java/com/ruoyi/base/domain/BaseCabinetInfo.java +++ b/ruoyi-module/src/main/java/com/ruoyi/base/domain/BaseCabinetInfo.java @@ -66,8 +66,9 @@ public class BaseCabinetInfo extends BaseEntity /** 旋转角度 */ @Excel(name = "旋转角度") private BigDecimal rotateAngle; -/* - public List children = new ArrayList();*/ + + + public List children = new ArrayList(); public void setObjId(Long objId) { @@ -169,14 +170,13 @@ public class BaseCabinetInfo extends BaseEntity return rotateAngle; } -/* - public List getChildren() { + public List getChildren() { return children; } - public void setChildren(List children) { + public void setChildren(List children) { this.children = children; - }*/ + } @Override public String toString() { diff --git a/ruoyi-module/src/main/java/com/ruoyi/base/domain/CabinetAndBusbarTree.java b/ruoyi-module/src/main/java/com/ruoyi/base/domain/CabinetAndBusbarTree.java new file mode 100644 index 0000000..51e6876 --- /dev/null +++ b/ruoyi-module/src/main/java/com/ruoyi/base/domain/CabinetAndBusbarTree.java @@ -0,0 +1,108 @@ +package com.ruoyi.base.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.List; +import java.util.stream.Collectors; + +/** + * baseCabinetInfoTreeSelects + * + * @author zangch + */ +public class CabinetAndBusbarTree implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 节点ID */ + private Long id; + + /** 节点名称 */ + private String label; + + private String code; + + /** 子节点 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + public CabinetAndBusbarTree() + { + + } + + public CabinetAndBusbarTree(SysDept dept) + { + this.id = dept.getDeptId(); + this.label = dept.getDeptName(); + this.children = dept.getChildren().stream().map(CabinetAndBusbarTree::new).collect(Collectors.toList()); + } + + public CabinetAndBusbarTree(BaseCabinetInfo baseCabinetInfo){ + this.id = baseCabinetInfo.getObjId(); + this.label = baseCabinetInfo.getCabinetAlias(); + this.code = baseCabinetInfo.getCabinetCode().toString(); + this.children = baseCabinetInfo.getChildren().stream().map(CabinetAndBusbarTree::new).collect(Collectors.toList()); + } + + + public CabinetAndBusbarTree(BaseBusbarInfo baseBusbarInfo) { + this.id = baseBusbarInfo.getObjId(); + this.label = baseBusbarInfo.getBusbarAlias(); + this.code = baseBusbarInfo.getBusbarCode().toString(); + this.children = baseBusbarInfo.getChildren().stream().map(CabinetAndBusbarTree::new).collect(Collectors.toList()); + } + + public CabinetAndBusbarTree(SysMenu menu) + { + this.id = menu.getMenuId(); + this.label = menu.getMenuName(); + + } + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + 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 getChildren() + { + return children; + } + + public void setChildren(List children) + { + this.children = children; + } + public void addChild(CabinetAndBusbarTree child) { + this.children.add(child); + } + +} diff --git a/ruoyi-module/src/main/java/com/ruoyi/base/service/IBaseCabinetInfoService.java b/ruoyi-module/src/main/java/com/ruoyi/base/service/IBaseCabinetInfoService.java index 6723c51..65d306f 100644 --- a/ruoyi-module/src/main/java/com/ruoyi/base/service/IBaseCabinetInfoService.java +++ b/ruoyi-module/src/main/java/com/ruoyi/base/service/IBaseCabinetInfoService.java @@ -3,6 +3,7 @@ package com.ruoyi.base.service; import java.util.List; import com.ruoyi.base.domain.BaseCabinetInfo; +import com.ruoyi.base.domain.CabinetAndBusbarTree; import com.ruoyi.base.domain.baseCabinetInfoTreeSelects; /** @@ -66,5 +67,5 @@ public interface IBaseCabinetInfoService * * @return 所有电柜信息信息 */ - List selectCabinetInfoTreeList(BaseCabinetInfo baseCabinetInfo); + public List selectCabinetInfoTreeList(BaseCabinetInfo baseCabinetInfo); } diff --git a/ruoyi-module/src/main/java/com/ruoyi/base/service/ICabinetAndBusbarTreeService.java b/ruoyi-module/src/main/java/com/ruoyi/base/service/ICabinetAndBusbarTreeService.java new file mode 100644 index 0000000..26055ff --- /dev/null +++ b/ruoyi-module/src/main/java/com/ruoyi/base/service/ICabinetAndBusbarTreeService.java @@ -0,0 +1,30 @@ + +package com.ruoyi.base.service; + +import com.ruoyi.base.domain.BaseCabinetInfo; +import com.ruoyi.base.domain.CabinetAndBusbarTree; +import com.ruoyi.base.domain.baseCabinetInfoTreeSelects; + +import java.util.List; + + +/** + * 电柜信息Service接口 + * + * @author ruoyi + * @date 2024-10-31 + */ + +public interface ICabinetAndBusbarTreeService +{ + + + +/** + * 查询电柜和母排信息下拉树结构 + * 电柜信息的子节点是母排信息 + * */ + + public List selectCabinetAndBusbarTree(BaseCabinetInfo baseCabinetInfo); +} + diff --git a/ruoyi-module/src/main/java/com/ruoyi/base/service/impl/CabinetAndBusbarTreeServiceImpl.java b/ruoyi-module/src/main/java/com/ruoyi/base/service/impl/CabinetAndBusbarTreeServiceImpl.java new file mode 100644 index 0000000..fc27448 --- /dev/null +++ b/ruoyi-module/src/main/java/com/ruoyi/base/service/impl/CabinetAndBusbarTreeServiceImpl.java @@ -0,0 +1,112 @@ + +package com.ruoyi.base.service.impl; + + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.ruoyi.base.domain.*; + + +import com.ruoyi.base.mapper.*; +import com.ruoyi.base.service.ICabinetAndBusbarTreeService; +import com.ruoyi.common.utils.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + + + +@Service +public class CabinetAndBusbarTreeServiceImpl implements ICabinetAndBusbarTreeService { + + @Autowired + private BaseCabinetInfoMapper baseCabinetInfoMapper; + + @Autowired + private BaseBusbarInfoMapper baseBusbarInfoMapper; + + + /** + * 查询电柜信息和母排信息树列表 + * 电柜信息的子节点是母排信息 + * + * @return 所有电柜信息及下级母排信息 + */ + @Override + public List selectCabinetAndBusbarTree(BaseCabinetInfo baseCabinetInfo) { + // 创建一个空的List,用于存储查询结果 + List tree = new ArrayList<>(); + /* BaseCabinetInfo allBaseCabinetInfo = new BaseCabinetInfo();*/ + // 根据传入的baseCabinetInfo查询所有符合条件的BaseCabinetInfo + List cabinets = baseCabinetInfoMapper.selectBaseCabinetInfoList(baseCabinetInfo); + + // 遍历查询结果 + for (BaseCabinetInfo cabinet : cabinets) { + // 创建一个CabinetAndBusbarTree对象,用于存储查询结果 + CabinetAndBusbarTree cabinetNode = new CabinetAndBusbarTree(cabinet); + // 创建一个BaseBusbarInfo对象,用于存储查询条件 + BaseBusbarInfo allBaseBusbarInfo = new BaseBusbarInfo(); + // 设置查询条件 + allBaseBusbarInfo.setCabinetCode(cabinet.getCabinetCode()); + // 根据查询条件查询所有符合条件的BaseBusbarInfo + List busbars = baseBusbarInfoMapper.selectBaseBusbarInfoList(allBaseBusbarInfo); + for (BaseBusbarInfo busbar : busbars){ + cabinetNode.addChild(new CabinetAndBusbarTree(busbar)); + } + // 将查询结果添加到tree中 + tree.add(cabinetNode); + } + // 返回查询结果 + return tree; + } + + +/* + + public List selectCabinetAndBusbarTree(BaseCabinetInfo baseCabinetInfo){ + List baseCabinetInfos = baseCabinetInfoMapper.selectBaseCabinetInfoList(baseCabinetInfo); + return buildCabinetAndBusbarTreeSelects(baseCabinetInfos); + } + + private List buildCabinetAndBusbarTreeSelects(List baseCabinetInfos) { + List cabinetAndBusbarTrees = buildCabinetAndBusbarTree(baseCabinetInfos); + return cabinetAndBusbarTrees.stream().map(CabinetAndBusbarTree::new).collect(Collectors.toList()); + } + + private List buildCabinetAndBusbarTree(List baseCabinetInfos) { + List cabinetAndBusbarTrees = new ArrayList<>(); + + for (BaseCabinetInfo baseCabinetInfo : baseCabinetInfos) { + recursionFn(baseCabinetInfos, baseCabinetInfo); + cabinetAndBusbarTrees.add(baseCabinetInfo); + + } + if (cabinetAndBusbarTrees.isEmpty()) { + cabinetAndBusbarTrees = baseCabinetInfos; + } + return cabinetAndBusbarTrees; + } + + private void recursionFn(List baseCabinetInfos, BaseCabinetInfo baseCabinetInfo) { + List baseBusbarInfos = getChildList(list, t); + } + private List getChildList(List list, BaseBusbarInfo t) { + List baseBusbarInfos = new ArrayList<>(); + Iterator it = list.iterator(); + while(it.hasNext()) { + BaseBusbarInfo n = (BaseBusbarInfo)it.next(); + if(n.getParentObjId().longValue()==t.getObjId().longValue()) { + baseBusbarInfos.add(n); + } + } + return baseBusbarInfos; + } +*/ + + +} + diff --git a/ruoyi-module/src/main/java/com/ruoyi/record/controller/RecordBusbarTempController.java b/ruoyi-module/src/main/java/com/ruoyi/record/controller/RecordBusbarTempController.java index e69ce2f..a005c59 100644 --- a/ruoyi-module/src/main/java/com/ruoyi/record/controller/RecordBusbarTempController.java +++ b/ruoyi-module/src/main/java/com/ruoyi/record/controller/RecordBusbarTempController.java @@ -32,7 +32,7 @@ import com.ruoyi.common.core.page.TableDataInfo; /** * 母排测温信息Controller - * + * * @author zangch * @date 2024-11-07 */ @@ -203,6 +203,7 @@ public class RecordBusbarTempController extends BaseController return ResponseEntity.notFound().build(); } } + } diff --git a/ruoyi-ui/src/api/record/recordBusbarTemp.js b/ruoyi-ui/src/api/record/recordBusbarTemp.js index e9c0aaa..223a48c 100644 --- a/ruoyi-ui/src/api/record/recordBusbarTemp.js +++ b/ruoyi-ui/src/api/record/recordBusbarTemp.js @@ -57,3 +57,13 @@ export function getThermalPhoto(filePath) { method: 'get' }) } + +//查询电柜和母排树型结构 +export function CabinetAndBusbarTree(data) { + return request({ + url: '/base/baseCabinetInfo/CabinetAndBusbarTree', + method: 'post', + data: data + + }) +} diff --git a/ruoyi-ui/src/views/base/baseBusbarInfo/index.vue b/ruoyi-ui/src/views/base/baseBusbarInfo/index.vue index cbac831..7f1c3a8 100644 --- a/ruoyi-ui/src/views/base/baseBusbarInfo/index.vue +++ b/ruoyi-ui/src/views/base/baseBusbarInfo/index.vue @@ -35,18 +35,18 @@
- + + @@ -61,8 +61,8 @@ /> - - + + {{dict.label}} @@ -479,7 +479,7 @@ import { getBaseCabinetInfoTree } from "@/api/base/baseCabinetInfo"; export default { name: "BaseBusbarAndAlarmInfo", - dicts: ['is_pictures', 'is_rotate', 'cabinet_is_checked', 'busbar_is_flag', 'busbar_is_end', 'judg_method', 'is_flag', 'alarm_type'], + dicts: ['is_pictures', 'is_rotate', 'cabinet_is_checked',"busbar_is_checked", 'busbar_is_flag', 'busbar_is_end', 'judg_method', 'is_flag', 'alarm_type'], data() { return { selectedCabinetCode: null, // 保存当前选中的电柜编 diff --git a/ruoyi-ui/src/views/record/recordBusbarTemp/index.vue b/ruoyi-ui/src/views/record/recordBusbarTemp/index.vue index 8fd0c38..a0fbd20 100644 --- a/ruoyi-ui/src/views/record/recordBusbarTemp/index.vue +++ b/ruoyi-ui/src/views/record/recordBusbarTemp/index.vue @@ -1,5 +1,36 @@ @@ -392,14 +417,27 @@ import { delRecordBusbarTemp, addRecordBusbarTemp, updateRecordBusbarTemp, - getVisiblePhoto, getThermalPhoto + getVisiblePhoto, getThermalPhoto, CabinetAndBusbarTree } from "@/api/record/recordBusbarTemp"; +import {getBaseCabinetInfoTree} from "@/api/base/baseCabinetInfo"; export default { name: "RecordBusbarTemp", dicts: ['record_busbar_temp_is_alarm', 'record_busbar_temp_is_flag'], data() { return { + + //电柜信息下拉树选项 + InfoOptions: [], + //左侧树结构筛选框 + filterBoxName: undefined, + props:{ + children: 'children', + label: 'label' + /* label: (data) => `(编号${data.code}) ${data.label} `*/ + }, + + // 遮罩层 loading: true, // 选中数组 @@ -468,6 +506,7 @@ export default { }, created() { this.getList(); + this.getTreeselect(); }, methods: { /** 查询母排测温信息列表 */ @@ -633,6 +672,24 @@ export default { }, `recordBusbarTemp_${new Date().getTime()}.xlsx`) }, + /** 查询电柜下拉树结构 */ + getTreeselect() { + CabinetAndBusbarTree({}).then(response => { + this.InfoOptions = response.data + }) + }, + // 筛选节点 + filterNode(value, data) { + if (!value) return true + return data.label.indexOf(value) !== -1 + }, + // 节点单击事件 + handleNodeClick(data) { + this.queryParams.busbarCode = data.code + this.handleQuery() + }, + + } }; diff --git a/ruoyi-ui/src/views/record/recordBusbarTemp/old.vue b/ruoyi-ui/src/views/record/recordBusbarTemp/old.vue new file mode 100644 index 0000000..ba77f03 --- /dev/null +++ b/ruoyi-ui/src/views/record/recordBusbarTemp/old.vue @@ -0,0 +1,695 @@ + + + + + + +