From 1d0fe2f8609d9ec146d42657877f7aa1ac7cb839 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Thu, 4 Sep 2025 17:34:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor(wms):=20=E4=BC=98=E5=8C=96=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=8F=B0=E8=B4=A6=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 WmsInventoryController 中冗余的权限注解 - 修改了 WmsInventoryMapper.xml 中的 SQL 查询,移除了无效的条件判断 - 重构了 WmsInventoryServiceImpl 中的库存台账查询逻辑: - 根据 changeType 参数决定查询哪些类型的记录 -优化了查询性能,避免了不必要的数据检索 - 保留了原有的数据处理和计算逻辑 --- .../controller/WmsInventoryController.java | 16 ++--- .../service/impl/WmsInventoryServiceImpl.java | 68 +++++++++++++------ .../mapper/wms/WmsInventoryMapper.xml | 21 +++--- 3 files changed, 63 insertions(+), 42 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java index 9eb5f153..21833941 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java @@ -45,7 +45,7 @@ public class WmsInventoryController extends BaseController { /** * 查询物料库存列表 */ - @SaCheckPermission("system:inventory:list") + @SaCheckPermission("wms:inventory:list") @GetMapping("/list") public TableDataInfo list(WmsInventoryBo bo, PageQuery pageQuery) { return wmsInventoryService.queryPageList(bo, pageQuery); @@ -65,7 +65,7 @@ public class WmsInventoryController extends BaseController { /** * 导出物料库存列表 */ - @SaCheckPermission("system:inventory:export") + @SaCheckPermission("wms:inventory:export") @Log(title = "物料库存", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(WmsInventoryBo bo, HttpServletResponse response) { @@ -78,7 +78,7 @@ public class WmsInventoryController extends BaseController { * * @param inventoryId 主键 */ - @SaCheckPermission("system:inventory:query") + @SaCheckPermission("wms:inventory:query") @GetMapping("/{inventoryId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long inventoryId) { @@ -88,7 +88,7 @@ public class WmsInventoryController extends BaseController { /** * 新增物料库存 */ - @SaCheckPermission("system:inventory:add") + @SaCheckPermission("wms:inventory:add") @Log(title = "物料库存", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -99,7 +99,7 @@ public class WmsInventoryController extends BaseController { /** * 修改物料库存 */ - @SaCheckPermission("system:inventory:edit") + @SaCheckPermission("wms:inventory:edit") @Log(title = "物料库存", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -112,7 +112,7 @@ public class WmsInventoryController extends BaseController { * * @param inventoryIds 主键串 */ - @SaCheckPermission("system:inventory:remove") + @SaCheckPermission("wms:inventory:remove") @Log(title = "物料库存", businessType = BusinessType.DELETE) @DeleteMapping("/{inventoryIds}") public R remove(@NotEmpty(message = "主键不能为空") @@ -142,7 +142,7 @@ public class WmsInventoryController extends BaseController { /** * 查询库存台账列表 */ - @SaCheckPermission("system:inventory:list") +// @SaCheckPermission("wms:inventory:list") @GetMapping("/ledger/list") public TableDataInfo ledgerList(WmsInventoryLedgerBo bo, PageQuery pageQuery) { return wmsInventoryService.queryInventoryLedgerPageList(bo, pageQuery); @@ -151,7 +151,7 @@ public class WmsInventoryController extends BaseController { /** * 导出库存台账列表 */ - @SaCheckPermission("system:inventory:export") + @SaCheckPermission("wms:inventory:export") @Log(title = "库存台账", businessType = BusinessType.EXPORT) @PostMapping("/ledger/export") public void exportLedger(WmsInventoryLedgerBo bo, HttpServletResponse response) { diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java index abbf2c4e..c2217057 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java @@ -292,16 +292,16 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { @Override public TableDataInfo queryInventoryLedgerPageList(WmsInventoryLedgerBo bo, PageQuery pageQuery) { List ledgerList = queryInventoryLedgerList(bo); - + // 手动分页处理 int total = ledgerList.size(); int pageNum = pageQuery.getPageNum(); int pageSize = pageQuery.getPageSize(); int fromIndex = (pageNum - 1) * pageSize; int toIndex = Math.min(fromIndex + pageSize, total); - + List pageList = fromIndex < total ? ledgerList.subList(fromIndex, toIndex) : new ArrayList<>(); - + TableDataInfo dataInfo = TableDataInfo.build(pageList); dataInfo.setTotal(total); return dataInfo; @@ -316,28 +316,52 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { @Override public List queryInventoryLedgerList(WmsInventoryLedgerBo bo) { List ledgerList = new ArrayList<>(); - - // 1. 查询入库记录 - ledgerList.addAll(getInstockRecords(bo)); - - // 2. 查询出库记录 - ledgerList.addAll(getOutstockRecords(bo)); - - // 3. 查询盘点调账记录 - ledgerList.addAll(getInventoryCheckRecords(bo)); - - // 4. 查询退库记录 - ledgerList.addAll(getReturnOrderRecords(bo)); - - // 5. 查询调拨记录 - ledgerList.addAll(getTransferRecords(bo)); - + + // 根据变动类型筛选查询哪些记录 + String changeType = bo.getChangeType(); + + if (changeType == null || changeType.isEmpty()) { + // 查询所有类型 + ledgerList.addAll(getInstockRecords(bo)); + ledgerList.addAll(getOutstockRecords(bo)); + ledgerList.addAll(getInventoryCheckRecords(bo)); + ledgerList.addAll(getReturnOrderRecords(bo)); +// ledgerList.addAll(getTransferRecords(bo)); + } else { + // 根据指定类型查询 + switch (changeType) { + case "INBOUND": + ledgerList.addAll(getInstockRecords(bo)); + break; + case "OUTBOUND": + ledgerList.addAll(getOutstockRecords(bo)); + break; + case "RETURN": + ledgerList.addAll(getReturnOrderRecords(bo)); + break; +// case "TRANSFER": +// ledgerList.addAll(getTransferRecords(bo)); +// break; + case "ADJUST": + ledgerList.addAll(getInventoryCheckRecords(bo)); + break; + default: + // 未知类型,查询所有 + ledgerList.addAll(getInstockRecords(bo)); + ledgerList.addAll(getOutstockRecords(bo)); + ledgerList.addAll(getInventoryCheckRecords(bo)); + ledgerList.addAll(getReturnOrderRecords(bo)); +// ledgerList.addAll(getTransferRecords(bo)); + break; + } + } + // 按时间排序 ledgerList.sort(Comparator.comparing(WmsInventoryLedgerVo::getChangeDate)); - + // 计算结存数量 calculateBalanceQty(ledgerList); - + return ledgerList; } @@ -381,7 +405,7 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { */ private void calculateBalanceQty(List ledgerList) { Map balanceMap = new HashMap<>(); - + for (WmsInventoryLedgerVo record : ledgerList) { String key = record.getMaterialId() + "_" + record.getBatchCode() + "_" + record.getLocationCode(); BigDecimal currentBalance = balanceMap.getOrDefault(key, BigDecimal.ZERO); diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml index 9aaa2ae9..b7f6db2b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml @@ -154,9 +154,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND ir.create_time <= #{bo.endDate} - - AND '1' = #{bo.changeType} - ORDER BY ir.create_time ASC @@ -212,9 +209,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND ors.create_time <= #{bo.endDate} - + ORDER BY ors.create_time ASC @@ -263,9 +260,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND icr.create_time <= #{bo.endDate} - - AND '5' = #{bo.changeType} - + ORDER BY icr.create_time ASC @@ -318,9 +315,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND ro.create_time <= #{bo.endDate} - + ORDER BY ro.create_time ASC @@ -368,9 +365,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND ht.create_time <= #{bo.endDate} - + ORDER BY ht.create_time ASC