liuyc 2 年之前
父節點
當前提交
e455166340

+ 19 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -21,6 +21,7 @@ import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.*;
 import org.springblade.manager.dto.FormElementDTO2;
+import org.springblade.manager.dto.WbsTreeContractDTO;
 import org.springblade.manager.dto.WbsTreePrivateDTO2;
 import org.springblade.manager.dto.WbsTreePrivateDTO3;
 import org.springblade.manager.entity.*;
@@ -38,6 +39,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
 @AllArgsConstructor
@@ -1493,4 +1495,21 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         return true;
     }
 
+
+    public void insertDLTab(WbsTreeContractDTO pawDTO) {
+        //获取当前引用项目的独立库表单
+        List<WbsTreePrivate> wbsTreePrivates = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, pawDTO.getReferencePrivateWbsProjectId()).eq(WbsTreePrivate::getType, 10));
+        List<WbsTreePrivate> wbsTreePrivatesNew = new ArrayList<>();
+        if (wbsTreePrivates.size() > 0) {
+            for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
+                WbsTreePrivate wbsTreePrivateNew = BeanUtil.copyProperties(wbsTreePrivate, WbsTreePrivate.class);
+                if (wbsTreePrivateNew != null) {
+                    wbsTreePrivateNew.setId(SnowFlakeUtil.getId());
+                    wbsTreePrivateNew.setProjectId(pawDTO.getProjectId());
+                    wbsTreePrivatesNew.add(wbsTreePrivateNew);
+                }
+            }
+        }
+        this.insertBatch(wbsTreePrivatesNew,1000);
+    }
 }

+ 45 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -311,12 +311,12 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
     @Override
     public List<WbsFormElementVO> selectFormElements(String id, Long nodeId) {
-        List<WbsFormElementVO> wbsFormElements =null;
-         if( this.tableInfoService.count(Wrappers.<TableInfo>lambdaQuery().eq(TableInfo::getId,id))>0){
-              wbsFormElements = wbsTreeMapper.selectFormElements4TableId(id);
-         }else{
-              wbsFormElements = wbsTreeMapper.selectFormElements(id);
-         }
+        List<WbsFormElementVO> wbsFormElements = null;
+        if (this.tableInfoService.count(Wrappers.<TableInfo>lambdaQuery().eq(TableInfo::getId, id)) > 0) {
+            wbsFormElements = wbsTreeMapper.selectFormElements4TableId(id);
+        } else {
+            wbsFormElements = wbsTreeMapper.selectFormElements(id);
+        }
         wbsFormElements.forEach(elements -> {
             String eAllowDeviation = elements.getEAllowDeviation();
             //转义
@@ -494,6 +494,9 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
                     //同步私有-电签匹配数据、默认信息数据
                     this.insertTextDictInfoAsync(WbsTreePrivateTables, wbsTreePrivateNowTables);
+
+                    //同步独立表单库数据
+                    this.insertDLTabAsync(pawDTO);
                 }
 
             } else {
@@ -655,10 +658,14 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
                         this.insertBatch(insertData2, 1000);
 
+                        //电签
                         textDictInfoService.saveBatch(insertData3, 1000);
 
                         if (pawDTO.getWbsType() == 1) { //修改质检关联信息
                             projectInfoMapper.updateTemplateInfoQuality(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");
+
+                            //新增独立表单库数据
+                            wbsTreePrivateService.insertDLTab(pawDTO);
                         }
                         if (pawDTO.getWbsType() == 2) { //修改试验关联信息
                             projectInfoMapper.updateTemplateInfoTrial(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");
@@ -669,7 +676,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                         bladeRedis.expire("submit-wbs-project:" + pawDTO.getProjectId(), 60);
                     }
                 }
-
             }
             return true;
         } catch (Exception e) {
@@ -713,6 +719,38 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         return wbsTreePrivateService.updateBatchByIds2(wbsTreePrivates, wbsTreePrivatesAllNow, projectId, primaryKeyId);
     }
 
+    @Async
+    public boolean insertDLTabAsync(WbsTreeContractDTO pawDTO) {
+        List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateService.getBaseMapper().selectList(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, pawDTO.getReferencePrivateWbsProjectId()).eq(WbsTreePrivate::getType, 10));
+        List<WbsTreePrivate> wbsTreePrivatesNew = wbsTreePrivateService.getBaseMapper().selectList(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId()).eq(WbsTreePrivate::getType, 10));
+
+        Iterator<WbsTreePrivate> iterator = wbsTreePrivates.iterator();
+        while (iterator.hasNext()) {
+            WbsTreePrivate next = iterator.next();
+            for (WbsTreePrivate wbsTreePrivate : wbsTreePrivatesNew) {
+                if (next.getNodeName().equals(wbsTreePrivate.getNodeName()) && next.getTableType().equals(wbsTreePrivate.getTableType())) {
+                    iterator.remove();
+                    break;
+                }
+            }
+        }
+
+        List<WbsTreePrivate> wbsTreePrivatesNewAdd = new ArrayList<>();
+        for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
+            WbsTreePrivate wbsTreePrivateNew = BeanUtil.copyProperties(wbsTreePrivate, WbsTreePrivate.class);
+            if (wbsTreePrivateNew != null) {
+                wbsTreePrivateNew.setId(SnowFlakeUtil.getId());
+                wbsTreePrivateNew.setProjectId(pawDTO.getProjectId());
+                wbsTreePrivatesNewAdd.add(wbsTreePrivateNew);
+            }
+        }
+
+        if (wbsTreePrivatesNewAdd.size() > 0) {
+            wbsTreePrivateService.saveBatch(wbsTreePrivatesNewAdd, 1000);
+        }
+        return true;
+    }
+
     @Async
     public boolean insertTextDictInfoAsync(List<WbsTreePrivate> wbsTreePrivateOldTables, List<WbsTreePrivate> wbsTreePrivateNewTables) {
         //获取所有电签配置信息