From 5a528d68558ba54aa9ad622756449643de708017 Mon Sep 17 00:00:00 2001 From: jishenghua <752718920@qq.com> Date: Mon, 3 Mar 2025 19:14:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=9D=A1=E7=A0=81=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8A=A5=E9=94=99=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/datasource/mappers/MaterialMapperEx.java | 2 +- .../java/com/jsh/erp/service/MaterialService.java | 15 +++++++++------ .../main/java/com/jsh/erp/utils/StringUtil.java | 13 +++++++++++++ .../resources/mapper_xml/MaterialMapperEx.xml | 8 ++++---- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java index 5c588d6dc..9f56bed35 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java @@ -98,7 +98,7 @@ public interface MaterialMapperEx { List getMaterialListByUnitIds(@Param("unitIds") String[] unitIds); - String getMaxBarCode(); + List getBarCodeList(); List getMaterialByMeId( @Param("meId") Long meId); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/MaterialService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/MaterialService.java index 83d41e837..45b347cf6 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/MaterialService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/MaterialService.java @@ -1307,12 +1307,15 @@ public class MaterialService { } public String getMaxBarCode() { - String maxBarCodeOld = materialMapperEx.getMaxBarCode(); - if(StringUtil.isNotEmpty(maxBarCodeOld)) { - return Long.parseLong(maxBarCodeOld)+""; - } else { - return "1000"; - } + List barCodeOldList = materialMapperEx.getBarCodeList(); + // 使用 Stream API 处理条码列表 + OptionalLong maxBarcode = barCodeOldList.stream() + .filter(StringUtil::isNumeric) // 过滤掉非数字条码 + .mapToLong(Long::parseLong) // 将字符串转换为 Long 类型 + .max(); // 获取最大值 + // 如果存在最大值,返回它;否则返回 1000L + Long maxBarCodeOld = maxBarcode.orElse(1000L); + return maxBarCodeOld + ""; } public List getMaterialNameList() { diff --git a/jshERP-boot/src/main/java/com/jsh/erp/utils/StringUtil.java b/jshERP-boot/src/main/java/com/jsh/erp/utils/StringUtil.java index f3141a20b..38e7acdfd 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/utils/StringUtil.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/utils/StringUtil.java @@ -444,4 +444,17 @@ public class StringUtil { return originStr.replaceAll("(?i)" + regex, ""); } + /** + * 判断字符串是否为纯数字 + * @param str 输入的字符串 + * @return 如果字符串为纯数字,返回 true;否则返回 false + */ + public static boolean isNumeric(String str) { + if (str == null || str.isEmpty()) { + return false; + } + // 使用正则表达式判断字符串是否为纯数字 + return str.matches("\\d+"); + } + } diff --git a/jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml index a855bf93c..0d93e3617 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml @@ -524,10 +524,9 @@ and ifnull(delete_flag,'0') !='1' - + select me.bar_code from jsh_material_extend me + where ifnull(me.delete_Flag,'0') !='1' + \ No newline at end of file