feat: 企标生成编号逻辑,匹配中文横杠

This commit is contained in:
2024-04-10 14:47:26 +08:00
parent 7d68cae2a6
commit 80e259dcee
@@ -70,7 +70,7 @@ public class EnterpriseStandardUtil {
for (ESSequenceNumberProvider provider : providers) {
List<String> sequenceNumbers = provider.getSequenceNumbers(esCodeDictValue, esNameCodeDictValue, categoryCodeDictValue);
if (sequenceNumbers != null) {
if (sequenceNumbers != null && !sequenceNumbers.isEmpty()) {
allSequenceNumbers.addAll(sequenceNumbers);
}
}
@@ -182,11 +182,20 @@ public class EnterpriseStandardUtil {
}
int dashIndex = standardNo.lastIndexOf('-');
if (dashIndex == -1) {
dashIndex = standardNo.lastIndexOf('—');
}
if (dashIndex < 4) {
return null; // 如果没有找到'-',或者'-'前面的字符少于4个
}
return standardNo.substring(dashIndex - 4, dashIndex);
int dotIndex = standardNo.lastIndexOf('.');
if (dotIndex > 0 && dotIndex < dashIndex) { // 确保小数点在破折号前且存在
int start = Math.max(dotIndex - 4, 0); // 确保不会有负索引
return standardNo.substring(start, dashIndex); // 提取包含小数点的序列号部分
} else {
return standardNo.substring(dashIndex - 4, dashIndex); // 如果没有小数点,应用原有逻辑
}
}
public static Map<String, String> splitStandardNumber(String standardNumber) {