From 06d1a5be968d167a4d6848cb6955fe2fab42a13e Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 9 Dec 2025 11:39:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E5=AE=9E=E7=8E=B0=E9=80=81?= =?UTF-8?q?=E8=B4=A7=E5=8D=95=E5=92=8C=E5=B7=A5=E8=89=BA=E5=8D=A1=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=97=B6=E7=BA=A7=E8=81=94=E5=88=A0=E9=99=A4=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在删除送货单主记录前先删除其关联的明细记录 - 在删除工艺卡主记录前先删除其关联的明细记录 - 为送货单删除方法添加事务注解确保数据一致性 - 明确删除操作顺序避免外键约束导致的删除失败 --- .../oa/service/impl/OaDeliveryOrderServiceImpl.java | 10 ++++++++++ .../oa/service/impl/OaProcessCardServiceImpl.java | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderServiceImpl.java index e025519..153affe 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderServiceImpl.java @@ -155,10 +155,20 @@ public class OaDeliveryOrderServiceImpl implements IOaDeliveryOrderService { * 批量删除送货单主 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + + // 先删除明细表记录 + if (ids != null && !ids.isEmpty()) { + LambdaQueryWrapper detailWrapper = Wrappers.lambdaQuery(); + detailWrapper.in(OaDeliveryOrderDetail::getOrderId, ids); + detailMapper.delete(detailWrapper); + } + + // 再删除主表记录 return baseMapper.deleteBatchIds(ids) > 0; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java index 548d5fe..b322885 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java @@ -139,6 +139,10 @@ public class OaProcessCardServiceImpl implements IOaProcessCardService { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + // 先删除明细表数据 先判断 + if (ids != null && !ids.isEmpty()) { + oaProcessCardDetailMapper.delete(Wrappers.lambdaQuery().in(OaProcessCardDetail::getCardId, ids)); + } return baseMapper.deleteBatchIds(ids) > 0; }