From c04eb9c98cc326876f705eba9ed6fe95bfdf45a6 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 26 Feb 2025 11:39:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E5=8D=95excel=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D=EF=BC=9A1?= =?UTF-8?q?=E3=80=81=E6=A0=A1=E9=AA=8C=E8=A7=84=E5=88=99=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=9B2=E3=80=81=E6=9D=BF=E6=9D=90=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E4=BF=AE=E6=94=B9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DefaultOrderImportExcelListener.java | 88 +++++++++++++++---- .../DefaultExcelOrderImportFactory.java | 15 ++-- 2 files changed, 79 insertions(+), 24 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/DefaultOrderImportExcelListener.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/DefaultOrderImportExcelListener.java index f0ca4c23f..1c8d657c7 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/DefaultOrderImportExcelListener.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/DefaultOrderImportExcelListener.java @@ -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); diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/DefaultExcelOrderImportFactory.java b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/DefaultExcelOrderImportFactory.java index 128f77753..05431b5bf 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/DefaultExcelOrderImportFactory.java +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/DefaultExcelOrderImportFactory.java @@ -289,15 +289,10 @@ public class DefaultExcelOrderImportFactory { orderImportTempDataMapper.update(new LambdaUpdateWrapperX() .eq(OrderImportTempDataDO::getTaskId, taskId) .eq(OrderImportTempDataDO::getType, PLATE_TYPE) - .eqIfPresent(OrderImportTempDataDO::getGoodsName, orderImportTempDataGoodsGroupDO.getGoodsName()) - .eqIfPresent(OrderImportTempDataDO::getMaterial, orderImportTempDataGoodsGroupDO.getMaterial()) .eqIfPresent(OrderImportTempDataDO::getWave, orderImportTempDataGoodsGroupDO.getWave()) - .eqIfPresent(OrderImportTempDataDO::getColor, orderImportTempDataGoodsGroupDO.getColor()) .eqIfPresent(OrderImportTempDataDO::getSpec, orderImportTempDataGoodsGroupDO.getSpec()) .eqIfPresent(OrderImportTempDataDO::getWidth, orderImportTempDataGoodsGroupDO.getWidth()) .eqIfPresent(OrderImportTempDataDO::getHeight, orderImportTempDataGoodsGroupDO.getHeight()) - .eqIfPresent(OrderImportTempDataDO::getThickness, orderImportTempDataGoodsGroupDO.getThickness()) - .eqIfPresent(OrderImportTempDataDO::getBrand, orderImportTempDataGoodsGroupDO.getBrand()) .set(OrderImportTempDataDO::getInnerGoodsId, innerGoodsId)); } else { orderImportTempDataMapper.update(new LambdaUpdateWrapper() @@ -1059,9 +1054,13 @@ public class DefaultExcelOrderImportFactory { plateGoodDO = getPlateGood(goodsDO.getGoodsId()); } else { // 没有goodsId,大板属性匹配大板 - existPlateGoodDOS = plateGoodMapper.selectGood(goodsDO.getGoodsName(), goodsDO.getMaterial(), goodsDO.getColor(), - goodsDO.getTexture(), goodsDO.getWidth(), goodsDO.getThickness(), goodsDO.getHeight(), goodsDO.getBrand(), - goodsDO.getSpec(), organId); + existPlateGoodDOS = plateGoodMapper.selectList(new LambdaQueryWrapper() + .eq(PlateGoodDO::getTexture, goodsDO.getTexture()) + .eq(PlateGoodDO::getWidth, goodsDO.getWidth()) + .eq(PlateGoodDO::getHeight, goodsDO.getHeight()) + .eq(PlateGoodDO::getSpec, goodsDO.getSpec()) + .eq(PlateGoodDO::getDeleted, 0) + .eq(PlateGoodDO::getOrganId, organId)); } if (CollUtil.isNotEmpty(existPlateGoodDOS)) {