|
@ -1,6 +1,8 @@ |
|
|
package com.ruoyi.warehouse.service.impl; |
|
|
package com.ruoyi.warehouse.service.impl; |
|
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
import java.math.BigDecimal; |
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
import java.util.Arrays; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Optional; |
|
|
import java.util.Optional; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
@ -1829,109 +1831,120 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS |
|
|
// 新增采购入库库存历史记录
|
|
|
// 新增采购入库库存历史记录
|
|
|
String purchasePlanCode = purchaseOrderMapper.selectPurchasePlanCodeByCode(correlationCode); |
|
|
String purchasePlanCode = purchaseOrderMapper.selectPurchasePlanCodeByCode(correlationCode); |
|
|
|
|
|
|
|
|
PurchasePlan purchasePlan = purchasePlanMapper.selectPurchasePlanByPlanCode(purchasePlanCode); |
|
|
List<String> purchasePlanCodes = new ArrayList<>(); |
|
|
if ("2".equals(purchasePlan.getPurchasePlanType())){ //来源为请购单
|
|
|
if (StringUtils.isEmpty(purchasePlanCode)){ |
|
|
List<PurchaseOrderChild> purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); |
|
|
throw new BusinessException("找不到与采购单号关联的采购计划号"); |
|
|
for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { |
|
|
} |
|
|
if(purchaseOrderChild.getMaterialNo().equals(materialNo)){ |
|
|
|
|
|
|
|
|
|
|
|
WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); |
|
|
|
|
|
Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); |
|
|
|
|
|
historicalTotal += storageNum; |
|
|
|
|
|
oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); |
|
|
|
|
|
|
|
|
|
|
|
Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); |
|
|
|
|
|
if (availableStockNum == null || availableStockNum == 0){ |
|
|
|
|
|
availableStockNum = storageNum; |
|
|
|
|
|
}else { |
|
|
|
|
|
availableStockNum += storageNum; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); |
|
|
if (StringUtils.isNotEmpty(purchasePlanCode)){ |
|
|
|
|
|
String[] splitPurchasePlanCode = purchasePlanCode.split(","); |
|
|
|
|
|
purchasePlanCodes = Arrays.asList(splitPurchasePlanCode); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<PurchasePlan> purchasePlans = purchasePlanMapper.selectPurchaseOrderByPlanCodeList(purchasePlanCodes); |
|
|
|
|
|
for (PurchasePlan purchasePlan : purchasePlans) { |
|
|
|
|
|
if ("2".equals(purchasePlan.getPurchasePlanType())){ //来源为请购单
|
|
|
|
|
|
List<PurchaseOrderChild> purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); |
|
|
|
|
|
for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { |
|
|
|
|
|
if(purchaseOrderChild.getMaterialNo().equals(materialNo)){ |
|
|
|
|
|
|
|
|
|
|
|
WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); |
|
|
|
|
|
Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); |
|
|
|
|
|
historicalTotal += storageNum; |
|
|
|
|
|
oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); |
|
|
|
|
|
|
|
|
|
|
|
Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); |
|
|
|
|
|
if (availableStockNum == null || availableStockNum == 0){ |
|
|
|
|
|
availableStockNum = storageNum; |
|
|
|
|
|
}else { |
|
|
|
|
|
availableStockNum += storageNum; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); |
|
|
// Integer oldAvailableStockNum = warehouseInventoryInquiryService.calculateAvailableStockNum(materialNo);
|
|
|
// Integer oldAvailableStockNum = warehouseInventoryInquiryService.calculateAvailableStockNum(materialNo);
|
|
|
// oldWarehouseInventoryInquiry.setAvailableStockNum(oldAvailableStockNum + storageNum); //加上本次入库的数量
|
|
|
// oldWarehouseInventoryInquiry.setAvailableStockNum(oldAvailableStockNum + storageNum); //加上本次入库的数量
|
|
|
Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum();//共享可用库存
|
|
|
Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum();//共享可用库存
|
|
|
if (sharedAvailableStockNum == null || sharedAvailableStockNum == 0){ |
|
|
if (sharedAvailableStockNum == null || sharedAvailableStockNum == 0){ |
|
|
sharedAvailableStockNum = storageNum; |
|
|
sharedAvailableStockNum = storageNum; |
|
|
}else { |
|
|
}else { |
|
|
sharedAvailableStockNum += storageNum; |
|
|
sharedAvailableStockNum += storageNum; |
|
|
} |
|
|
} |
|
|
oldWarehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); |
|
|
oldWarehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); |
|
|
|
|
|
|
|
|
int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); |
|
|
int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); |
|
|
if (updateResult <= 0){ |
|
|
if (updateResult <= 0){ |
|
|
throw new BusinessException("更新库存查询记录失败!"); |
|
|
throw new BusinessException("更新库存查询记录失败!"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry); |
|
|
remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry); |
|
|
|
|
|
|
|
|
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); |
|
|
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); |
|
|
inquiryDetail.setMaterialNo(materialNo); |
|
|
inquiryDetail.setMaterialNo(materialNo); |
|
|
inquiryDetail.setInquiryWarehouseType("0");//采购入库
|
|
|
inquiryDetail.setInquiryWarehouseType("0");//采购入库
|
|
|
inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); |
|
|
inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); |
|
|
inquiryDetail.setInquiryOrderType("0"); |
|
|
inquiryDetail.setInquiryOrderType("0"); |
|
|
inquiryDetail.setInquiryBusinessType("0"); |
|
|
inquiryDetail.setInquiryBusinessType("0"); |
|
|
inquiryDetail.setCorrelationCode(storageCode); |
|
|
inquiryDetail.setCorrelationCode(storageCode); |
|
|
inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); |
|
|
inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); |
|
|
inquiryDetail.setInventoryIncreaseDecrease("1"); |
|
|
inquiryDetail.setInventoryIncreaseDecrease("1"); |
|
|
int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); |
|
|
int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); |
|
|
if (insertDetailResult <= 0){ |
|
|
if (insertDetailResult <= 0){ |
|
|
throw new BusinessException("新增库存履历失败!"); |
|
|
throw new BusinessException("新增库存履历失败!"); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}else if ("1".equals(purchasePlan.getPurchasePlanType())){ //生产订单
|
|
|
}else if ("1".equals(purchasePlan.getPurchasePlanType())){ //生产订单
|
|
|
List<PurchaseOrderChild> purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); |
|
|
List<PurchaseOrderChild> purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); |
|
|
for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { |
|
|
for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { |
|
|
if (purchaseOrderChild.getMaterialNo().equals(materialNo)) { |
|
|
if (purchaseOrderChild.getMaterialNo().equals(materialNo)) { |
|
|
|
|
|
|
|
|
WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); |
|
|
WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); |
|
|
Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); |
|
|
Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); |
|
|
historicalTotal += storageNum; |
|
|
historicalTotal += storageNum; |
|
|
oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); |
|
|
oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); |
|
|
Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); |
|
|
Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); |
|
|
if (availableStockNum == null || availableStockNum == 0){ |
|
|
if (availableStockNum == null || availableStockNum == 0){ |
|
|
availableStockNum = storageNum; |
|
|
availableStockNum = storageNum; |
|
|
}else { |
|
|
}else { |
|
|
availableStockNum += storageNum; |
|
|
availableStockNum += storageNum; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); |
|
|
oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); |
|
|
|
|
|
// Integer oldAvailableStockNum = warehouseInventoryInquiryService.calculateAvailableStockNum(materialNo);
|
|
|
// Integer oldAvailableStockNum = warehouseInventoryInquiryService.calculateAvailableStockNum(materialNo);
|
|
|
|
|
|
|
|
|
Integer fixedAvailableStockNum = oldWarehouseInventoryInquiry.getFixedAvailableStockNum();//固定可用库存
|
|
|
Integer fixedAvailableStockNum = oldWarehouseInventoryInquiry.getFixedAvailableStockNum();//固定可用库存
|
|
|
if (fixedAvailableStockNum == null || fixedAvailableStockNum == 0){ |
|
|
if (fixedAvailableStockNum == null || fixedAvailableStockNum == 0){ |
|
|
fixedAvailableStockNum = storageNum; |
|
|
fixedAvailableStockNum = storageNum; |
|
|
}else { |
|
|
}else { |
|
|
fixedAvailableStockNum += storageNum; |
|
|
fixedAvailableStockNum += storageNum; |
|
|
} |
|
|
} |
|
|
oldWarehouseInventoryInquiry.setFixedAvailableStockNum(fixedAvailableStockNum); |
|
|
oldWarehouseInventoryInquiry.setFixedAvailableStockNum(fixedAvailableStockNum); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); |
|
|
int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); |
|
|
if (updateResult <= 0) { |
|
|
if (updateResult <= 0) { |
|
|
throw new BusinessException("更新库存查询记录失败!"); |
|
|
throw new BusinessException("更新库存查询记录失败!"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry); |
|
|
remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry); |
|
|
|
|
|
|
|
|
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); |
|
|
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); |
|
|
inquiryDetail.setMaterialNo(materialNo); |
|
|
inquiryDetail.setMaterialNo(materialNo); |
|
|
inquiryDetail.setInquiryWarehouseType("0");//采购入库
|
|
|
inquiryDetail.setInquiryWarehouseType("0");//采购入库
|
|
|
inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); |
|
|
inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); |
|
|
inquiryDetail.setInquiryOrderType("0"); |
|
|
inquiryDetail.setInquiryOrderType("0"); |
|
|
inquiryDetail.setInquiryBusinessType("0"); |
|
|
inquiryDetail.setInquiryBusinessType("0"); |
|
|
inquiryDetail.setCorrelationCode(storageCode); |
|
|
inquiryDetail.setCorrelationCode(storageCode); |
|
|
inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); |
|
|
inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); |
|
|
inquiryDetail.setInventoryIncreaseDecrease("1"); |
|
|
inquiryDetail.setInventoryIncreaseDecrease("1"); |
|
|
int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); |
|
|
int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); |
|
|
if (insertDetailResult <= 0) { |
|
|
if (insertDetailResult <= 0) { |
|
|
throw new BusinessException("新增库存履历失败!"); |
|
|
throw new BusinessException("新增库存履历失败!"); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
}else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录
|
|
|
}else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录
|
|
|
|
|
|
|
|
|
WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); |
|
|
WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); |
|
|