|
|
@@ -5872,6 +5872,63 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void cancelRecheckReport(String reportId) {
|
|
|
+ // 1. 校验报告存在
|
|
|
+ BoilerTaskOrderItemReportDO reportDO = taskOrderItemReportMapper.selectById(reportId);
|
|
|
+ if (reportDO == null) {
|
|
|
+ throw exception(REPORT_NOT_EXISTS);
|
|
|
+ }
|
|
|
+ // 1.1 仅审核中(100)状态可撤销
|
|
|
+ if (!Integer.valueOf(100).equals(reportDO.getRecheckStatus())) {
|
|
|
+ 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.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.RECHECK.getStatus())) {
|
|
|
+ // 检查该设备项下是否还有其他审核中的报告
|
|
|
+ Long pendingCount = taskOrderItemReportMapper.selectCount(
|
|
|
+ new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
|
|
|
+ .eq(BoilerTaskOrderItemReportDO::getOrderItemId, reportDO.getOrderItemId())
|
|
|
+ .ne(BoilerTaskOrderItemReportDO::getId, reportId)
|
|
|
+ .eq(BoilerTaskOrderItemReportDO::getRecheckStatus, 100));
|
|
|
+ if (pendingCount == 0) {
|
|
|
+ BoilerTaskOrderItemDO updateItem = new BoilerTaskOrderItemDO();
|
|
|
+ updateItem.setId(taskOrderItemDO.getId());
|
|
|
+ updateItem.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
|
|
|
+ boilerTaskOrderItemMapper.updateById(updateItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 5. 移除首页待办
|
|
|
+ indexTodoService.deleteIndexToDO(IndexTodoTypeNameEnum.RECHECK_ORDER_ITEM.getCode(),
|
|
|
+ null, reportId, 200);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void updateTaskMainCheck(TaskOrderMainCheckVO updateReqVO) {
|
|
|
|