1、创建项目、阶段、机台、工位、任务、指标时,同步tag1-tag10给到文件数据标签

This commit is contained in:
2026-03-11 18:54:10 +08:00
parent c416fa81d5
commit a83b02a3c9
7 changed files with 445 additions and 387 deletions

View File

@@ -21,7 +21,7 @@ public interface ILyricInternalService {
// SdmResponse getTodoListByProjectNum(String projectNum);
SdmResponse getMainPlanListByProjectId(Integer projectId,String projectUuid);
// SdmResponse getMainPlanListByProjectId(Integer projectId,String projectUuid);
SdmResponse getProjectList();

View File

@@ -14,7 +14,7 @@ import java.util.List;
@Service
public interface IProjectService {
SdmResponse add(JSONObject jsonObject);
// SdmResponse add(JSONObject jsonObject);
SdmResponse edit(List<TaskEditNodeReq> jsonObject);

View File

@@ -920,7 +920,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
)
));
for (TaskNode taskNode : taskNodeList) {
createDir(taskNode.getUuid(), parentUuid, taskNode.getNodeName());
createDir(taskNode.getUuid(), parentUuid, taskNode.getNodeName(),taskNode);
}
}
if (CollectionUtils.isNotEmpty(projectNodeExtraList)) {
@@ -973,7 +973,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
}
createDir(taskNode.getUuid(),
ObjectUtils.isNotEmpty(taskNodePoMap.get(taskNode.getTaskId())) ? taskNodePoMap.get(taskNode.getTaskId()).getUuid() : taskNodeMap.get(taskNode.getTaskId()).getUuid(),
taskNode.getNodeName());
taskNode.getNodeName(),taskNode);
}
}
@@ -1694,11 +1694,14 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
// }
private void createDir(String uuid, String parentUuid, String dirName) {
private void createDir(String uuid, String parentUuid, String dirName,TaskNode taskNode) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setParentUuId(parentUuid);
createDirReq.setDirName(dirName);
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(taskNode,tagReq);
createDirReq.setTagReq(tagReq);
log.info("下发任务调用创建文件夹的参数为:{}", createDirReq);
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
log.info("下发任务调用创建文件夹的返回值为:{}", response);

View File

@@ -1173,79 +1173,79 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
// return SdmResponse.success();
// }
@Override
public SdmResponse getMainPlanListByProjectId(Integer projectId, String projectUuid) {
log.info("同步主计划projectId{}projectUuid{}", projectId, projectUuid);
if (ObjectUtils.isEmpty(projectId) || ObjectUtils.isEmpty(projectUuid)) {
log.error("同步主计划时项目id和uuid都不能为空");
return SdmResponse.failed("同步主计划时项目id和uuid都不能为空");
}
Long tenantId = ThreadLocalContext.getTenantId();
Long jobNumber = ThreadLocalContext.getUserId();
String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
List<LyricVMainPlanDM> mainPlanList = lyricVMainPlanDMService.lambdaQuery().eq(LyricVMainPlanDM::getProjectId, String.valueOf(projectId)).list();
log.info("mainPlanList为{}", mainPlanList);
if (CollectionUtils.isEmpty(mainPlanList)) {
log.info("mainPlanList为空");
return SdmResponse.success();
}
List<SimulationNode> nodeList = nodeService.lambdaQuery()
.eq(SimulationNode::getProjectSource, SYNC_PROJECT_SOURCE)
.eq(SimulationNode::getNodeType, NodeTypeEnum.PHASE.getValue())
.list();
if (CollectionUtils.isNotEmpty(nodeList)) {
List<String> nodeNameList = nodeList.stream().map(SimulationNode::getNodeName).toList();
log.info("nodeNameList为{}", nodeNameList);
mainPlanList = mainPlanList.stream().filter(planInfo -> !nodeNameList.contains(String.valueOf(planInfo.getSubject()))).toList();
if (CollectionUtils.isEmpty(mainPlanList)) {
log.info("本次同步到的主计划都已经进行过同步");
return SdmResponse.success();
}
}
log.info("同步到的主计划编号集合为:{}", mainPlanList.stream().map(LyricVMainPlanDM::getSubject).toList());
List<SimulationNode> simulationNodeList = new ArrayList<>();
for (LyricVMainPlanDM newPhaseInfo : mainPlanList) {
String uuid = RandomUtil.generateString(32);
SimulationNode simulationNode = new SimulationNode();
simulationNode.setUuid(uuid);
simulationNode.setOwnRootNodeUuid(uuid);
simulationNode.setNodeName(StringUtils.isNotBlank(newPhaseInfo.getSubject()) ? newPhaseInfo.getSubject() : "默认阶段");
simulationNode.setNodeType(NodeTypeEnum.PHASE.getValue());
simulationNode.setNodeStatus("0");
simulationNode.setNodeLevel(1);
simulationNode.setTenantId(tenantId);
simulationNode.setExeStatus("0");
simulationNode.setCreator(jobNumber);
simulationNode.setCreateTime(curDateStr);
simulationNode.setTag1(projectUuid);
simulationNode.setTag2(uuid);
try {
createDir(simulationNode.getUuid(), simulationNode.getNodeType(), simulationNode.getTag1(), simulationNode.getNodeName());
} catch (Exception e) {
log.error("同步主计划创建文件夹时有异常:{}", e.getMessage());
}
simulationNodeList.add(simulationNode);
}
nodeService.saveBatch(simulationNodeList);
// 更新文件权限
for (SimulationNode simulationNode : simulationNodeList) {
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
updatePermissionReq.setUserId(jobNumber);
updatePermissionReq.setUuid(simulationNode.getUuid());
Map<Long, Byte> userPermissions = new HashMap<>();
userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
updatePermissionReq.setUserPermissions(userPermissions);
log.info("同步主计划时,更新用户权限的参数为:{}", updatePermissionReq);
SdmResponse updatePermissionResponse = null;
try {
updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
} catch (Exception e) {
log.error("同步主计划更新用户权限时有异常:{}", e.getMessage());
}
log.info("同步主计划时,更新用户权限的返回值为:{}", updatePermissionResponse);
}
return SdmResponse.success();
}
// @Override
// public SdmResponse getMainPlanListByProjectId(Integer projectId, String projectUuid) {
// log.info("同步主计划projectId{}projectUuid{}", projectId, projectUuid);
// if (ObjectUtils.isEmpty(projectId) || ObjectUtils.isEmpty(projectUuid)) {
// log.error("同步主计划时项目id和uuid都不能为空");
// return SdmResponse.failed("同步主计划时项目id和uuid都不能为空");
// }
// Long tenantId = ThreadLocalContext.getTenantId();
// Long jobNumber = ThreadLocalContext.getUserId();
// String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
// List<LyricVMainPlanDM> mainPlanList = lyricVMainPlanDMService.lambdaQuery().eq(LyricVMainPlanDM::getProjectId, String.valueOf(projectId)).list();
// log.info("mainPlanList为{}", mainPlanList);
// if (CollectionUtils.isEmpty(mainPlanList)) {
// log.info("mainPlanList为空");
// return SdmResponse.success();
// }
// List<SimulationNode> nodeList = nodeService.lambdaQuery()
// .eq(SimulationNode::getProjectSource, SYNC_PROJECT_SOURCE)
// .eq(SimulationNode::getNodeType, NodeTypeEnum.PHASE.getValue())
// .list();
// if (CollectionUtils.isNotEmpty(nodeList)) {
// List<String> nodeNameList = nodeList.stream().map(SimulationNode::getNodeName).toList();
// log.info("nodeNameList为{}", nodeNameList);
// mainPlanList = mainPlanList.stream().filter(planInfo -> !nodeNameList.contains(String.valueOf(planInfo.getSubject()))).toList();
// if (CollectionUtils.isEmpty(mainPlanList)) {
// log.info("本次同步到的主计划都已经进行过同步");
// return SdmResponse.success();
// }
// }
// log.info("同步到的主计划编号集合为:{}", mainPlanList.stream().map(LyricVMainPlanDM::getSubject).toList());
// List<SimulationNode> simulationNodeList = new ArrayList<>();
// for (LyricVMainPlanDM newPhaseInfo : mainPlanList) {
// String uuid = RandomUtil.generateString(32);
// SimulationNode simulationNode = new SimulationNode();
// simulationNode.setUuid(uuid);
// simulationNode.setOwnRootNodeUuid(uuid);
// simulationNode.setNodeName(StringUtils.isNotBlank(newPhaseInfo.getSubject()) ? newPhaseInfo.getSubject() : "默认阶段");
// simulationNode.setNodeType(NodeTypeEnum.PHASE.getValue());
// simulationNode.setNodeStatus("0");
// simulationNode.setNodeLevel(1);
// simulationNode.setTenantId(tenantId);
// simulationNode.setExeStatus("0");
// simulationNode.setCreator(jobNumber);
// simulationNode.setCreateTime(curDateStr);
// simulationNode.setTag1(projectUuid);
// simulationNode.setTag2(uuid);
// try {
// createDir(simulationNode.getUuid(), simulationNode.getNodeType(), simulationNode.getTag1(), simulationNode.getNodeName());
// } catch (Exception e) {
// log.error("同步主计划创建文件夹时有异常:{}", e.getMessage());
// }
// simulationNodeList.add(simulationNode);
// }
// nodeService.saveBatch(simulationNodeList);
// // 更新文件权限
// for (SimulationNode simulationNode : simulationNodeList) {
// UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
// updatePermissionReq.setUserId(jobNumber);
// updatePermissionReq.setUuid(simulationNode.getUuid());
// Map<Long, Byte> userPermissions = new HashMap<>();
// userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
// updatePermissionReq.setUserPermissions(userPermissions);
// log.info("同步主计划时,更新用户权限的参数为:{}", updatePermissionReq);
// SdmResponse updatePermissionResponse = null;
// try {
// updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
// } catch (Exception e) {
// log.error("同步主计划更新用户权限时有异常:{}", e.getMessage());
// }
// log.info("同步主计划时,更新用户权限的返回值为:{}", updatePermissionResponse);
// }
// return SdmResponse.success();
// }
@Override
public SdmResponse getProjectList() {
@@ -1681,13 +1681,16 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
* @param parentUuid 父节点uuid
* @param dirName 待长江文件夹名称
*/
private SdmResponse createDir(String uuid, String uuidOwnType, String parentUuid, String dirName) {
private SdmResponse createDir(String uuid, String uuidOwnType, String parentUuid, String dirName,SpdmProjectNodeEditReq spdmProjectNodeEditReq) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setUuIdOwnType(uuidOwnType);
createDirReq.setParentUuId(ObjectUtils.isNotEmpty(parentUuid) ? parentUuid : null);
createDirReq.setDirName(dirName);
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(spdmProjectNodeEditReq,tagReq);
createDirReq.setTagReq(tagReq);
log.info("同步项目阶段时,调用创建文件夹的参数为:{}", createDirReq);
SdmResponse response = dataFeignClient.createDir(createDirReq);
log.info("同步项目阶段时,调用创建文件夹的返回值为:{}", response);
@@ -1843,7 +1846,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
return null;
}
for (SpdmProjectNodeEditReq node : addNodeList) {
createDir(node.getUuid(), node.getNodeType(), node.getPid(), node.getNodeName());
createDir(node.getUuid(), node.getNodeType(), node.getPid(), node.getNodeName(),node);
}
// 更新文件权限
Long userId = ThreadLocalContext.getUserId();
@@ -2604,7 +2607,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
}
SpdmProjectNodeEditReq firstPhaseNode = phaseNodes.get(0);
createDir(firstPhaseNode.getUuid(), firstPhaseNode.getNodeType(),
firstPhaseNode.getPid(), firstPhaseNode.getNodeName());
firstPhaseNode.getPid(), firstPhaseNode.getNodeName(),firstPhaseNode);
}
/**

View File

@@ -1086,7 +1086,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
}
for (SpdmProjectNodeEditReq phaseNode : phaseNodes) {
createDir(phaseNode.getUuid(), phaseNode.getNodeType(),
phaseNode.getPid(), phaseNode.getNodeName());
phaseNode.getPid(), phaseNode.getNodeName(),phaseNode);
}
}
@@ -1725,19 +1725,46 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
* @param parentUuid 父节点uuid
* @param dirName 待长江文件夹名称
*/
private SdmResponse createDir(String uuid, String uuidOwnType, String parentUuid, String dirName) {
private SdmResponse createDir(String uuid, String uuidOwnType, String parentUuid, String dirName,SpdmProjectNodeEditReq spdmProjectNodeEditReq) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setUuIdOwnType(uuidOwnType);
createDirReq.setParentUuId(ObjectUtils.isNotEmpty(parentUuid) ? parentUuid : null);
createDirReq.setDirName(dirName);
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(spdmProjectNodeEditReq,tagReq);
createDirReq.setTagReq(tagReq);
log.info("创建项目阶段时,调用创建文件夹的参数为:{}", createDirReq);
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
log.info("创建项目阶段时,调用创建文件夹的返回值为:{}", response);
return response;
}
/**
* 创建文件夹
*
* @param uuid 待创建节点uuid
* @param uuidOwnType 待创建节点类型node,task,run,performance
* @param parentUuid 父节点uuid
* @param dirName 待长江文件夹名称
*/
private SdmResponse createTaskDir(String uuid, String uuidOwnType, String parentUuid, String dirName,TaskNode taskNode) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setUuIdOwnType(uuidOwnType);
createDirReq.setParentUuId(ObjectUtils.isNotEmpty(parentUuid) ? parentUuid : null);
createDirReq.setDirName(dirName);
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(taskNode,tagReq);
createDirReq.setTagReq(tagReq);
log.info("创建任务时,调用创建文件夹的参数为:{}", createDirReq);
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
log.info("创建任务时,调用创建文件夹的返回值为:{}", response);
return response;
}
@Override
public SdmResponse getDedicatedTime(GetDedicatedTimeReq req) {
String projectUuid = req.getProjectUuid();
@@ -3004,13 +3031,13 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
}
SdmResponse createDirResult;
for (SpdmProjectNodeEditReq projectNode : topNodeList) {
createDirResult = createDir(projectNode.getUuid(), projectNode.getNodeType(), null, projectNode.getNodeName());
createDirResult = createDir(projectNode.getUuid(), projectNode.getNodeType(), null, projectNode.getNodeName(),projectNode);
if (createDirResult.getCode() != ResultCode.SUCCESS.getCode()) {
throw new RuntimeException(createDirResult.getMessage());
}
}
for (SpdmProjectNodeEditReq projectNode : nodeList) {
createDirResult = createDir(projectNode.getUuid(), projectNode.getNodeType(), projectNode.getPid(), projectNode.getNodeName());
createDirResult = createDir(projectNode.getUuid(), projectNode.getNodeType(), projectNode.getPid(), projectNode.getNodeName(),projectNode);
if (createDirResult.getCode() != ResultCode.SUCCESS.getCode()) {
throw new RuntimeException(createDirResult.getMessage());
}
@@ -3146,7 +3173,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
}
}
for (TaskNode taskNode : addTaskList) {
createDirResult = createDir(taskNode.getUuid(), taskNode.getNodeType(), taskNode.getPid(), taskNode.getNodeName());
createDirResult = createTaskDir(taskNode.getUuid(), taskNode.getNodeType(), taskNode.getPid(), taskNode.getNodeName(),taskNode);
if (createDirResult.getCode() != ResultCode.SUCCESS.getCode()) {
throw new RuntimeException(createDirResult.getMessage());
}
@@ -3287,7 +3314,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
}
try {
// 创建项目节点的文件夹
SdmResponse response = createDir(spdmProjectNodeEditReq.getUuid(), spdmProjectNodeEditReq.getNodeType(), null, spdmProjectNodeEditReq.getNodeName());
SdmResponse response = createDir(spdmProjectNodeEditReq.getUuid(), spdmProjectNodeEditReq.getNodeType(), null, spdmProjectNodeEditReq.getNodeName(),spdmProjectNodeEditReq);
if (ObjectUtils.isEmpty(response) || response.getCode() != ResultCode.SUCCESS.getCode()) {
log.error("同步CID项目{}时,创建文件夹失败,原因为:{}",req.getProjectId() + " " + req.getProjectName(),response.getMessage());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -3952,77 +3979,77 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
}
}
public SdmResponse getMainPlanListByProjectId(Integer projectId, String projectUuid) {
log.info("同步主计划projectId{}projectUuid{}", projectId, projectUuid);
if (ObjectUtils.isEmpty(projectId) || ObjectUtils.isEmpty(projectUuid)) {
log.error("同步主计划时项目id和uuid都不能为空");
return SdmResponse.failed("同步主计划时项目id和uuid都不能为空");
}
Long tenantId = ThreadLocalContext.getTenantId();
Long jobNumber = ThreadLocalContext.getUserId();
String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
List<LyricVMainPlanDM> mainPlanList = lyricVMainPlanDMService.lambdaQuery().eq(LyricVMainPlanDM::getProjectId, String.valueOf(projectId)).list();
log.info("mainPlanList为{}", mainPlanList);
if (CollectionUtils.isEmpty(mainPlanList)) {
log.info("mainPlanList为空");
return SdmResponse.success();
}
List<SimulationNode> nodeList = this.lambdaQuery().eq(SimulationNode::getProjectSource, SYNC_PROJECT_SOURCE)
.eq(SimulationNode::getNodeType, NodeTypeEnum.PHASE.getValue())
.list();
if (CollectionUtils.isNotEmpty(nodeList)) {
List<String> nodeNameList = nodeList.stream().map(SimulationNode::getNodeName).toList();
log.info("nodeNameList为{}", nodeNameList);
mainPlanList = mainPlanList.stream().filter(planInfo -> !nodeNameList.contains(String.valueOf(planInfo.getSubject()))).toList();
if (CollectionUtils.isEmpty(mainPlanList)) {
log.info("本次同步到的主计划都已经进行过同步");
return SdmResponse.success();
}
}
log.info("同步到的主计划编号集合为:{}", mainPlanList.stream().map(LyricVMainPlanDM::getSubject).toList());
List<SimulationNode> simulationNodeList = new ArrayList<>();
for (LyricVMainPlanDM newPhaseInfo : mainPlanList) {
String uuid = RandomUtil.generateString(32);
SimulationNode simulationNode = new SimulationNode();
simulationNode.setUuid(uuid);
simulationNode.setOwnRootNodeUuid(uuid);
simulationNode.setNodeName(StringUtils.isNotBlank(newPhaseInfo.getSubject()) ? newPhaseInfo.getSubject() : "默认阶段");
simulationNode.setNodeType(NodeTypeEnum.PHASE.getValue());
simulationNode.setNodeStatus("0");
simulationNode.setNodeLevel(1);
simulationNode.setTenantId(tenantId);
simulationNode.setExeStatus("0");
simulationNode.setCreator(jobNumber);
simulationNode.setCreateTime(curDateStr);
simulationNode.setTag1(projectUuid);
simulationNode.setTag2(uuid);
try {
createDir(simulationNode.getUuid(), simulationNode.getNodeType(), simulationNode.getTag1(), simulationNode.getNodeName());
} catch (Exception e) {
log.error("同步主计划创建文件夹时有异常:{}", e.getMessage());
}
simulationNodeList.add(simulationNode);
}
this.saveBatch(simulationNodeList);
// 更新文件权限
for (SimulationNode simulationNode : simulationNodeList) {
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
updatePermissionReq.setUserId(jobNumber);
updatePermissionReq.setUuid(simulationNode.getUuid());
Map<Long, Byte> userPermissions = new HashMap<>();
userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
updatePermissionReq.setUserPermissions(userPermissions);
log.info("同步主计划时,更新用户权限的参数为:{}", updatePermissionReq);
SdmResponse updatePermissionResponse = null;
try {
updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
} catch (Exception e) {
log.error("同步主计划更新用户权限时有异常:{}", e.getMessage());
}
log.info("同步主计划时,更新用户权限的返回值为:{}", updatePermissionResponse);
}
return SdmResponse.success();
}
// public SdmResponse getMainPlanListByProjectId(Integer projectId, String projectUuid) {
// log.info("同步主计划projectId{}projectUuid{}", projectId, projectUuid);
// if (ObjectUtils.isEmpty(projectId) || ObjectUtils.isEmpty(projectUuid)) {
// log.error("同步主计划时项目id和uuid都不能为空");
// return SdmResponse.failed("同步主计划时项目id和uuid都不能为空");
// }
// Long tenantId = ThreadLocalContext.getTenantId();
// Long jobNumber = ThreadLocalContext.getUserId();
// String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
// List<LyricVMainPlanDM> mainPlanList = lyricVMainPlanDMService.lambdaQuery().eq(LyricVMainPlanDM::getProjectId, String.valueOf(projectId)).list();
// log.info("mainPlanList为{}", mainPlanList);
// if (CollectionUtils.isEmpty(mainPlanList)) {
// log.info("mainPlanList为空");
// return SdmResponse.success();
// }
// List<SimulationNode> nodeList = this.lambdaQuery().eq(SimulationNode::getProjectSource, SYNC_PROJECT_SOURCE)
// .eq(SimulationNode::getNodeType, NodeTypeEnum.PHASE.getValue())
// .list();
// if (CollectionUtils.isNotEmpty(nodeList)) {
// List<String> nodeNameList = nodeList.stream().map(SimulationNode::getNodeName).toList();
// log.info("nodeNameList为{}", nodeNameList);
// mainPlanList = mainPlanList.stream().filter(planInfo -> !nodeNameList.contains(String.valueOf(planInfo.getSubject()))).toList();
// if (CollectionUtils.isEmpty(mainPlanList)) {
// log.info("本次同步到的主计划都已经进行过同步");
// return SdmResponse.success();
// }
// }
// log.info("同步到的主计划编号集合为:{}", mainPlanList.stream().map(LyricVMainPlanDM::getSubject).toList());
// List<SimulationNode> simulationNodeList = new ArrayList<>();
// for (LyricVMainPlanDM newPhaseInfo : mainPlanList) {
// String uuid = RandomUtil.generateString(32);
// SimulationNode simulationNode = new SimulationNode();
// simulationNode.setUuid(uuid);
// simulationNode.setOwnRootNodeUuid(uuid);
// simulationNode.setNodeName(StringUtils.isNotBlank(newPhaseInfo.getSubject()) ? newPhaseInfo.getSubject() : "默认阶段");
// simulationNode.setNodeType(NodeTypeEnum.PHASE.getValue());
// simulationNode.setNodeStatus("0");
// simulationNode.setNodeLevel(1);
// simulationNode.setTenantId(tenantId);
// simulationNode.setExeStatus("0");
// simulationNode.setCreator(jobNumber);
// simulationNode.setCreateTime(curDateStr);
// simulationNode.setTag1(projectUuid);
// simulationNode.setTag2(uuid);
// try {
// createDir(simulationNode.getUuid(), simulationNode.getNodeType(), simulationNode.getTag1(), simulationNode.getNodeName());
// } catch (Exception e) {
// log.error("同步主计划创建文件夹时有异常:{}", e.getMessage());
// }
// simulationNodeList.add(simulationNode);
// }
// this.saveBatch(simulationNodeList);
// // 更新文件权限
// for (SimulationNode simulationNode : simulationNodeList) {
// UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
// updatePermissionReq.setUserId(jobNumber);
// updatePermissionReq.setUuid(simulationNode.getUuid());
// Map<Long, Byte> userPermissions = new HashMap<>();
// userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
// updatePermissionReq.setUserPermissions(userPermissions);
// log.info("同步主计划时,更新用户权限的参数为:{}", updatePermissionReq);
// SdmResponse updatePermissionResponse = null;
// try {
// updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
// } catch (Exception e) {
// log.error("同步主计划更新用户权限时有异常:{}", e.getMessage());
// }
// log.info("同步主计划时,更新用户权限的返回值为:{}", updatePermissionResponse);
// }
// return SdmResponse.success();
// }
/**
* 判断字符串是否可以安全转换为Long类型

View File

@@ -193,21 +193,21 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
private CacheManager cacheManager;
@Override
@Transactional
public SdmResponse add(JSONObject jsonObject) {
Long tenantId = ThreadLocalContext.getTenantId();
TaskNodeTree taskNodeTree = parseTaskTree(jsonObject);
HashMap<String, List<String>> idMap = new HashMap<>();
HashMap<String, List<String>> taskIdMap = new HashMap<>();
SdmResponse response = realAddSimulationTaskItems(taskNodeTree, "", tenantId,idMap,taskIdMap);
if (response.getCode() != ResultCode.SUCCESS.getCode()) {
log.error("新增任务失败,清理新增数据!");
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed("新增任务失败!");
}
return response;
}
// @Override
// @Transactional
// public SdmResponse add(JSONObject jsonObject) {
// Long tenantId = ThreadLocalContext.getTenantId();
// TaskNodeTree taskNodeTree = parseTaskTree(jsonObject);
// HashMap<String, List<String>> idMap = new HashMap<>();
// HashMap<String, List<String>> taskIdMap = new HashMap<>();
// SdmResponse response = realAddSimulationTaskItems(taskNodeTree, "", tenantId,idMap,taskIdMap);
// if (response.getCode() != ResultCode.SUCCESS.getCode()) {
// log.error("新增任务失败,清理新增数据!");
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return SdmResponse.failed("新增任务失败!");
// }
// return response;
// }
@Override
public SdmResponse edit(List<TaskEditNodeReq> taskEditNodeReqList) {
@@ -2131,7 +2131,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
NodeTypeEnum.PROJECT.getValue().equals(taskNode.getNodeType()) ? null : (ObjectUtils.isNotEmpty(projectNodePoMap.get(taskNode.getParentId()))
? projectNodePoMap.get(taskNode.getParentId()).getUuid()
: projectNodeMap.get(taskNode.getParentId()).getUuid()),
taskNode.getNodeName());
taskNode.getNodeName(),taskNode);
}
for (TaskNode taskNode : projectNodeList) {
updatePermission(userId,taskNode.getUuid(),FilePermissionEnum.ALL_EXCLUDE_DELETE.getValue());
@@ -2258,7 +2258,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
response = SdmResponse.failed("新增分析项时,创建文件失败");
return response;
}
createDir(taskNode.getUuid(),taskNode.getNodeType(), projectNodePoMap.get(taskNode.getParentId()).getUuid(), taskNode.getNodeName());
createDir(taskNode.getUuid(),taskNode.getNodeType(), projectNodePoMap.get(taskNode.getParentId()).getUuid(), taskNode.getNodeName(),taskNode);
}
} else {
@@ -2270,7 +2270,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
}
createDir(taskNode.getUuid(),taskNode.getNodeType(),
ObjectUtils.isNotEmpty(projectNodePoMap.get(taskNode.getParentId())) ? projectNodePoMap.get(taskNode.getParentId()).getUuid() : projectNodeMap.get(taskNode.getParentId()).getUuid(),
taskNode.getNodeName());
taskNode.getNodeName(),taskNode);
}
}
for (TaskNode taskNode : taskNodeList) {
@@ -2317,7 +2317,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
response = SdmResponse.failed("新增指标时,创建文件失败");
return response;
}
createDir(taskNode.getUuid(), taskNode.getNodeType(), taskNodePoMap.get(taskNode.getTaskId()).getUuid(), taskNode.getNodeName());
createDir(taskNode.getUuid(), taskNode.getNodeType(), taskNodePoMap.get(taskNode.getTaskId()).getUuid(), taskNode.getNodeName(),taskNode);
}
} else {
for (TaskNode taskNode : projectNodePerformanceList) {
@@ -2328,7 +2328,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
}
createDir(taskNode.getUuid(),taskNode.getNodeType(),
ObjectUtils.isNotEmpty(taskNodePoMap.get(taskNode.getTaskId())) ? taskNodePoMap.get(taskNode.getTaskId()).getUuid() : taskNodeMap.get(taskNode.getTaskId()).getUuid(),
taskNode.getNodeName());
taskNode.getNodeName(),taskNode);
}
}
for (TaskNode taskNode : projectNodePerformanceList) {
@@ -2352,209 +2352,209 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
return response;
}
private SdmResponse realAddSimulationTaskItems(TaskNodeTree taskNodeTree, String parentId, Long tenantId,HashMap<String, List<String>> idMap,HashMap<String, List<String>> taskIdMap) {
Long jobNumber = ThreadLocalContext.getUserId();
SdmResponse response = SdmResponse.success();
if (CollectionUtils.isEmpty(taskNodeTree.getNodeList())) {
response = SdmResponse.failed("节点不能为空");
} else {
List<TaskNode> projectNodeList = new ArrayList<>();
List<TaskMemberNode> projectNodeMemberList = new ArrayList<>();
List<TaskExtraNode> projectNodeExtraList = new ArrayList<>();
List<TaskNode> taskNodeList = new ArrayList<>();
List<TaskMemberNode> taskNodeMemberList = new ArrayList<>();
List<TaskExtraNode> taskNodeExtraList = new ArrayList<>();
List<TaskNode> projectNodePerformanceList = new ArrayList<>();
List<TaskExtraNode> projectNodePerformanceExtraList = new ArrayList<>();
for (TaskNode taskNode : taskNodeTree.getNodeList()) {
traverseTaskNode(taskNode.getPid(), tenantId, VersionEnum.INITIAL.getCode(), taskNode, projectNodeList, projectNodeMemberList, projectNodeExtraList, taskNodeList, taskNodeMemberList, taskNodeExtraList, projectNodePerformanceList, projectNodePerformanceExtraList, null,idMap,taskIdMap);
}
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String createTime = format.format(new Date());
Map<String, TaskNode> projectNodeMap = Map.of();
Map<String, TaskNode> taskNodeMap = Map.of();
if (CollectionUtils.isNotEmpty(projectNodeList)) {
projectNodeList.forEach(projectNode -> projectNode.setCreateTime(createTime));
if (mapper.batchAddSimulationNodes(projectNodeList) <= 0) {
response = SdmResponse.failed("添加节点失败");
return response;
}
projectNodeMap = projectNodeList.stream().collect(Collectors.groupingBy(
TaskNode::getUuid,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0)
)
));
Map<String, ProjectNodePo> projectNodePoMap = Map.of();
List<ProjectNodePo> newProjectNodeList = mapper.getNodeListByNodeIdList(projectNodeList.stream().map(TaskNode::getParentId).toList());
if (CollectionUtils.isNotEmpty(newProjectNodeList)) {
projectNodePoMap = newProjectNodeList.stream().collect(Collectors.groupingBy(
ProjectNodePo::getUuid,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0)
)
));
}
for (TaskNode taskNode : projectNodeList) {
if (ObjectUtils.isEmpty(projectNodeMap.get(taskNode.getParentId()))
&& ObjectUtils.isEmpty(projectNodePoMap.get(taskNode.getParentId())) && !NodeTypeEnum.PROJECT.getValue().equals(taskNode.getNodeType())) {
log.error("新增节点时根据parentId{},未查询到节点", taskNode.getParentId());
response = SdmResponse.failed("新增节点时,创建文件失败");
return response;
}
createDir(taskNode.getUuid(),
NodeTypeEnum.PROJECT.getValue().equals(taskNode.getNodeType()) ? null : (ObjectUtils.isNotEmpty(projectNodePoMap.get(taskNode.getParentId()))
? projectNodePoMap.get(taskNode.getParentId()).getUuid()
: projectNodeMap.get(taskNode.getParentId()).getUuid()),
taskNode.getNodeName());
}
}
if (CollectionUtils.isNotEmpty(projectNodeExtraList)) {
projectNodeExtraList.forEach(projectNode -> projectNode.setCreateTime(createTime));
if (mapper.batchAddSimulationNodeExtra(projectNodeExtraList) <= 0) {
response = SdmResponse.failed("添加节点附加属性失败");
return response;
}
}
if (CollectionUtils.isNotEmpty(projectNodeMemberList)) {
projectNodeMemberList.forEach(projectNode -> {
projectNode.setCreateTime(createTime);
projectNode.setType(NodeMemberTypeEnum.MANAGER.getCode());
});
if (mapper.batchAddSimulationNodeMember(projectNodeMemberList) <= 0) {
response = SdmResponse.failed("添加节点成员属性失败");
}
}
// private SdmResponse realAddSimulationTaskItems(TaskNodeTree taskNodeTree, String parentId, Long tenantId,HashMap<String, List<String>> idMap,HashMap<String, List<String>> taskIdMap) {
// Long jobNumber = ThreadLocalContext.getUserId();
// SdmResponse response = SdmResponse.success();
// if (CollectionUtils.isEmpty(taskNodeTree.getNodeList())) {
// response = SdmResponse.failed("节点不能为空");
// } else {
// List<TaskNode> projectNodeList = new ArrayList<>();
// List<TaskMemberNode> projectNodeMemberList = new ArrayList<>();
// List<TaskExtraNode> projectNodeExtraList = new ArrayList<>();
// List<TaskNode> taskNodeList = new ArrayList<>();
// List<TaskMemberNode> taskNodeMemberList = new ArrayList<>();
// List<TaskExtraNode> taskNodeExtraList = new ArrayList<>();
// List<TaskNode> projectNodePerformanceList = new ArrayList<>();
// List<TaskExtraNode> projectNodePerformanceExtraList = new ArrayList<>();
// for (TaskNode taskNode : taskNodeTree.getNodeList()) {
// traverseTaskNode(taskNode.getPid(), tenantId, VersionEnum.INITIAL.getCode(), taskNode, projectNodeList, projectNodeMemberList, projectNodeExtraList, taskNodeList, taskNodeMemberList, taskNodeExtraList, projectNodePerformanceList, projectNodePerformanceExtraList, null,idMap,taskIdMap);
// }
// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String createTime = format.format(new Date());
// Map<String, TaskNode> projectNodeMap = Map.of();
// Map<String, TaskNode> taskNodeMap = Map.of();
// if (CollectionUtils.isNotEmpty(projectNodeList)) {
// projectNodeList.forEach(projectNode -> projectNode.setCreateTime(createTime));
// if (mapper.batchAddSimulationNodes(projectNodeList) <= 0) {
// response = SdmResponse.failed("添加节点失败");
// return response;
// }
// projectNodeMap = projectNodeList.stream().collect(Collectors.groupingBy(
// TaskNode::getUuid,
// Collectors.collectingAndThen(
// Collectors.toList(),
// list -> list.get(0)
// )
// ));
// Map<String, ProjectNodePo> projectNodePoMap = Map.of();
// List<ProjectNodePo> newProjectNodeList = mapper.getNodeListByNodeIdList(projectNodeList.stream().map(TaskNode::getParentId).toList());
// if (CollectionUtils.isNotEmpty(newProjectNodeList)) {
// projectNodePoMap = newProjectNodeList.stream().collect(Collectors.groupingBy(
// ProjectNodePo::getUuid,
// Collectors.collectingAndThen(
// Collectors.toList(),
// list -> list.get(0)
// )
// ));
// }
// for (TaskNode taskNode : projectNodeList) {
// if (ObjectUtils.isEmpty(projectNodeMap.get(taskNode.getParentId()))
// && ObjectUtils.isEmpty(projectNodePoMap.get(taskNode.getParentId())) && !NodeTypeEnum.PROJECT.getValue().equals(taskNode.getNodeType())) {
// log.error("新增节点时根据parentId{},未查询到节点", taskNode.getParentId());
// response = SdmResponse.failed("新增节点时,创建文件失败");
// return response;
// }
// createDir(taskNode.getUuid(),
// NodeTypeEnum.PROJECT.getValue().equals(taskNode.getNodeType()) ? null : (ObjectUtils.isNotEmpty(projectNodePoMap.get(taskNode.getParentId()))
// ? projectNodePoMap.get(taskNode.getParentId()).getUuid()
// : projectNodeMap.get(taskNode.getParentId()).getUuid()),
// taskNode.getNodeName());
// }
// }
// if (CollectionUtils.isNotEmpty(projectNodeExtraList)) {
// projectNodeExtraList.forEach(projectNode -> projectNode.setCreateTime(createTime));
// if (mapper.batchAddSimulationNodeExtra(projectNodeExtraList) <= 0) {
// response = SdmResponse.failed("添加节点附加属性失败");
// return response;
// }
// }
// if (CollectionUtils.isNotEmpty(projectNodeMemberList)) {
// projectNodeMemberList.forEach(projectNode -> {
// projectNode.setCreateTime(createTime);
// projectNode.setType(NodeMemberTypeEnum.MANAGER.getCode());
// });
// if (mapper.batchAddSimulationNodeMember(projectNodeMemberList) <= 0) {
// response = SdmResponse.failed("添加节点成员属性失败");
// }
// }
//
// if (CollectionUtils.isNotEmpty(taskNodeList)) {
// taskNodeList.forEach(projectNode -> {
//// projectNode.setCreator(jobNumber);
// projectNode.setCreateTime(createTime);
// });
// if (mapper.batchAddSimulationTask(taskNodeList) <= 0) {
// response = SdmResponse.failed("新增任务失败");
// return response;
// }
// taskNodeMap = taskNodeList.stream().collect(Collectors.groupingBy(
// TaskNode::getUuid,
// Collectors.collectingAndThen(
// Collectors.toList(),
// list -> list.get(0)
// )
// ));
// Map<String, ProjectNodePo> projectNodePoMap = Map.of();
// List<ProjectNodePo> newProjectNodeList = mapper.getNodeListByNodeIdList(taskNodeList.stream().map(TaskNode::getParentId).toList());
// if (CollectionUtils.isNotEmpty(newProjectNodeList)) {
// projectNodePoMap = newProjectNodeList.stream().collect(Collectors.groupingBy(
// ProjectNodePo::getUuid,
// Collectors.collectingAndThen(
// Collectors.toList(),
// list -> list.get(0)
// )
// ));
// }
// if (projectNodeMap.isEmpty()) {
// // projectNodeMap为空说明是直接添加分析项的情况
// for (TaskNode taskNode : taskNodeList) {
// if (ObjectUtils.isEmpty(projectNodePoMap.get(taskNode.getParentId()))) {
// log.error("projectNodeMap为空根据parentId{},未查询到节点", taskNode.getParentId());
// response = SdmResponse.failed("新增分析项时,创建文件失败");
// return response;
// }
// createDir(taskNode.getUuid(), projectNodePoMap.get(taskNode.getParentId()).getUuid(), taskNode.getNodeName());
// }
// } else {
// for (TaskNode taskNode : taskNodeList) {
// if (ObjectUtils.isEmpty(projectNodePoMap.get(taskNode.getParentId())) && ObjectUtils.isEmpty(projectNodeMap.get(taskNode.getParentId()))) {
// log.error("projectNodeMap不空根据parentId{},未查询到节点", taskNode.getParentId());
// response = SdmResponse.failed("新增分析项时,创建文件失败");
// return response;
// }
// createDir(taskNode.getUuid(),
// ObjectUtils.isNotEmpty(projectNodePoMap.get(taskNode.getParentId())) ? projectNodePoMap.get(taskNode.getParentId()).getUuid() : projectNodeMap.get(taskNode.getParentId()).getUuid(),
// taskNode.getNodeName());
// }
// }
// }
// if (CollectionUtils.isNotEmpty(taskNodeExtraList)) {
// taskNodeExtraList.forEach(projectNode -> projectNode.setCreateTime(createTime));
// if (mapper.batchAddSimulationTaskExtra(taskNodeExtraList) <= 0) {
// response = SdmResponse.failed("新增任务附加属性失败");
// }
// }
// if (CollectionUtils.isNotEmpty(taskNodeMemberList)) {
// taskNodeMemberList.forEach(projectNode -> projectNode.setCreateTime(createTime));
// if (mapper.batchAddSimulationTaskMember(taskNodeMemberList) <= 0) {
// response = SdmResponse.failed("新增任务成员属性失败");
// return response;
// }
// }
// if (CollectionUtils.isNotEmpty(projectNodePerformanceList)) {
// projectNodePerformanceList.forEach(projectNode -> projectNode.setCreateTime(createTime));
// if (mapper.batchAddSimulationPerformance(projectNodePerformanceList) <= 0) {
// response = SdmResponse.failed("新增指标失败");
// return response;
// }
//
// List<TaskNodePo> newTaskNodeList = mapper.getTaskListByNodeIdList(projectNodePerformanceList.stream().map(TaskNode::getTaskId).toList());
// Map<String, TaskNodePo> taskNodePoMap = Map.of();
// if (CollectionUtils.isNotEmpty(newTaskNodeList)) {
// taskNodePoMap = newTaskNodeList.stream().collect(Collectors.groupingBy(
// TaskNodePo::getUuid,
// Collectors.collectingAndThen(
// Collectors.toList(),
// list -> list.get(0)
// )
// ));
// }
// if (taskNodeMap.isEmpty()) {
// // taskNodeMap为空说明是直接添加指标的情况
// for (TaskNode taskNode : projectNodePerformanceList) {
// if (ObjectUtils.isEmpty(taskNodePoMap.get(taskNode.getTaskId()))) {
// log.error("taskNodeMap为空根据taskId{},未查询到任务", taskNode.getTaskId());
// response = SdmResponse.failed("新增指标时,创建文件失败");
// return response;
// }
// createDir(taskNode.getUuid(), taskNodePoMap.get(taskNode.getTaskId()).getUuid(), taskNode.getNodeName());
// }
// } else {
// for (TaskNode taskNode : projectNodePerformanceList) {
// if (ObjectUtils.isEmpty(taskNodePoMap.get(taskNode.getTaskId())) && ObjectUtils.isEmpty(taskNodeMap.get(taskNode.getTaskId()))) {
// log.error("taskNodeMap不空根据taskId{},未查询到任务", taskNode.getTaskId());
// response = SdmResponse.failed("新增指标时,创建文件失败");
// return response;
// }
// createDir(taskNode.getUuid(),
// ObjectUtils.isNotEmpty(taskNodePoMap.get(taskNode.getTaskId())) ? taskNodePoMap.get(taskNode.getTaskId()).getUuid() : taskNodeMap.get(taskNode.getTaskId()).getUuid(),
// taskNode.getNodeName());
// }
// }
// }
// if (CollectionUtils.isNotEmpty(projectNodePerformanceExtraList)) {
// for (TaskExtraNode performanceExtraNode : projectNodePerformanceExtraList) {
// performanceExtraNode.setCreateTime(createTime);
// performanceExtraNode.setValueType(ValueTypeEnum.DEFAULT.getValue());
// }
// if (mapper.batchAddSimulationPerformanceExtra(projectNodePerformanceExtraList) <= 0) {
// response = SdmResponse.failed("新增任务指标附加属性失败");
// return response;
// }
// }
// }
// return response;
// }
if (CollectionUtils.isNotEmpty(taskNodeList)) {
taskNodeList.forEach(projectNode -> {
// projectNode.setCreator(jobNumber);
projectNode.setCreateTime(createTime);
});
if (mapper.batchAddSimulationTask(taskNodeList) <= 0) {
response = SdmResponse.failed("新增任务失败");
return response;
}
taskNodeMap = taskNodeList.stream().collect(Collectors.groupingBy(
TaskNode::getUuid,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0)
)
));
Map<String, ProjectNodePo> projectNodePoMap = Map.of();
List<ProjectNodePo> newProjectNodeList = mapper.getNodeListByNodeIdList(taskNodeList.stream().map(TaskNode::getParentId).toList());
if (CollectionUtils.isNotEmpty(newProjectNodeList)) {
projectNodePoMap = newProjectNodeList.stream().collect(Collectors.groupingBy(
ProjectNodePo::getUuid,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0)
)
));
}
if (projectNodeMap.isEmpty()) {
// projectNodeMap为空说明是直接添加分析项的情况
for (TaskNode taskNode : taskNodeList) {
if (ObjectUtils.isEmpty(projectNodePoMap.get(taskNode.getParentId()))) {
log.error("projectNodeMap为空根据parentId{},未查询到节点", taskNode.getParentId());
response = SdmResponse.failed("新增分析项时,创建文件失败");
return response;
}
createDir(taskNode.getUuid(), projectNodePoMap.get(taskNode.getParentId()).getUuid(), taskNode.getNodeName());
}
} else {
for (TaskNode taskNode : taskNodeList) {
if (ObjectUtils.isEmpty(projectNodePoMap.get(taskNode.getParentId())) && ObjectUtils.isEmpty(projectNodeMap.get(taskNode.getParentId()))) {
log.error("projectNodeMap不空根据parentId{},未查询到节点", taskNode.getParentId());
response = SdmResponse.failed("新增分析项时,创建文件失败");
return response;
}
createDir(taskNode.getUuid(),
ObjectUtils.isNotEmpty(projectNodePoMap.get(taskNode.getParentId())) ? projectNodePoMap.get(taskNode.getParentId()).getUuid() : projectNodeMap.get(taskNode.getParentId()).getUuid(),
taskNode.getNodeName());
}
}
}
if (CollectionUtils.isNotEmpty(taskNodeExtraList)) {
taskNodeExtraList.forEach(projectNode -> projectNode.setCreateTime(createTime));
if (mapper.batchAddSimulationTaskExtra(taskNodeExtraList) <= 0) {
response = SdmResponse.failed("新增任务附加属性失败");
}
}
if (CollectionUtils.isNotEmpty(taskNodeMemberList)) {
taskNodeMemberList.forEach(projectNode -> projectNode.setCreateTime(createTime));
if (mapper.batchAddSimulationTaskMember(taskNodeMemberList) <= 0) {
response = SdmResponse.failed("新增任务成员属性失败");
return response;
}
}
if (CollectionUtils.isNotEmpty(projectNodePerformanceList)) {
projectNodePerformanceList.forEach(projectNode -> projectNode.setCreateTime(createTime));
if (mapper.batchAddSimulationPerformance(projectNodePerformanceList) <= 0) {
response = SdmResponse.failed("新增指标失败");
return response;
}
List<TaskNodePo> newTaskNodeList = mapper.getTaskListByNodeIdList(projectNodePerformanceList.stream().map(TaskNode::getTaskId).toList());
Map<String, TaskNodePo> taskNodePoMap = Map.of();
if (CollectionUtils.isNotEmpty(newTaskNodeList)) {
taskNodePoMap = newTaskNodeList.stream().collect(Collectors.groupingBy(
TaskNodePo::getUuid,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0)
)
));
}
if (taskNodeMap.isEmpty()) {
// taskNodeMap为空说明是直接添加指标的情况
for (TaskNode taskNode : projectNodePerformanceList) {
if (ObjectUtils.isEmpty(taskNodePoMap.get(taskNode.getTaskId()))) {
log.error("taskNodeMap为空根据taskId{},未查询到任务", taskNode.getTaskId());
response = SdmResponse.failed("新增指标时,创建文件失败");
return response;
}
createDir(taskNode.getUuid(), taskNodePoMap.get(taskNode.getTaskId()).getUuid(), taskNode.getNodeName());
}
} else {
for (TaskNode taskNode : projectNodePerformanceList) {
if (ObjectUtils.isEmpty(taskNodePoMap.get(taskNode.getTaskId())) && ObjectUtils.isEmpty(taskNodeMap.get(taskNode.getTaskId()))) {
log.error("taskNodeMap不空根据taskId{},未查询到任务", taskNode.getTaskId());
response = SdmResponse.failed("新增指标时,创建文件失败");
return response;
}
createDir(taskNode.getUuid(),
ObjectUtils.isNotEmpty(taskNodePoMap.get(taskNode.getTaskId())) ? taskNodePoMap.get(taskNode.getTaskId()).getUuid() : taskNodeMap.get(taskNode.getTaskId()).getUuid(),
taskNode.getNodeName());
}
}
}
if (CollectionUtils.isNotEmpty(projectNodePerformanceExtraList)) {
for (TaskExtraNode performanceExtraNode : projectNodePerformanceExtraList) {
performanceExtraNode.setCreateTime(createTime);
performanceExtraNode.setValueType(ValueTypeEnum.DEFAULT.getValue());
}
if (mapper.batchAddSimulationPerformanceExtra(projectNodePerformanceExtraList) <= 0) {
response = SdmResponse.failed("新增任务指标附加属性失败");
return response;
}
}
}
return response;
}
private void createDir(String uuid, String parentUuid, String dirName) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setParentUuId(parentUuid);
createDirReq.setDirName(dirName);
log.info("调用创建文件夹的参数为:{}", createDirReq);
// SdmResponse response = dataClientAPIClient.createDir(createDirReq);
// log.info("调用创建文件夹的返回值为:{}", response);
}
// private void createDir(String uuid, String parentUuid, String dirName) {
// CreateDirReq createDirReq = new CreateDirReq();
// createDirReq.setUuId(uuid);
// createDirReq.setParentUuId(parentUuid);
// createDirReq.setDirName(dirName);
// log.info("调用创建文件夹的参数为:{}", createDirReq);
//// SdmResponse response = dataClientAPIClient.createDir(createDirReq);
//// log.info("调用创建文件夹的返回值为:{}", response);
// }
/**
* 创建文件夹
@@ -2564,13 +2564,16 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
* @param parentUuid 父节点uuid
* @param dirName 待长江文件夹名称
*/
private void createDir(String uuid, String uuidOwnType, String parentUuid, String dirName) {
private void createDir(String uuid, String uuidOwnType, String parentUuid, String dirName,TaskNode taskNode) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setUuIdOwnType(uuidOwnType);
createDirReq.setParentUuId(ObjectUtils.isNotEmpty(parentUuid) ? parentUuid : null);
createDirReq.setDirName(dirName);
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(taskNode,tagReq);
createDirReq.setTagReq(tagReq);
log.info("创建项目阶段时,调用创建文件夹的参数为:{}", createDirReq);
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
log.info("创建项目阶段时,调用创建文件夹的返回值为:{}", response);

View File

@@ -2545,26 +2545,48 @@ public class TaskServiceImpl implements ITaskService {
return SdmResponse.success(discipline2TaskUUIDMap);
}
private SdmResponse createDir(String uuid, String uuidOwnType, String parentUuid, String dirName) {
private SdmResponse createDir(String uuid, String uuidOwnType, String parentUuid, String dirName,SpdmProjectNodeEditReq spdmProjectNodeEditReq) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setUuIdOwnType(uuidOwnType);
createDirReq.setParentUuId(parentUuid);
createDirReq.setDirName(dirName);
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(spdmProjectNodeEditReq,tagReq);
createDirReq.setTagReq(tagReq);
log.info("同步CID任务调用创建文件夹的参数为{}", createDirReq);
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
log.info("同步CID调用创建文件夹的返回值为{}", response);
return response;
}
private SdmResponse createDirNew(String uuid, String uuidOwnType, String parentUuid, String dirName) {
private SdmResponse createTaskDir(String uuid, String uuidOwnType, String parentUuid, String dirName,CidTaskNode taskNode) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setUuIdOwnType(uuidOwnType);
createDirReq.setParentUuId(parentUuid);
createDirReq.setDirName(dirName);
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(taskNode,tagReq);
createDirReq.setTagReq(tagReq);
log.info("同步CID任务调用创建文件夹的参数为{}", createDirReq);
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
log.info("同步CID调用创建文件夹的返回值为{}", response);
return response;
}
private SdmResponse createDirNew(String uuid, String uuidOwnType, String parentUuid, String dirName,SimulationTask task) {
CreateDirReq createDirReq = new CreateDirReq();
createDirReq.setUuId(uuid);
createDirReq.setUuIdOwnType(uuidOwnType);
createDirReq.setParentUuId(parentUuid);
createDirReq.setDirName(dirName);
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(task,tagReq);
createDirReq.setTagReq(tagReq);
log.info("批量修改任务时调用创建文件夹的参数为:{}", createDirReq);
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
log.info("批量修改任务时调用创建文件夹的返回值为:{}", response);
@@ -2606,7 +2628,7 @@ public class TaskServiceImpl implements ITaskService {
}
try {
// 创建项目节点的文件夹
SdmResponse response = createDir(spdmProjectNodeEditReq.getUuid(), spdmProjectNodeEditReq.getNodeType(), null, spdmProjectNodeEditReq.getNodeName());
SdmResponse response = createDir(spdmProjectNodeEditReq.getUuid(), spdmProjectNodeEditReq.getNodeType(), null, spdmProjectNodeEditReq.getNodeName(),spdmProjectNodeEditReq);
if (ObjectUtils.isEmpty(response) || response.getCode() != ResultCode.SUCCESS.getCode()) {
log.error("同步CID项目{}时,创建文件夹失败,原因为:{}", req.getProjectId() + " " + req.getProjectName(), response.getMessage());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -2675,7 +2697,7 @@ public class TaskServiceImpl implements ITaskService {
SdmResponse response;
// 创建任务节点的文件夹
for (CidTaskNode taskNode : taskNodeList) {
response = createDir(taskNode.getUuid(), NodeTypeEnum.TASK.getValue(), req.getProjectId(), taskNode.getTaskName());
response = createTaskDir(taskNode.getUuid(), NodeTypeEnum.TASK.getValue(), req.getProjectId(), taskNode.getTaskName(),taskNode);
if (ObjectUtils.isEmpty(response) || response.getCode() != ResultCode.SUCCESS.getCode()) {
log.error("同步CID任务时创建任务{}的文件夹失败,原因为:{}", taskNode.getUuid() + " " + taskNode.getTaskName(), response.getMessage());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -4210,7 +4232,7 @@ public class TaskServiceImpl implements ITaskService {
log.info("当前任务:{},没有创建过文件夹",taskId);
}
// 并新建relateTag下的文件夹
SdmResponse taskCreateDirResponse = createDirNew(task.getUuid(), NodeTypeEnum.TASK.getValue(), relateTag, task.getTaskName());
SdmResponse taskCreateDirResponse = createDirNew(task.getUuid(), NodeTypeEnum.TASK.getValue(), relateTag, task.getTaskName(),task);
if (ObjectUtils.isEmpty(taskCreateDirResponse) || taskCreateDirResponse.getCode() != ResultCode.SUCCESS.getCode()) {
log.error("新建任务:{}的文件夹失败,原因为:{}", task.getTaskName(), taskCreateDirResponse.getMessage());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -4234,7 +4256,7 @@ public class TaskServiceImpl implements ITaskService {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed(task.getTaskName() + "创建失败,原因:未查询到任务上层节点");
}
SdmResponse taskCreateDirResponse = createDirNew(task.getUuid(), NodeTypeEnum.TASK.getValue(), maxNonEmptyTag, task.getTaskName());
SdmResponse taskCreateDirResponse = createDirNew(task.getUuid(), NodeTypeEnum.TASK.getValue(), maxNonEmptyTag, task.getTaskName(),task);
if (ObjectUtils.isEmpty(taskCreateDirResponse) || taskCreateDirResponse.getCode() != ResultCode.SUCCESS.getCode()) {
log.error("{}创建失败,原因为:{}", task.getTaskName(), convertErrorMsg(taskCreateDirResponse.getMessage()));
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();