Merge branch 'feature/REQ-1507' of axzsource.com:universal/infrastructure/backend/msg-center-plat into dev
This commit is contained in:
commit
0b71b09375
@ -5,6 +5,7 @@ import cn.axzo.msg.center.service.dto.IdentityDTO;
|
||||
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
|
||||
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.enums.PendingMessageStateEnum;
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
@ -124,9 +125,9 @@ public class PendingMessageDTO implements Serializable {
|
||||
*/
|
||||
private MessageTemplateRouterDTO msgTemplateRouter;
|
||||
/**
|
||||
* 业务终态的印章图片地址
|
||||
* 业务终态
|
||||
*/
|
||||
private String bizFinalStateIcon;
|
||||
private BizFinalStateEnum bizFinalState;
|
||||
/**
|
||||
* 路由参数
|
||||
*/
|
||||
@ -172,6 +173,7 @@ public class PendingMessageDTO implements Serializable {
|
||||
.createTime(DateFormatUtil.toLocalDateTime(pendingMessageRecord.getCreateAt()))
|
||||
.updateTime(DateFormatUtil.toLocalDateTime(pendingMessageRecord.getUpdateAt()))
|
||||
.routerParam(pendingMessageRecord.getRouterParams())
|
||||
.bizFinalState(pendingMessageRecord.getBizFinalState())
|
||||
.build();
|
||||
}
|
||||
|
||||
@ -201,7 +203,7 @@ public class PendingMessageDTO implements Serializable {
|
||||
.deadlineTimestamp(DateFormatUtil.toTimestamp(this.deadline))
|
||||
.detailRouter(MessageRouterUtil.fetchBizDetailRouter(this.msgTemplateRouter, terminalType).orElse(null))
|
||||
.buttonRouters(MessageRouterUtil.fetchMessageRouterButtons(this.msgTemplateRouter, terminalType))
|
||||
.bizFinalStateIcon(this.bizFinalStateIcon)
|
||||
.bizFinalStateIcon(Optional.ofNullable(bizFinalState).map(BizFinalStateEnum::getIcon).orElse(null))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@ -111,6 +111,7 @@ public class PendingMessageDataInitServiceImpl implements PendingMessageDataInit
|
||||
log.info("[cold_blade] transform rows:[{}]", pendingMessageRecords.size());
|
||||
Map<String, Long> executorIdWorkspceIdMap = pendingMessageRecords.stream()
|
||||
.filter(e -> Objects.equals(e.getExecutorType(), IdentityTypeEnum.PRACTITIONER))
|
||||
.filter(e -> filterWorkspaceId(e.getOrgId()))
|
||||
.filter(e -> !ouIdMap.containsKey(getKey(e)))
|
||||
.collect(Collectors.toMap(this::getKey, PendingMessageRecord::getExecutorId, (cur, next) -> next));
|
||||
Map<String, Long> map = fetchOuId(executorIdWorkspceIdMap);
|
||||
@ -192,6 +193,12 @@ public class PendingMessageDataInitServiceImpl implements PendingMessageDataInit
|
||||
return msgTemplateMap.get(Integer.parseInt(String.valueOf(relationId)));
|
||||
}
|
||||
|
||||
private boolean filterWorkspaceId(Long workspaceId) {
|
||||
return Objects.nonNull(workspaceId)
|
||||
&& workspaceId > 0
|
||||
&& EXCLUDE_WORKSPACE_IDS.stream().map(Long::valueOf).noneMatch(e -> e.equals(workspaceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 原模板ID与test环境新模板ID映射表
|
||||
*/
|
||||
|
||||
@ -142,6 +142,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
BizFinalStateEnum bizFinalState = fetchBizFinalState(request.getRoleCategory(), request.getBizFinalState());
|
||||
// 开始构建分页查询条件
|
||||
LambdaQueryChainWrapper<PendingMessageRecord> query = pendingMessageRecordDao.lambdaQuery()
|
||||
.eq(Objects.nonNull(request.getOuId()), PendingMessageRecord::getOuId, request.getOuId())
|
||||
.eq(Objects.nonNull(pendingMessageState), PendingMessageRecord::getState, pendingMessageState)
|
||||
.eq(Objects.nonNull(bizFinalState), PendingMessageRecord::getBizFinalState, bizFinalState)
|
||||
.eq(Objects.nonNull(request.getWorkspaceId()), PendingMessageRecord::getOrgId, request.getWorkspaceId());
|
||||
@ -191,9 +192,12 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
public Page<MessageDetailRes> compatiblePageQuery(PendingMessagePageRequest request) {
|
||||
List<String> groupTreeRootNodeCodes = messageGroupNodeService
|
||||
.listGroupTreeRootNodeCodes(MessageGroupCategoryEnum.PENDING, request.getAppTerminalType());
|
||||
PendingMessageStateEnum pendingMessageState = fetchPendingMessageState(request.getRoleCategory(), request.getMsgState());
|
||||
PersonDTO operator = PersonDTO.from(request.getPersonId(), request.getIdentityId(), request.getIdentityType());
|
||||
// 开始构建分页查询条件
|
||||
LambdaQueryChainWrapper<PendingMessageRecord> query = pendingMessageRecordDao.lambdaQuery();
|
||||
LambdaQueryChainWrapper<PendingMessageRecord> query = pendingMessageRecordDao.lambdaQuery()
|
||||
.eq(Objects.nonNull(request.getOuId()), PendingMessageRecord::getOuId, request.getOuId())
|
||||
.eq(Objects.nonNull(pendingMessageState), PendingMessageRecord::getState, pendingMessageState);
|
||||
// 构建人维度的查询条件
|
||||
buildPersonCondition(query, request.getWithIdentify(), request.getRoleCategory(), operator);
|
||||
// 模板的分类,对代办进行分组过滤
|
||||
@ -376,8 +380,14 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
.map(MessageTemplateDTO::getMsgTemplateRouter)
|
||||
.orElse(null);
|
||||
// 解析并替换掉路由地址中的动态参数变量
|
||||
msgTemplateRouter = MessageRouterUtil
|
||||
.parseAndConcatRouteUrl(msgTemplateRouter, JSONObjectUtil.parseObject(pendingMessageRecord.getRouterParams()));
|
||||
JSONObject routerParam = JSONObjectUtil.parseObject(pendingMessageRecord.getRouterParams());
|
||||
if (!routerParam.containsKey("ouId")) {
|
||||
routerParam.put("ouId", pendingMessageRecord.getOuId());
|
||||
}
|
||||
if (!routerParam.containsKey("workspaceId")) {
|
||||
routerParam.put("workspaceId", pendingMessageRecord.getOrgId());
|
||||
}
|
||||
msgTemplateRouter = MessageRouterUtil.parseAndConcatRouteUrl(msgTemplateRouter, routerParam);
|
||||
pendingMessage.setMsgTemplateRouter(msgTemplateRouter);
|
||||
// 获取模板卡片信息
|
||||
List<MessageCardContentItemDTO> msgCardContentItems = messageTemplates.stream()
|
||||
@ -388,7 +398,6 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
// 解析并替换卡片信息里面的动态参数变量
|
||||
msgCardContentItems = MessageCardUtil.parseMessageCard(msgCardContentItems, pendingMessageRecord.getBizExtParam());
|
||||
pendingMessage.setCardItems(msgCardContentItems);
|
||||
// TODO: [cold_blade] [P0] 业务终态图标url
|
||||
return pendingMessage;
|
||||
}
|
||||
|
||||
@ -535,7 +544,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
record.setRequestNo(requestNo);
|
||||
record.setState(PendingMessageStateEnum.HAS_BEEN_SENT);
|
||||
// 构建代办记录的人维度的相关信息
|
||||
buildPersonInfo(record, param.getPromoter(), executor,workspace.getId());
|
||||
buildPersonInfo(record, param.getPromoter(), executor, workspace.getId());
|
||||
// 构建模板信息
|
||||
buildTemplateInfo(record, msgTemplate, param.getBizExtParams());
|
||||
// 构建代办所属企业/项目等相关信息
|
||||
@ -560,21 +569,21 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
record.setExecutorPersonId(executor.getId());
|
||||
record.setExecutorName(executor.getName());
|
||||
// 执行人身份是从业人员,查询ouId
|
||||
record.setOuId(getPractitionOuId(executor,workspaceId));
|
||||
record.setOuId(getPractitionOuId(executor, workspaceId));
|
||||
|
||||
}
|
||||
|
||||
private Long getPractitionOuId(PersonDTO executor, Long workspaceId) {
|
||||
|
||||
// 从业人员需要获取ouId
|
||||
if(IdentityTypeEnum.PRACTITIONER == executor.getIdentity().getType()){
|
||||
if (IdentityTypeEnum.PRACTITIONER == executor.getIdentity().getType()) {
|
||||
OrganizationalNodePractitionerWideReqParams param = new OrganizationalNodePractitionerWideReqParams();
|
||||
param.setWorkspaceId(workspaceId);
|
||||
param.setIdentityId(executor.getIdentity().getId());
|
||||
log.info("get ouId params->{}", JSON.toJSONString(param));
|
||||
Result<OrganizationalNodePractitionerWideDto> result = organizationalNodePractitionerWideApi.getOne(param);
|
||||
log.info("get ouId result->{}", JSON.toJSONString(result));
|
||||
if(null != result && null != result.getData() && null != result.getData().getOrganizationalUnitId()){
|
||||
if (null != result && null != result.getData() && null != result.getData().getOrganizationalUnitId()) {
|
||||
return result.getData().getOrganizationalUnitId();
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,7 +19,6 @@ import java.util.Objects;
|
||||
*/
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class JSONObjectUtil {
|
||||
private static final JSONObject EMPTY_JSON_OBJ = new JSONObject();
|
||||
private static final String EMPTY_JSON_OBJ_STR = "{}";
|
||||
private static final String EMPTY_JSON_ARR_STR = "[]";
|
||||
|
||||
@ -31,7 +30,7 @@ public final class JSONObjectUtil {
|
||||
*/
|
||||
public static JSONObject parseObject(String str) {
|
||||
if (StringUtils.isBlank(str)) {
|
||||
return EMPTY_JSON_OBJ;
|
||||
return new JSONObject();
|
||||
}
|
||||
return JSON.parseObject(str);
|
||||
}
|
||||
|
||||
@ -19,17 +19,19 @@ public enum BizFinalStateEnum {
|
||||
/**
|
||||
* 已处理
|
||||
*/
|
||||
COMPLETED,
|
||||
COMPLETED("https://static.axzo.cn/fe-static/uni-icon/public/seal-1%23_%241699341908382.png"),
|
||||
/**
|
||||
* 已撤销
|
||||
*/
|
||||
RETRACT,
|
||||
RETRACT("https://static.axzo.cn/fe-static/uni-icon/public/seal-3%23_%241699341908381.png"),
|
||||
/**
|
||||
* 已通过
|
||||
*/
|
||||
PASSED,
|
||||
PASSED("https://static.axzo.cn/fe-static/uni-icon/public/seal-4%23_%241699341908374.png"),
|
||||
/**
|
||||
* 已拒绝
|
||||
*/
|
||||
REJECTED;
|
||||
REJECTED("https://static.axzo.cn/fe-static/uni-icon/public/seal-2%23_%241699341908381.png");
|
||||
|
||||
private final String icon;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user