刘泉佳
|
06e6c9543f
|
♻️ syncKingdeeInvoiceResult优化N+1问题,使用批量查询和批量插入/更新
|
2026-09-22 14:29:37 +08:00 |
|
刘泉佳
|
1268561fd9
|
✨ A303-5开票结果回写支持Base64解码响应并补充关键日志
|
2026-09-22 14:07:25 +08:00 |
|
刘泉佳
|
430fc6b5a7
|
✨ 开票申请推送金蝶数电普票增加是否含税标记(hsbz=1)
|
2026-09-22 12:10:11 +08:00 |
|
b2894lxlx
|
14c1d9dff0
|
✨ 认证退出与操作日志、密码规则,以及运输业务多项修正
|
2026-09-22 12:03:59 +08:00 |
|
刘泉佳
|
dd37c01500
|
♻️ 审批状态常量抽取至TransportBusiConstant公共类
|
2026-09-22 11:26:20 +08:00 |
|
刘泉佳
|
d64b45d55d
|
📝 开票申请金蝶主表字段表补购销方地址电话与开户行展示开关
|
2026-09-22 11:03:41 +08:00 |
|
刘泉佳
|
b0cc93bf08
|
✨ 开票申请推送金蝶补齐购销方地址电话与开户行票面展示字段
销方 showsaleraddresstel/showsalerbank 随地址电话、开户行账号一同置 true;新增购方 buyeraddr/buyerbank(取申请单受票方快照注册地址+联系电话、开户行+银行账号)及展示开关 showbuyeraddresstel/showbuyerbank;同时注释掉分录税收分类编码的联调硬编码,恢复取商品行快照。
|
2026-09-22 11:03:12 +08:00 |
|
刘泉佳
|
6fa7761760
|
📝 更新开票申请同步金蝶分录取数口径文档
A303-1 分录字段映射表补全 goodscode/remark/单价税额来源,明确不回查开票项目主数据、不按开票明细费用行展开分摊,税收分类编码与税率为空即报错。
|
2026-09-22 10:52:09 +08:00 |
|
刘泉佳
|
3edefa9b4b
|
♻️ 开票申请同步金蝶分录组装改为纯页面商品行透传
resolveInvoiceApplyEntries 去掉开票项目主数据全量拉取(ISysClient.getInvoiceItems)与合同计费规则链路(开票明细→正式结算明细→应收费用行 billing_rules_json)两处回查,分录的分类/简称/税收分类编码/税率/金额/税额/单价/备注全部取商品行落库值,行缺编码或缺税率直接报错;取数收敛为张次+商品行两条查询,避免逐张 N+1。
|
2026-09-22 10:51:49 +08:00 |
|
b2894lxlx
|
5254a46de8
|
Merge remote-tracking branch 'websoft/master'
|
2026-09-21 22:33:12 +08:00 |
|
刘泉佳
|
75d5b8cf81
|
⚡ 开票申请相关实体补充字段描述注释
|
2026-09-21 21:19:34 +08:00 |
|
刘泉佳
|
447b087f67
|
✨ 开票申请同步金蝶分录改按开票明细费用行展开逐行勾稽,税率透传开票项目小数,补销方地址电话与开户行账号,主表仅传必填字段
|
2026-09-21 21:19:26 +08:00 |
|
刘泉佳
|
72a1cfa9ec
|
✨ 开票项目主数据新增跨服务Feign查询(ISysClient.getInvoiceItems,启用档案按分类简称排序)
|
2026-09-21 21:19:18 +08:00 |
|
刘泉佳
|
7964690e5d
|
📝 新增应收结算与开票申请同步金蝶设计文档及全链路业务流程文档
|
2026-09-21 19:14:44 +08:00 |
|
刘泉佳
|
b454bdc6e3
|
✨ 金蝶结果定时任务编排应收勾稽纠偏与开票结果回写子流程
|
2026-09-21 19:14:38 +08:00 |
|
刘泉佳
|
39ffac15e2
|
✨ 开票申请同步金蝶A303-1并回写A303-5开票结果(销方与税收分类编码随单据取数,新增发票结果表)
|
2026-09-21 19:14:20 +08:00 |
|
刘泉佳
|
82b347cb18
|
✨ 应收正式结算单同步金蝶财务应收单(A302-2保存+A302-4幂等预检与定时勾稽纠偏)
|
2026-09-21 19:14:05 +08:00 |
|
刘泉佳
|
b3eee6347b
|
⚡ 金蝶全票池定时同步按变更比对落库并加 single-flight 锁
- 镜像批量 upsert 增加票面字段指纹比对,票面无变化不重写(含 attachments_json 大字段),口径对齐 MyBatis-Plus 非空字段更新策略
- 收票登记绑定前比对 kingdeeInvoicePoolId/kingdeeBillNo/kingdeeStatus,三项均无变化不更新;同步流水只在绑定关系变化或金蝶状态迁移时写入,原因文案按语义拆分为「定时绑定」与「定时刷新」
- 同步入口按租户加 RedisLockClient 分布式锁做 single-flight(零等待、租约可配 lockLeaseSeconds),未开启 blade.lock.enabled 时降级执行并告警
- 客商税号白名单明确为购、销双方税号均须命中客商档案(我方主体税号亦在档案中),抽出 taxNoArchived 做空值防护
- 日志补强:每页过滤漏斗明细、镜像无变化数、镜像未匹配登记提示、翻页触顶告警、补偿绑定耗时与远程补查次数、解析失败带发票号码
- Nacos 模板:MySQL 连接串补 rewriteBatchedStatements=true 使 JDBC 批量真正合批;dev/test 开启 blade.lock.enabled,prod 补开启前置条件说明
- SyncKingdeeTest:方法名更正为 syncKingdeeInvoicePool,测试属性关闭 syncEnabled,避免 cron 与手动触发在同一 JVM 并发跑
|
2026-09-21 17:31:22 +08:00 |
|
b2894lxlx
|
12ef1210bc
|
组织同步逻辑修改
|
2026-09-21 17:01:10 +08:00 |
|
b2894lxlx
|
d1821bbfcf
|
组织同步逻辑修改
|
2026-09-21 16:37:24 +08:00 |
|
b2894lxlx
|
2fbbf9b0bb
|
组织同步逻辑修改
|
2026-09-21 16:21:15 +08:00 |
|
b2894lxlx
|
427e4b0c84
|
组织同步逻辑修改
|
2026-09-21 16:03:28 +08:00 |
|
b2894lxlx
|
2404281bff
|
项目、合同、运单、预结算、正式结算、付款对接mk
|
2026-09-21 13:52:34 +08:00 |
|
刘泉佳
|
9a82ed2eaf
|
📝 新增收票管理同步金蝶全票池发票(A801-1 查询+批量同步+定时绑定关联)业务流程文档
|
2026-09-21 13:19:10 +08:00 |
|
刘泉佳
|
738c5c2539
|
🔧 收票管理金蝶全票池同步新增 Nacos 配置(开关/cron/增量窗口/种类白名单/补偿限量)
|
2026-09-21 13:19:01 +08:00 |
|
刘泉佳
|
f13f983467
|
✨ 收票管理对接金蝶全票池(A801-1):批量同步/定时绑定/补偿兜底
批量同步按钮改调 A801-1 按发票号码精确查询并回填绑定;新增定时绑定任务(滚动增量窗口分页、镜像批量 upsert、绑定页级事务批量落库、发票种类与客商税号白名单过滤、未绑定登记按号补偿兜底);新增手动触发端点 /invoice-receipt/sync-invoice-pool
|
2026-09-21 13:18:52 +08:00 |
|
刘泉佳
|
69fee13242
|
✨ 收票管理金蝶全票池同步:镜像表新增票池字段(幂等脚本)与实体字段备注
|
2026-09-21 13:18:41 +08:00 |
|
b2894lxlx
|
2dafd44c26
|
项目、合同、运单、预结算、正式结算、付款对接mk
|
2026-09-21 12:54:13 +08:00 |
|
b2894lxlx
|
cfe36dfc8b
|
项目、合同、运单、预结算、正式结算、付款对接mk
|
2026-09-21 11:38:44 +08:00 |
|
weicw-dshsa
|
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 |
|
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
|
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 |
|
weicw-dshsa
|
993f802111
|
⚡ 精简运单导入车牌号校验的失败原因
一次车牌号错误原来最多会叠出「长度不能少于7位」「首位必须是省份简称、
第二位必须是英文字母」「格式不正确」三条原因,导出的失败明细里这一格很长。
现将公路运输下的必填、长度与格式统一为一条「车牌号校验不通过」。
- 校验强度不变:长度 7/8 位本就由 VEHICLE_NO_PATTERN 蕴含,省份简称白名单照旧
- 保留「车牌号」字样,失败明细仍能按列名拆词匹配并标红车牌号列;车牌为空时
走空单元格红底纹分支,比原来只有文字更容易定位
- 未改动「同一配载标识号下,车牌号不一致」,该原因由 tests/fixtures/waybill-import
用例 04 断言
|
2026-09-21 05:45:49 +08:00 |
|
weicw-dshsa
|
4c96583701
|
🐛 修复码头导入父港口取列不一致导致的静默丢数据
importTerminals 中 setParentCode 取「港口编码」列,而抑制连带报错时
却用「上级港口编码」判断父行是否已声明。用户若把完整编码填入
「码头编码」并让「港口编码」留空,父港口解析失败的异常会被误判为
「父行已声明」而吞掉,码头被静默丢弃且接口返回成功。
- splitByCategory 增加码头行「港口编码」非空校验,明确报错
- 抑制逻辑改为与 setParentCode 取同一列
|
2026-09-21 05:34:59 +08:00 |
|
weicw-dshsa
|
8485efe00d
|
🐛 修复导入失败明细无法按列标红的问题
4e1a162 移除了按列名匹配逻辑后只剩失败原因列标红。
现恢复并修正误标红:命中片段被更长片段覆盖时只保留更长的列
(避免原因含「车船类型」时把子串「类型」列一起标红)。
|
2026-09-21 05:21:27 +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 |
|
刘泉佳
|
74512e6b66
|
fix: 修改BfiCustomerGroupEntryDTO备注
|
2026-09-20 19:47:18 +08:00 |
|
刘泉佳
|
c5d65f5678
|
⚡ 优化金蝶客商定时同步消除N+1查询与逐条写入,快照纳入金蝶字段修复变更不落变更记录
|
2026-09-20 19:44:57 +08:00 |
|
刘泉佳
|
9a35d408dc
|
✨ 正式结算单新增全票池发票认领查询端点(多条件+内存精确分页)
|
2026-09-20 19:41:19 +08:00 |
|
刘泉佳
|
31a039245c
|
✨ blade-bfi-api 新增发票云全票池发票查询能力(A801-1 rim契约,queryAllPages全量翻页)
|
2026-09-20 19:41:07 +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 |
|