diff --git a/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/system/api/RemoteUserService.java b/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/system/api/RemoteUserService.java index 8655bfd7..e5036e3d 100644 --- a/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/system/api/RemoteUserService.java +++ b/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/system/api/RemoteUserService.java @@ -1,6 +1,8 @@ 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.UrgentProcessingUser; import com.bonus.sgzb.system.api.factory.RemoteUserFallbackFactory; import com.bonus.sgzb.system.api.model.LoginUser; import org.springframework.cloud.openfeign.FeignClient; @@ -84,4 +86,13 @@ public interface RemoteUserService */ @GetMapping("/user/getUserList") public R> getUserList(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 通过任务状态获取下一级审批人的信息 + * + * @param urgentProcessingUser + * @return + */ + @PostMapping("/urgentProcessingUser") + public AjaxResult urgentProcessingUser(@RequestBody UrgentProcessingUser urgentProcessingUser); } diff --git a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/domain/po/UrgentProcessingUser.java b/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/system/api/domain/UrgentProcessingUser.java similarity index 90% rename from sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/domain/po/UrgentProcessingUser.java rename to sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/system/api/domain/UrgentProcessingUser.java index b176ae67..af1cb9d0 100644 --- a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/domain/po/UrgentProcessingUser.java +++ b/sgzb-api/sgzb-api-system/src/main/java/com/bonus/sgzb/system/api/domain/UrgentProcessingUser.java @@ -1,4 +1,4 @@ -package com.bonus.sgzb.system.domain.po; +package com.bonus.sgzb.system.api.domain; import lombok.Data; diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/controller/TmTaskController.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/controller/TmTaskController.java index c7027ccd..bef02f95 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/controller/TmTaskController.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/controller/TmTaskController.java @@ -5,8 +5,8 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.util.PhoneUtil; import com.bonus.sgzb.app.domain.*; 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.common.core.enums.TaskStatusEnum; import com.bonus.sgzb.common.core.utils.ListPagingUtil; import com.bonus.sgzb.common.core.utils.ServletUtils; 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.enums.BusinessType; 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 lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; import java.util.ArrayList; 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_SIZE; @@ -39,6 +42,7 @@ import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_SIZE; */ @RestController @RequestMapping("/tm_task") +@Slf4j public class TmTaskController extends BaseController { /** @@ -62,6 +66,9 @@ public class TmTaskController extends BaseController { @Resource private ITypeService iTypeService; + @Resource + private RemoteUserService remoteUserService; + /** * 领料审核通过,分公司,分管,机具分公司统一接口 @@ -263,6 +270,37 @@ public class TmTaskController extends BaseController { } else { 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 userList = (List) 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("任务创建成功"); } catch (Exception e) { return AjaxResult.error("创建任务失败," + e.getCause().toString() + "," + e.getMessage()); diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java index 6b078259..c99a82cc 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java @@ -13,12 +13,16 @@ import com.bonus.sgzb.base.api.domain.BmFlowRecord; import com.bonus.sgzb.base.api.domain.BmFlowRelation; import com.bonus.sgzb.common.core.constant.Constants; 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.StringUtils; import com.bonus.sgzb.common.core.web.domain.AjaxResult; 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 lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -191,6 +195,7 @@ public class TmTaskServiceImpl implements TmTaskService { } } } + sendMessageToLeader(record); } else { // 先审核任务表 result += tmTaskMapper.updateTmTaskAuditStatus(record); @@ -214,6 +219,7 @@ public class TmTaskServiceImpl implements TmTaskService { } } } + sendMessageToLeader(record); } } else { 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 userList = (List) 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) { TmTask tmTask = new TmTask(); tmTask.setId(details.getParenntId().toString()); diff --git a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/controller/SysUserController.java b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/controller/SysUserController.java index a28b0c94..54d5bb10 100644 --- a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/controller/SysUserController.java +++ b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/controller/SysUserController.java @@ -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.model.LoginUser; 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 io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; diff --git a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/ISysUserService.java b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/ISysUserService.java index 62ad9fab..2ddcae71 100644 --- a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/ISysUserService.java +++ b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/ISysUserService.java @@ -4,9 +4,8 @@ import java.util.List; import com.bonus.sgzb.common.core.web.domain.AjaxResult; 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.springframework.stereotype.Component; /** * 用户 业务层 diff --git a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysUserServiceImpl.java b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysUserServiceImpl.java index 68720417..7e0adcda 100644 --- a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysUserServiceImpl.java +++ b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysUserServiceImpl.java @@ -1,9 +1,7 @@ package com.bonus.sgzb.system.service.impl; 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.TaskTypeEnum; import com.bonus.sgzb.common.core.exception.ServiceException; import com.bonus.sgzb.common.core.utils.SpringUtils; 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.SysUserPost; 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.mapper.*; import com.bonus.sgzb.system.service.ISysConfigService; import com.bonus.sgzb.system.service.ISysUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -32,7 +29,6 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.validation.Validator; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -565,13 +561,13 @@ public class SysUserServiceImpl implements ISysUserService { @Override public AjaxResult urgentProcessingUser(UrgentProcessingUser urgentProcessingUser) { log.info("ToDoServiceImpl urgentProcessingUser {} begin" ,urgentProcessingUser); - List userList = new ArrayList<>(); - SysUser sysUser = new SysUser(); - sysUser.setDeptId(urgentProcessingUser.getDeptId()); // 验证是否为空 if (urgentProcessingUser == null || urgentProcessingUser.getTaskStatus() == null) { throw new ServiceException(SystemException.TASK_ID_IS_EMPTY_MSG,SystemException.TASK_ID_IS_EMPTY); } + List userList = new ArrayList<>(); + SysUser sysUser = new SysUser(); + sysUser.setDeptId(urgentProcessingUser.getDeptId()); switch (urgentProcessingUser.getTaskTypeId()){ //领料任务 case 29: