Explorar el Código

同步功能-没有统计数量功能的版本

LHB hace 2 meses
padre
commit
a8291736c1

+ 8 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeSynchronousRecord.java

@@ -82,6 +82,14 @@ public class WbsTreeSynchronousRecord {
      * 表单Ids     range = 4 强制同步时  当前数据为同步源
      */
     private String formIds;
+    /**
+     * 同步节点数量
+     */
+    private Integer nodeNum;
+    /**
+     * 已同步数量
+     */
+    private Integer nodeNumEnd;
 
     /**
      * 是否删除(0-未删除,1-删除)

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeSynchronousRecordVo.java

@@ -16,6 +16,10 @@ public class WbsTreeSynchronousRecordVo {
      * 项目名称
      */
     private String name;
+    /**
+     * wbsId
+     */
+    private String wbsId;
     /**
      * type = 1 公共  type = 2 私有
      */

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeSynchronousRecordController.java

@@ -80,7 +80,7 @@ public class WbsTreeSynchronousRecordController {
      * 认证接口是否正在同步
      */
     @PostMapping("getNodeStatus")
-    public R<Boolean> getNodeStatus(@RequestParam Long id) {
+    public R<WbsTreeSynchronousRecord> getNodeStatus(@RequestParam Long id) {
         return R.data(this.mWbsTreeSynchronousRecordService.getNodeStatus(id));
     }
 

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/WbsTreeSynchronousRecordService.java

@@ -21,5 +21,5 @@ public interface WbsTreeSynchronousRecordService extends IService<WbsTreeSynchro
 
     List<WbsTreeSynchronousRecordVo> getProjectTemplate(String nodeIds);
 
-    Boolean getNodeStatus(Long id);
+    WbsTreeSynchronousRecord getNodeStatus(Long id);
 }

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

@@ -47,6 +47,7 @@ public class WbsSynchronousEViSaServiceImpl {
         synchronousRecordMapper.update(null, Wrappers.<WbsTreeSynchronousRecord>lambdaUpdate()
                 .set(WbsTreeSynchronousRecord::getStatus, 2)
                 .set(WbsTreeSynchronousRecord::getErrorMsg, null)
+                .set(WbsTreeSynchronousRecord::getNodeNumEnd, 1)
                 .set(WbsTreeSynchronousRecord::getUpdateTime, DateTime.now())
                 .eq(WbsTreeSynchronousRecord::getId, id));
     }
@@ -62,6 +63,7 @@ public class WbsSynchronousEViSaServiceImpl {
         synchronousRecordMapper.update(null, Wrappers.<WbsTreeSynchronousRecord>lambdaUpdate()
                 .set(WbsTreeSynchronousRecord::getStatus, 2)
                 .set(WbsTreeSynchronousRecord::getErrorMsg, null)
+                .set(WbsTreeSynchronousRecord::getNodeNumEnd, 1)
                 .set(WbsTreeSynchronousRecord::getUpdateTime, DateTime.now())
                 .eq(WbsTreeSynchronousRecord::getId, id));
     }

+ 21 - 23
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsSynchronousServiceImpl.java

@@ -130,7 +130,7 @@ public class WbsSynchronousServiceImpl {
                 .ne(WbsTreePrivate::getPKeyId, nodeId)
                 .eq(WbsTreePrivate::getInitTableName, initTableName)
         );
-        if(CollectionUtil.isEmpty(wbsTreePrivates)){
+        if (CollectionUtil.isEmpty(wbsTreePrivates)) {
             throw new ServiceException("当前项目没有相同实体表的其他表单");
         }
         //清表也相同的数据
@@ -381,35 +381,33 @@ public class WbsSynchronousServiceImpl {
                                     //绑定实体表
                                     editPrivateNode.setInitTableName(templateNode.getInitTableName());
 
-                                    if(StringUtil.isBlank(templateNode.getHtmlUrl())){
+                                    if (StringUtil.isBlank(templateNode.getHtmlUrl())) {
                                         throw new ServiceException(templateNode.getNodeName() + "HTML文件不存在");
                                     }
                                     //封装Html路径 根据模板html copy一份到自己项目节点上
-                                    if (StringUtil.isNotBlank(editPrivateNode.getHtmlUrl()) && (StringUtil.isBlank(editPrivateNode.getHtmlUrl()) || !Objects.equals(editPrivateNode.getHtmlUrl(), templateNode.getHtmlUrl()))) {
-                                        String[] split = templateNode.getHtmlUrl().split("/");
-                                        String htmlUrl = file_path + "privateUrlCopy/" + projectInfo.getId() + "/" + split[split.length - 1];
-                                        File file_in = ResourceUtil.getFile(templateNode.getHtmlUrl());
-                                        if (!file_in.exists() || file_in.length() == 0) {
-                                            //如果本地服务器上没有
-                                            throw new ServiceException(templateNode.getNodeName() + "HTML文件不存在");
-                                        }
-                                        File file_out = ResourceUtil.getFile(htmlUrl);
-                                        //查询父级文件夹
-                                        File fileParent = file_out.getParentFile();
-                                        if (!fileParent.exists()) {
-                                            fileParent.mkdirs();
-                                        }
-                                        file_out.createNewFile();
-                                        FileUtil.copy(file_in, file_out);
-                                        editPrivateNode.setHtmlUrl(templateNode.getHtmlUrl());
+                                    String[] split = templateNode.getHtmlUrl().split("/");
+                                    String htmlUrl = file_path + "privateUrlCopy/" + projectInfo.getId() + "/" + split[split.length - 1];
+                                    File file_in = ResourceUtil.getFile(templateNode.getHtmlUrl());
+                                    if (!file_in.exists() || file_in.length() == 0) {
+                                        //如果本地服务器上没有
+                                        throw new ServiceException(templateNode.getNodeName() + "HTML文件不存在");
                                     }
-
-
-                                    if (templateNode.getExcelId() != null) {
-                                        editPrivateNode.setIsLinkTable(2);
+                                    File file_out = ResourceUtil.getFile(htmlUrl);
+                                    //查询父级文件夹
+                                    File fileParent = file_out.getParentFile();
+                                    if (!fileParent.exists()) {
+                                        fileParent.mkdirs();
                                     }
+                                    file_out.createNewFile();
+                                    FileUtil.copy(file_in, file_out);
+                                    editPrivateNode.setHtmlUrl(htmlUrl);
+                                }
 
+
+                                if (templateNode.getExcelId() != null) {
+                                    editPrivateNode.setIsLinkTable(2);
                                 }
+
                                 //元素 是与表绑定的
                                 if (collect.contains(3)) {
                                     editPrivateNode.setInitTableName(templateNode.getInitTableName());

+ 14 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeSynchronousRecordServiceImpl.java

@@ -130,23 +130,24 @@ public class WbsTreeSynchronousRecordServiceImpl extends ServiceImpl<WbsTreeSync
     }
 
     @Override
-    public Boolean getNodeStatus(Long id) {
+    public WbsTreeSynchronousRecord getNodeStatus(Long id) {
         WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectById(id);
-        if(wbsTreePrivate == null){
+        if (wbsTreePrivate == null) {
             throw new ServiceException("节点不存在");
         }
+
+
         //新增之前  判断当前选中节点是否在同步列表中,因为是多节点 所有要查询所有同项目下的同步节点再获取所有子节点 判断当前选中节点是否在这一批次当中
         List<WbsTreeSynchronousRecord> wbsTreeSynchronousRecords = baseMapper.selectList(new QueryWrapper<WbsTreeSynchronousRecord>().lambda()
-                .select(WbsTreeSynchronousRecord::getNodeId)
                 .eq(WbsTreeSynchronousRecord::getProjectId, wbsTreePrivate.getProjectId())
                 .eq(WbsTreeSynchronousRecord::getIsDeleted, 0)
                 .in(WbsTreeSynchronousRecord::getStatus, 0, 1));
-        List<String> nodeIds = wbsTreeSynchronousRecords.stream().map(WbsTreeSynchronousRecord::getNodeId).collect(Collectors.toList());
+        for (WbsTreeSynchronousRecord wbsTreeSynchronousRecord : wbsTreeSynchronousRecords) {
 
-        //所有子节点集合
-        List<Long> privateIds = new ArrayList<>();
-        //通过 ancestors_p_id 查询所有 非表单子节点
-        for (String nodeId : nodeIds) {
+
+            List<Long> privateIds = new ArrayList<>();
+
+            String nodeId = wbsTreeSynchronousRecord.getNodeId();
             String[] split = nodeId.split(",");
             for (String s : split) {
                 List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(new QueryWrapper<WbsTreePrivate>().lambda()
@@ -157,8 +158,11 @@ public class WbsTreeSynchronousRecordServiceImpl extends ServiceImpl<WbsTreeSync
                 privateIds.add(Long.valueOf(s));
                 privateIds.addAll(wbsTreePrivates.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList()));
             }
+            if (privateIds.size() > 0 && privateIds.contains(id)) {
+                return wbsTreeSynchronousRecord;
+            }
         }
-        return privateIds.contains(id);
+        return null;
     }
 
     @Override
@@ -206,6 +210,7 @@ public class WbsTreeSynchronousRecordServiceImpl extends ServiceImpl<WbsTreeSync
             wbsTreeSynchronousRecordVo.setId(projectInfo1.getId());
             wbsTreeSynchronousRecordVo.setName(projectInfo1.getProjectName());
             wbsTreeSynchronousRecordVo.setType(2);
+            wbsTreeSynchronousRecordVo.setWbsId(wbsTreePrivate1.getWbsId());
             list.add(wbsTreeSynchronousRecordVo);
             return getTempProject(wbsTreePrivate1, list);
         }