厂家采购分享
This commit is contained in:
@@ -88,4 +88,8 @@ public interface MessageFeign {
|
|||||||
@PostMapping("/sendOrderMessage")
|
@PostMapping("/sendOrderMessage")
|
||||||
ResultBean sendOrderMessage(@RequestBody OrderMesageDto dto);
|
ResultBean sendOrderMessage(@RequestBody OrderMesageDto dto);
|
||||||
|
|
||||||
|
@ApiOperation("流程审批推送消息 分享")
|
||||||
|
@PostMapping("/pushMessageShare")
|
||||||
|
ResultBean<String> pushMessageShare(@RequestBody MessageFlowableQueryForCC query);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -88,4 +88,9 @@ public class MessageFeignFallback implements MessageFeign {
|
|||||||
public ResultBean sendOrderMessage(OrderMesageDto dto) {
|
public ResultBean sendOrderMessage(OrderMesageDto dto) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultBean<String> pushMessageShare(MessageFlowableQueryForCC query) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -30,5 +30,7 @@ public class MessageFlowableQueryForCC implements Query {
|
|||||||
private String applicationName;
|
private String applicationName;
|
||||||
@ApiModelProperty("抄送的用户sid")
|
@ApiModelProperty("抄送的用户sid")
|
||||||
private String userSids;
|
private String userSids;
|
||||||
|
@ApiModelProperty("当前所登陆账号的sid")
|
||||||
|
private String userSid;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,4 +145,9 @@ public class MessageRest implements MessageFeign {
|
|||||||
public ResultBean sendOrderMessage(OrderMesageDto dto) {
|
public ResultBean sendOrderMessage(OrderMesageDto dto) {
|
||||||
return messageService.sendOrderMessage(dto);
|
return messageService.sendOrderMessage(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultBean<String> pushMessageShare(MessageFlowableQueryForCC query) {
|
||||||
|
return messageService.pushMessageShare(query);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -215,6 +215,7 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程审批推送消息
|
* 流程审批推送消息
|
||||||
|
*
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -305,6 +306,7 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 抄送消息
|
* 抄送消息
|
||||||
|
*
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -400,6 +402,7 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程审批组装消息信息
|
* 流程审批组装消息信息
|
||||||
|
*
|
||||||
* @param query
|
* @param query
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -456,6 +459,7 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 抄送组装消息信息
|
* 抄送组装消息信息
|
||||||
|
*
|
||||||
* @param query
|
* @param query
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -692,6 +696,7 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 移动端框架发布推送消息
|
* 移动端框架发布推送消息
|
||||||
|
*
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -800,6 +805,7 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 简易订单解锁提醒
|
* 简易订单解锁提醒
|
||||||
|
*
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -881,4 +887,162 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
}
|
}
|
||||||
return rb.success();
|
return rb.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流程审批分享
|
||||||
|
* @param query
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public ResultBean<String> pushMessageShare(MessageFlowableQueryForCC query) {
|
||||||
|
ResultBean<String> rb = ResultBean.fireFail();
|
||||||
|
MessageFlowVo ufVo = query.getUfVo();
|
||||||
|
String procDefId = ufVo.getProcDefId();
|
||||||
|
Map<String, Object> appMap = query.getAppMap();
|
||||||
|
String moduleName = query.getModuleName();
|
||||||
|
String msgContent = query.getMsgContent();
|
||||||
|
String msgTitle = query.getMsgTitle();
|
||||||
|
String applicationName = query.getApplicationName();
|
||||||
|
ResultBean<SysUserInfoVo> sysUserInfoVoResultBean = sysUserFeign.selectUserInfoByUserSid(query.getUserSid());
|
||||||
|
if(sysUserInfoVoResultBean.getData() != null){
|
||||||
|
applicationName = sysUserInfoVoResultBean.getData().getStaffName();
|
||||||
|
}
|
||||||
|
|
||||||
|
String nextNodeUserSids = query.getUserSids();
|
||||||
|
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
|
||||||
|
//根据用户的sid查询用户的id
|
||||||
|
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(receiveSidList);
|
||||||
|
List<String> reveiveIdList = Arrays.asList(stringList1.getData().split(","));
|
||||||
|
MessageFlowableDto messageFlowableDto = new MessageFlowableDto();
|
||||||
|
MessageJsonDto messageJsonDto = new MessageJsonDto();
|
||||||
|
BeanUtil.copyProperties(ufVo, messageJsonDto);
|
||||||
|
//查询流程审批的页面操作地址组装json的参数
|
||||||
|
//根据taskDef和移动端标识
|
||||||
|
/**-----------------移动端相关参数开始----------------*/
|
||||||
|
ResultBean<SysProUrlVo> 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));
|
||||||
|
} else {
|
||||||
|
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl());
|
||||||
|
}
|
||||||
|
/**-----------------移动端相关参数结束----------------*/
|
||||||
|
//PC取前端页面
|
||||||
|
ResultBean<SysProUrlVo> selectUrlByPCKey = sysProUrlFeign.selectUrlByKey(procDefId, ufVo.getTaskDefKey(), "2", "1");
|
||||||
|
SysProUrlVo sysProUrlPCVo = selectUrlByPCKey.getData();
|
||||||
|
messageFlowableDto.setModuleAction2(sysProUrlPCVo.getUrl());
|
||||||
|
messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0));
|
||||||
|
messageJsonDto.setTaskName(ufVo.getNodeState());
|
||||||
|
messageJsonDto.setProcInsId(ufVo.getProcInsId());
|
||||||
|
messageJsonDto.setAppMap(appMap);
|
||||||
|
messageJsonDto.setDeployId(procDefId);
|
||||||
|
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<String> stringResultBean = getMessageShare(messageFlowableDto);
|
||||||
|
String msgSid = stringResultBean.getData();
|
||||||
|
return rb.success().setMsg(msgSid);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流程审批分享
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public ResultBean<String> getMessageShare(MessageFlowableDto dto) {
|
||||||
|
ResultBean<String> rb = ResultBean.fireFail();
|
||||||
|
String msgTitle = dto.getMsgTitle();
|
||||||
|
String msgContent = dto.getMsgContent();
|
||||||
|
List<String> list = dto.getList();
|
||||||
|
List<String> receiveIdList = dto.getReceiveIdList();
|
||||||
|
List<String> orgPathList = dto.getOrgPathList();
|
||||||
|
// 1、保存消息体
|
||||||
|
AppMessageDto messageDto = new AppMessageDto();
|
||||||
|
List<MessageTypeVo> messageBean = messageTypeService.selectMsgTypeList("0003");
|
||||||
|
messageBean.removeAll(Collections.singleton(null));
|
||||||
|
if (!messageBean.isEmpty()) {
|
||||||
|
for (MessageTypeVo message : messageBean) {
|
||||||
|
if (message.getMsgType().equals("抄送")) {
|
||||||
|
messageDto.setMsgTypeSid(message.getMsgTypeSid());
|
||||||
|
messageDto.setMsgType(message.getMsgType());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(dto.getTaskId())) {
|
||||||
|
messageDto.setTaskId(dto.getTaskId());
|
||||||
|
}
|
||||||
|
messageDto.setMsgTitle(msgTitle);
|
||||||
|
messageDto.setMsgContent(msgContent);
|
||||||
|
messageDto.setMsgSource("分享");
|
||||||
|
messageDto.setApp_type(dto.getApp_type());
|
||||||
|
messageDto.setModuleSid(dto.getModuleSid());
|
||||||
|
messageDto.setBusinessSid(dto.getBusinessSid());
|
||||||
|
//将json与appMap中的参数融合
|
||||||
|
Map<String, Object> jsonMap = BeanUtil.beanToMap(dto.getJson());
|
||||||
|
jsonMap.putAll(dto.getJson().getAppMap());
|
||||||
|
messageDto.setArgs_json(JSONObject.toJSONString(jsonMap));
|
||||||
|
messageDto.setMsgTargetUri(dto.getModuleAction());
|
||||||
|
messageDto.setModuleAction(dto.getModuleAction2());
|
||||||
|
messageDto.setSenderName(dto.getCreateName());
|
||||||
|
String msgSid = saveOrUpdateAppMessage(messageDto).getData();
|
||||||
|
String msgTypeSid = messageDto.getMsgTypeSid();
|
||||||
|
// 2、保存至消息列表
|
||||||
|
// 使用多线程保存
|
||||||
|
List<Future<?>> futures = new ArrayList<Future<?>>();
|
||||||
|
ExecutorService executor = Executors.newFixedThreadPool(4);
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
int finalI = i;
|
||||||
|
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.setMsgSid(msgSid);
|
||||||
|
messageList.setRDelStatus(0);
|
||||||
|
messageList.setSDelStatus(0);
|
||||||
|
messageList.setReceiverSid(list.get(finalI));
|
||||||
|
//根据接收人sid查询接收人名称
|
||||||
|
ResultBean<SysUserInfoVo> sysUserInfoVoResultBean = sysUserFeign.selectUserInfoByUserSid(list.get(finalI));
|
||||||
|
if (sysUserInfoVoResultBean.getData() != null) {
|
||||||
|
messageList.setReceiverName(sysUserInfoVoResultBean.getData().getStaffName());
|
||||||
|
}
|
||||||
|
if (orgPathList.size() > 0) {
|
||||||
|
messageList.setReceiverDeptSid(orgPathList.get(finalI));
|
||||||
|
}
|
||||||
|
messageListService.saveOrUpdateDto(messageList);
|
||||||
|
System.out.println("run end-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
futures.add(f);
|
||||||
|
}
|
||||||
|
executor.shutdown();
|
||||||
|
//标题、内容、消息类别key、消息类别名称、
|
||||||
|
YamlPropertiesFactoryBean factoryBean = new YamlPropertiesFactoryBean();
|
||||||
|
factoryBean.setResources(new ClassPathResource("application.yml"));
|
||||||
|
Properties properties = factoryBean.getObject();
|
||||||
|
if ("pro".equals(properties.get("spring.profiles.active"))) {
|
||||||
|
for (int i = 0; i < receiveIdList.size(); i++) {
|
||||||
|
//正式
|
||||||
|
JPushServer.sendPushAliass(msgTitle, msgContent, msgTypeSid, "分享", receiveIdList.get(i));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < receiveIdList.size(); i++) {
|
||||||
|
//测试或者本地
|
||||||
|
JPushServer.sendPushAliass(msgTitle, msgContent, msgTypeSid, "分享", "T" + receiveIdList.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rb.success().setData(msgSid);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user