Sfoglia il codice sorgente

客户端复制、新增节点后元素表同步问题

liuyc 3 anni fa
parent
commit
a2b2534835

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

@@ -103,7 +103,6 @@ public class WbsTreeContractServiceImpl
                 });
             });
 
-
             //私有wbs树下所有元素表的Id collect2
             List<Long> collect = wbsTreePrivateList2.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
             List<String> collect2 = collect.stream().map(String::valueOf).collect(Collectors.toList());
@@ -264,11 +263,40 @@ public class WbsTreeContractServiceImpl
                         if (Long.parseLong(id) == (wbsTreePrivate.getId())) {
                             WbsTreeContract wbsTreeContract = getWbsTreeContract(wbsTreePrivate, pawDTO);
                             wbsTreeContracts.add(wbsTreeContract);
+
+                            /*//获取当前新增表单的上级父节点
+                            WbsTreeContract wbsTreeContracts1 = baseMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda()
+                                    .eq(WbsTreeContract::getId, wbsTreeContract.getParentId())
+                                    .eq(WbsTreeContract::getContractId, pawDTO.getContractId())
+                                    .eq(WbsTreeContract::getProjectId, pawDTO.getProjectId())
+                                    .eq(WbsTreeContract::getWbsId, pawDTO.getWbsId())
+                                    .eq(WbsTreeContract::getType, 1)
+                            );
+                            if (wbsTreeContracts1 != null) {
+                                //获取上级父级节点同级别的复制或新增节点
+                                List<WbsTreeContract> wbsTreeContracts2 = baseMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
+                                        .eq(WbsTreeContract::getOldId, wbsTreeContracts1.getId())
+                                        .eq(WbsTreeContract::getContractId, pawDTO.getContractId())
+                                        .eq(WbsTreeContract::getProjectId, pawDTO.getProjectId())
+                                        .eq(WbsTreeContract::getWbsId, pawDTO.getWbsId())
+                                        .eq(WbsTreeContract::getType, 1)
+                                );
+                                if (wbsTreeContracts2.size() > 0) {
+                                    //将表单同步到复制或新增的节点下
+                                    for (WbsTreeContract treeContract : wbsTreeContracts2) {
+                                        wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
+                                        wbsTreeContract.setParentId(treeContract.getId());
+                                        wbsTreeContracts.add(wbsTreeContract);
+                                    }
+                                }
+                            }*/
+
                         }
                     });
                 });
 
                 this.saveBatch(wbsTreeContracts, 10000);
+
             }
 
         } else {

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

@@ -1178,6 +1178,35 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                 );
                                 if (wbsTreeContract1 != null) {
                                     wbsTreeContractMapper.insert(wbsTreeContract);
+
+                                    //新增同步到对应的复制或新增的父级节点下
+                                    //获取当前新增表单的上级父节点
+                                    WbsTreeContract wbsTreeContracts1 = wbsTreeContractMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda()
+                                            .eq(WbsTreeContract::getId, wbsTreeContract.getParentId())
+                                            .eq(WbsTreeContract::getContractId, contractInfoId.getId())
+                                            .eq(WbsTreeContract::getProjectId, pawDTO.getProjectId())
+                                            .eq(WbsTreeContract::getWbsId, pawDTO.getWbsId())
+                                            .eq(WbsTreeContract::getType, 1)
+                                    );
+                                    if (wbsTreeContracts1 != null) {
+                                        //获取上级父级节点同级别的复制或新增节点
+                                        List<WbsTreeContract> wbsTreeContracts2 = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
+                                                .eq(WbsTreeContract::getOldId, wbsTreeContracts1.getId())
+                                                .eq(WbsTreeContract::getContractId, contractInfoId.getId())
+                                                .eq(WbsTreeContract::getProjectId, pawDTO.getProjectId())
+                                                .eq(WbsTreeContract::getWbsId, pawDTO.getWbsId())
+                                                .eq(WbsTreeContract::getType, 1)
+                                        );
+                                        if (wbsTreeContracts2.size() > 0) {
+                                            //将表单同步到复制或新增的节点下
+                                            for (WbsTreeContract treeContract : wbsTreeContracts2) {
+                                                wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
+                                                wbsTreeContract.setParentId(treeContract.getId());
+                                                wbsTreeContractMapper.insert(wbsTreeContract);
+                                            }
+                                        }
+                                    }
+
                                 }
                             }
 
@@ -1257,6 +1286,35 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                 );
                                 if (wbsTreeContract1 != null) {
                                     wbsTreeContractMapper.insert(wbsTreeContract);
+
+                                    //新增同步到对应的复制或新增的父级节点下
+                                    //获取当前新增表单的上级父节点
+                                    WbsTreeContract wbsTreeContracts1 = wbsTreeContractMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda()
+                                            .eq(WbsTreeContract::getId, wbsTreeContract.getParentId())
+                                            .eq(WbsTreeContract::getContractId, contractInfoId.getId())
+                                            .eq(WbsTreeContract::getProjectId, pawDTO.getProjectId())
+                                            .eq(WbsTreeContract::getWbsId, pawDTO.getPrimaryKeyId())
+                                            .eq(WbsTreeContract::getType, 1)
+                                    );
+                                    if (wbsTreeContracts1 != null) {
+                                        //获取上级父级节点同级别的复制或新增节点
+                                        List<WbsTreeContract> wbsTreeContracts2 = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
+                                                .eq(WbsTreeContract::getOldId, wbsTreeContracts1.getId())
+                                                .eq(WbsTreeContract::getContractId, contractInfoId.getId())
+                                                .eq(WbsTreeContract::getProjectId, pawDTO.getProjectId())
+                                                .eq(WbsTreeContract::getWbsId, pawDTO.getPrimaryKeyId())
+                                                .eq(WbsTreeContract::getType, 1)
+                                        );
+                                        if (wbsTreeContracts2.size() > 0) {
+                                            //将表单同步到复制或新增的节点下
+                                            for (WbsTreeContract treeContract : wbsTreeContracts2) {
+                                                wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
+                                                wbsTreeContract.setParentId(treeContract.getId());
+                                                wbsTreeContractMapper.insert(wbsTreeContract);
+                                            }
+                                        }
+                                    }
+
                                 }
                             }
                         });