From 1964314fc149ff51c89bc82cbb27fd4ee754b7e3 Mon Sep 17 00:00:00 2001 From: 郑永安 <zyazyz250@sina.com> Date: 星期二, 18 七月 2023 15:01:43 +0800 Subject: [PATCH] 要素树 --- src/main/java/com/gk/hotwork/Service/ElementManagementService.java | 8 ++ src/main/java/com/gk/hotwork/Domain/ElementManagement.java | 17 +++ src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml | 11 ++ src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java | 120 ++++++++++++++++++++++-------- src/main/java/com/gk/hotwork/Controller/ElementManagementController.java | 27 ++++++ src/main/java/com/gk/hotwork/Domain/ElementTree.java | 23 +++++ src/main/java/com/gk/hotwork/Mapper/ElementManagementMapper.java | 4 7 files changed, 172 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/gk/hotwork/Controller/ElementManagementController.java b/src/main/java/com/gk/hotwork/Controller/ElementManagementController.java index 17937c9..1d8a83e 100644 --- a/src/main/java/com/gk/hotwork/Controller/ElementManagementController.java +++ b/src/main/java/com/gk/hotwork/Controller/ElementManagementController.java @@ -57,6 +57,33 @@ List<ElementTree> elementTreeList = elementManagementService.getElementTree(); return success(elementTreeList); } + + @ApiOperation("获取检查导则要素树") + @PostMapping("/getMenuType1Tree") + public Msg getMenuType1Tree() { + List<ElementTree> elementTreeList = elementManagementService.getMenuType1Tree(); + return success(elementTreeList); + } + + + @ApiOperation("获取安全标准化要素树") + @PostMapping("/getMenuType2Tree") + public Msg getMenuType2Tree() { + List<ElementTree> elementTreeList = elementManagementService.getMenuType2Tree(); + return success(elementTreeList); + } + + + + @ApiOperation("根据所选要素级别获取上级要素列表") + @ApiImplicitParams({ @ApiImplicitParam(name = "type",value = "当前要素级别")}) + @PostMapping("/getSuperElement") + public Msg getSuperElement(@RequestBody JSONObject jsonObject) { + Integer type = Integer.valueOf(jsonObject.get("type")==null?"0":jsonObject.get("type").toString()); + List<ElementManagement> list = elementManagementService.getSuperElement(type-1); + return success(list); + } + @ApiOperation("/新增") @PostMapping("/add") diff --git a/src/main/java/com/gk/hotwork/Domain/ElementManagement.java b/src/main/java/com/gk/hotwork/Domain/ElementManagement.java index 0e83bbd..8ac1eeb 100644 --- a/src/main/java/com/gk/hotwork/Domain/ElementManagement.java +++ b/src/main/java/com/gk/hotwork/Domain/ElementManagement.java @@ -7,7 +7,6 @@ import java.io.Serializable; import java.util.Date; -import java.util.List; @TableName("element_management") public class ElementManagement implements Serializable { @@ -17,10 +16,14 @@ /** 要素名称 name **/ private String name; - /** 要素级别 type 0:A级要素 1:B级要素**/ + /** 要素级别 type 0:一级要素,1:二级要素,2:三级要素**/ private Integer type; + + /** 导则类型 menu_type(1:检查导则(标准)管理;2: 安全标准化管理) **/ + private Integer menuType; - /** 父要素id parent_id **/ + + /** 父要素id parent_id **/ private Long parentId; /** 要素备注 remark **/ @@ -117,6 +120,14 @@ } + public Integer getMenuType() { + return menuType; + } + + public void setMenuType(Integer menuType) { + this.menuType = menuType; + } + public String getName() { return name; } diff --git a/src/main/java/com/gk/hotwork/Domain/ElementTree.java b/src/main/java/com/gk/hotwork/Domain/ElementTree.java index 5e0f299..de28875 100644 --- a/src/main/java/com/gk/hotwork/Domain/ElementTree.java +++ b/src/main/java/com/gk/hotwork/Domain/ElementTree.java @@ -19,14 +19,35 @@ /** 标签 label **/ private String label; + /** 是否是叶节点 **/ + private boolean isLeaf; + /** 值 value **/ private Long value; + + /** 父级ID **/ + private Long pid; /** 子节点 **/ private List<ElementTree> children; + public Long getPid() { + return pid; + } - public String getLabel() { + public void setPid(Long pid) { + this.pid = pid; + } + + public boolean isLeaf() { + return isLeaf; + } + + public void setLeaf(boolean isLeaf) { + this.isLeaf = isLeaf; + } + + public String getLabel() { return label; } diff --git a/src/main/java/com/gk/hotwork/Mapper/ElementManagementMapper.java b/src/main/java/com/gk/hotwork/Mapper/ElementManagementMapper.java index 049b4e2..4ecaa5c 100644 --- a/src/main/java/com/gk/hotwork/Mapper/ElementManagementMapper.java +++ b/src/main/java/com/gk/hotwork/Mapper/ElementManagementMapper.java @@ -13,10 +13,12 @@ @Repository public interface ElementManagementMapper extends BaseMapper<ElementManagement> { - IPage<ElementManagement> selectPages(Page<ElementManagement> page, Map<String, Object> params); + IPage<ElementManagement> selectPages(Page<ElementManagement> page,@Param("params") Map<String, Object> params); List<ElementManagement> getParentElement(); List<ElementManagement> getElementByType(@Param("type") Integer type); + + List<Map<String,Object>> getElementTree(); } diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml index 455f46c..a97d635 100644 --- a/src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml +++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml @@ -17,7 +17,7 @@ <result column="remark" property="remark" jdbcType="VARCHAR" /> <result column="point" property="point" jdbcType="VARCHAR" /> <result column="weight" property="weight" /> - + <result column="menu_type" property="menuType" jdbcType="VARCHAR"/> </resultMap> <select id="selectPages" resultMap="BaseResultMap"> select a.*, @@ -37,5 +37,14 @@ <select id="getElementByType" resultMap="BaseResultMap"> select * from element_management where valid_flag = 1 and type = #{type} </select> + + + <select id="getElementTree" resultType="java.util.Map"> + select DISTINCT t.label,t.mt,t.type,t.pid,t.value,(case when (t.keyw is null and t.type>0) then 1 else 0 end ) as isLeaf from( + select t1.mt,t1.label,t1.type,t1.value,t1.pid,t2.label as keyw + from (select name as label,menu_type as mt,type,id as value,parent_id as pid from element_management WHERE valid_flag=1) t1 left join (select name as label,type,id as value, parent_id as pid from element_management WHERE valid_flag=1) t2 + on t1.value=t2.pid) t + </select> + </mapper> diff --git a/src/main/java/com/gk/hotwork/Service/ElementManagementService.java b/src/main/java/com/gk/hotwork/Service/ElementManagementService.java index 542e744..9a03f7e 100644 --- a/src/main/java/com/gk/hotwork/Service/ElementManagementService.java +++ b/src/main/java/com/gk/hotwork/Service/ElementManagementService.java @@ -42,4 +42,12 @@ List<ElementTree> getElementTree(); + List<ElementManagement> getSuperElement(Integer type); + + + List<ElementTree> getMenuType1Tree(); + + + List<ElementTree> getMenuType2Tree(); + } diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java index cf21e0d..e2a60e2 100644 --- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java +++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java @@ -37,7 +37,6 @@ return elementManagementMapper.selectPages(page,filter); } - /** * @Description: 新增 */ @@ -88,42 +87,93 @@ return elementManagementMapper.getElementByType(0); } + public List<ElementTree> getChindrenTree(List<Map<String,Object>> list,Long pid){ + List<ElementTree> elementTreeList = new ArrayList<ElementTree>(); + for (Map<String,Object> e : list) { + if(e.get("pid")!=null && pid.toString().equals(e.get("pid").toString())){ + + ElementTree elementTree=new ElementTree(); + elementTree.setType(Integer.valueOf(e.get("type").toString())); + elementTree.setLabel(e.get("label").toString()); + elementTree.setValue(Long.valueOf(e.get("value").toString())); + elementTree.setLeaf(e.get("isLeaf").toString().equals("1")?true:false); + if(elementTree.isLeaf()){ + elementTree.setChildren(new ArrayList<ElementTree>()); + elementTreeList.add(elementTree); + }else{ + elementTree.setChildren(getChindrenTree(list,elementTree.getValue())); + elementTreeList.add(elementTree); + } + } + } + return elementTreeList; + } + @Override public List<ElementTree> getElementTree() { - List<ElementTree> elementTreeList = new ArrayList<>(); + + List<ElementTree> returnTree = new ArrayList<>(); + List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置 + for (Map<String, Object> map : list) { + if(map.get("pid")==null){ //一级要素 + ElementTree elementTree=new ElementTree(); + elementTree.setType(Integer.valueOf(map.get("type").toString())); + elementTree.setLabel(map.get("label").toString()); + elementTree.setValue(Long.valueOf(map.get("value").toString())); + elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false); + elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString()))); + returnTree.add(elementTree); + }else{ + continue; + } + } - List<ElementManagement> list1 = elementManagementMapper.getElementByType(0); - List<ElementManagement> list2 = elementManagementMapper.getElementByType(1); - - if (CollectionUtils.isNotEmpty(list1)){ - for (ElementManagement elementManagement : list1){ - ElementTree elementTree=new ElementTree(); - elementTree.setType(0); - elementTree.setLabel(elementManagement.getName()); - elementTree.setValue(elementManagement.getId()); - elementTreeList.add(elementTree); - } - } - if (CollectionUtils.isNotEmpty(list2)) { - for (int i = 0; i < list2.size(); i++) { - for (int j = 0; j < elementTreeList.size(); j++) { - if (list2.get(i).getParentId().equals(elementTreeList.get(j).getValue())) { - if (CollectionUtils.isEmpty(elementTreeList.get(j).getChildren())) { - //如果为空 则new一个出来 - elementTreeList.get(j).setChildren(new ArrayList<>()); - } - ElementTree elementTree = new ElementTree(); - elementTree.setType(1); - elementTree.setLabel(list2.get(i).getName()); - elementTree.setValue(list2.get(i).getId()); - elementTreeList.get(j).getChildren().add(elementTree); - } - } - } - } - return elementTreeList; + return returnTree; } + @Override + public List<ElementTree> getMenuType1Tree() { + + List<ElementTree> returnTree = new ArrayList<>(); + List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置 + for (Map<String, Object> map : list) { + if(map.get("pid")==null && "1".equals(map.get("mt").toString())){ //一级要素,MenuType1 + ElementTree elementTree=new ElementTree(); + elementTree.setType(Integer.valueOf(map.get("type").toString())); + elementTree.setLabel(map.get("label").toString()); + elementTree.setValue(Long.valueOf(map.get("value").toString())); + elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false); + elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString()))); + returnTree.add(elementTree); + }else{ + continue; + } + } + + return returnTree; + } + + @Override + public List<ElementTree> getMenuType2Tree() { + + List<ElementTree> returnTree = new ArrayList<>(); + List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置 + for (Map<String, Object> map : list) { + if(map.get("pid")==null && "2".equals(map.get("mt").toString())){ //一级要素,MenuType2 + ElementTree elementTree=new ElementTree(); + elementTree.setType(Integer.valueOf(map.get("type").toString())); + elementTree.setLabel(map.get("label").toString()); + elementTree.setValue(Long.valueOf(map.get("value").toString())); + elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false); + elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString()))); + returnTree.add(elementTree); + }else{ + continue; + } + } + + return returnTree; + } /** * 查询验证 @@ -163,4 +213,10 @@ if (count > 0) throw new BusinessException("当前A级要素仍然有已绑定的B级要素,无法删除"); } } + + + @Override + public List<ElementManagement> getSuperElement(Integer type) { + return elementManagementMapper.getElementByType(type); + } } -- Gitblit v1.9.2