Browse Source

[fix] 库存管理

库存查询 新增 计算可用库存数方法
修改仓库的 生成/修改库存查询方法,去掉之前的逻辑,加上对以下数量的计算
历史总数量:【采购入库单】的入库数+【生产入库单】的入库数+【委外入库单】的入库数+【换货入库单】的入库数
可用库存数:=所有【库存履历增加】的数量-【锁定数】-【使用数】-【盘亏数】
固定可用库存数:=【可用库存数】-【共享可用库存数】+(【共享可用库存数】变更成【固定可用库存数】)
共享可用库存数:=【请购单发起的采购入库单】的入库数+(【固定可用库存数】变更成【共享可用库存数】)
加上对仓库库存查询详情的处理
修改 通过采购订单编号查询采购订单集合后端方法,加上对传入的purchaseCodeList进行非空判断
dev
liuxiaoxu 3 months ago
parent
commit
6c4922f212
  1. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java
  2. 27
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java
  3. 48
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java
  4. 280
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java
  5. 8
      ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml

2
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java

@ -610,7 +610,7 @@ public class BaseRequisitioningOrderServiceImpl implements IBaseRequisitioningOr
Integer materialAmount = requisitioningOrderDetailList.size(); Integer materialAmount = requisitioningOrderDetailList.size();
String purchasePlanCode = redisCache.generateBillNo("CGJH"); String purchasePlanCode = redisCache.generateBillNo("CGJH");
//采购计划关联单号 //采购计划单号
purchasePlan.setPurchasePlanCode(purchasePlanCode); purchasePlan.setPurchasePlanCode(purchasePlanCode);
for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) { for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) {

27
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java

@ -9,8 +9,7 @@ import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
* @author 刘晓旭 * @author 刘晓旭
* @date 2024-06-06 * @date 2024-06-06
*/ */
public interface IWarehouseInventoryInquiryService public interface IWarehouseInventoryInquiryService {
{
/** /**
* 查询仓库库存查询 * 查询仓库库存查询
* *
@ -63,6 +62,7 @@ public interface IWarehouseInventoryInquiryService
/** /**
* 作废仓库库存查询 * 作废仓库库存查询
*
* @param inventoryInquiryId 仓库库存查询ID * @param inventoryInquiryId 仓库库存查询ID
* @return * @return
*/ */
@ -70,6 +70,7 @@ public interface IWarehouseInventoryInquiryService
/** /**
* 恢复仓库库存查询 * 恢复仓库库存查询
*
* @param inventoryInquiryId 仓库库存查询ID * @param inventoryInquiryId 仓库库存查询ID
* @return * @return
*/ */
@ -82,11 +83,29 @@ public interface IWarehouseInventoryInquiryService
/** /**
* 修改可用库存信息 * 修改可用库存信息
* */ */
int updateAvailableStock(WarehouseInventoryInquiry warehouseInventoryInquiry); int updateAvailableStock(WarehouseInventoryInquiry warehouseInventoryInquiry);
/** /**
* 显示修改可用库存信息页面 * 显示修改可用库存信息页面
* */ */
WarehouseInventoryInquiry showEditAvailableStock(Long inventoryInquiryId); WarehouseInventoryInquiry showEditAvailableStock(Long inventoryInquiryId);
/**
* 计算可用库存数
* */
Integer calculateAvailableStockNum(String materialNo);
/**
* 计算共享可用库存数
* */
Integer calculateSharedAvailableStockNum(String materialNo);
/**
* 计算固定可用库存数
* */
Integer calculateFixedAvailableStockNum(String materialNo);
} }

48
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java

@ -1,6 +1,8 @@
package com.ruoyi.warehouse.service.impl; package com.ruoyi.warehouse.service.impl;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.exception.BusinessException;
@ -17,6 +19,7 @@ import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper;
import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry; import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService; import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import org.springframework.util.CollectionUtils;
/** /**
* 仓库库存查询Service业务层处理 * 仓库库存查询Service业务层处理
@ -229,6 +232,7 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory
List<PurchaseOrder> purchaseOrders = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList); List<PurchaseOrder> purchaseOrders = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList);
//审核中的采购订单 //审核中的采购订单
List<PurchaseOrder> filterPurchaseOrders = purchaseOrders.stream().filter(item -> "0".equals(item.getAuditStatus())).collect(Collectors.toList()); List<PurchaseOrder> filterPurchaseOrders = purchaseOrders.stream().filter(item -> "0".equals(item.getAuditStatus())).collect(Collectors.toList());
@ -247,4 +251,48 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory
warehouseInventoryInquiry.setNoOccupancyNum(noOccupancyNum); warehouseInventoryInquiry.setNoOccupancyNum(noOccupancyNum);
return warehouseInventoryInquiry; return warehouseInventoryInquiry;
} }
/**
* 计算可用库存数
* */
@Override
public Integer calculateAvailableStockNum(String materialNo){
//可用库存数=所有【库存履历增加】的数量-【锁定数】-【使用数】-【盘亏数】
WarehouseInventoryInquiry warehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo);
if (warehouseInventoryInquiry == null){
return 0;
}
List<WarehouseInventoryInquiryDetail> warehouseInventoryInquiryDetails = warehouseInventoryInquiryDetailMapper.selectWarehouseInventoryInquiryDetailByMaterialNo(materialNo);
List<WarehouseInventoryInquiryDetail> filterInventoryInquiryDetails = warehouseInventoryInquiryDetails.stream().filter(item -> "1".equals(item.getInventoryIncreaseDecrease())).collect(Collectors.toList());
int totalIncreaseDecreaseNum = CollectionUtils.isEmpty(filterInventoryInquiryDetails) ? 0 : filterInventoryInquiryDetails.stream().mapToInt(WarehouseInventoryInquiryDetail::getIncreaseDecreaseNum).sum();
Integer useNum = Optional.ofNullable(warehouseInventoryInquiry.getUseNum()).orElse(0);//使用数
Integer lockStockNum = Optional.ofNullable(warehouseInventoryInquiry.getLockStockNum()).orElse(0);//锁定数
Integer stockLossesNum = Optional.ofNullable(warehouseInventoryInquiry.getStockLossesNum()).orElse(0);//盘亏数
return totalIncreaseDecreaseNum - lockStockNum - useNum - stockLossesNum;
}
/**
* 计算共享可用库存数
* */
@Override
public Integer calculateSharedAvailableStockNum(String materialNo) {
return null;
}
/**
* 计算固定可用库存数
* */
@Override
public Integer calculateFixedAvailableStockNum(String materialNo) {
//【可用库存数】-【共享可用库存数】
return null;
}
} }

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

