xzc 1 日 前
コミット
f54ade060b

+ 15 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/BoilerTaskOrderController.java

@@ -426,6 +426,21 @@ public class BoilerTaskOrderController {
         return success(true);
         return success(true);
     }
     }
 
 
+    @PutMapping("/order-item/report/cancel-approved-recheck")
+    @Operation(summary = "撤回校核通过(记录校核通过且未编制报告前,回退到记录录入)")
+    @Parameter(name = "id", description = "报告ID", required = true)
+    public CommonResult<Boolean> cancelApprovedRecheck(@RequestParam("id") String id) {
+        boilerTaskOrderService.cancelApprovedRecheck(id);
+        return success(true);
+    }
+
+    @PutMapping("/order-item/report/batch-cancel-approved-recheck")
+    @Operation(summary = "批量撤回校核通过(记录校核通过且未编制报告前,回退到记录录入)")
+    public CommonResult<Boolean> batchCancelApprovedRecheck(@RequestBody OrderItemReportApproveBatchVO batchVO) {
+        Boolean result = boilerTaskOrderService.batchCancelApprovedRecheck(batchVO);
+        return success(result);
+    }
+
     @PutMapping("/order-item/choice/recheck")
     @PutMapping("/order-item/choice/recheck")
     @Operation(summary = "任务单-设备项选择校核人")
     @Operation(summary = "任务单-设备项选择校核人")
     public CommonResult<Boolean> recheckOrderItem(@RequestBody RecheckOrderItemVO recheckOrderItemVO) {
     public CommonResult<Boolean> recheckOrderItem(@RequestBody RecheckOrderItemVO recheckOrderItemVO) {

+ 15 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorder/PipeTaskOrderController.java

@@ -379,6 +379,21 @@ public class PipeTaskOrderController {
         return success(true);
         return success(true);
     }
     }
 
 
+    @PutMapping("/order-item/report/cancel-approved-recheck")
+    @Operation(summary = "撤回校核通过(记录校核通过且未编制报告前,回退到记录录入)")
+    @Parameter(name = "id", description = "报告ID", required = true)
+    public CommonResult<Boolean> cancelApprovedRecheck(@RequestParam("id") String id) {
+        pipeTaskOrderService.cancelApprovedRecheck(id);
+        return success(true);
+    }
+
+    @PutMapping("/order-item/report/batch-cancel-approved-recheck")
+    @Operation(summary = "批量撤回校核通过(记录校核通过且未编制报告前,回退到记录录入)")
+    public CommonResult<Boolean> batchCancelApprovedRecheck(@RequestBody OrderItemReportApproveBatchVO batchVO) {
+        Boolean result = pipeTaskOrderService.batchCancelApprovedRecheck(batchVO);
+        return success(result);
+    }
+
     @PutMapping("/order-item/choice/recheck")
     @PutMapping("/order-item/choice/recheck")
     @Operation(summary = "任务单-设备项选择校核人")
     @Operation(summary = "任务单-设备项选择校核人")
     public CommonResult<Boolean> recheckOrderItem(@RequestBody RecheckOrderItemVO recheckOrderItemVO) {
     public CommonResult<Boolean> recheckOrderItem(@RequestBody RecheckOrderItemVO recheckOrderItemVO) {

+ 14 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderService.java

@@ -172,6 +172,20 @@ public interface BoilerTaskOrderService extends IService<BoilerTaskOrderDO>  {
      */
      */
     void cancelRecheckReport(String reportId);
     void cancelRecheckReport(String reportId);
 
 
+    /**
+     * 撤回校核通过(记录校核通过且未编制报告前,回退到记录录入)
+     * 仅限当前登录用户为提交人时撤回
+     * @param reportId 报告ID
+     */
+    void cancelApprovedRecheck(String reportId);
+
+    /**
+     * 批量撤回校核通过(记录校核通过且未编制报告前,回退到记录录入)
+     * 仅限当前登录用户为提交人时撤回
+     * @param batchVO 批量报告ID
+     */
+    Boolean batchCancelApprovedRecheck(OrderItemReportApproveBatchVO batchVO);
+
     void updateTaskMainCheck(@Valid TaskOrderMainCheckVO updateReqVO);
     void updateTaskMainCheck(@Valid TaskOrderMainCheckVO updateReqVO);
 
 
     void updateOrderItemApprove(OrderItemApprovalVO orderItemPrepareVO);
     void updateOrderItemApprove(OrderItemApprovalVO orderItemPrepareVO);

+ 67 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java

@@ -6141,6 +6141,73 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                 null, reportId, 200);
                 null, reportId, 200);
     }
     }
 
 
