REQ-2752: 获取简单的待办信息

This commit is contained in:
yanglin 2024-10-08 18:32:29 +08:00
parent 97d25e45b0
commit 8ab3b5c33c
6 changed files with 64 additions and 6 deletions

View File

@ -71,6 +71,9 @@ public class PendingMessageBizConfig {
@Getter
private int getLatestByBizCodeMaxSize = 500;
@Getter
private int getTodoSimpleSize = 500;
/**
* 设置待办隐藏的隐藏时间
*/

View File

@ -16,6 +16,7 @@ import cn.axzo.msg.center.service.pending.request.CompletePendingBySubCodeReques
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest;
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
import cn.axzo.msg.center.service.pending.request.GetPendingTodosRequest;
import cn.axzo.msg.center.service.pending.request.GetTodoRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageByBizCodeRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageCountUncompletedRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageFixedTemplatePageRequest;
@ -249,6 +250,12 @@ public class PendingMessageNewController implements PendingMessageClient {
return CommonResponse.success(todoSimpleQueryService.getLatestTodosByBiz(param));
}
@Override
public CommonResponse<List<PendingMessageSimpleDTO>> getTodosSimple(GetTodoRequest request) {
log.info("getTodos, request={}", JSON.toJSONString(request));
return CommonResponse.success(todoSimpleQueryService.getTodosSimple(request));
}
@Override
public CommonResponse<Boolean> setHide(SetHideRequest req) {
log.info("setHide, request={}", JSON.toJSONString(req));

View File

@ -1,5 +1,6 @@
package cn.axzo.msg.center.message.service.todo;
import cn.axzo.basics.common.BeanMapper;
import cn.axzo.msg.center.dal.SampleTodos;
import cn.axzo.msg.center.dal.TodoBusinessDao;
import cn.axzo.msg.center.dal.TodoBusinesses;
@ -13,6 +14,7 @@ import cn.axzo.msg.center.message.service.MessageTemplateNewService;
import cn.axzo.msg.center.message.service.impl.PendingMessageNewServiceImpl;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
import cn.axzo.msg.center.service.pending.response.PendingMessageSimpleDTO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@ -120,6 +122,14 @@ class TodoRespBuilder {
return adapters;
}
List<PendingMessageSimpleDTO> buildTodosSimple(List<Todo> todos) {
List<PendingRecordAdapter> adapters = buildTodoAdapters(todos);
return adapters.stream()
.map(MigrateUtils::convertAdapterToPending)
.map(p -> BeanMapper.copyBean(p, PendingMessageSimpleDTO.class))
.collect(toList());
}
List<PendingRecordAdapter> buildTodoAdapters(List<Todo> todos) {
if (CollectionUtils.isEmpty(todos))
return Collections.emptyList();

View File

@ -1,6 +1,5 @@
package cn.axzo.msg.center.message.service.todo;
import cn.axzo.basics.common.BeanMapper;
import cn.axzo.msg.center.common.enums.TableIsDeleteEnum;
import cn.axzo.msg.center.common.utils.BizAssertions;
import cn.axzo.msg.center.dal.TodoBusinessDao;
@ -12,6 +11,7 @@ import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
import cn.axzo.msg.center.service.enums.TodoQueryType;
import cn.axzo.msg.center.service.enums.TodoType;
import cn.axzo.msg.center.service.pending.request.GetTodoRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageByBizCodeRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
@ -124,11 +124,18 @@ public class TodoSimpleQueryService {
.max(comparing(Todo::getId))
.ifPresent(latestTodos::add);
}
List<PendingRecordAdapter> adapters = todoRespBuilder.buildTodoAdapters(latestTodos);
return adapters.stream()
.map(MigrateUtils::convertAdapterToPending)
.map(p -> BeanMapper.copyBean(p, PendingMessageSimpleDTO.class))
.collect(toList());
return todoRespBuilder.buildTodosSimple(latestTodos);
}
public List<PendingMessageSimpleDTO> getTodosSimple(GetTodoRequest request) {
List<Todo> todos = todoDao.lambdaQuery()
.in(CollectionUtils.isNotEmpty(request.getIdentityCodes()), Todo::getIdentityCode, request.getIdentityCodes())
.in(CollectionUtils.isNotEmpty(request.getTemplateCodes()), Todo::getTemplateCode, request.getTemplateCodes())
.in(CollectionUtils.isNotEmpty(request.getBizCodes()), Todo::getBizCode, request.getBizCodes())
.in(CollectionUtils.isNotEmpty(request.getExecutorPersonIds()), Todo::getExecutorPersonId, request.getExecutorPersonIds())
.in(CollectionUtils.isNotEmpty(request.getStates()), Todo::getState, request.getStates())
.last("LIMIT " + cfg.getGetTodoSimpleSize())
.list();
return todoRespBuilder.buildTodosSimple(todos);
}
}

View File

@ -7,6 +7,7 @@ import cn.axzo.msg.center.service.pending.request.CompletePendingBySubCodeReques
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest;
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
import cn.axzo.msg.center.service.pending.request.GetPendingTodosRequest;
import cn.axzo.msg.center.service.pending.request.GetTodoRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageByBizCodeRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageCountUncompletedRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageFixedTemplatePageRequest;
@ -325,4 +326,8 @@ public interface PendingMessageClient {
@PostMapping(value = "/pending-message/set-copied-to-me-read", produces = {MediaType.APPLICATION_JSON_VALUE})
CommonResponse<Boolean> setCopiedToMeRead(@RequestParam("personId") Long personId,
@RequestParam(value = "identityCode", defaultValue = "") String identityCode);
@PostMapping(value = "/pending-message/record/get-todos-simple", produces = {MediaType.APPLICATION_JSON_VALUE})
CommonResponse<List<PendingMessageSimpleDTO>> getTodosSimple(@RequestBody @Valid GetTodoRequest request);
}

View File

@ -0,0 +1,26 @@
package cn.axzo.msg.center.service.pending.request;
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
import java.util.Set;
/**
* @author yanglin
*/
@Setter
@Getter
public class GetTodoRequest {
private Set<String> identityCodes;
private Set<String> templateCodes;
private Set<String> bizCodes;
private Set<Long> executorPersonIds;
private Set<PendingMessageStateEnum> states;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}