Jelajahi Sumber

项目、合同段wbsBUG

liuyc 3 tahun lalu
induk
melakukan
68e71d945f

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/excel/WbsExcelUtil.java

@@ -13,6 +13,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 public class WbsExcelUtil {
     /*public static void main(String[] args) throws IOException {

+ 49 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -49,25 +49,33 @@ public class WbsTreeContractServiceImpl
         String[] ids = wbsTreeIds.split(",");
         List<String> idList = Arrays.asList(ids);
         List<String> idList1 = idList.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
+
         //获取当前合同段wbs所有节点+表单
         List<WbsTreeContract> list = baseMapper.findAllNodeList2(pawDTO.getProjectId(), pawDTO.getContractId(), pawDTO.getWbsId());
+
         List<String> collect1 = new ArrayList<>(); //当前合同段所有节点+表单Id
         List<String> collect3 = new ArrayList<>(); //当前合同段所有节点下表单Id
         List<String> collect7 = new ArrayList<>(); //当前合同段所有节点Id
+
         if (list.size() > 0) {
             //所有节点+表单Id
             List<Long> collect = list.stream().map(WbsTreeContract::getId).collect(Collectors.toList());
             collect1 = collect.stream().map(String::valueOf).collect(Collectors.toList());
+
             //节点下所有表单Id
             List<WbsTreeContract> collect2 = list.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
             List<Long> collect4 = collect2.stream().map(WbsTreeContract::getId).collect(Collectors.toList());
             collect3 = collect4.stream().map(String::valueOf).collect(Collectors.toList());
+
             //所有节点
             List<WbsTreeContract> collect5 = list.stream().filter(f -> f.getType() == 1).collect(Collectors.toList());
             List<Long> collect6 = collect5.stream().map(WbsTreeContract::getId).collect(Collectors.toList());
             collect7 = collect6.stream().map(String::valueOf).collect(Collectors.toList());
+
         }
+
         List<String> diffRent = getDiffrent(idList1, collect7);
+
         //同步元素表
         if (diffRent.size() == 0) {
             //获取私有wbs树下所有元素表
@@ -76,33 +84,61 @@ public class WbsTreeContractServiceImpl
                     .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
                     .eq(WbsTreePrivate::getType, 2)
             );
+
             //私有wbs树下所有元素表的Id collect2
             List<Long> collect = wbsTreePrivateList.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
             List<String> collect2 = collect.stream().map(String::valueOf).collect(Collectors.toList());
             //获取所有wbsTreePrivate新增的表单Id
             List<String> diffRent1 = getDiffrent(collect2, collect3);
+
             if (collect2.size() > collect3.size()) {
                 //初始化
                 List<WbsTreeContract> wbsTreeContracts = new ArrayList<>();
                 wbsTreePrivateList.stream().forEach(wbsTreePrivate -> {
                     diffRent1.stream().forEach(id -> {
                         if (Long.parseLong(id) == (wbsTreePrivate.getId())) {
-                            WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO, null);
+                            WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO);
                             wbsTreeContracts.add(wbsTreeContract);
                         }
                     });
                 });
+
                 this.saveBatch(wbsTreeContracts, 10000);
+
             }
+
         } else {
             //新增
+
             if (idList1.size() > collect1.size()) {
                 List<WbsTreeContract> wbsTreeContractList = new ArrayList<>();
-                //获取wbs私有树下节点+表
+
+                List<List<WbsTreePrivate>> wbsTreePrivatesList = new ArrayList<>();
+
+                //获取wbs私有树下节点+表 diffRent=新增的节点id
+                diffRent.stream().forEach(id -> {
+                    List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectNodeAndTable(id, pawDTO.getWbsId(), pawDTO.getProjectId());
+                    wbsTreePrivatesList.add(wbsTreePrivates);
+                });
+
+                //初始化
+                wbsTreePrivatesList.stream().forEach(wbsTreePrivates -> {
+                    wbsTreePrivates.stream().forEach(wbsTreePrivate -> {
+                        WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO);
+                        wbsTreeContractList.add(wbsTreeContract);
+                    });
+                });
+
+
+                /**
+                 * 不清楚为什么之前要节点+表分开判断
+                 */
+                /*//获取wbs私有树下节点+表
                 List<WbsTreePrivate> wbsTreePrivateList = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
                         .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
                         .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
                 );
+
                 List<WbsTreePrivate> wbsTreePrivateListTable = wbsTreePrivateList.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
                 List<WbsTreePrivate> listTree = new ArrayList<>();
                 wbsTreePrivateList.stream().map(tree -> {
@@ -115,15 +151,17 @@ public class WbsTreeContractServiceImpl
                 }).collect(Collectors.toList());
                 //初始化
                 listTree.stream().forEach(wbsTreePrivate -> {
-                    WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO, null);
+                    WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO);
                     wbsTreeContractList.add(wbsTreeContract);
                 });
                 wbsTreePrivateListTable.stream().forEach(wbsTreePrivate -> {
-                    WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO, null);
+                    WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO);
                     wbsTreeContractList.add(wbsTreeContract);
-                });
+                });*/
+
                 //新增
                 this.saveBatch(wbsTreeContractList, 10000);
+
                 //初始化施工台账
                 wbsTreeContractList.stream().forEach(wbsTreeContract -> {
                     if (wbsTreeContract.getDeptCategory() == 6) {
@@ -136,16 +174,20 @@ public class WbsTreeContractServiceImpl
                         constructionLedgerFeign.initConstructionLedger(constructionLedger);
                     }
                 });
+
             } else {
                 //删除
+
                 List<Long> ids1 = diffRent.stream().map(Long::parseLong).collect(Collectors.toList());
                 baseMapper.deleteBatch(ids1, pawDTO.getWbsId(), pawDTO.getProjectId(), pawDTO.getContractId());
+
             }
         }