+    @Override
+    public void cancelApprovedRecheck(String reportId) {
+        // 1. 校验报告存在
+        BoilerTaskOrderItemReportDO reportDO = taskOrderItemReportMapper.selectById(reportId);
+        if (reportDO == null) {
+            throw exception(REPORT_NOT_EXISTS);
+        }
+        // 1.1 仅校核通过(200)且未编制报告(报告编制520)状态可撤回
+        if (!Integer.valueOf(200).equals(reportDO.getRecheckStatus())
+                || !TaskOrderStatusEnum.REPORT_PREPARE.getStatus().equals(reportDO.getTaskStatus())) {
+            throw exception(RECHECK_CANNOT_CANCEL);
+        }
+        // 1.2 仅提交人可撤回
+        String userId = String.valueOf(getLoginUserId());
+        if (!userId.equals(reportDO.getRecheckSubmitId())) {
+            throw exception(RECHECK_CANCEL_NOT_SUBMITTER);
+        }
+
+        // 2. 回退报告状态到记录录入
+        BoilerTaskOrderItemReportDO updateDO = new BoilerTaskOrderItemReportDO();
+        updateDO.setId(reportId);
+        updateDO.setRecheckStatus(null);
+        updateDO.setRecheckId("");
+        updateDO.setRecheckName("");
+        updateDO.setRecheckSubmitId("");
+        updateDO.setRecheckSubmitTime(null);
+        updateDO.setRecheckDate(null);
+        updateDO.setRecheckReason("");
+        updateDO.setReturnReason("");
+        updateDO.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
+        taskOrderItemReportMapper.updateById(updateDO);
+
+        // 3. 报告流转记录
+        BoilerTaskOrderItemReportRecordDO recordDO = new BoilerTaskOrderItemReportRecordDO();
+        recordDO.setReportId(reportId);
+        recordDO.setProcess(TaskOrderStatusEnum.ENTER.getStatus());
+        taskOrderItemReportRecordMapper.insert(recordDO);
+
+        // 4. 回退设备项状态(如果该设备项下没有其他校核通过的报告,回退到记录录入)
+        BoilerTaskOrderItemDO taskOrderItemDO = boilerTaskOrderItemMapper.selectById(reportDO.getOrderItemId());
+        if (taskOrderItemDO != null
+                && taskOrderItemDO.getTaskStatus().equals(TaskOrderStatusEnum.REPORT_PREPARE.getStatus())) {
+            Long approvedCount = taskOrderItemReportMapper.selectCount(
+                    new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
+                            .eq(BoilerTaskOrderItemReportDO::getOrderItemId, reportDO.getOrderItemId())
+                            .ne(BoilerTaskOrderItemReportDO::getId, reportId)
+                            .eq(BoilerTaskOrderItemReportDO::getRecheckStatus, 200));
+            if (approvedCount == 0) {
+                BoilerTaskOrderItemDO updateItem = new BoilerTaskOrderItemDO();
+                updateItem.setId(taskOrderItemDO.getId());
+                updateItem.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
+                boilerTaskOrderItemMapper.updateById(updateItem);
+            }
+        }
+    }
+
+    @Override
+    public Boolean batchCancelApprovedRecheck(OrderItemReportApproveBatchVO batchVO) {
+        if (batchVO == null || batchVO.getIds() == null || batchVO.getIds().isEmpty()) {
+            throw exception(RECHECK_CANNOT_CANCEL);
+        }
+        for (String id : batchVO.getIds()) {
+            cancelApprovedRecheck(id);
+        }
+        return true;
+    }
+
     @Override
     @Override
     public void updateTaskMainCheck(TaskOrderMainCheckVO updateReqVO) {
     public void updateTaskMainCheck(TaskOrderMainCheckVO updateReqVO) {
 
 

+ 14 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderService.java

@@ -148,6 +148,20 @@ public interface PipeTaskOrderService extends IService<PipeTaskOrderDO>  {
      */
      */
     void cancelRecheckReport(String reportId);
     void cancelRecheckReport(String reportId);
 
 
+    /**
+     * 撤回校核通过(记录校核通过且未编制报告前,回退到记录录入)
+     * 仅限当前登录用户为提交人时撤回
+     * @param reportId 报告ID
+     */
+    void cancelApprovedRecheck(String reportId);
+
+    /**
+     * 批量撤回校核通过(记录校核通过且未编制报告前,回退到记录录入)
+     * 仅限当前登录用户为提交人时撤回
+     * @param batchVO 批量报告ID
+     */
+    Boolean batchCancelApprovedRecheck(OrderItemReportApproveBatchVO batchVO);
+
     void updateTaskMainCheck(@Valid TaskOrderMainCheckVO updateReqVO);
     void updateTaskMainCheck(@Valid TaskOrderMainCheckVO updateReqVO);
 
 
     void updateOrderItemApprove(OrderItemApprovalVO orderItemPrepareVO);
     void updateOrderItemApprove(OrderItemApprovalVO orderItemPrepareVO);

+ 50 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java

@@ -4462,6 +4462,56 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                 null, reportId, 300);
                 null, reportId, 300);
     }
     }
 
 
