diff --git a/os-ems/src/main/java/com/os/ems/base/service/impl/EmsBaseMonitorInfoServiceImpl.java b/os-ems/src/main/java/com/os/ems/base/service/impl/EmsBaseMonitorInfoServiceImpl.java index f0162ee..2f61308 100644 --- a/os-ems/src/main/java/com/os/ems/base/service/impl/EmsBaseMonitorInfoServiceImpl.java +++ b/os-ems/src/main/java/com/os/ems/base/service/impl/EmsBaseMonitorInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.os.ems.base.service.impl; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import com.os.common.utils.DateUtils; @@ -194,6 +196,18 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService "橡胶四厂", "三聚凯特", "世源", "联盛", "正兴", "天峰药业", "中科北方", "沃得", "沈阳经济技术开发区管理委员会办公室", "管理中心", "科创", "博泰", "亿纬", "普利司通" )); + // 提取数字序号 + Pattern pattern = Pattern.compile("(\\d+)[、]"); + Matcher matcher = pattern.matcher(name); + if (matcher.find()) { + try { + int number = Integer.parseInt(matcher.group(1).trim()); + return number; + } catch (NumberFormatException e) { + e.printStackTrace(); + // 如果解析失败,继续按特定顺序列表排序 + } + } // 遍历特定顺序列表 for (int i = 0; i < specificOrder.size(); i++) { @@ -201,7 +215,7 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService String prefix = specificOrder.get(i); // 如果名称包含当前前缀,则返回当前索引 if (kmpSearch(name, prefix) != -1) { - return i; + return i + 100000; } } // 如果找不到匹配项,则返回最大值