From 7298d5354963a88643a543b51b90192dc9fc934c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 11 九月 2025 18:43:14 +0800
Subject: [PATCH] 最新版本541200007

---
 server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java |   71 ++++++++++++++++++++++++-----------
 1 files changed, 48 insertions(+), 23 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..930302a 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,10 +57,16 @@
      * 鏇存柊浠诲姟
      */
     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);
-        }
+    }
         return flag ;
     }
 
@@ -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())
+                .like(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