修改插入报错问题
This commit is contained in:
@@ -10,9 +10,8 @@ import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableScheduling //开启定时任务注解驱动
|
||||
@SpringBootApplication
|
||||
public class RuoYiApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
@@ -128,8 +128,8 @@ public class SysOaRemindController extends BaseController {
|
||||
* @return List<SysOaRemindVo>
|
||||
*/
|
||||
@GetMapping("/getRecentRemindList")
|
||||
public R<List<SysOaRemindVo>> getRecentRemindList() {
|
||||
List<SysOaRemindVo> remindList = iSysOaRemindService.queryRecentRemindList();
|
||||
public R<List<SysOaRemindVo>> getRecentRemindList(SysOaRemindBo bo) {
|
||||
List<SysOaRemindVo> remindList = iSysOaRemindService.queryRecentRemindList(bo);
|
||||
return R.ok(remindList);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.oa.domain.SysOaTask;
|
||||
import com.ruoyi.oa.domain.UserMonthlyData;
|
||||
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaTaskVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -44,4 +45,9 @@ public interface SysOaTaskMapper extends BaseMapperPlus<SysOaTaskMapper, SysOaTa
|
||||
|
||||
List<SysOaTaskVo> listDocumentProject(Long projectId);
|
||||
|
||||
/**
|
||||
* 新增:自定义查询任务列表(Plus版)
|
||||
*/
|
||||
List<SysOaTaskVo> queryListPlus(SysOaTaskBo bo);
|
||||
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public interface ISysOaRemindService {
|
||||
* 查询所有小于三天的任务和项目提醒,只查当天(到秒)。
|
||||
* @return List<SysOaRemindVo>
|
||||
*/
|
||||
List<SysOaRemindVo> queryRecentRemindList();
|
||||
List<SysOaRemindVo> queryRecentRemindList(SysOaRemindBo bo);
|
||||
|
||||
/**
|
||||
* 新增事件提醒
|
||||
|
||||
@@ -107,5 +107,9 @@ public interface ISysOaTaskService {
|
||||
* @return
|
||||
*/
|
||||
List<SysOaTaskVo> listDocumentProject(Long projectId);
|
||||
/**
|
||||
* 新增:自定义查询任务列表(Plus版)
|
||||
*/
|
||||
List<SysOaTaskVo> queryListPlus(SysOaTaskBo bo);
|
||||
|
||||
}
|
||||
|
||||
@@ -26,7 +26,9 @@ import com.ruoyi.oa.domain.vo.SysOaRemindVo;
|
||||
import com.ruoyi.oa.domain.SysOaRemind;
|
||||
import com.ruoyi.oa.mapper.SysOaRemindMapper;
|
||||
import com.ruoyi.oa.service.ISysOaRemindService;
|
||||
import org.yaml.snakeyaml.constructor.Construct;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@@ -159,7 +161,7 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysOaRemindVo> queryRecentRemindList() {
|
||||
public List<SysOaRemindVo> queryRecentRemindList(SysOaRemindBo bo) {
|
||||
LambdaQueryWrapper<SysOaRemind> lqw = Wrappers.lambdaQuery();
|
||||
lqw.in(SysOaRemind::getRemindType, Arrays.asList("task", "project"));
|
||||
lqw.eq(SysOaRemind::getTaskStatus, "0");
|
||||
@@ -168,6 +170,9 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
|
||||
String today = sdf.format(new java.util.Date());
|
||||
lqw.apply("DATE_FORMAT(create_time, '%Y-%m-%d') = {0}", today);
|
||||
lqw.orderByAsc(SysOaRemind::getEndTime);
|
||||
if (bo != null && bo.getTargetUserId() != null) {
|
||||
lqw.eq(SysOaRemind::getTargetUserId, bo.getTargetUserId());
|
||||
}
|
||||
List<SysOaRemind> remindList = baseMapper.selectList(lqw);
|
||||
List<SysOaRemindVo> voList = new ArrayList<>();
|
||||
for (SysOaRemind remind : remindList) {
|
||||
@@ -268,17 +273,30 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
|
||||
/**
|
||||
* 定时任务:每天凌晨1点,查task表和project表,把3天内到期且未完成/未完结的任务和项目插入remind表。
|
||||
*/
|
||||
@Scheduled(cron = "0 0 1 * * ?")
|
||||
// @PostConstruct
|
||||
//一秒执行一次
|
||||
|
||||
// @Scheduled(fixedRate = 1000)
|
||||
@Scheduled(cron = "0 * * * * ?")
|
||||
public void generateRemindJob() {
|
||||
// 查询3天内到期的任务
|
||||
SysOaTaskBo taskBo = new SysOaTaskBo();
|
||||
// 只查未完成任务
|
||||
taskBo.setState(0L);
|
||||
List<SysOaTaskVo> taskList = sysOaTaskService.queryList(taskBo);
|
||||
List<SysOaTaskVo> taskList = sysOaTaskService.queryListPlus(taskBo);
|
||||
Date now = new Date();
|
||||
for (SysOaTaskVo task : taskList) {
|
||||
if (task.getFinishTime() != null) {
|
||||
long diff = (task.getFinishTime().getTime() - now.getTime()) / (1000 * 60 * 60 * 24);
|
||||
Date endTime = null;
|
||||
if (task.getStatus() != null && task.getStatus() == 1L) {
|
||||
// 报工模式,endTime=beginTime+timeGap天
|
||||
endTime = com.ruoyi.oa.service.impl.SysOaTaskServiceImpl.addDays(task.getBeginTime(), task.getTimeGap());
|
||||
System.out.println("报工模式,endTime=beginTime+timeGap天"+endTime);
|
||||
} else {
|
||||
// 普通模式,endTime=finishTime
|
||||
endTime = task.getFinishTime();
|
||||
}
|
||||
if (endTime != null) {
|
||||
long diff = (endTime.getTime() - now.getTime()) / (1000 * 60 * 60 * 24);
|
||||
if (diff >= 0 && diff <= 3) {
|
||||
SysOaRemind remind = new SysOaRemind();
|
||||
remind.setRemindType("task");
|
||||
@@ -288,7 +306,7 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
|
||||
remind.setContent(task.getContent());
|
||||
remind.setTaskTime(now);
|
||||
remind.setTaskStatus("0");
|
||||
remind.setEndTime(task.getFinishTime());
|
||||
remind.setEndTime(endTime);
|
||||
remind.setCreateBy(task.getCreateBy());
|
||||
remind.setCreateTime(now);
|
||||
remind.setUpdateBy(""); // 无updateBy
|
||||
|
||||
@@ -124,6 +124,14 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
|
||||
return baseMapper.listDocumentProject(projectId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增:自定义查询任务列表(Plus版)
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaTaskVo> queryListPlus(SysOaTaskBo bo) {
|
||||
return baseMapper.queryListPlus(bo);
|
||||
}
|
||||
|
||||
private QueryWrapper<SysOaTask> buildQueryWrapper(SysOaTaskBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
QueryWrapper<SysOaTask> lqw = Wrappers.query();
|
||||
|
||||
@@ -365,5 +365,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
</select>
|
||||
|
||||
<select id="queryListPlus" parameterType="com.ruoyi.oa.domain.bo.SysOaTaskBo" resultType="com.ruoyi.oa.domain.vo.SysOaTaskVo">
|
||||
SELECT
|
||||
task_id AS taskId,
|
||||
project_id AS projectId,
|
||||
task_title AS taskTitle,
|
||||
task_type AS taskType,
|
||||
task_grade AS taskGrade,
|
||||
collaborator AS collaborator,
|
||||
begin_time AS beginTime,
|
||||
finish_time AS finishTime,
|
||||
content AS content,
|
||||
accessory AS accessory,
|
||||
remark AS remark,
|
||||
create_by AS createBy,
|
||||
create_time AS createTime,
|
||||
create_user_id AS createUserId,
|
||||
worker_id AS workerId,
|
||||
origin_finish_time AS originFinishTime,
|
||||
postponements AS postponements,
|
||||
rank_number AS rankNumber,
|
||||
completed_time AS completedTime,
|
||||
state AS state,
|
||||
task_rank AS taskRank,
|
||||
own_rank AS ownRank,
|
||||
status AS status,
|
||||
time_gap AS timeGap,
|
||||
temp_time AS tempTime
|
||||
FROM sys_oa_task
|
||||
<where>
|
||||
<if test="state != null">
|
||||
state = #{state}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user