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") 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; } 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; } 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(); } 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> 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(); } 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); } }