浏览代码

后管项目wbs优化

lvy 1 月之前
父节点
当前提交
49d824c85c

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO.java

@@ -6,6 +6,8 @@ import lombok.Data;
 import org.springblade.core.tool.node.BaseNode;
 import org.springblade.core.tool.node.TreeNode;
 
+import java.util.Date;
+
 @Data
 public class TreeNodeVO extends BaseNode<TreeNode> {
     private static final long serialVersionUID = 1L;
@@ -55,6 +57,10 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
 
     private String erTreeId;
 
+    private Long updateUser;
+    private Date updateTime;
+    private String updateUserName;
+
     public TreeNodeVO() {
     }
 

+ 36 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreePrivateQueryVO.java

@@ -0,0 +1,36 @@
+package org.springblade.manager.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class WbsTreePrivateQueryVO {
+
+    @ApiModelProperty(value = "wbs Id", required = true)
+    @NotBlank(message = "wbsId不能为空")
+    private String wbsId;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotBlank(message = "projectId不能为空")
+    private String projectId;
+
+    @ApiModelProperty("搜索内容")
+    private String queryValue;
+
+    @ApiModelProperty("节点类型")
+    private Integer nodeType;
+
+    @ApiModelProperty("内业资料类型")
+    private Integer majorDataType;
+
+    @ApiModelProperty("标准分类")
+    private Integer className;
+
+    @ApiModelProperty(value = "单元名称")
+    private Integer unitName;
+
+    @ApiModelProperty(value = "是否在客户端新增时隐藏,0否1是")
+    private Integer isAddConceal;
+}

+ 10 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ContractInfoController.java

@@ -107,12 +107,18 @@ public class ContractInfoController extends BladeController {
         List<ContractInfo> contractInfoVOS = contractInfoService.selectContractInfoPageByPid(pid);
         List<ContractInfoVO> resultAll = new ArrayList<>();
         String contractIds = contractInfoVOS.stream().filter(contractInfo -> contractInfo.getContractType().equals(4)).map(contractInfo -> contractInfo.getId() + "").collect(Collectors.joining(","));
-        List<MeterContractInfo> meterContractInfoList = jdbcTemplate.query("SELECT * FROM s_meter_contract_info WHERE contract_id in ( " + contractIds + ")", new BeanPropertyRowMapper<>(MeterContractInfo.class));
+        Map<Long, List<MeterContractInfo>> collect = new HashMap<>();
+        if (StringUtils.isNotBlank(contractIds)) {
+            List<MeterContractInfo> meterContractInfoList = jdbcTemplate.query("SELECT * FROM s_meter_contract_info WHERE contract_id in ( " + contractIds + ")", new BeanPropertyRowMapper<>(MeterContractInfo.class));
+            collect = meterContractInfoList.stream().collect(Collectors.groupingBy(MeterContractInfo::getContractId));
+        }
         String ids = contractInfoVOS.stream().map(contractInfo -> contractInfo.getId() + "").collect(Collectors.joining(","));
-        List<ContractRelationJlyz> query = jdbcTemplate.query("select * from  m_contract_relation_jlyz where contract_id_jlyz in ( " + ids + ")", new BeanPropertyRowMapper<>(ContractRelationJlyz.class));
-        Map<Long, List<ContractRelationJlyz>> relationMap = query.stream().collect(Collectors.groupingBy(ContractRelationJlyz::getContractIdJlyz));
+        Map<Long, List<ContractRelationJlyz>> relationMap = new HashMap<>();
+        if (StringUtils.isNotBlank(ids)) {
+            List<ContractRelationJlyz> query = jdbcTemplate.query("select * from  m_contract_relation_jlyz where contract_id_jlyz in ( " + ids + ")", new BeanPropertyRowMapper<>(ContractRelationJlyz.class));
+            relationMap = query.stream().collect(Collectors.groupingBy(ContractRelationJlyz::getContractIdJlyz));
+        }
         Map<Long, ContractInfo> contractInfoMap = contractInfoVOS.stream().collect(Collectors.toMap(ContractInfo::getId, vo -> vo));
-        Map<Long, List<MeterContractInfo>> collect = meterContractInfoList.stream().collect(Collectors.groupingBy(MeterContractInfo::getContractId));
         for (ContractInfo contractInfo : contractInfoVOS) {
             ContractInfoVO vo = new ContractInfoVO();
             BeanUtil.copyProperties(contractInfo, vo);

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

@@ -538,8 +538,8 @@ public class WbsTreeController extends BladeController {
     @GetMapping("/getQueryValueByNodeType")
     @ApiOperationSupport(order = 21)
     @ApiOperation(value = "根据节点类型,内业资料类型查询节点数据", notes = "传入wbsId、projectId、nodeType、majorDataType")
-    public Object getQueryValueByNodeType(@RequestParam String wbsId, @RequestParam String projectId, @RequestParam String queryValue, @RequestParam(required = false,defaultValue = "6") Integer nodeType, @RequestParam(required = false, defaultValue = "-1") Integer majorDataType) {
-        Object result = wbsTreeService.getQueryValueByNodeType(wbsId, projectId, queryValue, nodeType, majorDataType);
+    public Object getQueryValueByNodeType(@RequestParam WbsTreePrivateQueryVO vo) {
+        Object result = wbsTreeService.getQueryValueByNodeType(vo);
         return R.data(result);
     }
 

+ 29 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -31,6 +31,7 @@ import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.*;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.wrapper.WbsTreePrivateWrapper;
+import org.springblade.system.cache.DictCache;
 import org.springframework.beans.BeanUtils;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -386,6 +387,34 @@ public class WbsTreePrivateController extends BladeController {
         return R.fail(200, "未查询到数据");
     }
 
+    /**
+     * 查询当前节点下所有表单(根据节点ID查询当前表单)
+     */
+    @GetMapping("/get-group-node-tables")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "查询当前节点下所有元素表并分类", notes = "传入父节点id、wbsId、projectId")
+    public R<Map<String, List<WbsNodeTableVO>>> findAndGroupNodeTableByCondition(@RequestParam("parentId") String parentId,
+                                                            @RequestParam("wbsId") String wbsId,
+                                                            @RequestParam("projectId") String projectId) {
+        R<List<WbsNodeTableVO>> r = findNodeTableByCondition(parentId, wbsId, projectId);
+        List<WbsNodeTableVO> data = r.getData();
+        if (data != null && !data.isEmpty()) {
+            Map<String, List<WbsNodeTableVO>> groupMap = data.stream().collect(Collectors.groupingBy(vo -> {
+                String tableOwner = vo.getTableOwner();
+                if (StringUtil.isNumeric(tableOwner)) {
+                    int i = Integer.parseInt(tableOwner);
+                    if (i > 0 && i <= 3) {
+                        return "施工方";
+                    } else if (i > 3 && i <= 6) {
+                        return "监理方";
+                    }
+                }
+                return "其他";
+            }));
+            return R.data(groupMap);
+        }
+        return R.fail(200, "未查询到数据");
+    }
 
     @GetMapping("/remove-table")
     @ApiOperationSupport(order = 4)

+ 4 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -377,7 +377,10 @@
                 m_wbs_tree_private
                 WHERE
                 parent_id = d.id and is_deleted = 0 and type != 2
-            ) AS "has_children"
+            ) AS "has_children",
+            d.update_time AS "updateTime",
+            d.update_user AS "updateUser",
+            (select name from blade_user where id = d.update_user) AS "updateUserName"
         FROM
             m_wbs_tree_private d
         WHERE

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeService.java

@@ -80,5 +80,5 @@ public interface IWbsTreeService extends BaseService<WbsTree> {
 
     List<WbsTreePrivate> getTitleRange(String projectId);
 
-    Object getQueryValueByNodeType(String wbsId, String projectId, String queryValue, Integer nodeType, Integer majorDataType);
+    Object getQueryValueByNodeType(WbsTreePrivateQueryVO vo);
 }

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

@@ -437,21 +437,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         for (WbsTreePrivateDTO2 wbsTreePrivate : wbsTreeDTO) {
             wbsTreePrivate.setSort(number);
             baseMapper.updateSortById2(wbsTreePrivate.getPKeyId(), wbsTreePrivate.getSort());
-
-            WbsTreePrivate objPrivate = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getPKeyId()));
-            if (objPrivate != null) {
-                String projectId = objPrivate.getProjectId();
-                String wbsId = objPrivate.getWbsId();
-                Long id = objPrivate.getId();
-
-//                //合同段wbs树同步排序
-//                LambdaUpdateWrapper<WbsTreeContract> updateWrapper = new LambdaUpdateWrapper<>();
-//                updateWrapper.eq(WbsTreeContract::getWbsId, wbsId);
-//                updateWrapper.eq(WbsTreeContract::getProjectId, projectId);
-//                updateWrapper.eq(WbsTreeContract::getId, id);
-//                updateWrapper.set(WbsTreeContract::getSort, number);
-//                wbsTreeContractMapper.update(null, updateWrapper);
-            }
             number++;
         }
         return true;

