郑永安
2023-07-24 0645153dfa233b51a749db73f9bd5a8c5127c595
src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java
@@ -5,12 +5,11 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gk.hotwork.Domain.ElementManagement;
import com.gk.hotwork.Domain.ElementTree;
import com.gk.hotwork.Domain.*;
import com.gk.hotwork.Domain.Exception.BusinessException;
import com.gk.hotwork.Domain.UserInfo;
import com.gk.hotwork.Domain.Utils.StringUtils;
import com.gk.hotwork.Mapper.ElementManagementMapper;
import com.gk.hotwork.Mapper.SafetyInspectionItemMapper;
import com.gk.hotwork.Service.ElementManagementService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +28,9 @@
    @Autowired
    private ElementManagementMapper elementManagementMapper;
    @Autowired
    private SafetyInspectionItemMapper safetyInspectionItemMapper;
    /**
    * @Description: 分页
    */
@@ -36,7 +38,6 @@
    public IPage<ElementManagement> selectPage(Page<ElementManagement> page, Map<String, Object> filter, UserInfo user) {
        return elementManagementMapper.selectPages(page,filter);
    }
    /**
    * @Description: 新增
@@ -88,42 +89,125 @@
        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);
                elementTree.setPid(Long.valueOf(e.get("pid").toString()));
                elementTree.setPoint(e.get("point") != null ? Integer.valueOf(e.get("point").toString()) : 0);
                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;
    }
    @Override
    public List<ElementManagement> getElementByParentId(Long parentId) {
        List<ElementManagement> list = elementManagementMapper.selectList(new LambdaQueryWrapper<ElementManagement>()
                .eq(ElementManagement::getValidFlag, 1)
                .eq(ElementManagement::getParentId, parentId));
        return list;
    }
    @Override
    public List<ElementTree> getElementTreeByParentId(Long parentId) {
        List<ElementTree> returnTree = new ArrayList<>();
        List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
        for (Map<String, Object> map : list) {
            if(map.get("value") == parentId){ //一级要素,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.setPoint(map.get("point") != null ? Integer.valueOf(map.get("point").toString()) : 0);
                elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
                returnTree.add(elementTree);
            }else{
                continue;
            }
        }
        return returnTree;
    }
    /**
     * 查询验证
@@ -144,9 +228,25 @@
    public void requiredVerification(ElementManagement param){
        if(StringUtils.isBlank(param.getName())) throw new BusinessException("请填写要素名称");
        if (param.getType() == null) throw new BusinessException("请选择要素类型");
        if (param.getType() == 1 && param.getParentId()==null){
            throw new BusinessException("请选择父要素");
        if (param.getType() == 1 && param.getParentId() == null){//二级要素
            throw new BusinessException("请选择一级要素");
        }
        if(param.getType() == 2){//三级要素
            if(param.getParentId() == null){
                throw new BusinessException("请选择二级要素");
            }
            List<SafetyInspectionItem> safetyInspectionItems = safetyInspectionItemMapper.selectList(new LambdaQueryWrapper<SafetyInspectionItem>()
                    .eq(SafetyInspectionItem::getValidFlag, 1)
                    .eq(SafetyInspectionItem::getElementB, param.getParentId()));
            if(safetyInspectionItems.size() > 0){
                throw new BusinessException("二级要素下存在检查内容,不可建立三级");
            }
        }
    }
    /**
@@ -163,4 +263,10 @@
            if (count > 0) throw new BusinessException("当前A级要素仍然有已绑定的B级要素,无法删除");
        }
    }
   @Override
   public List<ElementManagement> getSuperElement(Integer type) {
      return elementManagementMapper.getElementByType(type);
   }
}