优化userTask任务错误展示

This commit is contained in:
2026-01-07 11:50:14 +08:00
parent 332c383897
commit 1d8e14fc99
8 changed files with 79 additions and 8 deletions

View File

@@ -1,5 +1,6 @@
package com.sdm.common.entity.req.flowable;
import com.sdm.common.entity.req.project.SimulationLocalJobReq;
import lombok.Data;
import java.io.Serializable;
@@ -25,4 +26,6 @@ public class AsyncCallbackRequest implements Serializable {
* 任务执行结果状态
*/
private String status;
private SimulationLocalJobReq simulationLocalJobReq;
}

View File

@@ -1,4 +1,4 @@
package com.sdm.project.model.req;
package com.sdm.common.entity.req.project;
import lombok.Data;

View File

@@ -0,0 +1,26 @@
package com.sdm.common.feign.impl.project;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.req.project.SimulationLocalJobReq;
import com.sdm.common.feign.inter.project.ISimulationLocalJobFeignClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class ISimulationLocalJobFeignClientImpl implements ISimulationLocalJobFeignClient {
@Autowired
private ISimulationLocalJobFeignClient simulationLocalJobService;
@Override
public SdmResponse add(SimulationLocalJobReq req) {
try {
return simulationLocalJobService.add(req);
} catch (Exception e) {
log.error("新增本地应用任务失败",e);
return SdmResponse.failed("新增本地应用任务失败");
}
}
}

View File

@@ -0,0 +1,21 @@
package com.sdm.common.feign.inter.project;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.req.project.SimulationLocalJobReq;
import com.sdm.common.log.annotation.SysLog;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = "project",contextId = "localJobFeignClient")
public interface ISimulationLocalJobFeignClient {
/**
* 新增本地应用任务
*
* @param req
* @return
*/
@PostMapping("/add")
SdmResponse add(@RequestBody SimulationLocalJobReq req);
}

View File

@@ -2,19 +2,23 @@ package com.sdm.flowable.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.common.ThreadLocalContext;
import com.sdm.common.entity.flowable.dto.ProcessDefinitionDTO;
import com.sdm.common.entity.flowable.executeConfig.HPCExecuteConfig;
import com.sdm.common.entity.req.flowable.AsyncCallbackRequest;
import com.sdm.common.entity.req.project.SimulationLocalJobReq;
import com.sdm.common.entity.resp.flowable.DeployFlowableResp;
import com.sdm.common.entity.resp.flowable.ProcessInstanceDetailResponse;
import com.sdm.common.entity.resp.flowable.ProcessInstanceResp;
import com.sdm.common.feign.inter.flowable.IFlowableFeignClient;
import com.sdm.common.feign.inter.project.ISimulationLocalJobFeignClient;
import com.sdm.flowable.aop.StateGuard;
import com.sdm.flowable.delegate.handler.HpcHandler;
import com.sdm.flowable.dto.req.CompleteTaskReq;
import com.sdm.flowable.dto.req.PreviewNodeInputFilesReq;
import com.sdm.flowable.dto.req.RetryRequest;
import com.sdm.flowable.dto.resp.NodeInputFilePreviewResp;
import com.sdm.flowable.enums.AsyncTaskStatusEnum;
import com.sdm.flowable.enums.OperationTypeEnum;
import com.sdm.flowable.process.ProcessService;
import com.sdm.flowable.service.IProcessNodeParamService;
@@ -41,6 +45,9 @@ public class ProcessController implements IFlowableFeignClient {
@Autowired
private IProcessNodeParamService processNodeParamService;
@Autowired
private ISimulationLocalJobFeignClient simulationLocalJobService;
@Autowired
private HpcHandler hpcHandler;
@@ -211,6 +218,22 @@ public class ProcessController implements IFlowableFeignClient {
*/
@PostMapping("/asyncCallback")
public SdmResponse asyncCallback(@RequestBody AsyncCallbackRequest request) {
try {
// 保存本地应用任务执行结果
SimulationLocalJobReq simulationLocalJobReq = request.getSimulationLocalJobReq();
if(Objects.nonNull(simulationLocalJobReq)){
ThreadLocalContext.setUserId(simulationLocalJobReq.getCreatorId());
ThreadLocalContext.setTenantId(simulationLocalJobReq.getTenantId());
simulationLocalJobReq.setJobStatus(request.getStatus());
if(AsyncTaskStatusEnum.FAIL.getCode().equalsIgnoreCase(request.getStatus())){
simulationLocalJobReq.setErrMsg(request.getResultJson());
}
simulationLocalJobService.add(simulationLocalJobReq);
}
} catch (Exception e) {
log.error("异步回调失败: {}", request, e);
return SdmResponse.failed("异步回调失败");
}
log.info("开始处理异步回调请求: {}", request);
// 发送信号唤醒流程实例中等待的节点
processService.asyncCallback(request);

View File

@@ -1,8 +1,9 @@
package com.sdm.project.controller;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.feign.inter.project.ISimulationLocalJobFeignClient;
import com.sdm.common.log.annotation.SysLog;
import com.sdm.project.model.req.SimulationLocalJobReq;
import com.sdm.common.entity.req.project.SimulationLocalJobReq;
import com.sdm.project.model.req.SpdmLocalJobListReq;
import com.sdm.project.service.ISimulationLocalJobService;
import io.swagger.v3.oas.annotations.Operation;
@@ -16,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/localJob")
@Tag(name = "仿真本地应用任务管理", description = "仿真本地应用任务管理相关接口")
public class SimulationLocalJobController {
public class SimulationLocalJobController implements ISimulationLocalJobFeignClient {
@Autowired
private ISimulationLocalJobService simulationLocalJobService;

View File

@@ -3,7 +3,7 @@ package com.sdm.project.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sdm.common.common.SdmResponse;
import com.sdm.project.model.entity.SimulationLocalJob;
import com.sdm.project.model.req.SimulationLocalJobReq;
import com.sdm.common.entity.req.project.SimulationLocalJobReq;
import com.sdm.project.model.req.SpdmLocalJobListReq;
/**

View File

@@ -5,13 +5,10 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.common.ThreadLocalContext;
import com.sdm.common.utils.DateUtils;
import com.sdm.common.utils.PageUtils;
import com.sdm.outbridge.entity.LyricVProjectToDM;
import com.sdm.project.dao.SimulationLocalJobMapper;
import com.sdm.project.model.entity.SimulationLocalJob;
import com.sdm.project.model.entity.SimulationRun;
import com.sdm.project.model.req.SimulationLocalJobReq;
import com.sdm.common.entity.req.project.SimulationLocalJobReq;
import com.sdm.project.model.req.SpdmLocalJobListReq;
import com.sdm.project.service.ISimulationLocalJobService;
import org.apache.commons.lang3.ObjectUtils;