Commit Graph

509 Commits

Author SHA1 Message Date
b2894lxlx 2dafd44c26 项目、合同、运单、预结算、正式结算、付款对接mk 2026-09-21 12:54:13 +08:00
b2894lxlx 0797785176 项目、合同、运单、预结算、正式结算、付款对接mk 2026-09-21 10:36:00 +08:00
weicw-dshsa 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
weicw-dshsa ddfa52a2ac ⚡ 收窄运输方式枚举为公路/铁路/水路/航空四种
运输计划导入校验白名单去掉「公路整车、公路配载/零担、跨境海运」

运单批量导入字典兜底值去掉多余枚举,仅保留四种运输方式
2026-09-21 06:24:31 +08:00
weicw-dshsa 993f802111 ⚡ 精简运单导入车牌号校验的失败原因
一次车牌号错误原来最多会叠出「长度不能少于7位」「首位必须是省份简称、
第二位必须是英文字母」「格式不正确」三条原因,导出的失败明细里这一格很长。
现将公路运输下的必填、长度与格式统一为一条「车牌号校验不通过」。

- 校验强度不变:长度 7/8 位本就由 VEHICLE_NO_PATTERN 蕴含,省份简称白名单照旧
- 保留「车牌号」字样,失败明细仍能按列名拆词匹配并标红车牌号列;车牌为空时
  走空单元格红底纹分支,比原来只有文字更容易定位
- 未改动「同一配载标识号下,车牌号不一致」,该原因由 tests/fixtures/waybill-import
  用例 04 断言
2026-09-21 05:45:49 +08:00
weicw-dshsa b02aff8ff6 ✨ 运单导入支持多货物合并与配载路线串联
- 同一运单标识号的多行货物合并为一条运单,各行转为货物明细写入 goodsJson,数量与其他费用合计按行累加

- 新增组内一致性校验:发货地址、到货地址、数量单位、配载标识号不一致时报错,避免无法合并的数据静默落库

- 配载单路线按导入顺序串联,上一票到货地与下一票发货地重合时去重写入途经地,到货地取末票
2026-09-21 04:19:55 +08:00
刘泉佳 933f9ffdb9 📝 toInvoicePoolVO 字段映射补充备注 2026-09-20 21:27:31 +08:00
刘泉佳 7ec3b2adbc ⚡ A801-1 全票池发票查询改为 pageNo/pageSize 透传分页
- IBfiService.queryInvoicePool 改为单页查询返回 BfiPageVO,BfiServiceImpl 移除 queryAllPages 全量翻页
- 正式结算单认领查询透传 current/size,多取 1 条探测 hasMore 并合成 total,前端 R<IPage> 契约不变
- 移除内存作废过滤(rim 无对应查询条件,透传分页下会产生页内空洞)
- 同步更新 BfiUtil 技术文档 A801-1 说明与使用方清单
2026-09-20 21:08:42 +08:00
weicw-dshsa 37309b24f9 🐛 维修记录导出移除多余的“导出失败原因”列
- MaintenanceRecordExportExcel 仅为把父类 @ExcelIgnore 的 errorMessage 重新暴露成
  第 18 列“导出失败原因”而存在,正式导出该列恒为空白,属遗留冗余
- 删除该字段与对应 import,导出回归 17 列,与导入模板字段顺序一致
- 导入失败明细导出不依赖本类:ImportFailureExcelUtil 自行按字段构建列并过滤
  errorMessage,再反射读取失败原因追加“导入失败原因”列,逻辑不受影响
