mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
生产单excel导入问题修复:1、校验规则修改;2、板材对应条件修改;
This commit is contained in:
+72
-16
@@ -505,14 +505,14 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
|
|||||||
|
|
||||||
|
|
||||||
if (StringUtils.equals(vo.getGoodType(), "配件")) {
|
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);
|
isNotEmptyAndBack(vo.getCategory(), CategoryEnum.class, "配件类型", 32);
|
||||||
// 配件长宽厚,存在判断是否可以转义
|
// 配件长宽厚,存在判断是否可以转义
|
||||||
isEmptyAndPositiveNumberSize(vo.getGoodsWidth(), Double.class, 5, 3, "配件宽");
|
isEmptyAndNumberSize(vo.getGoodsWidth(), Double.class, 5, 3, "配件宽");
|
||||||
isEmptyAndPositiveNumberSize(vo.getGoodsHeight(), Double.class, 5, 3, "配件高");
|
isEmptyAndNumberSize(vo.getGoodsHeight(), Double.class, 5, 3, "配件高");
|
||||||
isEmptyAndPositiveNumberSize(vo.getGoodsThickness(), Double.class, 5, 3, "配件厚");
|
isEmptyAndNumberSize(vo.getGoodsThickness(), Double.class, 5, 3, "配件厚");
|
||||||
// 配件类型为封边条的时候,需要填写配件宽厚
|
// 配件类型为封边条的时候,需要填写配件宽厚
|
||||||
if (StringUtils.equals(vo.getCategory(), CategoryEnum.EDGING.getValue())) { // 封边条必须有宽高
|
if (StringUtils.equals(vo.getCategory(), CategoryEnum.EDGING.getValue())) { // 封边条必须有宽高
|
||||||
isNotEmptyAndBack(vo.getGoodsWidth(), "封边条宽");
|
isNotEmptyAndBack(vo.getGoodsWidth(), "封边条宽");
|
||||||
@@ -568,9 +568,7 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
|
|||||||
// 板材纹理
|
// 板材纹理
|
||||||
isNotEmptyAndBack(vo.getWave(), IsHavaeEnum.class, "板材纹理", 4);
|
isNotEmptyAndBack(vo.getWave(), IsHavaeEnum.class, "板材纹理", 4);
|
||||||
// 大板的长宽厚存在以及是否符合数个
|
// 大板的长宽厚存在以及是否符合数个
|
||||||
isNotEmptyAndBack(vo.getGoodsWidth(), "板材长度");
|
|
||||||
isEmptyAndPositiveNumberSize(vo.getGoodsWidth(), Double.class, 5, 3, "板材长度");
|
isEmptyAndPositiveNumberSize(vo.getGoodsWidth(), Double.class, 5, 3, "板材长度");
|
||||||
isNotEmptyAndBack(vo.getGoodsHeight(), "板材宽度");
|
|
||||||
isEmptyAndPositiveNumberSize(vo.getGoodsHeight(), Double.class, 5, 3, "板材宽度");
|
isEmptyAndPositiveNumberSize(vo.getGoodsHeight(), Double.class, 5, 3, "板材宽度");
|
||||||
isNotEmptyAndBack(vo.getGoodsThickness(), "板材厚度");
|
isNotEmptyAndBack(vo.getGoodsThickness(), "板材厚度");
|
||||||
isEmptyAndPositiveNumberSize(vo.getGoodsThickness(), Double.class, 5, 3, "板材厚度");
|
isEmptyAndPositiveNumberSize(vo.getGoodsThickness(), Double.class, 5, 3, "板材厚度");
|
||||||
@@ -591,13 +589,13 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
|
|||||||
isNotEmptyAndBack(vo.getThickness(), "厚度");
|
isNotEmptyAndBack(vo.getThickness(), "厚度");
|
||||||
isEmptyAndPositiveNumberSize(vo.getThickness(), Double.class, 5, 3, "厚度");
|
isEmptyAndPositiveNumberSize(vo.getThickness(), Double.class, 5, 3, "厚度");
|
||||||
isNotEmptyAndBack(vo.getSealLeft(), "左封边");
|
isNotEmptyAndBack(vo.getSealLeft(), "左封边");
|
||||||
isEmptyAndPositiveNumberSize(vo.getSealLeft(), Double.class, 5, 3, "左封边");
|
isEmptyAndNumberSize(vo.getSealLeft(), Double.class, 2, 2, "左封边");
|
||||||
isNotEmptyAndBack(vo.getSealRight(), "右封边");
|
isNotEmptyAndBack(vo.getSealRight(), "右封边");
|
||||||
isEmptyAndPositiveNumberSize(vo.getSealRight(), Double.class, 5, 3, "右封边");
|
isEmptyAndNumberSize(vo.getSealRight(), Double.class, 2, 2, "右封边");
|
||||||
isNotEmptyAndBack(vo.getSealUp(), "上封边");
|
isNotEmptyAndBack(vo.getSealUp(), "上封边");
|
||||||
isEmptyAndPositiveNumberSize(vo.getSealUp(), Double.class, 5, 3, "上封边");
|
isEmptyAndNumberSize(vo.getSealUp(), Double.class, 2, 2, "上封边");
|
||||||
isNotEmptyAndBack(vo.getSealDown(), "下封边");
|
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.getTypographicFace(), DictTypeConstants.TYPOGRAPHY_TYPE, "排版面");
|
||||||
isNotEmptyAndDict(vo.getTexture(), DictTypeConstants.GRAIN_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 (StringUtils.isNotEmpty(value)) {
|
||||||
if (Boolean.TRUE.equals(ToolUtil.convertToType(value, targetType))) {
|
if (Boolean.TRUE.equals(ToolUtil.convertToType(value, targetType))) {
|
||||||
if (Boolean.TRUE.equals(ToolUtil.checkNumber(value))) {
|
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) {
|
private void isNotEmptyAndBack(String value, String errValue) {
|
||||||
if (StringUtils.isEmpty(value)) {
|
if (StringUtils.isEmpty(value)) {
|
||||||
@@ -701,14 +732,39 @@ public final class DefaultOrderImportExcelListener extends AnalysisEventListener
|
|||||||
if (Boolean.FALSE.equals(ToolUtil.convertToType(value, targetType))) {
|
if (Boolean.FALSE.equals(ToolUtil.convertToType(value, targetType))) {
|
||||||
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + NUMBER_TYPE_ERR);
|
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + NUMBER_TYPE_ERR);
|
||||||
} else {
|
} else {
|
||||||
if (Boolean.FALSE.equals(checkNumber(value))) {
|
if (Boolean.FALSE.equals(checkPositiveNumber(value))) {
|
||||||
throw ServiceExceptionUtil.exception(ORDER_IMPORT_DETAIL_VALID_ERROR, errValue + "数量不能为0");
|
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) {
|
public static Boolean checkNumber(String numberStr) {
|
||||||
try {
|
try {
|
||||||
double number = Double.parseDouble(numberStr);
|
double number = Double.parseDouble(numberStr);
|
||||||
|
|||||||
+7
-8
@@ -289,15 +289,10 @@ public class DefaultExcelOrderImportFactory {
|
|||||||
orderImportTempDataMapper.update(new LambdaUpdateWrapperX<OrderImportTempDataDO>()
|
orderImportTempDataMapper.update(new LambdaUpdateWrapperX<OrderImportTempDataDO>()
|
||||||
.eq(OrderImportTempDataDO::getTaskId, taskId)
|
.eq(OrderImportTempDataDO::getTaskId, taskId)
|
||||||
.eq(OrderImportTempDataDO::getType, PLATE_TYPE)
|
.eq(OrderImportTempDataDO::getType, PLATE_TYPE)
|
||||||
.eqIfPresent(OrderImportTempDataDO::getGoodsName, orderImportTempDataGoodsGroupDO.getGoodsName())
|
|
||||||
.eqIfPresent(OrderImportTempDataDO::getMaterial, orderImportTempDataGoodsGroupDO.getMaterial())
|
|
||||||
.eqIfPresent(OrderImportTempDataDO::getWave, orderImportTempDataGoodsGroupDO.getWave())
|
.eqIfPresent(OrderImportTempDataDO::getWave, orderImportTempDataGoodsGroupDO.getWave())
|
||||||
.eqIfPresent(OrderImportTempDataDO::getColor, orderImportTempDataGoodsGroupDO.getColor())
|
|
||||||
.eqIfPresent(OrderImportTempDataDO::getSpec, orderImportTempDataGoodsGroupDO.getSpec())
|
.eqIfPresent(OrderImportTempDataDO::getSpec, orderImportTempDataGoodsGroupDO.getSpec())
|
||||||
.eqIfPresent(OrderImportTempDataDO::getWidth, orderImportTempDataGoodsGroupDO.getWidth())
|
.eqIfPresent(OrderImportTempDataDO::getWidth, orderImportTempDataGoodsGroupDO.getWidth())
|
||||||
.eqIfPresent(OrderImportTempDataDO::getHeight, orderImportTempDataGoodsGroupDO.getHeight())
|
.eqIfPresent(OrderImportTempDataDO::getHeight, orderImportTempDataGoodsGroupDO.getHeight())
|
||||||
.eqIfPresent(OrderImportTempDataDO::getThickness, orderImportTempDataGoodsGroupDO.getThickness())
|
|
||||||
.eqIfPresent(OrderImportTempDataDO::getBrand, orderImportTempDataGoodsGroupDO.getBrand())
|
|
||||||
.set(OrderImportTempDataDO::getInnerGoodsId, innerGoodsId));
|
.set(OrderImportTempDataDO::getInnerGoodsId, innerGoodsId));
|
||||||
} else {
|
} else {
|
||||||
orderImportTempDataMapper.update(new LambdaUpdateWrapper<OrderImportTempDataDO>()
|
orderImportTempDataMapper.update(new LambdaUpdateWrapper<OrderImportTempDataDO>()
|
||||||
@@ -1059,9 +1054,13 @@ public class DefaultExcelOrderImportFactory {
|
|||||||
plateGoodDO = getPlateGood(goodsDO.getGoodsId());
|
plateGoodDO = getPlateGood(goodsDO.getGoodsId());
|
||||||
} else {
|
} else {
|
||||||
// 没有goodsId,大板属性匹配大板
|
// 没有goodsId,大板属性匹配大板
|
||||||
existPlateGoodDOS = plateGoodMapper.selectGood(goodsDO.getGoodsName(), goodsDO.getMaterial(), goodsDO.getColor(),
|
existPlateGoodDOS = plateGoodMapper.selectList(new LambdaQueryWrapper<PlateGoodDO>()
|
||||||
goodsDO.getTexture(), goodsDO.getWidth(), goodsDO.getThickness(), goodsDO.getHeight(), goodsDO.getBrand(),
|
.eq(PlateGoodDO::getTexture, goodsDO.getTexture())
|
||||||
goodsDO.getSpec(), organId);
|
.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)) {
|
if (CollUtil.isNotEmpty(existPlateGoodDOS)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user