Преглед изворни кода

后台系统查询无内业资料的节点,新增名称搜索

lvy пре 1 месец
родитељ
комит
068c952348

+ 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 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);
+        return R.data(result);
+    }
+
     @GetMapping("setContractIsPid")
     public void setContractIsPid(){
         //为合同段节点没有设置is_pid的字段设置isPid

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

@@ -6,12 +6,9 @@ import org.springblade.core.tool.api.R;
 import org.springblade.manager.dto.FormElementDTO;
 import org.springblade.manager.dto.WbsTreeContractDTO;
 import org.springblade.manager.dto.WbsTreeDTO2;
-import org.springblade.manager.entity.TableInfo;
-import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.vo.*;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -82,4 +79,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, String queryValue, Integer nodeType, Integer majorDataType);
 }

+ 29 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -5,9 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.common.collect.Lists;
-import jodd.util.ArraysUtil;
 import lombok.AllArgsConstructor;
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.common.utils.FileUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
@@ -41,7 +39,6 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.File;
 import java.io.IOException;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
@@ -558,6 +555,35 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         return this.baseMapper.getTitleRange(Long.valueOf(projectId));
     }
 
+    @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));
+            }
+        }
+        if (queryValue != null && !queryValue.trim().isEmpty()) {
+            wrapper.like(WbsTreePrivate::getNodeName, queryValue);
+        }
+        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;
+    }
+
     /**
      * 公有排序
      */