Browse Source

新增作业票取消 作业票完成 新增第八步干扰作业票查看

车车 10 tháng trước cách đây
mục cha
commit
7f7e834bb1

+ 14 - 0
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsJobTicketController.java

@@ -144,5 +144,19 @@ public class IsJobTicketController extends BaseController {
         return CommonResult.success(isJobTicketService.selectMonitorJobTicketDetail(ticketId));
     }
 
+    @ApiOperation("mars结束作业票")
+    @Log(title = "mars结束作业票", businessType = BusinessType.DELETE)
+    @PostMapping("/updateJobToFinish")
+    public CommonResult<Boolean> updateJobToFinish(@RequestBody @Valid IsJobTicket isJobTicket) {
+        return CommonResult.success(isJobTicketService.updateJobToFinish(isJobTicket));
+    }
+
+    @ApiOperation("mars取消作业票")
+    @Log(title = "mars取消作业票", businessType = BusinessType.DELETE)
+    @PostMapping("/updateJobToCancel")
+    public CommonResult<Boolean> updateJobToCancel(@RequestBody @Valid IsJobTicket isJobTicket) {
+        return CommonResult.success(isJobTicketService.updateJobToCancel(isJobTicket));
+    }
+
 
 }

+ 8 - 0
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsJobTicketStepController.java

@@ -4,6 +4,7 @@ import com.ktg.common.core.controller.BaseController;
 import com.ktg.common.pojo.CommonResult;
 import com.ktg.iscs.domain.dto.step.IsJobTicketStepDTO;
 import com.ktg.iscs.domain.dto.ticket.AddJobTicketDTO;
+import com.ktg.iscs.domain.vo.hardwareApi.JobTicketVO;
 import com.ktg.iscs.domain.vo.step.IsJobTicketStepVO;
 import com.ktg.iscs.service.IIsJobTicketStepService;
 import com.ktg.iscs.service.IIsJobTicketUserService;
@@ -53,5 +54,12 @@ public class IsJobTicketStepController extends BaseController {
         return CommonResult.success(iIsJobTicketStepService.selectStepsByTicketId(ticketId));
     }
 
+    @ApiOperation("获取第八大步骤-查看")
+    @Parameter(name = "stepId", description = "stepId")
+    @GetMapping(value = "/getStepEight")
+    public CommonResult<List<JobTicketVO>> getStepEight(Long ticketId) {
+        return CommonResult.success(iIsJobTicketStepService.getStepEight(ticketId));
+    }
+
 
 }

+ 4 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsJobTicketService.java

@@ -81,4 +81,8 @@ public interface IIsJobTicketService extends IService<IsJobTicket>
     Page<MonitorTicketPageVO> getMonitorJobTicketPage(Page<IsJobTicket> page, PageTicketDTO dto);
 
     MonitorJobTicketDetailVO selectMonitorJobTicketDetail(Long ticketId);
+
+    Boolean updateJobToFinish(IsJobTicket isJobTicket);
+
+    Boolean updateJobToCancel(IsJobTicket isJobTicket);
 }

+ 3 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsJobTicketStepService.java

@@ -3,6 +3,7 @@ package com.ktg.iscs.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ktg.iscs.domain.IsJobTicketStep;
 import com.ktg.iscs.domain.dto.step.IsJobTicketStepDTO;
+import com.ktg.iscs.domain.vo.hardwareApi.JobTicketVO;
 import com.ktg.iscs.domain.vo.step.IsJobTicketStepVO;
 
 import java.util.List;
@@ -19,4 +20,6 @@ public interface IIsJobTicketStepService extends IService<IsJobTicketStep> {
 
     List<IsJobTicketStepVO> selectStepsByTicketId(Long ticketId);
 
+    List<JobTicketVO> getStepEight(Long ticketId);
+
 }

+ 29 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsJobTicketServiceImpl.java

@@ -741,5 +741,34 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
         return vo;
     }
 
+    @Override
+    public Boolean updateJobToFinish(IsJobTicket isJobTicket) {
+        Assert.notNull(isJobTicket.getTicketId(), "作业票ID不可为空!");
+        // 1.查询未完成的八大步骤
+        List<IsJobTicketStep> list = iIsJobTicketStepService.list(Wrappers.<IsJobTicketStep>lambdaQuery()
+                .eq(IsJobTicketStep::getTicketId, isJobTicket.getTicketId())
+                .ne(IsJobTicketStep::getStepStatus, 1));
+        Assert.isTrue(list.isEmpty(), "存在未完成的步骤,暂不可完成!");
+        // 2.既然走到这了,说明可以完成了
+        update(Wrappers.<IsJobTicket>lambdaUpdate().eq(IsJobTicket::getTicketId, isJobTicket.getTicketId())
+                .set(IsJobTicket::getTicketStatus, FINISHED.status));
+        return true;
+    }
+
+    @Override
+    public Boolean updateJobToCancel(IsJobTicket isJobTicket) {
+        Assert.notNull(isJobTicket.getTicketId(), "作业票ID不可为空!");
+        // 1.检查第六步有没有被执行,被执行了不能取消
+        IsJobTicketStep jobTicketStep = iIsJobTicketStepService.getOne(Wrappers.<IsJobTicketStep>lambdaQuery()
+                .eq(IsJobTicketStep::getTicketId, isJobTicket.getTicketId())
+                .eq(IsJobTicketStep::getStepIndex, 6)
+                .eq(IsJobTicketStep::getStepStatus, 1));
+        Assert.isFalse(jobTicketStep != null, "该作业票已执行至第六步,无法取消!");
+        // 2.既然走到这了,说明可以取消
+        update(Wrappers.<IsJobTicket>lambdaUpdate().eq(IsJobTicket::getTicketId, isJobTicket.getTicketId())
+                .set(IsJobTicket::getTicketStatus, 6));
+        return true;
+    }
+
 
 }

