|
@@ -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
|