+
         return true;
     }
 
-    private WbsTreeContract getWbsTreePrivate(WbsTreePrivate wbsTree, WbsTreeContractDTO pawDTO, Integer wbsType) {
+    private WbsTreeContract getWbsTreePrivate(WbsTreePrivate wbsTree, WbsTreeContractDTO pawDTO) {
         WbsTreeContract wbsTreeContract = new WbsTreeContract();
         //数据初始化-施工合同
         Long snowId = SnowFlakeUtil.getId();
@@ -270,6 +312,6 @@ public class WbsTreeContractServiceImpl
 
     @Override
     public List<WbsTreeContract> searchParentAllNode(long primaryKeyId, Long contractId) {
-        return baseMapper.searchParentAllNode(primaryKeyId,contractId);
+        return baseMapper.searchParentAllNode(primaryKeyId, contractId);
     }
 }

+ 134 - 54
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -28,6 +28,7 @@ import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombi
 import org.apache.commons.lang.StringUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseEntity;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.BladeConstant;
@@ -48,6 +49,7 @@ import org.springblade.manager.service.IWbsFormElementService;
 import org.springblade.manager.service.IWbsTreeService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.manager.vo.*;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
@@ -479,7 +481,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             e.printStackTrace();
             return false;
         } finally {
-            //资源删除
             File file2 = new File(canonicalPath);
             if (file2.isFile() && file2.exists()) {
                 file2.delete();
@@ -562,7 +563,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             wbsTreeZi.setIsExpernode(0);
                         }
                         baseMapper.insert(wbsTreeZi);
-
                         break;
                     }
                 }
