refactor(WmsTransferOrderService): 优化调拨单删除逻辑

- 添加事务注解确保数据一致性
- 注入调拨单明细相关的mapper和服务
- 删除调拨单时先删除关联的明细记录
- 使用LambdaQueryWrapper进行明细记录查询和删除
- 保持原有业务校验逻辑不变
- 提升代码结构清晰度和可维护性
This commit is contained in:
2026-04-06 10:28:52 +08:00
parent 3f86f0be38
commit 82c801cf9c

View File

@@ -9,11 +9,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.klp.domain.bo.WmsTransferOrderBo;
import com.klp.domain.vo.WmsTransferOrderVo;
import com.klp.domain.WmsTransferOrder;
import com.klp.domain.WmsTransferOrderItem;
import com.klp.mapper.WmsTransferOrderMapper;
import com.klp.mapper.WmsTransferOrderItemMapper;
import com.klp.service.IWmsTransferOrderService;
import com.klp.service.IWmsTransferOrderItemService;
import java.util.List;
import java.util.Map;
@@ -30,6 +34,8 @@ import java.util.Collection;
public class WmsTransferOrderServiceImpl implements IWmsTransferOrderService {
private final WmsTransferOrderMapper baseMapper;
private final WmsTransferOrderItemMapper wmsTransferOrderItemMapper;
private final IWmsTransferOrderItemService wmsTransferOrderItemService;
/**
* 查询调拨单主
@@ -103,10 +109,20 @@ public class WmsTransferOrderServiceImpl implements IWmsTransferOrderService {
* 批量删除调拨单主
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
// 先删除关联的调拨单明细记录
if (ids != null && !ids.isEmpty()) {
LambdaQueryWrapper<WmsTransferOrderItem> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(WmsTransferOrderItem::getTransferId, ids);
wmsTransferOrderItemMapper.delete(queryWrapper);
}
// 再删除调拨单主记录
return baseMapper.deleteBatchIds(ids) > 0;
}
}