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/SafetyInspectionItemImpl.java |  102 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 93 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java
index 1102a12..b7bd72b 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java
@@ -3,14 +3,14 @@
 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.EmergencyPlanFile;
-import com.gk.hotwork.Domain.SafetyInspectionItem;
+import com.gk.hotwork.Domain.*;
 import com.gk.hotwork.Domain.Exception.BusinessException;
-import com.gk.hotwork.Domain.SafetyInspectionItemDeduction;
-import com.gk.hotwork.Domain.UserInfo;
 import com.gk.hotwork.Domain.Utils.StringUtils;
+import com.gk.hotwork.Domain.dto.resp.SafetyInspectionElementRespDTO;
 import com.gk.hotwork.Mapper.SafetyInspectionItemDeductionMapper;
 import com.gk.hotwork.Mapper.SafetyInspectionItemMapper;
+import com.gk.hotwork.Service.ElementManagementService;
+import com.gk.hotwork.Service.SafetyInspectionElementAService;
 import com.gk.hotwork.Service.SafetyInspectionItemService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.checkerframework.checker.units.qual.C;
@@ -22,6 +22,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service("SafetyInspectionItemService")
 @Transactional
@@ -32,12 +33,30 @@
     @Autowired
     private SafetyInspectionItemDeductionMapper safetyInspectionItemDeductionMapper;
 
