//api中接口
//实现类
//需要调用的远程服务的接口
//需要远程调用服务的实现类
package org.springblade.flow.business.service.impl; import lombok.AllArgsConstructor; import org.flowable.task.api.Task; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.Func; import org.springblade.flow.business.service.ISendWeChatMsg; import org.springblade.resource.entity.WeChatSendMsgTextParam; import org.springblade.resource.feign.IWeChatClient; import org.springblade.system.user.cache.UserCache; import org.springblade.system.user.entity.User; import org.springframework.stereotype.Service; import java.text.MessageFormat; import java.util.List; import java.util.Map; import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX; @Service @AllArgsConstructor public class SendWeChatMsg implements ISendWeChatMsg { private IWeChatClient weChatClient; @Override //发送消息 public void sendWeChatMsg(List<Task> curTasks,List<Task> nextTasks,String msgType){ if(Func.isEmpty(nextTasks)||Func.isNull(nextTasks)){ return ; } Map<String, Object> map = nextTasks.get(0).getProcessVariables(); String subject = ""; String orderCode = ""; String formName =""; if(Func.isNotEmpty(map)) { if (map.containsKey("subject")) { subject = map.get("subject").toString(); } if (map.containsKey("orderCode")) { orderCode = map.get("orderCode").toString(); } if (map.containsKey("formName")) { formName = map.get("formName").toString(); } } String userId =""; String userName = ""; if(Func.isNotEmpty(curTasks)) { Task task = curTasks.get(0); String assignee = task.getAssignee(); if(Func.isNotEmpty(assignee)){ if(assignee.contains(TASK_USR_PREFIX)){ User fromUser = UserCache.getUserByTaskUser(assignee); if(Func.isNotEmpty(fromUser)) { userId = String.valueOf(fromUser.getId()); userName = fromUser.getName(); } } else if(Func.isNumeric(assignee)){ userId = assignee; User user = UserCache.getUser(Long.valueOf(assignee)); if(Func.isNotEmpty(user)){ userName = user.getName(); } } else { userId = String.valueOf(AuthUtil.getUserId()); User user = UserCache.getUser(AuthUtil.getUserId()); if(Func.isNotEmpty(user)){ userName = user.getName(); } } } else { userId = String.valueOf(AuthUtil.getUserId()); User user = UserCache.getUser(AuthUtil.getUserId()); if(Func.isNotEmpty(user)){ userName = user.getName(); } } } String weChatId =""; if(Func.isNotEmpty(nextTasks)) { for(Task task : nextTasks) { String assignee = task.getAssignee(); if(Func.isNotEmpty(assignee)){ if(assignee.contains(TASK_USR_PREFIX)){ User toUser = UserCache.getUserByTaskUser(assignee); if(Func.isNotEmpty(toUser)) { if(Func.isNotEmpty(weChatId)){ weChatId = weChatId+","+toUser.getWeChatId(); } else{ weChatId = toUser.getWeChatId(); } } } else if(Func.isNumeric(assignee)){ User toUser = UserCache.getUser(Long.valueOf(assignee)); if(Func.isNotEmpty(toUser)){ if(Func.isNotEmpty(weChatId)){ weChatId = weChatId+","+toUser.getWeChatId(); } else{ weChatId = toUser.getWeChatId(); } } } } } } if(Func.isNotEmpty(weChatId)){ if("textCard".equals(msgType)){ } else if("news".equals(msgType)){ } else{ //默认text WeChatSendMsgTextParam text = new WeChatSendMsgTextParam(); String subjectFormat = "您有新接收的{0}代办事务,请处理: 主题 - {1} 单号 - {2} "; String content = MessageFormat.format(subjectFormat,formName,subject,orderCode); text.setTouser(weChatId); text.setContent(content); weChatClient.sendTextMsgFlow(userId,userName,subject,text); } } } @Override //发送消息 public void sendWeChatMsg(String taskUser,List<Task> nextTasks,String msgType){ if(Func.isEmpty(nextTasks)||Func.isNull(nextTasks)){ return ; } Map<String, Object> map = nextTasks.get(0).getProcessVariables(); String subject = ""; String orderCode = ""; String formName =""; if(Func.isNotEmpty(map)) { if (map.containsKey("subject")) { subject = map.get("subject").toString(); } if (map.containsKey("orderCode")) { orderCode = map.get("orderCode").toString(); } if (map.containsKey("formName")) { formName = map.get("formName").toString(); } } String userId =""; String userName = ""; if(Func.isNotEmpty(taskUser)) { String assignee = taskUser; if(Func.isNotEmpty(assignee)){ if(assignee.contains(TASK_USR_PREFIX)){ User fromUser = UserCache.getUserByTaskUser(assignee); if(Func.isNotEmpty(fromUser)) { userId = String.valueOf(fromUser.getId()); userName = fromUser.getName(); } } else if(Func.isNumeric(assignee)){ userId = assignee; User user = UserCache.getUser(Long.valueOf(assignee)); if(Func.isNotEmpty(user)){ userName = user.getName(); } } else { userId = String.valueOf(AuthUtil.getUserId()); User user = UserCache.getUser(AuthUtil.getUserId()); if(Func.isNotEmpty(user)){ userName = user.getName(); } } } else { userId = String.valueOf(AuthUtil.getUserId()); User user = UserCache.getUser(AuthUtil.getUserId()); if(Func.isNotEmpty(user)){ userName = user.getName(); } } } String weChatId =""; if(Func.isNotEmpty(nextTasks)) { for(Task task : nextTasks) { String assignee = task.getAssignee(); if(Func.isNotEmpty(assignee)){ if(assignee.contains(TASK_USR_PREFIX)){ User toUser = UserCache.getUserByTaskUser(assignee); if(Func.isNotEmpty(toUser)) { if(Func.isNotEmpty(weChatId)){ weChatId = weChatId+","+toUser.getWeChatId(); } else{ weChatId = toUser.getWeChatId(); } } } else if(Func.isNumeric(assignee)){ User toUser = UserCache.getUser(Long.valueOf(assignee)); if(Func.isNotEmpty(toUser)){ if(Func.isNotEmpty(weChatId)){ weChatId = weChatId+","+toUser.getWeChatId(); } else{ weChatId = toUser.getWeChatId(); } } } } } } if(Func.isNotEmpty(weChatId)){ if("textCard".equals(msgType)){ } else if("news".equals(msgType)){ } else{ //默认text WeChatSendMsgTextParam text = new WeChatSendMsgTextParam(); String subjectFormat = "您有新接收的{0}代办事务,请处理: 主题 - {1} 单号 - {2} "; String content = MessageFormat.format(subjectFormat,formName,subject,orderCode); text.setTouser(weChatId); text.setContent(content); weChatClient.sendTextMsgFlow(userId,userName,subject,text); } } } @Override public void sendEndWeChatMsg(List<Task> curTasks, List<Task> nextTasks, String msgType) { if(Func.isEmpty(nextTasks)||Func.isNull(nextTasks)){ return ; } Map<String, Object> map = nextTasks.get(0).getProcessVariables(); String subject = ""; String orderCode = ""; String formName =""; String ccUser =""; if(Func.isNotEmpty(map)) { if (map.containsKey("subject")) { subject = map.get("subject").toString(); } if (map.containsKey("orderCode")) { orderCode = map.get("orderCode").toString(); } if (map.containsKey("formName")) { formName = map.get("formName").toString(); } if (map.containsKey("ccUser")) { ccUser = map.get("ccUser").toString(); } } String userId =""; String userName = ""; if(Func.isNotEmpty(curTasks)) { String assignee = curTasks.get(0).getAssignee(); if(Func.isNotEmpty(assignee)){ if(assignee.contains(TASK_USR_PREFIX)){ User fromUser = UserCache.getUserByTaskUser(assignee); if(Func.isNotEmpty(fromUser)) { userId = String.valueOf(fromUser.getId()); userName = fromUser.getName(); } } else if(Func.isNumeric(assignee)){ userId = assignee; User user = UserCache.getUser(Long.valueOf(assignee)); if(Func.isNotEmpty(user)){ userName = user.getName(); } } else { userId = String.valueOf(AuthUtil.getUserId()); User user = UserCache.getUser(AuthUtil.getUserId()); if(Func.isNotEmpty(user)){ userName = user.getName(); } } } else { userId = String.valueOf(AuthUtil.getUserId()); User user = UserCache.getUser(AuthUtil.getUserId()); if(Func.isNotEmpty(user)){ userName = user.getName(); } } } String weChatId =""; if(Func.isNotEmpty(ccUser)){ String[] toTaskUserArray = Func.toStrArray(ccUser); for(int index = 0 ; index< toTaskUserArray.length;index++){ String toTaskUser = toTaskUserArray[index]; User toUser = null; if(toTaskUser.contains(TASK_USR_PREFIX)){ toUser = UserCache.getUserByTaskUser(toTaskUser); } else if(Func.isNumeric(toTaskUser)) { toUser = UserCache.getUser(Long.valueOf(toTaskUser)); } if(Func.isNotEmpty(toUser)&&Func.isNotEmpty(toUser.getWeChatId())) { if(Func.isNotEmpty(weChatId)){ weChatId = weChatId+","+toUser.getWeChatId(); } else{ weChatId = toUser.getWeChatId(); } } } } if(Func.isNotEmpty(weChatId)){ if("textCard".equals(msgType)){ } else if("news".equals(msgType)){ } else{ //默认text WeChatSendMsgTextParam text = new WeChatSendMsgTextParam(); String subjectFormat = "您有新接收的{0}抄送事务,请处理: 主题 - {1} 单号 - {2} "; String content = MessageFormat.format(subjectFormat,formName,subject,orderCode); text.setTouser(weChatId); text.setContent(content); weChatClient.sendTextMsgFlow(userId,userName,subject,text); } } } @Override public void sendEndWeChatMsg(String taskUser, Map<String,Object> map, String msgType) { if(Func.isEmpty(map)||Func.isNull(map)){ return ; } String subject = ""; String orderCode = ""; String formName =""; String ccUser =""; if(Func.isNotEmpty(map)) { if (map.containsKey("subject")) { subject = map.get("subject").toString(); } if (map.containsKey("orderCode")) { orderCode = map.get("orderCode").toString(); } if (map.containsKey("formName")) { formName = map.get("formName").toString(); } if (map.containsKey("ccUser")) { ccUser = map.get("ccUser").toString(); } } String userId =""; String userName = ""; if(Func.isNotEmpty(taskUser)) { String assignee = taskUser; if(Func.isNotEmpty(assignee)){ if(assignee.contains(TASK_USR_PREFIX)){ User fromUser = UserCache.getUserByTaskUser(assignee); if(Func.isNotEmpty(fromUser)) { userId = String.valueOf(fromUser.getId()); userName = fromUser.getName(); } } else if(Func.isNumeric(assignee)){ userId = assignee; User user = UserCache.getUser(Long.valueOf(assignee)); if(Func.isNotEmpty(user)){ userName = user.getName(); } } else { userId = String.valueOf(AuthUtil.getUserId()); User user = UserCache.getUser(AuthUtil.getUserId()); if(Func.isNotEmpty(user)){ userName = user.getName(); } } } else { userId = String.valueOf(AuthUtil.getUserId()); User user = UserCache.getUser(AuthUtil.getUserId()); if(Func.isNotEmpty(user)){ userName = user.getName(); } } } String weChatId =""; if(Func.isNotEmpty(ccUser)){ String[] toTaskUserArray = Func.toStrArray(ccUser); for(int index = 0 ; index< toTaskUserArray.length;index++){ String toTaskUser = toTaskUserArray[index]; User toUser = null; if(toTaskUser.contains(TASK_USR_PREFIX)){ toUser = UserCache.getUserByTaskUser(toTaskUser); } else if(Func.isNumeric(toTaskUser)) { toUser = UserCache.getUser(Long.valueOf(toTaskUser)); } if(Func.isNotEmpty(toUser)&&Func.isNotEmpty(toUser.getWeChatId())) { if(Func.isNotEmpty(weChatId)){ weChatId = weChatId+","+toUser.getWeChatId(); } else{ weChatId = toUser.getWeChatId(); } } } } if(Func.isNotEmpty(weChatId)){ if("textCard".equals(msgType)){ } else if("news".equals(msgType)){ } else{ //默认text WeChatSendMsgTextParam text = new WeChatSendMsgTextParam(); String subjectFormat = "您有新接收的{0}抄送事务,请处理: 主题 - {1} 单号 - {2} "; String content = MessageFormat.format(subjectFormat,formName,subject,orderCode); text.setTouser(weChatId); text.setContent(content); weChatClient.sendTextMsgFlow(userId,userName,subject,text); } } } }