销售订单移动端完善+排产申请添加消息
This commit is contained in:
@@ -110,4 +110,9 @@ public class MessageRest implements MessageFeign {
|
||||
public ResultBean<String> saveOrUpdateAppMessage(AppMessageDto dto) {
|
||||
return messageService.saveOrUpdateAppMessage(dto);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultBean<String> getMessage(MessageFlowableDto dto) {
|
||||
return messageService.getMessage(dto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,28 @@
|
||||
package com.yxt.messagecenter.biz.message;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.yxt.common.base.service.MybatisBaseService;
|
||||
import com.yxt.common.base.utils.JPushServer;
|
||||
import com.yxt.common.base.utils.PagerUtil;
|
||||
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.MessageListDto;
|
||||
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
|
||||
import com.yxt.messagecenter.biz.messagelist.MessageListService;
|
||||
import com.yxt.messagecenter.biz.messagetype.MessageTypeService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
/**
|
||||
* Project: message-center(消息中心) <br/>
|
||||
@@ -30,141 +39,216 @@ import java.util.UUID;
|
||||
*/
|
||||
@Service
|
||||
public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
||||
public PagerVo<Message> listPage(PagerQuery<MessageQuery> pq) {
|
||||
MessageQuery query = pq.getParams();
|
||||
QueryWrapper<Message> qw = createQueryWrapper(query);
|
||||
IPage<Message> page = PagerUtil.queryToPage(pq);
|
||||
IPage<Message> pagging = baseMapper.selectPage(page, qw);
|
||||
PagerVo<Message> p = PagerUtil.pageToVo(pagging, null);
|
||||
return p;
|
||||
}
|
||||
public List<Message> listAll(MessageQuery query) {
|
||||
QueryWrapper<Message> qw = createQueryWrapper(query);
|
||||
return baseMapper.selectList(qw);
|
||||
}
|
||||
private QueryWrapper<Message> createQueryWrapper(MessageQuery query) {
|
||||
// todo: 这里根据具体业务调整查询条件
|
||||
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
||||
QueryWrapper<Message> qw = new QueryWrapper<>();
|
||||
|
||||
if (StringUtils.isNotBlank(query.getMsgType())) {
|
||||
qw.eq("msgType", query.getMsgType());
|
||||
}
|
||||
@Autowired
|
||||
private MessageTypeService messageTypeService;
|
||||
@Autowired
|
||||
private MessageListService messageListService;
|
||||
|
||||
if (StringUtils.isNotBlank(query.getMsgTitle())) {
|
||||
qw.eq("msgTitle", query.getMsgTitle());
|
||||
}
|
||||
public PagerVo<Message> listPage(PagerQuery<MessageQuery> pq) {
|
||||
MessageQuery query = pq.getParams();
|
||||
QueryWrapper<Message> qw = createQueryWrapper(query);
|
||||
IPage<Message> page = PagerUtil.queryToPage(pq);
|
||||
IPage<Message> pagging = baseMapper.selectPage(page, qw);
|
||||
PagerVo<Message> p = PagerUtil.pageToVo(pagging, null);
|
||||
return p;
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getMsgContent())) {
|
||||
qw.eq("msgContent", query.getMsgContent());
|
||||
}
|
||||
public List<Message> listAll(MessageQuery query) {
|
||||
QueryWrapper<Message> qw = createQueryWrapper(query);
|
||||
return baseMapper.selectList(qw);
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getMsgSource())) {
|
||||
qw.eq("msgSource", query.getMsgSource());
|
||||
}
|
||||
private QueryWrapper<Message> createQueryWrapper(MessageQuery query) {
|
||||
// todo: 这里根据具体业务调整查询条件
|
||||
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
||||
QueryWrapper<Message> qw = new QueryWrapper<>();
|
||||
|
||||
if (StringUtils.isNotBlank(query.getSenderSid())) {
|
||||
qw.eq("senderSid", query.getSenderSid());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getMsgType())) {
|
||||
qw.eq("msgType", query.getMsgType());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getSenderName())) {
|
||||
qw.eq("senderName", query.getSenderName());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getMsgTitle())) {
|
||||
qw.eq("msgTitle", query.getMsgTitle());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getSenderDeptSid())) {
|
||||
qw.eq("senderDeptSid", query.getSenderDeptSid());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getMsgContent())) {
|
||||
qw.eq("msgContent", query.getMsgContent());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getSenderDeptName())) {
|
||||
qw.eq("senderDeptName", query.getSenderDeptName());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getMsgSource())) {
|
||||
qw.eq("msgSource", query.getMsgSource());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getBusinessSid())) {
|
||||
qw.eq("businessSid", query.getBusinessSid());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getSenderSid())) {
|
||||
qw.eq("senderSid", query.getSenderSid());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getModuleSid())) {
|
||||
qw.eq("moduleSid", query.getModuleSid());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getSenderName())) {
|
||||
qw.eq("senderName", query.getSenderName());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getModuleAction())) {
|
||||
qw.eq("moduleAction", query.getModuleAction());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getSenderDeptSid())) {
|
||||
qw.eq("senderDeptSid", query.getSenderDeptSid());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getArgs_json())) {
|
||||
qw.eq("args_json", query.getArgs_json());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getSenderDeptName())) {
|
||||
qw.eq("senderDeptName", query.getSenderDeptName());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getH5_url())) {
|
||||
qw.eq("h5_url", query.getH5_url());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getBusinessSid())) {
|
||||
qw.eq("businessSid", query.getBusinessSid());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getXcx_url())) {
|
||||
qw.eq("xcx_url", query.getXcx_url());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getModuleSid())) {
|
||||
qw.eq("moduleSid", query.getModuleSid());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getMsgTargetUri())) {
|
||||
qw.eq("msgTargetUri", query.getMsgTargetUri());
|
||||
}
|
||||
return qw;
|
||||
}
|
||||
|
||||
public PagerVo<MessageVo> listPageVo(PagerQuery<MessageQuery> pq) {
|
||||
MessageQuery query = pq.getParams();
|
||||
QueryWrapper<Message> qw = createQueryWrapper(query);
|
||||
IPage<Message> page = PagerUtil.queryToPage(pq);
|
||||
IPage<MessageVo> pagging = baseMapper.selectPageVo(page, qw);
|
||||
PagerVo<MessageVo> p = PagerUtil.pageToVo(pagging, null);
|
||||
return p;
|
||||
}
|
||||
|
||||
public List<MessageVo> listAllVo(MessageQuery query) {
|
||||
QueryWrapper<Message> qw = createQueryWrapper(query);
|
||||
return baseMapper.selectListAllVo(qw);
|
||||
}
|
||||
|
||||
public List<MessageVo> listVo() {
|
||||
return baseMapper.selectListVo();
|
||||
}
|
||||
|
||||
public void saveOrUpdateDto(MessageDto dto){
|
||||
Message entity = new Message();
|
||||
dto.fillEntity(entity);
|
||||
this.saveOrUpdate(entity);
|
||||
}
|
||||
|
||||
public MessageVo fetchByIdVo(String id){
|
||||
Message entity = this.fetchById(id);
|
||||
MessageVo vo = new MessageVo();
|
||||
BeanUtil.copyProperties(entity, vo);
|
||||
return vo;
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getModuleAction())) {
|
||||
qw.eq("moduleAction", query.getModuleAction());
|
||||
}
|
||||
|
||||
/**
|
||||
* 手机端保存/修改消息体
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public ResultBean<String> saveOrUpdateAppMessage(AppMessageDto dto) {
|
||||
if (StringUtils.isBlank(dto.getSid())) { // 新增
|
||||
Message message = new Message();
|
||||
dto.fillEntity(message);
|
||||
message.setSid(UUID.randomUUID().toString());
|
||||
Boolean flag = save(message);
|
||||
if (flag) {
|
||||
return new ResultBean().success().setMsg("保存成功").setData(message.getSid());
|
||||
} else {
|
||||
return new ResultBean().fail().setMsg("保存失败");
|
||||
}
|
||||
} else { // 修改
|
||||
Message message = fetchBySid(dto.getSid());
|
||||
BeanUtil.copyProperties(dto, message);
|
||||
Boolean flag = updateById(message);
|
||||
if (flag) {
|
||||
return new ResultBean().success().setMsg("修改成功").setData(message.getSid());
|
||||
} else {
|
||||
return new ResultBean().fail().setMsg("修改失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getArgs_json())) {
|
||||
qw.eq("args_json", query.getArgs_json());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getH5_url())) {
|
||||
qw.eq("h5_url", query.getH5_url());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getXcx_url())) {
|
||||
qw.eq("xcx_url", query.getXcx_url());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(query.getMsgTargetUri())) {
|
||||
qw.eq("msgTargetUri", query.getMsgTargetUri());
|
||||
}
|
||||
return qw;
|
||||
}
|
||||
|
||||
public PagerVo<MessageVo> listPageVo(PagerQuery<MessageQuery> pq) {
|
||||
MessageQuery query = pq.getParams();
|
||||
QueryWrapper<Message> qw = createQueryWrapper(query);
|
||||
IPage<Message> page = PagerUtil.queryToPage(pq);
|
||||
IPage<MessageVo> pagging = baseMapper.selectPageVo(page, qw);
|
||||
PagerVo<MessageVo> p = PagerUtil.pageToVo(pagging, null);
|
||||
return p;
|
||||
}
|
||||
|
||||
public List<MessageVo> listAllVo(MessageQuery query) {
|
||||
QueryWrapper<Message> qw = createQueryWrapper(query);
|
||||
return baseMapper.selectListAllVo(qw);
|
||||
}
|
||||
|
||||
public List<MessageVo> listVo() {
|
||||
return baseMapper.selectListVo();
|
||||
}
|
||||
|
||||
public void saveOrUpdateDto(MessageDto dto) {
|
||||
Message entity = new Message();
|
||||
dto.fillEntity(entity);
|
||||
this.saveOrUpdate(entity);
|
||||
}
|
||||
|
||||
public MessageVo fetchByIdVo(String id) {
|
||||
Message entity = this.fetchById(id);
|
||||
MessageVo vo = new MessageVo();
|
||||
BeanUtil.copyProperties(entity, vo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 手机端保存/修改消息体
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public ResultBean<String> saveOrUpdateAppMessage(AppMessageDto dto) {
|
||||
if (StringUtils.isBlank(dto.getSid())) { // 新增
|
||||
Message message = new Message();
|
||||
dto.fillEntity(message);
|
||||
message.setSid(UUID.randomUUID().toString());
|
||||
Boolean flag = save(message);
|
||||
if (flag) {
|
||||
return new ResultBean().success().setMsg("保存成功").setData(message.getSid());
|
||||
} else {
|
||||
return new ResultBean().fail().setMsg("保存失败");
|
||||
}
|
||||
} else { // 修改
|
||||
Message message = fetchBySid(dto.getSid());
|
||||
BeanUtil.copyProperties(dto, message);
|
||||
Boolean flag = updateById(message);
|
||||
if (flag) {
|
||||
return new ResultBean().success().setMsg("修改成功").setData(message.getSid());
|
||||
} else {
|
||||
return new ResultBean().fail().setMsg("修改失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ResultBean<String> getMessage(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();
|
||||
// 1、保存消息体
|
||||
AppMessageDto messageDto = new AppMessageDto();
|
||||
List<MessageTypeVo> messageBean = messageTypeService.selectMsgTypeList("0002");
|
||||
messageBean.removeAll(Collections.singleton(null));
|
||||
if (!messageBean.isEmpty()) {
|
||||
for (MessageTypeVo message : messageBean) {
|
||||
if (message.getMsgType().equals("审批中心")) {
|
||||
messageDto.setMsgTypeSid(message.getMsgTypeSid());
|
||||
messageDto.setMsgType(message.getMsgType());
|
||||
}
|
||||
}
|
||||
}
|
||||
messageDto.setMsgTitle(msgTitle);
|
||||
messageDto.setMsgContent(msgContent);
|
||||
messageDto.setMsgSource("审批中心");
|
||||
messageDto.setApp_type(dto.getApp_type());
|
||||
messageDto.setModuleSid(dto.getModuleSid());
|
||||
//将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());
|
||||
String msgSid = saveOrUpdateAppMessage(messageDto).getData();
|
||||
String msgTypeSid = messageDto.getMsgTypeSid();
|
||||
// 2、保存至消息列表
|
||||
// 使用多线程保存
|
||||
List<Future<?>> futures = new ArrayList<Future<?>>();
|
||||
ExecutorService executor = Executors.newFixedThreadPool(4);
|
||||
for (String receverSid : 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.setMsgSid(msgSid);
|
||||
messageList.setRDelStatus(0);
|
||||
messageList.setSDelStatus(0);
|
||||
messageList.setReceiverSid(receverSid);
|
||||
messageListService.saveOrUpdateDto(messageList);
|
||||
System.out.println("run end-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
futures.add(f);
|
||||
}
|
||||
executor.shutdown();
|
||||
//标题、内容、消息类别key、消息类别名称、
|
||||
for (int i = 0; i < receiveIdList.size(); i++) {
|
||||
/**
|
||||
* msgTitle:排产申请
|
||||
* content:xxx的排产申请
|
||||
*/
|
||||
JPushServer.sendPushAlias(msgTitle, dto.getCreateName() + "的" + dto.getModuleName(), msgTypeSid, "审批中心", receiveIdList.get(i));
|
||||
}
|
||||
return rb.success().setData(msgSid);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user