Преглед изворни кода

同步公共-同步源获取调整为 与公共模板有联系的项目都统计出来

LHB пре 2 месеци
родитељ
комит
e3a1331b89

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

@@ -11,10 +11,7 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.manager.entity.ProjectInfo;
-import org.springblade.manager.entity.WbsInfo;
-import org.springblade.manager.entity.WbsTreePrivate;
-import org.springblade.manager.entity.WbsTreeSynchronousRecord;
+import org.springblade.manager.entity.*;
 import org.springblade.manager.mapper.*;
 import org.springblade.manager.service.WbsTreeSynchronousRecordService;
 import org.springblade.manager.vo.WbsTreeSynchronousRecordVo;
@@ -188,99 +185,42 @@ public class WbsTreeSynchronousRecordServiceImpl extends ServiceImpl<WbsTreeSync
         String nodeId = nodeIds.split(",")[0];
         //选中节点
         WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectById(nodeId);
-        List<WbsTreeSynchronousRecordVo> wbsTreePrivates = new ArrayList<>();
-        if (wbsTreePrivate == null) {
-            return wbsTreePrivates;
-        }
-        List<WbsTreeSynchronousRecordVo> tempProject = getTempProject(nodeId, wbsTreePrivate, wbsTreePrivates);
-        //过滤自身数据
         List<WbsTreeSynchronousRecordVo> returnData = new ArrayList<>();
-        for (WbsTreeSynchronousRecordVo wbsTreeSynchronousRecordVo : tempProject) {
-            if(wbsTreeSynchronousRecordVo.getType() == 2 && Objects.equals(wbsTreeSynchronousRecordVo.getId().toString(), wbsTreePrivate.getProjectId())){
+        //获取当前项目的初始节点
+        WbsTreePrivate start = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery()
+                .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
+                .eq(WbsTreePrivate::getParentId, 0)
+                .last("limit 1")
+        );
+        //私有项目
+        List<WbsTreePrivate> list = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
+                .eq(WbsTreePrivate::getTreePId, start.getTreePId()));
+        for (WbsTreePrivate treePrivate : list) {
+            //过滤当前项目
+            if (Objects.equals(treePrivate.getProjectId(), wbsTreePrivate.getProjectId())) {
                 continue;
             }
+
+            ProjectInfo projectInfo2 = projectInfoMapper.selectById(treePrivate.getProjectId());
+            WbsTreeSynchronousRecordVo wbsTreeSynchronousRecordVo = new WbsTreeSynchronousRecordVo();
+            wbsTreeSynchronousRecordVo.setId(projectInfo2.getId());
+            wbsTreeSynchronousRecordVo.setName(projectInfo2.getProjectName());
+            wbsTreeSynchronousRecordVo.setType(2);
+            wbsTreeSynchronousRecordVo.setWbsId(wbsTreePrivate.getWbsId());
             returnData.add(wbsTreeSynchronousRecordVo);
         }
+        //公共项目
+        WbsTree wbsTree = wbsTreeMapper.selectById(start.getId());
+        WbsInfo wbsInfo = wbsInfoMapper.selectById(wbsTree.getWbsId());
+        WbsTreeSynchronousRecordVo wbsTreeSynchronousRecordVo = new WbsTreeSynchronousRecordVo();
+        wbsTreeSynchronousRecordVo.setId(Long.valueOf(nodeId));
+        wbsTreeSynchronousRecordVo.setName(wbsInfo.getWbsName());
+        wbsTreeSynchronousRecordVo.setType(1);
+        returnData.add(wbsTreeSynchronousRecordVo);
 
         return returnData;
     }
 
