diff --git a/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeign.java b/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeign.java index 533ec8c..6c04004 100644 --- a/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeign.java +++ b/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeign.java @@ -68,6 +68,10 @@ public interface MessageFeign { @PostMapping("/pushMessage") ResultBean pushMessage(@RequestBody MessageFlowableQuery query); + @ApiOperation("流程审批推送消息 抄送") + @PostMapping("/pushMessageCC") + ResultBean pushMessageCC(@RequestBody MessageFlowableQueryForCC query); + @ApiOperation("供应链流程审批推送消息") @PostMapping("/sendMessage") ResultBean sendMessage(@RequestBody AppScmMessageFlowableQuery query); diff --git a/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeignFallback.java b/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeignFallback.java index 67e075d..fca066f 100644 --- a/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeignFallback.java +++ b/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeignFallback.java @@ -64,6 +64,11 @@ public class MessageFeignFallback implements MessageFeign { return null; } + @Override + public ResultBean pushMessageCC(MessageFlowableQueryForCC query) { + return null; + } + @Override public ResultBean sendMessage(AppScmMessageFlowableQuery query) { return null; diff --git a/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFlowableQueryForCC.java b/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFlowableQueryForCC.java new file mode 100644 index 0000000..12527c3 --- /dev/null +++ b/message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFlowableQueryForCC.java @@ -0,0 +1,34 @@ +package com.yxt.messagecenter.api.message; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/8/25 15:12 + * @Description + */ +@Data +public class MessageFlowableQueryForCC implements Query { + private static final long serialVersionUID = 3618558867479892211L; + @ApiModelProperty("业务sid") + private String businessSid; + @ApiModelProperty("模块名称") + private String moduleName; + @ApiModelProperty("消息内容") + private String msgContent; + @ApiModelProperty("消息标题") + private String msgTitle; + @ApiModelProperty("流程相关参数") + private MessageFlowVo ufVo; + @ApiModelProperty("app所需参数") + private Map appMap; + @ApiModelProperty("申请人") + private String applicationName; + @ApiModelProperty("抄送的用户sid") + private String userSids; + +} diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageRest.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageRest.java index 30b5510..8547e55 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageRest.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageRest.java @@ -121,6 +121,11 @@ public class MessageRest implements MessageFeign { return messageService.pushMessage(query); } + @Override + public ResultBean pushMessageCC(MessageFlowableQueryForCC query) { + return messageService.pushMessageForCC(query); + } + @Override public ResultBean sendMessage(AppScmMessageFlowableQuery query) { return messageService.sendMessage(query); diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java index 74a6252..add1072 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java @@ -354,6 +354,57 @@ public class MessageService extends MybatisBaseService { return rb.success().setMsg(msgSid); } + + public ResultBean pushMessageForCC(MessageFlowableQueryForCC query) { + ResultBean rb = ResultBean.fireFail(); + MessageFlowVo ufVo = query.getUfVo(); + String procId = ufVo.getProcInsId(); + String procDefId = ufVo.getProcDefId(); + Map appMap = query.getAppMap(); + String moduleName = query.getModuleName(); + String msgContent = query.getMsgContent(); + String msgTitle = query.getMsgTitle(); + String applicationName = query.getApplicationName(); + String nextNodeUserSids = query.getUserSids(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + //根据用户的sid查询用户的id + ResultBean stringList1 = sysUserFeign.selectIdBySid(receiveSidList); + List reveiveIdList = Arrays.asList(stringList1.getData().split(",")); + MessageFlowableDto messageFlowableDto = new MessageFlowableDto(); + MessageJsonDto messageJsonDto = new MessageJsonDto(); + BeanUtil.copyProperties(ufVo, messageJsonDto); + //查询流程审批的页面操作地址组装json的参数 + //根据taskDef和移动端标识 + ResultBean selectUrlByKey = sysProUrlFeign.selectUrlByKey(procDefId, ufVo.getTaskDefKey(), "1", "2"); + SysProUrlVo sysProUrlVo = selectUrlByKey.getData(); + messageFlowableDto.setBusinessSid(query.getBusinessSid()); + messageFlowableDto.setApp_type("2"); + if (sysProUrlVo.getUrl().contains("#")) { + messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0)); + List codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList()); + int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray(); + ; + messageJsonDto.setButtons(ints); + } else { + messageFlowableDto.setModuleAction(sysProUrlVo.getUrl()); + } + messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0)); + messageJsonDto.setTaskName(ufVo.getNodeState()); + messageJsonDto.setProcInsId(ufVo.getProcInsId()); + messageJsonDto.setAppMap(appMap); + messageFlowableDto.setJson(messageJsonDto); + messageFlowableDto.setList(receiveSidList); + messageFlowableDto.setReceiveIdList(reveiveIdList); + messageFlowableDto.setModuleName(moduleName); + messageFlowableDto.setMsgContent(msgContent); + messageFlowableDto.setMsgTitle(msgTitle); + messageFlowableDto.setCreateName(applicationName); + messageFlowableDto.setTaskId(ufVo.getTaskId()); + ResultBean stringResultBean = getMessage(messageFlowableDto); + String msgSid = stringResultBean.getData(); + return rb.success().setMsg(msgSid); + } + public static void main(String[] arg0) { YamlPropertiesFactoryBean factoryBean = new YamlPropertiesFactoryBean(); factoryBean.setResources(new ClassPathResource("application.yml"));