From a403ec5405c1b7d6f4896b28afde12a2288569ba Mon Sep 17 00:00:00 2001 From: hongchao <3228015117@qq.com> Date: Sun, 14 Sep 2025 23:44:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=92=A4=E5=9B=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LeaseTaskServiceImpl.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java index 8f8d1b54..c38f6fbb 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java @@ -1328,6 +1328,42 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { } } + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult revoke(LeaseApplyInfo leaseApplyInfo) { + try { + // 1. 参数校验 + if (leaseApplyInfo.getTaskId() == null) { + return AjaxResult.error("撤回失败, 请选择任务"); + } + // 2. 查询 workflow record + LeaseApplyInfo recordInfo = mapper.getRecordIdByTaskId(leaseApplyInfo); + if (recordInfo != null && recordInfo.getRecordId() != null) { + // 3. 根据 recordId 查询 informationId 列表 + List infoList = mapper.getInformationIdByRecordId(recordInfo.getRecordId()); + for (LeaseApplyInfo info : infoList) { + if (info.getInformationId() != null) { + // 3.1 删除 sys_information_people + mapper.deleteInformationPeople(info.getInformationId()); + // 3.2 删除 sys_information + mapper.deleteInformation(info.getInformationId()); + } + } + // 4. 删除 workflow 相关记录 + mapper.deleteRecordHistory(recordInfo.getRecordId()); + mapper.deleteRecord(recordInfo.getRecordId()); + } + // 5. 修改任务状态为待提交 + tmTaskMapper.updateTaskStatus(String.valueOf(leaseApplyInfo.getTaskId()), 5); + return AjaxResult.success("撤回成功"); + } catch (Exception e) { + log.error("领用撤销失败:", e); + // 手动回滚事务 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("撤回失败, 请联系管理员"); + } + } + /** * 生成发布批次任务 * @param thisMonthMaxOrder