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 5c588d6d..9f56bed3 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 83d41e83..45b347cf 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 f3141a20..38e7acdf 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 a855bf93..0d93e361 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