From 475a583f8f0ac90a1fe9d9a5373b2c7720aac0b8 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Mon, 8 Sep 2025 10:07:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E8=B0=83=E6=8B=A8=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E5=88=A0=E9=99=A4=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=AD=90?= =?UTF-8?q?=E8=A1=A8=E6=95=B0=E6=8D=AE=E7=BA=A7=E8=81=94=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在删除调拨工单时,增加对关联子表数据的级联删除逻辑 - 新增事务注解,确保删除操作的原子性 - 优化代码结构,提高可维护性 --- .../impl/WmsAllocateOrderServiceImpl.java | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java index 8e0b07fb..c07cde1e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java @@ -15,16 +15,15 @@ import org.dromara.wms.domain.BaseMaterialCategory; import org.dromara.wms.domain.WmsAllocateOrder; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.bo.WmsAllocateOrderBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; import org.dromara.wms.domain.vo.WmsAllocateOrderVo; import org.dromara.wms.mapper.WmsAllocateOrderMapper; import org.dromara.wms.service.IWmsAllocateOrderService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; /** @@ -43,6 +42,8 @@ public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { return sequence.incrementAndGet(); } + private final WmsAllocateOrderDetailServiceImpl wmsAllocateOrderDetailService; + /** * 查询调拨工单 @@ -218,10 +219,25 @@ public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { * @return 是否删除成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + for (Long id : ids){ + //要被删除的子表集合 + List detailIds = new ArrayList<>(); + //查询主表 + WmsAllocateOrderVo allocateOrder = queryById(id); + //该主表的子表集合 + List allocateOrderDetailVos = wmsAllocateOrderDetailService.selectdetailListByOrderCode(allocateOrder.getAllocateOrderCode()); + if (!allocateOrderDetailVos.isEmpty()) {//子表集合不为空 + for (WmsAllocateOrderDetailVo allocateOrderDetailVo : allocateOrderDetailVos){ + detailIds.add(allocateOrderDetailVo.getAoDId()); + } + wmsAllocateOrderDetailService.deleteWithValidByIds(detailIds,true); + } + } return baseMapper.deleteByIds(ids) > 0; }