From 6c4922f212fd94e8e8f2034ac845bddeef6cfb35 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Thu, 5 Dec 2024 10:06:59 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E5=BA=93=E5=AD=98=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=20=E6=96=B0=E5=A2=9E=20?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E6=96=B9=E6=B3=95=20=E4=BF=AE=E6=94=B9=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E7=9A=84=20=E7=94=9F=E6=88=90/=E4=BF=AE=E6=94=B9=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=9F=A5=E8=AF=A2=E6=96=B9=E6=B3=95,=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E4=B9=8B=E5=89=8D=E7=9A=84=E9=80=BB=E8=BE=91,?= =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E5=AF=B9=E4=BB=A5=E4=B8=8B=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E7=9A=84=E8=AE=A1=E7=AE=97=20=E5=8E=86=E5=8F=B2=E6=80=BB?= =?UTF-8?q?=E6=95=B0=E9=87=8F:=E3=80=90=E9=87=87=E8=B4=AD=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=8D=95=E3=80=91=E7=9A=84=E5=85=A5=E5=BA=93=E6=95=B0?= =?UTF-8?q?+=E3=80=90=E7=94=9F=E4=BA=A7=E5=85=A5=E5=BA=93=E5=8D=95?= =?UTF-8?q?=E3=80=91=E7=9A=84=E5=85=A5=E5=BA=93=E6=95=B0+=E3=80=90?= =?UTF-8?q?=E5=A7=94=E5=A4=96=E5=85=A5=E5=BA=93=E5=8D=95=E3=80=91=E7=9A=84?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=95=B0+=E3=80=90=E6=8D=A2=E8=B4=A7?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E3=80=91=E7=9A=84=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=95=B0=20=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E6=95=B0:=3D?= =?UTF-8?q?=E6=89=80=E6=9C=89=E3=80=90=E5=BA=93=E5=AD=98=E5=B1=A5=E5=8E=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E3=80=91=E7=9A=84=E6=95=B0=E9=87=8F-?= =?UTF-8?q?=E3=80=90=E9=94=81=E5=AE=9A=E6=95=B0=E3=80=91-=E3=80=90?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=95=B0=E3=80=91-=E3=80=90=E7=9B=98?= =?UTF-8?q?=E4=BA=8F=E6=95=B0=E3=80=91=20=E5=9B=BA=E5=AE=9A=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E5=BA=93=E5=AD=98=E6=95=B0:=3D=E3=80=90=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E5=BA=93=E5=AD=98=E6=95=B0=E3=80=91-=E3=80=90?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E3=80=91+(=E3=80=90=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=95=B0=E3=80=91=E5=8F=98=E6=9B=B4=E6=88=90?= =?UTF-8?q?=E3=80=90=E5=9B=BA=E5=AE=9A=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=95=B0=E3=80=91)=20=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=95=B0:=3D=E3=80=90=E8=AF=B7=E8=B4=AD?= =?UTF-8?q?=E5=8D=95=E5=8F=91=E8=B5=B7=E7=9A=84=E9=87=87=E8=B4=AD=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=8D=95=E3=80=91=E7=9A=84=E5=85=A5=E5=BA=93=E6=95=B0?= =?UTF-8?q?+(=E3=80=90=E5=9B=BA=E5=AE=9A=E5=8F=AF=E7=94=A8=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=95=B0=E3=80=91=E5=8F=98=E6=9B=B4=E6=88=90=E3=80=90?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E3=80=91)=20=E5=8A=A0=E4=B8=8A=E5=AF=B9=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=E8=AF=A6=E6=83=85=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=20=E4=BF=AE=E6=94=B9=20=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E7=BC=96=E5=8F=B7=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E9=9B=86=E5=90=88?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=96=B9=E6=B3=95,=E5=8A=A0=E4=B8=8A?= =?UTF-8?q?=E5=AF=B9=E4=BC=A0=E5=85=A5=E7=9A=84purchaseCodeList=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E9=9D=9E=E7=A9=BA=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseRequisitioningOrderServiceImpl.java | 2 +- .../IWarehouseInventoryInquiryService.java | 49 ++- .../WarehouseInventoryInquiryServiceImpl.java | 48 +++ .../WarehouseStorageOrderServiceImpl.java | 284 ++++++++++++------ .../mapper/purchase/PurchaseOrderMapper.xml | 14 +- 5 files changed, 282 insertions(+), 115 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java index dd31f319..57540090 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java +++ b/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(); String purchasePlanCode = redisCache.generateBillNo("CGJH"); - //采购计划关联单号 + //采购计划单号 purchasePlan.setPurchasePlanCode(purchasePlanCode); for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java index 821d4750..f1da2998 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java @@ -5,15 +5,14 @@ import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry; /** * 仓库库存查询Service接口 - * + * * @author 刘晓旭 * @date 2024-06-06 */ -public interface IWarehouseInventoryInquiryService -{ +public interface IWarehouseInventoryInquiryService { /** * 查询仓库库存查询 - * + * * @param inventoryInquiryId 仓库库存查询ID * @return 仓库库存查询 */ @@ -21,7 +20,7 @@ public interface IWarehouseInventoryInquiryService /** * 查询仓库库存查询列表 - * + * * @param warehouseInventoryInquiry 仓库库存查询 * @return 仓库库存查询集合 */ @@ -31,7 +30,7 @@ public interface IWarehouseInventoryInquiryService /** * 新增仓库库存查询 - * + * * @param warehouseInventoryInquiry 仓库库存查询 * @return 结果 */ @@ -39,7 +38,7 @@ public interface IWarehouseInventoryInquiryService /** * 修改仓库库存查询 - * + * * @param warehouseInventoryInquiry 仓库库存查询 * @return 结果 */ @@ -47,7 +46,7 @@ public interface IWarehouseInventoryInquiryService /** * 批量删除仓库库存查询 - * + * * @param ids 需要删除的数据ID * @return 结果 */ @@ -55,7 +54,7 @@ public interface IWarehouseInventoryInquiryService /** * 删除仓库库存查询信息 - * + * * @param inventoryInquiryId 仓库库存查询ID * @return 结果 */ @@ -63,6 +62,7 @@ public interface IWarehouseInventoryInquiryService /** * 作废仓库库存查询 + * * @param inventoryInquiryId 仓库库存查询ID * @return */ @@ -70,23 +70,42 @@ public interface IWarehouseInventoryInquiryService /** * 恢复仓库库存查询 + * * @param inventoryInquiryId 仓库库存查询ID * @return */ int restoreWarehouseInventoryInquiryById(Long inventoryInquiryId); /* - * 根据物料号查询库存查询信息 - * */ + * 根据物料号查询库存查询信息 + * */ public WarehouseInventoryInquiry selectWarehouseInventoryInquiryByMaterialNo(String materialNo); /** - * 修改可用库存信息 - * */ + * 修改可用库存信息 + */ int updateAvailableStock(WarehouseInventoryInquiry warehouseInventoryInquiry); /** - * 显示修改可用库存信息页面 - * */ + * 显示修改可用库存信息页面 + */ WarehouseInventoryInquiry showEditAvailableStock(Long inventoryInquiryId); + + + /** + * 计算可用库存数 + * */ + Integer calculateAvailableStockNum(String materialNo); + + /** + * 计算共享可用库存数 + * */ + Integer calculateSharedAvailableStockNum(String materialNo); + + /** + * 计算固定可用库存数 + * */ + Integer calculateFixedAvailableStockNum(String materialNo); + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java index cff65337..a456a49e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.warehouse.service.impl; +import java.util.Collections; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; 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.service.IWarehouseInventoryInquiryService; import com.ruoyi.common.core.text.Convert; +import org.springframework.util.CollectionUtils; /** * 仓库库存查询Service业务层处理 @@ -229,6 +232,7 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory List purchaseOrders = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList); + //审核中的采购订单 List filterPurchaseOrders = purchaseOrders.stream().filter(item -> "0".equals(item.getAuditStatus())).collect(Collectors.toList()); @@ -247,4 +251,48 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory warehouseInventoryInquiry.setNoOccupancyNum(noOccupancyNum); return warehouseInventoryInquiry; } + + + /** + * 计算可用库存数 + * */ + @Override + public Integer calculateAvailableStockNum(String materialNo){ + + //可用库存数=所有【库存履历增加】的数量-【锁定数】-【使用数】-【盘亏数】 + + WarehouseInventoryInquiry warehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); + if (warehouseInventoryInquiry == null){ + return 0; + } + + List warehouseInventoryInquiryDetails = warehouseInventoryInquiryDetailMapper.selectWarehouseInventoryInquiryDetailByMaterialNo(materialNo); + + List 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; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java index bbef5538..f2026315 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java +++ b/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.Optional; +import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.BusinessException; 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.purchase.domain.PurchaseOrder; import com.ruoyi.purchase.domain.PurchaseOrderChild; +import com.ruoyi.purchase.domain.PurchasePlan; import com.ruoyi.purchase.mapper.PurchaseOrderChildMapper; import com.ruoyi.purchase.mapper.PurchaseOrderMapper; +import com.ruoyi.purchase.mapper.PurchasePlanMapper; import com.ruoyi.quality.domain.QualityOrder; import com.ruoyi.quality.domain.QualityOrderDetail; 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.warehouse.domain.*; import com.ruoyi.warehouse.mapper.*; +import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService; import lombok.extern.slf4j.Slf4j; import org.activiti.editor.language.json.converter.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -91,6 +95,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS @Autowired private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper; + @Autowired + private IWarehouseInventoryInquiryService warehouseInventoryInquiryService; + @Autowired private WarehouseInventoryInquiryDetailMapper inventoryInquiryDetailMapper; @@ -101,6 +108,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS @Autowired private PurchaseOrderMapper purchaseOrderMapper; + @Autowired + private PurchasePlanMapper purchasePlanMapper; + @Autowired private ErpMaterialMapper erpMaterialMapper; @@ -112,6 +122,10 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS @Autowired private QualityRefundsExchangesMapper exchangesMapper; + + @Autowired + private AfterSalesShippingDeviceMapper afterSalesShippingDeviceMapper; + /** * 查询仓库入库单 * @@ -542,10 +556,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS } WarehouseStorageOrderDetail updateStorageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); - int inventoryInquiryResult = createWarehouseInventoryInquiry(updateStorageOrderDetail); - if (inventoryInquiryResult <= 0){ - throw new BusinessException("更新/新增库存查询失败,未影响任何行"); - } + createWarehouseInventoryInquiry(updateStorageOrderDetail); + } //更新入库单的数据 @@ -658,25 +670,23 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); } WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); - int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); - if (inventoryInquiryResult <= 0){ - throw new BusinessException("更新/新增库存查询失败,未影响任何行"); - } - } + createWarehouseInventoryInquiry(storageOrderDetail); - //更新生产单数据 - int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList); - if (updateMakeOrderResult <= 0){ - throw new BusinessException("更新生产订单失败,未影响任何行"); } - //更新开发修改单数据 - String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); - ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); - if (erpDevelopModifyorder != null){ - erpDevelopModifyorder.setPurchaseStorageStatus("8"); - developModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder); - } +// //更新生产单数据 +// int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList); +// if (updateMakeOrderResult <= 0){ +// throw new BusinessException("更新生产订单失败,未影响任何行"); +// } +// +// //更新开发修改单数据 +// String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); +// ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); +// if (erpDevelopModifyorder != null){ +// erpDevelopModifyorder.setPurchaseStorageStatus("8"); +// developModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder); +// } 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 correlationCode = warehouseStorageOrderDetail.getRelatedOrderCode(); String storageCode = warehouseStorageOrderDetail.getWarehouseStorageCode(); WarehouseStorageOrder warehouseStorageOrder = warehouseStorageOrderMapper.selectWarehouseStorageOrderByCode(storageCode); String warehouseStorageType = warehouseStorageOrder.getWarehouseStorageType(); - if(warehouseStorageType.equals("0")) { - // 新增采购入库库存历史记录 -// PurchaseOrder purchaseOrder = purchaseOrderMapper.selectPurchaseOrderByOrderCode() - List purchaseOrderChild = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); - for (PurchaseOrderChild child : purchaseOrderChild) { - if(child.getMaterialNo().equals(materialNo)){ - int storageNum = warehouseStorageOrderDetail.getStorageNum(); - WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); - inquiryDetail = generateInquiryDetailByPurchaseChild(child,storageNum); -// inquiryDetail.setInventoryHistoricalType("0"); -// if (correlationCode.startsWith("QG")) { -//// 有无归属分类 -// } - inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); + Integer storageNum = warehouseStorageOrderDetail.getStorageNum(); + if("0".equals(warehouseStorageType)) { + // 新增采购入库库存历史记录 + String purchasePlanCode = purchaseOrderMapper.selectPurchasePlanCodeByCode(correlationCode); + + PurchasePlan purchasePlan = purchasePlanMapper.selectPurchasePlanByPlanCode(purchasePlanCode); + if ("2".equals(purchasePlan.getPurchasePlanType())){ //来源为请购单 + List 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("更新库存查询记录失败!"); + } + + 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 ("1".equals(purchasePlan.getPurchasePlanType())){ //生产订单 + List 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")){//新增生产入库库存历史记录 WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); @@ -751,48 +853,48 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS scrapSum += scrapSum; } } -// 存在库存查询记录,更新可用库存数 - if(warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo)!=null){ - WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); -// 增加可用库存数 - Integer storage = warehouseStorageOrderDetail.getStorageNum(); - Integer storagenum = storage; - Integer avaliableStorage = inventoryInquiry.getAvailableStockNum(); - avaliableStorage += storagenum; - inventoryInquiry.setAvailableStockNum(avaliableStorage); - inventoryInquiry.setReportDamageNum(scrapSum); -// 设置历史总数 - Integer historicalTotal = inventoryInquiry.getHistoricalTotal(); - historicalTotal += storagenum; - inventoryInquiry.setHistoricalTotal(historicalTotal); - inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); - inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); - return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); - }else{ - WarehouseInventoryInquiry inventoryInquiry = new WarehouseInventoryInquiry(); - inventoryInquiry.setMaterialNo(materialNo); - inventoryInquiry.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); - inventoryInquiry.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); - inventoryInquiry.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); - inventoryInquiry.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); - inventoryInquiry.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); - inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); - inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); - Integer storage = warehouseStorageOrderDetail.getStorageNum(); - Integer storagenum = storage; - // 设置历史总数 - inventoryInquiry.setHistoricalTotal(storagenum); - inventoryInquiry.setAvailableStockNum(storagenum); - inventoryInquiry.setReportDamageNum(scrapSum); - - ErpMaterial material = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo); - inventoryInquiry.setMaterialUseStatus(material.getUseStatus()); - inventoryInquiry.setCreateBy(ShiroUtils.getLoginName()); - inventoryInquiry.setCreateTime(DateUtils.getNowDate()); - inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); - inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); - return warehouseInventoryInquiryMapper.insertWarehouseInventoryInquiry(inventoryInquiry); - } +//// 存在库存查询记录,更新可用库存数 +// if(warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo)!=null){ +// WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); +//// 增加可用库存数 +// Integer storage = warehouseStorageOrderDetail.getStorageNum(); +// Integer storagenum = storage; +// Integer avaliableStorage = inventoryInquiry.getAvailableStockNum(); +// avaliableStorage += storagenum; +// inventoryInquiry.setAvailableStockNum(avaliableStorage); +// inventoryInquiry.setReportDamageNum(scrapSum); +//// 设置历史总数 +// Integer historicalTotal = inventoryInquiry.getHistoricalTotal(); +// historicalTotal += storagenum; +// inventoryInquiry.setHistoricalTotal(historicalTotal); +// inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); +// inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); +// return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); +// }else{ +// WarehouseInventoryInquiry inventoryInquiry = new WarehouseInventoryInquiry(); +// inventoryInquiry.setMaterialNo(materialNo); +// inventoryInquiry.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); +// inventoryInquiry.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); +// inventoryInquiry.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); +// inventoryInquiry.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); +// inventoryInquiry.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); +// inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); +// inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); +// Integer storage = warehouseStorageOrderDetail.getStorageNum(); +// Integer storagenum = storage; +// // 设置历史总数 +// inventoryInquiry.setHistoricalTotal(storagenum); +// inventoryInquiry.setAvailableStockNum(storagenum); +// inventoryInquiry.setReportDamageNum(scrapSum); +// +// ErpMaterial material = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo); +// inventoryInquiry.setMaterialUseStatus(material.getUseStatus()); +// inventoryInquiry.setCreateBy(ShiroUtils.getLoginName()); +// inventoryInquiry.setCreateTime(DateUtils.getNowDate()); +// inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); +// inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); +// return warehouseInventoryInquiryMapper.insertWarehouseInventoryInquiry(inventoryInquiry); +// } } // 生成采购订单库存历史记录 @@ -959,18 +1061,16 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); } WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); - int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); - if (inventoryInquiryResult <= 0){ - throw new BusinessException("更新/新增库存查询失败,未影响任何行"); - } - } + createWarehouseInventoryInquiry(storageOrderDetail); - //更新生产单数据 - 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(); // ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); @@ -1090,10 +1190,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); }else{ WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); - int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); - if (inventoryInquiryResult <= 0){ - throw new BusinessException("更新/新增库存查询失败,未影响任何行"); - } + createWarehouseInventoryInquiry(storageOrderDetail); + } } //更新入库单的数据 @@ -1423,10 +1521,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS } //更新库存查询 WarehouseStorageOrderDetail storageOrderInquiryDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); - int inquiryResult = createWarehouseInventoryInquiry(storageOrderInquiryDetail); - if (inquiryResult <= 0){ - throw new BusinessException("更新仓库库存查询失败,未影响任何行"); - } + createWarehouseInventoryInquiry(storageOrderInquiryDetail); + } //更新销售订单子表的数据 diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml index 3172f101..87ca3b07 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml @@ -93,12 +93,16 @@ WHERE purchase_order_code = #{purchaseOrderCode} - - where purchase_order_code in - - #{purchaseOrderCode} - + + + purchase_order_code in + + #{purchaseOrderCode} + + +