逐级短信审批催办

This commit is contained in:
mashuai 2024-06-27 11:07:42 +08:00
parent 2b20d72d13
commit 2e6db070e9
7 changed files with 104 additions and 15 deletions

View File

@ -1,6 +1,8 @@
package com.bonus.sgzb.system.api; package com.bonus.sgzb.system.api;
import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.system.api.domain.SysUser; import com.bonus.sgzb.system.api.domain.SysUser;
import com.bonus.sgzb.system.api.domain.UrgentProcessingUser;
import com.bonus.sgzb.system.api.factory.RemoteUserFallbackFactory; import com.bonus.sgzb.system.api.factory.RemoteUserFallbackFactory;
import com.bonus.sgzb.system.api.model.LoginUser; import com.bonus.sgzb.system.api.model.LoginUser;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@ -84,4 +86,13 @@ public interface RemoteUserService
*/ */
@GetMapping("/user/getUserList") @GetMapping("/user/getUserList")
public R<List<SysUser>> getUserList(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); public R<List<SysUser>> getUserList(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 通过任务状态获取下一级审批人的信息
*
* @param urgentProcessingUser
* @return
*/
@PostMapping("/urgentProcessingUser")
public AjaxResult urgentProcessingUser(@RequestBody UrgentProcessingUser urgentProcessingUser);
} }

View File

@ -1,4 +1,4 @@
package com.bonus.sgzb.system.domain.po; package com.bonus.sgzb.system.api.domain;
import lombok.Data; import lombok.Data;

View File

