From f57064d2fa563ee4cfeeccd715850ba8b8aa4f60 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 18 五月 2026 09:44:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_宁夏_英泽防锈
---
src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java | 85 ++++++++++++++++++++++++++++++++----------
1 files changed, 65 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
index 6cf4b7a..779dc5f 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
@@ -1,20 +1,20 @@
package com.ruoyi.inspectiontask.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.inspectiontask.dto.TimingTaskDto;
-import com.ruoyi.inspectiontask.mapper.InspectionTaskMapper;
import com.ruoyi.inspectiontask.mapper.TimingTaskMapper;
import com.ruoyi.inspectiontask.pojo.TimingTask;
import com.ruoyi.inspectiontask.service.TimingTaskService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.quartz.SchedulerException;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -29,25 +29,31 @@
*/
@Service
@Slf4j
+@RequiredArgsConstructor
public class TimingTaskServiceImpl extends ServiceImpl<TimingTaskMapper, TimingTask> implements TimingTaskService {
- @Autowired
- private TimingTaskMapper timingTaskMapper;
-
- @Autowired
- private InspectionTaskMapper inspectionTaskMapper;
-
- @Autowired
- private TimingTaskScheduler timingTaskScheduler;
-
- @Autowired
- private SysUserMapper sysUserMapper;
+ private final TimingTaskMapper timingTaskMapper;
+ private final TimingTaskScheduler timingTaskScheduler;
+ private final SysUserMapper sysUserMapper;
+ private static final int ENABLED = 1;
+ private static final int DISABLED = 0;
@Override
public IPage<TimingTaskDto> selectTimingTaskList(Page<TimingTask> page, TimingTask timingTask) {
// 1. 鍏堝垎椤垫煡璇㈠畾鏃朵换鍔℃暟鎹�
- IPage<TimingTask> taskPage = timingTaskMapper.selectPage(page, null);
+ // 鏋勫缓鏌ヨ鏉′欢
+ LambdaQueryWrapper<TimingTask> queryWrapper = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotBlank(timingTask.getTaskName())) {
+ queryWrapper.like(TimingTask::getTaskName, timingTask.getTaskName());
+ }
+ if (StringUtils.isNotBlank(timingTask.getInspectionProject())) {
+ queryWrapper.like(TimingTask::getInspectionProject, timingTask.getInspectionProject());
+ }
+ if (timingTask.getIsEnabled() != null) {
+ queryWrapper.eq(TimingTask::getIsEnabled, timingTask.getIsEnabled());
+ }
+ IPage<TimingTask> taskPage = timingTaskMapper.selectPage(page, queryWrapper);
// 2. 濡傛灉娌℃湁鏁版嵁锛岀洿鎺ヨ繑鍥炵┖鍒嗛〉
if (taskPage.getRecords().isEmpty()) {
@@ -117,12 +123,23 @@
@Override
@Transactional
public int addOrEditTimingTask(TimingTaskDto timingTaskDto) throws SchedulerException {
+ TimingTask oldTimingTask = null;
+ if (Objects.nonNull(timingTaskDto.getId())) {
+ oldTimingTask = timingTaskMapper.selectById(timingTaskDto.getId());
+ if (oldTimingTask == null) {
+ throw new IllegalArgumentException("瀹氭椂浠诲姟涓嶅瓨鍦�");
+ }
+ }
TimingTask timingTask = new TimingTask();
BeanUtils.copyProperties(timingTaskDto, timingTask);
+ timingTask.setIsEnabled(resolveEnabledValue(timingTask.getIsEnabled(), oldTimingTask));
+ timingTask.setActive(ENABLED == timingTask.getIsEnabled());
// 1. 瑙f瀽瀛楃涓蹭负 LocalDate锛堝彧鍖呭惈骞存湀鏃ワ級
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- LocalDate localDate = LocalDate.parse(timingTaskDto.getDateStr(), formatter);
-
+ LocalDate localDate = LocalDate.now();
+ if(StringUtils.isNotEmpty(timingTaskDto.getDateStr())){
+ localDate = LocalDate.parse(timingTaskDto.getDateStr(), formatter);
+ }
// 2. 鑾峰彇褰撳墠绯荤粺鐨� LocalTime锛堝寘鍚椂鍒嗙锛�
LocalTime currentTime = LocalTime.now();
@@ -132,13 +149,12 @@
// 璁剧疆鍒涘缓浜轰俊鎭拰榛樿鍊�
if (Objects.isNull(timingTaskDto.getId())) {
timingTask.setRegistrationDate(LocalDate.now());
- timingTask.setActive(true);
// 璁$畻棣栨鎵ц鏃堕棿
LocalDateTime firstExecutionTime = calculateFirstExecutionTime(timingTask);
timingTask.setNextExecutionTime(firstExecutionTime);
int result = timingTaskMapper.insert(timingTask);
- if (result > 0) {
+ if (result > 0 && isEnabled(timingTask.getIsEnabled(), timingTask.isActive())) {
// 鏂板鎴愬姛鍚庢坊鍔犲埌璋冨害鍣�
timingTaskScheduler.scheduleTimingTask(timingTask);
}
@@ -148,8 +164,17 @@
int result = timingTaskMapper.updateById(timingTask);
if (result > 0) {
- // 鏇存柊鎴愬姛鍚庨噸鏂拌皟搴︿换鍔�
- timingTaskScheduler.rescheduleTimingTask(timingTask);
+ boolean oldEnabled = isEnabled(oldTimingTask == null ? null : oldTimingTask.getIsEnabled(), oldTimingTask != null && oldTimingTask.isActive());
+ boolean newEnabled = isEnabled(timingTask.getIsEnabled(), timingTask.isActive());
+ if (!newEnabled) {
+ timingTaskScheduler.unscheduleTimingTask(timingTask.getId());
+ } else if (oldEnabled) {
+ // 鏇存柊鎴愬姛鍚庨噸鏂拌皟搴︿换鍔�
+ timingTaskScheduler.rescheduleTimingTask(timingTask);
+ } else {
+ // 浠庣鐢ㄦ敼涓哄惎鐢ㄦ椂閲嶆柊鍒涘缓璋冨害浠诲姟
+ timingTaskScheduler.scheduleTimingTask(timingTask);
+ }
}
return result;
}
@@ -451,6 +476,26 @@
return days;
}
+ private Integer resolveEnabledValue(Integer requestEnabled, TimingTask oldTimingTask) {
+ if (requestEnabled != null) {
+ return requestEnabled;
+ }
+ if (oldTimingTask != null) {
+ if (oldTimingTask.getIsEnabled() != null) {
+ return oldTimingTask.getIsEnabled();
+ }
+ return oldTimingTask.isActive() ? ENABLED : DISABLED;
+ }
+ return ENABLED;
+ }
+
+ private boolean isEnabled(Integer enabledValue, boolean activeFallback) {
+ if (enabledValue != null) {
+ return ENABLED == enabledValue;
+ }
+ return activeFallback;
+ }
+
@Override
--
Gitblit v1.9.3