车车 11 kuukautta sitten
vanhempi
sitoutus
b51c226c11

+ 128 - 0
ktg-admin/src/main/java/com/ktg/web/controller/iscs/ResApiController.java

@@ -0,0 +1,128 @@
+package com.ktg.web.controller.iscs;
+
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.exception.job.TaskException;
+import com.ktg.common.pojo.CommonResult;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.iscs.domain.IsCheckTask;
+import com.ktg.iscs.service.IIsCheckTaskService;
+import com.ktg.quartz.domain.SysJob;
+import com.ktg.quartz.service.ISysJobService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Parameter;
+import org.quartz.SchedulerException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 小组Controller
+ *
+ * @author cc
+ * @date 2024-09-13
+ */
+@Api(tags = "业务交叉api")
+@RestController
+@RequestMapping("/iscs/resapi")
+public class ResApiController extends BaseController
+{
+
+    @Autowired
+    private ISysJobService iSysJobService;
+
+    @Autowired
+    private IIsCheckTaskService iIsCheckTaskService;
+
+    @Transactional
+    @ApiOperation("新增检查任务-交叉定时任务")
+    @PreAuthorize("@ss.hasPermi('iscs:resapi:add')")
+    @Log(title = "检查任务", businessType = BusinessType.INSERT)
+    @PostMapping("/insertIsCheckTask")
+    public CommonResult<Boolean> insertIsCheckTask(@RequestBody @Parameter(name = "isCheckTask", description = "新增数据类,放到body") IsCheckTask isCheckTask) throws SchedulerException, TaskException {
+        // 1.检查数据
+        Assert.notBlank(isCheckTask.getCheckName(), "任务名称不可为空!");
+        Assert.notBlank(isCheckTask.getCabinetIdStr(), "请选择需要检查的物资柜信息!");
+        Assert.notBlank(isCheckTask.getUserIdStr(), "请选择参与人员信息!");
+        Assert.notBlank(isCheckTask.getCron(), "请告知我cron!");
+        // 2.开始新增定检查信息,但是缺失定时任务的关联信息,所以后面需要更新一下
+        iIsCheckTaskService.save(isCheckTask);
+        // 3.新增定时任务
+        SysJob sysJob = new SysJob();
+        sysJob.setJobName(isCheckTask.getCheckName());
+        sysJob.setJobGroup("DEFAULT");
+        sysJob.setInvokeTarget("sendEmailsTask.checkMaterialsCabinet("+ isCheckTask.getCheckId() + ")");
+        sysJob.setCronExpression(isCheckTask.getCron());
+        sysJob.setMisfirePolicy("3");
+        sysJob.setConcurrent("1");
+        sysJob.setStatus("1");
+        iSysJobService.insertJob(sysJob);
+        // 4.更新定检查信息
+        iIsCheckTaskService.update(Wrappers.<IsCheckTask>lambdaUpdate()
+                .eq(IsCheckTask::getCheckId, isCheckTask.getCheckId())
+                .set(IsCheckTask::getJobId, sysJob.getJobId()));
+        return CommonResult.success(true);
+    }
+
+    @Transactional
+    @ApiOperation("修改检查任务-交叉定时任务")
+    @PreAuthorize("@ss.hasPermi('iscs:resapi:edit')")
+    @Log(title = "检查任务", businessType = BusinessType.UPDATE)
+    @PostMapping("/updateIsCheckTask")
+    public CommonResult<Boolean> updateIsCheckTask(@RequestBody @Parameter(name = "isCheckTask", description = "修改数据类,放到body") IsCheckTask isCheckTask)
+    {
+        // 1.检查数据
+        Assert.notNull(isCheckTask.getCheckId(), "checkId不可为空!");
+        IsCheckTask checkTask = iIsCheckTaskService.getById(isCheckTask.getCheckId());
+        Assert.notNull(checkTask, "数据不存在!");
+        // 2.开始更新操作
+        iIsCheckTaskService.update(Wrappers.<IsCheckTask>lambdaUpdate()
+                .eq(IsCheckTask::getCheckId, isCheckTask.getCheckId())
+                .set(IsCheckTask::getUpdateTime, new Date())
+                .set(StringUtils.isNotBlank(isCheckTask.getCheckName()), IsCheckTask::getCheckName, isCheckTask.getCheckName())
+                .set(StringUtils.isNotBlank(isCheckTask.getCabinetIdStr()), IsCheckTask::getCabinetIdStr, isCheckTask.getCabinetIdStr())
+                .set(StringUtils.isNotBlank(isCheckTask.getUserIdStr()), IsCheckTask::getUserIdStr, isCheckTask.getUserIdStr())
+                .set(StringUtils.isNotBlank(isCheckTask.getCron()), IsCheckTask::getCron, isCheckTask.getCron()));
+        // 3.如果cron变更,则需要变更sysJob
+        if (StringUtils.isNotBlank(isCheckTask.getCron())) {
+            iSysJobService.update(Wrappers.<SysJob>lambdaUpdate()
+                    .eq(SysJob::getJobId, checkTask.getJobId())
+                    .set(SysJob::getCronExpression, isCheckTask.getCron()));
+        }
+        return CommonResult.success(true);
+    }
+
+    @Transactional
+    @ApiOperation("删除检查任务")
+    @PreAuthorize("@ss.hasPermi('iscs:resapi:remove')")
+    @Log(title = "检查任务", businessType = BusinessType.DELETE)
+    @PostMapping("/deleteIsCheckTaskByCheckIds")
+    public CommonResult<Boolean> deleteIsCheckTaskByCheckIds(String checkIds) throws SchedulerException {
+        Assert.notBlank(checkIds, "请选择需要删除的数据!");
+        List<String> longIds = Arrays.asList(checkIds);
+        // 1.获取数据在删除
+        List<IsCheckTask> list = iIsCheckTaskService.list(Wrappers.<IsCheckTask>lambdaQuery()
+                .in(IsCheckTask::getCheckId, longIds));
+        if (!list.isEmpty()) {
+            // 删除IsCheckTask
+            iIsCheckTaskService.removeByIds(longIds);
+            List<Long> jobIds = list.stream().map(IsCheckTask::getJobId).collect(Collectors.toList());
+            iSysJobService.deleteJobByIds(jobIds.toArray(new Long[0]));
+        }
+        return CommonResult.success(true);
+    }
+
+}

