From 492e366449830af4fc8d556b2590c1ebed16cf65 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Wed, 4 Dec 2024 14:47:09 +0800 Subject: [PATCH 1/4] =?UTF-8?q?[feat]=20=E5=BA=93=E5=AD=98=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=20=E6=8C=89=E7=85=A7=E6=96=B0=E7=89=88prd=E8=B0=83?= =?UTF-8?q?=E6=95=B4:=20=E6=96=B0=E5=A2=9E=20=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E5=89=8D=E7=AB=AF=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2,=E4=BF=AE=E6=94=B9=E6=95=B0=E9=87=8F=E5=8A=A0?= =?UTF-8?q?=E4=B8=8A=E6=A0=A1=E9=AA=8C,=E5=8F=AA=E8=83=BD=E4=B8=BA?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E4=B8=94=E6=9C=80=E5=B0=8F=E4=B8=BA1,?= =?UTF-8?q?=E5=BF=85=E5=A1=AB=20=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2:=E6=96=B0=E5=A2=9E=20?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=A0=8F:=E6=96=B0=E5=A2=9E=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E6=8C=89=E9=92=AE?= =?UTF-8?q?,=E5=8A=A0=E5=B7=A5=E6=96=B9=E5=BC=8F=E4=B8=BA=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E5=8A=A0=E5=B7=A5=E5=92=8C=E7=94=9F=E4=BA=A7=E8=A3=85?= =?UTF-8?q?=E9=85=8D=E4=B8=8D=E6=98=BE=E7=A4=BA=E8=AF=A5=E6=8C=89=E9=92=AE?= =?UTF-8?q?;=E6=96=B0=E5=A2=9E=E5=AF=B9=E5=BA=94=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E6=B3=95;=E5=89=8D=E7=AB=AF=E5=88=97=E8=A1=A8=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=96=B0=E5=A2=9E=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=95=B0,=E5=9B=BA=E5=AE=9A=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E5=BA=93=E5=AD=98=E6=95=B0,=E9=94=81=E5=AE=9A?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=95=B0,=E7=9B=98=E4=BA=8F=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=20=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB=E6=96=B0=E5=A2=9E=20=E6=9C=AA?= =?UTF-8?q?=E5=8D=A0=E7=94=A8=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8=E5=BA=93?= =?UTF-8?q?=E5=AD=98,=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E9=87=8F,=E4=BF=AE=E6=94=B9=E7=B1=BB=E5=9E=8B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5,=E5=AF=B9=E5=BA=94=E7=9A=84mapper.xml=E5=B1=82?= =?UTF-8?q?=E6=89=80=E6=9C=89=E6=96=B9=E6=B3=95=E6=96=B0=E5=A2=9E=20?= =?UTF-8?q?=E8=BF=99=E4=B8=89=E4=B8=AA=E5=AD=97=E6=AE=B5=20=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=9F=A5=E8=AF=A2=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E4=BF=AE=E6=94=B9=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=8E=A5=E5=8F=A3,=E6=94=B9=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?;=20=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2impl=E5=B1=82=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20=E6=98=BE=E7=A4=BA=E4=BF=AE=E6=94=B9=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E5=BA=93=E5=AD=98=E4=BF=A1=E6=81=AF=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=BB=A1=E8=B6=B3=E5=85=B3=E8=81=94=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95,=E6=9C=AA=E5=8D=A0=E7=94=A8=E5=85=B1=E4=BA=AB?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98:=E3=80=90=E5=85=B1?= =?UTF-8?q?=E4=BA=AB=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E3=80=91-?= =?UTF-8?q?=E3=80=90=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95-=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E4=B8=AD=E3=80=91=E7=9A=84=E3=80=90=E5=8D=A0=E7=94=A8?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=E5=BA=93=E5=AD=98=E6=95=B0=E3=80=91;?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=96=B9=E6=B3=95,=E5=88=86=E4=B8=BA=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA:1,=20=E3=80=90=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E3=80=91=E4=BF=AE=E6=94=B9=E4=B8=BA=E3=80=90?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E3=80=91?= =?UTF-8?q?:=E4=BF=AE=E6=94=B9=E7=B1=BB=E5=9E=8B=3D=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=EF=BC=8C?= =?UTF-8?q?=E5=88=990<=E3=80=90=E4=BF=AE=E6=94=B9=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E3=80=91=20=E2=89=A4=E3=80=90=E6=9C=AA=E5=8D=A0=E7=94=A8?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98=E3=80=91?= =?UTF-8?q?=EF=BC=8C=E8=8B=A5=E8=B6=85=E8=BF=87=EF=BC=8C=E5=88=99=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E4=BF=AE=E6=94=B9=E4=B8=BA=3D=E3=80=90=E6=9C=AA?= =?UTF-8?q?=E5=8D=A0=E7=94=A8=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E3=80=91;2,=E3=80=90=E5=9B=BA=E5=AE=9A=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E5=BA=93=E5=AD=98=E3=80=91=E4=BF=AE=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E3=80=90=E5=85=B1=E4=BA=AB=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E3=80=91=E4=BF=AE=E6=94=B9=E7=B1=BB=E5=9E=8B=3D=E5=87=8F?= =?UTF-8?q?=E5=B0=91=E5=9B=BA=E5=AE=9A=E5=8F=AF=E7=94=A8=E5=BA=93=E5=AD=98?= =?UTF-8?q?=EF=BC=8C=E5=88=990<=E3=80=90=E4=BF=AE=E6=94=B9=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E3=80=91<=E3=80=90=E5=9B=BA=E5=AE=9A=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E5=BA=93=E5=AD=98=E3=80=91=EF=BC=8C=E8=8B=A5=E8=B6=85?= =?UTF-8?q?=E8=BF=87=EF=BC=8C=E5=88=99=E8=87=AA=E5=8A=A8=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=3D=E3=80=90=E5=9B=BA=E5=AE=9A=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E3=80=91=20=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=96=B0=E5=A2=9E=20=E9=80=9A=E8=BF=87=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E8=AE=A2=E5=8D=95=E7=BC=96=E5=8F=B7=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E9=9B=86=E5=90=88=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/mapper/PurchaseOrderMapper.java | 6 + .../service/IPurchaseOrderService.java | 5 + .../impl/PurchaseOrderServiceImpl.java | 9 ++ .../WarehouseInventoryInquiryController.java | 29 ++++- .../domain/WarehouseInventoryInquiry.java | 37 ++++++ .../IWarehouseInventoryInquiryService.java | 10 ++ .../WarehouseInventoryInquiryServiceImpl.java | 112 +++++++++++++++++- .../mapper/purchase/PurchaseOrderMapper.xml | 8 ++ .../WarehouseInventoryInquiryDetailMapper.xml | 5 + .../WarehouseInventoryInquiryMapper.xml | 17 ++- .../inventoryInquiry/editAvailableStock.html | 83 +++++++++++++ .../inventoryInquiry/inventoryInquiry.html | 37 ++++-- 12 files changed, 344 insertions(+), 14 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/editAvailableStock.html diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java index 364d5f87..934afda0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java @@ -36,6 +36,11 @@ public interface PurchaseOrderMapper List selectAllPurchaseOrderList(PurchaseOrder purchaseOrder); + /** + * 通过采购订单编号查询采购订单集合 + * */ + List selectPurchaseOrderChildListByPurchaseCodeList(List purchaseCodeList); + /** * 通过采购订单号数组查询采购订单集合 @@ -103,4 +108,5 @@ public interface PurchaseOrderMapper //校验采购订单编号是否唯一 public Integer checkPurchaseOrderCodeUnique(String purchaseOrderCode); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java index 37173877..acb4255c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java @@ -125,4 +125,9 @@ public interface IPurchaseOrderService int addPurchaseStorageSave(PurchaseOrder purchaseOrder); int detailSave(PurchaseOrder purchaseOrder); + + /** + * 通过采购订单号集合查询采购订单集合 + * */ + List selectPurchaseOrderChildListByPurchaseCodeList(List purchaseCodeList); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java index 420027d8..adb73511 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java @@ -252,6 +252,15 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService return purchaseOrderList; } + /** + * 通过采购订单号集合查询采购订单集合 + * */ + @Override + public List selectPurchaseOrderChildListByPurchaseCodeList(List purchaseCodeList) { + List purchaseOrderList = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList); + return purchaseOrderList; + } + /** * 通过采购订单号数组查询采购订单集合 * */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java index 5c027c68..aee426ec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java @@ -1,10 +1,7 @@ package com.ruoyi.warehouse.controller; import java.util.List; - -import com.ruoyi.system.domain.OutsourceQuoteChild; import com.ruoyi.warehouse.domain.WarehouseInventoryInquiryDetail; -import com.ruoyi.warehouse.domain.WarehouseInventoryReportDamage; import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryDetailService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -163,4 +160,30 @@ public class WarehouseInventoryInquiryController extends BaseController return getDataTable(list); } + + /** + * 修改可用库存 + * */ + @GetMapping("/editAvailableStock/{inventoryInquiryId}") + public String editAvailableStock(@PathVariable("inventoryInquiryId") Long inventoryInquiryId, ModelMap mmap) + { + WarehouseInventoryInquiry warehouseInventoryInquiry = warehouseInventoryInquiryService.showEditAvailableStock(inventoryInquiryId); + + mmap.put("warehouseInventoryInquiry", warehouseInventoryInquiry); + return prefix + "/editAvailableStock"; + } + + + /** + * 修改保存可用库存 + */ + @RequiresPermissions("warehouse:inventoryInquiry:editAvailableStock") + @Log(title = "仓库库存查询", businessType = BusinessType.UPDATE) + @PostMapping("/editAvailableStock") + @ResponseBody + public AjaxResult editAvailableStockSave(WarehouseInventoryInquiry warehouseInventoryInquiry) + { + return toAjax(warehouseInventoryInquiryService.updateAvailableStock(warehouseInventoryInquiry)); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java index d7b2b02d..c8b71881 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java @@ -85,6 +85,16 @@ public class WarehouseInventoryInquiry extends BaseEntity @Excel(name = "可用库存数", sort = 9) private Integer availableStockNum; + + /** 未占用共享可用库存*/ + private Integer noOccupancyNum; + + /** 修改库存数量*/ + private Integer editStockNum; + + /** 修改类型(0增加固定可用库存、1减少固定可用库存)*/ + private String inventoryEditType; + /** 物料归属可用库存数 */ // @Excel(name = "物料归属可用库存数") private Integer attributionAvailableStockNum; @@ -262,6 +272,30 @@ public class WarehouseInventoryInquiry extends BaseEntity this.availableStockNum = availableStockNum; } + public Integer getNoOccupancyNum() { + return noOccupancyNum; + } + + public void setNoOccupancyNum(Integer noOccupancyNum) { + this.noOccupancyNum = noOccupancyNum; + } + + public Integer getEditStockNum() { + return editStockNum; + } + + public void setEditStockNum(Integer editStockNum) { + this.editStockNum = editStockNum; + } + + public String getInventoryEditType() { + return inventoryEditType; + } + + public void setInventoryEditType(String inventoryEditType) { + this.inventoryEditType = inventoryEditType; + } + public Integer getAttributionAvailableStockNum() { return attributionAvailableStockNum; } @@ -352,6 +386,9 @@ public class WarehouseInventoryInquiry extends BaseEntity .append("lockStockNum", getLockStockNum()) .append("stockLossesNum", getStockLossesNum()) .append("availableStockNum", getAvailableStockNum()) + .append("noOccupancyNum", getNoOccupancyNum()) + .append("editStockNum", getEditStockNum()) + .append("inventoryEditType", getInventoryEditType()) .append("attributionAvailableStockNum", getAttributionAvailableStockNum()) .append("noattributionAvailableStockNum", getNoattributionAvailableStockNum()) .append("useNum", getUseNum()) 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 d5b5a676..821d4750 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 @@ -79,4 +79,14 @@ public interface IWarehouseInventoryInquiryService * 根据物料号查询库存查询信息 * */ public WarehouseInventoryInquiry selectWarehouseInventoryInquiryByMaterialNo(String materialNo); + + /** + * 修改可用库存信息 + * */ + int updateAvailableStock(WarehouseInventoryInquiry warehouseInventoryInquiry); + + /** + * 显示修改可用库存信息页面 + * */ + WarehouseInventoryInquiry showEditAvailableStock(Long inventoryInquiryId); } 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 7e3e1735..cff65337 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,8 +1,16 @@ package com.ruoyi.warehouse.service.impl; import java.util.List; +import java.util.stream.Collectors; + +import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.purchase.domain.PurchaseOrder; +import com.ruoyi.purchase.mapper.PurchaseOrderMapper; +import com.ruoyi.warehouse.domain.WarehouseInventoryInquiryDetail; +import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryDetailMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper; @@ -17,11 +25,19 @@ import com.ruoyi.common.core.text.Convert; * @date 2024-06-06 */ @Service -public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventoryInquiryService +public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventoryInquiryService { @Autowired private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper; + @Autowired + private WarehouseInventoryInquiryDetailMapper warehouseInventoryInquiryDetailMapper; + + @Autowired + private PurchaseOrderMapper purchaseOrderMapper; + + + /** * 查询仓库库存查询 * @@ -137,4 +153,98 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory return warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); } + + /** + * 修改可用库存信息 + * @param warehouseInventoryInquiry + * @return + */ + @Override + public int updateAvailableStock(WarehouseInventoryInquiry warehouseInventoryInquiry) { + + if (StringUtils.isEmpty(warehouseInventoryInquiry.getInventoryEditType())){ + throw new BusinessException("请选择修改类型"); + } + + Long inventoryInquiryId = warehouseInventoryInquiry.getInventoryInquiryId(); + WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryById(inventoryInquiryId); + + + + if (warehouseInventoryInquiry.getInventoryEditType().equals("0")){ + //增加固定可用库存 【共享可用库存】修改为【固定可用库存】 + Integer editStockNum = warehouseInventoryInquiry.getEditStockNum(); + Integer noOccupancyNum = warehouseInventoryInquiry.getNoOccupancyNum(); + Integer fixedAvailableStockNum = warehouseInventoryInquiry.getFixedAvailableStockNum(); + Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum(); + + if (editStockNum > noOccupancyNum){ + editStockNum = sharedAvailableStockNum; + fixedAvailableStockNum += editStockNum; + sharedAvailableStockNum = 0; + }else { + sharedAvailableStockNum -= editStockNum; + fixedAvailableStockNum += editStockNum; + } + warehouseInventoryInquiry.setFixedAvailableStockNum(fixedAvailableStockNum); + warehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); + + }else { + //减少固定可用库存 【固定可用库存】修改为【共享可用库存】 + Integer editStockNum = warehouseInventoryInquiry.getEditStockNum(); + Integer fixedAvailableStockNum = warehouseInventoryInquiry.getFixedAvailableStockNum(); + Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum(); + + if (editStockNum > fixedAvailableStockNum){ + editStockNum = fixedAvailableStockNum; + sharedAvailableStockNum += editStockNum; + fixedAvailableStockNum = 0; + }else { + fixedAvailableStockNum -= editStockNum; + sharedAvailableStockNum += editStockNum; + } + warehouseInventoryInquiry.setFixedAvailableStockNum(fixedAvailableStockNum); + warehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); + } + return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(warehouseInventoryInquiry); + } + + + /** + * 显示修改可用库存信息 + * @param inventoryInquiryId + * @return + */ + @Override + public WarehouseInventoryInquiry showEditAvailableStock(Long inventoryInquiryId) { + WarehouseInventoryInquiry warehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryById(inventoryInquiryId); + + String materialNo = warehouseInventoryInquiry.getMaterialNo(); + List warehouseInventoryInquiryDetails = warehouseInventoryInquiryDetailMapper.selectWarehouseInventoryInquiryDetailByMaterialNo(materialNo); + + //只保留采购订单 + List filterInventoryInquiryDetails = warehouseInventoryInquiryDetails.stream().filter(item -> "0".equals(item.getInquiryBusinessType())).collect(Collectors.toList()); + + List purchaseCodeList = filterInventoryInquiryDetails.stream().map(WarehouseInventoryInquiryDetail::getCorrelationCode).collect(Collectors.toList()); + + List purchaseOrders = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList); + + //审核中的采购订单 + List filterPurchaseOrders = purchaseOrders.stream().filter(item -> "0".equals(item.getAuditStatus())).collect(Collectors.toList()); + + int sharedInventoryOccupancySum = filterPurchaseOrders.stream().mapToInt(PurchaseOrder::getSharedInventoryOccupancySum).sum(); + + Integer sharedAvailableStockNum = warehouseInventoryInquiry.getSharedAvailableStockNum(); + + Integer noOccupancyNum = 0; + + if (sharedAvailableStockNum != null && sharedAvailableStockNum > sharedInventoryOccupancySum){ + noOccupancyNum = sharedAvailableStockNum - sharedInventoryOccupancySum; + }else { + noOccupancyNum = 0; + } + + warehouseInventoryInquiry.setNoOccupancyNum(noOccupancyNum); + return warehouseInventoryInquiry; + } } diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml index de53e021..3172f101 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml @@ -93,6 +93,14 @@ WHERE purchase_order_code = #{purchaseOrderCode} + + insert into purchase_order diff --git a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml index 26b29fd8..86de17a4 100644 --- a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml @@ -37,6 +37,11 @@ where inventory_inquiry_detail_id = #{inventoryInquiryDetailId} + + insert into warehouse_inventory_inquiry_detail diff --git a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml index 02da5d15..b223c55e 100644 --- a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml @@ -23,6 +23,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -39,7 +42,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select inventory_inquiry_id, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, material_model, material_specification,warehouse_dept, - historical_total, shared_available_stock_num, lock_stock_num, fixed_available_stock_num, stock_losses_num,available_stock_num, attribution_available_stock_num, + historical_total, shared_available_stock_num, lock_stock_num, fixed_available_stock_num, + stock_losses_num,available_stock_num, attribution_available_stock_num, + no_occupancy_num, inventory_edit_type, edit_stock_num, noattribution_available_stock_num, use_num, report_damage_num, material_use_status, remark, create_time, create_by, update_by, update_time from warehouse_inventory_inquiry @@ -52,6 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and material_name like concat('%', #{materialName}, '%') and create_time between #{params.beginCreateTime} and #{params.endCreateTime} + order by create_time desc +
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html b/ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html index 0e735857..fe8e7101 100644 --- a/ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html +++ b/ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html @@ -49,6 +49,10 @@ \ No newline at end of file From 745ca1f62b07b4d2cbefb621935c845156a8aca3 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Wed, 4 Dec 2024 16:21:39 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[feat]=20=E5=BA=93=E5=AD=98=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=20=E4=BF=AE=E6=94=B9=E8=AF=B7=E8=B4=AD=E5=8D=95?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2,?= =?UTF-8?q?=E7=89=A9=E6=96=99=E5=90=88=E8=AE=A1=E5=92=8C=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E5=90=88=E8=AE=A1=E6=98=BE=E7=A4=BA=E4=B8=8D=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98;=E6=96=B0=E5=A2=9E=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AF=B7=E8=B4=AD=E5=8D=95=E5=89=8D=E7=AB=AF=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2,=E5=8A=A0=E4=B8=8A=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=9E=8B=E5=8F=B7=E5=AD=97=E6=AE=B5=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AF=B7=E8=B4=AD=E5=8D=95=E5=AD=90=E8=A1=A8=E7=9A=84=E7=89=A9?= =?UTF-8?q?=E6=96=99=E6=95=B0=E9=87=8F=E5=AD=97=E6=AE=B5,=E7=94=B1Long->In?= =?UTF-8?q?teger=20=E8=AF=B7=E8=B4=AD=E5=8D=95=E5=88=86=E9=A1=B5=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=80=92=E5=8F=99=E6=8E=92=E5=BA=8F,?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=87=A0=E4=B8=AA=E6=9F=A5=E8=AF=A2=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6=20=E8=AF=B7=E8=B4=AD=E5=8D=95impl=E5=B1=82=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20=E8=AF=B7=E8=B4=AD=E5=8D=95=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E5=90=8E=E7=94=9F=E6=88=90=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E6=96=B9=E6=B3=95,=E6=8A=8A=E5=8A=A0?= =?UTF-8?q?=E5=B7=A5=E6=96=B9=E5=BC=8F=E4=B8=BA=E9=87=87=E8=B4=AD=E7=9A=84?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=87=87=E8=B4=AD=E8=AE=A1=E5=88=92=E5=8D=95?= =?UTF-8?q?=E4=B8=BB=E8=A1=A8=E5=92=8C=E5=AD=90=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/BaseRequisitioningOrderChild.java | 14 +-- .../IBaseRequisitioningOrderService.java | 7 +- .../BaseRequisitioningOrderServiceImpl.java | 106 +++++++++++------- .../BaseRequisitioningOrderChildMapper.xml | 10 +- .../templates/system/requisitioning/add.html | 3 +- .../system/requisitioning/requisitioning.html | 5 +- 6 files changed, 84 insertions(+), 61 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java index 3c03236f..fd6d2a84 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java @@ -72,7 +72,7 @@ public class BaseRequisitioningOrderChild extends BaseEntity /** 物料的数量 */ @Excel(name = "物料的数量") - private Long materialNum; + private Integer materialNum; /** 物料的不含税单价(RMB) */ @Excel(name = "物料的不含税单价(RMB)") @@ -217,8 +217,12 @@ public class BaseRequisitioningOrderChild extends BaseEntity this.unit = unit; } - public void setMaterialNum(Long materialNum) - { + + public Integer getMaterialNum() { + return materialNum; + } + + public void setMaterialNum(Integer materialNum) { this.materialNum = materialNum; } @@ -230,10 +234,6 @@ public class BaseRequisitioningOrderChild extends BaseEntity this.warehouseDept = warehouseDept; } - public Long getMaterialNum() - { - return materialNum; - } public void setMaterialRmb(BigDecimal materialRmb) { this.materialRmb = materialRmb; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java index f89773bb..f339ff49 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java @@ -102,6 +102,9 @@ public interface IBaseRequisitioningOrderService Object getRequisitioningOrder(); - /*生成采购计划*/ - Integer generatePurchasePlan(BaseRequisitioningOrder baseRequisitioningOrder); + /** + * + * 请购单审核通过后生成采购计划 + * */ + void generatePurchasePlan(BaseRequisitioningOrder baseRequisitioningOrder); } 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 7ca3ba55..dd31f319 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 @@ -587,50 +587,76 @@ public class BaseRequisitioningOrderServiceImpl implements IBaseRequisitioningOr } } + /** + * 请购单审核通过后生成采购计划 + * */ + @Transactional(rollbackFor = Exception.class) @Override - public Integer generatePurchasePlan(BaseRequisitioningOrder requisitioningOrder){ - /*请购的物料信息,封装为采购计划需求的采购信息*/ + public void generatePurchasePlan(BaseRequisitioningOrder requisitioningOrder){ + + String loginName = ShiroUtils.getLoginName(); + List requisitioningOrderDetailList = baseRequisitioningOrderChildMapper.selectBaseRequisitioningOrderChildByCode(requisitioningOrder.getRequisitioningCode()); - //先将请购物料转换为采购物料需求 - List purchasePlanChildList = new ArrayList<>(); - PurchasePlan purchasePlan = new PurchasePlan(); - BigDecimal noRmbSum = BigDecimal.ZERO; - BigDecimal rmbSum = BigDecimal.ZERO; - Integer materialAmount = requisitioningOrderDetailList.size(); - Long materialSum = 0L; - //采购计划关联单号 - purchasePlan.setPurchasePlanCode(redisCache.generateBillNo("CGJH")); - purchasePlan.setPurchasePlanStatus("0"); - purchasePlan.setCorrelationCode(requisitioningOrder.getRequisitioningCode()); - purchasePlan.setPurchasePlanType("2"); - purchasePlan.setMaterialSum(materialAmount); - for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) { - PurchasePlanChild purchasePlanChild = new PurchasePlanChild(); - purchasePlanChild.setPurchasePlanCode(purchasePlan.getPurchasePlanCode()); - purchasePlanChild.setWarehouseDept(requisitioningOrderDetail.getWarehouseDept()); - purchasePlanChild.setMaterialNo(requisitioningOrderDetail.getMaterialCode()); - purchasePlanChild.setMaterialName(requisitioningOrderDetail.getMaterialName()); - purchasePlanChild.setMaterialDescribe(requisitioningOrderDetail.getDescribe()); - purchasePlanChild.setMaterialBrand(requisitioningOrderDetail.getBrand()); - purchasePlanChild.setMaterialUnit(requisitioningOrderDetail.getUnit()); - purchasePlanChild.setMaterialPhotourl(requisitioningOrderDetail.getPhotoUrl()); - purchasePlanChild.setMaterialProcessMethod(requisitioningOrderDetail.getProcessMethod()); - // purchasePlanChild.setMaterialNum(Double.valueOf(requisitioningOrderDetail.getMaterialNum())); - purchasePlanChild.setMaterialType(requisitioningOrderDetail.getMaterialType()); - purchasePlanChild.setMaterialNoRmbSum(requisitioningOrderDetail.getMaterialNoRmb()); - purchasePlanChild.setMaterialRmbSum(requisitioningOrderDetail.getMaterialRmb()); -// noRmbSum = noRmbSum.add(requisitioningOrderDetail.getMaterialNoRmb()); - rmbSum = rmbSum.add(requisitioningOrderDetail.getMaterialRmbSum()); - materialSum += requisitioningOrderDetail.getMaterialNum(); - planChildMapper.insertPurchasePlanChild(purchasePlanChild); - purchasePlanChildList.add(purchasePlanChild); + + + //保留加工方式为采购的 + requisitioningOrderDetailList = requisitioningOrderDetailList.stream().filter(item -> "0".equals(item.getProcessMethod())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(requisitioningOrderDetailList)){ + int materialNumSum = requisitioningOrderDetailList.stream().mapToInt(BaseRequisitioningOrderChild::getMaterialNum).sum(); + + List purchasePlanChildList = new ArrayList<>(); + PurchasePlan purchasePlan = new PurchasePlan(); + + Integer materialAmount = requisitioningOrderDetailList.size(); + String purchasePlanCode = redisCache.generateBillNo("CGJH"); + //采购计划关联单号 + purchasePlan.setPurchasePlanCode(purchasePlanCode); + + for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) { + PurchasePlanChild purchasePlanChild = new PurchasePlanChild(); + purchasePlanChild.setPurchasePlanCode(purchasePlanCode); + purchasePlanChild.setPurchasePlanStatus("0"); + + purchasePlanChild.setWarehouseDept(requisitioningOrderDetail.getWarehouseDept()); + purchasePlanChild.setMaterialNo(requisitioningOrderDetail.getMaterialCode()); + purchasePlanChild.setMaterialName(requisitioningOrderDetail.getMaterialName()); + purchasePlanChild.setMaterialDescribe(requisitioningOrderDetail.getDescribe()); + purchasePlanChild.setMaterialBrand(requisitioningOrderDetail.getBrand()); + purchasePlanChild.setMaterialModel(requisitioningOrderDetail.getMaterialModel()); + purchasePlanChild.setMaterialUnit(requisitioningOrderDetail.getUnit()); + purchasePlanChild.setMaterialPhotourl(requisitioningOrderDetail.getPhotoUrl()); + purchasePlanChild.setMaterialProcessMethod(requisitioningOrderDetail.getProcessMethod()); + purchasePlanChild.setMaterialType(requisitioningOrderDetail.getMaterialType()); + purchasePlanChild.setPlanPurchaseNum(requisitioningOrderDetail.getMaterialNum()); + purchasePlanChild.setPurchaseNum(requisitioningOrderDetail.getMaterialNum()); + purchasePlanChild.setCreateTime(new Date()); + purchasePlanChild.setCreateBy(loginName); + purchasePlanChildList.add(purchasePlanChild); + } + + int batchInsertPurchasePlanChildResult = planChildMapper.batchInsertPurchasePlanChild(purchasePlanChildList); + if (batchInsertPurchasePlanChildResult <= 0){ + throw new BusinessException("插入采购计划子表数据失败"); + } + + purchasePlan.setPurchasePlanStatus("0"); + purchasePlan.setCorrelationCode(requisitioningOrder.getRequisitioningCode()); + purchasePlan.setPurchasePlanType("2"); + purchasePlan.setMaterialSum(materialAmount); + purchasePlan.setPlanPurchaseSum(materialNumSum); + purchasePlan.setPurchaseSum(materialNumSum); + + purchasePlan.setCreateBy(requisitioningOrder.getCreateBy()); + purchasePlan.setApplyUser(requisitioningOrder.getApplyUser()); + purchasePlan.setCreateTime(DateUtils.getNowDate()); + int insertPurchasePlanResult = purchasePlanMapper.insertPurchasePlan(purchasePlan); + if (insertPurchasePlanResult <= 0){ + throw new BusinessException("插入采购计划数据失败"); + } + + } - purchasePlan.setMaterialSum(Math.toIntExact(materialSum)); - purchasePlan.setCreateBy(requisitioningOrder.getCreateBy()); - purchasePlan.setApplyUser(requisitioningOrder.getApplyUser()); - purchasePlan.setCreateTime(DateUtils.getNowDate()); - return purchasePlanMapper.insertPurchasePlan(purchasePlan); } } diff --git a/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml index 392aa62c..0d0fa7e2 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml @@ -52,15 +52,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and photoUrl = #{photoUrl} and material_name like concat('%', #{materialName}, '%') and material_type = #{materialType} - and material_model = #{materilaModel} - and specifications = #{specifications} - and brand = #{brand} - and `describe` = #{describe} - and materialNum = #{materialNum} - and materialRmb = #{materialRmb} - and materialNoRmb = #{materialNoRmb} - and materialNoRmbSum = #{materialNoRmbSum} - and materialRmbSum = #{materialRmbSum} and remark = #{remark} and create_by = #{createBy} and create_time between #{params.beginCreateTime} and #{params.endCreateTime} @@ -68,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and use_status = #{useStatus} and audit_status = #{auditStatus} + order by create_time desc - - where purchase_order_code in - - #{purchaseOrderCode} - + + + purchase_order_code in + + #{purchaseOrderCode} + + +