REQ-2595-增加待办数量查询接口

This commit is contained in:
yangqicheng 2024-10-30 20:56:25 +08:00
parent 2f14bad660
commit f2b73c2b60
3 changed files with 41 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import cn.axzo.msg.center.message.service.todo.TodoRangeQueryService;
import cn.axzo.msg.center.message.service.todo.TodoSimpleQueryService;
import cn.axzo.msg.center.message.service.todo.TodoWorkerQueryService;
import cn.axzo.msg.center.message.service.todo.manage.TodoManager;
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
import cn.axzo.msg.center.service.enums.TodoQueryType;
import cn.axzo.msg.center.service.enums.TodoType;
@ -56,6 +57,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
@ -271,6 +273,11 @@ public class PendingMessageNewController implements PendingMessageClient {
return CommonResponse.success(todoSimpleQueryService.getTodosSimple(request));
}
@Override
public CommonResponse<Map<BizCategoryEnum, Integer>> getTodosSimpleCount(GetTodoRequest request) {
return CommonResponse.success(todoSimpleQueryService.getTodosSimpleCount(request));
}
@Override
public CommonResponse<Page<PendingMessageSimpleDTO>> getTodosSimplePage(@RequestBody GetTodoPageRequest request) {
log.info("getTodos page, request={}", JSON.toJSONString(request));

View File

@ -8,6 +8,7 @@ import cn.axzo.msg.center.domain.entity.PendingRecordAdapter;
import cn.axzo.msg.center.domain.entity.Todo;
import cn.axzo.msg.center.domain.entity.TodoBusiness;
import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig;
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
import cn.axzo.msg.center.service.enums.TodoQueryType;
import cn.axzo.msg.center.service.enums.TodoType;
@ -27,6 +28,7 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
@ -149,6 +151,33 @@ public class TodoSimpleQueryService {
return todoRespBuilder.buildTodosSimple(todos);
}
public Map<BizCategoryEnum, Integer> getTodosSimpleCount(GetTodoRequest request) {
List<Todo> list = 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.getStates()), Todo::getState, request.getStates())
.and(CollectionUtils.isNotEmpty(request.getExecutors()), wrapper -> {
for (GetTodoRequest.Executor executor : request.getExecutors()) {
wrapper.or()
.eq(executor.getOuId() != null, Todo::getOuId, executor.getOuId())
.eq(executor.getOuId() != null, Todo::getOrgId, executor.getWorkspaceId())
.in(CollectionUtils.isNotEmpty(executor.getPersonIds()), Todo::getExecutorPersonId, executor.getPersonIds());
}
})
.select(Todo::getId, Todo::getExecutorId, Todo::getOrgId, Todo::getExecutorPersonId, Todo::getState, Todo::getTodoBusinessId)
.list();
List<PendingMessageSimpleDTO> messageSimpleDTOS = todoRespBuilder.buildTodosSimple(list);
Map<BizCategoryEnum, Integer> resultMap = new EnumMap<>(BizCategoryEnum.class);
if (CollectionUtils.isNotEmpty(request.getBizCodes())) {
for (PendingMessageSimpleDTO messageSimpleDTO : messageSimpleDTOS) {
Integer i = resultMap.computeIfAbsent(messageSimpleDTO.getBizCategory(), k -> 0);
resultMap.put(messageSimpleDTO.getBizCategory(), i + 1);
}
}
return resultMap;
}
public Page<PendingMessageSimpleDTO> getTodosSimplePage(GetTodoPageRequest request) {
IPage<Todo> page = todoDao.lambdaQuery()
.in(CollectionUtils.isNotEmpty(request.getIdentityCodes()), Todo::getIdentityCode, request.getIdentityCodes())

View File

@ -1,6 +1,7 @@
package cn.axzo.msg.center.service.pending.client;
import cn.axzo.msg.center.api.response.MessageDetailRes;
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
import cn.axzo.msg.center.service.enums.TodoQueryType;
import cn.axzo.msg.center.service.pending.request.CompletePendingBySubCodeRequest;
@ -46,6 +47,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
/**
* 代办消息模块管理
@ -348,6 +350,9 @@ public interface PendingMessageClient {
@PostMapping(value = "/pending-message/record/get-todos-simple", produces = {MediaType.APPLICATION_JSON_VALUE})
CommonResponse<List<PendingMessageSimpleDTO>> getTodosSimple(@RequestBody @Valid GetTodoRequest request);
@PostMapping(value = "/pending-message/record/get-todos-simple/count", produces = {MediaType.APPLICATION_JSON_VALUE})
CommonResponse<Map<BizCategoryEnum, Integer>> getTodosSimpleCount(@RequestBody @Valid GetTodoRequest request);
@PostMapping(value = "/pending-message/record/get-todos-simple/page", produces = {MediaType.APPLICATION_JSON_VALUE})
CommonResponse<Page<PendingMessageSimpleDTO>> getTodosSimplePage(@RequestBody @Valid GetTodoPageRequest request);