feat(delivery): 实现发货计划和发货明细的级联删除功能
- 在WmsDeliveryPlanServiceImpl中添加LambdaUpdateWrapper导入 - 为发货计划删除操作添加级联删除逻辑,遍历计划ID并删除相关发货单及明细 - 新增cascadeDeleteDeliveryWaybillsByPlanId方法处理发货单及其明细的级联删除 - 在WmsDeliveryWaybillServiceImpl中添加WmsDeliveryWaybillDetail和WmsDeliveryWaybillDetailMapper依赖 - 为发货单删除操作添加级联删除发货单明细的功能 - 使用LambdaQueryWrapper构建查询条件删除关联的发货单明细记录
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user