From b5c53127ab2152e744bc026e29273b0546c66504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Wed, 31 Jul 2024 16:18:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8B=B1=E6=96=87=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/common/api/vo/ResultCommon.java | 18 +++ .../service/impl/LawsCommonServiceImpl.java | 11 +- .../MarketStandardDetailController.java | 9 +- .../entity/LawsMarketStandardDetail.java | 38 ++--- .../entity/LawsMarketStandardDetailExcel.java | 38 ++--- .../LawsMarketStandardDetailServiceImpl.java | 142 ++++++++++-------- .../impl/LawsMarketStandardServiceImpl.java | 55 +++---- .../jero/modules/laws/utils/ValidUtil.java | 80 ++++++++-- .../excelTemplate/导入模板-市场法规清单.xls | Bin 27648 -> 28672 bytes .../resources/i18n/messages_en.properties | 10 +- .../resources/i18n/messages_zh.properties | 8 + 11 files changed, 258 insertions(+), 151 deletions(-) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java index 3a6b494c..21ae52e9 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java @@ -177,4 +177,22 @@ public class ResultCommon { public static final String PROCESS_ALREADY_DISTRIBUTED = "process.already.distributed"; // 不是会签节点任务 public static final String PROCESS_NOT_COUNTERSIGNATURE = "process.not.countersignature"; + + // 数据已发布 + public static final String DATA_PUBLISHED = "data.published"; + // 版本不存在 + public static final String VERSION_DOES_NOT_EXIST = "version.does.not.exist"; + // 请导入excel文件 + public static final String IMPORT_THE_EXCEL_FILE = "import.the.excel.file"; + // 标准编号重复 + public static final String DUPLICATE_STANDARD_NUMBER = "duplicate.standard.number"; + // 标准编号已存在 + public static final String STANDARD_NUMBER_ALREADY_EXISTS = "standard.number.already.exists"; + // {0}格式错误 + public static final String FORMATTING_ERROR = "formatting.error"; + // {0}数据不存在 + public static final String DATA_DOES_NOT_EXIST = "data.does.not.exist"; + // 第{0}行 + public static final String ROW_N_IMPORT = "row.n.import"; + } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 148475b4..29fcf6d2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -77,6 +77,7 @@ import org.apache.shiro.SecurityUtils; import org.jeecgframework.poi.excel.annotation.Excel; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -2767,7 +2768,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService { } ObjectMapper mapper = new ObjectMapper(); String json; - String jsonError = "json解析失败"; + String jsonError = ResultCommon.ERROR; try { json = mapper.writeValueAsString(record); } catch (JsonProcessingException e) { @@ -2781,7 +2782,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService { log.error(jsonError + e.getMessage(), e); throw new JeroBootException(jsonError); } - + Locale locale = LocaleContextHolder.getLocale(); for (Field field : oConvertUtils.getAllFields(record)) { field.setAccessible(true); if (field.getAnnotation(Excel.class) != null) { @@ -2799,7 +2800,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService { } String textValue = translateDictValue(code, text, table, key, listDict); if(StringUtils.isBlank(textValue)){ - msg.append(name).append("数据不存在,"); + String[] str1 = name.split("\\("); + String en = str1.length > 1 ? str1[1].split("\\)")[0] : str1[0]; + String zh = str1[0]; + name = Objects.equals(locale,Locale.ENGLISH) ? en : zh; + msg.append(MessageUtils.getMessage(ResultCommon.DATA_DOES_NOT_EXIST,name)).append(","); } } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java index 9466b43d..f6cd2aef 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java @@ -2,6 +2,7 @@ package com.jero.modules.laws.marketStandard.controller; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.Translation; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; @@ -111,10 +112,10 @@ public class MarketStandardDetailController { @RequiresPermissions("marketStandard:detail:operate") public Result copy(@RequestBody Map map) { if (!map.containsKey("newId") || StringUtils.isEmpty(map.get("newId"))) { - return Result.error("请选择数据!"); + return Result.error(ResultCommon.SELECT_DATA); } if (!map.containsKey("oldId") || StringUtils.isEmpty(map.get("oldId"))) { - return Result.error("请选择数据!"); + return Result.error(ResultCommon.SELECT_DATA); } return lawsMarketStandardDetailService.copy(map.get("oldId"),map.get("newId")); } @@ -163,7 +164,7 @@ public class MarketStandardDetailController { @RequiresPermissions("marketStandard:detail:operate") public Result delete(@RequestBody Map map) { if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) { - return Result.error("请选择数据!"); + return Result.error(ResultCommon.SELECT_DATA); } return lawsMarketStandardDetailService.deleteById(map.get("id")); } @@ -181,7 +182,7 @@ public class MarketStandardDetailController { @RequiresPermissions("marketStandard:detail:operate") public Result deleteBatch(@RequestBody Map map) { if (!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))) { - return Result.error("请选择数据!"); + return Result.error(ResultCommon.SELECT_DATA); } return lawsMarketStandardDetailService.deleteBatchById(map.get("ids")); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetail.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetail.java index ae1737bb..2a8fa6fd 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetail.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetail.java @@ -80,7 +80,7 @@ public class LawsMarketStandardDetail implements Serializable { */ @NotBlank(message = "标准编号不能为空") @ApiModelProperty(value = "标准编号") - @Excel(name = "标准编号", width = 15) + @Excel(name = "标准编号(Regulation No.)", width = 15) private String standardNumber; /** @@ -88,20 +88,20 @@ public class LawsMarketStandardDetail implements Serializable { */ @ApiModelProperty(value = "标准名称") @NotBlank(message = "标准名称不能为空") - @Excel(name = "标准名称", width = 15) + @Excel(name = "标准名称(Regulation Name)", width = 15) private String standardName; /** * 标准英文名称 */ @ApiModelProperty(value = "标准英文名称") - @Excel(name = "标准英文名称", width = 15) + @Excel(name = "标准英文名称(Regulation English Name)", width = 15) private String standardEnglishName; /** * 新生产车实施日期 */ - @Excel(name = "新生产车实施日期", width = 15) + @Excel(name = "新生产车实施日期(New Production Vehicle Implementation Date)", width = 15) @NotBlank(message = "新生产车实施日期不能为空") @ApiModelProperty(value = "新生产车实施日期") private String newProductImplDate; @@ -109,7 +109,7 @@ public class LawsMarketStandardDetail implements Serializable { /** * 新认证车实施日期 */ - @Excel(name = "新认证车实施日期", width = 15) + @Excel(name = "新认证车实施日期(New Certified Vehicle Implementation Date)", width = 15) @NotBlank(message = "新认证车实施日期不能为空") @ApiModelProperty(value = "新认证车实施日期") private String newAuthImplDate; @@ -117,7 +117,7 @@ public class LawsMarketStandardDetail implements Serializable { /** * 注册日期 */ - @Excel(name = "注册日期", width = 15) + @Excel(name = "注册日期(Registration Date)", width = 15) @NotBlank(message = "注册日期不能为空") @ApiModelProperty(value = "注册日期") private String registrationDate; @@ -125,7 +125,7 @@ public class LawsMarketStandardDetail implements Serializable { /** * 国家 */ - @Excel(name = "适用国家/地区", width = 15,dicCode = "market_state") + @Excel(name = "适用国家/地区(Country/Region)", width = 15,dicCode = "market_state") @NotBlank(message = "适用国家/地区不能为空") @ApiModelProperty(value = "国家") @Dict(dicCode = "market_state") @@ -134,7 +134,7 @@ public class LawsMarketStandardDetail implements Serializable { /** * 适用车型 */ - @Excel(name = "适用车型", width = 15, dicCode = "applicable_vehicle_type") + @Excel(name = "适用车型(Vehicle Catagory)", width = 15, dicCode = "applicable_vehicle_type") @Dict(dicCode = "applicable_vehicle_type") @ApiModelProperty(value = "适用车型") private String applicableVehicle; @@ -150,21 +150,21 @@ public class LawsMarketStandardDetail implements Serializable { */ @ApiModelProperty(value = "认证对象") @Dict(dicCode = "authentication_object") - @Excel(name = "认证对象", width = 15, dicCode = "authentication_object") + @Excel(name = "认证对象(Certification Item)", width = 15, dicCode = "authentication_object") private String authenticationObject; /** * 认证交付物 */ @ApiModelProperty(value = "认证交付物") - @Excel(name = "认证交付物", width = 15) + @Excel(name = "认证交付物(Verification)", width = 15) private String certifyTheDeliverables; /** * 类型 */ @Dict(dicCode = "type") - @Excel(name = "类型", width = 15, dicCode = "type") + @Excel(name = "类型(Type)", width = 15, dicCode = "type") @ApiModelProperty(value = "类型") private String type; @@ -173,7 +173,7 @@ public class LawsMarketStandardDetail implements Serializable { */ @Dict(dicCode = "dynamic_type") @ApiModelProperty(value = "动力类型") - @Excel(name = "动力类型", width = 15, dicCode = "dynamic_type") + @Excel(name = "动力类型(Power Propulsion Type)", width = 15, dicCode = "dynamic_type") private String dynamicType; /** @@ -182,7 +182,7 @@ public class LawsMarketStandardDetail implements Serializable { @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "主控部门") @NotBlank(message = "主控部门不能为空") - @Excel(name = "主控部门", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @Excel(name = "主控部门(Main Responsible Dept.)", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") private String mainDept; /** @@ -191,7 +191,7 @@ public class LawsMarketStandardDetail implements Serializable { @ApiModelProperty(value = "主控部门专业模块") @NotBlank(message = "主控部门专业模块不能为空") @Dict(dicCode = "professional_module") - @Excel(name = "主控部门专业模块", width = 15, dicCode = "professional_module") + @Excel(name = "主控部门专业模块(Module of Main Responsible Dept.)", width = 15, dicCode = "professional_module") private String mainDeptProfMode; /** @@ -199,14 +199,14 @@ public class LawsMarketStandardDetail implements Serializable { */ @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "关联部门") - @Excel(name = "关联部门", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @Excel(name = "关联部门(Related Dept.)", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") private String associateDept; /** * 关联部门专业模块 */ @ApiModelProperty(value = "关联部门专业模块") - @Excel(name = "关联部门专业模块", width = 15, dicCode = "professional_module") + @Excel(name = "关联部门专业模块(Module of Related Dept.)", width = 15, dicCode = "professional_module") @Dict(dicCode = "professional_module") private String associateDeptProfMode; @@ -214,7 +214,7 @@ public class LawsMarketStandardDetail implements Serializable { * 批量限制 */ @ApiModelProperty(value = "批量限制") - @Excel(name = "批量限制", width = 15, dicCode = "batch_restriction") + @Excel(name = "批量限制(Production Amount)", width = 15, dicCode = "batch_restriction") @Dict(dicCode = "batch_restriction") private String batchLimit; @@ -223,7 +223,7 @@ public class LawsMarketStandardDetail implements Serializable { */ @Dict(dicCode = "automatic_driving_level") @ApiModelProperty(value = "自动驾驶等级") - @Excel(name = "自动驾驶等级", width = 15,dicCode = "automatic_driving_level") + @Excel(name = "自动驾驶等级(Automatic Driving Level)", width = 15,dicCode = "automatic_driving_level") private String autopilotLevel; /** @@ -231,7 +231,7 @@ public class LawsMarketStandardDetail implements Serializable { */ @Dict(dicCode = "requirement_type") @ApiModelProperty(value = "要求类型") - @Excel(name = "要求类型", width = 15,dicCode = "requirement_type") + @Excel(name = "要求类型(Optional/Compulsory)", width = 15,dicCode = "requirement_type") private String requireType; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java index ec5c4723..d7aef1a8 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java @@ -78,7 +78,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @NotBlank(message = "标准编号不能为空") @ApiModelProperty(value = "标准编号") - @Excel(name = "*标准编号", width = 15) + @Excel(name = "*标准编号(Regulation No.)", width = 15) private String standardNumber; /** @@ -86,20 +86,20 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @ApiModelProperty(value = "标准名称") @NotBlank(message = "标准名称不能为空") - @Excel(name = "*标准名称", width = 15) + @Excel(name = "*标准名称(Regulation Name)", width = 15) private String standardName; /** * 标准英文名称 */ @ApiModelProperty(value = "标准英文名称") - @Excel(name = "标准英文名称", width = 15) + @Excel(name = "标准英文名称(Regulation English Name)", width = 15) private String standardEnglishName; /** * 新生产车实施日期 */ - @Excel(name = "*新生产车实施日期", width = 15) + @Excel(name = "*新生产车实施日期(New Production Vehicle Implementation Date)", width = 15) @NotBlank(message = "新生产车实施日期不能为空") @ApiModelProperty(value = "新生产车实施日期") private String newProductImplDate; @@ -107,7 +107,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { /** * 新认证车实施日期 */ - @Excel(name = "*新认证车实施日期", width = 15) + @Excel(name = "*新认证车实施日期(New Certified Vehicle Implementation Date)", width = 15) @NotBlank(message = "新认证车实施日期不能为空") @ApiModelProperty(value = "新认证车实施日期") private String newAuthImplDate; @@ -115,7 +115,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { /** * 注册日期 */ - @Excel(name = "*注册日期", width = 15) + @Excel(name = "*注册日期(Registration Date)", width = 15) @NotBlank(message = "注册日期不能为空") @ApiModelProperty(value = "注册日期") private String registrationDate; @@ -123,7 +123,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { /** * 国家 */ - @Excel(name = "*适用国家/地区", width = 15,dicCode = "market_state") + @Excel(name = "*适用国家/地区(Country/Region)", width = 15,dicCode = "market_state") @NotBlank(message = "适用国家/地区不能为空") @ApiModelProperty(value = "国家") @Dict(dicCode = "market_state") @@ -132,7 +132,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { /** * 适用车型 */ - @Excel(name = "适用车型", width = 15, dicCode = "applicable_vehicle_type") + @Excel(name = "适用车型(Vehicle Catagory)", width = 15, dicCode = "applicable_vehicle_type") @Dict(dicCode = "applicable_vehicle_type") @ApiModelProperty(value = "适用车型") private String applicableVehicle; @@ -148,21 +148,21 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @ApiModelProperty(value = "认证对象") @Dict(dicCode = "authentication_object") - @Excel(name = "认证对象", width = 15, dicCode = "authentication_object") + @Excel(name = "认证对象(Certification Item)", width = 15, dicCode = "authentication_object") private String authenticationObject; /** * 认证交付物 */ @ApiModelProperty(value = "认证交付物") - @Excel(name = "认证交付物", width = 15) + @Excel(name = "认证交付物(Verification)", width = 15) private String certifyTheDeliverables; /** * 类型 */ @Dict(dicCode = "type") - @Excel(name = "类型", width = 15, dicCode = "type") + @Excel(name = "类型(Type)", width = 15, dicCode = "type") @ApiModelProperty(value = "类型") private String type; @@ -171,7 +171,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @Dict(dicCode = "dynamic_type") @ApiModelProperty(value = "动力类型") - @Excel(name = "动力类型", width = 15, dicCode = "dynamic_type") + @Excel(name = "动力类型(Power Propulsion Type)", width = 15, dicCode = "dynamic_type") private String dynamicType; /** @@ -180,7 +180,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "主控部门") @NotBlank(message = "主控部门不能为空") - @Excel(name = "*主控部门", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @Excel(name = "*主控部门(Main Responsible Dept.)", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") private String mainDept; /** @@ -189,7 +189,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { @ApiModelProperty(value = "主控部门专业模块") @NotBlank(message = "主控部门专业模块不能为空") @Dict(dicCode = "professional_module") - @Excel(name = "*主控部门专业模块", width = 15, dicCode = "professional_module") + @Excel(name = "*主控部门专业模块(Module of Main Responsible Dept.)", width = 15, dicCode = "professional_module") private String mainDeptProfMode; /** @@ -197,14 +197,14 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "关联部门") - @Excel(name = "关联部门", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @Excel(name = "关联部门(Related Dept.)", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") private String associateDept; /** * 关联部门专业模块 */ @ApiModelProperty(value = "关联部门专业模块") - @Excel(name = "关联部门专业模块", width = 15, dicCode = "professional_module") + @Excel(name = "关联部门专业模块(Module of Related Dept.)", width = 15, dicCode = "professional_module") @Dict(dicCode = "professional_module") private String associateDeptProfMode; @@ -212,7 +212,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { * 批量限制 */ @ApiModelProperty(value = "批量限制") - @Excel(name = "批量限制", width = 15, dicCode = "batch_restriction") + @Excel(name = "批量限制(Production Amount)", width = 15, dicCode = "batch_restriction") @Dict(dicCode = "batch_restriction") private String batchLimit; @@ -221,7 +221,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @Dict(dicCode = "automatic_driving_level") @ApiModelProperty(value = "自动驾驶等级") - @Excel(name = "自动驾驶等级", width = 15,dicCode = "automatic_driving_level") + @Excel(name = "自动驾驶等级(Automatic Driving Level)", width = 15,dicCode = "automatic_driving_level") private String autopilotLevel; /** @@ -229,7 +229,7 @@ public class LawsMarketStandardDetailExcel implements Serializable { */ @Dict(dicCode = "requirement_type") @ApiModelProperty(value = "要求类型") - @Excel(name = "要求类型", width = 15,dicCode = "requirement_type") + @Excel(name = "要求类型(Optional/Compulsory)", width = 15,dicCode = "requirement_type") private String requireType; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java index a6d93b38..5f7c05c9 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java @@ -6,11 +6,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.ImportExcelUtil; +import com.jero.common.util.MessageUtils; import com.jero.modules.laws.common.service.ILawsCommonService; import com.jero.modules.laws.marketStandard.constans.MarketStandardConstants; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard; @@ -26,6 +28,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; @@ -33,6 +36,7 @@ import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,9 +46,11 @@ import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.ConstraintViolation; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.lang.reflect.Field; import java.util.*; import java.util.stream.Collectors; @@ -64,12 +70,6 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listLawsMarketStandardOld = marketStandardService .listByIds(Arrays.asList(manifestId.split(","))); if(CollectionUtils.isEmpty(listLawsMarketStandardOld)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } for (LawsMarketStandard lawsMarketStandard : listLawsMarketStandardOld) { // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 @@ -109,7 +109,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl getList(String manifestId,String manifestVersion) { if(StringUtils.isBlank(manifestId)){ - return Result.error("id不能为空"); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } if(!StringUtils.isBlank(manifestVersion)){ LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId); if(Objects.isNull(lawsMarketStandardOld)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } LambdaQueryWrapper queryLawsMarketStandard = new LambdaQueryWrapper<>(); queryLawsMarketStandard.eq(LawsMarketStandard::getManifestNo,lawsMarketStandardOld.getManifestNo()); queryLawsMarketStandard.eq(LawsMarketStandard::getManifestVersion,manifestVersion); LawsMarketStandard lawsMarketStandard = marketStandardService.getOne(queryLawsMarketStandard,false); if(Objects.isNull(lawsMarketStandard)){ - return Result.error(manifestVersion + VERSION_NOT); + return Result.error(manifestVersion + ResultCommon.VERSION_DOES_NOT_EXIST); } manifestId = lawsMarketStandard.getId(); } @@ -166,7 +166,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl importExcel(MultipartFile file,String manifestId) { LawsMarketStandard lawsMarketStandardOld = marketStandardService.getById(manifestId); if(Objects.isNull(lawsMarketStandardOld)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); @@ -174,11 +174,11 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listLawsMarketStandardDetailExcel = getLawsMarketStandardDetailExcels(file, params); if(CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)){ - return Result.error("导入数据为空"); + return Result.error(ResultCommon.IMPORT_DATA_CANNOT_BE_EMPTY); } List listLawsMarketStandardDetail = JSON.parseArray( JSON.toJSONString(listLawsMarketStandardDetailExcel),LawsMarketStandardDetail.class); @@ -212,10 +212,10 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listLawsMarketStandardDetail, List listIdsStandard) { + private StringBuilder getStringBuilder(String manifestId, + List listLawsMarketStandardDetail, + List listIdsStandard) { StringBuilder m = new StringBuilder(); // 获取当前清单的标准 List listStandardIds = getStandardIds(manifestId); @@ -237,33 +239,36 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl op = listIdsStandard.stream().filter(o-> Objects.equals(o.getStandardNumber(),p.getStandardNumber())).findFirst(); if(!op.isPresent()){ - s.append("标准编号不存在,"); + String name = ValidUtil.getAnnotation(LawsMarketStandardDetail.class,"standardNumber"); + s.append(MessageUtils.getMessage(ResultCommon.DATA_DOES_NOT_EXIST,name)).append(","); }else{ checkStandard(listStandardIds, listStandardIdRepeat, p, s, op); } } } if(!StringUtils.isBlank(s.toString())){ - m.append("第").append(i + 4).append("行,").append(s.toString(), 0, s.toString().length() - 1) - .append("
"); + m.append(MessageUtils.getMessage(ResultCommon.ROW_N_IMPORT,i + 4)).append(",") + .append(s.toString(), 0, s.toString().length() - 1).append("
"); } } return m; } - private void checkStandard(List listStandardIds, List listStandardIdRepeat, LawsMarketStandardDetail p, StringBuilder s, Optional op) { + private void checkStandard(List listStandardIds, List listStandardIdRepeat, + LawsMarketStandardDetail p, StringBuilder s, Optional op) { if(!op.isPresent()){ return; } @@ -271,23 +276,26 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl 0){ - return Result.error("标准已存在"); + return Result.error(ResultCommon.STANDARD_NUMBER_ALREADY_EXISTS); } save(marketStandardDetail); // 更细状态 marketStandardService.updateStatus(marketStandardDetail.getManifestId()); - return Result.OK("操作成功"); + return Result.OK(ResultCommon.OK); } @Override public Result batchAdd(List list) { if(CollectionUtils.isEmpty(list)){ - return Result.error("数据不能为空"); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } long l = list.stream().filter(o->StringUtils.isBlank(o.getManifestId())).count(); if(l > 0){ - return Result.error("数据异常"); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } List listManifestId = list.stream().map(LawsMarketStandardDetail::getManifestId) .collect(Collectors.toList()); listManifestId = listManifestId.stream().distinct().collect(Collectors.toList()); if(listManifestId.size() > 1){ - return Result.error("数据异常"); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } String manifestId = listManifestId.get(0); LawsMarketStandard lawsMarketStandard = marketStandardService.getById(manifestId); if(Objects.isNull(lawsMarketStandard)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); @@ -421,7 +435,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listStandardId = list.stream().map(LawsMarketStandardDetail::getStandardId).collect(Collectors.toList()); @@ -435,28 +449,28 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl!listIds.contains(o.getStandardId())).collect(Collectors.toList()); } saveBatch(list); - return Result.OK("操作成功"); + return Result.OK(ResultCommon.OK); } @Override public synchronized Result copy(String oldId,String newId) { LawsMarketStandard lawsMarketStandard = marketStandardService.getById(newId); if(Objects.isNull(lawsMarketStandard)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) && !Arrays.stream(sysUser.getRoleIds().split(",")).anyMatch(otherAdmin::contains) && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) && !Objects.equals(lawsMarketStandard.getAuthor(),sysUser.getId())){ - return Result.error(NO_PERMISSIONS); + return Result.error(ResultCommon.NO_PERMISSION); } LambdaQueryWrapper queryOld = new LambdaQueryWrapper<>(); queryOld.in(LawsMarketStandardDetail::getManifestId,Arrays.asList(oldId.split(","))); queryOld.groupBy(LawsMarketStandardDetail::getStandardId); List listOld = list(queryOld); if(CollectionUtils.isEmpty(listOld)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } LambdaQueryWrapper queryNew = new LambdaQueryWrapper<>(); queryNew.eq(LawsMarketStandardDetail::getManifestId,newId); @@ -466,11 +480,11 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl!listStandardId.contains(o.getStandardId())).collect(Collectors.toList()); } if(CollectionUtils.isEmpty(listOld)){ - return Result.error("没有可复制的数据"); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } setData(newId, listOld); saveBatch(listOld); - return Result.OK("操作成功"); + return Result.OK(ResultCommon.OK); } private void setData(String newId, List listOld) { @@ -489,14 +503,14 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl edit(LawsMarketStandardDetail marketStandardDetail) { LawsMarketStandard lawsMarketStandard = marketStandardService.getById(marketStandardDetail.getManifestId()); if(Objects.isNull(lawsMarketStandard)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) && !Arrays.stream(sysUser.getRoleIds().split(",")).anyMatch(otherAdmin::contains) && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) && !Objects.equals(lawsMarketStandard.getAuthor(),sysUser.getId())){ - return Result.error(NO_PERMISSIONS); + return Result.error(ResultCommon.NO_PERMISSION); } LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getStandardId,marketStandardDetail.getStandardId()); @@ -504,12 +518,12 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl 0){ - return Result.error("标准已存在"); + return Result.error(ResultCommon.EXIST_STANDARD_NUMBER); } updateById(marketStandardDetail); // 更细状态 marketStandardService.updateStatus(marketStandardDetail.getManifestId()); - return Result.OK("操作成功"); + return Result.OK(ResultCommon.OK); } @Override @@ -518,12 +532,12 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl queryById(String id) { LawsMarketStandardDetail lawsMarketStandardDetail = getById(id); if(Objects.isNull(lawsMarketStandardDetail)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } LawsMarketStandard lawsMarketStandard = marketStandardService.getById(lawsMarketStandardDetail.getManifestId()); if(Objects.isNull(lawsMarketStandard)){ - return Result.error(NOT_DATA); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) - && !Arrays.stream(sysUser.getRoleIds().split(",")).anyMatch(otherAdmin::contains) + && Arrays.stream(sysUser.getRoleIds().split(",")).noneMatch(otherAdmin::contains) && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) && !Objects.equals(lawsMarketStandard.getAuthor(),sysUser.getId()) && !Objects.equals(lawsMarketStandard.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ - return Result.error(NO_PERMISSIONS); + return Result.error(ResultCommon.NO_PERMISSION); } return Result.OK(lawsMarketStandardDetail); } @@ -591,12 +605,12 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listLawsMarketStandardOld = marketStandardService .listByIds(Arrays.asList(manifestId.split(","))); if(CollectionUtils.isEmpty(listLawsMarketStandardOld)){ - throw new JeroBootException(NOT_DATA); + throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } for (LawsMarketStandard lawsMarketStandard : listLawsMarketStandardOld) { // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 @@ -607,7 +621,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl listLawsMarketStandard = list(queryLawsMarketStandard); if(CollectionUtils.isEmpty(listLawsMarketStandard)){ - return Result.error("数据不存在"); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } // 删除版本标识下所有数据 LambdaUpdateWrapper updateLawsMarketStandard = new LambdaUpdateWrapper<>(); @@ -340,7 +340,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.in(LawsMarketStandardDetail::getManifestId, listIds); lawsMarketStandardDetailService.remove(wrapper); - return Result.OK("删除成功!"); + return Result.OK(ResultCommon.SUCCESSFULLY_DELETED); } @Override @@ -348,7 +348,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); @@ -364,7 +364,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl(); idList.add(manifest.getId()); @@ -420,7 +420,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl queryLawsMarketStandard = new LambdaQueryWrapper<>(); queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag,lawsMarketStandard.getVersionFlag()); @@ -433,7 +433,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl checkPublish(String id) { LawsMarketStandard lawsMarketStandardOld = getById(id); if(Objects.isNull(lawsMarketStandardOld)){ - return Result.error("数据不存在"); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); @@ -441,13 +441,13 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl publish(String id) { LawsMarketStandard lawsMarketStandardOld = getById(id); if(Objects.isNull(lawsMarketStandardOld)){ - return Result.error("数据不存在"); + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if(Objects.equals(lawsMarketStandardOld.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ - return Result.error("数据已发布"); + return Result.error(ResultCommon.DATA_PUBLISHED); } LambdaQueryWrapper queryLawsMarketStandard = new LambdaQueryWrapper<>(); queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag,lawsMarketStandardOld.getVersionFlag()); @@ -482,7 +482,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl listLawsMarketStandardDetail = lawsMarketStandardDetailService .list(queryLawsMarketStandardDetail); if(CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ - return Result.OK("发布成功"); + return Result.OK(ResultCommon.OK); } List listLawsDomesticStandard = new ArrayList<>(); String country = lawsMarketStandardOld.getCountry(); @@ -496,7 +496,8 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl getManifestNo(LawsMarketStandard marketStandard) { if(StringUtils.isEmpty(marketStandard.getCountry())){ - Result.error("请选择国家/地区"); + return Result.error(ResultCommon.SELECT_DATA); } List listCountry = marketStandardMapper.getOneByEnBase(Arrays.asList(marketStandard.getCountry().split(","))); if(CollectionUtils.isEmpty(listCountry)){ diff --git a/laws-modules/src/main/java/com/jero/modules/laws/utils/ValidUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/utils/ValidUtil.java index 926d00b7..8018eb3f 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/utils/ValidUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/utils/ValidUtil.java @@ -1,29 +1,20 @@ package com.jero.modules.laws.utils; -import com.alibaba.fastjson.JSONObject; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.jero.common.aspect.annotation.Dict; -import com.jero.common.constant.CommonConstant; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; -import com.jero.common.system.api.ISysBaseAPI; -import com.jero.common.system.vo.SysDictItemCore; -import com.jero.common.util.oConvertUtils; +import com.jero.common.util.MessageUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.util.CollectionUtils; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.util.ReflectionUtils; -import javax.annotation.Resource; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; +import javax.validation.constraints.NotBlank; import java.lang.reflect.Field; -import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; /** * 手动校验@Vaild方法 @@ -98,6 +89,38 @@ public class ValidUtil { return msg; } + /** + * @Description 校验不能为空 + * @Author lqt + * @Date 2021/8/26 + * @Param object 对象 + * @Return StringBuilder + */ + public static StringBuilder validateReturnBuilderIsNotBlank(Object object, Class... groups){ + StringBuilder msg = new StringBuilder(); + Set> set = validator.validate(object, groups); + if(set != null && set.size() >0 ){ + Field[] fields = object.getClass().getDeclaredFields(); + setField(object, fields); + Locale locale = LocaleContextHolder.getLocale(); + for (Field field : fields) { + for(ConstraintViolation constraintViolation : set){ + if(Objects.equals(constraintViolation.getPropertyPath().toString(),field.getName())){ + if (field.isAnnotationPresent(Excel.class) && field.isAnnotationPresent(NotBlank.class)) { + String name = field.getAnnotation(Excel.class).name(); + String[] str1 = name.split("\\("); + String en = str1.length > 1 ? str1[1].split("\\)")[0] : str1[0]; + String zh = str1[0]; + name = Objects.equals(locale,Locale.ENGLISH) ? en : zh; + msg.append(MessageUtils.getMessage(ResultCommon.EMPTY_COMMON,name)).append(","); + } + } + } + } + } + return msg; + } + private static void setField(Object object, Field[] fields) { for (Field field : fields) { try { @@ -133,4 +156,33 @@ public class ValidUtil { } return msg; } + + + /** + * 获取指定类的指定字段上的注解 + * + * @param clazz 要检查的类 + * @param fieldName 字段名 + */ + public static String getAnnotation(Class clazz, String fieldName) { + try { + Locale locale = LocaleContextHolder.getLocale(); + // 获取字段 + Field field = clazz.getDeclaredField(fieldName); + // 检查字段是否有 MyAnnotation 注解 + if (field.isAnnotationPresent(Excel.class)) { + // 获取注解实例 + Excel annotation = field.getAnnotation(Excel.class); + String name = annotation.name(); + String[] str1 = name.split("\\("); + String en = str1.length > 1 ? str1[1].split("\\)")[0] : str1[0]; + String zh = str1[0]; + name = Objects.equals(locale,Locale.ENGLISH) ? en : zh; + return name; + } + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } + return null; + } } diff --git a/laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls b/laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xls index 4d42bf3e6cd1e6ec83a91a8cf836ca0ad5f27e93..0a22715627b8d89f024d73ea194287004bdc6c22 100644 GIT binary patch delta 4846 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 ZZ6W>weKdN4Y@p*u5{@U4CEXZ2{Re;PbQAyp diff --git a/laws-single-startup/src/main/resources/i18n/messages_en.properties b/laws-single-startup/src/main/resources/i18n/messages_en.properties index 5a72c6f7..51fe194d 100644 --- a/laws-single-startup/src/main/resources/i18n/messages_en.properties +++ b/laws-single-startup/src/main/resources/i18n/messages_en.properties @@ -85,4 +85,12 @@ process.already.distributed=The process has been distributed, do not reject! process.not.countersignature=It is not a countersign node task! zip_root_one_excel=The zip file contains more than one excel file message.no.exists.standard=The standard does not exist -scc.delete.standard.error=The standard has been used by the Standard Compliance Check Process, can not delete \ No newline at end of file +data.published=Data published +version.does.not.exist=Version does not exist +import.the.excel.file=Import the excel file +duplicate.standard.number=Duplicate standard number +standard.number.already.exists=The standard number already exists +formatting.error={0} formatting error +data.does.not.exist={0} does not exist +row.n.import=Row {0} +scc.delete.standard.error=The standard has been used by the Standard Compliance Check Process, can not delete diff --git a/laws-single-startup/src/main/resources/i18n/messages_zh.properties b/laws-single-startup/src/main/resources/i18n/messages_zh.properties index cc3416f6..dcf37f51 100644 --- a/laws-single-startup/src/main/resources/i18n/messages_zh.properties +++ b/laws-single-startup/src/main/resources/i18n/messages_zh.properties @@ -84,4 +84,12 @@ process.already.distributed=\u6D41\u7A0B\u5DF2\u5206\u53D1,\u7981\u6B62\u9A73\u5 process.not.countersignature=\u4E0D\u662F\u4F1A\u7B7E\u8282\u70B9\u4EFB\u52A1! zip_root_one_excel=\u538B\u7F29\u5305\u6839\u76EE\u5F55\u4E0B\u4EC5\u80FD\u5B58\u5728\u4E00\u4E2Aexcel\u4E3A\u5BFC\u5165\u6570\u636E message.no.exists.standard=\u6807\u51C6\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458 +data.published=\u6570\u636E\u5DF2\u53D1\u5E03 +version.does.not.exist=\u7248\u672C\u4E0D\u5B58\u5728 +import.the.excel.file=\u8BF7\u5BFC\u5165excel\u6587\u4EF6 +duplicate.standard.number=\u6807\u51C6\u7F16\u53F7\u91CD\u590D +standard.number.already.exists=\u6807\u51C6\u7F16\u53F7\u5DF2\u5B58\u5728 +formatting.error={0}\u683C\u5F0F\u9519\u8BEF +data.does.not.exist={0}\u6570\u636E\u4E0D\u5B58\u5728 +row.n.import=\u7B2C{0}\u884C scc.delete.standard.error=\u6709\u6B63\u5728\u8FDB\u884C\u4E2D\u7684\u6CD5\u89C4\u7B26\u5408\u6027\u6392\u67E5\u6D41\u7A0B\uFF0C\u4E0D\u5141\u8BB8\u5220\u9664