+    @Autowired
+    private ElementManagementService elementManagementService;
+
+    @Autowired
+    private SafetyInspectionElementAService safetyInspectionElementAService;
+
     /**
     * @Description: 分页
     */
     @Override
     public IPage<SafetyInspectionItem> selectPage(Page<SafetyInspectionItem> page, Map<String, Object> filter, UserInfo user) {
         IPage<SafetyInspectionItem> res = safetyInspectionItemMapper.selectPages(page,filter);
+        if (CollectionUtils.isNotEmpty(res.getRecords())){
+            for (int i = 0 ; i < res.getRecords().size(); i++){
+                List<SafetyInspectionItemDeduction> fileList = safetyInspectionItemDeductionMapper.getBySafetyInspectionItemId(res.getRecords().get(i).getId());
+                res.getRecords().get(i).setDeductionList(fileList);
+            }
+        }
+        return res;
+    }
+
+    @Override
+    public IPage<SafetyInspectionItem> selectCPage(Page<SafetyInspectionItem> page, Map<String, Object> filter, UserInfo user) {
+        IPage<SafetyInspectionItem> res = safetyInspectionItemMapper.selectCPages(page,filter);
         if (CollectionUtils.isNotEmpty(res.getRecords())){
             for (int i = 0 ; i < res.getRecords().size(); i++){
                 List<SafetyInspectionItemDeduction> fileList = safetyInspectionItemDeductionMapper.getBySafetyInspectionItemId(res.getRecords().get(i).getId());
@@ -90,7 +109,7 @@
         String username = user.getRealname();
         param.setUpdateTime(date);
         param.setUpdateBy(username);
-        this.updateById(param);
+        safetyInspectionItemMapper.updateSafetyInspectionItem(param);
         //更新扣分项表
 
         List<SafetyInspectionItemDeduction> oldList = safetyInspectionItemDeductionMapper.getBySafetyInspectionItemId(param.getId());
@@ -162,10 +181,69 @@
     }
 
     @Override
-    public List<SafetyInspectionItem> infoElementA(Long id, UserInfo user) {
+    public SafetyInspectionElementRespDTO infoElementA(Long id, UserInfo user) {
+
+        //获取要素
+        List<ElementTree> elementTree = elementManagementService.getElementTreeByParentId(id);
+        if(CollectionUtils.isEmpty(elementTree)){
+            throw new BusinessException("该要素记录不存在");
+        }
+        //获取要素树下面的检查项
         List<SafetyInspectionItem> list = safetyInspectionItemMapper.infoElementA(id);
-        if (CollectionUtils.isNotEmpty(list)){
-            for (SafetyInspectionItem safetyInspectionItem : list){
+
+        //一级
+        SafetyInspectionElementRespDTO respDTO = new SafetyInspectionElementRespDTO();
+        respDTO.setElementId(elementTree.get(0).getValue());
+        respDTO.setElementName(elementTree.get(0).getLabel());
+        respDTO.setType(elementTree.get(0).getType());
+        respDTO.setPid(elementTree.get(0).getPid());
+        List<SafetyInspectionElementRespDTO> sRespList = new ArrayList<>();
+        //循环孩子节点(二级)
+        if(CollectionUtils.isNotEmpty(elementTree.get(0).getChildren())){
+            for (ElementTree schildren : elementTree.get(0).getChildren()){
+                SafetyInspectionElementRespDTO schildrenRespDTO = new SafetyInspectionElementRespDTO();
+                schildrenRespDTO.setElementId(schildren.getValue());
+                schildrenRespDTO.setElementName(schildren.getLabel());
+                schildrenRespDTO.setType(schildren.getType());
+                schildrenRespDTO.setPid(schildren.getPid());
+                if(CollectionUtils.isEmpty(schildren.getChildren())){
+                    List<SafetyInspectionItem> sSelectItemList = list
+                            .stream()
+                            .filter(item -> item.getElementB().equals(schildren.getValue()) && item.getElementC() == null)
+                            .collect(Collectors.toList());
+                    schildrenRespDTO.setItemList(getSafetyInspectionItem(sSelectItemList));
+                }else {
+                    List<SafetyInspectionElementRespDTO> tRespList = new ArrayList<>();
+                    //三级
+                    for (ElementTree tchildren : schildren.getChildren()){
+                        SafetyInspectionElementRespDTO tchildrenRespDTO = new SafetyInspectionElementRespDTO();
+                        tchildrenRespDTO.setElementId(tchildren.getValue());
+                        tchildrenRespDTO.setElementName(tchildren.getLabel());
+                        tchildrenRespDTO.setType(tchildren.getType());
+                        tchildrenRespDTO.setPid(tchildren.getPid());
+                        List<SafetyInspectionItem> tSelectItemList = list
+                                .stream()
+                                .filter(item -> item.getElementC() != null && item.getElementC().equals(tchildren.getValue()))
+                                .collect(Collectors.toList());
+                        tchildrenRespDTO.setItemList(getSafetyInspectionItem(tSelectItemList));
+                        tRespList.add(tchildrenRespDTO);
+                    }
+                    schildrenRespDTO.setChildren(tRespList);
+                }
+                sRespList.add(schildrenRespDTO);
+
+
+            }
+        }
+        respDTO.setChildren(sRespList);
+        return respDTO;
+
+    }
+
+    private List<SafetyInspectionItem> getSafetyInspectionItem(List<SafetyInspectionItem> itemList){
+
+        if (CollectionUtils.isNotEmpty(itemList)){
+            for (SafetyInspectionItem safetyInspectionItem : itemList){
                 List<SafetyInspectionItemDeduction> deductionList = safetyInspectionItemDeductionMapper.getBySafetyInspectionItemId(safetyInspectionItem.getId());
                 if (CollectionUtils.isNotEmpty(deductionList)){
                     safetyInspectionItem.setDeductionList(deductionList);
@@ -174,7 +252,8 @@
                 }
             }
         }
-        return list;
+        return itemList;
+
     }
 
     @Override
@@ -208,6 +287,11 @@
     public void requiredVerification(SafetyInspectionItem param){
         if (param.getElementA() == null) throw new BusinessException("请选择A级要素");
         if (param.getElementB() == null) throw new BusinessException("请选择B级要素");
+        //如果有三级要素则不创建标准
+        List<ElementManagement> elementList = elementManagementService.getElementByParentId(param.getElementB());
+        if(param.getElementC() == null && elementList.size() > 0){
+            throw new BusinessException("请先删除三级要素");
+        }
         if(StringUtils.isBlank(param.getStandardizationRequirements())) throw new BusinessException("请填写标准化要求");
         if(StringUtils.isBlank(param.getEnterpriseStandard())) throw new BusinessException("请填写企业达标标准");
         if(StringUtils.isBlank(param.getReviewMethod())) throw new BusinessException("请填写评审方法");

--
Gitblit v1.9.2