Преглед на файлове

Merge branch 'test-merge' of http://219.151.181.73:3000/zhuwei/bladex into test-merge

lvy преди 3 дни
родител
ревизия
27494ecb0a

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

@@ -1890,6 +1890,12 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 /*把主表的表头表尾信息拷贝*/
                 headerFooterSub(subTableFds, tec);
                 /*如果识别到手填内容需要在附表写入数据后,更新评定关联数据*/
+            }else {
+                List<NodeTable> subTabList = tec.getTableAll().stream().filter(e -> e.getNodeName().contains("附表") && (e.getTableType() == 1 || e.getTableType() == 5)).collect(Collectors.toList());
+                if(!subTabList.isEmpty()){
+                    List<Long> removeIds=subTabList.stream().map(e->e.getPKeyId()).collect(Collectors.toList());
+                    this.wbsTreeContractMapper.deleteByIds(removeIds);
+                }
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 22 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -3217,6 +3217,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean copyNode(List<String> leftIds, List<String> rightIds) {
         List<WbsTreePrivate> leftLists = baseMapper.selectAllChildNode(leftIds);
         for (String rightId : rightIds) {
@@ -3230,7 +3231,27 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                     })
                     .collect(Collectors.toList());
             WbsTreePrivate rightWbsTreePrivate = baseMapper.getByPKeyId(Long.parseLong(rightId));
-
+            Integer rightNodeType = rightWbsTreePrivate.getNodeType();
+            if (rightNodeType == 1) {
+                rightNodeType=1;
+            }else if(rightNodeType==18){
+                rightNodeType=2;
+            }else {
+                rightNodeType=rightNodeType++;
+            }
+            for (WbsTreePrivate leftList : leftLists) {
+                Integer leftType=leftList.getNodeType();
+                if(leftType==1){
+                    leftType=1;
+                }else if(leftType==18){
+                    leftType=2;
+                }else {
+                    leftType=leftType++;
+                }
+                if(leftType<=rightNodeType){
+                    throw new ServiceException(leftList.getNodeName()+"不能复制到"+rightWbsTreePrivate.getNodeName()+",原因节点类型不能复制");
+                }
+            }
             // 找到leftLists中所有的根节点(没有在leftLists中作为子节点出现的节点)
             Set<Long> allPIds = workingList.stream()
                     .map(WbsTreePrivate::getPId)

+ 23 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -622,7 +622,29 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
             // 获取目标父节点信息
             WbsTree wbsTree = baseMapper.selectById(rightId);
-
+               Integer rightNodeType=wbsTree.getNodeType();
+            if (rightNodeType == 1) {
+                rightNodeType=1;
+            }else if(rightNodeType==18){
+                rightNodeType=2;
+            }else {
+                rightNodeType=rightNodeType++;
+            }
+            Set<Integer> typeSet = leftLists.stream().filter(o -> o.getType()==1).map(o -> o.getNodeType()).collect(Collectors.toSet());
+            for (Integer type : typeSet) {
+                Integer leftType;
+                if(type==1){
+                    leftType=1;
+                }else if(type==18){
+                    leftType=2;
+                }else {
+                    leftType=type+1;
+                }
+                if(leftType<=rightNodeType){
+                    WbsTree leftList = leftLists.stream().filter(f -> f.getNodeType().equals(type)).findFirst().get();
+                    throw new ServiceException("【"+leftList.getNodeName()+"】不能复制到【"+wbsTree.getNodeName()+"】,原因:节点类型不能复制");
+                }
+            }
             // 第三要求:重新构建整个树的id、parentId和ancestors
             rebuildTreeStructure(leftLists, rootNodes, rightId, wbsTree);