Browse Source
全局日期工具类增加 LocalDateTime ==> Date 全局日期工具类增加增加 LocalDate ==> Date 新增 Excel数据格式处理适配器,用于格式化: value 单元格数据值、excel注解args参数组、 cell 单元格对象、 wb 工作簿对象 修改全局文件上传工具类:修改文件上传方法、编码文件名方法、文件大小校验方法、获取文件后缀方法 新增序列生成类seq: 新增 获取通用序列号方法、默认16位序列号 yyMMddHHmmss + 一位机器标识 + 3长度循环递增字符串方法、通用接口序列号 yyMMddHHmmss + 一位机器标识 + length长度循环递增字符串方法、序列循环递增字符串[1, 10 的 (length)幂次方), 用0左补齐length位数方法 修改通用处理字符串类型的工具类:新增 处理数字左边补齐0,使之达到指定长度。注意,如果数字转换为字符串后,长度大于size,则只保留 最后size个字符的方法。新增:处理字符串左补齐。如果原始字符串s长度大于size,则只保留最后size个字符的方法。 通用excelUtil工具类: 新增 用于dictType属性数据存储,避免重复查缓存方法 新增 当前行号 新增 标题 新增 合并后最后行数方法 新增 合并后开始行数方法 新增 对象的子列表方法方法 新增 对象的子列表属性方法 新增 需要排除列属性方法 新增 隐藏Excel中列属性方法 新增 创建excel第一行标题方法 新增 创建对象的子列表名称方法 新增 对excel表单默认第一个索引名转换成list方法(两个参数) 修改 对excel表单默认第一个索引名转换成list方法(一个参数) 修改 对excel表单指定表格索引名转换成list(三个参数) 新增 对list数据源将其里面的数据导入到excel表单(三个参数) 新增 对list数据源将其里面的数据导入到excel表单(两个参数) 新增 对list数据源将其里面的数据导入到excel表单(设置请求头参数) 新增 对list数据源将其里面的数据导入到excel表单(设置操作类型) 新增 对list数据源将其里面的数据导入到excel表单 (设置表格头) 新增 对list数据源将其里面的数据导入到excel表单(设置导入异常处理) 修改 旧版对list数据源将其里面的数据导入到excel表单方法,加入对子表的处理 修改 旧版创建写入数据到Sheet方法,加入对子表的处理 修改 旧版 填充excel数据,加入对子表的处理 修改 旧版创建表格样式,加入对子表的处理 新增 根据Excel注解创建表格头样式方法 修改 旧版根据Excel注解创建表格列样式 修改 旧版创建单元格方法,加入对子表的处理 修改 旧版设置单元格信息,加入对子表的处理 修改 旧版创建表格样式:加入:如果下拉数大于15或字符串长度大于255,则使用一个新sheet存储,避免生成的模板下拉值获取不到;提示信息或只能选择不能输入的列内容 修改 旧版添加单元格,加入对子表的处理 修改 设置 POI XSSFSheet 单元格提示或选择框方法:新增如果设置了提示信息则鼠标放上去提示;处理Excel兼容性问题 修改 设置某些列的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框)方法:新增 判断创建名称,可被其他单元格引用;新增 加载下拉列表内容;新增如果设置了提示信息则鼠标放上去提示;新增 设置hiddenSheet隐藏 新增 数据处理器方法,处理格式化数据 修改 旧版创建统计行方法:新增统计行的单元格位置判断 新增 得到所有定义字段方法 新增 获取字段注解信息方法:分单注解和多注解 修改 根据注解获取最大行高方法:采用新的统计方法 修改 创建一个工作簿方法,采用新的创建单元格和表头方法 新增 修改创建工作表方法,采用新的创建单元格和表头方法 新增 获取Excel2003图片方法 新增 获取Excel2007图片方法 新增 格式化不同类型的日期对象方法 新增 是否有对象的子列表方法 新增 是否有对象的子列表,集合不为空方法 新增 获取集合的值方法 新增 获取对象的子列表方法 Excel接口类: 新增 导出时在excel中每个列的高度抽象方法 新增 导出时在excel中每个列的宽度抽象方法 新增 是否需要纵向合并单元格,应对需求:含有list集合单元格)抽象方法 新增 导出类型(0数字 1字符串 2图片)抽象方法 新增 导出列头背景颜色抽象方法 新增 导出列头字体颜色抽象方法 新增 导出单元格背景颜色抽象方法 新增 导出单元格字体颜色抽象方法 新增 导出字段对齐方式抽象方法 新增 自定义数据处理器抽象方法 新增 自定义数据处理器参数抽象方法 若依全局配置类:新增 获取导入上传路径方法dev
liuxiaoxu
2 months ago
9 changed files with 1245 additions and 294 deletions
@ -0,0 +1,24 @@ |
|||
package com.ruoyi.common.utils.poi; |
|||
|
|||
import org.apache.poi.ss.usermodel.Cell; |
|||
import org.apache.poi.ss.usermodel.Workbook; |
|||
|
|||
/** |
|||
* Excel数据格式处理适配器 |
|||
* |
|||
* @author ruoyi |
|||
*/ |
|||
public interface ExcelHandlerAdapter |
|||
{ |
|||
/** |
|||
* 格式化 |
|||
* |
|||
* @param value 单元格数据值 |
|||
* @param args excel注解args参数组 |
|||
* @param cell 单元格对象 |
|||
* @param wb 工作簿对象 |
|||
* |
|||
* @return 处理后的值 |
|||
*/ |
|||
Object format(Object value, String[] args, Cell cell, Workbook wb); |
|||
} |
File diff suppressed because it is too large
@ -0,0 +1,87 @@ |
|||
package com.ruoyi.common.utils.uuid; |
|||
|
|||
import com.ruoyi.common.utils.DateUtils; |
|||
import com.ruoyi.common.utils.StringUtils; |
|||
|
|||
import java.util.concurrent.atomic.AtomicInteger; |
|||
|
|||
/** |
|||
* @author ruoyi 序列生成类 |
|||
*/ |
|||
public class Seq |
|||
{ |
|||
// 通用序列类型
|
|||
public static final String commSeqType = "COMMON"; |
|||
|
|||
// 上传序列类型
|
|||
public static final String uploadSeqType = "UPLOAD"; |
|||
|
|||
// 通用接口序列数
|
|||
private static AtomicInteger commSeq = new AtomicInteger(1); |
|||
|
|||
// 上传接口序列数
|
|||
private static AtomicInteger uploadSeq = new AtomicInteger(1); |
|||
|
|||
// 机器标识
|
|||
private static final String machineCode = "A"; |
|||
|
|||
/** |
|||
* 获取通用序列号 |
|||
* |
|||
* @return 序列值 |
|||
*/ |
|||
public static String getId() |
|||
{ |
|||
return getId(commSeqType); |
|||
} |
|||
|
|||
/** |
|||
* 默认16位序列号 yyMMddHHmmss + 一位机器标识 + 3长度循环递增字符串 |
|||
* |
|||
* @return 序列值 |
|||
*/ |
|||
public static String getId(String type) |
|||
{ |
|||
AtomicInteger atomicInt = commSeq; |
|||
if (uploadSeqType.equals(type)) |
|||
{ |
|||
atomicInt = uploadSeq; |
|||
} |
|||
return getId(atomicInt, 3); |
|||
} |
|||
|
|||
/** |
|||
* 通用接口序列号 yyMMddHHmmss + 一位机器标识 + length长度循环递增字符串 |
|||
* |
|||
* @param atomicInt 序列数 |
|||
* @param length 数值长度 |
|||
* @return 序列值 |
|||
*/ |
|||
public static String getId(AtomicInteger atomicInt, int length) |
|||
{ |
|||
String result = DateUtils.dateTimeNow(); |
|||
result += machineCode; |
|||
result += getSeq(atomicInt, length); |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* 序列循环递增字符串[1, 10 的 (length)幂次方), 用0左补齐length位数 |
|||
* |
|||
* @return 序列值 |
|||
*/ |
|||
private synchronized static String getSeq(AtomicInteger atomicInt, int length) |
|||
{ |
|||
// 先取值再+1
|
|||
int value = atomicInt.getAndIncrement(); |
|||
|
|||
// 如果更新后值>=10 的 (length)幂次方则重置为1
|
|||
int maxSeq = (int) Math.pow(10, length); |
|||
if (atomicInt.get() >= maxSeq) |
|||
{ |
|||
atomicInt.set(1); |
|||
} |
|||
// 转字符串,用0左补齐
|
|||
return StringUtils.padl(value, length); |
|||
} |
|||
} |
Loading…
Reference in new issue