@ -5,8 +5,8 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.PhoneUtil; import cn.hutool.core.util.PhoneUtil;
import com.bonus.sgzb.app.domain.*; import com.bonus.sgzb.app.domain.*;
import com.bonus.sgzb.app.service.*; import com.bonus.sgzb.app.service.*;
import com.bonus.sgzb.base.api.domain.MaType;
import com.bonus.sgzb.base.service.ITypeService; import com.bonus.sgzb.base.service.ITypeService;
import com.bonus.sgzb.common.core.enums.TaskStatusEnum;
import com.bonus.sgzb.common.core.utils.ListPagingUtil; import com.bonus.sgzb.common.core.utils.ListPagingUtil;
import com.bonus.sgzb.common.core.utils.ServletUtils; import com.bonus.sgzb.common.core.utils.ServletUtils;
import com.bonus.sgzb.common.core.utils.StringUtils; import com.bonus.sgzb.common.core.utils.StringUtils;
@ -17,17 +17,20 @@ import com.bonus.sgzb.common.core.web.page.TableDataInfo;
import com.bonus.sgzb.common.log.annotation.Log; import com.bonus.sgzb.common.log.annotation.Log;
import com.bonus.sgzb.common.log.enums.BusinessType; import com.bonus.sgzb.common.log.enums.BusinessType;
import com.bonus.sgzb.common.security.utils.SecurityUtils; import com.bonus.sgzb.common.security.utils.SecurityUtils;
import com.bonus.sgzb.system.api.RemoteUserService;
import com.bonus.sgzb.system.api.domain.SysUser;
import com.bonus.sgzb.system.api.domain.UrgentProcessingUser;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_NUM; import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_NUM;
import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_SIZE; import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_SIZE;
@ -39,6 +42,7 @@ import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_SIZE;
*/ */
@RestController @RestController
@RequestMapping("/tm_task") @RequestMapping("/tm_task")
@Slf4j
public class TmTaskController extends BaseController { public class TmTaskController extends BaseController {
/** /**
@ -62,6 +66,9 @@ public class TmTaskController extends BaseController {
@Resource @Resource
private ITypeService iTypeService; private ITypeService iTypeService;
@Resource
private RemoteUserService remoteUserService;
/** /**
* 领料审核通过分公司分管机具分公司统一接口 * 领料审核通过分公司分管机具分公司统一接口
@ -263,6 +270,37 @@ public class TmTaskController extends BaseController {
} else { } else {
return AjaxResult.error("创建任务失败"); return AjaxResult.error("创建任务失败");
} }
UrgentProcessingUser urgentProcessingUser = new UrgentProcessingUser();
urgentProcessingUser.setCompanyId(Long.valueOf(task.getCompanyId()));
urgentProcessingUser.setTaskTypeId(task.getTaskType());
urgentProcessingUser.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
switch (task.getTaskStatus()) {
case 30:
urgentProcessingUser.setTaskStatus(TaskStatusEnum.STAY_BRANCH_AUDIT.getInfo());
break;
case 31:
urgentProcessingUser.setTaskStatus(TaskStatusEnum.STAY_RESPONSIBLE_DEPARTMENT_AUDIT.getInfo());
break;
case 32:
urgentProcessingUser.setTaskStatus(TaskStatusEnum.STAY_INTERNAL_AUDIT.getInfo());
break;
}
AjaxResult ajaxResult = remoteUserService.urgentProcessingUser(urgentProcessingUser);
if (ajaxResult.isSuccess()) {
List<SysUser> userList = (List<SysUser>) ajaxResult.get("data");
String message ="尊敬的用户,宁夏智慧仓储管理系统提醒您:您有一个领料单号为:"+ code +"的领料申请待处理,请及时查看";
if (CollectionUtils.isNotEmpty(userList)) {
for (SysUser sysUser : userList) {
if (StringUtils.isNotBlank(sysUser.getPhonenumber())) {
try {
remoteUserService.send(sysUser.getPhonenumber(), message);
} catch (Exception e) {
log.info("手机号为:{}, 发送短信失败", sysUser.getPhonenumber());
}
}
}
}
}
return AjaxResult.success("任务创建成功"); return AjaxResult.success("任务创建成功");
} catch (Exception e) { } catch (Exception e) {
return AjaxResult.error("创建任务失败," + e.getCause().toString() + "," + e.getMessage()); return AjaxResult.error("创建任务失败," + e.getCause().toString() + "," + e.getMessage());

View File

@ -13,12 +13,16 @@ import com.bonus.sgzb.base.api.domain.BmFlowRecord;
import com.bonus.sgzb.base.api.domain.BmFlowRelation; import com.bonus.sgzb.base.api.domain.BmFlowRelation;
import com.bonus.sgzb.common.core.constant.Constants; import com.bonus.sgzb.common.core.constant.Constants;
import com.bonus.sgzb.common.core.domain.R; import com.bonus.sgzb.common.core.domain.R;
import com.bonus.sgzb.common.core.enums.TaskStatusEnum;
import com.bonus.sgzb.common.core.utils.DateUtils; import com.bonus.sgzb.common.core.utils.DateUtils;
import com.bonus.sgzb.common.core.utils.StringUtils; import com.bonus.sgzb.common.core.utils.StringUtils;
import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.common.security.utils.SecurityUtils; import com.bonus.sgzb.common.security.utils.SecurityUtils;
import com.bonus.sgzb.system.api.RemoteUserService; import com.bonus.sgzb.system.api.RemoteUserService;
import com.bonus.sgzb.system.api.domain.SysUser;
import com.bonus.sgzb.system.api.domain.UrgentProcessingUser;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -191,6 +195,7 @@ public class TmTaskServiceImpl implements TmTaskService {
} }
} }
} }
sendMessageToLeader(record);
} else { } else {
// 先审核任务表 // 先审核任务表
result += tmTaskMapper.updateTmTaskAuditStatus(record); result += tmTaskMapper.updateTmTaskAuditStatus(record);
@ -214,6 +219,7 @@ public class TmTaskServiceImpl implements TmTaskService {
} }
} }
} }
sendMessageToLeader(record);
} }
} else { } else {
return 0; return 0;
@ -222,6 +228,45 @@ public class TmTaskServiceImpl implements TmTaskService {
} }
/**
* 领料申请审批逐级发送短信通知相关人员审核方法抽取
* @param record
*/
private void sendMessageToLeader(TmTask record) {
UrgentProcessingUser urgentProcessingUser = new UrgentProcessingUser();
urgentProcessingUser.setCompanyId(Long.valueOf(record.getCompanyId()));
urgentProcessingUser.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
urgentProcessingUser.setTaskTypeId(record.getTaskType());
switch (record.getTaskStatus()) {
case 30:
urgentProcessingUser.setTaskStatus(TaskStatusEnum.STAY_BRANCH_AUDIT.getInfo());
break;
case 31:
urgentProcessingUser.setTaskStatus(TaskStatusEnum.STAY_RESPONSIBLE_DEPARTMENT_AUDIT.getInfo());
break;
case 32:
urgentProcessingUser.setTaskStatus(TaskStatusEnum.STAY_INTERNAL_AUDIT.getInfo());
break;
}
AjaxResult ajaxResult = remoteUserService.urgentProcessingUser(urgentProcessingUser);
if (ajaxResult.isSuccess()) {
List<SysUser> userList = (List<SysUser>) ajaxResult.get("data");
log.info("查询到待发送短信人员信息为:{}", userList);
String message ="尊敬的用户,宁夏智慧仓储管理系统提醒您:您有一个领料单号为:"+ record.getCode() +"的领料申请待处理,请及时查看";
if (CollectionUtils.isNotEmpty(userList)) {
for (SysUser sysUser : userList) {
if (StringUtils.isNotBlank(sysUser.getPhonenumber())) {
try {
remoteUserService.send(sysUser.getPhonenumber(), message);
} catch (Exception e) {
log.info("手机号为:{}, 发送短信失败", sysUser.getPhonenumber());
}
}
}
}
}
}
private void smsNotification(LeaseApplyDetails details, String code) { private void smsNotification(LeaseApplyDetails details, String code) {
TmTask tmTask = new TmTask(); TmTask tmTask = new TmTask();
tmTask.setId(details.getParenntId().toString()); tmTask.setId(details.getParenntId().toString());

View File

@ -21,7 +21,7 @@ import com.bonus.sgzb.system.api.domain.SysRole;
import com.bonus.sgzb.system.api.domain.SysUser; import com.bonus.sgzb.system.api.domain.SysUser;
import com.bonus.sgzb.system.api.model.LoginUser; import com.bonus.sgzb.system.api.model.LoginUser;
import com.bonus.sgzb.system.config.RsaUtil; import com.bonus.sgzb.system.config.RsaUtil;
import com.bonus.sgzb.system.domain.po.UrgentProcessingUser; import com.bonus.sgzb.system.api.domain.UrgentProcessingUser;
import com.bonus.sgzb.system.service.*; import com.bonus.sgzb.system.service.*;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -4,9 +4,8 @@ import java.util.List;
import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.system.api.domain.SysUser; import com.bonus.sgzb.system.api.domain.SysUser;
import com.bonus.sgzb.system.domain.po.UrgentProcessingUser; import com.bonus.sgzb.system.api.domain.UrgentProcessingUser;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
/** /**
* 用户 业务层 * 用户 业务层

View File

@ -1,9 +1,7 @@
package com.bonus.sgzb.system.service.impl; package com.bonus.sgzb.system.service.impl;
import com.bonus.sgzb.common.core.constant.UserConstants; import com.bonus.sgzb.common.core.constant.UserConstants;
import com.bonus.sgzb.common.core.enums.RoleEnum;
import com.bonus.sgzb.common.core.enums.TaskStatusEnum; import com.bonus.sgzb.common.core.enums.TaskStatusEnum;
import com.bonus.sgzb.common.core.enums.TaskTypeEnum;
import com.bonus.sgzb.common.core.exception.ServiceException; import com.bonus.sgzb.common.core.exception.ServiceException;
import com.bonus.sgzb.common.core.utils.SpringUtils; import com.bonus.sgzb.common.core.utils.SpringUtils;
import com.bonus.sgzb.common.core.utils.StringUtils; import com.bonus.sgzb.common.core.utils.StringUtils;
@ -17,14 +15,13 @@ import com.bonus.sgzb.system.api.domain.SysUser;
import com.bonus.sgzb.system.domain.SysPost; import com.bonus.sgzb.system.domain.SysPost;
import com.bonus.sgzb.system.domain.SysUserPost; import com.bonus.sgzb.system.domain.SysUserPost;
import com.bonus.sgzb.system.domain.SysUserRole; import com.bonus.sgzb.system.domain.SysUserRole;
import com.bonus.sgzb.system.domain.po.UrgentProcessingUser; import com.bonus.sgzb.system.api.domain.UrgentProcessingUser;
import com.bonus.sgzb.system.exception.SystemException; import com.bonus.sgzb.system.exception.SystemException;
import com.bonus.sgzb.system.mapper.*; import com.bonus.sgzb.system.mapper.*;
import com.bonus.sgzb.system.service.ISysConfigService; import com.bonus.sgzb.system.service.ISysConfigService;
import com.bonus.sgzb.system.service.ISysUserService; import com.bonus.sgzb.system.service.ISysUserService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -32,7 +29,6 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator; import javax.validation.Validator;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -565,13 +561,13 @@ public class SysUserServiceImpl implements ISysUserService {
@Override @Override
public AjaxResult urgentProcessingUser(UrgentProcessingUser urgentProcessingUser) { public AjaxResult urgentProcessingUser(UrgentProcessingUser urgentProcessingUser) {
log.info("ToDoServiceImpl urgentProcessingUser {} begin" ,urgentProcessingUser); log.info("ToDoServiceImpl urgentProcessingUser {} begin" ,urgentProcessingUser);
List<SysUser> userList = new ArrayList<>();
SysUser sysUser = new SysUser();
sysUser.setDeptId(urgentProcessingUser.getDeptId());
// 验证是否为空 // 验证是否为空
if (urgentProcessingUser == null || urgentProcessingUser.getTaskStatus() == null) { if (urgentProcessingUser == null || urgentProcessingUser.getTaskStatus() == null) {
throw new ServiceException(SystemException.TASK_ID_IS_EMPTY_MSG,SystemException.TASK_ID_IS_EMPTY); throw new ServiceException(SystemException.TASK_ID_IS_EMPTY_MSG,SystemException.TASK_ID_IS_EMPTY);
} }
List<SysUser> userList = new ArrayList<>();
SysUser sysUser = new SysUser();
sysUser.setDeptId(urgentProcessingUser.getDeptId());
switch (urgentProcessingUser.getTaskTypeId()){ switch (urgentProcessingUser.getTaskTypeId()){
//领料任务 //领料任务
case 29: case 29: