liuyc 2 vuotta sitten
vanhempi
commit
061deefcf4

+ 49 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeContractTreeAllVO.java

@@ -0,0 +1,49 @@
+package org.springblade.manager.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+import org.springblade.core.tool.node.INode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class WbsTreeContractTreeAllVO implements INode<WbsTreeContractTreeAllVO> {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    private Long primaryKeyId;
+
+    private String title;
+
+    private Integer nodeType;
+
+    private String partitionCode;
+
+    private Long parentId;
+
+    private Integer sort;
+
+    private Long submitCounts;
+
+    @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    private List<WbsTreeContractTreeAllVO> children;
+
+    @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    private Boolean hasChildren;
+
+    @Override
+    public List<WbsTreeContractTreeAllVO> getChildren() {
+        if (this.children == null) {
+            this.children = new ArrayList<>();
+        }
+        return this.children;
+    }
+
+    @Override
+    public Boolean getHasChildren() {
+        return hasChildren;
+    }
+}

+ 34 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ContractInfoController.java

@@ -542,21 +542,20 @@ public class ContractInfoController extends BladeController {
     }
 
     /**
-     * 查询合同段树-全加载
+     * 查询合同段树-全加载-施工合同段
      */
     @GetMapping("/tree-all")
     @ApiOperationSupport(order = 19)
-    @ApiOperation(value = "查询合同段私有Wbs节点树形结构", notes = "传入wbsId,项目id,合同段id")
+    @ApiOperation(value = "查询合同段私有Wbs节点树形结构-施工合同段", notes = "合同段id,type=1")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "wbsId", value = "wbsId", required = true),
-            @ApiImplicitParam(name = "项目id", value = "projectId", required = true),
-            @ApiImplicitParam(name = "合同段id", value = "contractId", required = true)
+            @ApiImplicitParam(name = "合同段id", value = "contractId", required = true),
+            @ApiImplicitParam(name = "type", value = "1=资料查询,资料查询过慢,导致资料填报也过慢,后续优化", required = true)
     })
