feat(wms): 添加发货单状态校验防止已发货单据被修改或删除
- 在更新发货单明细前检查关联发货单状态,已发货则拒绝修改 - 在删除发货单明细前验证关联发货单是否已发货,已发货则阻止删除 - 在删除发货单主表前增加状态校验,防止已发货单据被误删 - 使用exists方法优化数据库查询性能,避免全量数据加载 - 添加详细的业务逻辑验证确保数据完整性与一致性
This commit is contained in:
@@ -136,6 +136,15 @@ public class WmsDeliveryWaybillServiceImpl implements IWmsDeliveryWaybillService
|
||||
|
||||
// 级联删除发货单明细
|
||||
if (ids != null && !ids.isEmpty()) {
|
||||
// 检查是否存在已发货的运单(状态为1),如果存在则抛出异常
|
||||
LambdaQueryWrapper<WmsDeliveryWaybill> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(WmsDeliveryWaybill::getWaybillId, ids)
|
||||
.eq(WmsDeliveryWaybill::getStatus, 1);
|
||||
|
||||
// 使用 exists 方法替代 selectList,提高性能
|
||||
if (baseMapper.exists(queryWrapper)) {
|
||||
throw new RuntimeException("已发货的发货单不能删除");
|
||||
}
|
||||
// 构建查询条件,查找关联的明细记录
|
||||
LambdaQueryWrapper<WmsDeliveryWaybillDetail> detailWrapper =
|
||||
Wrappers.<WmsDeliveryWaybillDetail>lambdaQuery()
|
||||
|
||||
Reference in New Issue
Block a user