From 931e45f5f78494c7af4cab75053da49b57f22fbe Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期一, 13 十月 2025 14:31:43 +0800 Subject: [PATCH] 定时自动叫号 与 WMS获取车辆是否在园接口开发 --- 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