+    @Override
+    public void cancelApprovedRecheck(String reportId) {
+        // 1. 校验报告存在
+        PipeTaskOrderItemReportDO reportDO = taskOrderItemReportMapper.selectById(reportId);
+        if (reportDO == null) {
+            throw exception(REPORT_NOT_EXISTS);
+        }
+        // 1.1 仅校核通过(200)且未编制报告(报告编制520)状态可撤回
+        if (!Integer.valueOf(200).equals(reportDO.getRecheckStatus())
+                || !TaskOrderStatusEnum.REPORT_PREPARE.getStatus().equals(reportDO.getTaskStatus())) {
+            throw exception(RECHECK_CANNOT_CANCEL);
+        }
+        // 1.2 仅提交人可撤回
+        String userId = String.valueOf(getLoginUserId());
+        if (!userId.equals(reportDO.getRecheckSubmitId())) {
+            throw exception(RECHECK_CANCEL_NOT_SUBMITTER);
+        }
+
+        // 2. 回退报告状态到记录录入
+        PipeTaskOrderItemReportDO updateDO = new PipeTaskOrderItemReportDO();
+        updateDO.setId(reportId);
+        updateDO.setRecheckStatus(null);
+        updateDO.setRecheckId("");
+        updateDO.setRecheckName("");
+        updateDO.setRecheckSubmitId("");
+        updateDO.setRecheckSubmitTime(null);
+        updateDO.setRecheckDate(null);
+        updateDO.setRecheckReason("");
+        updateDO.setReturnReason("");
+        updateDO.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
+        taskOrderItemReportMapper.updateById(updateDO);
+
+        // 3. 报告流转记录
+        PipeTaskOrderItemReportRecordDO recordDO = new PipeTaskOrderItemReportRecordDO();
+        recordDO.setReportId(reportId);
+        recordDO.setProcess(TaskOrderStatusEnum.ENTER.getStatus());
+        taskOrderItemReportRecordMapper.insert(recordDO);
+    }
+
+    @Override
+    public Boolean batchCancelApprovedRecheck(OrderItemReportApproveBatchVO batchVO) {
+        if (batchVO == null || batchVO.getIds() == null || batchVO.getIds().isEmpty()) {
+            throw exception(RECHECK_CANNOT_CANCEL);
+        }
+        for (String id : batchVO.getIds()) {
+            cancelApprovedRecheck(id);
+        }
+        return true;
+    }
+
     @Override
     @Override
     public void updateTaskMainCheck(TaskOrderMainCheckVO updateReqVO) {
     public void updateTaskMainCheck(TaskOrderMainCheckVO updateReqVO) {