From 9ca0dc6e7833715b875cc9b6b91d5c497b2bae8b Mon Sep 17 00:00:00 2001
From: zf <1603559716@qq.com>
Date: 星期三, 30 八月 2023 09:05:45 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/hazardInvestigationSystem into zf

---
 src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java |  180 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 143 insertions(+), 37 deletions(-)

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..e7741f2 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java
+++ b/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").equals(parentId)){ //一级要素
+                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);
+	}
 }

--
Gitblit v1.9.2