-    public R treeAll(String wbsId, String projectId, String contractId) {
-        List<WbsTreeContractVO> tree = contractInfoService.tree3(wbsId, projectId, contractId);
+    public R treeAll(String contractId, Integer type) {
+        List<WbsTreeContractTreeAllVO> tree = contractInfoService.tree3(contractId, type);
         if (tree != null && tree.size() > 0) {
             ContractInfo contractInfo = contractInfoService.getBaseMapper().selectById(contractId);
-            for (WbsTreeContractVO wbsTreeContractVO : tree) {
+            for (WbsTreeContractTreeAllVO wbsTreeContractVO : tree) {
                 if (ObjectUtil.isNotEmpty(wbsTreeContractVO.getParentId()) && 0L == wbsTreeContractVO.getParentId()) {
                     wbsTreeContractVO.setTitle(contractInfo.getContractName());
                     break;
@@ -567,6 +566,33 @@ public class ContractInfoController extends BladeController {
         return R.fail(200, "未查询到信息");
     }
 
+    /**
+     * 查询合同段树-全加载-监理合同段
+     */
+    @GetMapping("/tree-all-jl")
+    @ApiOperationSupport(order = 19)
+    @ApiOperation(value = "查询合同段私有Wbs节点树形结构-监理合同段", notes = "合同段id,type=1")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "合同段id", value = "contractId", required = true),
+            @ApiImplicitParam(name = "type", value = "1=资料查询,资料查询过慢,导致资料填报也过慢,后续优化", required = true)
+    })
+    public R treeAllJL(String contractId, Integer type) {
+        Map<Long, List<WbsTreeContractTreeAllVO>> treeAllJL = contractInfoService.treeAllJL(contractId, type);
+        if (treeAllJL != null && treeAllJL.size() > 0) {
+            for (Map.Entry<Long, List<WbsTreeContractTreeAllVO>> map : treeAllJL.entrySet()) {
+                ContractInfo contractInfo = contractInfoService.getBaseMapper().selectById(map.getKey());
+                for (WbsTreeContractTreeAllVO wbsTreeContractVO : map.getValue()) {
+                    if (ObjectUtil.isNotEmpty(wbsTreeContractVO.getParentId()) && 0L == wbsTreeContractVO.getParentId()) {
+                        wbsTreeContractVO.setTitle(contractInfo.getContractName());
+                        break;
+                    }
+                }
+            }
+            return R.data(treeAllJL);
+        }
+        return R.fail(200, "未查询到信息");
+    }
+
     /**
      * 查询合同段私有Wbs节点树形结构 --- 试验关联工程节点树
      */

+ 1 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.java

@@ -84,9 +84,7 @@ public interface ContractInfoMapper extends BaseMapper<ContractInfo> {
     @Select("select quality_node_id from u_trial_self_quality_project where self_id = #{selfId}")
     List<String> queryList(@Param("selfId") String selfId);
 
-    List<WbsTreeContractVO> tree5(@Param("wbsId") Long wbsId,
-                                  @Param("projectId") Long projectId,
-                                  @Param("contractId") Long contractId);
+    List<WbsTreeContractTreeAllVO> tree5(@Param("contractId") Long contractId);
 
     List<WbsTreeContractVO6> tree6(@Param("wbsId") Long wbsId,
                                   @Param("projectId") Long projectId,

+ 5 - 21
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.xml

@@ -418,37 +418,21 @@
         </foreach>
     </select>
 
-    <select id="tree5" resultMap="treeNodeResultMap2">
+    <select id="tree5" resultType="org.springblade.manager.vo.WbsTreeContractTreeAllVO">
         SELECT
         d.p_key_id AS "primaryKeyId",
-        d.wbs_type AS "wbsType",
         d.id,
         d.parent_id AS "parentId",
         IFNULL(if(length(trim(full_name)) > 0, full_name, node_name),node_name) AS title,
-        d.node_name AS "nodeName",
-        d.full_name AS "fullName",
-        d.import_matching_info AS "importMatchingInfo",
-        d.type AS "type",
-        d.node_type AS "nodeType",
-        d.id AS "value",
-        d.id AS "key",
         partition_code,
-        old_id,
+        node_type,
         sort
         FROM m_wbs_tree_contract d
         WHERE
-        d.is_deleted = 0
-        AND d.status = 1
+         contract_id = #{contractId}
         AND d.type = 1
-        <if test="wbsId!=null and wbsId!=''">
-            and wbs_id = #{wbsId}
-        </if>
-        <if test="projectId !=null and projectId!=''">
-            and project_id = #{projectId}
-        </if>
-        <if test="contractId!=null and contractId!=''">
-            and contract_id = #{contractId}
-        </if>
+        AND d.status = 1
+        AND d.is_deleted = 0
         ORDER BY d.sort
     </select>
 

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IContractInfoService.java

@@ -44,7 +44,7 @@ public interface IContractInfoService extends BaseService<ContractInfo> {
 
     List<WbsTreeContractVO> tree2(String wbsId, String projectId, String contractId);
 
-    List<WbsTreeContractVO> tree3(String wbsId, String projectId, String contractId);
+    List<WbsTreeContractTreeAllVO> tree3(String contractId, Integer type);
 
     List<WbsTreeContractVO6> tree6List(String wbsId, String projectId, String contractId);
 
@@ -68,6 +68,6 @@ public interface IContractInfoService extends BaseService<ContractInfo> {
 
     Map<String, Object> trialRelationTree(String wbsId, String projectId, String contractId, String selfId);
 
-
+    Map<Long, List<WbsTreeContractTreeAllVO>> treeAllJL(String contractId, Integer type);
 
 }

+ 63 - 28
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -3,6 +3,7 @@ package org.springblade.manager.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
@@ -39,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
@@ -131,33 +133,67 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
     }
 
     @Override
-    public List<WbsTreeContractVO> tree3(String wbsId, String projectId, String contractId) {
-        List<WbsTreeContractVO> wbsTreeContractVOS = baseMapper.tree5(Long.parseLong(wbsId), Long.parseLong(projectId), Long.parseLong(contractId));
-        //获取所有已填报信息
-        Map<String, Long> allTable = informationQueryClient.getTreeAllTable(contractId);
-        Set<String> keySet = allTable.keySet();
-        for (String key : keySet) {
-            for (WbsTreeContractVO vo : wbsTreeContractVOS) {
-                if (key.equals(vo.getId()+"")){
-                    vo.setSubmitCounts(allTable.get(key));
+    public List<WbsTreeContractTreeAllVO> tree3(String contractId, Integer type) {
+        List<WbsTreeContractTreeAllVO> wbsTreeContractVOS = baseMapper.tree5(Long.parseLong(contractId));
+        if (ObjectUtils.isNotEmpty(type) && type == 1) {
+            //获取所有已填报信息
+            Map<String, Long> allTable = informationQueryClient.getTreeAllTable(contractId);
+            Set<String> keySet = allTable.keySet();
+            for (String key : keySet) {
+                for (WbsTreeContractTreeAllVO vo : wbsTreeContractVOS) {
+                    if (key.equals(vo.getId() + "")) {
+                        vo.setSubmitCounts(allTable.get(key));
+                    }
                 }
             }
+            wbsTreeContractVOS.stream().forEach(wtc -> {
+                if (wtc.getSubmitCounts() == null) {
+                    wtc.setSubmitCounts(0L);
+                }
+            });
         }
-        wbsTreeContractVOS.stream().forEach(wtc->{
-            if (wtc.getSubmitCounts() == null){
-                wtc.setSubmitCounts(0L);
+        return buildWbsTreeByStreamByTreeAll(wbsTreeContractVOS);
+    }
+
+    @Override
+    public Map<Long, List<WbsTreeContractTreeAllVO>> treeAllJL(String contractId, Integer type) {
+        //获取当前监理、指挥部合同段对应的施工权限
+        String sql = "select contract_id_sg from m_contract_relation_jlyz where contract_id_jlyz = " + contractId;
+        List<ContractRelationJlyz> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ContractRelationJlyz.class));
+
+        Map<Long, List<WbsTreeContractTreeAllVO>> result = new HashMap<>();
+
+        //查询施工树
+        for (ContractRelationJlyz sg : query) {
+            List<WbsTreeContractTreeAllVO> wbsTreeContractVOS = baseMapper.tree5(sg.getContractIdSg());
+            if (ObjectUtils.isNotEmpty(type) && type == 1) {
+                //获取所有已填报信息
+                Map<String, Long> allTable = informationQueryClient.getTreeAllTable(contractId);
+                Set<String> keySet = allTable.keySet();
+                for (String key : keySet) {
+                    for (WbsTreeContractTreeAllVO vo : wbsTreeContractVOS) {
+                        if (key.equals(vo.getId() + "")) {
+                            vo.setSubmitCounts(allTable.get(key));
+                        }
+                    }
+                }
+                wbsTreeContractVOS.stream().forEach(wtc -> {
+                    if (wtc.getSubmitCounts() == null) {
+                        wtc.setSubmitCounts(0L);
+                    }
+                });
             }
-        });
-        return buildWbsTreeByStream(wbsTreeContractVOS);
+            List<WbsTreeContractTreeAllVO> resultTreeSG = buildWbsTreeByStreamByTreeAll(wbsTreeContractVOS);
+            result.put(sg.getContractIdSg(), resultTreeSG);
+        }
+        return result;
     }
 
     @Override
     public List<WbsTreeContractVO6> tree6List(String wbsId, String projectId, String contractId) {
-        List<WbsTreeContractVO6> wbsTreeContractVOS = baseMapper.tree6(Long.parseLong(wbsId), Long.parseLong(projectId), Long.parseLong(contractId));
-        return wbsTreeContractVOS;
+        return baseMapper.tree6(Long.parseLong(wbsId), Long.parseLong(projectId), Long.parseLong(contractId));
     }
 
-
     @Override
     public List<WbsTreeContractVO> tree(String wbsId, String projectId, String contractId) {
         List<WbsTreeContractVO> wbsTreeContractVOS = baseMapper.tree2(Long.parseLong(wbsId), Long.parseLong(projectId), Long.parseLong(contractId), null, null, null);
@@ -171,10 +207,10 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
         return list;
     }
 
-    public List<WbsTreeContractVO6> buildWbsTreeByStream6(List<WbsTreeContractVO6> wbsTreeVO2s) {
-        List<WbsTreeContractVO6> list = wbsTreeVO2s.stream().filter(f -> f.getParentId() == 0L).collect(Collectors.toList());
-        Map<Long, List<WbsTreeContractVO6>> map = wbsTreeVO2s.stream().collect(Collectors.groupingBy(WbsTreeContractVO6::getParentId));
-        this.recursionFnTree6(list, map);
+    public List<WbsTreeContractTreeAllVO> buildWbsTreeByStreamByTreeAll(List<WbsTreeContractTreeAllVO> wbsTreeVO2s) {
+        List<WbsTreeContractTreeAllVO> list = wbsTreeVO2s.stream().filter(f -> f.getParentId() == 0L).collect(Collectors.toList());
+        Map<Long, List<WbsTreeContractTreeAllVO>> map = wbsTreeVO2s.stream().collect(Collectors.groupingBy(WbsTreeContractTreeAllVO::getParentId));
+        this.recursionFnTreeAll(list, map);
         return list;
     }
 
@@ -189,18 +225,17 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
         }
     }
 
-    public void recursionFnTree6(List<WbsTreeContractVO6> list, Map<Long, List<WbsTreeContractVO6>> map) {
-        for (WbsTreeContractVO6 wbsTreeContractVO6 : list) {
-            List<WbsTreeContractVO6> childrenList = map.get(wbsTreeContractVO6.getId());
-            wbsTreeContractVO6.setChildren(childrenList);
+    public void recursionFnTreeAll(List<WbsTreeContractTreeAllVO> list, Map<Long, List<WbsTreeContractTreeAllVO>> map) {
+        for (WbsTreeContractTreeAllVO wbsTreeContractVO : list) {
+            List<WbsTreeContractTreeAllVO> childrenList = map.get(wbsTreeContractVO.getId());
+            wbsTreeContractVO.setChildren(childrenList);
             if (childrenList != null && childrenList.size() > 0) {
-                wbsTreeContractVO6.setHasChildren(true);
-                recursionFnTree6(childrenList, map);
+                wbsTreeContractVO.setHasChildren(true);
+                recursionFnTreeAll(childrenList, map);
             }
         }
     }
 
-
     @Override
     public List<WbsTreeContractVO2> treeTwo(String projectId) {
         return wbsTreeContractMapper.selectListByCondition(projectId);

+ 0 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -1476,9 +1476,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                     jdbcTemplate.execute(delSql);
                 }
 
-                //新增
-                //textDictInfoService.insertBatch(insertData, 1000);
-
                 //异步新增
                 List<List<TextdictInfo>> partition1 = Lists.partition(insertData, 1000);
                 CompletableFuture<Void> handle = CompletableFuture.allOf(partition1.stream().map(addList ->