From 388e36ed4dc5024195fbc2a60fa1be64be89d65f Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期四, 23 七月 2020 21:45:22 +0800 Subject: [PATCH] 优化参数 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 98 +++++++++++++++++++++++++++--------------------- 1 files changed, 55 insertions(+), 43 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 9e9932f..13af486 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -201,8 +201,9 @@ // 设置类的私有字段属性可访问. field.setAccessible(true); Integer column = cellMap.get(attr.name()); - if(column !=null ) { // 字段在excel 中没有,那么就不需要设置值 - fieldsMap.put(column, field); + if (column != null) + { + fieldsMap.put(column, field); } } } @@ -274,11 +275,11 @@ } else if (StringUtils.isNotEmpty(attr.readConverterExp())) { - val = reverseByExp(Convert.toStr(val), attr.readConverterExp()); + val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()); } else if (StringUtils.isNotEmpty(attr.dictType())) { - val = reverseDictByExp(attr.dictType(), Convert.toStr(val)); + val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator()); } ReflectUtils.invokeSetter(entity, propertyName, val); } @@ -537,6 +538,7 @@ Object value = getTargetValue(vo, field, attr); String dateFormat = attr.dateFormat(); String readConverterExp = attr.readConverterExp(); + String separator = attr.separator(); String dictType = attr.dictType(); if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { @@ -544,11 +546,11 @@ } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) { - cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp)); + cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator)); } else if (StringUtils.isNotEmpty(dictType)) { - cell.setCellValue(convertDictByExp(dictType, Convert.toStr(value))); + cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator)); } else { @@ -626,28 +628,36 @@ * * @param propertyValue 参数值 * @param converterExp 翻译注解 + * @param separator 分隔符 * @return 解析后值 - * @throws Exception */ - public static String convertByExp(String propertyValue, String converterExp) throws Exception + public static String convertByExp(String propertyValue, String converterExp, String separator) { - try + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(","); + for (String item : convertSource) { - String[] convertSource = converterExp.split(","); - for (String item : convertSource) + String[] itemArray = item.split("="); + if (StringUtils.containsAny(separator, propertyValue)) { - String[] itemArray = item.split("="); + for (String value : propertyValue.split(separator)) + { + if (itemArray[0].equals(value)) + { + propertyString.append(itemArray[1] + separator); + break; + } + } + } + else + { if (itemArray[0].equals(propertyValue)) { return itemArray[1]; } } } - catch (Exception e) - { - throw e; - } - return propertyValue; + return StringUtils.stripEnd(propertyString.toString(), separator); } /** @@ -655,52 +665,62 @@ * * @param propertyValue 参数值 * @param converterExp 翻译注解 + * @param separator 分隔符 * @return 解析后值 - * @throws Exception */ - public static String reverseByExp(String propertyValue, String converterExp) throws Exception + public static String reverseByExp(String propertyValue, String converterExp, String separator) { - try + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(","); + for (String item : convertSource) { - String[] convertSource = converterExp.split(","); - for (String item : convertSource) + String[] itemArray = item.split("="); + if (StringUtils.containsAny(separator, propertyValue)) { - String[] itemArray = item.split("="); + for (String value : propertyValue.split(separator)) + { + if (itemArray[1].equals(value)) + { + propertyString.append(itemArray[0] + separator); + break; + } + } + } + else + { if (itemArray[1].equals(propertyValue)) { return itemArray[0]; } } } - catch (Exception e) - { - throw e; - } - return propertyValue; + return StringUtils.stripEnd(propertyString.toString(), separator); } /** * 解析字典值 * - * @param dictType 字典类型 * @param dictValue 字典值 + * @param dictType 字典类型 + * @param separator 分隔符 * @return 字典标签 */ - public static String convertDictByExp(String dictType, String dictValue) throws Exception + public static String convertDictByExp(String dictValue, String dictType, String separator) { - return DictUtils.getDictLabel(dictType, dictValue); + return DictUtils.getDictLabel(dictType, dictValue, separator); } /** * 反向解析值字典值 * + * @param dictLabel 字典标签 * @param dictType 字典类型 - * @param dictValue 字典标签 + * @param separator 分隔符 * @return 字典值 */ - public static String reverseDictByExp(String dictType, String dictLabel) throws Exception + public static String reverseDictByExp(String dictLabel, String dictType, String separator) { - return DictUtils.getDictValue(dictType, dictLabel); + return DictUtils.getDictValue(dictType, dictLabel, separator); } /** @@ -878,15 +898,7 @@ } else { - /* if ((Double) val % 1 > 0) - { - val = new DecimalFormat("0.00").format(val); - } - else - { - val = new DecimalFormat("0").format(val); - }*/ - val = new BigDecimal(val.toString()); // 导入的数据保证原汁原味,不做处理 + val = new BigDecimal(val.toString()); // 浮点格式处理 } } else if (cell.getCellTypeEnum() == CellType.STRING) -- Gitblit v1.9.2