diff --git a/blade-service-api/blade-process-api/src/main/java/org/springblade/process/feign/IBusinessProcessClient.java b/blade-service-api/blade-process-api/src/main/java/org/springblade/process/feign/IBusinessProcessClient.java index d6e5fa3..ecbdf0c 100644 --- a/blade-service-api/blade-process-api/src/main/java/org/springblade/process/feign/IBusinessProcessClient.java +++ b/blade-service-api/blade-process-api/src/main/java/org/springblade/process/feign/IBusinessProcessClient.java @@ -39,6 +39,7 @@ public interface IBusinessProcessClient { String QUERY_BUSINESS_PROCESS_SNAPSHOT = API_PREFIX + "/queryBusinessProcessSnapshot"; String QUERY_APPROVED_RECORD_LIST = API_PREFIX + "/queryApprovedRecordsNoAttachments"; String GET_CURRENT_NODES = API_PREFIX + "/getCurrentNodes"; + String GET_PROCESS_INFO = API_PREFIX + "/getProcessInfo"; /** * 提交业务流程 @@ -114,4 +115,15 @@ public interface IBusinessProcessClient { @GetMapping(GET_CURRENT_NODES) FR getCurrentNodes(@RequestParam("processInstanceId") String processInstanceId, @RequestParam(value = "loginName", required = false) String loginName); + + /** + * 获取流程实例详情 + * + * @param processInstanceId 流程实例id + * @param loginName MK登录名(手机号) + * @return 流程实例详情 + */ + @GetMapping(GET_PROCESS_INFO) + FR getProcessInfo(@RequestParam("processInstanceId") String processInstanceId, + @RequestParam(value = "loginName", required = false) String loginName); } diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/feign/ICustomerArchiveClient.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/feign/ICustomerArchiveClient.java new file mode 100644 index 0000000..53c7aa2 --- /dev/null +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/feign/ICustomerArchiveClient.java @@ -0,0 +1,26 @@ +package org.springblade.transport.feign; + +import org.springblade.core.tool.api.FR; +import org.springblade.transport.pojo.dto.CustomerProcessNodeSyncDTO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * 客商档案 Feign接口 + */ +@FeignClient(value = "blade-transport") +public interface ICustomerArchiveClient { + + String API_PREFIX = "/feign/client/customerArchive"; + String SYNC_PROCESS_NODE = API_PREFIX + "/syncProcessNode"; + + /** + * 按 MK 当前节点同步客商当前节点、当前处理人和审批状态 + * + * @param param 同步参数 + * @return 是否成功 + */ + @PostMapping(SYNC_PROCESS_NODE) + FR syncProcessNode(@RequestBody CustomerProcessNodeSyncDTO param); +} diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/CustomerProcessNodeSyncDTO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/CustomerProcessNodeSyncDTO.java new file mode 100644 index 0000000..99168e5 --- /dev/null +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/CustomerProcessNodeSyncDTO.java @@ -0,0 +1,30 @@ +package org.springblade.transport.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 客商流程当前节点同步参数 + */ +@Data +@Schema(description = "客商流程当前节点同步参数") +public class CustomerProcessNodeSyncDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "客商ID") + private Long id; + + @Schema(description = "当前节点") + private String currentNode; + + @Schema(description = "当前处理人") + private String currentProcessor; + + @Schema(description = "审批状态") + private String approvalStatus; +} diff --git a/blade-service/blade-system/pom.xml b/blade-service/blade-system/pom.xml index 35b4f52..81ac5a9 100644 --- a/blade-service/blade-system/pom.xml +++ b/blade-service/blade-system/pom.xml @@ -62,6 +62,10 @@ org.springblade blade-mk-api + + org.springblade + blade-transport-api + diff --git a/blade-service/blade-system/src/main/java/org/springblade/process/feign/BusinessProcessClient.java b/blade-service/blade-system/src/main/java/org/springblade/process/feign/BusinessProcessClient.java index b0f8b8e..fa87f97 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/process/feign/BusinessProcessClient.java +++ b/blade-service/blade-system/src/main/java/org/springblade/process/feign/BusinessProcessClient.java @@ -86,4 +86,12 @@ public class BusinessProcessClient implements IBusinessProcessClient { @RequestParam(value = "loginName", required = false) String loginName) { return FR.data(businessProcessService.getCurrentNodes(processInstanceId, loginName)); } + + @PreAuth(AuthConstant.PERMIT_ALL) + @GetMapping(GET_PROCESS_INFO) + @Override + public FR getProcessInfo(@RequestParam("processInstanceId") String processInstanceId, + @RequestParam(value = "loginName", required = false) String loginName) { + return FR.data(businessProcessService.getProcessInfo(processInstanceId, loginName)); + } } diff --git a/blade-service/blade-system/src/main/java/org/springblade/process/service/IBusinessProcessService.java b/blade-service/blade-system/src/main/java/org/springblade/process/service/IBusinessProcessService.java index ebdc83b..2575abd 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/process/service/IBusinessProcessService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/process/service/IBusinessProcessService.java @@ -43,6 +43,15 @@ public interface IBusinessProcessService extends IService { */ List getCurrentNodes(String processInstanceId, String loginName); + /** + * 获取流程实例详情 + * + * @param processInstanceId 流程实例id + * @param loginName MK登录名(手机号),可为空,为空时按流程发起人解析 + * @return 流程实例详情 + */ + Object getProcessInfo(String processInstanceId, String loginName); + /** * 修改业务流程状态 * @param param diff --git a/blade-service/blade-system/src/main/java/org/springblade/process/service/impl/BusinessProcessServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/process/service/impl/BusinessProcessServiceImpl.java index 4ad3724..3b39b91 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/process/service/impl/BusinessProcessServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/process/service/impl/BusinessProcessServiceImpl.java @@ -15,6 +15,7 @@ import org.springblade.process.pojo.enums.ApproveStatusEnum; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.log.utils.AssertUtils; import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.FR; import org.springblade.core.tool.utils.StringUtil; import org.springblade.process.convert.ApprovalConvert; import org.springblade.process.convert.BusinessProcessConvert; @@ -41,12 +42,15 @@ import org.springblade.thirdparty.mk.pojo.dto.approval.MKProcessDTO; import org.springblade.thirdparty.mk.pojo.dto.sort.*; import org.springblade.thirdparty.mk.pojo.vo.*; import org.springblade.thirdparty.mk.service.IMKService; +import org.springblade.transport.feign.ICustomerArchiveClient; +import org.springblade.transport.pojo.dto.CustomerProcessNodeSyncDTO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.function.BiConsumer; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 业务流程关联表 服务实现类 @@ -64,6 +68,7 @@ public class BusinessProcessServiceImpl extends ServiceImpl currentNodes = this.getCurrentNodes(processInstanceId, loginName); + this.syncCustomerArchiveCurrentNode(param.getFormInstanceId(), currentNodes); return processInstanceId; } @@ -193,6 +199,106 @@ public class BusinessProcessServiceImpl extends ServiceImpl currentNodes) { + if (StringUtils.isBlank(formInstanceId) || CollectionUtil.isEmpty(currentNodes)) { + log.warn("同步客商当前节点跳过,formInstanceId或节点详情为空 formInstanceId={}", formInstanceId); + return; + } + Long customerId; + try { + customerId = Long.valueOf(formInstanceId); + } catch (NumberFormatException e) { + log.warn("同步客商当前节点失败,表单实例id不是数字:{}", formInstanceId); + return; + } + String currentNode = currentNodes.stream() + .map(this::readMkNodeName) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.joining(",")); + String currentProcessor = currentNodes.stream() + .flatMap(this::readMkHandlerNames) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.joining(",")); + if (StringUtils.isBlank(currentNode) && StringUtils.isBlank(currentProcessor)) { + log.warn("同步客商当前节点跳过,未解析到节点名称或处理人 customerId={}", customerId); + return; + } + CustomerProcessNodeSyncDTO param = new CustomerProcessNodeSyncDTO(); + param.setId(customerId); + param.setCurrentNode(currentNode); + param.setCurrentProcessor(currentProcessor); + param.setApprovalStatus("reviewing"); + try { + FR result = customerArchiveClient.syncProcessNode(param); + log.info("同步客商当前节点完成 customerId={} currentNode={} currentProcessor={} result={}", + customerId, currentNode, currentProcessor, JSON.toJSONString(result)); + } catch (Exception e) { + log.error("同步客商当前节点异常 customerId={} currentNode={} currentProcessor={}", + customerId, currentNode, currentProcessor, e); + } + } + + private String readMkNodeName(Object node) { + if (node instanceof MKNodeVO vo) { + return vo.getNodeName(); + } + if (node instanceof Map map) { + Object value = map.get("nodeName"); + return value == null ? null : String.valueOf(value); + } + return null; + } + + private Stream readMkHandlerNames(Object node) { + List handlers = null; + if (node instanceof MKNodeVO vo) { + handlers = vo.getNodeHandlers(); + } else if (node instanceof Map map && map.get("nodeHandlers") instanceof List list) { + return list.stream().map(item -> { + if (item instanceof MKNodeHandlerVO handler) { + return handler.getHandlerName(); + } + if (item instanceof Map handlerMap) { + Object value = handlerMap.get("handlerName"); + return value == null ? null : String.valueOf(value); + } + return null; + }); + } + if (CollectionUtil.isEmpty(handlers)) { + return Stream.empty(); + } + return handlers.stream().map(MKNodeHandlerVO::getHandlerName); + } + /** * 从当前登录用户实体读取真实手机号(绕过接口返回脱敏) */ diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/CustomerArchivePublicController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/CustomerArchivePublicController.java index 3bbb385..0308ab4 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/CustomerArchivePublicController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/CustomerArchivePublicController.java @@ -96,7 +96,7 @@ public class CustomerArchivePublicController { */ @PostMapping("/process-message") @ApiOperationSupport(order = 3) - @Operation(summary = "公开接收流程消息", description = "无需登录,接收后查询当前节点并打印") + @Operation(summary = "公开接收流程消息", description = "无需登录,接收后查询当前节点、流程实例详情并同步客商当前节点") public R processMessage(@RequestBody Map body) { log.info("客商公开页收到流程消息:{}", JSON.toJSONString(body)); Map formValues = asMap(body == null ? null : body.get("formValues")); @@ -111,11 +111,29 @@ public class CustomerArchivePublicController { } try { FR result = businessProcessClient.getCurrentNodes(processId, loginName); + Object nodeData = result == null ? null : result.getData(); log.info("客商公开页流程消息当前节点详情 processId={} loginName={} result={}", - processId, loginName, JSON.toJSONString(result == null ? null : result.getData())); + processId, loginName, JSON.toJSONString(nodeData)); + String customerIdText = firstText(asMap(body == null ? null : body.get("formData")), "id"); + if (StringUtil.isBlank(customerIdText)) { + log.warn("客商公开页流程消息未找到客商id,跳过同步当前节点"); + } else { + try { + customerArchiveService.syncProcessNodeFromMk(Long.valueOf(customerIdText), nodeData); + } catch (NumberFormatException e) { + log.warn("客商公开页流程消息客商id格式不正确:{}", customerIdText); + } + } } catch (Exception e) { log.error("客商公开页查询当前节点失败 processId={} loginName={}", processId, loginName, e); } + try { + FR processInfoResult = businessProcessClient.getProcessInfo(processId, loginName); + log.info("客商公开页流程消息流程实例详情 processId={} loginName={} result={}", + processId, loginName, JSON.toJSONString(processInfoResult == null ? null : processInfoResult.getData())); + } catch (Exception e) { + log.error("客商公开页查询流程实例详情失败 processId={} loginName={}", processId, loginName, e); + } return R.success("ok"); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/feign/CustomerArchiveClient.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/feign/CustomerArchiveClient.java new file mode 100644 index 0000000..04ffe0a --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/feign/CustomerArchiveClient.java @@ -0,0 +1,36 @@ +package org.springblade.transport.feign; + +import io.swagger.v3.oas.annotations.Hidden; +import lombok.AllArgsConstructor; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.secure.constant.AuthConstant; +import org.springblade.core.tenant.annotation.TenantIgnore; +import org.springblade.core.tool.api.FR; +import org.springblade.transport.pojo.dto.CustomerProcessNodeSyncDTO; +import org.springblade.transport.service.ICustomerArchiveService; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +/** + * 客商档案 Feign实现 + */ +@Hidden +@RestController +@AllArgsConstructor +public class CustomerArchiveClient implements ICustomerArchiveClient { + + private final ICustomerArchiveService customerArchiveService; + + @TenantIgnore + @PreAuth(AuthConstant.PERMIT_ALL) + @PostMapping(SYNC_PROCESS_NODE) + @Override + public FR syncProcessNode(@RequestBody CustomerProcessNodeSyncDTO param) { + if (param == null) { + return FR.data(false); + } + return FR.data(customerArchiveService.syncProcessNode( + param.getId(), param.getCurrentNode(), param.getCurrentProcessor(), param.getApprovalStatus())); + } +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ICustomerArchiveService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ICustomerArchiveService.java index 9a6472b..66257c0 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ICustomerArchiveService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ICustomerArchiveService.java @@ -100,6 +100,26 @@ public interface ICustomerArchiveService extends BaseService { */ boolean submitApproval(Long id); + /** + * 按 MK 当前节点同步客商当前节点、当前处理人和审批状态 + * + * @param id 客商ID + * @param currentNode 当前节点 + * @param currentProcessor 当前处理人 + * @param approvalStatus 审批状态,可为空,为空时保持为审核中 + * @return 是否成功 + */ + boolean syncProcessNode(Long id, String currentNode, String currentProcessor, String approvalStatus); + + /** + * 按 MK getCurrentNodes 返回结果同步客商当前节点 + * + * @param id 客商ID + * @param currentNodes MK 当前节点详情 + * @return 是否成功 + */ + boolean syncProcessNodeFromMk(Long id, Object currentNodes); + /** * 撤回审批并恢复草稿状态 * diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java index 8485807..fbbdc4c 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; @@ -85,6 +86,7 @@ import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Collection; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -101,6 +103,7 @@ import java.util.stream.Collectors; * * @author Chill */ +@Slf4j @Service @RequiredArgsConstructor public class CustomerArchiveServiceImpl extends BaseServiceImpl implements ICustomerArchiveService { @@ -214,12 +217,73 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl> nodes = normalizeMkNodeList(currentNodes); + if (nodes.isEmpty()) { + log.warn("同步客商当前节点跳过,节点详情为空 id={}", id); + return false; + } + List nodeNames = new ArrayList<>(); + List handlerNames = new ArrayList<>(); + for (Map node : nodes) { + String nodeName = Func.toStr(node.get("nodeName"), "").trim(); + if (Func.isNotEmpty(nodeName)) { + nodeNames.add(nodeName); + } + Object handlers = node.get("nodeHandlers"); + if (!(handlers instanceof Collection handlerList)) { + continue; + } + for (Object handler : handlerList) { + Map handlerMap = asStringObjectMap(handler); + String handlerName = Func.toStr(handlerMap.get("handlerName"), "").trim(); + if (Func.isNotEmpty(handlerName)) { + handlerNames.add(handlerName); + } + } + } + return syncProcessNode(id, joinDistinct(nodeNames), joinDistinct(handlerNames), APPROVAL_REVIEWING); + } + @Override @Transactional(rollbackFor = Exception.class) public boolean withdrawApproval(Long id) { @@ -1032,6 +1096,51 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl> normalizeMkNodeList(Object currentNodes) { + Object source = currentNodes; + if (source instanceof String text && Func.isNotEmpty(text.trim())) { + source = JsonUtil.parse(text, List.class); + } + if (source instanceof Collection collection) { + List> result = new ArrayList<>(); + for (Object item : collection) { + Map map = asStringObjectMap(item); + if (!map.isEmpty()) { + result.add(map); + } + } + return result; + } + Map single = asStringObjectMap(source); + return single.isEmpty() ? List.of() : List.of(single); + } + + private Map asStringObjectMap(Object value) { + if (value instanceof Map map) { + Map result = new LinkedHashMap<>(); + map.forEach((key, nested) -> { + if (key != null) { + result.put(String.valueOf(key), nested); + } + }); + return result; + } + if (value == null) { + return Map.of(); + } + try { + Map parsed = JsonUtil.toMap(JsonUtil.toJson(value)); + return parsed == null ? Map.of() : parsed; + } catch (Exception ignored) { + return Map.of(); + } + } + + private String joinDistinct(List values) { + return values.stream().filter(Func::isNotEmpty).distinct().collect(Collectors.joining(",")); + } + private void addChangeRecord(Long customerId, String content, CustomerArchive before, CustomerArchive after) { Map beforeSnapshot = customerSnapshot(before); Map afterSnapshot = customerSnapshot(after); diff --git a/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/feign/IMKClient.java b/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/feign/IMKClient.java index 75dbed4..64e3861 100644 --- a/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/feign/IMKClient.java +++ b/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/feign/IMKClient.java @@ -65,6 +65,15 @@ public interface IMKClient { @PostMapping("${thirdParty.mk.getCurrentNodesUrl:/openapi/sys-lbpm/sysLbpmProcess/openSupport/getCurNodesInfo}") MKResultVO> getCurrentNodes(@RequestBody MKCurrentNodesDTO param, @RequestParam("access_token") String accessToken); + /** + * 获取流程实例详情 + * @param param + * @param accessToken + * @return + */ + @PostMapping("${thirdParty.mk.getProcessInfoUrl:/openapi/sys-lbpm/sysLbpmProcess/openSupport/getProcessInfo}") + MKResultVO getProcessInfo(@RequestBody MKCurrentNodesDTO param, @RequestParam("access_token") String accessToken); + /** * 获取节点处理人信息 * @param param diff --git a/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/service/IMKService.java b/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/service/IMKService.java index 79c6efb..e391c6f 100644 --- a/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/service/IMKService.java +++ b/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/service/IMKService.java @@ -66,6 +66,14 @@ public interface IMKService { */ List getCurrentNodes(String processInstanceId, String loginName); + /** + * 获取流程实例详情 + * @param processInstanceId + * @param loginName + * @return + */ + Object getProcessInfo(String processInstanceId, String loginName); + /** * 获取节点处理人信息 * @param processInstanceId diff --git a/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/service/impl/MKServiceImpl.java b/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/service/impl/MKServiceImpl.java index f0f3fb5..e4b0598 100644 --- a/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/service/impl/MKServiceImpl.java +++ b/blade-third-party-api/blade-mk-api/src/main/java/org/springblade/thirdparty/mk/service/impl/MKServiceImpl.java @@ -246,6 +246,21 @@ public class MKServiceImpl implements IMKService { return nodesResult.getData(); } + @Override + public Object getProcessInfo(String processInstanceId, String loginName) { + String accessToken = getToken(); + MKCurrentNodesDTO param = new MKCurrentNodesDTO(); + param.setProcessInstanceId(processInstanceId); + param.setLoginName(loginName); + MKResultVO processInfoResult = client.getProcessInfo(param, accessToken); + log.info("调用mk接口 获取流程实例详情 :{}", JSONUtil.toJsonStr(processInfoResult)); + if (processInfoResult == null || !processInfoResult.isSuccess()) { + log.error("调用mk接口 获取流程实例详情异常:{}", JSONUtil.toJsonStr(processInfoResult)); + return null; + } + return processInfoResult.getData(); + } + @Override public MKAllHandlerVO getNodeHandlers(String processInstanceId, String loginName, String nodeId) { String accessToken = getToken(); diff --git a/doc/nacos/blade-dev.yaml b/doc/nacos/blade-dev.yaml index d6b0821..744c59f 100644 --- a/doc/nacos/blade-dev.yaml +++ b/doc/nacos/blade-dev.yaml @@ -118,6 +118,7 @@ thirdParty: processExecuteUrl: ${MK_PROCESS_EXECUTE_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/execute} processDeleteUrl: ${MK_PROCESS_DELETE_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/delete} getCurrentNodesUrl: ${MK_CURRENT_NODES_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/getCurNodesInfo} + getProcessInfoUrl: ${MK_PROCESS_INFO_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/getProcessInfo} getNodeHandlersUrl: ${MK_NODE_HANDLERS_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/getNodeHandlerInfos} getManualNodeUrl: ${MK_MANUAL_NODE_URL:/openapi/sys-lbpm/sysLbpmTemplate/openSupport/getManualNode} pushOrgDeptUrl: ${MK_PUSH_ORG_DEPT_URL:/openapi/sys-org/v2/push/orgDept} diff --git a/doc/nacos/blade-prod.yaml b/doc/nacos/blade-prod.yaml index 384f904..ab3d356 100644 --- a/doc/nacos/blade-prod.yaml +++ b/doc/nacos/blade-prod.yaml @@ -91,6 +91,7 @@ thirdParty: processExecuteUrl: ${MK_PROCESS_EXECUTE_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/execute} processDeleteUrl: ${MK_PROCESS_DELETE_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/delete} getCurrentNodesUrl: ${MK_CURRENT_NODES_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/getCurNodesInfo} + getProcessInfoUrl: ${MK_PROCESS_INFO_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/getProcessInfo} getNodeHandlersUrl: ${MK_NODE_HANDLERS_URL:/openapi/sys-lbpm/sysLbpmProcess/openSupport/getNodeHandlerInfos} getManualNodeUrl: ${MK_MANUAL_NODE_URL:/openapi/sys-lbpm/sysLbpmTemplate/openSupport/getManualNode} pushOrgDeptUrl: ${MK_PUSH_ORG_DEPT_URL:/openapi/sys-org/v2/push/orgDept} diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index 052f97e..f3052f2 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -221,6 +221,8 @@ blade: - /blade-openapi/openApi/mk/process/commonCallback - /openApi/mk/process/commonCallback - /feign/client/businessProcess/getCurrentNodes + - /feign/client/businessProcess/getProcessInfo + - /feign/client/customerArchive/syncProcessNode #授权认证配置 auth: - method: ALL