入库管理bug修改

This commit is contained in:
秦鸿展
2026-01-24 11:34:41 +08:00
parent b3eb3f9963
commit d641a757f6
4 changed files with 306 additions and 88 deletions
@@ -55,6 +55,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -300,14 +301,17 @@ public class StockShelfOrderDomainService {
StockShelfOrder stockShelfOrder = new StockShelfOrder();
stockShelfOrder.setShelfOrderId(stockShelfOrderDO.getShelfOrderId());
stockShelfOrder.setStatus(2);
stockShelfOrder.setShelvesQuantity(stockShelfOrderPO.getShelvesQuantity().add(stockShelfOrderDO.getActualQuantity()));
BigDecimal currentShelvesQuantity = stockShelfOrderPO.getShelvesQuantity() != null ? stockShelfOrderPO.getShelvesQuantity() : BigDecimal.ZERO;
BigDecimal actualQuantity = stockShelfOrderDO.getActualQuantity() != null ? stockShelfOrderDO.getActualQuantity() : BigDecimal.ZERO;
stockShelfOrder.setShelvesQuantity(currentShelvesQuantity.add(actualQuantity));
stockShelfOrder.setShelvesMaterialQuantity(stockShelfOrderPO.getShelvesMaterialQuantity() + stockShelfOrderDO.getActualReceiptMaterialQuantity());
stockShelfOrder.setUpdateBy(loginUser.getUserid());
stockShelfOrder.setUpdateByName(loginUser.getUsername());
stockShelfOrder.setUpdateTime(new Date());
stockShelfOrderService.updateById(stockShelfOrder);
//上架数量大于等于计划数量 直接完成上架
if (stockShelfOrder.getShelvesQuantity().compareTo(stockShelfOrderPO.getReceiptQuantity()) >= 0){
BigDecimal receiptQuantity = stockShelfOrderPO.getReceiptQuantity() != null ? stockShelfOrderPO.getReceiptQuantity() : BigDecimal.ZERO;
if (stockShelfOrder.getShelvesQuantity().compareTo(receiptQuantity) >= 0){
completeUpShelf(stockShelfOrderPO.getShelfOrderId());
}
return true;
@@ -351,7 +355,9 @@ public class StockShelfOrderDomainService {
throw new ServiceException("上架单【" + stockShelfOrderPO.getReceiptOrderNumber() + "】已完成上架,请重新选择");
}
int abnormal = 2;
if (stockShelfOrderPO.getShelvesQuantity().compareTo(stockShelfOrderPO.getQuantity()) != 0){
BigDecimal shelvesQuantity = stockShelfOrderPO.getShelvesQuantity() != null ? stockShelfOrderPO.getShelvesQuantity() : BigDecimal.ZERO;
BigDecimal quantity = stockShelfOrderPO.getQuantity() != null ? stockShelfOrderPO.getQuantity() : BigDecimal.ZERO;
if (shelvesQuantity.compareTo(quantity) != 0){
abnormal = 1;
}
LoginUser loginUser = SecurityUtils.getLoginUser();
@@ -418,7 +424,16 @@ public class StockShelfOrderDomainService {
public void updateSerialNumberforInventory(List<ShelfMaterialDetail> shelfMaterialDetailList){
for (ShelfMaterialDetail shelfMaterialDetail : shelfMaterialDetailList){
if (shelfMaterialDetail.getMaterialDetailId() == null) {
continue;
}
MaterialInventory one = materialInventoryService.getOne(new QueryWrapper<MaterialInventory>().lambda().eq(MaterialInventory::getMaterialDetailId, shelfMaterialDetail.getMaterialDetailId()));
if (one == null) {
continue;
}
if (one.getMaterialInventoryId() == null) {
continue;
}
iSerialNumberService.update(new UpdateWrapper<SerialNumber>().lambda().eq(SerialNumber::getMaterialDetailId, one.getMaterialDetailId()).set(SerialNumber::getMaterialInventoryId, one.getMaterialInventoryId()));
}
}