Commit Graph

240 Commits

Author SHA1 Message Date
刘泉佳 4e2f565d2f fix: 金蝶附件同步失败转成功时显式置空失败原因,修复updateById忽略null字段导致历史失败原因残留 2026-09-27 22:38:14 +08:00
刘泉佳 a3f1e07b2f feat: 金蝶票池发票文件下载(A801-2):按发票号镜像优先/实时回源定位,后端流式代理供前端查看下载 2026-09-27 21:17:52 +08:00
刘泉佳 1932ffe2d7 📝 补充金蝶附件同步关键链路日志(A902/A801-2 调用、单附件成功、内码反查回填与推送完成) 2026-09-24 13:47:30 +08:00
刘泉佳 c2f3a48c0e ✨ 金蝶附件同步(A902):五类单据推送后联带上传附件、独立同步状态与列表聚合 2026-09-24 13:26:54 +08:00
刘泉佳 ff96cc8544 feat: A103-1下推结算方式按付款方式映射并本地组装勾稽键,应付分录含税金额兜底修复 2026-09-24 04:51:50 +08:00
刘泉佳 3516282510 fix: 合并master,解决编译报错 2026-09-24 03:30:05 +08:00
刘泉佳 cae284483e Merge remote-tracking branch 'origin/master' into feature/payment-apply-bfi-sync
# Conflicts:
#	blade-common/src/main/java/org/springblade/common/config/BladeCommonConfiguration.java
#	blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
#	blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
#	blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
#	blade-service/blade-transport/pom.xml
#	blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml
#	blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java
#	blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/PaymentApplicationWrapper.java
#	blade-service/blade-transport/src/main/resources/application-dev.yml
#	blade-third-party-api/pom.xml
#	doc/nacos/blade-dev.yaml
#	doc/nacos/blade-prod.yaml
#	doc/nacos/third-party-api.yaml
#	pom.xml
2026-09-24 03:15:30 +08:00
刘泉佳 243d5be580 fix: 修复收票单推送金蝶防重键不匹配导致指定应付和幂等预检失败
A303-2保存收票单时awrp_src_code使用receipt.getId(),但A302-6指定应付
和A801-3幂等预检误用receipt.getInvoiceNo(),导致:
1. A302-6指定应付传入发票号而非收票登记ID,金蝶报收票单不存在
2. A801-3预检用发票号匹配金蝶awrp_src_code(收票登记ID),永远匹配不到
   已存在的收票单,重推时重复调A303-2被金蝶拒绝(已审核不允许修改)