2026-09-20 20:34:56 +08:00
weicw-dshsa 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
刘泉佳 f9433cbc78 🐛 A801-1 查询入参字段 data 更正为 queryParam 2026-09-20 19:51:43 +08:00
刘泉佳 c5d65f5678 ⚡ 优化金蝶客商定时同步消除N+1查询与逐条写入,快照纳入金蝶字段修复变更不落变更记录 2026-09-20 19:44:57 +08:00
刘泉佳 9a35d408dc ✨ 正式结算单新增全票池发票认领查询端点(多条件+内存精确分页) 2026-09-20 19:41:19 +08:00
weicw-dshsa 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
b2894lxlx 86adb47392 调试mk 2026-09-20 19:03:13 +08:00
b2894lxlx 780cd56ffe 调试mk 2026-09-20 18:34:40 +08:00
b2894lxlx 8cf9140f56 调试mk 2026-09-20 18:12:45 +08:00
weicw-dshsa 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
weicw-dshsa 98697af6df 🐛 修复违章记录导入的类型与事项字段混淆问题
- 导入模型将合并的"类型/事项"列拆分为"*类型"与"*事项"两列,与导出模型保持一致
- 校验与清空逻辑改为按车船类型严格匹配:车辆只允许填类型,船舶只允许填事项,误填对侧字段直接报错而非静默丢弃
- 将清空对侧字段的时机从 prepare 移到 validate 之后,避免用户误填内容被静默丢弃
- 提取 CAR/SHIP 常量,替换散落的"车辆"/"船舶"字面量
2026-09-20 17:51:29 +08:00
b2894lxlx 2f56ca07cb 调试mk 2026-09-20 17:35:59 +08:00
b2894lxlx 6987a0e790 调试mk 2026-09-20 17:11:08 +08:00
刘泉佳 a78aa770c7 ✅ 金蝶客商定时同步补充执行日志并新增手动触发测试类 2026-09-20 16:45:56 +08:00
weicw-dshsa 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
刘泉佳 719ec4e8f6 ✨ 客商档案同步金蝶完善:伙伴类型按客商性质字典解析、推送银行/联系人分录、BFI配置抽取BfiProperties 2026-09-20 16:05:54 +08:00
b2894lxlx d5e7787e89 调试mk 2026-09-20 16:05:25 +08:00
b2894lxlx a138f3b916 调试mk 2026-09-20 13:16:44 +08:00
刘泉佳 3950a3a0b0 Merge remote-tracking branch 'origin/feature/payment-apply-bfi-sync' into feature/payment-apply-bfi-sync 2026-09-19 14:13:56 +08:00
b2894lxlx 380fd117c5 调整定位 2026-09-18 22:12:43 +08:00
刘泉佳 ba93a9b0ca ⚡ 付款申请同步金蝶推送成功即时回填付款申请单编号,无需等待定时回写 2026-09-18 21:35:35 +08:00
刘泉佳 0531177ed7 ✨ 新增金蝶客商数据定时同步任务(自动推送+使用状态停用联动) 2026-09-18 21:34:37 +08:00
b2894lxlx a2e23ea264 1、修改同步组织
2、新增北斗定位
2026-09-18 21:12:01 +08:00
刘泉佳 0e1334be23 ⚡ 金蝶应付单分录不再按多货物类型拆行:整行一条分录,物料编码取第一种货物类型 2026-09-18 21:07:12 +08:00
刘泉佳 e79c4ce888 ⚡ 金蝶同步流程拆分:正式结算单同步推送财务应付单A102-2,付款申请同步仅推送付款申请单A103-1/A103-3 2026-09-18 20:42:44 +08:00
刘泉佳 be44ed7a8c ✨ 新增客商档案同步金蝶功能(A902-1查询回填+A902-2审批推送) 2026-09-18 20:01:29 +08:00
刘泉佳 63b2e89cb6 ⚡ 金蝶应付单分录新增明细单价推送,取数去掉结算明细行兜底改为缺失即报错 2026-09-18 19:37:27 +08:00
刘泉佳 17b8da0a65 ⚡ 调整金蝶应付单分录取数:改由应付货物费用明细逐行不聚合推送,分录标识送费用明细id 2026-09-18 19:13:07 +08:00
刘泉佳 8ea0c70761 fix: 付款同步增加金蝶单据号为空条件过滤 2026-09-18 17:03:07 +08:00
刘泉佳 35c1259d86 ⚡ 调整金蝶付款同步:付款计划暂不传经A102-4反查勾稽,付款完成模拟收敛为一键方法 2026-09-18 16:41:54 +08:00
b2894lxlx 01993779a7 1、新增小程序相关接口
2、调整OA
2026-09-18 16:31:37 +08:00
刘泉佳 83cd70df00 🐛 修复付款管理同步金蝶后正式结算单未回写金蝶单据号与同步状态 2026-09-18 16:31:20 +08:00
刘泉佳 10dbd487e1 ⚡ 调整金蝶付款同步:分录标识改用结算明细单据号,付款计划送审核通过的付款信息 2026-09-18 16:17:43 +08:00
刘泉佳 aa22ad98d8 🐛 修复付款申请同步金蝶断链后重推被拦截问题,推送与回写全链路支持幂等恢复
- A102-2 应付单已生成时幂等跳过保存并续推 A103-1,A103-2 勾稽已下推成功则直接回填
- 预付款 A103-3 恢复推送前增加 A103-2 预检,避免重复推送
- 定时回写任务将生成失败单据纳入 A103-2 轮询,自动纠偏远端已生成单据
- 抽取公共方法:A103-2 取最近修改、分录标识生成、批量分批、统一日期格式(yyyy-MM-dd HH:mm:ss)
- 新增全链路逻辑梳理文档(推送链路与回写链路连贯性)
2026-09-18 14:15:07 +08:00
刘泉佳 e485e920a6 fix: 付款同步金蝶增加财务应付单防重预检与单据编号回填
- A102-2 推送前经 A102-4 按防重键(awrp_src_sys + awrp_src_code)幂等预检,已生成时终止推送并提示用户
- 财务应付单单据编号推送成功后即时回填 kingdeeBillNo
- 批量同步整批一次 A102-4 预检并缓存结果(KingdeeSyncContext 新增应付单/结算明细缓存),消除逐单远程查询与明细重复查询
- doSyncKingdee 补充开始/跳过/推送/完成关键节点日志
2026-09-18 11:55:14 +08:00
刘泉佳 20fddf2c60 fix: - 修复BFI单据保存结果反序列化失败导致错误信息丢失。
- 财务应付单保存A102-2,传业务字段。并保存id
- 付款管理批量同步方法优化
2026-09-18 10:48:43 +08:00
刘泉佳 d0c5483d8b ⚡ 调整金蝶财务应付单/付款申请推送逻辑
- awrp_src_code 拼接付款申请号与结算明细单据号(去重)
- 分录金额直接取结算金额(含税/不含税),移除按申请付款金额分摊逻辑
- 往来类型/往来户改由合同取值:客户合同传 bd_customer,其余 bd_supplier;
  往来户取合同乙方并关联客商档案取客商编码,未维护时拦截报错
- 币种 RMB 统一映射为 CNY
- 金蝶请求 DTO 统一增加 @JsonInclude(NON_NULL),布尔字段默认 false
- A102-2 仅传必填字段,非必传字段注释保留;isincludetax/ispricetotal 传 true
2026-09-17 22:37:07 +08:00
刘泉佳 25a5b63ecc fix: 财务应付单保存A102-2,传业务字段 2026-09-17 20:34:27 +08:00
刘泉佳 bdd1d7571f ✨ 新增金蝶付款结果定时回写任务(A103-2/A103-4)并抽取BFI分页通用翻页工具 2026-09-17 18:57:19 +08:00
刘泉佳 d7c2cadd95 ✨ 付款管理正式结算付款同步金蝶改为财务应付单保存+应付下推付款申请 2026-09-17 10:38:44 +08:00
刘泉佳 d1833a7ac1 ✨ 新增金蝶同步常量类并维护单据类型映射字典 2026-09-17 10:38:34 +08:00
b2894lxlx 0fa0eae43c 调整 运力 2026-09-16 23:42:01 +08:00