feat:任务执行算例初始化流程节点/启动流程实例/查询流程节点
This commit is contained in:
@@ -4,21 +4,27 @@ import com.sdm.capability.model.entity.SimulationFlowTemplate;
|
||||
import com.sdm.capability.model.req.flow.GetFlowTemplateReq;
|
||||
import com.sdm.capability.model.req.flow.ReleaseFlowTemplateReq;
|
||||
import com.sdm.capability.service.IFlowService;
|
||||
import com.sdm.capability.service.ISimulationFlowNodeService;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.capability.FlowNodeDto;
|
||||
import com.sdm.common.entity.req.system.LaunchApproveReq;
|
||||
import com.sdm.common.feign.inter.capability.ISimulationFlowTemplateFeignClient;
|
||||
import com.sdm.common.feign.inter.capability.ISimulationFlowFeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/flow")
|
||||
public class FlowController implements ISimulationFlowTemplateFeignClient {
|
||||
public class FlowController implements ISimulationFlowFeignClient {
|
||||
|
||||
@Resource
|
||||
private IFlowService IFlowService;
|
||||
|
||||
@Resource
|
||||
private ISimulationFlowNodeService simulationFlowNodeService;
|
||||
|
||||
@PostMapping("/createFlowTemplateDraft")
|
||||
public SdmResponse createFlowTemplateDraft(@RequestBody @Validated SimulationFlowTemplate flowTemplate) {
|
||||
return IFlowService.createFlowTemplateDraft(flowTemplate);
|
||||
@@ -108,4 +114,19 @@ public class FlowController implements ISimulationFlowTemplateFeignClient {
|
||||
return IFlowService.handleApproveResult(req);
|
||||
}
|
||||
|
||||
@PostMapping("/node/batchAddSimulationFlowNode")
|
||||
public SdmResponse batchAddSimulationFlowNode(@RequestBody FlowNodeDto req) {
|
||||
return simulationFlowNodeService.batchAddSimulationFlowNode(req);
|
||||
}
|
||||
|
||||
@PostMapping("/node/batchUpdateSimulationFlowNode")
|
||||
public SdmResponse batchUpdateSimulationFlowNode(@RequestBody FlowNodeDto req) {
|
||||
return simulationFlowNodeService.batchUpdateSimulationFlowNode(req);
|
||||
}
|
||||
|
||||
@PostMapping("/node/listSimulationFlowNode")
|
||||
public SdmResponse<List<FlowNodeDto>> listSimulationFlowNode(@RequestBody FlowNodeDto req) {
|
||||
return simulationFlowNodeService.listSimulationFlowNode(req);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.sdm.capability.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.capability.model.entity.SimulationFlowNode;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface SimulationFlowNodeMapper extends BaseMapper<SimulationFlowNode> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.sdm.capability.model.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("simulation_flow_node")
|
||||
@ApiModel(value="SimulationFlowNode对象", description="流程实例节点表")
|
||||
public class SimulationFlowNode {
|
||||
|
||||
@TableId(value = "id", type = IdType.INPUT)
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private Integer id;
|
||||
|
||||
@TableField("uuid")
|
||||
@ApiModelProperty(value = "流程节点唯一ID")
|
||||
private String uuid;
|
||||
|
||||
@TableField("nodeName")
|
||||
@ApiModelProperty(value = "流程节点名称")
|
||||
private String nodeName;
|
||||
|
||||
@TableField("flowInstanceId")
|
||||
@ApiModelProperty(value = "所属流程实例ID(流程引擎)")
|
||||
private String flowInstanceId;
|
||||
|
||||
@TableField("nodeId")
|
||||
@ApiModelProperty(value = "流程引擎中的nodeId")
|
||||
private String nodeId;
|
||||
|
||||
@TableField("templateId")
|
||||
@ApiModelProperty(value = "所属流程模版ID")
|
||||
private String templateId;
|
||||
|
||||
@TableField("runId")
|
||||
@ApiModelProperty(value = "所属算例ID")
|
||||
private String runId;
|
||||
|
||||
@TableField("nodeType")
|
||||
@ApiModelProperty(value = "节点类型")
|
||||
private Integer nodeType;
|
||||
|
||||
@TableField("inputDirId")
|
||||
@ApiModelProperty(value = "输入文件夹id")
|
||||
private Long inputDirId;
|
||||
|
||||
@TableField("outputDirId")
|
||||
@ApiModelProperty(value = "输出文件夹id")
|
||||
private Long outputDirId;
|
||||
|
||||
@TableField("creator")
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private Long creator;
|
||||
|
||||
@TableField("createTime")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@TableField("updater")
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private Long updater;
|
||||
|
||||
@TableField("updateTime")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateTime;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.sdm.capability.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.sdm.capability.model.entity.SimulationFlowNode;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.capability.FlowNodeDto;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ISimulationFlowNodeService extends IService<SimulationFlowNode> {
|
||||
|
||||
SdmResponse batchAddSimulationFlowNode(@RequestBody FlowNodeDto req);
|
||||
|
||||
SdmResponse batchUpdateSimulationFlowNode(@RequestBody FlowNodeDto req);
|
||||
|
||||
SdmResponse<List<FlowNodeDto>> listSimulationFlowNode(@RequestBody FlowNodeDto req);
|
||||
|
||||
}
|
||||
@@ -9,10 +9,12 @@ import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.common.ThreadLocalContext;
|
||||
import com.sdm.common.entity.bo.DataPageInfo;
|
||||
import com.sdm.common.entity.req.system.LaunchApproveReq;
|
||||
import com.sdm.common.entity.resp.capability.FlowTemplateResp;
|
||||
import com.sdm.common.feign.impl.system.ApproveFeignClientImpl;
|
||||
import com.sdm.common.service.BaseService;
|
||||
import com.sdm.common.utils.Tools;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -371,7 +373,9 @@ public class FlowServiceImpl extends BaseService implements IFlowService {
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setData(flowTemplate);
|
||||
FlowTemplateResp flowTemplateResp = new FlowTemplateResp();
|
||||
BeanUtils.copyProperties(flowTemplate,flowTemplateResp);
|
||||
response.setData(flowTemplateResp);
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.sdm.capability.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.capability.dao.SimulationFlowNodeMapper;
|
||||
import com.sdm.capability.model.entity.SimulationFlowNode;
|
||||
import com.sdm.capability.service.ISimulationFlowNodeService;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.capability.FlowNodeDto;
|
||||
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class ISimulationFlowNodeServiceImpl extends ServiceImpl<SimulationFlowNodeMapper, SimulationFlowNode> implements ISimulationFlowNodeService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SdmResponse batchAddSimulationFlowNode(FlowNodeDto req) {
|
||||
if (CollectionUtils.isNotEmpty(req.getFlowNodeDtoList())) {
|
||||
List<SimulationFlowNode> entityList = req.getFlowNodeDtoList().stream().map(flowNodeReq -> {
|
||||
SimulationFlowNode simulationFlowNode = new SimulationFlowNode();
|
||||
BeanUtils.copyProperties(flowNodeReq, simulationFlowNode);
|
||||
return simulationFlowNode;
|
||||
}).toList();
|
||||
if (!this.saveBatch(entityList)) {
|
||||
return SdmResponse.failed("批量新增流程节点失败");
|
||||
}
|
||||
}
|
||||
return SdmResponse.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SdmResponse batchUpdateSimulationFlowNode(FlowNodeDto req) {
|
||||
if (StringUtils.isNotEmpty(req.getRunId())) {
|
||||
List<SimulationFlowNode> entityList = this.lambdaQuery().eq(SimulationFlowNode::getRunId, req.getRunId()).list();
|
||||
entityList.forEach(entity -> {
|
||||
entity.setFlowInstanceId(req.getFlowInstanceId());
|
||||
});
|
||||
this.updateBatchById(entityList);
|
||||
}
|
||||
return SdmResponse.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse<List<FlowNodeDto>> listSimulationFlowNode(FlowNodeDto req) {
|
||||
LambdaQueryWrapper<SimulationFlowNode> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (StringUtils.isNotBlank(req.getRunId())) {
|
||||
queryWrapper.eq(SimulationFlowNode::getRunId, req.getRunId());
|
||||
}
|
||||
if (StringUtils.isNotBlank(req.getFlowInstanceId())) {
|
||||
queryWrapper.eq(SimulationFlowNode::getFlowInstanceId, req.getFlowInstanceId());
|
||||
}
|
||||
List<SimulationFlowNode> flowNodeList = this.baseMapper.selectList(queryWrapper);
|
||||
List<FlowNodeDto> dtoList = flowNodeList.stream().map(entity -> {
|
||||
FlowNodeDto dto = new FlowNodeDto();
|
||||
BeanUtils.copyProperties(entity, dto);
|
||||
return dto;
|
||||
}).toList();
|
||||
return SdmResponse.success(dtoList);
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,9 @@ public enum NodeTypeEnum {
|
||||
WORKSPACE("workspace"),
|
||||
TASK("task"),
|
||||
RUN("run"),
|
||||
PERFORMANCE("performance");
|
||||
PERFORMANCE("performance"),
|
||||
FLOW_NODE("flowNode")
|
||||
;
|
||||
String value;
|
||||
|
||||
NodeTypeEnum(String i) {
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.sdm.common.entity.req.capability;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class FlowNodeDto {
|
||||
|
||||
@Schema(description = "主键ID")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "流程节点唯一ID")
|
||||
private String uuid;
|
||||
|
||||
@Schema(description = "流程节点名称")
|
||||
private String nodeName;
|
||||
|
||||
@Schema(description = "所属流程实例ID(流程引擎)")
|
||||
private String flowInstanceId;
|
||||
|
||||
@Schema(description = "流程引擎中的nodeId")
|
||||
private String nodeId;
|
||||
|
||||
@Schema(description = "所属流程模版ID")
|
||||
private String templateId;
|
||||
|
||||
@Schema(description = "所属算例ID")
|
||||
private String runId;
|
||||
|
||||
@Schema(description = "节点类型")
|
||||
private Integer nodeType;
|
||||
|
||||
@Schema(description = "输入文件夹id")
|
||||
private Long inputDirId;
|
||||
|
||||
@Schema(description = "输出文件夹id")
|
||||
private Long outputDirId;
|
||||
|
||||
@Schema(description = "创建人")
|
||||
private Long creator;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "更新人")
|
||||
private Long updater;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
private List<FlowNodeDto> flowNodeDtoList;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.sdm.common.entity.resp.capability;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FlowTemplateResp {
|
||||
|
||||
@Schema(description = "流程模版唯一ID")
|
||||
public String uuid;
|
||||
|
||||
@Schema(description = "流程模版名称")
|
||||
public String templateName;
|
||||
|
||||
@Schema(description = "流程模版版本")
|
||||
public String templateVersion;
|
||||
|
||||
@Schema(description = "流程模版内容")
|
||||
public String templateContent;
|
||||
|
||||
@Schema(description = "流程模版显示内容")
|
||||
public String viewContent;
|
||||
|
||||
@Schema(description = "父版本UUID")
|
||||
public String parentUuid;
|
||||
|
||||
@Schema(description = "流程模版编码")
|
||||
public String templateCode;
|
||||
|
||||
@Schema(description = "模版状态")
|
||||
public int templateStatus = 1;
|
||||
|
||||
@Schema(description = "模版类型")
|
||||
public String templateType;
|
||||
|
||||
@Schema(description = "模版评审类型")
|
||||
public int approveType;
|
||||
|
||||
@Schema(description = "描述信息")
|
||||
public String comment;
|
||||
|
||||
@Schema(description = "升版类型 0:小版本 1:大版本")
|
||||
public int versionType;
|
||||
|
||||
@Schema(description = "评审流程模版名称")
|
||||
public String approveFlowTemplateName;
|
||||
|
||||
@Schema(description = "评审流程模版Id")
|
||||
public String approveFlowTemplateId;
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.flowable.dto.resp;
|
||||
package com.sdm.common.entity.resp.flowable;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.sdm.common.feign.impl.capability;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.capability.FlowNodeDto;
|
||||
import com.sdm.common.entity.req.system.LaunchApproveReq;
|
||||
import com.sdm.common.feign.inter.capability.ISimulationFlowFeignClient;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class SimulationFlowFeignClientImpl implements ISimulationFlowFeignClient {
|
||||
|
||||
@Autowired
|
||||
private ISimulationFlowFeignClient flowFeignClient;
|
||||
|
||||
|
||||
@Override
|
||||
public SdmResponse receiveApproveNotice(LaunchApproveReq req) {
|
||||
SdmResponse response;
|
||||
try {
|
||||
response = flowFeignClient.receiveApproveNotice(req);
|
||||
if (!response.isSuccess()) {
|
||||
return SdmResponse.failed("仿真知识库文件审批状态修改失败");
|
||||
}
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
log.error("仿真知识库文件审批状态修改异常", e);
|
||||
return SdmResponse.failed("仿真知识库文件审批状态修改异常");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse queryFlowTemplateInfo(String uuid) {
|
||||
SdmResponse response;
|
||||
try {
|
||||
response = flowFeignClient.queryFlowTemplateInfo(uuid);
|
||||
if (!response.isSuccess()) {
|
||||
return SdmResponse.failed("查询流程模板信息失败");
|
||||
}
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
log.error("查询流程模板信息失败异常", e);
|
||||
return SdmResponse.failed("查询流程模板信息失败异常");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse batchAddSimulationFlowNode(FlowNodeDto req) {
|
||||
SdmResponse response;
|
||||
try {
|
||||
response = flowFeignClient.batchAddSimulationFlowNode(req);
|
||||
if (!response.isSuccess()) {
|
||||
return SdmResponse.failed("新增流程实例节点失败");
|
||||
}
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
log.error("新增流程实例节点异常", e);
|
||||
return SdmResponse.failed("新增流程实例节点异常");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse batchUpdateSimulationFlowNode(FlowNodeDto req) {
|
||||
SdmResponse response;
|
||||
try {
|
||||
response = flowFeignClient.batchUpdateSimulationFlowNode(req);
|
||||
if (!response.isSuccess()) {
|
||||
return SdmResponse.failed("更新流程实例节点失败");
|
||||
}
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
log.error("更新流程实例节点异常", e);
|
||||
return SdmResponse.failed("更新流程实例节点异常");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse<List<FlowNodeDto>> listSimulationFlowNode(FlowNodeDto req) {
|
||||
SdmResponse response;
|
||||
try {
|
||||
response = flowFeignClient.listSimulationFlowNode(req);
|
||||
if (!response.isSuccess()) {
|
||||
return SdmResponse.failed("查询流程节点信息失败");
|
||||
}
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
log.error("查询流程节点信息失败异常", e);
|
||||
return SdmResponse.failed("查询流程节点信息失败异常");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.sdm.common.feign.impl.capability;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.system.LaunchApproveReq;
|
||||
import com.sdm.common.feign.inter.capability.ISimulationFlowTemplateFeignClient;
|
||||
import com.sdm.common.feign.inter.system.IApproveFeignClient;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class SimulationFlowTemplateFeignClientImpl implements ISimulationFlowTemplateFeignClient {
|
||||
|
||||
@Autowired
|
||||
private ISimulationFlowTemplateFeignClient flowFeignClient;
|
||||
|
||||
|
||||
@Override
|
||||
public SdmResponse receiveApproveNotice(LaunchApproveReq req) {
|
||||
SdmResponse response;
|
||||
try {
|
||||
response = flowFeignClient.receiveApproveNotice(req);
|
||||
if (!response.isSuccess()) {
|
||||
return SdmResponse.failed("仿真知识库文件审批状态修改失败");
|
||||
}
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
log.error("仿真知识库文件审批状态修改异常", e);
|
||||
return SdmResponse.failed("仿真知识库文件审批状态修改异常");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.sdm.common.feign.impl.flowable;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.resp.flowable.ProcessInstanceResp;
|
||||
import com.sdm.common.feign.inter.flowable.IFlowableFeignClient;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class FlowableClientFeignClientImpl implements IFlowableFeignClient {
|
||||
@Autowired
|
||||
private IFlowableFeignClient flowableFeignClient;
|
||||
|
||||
public SdmResponse<ProcessInstanceResp> startByProcessDefinitionKey(@RequestParam String processDefinitionKey) {
|
||||
SdmResponse<ProcessInstanceResp> response;
|
||||
try {
|
||||
response = flowableFeignClient.startByProcessDefinitionKey(processDefinitionKey);
|
||||
log.info("启动流程实例:"+ response);
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
log.error("启动流程实例", e);
|
||||
return SdmResponse.failed("启动流程实例");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.sdm.common.feign.inter.capability;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.capability.FlowNodeDto;
|
||||
import com.sdm.common.entity.req.system.LaunchApproveReq;
|
||||
import com.sdm.common.entity.resp.capability.FlowTemplateResp;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@FeignClient(name = "capability")
|
||||
public interface ISimulationFlowFeignClient {
|
||||
|
||||
@PostMapping("/flow/approveHandleNotice")
|
||||
SdmResponse receiveApproveNotice(@RequestBody LaunchApproveReq req);
|
||||
|
||||
@GetMapping("/flow/queryFlowTemplateInfo")
|
||||
SdmResponse<FlowTemplateResp> queryFlowTemplateInfo(@RequestParam("uuid") String uuid);
|
||||
|
||||
@PostMapping("/flow/node/batchAddSimulationFlowNode")
|
||||
SdmResponse batchAddSimulationFlowNode(@RequestBody FlowNodeDto req);
|
||||
|
||||
@PostMapping("/flow/node/batchUpdateSimulationFlowNode")
|
||||
SdmResponse batchUpdateSimulationFlowNode(@RequestBody FlowNodeDto req);
|
||||
|
||||
@PostMapping("/node/listSimulationFlowNode")
|
||||
SdmResponse<List<FlowNodeDto>> listSimulationFlowNode(@RequestBody FlowNodeDto req);
|
||||
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.sdm.common.feign.inter.capability;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.system.LaunchApproveReq;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@FeignClient(name = "capability")
|
||||
public interface ISimulationFlowTemplateFeignClient {
|
||||
|
||||
@PostMapping("/flow/approveHandleNotice")
|
||||
SdmResponse receiveApproveNotice(@RequestBody LaunchApproveReq req);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.sdm.common.feign.inter.flowable;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.resp.flowable.ProcessInstanceResp;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
|
||||
@FeignClient(name = "flowable")
|
||||
public interface IFlowableFeignClient {
|
||||
@GetMapping("/process/startByProcessDefinitionKey")
|
||||
SdmResponse<ProcessInstanceResp> startByProcessDefinitionKey(@RequestParam String processDefinitionKey);
|
||||
|
||||
}
|
||||
@@ -531,7 +531,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
createDirectoryPermission(dirInfo.getId());
|
||||
|
||||
log.info("根目录创建成功");
|
||||
return SdmResponse.success("根目录创建成功");
|
||||
return SdmResponse.success(dirInfo.getId());
|
||||
} catch (Exception dbException) {
|
||||
log.error("创建根目录失败", dbException);
|
||||
|
||||
@@ -596,7 +596,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
createDirectoryPermission(dirInfo.getId());
|
||||
|
||||
log.info("子目录创建成功");
|
||||
return SdmResponse.success("子目录创建成功");
|
||||
return SdmResponse.success(dirInfo.getId());
|
||||
|
||||
} catch (Exception dbException) {
|
||||
log.error("创建子目录失败", dbException);
|
||||
|
||||
@@ -242,7 +242,7 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl<Simulatio
|
||||
@Override
|
||||
public SdmResponse<SimulationParameterLibraryCategoryObjectResp> getSimulationParameterLibraryCategoryObject(Long ObjectId) {
|
||||
SimulationParameterLibraryCategoryObjectResp resp = getSimulationParameterLibraryCategoryObjectInner(ObjectId);
|
||||
if (ApproveFileDataTypeEnum.UPLOAD_REVIEWING.getCode() != resp.getApproveType()) {
|
||||
if (resp.getApproveType() != null && ApproveFileDataTypeEnum.UPLOAD_REVIEWING.getCode() != resp.getApproveType()) {
|
||||
return SdmResponse.success(resp);
|
||||
} else {
|
||||
return SdmResponse.success(null);
|
||||
|
||||
@@ -2,12 +2,14 @@ package com.sdm.flowable.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.feign.inter.flowable.IFlowableFeignClient;
|
||||
import com.sdm.flowable.delegate.UniversalDelegate;
|
||||
import com.sdm.flowable.delegate.handler.HpcHandler;
|
||||
import com.sdm.flowable.dto.ProcessDefinitionDTO;
|
||||
import com.sdm.flowable.dto.req.AsyncCallbackRequest;
|
||||
import com.sdm.flowable.dto.req.CompleteTaskReq;
|
||||
import com.sdm.flowable.dto.req.RetryRequest;
|
||||
import com.sdm.flowable.dto.resp.ProcessInstanceResp;
|
||||
import com.sdm.common.entity.resp.flowable.ProcessInstanceResp;
|
||||
import com.sdm.flowable.process.ProcessService;
|
||||
import com.sdm.flowable.service.IProcessNodeParamService;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
@@ -23,7 +25,7 @@ import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/process")
|
||||
public class ProcessController {
|
||||
public class ProcessController implements IFlowableFeignClient {
|
||||
@Autowired
|
||||
private ProcessService processService;
|
||||
|
||||
|
||||
@@ -76,6 +76,14 @@ spring:
|
||||
- StripPrefix=2
|
||||
metadata:
|
||||
group: DEV_GROUP # 指定目标服务的分组
|
||||
- id: flowable-service
|
||||
uri: lb://flowable
|
||||
predicates:
|
||||
- Path=/simulation/flowable/**
|
||||
filters:
|
||||
- StripPrefix=2
|
||||
metadata:
|
||||
group: LOCAL_GROUP # 指定目标服务的分组
|
||||
discovery:
|
||||
locator:
|
||||
enabled: true
|
||||
|
||||
@@ -76,6 +76,14 @@ spring:
|
||||
- StripPrefix=2
|
||||
metadata:
|
||||
group: LOCAL_GROUP # 指定目标服务的分组
|
||||
- id: flowable-service
|
||||
uri: lb://flowable
|
||||
predicates:
|
||||
- Path=/simulation/flowable/**
|
||||
filters:
|
||||
- StripPrefix=2
|
||||
metadata:
|
||||
group: LOCAL_GROUP # 指定目标服务的分组
|
||||
discovery:
|
||||
locator:
|
||||
enabled: true
|
||||
|
||||
@@ -76,6 +76,14 @@ spring:
|
||||
- StripPrefix=2
|
||||
metadata:
|
||||
group: PROD_GROUP # 指定目标服务的分组
|
||||
- id: flowable-service
|
||||
uri: lb://flowable
|
||||
predicates:
|
||||
- Path=/simulation/flowable/**
|
||||
filters:
|
||||
- StripPrefix=2
|
||||
metadata:
|
||||
group: LOCAL_GROUP # 指定目标服务的分组
|
||||
discovery:
|
||||
locator:
|
||||
enabled: true
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -20,7 +20,7 @@
|
||||
<module>pbs</module>
|
||||
<module>system</module>
|
||||
<module>common</module>
|
||||
<!-- <module>flowable</module>-->
|
||||
<module>flowable</module>
|
||||
</modules>
|
||||
|
||||
<!--引入Spring Boot项目,子项目都是这个版本-->
|
||||
|
||||
@@ -178,4 +178,12 @@ public class SimulationRunController {
|
||||
runService.generateReport(req,response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务执行 一键执行 启动流程
|
||||
*/
|
||||
@PostMapping("/startProcessInstance")
|
||||
public SdmResponse startProcessInstance(@RequestBody SpdmTaskRunReq req) {
|
||||
return runService.startProcessInstance(req);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -141,4 +141,8 @@ public class SimulationRun implements Serializable {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@Schema(description= "流程实例id(流程引擎返回的)")
|
||||
@TableField("flowInstanceId")
|
||||
private String flowInstanceId;
|
||||
|
||||
}
|
||||
|
||||
@@ -17,5 +17,8 @@ public class SpdmTaskRunReq {
|
||||
@Schema(description = "任务uuid")
|
||||
private String taskId;
|
||||
|
||||
@Schema(description = "流程模板id")
|
||||
private String templateId;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -57,4 +57,6 @@ public interface ISimulationRunService extends IService<SimulationRun> {
|
||||
SdmResponse deleteSimulationKeyResult(KeyResultReq req);
|
||||
|
||||
void generateReport(SpdmReportReq req, HttpServletResponse response);
|
||||
|
||||
SdmResponse startProcessInstance(SpdmTaskRunReq req);
|
||||
}
|
||||
|
||||
@@ -3,20 +3,27 @@ package com.sdm.project.service.impl;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
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.entity.enums.DirTypeEnum;
|
||||
import com.sdm.common.entity.enums.NodeTypeEnum;
|
||||
import com.sdm.common.entity.req.capability.FlowNodeDto;
|
||||
import com.sdm.common.entity.req.data.*;
|
||||
import com.sdm.common.entity.req.system.UserQueryReq;
|
||||
import com.sdm.common.entity.resp.PageDataResp;
|
||||
import com.sdm.common.entity.resp.capability.FlowTemplateResp;
|
||||
import com.sdm.common.entity.resp.data.BatchAddFileInfoResp;
|
||||
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
|
||||
import com.sdm.common.entity.resp.flowable.ProcessInstanceResp;
|
||||
import com.sdm.common.entity.resp.system.CIDUserResp;
|
||||
import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
|
||||
import com.sdm.common.feign.inter.capability.ISimulationFlowFeignClient;
|
||||
import com.sdm.common.feign.inter.data.IDataFeignClient;
|
||||
import com.sdm.common.feign.inter.flowable.IFlowableFeignClient;
|
||||
import com.sdm.common.utils.PageUtils;
|
||||
import com.sdm.common.utils.RandomUtil;
|
||||
import com.sdm.project.common.KeyResultTypeEnum;
|
||||
@@ -50,11 +57,10 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.sdm.common.service.BaseService.generateUuid;
|
||||
import static com.sdm.project.service.impl.NodeServiceImpl.getTagProperty;
|
||||
import static com.sdm.project.service.impl.NodeServiceImpl.setTagProperty;
|
||||
|
||||
@@ -91,6 +97,12 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
@Autowired
|
||||
private IDataFeignClient dataFeignClient;
|
||||
|
||||
@Autowired
|
||||
private IFlowableFeignClient flowableFeignClient;
|
||||
|
||||
@Autowired
|
||||
private ISimulationFlowFeignClient flowFeignClient;
|
||||
|
||||
private static final String TEMP_REPORT_PATH = "/opt/report/";
|
||||
|
||||
private int getCurrentNodeDepth(NodeAllBase eachNode) {
|
||||
@@ -502,13 +514,8 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
if (fileMetadataInfoResp.getData() != null) {
|
||||
simulationRun.setFolderId(fileMetadataInfoResp.getData().getId());
|
||||
}
|
||||
BeanUtils.copyProperties(req, simulationRun);
|
||||
simulationRun.setUuid(RandomUtil.generateString(32));
|
||||
simulationRun.setRunName(req.getRunName());
|
||||
simulationRun.setTaskId(req.getTaskId());
|
||||
simulationRun.setDescription(req.getDescription());
|
||||
simulationRun.setTotalStep(req.getTotalStep());
|
||||
simulationRun.setParentId(req.getParentId());
|
||||
simulationRun.setFlowTemplate(req.getFlowTemplate());
|
||||
simulationRun.setCreator(userId);
|
||||
simulationRun.setUpdater(userId);
|
||||
simulationRun.setTenantId(tenantId);
|
||||
@@ -538,26 +545,92 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
simulationPerformanceService.saveBatch(runPerformanceList);
|
||||
}
|
||||
}
|
||||
CreateDirReq createDirReq = new CreateDirReq();
|
||||
createDirReq.setUuId(simulationRun.getUuid());
|
||||
if (fileMetadataInfoResp.getData() != null) {
|
||||
createDirReq.setParDirId(fileMetadataInfoResp.getData().getId());
|
||||
|
||||
// 创建算例文件夹
|
||||
SdmResponse runDirResponse = createDir(simulationRun.getUuid(), simulationTask.getUuid(), req.getRunName(), DirTypeEnum.PROJECT_NODE_DIR.getValue(), NodeTypeEnum.RUN.getValue());
|
||||
if (!runDirResponse.isSuccess()) {
|
||||
return SdmResponse.failed("创建算例文件夹失败:{}" + runDirResponse.getMessage());
|
||||
}
|
||||
createDirReq.setUuIdOwnType(NodeTypeEnum.RUN.getValue());
|
||||
createDirReq.setDirName(req.getRunName());
|
||||
createDirReq.setDirType(DirTypeEnum.PROJECT_NODE_DIR.getValue());
|
||||
log.info("创建算例时,调用创建文件夹的参数为:{}", createDirReq);
|
||||
SdmResponse response = dataFeignClient.createDir(createDirReq);
|
||||
log.info("创建算例时,调用创建文件夹的返回值为:{}", response);
|
||||
if (!response.isSuccess()) {
|
||||
this.removeById(simulationRun.getUuid());
|
||||
simulationPerformanceService.lambdaUpdate().eq(SimulationPerformance::getRunId, simulationRun.getUuid()).remove();
|
||||
|
||||
// 解析流程模板中的节点结构,初始化流程节点表
|
||||
SdmResponse<FlowTemplateResp> flowTemplateResp = flowFeignClient.queryFlowTemplateInfo(simulationRun.getFlowTemplate());
|
||||
if (flowTemplateResp.getData() != null) {
|
||||
try {
|
||||
List<FlowNodeDto> flowNodeDtoList = new ArrayList<>();
|
||||
List<Map<String, String>> result = extractFlowElements(flowTemplateResp.getData().getTemplateContent());
|
||||
for (Map<String, String> map : result) {
|
||||
FlowNodeDto flowNodeDto = new FlowNodeDto();
|
||||
flowNodeDto.setUuid(generateUuid("flow_node_"));
|
||||
flowNodeDto.setNodeName(map.get("name"));
|
||||
// flowNodeReq.setFlowInstanceId(simulationRun.getFlowInstanceId());
|
||||
flowNodeDto.setNodeId(map.get("id"));
|
||||
flowNodeDto.setTemplateId(simulationRun.getFlowTemplate());
|
||||
flowNodeDto.setRunId(simulationRun.getUuid());
|
||||
flowNodeDtoList.add(flowNodeDto);
|
||||
}
|
||||
for (FlowNodeDto flowNodeDto : flowNodeDtoList) {
|
||||
// 每个流程节点建立节点文件夹
|
||||
SdmResponse nodeDirResponse = createDir(flowNodeDto.getUuid(), simulationRun.getUuid(), flowNodeDto.getNodeName(), DirTypeEnum.PROJECT_NODE_DIR.getValue(), NodeTypeEnum.FLOW_NODE.getValue());
|
||||
if (!nodeDirResponse.isSuccess()) {
|
||||
return SdmResponse.failed("创建节点文件夹失败:{}" + nodeDirResponse.getMessage());
|
||||
}
|
||||
// 每个流程节点初始化输入输出两个文件夹
|
||||
SdmResponse inputDir = createDir(null, flowNodeDto.getUuid(), "数据输入", DirTypeEnum.PROJECT_NODE_DIR.getValue(), null);
|
||||
SdmResponse outputDir = createDir(null, flowNodeDto.getUuid(), "数据输出", DirTypeEnum.PROJECT_NODE_DIR.getValue(), null);
|
||||
flowNodeDto.setInputDirId(Long.parseLong(inputDir.getData().toString()));
|
||||
flowNodeDto.setOutputDirId(Long.parseLong(outputDir.getData().toString()));
|
||||
}
|
||||
FlowNodeDto addReq = new FlowNodeDto();
|
||||
addReq.setFlowNodeDtoList(flowNodeDtoList);
|
||||
if (!flowFeignClient.batchAddSimulationFlowNode(addReq).isSuccess()) {
|
||||
return SdmResponse.failed("新增流程节点失败:{}");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("解析流程模板json文件失败,flowTemplateId:{}", simulationRun.getFlowTemplate(), e);
|
||||
throw new RuntimeException("解析流程模板json文件失败:" + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return SdmResponse.success(simulationRun.getUuid());
|
||||
}
|
||||
}
|
||||
|
||||
private SdmResponse createDir(String uuid, String parentUuid, String dirName, Integer dirType, String uuidOwnType) {
|
||||
CreateDirReq createDirReq = new CreateDirReq();
|
||||
createDirReq.setUuId(uuid);
|
||||
createDirReq.setParentUuId(parentUuid);
|
||||
createDirReq.setUuIdOwnType(uuidOwnType);
|
||||
createDirReq.setDirName(dirName);
|
||||
createDirReq.setDirType(dirType);
|
||||
log.info("创建算例阶段时,调用创建文件夹的参数为:{}", createDirReq);
|
||||
SdmResponse response = dataFeignClient.createDir(createDirReq);
|
||||
log.info("创建算例阶段时,调用创建文件夹的返回值为:{}", response);
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析流程模板json结构 获取节点id和名称
|
||||
* @param jsonString
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static List<Map<String, String>> extractFlowElements(String jsonString) throws Exception {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
JsonNode rootNode = mapper.readTree(jsonString);
|
||||
JsonNode flowElements = rootNode.path("flowElements");
|
||||
List<Map<String, String>> elements = new ArrayList<>();
|
||||
for (JsonNode element : flowElements) {
|
||||
if ("sequenceFlow".equals(element.get("type").asText())) {
|
||||
continue;
|
||||
}
|
||||
Map<String, String> item = new HashMap<>();
|
||||
item.put("id", element.path("id").asText());
|
||||
item.put("name", element.path("name").asText());
|
||||
elements.add(item);
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SdmResponse deleteTaskRun(SpdmTaskRunReq req) {
|
||||
@@ -681,7 +754,7 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
if (!simulationKeyResultService.save(simulationRunKeyResult)) {
|
||||
return SdmResponse.failed("添加关键结果失败");
|
||||
}
|
||||
return SdmResponse.success();
|
||||
return SdmResponse.success(simulationRunKeyResult.getUuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -860,6 +933,25 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SdmResponse startProcessInstance(SpdmTaskRunReq req) {
|
||||
SimulationRun simulationRun = this.lambdaQuery().eq(SimulationRun::getUuid, req.getRunId()).one();
|
||||
// 启动流程实例
|
||||
SdmResponse<ProcessInstanceResp> sdmResponse = flowableFeignClient.startByProcessDefinitionKey(simulationRun.getFlowTemplate());
|
||||
if (sdmResponse.getData() != null) {
|
||||
this.lambdaUpdate().set(SimulationRun::getFlowInstanceId, sdmResponse.getData().getId()).eq(SimulationRun::getUuid, req.getRunId()).update();
|
||||
// 更新node节点的流程实例id
|
||||
FlowNodeDto flowNodeDto = new FlowNodeDto();
|
||||
flowNodeDto.setRunId(req.getRunId());
|
||||
flowNodeDto.setFlowInstanceId(sdmResponse.getData().getId());
|
||||
flowFeignClient.batchUpdateSimulationFlowNode(flowNodeDto);
|
||||
} else {
|
||||
return SdmResponse.failed("流程实例启动失败");
|
||||
}
|
||||
return sdmResponse;
|
||||
}
|
||||
|
||||
public static void deleteFolder(File folder) {
|
||||
if (folder.isDirectory()) {
|
||||
File[] files = folder.listFiles();
|
||||
|
||||
@@ -351,6 +351,7 @@ public class SimulationSystemConfigServiceImpl extends BaseService implements IS
|
||||
queryWrapper.like(SysFormConfigure::getFormName, req.formName);
|
||||
}
|
||||
queryWrapper.orderByDesc(SysFormConfigure::getCreateTime);
|
||||
queryWrapper.eq(SysFormConfigure::getTenantId, ThreadLocalContext.getTenantId());
|
||||
List<SysFormConfigure> list = formConfigureService.list(queryWrapper);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return SdmResponse.failed("自定义表单列表为空,请初始化");
|
||||
|
||||
@@ -2,8 +2,7 @@ package com.sdm.system.service.impl.approvalNotice;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.system.LaunchApproveReq;
|
||||
import com.sdm.common.feign.inter.capability.ISimulationFlowTemplateFeignClient;
|
||||
import com.sdm.common.feign.inter.task.ISimuluationTaskPoolFeignClient;
|
||||
import com.sdm.common.feign.inter.capability.ISimulationFlowFeignClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -11,7 +10,7 @@ import org.springframework.stereotype.Component;
|
||||
public class SimulationFlowTemplateNoticeStrategy extends ApproveAbstractNoticeStrategy {
|
||||
|
||||
@Autowired
|
||||
private ISimulationFlowTemplateFeignClient simulationFlowTemplateFeignClient;
|
||||
private ISimulationFlowFeignClient simulationFlowTemplateFeignClient;
|
||||
// 这个回调场景值和 LaunchApproveReq 类里的 approveType 对应
|
||||
// 审批类型 0.http回调的,replyUrl必须传递,相当于是跨系统的,调用的时候可以不传,replyUrl必须传递 ;1:仿真地图审批(spdm内部feign) 2:知识库审批(spdm内部feign)
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user