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