Bladeren bron

同步功能-新增节点时如果没有找到父节点则跳过

LHB 2 maanden geleden
bovenliggende
commit
26589e1112

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

@@ -92,7 +92,7 @@ public class WbsTreeSynchronousRecordController {
      * @return 新增结果
      */
     @PostMapping("add")
-    public R<Integer> insert(@RequestBody WbsTreeSynchronousRecord mWbsTreeSynchronousRecord) {
+    public R<WbsTreeSynchronousRecord> insert(@RequestBody WbsTreeSynchronousRecord mWbsTreeSynchronousRecord) {
         if (StringUtil.isBlank(mWbsTreeSynchronousRecord.getType())) {
             return R.fail("请选择同步类型");
         }

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

@@ -17,7 +17,7 @@ import java.util.List;
 */
 public interface WbsTreeSynchronousRecordService extends IService<WbsTreeSynchronousRecord> {
 
-    Integer insert(WbsTreeSynchronousRecord mWbsTreeSynchronousRecord);
+    WbsTreeSynchronousRecord insert(WbsTreeSynchronousRecord mWbsTreeSynchronousRecord);
 
     List<WbsTreeSynchronousRecordVo> getProjectTemplate(String nodeIds);
 

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

@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
 
 import java.io.File;
 import java.io.IOException;
+import java.rmi.ServerException;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -200,6 +201,8 @@ public class WbsSynchronousServiceImpl {
 
         //获取项目信息
         ProjectInfo projectInfo = projectInfoMapper.selectOne(Wrappers.<ProjectInfo>lambdaQuery().eq(ProjectInfo::getId, wbsTreeSynchronousRecord.getProjectId()));
+        //模板项目信息
+        ProjectInfo tempProject = projectInfoMapper.selectOne(Wrappers.<ProjectInfo>lambdaQuery().eq(ProjectInfo::getId, wbsTreeSynchronousRecord.getTemplateId()));
 
         List<WbsTreePrivate> editData = new ArrayList<>();
 
@@ -212,16 +215,11 @@ public class WbsSynchronousServiceImpl {
                 }
                 //当前项目绑定的是公有模板还是私有项目
                 Boolean isPublic = false;
-                if (
-                        ("1".equals(wbsTreePrivate.getWbsType()) && ("public").equals(projectInfo.getReferenceWbsTemplateType())) ||
-                                ("2".equals(wbsTreePrivate.getWbsType()) && ("public").equals(projectInfo.getReferenceWbsTemplateTypeTrial())) ||
-                                ("3".equals(wbsTreePrivate.getWbsType()) && ("public").equals(projectInfo.getReferenceWbsTemplateTypeMeter())) ||
-                                ("5".equals(wbsTreePrivate.getWbsType()) && ("public").equals(projectInfo.getReferenceWbsTemplateTypeLar()))
-                ) {
+
+                if(tempProject == null){
                     isPublic = true;
                 }
 
-
                 //当前项目模板对应的节点信息
                 List<WbsTreePrivate> templateNodes = new ArrayList<>();
                 //质检
@@ -248,13 +246,9 @@ public class WbsSynchronousServiceImpl {
                     templateNodes.forEach(f -> f.setTreePId(f.getId()));
 
                 } else {
-                    //根据wbsTreePrivate的wbsId=私有引用的pKeyId来获取引用树根节点
-                    WbsTreePrivate wbsTreePrivateRoot = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery()
-                            .eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getWbsId()));
-
                     //获取当前选中节点与私有模板对应的节点信息 父级模板项目的当前选中节点
-                    wbsTreePrivateRoot = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery()
-                            .eq(WbsTreePrivate::getProjectId, wbsTreePrivateRoot.getProjectId())
+                    WbsTreePrivate wbsTreePrivateRoot = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery()
+                            .eq(WbsTreePrivate::getProjectId, wbsTreeSynchronousRecord.getTemplateId())
                             .eq(WbsTreePrivate::getTreePId, wbsTreePrivate.getTreePId()));
 
                     //获取模板中当前节点的子节点的数据------------------------------------------------------------------------------------------------------------------------
@@ -307,12 +301,15 @@ public class WbsSynchronousServiceImpl {
                 for (WbsTreePrivate templateNode : templateNodes) {
                     //数据修复-----------------------------------------------------------------------------------------------------------------------------------开始
 
-                    if (isPublic) {
+                    if (!isPublic) {
                         boolean isUpdate = false;
                         if (templateNode.getExcelId() != null) {
                             ExcelTab excelTab = excelTabMapper.selectOne(Wrappers.<ExcelTab>lambdaQuery()
                                     .select(ExcelTab::getTabId)
                                     .eq(ExcelTab::getTabId, templateNode.getExcelId()));
+                            if(excelTab != null){
+                                throw new ServerException(templateNode.getNodeName() + " excel未知");
+                            }
                             if (StringUtil.isBlank(templateNode.getInitTableName())) {
                                 TableInfo tableInfo = tableInfoMapper.selectOne(Wrappers.<TableInfo>lambdaQuery()
                                         .select(TableInfo::getId)
@@ -334,6 +331,9 @@ public class WbsSynchronousServiceImpl {
                             TableInfo tableInfo = tableInfoMapper.selectOne(Wrappers.<TableInfo>lambdaQuery()
                                     .select(TableInfo::getId)
                                     .eq(TableInfo::getTabEnName, templateNode.getInitTableName()));
+                            if(tableInfo != null){
+                                throw new ServerException(templateNode.getNodeName() + " 实体表未知");
+                            }
                             if (templateNode.getExcelId() == null) {
                                 ExcelTab excelTab = excelTabMapper.selectOne(Wrappers.<ExcelTab>lambdaQuery()
                                         .select(ExcelTab::getId)
@@ -783,7 +783,8 @@ public class WbsSynchronousServiceImpl {
                 }
                 //如果现在还找不到当前节点的父节点就表示数据有问题
                 if (addPrivateParentNodes.isEmpty()) {
-                    throw new ServiceException(addPrivateNode.getNodeName() + "-找不到父节点");
+//                    throw new ServiceException(addPrivateNode.getNodeName() + "-找不到父节点");
+                    continue;
                 }
                 //当前新增节点的父节点
                 WbsTreePrivate parent = addPrivateParentNodes.get(0);

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

@@ -46,7 +46,7 @@ public class WbsTreeSynchronousRecordServiceImpl extends ServiceImpl<WbsTreeSync
     private WbsInfoMapper wbsInfoMapper;
 
     @Override
-    public Integer insert(WbsTreeSynchronousRecord mWbsTreeSynchronousRecord) {
+    public WbsTreeSynchronousRecord insert(WbsTreeSynchronousRecord mWbsTreeSynchronousRecord) {
         //新增之前  判断当前选中节点是否在同步列表中,因为是多节点 所有要查询所有同项目下的同步节点再获取所有子节点 判断当前选中节点是否在这一批次当中
         List<WbsTreeSynchronousRecord> wbsTreeSynchronousRecords = baseMapper.selectList(new QueryWrapper<WbsTreeSynchronousRecord>().lambda()
                 .select(WbsTreeSynchronousRecord::getNodeId)
@@ -136,7 +136,7 @@ public class WbsTreeSynchronousRecordServiceImpl extends ServiceImpl<WbsTreeSync
         //新增
         baseMapper.insert(mWbsTreeSynchronousRecord);
 
-        return count;
+        return mWbsTreeSynchronousRecord;
     }
 
     @Override