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