Explorar o código

新增关闭sop执行计划,删除多余为执行的下期作业

车车 hai 3 meses
pai
achega
8ebd603338

+ 7 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/JobTicketController.java

@@ -91,4 +91,11 @@ public class JobTicketController {
         return success(pageResult);
     }
 
+    @GetMapping("/getNotStartJobBySopId")
+    @Operation(summary = "根据sopId获取未执行的作业")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    public CommonResult<List<JobTicketRespVO>> getNotStartJobBySopId(@RequestParam("sopId") Long sopId) {
+        return success(jobTicketService.getNotStartJobBySopId(sopId));
+    }
+
 }

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

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

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

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

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

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

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

@@ -81,7 +81,7 @@ public class JobTicketDO extends BaseDO {
      */
     private LocalDateTime ticketEndTime;
     /**
-     * 数据产生分类(0-普通作业 1-sop计划执行成)
+     * 数据产生分类(0-普通作业 1-sop计划执行成)
      */
     private String createType;
     /**

+ 2 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketService.java

@@ -61,4 +61,6 @@ public interface JobTicketService extends IService<JobTicketDO> {
 
     JobTicketMessVO getJobMessParams(Long ticketId);
 
+    List<JobTicketRespVO> getNotStartJobBySopId(Long sopId);
+
 }

+ 10 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketServiceImpl.java

@@ -509,4 +509,14 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
         return jobTicketMessVO;
     }
 
+    @Override
+    public List<JobTicketRespVO> getNotStartJobBySopId(Long sopId) {
+        Assert.notNull(sopId, "sopId不能为空!");
+        List<JobTicketDO> list = list(Wrappers.<JobTicketDO>lambdaQuery()
+                .eq(JobTicketDO::getSopId, sopId)
+                .eq(JobTicketDO::getCreateType, "1")
+                .eq(JobTicketDO::getTicketStatus, 0));
+        return BeanUtils.toBean(list, JobTicketRespVO.class);
+    }
+
 }

+ 16 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopServiceImpl.java

@@ -5,12 +5,14 @@ import cn.hutool.core.lang.Assert;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.*;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.JobTicketDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.machinerypoints.MachineryPointsDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.notifyconfig.NotifyConfigDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.*;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workflow.WorkflowModeDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workflow.WorkflowStepDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.sop.SopMapper;
+import cn.iocoder.yudao.module.iscs.service.jobticket.JobTicketService;
 import cn.iocoder.yudao.module.iscs.service.machinerypoints.MachineryPointsService;
 import cn.iocoder.yudao.module.iscs.service.notifyconfig.NotifyConfigService;
 import cn.iocoder.yudao.module.iscs.service.workflow.WorkflowModeService;
@@ -62,6 +64,10 @@ public class SopServiceImpl extends ServiceImpl<SopMapper, SopDO> implements Sop
     @Lazy
     @Resource
     private NotifyConfigService notifyConfigService;
+    @Lazy
+    @Resource
+    private JobTicketService jobTicketService;
+
 
     @Transactional
     @Override
@@ -375,6 +381,16 @@ public class SopServiceImpl extends ServiceImpl<SopMapper, SopDO> implements Sop
         update(Wrappers.<SopDO>lambdaUpdate()
                 .eq(SopDO::getId, updateReqVO.getId())
                 .set(SopDO::getEnableExecutionPlan, updateReqVO.getEnableExecutionPlan()));
+        // 如果是关闭,删掉之前未准备的
+        if (updateReqVO.getEnableExecutionPlan().equals(0)) {
+            List<JobTicketDO> jobTicketDOS = jobTicketService.list(Wrappers.<JobTicketDO>lambdaQuery()
+                    .eq(JobTicketDO::getSopId, updateReqVO.getId())
+                    .eq(JobTicketDO::getTicketStatus, "0")
+                    .eq(JobTicketDO::getCreateType, "1"));
+            if (!jobTicketDOS.isEmpty()) {
+                jobTicketService.deleteJobTicketListByIds(jobTicketDOS.stream().map(JobTicketDO::getId).toList());
+            }
+        }
         return true;
     }