소스 검색

同步独立库表单配置

qianxb 1 년 전
부모
커밋
bdee6df205
1개의 변경된 파일13개의 추가작업 그리고 0개의 파일을 삭제
  1. 13 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

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

@@ -952,6 +952,10 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     //构造入参集合
                     List<WbsTreePrivate> insertData1 = new ArrayList<>();
                     List<WbsTreePrivate> insertData2 = new ArrayList<>();
+                    //映射新老pKeyId,用于保存表单配置
+                    Map<Long,Long> map = new HashMap<>();
+                    //是否存在独立库表,true为不存在,不存在才同步
+                    Boolean isExist = true;
 
                     if (pawDTO.getReferenceType().equals("public")) {
                         //获取当前树下所有节点、表信息
@@ -985,6 +989,10 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
                         //获取当前项目下的所有独立表
                         List<WbsTreePrivate> wbsTreePrivatesTableDL = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().select(WbsTreePrivate::getId).eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId()).eq(WbsTreePrivate::getType, 10).eq(WbsTreePrivate::getParentId, -10).eq(WbsTreePrivate::getStatus, 1));
+                        //存在数据则不再同步独立库表单配置
+                        if (wbsTreePrivatesTableDL != null && wbsTreePrivatesTableDL.size() > 0){
+                            isExist = false;
+                        }
                         Set<Long> saveIdsSet = saveIds.stream().map(Long::parseLong).collect(Collectors.toSet());
                         wbsTreePrivatesNodeAndTab.forEach(wbsTreePrivate -> {
                             boolean isType1Or2 = wbsTreePrivate.getType() == 1 || wbsTreePrivate.getType() == 2;
@@ -1020,6 +1028,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                 if (tree.getType() == 10) {
                                     wbsTreePrivate.setWbsId(null);
                                     wbsTreePrivate.setWbsType(null);
+                                    map.put(tree.getPKeyId(),wbsTreePrivate.getPKeyId());
                                 } else {
                                     wbsTreePrivate.setWbsId(pawDTO.getPrimaryKeyId());
                                     wbsTreePrivate.setWbsType(String.valueOf(pawDTO.getWbsType()));
@@ -1051,6 +1060,10 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
                         //异步修改htmlUrl
                         wbsTreePrivateService.batchResetHtmlUrl(insertData2);
+                        //异步同步独立库表单配置
+                        if (isExist && map.size() > 0) {
+                            wbsTreePrivateService.batchSynTableConfig(map);
+                        }
 
                         if (pawDTO.getWbsType() == 1) {
                             projectInfoMapper.updateTemplateInfoQuality(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");