@@ -577,31 +577,44 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
     private boolean importExcel2(ArrayList<Map<String, String>> result, WbsTree wbsTreeFu, WbsTree wbsTree1) {
         //解析list-map
         List<WbsTree> allNodeData = new ArrayList<>();
-        result.stream().forEach(map -> {
-            map.forEach((nodeType, nodeName) -> {
-                if (StringUtils.isNotEmpty(nodeName)) {
+        for (Map<String, String> map : result) {
+            for (Map.Entry<String, String> maps : map.entrySet()) {
+                if (StringUtils.isNotEmpty(maps.getValue())) {
                     //初始化节点参数
                     WbsTree wbsTreeZi = new WbsTree();
                     wbsTreeZi.setId(SnowFlakeUtil.getId());
                     wbsTreeZi.setTenantId(AuthUtil.getTenantId());
-                    wbsTreeZi.setDeptName(nodeName);
-                    wbsTreeZi.setDeptCategory(Integer.valueOf(nodeType));
+                    wbsTreeZi.setDeptName(maps.getValue());
+                    wbsTreeZi.setDeptCategory(Integer.valueOf(maps.getKey()));
                     wbsTreeZi.setWbsId(wbsTreeFu.getWbsId());
-                    wbsTreeZi.setParentId(wbsTreeFu.getId());
+                    wbsTreeZi.setParentId(wbsTreeFu.getParentId());
                     wbsTreeZi.setAncestors(wbsTreeFu.getAncestors());
                     wbsTreeZi.setProjectNodeId(wbsTree1.getProjectNodeId());
 
                     //构建参数
-                    WbsTree wbsTree = buildTreeNode(wbsTreeZi, allNodeData);
+                    WbsTree wbsTree = buildTreeNode(wbsTreeZi, allNodeData, wbsTreeFu);
+
+                    if (wbsTree.getStatus() != null && wbsTree.getStatus() == 1) {
+                        //构建成功
+                        System.out.println("构建成功: === " + wbsTree);
+
+                        wbsTreeFu.setParentId(wbsTree.getId());
+                        wbsTreeFu.setAncestors(wbsTree.getAncestors());
+
+                        allNodeData.add(wbsTree);
+
 
-                    wbsTreeFu.setAncestors(wbsTree.getAncestors());
-                    wbsTreeFu.setId(wbsTree.getId());
+                    } else {
+                        //构建失败 相同节点参数跳过
+                        System.out.println("构建失败: === 遇到相同的跳过了");
+                        wbsTreeFu.setParentId(wbsTree.getId());
+                        wbsTreeFu.setAncestors(wbsTree.getAncestors());
 
-                    allNodeData.add(wbsTree);
+                    }
 
                 }
-            });
-        });
+            }
+        }
 
         boolean b = this.saveBatch(allNodeData, 10000);
 
@@ -611,63 +624,72 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
     }
 
-    private WbsTree buildTreeNode(WbsTree wbsTreeZi, List<WbsTree> allNodeData) {
-        //判断节点名称是否重复
+    private WbsTree buildTreeNode(WbsTree wbsTreeZi, List<WbsTree> allNodeData, WbsTree wbsTreeFu) {
         List<WbsTree> wbsTrees = null;
+        //判断节点名称是否重复
         if (allNodeData.size() > 0) {
-
             wbsTrees = allNodeData.stream().filter(f -> f.getWbsId().equals(wbsTreeZi.getWbsId()))
                     .filter(f -> f.getDeptName().equals(wbsTreeZi.getDeptName()))
                     .filter(f -> f.getDeptCategory().equals(wbsTreeZi.getDeptCategory()))
                     .filter(f -> f.getProjectNodeId().equals(wbsTreeZi.getProjectNodeId()))
                     .filter(f -> !f.getAncestors().equals(wbsTreeZi.getAncestors())
-
                     ).collect(Collectors.toList());
         }
 
-        wbsTreeZi.setStatus(1);
-        wbsTreeZi.setType(1);
-        wbsTreeZi.setMajorDataType(0);
-        if (wbsTreeZi.getDeptCategory() == 6) {
-            wbsTreeZi.setIsConcrete(0);
-            wbsTreeZi.setIsExpernode(0);
-        }
+        //不重复 直接新增
+        if (wbsTrees == null) {
+            System.out.println("方法执行到111111");
+
+            wbsTreeZi.setStatus(1);
+            wbsTreeZi.setType(1);
+            wbsTreeZi.setMajorDataType(0);
+            if (wbsTreeZi.getDeptCategory() == 6) {
+                wbsTreeZi.setIsConcrete(0);
+                wbsTreeZi.setIsExpernode(0);
+            }
+
+            StringBuilder stringBuffer = new StringBuilder();
+            StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
+            wbsTreeZi.setAncestors(wbsTreeZi.getAncestors() + appendStr);
+            System.out.println("wbsTreeZi 1 : " + wbsTreeZi);
 
-        StringBuilder stringBuffer = new StringBuilder();
-        StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
-        String ancestors = wbsTreeZi.getAncestors() + appendStr;
-        wbsTreeZi.setAncestors(ancestors);
+            return wbsTreeZi;
 
-        if (wbsTrees != null) { //重复-判断是否同级是否一样的,同级跳过,不同级新增
+        } else {
 
+            //重复 判断是否为同一父节点,相同父节点跳过,不同新增
             for (WbsTree tree : wbsTrees) {
                 //只判断2 3 4 5 6级节点类型的名称是否重复,可根据实际情况更改控制的层级
-                if (wbsTreeZi.getDeptCategory() == 2 || wbsTreeZi.getDeptCategory() == 3 || wbsTreeZi.getDeptCategory() == 4
-                        || wbsTreeZi.getDeptCategory() == 5 || wbsTreeZi.getDeptCategory() == 6) {
-                    if (!wbsTreeZi.getParentId().equals(tree.getParentId()) && wbsTreeZi.getDeptName().equals(tree.getDeptName())) {
-                        wbsTreeZi.setStatus(1);
-                        wbsTreeZi.setType(1);
-                        wbsTreeZi.setMajorDataType(0);
-                        if (wbsTreeZi.getDeptCategory() == 6) {
-                            wbsTreeZi.setIsConcrete(0);
-                            wbsTreeZi.setIsExpernode(0);
-                        }
+                /*if (wbsTreeZi.getDeptCategory() == 2 || wbsTreeZi.getDeptCategory() == 3 || wbsTreeZi.getDeptCategory() == 4
+                        || wbsTreeZi.getDeptCategory() == 5 || wbsTreeZi.getDeptCategory() == 6) {*/
+
+                System.out.println("存在的节点 " + tree.getDeptName() + " parentID " + tree.getParentId());
+                System.out.println("当前子节点 " + wbsTreeZi.getDeptName() + " parentID " + wbsTreeZi.getParentId());
 
-                        StringBuilder stringBuffer1 = new StringBuilder();
-                        StringBuilder appendStr1 = stringBuffer1.append(",").append(wbsTreeZi.getParentId());
-                        String ancestors1 = wbsTreeZi.getAncestors() + appendStr1;
-                        wbsTreeZi.setAncestors(ancestors1);
+                if (!wbsTreeZi.getParentId().equals(tree.getParentId()) && wbsTreeZi.getDeptName().equals(tree.getDeptName())) {
 
-                        return wbsTreeZi;
+                    System.out.println("方法执行到222222");
+                    wbsTreeZi.setStatus(1);
+                    wbsTreeZi.setType(1);
+                    wbsTreeZi.setMajorDataType(0);
+                    if (wbsTreeZi.getDeptCategory() == 6) {
+                        wbsTreeZi.setIsConcrete(0);
+                        wbsTreeZi.setIsExpernode(0);
                     }
-                } else {
 
-                    return tree;
+                    StringBuilder stringBuffer = new StringBuilder();
+                    StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
+                    wbsTreeZi.setAncestors(wbsTreeZi.getAncestors() + appendStr);
+                    System.out.println("wbsTreeZi 2 : " + wbsTreeZi);
+                    return wbsTreeZi;
+
                 }
+                //}
             }
-
         }
 
+        System.out.println("方法执行到333333");
+        System.out.println("wbsTreeZi 3 : " + wbsTreeZi);
         return wbsTreeZi;
 
     }
@@ -876,9 +898,36 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         //新增
         else {
             if (idList1.size() > idList2.size()) {
-                List<WbsTreePrivate> insertData = new ArrayList<>();  //数据初始化节点-引用公有
-                List<WbsTreePrivate> insertData2 = new ArrayList<>();  //数据初始化节点-引用私有
+
+                //数据初始化节点-引用公有
+                List<WbsTreePrivate> insertData = new ArrayList<>();
+                //数据初始化节点-引用私有
+                List<WbsTreePrivate> insertData2 = new ArrayList<>();
+
                 if (pawDTO.getReferenceType().equals("public")) {
+                    //引用公有
+
+                    //查询所有公共节点+表 diffRent=新增的节点id
+                    List<List<WbsTree>> addListData = new ArrayList<>();
+
+                    for (String id : diffRent) {
+                        List<WbsTree> treeAndTable = baseMapper.selectNodeAndTable(Long.valueOf(id));
+                        if (treeAndTable != null) {
+                            addListData.add(treeAndTable);
+                        }
+                    }
+
+                    addListData.stream().forEach(trees -> {
+                        trees.stream().forEach(tree -> {
+                            WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
+                            insertData.add(wbsTreePrivate2);
+                        });
+                    });
+
+                    /**
+                     * 不清楚为什么之前要节点+表分开判断
+                     */
+                    /*
                     //公有
                     //查询所有公共节点+表单
                     List<WbsTree> trees = baseMapper.selectList(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getWbsId, pawDTO.getWbsId()));
@@ -904,10 +953,32 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                         WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
                         insertData.add(wbsTreePrivate2);
                     });
+                    */
+
                 } else if (pawDTO.getReferenceType().equals("private")) {
-                    //私有
-                    //查询所有私有节点
-                    List<WbsTreePrivate> wbsTreePrivatesList = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
+                    //引用私有
+
+                    //查询所有私有节点+表 diffRent=新增的节点id
+                    List<List<WbsTreePrivate>> addListData = new ArrayList<>();
+
+                    diffRent.stream().forEach(id -> {
+                        List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectNodeAndTable(id, pawDTO.getWbsId(), pawDTO.getReferencePrivateWbsProjectId());
+                        if (wbsTreePrivates != null) {
+                            addListData.add(wbsTreePrivates);
+                        }
+                    });
+
+                    addListData.stream().forEach(trees -> {
+                        trees.stream().forEach(tree -> {
+                            WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(tree, pawDTO);
+                            insertData2.add(wbsTreePrivate2);
+                        });
+                    });
+
+                    /**
+                     * 不清楚为什么之前要节点+表分开判断
+                     */
+                   /* List<WbsTreePrivate> wbsTreePrivatesList = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
                             .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
                             .eq(WbsTreePrivate::getProjectId, pawDTO.getReferencePrivateWbsProjectId())
                     );
@@ -932,8 +1003,10 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     wbsTreePrivatesListTable.stream().forEach(wbsTreePrivate -> {
                         WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(wbsTreePrivate, pawDTO);
                         insertData2.add(wbsTreePrivate2);
-                    });
+                    });*/
+
                 }
+
                 if (pawDTO.getReferenceType().equals("public")) {
                     wbsTreePrivateService.saveBatch(insertData, 10000);
                     projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getWbsId(), "public");
@@ -941,7 +1014,9 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     wbsTreePrivateService.saveBatch(insertData2, 10000);
                     projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");
                 }
+
             }
+
             //删除节点 表单
             else {
                 if (pawDTO.getReferenceType().equals("public")) {
@@ -952,6 +1027,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             .eq(WbsTreeContract::getProjectId, pawDTO.getProjectId())
                             .eq(WbsTreeContract::getParentId, 0)
                     );
+
                     if (wbsTreeContract.size() > 0) {
                         List<ContractInfo> contractInfoArrayList = new ArrayList<>();
                         wbsTreeContract.stream().forEach(list -> {
@@ -966,6 +1042,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             throw new ServiceException(StringUtil.format("当前项目wbs树已被合同段 {} 引用中,请先取消合同段关联后再删除", join));
                         }
                     }
+
                     baseMapper.deleteBatch(ids1, pawDTO.getWbsId(), pawDTO.getProjectId());
                     baseMapper.deleteBatch2(ids1, pawDTO.getWbsId(), pawDTO.getProjectId());
 
@@ -977,6 +1054,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             .eq(WbsTreeContract::getProjectId, pawDTO.getProjectId())
                             .eq(WbsTreeContract::getParentId, 0)
                     );
+
                     if (wbsTreeContract.size() > 0) {
                         List<ContractInfo> contractInfoArrayList = new ArrayList<>();
                         wbsTreeContract.stream().forEach(list -> {
@@ -991,8 +1069,10 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             throw new ServiceException(StringUtil.format("当前项目wbs树已被合同段 {} 引用中,请先取消合同段关联后再删除", join));
                         }
                     }
+
                     baseMapper.deleteBatch(ids2, pawDTO.getPrimaryKeyId(), pawDTO.getProjectId());
                     baseMapper.deleteBatch2(ids2, pawDTO.getPrimaryKeyId(), pawDTO.getProjectId());
+
                 }
             }
         }