From 1a3d33ab0af8bd84aa2315e4f43ec7e5bb6876a0 Mon Sep 17 00:00:00 2001 From: lqh <1919773837@qq.com> Date: Fri, 23 Jan 2026 17:42:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=B5=84=E5=AF=BC=E5=87=BAbug?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/GoodsController.java | 31 ++++++++++++++++- .../lims/controller/ExamineController.java | 33 ++++++++++++++++--- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java index 9d43f6e..b5adb72 100644 --- a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java @@ -303,11 +303,40 @@ public class GoodsController extends BladeController { }); ExcelUtil.export(response, "物品数据", "物品列表", list, GoodsExcel.class); } + /* + 导出全部数据 + */ + @GetMapping("export-allproduct") + @ApiOperationSupport(order = 10) + @ApiOperation(value = "物品全部导出") + public void exportAllProduct(Goods goods, HttpServletResponse response) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 添加物品查询模糊查询 + if (StringUtil.isNoneBlank(goods.getName())) { + String searchKeyword = goods.getName().trim(); + List keywordList = Arrays.stream(searchKeyword.split("\\s+")) + .collect(Collectors.toList()); + for (String keyword : keywordList) { + queryWrapper.and(w -> w.like(Goods::getName, keyword) + .or().like(Goods::getCompany, keyword) + .or().like(Goods::getBrand, keyword) + .or().like(Goods::getYt, keyword)); + } + } + queryWrapper.orderByDesc(Goods::getCreateTime); + queryWrapper.select(Goods::getId); + queryWrapper.eq(Goods::getIsDeleted, 0); + List goodsList = goodsService.list(queryWrapper); + String ids = goodsList.stream() + .map(Goods::getId) + .map(String::valueOf) // 转为字符串(如果ID是Long类型) + .collect(Collectors.joining(",")); + exportProduct(ids, response); + } /** * 入库详情 */ - @GetMapping("inDetail") public R> inDetail(Goods goods, Query query) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProductStoreDetial::getGoodsId, goods.getId()); diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java index 48b5c5d..144215a 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -13,6 +14,7 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.StringUtil; import org.springblade.lims.ao.CommonAo; import org.springblade.lims.entry.*; import org.springblade.lims.service.*; @@ -24,6 +26,7 @@ import org.springblade.system.user.feign.IUserClient; import org.springframework.web.bind.annotation.*; import java.util.*; +import java.util.stream.Collectors; /** * 检验列表 @@ -305,13 +308,34 @@ public class ExamineController extends BladeController { if ("-1".equals(examine.getEntrustStatus())) { wrapper.eq(Examine::getStatus, -1); } + // 模糊查询 - if (examine.getSimpleName() != null) { - wrapper.like(Examine::getSimpleName, examine.getSimpleName()).or(); + + if (examine.getSimpleName() != null && !examine.getSimpleName().trim().isEmpty()) { + String[] keywords = examine.getSimpleName().trim().split("\\s+"); + + // 遍历每个关键词,每个关键词都要满足「匹配simpleName 或 匹配t_examine_item.name」 + for (String keyword : keywords) { + if (keyword.isEmpty()) { + continue; // 跳过空的关键词(比如连续空格导致的空字符串) + } + wrapper.and(w -> w.like(Examine::getSimpleName, keyword) // 匹配主表simpleName + .or() // 匹配关联的t_examine_item.name + .exists("SELECT 1 FROM t_examine_item t WHERE t.id = examine_item_id AND t.name LIKE '%" + keyword + "%'")); + } + + } - wrapper.orderByDesc(Examine::getCreateTime); - IPage page = examineService.page(Condition.getPage(query), wrapper); + // 1. 手动构建分页对象,关闭自动count + Page page = new Page<>(query.getCurrent(), query.getSize()); + page.setSearchCount(false); + // 2. 执行分页数据查询 + page = (Page) examineService.page(page, wrapper); + // 3. 手动统计总数(复用wrapper条件,保证包含双表匹配) + List allMatchList = examineService.list(wrapper); + page.setTotal(allMatchList.size()); + //IPage page = examineService.page(Condition.getPage(query), wrapper); List records = page.getRecords(); if (records.size() > 0 && records != null) { for (Examine record : records) { @@ -340,6 +364,7 @@ public class ExamineController extends BladeController { return R.data(page); } + /** * 获取检测单所有状态及其对应的数量 */