From 705044ff24c49c3358e03edbfb8f4e64c16af624 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 8 Nov 2023 14:38:09 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20=E5=90=8C=E6=AD=A5=E4=BC=81=E6=A0=87?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/EnterpriseStandardUtil.java | 43 ++++++++++++------- .../controller/LawsEnterpriseController.java | 7 ++- .../entity/LawsEnterpriseStandard.java | 2 +- .../ILawsEnterpriseStandardService.java | 2 +- .../LawsEnterpriseStandardServiceImpl.java | 35 +++++++++------ 5 files changed, 56 insertions(+), 33 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java index 51ae7527..56bd9d80 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java @@ -149,24 +149,37 @@ public class EnterpriseStandardUtil { } public static Map splitStandardNumber(String standardNumber) { - // 使用正则表达式匹配所需的各个部分 - Pattern pattern = Pattern.compile("([A-Za-z]{1,2})\\/([A-Za-z]{1,2}) (\\d)(\\d{4})-(\\d{4})"); - Matcher matcher = pattern.matcher(standardNumber); + // 定义多个正则表达式来匹配不同的标准号格式 + String[] regexPatterns = { + "([A-Za-z]{1,2})[-\\/]([A-Za-z]{1,2})\\s+([A-Za-z0-9]{1,3})[-—–]?(\\d{4,5}(?:\\.\\d+)?)[-—–](\\d{4})", // 下面四种综合的正则 + "([A-Za-z]{1,2})\\/([A-Za-z]{1,2}) (\\d)(\\d{4})-(\\d{4})",// 正常格式 + "([A-Za-z]{1,2})\\/([A-Za-z]{1,2}) (\\d{1,3})(\\.\\d+)?-(\\d{4})", // 带小数的格式 + "([A-Za-z]{1,2})\\/([A-Za-z]{1,2})\\s+([A-Za-z0-9]{1,3})-(\\d{4})", // 类别代号J11这种格式 + "([A-Za-z]{1,2})[-\\/]([A-Za-z]{1,2})\\s+([A-Za-z0-9]{1,3})[-—–]\\d{4,5}(\\.\\d+)?-(\\d{4})" + }; Map map = new HashMap<>(); - if (matcher.find()) { - String esCode = matcher.group(1); - String eNameCode = matcher.group(2); - String sCategoryCode = matcher.group(3); - String yearNum = matcher.group(5); + boolean isMatched = false; + for (String regex : regexPatterns) { + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(standardNumber); + if (matcher.find()) { + String esCode = matcher.group(1); + String eNameCode = matcher.group(2); + String sCategoryCode = matcher.group(3); + String yearNum = matcher.group(5); - map.put(FieldCommon.ENTERPRISE_STANDARD_CODE, esCode); - map.put(FieldCommon.ENTERPRISE_NAME_CODE, eNameCode); - map.put(FieldCommon.STANDARD_CATEGORY_CODE, sCategoryCode); - map.put(FieldCommon.YEAR_NUMBER, yearNum); - } else { - log.error("企标标准号拆分失败"); - throw new JeroBootException("企标标准号拆分失败"); + map.put(FieldCommon.ENTERPRISE_STANDARD_CODE, esCode); + map.put(FieldCommon.ENTERPRISE_NAME_CODE, eNameCode); + map.put(FieldCommon.STANDARD_CATEGORY_CODE, sCategoryCode); + map.put(FieldCommon.YEAR_NUMBER, yearNum); + + isMatched = true; + break; // 匹配成功,跳出循环 + } + } + if (!isMatched) { + log.error("企标标准号" + standardNumber + "拆分失败"); } return map; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java index c7ed95b0..6e4a52fe 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java @@ -25,6 +25,7 @@ import com.jero.modules.tag.entity.LawsTag; import com.jero.modules.tag.enums.TableNameEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -242,8 +243,10 @@ public class LawsEnterpriseController { @AutoLog(value = "企业法规标准-老法规企标数据库Zip导入") @ApiOperation(value="企业法规标准-老法规企标数据库Zip导入", notes="企业法规标准-老法规企标数据库Zip导入") @PostMapping("/importOldSystemESZip") - public Result importOldSystemESZip(@RequestParam("file") MultipartFile file) { - enterpriseStandardService.importExcelOldSystem(file); + public Result importOldSystemESZip(@RequestParam("file") MultipartFile file, + @ApiParam(value = "0不导入 1导入企标 2导入国标", required = true) + @RequestParam("type") String type) { + enterpriseStandardService.importExcelOldSystem(file, type); return Result.OK("导入成功"); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsEnterpriseStandard.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsEnterpriseStandard.java index 5378ba13..568a3f61 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsEnterpriseStandard.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsEnterpriseStandard.java @@ -111,7 +111,7 @@ public class LawsEnterpriseStandard implements Serializable { * 企标英文名称 */ @ApiModelProperty(value = "企标英文名称") - private String englishName; + private String standardEnglishName; /** * 标准等级分类 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsEnterpriseStandardService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsEnterpriseStandardService.java index 61bb4b16..ceab874c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsEnterpriseStandardService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsEnterpriseStandardService.java @@ -23,5 +23,5 @@ public interface ILawsEnterpriseStandardService extends IService