+ 0 - 4
ktg-iscs/pom.xml

@@ -54,10 +54,6 @@
             <artifactId>javax.xml.soap-api</artifactId>
             <version>1.4.0</version>
         </dependency>
-        <dependency>
-            <groupId>com.ktg</groupId>
-            <artifactId>ktg-quartz</artifactId>
-        </dependency>
 
     </dependencies>
 

+ 4 - 4
ktg-iscs/src/main/java/com/ktg/iscs/config/EmailSender.java

@@ -10,12 +10,12 @@ import java.util.Properties;
 
 public class EmailSender {
 
-    public Boolean sendLocalMail(String toMail, String fromMail, String hostIp, String subject, String text) {
-        toMail = "pm@192.168.1.127";
+    public static Boolean sendLocalMail(String toMail, String fromMail, String hostIp, String subject, String text) {
+        // toMail = "pm@192.168.1.127";
         fromMail = "cgj@192.168.1.127";
         hostIp = "192.168.1.127";
-        subject = "今天的主题";
-        text = "今天的天气真不错";
+        // subject = "今天的主题";
+        // text = "今天的天气真不错";
 
         // 收件人邮箱地址
         String to = toMail;

+ 0 - 36
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsCheckTaskController.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ktg.common.annotation.Log;
 import com.ktg.common.core.controller.BaseController;
 import com.ktg.common.enums.BusinessType;
-import com.ktg.common.exception.job.TaskException;
 import com.ktg.common.pojo.CommonResult;
 import com.ktg.common.utils.poi.ExcelUtil;
 import com.ktg.iscs.domain.IsCheckTask;
@@ -14,7 +13,6 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
-import org.quartz.SchedulerException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -80,38 +78,4 @@ public class IsCheckTaskController extends BaseController
         return CommonResult.success(isCheckTaskService.selectIsCheckTaskByCheckId(checkId));
     }
 
-    /**
-     * 新增检查任务
-     */
-    @ApiOperation("新增检查任务")
-    @PreAuthorize("@ss.hasPermi('iscs:task:add')")
-    @Log(title = "检查任务", businessType = BusinessType.INSERT)
-    @PostMapping("/insertIsCheckTask")
-    public CommonResult<Boolean> insertIsCheckTask(@RequestBody @Parameter(name = "isCheckTask", description = "新增数据类,放到body") IsCheckTask isCheckTask) throws SchedulerException, TaskException {
-        return CommonResult.success(isCheckTaskService.insertIsCheckTask(isCheckTask) == 1);
-    }
-
-    /**
-     * 修改检查任务
-     */
-    @ApiOperation("修改检查任务")
-    @PreAuthorize("@ss.hasPermi('iscs:task:edit')")
-    @Log(title = "检查任务", businessType = BusinessType.UPDATE)
-    @PostMapping("/updateIsCheckTask")
-    public CommonResult<Boolean> updateIsCheckTask(@RequestBody @Parameter(name = "isCheckTask", description = "修改数据类,放到body") IsCheckTask isCheckTask)
-    {
-        return CommonResult.success(isCheckTaskService.updateIsCheckTask(isCheckTask) == 1);
-    }
-
-    /**
-     * 删除检查任务
-     */
-    @ApiOperation("删除检查任务")
-    @PreAuthorize("@ss.hasPermi('iscs:task:remove')")
-    @Log(title = "检查任务", businessType = BusinessType.DELETE)
-	@PostMapping("/deleteIsCheckTaskByCheckIds")
-    public CommonResult<Boolean> deleteIsCheckTaskByCheckIds(String checkIds)
-    {
-        return CommonResult.success(isCheckTaskService.deleteIsCheckTaskByCheckIds(checkIds) != 0);
-    }
 }

+ 1 - 1
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsCheckTask.java

@@ -30,7 +30,7 @@ public class IsCheckTask extends BaseBean
 
     @ApiModelProperty(value = "定时任务ID")
     @Excel(name = "定时任务ID")
-    private Long taskId;
+    private Long jobId;
 
     @ApiModelProperty(value = "关联物资柜")
     @Excel(name = "关联物资柜")

+ 1 - 3
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsCheckTaskService.java

@@ -1,9 +1,7 @@
 package com.ktg.iscs.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ktg.common.exception.job.TaskException;
 import com.ktg.iscs.domain.IsCheckTask;
-import org.quartz.SchedulerException;
 
 import java.util.List;
 
@@ -37,7 +35,7 @@ public interface IIsCheckTaskService extends IService<IsCheckTask>
      * @param isCheckTask 检查任务
      * @return 结果
      */
-    int insertIsCheckTask(IsCheckTask isCheckTask) throws TaskException, SchedulerException;
+    int insertIsCheckTask(IsCheckTask isCheckTask);
 
     /**
      * 修改检查任务

+ 4 - 16
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsCheckTaskServiceImpl.java

@@ -1,20 +1,13 @@
 package com.ktg.iscs.service.impl;
 
 import cn.hutool.core.lang.Assert;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ktg.common.core.text.Convert;
-import com.ktg.common.exception.job.TaskException;
 import com.ktg.common.utils.DateUtils;
 import com.ktg.iscs.domain.IsCheckTask;
 import com.ktg.iscs.mapper.IsCheckTaskMapper;
 import com.ktg.iscs.service.IIsCheckTaskService;
-import com.ktg.quartz.domain.SysJob;
-import com.ktg.quartz.service.ISysJobService;
-import com.ktg.system.service.ISysUserService;
-import org.quartz.SchedulerException;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -31,11 +24,6 @@ public class IsCheckTaskServiceImpl extends ServiceImpl<IsCheckTaskMapper, IsChe
 {
     @Autowired
     private IsCheckTaskMapper isCheckTaskMapper;
-    @Lazy
-    @Autowired
-    private ISysJobService iSysJobService;
-    @Autowired
-    private ISysUserService iSysUserService;
 
 
     /**
@@ -70,8 +58,8 @@ public class IsCheckTaskServiceImpl extends ServiceImpl<IsCheckTaskMapper, IsChe
      */
     @Transactional
     @Override
-    public int insertIsCheckTask(IsCheckTask isCheckTask) throws TaskException, SchedulerException {
-        // 1.检查数据
+    public int insertIsCheckTask(IsCheckTask isCheckTask) {
+        /*// 1.检查数据
         Assert.notBlank(isCheckTask.getCheckName(), "任务名称不可为空!");
         Assert.notBlank(isCheckTask.getCabinetIdStr(), "请选择需要检查的物资柜信息!");
         Assert.notBlank(isCheckTask.getUserIdStr(), "请选择参与人员信息!");
@@ -91,8 +79,8 @@ public class IsCheckTaskServiceImpl extends ServiceImpl<IsCheckTaskMapper, IsChe
         // 4.更新定检查信息
         isCheckTaskMapper.update(Wrappers.<IsCheckTask>lambdaUpdate()
                 .eq(IsCheckTask::getCheckId, isCheckTask.getCheckId())
-                .set(IsCheckTask::getTaskId, sysJob.getJobId()));
-        return 1;
+                .set(IsCheckTask::getTaskId, sysJob.getJobId()));*/
+        return isCheckTaskMapper.insertIsCheckTask(isCheckTask);
     }
 
     /**

+ 4 - 4
ktg-iscs/src/main/resources/mapper/IsCheckTaskMapper.xml

@@ -11,7 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectIsCheckTaskList" parameterType="IsCheckTask" resultType="IsCheckTask">
         <include refid="selectIsCheckTaskVo"/>
         <where>
-            <if test="taskId != null "> and task_id = #{taskId}</if>
+            <if test="jobId != null "> and job_id = #{jobId}</if>
             <if test="cabinetIdStr != null  and cabinetIdStr != ''"> and cabinet_id_str = #{cabinetIdStr}</if>
             <if test="userIdStr != null  and userIdStr != ''"> and user_id_str = #{userIdStr}</if>
             <if test="timeFrequency != null "> and time_frequency = #{timeFrequency}</if>
@@ -28,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <insert id="insertIsCheckTask" parameterType="IsCheckTask" useGeneratedKeys="true" keyProperty="checkId">
         insert into is_check_task
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="taskId != null">task_id,</if>
+            <if test="jobId != null">job_id,</if>
             <if test="cabinetIdStr != null">cabinet_id_str,</if>
             <if test="userIdStr != null">user_id_str,</if>
             <if test="timeFrequency != null">time_frequency,</if>
@@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="taskId != null">#{taskId},</if>
+            <if test="jobId != null">#{jobId},</if>
             <if test="cabinetIdStr != null">#{cabinetIdStr},</if>
             <if test="userIdStr != null">#{userIdStr},</if>
             <if test="timeFrequency != null">#{timeFrequency},</if>
@@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateIsCheckTask" parameterType="IsCheckTask">
         update is_check_task
         <trim prefix="SET" suffixOverrides=",">
-            <if test="taskId != null">task_id = #{taskId},</if>
+            <if test="jobId != null">job_id = #{jobId},</if>
             <if test="cabinetIdStr != null">cabinet_id_str = #{cabinetIdStr},</if>
             <if test="userIdStr != null">user_id_str = #{userIdStr},</if>
             <if test="timeFrequency != null">time_frequency = #{timeFrequency},</if>

+ 5 - 1
ktg-quartz/pom.xml

@@ -34,7 +34,11 @@
             <groupId>com.ktg</groupId>
             <artifactId>ktg-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.ktg</groupId>
+            <artifactId>ktg-iscs</artifactId>
+        </dependency>
 
     </dependencies>
 
-</project>
+</project>

+ 14 - 10
ktg-quartz/src/main/java/com/ktg/quartz/mapper/SysJobMapper.java

@@ -1,18 +1,22 @@
 package com.ktg.quartz.mapper;
 
-import java.util.List;
+import com.ktg.common.mapper.BaseMapperX;
 import com.ktg.quartz.domain.SysJob;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
 
 /**
  * 调度任务信息 数据层
- * 
+ *
  * @author ruoyi
  */
-public interface SysJobMapper
+@Mapper
+public interface SysJobMapper extends BaseMapperX<SysJob>
 {
     /**
      * 查询调度任务日志集合
-     * 
+     *
      * @param job 调度信息
      * @return 操作日志集合
      */
@@ -20,14 +24,14 @@ public interface SysJobMapper
 
     /**
      * 查询所有调度任务
-     * 
+     *
      * @return 调度任务列表
      */
     public List<SysJob> selectJobAll();
 
     /**
      * 通过调度ID查询调度任务信息
-     * 
+     *
      * @param jobId 调度ID
      * @return 角色对象信息
      */
@@ -35,7 +39,7 @@ public interface SysJobMapper
 
     /**
      * 通过调度ID删除调度任务信息
-     * 
+     *
      * @param jobId 调度ID
      * @return 结果
      */
@@ -43,7 +47,7 @@ public interface SysJobMapper
 
     /**
      * 批量删除调度任务信息
-     * 
+     *
      * @param ids 需要删除的数据ID
      * @return 结果
      */
@@ -51,7 +55,7 @@ public interface SysJobMapper
 
     /**
      * 修改调度任务信息
-     * 
+     *
      * @param job 调度任务信息
      * @return 结果
      */
@@ -59,7 +63,7 @@ public interface SysJobMapper
 
     /**
      * 新增调度任务信息
-     * 
+     *
      * @param job 调度任务信息
      * @return 结果
      */

+ 6 - 3
ktg-quartz/src/main/java/com/ktg/quartz/service/ISysJobService.java

@@ -1,16 +1,19 @@
 package com.ktg.quartz.service;
 
-import java.util.List;
-import org.quartz.SchedulerException;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ktg.common.exception.job.TaskException;
 import com.ktg.quartz.domain.SysJob;
+import org.quartz.SchedulerException;
+
+import java.util.List;
 
 /**
  * 定时任务调度信息信息 服务层
  *
  * @author guoruan
  */
-public interface ISysJobService
+
+public interface ISysJobService extends IService<SysJob>
 {
     /**
      * 获取quartz调度器的计划任务

+ 25 - 23
ktg-quartz/src/main/java/com/ktg/quartz/service/impl/SysJobServiceImpl.java

@@ -1,14 +1,6 @@
 package com.ktg.quartz.service.impl;
 
-import java.util.List;
-import javax.annotation.PostConstruct;
-import org.quartz.JobDataMap;
-import org.quartz.JobKey;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ktg.common.constant.ScheduleConstants;
 import com.ktg.common.exception.job.TaskException;
 import com.ktg.quartz.domain.SysJob;
@@ -16,14 +8,24 @@ import com.ktg.quartz.mapper.SysJobMapper;
 import com.ktg.quartz.service.ISysJobService;
 import com.ktg.quartz.util.CronUtils;
 import com.ktg.quartz.util.ScheduleUtils;
+import org.quartz.JobDataMap;
+import org.quartz.JobKey;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
 
 /**
  * 定时任务调度信息 服务层
- * 
+ *
  * @author ruoyi
  */
 @Service
-public class SysJobServiceImpl implements ISysJobService
+public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> implements ISysJobService
 {
     @Autowired
     private Scheduler scheduler;
@@ -47,7 +49,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 获取quartz调度器的计划任务列表
-     * 
+     *
      * @param job 调度信息
      * @return
      */
@@ -59,7 +61,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 通过调度任务ID查询调度信息
-     * 
+     *
      * @param jobId 调度任务ID
      * @return 调度任务对象信息
      */
@@ -71,7 +73,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 暂停任务
-     * 
+     *
      * @param job 调度信息
      */
     @Override
@@ -91,7 +93,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 恢复任务
-     * 
+     *
      * @param job 调度信息
      */
     @Override
@@ -111,7 +113,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 删除任务后,所对应的trigger也将被删除
-     * 
+     *
      * @param job 调度信息
      */
     @Override
@@ -130,7 +132,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 批量删除调度信息
-     * 
+     *
      * @param jobIds 需要删除的任务ID
      * @return 结果
      */
@@ -147,7 +149,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 任务调度状态修改
-     * 
+     *
      * @param job 调度信息
      */
     @Override
@@ -169,7 +171,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 立即运行任务
-     * 
+     *
      * @param job 调度信息
      */
     @Override
@@ -187,7 +189,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 新增任务
-     * 
+     *
      * @param job 调度信息 调度信息
      */
     @Override
@@ -205,7 +207,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 更新任务的时间表达式
-     * 
+     *
      * @param job 调度信息
      */
     @Override
@@ -223,7 +225,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 更新任务
-     * 
+     *
      * @param job 任务对象
      * @param jobGroup 任务组名
      */
@@ -242,7 +244,7 @@ public class SysJobServiceImpl implements ISysJobService
 
     /**
      * 校验cron表达式是否有效
-     * 
+     *
      * @param cronExpression 表达式
      * @return 结果
      */

+ 61 - 2
ktg-quartz/src/main/java/com/ktg/quartz/task/SendEmailsTask.java

@@ -1,7 +1,23 @@
 package com.ktg.quartz.task;
 
+import cn.hutool.core.lang.Assert;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.iscs.config.EmailSender;
+import com.ktg.iscs.domain.IsCheckTask;
+import com.ktg.iscs.domain.IsCheckTaskMail;
+import com.ktg.iscs.domain.IsMaterialsCabinet;
+import com.ktg.iscs.service.IIsCheckTaskMailService;
+import com.ktg.iscs.service.IIsCheckTaskService;
+import com.ktg.iscs.service.IIsMaterialsCabinetService;
+import com.ktg.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 定时发送检查物资柜提醒邮件
  *
@@ -11,11 +27,54 @@ import org.springframework.stereotype.Component;
 public class SendEmailsTask
 {
 
+    @Autowired
+    private IIsCheckTaskService iIsCheckTaskService;
+    @Autowired
+    private IIsMaterialsCabinetService iIsMaterialsCabinetService;
+    @Autowired
+    private ISysUserService iSysUserService;
+    @Autowired
+    private IIsCheckTaskMailService isCheckTaskMailService;
+
     public void checkMaterialsCabinet(Long checkId)
     {
+        Assert.notNull(checkId, "无效参数!");
+        // 1.获取数据
+        IsCheckTask checkTask = iIsCheckTaskService.getById(checkId);
+        if (checkTask != null && StringUtils.isNotBlank(checkTask.getCabinetIdStr()) && StringUtils.isNotBlank(checkTask.getUserIdStr())) {
+            // 开始解析参数
+            List<Long> cabinetIds = Arrays.stream(checkTask.getCabinetIdStr().split(","))
+                    .map(Long::parseLong) // 将每个字符串转换为Long
+                    .collect(Collectors.toList());
+            List<Long> userIds = Arrays.stream(checkTask.getUserIdStr().split(","))
+                    .map(Long::parseLong) // 将每个字符串转换为Long
+                    .collect(Collectors.toList());
+            List<IsMaterialsCabinet> isMaterialsCabinets = iIsMaterialsCabinetService.listByIds(cabinetIds);
+            List<SysUser> sysUsers = iSysUserService.listByIds(userIds);
+            String text = isMaterialsCabinets.stream().map(IsMaterialsCabinet::getCabinetName).collect(Collectors.toList()).toString();
+            for (SysUser sysUser : sysUsers) {
+                if (StringUtils.isNotBlank(sysUser.getEmail())) {
+                    EmailSender.sendLocalMail(sysUser.getEmail(), null, null,
+                            "定期检查物资柜提醒!", "物资柜:" + text);
+                    IsCheckTaskMail isCheckTaskMail = new IsCheckTaskMail();
+                    isCheckTaskMail.setChackId(checkId);
+                    isCheckTaskMail.setUserId(sysUser.getUserId());
+                    isCheckTaskMail.setEmailSendState(1);
+                    isCheckTaskMail.setEmailContent("物资柜:" + text);
+                    isCheckTaskMailService.save(isCheckTaskMail);
+                }
+            }
 
+        }
+    }
 
+        public static void main(String[] args){
+            String aa = "4,1";
+            String[] split = aa.split(",");
+            List<Long> longList = Arrays.stream(split)
+                    .map(Long::parseLong) // 将每个字符串转换为Long
+                    .collect(Collectors.toList());
+            System.out.println(longList);
 
-        System.out.println("执行无参方法");
-    }
+        }
 }

+ 2 - 0
ktg-system/src/main/java/com/ktg/system/mapper/SysUserMapper.java

@@ -2,6 +2,7 @@ package com.ktg.system.mapper;
 
 import com.ktg.common.core.domain.entity.SysUser;
 import com.ktg.common.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -11,6 +12,7 @@ import java.util.List;
  *
  * @author guoruan
  */
+@Mapper
 public interface SysUserMapper extends BaseMapperX<SysUser>
 {
     /**