From e6dabfba09d111a7c5a896e6c079742ec217928c Mon Sep 17 00:00:00 2001 From: yangyang01000846 <15195822163@163.com> Date: Wed, 24 Dec 2025 15:14:19 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E5=AF=B9?= =?UTF-8?q?=E5=A4=96=E6=A8=A1=E5=9D=97=E6=B5=B7=E8=91=B5=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- outbridge/src/main/resources/common.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/outbridge/src/main/resources/common.yml b/outbridge/src/main/resources/common.yml index 751d4d45..a667a64d 100644 --- a/outbridge/src/main/resources/common.yml +++ b/outbridge/src/main/resources/common.yml @@ -19,7 +19,7 @@ spring: appKey : e9eb516aa02a43a29e227a0d901ec5f1 appSecret : 9fac43db08634aaf8a9fe5fb9468de9d # 海葵云url -HK_CLOUD_URL : https://v15.lyh.haikuidcloud.com +HK_CLOUD_URL : https://v15.lyh.haikuicloud.com # 1. 海葵云获取用户token url后缀 HK_USER_TOKEN_URL_SUFFIX: /merchant/openapi/user/login/jobNo # 2. 海葵云获取单个用户信息url后缀 From a50f257d041c788d5fa7040c8b5b7825d0896c37 Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Wed, 24 Dec 2025 16:05:10 +0800 Subject: [PATCH 2/4] =?UTF-8?q?1=E3=80=81=E4=BA=8C=E7=BB=B4=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E4=BC=98=E5=8C=96=202=E3=80=81=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E8=BF=94=E5=9B=9E=E9=A1=B9=E7=9B=AE=E6=9D=A5?= =?UTF-8?q?=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1-sql/2025-12-24/project/simulation_demand.sql | 3 ++- 1-sql/2025-12-24/project/simulation_node.sql | 3 ++- .../java/com/sdm/common/utils/excel/ExcelUtil.java | 10 ++++++++++ .../com/sdm/project/model/vo/SpdmNodeDetailVo.java | 4 ++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/1-sql/2025-12-24/project/simulation_demand.sql b/1-sql/2025-12-24/project/simulation_demand.sql index e36a4d7c..501fafbf 100644 --- a/1-sql/2025-12-24/project/simulation_demand.sql +++ b/1-sql/2025-12-24/project/simulation_demand.sql @@ -1,2 +1,3 @@ ALTER TABLE simulation_demand ADD demandSource varchar(12) NULL COMMENT '需求来源:自建、同步'; -ALTER TABLE simulation_demand ADD contentHash varchar(64) NULL COMMENT 'hash值,同步待办时判断是否需要更新'; \ No newline at end of file +ALTER TABLE simulation_demand ADD contentHash varchar(64) NULL COMMENT 'hash值,同步待办时判断是否需要更新'; +ALTER TABLE simulation_demand MODIFY COLUMN demandSource varchar(16) DEFAULT 'DM'; \ No newline at end of file diff --git a/1-sql/2025-12-24/project/simulation_node.sql b/1-sql/2025-12-24/project/simulation_node.sql index 55d3efaa..6fcc61ce 100644 --- a/1-sql/2025-12-24/project/simulation_node.sql +++ b/1-sql/2025-12-24/project/simulation_node.sql @@ -1,2 +1,3 @@ ALTER TABLE simulation_node ADD projectId INT NULL COMMENT '利元亨项目id'; -ALTER TABLE simulation_node ADD projectSource varchar(16) NULL COMMENT '项目来源:自建、同步'; \ No newline at end of file +ALTER TABLE simulation_node ADD projectSource varchar(16) NULL COMMENT '项目来源:自建、同步'; +ALTER TABLE simulation_node MODIFY COLUMN projectSource varchar(16) DEFAULT 'DM'; \ No newline at end of file diff --git a/common/src/main/java/com/sdm/common/utils/excel/ExcelUtil.java b/common/src/main/java/com/sdm/common/utils/excel/ExcelUtil.java index 525af0cf..f98d7220 100644 --- a/common/src/main/java/com/sdm/common/utils/excel/ExcelUtil.java +++ b/common/src/main/java/com/sdm/common/utils/excel/ExcelUtil.java @@ -687,6 +687,16 @@ public class ExcelUtil { for (int i = 0; i < 8; i++) { sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, i, i)); } + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 21, 21)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 22, 22)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 23, 23)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 29, 29)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 30, 30)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 31, 31)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 32, 32)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 33, 33)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 34, 34)); + sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, 35, 35)); } } } diff --git a/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java b/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java index 12eb7447..fffe93cd 100644 --- a/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java +++ b/project/src/main/java/com/sdm/project/model/vo/SpdmNodeDetailVo.java @@ -99,4 +99,8 @@ public class SpdmNodeDetailVo extends BaseEntity { */ private String currentPhase; + private Integer projectId; + + private String projectSource; + } From 2c7f11917ee32680b3529a391940f5482e25ce77 Mon Sep 17 00:00:00 2001 From: yangyang01000846 <15195822163@163.com> Date: Wed, 24 Dec 2025 17:04:36 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E7=8E=B0?= =?UTF-8?q?=E5=9C=BA=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=9F=BA=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/lyric/LyricIntegrateService.java | 10 +- .../controller/TestSecondDbController.java | 116 +++++++++++------- pbs/src/main/resources/application-lyric.yml | 13 +- 3 files changed, 89 insertions(+), 50 deletions(-) diff --git a/outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java index fb0676f6..d0502b3f 100644 --- a/outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java +++ b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java @@ -365,11 +365,11 @@ public class LyricIntegrateService { public SdmResponse pushFreeLinkMsg(FreelinkAndDingdingInformReq req){ SdmResponse response = SdmResponse.success(); - String token = getHKCloudToken(req.getJobNo()); +// String token = getHKCloudToken(req.getJobNo()); - if (token == null || token.isEmpty()) { - return SdmResponse.failed("获取海葵云token失败"); - } +// if (token == null || token.isEmpty()) { +// return SdmResponse.failed("获取海葵云token失败"); +// } FreeLinkMsg freeLinkMsg = req.getFreeLinkMsg(); List params = new ArrayList<>(); @@ -383,7 +383,7 @@ public class LyricIntegrateService { String getProcessDataUrl=FREELINK_URL+FREELINK_PUSH_MSG_SUFFIX; Map headerMap = new HashMap<>(); headerMap.put("Content-Type","application/x-www-form-urlencoded"); - headerMap.put("authorization", token); +// headerMap.put("authorization", token); try { String result = HttpUtil.httpPostForm(getProcessDataUrl, headerMap, params); diff --git a/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java b/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java index af029874..26338613 100644 --- a/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java +++ b/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java @@ -1,10 +1,12 @@ package com.sdm.pbs.controller; import com.sdm.common.common.SdmResponse; +import com.sdm.outbridge.entity.*; import com.sdm.outbridge.mode.FreelinkAndDingdingInformReq; import com.sdm.outbridge.mode.GetProcessDataReq; import com.sdm.outbridge.mode.HkUploadFileReq; -import com.sdm.outbridge.service.lyric.LyricIntegrateService; +import com.sdm.outbridge.service.lyric.*; +import com.sdm.pbs.service.TestService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; @@ -17,13 +19,30 @@ import java.util.Map; @Slf4j @RestController -@RequestMapping("/sec") +@RequestMapping @Tag(name = "测试外部模块系统交互", description = "测试外部模块系统交互") public class TestSecondDbController { /*利元亨现场对接接口方法*/ @Autowired private LyricIntegrateService lyricIntegrateService; + @Autowired + private LyricVMainPlanDMService lyricVMainPlanDMService; + @Autowired + private LyricVPdtDmService lyricVPdtDmService; + @Autowired + private LyricVProductionLineToDmService lyricVProductionLineToDmService; + @Autowired + private LyricVProjectBatchToDmService lyricVProjectBatchToDmService; + @Autowired + private LyricVProjectToDmService lyricVProjectToDmService; + @Autowired + private LyricVTodoInfoService lyricVTodoInfoService; + + + @Autowired + private TestService testService; + // mock @@ -83,48 +102,57 @@ public class TestSecondDbController { } -// /*现场查询视图的方法mock */ -// @GetMapping("/getTodoInfoDm") no usages -// @Operation(summary = "查询代办") -// public SdmResponse> getTodoInfoDm() { -// // 查询从数据源 -// List todoInfoList = lyricVTodoInfoService.lambdaQuery().last(lastSql: "limit 2").list(); -// return SdmResponse.success(todoInfoList); -// } -// -// @GetMapping("/getPdtDm") no usages -// @Operation(summary = "查询项目Pdt") -// public SdmResponse> getPdtDm() { -// // 查询从数据源 -// List lyricVPdtToDMList = LyricVPdtDmService.lambdaQuery().last(lastSql: "limit 2").list(); -// return SdmResponse.success(lyricVPdtToDMList); -// } -// -// @GetMapping("/getMain") no usages -// @Operation(summary = "查询主计划") -// public SdmResponse> getMain() { -// // 查询从数据源 -// List mainPlanDMSList = lyricVMainPlanDMService.lambdaQuery().last(lastSql: "limit 2").list(); -// return SdmResponse.success(mainPlanDMSList); -// } -// -// @GetMapping("/getProductLine") no usages -// @Operation(summary = "查询产线信息") -// public SdmResponse> getProductLine() { -// // 查询从数据源 -// List productionLineToDMList = lyricVProductionLineToDmService -// .lambdaQuery().last(lastSql: "limit 2").list(); -// return SdmResponse.success(productionLineToDMList); -// } -// -// @GetMapping("/getProjectInfo") no usages -// @Operation(summary = "查询项目信息") -// public SdmResponse> getProjectInfo() { -// // 查询从数据源 -// List projectToDmList = LyricVProjectToDmService -// .lambdaQuery().last(lastSql: "limit 3").list(); -// return SdmResponse.success(projectToDmList); -// } + /*现场查询视图的方法mock */ + @GetMapping("/getTodoInfoDm") + @Operation(summary = "查询代办") + public SdmResponse> getTodoInfoDm() { + // 查询从数据源 + List todoInfoList = lyricVTodoInfoService.lambdaQuery().last( "limit 2").list(); + return SdmResponse.success(todoInfoList); + } + + @GetMapping("/getPdtDm") + @Operation(summary = "查询项目Pdt") + public SdmResponse> getPdtDm() { + // 查询从数据源 + List lyricVPdtToDMList =lyricVPdtDmService.lambdaQuery().last( "limit 2").list(); + return SdmResponse.success(lyricVPdtToDMList); + } + + @GetMapping("/getMain") + @Operation(summary = "查询主计划") + public SdmResponse> getMain() { + // 查询从数据源 + List mainPlanDMSList = lyricVMainPlanDMService.lambdaQuery().last("limit 2").list(); + return SdmResponse.success(mainPlanDMSList); + } + + @GetMapping("/getProductLine") + @Operation(summary = "查询产线信息") + public SdmResponse> getProductLine() { + // 查询从数据源 + List productionLineToDMList = lyricVProductionLineToDmService + .lambdaQuery().last( "limit 2").list(); + return SdmResponse.success(productionLineToDMList); + } + + @GetMapping("/getProjectBatch") + @Operation(summary = "查询批次信息") + public SdmResponse> getProjectBatch() { + // 查询从数据源 + List list = lyricVProjectBatchToDmService + .lambdaQuery().last("limit 2").list(); + return SdmResponse.success(list); + } + + @GetMapping("/getProjectInfo") + @Operation(summary = "查询项目信息") + public SdmResponse> getProjectInfo() { + // 查询从数据源 + List projectToDmList = + lyricVProjectToDmService.lambdaQuery().last("limit 3").list(); + return SdmResponse.success(projectToDmList); + } diff --git a/pbs/src/main/resources/application-lyric.yml b/pbs/src/main/resources/application-lyric.yml index 63cd3123..f68dd2e7 100644 --- a/pbs/src/main/resources/application-lyric.yml +++ b/pbs/src/main/resources/application-lyric.yml @@ -138,4 +138,15 @@ security: paths: - /pbs/jobFileCallback - /pbs/netTest - - /pbs/adapterSubmitHpcJob \ No newline at end of file + - /pbs/adapterSubmitHpcJob + - /getHkUserInfo + - /uploadHkFile + - /getProcessData + - /pushFreeLinkMsg + - /queryTodoAttachments + - /getTodoInfoDm + - /getPdtDm + - /getMain + - /getProductLine + - /getProjectBatch + - /getProjectInfo \ No newline at end of file From 14925bed131af7223364ca24c8cbae263a450577 Mon Sep 17 00:00:00 2001 From: zhuxinru Date: Wed, 24 Dec 2025 17:20:24 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E9=87=8D=E8=AF=95=20&=20=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=BA=93=E5=AF=B9=E8=B1=A1=E5=88=9B=E5=BB=BA=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FlowableClientFeignClientImpl.java | 13 +++++++ .../inter/flowable/IFlowableFeignClient.java | 3 ++ .../model/req/SimulationParameterItem.java | 6 +++ ...SimulationParameterLibraryServiceImpl.java | 39 ++++++++++++++++++- .../controller/SimulationRunController.java | 10 +++++ .../service/ISimulationRunService.java | 2 + .../impl/SimulationRunServiceImpl.java | 5 +++ 7 files changed, 77 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/com/sdm/common/feign/impl/flowable/FlowableClientFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/flowable/FlowableClientFeignClientImpl.java index 9edfa8e0..7dee2249 100644 --- a/common/src/main/java/com/sdm/common/feign/impl/flowable/FlowableClientFeignClientImpl.java +++ b/common/src/main/java/com/sdm/common/feign/impl/flowable/FlowableClientFeignClientImpl.java @@ -95,4 +95,17 @@ public class FlowableClientFeignClientImpl implements IFlowableFeignClient { } return SdmResponse.success(); } + + @Override + public SdmResponse retryFailedNode(String processInstanceId, String failNodeId) { + SdmResponse response; + try { + response = flowableFeignClient.retryFailedNode(processInstanceId, failNodeId); + log.info("重试当前失败节点:"+ response); + return response; + } catch (Exception e) { + log.error("重试当前失败节点失败", e); + return SdmResponse.failed("重试当前失败节点失败"); + } + } } diff --git a/common/src/main/java/com/sdm/common/feign/inter/flowable/IFlowableFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/flowable/IFlowableFeignClient.java index cbaaae59..8f8a98f6 100644 --- a/common/src/main/java/com/sdm/common/feign/inter/flowable/IFlowableFeignClient.java +++ b/common/src/main/java/com/sdm/common/feign/inter/flowable/IFlowableFeignClient.java @@ -36,4 +36,7 @@ public interface IFlowableFeignClient { @PostMapping("/process/asyncCallback") SdmResponse asyncCallback(@RequestBody AsyncCallbackRequest request); + @PostMapping("/process/retryFailedNode") + SdmResponse retryFailedNode(@RequestParam String processInstanceId, @RequestParam String failNodeId); + } diff --git a/data/src/main/java/com/sdm/data/model/req/SimulationParameterItem.java b/data/src/main/java/com/sdm/data/model/req/SimulationParameterItem.java index 18b6f7ca..a0997d54 100644 --- a/data/src/main/java/com/sdm/data/model/req/SimulationParameterItem.java +++ b/data/src/main/java/com/sdm/data/model/req/SimulationParameterItem.java @@ -16,4 +16,10 @@ public class SimulationParameterItem { @Schema(description = "描述") private String description; + + @Schema(description = "创建人") + private Long creatorId; + + @Schema(description = "创建时间") + private String createTime; } \ No newline at end of file diff --git a/data/src/main/java/com/sdm/data/service/impl/SimulationParameterLibraryServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/SimulationParameterLibraryServiceImpl.java index e43d4500..fd7ee79d 100644 --- a/data/src/main/java/com/sdm/data/service/impl/SimulationParameterLibraryServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/SimulationParameterLibraryServiceImpl.java @@ -15,6 +15,7 @@ import com.sdm.common.entity.enums.SimulationParameterDataTypeEnum; import com.sdm.common.entity.req.system.LaunchApproveReq; import com.sdm.common.feign.impl.system.ApproveFeignClientImpl; import com.sdm.common.service.UserNameCacheService; +import com.sdm.common.utils.DateUtils; import com.sdm.data.dao.SimulationParameterLibraryMapper; import com.sdm.data.model.bo.ApprovalParamContentsModel; import com.sdm.data.model.entity.FileMetadataInfo; @@ -35,6 +36,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; @@ -98,7 +100,21 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl integerSdmResponse = dataFileService.uploadSimulationParamFile(req.getFile()); + // 添加创建人和创建时间 + String originalJson = new String(req.getFile().getBytes(), StandardCharsets.UTF_8); + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode jsonNode = objectMapper.readTree(originalJson); + List> parameterJsonValueFromJsonNode = parseJsonArray(jsonNode); + if (!CollectionUtils.isEmpty(parameterJsonValueFromJsonNode)) { + parameterJsonValueFromJsonNode.forEach(map -> { + map.put("creatorId", ThreadLocalContext.getUserId()); + map.put("createTime", DateUtils.format(new Date(), DateUtils.PATTERN_DEFAULT)); + }); + } + String content = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(parameterJsonValueFromJsonNode); + MultipartFile file = new MockMultipartFile(req.getFileName(), req.getFile().getOriginalFilename(), req.getFile().getContentType(), content.getBytes(StandardCharsets.UTF_8)); + + SdmResponse integerSdmResponse = dataFileService.uploadSimulationParamFile(file); Long fileId = integerSdmResponse.getData(); SimulationParameterLibraryCategoryObject simulationParameterLibraryCategoryObject = new SimulationParameterLibraryCategoryObject(); @@ -321,7 +337,21 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl> parameterJsonValueFromJsonNode = parseJsonArray(jsonNode); + if (!CollectionUtils.isEmpty(parameterJsonValueFromJsonNode)) { + // 将 List userIds 转成set + Set userIdsSet = new HashSet<>(); + for (Map map : parameterJsonValueFromJsonNode) { + userIdsSet.add((Long) map.get("creatorId")); + } + Map longStringMap = userNameCacheService.batchGetUserNames(userIdsSet); + for (Map map : parameterJsonValueFromJsonNode) { + map.put("creator", longStringMap.get((Long) map.get("creatorId"))); + simulationParameterLibraryCategoryObjectResp.setCreateTime(simulationParameterLibraryCategoryObject.getCreateTime()); + } + } simulationParameterLibraryCategoryObjectResp.setParameterJsonValue(parameterJsonValueFromJsonNode); + + } else { // 兜底操作,可能是清库了,或者数据被删除了,删除掉参数对象的json文件信息 simulationParameterLibraryCategoryObject.setFileId(null); @@ -453,6 +483,13 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl { + if (item.getCreatorId() == null) { + item.setCreatorId(ThreadLocalContext.getUserId()); + item.setCreateTime(DateUtils.format(new Date(), DateUtils.PATTERN_DEFAULT)); + } + }); // 将参数列表直接转换为JSON ObjectMapper objectMapper = new ObjectMapper(); diff --git a/project/src/main/java/com/sdm/project/controller/SimulationRunController.java b/project/src/main/java/com/sdm/project/controller/SimulationRunController.java index 602e3cb3..56da7e55 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationRunController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationRunController.java @@ -257,6 +257,16 @@ public class SimulationRunController implements ISimulationRunFeignClient { public SdmResponse listFlowNodes(@RequestBody SpdmTaskRunReq req) { return runService.listFlowNodes(req); } + + /** + * 任务执行 重试失败节点 + */ + @SysLog("任务执行 重试失败节点") + @PostMapping("/retryFailedNode") + public SdmResponse retryFailedNode(@RequestParam String processInstanceId, @RequestParam String failNodeId) { + return runService.retryFailedNode(processInstanceId, failNodeId); + } + /** * 流程关联报告 * diff --git a/project/src/main/java/com/sdm/project/service/ISimulationRunService.java b/project/src/main/java/com/sdm/project/service/ISimulationRunService.java index 8ed2d77a..3b3fb1d3 100644 --- a/project/src/main/java/com/sdm/project/service/ISimulationRunService.java +++ b/project/src/main/java/com/sdm/project/service/ISimulationRunService.java @@ -79,6 +79,8 @@ public interface ISimulationRunService extends IService { SdmResponse listFlowNodes(SpdmTaskRunReq req); + SdmResponse retryFailedNode(String processInstanceId, String failNodeId); + SdmResponse flowRelateReport(SpdmReportReq req); SdmResponse> listQuantities(); diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java index f5c943a3..bbf9aebe 100644 --- a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java @@ -1504,6 +1504,11 @@ public class SimulationRunServiceImpl extends ServiceImpl