逐级短信审批催办
This commit is contained in:
parent
2b20d72d13
commit
2e6db070e9
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.bonus.sgzb.system.domain.po;
|
package com.bonus.sgzb.system.api.domain;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
@ -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());
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户 业务层
|
* 用户 业务层
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue