收货去掉批次号重复校验
This commit is contained in:
+34
-34
@@ -1301,40 +1301,40 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
|
||||
// 校验批次号唯一性:货主+商品+库存属性值相同时,批次号不能重复
|
||||
|
||||
// 校验批次号:仅本入库单范围内,货主+商品+库存属性+批次在库存中是否已存在(不同入库单允许相同批次号)
|
||||
if (shipperId != null && materialBaseInfoId != null && batchNumber != null && !batchNumber.trim().isEmpty()) {
|
||||
if (StringUtils.isBlank(currentInOrderNumber)) {
|
||||
log.warn("batchReceiptUpdate:未解析到入库单号,跳过库存批次重复校验,receiptOrderNumber={}",
|
||||
receiptMaterialDetailDO != null ? receiptMaterialDetailDO.getReceiptOrderNumber() : null);
|
||||
return;
|
||||
}
|
||||
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MaterialInventory> wrapper =
|
||||
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MaterialInventory>()
|
||||
.eq(MaterialInventory::getShipperId, shipperId)
|
||||
.eq(MaterialInventory::getMaterialBaseInfoId, materialBaseInfoId)
|
||||
.eq(MaterialInventory::getBatchNumber, batchNumber)
|
||||
.eq(MaterialInventory::getDelFlag, 1)
|
||||
.eq(MaterialInventory::getInOrderNumber, currentInOrderNumber);
|
||||
|
||||
// 如果库存属性值不为空,需要精确匹配;如果为空,查询库存属性值为空或null的记录
|
||||
if (materialStatusCode != null && !materialStatusCode.trim().isEmpty()) {
|
||||
wrapper.eq(MaterialInventory::getMaterialStatusCode, materialStatusCode);
|
||||
} else {
|
||||
wrapper.and(w -> w.isNull(MaterialInventory::getMaterialStatusCode)
|
||||
.or()
|
||||
.eq(MaterialInventory::getMaterialStatusCode, ""));
|
||||
}
|
||||
|
||||
List<MaterialInventory> existingInventoryList = materialInventoryMapper.selectList(wrapper);
|
||||
|
||||
if (!CollectionUtils.isEmpty(existingInventoryList)) {
|
||||
String statusCodeDesc = (materialStatusCode != null && !materialStatusCode.trim().isEmpty())
|
||||
? ",库存属性值:" + materialStatusCode
|
||||
: ",库存属性值:空";
|
||||
throw new ServiceException("批次号【" + batchNumber + "】在本入库单「" + currentInOrderNumber
|
||||
+ "」下已存在库存,货主ID【" + shipperId + "】+商品ID【" + materialBaseInfoId + "】" + statusCodeDesc
|
||||
+ ",不允许重复使用");
|
||||
}
|
||||
}
|
||||
// if (shipperId != null && materialBaseInfoId != null && batchNumber != null && !batchNumber.trim().isEmpty()) {
|
||||
// if (StringUtils.isBlank(currentInOrderNumber)) {
|
||||
// log.warn("batchReceiptUpdate:未解析到入库单号,跳过库存批次重复校验,receiptOrderNumber={}",
|
||||
// receiptMaterialDetailDO != null ? receiptMaterialDetailDO.getReceiptOrderNumber() : null);
|
||||
// return;
|
||||
// }
|
||||
// com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MaterialInventory> wrapper =
|
||||
// new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MaterialInventory>()
|
||||
// .eq(MaterialInventory::getShipperId, shipperId)
|
||||
// .eq(MaterialInventory::getMaterialBaseInfoId, materialBaseInfoId)
|
||||
// .eq(MaterialInventory::getBatchNumber, batchNumber)
|
||||
// .eq(MaterialInventory::getDelFlag, 1)
|
||||
// .eq(MaterialInventory::getInOrderNumber, currentInOrderNumber);
|
||||
//
|
||||
// // 如果库存属性值不为空,需要精确匹配;如果为空,查询库存属性值为空或null的记录
|
||||
// if (materialStatusCode != null && !materialStatusCode.trim().isEmpty()) {
|
||||
// wrapper.eq(MaterialInventory::getMaterialStatusCode, materialStatusCode);
|
||||
// } else {
|
||||
// wrapper.and(w -> w.isNull(MaterialInventory::getMaterialStatusCode)
|
||||
// .or()
|
||||
// .eq(MaterialInventory::getMaterialStatusCode, ""));
|
||||
// }
|
||||
//
|
||||
// List<MaterialInventory> existingInventoryList = materialInventoryMapper.selectList(wrapper);
|
||||
//
|
||||
// if (!CollectionUtils.isEmpty(existingInventoryList)) {
|
||||
// String statusCodeDesc = (materialStatusCode != null && !materialStatusCode.trim().isEmpty())
|
||||
// ? ",库存属性值:" + materialStatusCode
|
||||
// : ",库存属性值:空";
|
||||
// throw new ServiceException("批次号【" + batchNumber + "】在本入库单「" + currentInOrderNumber
|
||||
// + "」下已存在库存,货主ID【" + shipperId + "】+商品ID【" + materialBaseInfoId + "】" + statusCodeDesc
|
||||
// + ",不允许重复使用");
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user