-
-    public List<WbsTreeSynchronousRecordVo> getTempProject(String nodeId, WbsTreePrivate wbsTreePrivate, List<WbsTreeSynchronousRecordVo> list) {
-        ProjectInfo projectInfo = projectInfoMapper.selectById(wbsTreePrivate.getProjectId());
-        if (projectInfo == null) {
-            return list;
-        }
-
-        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())))
-            isPublic = true;
-
-        if (isPublic) {
-            //公共项目
-            WbsInfo wbsInfo = wbsInfoMapper.selectById(wbsTreePrivate.getWbsId());
-            WbsTreeSynchronousRecordVo wbsTreeSynchronousRecordVo = new WbsTreeSynchronousRecordVo();
-            wbsTreeSynchronousRecordVo.setId(Long.valueOf(nodeId));
-            wbsTreeSynchronousRecordVo.setName(wbsInfo.getWbsName());
-            wbsTreeSynchronousRecordVo.setType(1);
-            list.add(wbsTreeSynchronousRecordVo);
-
-            LambdaQueryWrapper<ProjectInfo> wrapper = Wrappers.<ProjectInfo>lambdaQuery();
-            wrapper.eq(ProjectInfo::getIsDeleted, 0);
-            //查询所有公共项目下的项目
-            if ("1".equals(wbsTreePrivate.getWbsType())) {
-                //质检
-                wrapper.eq(ProjectInfo::getReferenceWbsTemplateId, wbsInfo.getId());
-            } else if ("2".equals(wbsTreePrivate.getWbsType())) {
-                //试验
-                wrapper.eq(ProjectInfo::getReferenceWbsTemplateIdTrial, wbsInfo.getId());
-            } else if ("3".equals(wbsTreePrivate.getWbsType())) {
-                //计量
-                wrapper.eq(ProjectInfo::getReferenceWbsTemplateIdMeter, wbsInfo.getId());
-            } else if ("4".equals(wbsTreePrivate.getWbsType())) {
-                //日志
-                wrapper.eq(ProjectInfo::getReferenceLogWbsTemplateId, wbsInfo.getId());
-            } else if ("5".equals(wbsTreePrivate.getWbsType())) {
-                //征拆
-                wrapper.eq(ProjectInfo::getReferenceWbsTemplateIdLar, wbsInfo.getId());
-            }
-            List<ProjectInfo> projectInfos = projectInfoMapper.selectList(wrapper);
-            for (ProjectInfo info : projectInfos) {
-                WbsTreeSynchronousRecordVo wbsTreeSynchronousRecordVo1 = new WbsTreeSynchronousRecordVo();
-                wbsTreeSynchronousRecordVo1.setId(info.getId());
-                wbsTreeSynchronousRecordVo1.setName(info.getProjectName());
-                wbsTreeSynchronousRecordVo1.setType(2);
-                wbsTreeSynchronousRecordVo1.setWbsId(String.valueOf(wbsInfo.getId()));
-                list.add(wbsTreeSynchronousRecordVo1);
-
-            }
-            return list;
-        } else {
-            WbsTreePrivate wbsTreePrivate1 = wbsTreePrivateMapper.selectById(wbsTreePrivate.getWbsId());
-
-            //查询私有下的项目
-            List<WbsTreePrivate> list1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
-                    .select(WbsTreePrivate::getProjectId)
-                    .eq(WbsTreePrivate::getWbsId, wbsTreePrivate.getWbsId())
-                    .isNotNull(WbsTreePrivate::getProjectId)
-                    .eq(WbsTreePrivate::getParentId, 0));
-            for (WbsTreePrivate treePrivate : list1) {
-                ProjectInfo projectInfo2 = projectInfoMapper.selectById(treePrivate.getProjectId());
-                WbsTreeSynchronousRecordVo wbsTreeSynchronousRecordVo = new WbsTreeSynchronousRecordVo();
-                wbsTreeSynchronousRecordVo.setId(projectInfo2.getId());
-                wbsTreeSynchronousRecordVo.setName(projectInfo2.getProjectName());
-                wbsTreeSynchronousRecordVo.setType(2);
-                wbsTreeSynchronousRecordVo.setWbsId(wbsTreePrivate.getWbsId());
-                list.add(wbsTreeSynchronousRecordVo);
-            }
-
-            return getTempProject(nodeId, wbsTreePrivate1, list);
-        }
-    }
-
     /**
      * 同步节点表单
      * 定时检查同步任务,状态为1的数据如果最后更新时间与当前时间超过10分钟,则修改状态为1