生产单excel导入问题修复:1、校验规则修改;2、板材对应条件修改;

This commit is contained in:
gaoqr
2025-02-26 11:39:01 +08:00
parent d3e13a0135
commit c04eb9c98c
2 changed files with 79 additions and 24 deletions
@@ -505,14 +505,14 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
if (StringUtils.equals(vo.getGoodType(), "配件")) {
// 复合部件必填
isNotEmptyAndBack(vo.getIsComposite(), QuarrelEnum.class, "是否复合部件", 1); // 判断传入的值,是否符合字典中的枚举类
// 复合部件
isNotEmptyAndBack(StringUtils.isNotEmpty(vo.getIsComposite()) ? vo.getIsComposite() : "", QuarrelEnum.class, "是否复合部件", 1); // 判断传入的值,是否符合字典中的枚举类
// 配件类型必填
isNotEmptyAndBack(vo.getCategory(), CategoryEnum.class, "配件类型", 32);
// 配件长宽厚,存在判断是否可以转义
isEmptyAndPositiveNumberSize(vo.getGoodsWidth(), Double.class, 5, 3, "配件宽");
isEmptyAndPositiveNumberSize(vo.getGoodsHeight(), Double.class, 5, 3, "配件高");
isEmptyAndPositiveNumberSize(vo.getGoodsThickness(), Double.class, 5, 3, "配件厚");
isEmptyAndNumberSize(vo.getGoodsWidth(), Double.class, 5, 3, "配件宽");
isEmptyAndNumberSize(vo.getGoodsHeight(), Double.class, 5, 3, "配件高");
isEmptyAndNumberSize(vo.getGoodsThickness(), Double.class, 5, 3, "配件厚");
// 配件类型为封边条的时候,需要填写配件宽厚
if (StringUtils.equals(vo.getCategory(), CategoryEnum.EDGING.getValue())) { // 封边条必须有宽高
isNotEmptyAndBack(vo.getGoodsWidth(), "封边条宽");
@@ -568,9 +568,7 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
// 板材纹理
isNotEmptyAndBack(vo.getWave(), IsHavaeEnum.class, "板材纹理", 4);
// 大板的长宽厚存在以及是否符合数个
isNotEmptyAndBack(vo.getGoodsWidth(), "板材长度");
isEmptyAndPositiveNumberSize(vo.getGoodsWidth(), Double.class, 5, 3, "板材长度");
isNotEmptyAndBack(vo.getGoodsHeight(), "板材宽度");
isEmptyAndPositiveNumberSize(vo.getGoodsHeight(), Double.class, 5, 3, "板材宽度");
isNotEmptyAndBack(vo.getGoodsThickness(), "板材厚度");
isEmptyAndPositiveNumberSize(vo.getGoodsThickness(), Double.class, 5, 3, "板材厚度");
@@ -591,13 +589,13 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
isNotEmptyAndBack(vo.getThickness(), "厚度");
isEmptyAndPositiveNumberSize(vo.getThickness(), Double.class, 5, 3, "厚度");
isNotEmptyAndBack(vo.getSealLeft(), "左封边");
isEmptyAndPositiveNumberSize(vo.getSealLeft(), Double.class, 5, 3, "左封边");
isEmptyAndNumberSize(vo.getSealLeft(), Double.class, 2, 2, "左封边");
isNotEmptyAndBack(vo.getSealRight(), "右封边");
isEmptyAndPositiveNumberSize(vo.getSealRight(), Double.class, 5, 3, "右封边");
isEmptyAndNumberSize(vo.getSealRight(), Double.class, 2, 2, "右封边");
isNotEmptyAndBack(vo.getSealUp(), "上封边");
isEmptyAndPositiveNumberSize(vo.getSealUp(), Double.class, 5, 3, "上封边");
isEmptyAndNumberSize(vo.getSealUp(), Double.class, 2, 2, "上封边");
isNotEmptyAndBack(vo.getSealDown(), "下封边");
isEmptyAndPositiveNumberSize(vo.getSealDown(), Double.class, 5, 3, "下封边");
isEmptyAndNumberSize(vo.getSealDown(), Double.class, 2, 2, "下封边");
// 排版面、纹路、开门方向
isNotEmptyAndDict(vo.getTypographicFace(), DictTypeConstants.TYPOGRAPHY_TYPE, "排版面");
isNotEmptyAndDict(vo.getTexture(), DictTypeConstants.GRAIN_TYPE, "纹路");
@@ -661,8 +659,16 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
}
}
// 非零判断,有值判断---判断数值类型,数值长度
private void isEmptyAndPositiveNumberSize(String value, Class<?> targetType, Integer length, Integer decimalLength, String errValue) {
/**
* 检查值大于等于0、数据类型和长度
*
* @param value
* @param targetType
* @param length
* @param decimalLength
* @param errValue
*/
private void isEmptyAndNumberSize(String value, Class<?> targetType, Integer length, Integer decimalLength, String errValue) {
if (StringUtils.isNotEmpty(value)) {
if (Boolean.TRUE.equals(ToolUtil.convertToType(value, targetType))) {
if (Boolean.TRUE.equals(ToolUtil.checkNumber(value))) {
@@ -678,6 +684,31 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
}
}
/**
* 检查值大于0、数据类型和长度
*
* @param value
* @param targetType
* @param length
* @param decimalLength
* @param errValue
*/
private void isEmptyAndPositiveNumberSize(String value, Class<?> targetType, Integer length, Integer decimalLength, String errValue) {
if (StringUtils.isNotEmpty(value)) {
if (Boolean.TRUE.equals(ToolUtil.convertToType(value, targetType))) {
if (Boolean.TRUE.equals(checkPositiveNumber(value))) {
if (!ToolUtil.checkPrecision(value, length, decimalLength)) {
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + NUMBER_LENGTH_ERR);
}
} else {
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + "必须大于0");
}
} else {
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + NUMBER_TYPE_ERR);
}
}
}
// 判断非零,错误返回
private void isNotEmptyAndBack(String value, String errValue) {
if (StringUtils.isEmpty(value)) {
@@ -701,14 +732,39 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
if (Boolean.FALSE.equals(ToolUtil.convertToType(value, targetType))) {
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + NUMBER_TYPE_ERR);
} else {
if (Boolean.FALSE.equals(checkNumber(value))) {
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + "数量不能为0");
if (Boolean.FALSE.equals(checkPositiveNumber(value))) {
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + "数量必须大于0");
}
}
}
}
// 数值正负判断
/**
* 检查是否正数(不包含0)
*
* @param numberStr
* @return
*/
public static Boolean checkPositiveNumber(String numberStr) {
try {
double number = Double.parseDouble(numberStr);
// 进行正负判断
if (number > 0) {
return true;
} else {
return false;
}
} catch (NumberFormatException e) {
return false;
}
}
/**
* 检查是否正数(包含0
*
* @param numberStr
* @return
*/
public static Boolean checkNumber(String numberStr) {
try {
double number = Double.parseDouble(numberStr);