From 94151c53aff79fc478a2a0717c74abc9f9a44b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Fri, 10 Nov 2023 11:24:28 +0800 Subject: [PATCH 1/5] add TODO --- .../message/service/impl/PendingMessageNewServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java index b8f5de92..59e568b0 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java @@ -127,6 +127,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService { .orElseThrow(() -> new ServiceException("not found message template.")); PendingMessageRecord record = convert(param, msgTemplate); pendingMessageRecordDao.save(record); + // TODO 补偿消息推送 @luofu return record.getIdentityCode(); } From 171de9986e0a078e00991b49c408b065c02aa62e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Fri, 10 Nov 2023 13:46:38 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=BE=85=E5=8A=9E=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=A1=A8=E5=A2=9E=E5=8A=A0lable=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/msg/center/domain/entity/PendingMessageRecord.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java index d2716e9f..74b425b4 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java @@ -129,6 +129,11 @@ public class PendingMessageRecord extends BaseEntityExt im */ private String failCause; + /** + * 流程标签:业务流展示状态机(非必填) + */ + private String lable; + @Override public String toString() { return JSON.toJSONString(this); From 17fd356e614c4a7a23f91e99b66c48fa453fc80f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Fri, 10 Nov 2023 13:47:35 +0800 Subject: [PATCH 3/5] rollback lable --- .../axzo/msg/center/domain/entity/PendingMessageRecord.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java index 74b425b4..d2716e9f 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java @@ -129,11 +129,6 @@ public class PendingMessageRecord extends BaseEntityExt im */ private String failCause; - /** - * 流程标签:业务流展示状态机(非必填) - */ - private String lable; - @Override public String toString() { return JSON.toJSONString(this); From 804f1149282d040cad6e1a1f9a64bcfb4ac0788e Mon Sep 17 00:00:00 2001 From: luofu Date: Fri, 10 Nov 2023 13:46:30 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat(REQ-1507):=20=E5=BE=85=E5=8A=9E?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E8=AE=B0=E5=BD=95=E6=95=B0=E6=8D=AE=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1507?goToView=1 修改: 1、待办消息记录数据模型调整; 影响: 无 --- .../response/PendingMessageResponse.java | 18 +++++++++++++++++- .../domain/entity/PendingMessageRecord.java | 12 ++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageResponse.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageResponse.java index c6d941a0..db548486 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageResponse.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageResponse.java @@ -51,6 +51,10 @@ public class PendingMessageResponse implements Serializable { * 代办发起者自然人id */ private Long promoterPersonId; + /** + * 发起者姓名 + */ + private String promoterName; /** * 代办发起者身份 */ @@ -59,6 +63,10 @@ public class PendingMessageResponse implements Serializable { * 代办执行者自然人id */ private Long executorPersonId; + /** + * 执行者姓名 + */ + private String executorName; /** * 代办执行者身份 */ @@ -79,6 +87,14 @@ public class PendingMessageResponse implements Serializable { * 业务标签 */ private String bizFlag; + /** + * 项目部图标 + */ + private String projectIcon; + /** + * 项目部名称 + */ + private String projectName; /** * 业务类型 */ @@ -106,7 +122,7 @@ public class PendingMessageResponse implements Serializable { /** * 业务终态的印章图片地址 */ - private String bizFinalStateIconUrl; + private String bizFinalStateIcon; @Override public String toString() { diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java index d2716e9f..9663b61a 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java @@ -44,6 +44,10 @@ public class PendingMessageRecord extends BaseEntityExt im * 发起者的自然人ID */ private Long promoterPersonId; + /** + * 发起者姓名 + */ + private String promoterName; /** * 发起者身份 */ @@ -56,6 +60,10 @@ public class PendingMessageRecord extends BaseEntityExt im * 执行者的自然人ID */ private Long executorPersonId; + /** + * 执行者姓名 + */ + private String executorName; /** * 执行者身份 */ @@ -104,6 +112,10 @@ public class PendingMessageRecord extends BaseEntityExt im * 业务描述eg:流程结点描述 */ private String bizDesc; + /** + * 业务标签 + */ + private String bizFlag; /** * 业务扩展参数 */ From 1598af492cf2268aa64bde7892c0bc841113c8c3 Mon Sep 17 00:00:00 2001 From: luofu Date: Fri, 10 Nov 2023 14:40:57 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat(REQ-1507):=20=E5=BE=85=E5=8A=9E?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E8=AE=B0=E5=BD=95=E5=88=86=E7=B1=BB=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=8A=9F=E8=83=BD=E7=9A=84=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1507?goToView=1 修改: 1、待办消息记录分类统计功能的实现; 影响: 无 --- .../notices/config/PendingMessageBizConfig.java | 12 ++++++++++++ .../controller/PendingMessageNewController.java | 6 +++--- .../message/service/MessageGroupNodeService.java | 10 ++++++++++ .../service/impl/MessageGroupNodeServiceImpl.java | 15 +++++++++++++++ .../MessageGroupTreeNodeCacheServiceImpl.java | 1 + .../impl/PendingMessageNewServiceImpl.java | 8 +++++--- .../msg/center/service/dto/GroupTreeNodeDTO.java | 15 ++++----------- 7 files changed, 50 insertions(+), 17 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/config/PendingMessageBizConfig.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/config/PendingMessageBizConfig.java index 52049f60..e8aea8c3 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/config/PendingMessageBizConfig.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/config/PendingMessageBizConfig.java @@ -2,6 +2,7 @@ package cn.axzo.msg.center.inside.notices.config; import cn.axzo.msg.center.api.enums.MsgTempBizCategoryEnum; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyTypeRes; +import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum; import com.alibaba.fastjson.JSON; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -15,6 +16,7 @@ import org.springframework.context.annotation.Configuration; import javax.annotation.Nullable; import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -44,6 +46,8 @@ public class PendingMessageBizConfig { private Map categoryJumpUrl; + private Map> msgGroupConfig; + public List tempCategoriesConfig() { return Arrays.stream(MsgTempBizCategoryEnum.values()) .filter(e -> category.containsKey(e)) @@ -59,6 +63,14 @@ public class PendingMessageBizConfig { categoryJumpUrl.get(category)); } + public List fetchMessageGroupTreeNodeIds(AppTerminalTypeEnum appTerminalType) { + if (Objects.isNull(appTerminalType)) { + return Collections.emptyList(); + } + // TODO: [cold_blade] [P2] 需要配置各个应用终端映射的业务中心分类的结点id + return msgGroupConfig.getOrDefault(appTerminalType, Collections.emptyList()); + } + @Setter @Getter @AllArgsConstructor(access = AccessLevel.PRIVATE) 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 7ca4f7a8..503f86bb 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 @@ -1,17 +1,17 @@ package cn.axzo.msg.center.message.controller; -import cn.axzo.msg.center.message.domain.dto.PendingMessageStatisticDTO; import cn.axzo.msg.center.message.domain.dto.PendingMessageDTO; +import cn.axzo.msg.center.message.domain.dto.PendingMessageStatisticDTO; import cn.axzo.msg.center.message.domain.param.MessageGroupNodeStatisticParam; import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam; import cn.axzo.msg.center.message.service.PendingMessageNewService; import cn.axzo.msg.center.service.enums.TerminalTypeEnum; import cn.axzo.msg.center.service.pending.client.PendingMessageClient; -import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest; import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest; import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest; -import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse; +import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest; import cn.axzo.msg.center.service.pending.response.PendingMessageResponse; +import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse; import cn.azxo.framework.common.model.CommonResponse; import cn.azxo.framework.common.model.Page; import lombok.RequiredArgsConstructor; diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/MessageGroupNodeService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/MessageGroupNodeService.java index 7975c2b5..ea9a733c 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/MessageGroupNodeService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/MessageGroupNodeService.java @@ -2,6 +2,7 @@ package cn.axzo.msg.center.message.service; import cn.axzo.msg.center.message.domain.param.MessageGroupNodeSaveOrUpdateParam; import cn.axzo.msg.center.service.dto.GroupTreeNodeDTO; +import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum; import cn.axzo.msg.center.service.enums.MessageGroupCategoryEnum; import javax.annotation.Nullable; @@ -72,4 +73,13 @@ public interface MessageGroupNodeService { * @return 分类树列表 */ List listGroupTree(@Nullable MessageGroupCategoryEnum category, @Nullable String nodeName); + + /** + * 获取各个应用端对应的业务中心分类结点编码配置 + * + * @param category 分类树的种类 + * @param appTerminalType 应用终端类型 + * @return 对应的分类树的根节点编码列表 + */ + List listGroupTreeRootNodeCodes(MessageGroupCategoryEnum category, AppTerminalTypeEnum appTerminalType); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupNodeServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupNodeServiceImpl.java index 6aeabd07..e619245b 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupNodeServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupNodeServiceImpl.java @@ -7,11 +7,13 @@ import cn.axzo.msg.center.dal.MessageGroupNodeDao; import cn.axzo.msg.center.dal.MessageTemplateGroupDao; import cn.axzo.msg.center.domain.entity.MessageGroupNode; import cn.axzo.msg.center.domain.entity.MessageTemplateGroup; +import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; import cn.axzo.msg.center.message.domain.dto.GroupTreeNodePathDTO; import cn.axzo.msg.center.message.domain.param.MessageGroupNodeSaveOrUpdateParam; import cn.axzo.msg.center.message.service.MessageGroupNodeService; import cn.axzo.msg.center.message.service.MessageGroupTreeNodeCacheService; import cn.axzo.msg.center.service.dto.GroupTreeNodeDTO; +import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum; import cn.axzo.msg.center.service.enums.MessageGroupCategoryEnum; import cn.axzo.msg.center.utils.TreeHelperUtil; import cn.axzo.msg.center.utils.UUIDUtil; @@ -41,6 +43,7 @@ public class MessageGroupNodeServiceImpl implements MessageGroupNodeService { private final MessageGroupNodeDao messageGroupNodeDao; private final MessageTemplateGroupDao messageTemplateGroupDao; + private final PendingMessageBizConfig pendingMessageBizConfig; private final MessageGroupTreeNodeCacheService messageGroupTreeNodeCacheService; @Override @@ -134,6 +137,18 @@ public class MessageGroupNodeServiceImpl implements MessageGroupNodeService { .collect(Collectors.toList()); } + @Override + public List listGroupTreeRootNodeCodes(MessageGroupCategoryEnum category, AppTerminalTypeEnum appTerminalType) { + AssertUtil.notNull(category, "category can not be null"); + List nodeIds = MessageGroupCategoryEnum.PENDING.equals(category) ? + pendingMessageBizConfig.fetchMessageGroupTreeNodeIds(appTerminalType) : Collections.emptyList(); + return messageGroupTreeNodeCacheService.listAllGroupTree().stream() + .filter(e -> category.getMsgGroupNodeCategories().contains(e.getCategory())) + .filter(e -> CollectionUtils.isEmpty(nodeIds) || nodeIds.contains(e.getNodeId())) + .map(GroupTreeNodeDTO::getNodeCode) + .collect(Collectors.toList()); + } + private MessageGroupNode convert(MessageGroupNodeSaveOrUpdateParam param) { MessageGroupNode groupNode = new MessageGroupNode(); groupNode.setCode(UUIDUtil.uuidString()); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupTreeNodeCacheServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupTreeNodeCacheServiceImpl.java index f9e73c49..798d1e4d 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupTreeNodeCacheServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupTreeNodeCacheServiceImpl.java @@ -154,6 +154,7 @@ public class MessageGroupTreeNodeCacheServiceImpl implements MessageGroupTreeNod private GroupTreeNodeDTO convert(MessageGroupNode groupNode) { return GroupTreeNodeDTO.builder() + .nodeId(groupNode.getId()) .nodeName(groupNode.getName()) .nodeCode(groupNode.getCode()) .nodeIcon(groupNode.getIcon()) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java index 59e568b0..5486a95f 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java @@ -20,6 +20,7 @@ import cn.axzo.msg.center.service.dto.IdentityDTO; import cn.axzo.msg.center.service.dto.PersonDTO; import cn.axzo.msg.center.service.dto.QueryOrderByDTO; import cn.axzo.msg.center.service.enums.IdentityTypeEnum; +import cn.axzo.msg.center.service.enums.MessageGroupCategoryEnum; import cn.axzo.msg.center.service.enums.OrganizationTypeEnum; import cn.axzo.msg.center.service.enums.PendingMessageRoleCategoryEnum; import cn.axzo.msg.center.service.enums.PendingMessageStateEnum; @@ -68,8 +69,9 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService { @Override public List groupStatistic(MessageGroupNodeStatisticParam param) { - // TODO: [cold_blade] [P0] 获取待统计的业务中心分类结点的编码 - return param.getGroupNodeCodes().stream() + List groupTreeRootNodeCodes = messageGroupNodeService + .listGroupTreeRootNodeCodes(MessageGroupCategoryEnum.PENDING, param.getTerminalType()); + return groupTreeRootNodeCodes.stream() .flatMap(e -> statistic(e, param).stream()) .collect(Collectors.toList()); } @@ -186,7 +188,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService { } private List statistic(String rootNodeCode, MessageGroupNodeStatisticParam param) { - // TODO:[cold_blade] [P0] 异常捕获处理记忆功能实现 + // TODO:[cold_blade] [P0] 异常捕获处理功能实现 GroupTreeNodeDTO rootNode = messageGroupNodeService.queryRootNode(rootNodeCode) .orElseThrow(() -> new ServiceException("groupNodeCode is invalid.")); // 外部传的是根节点,但是前端希望只返回根节点的字节的 diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/GroupTreeNodeDTO.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/GroupTreeNodeDTO.java index 970ff86d..b17cbcb8 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/GroupTreeNodeDTO.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/GroupTreeNodeDTO.java @@ -9,12 +9,10 @@ import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import org.apache.commons.lang3.StringUtils; import java.io.Serializable; import java.util.Collections; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; @@ -32,6 +30,10 @@ public class GroupTreeNodeDTO implements IBaseTree, Se private static final long serialVersionUID = -3244632155934087302L; + /** + * 存储模型的主键id + */ + private Long nodeId; /** * 模板分组结点名称 */ @@ -83,13 +85,4 @@ public class GroupTreeNodeDTO implements IBaseTree, Se .children(children) .build(); } - - public Optional getChild(String treeNodeCode) { - if (StringUtils.isBlank(treeNodeCode) || Objects.isNull(nodeChildren)) { - return Optional.empty(); - } - return nodeChildren.stream() - .filter(e -> Objects.equals(e.getNodeCode(), treeNodeCode)) - .findFirst(); - } }