Browse Source

后台系统查询无内业资料的节点

lvy 3 tháng trước cách đây
mục cha
commit
70657e44af

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

@@ -532,6 +532,17 @@ public class WbsTreeController extends BladeController {
         return R.data(result);
     }
 
+    /**
+     * 根据节点类型,内业资料类型查询节点数据
+     */
+    @GetMapping("/getQueryValueByNodeType")
+    @ApiOperationSupport(order = 21)
+    @ApiOperation(value = "根据节点类型,内业资料类型查询节点数据", notes = "传入wbsId、projectId、nodeType、majorDataType")
+    public Object getQueryValueByNodeType(@RequestParam String wbsId, @RequestParam String projectId, @RequestParam(required = false,defaultValue = "6") Integer nodeType, @RequestParam(required = false, defaultValue = "-1") Integer majorDataType) {
+        Object result = wbsTreeService.getQueryValueByNodeType(wbsId, projectId, nodeType, majorDataType);
+        return R.data(result);
+    }
+
     @GetMapping("setContractIsPid")
     public void setContractIsPid(){
         //为合同段节点没有设置is_pid的字段设置isPid

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

@@ -82,4 +82,6 @@ public interface IWbsTreeService extends BaseService<WbsTree> {
     Object getQueryValueByType(String queryValue, String wbsId, String projectId, String type);
 
     List<WbsTreePrivate> getTitleRange(String projectId);
+
+    Object getQueryValueByNodeType(String wbsId, String projectId, Integer nodeType, Integer majorDataType);
 }

+ 27 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -1,6 +1,7 @@
 package org.springblade.manager.service.impl;
 
 import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -558,6 +559,32 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         return this.baseMapper.getTitleRange(Long.valueOf(projectId));
     }
 
+    @Override
+    public Object getQueryValueByNodeType(String wbsId, String projectId, 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));
+            }
+        }
+        List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(wrapper);
+        this.getParentNodesPrivateWbs(wbsTreePrivates, resultNodes, projectId, wbsId);
+        resultNodes.addAll(wbsTreePrivates);
+        List<WbsTreePrivateQueryValueVO> wbsTreePrivateQueryValueVOS = BeanUtil.copyProperties(resultNodes, WbsTreePrivateQueryValueVO.class);
+        if (wbsTreePrivateQueryValueVOS.size() > 0) {
+            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);
+            this.sortListPrivate(listRoot);
+            return listRoot;
+        }
+        return null;
+    }
+
     /**
      * 公有排序
      */