Bläddra i källkod

调整作业生成逻辑

车车 3 månader sedan
förälder
incheckning
e7cc57921f

+ 6 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/vo/JobTicketPageReqVO.java

@@ -50,5 +50,11 @@ public class JobTicketPageReqVO extends PageParam {
     @Schema(description = "用户ID")
     private String userId;
 
+    @Schema(description = "数据产生分类(0-普通作业 1-sop计划执行成成)", example = "你说的对")
+    private String createType;
+
+    @Schema(description = "计划开始时间")
+    private String planStartTime;
+
 
 }

+ 6 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/vo/JobTicketRespVO.java

@@ -68,6 +68,12 @@ public class JobTicketRespVO {
     @ExcelProperty("作业票结束时间")
     private LocalDateTime ticketEndTime;
 
+    @Schema(description = "数据产生分类(0-普通作业 1-sop计划执行成成)", example = "你说的对")
+    private String createType;
+
+    @Schema(description = "计划开始时间")
+    private String planStartTime;
+
     @Schema(description = "备注", example = "你说的对")
     @ExcelProperty("备注")
     private String remark;

+ 6 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/vo/JobTicketSaveReqVO.java

@@ -56,6 +56,12 @@ public class JobTicketSaveReqVO {
     @Schema(description = "作业票结束时间")
     private LocalDateTime ticketEndTime;
 
+    @Schema(description = "数据产生分类(0-普通作业 1-sop计划执行成成)", example = "你说的对")
+    private String createType;
+
+    @Schema(description = "计划开始时间")
+    private String planStartTime;
+
     @Schema(description = "备注", example = "你说的对")
     private String remark;
 

+ 8 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/dataobject/jobticket/JobTicketDO.java

@@ -80,6 +80,14 @@ public class JobTicketDO extends BaseDO {
      * 作业票结束时间
      */
     private LocalDateTime ticketEndTime;
+    /**
+     * 数据产生分类(0-普通作业 1-sop计划执行成成)
+     */
+    private String createType;
+    /**
+     * 计划开始时间
+     */
+    private String planStartTime;
     /**
      * 备注
      */

+ 15 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/job/SopExecutionPlanJob.java

@@ -5,11 +5,14 @@ import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketSaveReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopExecutionPlanRespVO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.JobTicketDO;
 import cn.iocoder.yudao.module.iscs.service.jobticket.JobTicketService;
 import cn.iocoder.yudao.module.iscs.service.sop.SopExecutionPlanService;
 import cn.iocoder.yudao.module.iscs.service.sop.SopService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
@@ -50,10 +53,22 @@ public class SopExecutionPlanJob implements JobHandler {
         List<Long> ticketIds = new ArrayList<>();
         for (SopExecutionPlanRespVO executionPlanRespVO : list) {
             if (executionPlanRespVO.getEnableExecutionPlan() != null && executionPlanRespVO.getEnableExecutionPlan().equals(1)) {
+                // 检查有没有生成,没有生成得话补充生成
+                String nextExecutDate = executionPlanRespVO.getNextExecutDate();
+                String startTime = executionPlanRespVO.getStartTime();
+                String planStartTime = StringUtils.isBlank(startTime) ? nextExecutDate : nextExecutDate + " " + startTime;
+                JobTicketDO one = jobTicketService.getOne(Wrappers.<JobTicketDO>lambdaQuery()
+                        .eq(JobTicketDO::getSopId, executionPlanRespVO.getSopId())
+                        .eq(JobTicketDO::getPlanStartTime, planStartTime));
+                if (one != null) {
+                    continue;
+                }
                 // 开始生成作业
                 JobTicketSaveReqVO jobTicketSaveReqVO = new JobTicketSaveReqVO();
                 jobTicketSaveReqVO.setSopId(executionPlanRespVO.getSopId());
                 jobTicketSaveReqVO.setTicketName("SOP计划执行作业-" + executionPlanRespVO.getSopId() + "-" + yyyymmdd);
+                jobTicketSaveReqVO.setCreateType("1");
+                jobTicketSaveReqVO.setPlanStartTime(planStartTime);
                 Long l = jobTicketService.insertJobTicketBySop(jobTicketSaveReqVO);
                 sopIds.add(executionPlanRespVO.getSopId());
                 ticketIds.add(l);