From bcd62be27acf68adb54415f75b37f5e26d65c11b Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 07 五月 2025 10:34:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java | 69 +++++++++++++++++++++++-----------
1 files changed, 47 insertions(+), 22 deletions(-)
diff --git a/server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java b/server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java
index a426c60..b2e0c19 100644
--- a/server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java
+++ b/server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java
@@ -1,16 +1,20 @@
package com.doumee.service.timer;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
import com.doumee.dao.timer.entity.JobState;
import com.doumee.dao.timer.entity.QuartzJob;
import com.doumee.dao.timer.mapper.QuartzJobMapper;
import com.doumee.dao.timer.scheduler.QuartzManage;
-import org.quartz.CronTrigger;
import org.springframework.stereotype.Service;
-import javax.annotation.PostConstruct;
import javax.annotation.Resource;
-import java.util.List;
import java.util.Objects;
/**
@@ -27,24 +31,6 @@
private QuartzManage quartzManage;
/**
- * 鍒濆鍖栧姞杞藉畾鏃朵换鍔�
- */
- @PostConstruct
- public void init () {
- LambdaQueryWrapper<QuartzJob> queryWrapper = new LambdaQueryWrapper<>() ;
- queryWrapper.in(QuartzJob::getState, JobState.JOB_RUN.getStatus(),JobState.JOB_STOP.getStatus());
- List<QuartzJob> jobList = quartzJobMapper.selectList(queryWrapper);
- jobList.forEach(quartzJob -> {
- CronTrigger cronTrigger = quartzManage.getCronTrigger(quartzJob.getId()) ;
- if (Objects.isNull(cronTrigger)){
- quartzManage.createJob(quartzJob);
- } else {
- quartzManage.updateJob(quartzJob);
- }
- });
- }
-
- /**
* 浠诲姟涓婚敭鏌ヨ
*/
public QuartzJob getById(Integer id) {
@@ -55,6 +41,11 @@
* 鏂板浠诲姟
*/
public int insert(QuartzJob quartzJob) {
+ if(quartzJobMapper.selectCount(new QueryWrapper<QuartzJob>().lambda()
+ .eq(QuartzJob::getModule,quartzJob.getModule())
+ .eq(QuartzJob::getBeanName,quartzJob.getBeanName())) >0){
+ throw new BusinessException(ResponseStatus.DATA_EXISTS);
+ }
int flag = quartzJobMapper.insert(quartzJob) ;
if (flag > 0){
quartzManage.createJob(quartzJob) ;
@@ -66,6 +57,12 @@
* 鏇存柊浠诲姟
*/
public int update(QuartzJob quartzJob) {
+ if(quartzJobMapper.selectCount(new QueryWrapper<QuartzJob>().lambda()
+ .eq(QuartzJob::getModule,quartzJob.getModule())
+ .ne(QuartzJob::getId,quartzJob.getId())
+ .eq(QuartzJob::getBeanName,quartzJob.getBeanName())) >0){
+ throw new BusinessException(ResponseStatus.DATA_EXISTS);
+ }
int flag = quartzJobMapper.updateById(quartzJob);
if (flag > 0){
quartzManage.updateJob(quartzJob);
@@ -108,4 +105,32 @@
quartzManage.run(quartzJob);
}
}
+
+ public PageData<QuartzJob> findPage(PageWrap<QuartzJob> pageWrap) {
+ IPage<QuartzJob> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<QuartzJob> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ queryWrapper.lambda()
+ .eq(pageWrap.getModel().getId() != null, QuartzJob::getId, pageWrap.getModel().getId())
+ .eq(pageWrap.getModel().getParams() != null, QuartzJob::getParams, pageWrap.getModel().getParams())
+ .like(pageWrap.getModel().getBeanName() != null, QuartzJob::getBeanName, pageWrap.getModel().getBeanName())
+ .eq(pageWrap.getModel().getState() != null, QuartzJob::getState, pageWrap.getModel().getState())
+ .eq(pageWrap.getModel().getRemark() != null, QuartzJob::getRemark, pageWrap.getModel().getRemark())
+ .like(pageWrap.getModel().getModule() != null, QuartzJob::getModule, pageWrap.getModel().getModule())
+ ;
+ return PageData.from(quartzJobMapper.selectPage(page, queryWrapper));
+ }
+
+
+ public void updateById(QuartzJob model) {
+ QuartzJob quartzJob = quartzJobMapper.selectById(model.getId()) ;
+ if (Objects.isNull(quartzJob)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ pause(model.getId());//鏆傚仠
+ //鍏堝垹闄ゅ氨浠诲姟
+ quartzManage.deleteJob(model.getId());
+ quartzJob.setState(JobState.JOB_STOP.getStatus());
+ quartzJobMapper.updateById(quartzJob) ;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3