@ -5,6 +5,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
@ -16,8 +17,10 @@ import com.ruoyi.erp.mapper.ErpDevelopModifyorderMapper;
import com.ruoyi.erp.mapper.ErpMaterialMapper; import com.ruoyi.erp.mapper.ErpMaterialMapper;
import com.ruoyi.purchase.domain.PurchaseOrder; import com.ruoyi.purchase.domain.PurchaseOrder;
import com.ruoyi.purchase.domain.PurchaseOrderChild; import com.ruoyi.purchase.domain.PurchaseOrderChild;
import com.ruoyi.purchase.domain.PurchasePlan;
import com.ruoyi.purchase.mapper.PurchaseOrderChildMapper; import com.ruoyi.purchase.mapper.PurchaseOrderChildMapper;
import com.ruoyi.purchase.mapper.PurchaseOrderMapper; import com.ruoyi.purchase.mapper.PurchaseOrderMapper;
import com.ruoyi.purchase.mapper.PurchasePlanMapper;
import com.ruoyi.quality.domain.QualityOrder; import com.ruoyi.quality.domain.QualityOrder;
import com.ruoyi.quality.domain.QualityOrderDetail; import com.ruoyi.quality.domain.QualityOrderDetail;
import com.ruoyi.quality.domain.QualityRefundsExchanges; import com.ruoyi.quality.domain.QualityRefundsExchanges;
@ -36,6 +39,7 @@ import com.ruoyi.system.service.ISysMakeOrderService;
import com.ruoyi.system.service.ISysSalesOrderService; import com.ruoyi.system.service.ISysSalesOrderService;
import com.ruoyi.warehouse.domain.*; import com.ruoyi.warehouse.domain.*;
import com.ruoyi.warehouse.mapper.*; import com.ruoyi.warehouse.mapper.*;
import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.activiti.editor.language.json.converter.util.CollectionUtils; import org.activiti.editor.language.json.converter.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -91,6 +95,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
@Autowired @Autowired
private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper; private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper;
@Autowired
private IWarehouseInventoryInquiryService warehouseInventoryInquiryService;
@Autowired @Autowired
private WarehouseInventoryInquiryDetailMapper inventoryInquiryDetailMapper; private WarehouseInventoryInquiryDetailMapper inventoryInquiryDetailMapper;
@ -101,6 +108,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
@Autowired @Autowired
private PurchaseOrderMapper purchaseOrderMapper; private PurchaseOrderMapper purchaseOrderMapper;
@Autowired
private PurchasePlanMapper purchasePlanMapper;
@Autowired @Autowired
private ErpMaterialMapper erpMaterialMapper; private ErpMaterialMapper erpMaterialMapper;
@ -112,6 +122,10 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
@Autowired @Autowired
private QualityRefundsExchangesMapper exchangesMapper; private QualityRefundsExchangesMapper exchangesMapper;
@Autowired
private AfterSalesShippingDeviceMapper afterSalesShippingDeviceMapper;
/** /**
* 查询仓库入库单 * 查询仓库入库单
* *
@ -542,10 +556,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
} }
WarehouseStorageOrderDetail updateStorageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail updateStorageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(updateStorageOrderDetail); createWarehouseInventoryInquiry(updateStorageOrderDetail);
if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行");
}
} }
//更新入库单的数据 //更新入库单的数据
@ -658,25 +670,23 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); throw new BusinessException("更新仓库入库单详情失败,未影响任何行");
} }
WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); createWarehouseInventoryInquiry(storageOrderDetail);
if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行");
}
}
//更新生产单数据
int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList);
if (updateMakeOrderResult <= 0){
throw new BusinessException("更新生产订单失败,未影响任何行");
} }
//更新开发修改单数据 // //更新生产单数据
String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); // int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList);
ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); // if (updateMakeOrderResult <= 0){
if (erpDevelopModifyorder != null){ // throw new BusinessException("更新生产订单失败,未影响任何行");
erpDevelopModifyorder.setPurchaseStorageStatus("8"); // }
developModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder); //
} // //更新开发修改单数据
// String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode();
// ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode);
// if (erpDevelopModifyorder != null){
// erpDevelopModifyorder.setPurchaseStorageStatus("8");
// developModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder);
// }
if (warehouseStorageOrder.getStorageNum().equals(oldWarehouseStorageOrder.getTemporaryQualifiedNum())){ if (warehouseStorageOrder.getStorageNum().equals(oldWarehouseStorageOrder.getTemporaryQualifiedNum())){
@ -708,29 +718,121 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
} }
// 生成/修改库存查询 // 生成/修改库存查询
public int createWarehouseInventoryInquiry(WarehouseStorageOrderDetail warehouseStorageOrderDetail){ public void createWarehouseInventoryInquiry(WarehouseStorageOrderDetail warehouseStorageOrderDetail){
String materialNo = warehouseStorageOrderDetail.getMaterialNo(); String materialNo = warehouseStorageOrderDetail.getMaterialNo();
String correlationCode = warehouseStorageOrderDetail.getRelatedOrderCode(); String correlationCode = warehouseStorageOrderDetail.getRelatedOrderCode();
String storageCode = warehouseStorageOrderDetail.getWarehouseStorageCode(); String storageCode = warehouseStorageOrderDetail.getWarehouseStorageCode();
WarehouseStorageOrder warehouseStorageOrder = warehouseStorageOrderMapper.selectWarehouseStorageOrderByCode(storageCode); WarehouseStorageOrder warehouseStorageOrder = warehouseStorageOrderMapper.selectWarehouseStorageOrderByCode(storageCode);
String warehouseStorageType = warehouseStorageOrder.getWarehouseStorageType(); String warehouseStorageType = warehouseStorageOrder.getWarehouseStorageType();
if(warehouseStorageType.equals("0")) {
Integer storageNum = warehouseStorageOrderDetail.getStorageNum();
if("0".equals(warehouseStorageType)) {
// 新增采购入库库存历史记录 // 新增采购入库库存历史记录
String purchasePlanCode = purchaseOrderMapper.selectPurchasePlanCodeByCode(correlationCode);
PurchasePlan purchasePlan = purchasePlanMapper.selectPurchasePlanByPlanCode(purchasePlanCode);
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);
// oldWarehouseInventoryInquiry.setAvailableStockNum(oldAvailableStockNum + storageNum); //加上本次入库的数量
Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum();//共享可用库存
if (sharedAvailableStockNum == null || sharedAvailableStockNum == 0){
sharedAvailableStockNum = storageNum;
}else {
sharedAvailableStockNum += storageNum;
}
oldWarehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum);
Integer oldAvailableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum();
oldWarehouseInventoryInquiry.setFixedAvailableStockNum(oldAvailableStockNum - sharedAvailableStockNum); //固定可用库存
int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry);
if (updateResult <= 0){
throw new BusinessException("更新库存查询记录失败!");
}
// PurchaseOrder purchaseOrder = purchaseOrderMapper.selectPurchaseOrderByOrderCode()
List<PurchaseOrderChild> purchaseOrderChild = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode);
for (PurchaseOrderChild child : purchaseOrderChild) {
if(child.getMaterialNo().equals(materialNo)){
int storageNum = warehouseStorageOrderDetail.getStorageNum();
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail = generateInquiryDetailByPurchaseChild(child,storageNum); inquiryDetail.setMaterialNo(materialNo);
// inquiryDetail.setInventoryHistoricalType("0"); inquiryDetail.setInquiryWarehouseType("0");//采购入库
// if (correlationCode.startsWith("QG")) { inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate());
//// 有无归属分类 inquiryDetail.setInquiryOrderType("0");
// } inquiryDetail.setInquiryBusinessType("0");
inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); inquiryDetail.setCorrelationCode(storageCode);
inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum());
inquiryDetail.setInventoryIncreaseDecrease("1");
int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail);
if (insertDetailResult <= 0){
throw new BusinessException("新增库存履历失败!");
}
}
}
}else if ("1".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);
// oldWarehouseInventoryInquiry.setAvailableStockNum(oldAvailableStockNum + storageNum); //加上本次入库的数量
Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum();//共享可用库存
if (sharedAvailableStockNum == null || sharedAvailableStockNum == 0){
sharedAvailableStockNum = storageNum;
}else {
sharedAvailableStockNum += storageNum;
}
oldWarehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum);
Integer oldAvailableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum();
oldWarehouseInventoryInquiry.setFixedAvailableStockNum(oldAvailableStockNum - sharedAvailableStockNum); //固定可用库存
int updateResult = warehouseInventoryInquiryService.insertWarehouseInventoryInquiry(oldWarehouseInventoryInquiry);
if (updateResult <= 0) {
throw new BusinessException("更新库存查询记录失败!");
}
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail.setMaterialNo(materialNo);
inquiryDetail.setInquiryWarehouseType("0");//采购入库
inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate());
inquiryDetail.setInquiryOrderType("0");
inquiryDetail.setInquiryBusinessType("0");
inquiryDetail.setCorrelationCode(storageCode);
inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum());
inquiryDetail.setInventoryIncreaseDecrease("1");
int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail);
if (insertDetailResult <= 0) {
throw new BusinessException("新增库存履历失败!");
}
} }
} }
}
}else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录 }else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail);
@ -751,48 +853,48 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
scrapSum += scrapSum; scrapSum += scrapSum;
} }
} }
// 存在库存查询记录,更新可用库存数 //// 存在库存查询记录,更新可用库存数
if(warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo)!=null){ // if(warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo)!=null){
WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); // WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo);
// 增加可用库存数 //// 增加可用库存数
Integer storage = warehouseStorageOrderDetail.getStorageNum(); // Integer storage = warehouseStorageOrderDetail.getStorageNum();
Integer storagenum = storage; // Integer storagenum = storage;
Integer avaliableStorage = inventoryInquiry.getAvailableStockNum(); // Integer avaliableStorage = inventoryInquiry.getAvailableStockNum();
avaliableStorage += storagenum; // avaliableStorage += storagenum;
inventoryInquiry.setAvailableStockNum(avaliableStorage); // inventoryInquiry.setAvailableStockNum(avaliableStorage);
inventoryInquiry.setReportDamageNum(scrapSum); // inventoryInquiry.setReportDamageNum(scrapSum);
// 设置历史总数 //// 设置历史总数
Integer historicalTotal = inventoryInquiry.getHistoricalTotal(); // Integer historicalTotal = inventoryInquiry.getHistoricalTotal();
historicalTotal += storagenum; // historicalTotal += storagenum;
inventoryInquiry.setHistoricalTotal(historicalTotal); // inventoryInquiry.setHistoricalTotal(historicalTotal);
inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); // inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName());
inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); // inventoryInquiry.setUpdateTime(DateUtils.getNowDate());
return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); // return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry);
}else{ // }else{
WarehouseInventoryInquiry inventoryInquiry = new WarehouseInventoryInquiry(); // WarehouseInventoryInquiry inventoryInquiry = new WarehouseInventoryInquiry();
inventoryInquiry.setMaterialNo(materialNo); // inventoryInquiry.setMaterialNo(materialNo);
inventoryInquiry.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); // inventoryInquiry.setMaterialName(warehouseStorageOrderDetail.getMaterialName());
inventoryInquiry.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); // inventoryInquiry.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl());
inventoryInquiry.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); // inventoryInquiry.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand());
inventoryInquiry.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); // inventoryInquiry.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe());
inventoryInquiry.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); // inventoryInquiry.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit());
inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); // inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType());
inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); // inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod());
Integer storage = warehouseStorageOrderDetail.getStorageNum(); // Integer storage = warehouseStorageOrderDetail.getStorageNum();
Integer storagenum = storage; // Integer storagenum = storage;
// 设置历史总数 // // 设置历史总数
inventoryInquiry.setHistoricalTotal(storagenum); // inventoryInquiry.setHistoricalTotal(storagenum);
inventoryInquiry.setAvailableStockNum(storagenum); // inventoryInquiry.setAvailableStockNum(storagenum);
inventoryInquiry.setReportDamageNum(scrapSum); // inventoryInquiry.setReportDamageNum(scrapSum);
//
ErpMaterial material = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo); // ErpMaterial material = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo);
inventoryInquiry.setMaterialUseStatus(material.getUseStatus()); // inventoryInquiry.setMaterialUseStatus(material.getUseStatus());
inventoryInquiry.setCreateBy(ShiroUtils.getLoginName()); // inventoryInquiry.setCreateBy(ShiroUtils.getLoginName());
inventoryInquiry.setCreateTime(DateUtils.getNowDate()); // inventoryInquiry.setCreateTime(DateUtils.getNowDate());
inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); // inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName());
inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); // inventoryInquiry.setUpdateTime(DateUtils.getNowDate());
return warehouseInventoryInquiryMapper.insertWarehouseInventoryInquiry(inventoryInquiry); // return warehouseInventoryInquiryMapper.insertWarehouseInventoryInquiry(inventoryInquiry);
} // }
} }
// 生成采购订单库存历史记录 // 生成采购订单库存历史记录
@ -959,18 +1061,16 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); throw new BusinessException("更新仓库入库单详情失败,未影响任何行");
} }
WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); createWarehouseInventoryInquiry(storageOrderDetail);
if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行");
}
}
//更新生产单数据
int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList);
if (updateMakeOrderResult <= 0){
throw new BusinessException("更新生产订单失败,未影响任何行");
} }
// //更新生产单数据
// int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList);
// if (updateMakeOrderResult <= 0){
// throw new BusinessException("更新生产订单失败,未影响任何行");
// }
//更新开发修改单数据 //更新开发修改单数据
// String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); // String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode();
// ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); // ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode);
@ -1090,10 +1190,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); throw new BusinessException("更新仓库入库单详情失败,未影响任何行");
}else{ }else{
WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); createWarehouseInventoryInquiry(storageOrderDetail);
if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行");
}
} }
} }
//更新入库单的数据 //更新入库单的数据
@ -1423,10 +1521,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
} }
//更新库存查询 //更新库存查询
WarehouseStorageOrderDetail storageOrderInquiryDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail storageOrderInquiryDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId());
int inquiryResult = createWarehouseInventoryInquiry(storageOrderInquiryDetail); createWarehouseInventoryInquiry(storageOrderInquiryDetail);
if (inquiryResult <= 0){
throw new BusinessException("更新仓库库存查询失败,未影响任何行");
}
} }
//更新销售订单子表的数据 //更新销售订单子表的数据

8
ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml

@ -93,12 +93,16 @@
WHERE purchase_order_code = #{purchaseOrderCode} WHERE purchase_order_code = #{purchaseOrderCode}
</select> </select>
<select id="selectPurchaseOrderChildListByPurchaseCodeList" parameterType="String" resultMap="PurchaseOrderResult"> <select id="selectPurchaseOrderChildListByPurchaseCodeList" parameterType="list" resultMap="PurchaseOrderResult">
<include refid="selectPurchaseOrderVo"/> <include refid="selectPurchaseOrderVo"/>
where purchase_order_code in <where>
<if test="list != null and list.size > 0">
purchase_order_code in
<foreach collection="list" item="purchaseOrderCode" open="(" separator="," close=")"> <foreach collection="list" item="purchaseOrderCode" open="(" separator="," close=")">
#{purchaseOrderCode} #{purchaseOrderCode}
</foreach> </foreach>
</if>
</where>
</select> </select>

Loading…
Cancel
Save