Răsfoiți Sursa

Merge branch 'feature-lihb-bug' of http://219.151.181.73:3000/zhuwei/bladex into test-merge-02

# Conflicts:
#	blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.java
LHB 3 luni în urmă
părinte
comite
31e74e38a2

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java

@@ -202,4 +202,7 @@ public interface WbsTreeContractClient {
 
     @GetMapping(API_PREFIX + "/get-ekey")
     EKeyDto getEKey(@RequestParam String contractId, @RequestParam Long pKeyId, @RequestParam String wbsId);
+
+    @GetMapping(API_PREFIX + "/findIsExistTreeNode")
+    Integer findIsExistTreeNode(List<String> processNodeList);
 }

+ 19 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/RecycleBinController.java

@@ -3,6 +3,7 @@ package org.springblade.business.controller;
 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.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -63,7 +64,7 @@ public class RecycleBinController extends BladeController {
         if (vo.getRegainIds() != null && vo.getRegainIds().size() > 0) {
             //获取数据
             List<Long> longs = vo.getRegainIds().stream().map(i -> i.getId()).collect(Collectors.toList());
-            List<RecycleBin> recycleBinList = this.recycleBinService.list(Wrappers.<RecycleBin>lambdaQuery().in(RecycleBin::getId, longs));
+            List<RecycleBin> recycleBinList = this.recycleBinService.list(Wrappers.<RecycleBin>lambdaQuery().eq(RecycleBin::getStatus,1).in(RecycleBin::getId, longs));
             //恢复数据成功后删除回收站对应记录
             List<String> recycleBinIds = new ArrayList<>();
             //划分数据类型
@@ -71,10 +72,26 @@ public class RecycleBinController extends BladeController {
             List<RecycleBin> nodeTypeList = recycleBinList.stream().filter(recycleBin -> new Integer("2").equals(recycleBin.getDelType())).distinct().collect(Collectors.toList());
             boolean regainNode = false, regainFile = false;
             if (nodeTypeList.size() > 0) {
+                List<RecycleBin> errorList = new ArrayList<>();
+                //筛选出项目级存在的节点
+                for (RecycleBin recycleBin : nodeTypeList) {
+                    //当前是否有节点在项目级被删除了  如果是标记当前节点不可用
+                    Integer count = this.wbsTreeContractClient.findIsExistTreeNode(Arrays.asList(recycleBin.getBusinessId().split(",")));
+                    if (count > 0){
+                        recycleBin.setStatus(2);
+                        errorList.add(recycleBin);
+                    }
+                }
+                if(CollectionUtils.isNotEmpty(errorList)){
+                    recycleBinService.updateBatchById(errorList);
+                    nodeTypeList.removeAll(errorList);
+                }
+
                 //恢复集合
                 List<String> processNodeList = new ArrayList<>();
                 this.foreachQueryData(nodeTypeList, recycleBinIds, processNodeList);
                 try {
+
                     //恢复数据
                     if (processNodeList.size() > 0) {
                         regainNode = this.wbsTreeContractClient.regainRemoveTreeByPrimaryKeyIds(processNodeList);
@@ -123,7 +140,7 @@ public class RecycleBinController extends BladeController {
 
     private void foreachQueryData(List<RecycleBin> recycleList, List<String> recycleBinIds, List<String> result) {
         for (RecycleBin recycleBin : recycleList) {
-            if (StringUtils.isNotEmpty(recycleBin.getBusinessId())) {
+            if (StringUtils.isNotEmpty(recycleBin.getBusinessId()) && recycleBin.getStatus() == 1) {
                 if (recycleBin.getBusinessId().contains(",")) {
                     result.addAll(new ArrayList<>(Arrays.asList(recycleBin.getBusinessId().split(","))));
                 } else {

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -491,5 +491,10 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
         return wbsTreeContractService.getEKey(contractId,pKeyId,wbsId);
     }
 
+    @Override
+    public Integer findIsExistTreeNode(List<String> ids) {
+        return wbsTreeContractService.findIsExistTreeNode(ids);
+    }
+
 
 }

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

@@ -155,4 +155,6 @@ public interface WbsTreeContractMapper extends EasyBaseMapper<WbsTreeContract> {
      * @param resourceData
      */
     void updateSortBatchByPKeyId(List<WbsTreeContract> resourceData);
+
+    Integer findIsExistTreeNode(List<String> ids);
 }

+ 9 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -967,5 +967,14 @@
           AND wtc.wbs_id = #{wbsId}
           AND wtc.is_deleted = 0;
     </select>
+    <select id="findIsExistTreeNode" resultType="java.lang.Integer">
+        SELECT count(0) FROM `m_wbs_tree_contract` a
+        left join m_wbs_tree_private b on a.is_type_private_pid = b.p_key_id
+        where a.p_key_id in
+          <foreach collection="list" item="item" open="(" close=")" separator=",">
+              #{item}
+          </foreach>
+        and (b.p_key_id is null or b.is_deleted = 1)
+    </select>
 
 </mapper>

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

@@ -88,4 +88,6 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
     List<WbsTreeContract> getNodeTyp6(Long pKeyId);
 
     EKeyDto getEKey(String contractId, Long pKeyId, String wbsId);
+
+    Integer findIsExistTreeNode(List<String> ids);
 }

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -3093,6 +3093,12 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         return baseMapper.getEKey(contractId,pKeyId,wbsId);
     }
 
+
+    @Override
+    public Integer findIsExistTreeNode(List<String> ids) {
+        return baseMapper.findIsExistTreeNode(ids);
+    }
+
     /**
      * 展开所有合并单元格并将值填充到每个单元格
      * @param sheet Excel工作表