+ 15 - 14
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -557,25 +557,26 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
     }
 
     @Override
-    public Object getQueryValueByNodeType(String wbsId, String projectId, String queryValue, Integer nodeType, Integer majorDataType) {
-        Set<WbsTreePrivate> resultNodes = new HashSet<>();
-        LambdaQueryWrapper<WbsTreePrivate> wrapper = Wrappers.<WbsTreePrivate>lambdaQuery()
-                .eq(WbsTreePrivate::getType, 1).eq(WbsTreePrivate::getWbsId, wbsId).eq(WbsTreePrivate::getProjectId, projectId).eq(WbsTreePrivate::getNodeType, nodeType);
-        if (majorDataType != null) {
-            if (majorDataType > 0) {
-                wrapper.eq(WbsTreePrivate::getMajorDataType, majorDataType);
-            } else if (majorDataType == -1) {
-                wrapper.and(wrapper1 -> wrapper1.isNull(WbsTreePrivate::getMajorDataType).or().eq(WbsTreePrivate::getMajorDataType, 0));
+    public Object getQueryValueByNodeType(WbsTreePrivateQueryVO vo) {
+        LambdaQueryWrapper<WbsTreePrivate> wrapper = Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getType, 1).eq(WbsTreePrivate::getWbsId, vo.getWbsId()).eq(WbsTreePrivate::getProjectId, vo.getProjectId());
+        wrapper.eq(vo.getNodeType() != null, WbsTreePrivate::getNodeType, vo.getNodeType());
+        wrapper.eq(vo.getIsAddConceal() != null, WbsTreePrivate::getIsAddConceal, vo.getIsAddConceal());
+        wrapper.eq(vo.getClassName() != null, WbsTreePrivate::getClassName, vo.getClassName());
+        wrapper.eq(vo.getUnitName() != null, WbsTreePrivate::getUnitName, vo.getUnitName());
+        wrapper.like(vo.getQueryValue() != null && !vo.getQueryValue().isEmpty() ,WbsTreePrivate::getNodeName, vo.getQueryValue());
+        if (vo.getMajorDataType() != null) {
+            if (vo.getMajorDataType() > 0) {
+                wrapper.eq(WbsTreePrivate::getMajorDataType, vo.getMajorDataType());
+            } else if (vo.getMajorDataType() == -1) {
+                wrapper.and( wrapper1 -> wrapper1.isNull(WbsTreePrivate::getMajorDataType).or().eq(WbsTreePrivate::getMajorDataType, 0));
             }
         }
-        if (queryValue != null && !queryValue.trim().isEmpty()) {
-            wrapper.like(WbsTreePrivate::getNodeName, queryValue);
-        }
         List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(wrapper);
-        this.getParentNodesPrivateWbs(wbsTreePrivates, resultNodes, projectId, wbsId);
+        Set<WbsTreePrivate> resultNodes = new HashSet<>();
+        this.getParentNodesPrivateWbs(wbsTreePrivates, resultNodes, vo.getProjectId(), vo.getWbsId());
         resultNodes.addAll(wbsTreePrivates);
         List<WbsTreePrivateQueryValueVO> wbsTreePrivateQueryValueVOS = BeanUtil.copyProperties(resultNodes, WbsTreePrivateQueryValueVO.class);
-        if (wbsTreePrivateQueryValueVOS.size() > 0) {
+        if (!wbsTreePrivateQueryValueVOS.isEmpty()) {
             List<WbsTreePrivateQueryValueVO> listRoot = wbsTreePrivateQueryValueVOS.stream().filter(f -> f.getParentId() == 0L).collect(Collectors.toList());
             Map<Long, List<WbsTreePrivateQueryValueVO>> mapAll = wbsTreePrivateQueryValueVOS.stream().collect(Collectors.groupingBy(WbsTreePrivateQueryValueVO::getParentId));
             this.buildWbsTreePrivateByGetQueryValueByType(listRoot, mapAll);