From b2971abc78d76b7a84b15f8b7ddbe18f7e3b6ff0 Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Mon, 25 Aug 2025 12:03:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ComplexQueryController.java | 2 - .../service/impl/ComplexQueryServiceImpl.java | 36 +++-- .../material/basic/ComplexQueryMapper.xml | 129 +++--------------- 3 files changed, 46 insertions(+), 121 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java index 66578848..4ff9eee2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java @@ -467,8 +467,6 @@ public class ComplexQueryController extends BaseController { @ApiOperation(value = "施工机具需求、供应分析统计表") @GetMapping("/getStatisticsList") public AjaxResult getStatisticsList(ProjUsingRecord bean) { - LoginUser loginUser = SecurityUtils.getLoginUser(); - bean.setUserId(loginUser.getUserid()); startPage(); List pageList = complexQueryService.getStatisticsList(bean); return AjaxResult.success(getDataTable(pageList)); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java index 1674fb42..3bbdc689 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java @@ -639,29 +639,43 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { @Override public List getStatisticsList(ProjUsingRecord bean) { try { - //1、查询工程对应的物资名称、型号、需求数量、已供数量 + // 1、查询工程对应的物资名称、型号、需求数量、已供数量 List list = complexQueryMapper.getStatisticsList(bean); - for (ProjUsingRecord item : list){ - //2、计算需求数量,已供数量的差值 - //使用 BigDecimal 处理小数运算 + + // 创建缓存Map,key为typeId,value为对应的库存信息 + Map inventoryCache = new HashMap<>(); + + for (ProjUsingRecord item : list) { + // 2、计算需求数量,已供数量的差值 BigDecimal needNum = new BigDecimal(item.getNeedNum()); BigDecimal supplyNum = new BigDecimal(item.getSupplyNum()); BigDecimal diffNum = needNum.subtract(supplyNum); item.setDiffNum(diffNum.toString()); - //3、查询该工程设备的在用数量 + + // 3、查询该工程设备的在用数量 ProjUsingRecord projUsingRecord3 = complexQueryMapper.getUsNum(item); - if (projUsingRecord3 != null && projUsingRecord3.getUsNum() != null){ + if (projUsingRecord3 != null && projUsingRecord3.getUsNum() != null) { item.setUsNum(projUsingRecord3.getUsNum()); } else { - BigDecimal usNum = BigDecimal.ZERO; - item.setUsNum(usNum); + item.setUsNum(BigDecimal.ZERO); } - //4、根据typeId查询,总库存数量、总在修数量、总待入库数量、总保有量 - RetainedEquipmentInfo bean1 = complexQueryMapper.selectInventory(item); + + // 4、根据typeId查询库存信息(使用缓存优化) + Long typeId = Long.valueOf(item.getTypeId()); + + RetainedEquipmentInfo bean1 = inventoryCache.get(typeId); + if (bean1 == null) { + // 如果缓存中没有,则查询数据库并放入缓存 + bean1 = complexQueryMapper.selectInventory(item); + inventoryCache.put(typeId, bean1); + } + + // 设置库存相关信息 item.setStoreNum(bean1.getStoreNum()); item.setRepairNum(bean1.getRepairNum()); item.setAllUsNum(bean1.getUsNum()); - //使用三元运算符处理null值 + + // 使用三元运算符处理null值 BigDecimal inputNum = bean1.getInputNum() != null ? bean1.getInputNum() : BigDecimal.ZERO; BigDecimal repairInputNum = bean1.getRepairInputNum() != null ? bean1.getRepairInputNum() : BigDecimal.ZERO; item.setInputNum(inputNum.add(repairInputNum)); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml index 80fa6e47..b1b1e959 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml @@ -508,16 +508,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"