feat(delivery): 实现发货计划和发货明细的级联删除功能

- 在WmsDeliveryPlanServiceImpl中添加LambdaUpdateWrapper导入
- 为发货计划删除操作添加级联删除逻辑,遍历计划ID并删除相关发货单及明细
- 新增cascadeDeleteDeliveryWaybillsByPlanId方法处理发货单及其明细的级联删除
- 在WmsDeliveryWaybillServiceImpl中添加WmsDeliveryWaybillDetail和WmsDeliveryWaybillDetailMapper依赖
- 为发货单删除操作添加级联删除发货单明细的功能
- 使用LambdaQueryWrapper构建查询条件删除关联的发货单明细记录
This commit is contained in:
2026-01-28 11:00:32 +08:00
parent d05f2f6629
commit 83b11860cc
2 changed files with 69 additions and 0 deletions

View File

@@ -8,13 +8,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import com.klp.domain.WmsDeliveryWaybillDetail;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsDeliveryWaybillBo;
import com.klp.domain.vo.WmsDeliveryWaybillVo;
import com.klp.domain.WmsDeliveryWaybill;
import com.klp.mapper.WmsDeliveryWaybillMapper;
import com.klp.mapper.WmsDeliveryWaybillDetailMapper;
import com.klp.service.IWmsDeliveryWaybillService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@@ -31,6 +34,7 @@ import java.util.Collection;
public class WmsDeliveryWaybillServiceImpl implements IWmsDeliveryWaybillService {
private final WmsDeliveryWaybillMapper baseMapper;
private final WmsDeliveryWaybillDetailMapper waybillDetailMapper;
/**
* 查询发货单主
@@ -124,10 +128,24 @@ public class WmsDeliveryWaybillServiceImpl implements IWmsDeliveryWaybillService
* 批量删除发货单主
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
// 级联删除发货单明细
if (ids != null && !ids.isEmpty()) {
// 构建查询条件,查找关联的明细记录
LambdaQueryWrapper<WmsDeliveryWaybillDetail> detailWrapper =
Wrappers.<WmsDeliveryWaybillDetail>lambdaQuery()
.in(WmsDeliveryWaybillDetail::getWaybillId, ids)
.eq(WmsDeliveryWaybillDetail::getDelFlag, 0);
// 删除相关的发货单明细
waybillDetailMapper.delete(detailWrapper);
}
return baseMapper.deleteBatchIds(ids) > 0;
}