REQ-2010: 通过ouId查询所有的平台班组ID, 然后把平台班组id当成ouId来查询待办, 兼容老数据问题
This commit is contained in:
parent
69703c4c4b
commit
de32a0fdf6
@ -21,6 +21,11 @@
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.maokai</groupId>
|
||||
<artifactId>maokai-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
<artifactId>json</artifactId>
|
||||
|
||||
@ -7,10 +7,13 @@ import cn.axzo.apollo.workspace.api.workspace.req.OrganizationalNodePractitioner
|
||||
import cn.axzo.apollo.workspace.api.workspace.res.OrganizationalNodePractitionerWideDto;
|
||||
import cn.axzo.apollo.workspace.api.workspace.res.SimpleWorkspaceRes;
|
||||
import cn.axzo.framework.core.util.MapUtil;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.im.center.api.feign.MessageApi;
|
||||
import cn.axzo.im.center.api.vo.req.CustomMessageInfo;
|
||||
import cn.axzo.im.center.common.enums.AppTypeEnum;
|
||||
import cn.axzo.im.center.common.enums.BizTypeEnum;
|
||||
import cn.axzo.maokai.api.client.OrganizationalTeamOuRelationApi;
|
||||
import cn.axzo.maokai.api.vo.response.OrganizationalTeamOuRelationResp;
|
||||
import cn.axzo.msg.center.api.enums.MsgRecordTerminalTypeEnum;
|
||||
import cn.axzo.msg.center.api.enums.MsgStateEnum;
|
||||
import cn.axzo.msg.center.api.response.MessageDetailRes;
|
||||
@ -126,6 +129,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
private final OrganizationalNodePractitionerWideApi organizationalNodePractitionerWideApi;
|
||||
private final PendingCalendarCodeConfig calendarCodeConfig;
|
||||
private final MessageApi messageApi;
|
||||
private final OrganizationalTeamOuRelationApi organizationalTeamOuRelationApi;
|
||||
|
||||
@Value("${msg.center.pending.hide-seconds:60}")
|
||||
private int pendingDefaultHideSeconds;
|
||||
@ -174,11 +178,12 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
PersonDTO operator = PersonDTO.from(request.getPersonId(), request.getIdentityId(), request.getIdentityType());
|
||||
PendingMessageStateEnum pendingMessageState = fetchPendingMessageState(request.getRoleCategory(), request.getMsgState());
|
||||
BizFinalStateEnum bizFinalState = fetchBizFinalState(request.getRoleCategory(), request.getBizFinalState());
|
||||
List<Long> executorOuIds = determineExecutorOuIds(request);
|
||||
// 开始构建分页查询条件
|
||||
LambdaQueryChainWrapper<PendingMessageRecord> query = pendingMessageRecordDao.lambdaQuery()
|
||||
// REQ-1507期发起人不通过ouId过滤
|
||||
.eq(!PendingMessageRoleCategoryEnum.PROMOTER.equals(request.getRoleCategory())
|
||||
&& Objects.nonNull(request.getOuId()), PendingMessageRecord::getOuId, request.getOuId())
|
||||
// REQ-1507期发起人不通过ouId过滤, 只有执行人对ouId进行过滤
|
||||
.eq(request.getRoleCategory() == PendingMessageRoleCategoryEnum.EXECUTOR && !executorOuIds.isEmpty(),
|
||||
PendingMessageRecord::getOuId, request.getOuId())
|
||||
.eq(Objects.nonNull(pendingMessageState), PendingMessageRecord::getState, pendingMessageState)
|
||||
.eq(Objects.nonNull(bizFinalState), PendingMessageRecord::getBizFinalState, bizFinalState)
|
||||
.eq(PendingMessageRecord::getIsDelete, IsDeletedEnum.NO.getCode())
|
||||
@ -226,6 +231,26 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
return Page.toPage(request.getPage(), request.getPageSize(), page.getTotal(), responseRecords);
|
||||
}
|
||||
|
||||
private List<Long> determineExecutorOuIds(PendingMessagePageRequest request) {
|
||||
if (request.getRoleCategory() == PendingMessageRoleCategoryEnum.PROMOTER)
|
||||
return Collections.emptyList();
|
||||
if (request.getOuId() == null)
|
||||
return Collections.emptyList();
|
||||
List<Long> ouIds = new ArrayList<>();
|
||||
ouIds.add(request.getOuId());
|
||||
if (request.getOuId() != 0) {
|
||||
ApiResult<List<OrganizationalTeamOuRelationResp>> resp =
|
||||
organizationalTeamOuRelationApi.teamOuRelationList(request.getOuId());
|
||||
List<OrganizationalTeamOuRelationResp> relations =
|
||||
BizAssertions.assertResponse(resp, "获取平台班组id失败");
|
||||
relations.stream()
|
||||
.map(OrganizationalTeamOuRelationResp::getNodeId)
|
||||
.distinct()
|
||||
.forEach(ouIds::add);
|
||||
}
|
||||
return ouIds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PendingMessageResponse> getPendingMessageByAppWorker(PendingMessageFixedTemplatePageRequest request) {
|
||||
List<PendingMessageResponse> result = new ArrayList<>();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user