+ 38 - 1
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsJobTicketStepServiceImpl.java

@@ -8,14 +8,17 @@ import com.ktg.iscs.domain.IsJobTicketPoints;
 import com.ktg.iscs.domain.IsJobTicketStep;
 import com.ktg.iscs.domain.IsJobTicketUser;
 import com.ktg.iscs.domain.dto.step.IsJobTicketStepDTO;
+import com.ktg.iscs.domain.vo.hardwareApi.JobTicketVO;
 import com.ktg.iscs.domain.vo.step.IsJobTicketStepVO;
 import com.ktg.iscs.mapper.IsJobTicketStepMapper;
 import com.ktg.iscs.service.IIsJobTicketPointsService;
+import com.ktg.iscs.service.IIsJobTicketService;
 import com.ktg.iscs.service.IIsJobTicketStepService;
 import com.ktg.iscs.service.IIsJobTicketUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -34,13 +37,24 @@ public class IsJobTicketStepServiceImpl extends ServiceImpl<IsJobTicketStepMappe
     private IIsJobTicketPointsService iIsJobTicketPointsService;
     @Autowired
     private IIsJobTicketUserService iIsJobTicketUserService;
+    @Autowired
+    private IIsJobTicketService iIsJobTicketService;
 
 
     @Override
     public Boolean updateJobStep(IsJobTicketStepDTO dto) {
         Assert.notNull(dto.getStepId(), "步骤Id不可为空!");
         Assert.notNull(dto.getStepStatus(), "状态不可为空!");
-        update(Wrappers.<IsJobTicketStep>lambdaUpdate().eq(IsJobTicketStep::getStepId, dto.getStepId()).set(IsJobTicketStep::getStepStatus, dto.getStepStatus()));
+        // 检查上一步骤有没有检查完成
+        IsJobTicketStep jobTicketStep = getById(dto.getStepId());
+        if (jobTicketStep.getStepIndex() - 1 > 0) {
+            IsJobTicketStep one = getOne(Wrappers.<IsJobTicketStep>lambdaQuery()
+                    .eq(IsJobTicketStep::getTicketId, jobTicketStep.getTicketId())
+                    .eq(IsJobTicketStep::getStepIndex, jobTicketStep.getStepIndex() - 1));
+            Assert.isFalse("0".equals(one.getStepStatus()), "请先执行上一步!");
+        }
+        update(Wrappers.<IsJobTicketStep>lambdaUpdate().eq(IsJobTicketStep::getStepId, dto.getStepId())
+                .set(IsJobTicketStep::getStepStatus, dto.getStepStatus()));
         return true;
     }
 
@@ -85,4 +99,27 @@ public class IsJobTicketStepServiceImpl extends ServiceImpl<IsJobTicketStepMappe
         }
         return stepVOList;
     }
+
+    @Override
+    public List<JobTicketVO> getStepEight(Long ticketId) {
+        Assert.notNull(ticketId, "作业票id不可为空!");
+        List<IsJobTicketPoints> pointList = iIsJobTicketPointsService.list(Wrappers.<IsJobTicketPoints>lambdaQuery()
+                .eq(IsJobTicketPoints::getTicketId, ticketId));
+        List<JobTicketVO> jobTicketVOS = new ArrayList<>();
+        // 2.1获取被其他作业票锁定的隔离点
+        if (!pointList.isEmpty()) {
+            List<Long> pointIds = pointList.stream().map(IsJobTicketPoints::getPointId).collect(Collectors.toList());
+            List<IsJobTicketPoints> conflictPoints = iIsJobTicketPointsService.list(Wrappers.<IsJobTicketPoints>lambdaQuery()
+                    .in(IsJobTicketPoints::getPointId, pointIds)
+                    .ne(IsJobTicketPoints::getTicketId, ticketId)
+                    .eq(IsJobTicketPoints::getPointStatus, 1));
+            if (!conflictPoints.isEmpty()) {
+                List<Long> collect = conflictPoints.stream().map(IsJobTicketPoints::getTicketId).distinct().collect(Collectors.toList());
+                if (!collect.isEmpty()) {
+                    jobTicketVOS = BeanUtils.toBean(iIsJobTicketService.listByIds(collect), JobTicketVO.class);
+                }
+            }
+        }
+        return jobTicketVOS;
+    }
 }