From efbde5cf985a5ca090856f7ddf7c265080babf47 Mon Sep 17 00:00:00 2001 From: daiqy88 Date: Tue, 10 Feb 2026 21:07:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=B5=81=E7=A8=8B=E6=A8=A1=E7=89=88feign=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../capability/controller/FlowController.java | 7 ++++ .../sdm/capability/service/IFlowService.java | 8 +++++ .../service/impl/FlowServiceImpl.java | 36 +++++++++++++++++++ .../SimulationFlowFeignClientImpl.java | 16 +++++++++ .../ISimulationFlowFeignClient.java | 5 +++ 5 files changed, 72 insertions(+) diff --git a/capability/src/main/java/com/sdm/capability/controller/FlowController.java b/capability/src/main/java/com/sdm/capability/controller/FlowController.java index 771d7783..0c95b9b5 100644 --- a/capability/src/main/java/com/sdm/capability/controller/FlowController.java +++ b/capability/src/main/java/com/sdm/capability/controller/FlowController.java @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; +import java.util.Map; @RestController @RequestMapping("/flow") @@ -82,6 +83,12 @@ public class FlowController implements ISimulationFlowFeignClient { return IFlowService.getReleaseFlowTemplateByCondition(req.templateType,req.templateName,req.approveType,req.createTime,req.creator,req.current,req.size,req.type,req.templateStatus); } + @SysLog("批量查询流程模版") + @PostMapping("/batchQueryFlowTemplate") + public SdmResponse> batchQueryFlowTemplate(@RequestBody @Validated List templateCodes) { + return IFlowService.getFlowTemplateByTemplateCodes(templateCodes); + } + /** * 查询仿真流程模版版本信息 * @param code diff --git a/capability/src/main/java/com/sdm/capability/service/IFlowService.java b/capability/src/main/java/com/sdm/capability/service/IFlowService.java index ddf15940..65e0eb99 100644 --- a/capability/src/main/java/com/sdm/capability/service/IFlowService.java +++ b/capability/src/main/java/com/sdm/capability/service/IFlowService.java @@ -7,6 +7,7 @@ import com.sdm.common.entity.resp.capability.FlowTemplateResp; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; @Service public interface IFlowService { @@ -81,6 +82,13 @@ public interface IFlowService { */ SdmResponse getFlowTemplateInfo(String uuid); + /** + * 通过流程模版编号批量获取流程模版 + * @param templateCodes + * @return + */ + SdmResponse> getFlowTemplateByTemplateCodes(List templateCodes); + /** * 处理评审结果 diff --git a/capability/src/main/java/com/sdm/capability/service/impl/FlowServiceImpl.java b/capability/src/main/java/com/sdm/capability/service/impl/FlowServiceImpl.java index 5e3603be..dec6bf67 100644 --- a/capability/src/main/java/com/sdm/capability/service/impl/FlowServiceImpl.java +++ b/capability/src/main/java/com/sdm/capability/service/impl/FlowServiceImpl.java @@ -477,6 +477,42 @@ public class FlowServiceImpl extends BaseService implements IFlowService { return response; } + /** + * 通过流程模版编码批量获取流程模版信息 + * @param templateCodes + * @return + */ + public SdmResponse> getFlowTemplateByTemplateCodes(List templateCodes) + { + String condition = "templateCode IN ('"+String.join("','",templateCodes)+"'"+")"; + List templates = flowMapper.queryFlowTemplateByCondition(condition); + Map flowTemplateMap = new HashMap<>(); + for(SimulationFlowTemplate template : templates) + { + SimulationFlowTemplate flowTemplate = flowTemplateMap.get(template.templateCode); + if(flowTemplate == null) + { + flowTemplateMap.put(template.templateCode,template); + } + else + { + if(flowTemplate.templateVersion.compareToIgnoreCase(template.templateVersion) < 0) + { + flowTemplateMap.put(template.templateCode,template); + } + } + } + Map flowTemplateRespMap = new HashMap<>(); //适配feign接口中的公共类FlowTemplateResp + for(String key : flowTemplateMap.keySet()) + { + FlowTemplateResp flowTemplateResp = new FlowTemplateResp(); + SimulationFlowTemplate flowTemplate = flowTemplateMap.get(key); + BeanUtils.copyProperties(flowTemplate,flowTemplateResp); + flowTemplateRespMap.put(key,flowTemplateResp); + } + return SdmResponse.success(flowTemplateRespMap); + } + @Override public SdmResponse handleApproveResult(LaunchApproveReq req) { diff --git a/common/src/main/java/com/sdm/common/feign/impl/capability/SimulationFlowFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/capability/SimulationFlowFeignClientImpl.java index fb3d5ae2..a5b43c6e 100644 --- a/common/src/main/java/com/sdm/common/feign/impl/capability/SimulationFlowFeignClientImpl.java +++ b/common/src/main/java/com/sdm/common/feign/impl/capability/SimulationFlowFeignClientImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; import java.util.List; +import java.util.Map; @Slf4j @Component @@ -140,4 +141,19 @@ public class SimulationFlowFeignClientImpl implements ISimulationFlowFeignClient return SdmResponse.failed("查询有效流程模板信息失败异常"); } } + + @Override + public SdmResponse> batchQueryFlowTemplate(List templateCodes) { + SdmResponse> response; + try { + response = flowFeignClient.batchQueryFlowTemplate(templateCodes); + if (!response.isSuccess()) { + return SdmResponse.failed("查询有效流程模板信息失败"); + } + return response; + } catch (Exception e) { + log.error("查询有效流程模板信息失败异常", e); + return SdmResponse.failed("查询有效流程模板信息失败异常"); + } + } } diff --git a/common/src/main/java/com/sdm/common/feign/inter/capability/ISimulationFlowFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/capability/ISimulationFlowFeignClient.java index 861cb494..a3cd34a3 100644 --- a/common/src/main/java/com/sdm/common/feign/inter/capability/ISimulationFlowFeignClient.java +++ b/common/src/main/java/com/sdm/common/feign/inter/capability/ISimulationFlowFeignClient.java @@ -5,12 +5,14 @@ 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.validation.annotation.Validated; 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; +import java.util.Map; @FeignClient(name = "capability") public interface ISimulationFlowFeignClient { @@ -39,4 +41,7 @@ public interface ISimulationFlowFeignClient { @GetMapping("/flow/queryValidFlowTemplate") SdmResponse> queryValidFlowTemplateInfo(); + @PostMapping("/flow/batchQueryFlowTemplate") + SdmResponse> batchQueryFlowTemplate(@RequestBody @Validated List templateCodes); + }