Merge branch 'feature/REQ-1507' into dev
This commit is contained in:
commit
4f2fb86b65
@ -21,6 +21,8 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -60,9 +62,11 @@ public class MessageGroupController implements MessageGroupClient {
|
||||
.listGroupTree(request.getCategory(), request.getNodeName());
|
||||
List<MessageGroupTreeNodeResponse> groupTreeNodes;
|
||||
if (StringUtils.isNotBlank(request.getNodeName())) {
|
||||
// 根据分类结点名称搜索时需要剪枝
|
||||
// 根据结点类型为分类类型的结点名称搜索时需要剪枝TODO:[cold_blade] [P0]
|
||||
final Function<GroupTreeNodeDTO, Boolean> cutFunc = e -> e.canMountTemplate()
|
||||
&& Objects.equals(e.getNodeName(), request.getNodeName());
|
||||
groupTreeNodes = trees.stream()
|
||||
.map(this::convertCutTree)
|
||||
.map(e -> convertCutTree(e, cutFunc))
|
||||
.filter(e -> CollectionUtils.isNotEmpty(e.getChildren()))
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
@ -77,7 +81,7 @@ public class MessageGroupController implements MessageGroupClient {
|
||||
public CommonResponse<List<MessageGroupTreeNodeResponse>> listCutTree(MessageGroupQueryRequest request) {
|
||||
List<MessageGroupTreeNodeResponse> groupTreeNodes = messageGroupNodeService
|
||||
.listGroupTree(request.getCategory(), request.getNodeName()).stream()
|
||||
.map(this::convertCutTree)
|
||||
.map(e -> convertCutTree(e, TreeHelperUtil::containsMountTemplateChild))
|
||||
.filter(e -> CollectionUtils.isNotEmpty(e.getChildren()))
|
||||
.collect(Collectors.toList());
|
||||
return CommonResponse.success(groupTreeNodes);
|
||||
@ -92,7 +96,8 @@ public class MessageGroupController implements MessageGroupClient {
|
||||
return CommonResponse.success(groupTreeNodes);
|
||||
}
|
||||
|
||||
private MessageGroupTreeNodeResponse convertCutTree(GroupTreeNodeDTO srcRootNode) {
|
||||
private MessageGroupTreeNodeResponse convertCutTree(GroupTreeNodeDTO srcRootNode,
|
||||
Function<GroupTreeNodeDTO, Boolean> cutFunc) {
|
||||
MessageGroupTreeNodeResponse tgtRootNode = convert(srcRootNode);
|
||||
if (CollectionUtils.isEmpty(srcRootNode.getNodeChildren())) {
|
||||
return tgtRootNode;
|
||||
@ -102,7 +107,7 @@ public class MessageGroupController implements MessageGroupClient {
|
||||
LinkedList<GroupTreeNodeDTO> stack = new LinkedList<>(srcRootNode.getNodeChildren());
|
||||
while (!stack.isEmpty()) {
|
||||
GroupTreeNodeDTO node = stack.pop();
|
||||
if (TreeHelperUtil.containsMountTemplateChild(node)) {
|
||||
if (cutFunc.apply(node)) {
|
||||
MessageGroupTreeNodeResponse child = convert(node);
|
||||
map.get(node.getParentNode()).addChild(child);
|
||||
map.put(node, child);
|
||||
|
||||
@ -7,7 +7,8 @@ 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.CompleteMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageCountUncompletedRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest;
|
||||
@ -84,18 +85,23 @@ public class PendingMessageNewController implements PendingMessageClient {
|
||||
return CommonResponse.success(pendingMessageNewService.complete(requestNo));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Boolean> completeById(CompletePendingMessageByIdRequest param) {
|
||||
return CommonResponse.success(pendingMessageNewService.completeById(param));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Boolean> revoke(String requestNo) {
|
||||
return CommonResponse.success(pendingMessageNewService.revoke(requestNo));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Boolean> completeByTemplateCodeBizCode(CompleteMessageRequest param) {
|
||||
public CommonResponse<Boolean> completeByTemplateCodeBizCode(CompletePendingMessageRequest param) {
|
||||
return CommonResponse.success(pendingMessageNewService.completeByTemplateCodeBizCode(param));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Boolean> revokeByTemplateCodeBizCode(CompleteMessageRequest param) {
|
||||
public CommonResponse<Boolean> revokeByTemplateCodeBizCode(CompletePendingMessageRequest param) {
|
||||
return CommonResponse.success(pendingMessageNewService.revokeByTemplateCodeBizCode(param));
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,7 +5,8 @@ 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.service.enums.TerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.pending.request.CompleteMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
@ -91,6 +92,14 @@ public interface PendingMessageNewService {
|
||||
*/
|
||||
Boolean complete(String requestNo);
|
||||
|
||||
/**
|
||||
* 完成代办
|
||||
*
|
||||
* @param param 代办唯一标识
|
||||
* @return 成功返回 {@code true} 失败返回 {@code false}
|
||||
*/
|
||||
Boolean completeById(CompletePendingMessageByIdRequest param);
|
||||
|
||||
/**
|
||||
* 撤销代办
|
||||
*
|
||||
@ -105,7 +114,7 @@ public interface PendingMessageNewService {
|
||||
* @param param
|
||||
* @return 成功返回 {@code true} 失败返回 {@code false}
|
||||
*/
|
||||
Boolean completeByTemplateCodeBizCode(CompleteMessageRequest param);
|
||||
Boolean completeByTemplateCodeBizCode(CompletePendingMessageRequest param);
|
||||
|
||||
/**
|
||||
* 通过业务编码和模版编码撤销代办
|
||||
@ -113,5 +122,5 @@ public interface PendingMessageNewService {
|
||||
* @param param
|
||||
* @return 成功返回 {@code true} 失败返回 {@code false}
|
||||
*/
|
||||
Boolean revokeByTemplateCodeBizCode(CompleteMessageRequest param);
|
||||
Boolean revokeByTemplateCodeBizCode(CompletePendingMessageRequest param);
|
||||
}
|
||||
|
||||
@ -30,7 +30,8 @@ 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.pending.request.CompleteMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
@ -191,10 +192,10 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
SimpleWorkspaceRes workspace = null;
|
||||
Long workspaceId = param.getWorkspaceId();
|
||||
Result<SimpleWorkspaceRes> workspaceRes = workspaceApi.getOne(workspaceId);
|
||||
if (!"200".equals(workspaceRes.getCode())) {
|
||||
log.info("未查询到工作台信息 workspaceId:{}", workspaceId);
|
||||
} else {
|
||||
if (200 == workspaceRes.getCode()) {
|
||||
workspace = workspaceRes.getData();
|
||||
} else {
|
||||
log.info("未查询到工作台信息 workspaceId:{}", workspaceId);
|
||||
}
|
||||
List<PendingMessageRecord> record = convert(param, msgTemplate, requestNo, workspace);
|
||||
pendingMessageRecordDao.saveBatch(record);
|
||||
@ -222,6 +223,17 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean completeById(CompletePendingMessageByIdRequest param) {
|
||||
log.info("the [{}] record is updated complete by id.", param);
|
||||
return pendingMessageRecordDao.lambdaUpdate()
|
||||
.set(PendingMessageRecord::getState, PendingMessageStateEnum.COMPLETED)
|
||||
.eq(PendingMessageRecord::getId, param.getId())
|
||||
.eq(PendingMessageRecord::getState, PendingMessageStateEnum.HAS_BEEN_SENT)
|
||||
.eq(PendingMessageRecord::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean revoke(String requestNo) {
|
||||
if (StringUtils.isBlank(requestNo)) {
|
||||
@ -238,7 +250,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean completeByTemplateCodeBizCode(CompleteMessageRequest param) {
|
||||
public Boolean completeByTemplateCodeBizCode(CompletePendingMessageRequest param) {
|
||||
log.info("the [{}] record is completeByTemplateCodeBizCode retract.", param);
|
||||
return pendingMessageRecordDao.lambdaUpdate()
|
||||
.set(PendingMessageRecord::getState, PendingMessageStateEnum.COMPLETED)
|
||||
@ -250,7 +262,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean revokeByTemplateCodeBizCode(CompleteMessageRequest param) {
|
||||
public Boolean revokeByTemplateCodeBizCode(CompletePendingMessageRequest param) {
|
||||
log.info("the [{}] record is revokeByTemplateCodeBizCode retract.", param);
|
||||
return pendingMessageRecordDao.lambdaUpdate()
|
||||
.set(PendingMessageRecord::getState, PendingMessageStateEnum.RETRACT)
|
||||
@ -383,7 +395,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
// 构建代办记录的人维度的相关信息
|
||||
buildPersonInfo(record, param.getPromoter(), executor);
|
||||
// 构建模板信息
|
||||
buildTemplateInfo(record, msgTemplate, param.getRouterParams());
|
||||
buildTemplateInfo(record, msgTemplate, param.getBizExtParams());
|
||||
// 构建代办所属企业/项目等相关信息
|
||||
record.setOrgType(Objects.isNull(param.getOrgType()) ? OrganizationTypeEnum.UNKNOWN : param.getOrgType());
|
||||
record.setOrgId(param.getWorkspaceId());
|
||||
@ -408,17 +420,15 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
|
||||
}
|
||||
|
||||
private void buildTemplateInfo(PendingMessageRecord record, MessageTemplateDTO msgTemplate, String routeParam) {
|
||||
// TODO:[cold_blade] [P3] 后续其它业务对接的时候,需要明确业务扩展字段和路由参数的分界
|
||||
JSONObject routerParamObj = JSONObjectUtil.parseObject(routeParam);
|
||||
private void buildTemplateInfo(PendingMessageRecord record, MessageTemplateDTO msgTemplate, String bizParam) {
|
||||
JSONObject bizExtParam = JSONObjectUtil.parseObject(bizParam);
|
||||
String title = PlaceholderResolver
|
||||
.getDefaultResolver().resolveByMap(msgTemplate.getTitle(), routerParamObj);
|
||||
.getDefaultResolver().resolveByMap(msgTemplate.getTitle(), bizExtParam);
|
||||
String content = PlaceholderResolver
|
||||
.getDefaultResolver().resolveByMap(msgTemplate.getContent(), routerParamObj);
|
||||
.getDefaultResolver().resolveByMap(msgTemplate.getContent(), bizExtParam);
|
||||
record.setTitle(title);
|
||||
record.setContent(content);
|
||||
record.setTemplateCode(msgTemplate.getCode());
|
||||
record.setRouterParams(routerParamObj.toJSONString());
|
||||
}
|
||||
|
||||
private void buildBusinessInfo(PendingMessageRecord record, PendingMessagePushParam param) {
|
||||
@ -427,6 +437,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
record.setBizDesc(param.getBizDesc());
|
||||
record.setBizCategory(param.getBizCategory());
|
||||
record.setBizExtParam(JSONObjectUtil.checkAndReturn(param.getBizExtParams()));
|
||||
record.setRouterParams(JSONObjectUtil.checkAndReturn(param.getRouterParams()));
|
||||
record.setBizFlag(param.getBizFlag());
|
||||
record.setBizFinalState(param.getBizFinalState());
|
||||
record.setDeadline(param.getDeadline());
|
||||
|
||||
@ -2,7 +2,8 @@ package cn.axzo.msg.center.service.pending.client;
|
||||
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.pending.client.fallback.PendingMessageClientFallback;
|
||||
import cn.axzo.msg.center.service.pending.request.CompleteMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageCountUncompletedRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest;
|
||||
@ -102,6 +103,15 @@ public interface PendingMessageClient {
|
||||
@PostMapping(value = "/pending-message/complete", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<Boolean> complete(@RequestParam("requestNo") String requestNo);
|
||||
|
||||
/**
|
||||
* 完成代办
|
||||
*
|
||||
* @param param
|
||||
* @return 成功返回 {@code true} 失败返回 {@code false}
|
||||
*/
|
||||
@PostMapping(value = "/pending-message/complete/by-id", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<Boolean> completeById(@RequestBody @Valid CompletePendingMessageByIdRequest param);
|
||||
|
||||
/**
|
||||
* 撤销代办
|
||||
*
|
||||
@ -117,8 +127,8 @@ public interface PendingMessageClient {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value = "/pending-message/completeByTemplateCodeBizCode", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<Boolean> completeByTemplateCodeBizCode(@RequestBody @Valid CompleteMessageRequest param);
|
||||
@PostMapping(value = "/pending-message/complete/by-biz-code", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<Boolean> completeByTemplateCodeBizCode(@RequestBody @Valid CompletePendingMessageRequest param);
|
||||
|
||||
/**
|
||||
* 通过模版编号和业务编号撤销代办
|
||||
@ -126,6 +136,6 @@ public interface PendingMessageClient {
|
||||
* @param param
|
||||
* @return 成功返回 {@code true} 失败返回 {@code false}
|
||||
*/
|
||||
@PostMapping(value = "/pending-message/revokeByTemplateCodeBizCode", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<Boolean> revokeByTemplateCodeBizCode(@RequestBody @Valid CompleteMessageRequest param);
|
||||
@PostMapping(value = "/pending-message/revoke/by-biz-code", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<Boolean> revokeByTemplateCodeBizCode(@RequestBody @Valid CompletePendingMessageRequest param);
|
||||
}
|
||||
@ -2,7 +2,7 @@ package cn.axzo.msg.center.service.pending.client.fallback;
|
||||
|
||||
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.CompleteMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageCountUncompletedRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest;
|
||||
@ -79,13 +79,13 @@ public class PendingMessageClientFallback implements PendingMessageClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Boolean> completeByTemplateCodeBizCode(CompleteMessageRequest param) {
|
||||
public CommonResponse<Boolean> completeByTemplateCodeBizCode(CompletePendingMessageRequest param) {
|
||||
log.error("fall back while completing pending message by biz code. request:[{}]", param);
|
||||
return CommonResponse.error("fall back while completing pending message by biz code");
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Boolean> revokeByTemplateCodeBizCode(CompleteMessageRequest param) {
|
||||
public CommonResponse<Boolean> revokeByTemplateCodeBizCode(CompletePendingMessageRequest param) {
|
||||
log.error("fall back while revoking pending message by biz code. msgIdentityCode:[{}]", param);
|
||||
return CommonResponse.error("fall back while revoking pending message by biz code");
|
||||
}
|
||||
|
||||
@ -0,0 +1,24 @@
|
||||
package cn.axzo.msg.center.service.pending.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author haiyangjin
|
||||
* @date 2023/11/16
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CompletePendingMessageByIdRequest {
|
||||
/**
|
||||
* 关联业务主键
|
||||
*/
|
||||
@NotNull(message = "消息ID不能为空")
|
||||
private Long id;
|
||||
}
|
||||
@ -16,7 +16,7 @@ import java.io.Serializable;
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CompleteMessageRequest implements Serializable {
|
||||
public class CompletePendingMessageRequest implements Serializable {
|
||||
/**
|
||||
* 关联业务主键
|
||||
*/
|
||||
Loading…
Reference in New Issue
Block a user