mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
1、新增/编辑贴皮入参校验修正;2、excel导入贴皮校验同步单贴皮新增规则;
This commit is contained in:
+3
@@ -173,6 +173,9 @@ public class ErrorCodeConstants {
|
|||||||
public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_NOT_EXIST = new ErrorCode(1_003_009_011, "veneer.org.classification.name.not.exist");
|
public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_NOT_EXIST = new ErrorCode(1_003_009_011, "veneer.org.classification.name.not.exist");
|
||||||
public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_USED = new ErrorCode(1_003_009_012, "veneer.org.classification.name.used");
|
public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_USED = new ErrorCode(1_003_009_012, "veneer.org.classification.name.used");
|
||||||
public static final ErrorCode VENEER_PIC_EXCEED_SIZE = new ErrorCode(1_003_009_013, "veneer.pic.exceed.size");
|
public static final ErrorCode VENEER_PIC_EXCEED_SIZE = new ErrorCode(1_003_009_013, "veneer.pic.exceed.size");
|
||||||
|
public static final ErrorCode VENEER_IMPORT_VENEER_NO_DUPLICATE = new ErrorCode(1_003_009_014, "veneer.import.veneer.no.duplicate");
|
||||||
|
public static final ErrorCode VENEER_IMPORT_VENEER_NO_FORMAT_ERROR = new ErrorCode(1_003_009_015, "veneer.import.veneer.no.format.error");
|
||||||
|
public static final ErrorCode VENEER_IMPORT_PRODUCT_LEVEL_ERROR = new ErrorCode(1_003_009_016, "veneer.import.product.level.error");
|
||||||
|
|
||||||
//=========== 部件管理 1-003-010-000 ============
|
//=========== 部件管理 1-003-010-000 ============
|
||||||
public static final ErrorCode ORDER_COMPONENT_NOT_EXIST = new ErrorCode(1_003_010_000, "order.component.not.exist");
|
public static final ErrorCode ORDER_COMPONENT_NOT_EXIST = new ErrorCode(1_003_010_000, "order.component.not.exist");
|
||||||
|
|||||||
+2
-1
@@ -81,6 +81,7 @@ public class VeneerImportExcelVO {
|
|||||||
* @return true:校验成功、false:校验失败(有必填项未填写)
|
* @return true:校验成功、false:校验失败(有必填项未填写)
|
||||||
*/
|
*/
|
||||||
public boolean validRequired() {
|
public boolean validRequired() {
|
||||||
return CharSequenceUtil.isAllNotEmpty(veneerNo, classificationName, veneerName, length, width, thickness, num) || ObjectUtil.isNull(productLevel);
|
return CharSequenceUtil.isAllNotEmpty(veneerNo, classificationName, veneerName, length, width, thickness, num)
|
||||||
|
&& ObjectUtil.isNotNull(productLevel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -5,6 +5,8 @@ import com.cf.imes.framework.common.validation.NumberValid;
|
|||||||
import com.cf.imes.module.executor.enums.veneer.VeneerProductLevelEnum;
|
import com.cf.imes.module.executor.enums.veneer.VeneerProductLevelEnum;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.DecimalMin;
|
import jakarta.validation.constraints.DecimalMin;
|
||||||
|
import jakarta.validation.constraints.DecimalMax;
|
||||||
|
import jakarta.validation.constraints.Max;
|
||||||
import jakarta.validation.constraints.Min;
|
import jakarta.validation.constraints.Min;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
@@ -57,24 +59,28 @@ public class VeneerSaveReqVO {
|
|||||||
@NotNull(message = "{veneer.save.num.not.null}")
|
@NotNull(message = "{veneer.save.num.not.null}")
|
||||||
@NumberValid(name = "veneer.field.num", integer = 4, fraction = 0)
|
@NumberValid(name = "veneer.field.num", integer = 4, fraction = 0)
|
||||||
@Min(value = 1, message = "{veneer.save.num.positive}")
|
@Min(value = 1, message = "{veneer.save.num.positive}")
|
||||||
|
@Max(value = 9999, message = "{veneer.save.num.max}")
|
||||||
private Integer num;
|
private Integer num;
|
||||||
|
|
||||||
@Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotNull(message = "{veneer.save.width.not.null}")
|
@NotNull(message = "{veneer.save.width.not.null}")
|
||||||
@NumberValid(name = "veneer.field.width", integer = 4, fraction = 2)
|
@NumberValid(name = "veneer.field.width", integer = 4, fraction = 2)
|
||||||
@DecimalMin(value = "0", inclusive = false, message = "{veneer.save.width.positive}")
|
@DecimalMin(value = "0", inclusive = false, message = "{veneer.save.width.positive}")
|
||||||
|
@DecimalMax(value = "9999.99", message = "{veneer.save.width.max}")
|
||||||
private BigDecimal width;
|
private BigDecimal width;
|
||||||
|
|
||||||
@Schema(description = "长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotNull(message = "{veneer.save.length.not.null}")
|
@NotNull(message = "{veneer.save.length.not.null}")
|
||||||
@NumberValid(name = "veneer.field.width", integer = 4, fraction = 2)
|
@NumberValid(name = "veneer.field.width", integer = 4, fraction = 2)
|
||||||
@DecimalMin(value = "0", inclusive = false, message = "{veneer.save.length.positive}")
|
@DecimalMin(value = "0", inclusive = false, message = "{veneer.save.length.positive}")
|
||||||
|
@DecimalMax(value = "9999.99", message = "{veneer.save.length.max}")
|
||||||
private BigDecimal length;
|
private BigDecimal length;
|
||||||
|
|
||||||
@Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotNull(message = "{veneer.save.thickness.not.null}")
|
@NotNull(message = "{veneer.save.thickness.not.null}")
|
||||||
@NumberValid(name = "veneer.field.width", integer = 4, fraction = 2)
|
@NumberValid(name = "veneer.field.width", integer = 4, fraction = 2)
|
||||||
@DecimalMin(value = "0", inclusive = false, message = "{veneer.save.thickness.positive}")
|
@DecimalMin(value = "0", inclusive = false, message = "{veneer.save.thickness.positive}")
|
||||||
|
@DecimalMax(value = "9999.99", message = "{veneer.save.thickness.max}")
|
||||||
private BigDecimal thickness;
|
private BigDecimal thickness;
|
||||||
|
|
||||||
@Schema(description = "颜色")
|
@Schema(description = "颜色")
|
||||||
|
|||||||
+45
-11
@@ -5,7 +5,6 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.excel.context.AnalysisContext;
|
import com.alibaba.excel.context.AnalysisContext;
|
||||||
import com.alibaba.excel.event.AnalysisEventListener;
|
import com.alibaba.excel.event.AnalysisEventListener;
|
||||||
import com.alibaba.excel.metadata.CellExtra;
|
|
||||||
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
|
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
|
||||||
import com.alibaba.excel.util.ListUtils;
|
import com.alibaba.excel.util.ListUtils;
|
||||||
import com.cf.imes.framework.common.exception.ServiceException;
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
@@ -14,6 +13,7 @@ import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerClassificati
|
|||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerImportExcelVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerImportExcelVO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.veneer.VeneerDO;
|
import com.cf.imes.module.executor.dal.dataobject.veneer.VeneerDO;
|
||||||
import com.cf.imes.module.executor.enums.veneer.VeneerStatusEnum;
|
import com.cf.imes.module.executor.enums.veneer.VeneerStatusEnum;
|
||||||
|
import com.cf.imes.module.executor.enums.veneer.VeneerProductLevelEnum;
|
||||||
import com.cf.imes.module.executor.util.fileConversion.admin.ToolUtil;
|
import com.cf.imes.module.executor.util.fileConversion.admin.ToolUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -21,6 +21,9 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_DIGITAL_TYPE_ERROR;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_DIGITAL_TYPE_ERROR;
|
||||||
@@ -29,6 +32,9 @@ import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT
|
|||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_ORG_CLASSIFICATION_NAME_NOT_EXIST;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_ORG_CLASSIFICATION_NAME_NOT_EXIST;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_POSITIVE_NUMBER_ERROR;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_POSITIVE_NUMBER_ERROR;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_REQUIRED_LACK;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_REQUIRED_LACK;
|
||||||
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_VENEER_NO_DUPLICATE;
|
||||||
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_VENEER_NO_FORMAT_ERROR;
|
||||||
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_IMPORT_PRODUCT_LEVEL_ERROR;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 贴皮excel导入 解析器
|
* 贴皮excel导入 解析器
|
||||||
@@ -53,6 +59,8 @@ public class VeneerExcelListener extends AnalysisEventListener<VeneerImportExcel
|
|||||||
private Map<Integer, String> headMap;
|
private Map<Integer, String> headMap;
|
||||||
|
|
||||||
private Set<String> orgClassificationNameSet;
|
private Set<String> orgClassificationNameSet;
|
||||||
|
/** 本次文件已出现的编号,避免同一文件内重复新增/更新。 */
|
||||||
|
private final Set<String> importedVeneerNoSet = new HashSet<>();
|
||||||
|
|
||||||
private Long organId;
|
private Long organId;
|
||||||
|
|
||||||
@@ -62,9 +70,9 @@ public class VeneerExcelListener extends AnalysisEventListener<VeneerImportExcel
|
|||||||
orgVeneerNoMap = veneerService.getOrgVeneerNo();
|
orgVeneerNoMap = veneerService.getOrgVeneerNo();
|
||||||
organId = SecurityFrameworkUtils.getUserOrganId();
|
organId = SecurityFrameworkUtils.getUserOrganId();
|
||||||
List<VeneerClassificationNameRespVO> orgVeneerClassificationNameList = veneerService.getOrgVeneerClassificationNameList();
|
List<VeneerClassificationNameRespVO> orgVeneerClassificationNameList = veneerService.getOrgVeneerClassificationNameList();
|
||||||
if (CollUtil.isNotEmpty(orgVeneerClassificationNameList)) {
|
orgClassificationNameSet = CollUtil.isNotEmpty(orgVeneerClassificationNameList)
|
||||||
orgClassificationNameSet = orgVeneerClassificationNameList.stream().map(VeneerClassificationNameRespVO::getName).collect(Collectors.toSet());
|
? orgVeneerClassificationNameList.stream().map(VeneerClassificationNameRespVO::getName).collect(Collectors.toSet())
|
||||||
}
|
: Collections.emptySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,6 +94,20 @@ public class VeneerExcelListener extends AnalysisEventListener<VeneerImportExcel
|
|||||||
|
|
||||||
String veneerNo = data.getVeneerNo();
|
String veneerNo = data.getVeneerNo();
|
||||||
|
|
||||||
|
// 与 VeneerSaveReqVO 的编号规则保持一致
|
||||||
|
if (!veneerNo.matches("^[^\\\\/:*?\",|<>]*$")) {
|
||||||
|
throw new ServiceException(VENEER_IMPORT_VENEER_NO_FORMAT_ERROR, rowIndex, veneerNo);
|
||||||
|
}
|
||||||
|
if (!importedVeneerNoSet.add(veneerNo)) {
|
||||||
|
throw new ServiceException(VENEER_IMPORT_VENEER_NO_DUPLICATE, rowIndex, veneerNo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @InEnum 在 Excel 导入场景不会自动触发,需显式校验
|
||||||
|
if (!Arrays.stream(VeneerProductLevelEnum.values())
|
||||||
|
.anyMatch(item -> item.getCode().equals(data.getProductLevel()))) {
|
||||||
|
throw new ServiceException(VENEER_IMPORT_PRODUCT_LEVEL_ERROR, rowIndex, data.getProductLevel());
|
||||||
|
}
|
||||||
|
|
||||||
// 校验分类名称组织内是否存在
|
// 校验分类名称组织内是否存在
|
||||||
validClassificationName(data.getClassificationName(), rowIndex);
|
validClassificationName(data.getClassificationName(), rowIndex);
|
||||||
|
|
||||||
@@ -94,17 +116,17 @@ public class VeneerExcelListener extends AnalysisEventListener<VeneerImportExcel
|
|||||||
validFieldLength(headMap.get(1), data.getBatchNo(), 32, rowIndex);
|
validFieldLength(headMap.get(1), data.getBatchNo(), 32, rowIndex);
|
||||||
validFieldLength(headMap.get(3), data.getVeneerName(), 64, rowIndex);
|
validFieldLength(headMap.get(3), data.getVeneerName(), 64, rowIndex);
|
||||||
validFieldLength(headMap.get(5), data.getColor(), 32, rowIndex);
|
validFieldLength(headMap.get(5), data.getColor(), 32, rowIndex);
|
||||||
validFieldLength(headMap.get(6), data.getMaterial(), 64, rowIndex);
|
validFieldLength(headMap.get(6), data.getMaterial(), 32, rowIndex);
|
||||||
validFieldLength(headMap.get(10), data.getBrand(), 64, rowIndex);
|
validFieldLength(headMap.get(10), data.getBrand(), 32, rowIndex);
|
||||||
validFieldLength(headMap.get(11), data.getSpec(), 64, rowIndex);
|
validFieldLength(headMap.get(11), data.getSpec(), 64, rowIndex);
|
||||||
validFieldLength(headMap.get(12), data.getFactory(), 128, rowIndex);
|
validFieldLength(headMap.get(12), data.getFactory(), 64, rowIndex);
|
||||||
validFieldLength(headMap.get(14), data.getRemark(), 255, rowIndex);
|
validFieldLength(headMap.get(14), data.getRemark(), 255, rowIndex);
|
||||||
|
|
||||||
// 校验类型
|
// 校验类型
|
||||||
validPositiveFloatNumberSize(headMap.get(7), data.getLength(), Double.class, 5, 3, rowIndex);
|
validPositiveFloatNumberSize(headMap.get(7), data.getLength(), Double.class, 4, 2, rowIndex);
|
||||||
validPositiveFloatNumberSize(headMap.get(8), data.getWidth(), Double.class, 5, 3, rowIndex);
|
validPositiveFloatNumberSize(headMap.get(8), data.getWidth(), Double.class, 4, 2, rowIndex);
|
||||||
validPositiveFloatNumberSize(headMap.get(9), data.getThickness(), Double.class, 5, 3, rowIndex);
|
validPositiveFloatNumberSize(headMap.get(9), data.getThickness(), Double.class, 4, 2, rowIndex);
|
||||||
validPositiveNumber(headMap.get(13), data.getNum(), rowIndex);
|
validPositiveIntegerSize(headMap.get(13), data.getNum(), 4, rowIndex);
|
||||||
|
|
||||||
// 校验贴皮是新增还是更新
|
// 校验贴皮是新增还是更新
|
||||||
Long existId = orgVeneerNoMap.get(veneerNo);
|
Long existId = orgVeneerNoMap.get(veneerNo);
|
||||||
@@ -143,6 +165,11 @@ public class VeneerExcelListener extends AnalysisEventListener<VeneerImportExcel
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
|
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
|
||||||
|
if (headMap == null || headMap.size() < 15
|
||||||
|
|| !headMap.keySet().containsAll(Arrays.asList(
|
||||||
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14))) {
|
||||||
|
throw new ServiceException(VENEER_IMPORT_REQUIRED_LACK, 1);
|
||||||
|
}
|
||||||
this.headMap = headMap;
|
this.headMap = headMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,6 +271,13 @@ public class VeneerExcelListener extends AnalysisEventListener<VeneerImportExcel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void validPositiveIntegerSize(String key, String value, int integerLength, int rowIndex) {
|
||||||
|
validPositiveNumber(key, value, rowIndex);
|
||||||
|
if (StringUtils.isNotEmpty(value) && !ToolUtil.checkPrecision(value, integerLength, 0)) {
|
||||||
|
throw new ServiceException(VENEER_IMPORT_NUMBER_LENGTH_ERROR, rowIndex, key, integerLength, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查是否正数(不包含0)
|
* 检查是否正数(不包含0)
|
||||||
*
|
*
|
||||||
|
|||||||
+4
@@ -21,7 +21,11 @@ veneer.field.length=長度
|
|||||||
veneer.field.thickness=厚度
|
veneer.field.thickness=厚度
|
||||||
veneer.save.num.not.null=數量不能為空
|
veneer.save.num.not.null=數量不能為空
|
||||||
veneer.save.num.positive=數量必須為正整數
|
veneer.save.num.positive=數量必須為正整數
|
||||||
|
veneer.save.num.max=數量不能超過 9999
|
||||||
veneer.save.width.positive=寬度必須大於 0
|
veneer.save.width.positive=寬度必須大於 0
|
||||||
|
veneer.save.width.max=寬度不能超過 9999.99
|
||||||
|
veneer.save.length.max=長度不能超過 9999.99
|
||||||
|
veneer.save.thickness.max=厚度不能超過 9999.99
|
||||||
veneer.save.length.positive=長度必須大於 0
|
veneer.save.length.positive=長度必須大於 0
|
||||||
veneer.save.thickness.positive=厚度必須大於 0
|
veneer.save.thickness.positive=厚度必須大於 0
|
||||||
veneer.save.productLevel.not.null=產品等級不能為空
|
veneer.save.productLevel.not.null=產品等級不能為空
|
||||||
|
|||||||
+4
@@ -21,7 +21,11 @@ veneer.save.length.not.null=length cannot be empty
|
|||||||
veneer.save.material.length.max=material length cannot exceed 32 characters
|
veneer.save.material.length.max=material length cannot exceed 32 characters
|
||||||
veneer.save.num.not.null=num cannot be empty
|
veneer.save.num.not.null=num cannot be empty
|
||||||
veneer.save.num.positive=num must be a positive integer
|
veneer.save.num.positive=num must be a positive integer
|
||||||
|
veneer.save.num.max=num cannot exceed 9999
|
||||||
veneer.save.width.positive=width must be greater than 0
|
veneer.save.width.positive=width must be greater than 0
|
||||||
|
veneer.save.width.max=width cannot exceed 9999.99
|
||||||
|
veneer.save.length.max=length cannot exceed 9999.99
|
||||||
|
veneer.save.thickness.max=thickness cannot exceed 9999.99
|
||||||
veneer.save.length.positive=length must be greater than 0
|
veneer.save.length.positive=length must be greater than 0
|
||||||
veneer.save.thickness.positive=thickness must be greater than 0
|
veneer.save.thickness.positive=thickness must be greater than 0
|
||||||
veneer.save.productLevel.not.null=product level cannot be empty
|
veneer.save.productLevel.not.null=product level cannot be empty
|
||||||
|
|||||||
+3
@@ -73,6 +73,9 @@ veneer.not.exist=貼皮不存在
|
|||||||
veneer.no.exist=貼皮編號已存在
|
veneer.no.exist=貼皮編號已存在
|
||||||
|
|
||||||
veneer.import.required.lack=第{0}行存在帶*必填項為空,請檢查檔案
|
veneer.import.required.lack=第{0}行存在帶*必填項為空,請檢查檔案
|
||||||
|
veneer.import.veneer.no.duplicate=第{0}行貼皮編號{1}在本次匯入檔案中重複,請修改後重新匯入
|
||||||
|
veneer.import.veneer.no.format.error=第{0}行貼皮編號{1}格式不正確,不可包含以下特殊字元:\\ / : * ? " , | < >
|
||||||
|
veneer.import.product.level.error=第{0}行產品等級填寫不正確,請按照匯入範本填寫系統支援的產品等級
|
||||||
veneer.import.length.error=第{0}行{1}長度不能超過{2}個字元,請檢查檔案
|
veneer.import.length.error=第{0}行{1}長度不能超過{2}個字元,請檢查檔案
|
||||||
veneer.import.digital.type.error=第{0}行{1}只能輸入數位,請檢查檔案
|
veneer.import.digital.type.error=第{0}行{1}只能輸入數位,請檢查檔案
|
||||||
veneer.import.positive.number.error=第{0}行{1}必須大於0,請檢查檔案
|
veneer.import.positive.number.error=第{0}行{1}必須大於0,請檢查檔案
|
||||||
|
|||||||
+3
@@ -73,6 +73,9 @@ veneer.not.exist=veneer not exist
|
|||||||
veneer.no.exist=veneer no already exists
|
veneer.no.exist=veneer no already exists
|
||||||
|
|
||||||
veneer.import.required.lack=The required field is empty in line {0}, please check the file
|
veneer.import.required.lack=The required field is empty in line {0}, please check the file
|
||||||
|
veneer.import.veneer.no.duplicate=The veneer number {1} is duplicated in the import file at line {0}, please correct it and try again
|
||||||
|
veneer.import.veneer.no.format.error=The veneer number {1} in line {0} has an invalid format and cannot contain these special characters: \\ / : * ? " , | < >
|
||||||
|
veneer.import.product.level.error=The product level in line {0} is invalid. Please enter a product level supported by the system according to the import template
|
||||||
veneer.import.length.error=The length of the field cannot exceed {0} characters in line {1}, please check the file
|
veneer.import.length.error=The length of the field cannot exceed {0} characters in line {1}, please check the file
|
||||||
veneer.import.digital.type.error=The field can only be filled in with numbers in line {0}, please check the file
|
veneer.import.digital.type.error=The field can only be filled in with numbers in line {0}, please check the file
|
||||||
veneer.import.positive.number.error=The field must be greater than 0 in line {0}, please check the file
|
veneer.import.positive.number.error=The field must be greater than 0 in line {0}, please check the file
|
||||||
|
|||||||
+3
@@ -73,6 +73,9 @@ veneer.not.exist=贴皮不存在
|
|||||||
veneer.no.exist=贴皮编号已存在
|
veneer.no.exist=贴皮编号已存在
|
||||||
|
|
||||||
veneer.import.required.lack=第{0}行存在带*必填项为空,请检查文件
|
veneer.import.required.lack=第{0}行存在带*必填项为空,请检查文件
|
||||||
|
veneer.import.veneer.no.duplicate=第{0}行贴皮编号{1}在本次导入文件中重复,请修改后重新导入
|
||||||
|
veneer.import.veneer.no.format.error=第{0}行贴皮编号{1}格式不正确,不能包含以下特殊字符:\\ / : * ? " , | < >
|
||||||
|
veneer.import.product.level.error=第{0}行产品等级填写不正确,请按照导入模板填写系统支持的产品等级
|
||||||
veneer.import.length.error=第{0}行{1}长度不能超过{2}个字符,请检查文件
|
veneer.import.length.error=第{0}行{1}长度不能超过{2}个字符,请检查文件
|
||||||
veneer.import.digital.type.error=第{0}行{1}只能输入数字,请检查文件
|
veneer.import.digital.type.error=第{0}行{1}只能输入数字,请检查文件
|
||||||
veneer.import.positive.number.error=第{0}行{1}必须大于0,请检查文件
|
veneer.import.positive.number.error=第{0}行{1}必须大于0,请检查文件
|
||||||
|
|||||||
+4
@@ -21,7 +21,11 @@ veneer.field.length=长度
|
|||||||
veneer.field.thickness=厚度
|
veneer.field.thickness=厚度
|
||||||
veneer.save.num.not.null=数量不能为空
|
veneer.save.num.not.null=数量不能为空
|
||||||
veneer.save.num.positive=数量必须为正整数
|
veneer.save.num.positive=数量必须为正整数
|
||||||
|
veneer.save.num.max=数量不能超过 9999
|
||||||
veneer.save.width.positive=宽度必须大于 0
|
veneer.save.width.positive=宽度必须大于 0
|
||||||
|
veneer.save.width.max=宽度不能超过 9999.99
|
||||||
|
veneer.save.length.max=长度不能超过 9999.99
|
||||||
|
veneer.save.thickness.max=厚度不能超过 9999.99
|
||||||
veneer.save.length.positive=长度必须大于 0
|
veneer.save.length.positive=长度必须大于 0
|
||||||
veneer.save.thickness.positive=厚度必须大于 0
|
veneer.save.thickness.positive=厚度必须大于 0
|
||||||
veneer.save.productLevel.not.null=产品等级不能为空
|
veneer.save.productLevel.not.null=产品等级不能为空
|
||||||
|
|||||||
Reference in New Issue
Block a user