郑永安
2023-07-18 1964314fc149ff51c89bc82cbb27fd4ee754b7e3
要素树
已修改7个文件
210 ■■■■ 文件已修改
src/main/java/com/gk/hotwork/Controller/ElementManagementController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/gk/hotwork/Domain/ElementManagement.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/gk/hotwork/Domain/ElementTree.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/gk/hotwork/Mapper/ElementManagementMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/gk/hotwork/Service/ElementManagementService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java 120 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}