fix(excel): 导入模板日期改为文本显示,修复显示为 Excel 序列号
## 问题
22 个导入模板的日期列显示为 Excel 序列号,使用者看不懂该填什么格式:
员工入职日期 43891.0
员工合同签订日 46023.0
考勤打卡时间 46037.354166666664
## 排查过程
1. 先尝试注册自定义 LocalDate/LocalDateTime 转换器 —— 无效。
原因:FastExcel 内置同名转换器(cn.idev.excel.converters.localdate.LocalDateStringConverter),
写出时优先命中内置的 Number 转换器,自定义转换器不生效。
2. 最终改用 CellWriteHandler:单元格写完后介入,
读取 context.getOriginalValue(),把 LocalDate/LocalDateTime 格式化成文本写入。
## 实现
新增 DateAsTextCellWriteHandler:
- afterCellDispose 里拦截,跳过表头行
- LocalDate -> yyyy-MM-dd
- LocalDateTime -> yyyy-MM-dd HH:mm:ss
- java.util.Date -> yyyy-MM-dd
- cell.setCellType(STRING) + setCellValue(text)
ExcelUtils 新增 writeTemplate 方法(专用模板写出):
- 注册 DateAsTextCellWriteHandler
- 22 个 Controller 的 importTemplate 全部改用 writeTemplate
- 导入解析仍走 ExcelUtils.read,不受影响
## 顺带修复模板示例数据
- 用户:部门编号改为部门名称(取真实部门)
- 部门:上级部门改为真实根部门(原「总公司」不存在)
- 员工:部门/岗位取真实数据(原「研发部」不存在)
- 客户:示例改为「示例客户A/B(请替换)」(原「超级管理员」「源码」是芋道 demo)
- MDM物料:分类编码/单位编码补真实值(原为空,必填项)
## 验证(本地实测)
22 个模板逐一检查,日期序列号 0 个:
员工入职日期 2020-03-01 出生 1990-01-15
员工合同 2026-01-01 ~ 2028-12-31
考勤日期 2026-01-15 08:30:00