Przeglądaj źródła

回收站删除位置优化,恢复优化

lvy 5 dni temu
rodzic
commit
a4253666da

+ 10 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/RecycleBinController.java

@@ -30,8 +30,11 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.WbsTreeContractClient;
 import org.springblade.system.user.vo.UserVO2;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.business.entity.RecycleBin;
@@ -67,6 +70,7 @@ public class RecycleBinController extends BladeController {
     private final WbsTreeContractStatisticsClientImpl wbsTreeContractStatisticsClient;
     private final IRecycleBinInfoService recycleBinInfoService;
     private final BladeRedis bladeRedis;
+    private final JdbcTemplate jdbcTemplate;
 
     /**
      * 恢复
@@ -247,6 +251,12 @@ public class RecycleBinController extends BladeController {
                     }
                     processNodeList = recycleBinInfoList.stream().map(item -> item.getDelId() + "").collect(Collectors.toList());
                     regainNode = this.wbsTreeContractClient.regainRemoveTreeByPrimaryKeyIds(processNodeList);
+                    List<WbsTreeContract> query = jdbcTemplate.query("SELECT p_key_id  FROM m_wbs_tree_contract a WHERE  ( SELECT count(1) FROM m_wbs_tree_contract WHERE contract_id = a.contract_id and type = 1 AND p_id = a.p_id AND full_name = a.full_name AND p_key_id != a.p_key_id AND is_deleted = 0 ) > 0 " +
+                            "AND is_deleted = 0 and a.p_key_id in ( " + String.join(",", processNodeList) + ")", new BeanPropertyRowMapper<>(WbsTreeContract.class));
+                    if (!query.isEmpty()) {
+                        String collect1 = query.stream().map(item -> item.getPKeyId() + "").collect(Collectors.joining(","));
+                        jdbcTemplate.execute("update m_wbs_tree_contract set full_name = CONCAT( full_name, '(恢)' ) where p_key_id in (" + collect1 + ")");
+                    }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }

+ 1 - 12
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -151,18 +151,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 
     @Override
     public Boolean regainRemoveTreeByPrimaryKeyIds(List<String> primaryKeyIds) {
-        // 恢复时如果底层节点名称相同就加上 `(恢)`
-        Boolean bool = this.baseMapper.regainRemoveTreeByPrimaryKeyIds(primaryKeyIds);
-        List<WbsTreeContract> list = this.list(Wrappers.<WbsTreeContract>lambdaQuery().in(WbsTreeContract::getPKeyId, primaryKeyIds));
-        if (list != null && !list.isEmpty()) {
-            list.forEach(item -> {
-                String nodeName = item.getNodeName();
-                if (nodeName.contains("(恢复)")) {
-                    item.setNodeName(nodeName.replace("(恢复)", ""));
-                }
-            });
-        }
-        return bool;
+        return this.baseMapper.regainRemoveTreeByPrimaryKeyIds(primaryKeyIds);
     }
 
     @Override