|
@@ -2,12 +2,8 @@ package com.qmth.sop.task.job;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.qmth.sop.business.bean.result.FlowTaskSmsResult;
|
|
|
-import com.qmth.sop.business.entity.SysMessage;
|
|
|
-import com.qmth.sop.business.entity.SysUser;
|
|
|
-import com.qmth.sop.business.entity.TSJobRemind;
|
|
|
-import com.qmth.sop.business.service.SysMessageService;
|
|
|
-import com.qmth.sop.business.service.SysUserService;
|
|
|
-import com.qmth.sop.business.service.TSJobRemindService;
|
|
|
+import com.qmth.sop.business.entity.*;
|
|
|
+import com.qmth.sop.business.service.*;
|
|
|
import com.qmth.sop.business.util.SmsSendUtil;
|
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
|
import com.qmth.sop.common.enums.*;
|
|
@@ -30,6 +26,7 @@ import java.util.*;
|
|
|
* @Date: 2021/7/9
|
|
|
*/
|
|
|
public class RemindTaskJob extends QuartzJobBean {
|
|
|
+
|
|
|
private final static Logger log = LoggerFactory.getLogger(RemindTaskJob.class);
|
|
|
|
|
|
@Resource
|
|
@@ -44,6 +41,12 @@ public class RemindTaskJob extends QuartzJobBean {
|
|
|
@Resource
|
|
|
SysMessageService sysMessageService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ TFCustomFlowEntityService tfCustomFlowEntityService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ TFFlowApproveService tfFlowApproveService;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void executeInternal(JobExecutionContext context) throws JobExecutionException {
|
|
@@ -55,54 +58,81 @@ public class RemindTaskJob extends QuartzJobBean {
|
|
|
TSJobRemind tsJobRemind = tsJobRemindService.getById(tsJobRemindTask.getId());
|
|
|
if (Objects.nonNull(tsJobRemind)) {//数据还在则说明要发送提醒短信
|
|
|
if (tsJobRemind.getType() == JobQuartzTypeEnum.FLOW) {//流程发送短信
|
|
|
- FlowTaskSmsResult flowTaskSmsResult = tsJobRemindService.getFlowTaskRemindSmsInfo(tsJobRemind.getId());
|
|
|
- Optional.ofNullable(flowTaskSmsResult).orElseThrow(() -> ExceptionResultEnum.USER_NO_EXISTS.exception());
|
|
|
-
|
|
|
- Map<String, Object> templateParam = new HashMap<>();
|
|
|
- templateParam.put("userName", flowTaskSmsResult.getRealName());
|
|
|
-
|
|
|
- SysMessage sysMessage = null;
|
|
|
- String configKey = null, content = null;
|
|
|
- if (Objects.nonNull(flowTaskSmsResult)) {
|
|
|
- String[] strs = tsJobRemind.getObjName().split(";");
|
|
|
- if (tsJobRemind.getRemindType() == JobTypeEnum.BEFORE) {//教务处SOP和研究生SOP
|
|
|
- content = MessageEnum.NOTICE_OF_SOP_DONE_REMIND.getTemplate();
|
|
|
- content = content.replaceAll("\\$\\{userName\\}", flowTaskSmsResult.getRealName());
|
|
|
- content = content.replaceAll("\\$\\{serviceName\\}", flowTaskSmsResult.getServiceName());
|
|
|
- content = content.replaceAll("\\$\\{customName\\}", flowTaskSmsResult.getCustomName());
|
|
|
- content = content.replaceAll("\\$\\{flowName\\}", strs[0] + "【" + strs[1] + "】");
|
|
|
-
|
|
|
- configKey = SystemConstant.SMS_SOP_BEFORE_REMIND_CODE;
|
|
|
- templateParam.put("serviceName", flowTaskSmsResult.getServiceName());
|
|
|
- templateParam.put("customName", flowTaskSmsResult.getCustomName());
|
|
|
- templateParam.put("flowName", strs[0] + "【" + strs[1] + "】");
|
|
|
-
|
|
|
- sysMessage = new SysMessage(flowTaskSmsResult.getCrmNo(), tsJobRemind.getCode(),
|
|
|
- MessageTypeEnum.BEFORE, flowTaskSmsResult.getType().name(), flowTaskSmsResult.getServiceId(), flowTaskSmsResult.getUserId(), content,tsJobRemind.getCreateId());
|
|
|
- } else if (tsJobRemind.getRemindType() == JobTypeEnum.AFTER) {
|
|
|
- content = MessageEnum.NOTICE_OF_DELAY_REMIND.getTemplate();
|
|
|
- content = content.replaceAll("\\$\\{userName\\}", flowTaskSmsResult.getRealName());
|
|
|
- content = content.replaceAll("\\$\\{serviceName\\}", flowTaskSmsResult.getServiceName());
|
|
|
- content = content.replaceAll("\\$\\{customName\\}", flowTaskSmsResult.getCustomName());
|
|
|
- content = content.replaceAll("\\$\\{flowName\\}", strs[0] + "【" + strs[1] + "】");
|
|
|
-
|
|
|
- configKey = SystemConstant.SMS_SOP_AFTER_REMIND_CODE;
|
|
|
- templateParam.put("serviceName", flowTaskSmsResult.getServiceName());
|
|
|
- templateParam.put("customName", flowTaskSmsResult.getCustomName());
|
|
|
- templateParam.put("flowName", strs[0] + "【" + strs[1] + "】");
|
|
|
-
|
|
|
- sysMessage = new SysMessage(flowTaskSmsResult.getCrmNo(), tsJobRemind.getCode(),
|
|
|
- MessageTypeEnum.AFTER, flowTaskSmsResult.getType().name(), flowTaskSmsResult.getServiceId(), flowTaskSmsResult.getUserId(), content,tsJobRemind.getCreateId());
|
|
|
- }
|
|
|
- //发送消息
|
|
|
- sysMessageService.saveSysMessage(Arrays.asList(sysMessage));
|
|
|
+ TFCustomFlowEntity tfCustomFlowEntity = tfCustomFlowEntityService.getOne(
|
|
|
+ new QueryWrapper<TFCustomFlowEntity>().lambda()
|
|
|
+ .eq(TFCustomFlowEntity::getCode, tsJobRemind.getCode()));
|
|
|
+ Optional.ofNullable(tfCustomFlowEntity)
|
|
|
+ .orElseThrow(() -> ExceptionResultEnum.FLOW_ENTITY_NO_DATA.exception());
|
|
|
+
|
|
|
+ TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(
|
|
|
+ new QueryWrapper<TFFlowApprove>().lambda()
|
|
|
+ .eq(TFFlowApprove::getFlowId, tfCustomFlowEntity.getFlowId()));
|
|
|
+ Optional.ofNullable(tfFlowApprove)
|
|
|
+ .orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_NO_DATA.exception());
|
|
|
+
|
|
|
+ if (tfFlowApprove.getSetup().intValue() > 0 && Objects.nonNull(tsJobRemind.getSetup())
|
|
|
+ && tsJobRemind.getSetup().intValue() == tfFlowApprove.getSetup().intValue()) {
|
|
|
+ FlowTaskSmsResult flowTaskSmsResult = tsJobRemindService.getFlowTaskRemindSmsInfo(
|
|
|
+ tsJobRemind.getId());
|
|
|
+ Optional.ofNullable(flowTaskSmsResult)
|
|
|
+ .orElseThrow(() -> ExceptionResultEnum.USER_NO_EXISTS.exception());
|
|
|
|
|
|
- //发送短信
|
|
|
- smsSendUtil.sendSms(flowTaskSmsResult.getMobileNumber(), configKey, templateParam);
|
|
|
+ Map<String, Object> templateParam = new HashMap<>();
|
|
|
+ templateParam.put("userName", flowTaskSmsResult.getRealName());
|
|
|
+
|
|
|
+ SysMessage sysMessage = null;
|
|
|
+ String configKey = null, content = null;
|
|
|
+ if (Objects.nonNull(flowTaskSmsResult)) {
|
|
|
+ String[] strs = tsJobRemind.getObjName().split(";");
|
|
|
+ if (tsJobRemind.getRemindType() == JobTypeEnum.BEFORE) {//教务处SOP和研究生SOP
|
|
|
+ content = MessageEnum.NOTICE_OF_SOP_DONE_REMIND.getTemplate();
|
|
|
+ content = content.replaceAll("\\$\\{userName\\}", flowTaskSmsResult.getRealName());
|
|
|
+ content = content.replaceAll("\\$\\{serviceName\\}",
|
|
|
+ flowTaskSmsResult.getServiceName());
|
|
|
+ content = content.replaceAll("\\$\\{customName\\}",
|
|
|
+ flowTaskSmsResult.getCustomName());
|
|
|
+ content = content.replaceAll("\\$\\{flowName\\}", strs[0] + "【" + strs[1] + "】");
|
|
|
+
|
|
|
+ configKey = SystemConstant.SMS_SOP_BEFORE_REMIND_CODE;
|
|
|
+ templateParam.put("serviceName", flowTaskSmsResult.getServiceName());
|
|
|
+ templateParam.put("customName", flowTaskSmsResult.getCustomName());
|
|
|
+ templateParam.put("flowName", strs[0] + "【" + strs[1] + "】");
|
|
|
+
|
|
|
+ sysMessage = new SysMessage(flowTaskSmsResult.getCrmNo(), tsJobRemind.getCode(),
|
|
|
+ MessageTypeEnum.BEFORE, flowTaskSmsResult.getType().name(),
|
|
|
+ flowTaskSmsResult.getServiceId(), flowTaskSmsResult.getUserId(), content,
|
|
|
+ tsJobRemind.getCreateId());
|
|
|
+ } else if (tsJobRemind.getRemindType() == JobTypeEnum.AFTER) {
|
|
|
+ content = MessageEnum.NOTICE_OF_DELAY_REMIND.getTemplate();
|
|
|
+ content = content.replaceAll("\\$\\{userName\\}", flowTaskSmsResult.getRealName());
|
|
|
+ content = content.replaceAll("\\$\\{serviceName\\}",
|
|
|
+ flowTaskSmsResult.getServiceName());
|
|
|
+ content = content.replaceAll("\\$\\{customName\\}",
|
|
|
+ flowTaskSmsResult.getCustomName());
|
|
|
+ content = content.replaceAll("\\$\\{flowName\\}", strs[0] + "【" + strs[1] + "】");
|
|
|
+
|
|
|
+ configKey = SystemConstant.SMS_SOP_AFTER_REMIND_CODE;
|
|
|
+ templateParam.put("serviceName", flowTaskSmsResult.getServiceName());
|
|
|
+ templateParam.put("customName", flowTaskSmsResult.getCustomName());
|
|
|
+ templateParam.put("flowName", strs[0] + "【" + strs[1] + "】");
|
|
|
+
|
|
|
+ sysMessage = new SysMessage(flowTaskSmsResult.getCrmNo(), tsJobRemind.getCode(),
|
|
|
+ MessageTypeEnum.AFTER, flowTaskSmsResult.getType().name(),
|
|
|
+ flowTaskSmsResult.getServiceId(), flowTaskSmsResult.getUserId(), content,
|
|
|
+ tsJobRemind.getCreateId());
|
|
|
+ }
|
|
|
+ //发送消息
|
|
|
+ sysMessageService.saveSysMessage(Arrays.asList(sysMessage));
|
|
|
+
|
|
|
+ //发送短信
|
|
|
+ smsSendUtil.sendSms(flowTaskSmsResult.getMobileNumber(), configKey, templateParam);
|
|
|
+ }
|
|
|
}
|
|
|
} else if (tsJobRemind.getType() == JobQuartzTypeEnum.NOTICE) {//公告发送短信
|
|
|
if (tsJobRemind.getRemindType() == JobTypeEnum.AFTER) {
|
|
|
- List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().isNotNull(SysUser::getMobileNumber).eq(SysUser::getEnable, true));
|
|
|
+ List<SysUser> sysUserList = sysUserService.list(
|
|
|
+ new QueryWrapper<SysUser>().lambda().isNotNull(SysUser::getMobileNumber)
|
|
|
+ .eq(SysUser::getEnable, true));
|
|
|
for (SysUser s : sysUserList) {
|
|
|
Map<String, Object> templateParam = new HashMap<>();
|
|
|
templateParam.put("userName", s.getRealName());
|