修改插入报错问题

This commit is contained in:
2025-07-09 18:50:26 +08:00
parent 8b93776a0d
commit 047c2901fb
8 changed files with 81 additions and 11 deletions

View File

@@ -10,9 +10,8 @@ import org.springframework.scheduling.annotation.EnableScheduling;
* *
* @author ruoyi * @author ruoyi
*/ */
@SpringBootApplication
@EnableScheduling //开启定时任务注解驱动 @EnableScheduling //开启定时任务注解驱动
@SpringBootApplication
public class RuoYiApplication { public class RuoYiApplication {
public static void main(String[] args) { public static void main(String[] args) {

View File

@@ -128,8 +128,8 @@ public class SysOaRemindController extends BaseController {
* @return List<SysOaRemindVo> * @return List<SysOaRemindVo>
*/ */
@GetMapping("/getRecentRemindList") @GetMapping("/getRecentRemindList")
public R<List<SysOaRemindVo>> getRecentRemindList() { public R<List<SysOaRemindVo>> getRecentRemindList(SysOaRemindBo bo) {
List<SysOaRemindVo> remindList = iSysOaRemindService.queryRecentRemindList(); List<SysOaRemindVo> remindList = iSysOaRemindService.queryRecentRemindList(bo);
return R.ok(remindList); return R.ok(remindList);
} }
} }

View File

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.oa.domain.SysOaTask; import com.ruoyi.oa.domain.SysOaTask;
import com.ruoyi.oa.domain.UserMonthlyData; import com.ruoyi.oa.domain.UserMonthlyData;
import com.ruoyi.oa.domain.bo.SysOaTaskBo;
import com.ruoyi.oa.domain.vo.SysOaTaskVo; import com.ruoyi.oa.domain.vo.SysOaTaskVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus; import com.ruoyi.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -44,4 +45,9 @@ public interface SysOaTaskMapper extends BaseMapperPlus<SysOaTaskMapper, SysOaTa
List<SysOaTaskVo> listDocumentProject(Long projectId); List<SysOaTaskVo> listDocumentProject(Long projectId);
/**
* 新增自定义查询任务列表Plus版
*/
List<SysOaTaskVo> queryListPlus(SysOaTaskBo bo);
} }

View File

@@ -48,7 +48,7 @@ public interface ISysOaRemindService {
* 查询所有小于三天的任务和项目提醒,只查当天(到秒)。 * 查询所有小于三天的任务和项目提醒,只查当天(到秒)。
* @return List<SysOaRemindVo> * @return List<SysOaRemindVo>
*/ */
List<SysOaRemindVo> queryRecentRemindList(); List<SysOaRemindVo> queryRecentRemindList(SysOaRemindBo bo);
/** /**
* 新增事件提醒 * 新增事件提醒

View File

@@ -107,5 +107,9 @@ public interface ISysOaTaskService {
* @return * @return
*/ */
List<SysOaTaskVo> listDocumentProject(Long projectId); List<SysOaTaskVo> listDocumentProject(Long projectId);
/**
* 新增自定义查询任务列表Plus版
*/
List<SysOaTaskVo> queryListPlus(SysOaTaskBo bo);
} }

View File

