Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401
This commit is contained in:
+11
@@ -147,15 +147,26 @@ public class ReviewOrderDomainService {
|
|||||||
throw new ServiceException("复核单主表保存失败");
|
throw new ServiceException("复核单主表保存失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int detailInserted = 0;
|
||||||
for (PickingOrder po : pickingOrders) {
|
for (PickingOrder po : pickingOrders) {
|
||||||
List<PickingMaterialDetail> lines = pickingMaterialDetailService.list(new LambdaQueryWrapper<PickingMaterialDetail>()
|
List<PickingMaterialDetail> lines = pickingMaterialDetailService.list(new LambdaQueryWrapper<PickingMaterialDetail>()
|
||||||
.eq(PickingMaterialDetail::getPickingOrderNumber, po.getPickingOrderNumber())
|
.eq(PickingMaterialDetail::getPickingOrderNumber, po.getPickingOrderNumber())
|
||||||
.eq(PickingMaterialDetail::getDelFlag, 1));
|
.eq(PickingMaterialDetail::getDelFlag, 1));
|
||||||
for (PickingMaterialDetail line : lines) {
|
for (PickingMaterialDetail line : lines) {
|
||||||
|
BigDecimal picked = line.getPickingQuantity();
|
||||||
|
if (picked == null || picked.compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ReviewMaterialDetail row = buildDetailFromPicking(line, reviewOrderId, reviewOrderNumber, outOrderNumber, loginUser, now);
|
ReviewMaterialDetail row = buildDetailFromPicking(line, reviewOrderId, reviewOrderNumber, outOrderNumber, loginUser, now);
|
||||||
reviewMaterialDetailMapper.insert(row);
|
reviewMaterialDetailMapper.insert(row);
|
||||||
|
detailInserted++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (detailInserted == 0) {
|
||||||
|
reviewOrderMapper.deleteById(reviewOrderId);
|
||||||
|
log.info("跳过生成复核单:拣货明细无已拣货数量>0 的行 outOrderNumber={}", outOrderNumber);
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 复核也生成作业单(同拣货作业单表结构),用于作业任务跟踪
|
// 复核也生成作业单(同拣货作业单表结构),用于作业任务跟踪
|
||||||
genStockOutTaskOrderForReview(header, loginUser, now);
|
genStockOutTaskOrderForReview(header, loginUser, now);
|
||||||
|
|
||||||
|
|||||||
+34
-34
@@ -1301,40 +1301,40 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
|
|||||||
// 校验批次号唯一性:货主+商品+库存属性值相同时,批次号不能重复
|
// 校验批次号唯一性:货主+商品+库存属性值相同时,批次号不能重复
|
||||||
|
|
||||||
// 校验批次号:仅本入库单范围内,货主+商品+库存属性+批次在库存中是否已存在(不同入库单允许相同批次号)
|
// 校验批次号:仅本入库单范围内,货主+商品+库存属性+批次在库存中是否已存在(不同入库单允许相同批次号)
|
||||||
if (shipperId != null && materialBaseInfoId != null && batchNumber != null && !batchNumber.trim().isEmpty()) {
|
// if (shipperId != null && materialBaseInfoId != null && batchNumber != null && !batchNumber.trim().isEmpty()) {
|
||||||
if (StringUtils.isBlank(currentInOrderNumber)) {
|
// if (StringUtils.isBlank(currentInOrderNumber)) {
|
||||||
log.warn("batchReceiptUpdate:未解析到入库单号,跳过库存批次重复校验,receiptOrderNumber={}",
|
// log.warn("batchReceiptUpdate:未解析到入库单号,跳过库存批次重复校验,receiptOrderNumber={}",
|
||||||
receiptMaterialDetailDO != null ? receiptMaterialDetailDO.getReceiptOrderNumber() : null);
|
// receiptMaterialDetailDO != null ? receiptMaterialDetailDO.getReceiptOrderNumber() : null);
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MaterialInventory> wrapper =
|
// com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MaterialInventory> wrapper =
|
||||||
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MaterialInventory>()
|
// new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MaterialInventory>()
|
||||||
.eq(MaterialInventory::getShipperId, shipperId)
|
// .eq(MaterialInventory::getShipperId, shipperId)
|
||||||
.eq(MaterialInventory::getMaterialBaseInfoId, materialBaseInfoId)
|
// .eq(MaterialInventory::getMaterialBaseInfoId, materialBaseInfoId)
|
||||||
.eq(MaterialInventory::getBatchNumber, batchNumber)
|
// .eq(MaterialInventory::getBatchNumber, batchNumber)
|
||||||
.eq(MaterialInventory::getDelFlag, 1)
|
// .eq(MaterialInventory::getDelFlag, 1)
|
||||||
.eq(MaterialInventory::getInOrderNumber, currentInOrderNumber);
|
// .eq(MaterialInventory::getInOrderNumber, currentInOrderNumber);
|
||||||
|
//
|
||||||
// 如果库存属性值不为空,需要精确匹配;如果为空,查询库存属性值为空或null的记录
|
// // 如果库存属性值不为空,需要精确匹配;如果为空,查询库存属性值为空或null的记录
|
||||||
if (materialStatusCode != null && !materialStatusCode.trim().isEmpty()) {
|
// if (materialStatusCode != null && !materialStatusCode.trim().isEmpty()) {
|
||||||
wrapper.eq(MaterialInventory::getMaterialStatusCode, materialStatusCode);
|
// wrapper.eq(MaterialInventory::getMaterialStatusCode, materialStatusCode);
|
||||||
} else {
|
// } else {
|
||||||
wrapper.and(w -> w.isNull(MaterialInventory::getMaterialStatusCode)
|
// wrapper.and(w -> w.isNull(MaterialInventory::getMaterialStatusCode)
|
||||||
.or()
|
// .or()
|
||||||
.eq(MaterialInventory::getMaterialStatusCode, ""));
|
// .eq(MaterialInventory::getMaterialStatusCode, ""));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
List<MaterialInventory> existingInventoryList = materialInventoryMapper.selectList(wrapper);
|
// List<MaterialInventory> existingInventoryList = materialInventoryMapper.selectList(wrapper);
|
||||||
|
//
|
||||||
if (!CollectionUtils.isEmpty(existingInventoryList)) {
|
// if (!CollectionUtils.isEmpty(existingInventoryList)) {
|
||||||
String statusCodeDesc = (materialStatusCode != null && !materialStatusCode.trim().isEmpty())
|
// String statusCodeDesc = (materialStatusCode != null && !materialStatusCode.trim().isEmpty())
|
||||||
? ",库存属性值:" + materialStatusCode
|
// ? ",库存属性值:" + materialStatusCode
|
||||||
: ",库存属性值:空";
|
// : ",库存属性值:空";
|
||||||
throw new ServiceException("批次号【" + batchNumber + "】在本入库单「" + currentInOrderNumber
|
// throw new ServiceException("批次号【" + batchNumber + "】在本入库单「" + currentInOrderNumber
|
||||||
+ "」下已存在库存,货主ID【" + shipperId + "】+商品ID【" + materialBaseInfoId + "】" + statusCodeDesc
|
// + "」下已存在库存,货主ID【" + shipperId + "】+商品ID【" + materialBaseInfoId + "】" + statusCodeDesc
|
||||||
+ ",不允许重复使用");
|
// + ",不允许重复使用");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+2
@@ -1058,6 +1058,7 @@ public class StockShelfOrderDomainService {
|
|||||||
inventoryParamDO.setCreateBy(loginUser.getUserid());
|
inventoryParamDO.setCreateBy(loginUser.getUserid());
|
||||||
inventoryParamDO.setCreateByName(loginUser.getUsername());
|
inventoryParamDO.setCreateByName(loginUser.getUsername());
|
||||||
inventoryParamDO.setCreateTime(new Date());
|
inventoryParamDO.setCreateTime(new Date());
|
||||||
|
inventoryParamDO.setUpdateTime(new Date());
|
||||||
// materialInventoryMapper.insert(materialInventory);
|
// materialInventoryMapper.insert(materialInventory);
|
||||||
|
|
||||||
inventoryParamDO.setType("1");
|
inventoryParamDO.setType("1");
|
||||||
@@ -1117,6 +1118,7 @@ public class StockShelfOrderDomainService {
|
|||||||
inventoryParamDO.setLotNumber(shelfMaterialDetail.getLotNumber());
|
inventoryParamDO.setLotNumber(shelfMaterialDetail.getLotNumber());
|
||||||
inventoryParamDO.setQuantity(shelfMaterialDetail.getShelvesQuantity());
|
inventoryParamDO.setQuantity(shelfMaterialDetail.getShelvesQuantity());
|
||||||
inventoryParamDO.setType("1");
|
inventoryParamDO.setType("1");
|
||||||
|
inventoryParamDO.setUpdateTime(new Date());
|
||||||
materialInventoryService.xgkc(inventoryParamDO);
|
materialInventoryService.xgkc(inventoryParamDO);
|
||||||
//库存调整记录
|
//库存调整记录
|
||||||
materialInventoryService.kctzjl(inventoryParamDO, "入库", loginUser);
|
materialInventoryService.kctzjl(inventoryParamDO, "入库", loginUser);
|
||||||
|
|||||||
Reference in New Issue
Block a user