1、算例详情接口

This commit is contained in:
2026-01-16 07:39:55 +08:00
parent 4037f9b011
commit a0e762de25
5 changed files with 76 additions and 7 deletions

View File

@@ -13,6 +13,7 @@ import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.feign.inter.project.ISimulationRunFeignClient;
import com.sdm.common.log.annotation.SysLog;
import com.sdm.project.model.entity.*;
import com.sdm.project.model.po.TaskRunPo;
import com.sdm.project.model.req.*;
import com.sdm.project.model.resp.FlowInfoDto;
import com.sdm.project.model.resp.KeyResultAndTaskInfoResp;
@@ -356,4 +357,12 @@ public class SimulationRunController implements ISimulationRunFeignClient {
return runService.updateStatus(req);
}
/**
* 算例详情
*/
@PostMapping("/detail")
public SdmResponse<TaskRunPo> detail(@RequestBody SpdmTaskRunReq req) {
return runService.detail(req);
}
}

View File

@@ -42,6 +42,7 @@ public class TaskNodeMemberPo extends BaseEntity {
private String identity;
private String name;
private String taskId;
private Long userId;
}

View File

@@ -184,4 +184,13 @@ public class SpdmTaskVo extends BaseEntity {
private Integer expStatus;
private String discipline;
private String projectName;
private String phaseName;
private String disciplineName;
private String pMembers;
}

View File

@@ -12,6 +12,7 @@ import com.sdm.common.entity.resp.data.BatchAddFileInfoResp;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.project.model.entity.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sdm.project.model.po.TaskRunPo;
import com.sdm.project.model.req.*;
import com.sdm.project.model.resp.FlowInfoDto;
import com.sdm.project.model.resp.KeyResultAndTaskInfoResp;
@@ -101,4 +102,6 @@ public interface ISimulationRunService extends IService<SimulationRun> {
SdmResponse updateStatus(SpdmRunEditReq req);
SdmResponse<TaskRunPo> detail(SpdmTaskRunReq req);
}

View File

@@ -45,21 +45,18 @@ import com.sdm.common.service.DataFileService;
import com.sdm.common.utils.PageUtils;
import com.sdm.common.utils.RandomUtil;
import com.sdm.project.common.*;
import com.sdm.project.dao.SimulationBaseUnitsMapper;
import com.sdm.project.dao.SimulationProjectMapper;
import com.sdm.project.dao.SimulationRunMapper;
import com.sdm.project.dao.*;
import com.sdm.project.model.bo.ApprovalDeliverableContentsModel;
import com.sdm.project.model.bo.CurveParamDto;
import com.sdm.project.model.bo.TaskNodeTag;
import com.sdm.project.model.entity.*;
import com.sdm.project.model.po.NodeAllBase;
import com.sdm.project.model.po.ProjectNodePo;
import com.sdm.project.model.po.RunNodePo;
import com.sdm.project.model.po.TaskNodePo;
import com.sdm.project.model.po.*;
import com.sdm.project.model.req.*;
import com.sdm.project.model.resp.FlowInfoDto;
import com.sdm.project.model.resp.KeyResultAndTaskInfoResp;
import com.sdm.project.model.resp.RunVersionInfoResp;
import com.sdm.project.model.vo.SpdmNodeVo;
import com.sdm.project.model.vo.SpdmTaskVo;
import com.sdm.project.service.*;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
@@ -73,6 +70,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
@@ -148,6 +146,15 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
@Autowired
private SimulationReportFeignClientImpl reportFeignClient;
@Autowired
private SimulationTaskMapper taskMapper;
@Autowired
private SimulationNodeMapper nodeMapper;
@Resource
private SimulationProjectMapper projectMapper;
private final ObjectMapper objectMapper = new ObjectMapper();
private static final String TEMP_REPORT_PATH = "/opt/report/";
@@ -1848,4 +1855,44 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
return updateFlag ? SdmResponse.success("更新run状态成功") : SdmResponse.failed("更新run状态失败");
}
@Override
public SdmResponse<TaskRunPo> detail(SpdmTaskRunReq req) {
String runId = req.getRunId();
if (StringUtils.isBlank(runId)) {
return SdmResponse.failed("runId不能为空");
}
SimulationRun simulationRun = this.lambdaQuery().eq(SimulationRun::getUuid,runId).one();
if (ObjectUtils.isEmpty(simulationRun)) {
return SdmResponse.success(new TaskRunPo());
}
TaskRunPo taskRunPo = new TaskRunPo();
BeanUtils.copyProperties(simulationRun,taskRunPo);
if (StringUtils.isBlank(simulationRun.getTaskId())) {
return SdmResponse.success(taskRunPo);
}
SpdmTaskVo task = taskMapper.getTask(simulationRun.getTaskId());
if (ObjectUtils.isEmpty(task)) {
return SdmResponse.success(taskRunPo);
}
SpdmNodeVo phaseNode = nodeMapper.getNodeById(task.getTag2());
if (phaseNode != null) {
taskRunPo.setPhaseName(phaseNode.getNodeName());
}
SpdmNodeVo projectNode = nodeMapper.getNodeById(task.getTag1());
if (projectNode != null) {
taskRunPo.setProjectName(projectNode.getNodeName());
}
taskRunPo.setDisciplineName(task.getDiscipline());
List<TaskNodeMemberPo> taskNodeMemberPoList = projectMapper.queryTaskNodeMembersByNodeIdList(Collections.singletonList(task.getUuid()));
if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) {
SdmResponse<List<CIDUserResp>> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder()
.userIds(taskNodeMemberPoList.stream().map(TaskNodeMemberPo::getUserId).toList()).build());
if (cidUserResp == null || !cidUserResp.isSuccess() || CollectionUtils.isEmpty(cidUserResp.getData())){
return SdmResponse.success(taskRunPo);
}
taskRunPo.setPMembers(cidUserResp.getData().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(",")));
}
return SdmResponse.success(taskRunPo);
}
}