From a54694c553d4abd2180ef2637f30f8c70195ec89 Mon Sep 17 00:00:00 2001 From: yanglin Date: Thu, 16 May 2024 15:51:32 +0800 Subject: [PATCH] =?UTF-8?q?REQ-2318:=20=E5=AE=9A=E4=B9=89=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PendingMessageNewController.java | 9 ++++ .../domain/param/TodoHandoverRequest.java | 20 +++++++++ .../service/todo/TodoRangeQueryService.java | 6 +++ .../service/todo/manage/TodoManager.java | 7 ++++ .../pending/client/PendingMessageClient.java | 9 ++++ .../PersonTodoToBeDoneStatRequest.java | 21 ++++++++++ .../PersonTodoToBeDoneStatResponse.java | 41 +++++++++++++++++++ 7 files changed, 113 insertions(+) create mode 100644 inside-notices/src/main/java/cn/axzo/msg/center/message/domain/param/TodoHandoverRequest.java create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/PersonTodoToBeDoneStatRequest.java create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PersonTodoToBeDoneStatResponse.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java index 3b72e0d3..fc73b4ea 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java @@ -24,6 +24,7 @@ import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticForWorkerRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest; +import cn.axzo.msg.center.service.pending.request.PersonTodoToBeDoneStatRequest; import cn.axzo.msg.center.service.pending.request.PresetButtonPressedRequest; import cn.axzo.msg.center.service.pending.request.RevokePendingMessageByIdRequest; import cn.axzo.msg.center.service.pending.request.SetHideRequest; @@ -35,6 +36,7 @@ import cn.axzo.msg.center.service.pending.response.PendingMessageResponse; import cn.axzo.msg.center.service.pending.response.PendingMessageSimpleDTO; import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse; import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponseV2; +import cn.axzo.msg.center.service.pending.response.PersonTodoToBeDoneStatResponse; import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO; import cn.azxo.framework.common.model.CommonResponse; import cn.azxo.framework.common.model.Page; @@ -106,6 +108,13 @@ public class PendingMessageNewController implements PendingMessageClient { } } + @Override + public CommonResponse personTodoToBeDoneStat(PersonTodoToBeDoneStatRequest request) { + log.info("personTodoToBeDoneStat, request={}", JSON.toJSONString(request)); + PersonTodoToBeDoneStatResponse resp = todoRangeQueryService.personTodoToBeDoneStat(request); + return CommonResponse.success(resp); + } + @Override public CommonResponse> getPendingMessageByAppWorker(PendingMessageFixedTemplatePageRequest request) { log.info("getPendingMessageByAppWorker, request={}", JSON.toJSONString(request)); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/param/TodoHandoverRequest.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/param/TodoHandoverRequest.java new file mode 100644 index 00000000..ddfa9e9d --- /dev/null +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/param/TodoHandoverRequest.java @@ -0,0 +1,20 @@ +package cn.axzo.msg.center.message.domain.param; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author yanglin + */ +@Data +public class TodoHandoverRequest { + @NotNull(message = "fromPersonId is required") + private Long fromPersonId; + @NotNull(message = "fromOuId is required") + private Long fromOuId; + @NotNull(message = "toPersonId is required") + private Long toPersonId; + @NotNull(message = "toOuId is required") + private Long toOuId; +} \ No newline at end of file diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java index 65f41226..a2f39352 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java @@ -25,11 +25,13 @@ import cn.axzo.msg.center.service.enums.PendingMessageStateEnum; import cn.axzo.msg.center.service.enums.TodoType; import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest; import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest.CopiedToMeParam; +import cn.axzo.msg.center.service.pending.request.PersonTodoToBeDoneStatRequest; import cn.axzo.msg.center.service.pending.response.AnalysisPage; import cn.axzo.msg.center.service.pending.response.PendingMessageResponse; import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponseV2; import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponseV2.GroupStat; import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponseV2.Stat; +import cn.axzo.msg.center.service.pending.response.PersonTodoToBeDoneStatResponse; import cn.axzo.msg.center.utils.DateFormatUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -229,6 +231,10 @@ public class TodoRangeQueryService { // !! stat + public PersonTodoToBeDoneStatResponse personTodoToBeDoneStat(PersonTodoToBeDoneStatRequest request) { + return null; + } + public PendingMessageStatisticResponseV2 countStatGrouped(MessageGroupNodeStatisticParam request) { return nodeStatCache.getCacheResponseOrReload(request, () -> countStatGroupedImpl(request)); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java index a769bee9..65ae3925 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java @@ -12,6 +12,7 @@ import cn.axzo.msg.center.domain.entity.TodoBusiness; import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; import cn.axzo.msg.center.message.domain.dto.MessageTemplateDTO; import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam; +import cn.axzo.msg.center.message.domain.param.TodoHandoverRequest; import cn.axzo.msg.center.message.service.MessageTemplateNewService; import cn.axzo.msg.center.message.service.todo.manage.event.NewTodoEvent; import cn.axzo.msg.center.mq.MqMessageRecord; @@ -161,6 +162,12 @@ public class TodoManager { .collect(toList()); } + // !! handover + + public int handover(TodoHandoverRequest request) { + return 0; + } + // !! complete /** diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java index 27da672c..f65c3c45 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java @@ -15,6 +15,7 @@ import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticForWorkerRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest; +import cn.axzo.msg.center.service.pending.request.PersonTodoToBeDoneStatRequest; import cn.axzo.msg.center.service.pending.request.PresetButtonPressedRequest; import cn.axzo.msg.center.service.pending.request.RevokePendingMessageByIdRequest; import cn.axzo.msg.center.service.pending.request.SetHideRequest; @@ -26,6 +27,7 @@ import cn.axzo.msg.center.service.pending.response.PendingMessageResponse; import cn.axzo.msg.center.service.pending.response.PendingMessageSimpleDTO; import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse; import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponseV2; +import cn.axzo.msg.center.service.pending.response.PersonTodoToBeDoneStatResponse; import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO; import cn.azxo.framework.common.model.CommonResponse; import cn.azxo.framework.common.model.Page; @@ -99,6 +101,13 @@ public interface PendingMessageClient { @PostMapping(value = "/pending-message/record/page", produces = {MediaType.APPLICATION_JSON_VALUE}) CommonResponse> pageQuery(@RequestBody @Valid PendingMessagePageRequest request); + /** + * 统计未完成的待办数量 + */ + @PostMapping(value = "/pending-message/record/personTodoToBeDoneStat", produces = {MediaType.APPLICATION_JSON_VALUE}) + CommonResponse personTodoToBeDoneStat( + @RequestBody @Valid PersonTodoToBeDoneStatRequest request); + /** * 指定几种代办模型列表分页查询 * diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/PersonTodoToBeDoneStatRequest.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/PersonTodoToBeDoneStatRequest.java new file mode 100644 index 00000000..d94563bf --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/PersonTodoToBeDoneStatRequest.java @@ -0,0 +1,21 @@ +package cn.axzo.msg.center.service.pending.request; + +import com.alibaba.fastjson.JSON; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author yanglin + */ +@Data +public class PersonTodoToBeDoneStatRequest { + @NotNull(message = "personId is required") + private Long personId; + private Long ouId; + + @Override + public String toString() { + return JSON.toJSONString(this); + } +} diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PersonTodoToBeDoneStatResponse.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PersonTodoToBeDoneStatResponse.java new file mode 100644 index 00000000..678cd056 --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PersonTodoToBeDoneStatResponse.java @@ -0,0 +1,41 @@ +package cn.axzo.msg.center.service.pending.response; + +import cn.axzo.msg.center.service.enums.BizCategoryEnum; +import com.alibaba.fastjson.JSON; +import lombok.Data; + +import java.util.List; + +/** + * @author yanglin + */ +@Data +public class PersonTodoToBeDoneStatResponse { + + /** + * 统计数据 + */ + private List stats; + + @Data + public static class Stat { + + /** + * 分类 + * FLOW: 流程审批 + * OTHER: 业务 + */ + private BizCategoryEnum bizCategory; + + /** + * 未完成的待办数量 + */ + private Integer pendingCount; + + } + + @Override + public String toString() { + return JSON.toJSONString(this); + } +} \ No newline at end of file