修改插入报错问题

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
*/
@SpringBootApplication
@EnableScheduling //开启定时任务注解驱动
@SpringBootApplication
public class RuoYiApplication {
public static void main(String[] args) {

View File

@@ -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);
}
}

View File

@@ -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);
}

View File

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

View File

@@ -107,5 +107,9 @@ public interface ISysOaTaskService {
* @return
*/
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.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

View File

@@ -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();

View File

@@ -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>