REQ-2318: 定义接口

This commit is contained in:
yanglin 2024-05-16 15:51:32 +08:00
parent 449c88037e
commit a54694c553
7 changed files with 113 additions and 0 deletions

View File

@ -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<PersonTodoToBeDoneStatResponse> personTodoToBeDoneStat(PersonTodoToBeDoneStatRequest request) {
log.info("personTodoToBeDoneStat, request={}", JSON.toJSONString(request));
PersonTodoToBeDoneStatResponse resp = todoRangeQueryService.personTodoToBeDoneStat(request);
return CommonResponse.success(resp);
}
@Override
public CommonResponse<List<PendingMessageResponse>> getPendingMessageByAppWorker(PendingMessageFixedTemplatePageRequest request) {
log.info("getPendingMessageByAppWorker, request={}", JSON.toJSONString(request));

View File

@ -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;
}

View File

@ -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));
}

View File

@ -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
/**

View File

@ -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<AnalysisPage<PendingMessageResponse>> pageQuery(@RequestBody @Valid PendingMessagePageRequest request);
/**
* 统计未完成的待办数量
*/
@PostMapping(value = "/pending-message/record/personTodoToBeDoneStat", produces = {MediaType.APPLICATION_JSON_VALUE})
CommonResponse<PersonTodoToBeDoneStatResponse> personTodoToBeDoneStat(
@RequestBody @Valid PersonTodoToBeDoneStatRequest request);
/**
* 指定几种代办模型列表分页查询
*

View File

@ -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);
}
}

View File

@ -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<Stat> stats;
@Data
public static class Stat {
/**
* 分类
* FLOW: 流程审批
* OTHER: 业务
*/
private BizCategoryEnum bizCategory;
/**
* 未完成的待办数量
*/
private Integer pendingCount;
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
}