refactor(WmsTransferOrderService): 优化调拨单删除逻辑
- 添加事务注解确保数据一致性 - 注入调拨单明细相关的mapper和服务 - 删除调拨单时先删除关联的明细记录 - 使用LambdaQueryWrapper进行明细记录查询和删除 - 保持原有业务校验逻辑不变 - 提升代码结构清晰度和可维护性
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user