小程序审批通知页面跳转地址调整
This commit is contained in:
parent
38cddda869
commit
23576a5286
@ -5,13 +5,11 @@ import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDT
|
||||
import cn.iocoder.yudao.module.system.api.sms.dto.send.SmsSendSingleToUserReqDTO;
|
||||
import cn.iocoder.yudao.module.system.api.subscribe.dto.MsgData;
|
||||
import cn.iocoder.yudao.module.system.api.subscribe.dto.SubscribeMessageReqDTO;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Mapper
|
||||
@ -32,7 +30,6 @@ public interface BpmMessageConvert {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param openId 微信小程序唯一id
|
||||
* @param processInstanceName 流程名称
|
||||
* @param result 审批结果
|
||||
@ -40,47 +37,48 @@ public interface BpmMessageConvert {
|
||||
* @param miniProgramState 小程序的状态
|
||||
* @return
|
||||
*/
|
||||
default SubscribeMessageReqDTO convertApprovalResultNotification(String openId, String processInstanceName, String time, String result, String reason, String miniProgramState) {
|
||||
SubscribeMessageReqDTO message = new SubscribeMessageReqDTO() ;
|
||||
message.setToUser(openId) ;
|
||||
message.setTemplateId("OnJjp5pdjG1PHMoELYaqp3Xq8jWZ5E6ndO0clEIQ4tk") ;
|
||||
default SubscribeMessageReqDTO convertApprovalResultNotification(String openId, String processInstanceName, String time, String result, String reason, String processInstanceId,
|
||||
String miniProgramState) {
|
||||
SubscribeMessageReqDTO message = new SubscribeMessageReqDTO();
|
||||
message.setToUser(openId);
|
||||
message.setTemplateId("OnJjp5pdjG1PHMoELYaqp3Xq8jWZ5E6ndO0clEIQ4tk");
|
||||
//审批类型
|
||||
MsgData processType = new MsgData();
|
||||
processType.setName("thing1") ;
|
||||
processType.setValue(processInstanceName) ;
|
||||
processType.setName("thing1");
|
||||
processType.setValue(processInstanceName);
|
||||
message.addData(processType);
|
||||
|
||||
//发起时间
|
||||
MsgData createTime = new MsgData();
|
||||
createTime.setName("time2") ;
|
||||
createTime.setValue(time) ;
|
||||
createTime.setName("time2");
|
||||
createTime.setValue(time);
|
||||
message.addData(createTime);
|
||||
|
||||
//审批时间
|
||||
MsgData approvalTime = new MsgData();
|
||||
approvalTime.setName("time7") ;
|
||||
approvalTime.setValue(DateUtils.dateFormat(new Date(),DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)) ;
|
||||
approvalTime.setName("time7");
|
||||
approvalTime.setValue(DateUtils.dateFormat(new Date(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
|
||||
message.addData(approvalTime);
|
||||
|
||||
//审批结果
|
||||
MsgData approvalResult = new MsgData();
|
||||
approvalResult.setName("phrase3") ;
|
||||
approvalResult.setValue(result) ;
|
||||
approvalResult.setName("phrase3");
|
||||
approvalResult.setValue(result);
|
||||
message.addData(approvalResult);
|
||||
|
||||
if(reason != null ) {
|
||||
if (reason != null) {
|
||||
MsgData approvalReason = new MsgData();
|
||||
approvalReason.setName("thing12") ;
|
||||
approvalReason.setValue(reason) ;
|
||||
approvalReason.setName("thing12");
|
||||
approvalReason.setValue(reason);
|
||||
message.addData(approvalReason);
|
||||
}
|
||||
|
||||
message.setMiniprogramState(miniProgramState) ;
|
||||
message.setMiniprogramState(miniProgramState);
|
||||
message.setPage("pages/home/index?id=" + processInstanceId);
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param openId 微信小程序唯一id
|
||||
* @param processInstanceName 流程名称
|
||||
* @param startUserNickname 申请人
|
||||
@ -89,35 +87,36 @@ public interface BpmMessageConvert {
|
||||
* @param miniProgramState 小程序的状态
|
||||
* @return
|
||||
*/
|
||||
default SubscribeMessageReqDTO convertProcessToDoReminder(String openId, String processInstanceName,String startUserNickname, String time, String schedule, String miniProgramState) {
|
||||
SubscribeMessageReqDTO message = new SubscribeMessageReqDTO() ;
|
||||
message.setToUser(openId) ;
|
||||
message.setTemplateId("3cP4btlFSSiZk65qVewN_WoT_bh0OfUkYzzTsADOrR4") ;
|
||||
default SubscribeMessageReqDTO convertProcessToDoReminder(String openId, String processInstanceName, String startUserNickname, String time, String schedule, String processInstanceId, String miniProgramState) {
|
||||
SubscribeMessageReqDTO message = new SubscribeMessageReqDTO();
|
||||
message.setToUser(openId);
|
||||
message.setTemplateId("3cP4btlFSSiZk65qVewN_WoT_bh0OfUkYzzTsADOrR4");
|
||||
//待办标题
|
||||
MsgData processType = new MsgData();
|
||||
processType.setName("thing1") ;
|
||||
processType.setValue("您收到了一条新的待办任务:"+processInstanceName) ;
|
||||
processType.setName("thing1");
|
||||
processType.setValue("您收到了一条新的待办任务:" + processInstanceName);
|
||||
message.addData(processType);
|
||||
|
||||
//申请人
|
||||
MsgData applicant = new MsgData();
|
||||
applicant.setName("thing4") ;
|
||||
applicant.setValue(startUserNickname) ;
|
||||
applicant.setName("thing4");
|
||||
applicant.setValue(startUserNickname);
|
||||
message.addData(applicant);
|
||||
|
||||
//申请时间
|
||||
MsgData createTime = new MsgData();
|
||||
createTime.setName("time5") ;
|
||||
createTime.setValue(time) ;
|
||||
createTime.setName("time5");
|
||||
createTime.setValue(time);
|
||||
message.addData(createTime);
|
||||
|
||||
//当前进度
|
||||
MsgData currentSchedule = new MsgData();
|
||||
currentSchedule.setName("thing6") ;
|
||||
currentSchedule.setValue(schedule) ;
|
||||
currentSchedule.setName("thing6");
|
||||
currentSchedule.setValue(schedule);
|
||||
message.addData(currentSchedule);
|
||||
|
||||
message.setMiniprogramState(miniProgramState) ;
|
||||
message.setMiniprogramState(miniProgramState);
|
||||
message.setPage("pages/bpm/task/todo/examineApprove?id=" + processInstanceId);
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package cn.iocoder.yudao.module.bpm.service.message;
|
||||
|
||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import cn.iocoder.yudao.framework.web.config.WebProperties;
|
||||
import cn.iocoder.yudao.module.bpm.convert.message.BpmMessageConvert;
|
||||
import cn.iocoder.yudao.module.bpm.enums.message.BpmMessageEnum;
|
||||
@ -17,7 +16,8 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* BPM 消息 Service 实现类
|
||||
@ -36,7 +36,7 @@ public class BpmMessageServiceImpl implements BpmMessageService {
|
||||
private NotifyMessageSendApi notifyMessageSendApi;
|
||||
|
||||
@Resource
|
||||
private SubscribeMessageSendApi subscribeMessageSendApi ;
|
||||
private SubscribeMessageSendApi subscribeMessageSendApi;
|
||||
|
||||
@Resource
|
||||
private WebProperties webProperties;
|
||||
@ -53,15 +53,16 @@ public class BpmMessageServiceImpl implements BpmMessageService {
|
||||
BpmMessageEnum.PROCESS_INSTANCE_APPROVE.getSmsTemplateCode(), templateParams));
|
||||
|
||||
//发送审批结果通知
|
||||
String openId = getUserOpenId(reqDTO.getStartUserId()) ;
|
||||
if(openId != null ) {
|
||||
String openId = getUserOpenId(reqDTO.getStartUserId());
|
||||
if (openId != null) {
|
||||
subscribeMessageSendApi.sendApprovalResultNotification(
|
||||
BpmMessageConvert.INSTANCE.convertApprovalResultNotification(
|
||||
openId,reqDTO.getProcessInstanceName(), reqDTO.getCreateTime(), "通过", reqDTO.getReason(),
|
||||
openId, reqDTO.getProcessInstanceName(), reqDTO.getCreateTime(), "通过", reqDTO.getReason(),
|
||||
reqDTO.getProcessInstanceId(),
|
||||
/**
|
||||
* 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
|
||||
*/
|
||||
"formal") ) ;
|
||||
"formal"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,15 +79,16 @@ public class BpmMessageServiceImpl implements BpmMessageService {
|
||||
reqDTO.getStartUserId(), BpmMessageEnum.PROCESS_INSTANCE_REJECT.getSmsTemplateCode(), templateParams));
|
||||
|
||||
// //发送审批结果通知
|
||||
String openId = getUserOpenId(reqDTO.getStartUserId()) ;
|
||||
if(openId != null ) {
|
||||
String openId = getUserOpenId(reqDTO.getStartUserId());
|
||||
if (openId != null) {
|
||||
subscribeMessageSendApi.sendApprovalResultNotification(
|
||||
BpmMessageConvert.INSTANCE.convertApprovalResultNotification(
|
||||
openId,reqDTO.getProcessInstanceName(),reqDTO.getCreateTime(),"不通过", reqDTO.getReason(),
|
||||
openId, reqDTO.getProcessInstanceName(), reqDTO.getCreateTime(), "不通过", reqDTO.getReason(),
|
||||
reqDTO.getProcessInstanceId(),
|
||||
/**
|
||||
* 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
|
||||
*/
|
||||
"formal") ) ;
|
||||
"formal"));
|
||||
}
|
||||
|
||||
}
|
||||
@ -95,10 +97,10 @@ public class BpmMessageServiceImpl implements BpmMessageService {
|
||||
public void sendMessageWhenTaskAssigned(BpmMessageSendWhenTaskCreatedReqDTO reqDTO) {
|
||||
//任务分配
|
||||
Long startUserId = reqDTO.getStartUserId(); //流程发起人
|
||||
Long assigneeUserId = reqDTO.getAssigneeUserId() ; //任务审批人
|
||||
String taskName = reqDTO.getTaskName() ;
|
||||
Long assigneeUserId = reqDTO.getAssigneeUserId(); //任务审批人
|
||||
String taskName = reqDTO.getTaskName();
|
||||
//如果流程发起人和任务审批是同一个人, 那么不发送站内信,否则就发送
|
||||
if(!assigneeUserId.toString().equals(startUserId.toString())) {
|
||||
if (!assigneeUserId.toString().equals(startUserId.toString())) {
|
||||
Map<String, Object> templateParams = new HashMap<>();
|
||||
templateParams.put("processInstanceName", reqDTO.getProcessInstanceName());
|
||||
// templateParams.put("taskName", reqDTO.getTaskName());
|
||||
@ -112,11 +114,12 @@ public class BpmMessageServiceImpl implements BpmMessageService {
|
||||
reqDTO.getAssigneeUserId(), BpmMessageEnum.TASK_ASSIGNED.getSmsTemplateCode(), templateParams));
|
||||
//微信小程序订阅消息
|
||||
//发送OA流程待办提醒
|
||||
String openId = getUserOpenId(reqDTO.getStartUserId()) ; //只有在微信小程序登陆过用户才会有openid
|
||||
if(openId != null ) {
|
||||
subscribeMessageSendApi.sendProcessToDoReminder( BpmMessageConvert.INSTANCE.convertProcessToDoReminder(
|
||||
openId, reqDTO.getProcessInstanceName(), reqDTO.getStartUserNickname(),reqDTO.getCreateTime(),reqDTO.getSchedule() ,
|
||||
"formal" ) ) ;
|
||||
String openId = getUserOpenId(reqDTO.getStartUserId()); //只有在微信小程序登陆过用户才会有openid
|
||||
if (openId != null) {
|
||||
subscribeMessageSendApi.sendProcessToDoReminder(BpmMessageConvert.INSTANCE.convertProcessToDoReminder(
|
||||
openId, reqDTO.getProcessInstanceName(), reqDTO.getStartUserNickname(), reqDTO.getCreateTime(), reqDTO.getSchedule(),
|
||||
reqDTO.getProcessInstanceId(),
|
||||
"formal"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -127,10 +130,11 @@ public class BpmMessageServiceImpl implements BpmMessageService {
|
||||
}
|
||||
|
||||
@Resource
|
||||
private AdminUserApi adminUserApi ;
|
||||
private AdminUserApi adminUserApi;
|
||||
|
||||
private String getUserOpenId(Long userId) {
|
||||
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(userId).getData();
|
||||
String openId = adminUserRespDTO.getOpenId() ;
|
||||
return openId ;
|
||||
String openId = adminUserRespDTO.getOpenId();
|
||||
return openId;
|
||||
}
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ public class BpmOAProcurePayServiceImpl extends BpmOABaseService implements BpmO
|
||||
private BpmProcessInstanceService bpmProcessInstanceService;
|
||||
|
||||
/**
|
||||
* OA 请假对应的流程定义 KEY
|
||||
* OA 采购支付对应的流程定义 KEY
|
||||
*/
|
||||
public static final String PROCESS_KEY = "oa_procure_pay";
|
||||
|
||||
|
@ -40,7 +40,7 @@ public class BpmOAProcureServiceImpl extends BpmOABaseService implements BpmOAPr
|
||||
@Resource
|
||||
private BpmProcessInstanceApi processInstanceApi;
|
||||
/**
|
||||
* OA 请假对应的流程定义 KEY
|
||||
* OA 采购申请对应的流程定义 KEY
|
||||
*/
|
||||
public static final String PROCESS_KEY = "oa_procure";
|
||||
|
||||
|
@ -30,9 +30,13 @@ public class SubscribeMessageReqDTO {
|
||||
|
||||
@Schema(description = "跳转小程序类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "developer为开发版;trial为体验版;formal为正式版;默认为正式版")
|
||||
@NotNull(message = "跳转小程序类型不能为空")
|
||||
private String miniprogramState = "formal" ;
|
||||
private String miniprogramState = "formal";
|
||||
|
||||
@Schema(description = "小程序页面地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "pages/home/index")
|
||||
@NotNull(message = "小程序页面地址不能为空")
|
||||
private String page;
|
||||
|
||||
public void addData(MsgData data) {
|
||||
this.data.add(data) ;
|
||||
this.data.add(data);
|
||||
}
|
||||
}
|
||||
|
@ -1,29 +1,15 @@
|
||||
package cn.iocoder.yudao.module.system.api.subscribe;
|
||||
|
||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||
import cn.binarywang.wx.miniapp.api.WxMaSubscribeService;
|
||||
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
|
||||
import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
|
||||
import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.cache.CacheUtils;
|
||||
import cn.iocoder.yudao.module.system.api.subscribe.dto.MsgData;
|
||||
import cn.iocoder.yudao.module.system.api.subscribe.dto.SubscribeMessageReqDTO;
|
||||
import cn.iocoder.yudao.module.system.service.social.SocialClientService;
|
||||
import com.binarywang.spring.starter.wxjava.miniapp.properties.WxMaProperties;
|
||||
import com.binarywang.spring.starter.wxjava.mp.properties.WxMpProperties;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import lombok.SneakyThrows;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
|
||||
import me.chanjar.weixin.mp.api.WxMpService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
@ -36,7 +22,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
*/
|
||||
@RestController // 提供 RESTful API 接口,给 Feign 调用
|
||||
@Validated
|
||||
public class SubscribeMessageSendApiImpl implements SubscribeMessageSendApi{
|
||||
public class SubscribeMessageSendApiImpl implements SubscribeMessageSendApi {
|
||||
|
||||
@Resource
|
||||
private SocialClientService socialClientService;
|
||||
@ -55,21 +41,21 @@ public class SubscribeMessageSendApiImpl implements SubscribeMessageSendApi{
|
||||
return success(1L);
|
||||
}
|
||||
|
||||
private WxMaSubscribeMessage initWxMaSubscribeMessage( SubscribeMessageReqDTO reqDTO ) {
|
||||
private WxMaSubscribeMessage initWxMaSubscribeMessage(SubscribeMessageReqDTO reqDTO) {
|
||||
WxMaSubscribeMessage message = WxMaSubscribeMessage.builder()
|
||||
.toUser(reqDTO.getToUser())
|
||||
.templateId(reqDTO.getTemplateId())
|
||||
.build();
|
||||
message.setMiniprogramState(reqDTO.getMiniprogramState());
|
||||
List<MsgData> dataList = reqDTO.getData() ;
|
||||
List<MsgData> dataList = reqDTO.getData();
|
||||
for (MsgData msgData : dataList) {
|
||||
WxMaSubscribeMessage.MsgData wxMsgData = new WxMaSubscribeMessage.MsgData() ;
|
||||
wxMsgData.setName(msgData.getName()) ;
|
||||
wxMsgData.setValue(msgData.getValue()) ;
|
||||
message.addData(wxMsgData) ;
|
||||
WxMaSubscribeMessage.MsgData wxMsgData = new WxMaSubscribeMessage.MsgData();
|
||||
wxMsgData.setName(msgData.getName());
|
||||
wxMsgData.setValue(msgData.getValue());
|
||||
message.addData(wxMsgData);
|
||||
}
|
||||
message.setPage("pages/home/index") ;
|
||||
return message ;
|
||||
message.setPage(reqDTO.getPage());
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user