From 280283137b92a83d89d77d9abeae7d85ded0f971 Mon Sep 17 00:00:00 2001 From: hp <2969694837@qq.com> Date: Fri, 21 Oct 2022 15:30:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E5=BA=93=E5=B7=A1=E6=A3=80=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=B6=88=E6=81=AF=E4=BD=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../message/AppScmMessageFlowableQuery.java | 46 ++++++++++++ .../api/message/MessageFeign.java | 5 ++ .../api/message/MessageFeignFallback.java | 5 ++ .../biz/message/MessageRest.java | 5 ++ .../biz/message/MessageService.java | 70 +++++++++++++++++++ 5 files changed, 131 insertions(+) create mode 100644 message-center-api/src/main/java/com/yxt/messagecenter/api/message/AppScmMessageFlowableQuery.java diff --git a/message-center-api/src/main/java/com/yxt/messagecenter/api/message/AppScmMessageFlowableQuery.java b/message-center-api/src/main/java/com/yxt/messagecenter/api/message/AppScmMessageFlowableQuery.java new file mode 100644 index 0000000..d6cea37 --- /dev/null +++ b/message-center-api/src/main/java/com/yxt/messagecenter/api/message/AppScmMessageFlowableQuery.java @@ -0,0 +1,46 @@ +package com.yxt.messagecenter.api.message; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class AppScmMessageFlowableQuery implements Query { + + private static final long serialVersionUID = -264602388959108722L; + @ApiModelProperty("盘库sid") + private String mainSid; + + @ApiModelProperty("接收人sid") + private List list; + + @ApiModelProperty("接收人id") + private List receiveIdList; + + @ApiModelProperty("消息标题") + private String msgTitle; + + //+ "提交的月度盘库报告,请查阅" + @ApiModelProperty("消息内容") + private String msgContent; + + @ApiModelProperty("来源(资源名称)") + private String msgSource; + + //MsgTargetUriEnum.GYLPKBG.getUri() + @ApiModelProperty("推送的消息打开的action(APP),推送参数对应class_name") + private String msgTargetUri; + + //"2" + @ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") + private String app_type; + + //"98ff0724-5df4-4fc7-ab6d-3996e7706acd" + @ApiModelProperty("插件Sid") + private String moduleSid; + + @ApiModelProperty("名称") + private String name; +} 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 68d4e5a..8217974 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 @@ -67,4 +67,9 @@ public interface MessageFeign { @ApiOperation("流程审批推送消息") @PostMapping("/pushMessage") ResultBean pushMessage(@RequestBody MessageFlowableQuery query); + + @ApiOperation("供应链流程审批推送消息") + @PostMapping("/sendMessage") + ResultBean sendMessage(@RequestBody AppScmMessageFlowableQuery query); + } \ No newline at end of file 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 d845a84..7ea3e9e 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 @@ -63,4 +63,9 @@ public class MessageFeignFallback implements MessageFeign { public ResultBean pushMessage(MessageFlowableQuery query) { return null; } + + @Override + public ResultBean sendMessage(AppScmMessageFlowableQuery query) { + return null; + } } \ No newline at end of file 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 e9aed19..87b3486 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 @@ -120,4 +120,9 @@ public class MessageRest implements MessageFeign { public ResultBean pushMessage(MessageFlowableQuery query) { return messageService.pushMessage(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 5c1441d..ef30818 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 @@ -17,6 +17,7 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.messagecenter.api.message.*; +import com.yxt.messagecenter.api.messagelist.MessageList; import com.yxt.messagecenter.api.messagelist.MessageListDto; import com.yxt.messagecenter.api.messagetype.MessageTypeVo; import com.yxt.messagecenter.biz.messagelist.MessageListService; @@ -49,6 +50,10 @@ import java.util.stream.Collectors; @Service public class MessageService extends MybatisBaseService { + /** + * 消息类型:0002手机端 + */ + public static final String IDENTIFIER = "0002"; @Autowired private MessageTypeService messageTypeService; @Autowired @@ -353,4 +358,69 @@ public class MessageService extends MybatisBaseService { // properties.keySet().forEach(key -> System.out.println(key + "=====" + properties.get(key))); } + + public ResultBean sendMessage(AppScmMessageFlowableQuery query) { + ResultBean rb = ResultBean.fireFail(); + // 1、保存消息体 + AppMessageDto messageDto = new AppMessageDto(); + List typeVoList = messageTypeService.selectMsgTypeList(IDENTIFIER); + if (typeVoList != null) { + for (MessageTypeVo message : typeVoList) { + if (message.getMsgType().equals("供应链")) { + messageDto.setMsgTypeSid(message.getMsgTypeSid()); + messageDto.setMsgType(message.getMsgType()); + } + } + } + messageDto.setMsgTitle(query.getMsgTitle()); + messageDto.setMsgContent(query.getMsgContent()); + messageDto.setMsgSource(query.getMsgSource()); + messageDto.setMsgTargetUri(query.getMsgTargetUri()); + messageDto.setApp_type(query.getApp_type()); + messageDto.setModuleSid(query.getModuleSid()); + JSONObject json = new JSONObject(); + json.put("sid", query.getMainSid()); + messageDto.setArgs_json(json.toJSONString()); + String msgSid = (String) saveOrUpdateAppMessage(messageDto).getData(); + String msgTypeSid = messageDto.getMsgTypeSid(); + // 2、保存至消息列表 + List list = query.getList(); + // 使用多线程保存 + List> futures = new ArrayList>(); + ExecutorService executor = Executors.newFixedThreadPool(4); + for (String sid : list) { + Future f = executor.submit(new Runnable() { + @Override + public void run() { + try { + System.out.println("run start-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName()); +// MessageListDto messageList = new MessageListDto(); + MessageList messageList = new MessageList(); + messageList.setMsgSid(msgSid); + messageList.setRDelStatus(0); + messageList.setSDelStatus(0); + messageList.setReceiverSid(sid); + messageListService.save(messageList); +// Thread.sleep(5 * 1000); + System.out.println("run end-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + futures.add(f); + } + executor.shutdown(); + for (int i = 0; i < query.getReceiveIdList().size(); i++) { + /** + * msgTitle:排产申请 + * content:xxx的排产申请 + */ + JPushServer.sendPushAlias(messageDto.getMsgTitle(), messageDto.getMsgContent(), msgTypeSid, query.getName(), query.getReceiveIdList().get(i)); + } // 3、推送 +// JPushServer.sendPushAll(messageDto.getMsgTitle(), messageDto.getMsgContent(), msgTypeSid, messageDto.getMsgType()); +// JPushServer.sendPushAlias(messageDto.getMsgTitle(), messageDto.getMsgContent(), msgSid, messageDto.getMsgType(), "23","26","66"); // 别名 + System.out.println("process end"); + return rb.success().setMsg(msgSid); + } } \ No newline at end of file