From bbbadfa246f1d7a2f5bb8ac9f8c3b30eba2edb12 Mon Sep 17 00:00:00 2001 From: caojia <1301869380@qq.com> Date: Thu, 24 Sep 2026 16:23:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=9F=E4=BA=A7=EF=BC=9A?= =?UTF-8?q?=20=E4=BB=BB=E5=8A=A1=E8=AE=A4=E9=A2=86=E7=8E=B0=E5=9C=A8?= =?UTF-8?q?=E9=80=9A=E8=BF=87=20REQUIRES=5FNEW=20=E7=8B=AC=E7=AB=8B?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=8C=E7=A1=AE=E4=BF=9D=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=BF=9B=E5=85=A5=E7=BA=BF=E7=A8=8B=E6=B1=A0=E5=89=8D=EF=BC=8C?= =?UTF-8?q?=E7=8A=B6=E6=80=81=20RUNNING=20=E5=B7=B2=E5=AF=B9=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E7=BA=BF=E7=A8=8B=E5=8F=AF=E8=A7=81=E3=80=82[?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BD=8D=E7=BD=AE=20(line=20492)](D:/code/BM?= =?UTF-8?q?S/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl?= =?UTF-8?q?/ArBillServiceImpl.java:492)=20Spring=20=E5=AE=98=E6=96=B9?= =?UTF-8?q?=E4=B9=9F=E8=AF=B4=E6=98=8E=EF=BC=8CAFTER=5FCOMMIT=20=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E4=B8=AD=E8=AE=BF=E9=97=AE=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=BA=8B=E5=8A=A1=E8=B5=84=E6=BA=90=E4=BB=8D?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E7=BB=91=E5=AE=9A=EF=BC=9B=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E4=BA=8B=E5=8A=A1=E7=A1=AE=E4=BF=9D=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=8F=90=E4=BA=A4=E3=80=82Spring=20=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=20=E5=B7=A5=E4=BD=9C=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E8=8B=A5=E5=8F=91=E7=8E=B0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=B7=B2=E6=98=AF=20CANCEL=5FREQUESTED=EF=BC=8C?= =?UTF-8?q?=E7=8E=B0=E5=9C=A8=E4=BC=9A=E8=B5=B0=E5=AE=89=E5=85=A8=E6=B8=85?= =?UTF-8?q?=E7=90=86=EF=BC=8C=E4=B8=8D=E5=86=8D=E7=9B=B4=E6=8E=A5=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E3=80=81=E7=95=99=E4=B8=8B=E6=82=AC=E6=8C=82=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/ar/service/impl/ArBillServiceImpl.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java index 84b3b82f..7b5598db 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java @@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; @@ -412,9 +413,17 @@ public class ArBillServiceImpl implements IArBillService { public void processGenerateTask(Long taskId) { try { ArBillGenerateTask task = generateTaskMapper.selectById(taskId); - if (task == null || !ArBillGenerateTaskStatus.RUNNING.equals(task.getStatus())) { + if (task == null) { + log.warn("应收账单生成任务不存在,taskId={}", taskId); + return; + } + if (ArBillGenerateTaskStatus.CANCEL_REQUESTED.equals(task.getStatus())) { + finishGenerateTaskSafely(taskId, "用户取消账单生成"); + return; + } + if (!ArBillGenerateTaskStatus.RUNNING.equals(task.getStatus())) { log.warn("应收账单生成任务未执行,任务不存在或状态不是 RUNNING,taskId={}, status={}", - taskId, task == null ? null : task.getStatus()); + taskId, task.getStatus()); return; } log.info("开始执行应收账单生成任务,taskId={}, arBillId={}, selectionMode={}", @@ -480,6 +489,7 @@ public class ArBillServiceImpl implements IArBillService { * 用数据库条件更新抢占 WAITING 任务,返回 true 才表示当前节点获得执行权。 */ @Override + @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) public boolean claimGenerateTask(Long taskId) { return generateTaskMapper.markRunning(taskId, new Date()) == 1; }