diff --git a/src/main/java/com/jsl/oa/controllers/MessageController.java b/src/main/java/com/jsl/oa/controllers/MessageController.java index d511a9f..2418ff8 100644 --- a/src/main/java/com/jsl/oa/controllers/MessageController.java +++ b/src/main/java/com/jsl/oa/controllers/MessageController.java @@ -71,24 +71,5 @@ public class MessageController { } } - /** - * 指派时消息 - * - * @param request - * @return - */ - @PostMapping("/message/assign") - public BaseResponse messageAssign( - @RequestParam Integer pId, - @RequestParam Integer systemId, - @RequestParam Integer moddleId, - @RequestParam Long uId, - @RequestParam Long isPass, - HttpServletRequest request) { - //messageService.messageAdd(pId, systemId, moddleId, uId, isPass, request); - return ResultUtil.success(); - } - - } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index dc25d03..e25b13b 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; +import java.time.LocalDateTime; import java.util.List; @Mapper @@ -115,4 +116,9 @@ public interface ProjectMapper { @Select("select principal_id from organize_oa.oa_project_work where pid=#{id}") List getMemberBySystemId(Integer id); + + @Select("select * from organize_oa.oa_project_work " + + "where DATE(deadline) = DATE(#{threeDayLater}) and is_finish != 1") + List getProjectWorkByTime(LocalDateTime threeDayLater); + } diff --git a/src/main/java/com/jsl/oa/services/MessageService.java b/src/main/java/com/jsl/oa/services/MessageService.java index 89c2910..dd54b98 100644 --- a/src/main/java/com/jsl/oa/services/MessageService.java +++ b/src/main/java/com/jsl/oa/services/MessageService.java @@ -30,4 +30,6 @@ public interface MessageService { void messageAdd(Integer pId, Integer type, Integer systemId, HttpServletRequest request); void messageAdd(Integer pId, Integer systmeId, Integer moddleId, Integer type, HttpServletRequest request); void messageAdd(Integer pId, Integer systemId, Integer moddleId); + + void messageRemind(); } diff --git a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java index 3bb8f67..4c8100c 100644 --- a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java @@ -4,6 +4,7 @@ import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.MessageMapper; import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.model.dodata.MessageDO; +import com.jsl.oa.model.dodata.ProjectWorkDO; import com.jsl.oa.model.vodata.MessageAddVO; import com.jsl.oa.model.vodata.MessageGetVO; import com.jsl.oa.services.MessageService; @@ -246,7 +247,7 @@ public class MessageServiceImpl implements MessageService { } /** - * 添加日报消息 + * 添加成员填写日报消息 * * @param pId 项目id * @param systemId 系统id @@ -272,6 +273,76 @@ public class MessageServiceImpl implements MessageService { messageMapper.messageAdd(messageAddVO); } + /** + * 添加提醒消息 + * 系统/模块到期提醒 + */ + @Override + public void messageRemind() { + // 当前时间 + LocalDateTime now = LocalDateTime.now(); + // 三天后时间 + LocalDateTime threeDaysLater = now.plusDays(3); + // 七天后时间 + LocalDateTime sevenDaysLater = now.plusDays(7); + // 获取三天后到期的系统/模块 + List projectWorkDOList = projectMapper.getProjectWorkByTime(threeDaysLater); + // 获取七天后到期的系统/模块 + List projectWorkDOList1 = projectMapper.getProjectWorkByTime(sevenDaysLater); + if (!projectWorkDOList1.isEmpty()) { + for (ProjectWorkDO projectWorkDO : projectWorkDOList) { + // 添加消息 + MessageAddVO messageAddVO = new MessageAddVO(); + messageAddVO.setUid(projectWorkDO.getPrincipalId()); + messageAddVO.setTitle("提醒消息"); + // 0:系统 1:模块 + String projectName = projectMapper + .tgetProjectById(projectWorkDO.getProjectId().intValue()).getName(); + String systemName; + if (projectWorkDO.getType() == 1) { + systemName = projectMapper.getWorkById(projectWorkDO.getPid().intValue()).getName(); + String moddleName = projectMapper.getWorkById(projectWorkDO.getId().intValue()).getName(); + messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块" + + "还有七天就要到期了,请及时处理"); + messageAddVO.setType("跳转模块页"); + } else { + systemName = projectMapper.getWorkById(projectWorkDO.getId().intValue()).getName(); + messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统" + + "还有七天就要到期了,请及时处理"); + messageAddVO.setType("跳转系统页"); + } + messageAddVO.setToId(projectWorkDO.getId().intValue()); + messageMapper.messageAdd(messageAddVO); + } + } + if (!projectWorkDOList.isEmpty()) { + for (ProjectWorkDO projectWorkDO : projectWorkDOList) { + // 添加消息 + MessageAddVO messageAddVO = new MessageAddVO(); + messageAddVO.setUid(projectWorkDO.getPrincipalId()); + messageAddVO.setTitle("提醒消息"); + // 0:系统 1:模块 + String projectName = projectMapper + .tgetProjectById(projectWorkDO.getProjectId().intValue()).getName(); + String systemName; + if (projectWorkDO.getType() == 1) { + systemName = projectMapper.getWorkById(projectWorkDO.getPid().intValue()).getName(); + String moddleName = projectMapper.getWorkById(projectWorkDO.getId().intValue()).getName(); + messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块" + + "还有三天就要到期了,请及时处理"); + messageAddVO.setType("跳转模块页"); + } else { + systemName = projectMapper.getWorkById(projectWorkDO.getId().intValue()).getName(); + messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统" + + "还有三天就要到期了,请及时处理"); + messageAddVO.setType("跳转系统页"); + } + messageAddVO.setToId(projectWorkDO.getId().intValue()); + messageMapper.messageAdd(messageAddVO); + } + } + } + } diff --git a/src/main/java/com/jsl/oa/services/timese/MessageTimeTask.java b/src/main/java/com/jsl/oa/services/timese/MessageTimeTask.java new file mode 100644 index 0000000..e998487 --- /dev/null +++ b/src/main/java/com/jsl/oa/services/timese/MessageTimeTask.java @@ -0,0 +1,20 @@ +package com.jsl.oa.services.timese; + + +import com.jsl.oa.services.MessageService; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +public class MessageTimeTask { + @Resource + private MessageService messageService; + + // 每天0点执行一次 + @Scheduled(cron = "0 0 0 * * ?") + public void messageRemind() { + messageService.messageRemind(); + } +}