移动端分公司调车
This commit is contained in:
@@ -63,4 +63,8 @@ public interface MessageFeign {
|
|||||||
@ApiOperation("移动端流程审批推送消息")
|
@ApiOperation("移动端流程审批推送消息")
|
||||||
@PostMapping("/getMessage")
|
@PostMapping("/getMessage")
|
||||||
ResultBean<String> getMessage(@RequestBody MessageFlowableDto dto);
|
ResultBean<String> getMessage(@RequestBody MessageFlowableDto dto);
|
||||||
|
|
||||||
|
@ApiOperation("流程审批推送消息")
|
||||||
|
@PostMapping("/pushMessage")
|
||||||
|
ResultBean<String> pushMessage(@RequestBody MessageFlowableQuery query);
|
||||||
}
|
}
|
||||||
@@ -58,4 +58,9 @@ public class MessageFeignFallback implements MessageFeign {
|
|||||||
public ResultBean<String> getMessage(MessageFlowableDto dto) {
|
public ResultBean<String> getMessage(MessageFlowableDto dto) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultBean<String> pushMessage(MessageFlowableQuery query) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.yxt.messagecenter.api.message;
|
||||||
|
|
||||||
|
import com.yxt.common.core.vo.Vo;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author dimengzhe
|
||||||
|
* @Date 2022/8/25 15:58
|
||||||
|
* @Description
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class MessageFlowVo implements Vo {
|
||||||
|
|
||||||
|
private String sid;
|
||||||
|
private String procDefId;
|
||||||
|
private String nodeState;
|
||||||
|
private String procInsId;
|
||||||
|
private String taskDefKey;
|
||||||
|
private String taskId;
|
||||||
|
private String nextNodeUserSids;
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
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 MessageFlowableQuery 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<String,Object> appMap;
|
||||||
|
@ApiModelProperty("申请人")
|
||||||
|
private String applicationName;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
|
|||||||
"com.yxt.messagecenter"
|
"com.yxt.messagecenter"
|
||||||
})
|
})
|
||||||
|
|
||||||
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal", "com.yxt.anrui.crm"})
|
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal", "com.yxt.anrui.crm","com.yxt.anrui.flowable"})
|
||||||
public class MessageCenterApplication
|
public class MessageCenterApplication
|
||||||
{
|
{
|
||||||
public static void main( String[] args )
|
public static void main( String[] args )
|
||||||
|
|||||||
@@ -115,4 +115,9 @@ public class MessageRest implements MessageFeign {
|
|||||||
public ResultBean<String> getMessage(MessageFlowableDto dto) {
|
public ResultBean<String> getMessage(MessageFlowableDto dto) {
|
||||||
return messageService.getMessage(dto);
|
return messageService.getMessage(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultBean<String> pushMessage(MessageFlowableQuery query) {
|
||||||
|
return messageService.pushMessage(query);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,12 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
|
||||||
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
|
||||||
|
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
|
||||||
|
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
|
||||||
|
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
|
||||||
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
|
||||||
import com.yxt.common.base.service.MybatisBaseService;
|
import com.yxt.common.base.service.MybatisBaseService;
|
||||||
import com.yxt.common.base.utils.JPushServer;
|
import com.yxt.common.base.utils.JPushServer;
|
||||||
import com.yxt.common.base.utils.PagerUtil;
|
import com.yxt.common.base.utils.PagerUtil;
|
||||||
@@ -23,6 +29,7 @@ import java.util.*;
|
|||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Project: message-center(消息中心) <br/>
|
* Project: message-center(消息中心) <br/>
|
||||||
@@ -44,6 +51,14 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
private MessageTypeService messageTypeService;
|
private MessageTypeService messageTypeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MessageListService messageListService;
|
private MessageListService messageListService;
|
||||||
|
@Autowired
|
||||||
|
private SysUserFeign sysUserFeign;
|
||||||
|
@Autowired
|
||||||
|
private FlowableFeign flowableFeign;
|
||||||
|
@Autowired
|
||||||
|
private FlowTaskFeign flowTaskFeign;
|
||||||
|
@Autowired
|
||||||
|
private SysProUrlFeign sysProUrlFeign;
|
||||||
|
|
||||||
public PagerVo<Message> listPage(PagerQuery<MessageQuery> pq) {
|
public PagerVo<Message> listPage(PagerQuery<MessageQuery> pq) {
|
||||||
MessageQuery query = pq.getParams();
|
MessageQuery query = pq.getParams();
|
||||||
@@ -169,7 +184,7 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
dto.fillEntity(message);
|
dto.fillEntity(message);
|
||||||
if (StringUtils.isNotBlank(dto.getTaskId())) {
|
if (StringUtils.isNotBlank(dto.getTaskId())) {
|
||||||
message.setSid(dto.getTaskId());
|
message.setSid(dto.getTaskId());
|
||||||
}else{
|
} else {
|
||||||
message.setSid(UUID.randomUUID().toString());
|
message.setSid(UUID.randomUUID().toString());
|
||||||
}
|
}
|
||||||
Boolean flag = save(message);
|
Boolean flag = save(message);
|
||||||
@@ -254,8 +269,59 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> {
|
|||||||
* msgTitle:排产申请
|
* msgTitle:排产申请
|
||||||
* content:xxx的排产申请
|
* content:xxx的排产申请
|
||||||
*/
|
*/
|
||||||
JPushServer.sendPushAlias(msgTitle, dto.getCreateName() + "的" + dto.getModuleName(), msgTypeSid, "审批中心", receiveIdList.get(i));
|
JPushServer.sendPushAlias(msgTitle, msgContent, msgTypeSid, "审批中心", receiveIdList.get(i));
|
||||||
}
|
}
|
||||||
return rb.success().setData(msgSid);
|
return rb.success().setData(msgSid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResultBean<String> pushMessage(MessageFlowableQuery query) {
|
||||||
|
ResultBean<String> rb = ResultBean.fireFail();
|
||||||
|
MessageFlowVo ufVo = query.getUfVo();
|
||||||
|
String procInsId = ufVo.getProcInsId();
|
||||||
|
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<List<LatestTaskVo>> resultBean = flowTaskFeign.getLatestTasks(procInsId);
|
||||||
|
String nextNodeUserSids = resultBean.getData().get(0).getASSIGNEE_();
|
||||||
|
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));
|
||||||
|
List<Integer> 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<String> stringResultBean = getMessage(messageFlowableDto);
|
||||||
|
String msgSid = stringResultBean.getData();
|
||||||
|
return rb.success().setMsg(msgSid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user