weicw1996
|
6b97685165
|
🐛 修复网关经 blade-common 传递依赖启动失败
fd6563f 为 LenientDateParser 引入的 blade-starter-log(compile scope)
把 blade-core-tool 等整棵依赖树传递给所有依赖 common 的模块。网关
(WebFlux) 的 pom 排除了 spring-boot-starter-web(无 spring-webmvc),
而 blade-core-tool 的自动配置 BladeConverterConfiguration implements
WebMvcConfigurer 且无 @ConditionalOnClass 守卫,Spring 解析该配置类时
抛 FileNotFoundException 导致网关启动即崩。
修复:starter-log 改为 provided —— 编译期 ServiceException 可见,
不再向下游传递。业务服务运行时的 ServiceException 由 blade-core-boot
传递提供,行为不变。
验证:网关以原 classpath 启动成功(Started GateWayApplication in
16.4s);blade-common 与全仓 BUILD SUCCESS。
|
2026-09-21 10:44:30 +08:00 |
|
weicw1996
|
fd6563f53b
|
✨ 批量导入日期宽容解析:兼容 2026-08-02 与 2026-8-2 等书写变体
- blade-common 新增 LenientDateParser(宽容解析:- / . 分隔符、补零与否、
时间可省略秒/分;拒绝两位年份、日在前、无分隔符)
- 新增 LenientDateStringConverter / LenientDateTimeStringConverter:
Excel 数值日期转文本透传,文本解析留待服务层以进入失败明细流程
- 8 个裸走 fastexcel 内置转换的导入 DTO(保险/年检/事故/其他费用/运单/
币种/用户生日/设备台账)日期字段改为 String 承载,服务层统一经
LenientDateParser 解析,失败报「<列名> 日期格式无法识别:<原值>」
- MaintenancePlanDateTimeConverter / TireReplacementDateStringConverter
内部委托公共解析器,6 个 DTO 注解零改动
- 运输计划、运单批量、运输对账、换胎 4 处手动解析点收敛至同一工具类
- UserMapper 导出 SQL 的生日改 DATE_FORMAT 输出,保持导出格式不变
口径见根工作区 docs/import-spec.md(weicw/tms-erp#1)。
回归:port-terminal 45 断言、violation-record 40 断言(含新增不补零
用例 09)、waybill-import 48 断言、insurance-record 新增用例 6 断言,
全部通过。
|
2026-09-21 09:47:50 +08:00 |
|
weicw1996
|
ddfa52a2ac
|
⚡ 收窄运输方式枚举为公路/铁路/水路/航空四种
运输计划导入校验白名单去掉「公路整车、公路配载/零担、跨境海运」
运单批量导入字典兜底值去掉多余枚举,仅保留四种运输方式
|
2026-09-21 06:24:31 +08:00 |
|
weicw1996
|
37d0ebc21e
|
⚡ 导入失败明细去掉空单元格底纹
标红统一只改红色字体,不再对空单元格加浅红底纹(IndexedColors.ROSE)。
底纹原本是为「必填项为空时红字在屏幕上看不见」而加,但它超出
AGENTS.md §6.11「仅出错字段/列使用红色文字」的口径,视觉上也偏重。
- markRed(Cell, boolean) 简化为 markRed(Cell),删除 redFillStyleCache 与 isBlankValue
- 空单元格的红色字体样式照旧写入 styles.xml,api-violation-xlsx-cols.js
按字体色判定,回归用例 03/04 不受影响
- 影响所有使用 ImportFailureExcelUtil 的导入模块(20+ 个)
|
2026-09-21 05:52:31 +08:00 |
|
weicw1996
|
993f802111
|
⚡ 精简运单导入车牌号校验的失败原因
一次车牌号错误原来最多会叠出「长度不能少于7位」「首位必须是省份简称、
第二位必须是英文字母」「格式不正确」三条原因,导出的失败明细里这一格很长。
现将公路运输下的必填、长度与格式统一为一条「车牌号校验不通过」。
- 校验强度不变:长度 7/8 位本就由 VEHICLE_NO_PATTERN 蕴含,省份简称白名单照旧
- 保留「车牌号」字样,失败明细仍能按列名拆词匹配并标红车牌号列;车牌为空时
走空单元格红底纹分支,比原来只有文字更容易定位
- 未改动「同一配载标识号下,车牌号不一致」,该原因由 tests/fixtures/waybill-import
用例 04 断言
|
2026-09-21 05:45:49 +08:00 |
|
weicw1996
|
4c96583701
|
🐛 修复码头导入父港口取列不一致导致的静默丢数据
importTerminals 中 setParentCode 取「港口编码」列,而抑制连带报错时
却用「上级港口编码」判断父行是否已声明。用户若把完整编码填入
「码头编码」并让「港口编码」留空,父港口解析失败的异常会被误判为
「父行已声明」而吞掉,码头被静默丢弃且接口返回成功。
- splitByCategory 增加码头行「港口编码」非空校验,明确报错
- 抑制逻辑改为与 setParentCode 取同一列
|
2026-09-21 05:34:59 +08:00 |
|
weicw1996
|
8485efe00d
|
🐛 修复导入失败明细无法按列标红的问题
4e1a162 移除了按列名匹配逻辑后只剩失败原因列标红。
现恢复并修正误标红:命中片段被更长片段覆盖时只保留更长的列
(避免原因含「车船类型」时把子串「类型」列一起标红)。
|
2026-09-21 05:21:27 +08:00 |
|
weicw1996
|
b02aff8ff6
|
✨ 运单导入支持多货物合并与配载路线串联
- 同一运单标识号的多行货物合并为一条运单,各行转为货物明细写入 goodsJson,数量与其他费用合计按行累加
- 新增组内一致性校验:发货地址、到货地址、数量单位、配载标识号不一致时报错,避免无法合并的数据静默落库
- 配载单路线按导入顺序串联,上一票到货地与下一票发货地重合时去重写入途经地,到货地取末票
|
2026-09-21 04:19:55 +08:00 |
|
weicw1996
|
37309b24f9
|
🐛 维修记录导出移除多余的“导出失败原因”列
- MaintenanceRecordExportExcel 仅为把父类 @ExcelIgnore 的 errorMessage 重新暴露成
第 18 列“导出失败原因”而存在,正式导出该列恒为空白,属遗留冗余
- 删除该字段与对应 import,导出回归 17 列,与导入模板字段顺序一致
- 导入失败明细导出不依赖本类:ImportFailureExcelUtil 自行按字段构建列并过滤
errorMessage,再反射读取失败原因追加“导入失败原因”列,逻辑不受影响
|
2026-09-20 20:34:56 +08:00 |
|
weicw1996
|
56c7bc020a
|
🐛 修复维修记录批量导出文件空白的问题
- MaintenanceRecordExcel 的 createTime/updateTime 字段类型为 java.util.Date,
但仍绑定了 MaintenancePlanDateTimeConverter(Converter<LocalDateTime>),
导出写单元格时 Date 强转 LocalDateTime 抛 ClassCastException,
写流中断导致下载到损坏的 xlsx,打开后一片空白
- 移除这两个 Date 审计字段上的 converter,仅保留 @DateTimeFormat("yyyy-MM-dd HH:mm:ss"),
与 AccidentRecordExportExcel 等同模块导出模型写法保持一致
- 维修时间、出厂时间仍为 LocalDateTime,转换器保留不变,导入解析不受影响
|
2026-09-20 20:31:02 +08:00 |
|
weicw1996
|
af1430eaee
|
🐛 修复未配置 MinIO 时 transport 服务无法启动的问题
凭证图片 MinIO 客户端此前为无条件装配,缺少 file.storage.minio.endpoint
配置时会在启动阶段直接抛 IllegalArgumentException,导致整个
blade-transport 服务起不来,并在关闭失败上下文时连带抛出
nacosGracefulShutdownDelegate 的 BeanCreationNotAllowedException,
掩盖了真正的失败原因。
- VoucherMinioConfig 增加 @ConditionalOnProperty,未配置 endpoint 时不注册客户端
- ProcessConfigController、VoucherManageServiceImpl 改用 ObjectProvider
可选注入,避免构造器注入因 bean 缺失而启动失败
- 新增 minioClient() 访问器,在真正调用时给出"未配置"的明确提示,
与已有 validateMinioConfig() 的提示风格保持一致
未配置 MinIO 时服务可正常启动,凭证相关接口仅在使用时提示配置缺失;
已配置 MinIO 时行为不变。
|
2026-09-20 19:31:58 +08:00 |
|
weicw1996
|
304061774e
|
🔀 合并 dev 分支到 master
解决 9 个文件的冲突,取舍如下:
- 导出模型:采用 dev 的 *ExportExcel 命名与拆分,并保留 master 的
@DateTimeFormat(dev 改名时漏加,会导致时间列显示为 Date.toString)。
- PortTerminal 导入:保留 master 的两阶段导入 + ImportFailureException
全量回滚(ImportFailureException 仅 master 有,合并后的 controller 依赖它),
导出失败明细改用 dev 的 exportFailureReasonOnly(仅标红失败原因列)。
- PortTerminal 导入模板:采用 dev 的"港口编码/码头编码"两列结构,
相应补上 resolveImportCode 归并规则,并在构建实体时显式赋 code/parentCode。
- PortTerminal 导出:采用 dev 的 PortTerminalExportExcel(接口已如此声明),
并保留 updateUserName 审计人翻译。
- 违章记录导入:保留 dev 的多错误收集 + 导入失败明细导出流水线,
删除已被拆列取代的 violationTypeOrItem 映射,补上 clearIrrelevantField,
并为导入校验补齐"对侧字段应留空"规则以与表单校验一致。
验证:mvn compile -DskipTests 全模块 BUILD SUCCESS。
|
2026-09-20 18:04:43 +08:00 |
|
weicw1996
|
98697af6df
|
🐛 修复违章记录导入的类型与事项字段混淆问题
- 导入模型将合并的"类型/事项"列拆分为"*类型"与"*事项"两列,与导出模型保持一致
- 校验与清空逻辑改为按车船类型严格匹配:车辆只允许填类型,船舶只允许填事项,误填对侧字段直接报错而非静默丢弃
- 将清空对侧字段的时机从 prepare 移到 validate 之后,避免用户误填内容被静默丢弃
- 提取 CAR/SHIP 常量,替换散落的"车辆"/"船舶"字面量
|
2026-09-20 17:51:29 +08:00 |
|
b2894lxlx
|
6987a0e790
|
调试mk
|
2026-09-20 17:11:08 +08:00 |
|
b2894lxlx
|
0bfc9cbc86
|
调试mk
|
2026-09-20 16:36:31 +08:00 |
|
weicw1996
|
9668f6059a
|
🐛 修复导出文件创建时间与更新时间列为空的问题
- 导出模型的 createTime/updateTime 由 LocalDateTime 改为 java.util.Date,与 BaseEntity 审计字段类型保持一致,避免 BeanUtil.copyProperties 因类型不兼容而静默跳过
- 覆盖车/船务管理 12 个页面导出模型及基础数据等 11 个导出模型,并为新增 Date 字段补齐 @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
- 运单导入显式清空审计时间,避免把导入文件中的创建/更新时间带入实体
|
2026-09-20 16:32:31 +08:00 |
|
b2894lxlx
|
d5e7787e89
|
调试mk
|
2026-09-20 16:05:25 +08:00 |
|
b2894lxlx
|
aa2084090a
|
调试mk
|
2026-09-20 14:14:39 +08:00 |
|
b2894lxlx
|
a138f3b916
|
调试mk
|
2026-09-20 13:16:44 +08:00 |
|
weicw1996
|
cc33bc5ef2
|
🐛 修复港口码头批量导入的一二级顺序与全量回滚问题
对应 BUG.xlsx 序号 1 与序号 2。
序号 1(同表混装一二级数据):
- 改为两阶段导入,先落库港口(一级)再落库码头(二级),
消除对 Excel 行序的依赖;码头优先引用本批次新增的港口
序号 2(全失败即整批回滚):
- 逐行收集错误,只要有一行失败就抛异常触发整批回滚,不再部分成功
- 失败明细按【原表全部行】返回,未出错的行不标注,用户只需改错行
附带修复:
- 父港口找不到时改抛专用 ParentPortNotFoundException:
上级港口声明在本文件里、但那一行自身校验失败时,不再连带给码头行报错,
避免用户看到"两行都错"的假象;父港口确实漏填时仍照常报错
- 批内重复编码在落库前预检并定位到行,两行都标注原因
- 父港口区域信息为空(历史数据)时保留码头自身填写的值,
此前会被覆盖成空值导致码头无法导入
|
2026-09-20 06:27:33 +08:00 |
|
b2894lxlx
|
380fd117c5
|
调整定位
|
2026-09-18 22:12:43 +08:00 |
|
b2894lxlx
|
a2e23ea264
|
1、修改同步组织
2、新增北斗定位
|
2026-09-18 21:12:01 +08:00 |
|
b2894lxlx
|
3b26591f9d
|
新增同步公司、组织
|
2026-09-18 20:25:33 +08:00 |
|
b2894lxlx
|
8d13978e84
|
1、修复小程序手机号登录问题
2、调整OA
|
2026-09-18 19:48:16 +08:00 |
|
b2894lxlx
|
a2d9cfec02
|
1、修复小程序手机号登录问题
2、调整OA
|
2026-09-18 19:13:45 +08:00 |
|
b2894lxlx
|
01993779a7
|
1、新增小程序相关接口
2、调整OA
|
2026-09-18 16:31:37 +08:00 |
|
b2894lxlx
|
0fa0eae43c
|
调整 运力
|
2026-09-16 23:42:01 +08:00 |
|
b2894lxlx
|
8207afe04f
|
调整 IAM
|
2026-09-16 08:50:24 +08:00 |
|
b2894lxlx
|
cbc7e16453
|
调整 IAM
|
2026-09-16 08:08:09 +08:00 |
|
b2894lxlx
|
ad496fdf28
|
调整 IAM
|
2026-09-16 07:32:06 +08:00 |
|
b2894lxlx
|
b182b700b3
|
调整 IAM
|
2026-09-16 06:52:35 +08:00 |
|
b2894lxlx
|
8a79f4d428
|
调整 IAM
|
2026-09-16 06:36:36 +08:00 |
|
b2894lxlx
|
d1b4f286b2
|
调整 IAM
|
2026-09-16 06:29:26 +08:00 |
|
b2894lxlx
|
4d412e90ee
|
调整 IAM
|
2026-09-16 04:51:16 +08:00 |
|
b2894lxlx
|
af3b6982fd
|
调整 业务
|
2026-09-15 17:52:34 +08:00 |
|
b2894lxlx
|
0d1f14f703
|
调整 合同、运力、客商、项目
|
2026-09-15 11:59:42 +08:00 |
|
b2894lxlx
|
087d89b31a
|
调整 合同、运力、基础配置、客商
|
2026-09-14 23:43:00 +08:00 |
|
b2894lxlx
|
70e44da789
|
调整 合同
|
2026-09-14 15:00:40 +08:00 |
|
b2894lxlx
|
940f0b9b9f
|
调整 基础数据、运力、车船务
|
2026-09-14 01:49:02 +08:00 |
|
b2894lxlx
|
2262c39f60
|
调整项目
|
2026-09-13 01:01:09 +08:00 |
|
b2894lxlx
|
2da4d824fd
|
小程序对接
|
2026-09-11 15:30:22 +08:00 |
|
b2894lxlx
|
aa8b7ade99
|
小程序对接
|
2026-09-11 14:39:10 +08:00 |
|
b2894lxlx
|
93c7e6f8f5
|
1、调整导入运单
2、调整对账
|
2026-09-10 22:50:00 +08:00 |
|
b2894lxlx
|
e7d7e61846
|
1、调整导入运单
2、调整对账
|
2026-09-10 02:01:51 +08:00 |
|
b2894lxlx
|
049a46227d
|
1、调整导入运单
2、调整对账
|
2026-09-09 15:39:21 +08:00 |
|
b2894lxlx
|
63af35a333
|
1、调整导入运单
2、调整对账
|
2026-09-09 14:43:26 +08:00 |
|
b2894lxlx
|
0ce701ab90
|
1、调整凭证
2、调整对账
3、解决正式结算冲突bug
|
2026-09-09 10:20:52 +08:00 |
|
b2894lxlx
|
bdafb83583
|
1、调整凭证
2、调整运单
|
2026-09-08 22:41:40 +08:00 |
|
b2894lxlx
|
f370f56a92
|
1、调整凭证
2、调整运单
|
2026-09-08 17:50:20 +08:00 |
|
b2894lxlx
|
b4a9e30287
|
修复解压问题
|
2026-09-08 11:54:46 +08:00 |
|