REQ-3282-人员查询迁移到新接口

This commit is contained in:
yangqicheng 2024-12-23 16:08:17 +08:00
parent 15857ee7f3
commit 44b3e2c399
6 changed files with 77 additions and 41 deletions

View File

@ -19,6 +19,7 @@
<revision>1.5.1-SNAPSHOT</revision>
<axzo-bom.version>2.0.0-SNAPSHOT</axzo-bom.version>
<axzo-dependencies.version>2.0.0-SNAPSHOT</axzo-dependencies.version>
<axzo-dependencies.org.version>1.0.0-SNAPSHOT</axzo-dependencies.org.version>
<feign-httpclient.version>11.8</feign-httpclient.version>
<lombok.version>1.18.22</lombok.version>
<mapstruct.version>1.4.2.Final</mapstruct.version>
@ -155,6 +156,11 @@
<artifactId>riven-api</artifactId>
<version>${axzo-dependencies.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.org</groupId>
<artifactId>org-api</artifactId>
<version>${axzo-dependencies.org.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -142,6 +142,10 @@
<groupId>cn.axzo</groupId>
<artifactId>riven-api</artifactId>
</dependency>
<dependency>
<groupId>cn.axzo.org</groupId>
<artifactId>org-api</artifactId>
</dependency>
</dependencies>
<build>

View File

@ -119,6 +119,37 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign
return Collections.emptyList();
}
protected final <T> T parseFoundationApiResult(Supplier<cn.axzo.foundation.result.ApiResult<T>> supplier, String operatorDesc,
String extInfo, Object... param) {
StopWatch stopWatch = new StopWatch(operatorDesc);
log.info("{}-Param: {}", operatorDesc, JSONUtil.toJsonStr(param));
stopWatch.start();
cn.axzo.foundation.result.ApiResult<T> result = supplier.get();
stopWatch.stop();
log.info("{}-Cost:{}, Result: {}", operatorDesc,
"API StopWatch '" + stopWatch.getId() + "': running time = " + stopWatch.getTotalTimeSeconds() + " 's",
JSONUtil.toJsonStr(result));
try {
if (stopWatch.getTotalTimeSeconds() > refreshProperties.getApiTimeout() && Boolean.TRUE.equals(refreshProperties.getSendDingTalk())) {
DingTalkUtils.sendDingTalkForSlowUrl(applicationContext.getEnvironment()
.getProperty("spring.profiles.active"),
stopWatch.getTotalTimeSeconds(),
extInfo,
param,
result);
}
} catch (Exception e) {
// ignore
}
Assert.notNull(result, "服务调用异常");
// 200自定义处理
if (HttpStatus.HTTP_OK != result.getCode()) {
throw new WorkflowEngineException(CALC_TASK_ASSIGNEE_ERROR, "[API:" + extInfo + "]" + result.getMsg());
}
return result.getData();
}
protected final <T> T parseApiResult(Supplier<ApiResult<T>> supplier, String operatorDesc,
String extInfo, Object... param) {
return parseApiResult(supplier, operatorDesc, extInfo, refreshProperties, applicationContext, param);

View File

@ -1,11 +1,11 @@
package cn.axzo.workflow.server.controller.delegate;
import cn.axzo.maokai.api.client.OrganizationalNodeUserApi;
import cn.axzo.maokai.api.vo.request.OrganizationalNodeUserSearchReq;
import cn.axzo.maokai.api.vo.response.OrganizationalNodeUserVO;
import cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi;
import cn.axzo.orggateway.api.nodeuser.req.ListOrgNodeUserReq;
import cn.axzo.orggateway.api.nodeuser.resp.OrganizationalNodeUserDTO;
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.common.exception.WorkflowEngineException;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper;
import com.alibaba.fastjson.JSON;
import org.apache.commons.collections4.ListUtils;
@ -16,11 +16,7 @@ import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
import static cn.axzo.workflow.common.code.FlowableEngineRespCode.ENGINE_USER_TASK_CALC_ERROR;
@ -34,7 +30,7 @@ import static cn.axzo.workflow.common.code.FlowableEngineRespCode.ENGINE_USER_TA
@Component
public class BasedFixedPersonTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector {
@Resource
private OrganizationalNodeUserApi organizationalNodeUserApi;
private OrgNodeUserApi orgNodeUserApi;
@Override
public String getType() {
@ -67,13 +63,13 @@ public class BasedFixedPersonTaskAssigneeSelector extends AbstractBpmnTaskAssign
.filter(StringUtils::hasText)
.map(Long::parseLong)
.collect(Collectors.toList());
List<OrganizationalNodeUserVO> onlineUsers = new ArrayList<>();
List<OrganizationalNodeUserDTO> onlineUsers = new ArrayList<>();
try {
OrganizationalNodeUserSearchReq searchReq = new OrganizationalNodeUserSearchReq();
ListOrgNodeUserReq searchReq = new ListOrgNodeUserReq();
searchReq.setWorkspaceIds(workspaceIds);
searchReq.setPersonIdList(personIds);
onlineUsers = parseApiResult(() -> organizationalNodeUserApi.list(searchReq), "查询指定人员是否在职",
"cn.axzo.maokai.api.client.OrganizationalNodeUserApi#list", searchReq);
searchReq.setPersonIds(personIds);
onlineUsers = parseFoundationApiResult(() -> orgNodeUserApi.list(searchReq), "查询指定人员是否在职",
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.list", searchReq).getData();
} catch (Exception e) {
if (throwException) {
throw new WorkflowEngineException(ENGINE_USER_TASK_CALC_ERROR, flowElement.getId(),

View File

@ -1,9 +1,8 @@
package cn.axzo.workflow.server.controller.delegate;
import cn.axzo.maokai.api.client.OrganizationalNodeUserApi;
import cn.axzo.maokai.api.vo.request.FlowTaskAssignerReq;
import cn.axzo.maokai.api.vo.request.FlowTaskAssignerReq.IdentityPair;
import cn.axzo.maokai.api.vo.response.FlowTaskAssigner;
import cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi;
import cn.axzo.orggateway.api.nodeuser.req.FlowTaskAssignerReq;
import cn.axzo.orggateway.api.nodeuser.resp.FlowTaskAssigner;
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
@ -33,7 +32,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_INITIATOR;
public class BasedInitiatorLeaderTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector {
@Resource
private OrganizationalNodeUserApi organizationalNodeUserApi;
private OrgNodeUserApi orgNodeUserApi;
@Override
public String getType() {
@ -64,15 +63,15 @@ public class BasedInitiatorLeaderTaskAssigneeSelector extends AbstractBpmnTaskAs
.orgScopes(ListUtils.emptyIfNull(scopeDto.getOrgScopes()).stream()
.map(e -> BeanUtil.copyProperties(e, FlowTaskAssignerReq.OrgScope.class))
.collect(Collectors.toList()))
.sponsor(IdentityPair.builder()
.sponsor(FlowTaskAssignerReq.IdentityPair.builder()
.identityId(Long.valueOf(initiator.getAssignee()))
.identityType(Integer.valueOf(initiator.getAssigneeType())).build())
.build();
req.setProcInstId(execution.getProcessInstanceId());
List<FlowTaskAssigner> flowTaskAssigners =
parseApiResult(() -> organizationalNodeUserApi.listFlowTaskAssigner(req),
parseFoundationApiResult(() -> orgNodeUserApi.listFlowTaskAssigner(req),
"审批节点: " + flowElement.getId() + ", 通过发起人主管查询审批人",
"cn.axzo.maokai.api.client.OrganizationalNodeUserApi#listFlowTaskAssigner", req);
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.listFlowTaskAssigner", req);
if (CollUtil.isEmpty(flowTaskAssigners)) {
return super.invokeService(flowElement, execution, scopeDto);

View File

@ -1,8 +1,8 @@
package cn.axzo.workflow.server.controller.delegate;
import cn.axzo.maokai.api.client.OrganizationalNodeUserApi;
import cn.axzo.maokai.api.vo.request.FlowTaskAssignerReq;
import cn.axzo.maokai.api.vo.response.FlowTaskAssigner;
import cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi;
import cn.axzo.orggateway.api.nodeuser.req.FlowTaskAssignerReq;
import cn.axzo.orggateway.api.nodeuser.resp.FlowTaskAssigner;
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.core.deletage.approverscope.ApproverScopeDTO;
@ -29,7 +29,7 @@ import java.util.stream.Collectors;
public class BasedPositionTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector {
@Autowired
private OrganizationalNodeUserApi organizationalNodeUserApi;
private OrgNodeUserApi orgNodeUserApi;
@Override
public String getType() {
@ -62,9 +62,9 @@ public class BasedPositionTaskAssigneeSelector extends AbstractBpmnTaskAssigneeS
req.getOrgScopes().addAll(workerTeamScopes);
req.setProcInstId(execution.getProcessInstanceId());
List<FlowTaskAssigner> flowTaskAssigners =
parseApiResult(() -> organizationalNodeUserApi.listFlowTaskAssigner(req),
parseFoundationApiResult(() -> orgNodeUserApi.listFlowTaskAssigner(req),
"审批节点: " + flowElement.getId() + ", 通过岗位查询审批人",
"cn.axzo.maokai.api.client.OrganizationalNodeUserApi#listFlowTaskAssigner", req);
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.listFlowTaskAssigner", req);
if (CollUtil.isEmpty(flowTaskAssigners)) {
return super.invokeService(flowElement, execution, scopeDto);