修复:统一使用receipt.getId()作为收票单防重键
- assignApBill入参改为receipt.getId()(含补偿方法)
- queryKingdeeReceivedInvoiceRows传入receipt.getId()
- kingdeeRows.get()的key改为receipt.getId()
- 更正assignApBill方法注释
2026-09-23 19:00:02 +08:00
b2894lxlx f0732765cf ✨ 完善配载草稿确认与运单数量/里程落库
配载暂存免校验且确认生成待执行正式单,草稿仅预占运单不改其状态;里程 -1 对外置空;多货物运单按 goodsJson 合计回写数量并用于应收应付。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 18:35:28 +08:00
刘泉佳 0c064f06c9 feat: 收票单分录改为与应付单同源结算费用行,防重键改用收票登记id 2026-09-23 16:01:17 +08:00
刘泉佳 cb0d9a0602 feat: 批量转结算候选明细接口新增单据号和合同编码查询参数 2026-09-23 15:39:35 +08:00
刘泉佳 c91ab359ba feat: 金蝶票池选票仅出可用票并改造有界循环补页游标分页
- 选票过滤:剩余可用金额availableAmount>0且金额使用状态amountUseStatus=0(未使用),保存落镜像前按同口径复核,防选票到保存之间票被他人使用造成超用
- 单据使用状态不再作为前端条件,后端固定下推未用(expenseStatus=1)
- 分页改造:单请求最多3次远程调用循环补页凑满一页,返回nextCursor(远程页码:已消费过滤行数)供下一页续扫,防过滤后翻页漏行重行,游标解析失败降级页码锚定
- 新增剩余可用金额availableTaxAmount展示字段(金蝶可用税额口径,不改可认领金额的价税合计口径)
2026-09-23 15:06:07 +08:00
b2894lxlx 29b846017b ⚡ 固定金额与里程类计费跳过数量单位匹配
按车辆、固定金额、按公里/吨公里等计费要素不再要求货物数量单位一致。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 14:49:19 +08:00
b2894lxlx 6eb5362d5f 🐛 修复车辆调度列表排序规则冲突
JOIN 车牌号/租户时统一 utf8mb4_general_ci,并补充车辆表排序规则对齐脚本。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 14:49:19 +08:00
b2894lxlx 809790e737 🐛 修复本地无法运行的问题 2026-09-23 14:08:53 +08:00
b2894lxlx f09879d1dc 🐛 修复客商类型无法保存的问题 2026-09-23 11:29:52 +08:00
刘泉佳 7b7a40b94d chore: 补充收票单推送金蝶方法注释与批量推送关键环节日志 2026-09-23 11:08:50 +08:00
刘泉佳 c60954ad86 refactor: 清理收票金蝶同步下线后的死代码 2026-09-23 10:54:29 +08:00
刘泉佳 70d5d34461 refactor: 收票管理下线金蝶同步功能,金蝶状态改按推送结果二值展示 2026-09-23 10:47:40 +08:00
刘泉佳 562127232b ✨ 收票单推送金蝶全链路(A303-2保存+A302-6指定应付+A801-3回写)与金蝶票池实时游标分页重构,下线镜像分页与定时绑定任务 2026-09-23 10:15:36 +08:00
刘泉佳 6c81e7771d fix: 金蝶推送组织编码缺失报错改显示组织名称替代部门ID 2026-09-23 03:34:39 +08:00
b2894lxlx f91fc19745 ⚡ 计费方案运输方式精确匹配,并完善付款与运单费用生成
修复公路/铁路子串误匹配导致错生成应收应付;尾款付款支持关联预结算单;运单新建/复制为已完成时按合同计费生成应收应付。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 00:17:13 +08:00
刘泉佳 56e3e9deb0 feat: 金蝶票池选票统一查镜像(收票登记与结算单认领统一分页查询+按票号补查+A801-1限定正常票,下线实时透传假分页) 2026-09-22 21:24:00 +08:00
b2894lxlx 3e23507b3a ✨ 客商评分提交校验、复评状态与空评分持久化
提交审批前必须完成且仅保留一条自评,审核通过前必须完成复评。
列表返回最新复评状态;删除最后一条评分会落库;评分为 0 时不再被当成空值覆盖。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 20:21:43 +08:00
刘泉佳 b17f07b6c1 ♻️ 修复FormalSettlementServiceImpl审批状态常量引用 2026-09-22 14:49:54 +08:00
刘泉佳 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
刘泉佳 b0cc93bf08 ✨ 开票申请推送金蝶补齐购销方地址电话与开户行票面展示字段
销方 showsaleraddresstel/showsalerbank 随地址电话、开户行账号一同置 true;新增购方 buyeraddr/buyerbank(取申请单受票方快照注册地址+联系电话、开户行+银行账号)及展示开关 showbuyeraddresstel/showbuyerbank;同时注释掉分录税收分类编码的联调硬编码,恢复取商品行快照。
2026-09-22 11:03:12 +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
刘泉佳 447b087f67 ✨ 开票申请同步金蝶分录改按开票明细费用行展开逐行勾稽,税率透传开票项目小数,补销方地址电话与开户行账号,主表仅传必填字段 2026-09-21 21:19:26 +08:00
刘泉佳 72a1cfa9ec ✨ 开票项目主数据新增跨服务Feign查询(ISysClient.getInvoiceItems,启用档案按分类简称排序) 2026-09-21 21:19:18 +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
刘泉佳 f13f983467 ✨ 收票管理对接金蝶全票池(A801-1):批量同步/定时绑定/补偿兜底
批量同步按钮改调 A801-1 按发票号码精确查询并回填绑定;新增定时绑定任务(滚动增量窗口分页、镜像批量 upsert、绑定页级事务批量落库、发票种类与客商税号白名单过滤、未绑定登记按号补偿兜底);新增手动触发端点 /invoice-receipt/sync-invoice-pool
2026-09-21 13:18:52 +08:00
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