REQ-3282 调整人员查询接口逻辑

This commit is contained in:
yangqicheng 2024-12-25 18:26:32 +08:00
parent 84924e578d
commit 17d55fc995

View File

@ -1,5 +1,6 @@
package cn.axzo.workflow.server.controller.delegate;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi;
import cn.axzo.orggateway.api.nodeuser.dto.OrgNodeUserDTO;
import cn.axzo.orggateway.api.nodeuser.req.ListOrgNodeUserReq;
@ -8,6 +9,7 @@ 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.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.bpmn.model.UserTask;
@ -63,15 +65,23 @@ public class BasedFixedPersonTaskAssigneeSelector extends AbstractBpmnTaskAssign
.filter(StringUtils::hasText)
.map(Long::parseLong)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(personIds)) {
return Collections.emptyList();
}
List<OrgNodeUserDTO> onlineUsers = new ArrayList<>();
try {
ListOrgNodeUserReq searchReq = new ListOrgNodeUserReq();
searchReq.setWorkspaceIds(workspaceIds);
searchReq.setPersonIds(personIds);
onlineUsers = parseFoundationApiResult(() -> orgNodeUserApi.list(searchReq), "查询指定人员是否在职",
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.list", searchReq).getData();
searchReq.setPage(0);
searchReq.setPageSize(personIds.size());
PageResp<OrgNodeUserDTO> pageResp = parseFoundationApiResult(() -> orgNodeUserApi.list(searchReq), "查询指定人员是否在职",
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.list", searchReq);
if (pageResp != null) {
onlineUsers = pageResp.getData();
}
} catch (Exception e) {
if (throwException) {
if (Boolean.TRUE.equals(throwException)) {
throw new WorkflowEngineException(ENGINE_USER_TASK_CALC_ERROR, flowElement.getId(),
this.getType(), e.getMessage());
} else {