Merge branch 'feature/REQ-1507' of axzsource.com:universal/infrastructure/backend/msg-center-plat into dev
This commit is contained in:
commit
27300be8e8
@ -4,8 +4,8 @@ import cn.axzo.basics.common.util.AssertUtil;
|
||||
import cn.axzo.msg.center.domain.entity.MessageRouteButton;
|
||||
import cn.axzo.msg.center.domain.entity.MessageRouteDetail;
|
||||
import cn.axzo.msg.center.domain.entity.MessageRouterConfig;
|
||||
import cn.axzo.msg.center.service.dto.MessageDetailRouteStrategyDTO;
|
||||
import cn.axzo.msg.center.service.dto.MessageButtonRouteStrategyDTO;
|
||||
import cn.axzo.msg.center.service.dto.MessageDetailRouteStrategyDTO;
|
||||
import cn.axzo.msg.center.service.dto.MessageRouterTerminalDTO;
|
||||
import cn.axzo.msg.center.service.enums.BizDetailShowStrategyEnum;
|
||||
import cn.axzo.msg.center.service.enums.RouterButtonSourceEnum;
|
||||
@ -138,7 +138,7 @@ public class MessageTemplateRouterDTO implements Serializable {
|
||||
public List<MessageRouterConfig> fetchMessageRouterConfigs() {
|
||||
return CollectionUtils.isEmpty(this.routerConfigs) ? Collections.emptyList() :
|
||||
this.routerConfigs.stream()
|
||||
.map(MessageRouterConfigDTO::fetchMessageRouterConfig)
|
||||
.map(e -> e.fetchMessageRouterConfig(this.templateCode))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@ -254,10 +254,10 @@ public class MessageTemplateRouterDTO implements Serializable {
|
||||
.build();
|
||||
}
|
||||
|
||||
public List<MessageRouterConfig> fetchMessageRouterConfigs() {
|
||||
public List<MessageRouterConfig> fetchMessageRouterConfigs(String routerCode) {
|
||||
return CollectionUtils.isEmpty(this.routerConfigs) ? Collections.emptyList() :
|
||||
this.routerConfigs.stream()
|
||||
.map(MessageRouterConfigDTO::fetchMessageRouterConfig)
|
||||
.map(e -> e.fetchMessageRouterConfig(routerCode))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@ -319,9 +319,9 @@ public class MessageTemplateRouterDTO implements Serializable {
|
||||
.build();
|
||||
}
|
||||
|
||||
MessageRouterConfig fetchMessageRouterConfig() {
|
||||
MessageRouterConfig fetchMessageRouterConfig(String routerCode) {
|
||||
return MessageRouterConfig.builder()
|
||||
.routerCode(this.routerCode)
|
||||
.routerCode(routerCode)
|
||||
.terminalType(this.terminalType)
|
||||
.url(this.url)
|
||||
.build();
|
||||
|
||||
@ -3,6 +3,7 @@ package cn.axzo.msg.center.message.domain.param;
|
||||
import cn.axzo.core.utils.converter.BeanConverter;
|
||||
import cn.axzo.msg.center.service.dto.PersonDTO;
|
||||
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
|
||||
import cn.axzo.msg.center.service.enums.BizFinalStateEnum;
|
||||
import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@ -13,6 +14,8 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description
|
||||
@ -36,7 +39,7 @@ public class PendingMessagePushParam implements Serializable {
|
||||
/**
|
||||
* 执行者
|
||||
*/
|
||||
private PersonDTO executor;
|
||||
private List<PersonDTO> executor;
|
||||
/**
|
||||
* 模板编码
|
||||
*/
|
||||
@ -77,6 +80,18 @@ public class PendingMessagePushParam implements Serializable {
|
||||
* 路由参数(json string)
|
||||
*/
|
||||
private String routerParams;
|
||||
/**
|
||||
* 业务标签
|
||||
*/
|
||||
private String bizFlag;
|
||||
/**
|
||||
* 业务终态,可为空
|
||||
*/
|
||||
private BizFinalStateEnum bizFinalState;
|
||||
/**
|
||||
* 待办的截止时间
|
||||
*/
|
||||
private Date deadline;
|
||||
|
||||
public static PendingMessagePushParam from(PendingMessagePushRequest request) {
|
||||
return BeanConverter.convert(request, PendingMessagePushParam.class);
|
||||
|
||||
@ -256,9 +256,7 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
|
||||
// 获取对应按钮的唯一标识
|
||||
String btnCode = routeButtonWrapper.getRouteButton().getBtnCode();
|
||||
// 转化为存储的数据模型
|
||||
List<MessageRouterConfig> routerConfigs = routeButtonWrapper.buttonRouter.fetchMessageRouterConfigs();
|
||||
// 将按钮唯一标识与路由跳转配置进行映射
|
||||
routerConfigs.forEach(e -> e.setRouterCode(btnCode));
|
||||
List<MessageRouterConfig> routerConfigs = routeButtonWrapper.buttonRouter.fetchMessageRouterConfigs(btnCode);
|
||||
return routerConfigs.stream();
|
||||
}
|
||||
|
||||
|
||||
@ -19,12 +19,7 @@ import cn.axzo.msg.center.service.dto.GroupTreeNodeDTO;
|
||||
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;
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.*;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
import cn.axzo.msg.center.utils.JSONObjectUtil;
|
||||
@ -127,10 +122,11 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
MessageTemplateDTO msgTemplate = messageTemplateNewService
|
||||
.queryByTemplateCode(param.getTemplateCode())
|
||||
.orElseThrow(() -> new ServiceException("not found message template."));
|
||||
PendingMessageRecord record = convert(param, msgTemplate);
|
||||
pendingMessageRecordDao.save(record);
|
||||
// TODO 补偿消息推送 @luofu
|
||||
return record.getIdentityCode();
|
||||
String requestNo = UUIDUtil.uuidString();
|
||||
List<PendingMessageRecord> record = convert(param, msgTemplate,requestNo);
|
||||
pendingMessageRecordDao.saveBatch(record);
|
||||
// TODO 消息推送 @luofu
|
||||
return requestNo;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -254,30 +250,37 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
});
|
||||
}
|
||||
|
||||
private PendingMessageRecord convert(PendingMessagePushParam param, MessageTemplateDTO msgTemplate) {
|
||||
PendingMessageRecord record = new PendingMessageRecord();
|
||||
record.setIdentityCode(UUIDUtil.uuidString());
|
||||
record.setState(PendingMessageStateEnum.HAS_BEEN_SENT);
|
||||
// 构建代办记录的人维度的相关信息
|
||||
buildPersonInfo(record, param.getPromoter(), param.getExecutor());
|
||||
// 构建模板信息
|
||||
buildTemplateInfo(record, msgTemplate, param.getRouterParams());
|
||||
// 构建代办所属企业/项目等相关信息
|
||||
record.setOrgType(Objects.isNull(param.getOrgType()) ? OrganizationTypeEnum.UNKNOWN : param.getOrgType());
|
||||
record.setOrgId(param.getOrgId());
|
||||
record.setOrgName(param.getOrgName());
|
||||
// 构建业务类信息
|
||||
buildBusinessInfo(record, param);
|
||||
return record;
|
||||
private List<PendingMessageRecord> convert(PendingMessagePushParam param, MessageTemplateDTO msgTemplate,String requestNo) {
|
||||
// 多个执行者生成多条record
|
||||
return param.getExecutor().stream().map(executor ->{
|
||||
PendingMessageRecord record = new PendingMessageRecord();
|
||||
record.setIdentityCode(UUIDUtil.uuidString());
|
||||
record.setRequestNo(requestNo);
|
||||
record.setState(PendingMessageStateEnum.HAS_BEEN_SENT);
|
||||
// 构建代办记录的人维度的相关信息
|
||||
buildPersonInfo(record, param.getPromoter(), executor);
|
||||
// 构建模板信息
|
||||
buildTemplateInfo(record, msgTemplate, param.getRouterParams());
|
||||
// 构建代办所属企业/项目等相关信息
|
||||
record.setOrgType(Objects.isNull(param.getOrgType()) ? OrganizationTypeEnum.UNKNOWN : param.getOrgType());
|
||||
record.setOrgId(param.getOrgId());
|
||||
record.setOrgName(param.getOrgName());
|
||||
// 构建业务类信息
|
||||
buildBusinessInfo(record, param);
|
||||
return record;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private void buildPersonInfo(PendingMessageRecord record, PersonDTO promoter, PersonDTO executor) {
|
||||
record.setPromoterId(promoter.getIdentity().getId());
|
||||
record.setPromoterType(promoter.getIdentity().getType());
|
||||
record.setPromoterPersonId(promoter.getId());
|
||||
record.setPromoterName(promoter.getName());
|
||||
record.setExecutorId(executor.getIdentity().getId());
|
||||
record.setExecutorType(executor.getIdentity().getType());
|
||||
record.setExecutorPersonId(executor.getId());
|
||||
record.setExecutorName(executor.getName());
|
||||
|
||||
}
|
||||
|
||||
private void buildTemplateInfo(PendingMessageRecord record, MessageTemplateDTO msgTemplate, String routeParam) {
|
||||
@ -299,5 +302,8 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
record.setBizDesc(param.getBizDesc());
|
||||
record.setBizCategory(param.getBizCategory());
|
||||
record.setBizExtParam(JSONObjectUtil.checkAndReturn(param.getBizExtParams()));
|
||||
record.setBizFlag(param.getBizFlag());
|
||||
record.setBizFinalState(param.getBizFinalState());
|
||||
record.setDeadline(param.getDeadline());
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,6 +35,10 @@ public class PersonDTO implements Serializable {
|
||||
* 身份信息
|
||||
*/
|
||||
private IdentityDTO identity;
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String name;
|
||||
|
||||
public static PersonDTO from(Long personId, Long identityId, IdentityTypeEnum identityType) {
|
||||
IdentityDTO identity = IdentityDTO.builder()
|
||||
|
||||
@ -1,5 +1,9 @@
|
||||
package cn.axzo.msg.center.service.enums;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @description
|
||||
* 业务终态的状态枚举,包含审批流的相关状态
|
||||
@ -8,6 +12,8 @@ package cn.axzo.msg.center.service.enums;
|
||||
* @date 2023/11/7
|
||||
* @version 1.0
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum BizFinalStateEnum {
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user