Browse Source

[fix] 销售管理

修复采购入库的来源为采购订单,并且该采购订单关联多个采购计划的情况出行查询为空指针的bug
dev
liuxiaoxu 2 months ago
parent
commit
9aa0a42515
  1. 197
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java

197
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java

@ -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);

Loading…
Cancel
Save