From 7d8694ac0b00346d940314d37074e524af5911a5 Mon Sep 17 00:00:00 2001 From: andy <1042025947@qq.com> Date: Fri, 6 Nov 2026 13:47:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=89=A9=E6=96=99=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/system/domain/bo/ImMaterialBo.java | 4 +++ .../system/service/MssqlQueryService.java | 30 ++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ImMaterialBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ImMaterialBo.java index a7be7fb..dfe8332 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ImMaterialBo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ImMaterialBo.java @@ -93,4 +93,8 @@ public class ImMaterialBo extends BaseEntity { * jishikucun */ private String inInventory; + /*** + * 是否使用自主查询. 默认不使用 + */ + private Boolean useAutonomous = false; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/MssqlQueryService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/MssqlQueryService.java index c1309f4..eb685ca 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/MssqlQueryService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/MssqlQueryService.java @@ -1348,16 +1348,16 @@ public class MssqlQueryService { if (bo == null) { return where.toString(); } - appendLike(where, args, "m.FNUMBER", bo.getMaterialCode()); - appendLike(where, args, "ml.FNAME", bo.getMaterialName()); + appendLike(where, args, "m.FNUMBER", bo.getMaterialCode(), bo.getUseAutonomous()); + appendLike(where, args, "ml.FNAME", bo.getMaterialName(), bo.getUseAutonomous()); if (StringUtils.isNotBlank(bo.getMaterialQuality())) { where.append(" AND (ml.FSPECIFICATION LIKE ? OR assl.FDATAVALUE LIKE ?) "); String qualityLike = "%" + bo.getMaterialQuality().trim() + "%"; args.add(qualityLike); args.add(qualityLike); } - appendLike(where, args, "ul.FNAME", bo.getUnit()); - appendLike(where, args, "c.FNUMBER", bo.getImCategory()); + appendLike(where, args, "ul.FNAME", bo.getUnit(), false); + appendLike(where, args, "c.FNUMBER", bo.getImCategory(), false); if (bo.getSingleWeight() != null) { where.append(" AND m.F_HBYT_DZ = ? "); args.add(bo.getSingleWeight()); @@ -1373,12 +1373,28 @@ public class MssqlQueryService { return where.toString(); } - private static void appendLike(StringBuilder where, List args, String column, String value) { + private static void appendLike(StringBuilder where, List args, String column, String value, Boolean useAutonomous) { if (StringUtils.isBlank(value)) { return; } - where.append(" AND ").append(column).append(" LIKE ? "); - args.add("%" + value.trim() + "%"); + if(useAutonomous){ +// where.append(" AND ").append(column).append(" in (?) "); + List values = new ArrayList<>(); + for (String v : value.trim().split(",")){ + for (String v1 : v.trim().split("\\s*[,;:]\\s*")){ + values.add(v1); + } + } + String[] placeHolder = new String[values.size()]; + Arrays.fill(placeHolder, "?"); + String inSql = String.join(",", placeHolder); + where.append(" AND ").append(column).append(" IN (").append(inSql).append(") "); + args.addAll(values); + }else{ + where.append(" AND ").append(column).append(" LIKE ? "); + args.add("%" + value.trim() + "%"); + } + } private List mapKingdeeMaterialVos(List> rows) {