@@ -26,7 +26,9 @@ import com.ruoyi.oa.domain.vo.SysOaRemindVo;
import com.ruoyi.oa.domain.SysOaRemind; import com.ruoyi.oa.domain.SysOaRemind;
import com.ruoyi.oa.mapper.SysOaRemindMapper; import com.ruoyi.oa.mapper.SysOaRemindMapper;
import com.ruoyi.oa.service.ISysOaRemindService; import com.ruoyi.oa.service.ISysOaRemindService;
import org.yaml.snakeyaml.constructor.Construct;
import javax.annotation.PostConstruct;
import java.util.*; import java.util.*;
/** /**
@@ -159,7 +161,7 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
} }
@Override @Override
public List<SysOaRemindVo> queryRecentRemindList() { public List<SysOaRemindVo> queryRecentRemindList(SysOaRemindBo bo) {
LambdaQueryWrapper<SysOaRemind> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SysOaRemind> lqw = Wrappers.lambdaQuery();
lqw.in(SysOaRemind::getRemindType, Arrays.asList("task", "project")); lqw.in(SysOaRemind::getRemindType, Arrays.asList("task", "project"));
lqw.eq(SysOaRemind::getTaskStatus, "0"); lqw.eq(SysOaRemind::getTaskStatus, "0");
@@ -168,6 +170,9 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
String today = sdf.format(new java.util.Date()); String today = sdf.format(new java.util.Date());
lqw.apply("DATE_FORMAT(create_time, '%Y-%m-%d') = {0}", today); lqw.apply("DATE_FORMAT(create_time, '%Y-%m-%d') = {0}", today);
lqw.orderByAsc(SysOaRemind::getEndTime); lqw.orderByAsc(SysOaRemind::getEndTime);
if (bo != null && bo.getTargetUserId() != null) {
lqw.eq(SysOaRemind::getTargetUserId, bo.getTargetUserId());
}
List<SysOaRemind> remindList = baseMapper.selectList(lqw); List<SysOaRemind> remindList = baseMapper.selectList(lqw);
List<SysOaRemindVo> voList = new ArrayList<>(); List<SysOaRemindVo> voList = new ArrayList<>();
for (SysOaRemind remind : remindList) { for (SysOaRemind remind : remindList) {
@@ -268,17 +273,30 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
/** /**
* 定时任务每天凌晨1点查task表和project表把3天内到期且未完成/未完结的任务和项目插入remind表。 * 定时任务每天凌晨1点查task表和project表把3天内到期且未完成/未完结的任务和项目插入remind表。
*/ */
@Scheduled(cron = "0 0 1 * * ?") // @PostConstruct
//一秒执行一次
// @Scheduled(fixedRate = 1000)
@Scheduled(cron = "0 * * * * ?")
public void generateRemindJob() { public void generateRemindJob() {
// 查询3天内到期的任务 // 查询3天内到期的任务
SysOaTaskBo taskBo = new SysOaTaskBo(); SysOaTaskBo taskBo = new SysOaTaskBo();
// 只查未完成任务 // 只查未完成任务
taskBo.setState(0L); taskBo.setState(0L);
List<SysOaTaskVo> taskList = sysOaTaskService.queryList(taskBo); List<SysOaTaskVo> taskList = sysOaTaskService.queryListPlus(taskBo);
Date now = new Date(); Date now = new Date();
for (SysOaTaskVo task : taskList) { for (SysOaTaskVo task : taskList) {
if (task.getFinishTime() != null) { Date endTime = null;
long diff = (task.getFinishTime().getTime() - now.getTime()) / (1000 * 60 * 60 * 24); 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) { if (diff >= 0 && diff <= 3) {
SysOaRemind remind = new SysOaRemind(); SysOaRemind remind = new SysOaRemind();
remind.setRemindType("task"); remind.setRemindType("task");
@@ -288,7 +306,7 @@ public class SysOaRemindServiceImpl implements ISysOaRemindService {
remind.setContent(task.getContent()); remind.setContent(task.getContent());
remind.setTaskTime(now); remind.setTaskTime(now);
remind.setTaskStatus("0"); remind.setTaskStatus("0");
remind.setEndTime(task.getFinishTime()); remind.setEndTime(endTime);
remind.setCreateBy(task.getCreateBy()); remind.setCreateBy(task.getCreateBy());
remind.setCreateTime(now); remind.setCreateTime(now);
remind.setUpdateBy(""); // 无updateBy remind.setUpdateBy(""); // 无updateBy

View File

@@ -124,6 +124,14 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
return baseMapper.listDocumentProject(projectId); return baseMapper.listDocumentProject(projectId);
} }
/**
* 新增自定义查询任务列表Plus版
*/
@Override
public List<SysOaTaskVo> queryListPlus(SysOaTaskBo bo) {
return baseMapper.queryListPlus(bo);
}
private QueryWrapper<SysOaTask> buildQueryWrapper(SysOaTaskBo bo) { private QueryWrapper<SysOaTask> buildQueryWrapper(SysOaTaskBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
QueryWrapper<SysOaTask> lqw = Wrappers.query(); QueryWrapper<SysOaTask> lqw = Wrappers.query();

View File

@@ -365,5 +365,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </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> </mapper>