Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -98,17 +98,17 @@ public class SimulationTaskController {
|
||||
return taskService.exportTask(taskExportExcelFormat, httpservletResponse);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步CID创建的任务
|
||||
*
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/synchronizeCidTask")
|
||||
@Operation(summary = "同步CID创建的任务", description = "同步CID创建的任务")
|
||||
public SdmResponse synchronizeCidTask(@RequestBody SpdmSyncCidTaskReq req) {
|
||||
return taskService.synchronizeCidTask(req);
|
||||
}
|
||||
// /**
|
||||
// * 同步CID创建的任务
|
||||
// *
|
||||
// * @param req
|
||||
// * @return
|
||||
// */
|
||||
// @PostMapping("/synchronizeCidTask")
|
||||
// @Operation(summary = "同步CID创建的任务", description = "同步CID创建的任务")
|
||||
// public SdmResponse synchronizeCidTask(@RequestBody SpdmSyncCidTaskReq req) {
|
||||
// return taskService.synchronizeCidTask(req);
|
||||
// }
|
||||
|
||||
/**
|
||||
* 获取任务详情
|
||||
|
||||
@@ -5,6 +5,10 @@ import com.sdm.common.entity.req.data.UploadFilesReq;
|
||||
|
||||
import com.sdm.project.model.req.YA.GetModelNodeInfoReq;
|
||||
import com.sdm.project.model.req.YA.SaveModelNodeInfoReq;
|
||||
import com.sdm.project.model.req.YA.SyncCidProjectReq;
|
||||
import com.sdm.project.model.req.YA.SyncCidTaskReq;
|
||||
import com.sdm.project.service.INodeService;
|
||||
import com.sdm.project.service.ITaskService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -17,13 +21,18 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/dataManager/tree/node")
|
||||
@Tag(name = "宜安项目数据归档", description = "宜安项目模型数据关了")
|
||||
public class YAModelController {
|
||||
|
||||
@Resource
|
||||
private INodeService nodeService;
|
||||
|
||||
|
||||
@Resource
|
||||
private ITaskService taskService;
|
||||
|
||||
/**
|
||||
* 创建文件夹
|
||||
@@ -70,16 +79,16 @@ public class YAModelController {
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("SyncProject")
|
||||
public void syncCidProject()
|
||||
@PostMapping("syncProject")
|
||||
public void syncCidProject(@RequestBody @Validated SyncCidProjectReq req)
|
||||
{
|
||||
|
||||
nodeService.syncProject(req);
|
||||
}
|
||||
|
||||
@PostMapping("SyncCidTask")
|
||||
public void syncCidTask()
|
||||
@PostMapping("syncCidTask")
|
||||
public void syncCidTask(@RequestBody @Validated SyncCidTaskReq req)
|
||||
{
|
||||
|
||||
taskService.syncCidTask(req);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.sdm.project.model.req.YA;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ProjectTaskInfo {
|
||||
|
||||
@Schema(description = "任务名称")
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.sdm.project.model.req.YA;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@@ -10,5 +11,7 @@ public class SyncCidProjectReq {
|
||||
private String projectName;
|
||||
|
||||
@Schema(description = "项目Id")
|
||||
@NotBlank(message = "项目Id不能为空")
|
||||
private String projectId;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.sdm.project.model.req.YA;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -13,8 +14,9 @@ public class SyncCidTaskReq {
|
||||
private String projectName;
|
||||
|
||||
@Schema(description = "项目Id")
|
||||
@NotBlank(message = "项目Id不能为空")
|
||||
private String projectId;
|
||||
|
||||
@Schema(description = "")
|
||||
@Schema(description = "项目关联的任务集合")
|
||||
private List<ProjectTaskInfo> taskInfoList = new ArrayList<>();
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp;
|
||||
import com.sdm.common.entity.resp.project.SimulationNodeResp;
|
||||
import com.sdm.project.model.entity.SimulationNode;
|
||||
import com.sdm.project.model.req.*;
|
||||
import com.sdm.project.model.req.YA.SyncCidProjectReq;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
@@ -72,4 +73,5 @@ public interface INodeService extends IService<SimulationNode> {
|
||||
|
||||
SdmResponse getNodeDetailForData(GetNodeDetailReq req);
|
||||
|
||||
void syncProject(SyncCidProjectReq req);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.sdm.common.entity.ExportExcelFormat;
|
||||
import com.sdm.common.entity.req.task.TaskExportExcelFormat;
|
||||
import com.sdm.project.model.bo.ModifyTaskNode;
|
||||
import com.sdm.project.model.req.*;
|
||||
import com.sdm.project.model.req.YA.SyncCidTaskReq;
|
||||
import com.sdm.project.model.resp.GetAllRunResultByTaskIdResp;
|
||||
import com.sdm.project.model.resp.TaskCountResp;
|
||||
import com.sdm.project.model.resp.UserWorkloadResp;
|
||||
@@ -47,8 +48,10 @@ public interface ITaskService {
|
||||
*/
|
||||
SdmResponse exportTask(TaskExportExcelFormat taskExportExcelFormat , HttpServletResponse httpservletResponse);
|
||||
|
||||
SdmResponse synchronizeCidTask(SpdmSyncCidTaskReq req);
|
||||
// SdmResponse synchronizeCidTask(SpdmSyncCidTaskReq req);
|
||||
|
||||
SdmResponse getTaskDetail(GetTaskDetailReq req);
|
||||
|
||||
void syncCidTask(SyncCidTaskReq req);
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.common.common.ResultCode;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.common.ThreadLocalContext;
|
||||
import com.sdm.common.entity.ExportExcelFormat;
|
||||
@@ -45,6 +46,7 @@ import com.sdm.project.model.po.ProjectNodePo;
|
||||
import com.sdm.project.model.po.TaskNodeExtraPo;
|
||||
import com.sdm.project.model.po.TaskNodePo;
|
||||
import com.sdm.project.model.req.*;
|
||||
import com.sdm.project.model.req.YA.SyncCidProjectReq;
|
||||
import com.sdm.project.model.vo.*;
|
||||
import com.sdm.project.service.*;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
@@ -676,7 +678,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
* @param parentUuid 父节点uuid
|
||||
* @param dirName 待长江文件夹名称
|
||||
*/
|
||||
private void createDir(String uuid, String uuidOwnType, String parentUuid, String dirName) {
|
||||
private SdmResponse createDir(String uuid, String uuidOwnType, String parentUuid, String dirName) {
|
||||
CreateDirReq createDirReq = new CreateDirReq();
|
||||
createDirReq.setUuId(uuid);
|
||||
createDirReq.setUuIdOwnType(uuidOwnType);
|
||||
@@ -686,6 +688,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
log.info("创建项目阶段时,调用创建文件夹的参数为:{}", createDirReq);
|
||||
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
|
||||
log.info("创建项目阶段时,调用创建文件夹的返回值为:{}", response);
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@@ -1473,4 +1476,34 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
return SdmResponse.success(spdmNodeDetailForDataVo);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void syncProject(SyncCidProjectReq req) {
|
||||
log.info("syncProject参数为:{}", req);
|
||||
String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
||||
SpdmProjectNodeEditReq spdmProjectNodeEditReq = new SpdmProjectNodeEditReq();
|
||||
spdmProjectNodeEditReq.setNodeName(req.getProjectName());
|
||||
spdmProjectNodeEditReq.setNodeType(NodeTypeEnum.PROJECT.getValue());
|
||||
spdmProjectNodeEditReq.setUuid(req.getProjectId());
|
||||
spdmProjectNodeEditReq.setPid(req.getProjectId());
|
||||
spdmProjectNodeEditReq.setTag1(req.getProjectId());
|
||||
spdmProjectNodeEditReq.setCreateTime(curDateStr);
|
||||
spdmProjectNodeEditReq.setTenantId(1999999999999999999L);
|
||||
if (nodeMapper.addNodeBatch(Collections.singletonList(spdmProjectNodeEditReq)) <= 0) {
|
||||
log.error("同步CID项目:{}失败",req.getProjectId() + " " + req.getProjectName());
|
||||
return;
|
||||
}
|
||||
try {
|
||||
// 创建项目节点的文件夹
|
||||
SdmResponse response = createDir(spdmProjectNodeEditReq.getUuid(), spdmProjectNodeEditReq.getNodeType(), null, spdmProjectNodeEditReq.getNodeName());
|
||||
if (ObjectUtils.isEmpty(response) || response.getCode() != ResultCode.SUCCESS.getCode()) {
|
||||
log.error("同步CID项目:{}时,创建文件夹失败,原因为:{}",req.getProjectId() + " " + req.getProjectName(),response.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
}
|
||||
}catch (Exception ex) {
|
||||
log.error("同步CID项目:{}时,创建文件夹异常,原因为:{}",req.getProjectId() + " " + req.getProjectName(),ex.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.sdm.project.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.sdm.common.common.ResultCode;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.common.ThreadLocalContext;
|
||||
import com.sdm.common.entity.ExportExcelFormat;
|
||||
@@ -27,6 +28,8 @@ import com.sdm.project.model.bo.*;
|
||||
import com.sdm.project.model.entity.*;
|
||||
import com.sdm.project.model.po.*;
|
||||
import com.sdm.project.model.req.*;
|
||||
import com.sdm.project.model.req.YA.ProjectTaskInfo;
|
||||
import com.sdm.project.model.req.YA.SyncCidTaskReq;
|
||||
import com.sdm.project.model.resp.*;
|
||||
import com.sdm.project.model.vo.*;
|
||||
import com.sdm.project.service.*;
|
||||
@@ -39,6 +42,7 @@ import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.text.SimpleDateFormat;
|
||||
@@ -1034,150 +1038,150 @@ public class TaskServiceImpl implements ITaskService {
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse synchronizeCidTask(SpdmSyncCidTaskReq req) {
|
||||
log.info("同步CID任务的参数为:{}", req);
|
||||
Long tenantId = ThreadLocalContext.getTenantId();
|
||||
Long jobNumber = ThreadLocalContext.getUserId();
|
||||
List<CidTaskNode> taskNodeList = req.getTaskList();
|
||||
if (CollectionUtils.isEmpty(taskNodeList)) {
|
||||
log.error("同步CID任务的参数为空");
|
||||
return SdmResponse.failed("同步CID任务的参数为空");
|
||||
}
|
||||
SdmResponse response = SdmResponse.success();
|
||||
List<TaskMemberNode> projectNodeMemberList = new ArrayList<>();
|
||||
List<TaskExtraNode> projectNodeExtraList = new ArrayList<>();
|
||||
List<CidTaskNode> allPerformanceList = new ArrayList<>();
|
||||
List<TaskExtraNode> allPerformanceExtraList = new ArrayList<>();
|
||||
for (CidTaskNode task : taskNodeList) {
|
||||
task.setUuid(RandomUtil.generateString(32));
|
||||
task.setTenantId(tenantId);
|
||||
String pUserIdStr = task.getPMemberList();
|
||||
String eUserIdStr = task.getEMemberList();
|
||||
log.info("下发的仿真负责人为:{}", pUserIdStr);
|
||||
log.info("下发的仿真执行人为:{}", eUserIdStr);
|
||||
if (StringUtils.isNotBlank(pUserIdStr)) {
|
||||
String[] userIdArr = pUserIdStr.split(",");
|
||||
for (String userId : userIdArr) {
|
||||
TaskMemberNode taskMemberNode = new TaskMemberNode();
|
||||
taskMemberNode.setTaskId(task.getUuid());
|
||||
taskMemberNode.setNodeId(task.getUuid());
|
||||
taskMemberNode.setUserId(userId);
|
||||
taskMemberNode.setType(MemberTypeEnum.PRINCIPAL.getCode());
|
||||
projectNodeMemberList.add(taskMemberNode);
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(eUserIdStr)) {
|
||||
String[] userIdArr = eUserIdStr.split(",");
|
||||
for (String userId : userIdArr) {
|
||||
TaskMemberNode taskMemberNode = new TaskMemberNode();
|
||||
taskMemberNode.setTaskId(task.getUuid());
|
||||
taskMemberNode.setNodeId(task.getUuid());
|
||||
taskMemberNode.setUserId(userId);
|
||||
taskMemberNode.setType(MemberTypeEnum.EXECUTOR.getCode());
|
||||
projectNodeMemberList.add(taskMemberNode);
|
||||
}
|
||||
}
|
||||
List<TaskExtraNode> extraList = task.getTaskExtraNodeList();
|
||||
if (CollectionUtils.isNotEmpty(extraList)) {
|
||||
for (TaskExtraNode extra : extraList) {
|
||||
TaskExtraNode taskExtraNode = new TaskExtraNode();
|
||||
taskExtraNode.setTaskId(task.getUuid());
|
||||
taskExtraNode.setNodeId(task.getUuid());
|
||||
taskExtraNode.setPropertyName(extra.getPropertyName());
|
||||
taskExtraNode.setPropertyValue(extra.getPropertyValue());
|
||||
projectNodeExtraList.add(taskExtraNode);
|
||||
}
|
||||
}
|
||||
// 指标
|
||||
List<CidTaskNode> performanceList = task.getChildren();
|
||||
for (CidTaskNode performance : performanceList) {
|
||||
performance.setTaskId(task.getUuid());
|
||||
List<TaskExtraNode> performanceExtraList = performance.getTaskExtraNodeList();
|
||||
if (CollectionUtils.isNotEmpty(performanceExtraList)) {
|
||||
for (TaskExtraNode extra : performanceExtraList) {
|
||||
extra.setPerformanceId(performance.getUuid());
|
||||
extra.setTaskId(performance.getTaskId());
|
||||
extra.setNodeId(performance.getNodeId());
|
||||
allPerformanceExtraList.add(extra);
|
||||
}
|
||||
}
|
||||
allPerformanceList.add(performance);
|
||||
}
|
||||
}
|
||||
String createTime = DateUtil.now();
|
||||
Map<String, CidTaskNode> taskNodeMap = Map.of();
|
||||
if (CollectionUtils.isNotEmpty(taskNodeList)) {
|
||||
taskNodeList.forEach(projectNode -> {
|
||||
projectNode.setCreator(jobNumber);
|
||||
projectNode.setCreateTime(createTime);
|
||||
});
|
||||
if (projectMapper.batchAddSimulationCidTask(taskNodeList) <= 0) {
|
||||
response = SdmResponse.failed("新增任务失败");
|
||||
return response;
|
||||
}
|
||||
taskNodeMap = taskNodeList.stream().collect(Collectors.groupingBy(
|
||||
CidTaskNode::getUuid,
|
||||
Collectors.collectingAndThen(
|
||||
Collectors.toList(),
|
||||
list -> list.get(0)
|
||||
)
|
||||
));
|
||||
for (CidTaskNode taskNode : taskNodeList) {
|
||||
createDir(taskNode.getUuid(), null, taskNode.getTaskName());
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(projectNodeExtraList)) {
|
||||
projectNodeExtraList.forEach(projectNode -> projectNode.setCreateTime(createTime));
|
||||
if (projectMapper.batchAddSimulationTaskExtra(projectNodeExtraList) <= 0) {
|
||||
response = SdmResponse.failed("新增任务附加属性失败");
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(projectNodeMemberList)) {
|
||||
projectNodeMemberList.forEach(projectNode -> projectNode.setCreateTime(createTime));
|
||||
if (projectMapper.batchAddSimulationTaskMember(projectNodeMemberList) <= 0) {
|
||||
response = SdmResponse.failed("新增任务成员属性失败");
|
||||
return response;
|
||||
}
|
||||
}
|
||||
// 指标
|
||||
if (CollectionUtils.isNotEmpty(allPerformanceList)) {
|
||||
allPerformanceList.forEach(projectNode -> projectNode.setCreateTime(createTime));
|
||||
if (projectMapper.batchAddSimulationCidPerformance(allPerformanceList) <= 0) {
|
||||
response = SdmResponse.failed("新增指标失败");
|
||||
return response;
|
||||
}
|
||||
List<TaskNodePo> newTaskNodeList = projectMapper.getTaskListByNodeIdList(allPerformanceList.stream().map(CidTaskNode::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)
|
||||
)
|
||||
));
|
||||
}
|
||||
for (CidTaskNode taskNode : allPerformanceList) {
|
||||
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.getTaskName());
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(allPerformanceExtraList)) {
|
||||
allPerformanceExtraList.forEach(projectNode -> projectNode.setCreateTime(createTime));
|
||||
if (projectMapper.batchAddSimulationPerformanceExtra(allPerformanceExtraList) <= 0) {
|
||||
response = SdmResponse.failed("新增任务指标附加属性失败");
|
||||
return response;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
// @Override
|
||||
// public SdmResponse synchronizeCidTask(SpdmSyncCidTaskReq req) {
|
||||
// log.info("同步CID任务的参数为:{}", req);
|
||||
// Long tenantId = ThreadLocalContext.getTenantId();
|
||||
// Long jobNumber = ThreadLocalContext.getUserId();
|
||||
// List<CidTaskNode> taskNodeList = req.getTaskList();
|
||||
// if (CollectionUtils.isEmpty(taskNodeList)) {
|
||||
// log.error("同步CID任务的参数为空");
|
||||
// return SdmResponse.failed("同步CID任务的参数为空");
|
||||
// }
|
||||
// SdmResponse response = SdmResponse.success();
|
||||
// List<TaskMemberNode> projectNodeMemberList = new ArrayList<>();
|
||||
// List<TaskExtraNode> projectNodeExtraList = new ArrayList<>();
|
||||
// List<CidTaskNode> allPerformanceList = new ArrayList<>();
|
||||
// List<TaskExtraNode> allPerformanceExtraList = new ArrayList<>();
|
||||
// for (CidTaskNode task : taskNodeList) {
|
||||
// task.setUuid(RandomUtil.generateString(32));
|
||||
// task.setTenantId(tenantId);
|
||||
// String pUserIdStr = task.getPMemberList();
|
||||
// String eUserIdStr = task.getEMemberList();
|
||||
// log.info("下发的仿真负责人为:{}", pUserIdStr);
|
||||
// log.info("下发的仿真执行人为:{}", eUserIdStr);
|
||||
// if (StringUtils.isNotBlank(pUserIdStr)) {
|
||||
// String[] userIdArr = pUserIdStr.split(",");
|
||||
// for (String userId : userIdArr) {
|
||||
// TaskMemberNode taskMemberNode = new TaskMemberNode();
|
||||
// taskMemberNode.setTaskId(task.getUuid());
|
||||
// taskMemberNode.setNodeId(task.getUuid());
|
||||
// taskMemberNode.setUserId(userId);
|
||||
// taskMemberNode.setType(MemberTypeEnum.PRINCIPAL.getCode());
|
||||
// projectNodeMemberList.add(taskMemberNode);
|
||||
// }
|
||||
// }
|
||||
// if (StringUtils.isNotBlank(eUserIdStr)) {
|
||||
// String[] userIdArr = eUserIdStr.split(",");
|
||||
// for (String userId : userIdArr) {
|
||||
// TaskMemberNode taskMemberNode = new TaskMemberNode();
|
||||
// taskMemberNode.setTaskId(task.getUuid());
|
||||
// taskMemberNode.setNodeId(task.getUuid());
|
||||
// taskMemberNode.setUserId(userId);
|
||||
// taskMemberNode.setType(MemberTypeEnum.EXECUTOR.getCode());
|
||||
// projectNodeMemberList.add(taskMemberNode);
|
||||
// }
|
||||
// }
|
||||
// List<TaskExtraNode> extraList = task.getTaskExtraNodeList();
|
||||
// if (CollectionUtils.isNotEmpty(extraList)) {
|
||||
// for (TaskExtraNode extra : extraList) {
|
||||
// TaskExtraNode taskExtraNode = new TaskExtraNode();
|
||||
// taskExtraNode.setTaskId(task.getUuid());
|
||||
// taskExtraNode.setNodeId(task.getUuid());
|
||||
// taskExtraNode.setPropertyName(extra.getPropertyName());
|
||||
// taskExtraNode.setPropertyValue(extra.getPropertyValue());
|
||||
// projectNodeExtraList.add(taskExtraNode);
|
||||
// }
|
||||
// }
|
||||
// // 指标
|
||||
// List<CidTaskNode> performanceList = task.getChildren();
|
||||
// for (CidTaskNode performance : performanceList) {
|
||||
// performance.setTaskId(task.getUuid());
|
||||
// List<TaskExtraNode> performanceExtraList = performance.getTaskExtraNodeList();
|
||||
// if (CollectionUtils.isNotEmpty(performanceExtraList)) {
|
||||
// for (TaskExtraNode extra : performanceExtraList) {
|
||||
// extra.setPerformanceId(performance.getUuid());
|
||||
// extra.setTaskId(performance.getTaskId());
|
||||
// extra.setNodeId(performance.getNodeId());
|
||||
// allPerformanceExtraList.add(extra);
|
||||
// }
|
||||
// }
|
||||
// allPerformanceList.add(performance);
|
||||
// }
|
||||
// }
|
||||
// String createTime = DateUtil.now();
|
||||
// Map<String, CidTaskNode> taskNodeMap = Map.of();
|
||||
// if (CollectionUtils.isNotEmpty(taskNodeList)) {
|
||||
// taskNodeList.forEach(projectNode -> {
|
||||
// projectNode.setCreator(jobNumber);
|
||||
// projectNode.setCreateTime(createTime);
|
||||
// });
|
||||
// if (projectMapper.batchAddSimulationCidTask(taskNodeList) <= 0) {
|
||||
// response = SdmResponse.failed("新增任务失败");
|
||||
// return response;
|
||||
// }
|
||||
// taskNodeMap = taskNodeList.stream().collect(Collectors.groupingBy(
|
||||
// CidTaskNode::getUuid,
|
||||
// Collectors.collectingAndThen(
|
||||
// Collectors.toList(),
|
||||
// list -> list.get(0)
|
||||
// )
|
||||
// ));
|
||||
// for (CidTaskNode taskNode : taskNodeList) {
|
||||
// createDir(taskNode.getUuid(), NodeTypeEnum.TASK.getValue(),null, taskNode.getTaskName());
|
||||
// }
|
||||
// }
|
||||
// if (CollectionUtils.isNotEmpty(projectNodeExtraList)) {
|
||||
// projectNodeExtraList.forEach(projectNode -> projectNode.setCreateTime(createTime));
|
||||
// if (projectMapper.batchAddSimulationTaskExtra(projectNodeExtraList) <= 0) {
|
||||
// response = SdmResponse.failed("新增任务附加属性失败");
|
||||
// }
|
||||
// }
|
||||
// if (CollectionUtils.isNotEmpty(projectNodeMemberList)) {
|
||||
// projectNodeMemberList.forEach(projectNode -> projectNode.setCreateTime(createTime));
|
||||
// if (projectMapper.batchAddSimulationTaskMember(projectNodeMemberList) <= 0) {
|
||||
// response = SdmResponse.failed("新增任务成员属性失败");
|
||||
// return response;
|
||||
// }
|
||||
// }
|
||||
// // 指标
|
||||
// if (CollectionUtils.isNotEmpty(allPerformanceList)) {
|
||||
// allPerformanceList.forEach(projectNode -> projectNode.setCreateTime(createTime));
|
||||
// if (projectMapper.batchAddSimulationCidPerformance(allPerformanceList) <= 0) {
|
||||
// response = SdmResponse.failed("新增指标失败");
|
||||
// return response;
|
||||
// }
|
||||
// List<TaskNodePo> newTaskNodeList = projectMapper.getTaskListByNodeIdList(allPerformanceList.stream().map(CidTaskNode::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)
|
||||
// )
|
||||
// ));
|
||||
// }
|
||||
// for (CidTaskNode taskNode : allPerformanceList) {
|
||||
// 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(),NodeTypeEnum.PERFORMANCE.getValue(),
|
||||
// ObjectUtils.isNotEmpty(taskNodePoMap.get(taskNode.getTaskId())) ? taskNodePoMap.get(taskNode.getTaskId()).getUuid() : taskNodeMap.get(taskNode.getTaskId()).getUuid(),
|
||||
// taskNode.getTaskName());
|
||||
// }
|
||||
// }
|
||||
// if (CollectionUtils.isNotEmpty(allPerformanceExtraList)) {
|
||||
// allPerformanceExtraList.forEach(projectNode -> projectNode.setCreateTime(createTime));
|
||||
// if (projectMapper.batchAddSimulationPerformanceExtra(allPerformanceExtraList) <= 0) {
|
||||
// response = SdmResponse.failed("新增任务指标附加属性失败");
|
||||
// return response;
|
||||
// }
|
||||
// }
|
||||
// return response;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public SdmResponse getTaskDetail(GetTaskDetailReq req) {
|
||||
@@ -1229,14 +1233,74 @@ public class TaskServiceImpl implements ITaskService {
|
||||
return SdmResponse.success(spdmTaskDetailVo);
|
||||
}
|
||||
|
||||
private void createDir(String uuid, String parentUuid, String dirName) {
|
||||
private SdmResponse createDir(String uuid, String uuidOwnType,String parentUuid, String dirName) {
|
||||
CreateDirReq createDirReq = new CreateDirReq();
|
||||
createDirReq.setUuId(uuid);
|
||||
createDirReq.setUuIdOwnType(uuidOwnType);
|
||||
createDirReq.setParentUuId(parentUuid);
|
||||
createDirReq.setDirName(dirName);
|
||||
log.info("同步CID任务调用创建文件夹的参数为:{}", createDirReq);
|
||||
SdmResponse response = dataClientFeignClient.createDir(createDirReq);
|
||||
log.info("同步CID调用创建文件夹的返回值为:{}", response);
|
||||
return response;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void syncCidTask(SyncCidTaskReq req) {
|
||||
log.info("syncCidTask参数为:{}", req);
|
||||
List<ProjectTaskInfo> taskInfoList = req.getTaskInfoList();
|
||||
if (CollectionUtils.isEmpty(taskInfoList)) {
|
||||
log.error("同步cid任务时,任务为空");
|
||||
return;
|
||||
}
|
||||
String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
||||
SpdmProjectNodeEditReq spdmProjectNodeEditReq = new SpdmProjectNodeEditReq();
|
||||
spdmProjectNodeEditReq.setNodeName(req.getProjectName());
|
||||
spdmProjectNodeEditReq.setNodeType(NodeTypeEnum.PROJECT.getValue());
|
||||
spdmProjectNodeEditReq.setUuid(req.getProjectId());
|
||||
spdmProjectNodeEditReq.setPid(req.getProjectId());
|
||||
spdmProjectNodeEditReq.setTag1(req.getProjectId());
|
||||
spdmProjectNodeEditReq.setCreateTime(curDateStr);
|
||||
spdmProjectNodeEditReq.setTenantId(1999999999999999999L);
|
||||
if (nodeMapper.addNodeBatch(Collections.singletonList(spdmProjectNodeEditReq)) <= 0) {
|
||||
log.error("同步CID项目:{}失败",req.getProjectId() + " " + req.getProjectName());
|
||||
return;
|
||||
}
|
||||
List<CidTaskNode> taskNodeList = new ArrayList<>();
|
||||
for (ProjectTaskInfo projectTaskInfo : taskInfoList) {
|
||||
CidTaskNode taskNode = new CidTaskNode();
|
||||
taskNode.setUuid(projectTaskInfo.getTaskId());
|
||||
taskNode.setTaskName(projectTaskInfo.getTaskName());
|
||||
taskNode.setNodeId(req.getProjectId());
|
||||
taskNode.setCreateTime(curDateStr);
|
||||
taskNode.setTenantId(1999999999999999999L);
|
||||
taskNodeList.add(taskNode);
|
||||
}
|
||||
if (projectMapper.batchAddSimulationCidTask(taskNodeList) <= 0) {
|
||||
log.error("同步CID任务失败");
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return;
|
||||
}
|
||||
try {
|
||||
// 创建项目节点的文件夹
|
||||
SdmResponse response = createDir(spdmProjectNodeEditReq.getUuid(), spdmProjectNodeEditReq.getNodeType(), null, spdmProjectNodeEditReq.getNodeName());
|
||||
if (ObjectUtils.isEmpty(response) || response.getCode() != ResultCode.SUCCESS.getCode()) {
|
||||
log.error("同步CID任务时,创建项目:{}的文件夹失败,原因为:{}",req.getProjectId() + " " + req.getProjectName(),response.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
}
|
||||
// 创建任务节点的文件夹
|
||||
for (CidTaskNode taskNode : taskNodeList) {
|
||||
response = createDir(taskNode.getUuid(), NodeTypeEnum.TASK.getValue(), req.getProjectId(), taskNode.getTaskName());
|
||||
if (ObjectUtils.isEmpty(response) || response.getCode() != ResultCode.SUCCESS.getCode()) {
|
||||
log.error("同步CID任务时,创建任务:{}的文件夹失败,原因为:{}",taskNode.getUuid() + " " + taskNode.getTaskName(),response.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
}
|
||||
}
|
||||
}catch (Exception ex) {
|
||||
log.error("同步CID任务时,创建文件夹失败,原因为:{}",ex.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
values
|
||||
<foreach collection='addNodeList' item='addNode' index='index' separator=','>
|
||||
(#{addNode.uuid},#{addNode.ownRootNodeUuid},#{addNode.nodeName},#{addNode.nodeCode},'',#{addNode.nodeType},#{addNode.nodeSubType},'0',#{addNode.pid},
|
||||
'',1,#{addNode.beginTime},#{addNode.endTime},'',#{addNode.progressStatus},#{addNode.achieveStatus},#{addNode.exeStauts},#{addNode.tenantId},#{addNode.description},
|
||||
'',1,#{addNode.beginTime},#{addNode.endTime},'',#{addNode.progressStatus},#{addNode.achieveStatus},#{addNode.exeStatus},#{addNode.tenantId},#{addNode.description},
|
||||
#{addNode.detailImgUrl},#{addNode.creator},#{addNode.createTime},#{addNode.tag1},#{addNode.tag2},
|
||||
#{addNode.tag3},#{addNode.tag4},#{addNode.tag5},#{addNode.tag6},#{addNode.tag7},#{addNode.tag8},#{addNode.tag9},#{addNode.tag10})
|
||||
</foreach>
|
||||
|
||||
@@ -35,11 +35,11 @@
|
||||
|
||||
<insert id="batchAddSimulationCidTask" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into simulation_task (uuid,task_name,task_code,task_pool_name,task_pool_version,node_id,days,standard,fold_id,status,achieve_status,begin_time,end_time,progress,exe_status,confidence,analyse_target,analyse_software,description,difficult,tenant_id
|
||||
,creator,create_time,department,sectionName,groupName,bCapacity,flowTemplate,englishName) values
|
||||
,creator,create_time,department,sectionName,groupName,bCapacity,englishName) values
|
||||
<foreach collection='list' item='it' index='index' separator=','>
|
||||
(#{it.uuid},#{it.taskName},#{it.taskCode},'','',#{it.nodeId},#{it.days},#{it.standard},'',1,0,
|
||||
#{it.beginTime},#{it.endTime},0,1,#{it.confidence},#{it.analyseTarget},#{it.analyseSoftwares},#{it.description},#{it.difficult},#{it.tenantId},
|
||||
#{it.creator},#{it.createTime},#{it.department},#{it.section},#{it.group},#{it.bCapacity},#{it.flowTemplate},#{it.englishName})
|
||||
#{it.creator},#{it.createTime},#{it.department},#{it.section},#{it.group},#{it.bCapacity},#{it.englishName})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user