ソースを参照

同步-表单同步-筛选逻辑根据系统WBS筛选同步

LHB 1 ヶ月 前
コミット
bf78ef5552

+ 2 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsSynchronousEViSaServiceImpl.java

@@ -60,10 +60,11 @@ public class WbsSynchronousEViSaServiceImpl {
         }
 
         wbsTreePrivateMapper.update(null, Wrappers.<WbsTreePrivate>lambdaUpdate()
+                .set(WbsTreePrivate::getInitTableId, wbsTreePrivate.getInitTableId())
+                .set(WbsTreePrivate::getInitTableName, wbsTreePrivate.getInitTableName())
                 .set(WbsTreePrivate::getHtmlUrl, wbsTreePrivate.getHtmlUrl())
                 .set(wbsTreePrivate.getExcelId()!=null,WbsTreePrivate::getIsLinkTable, 2)
                 .set(WbsTreePrivate::getExcelId, wbsTreePrivate.getExcelId())
-                .set(WbsTreePrivate::getInitTableId, wbsTreePrivate.getInitTableId())
                 .in(WbsTreePrivate::getPKeyId, ids)
         );
         synchronousRecordMapper.update(null, Wrappers.<WbsTreeSynchronousRecord>lambdaUpdate()

+ 16 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsSynchronousServiceImpl.java

@@ -132,11 +132,26 @@ public class WbsSynchronousServiceImpl {
         if (wbsTreePrivate.getExcelId() == null) {
             throw new ServiceException("表单未绑定清表");
         }
+
+        //获取系统模板
+        WbsTree wbsTree = wbsTreeMapper.selectById(wbsTreePrivate.getId());
+        List<WbsTree> wbsTrees = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery()
+                .eq(WbsTree::getWbsId, wbsTree.getWbsId())
+                .ne(WbsTree::getId, wbsTree.getId())
+                .eq(WbsTree::getInitTableName, wbsTree.getInitTableName())
+                .eq(WbsTree::getIsDeleted, 0));
+        if(CollectionUtil.isEmpty(wbsTrees)){
+            throw new ServiceException("当前项目没有相同实体表的其他表单");
+        }
+
+        List<Long> collect3 = wbsTrees.stream().map(WbsTree::getId).collect(Collectors.toList());
+
+
         //在指定项目下指定实体表相同的数据
         List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
                 .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
                 .ne(WbsTreePrivate::getPKeyId, nodeId)
-                .eq(WbsTreePrivate::getInitTableName, initTableName)
+                .in(WbsTreePrivate::getId, collect3)
         );
         if (CollectionUtil.isEmpty(wbsTreePrivates)) {
             throw new ServiceException("当前项目没有相同实体表的其他表单");