b2894lxlx
|
fe78152515
|
🐛 MinIO 客户端支持 /oss 路径前缀并固定 region,修复合并分片失败
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-14 00:50:27 +08:00 |
|
b2894lxlx
|
7c7fe2e1c1
|
🐛 修复 MinIO endpoint 含 path 导致 blade-transport 启动失败
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-13 22:14:50 +08:00 |
|
b2894lxlx
|
f606850814
|
🐛 修复凭证分片上传 Mixed Content,支持服务端代传兜底
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-13 20:44:09 +08:00 |
|
刘泉佳
|
805ca9d380
|
chore: 归集刘泉佳提交的金蝶对接SQL迁移脚本到doc/sql/transport/lqj
|
2026-10-13 18:47:11 +08:00 |
|
b2894lxlx
|
e0da79d745
|
🐛 修复 MinIO 预签名走外网 HTTPS,并过滤无效应收应付变更记录
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-13 12:44:39 +08:00 |
|
刘泉佳
|
52da9aab24
|
docs: 补充金蝶物料映射Nacos配置样例与分录拆分逻辑梳理文档
third-party-api.yaml 新增 thirdParty.bfi.material 物料映射段(中文key方括号写法);新增业务流程文档:取值来源总表、三级拆分规则、大类判定与税率取值、物料计量单位映射、场景算例与已知口径
|
2026-10-13 11:34:55 +08:00 |
|
b2894lxlx
|
17ede93a04
|
✨ 新增小程序用户后台管理接口与菜单
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-12 13:49:08 +08:00 |
|
b2894lxlx
|
e19c3b100a
|
✨ 小程序用户独立为 blade_mp_user,并兼容司机/车辆 OCR 宽松日期
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-12 13:02:08 +08:00 |
|
刘泉佳
|
3b7559e9d6
|
Merge branch 'feature/payment-apply-bfi-autoSync' into feature/payment-apply-bfi-sync
# Conflicts:
# blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/FormalSettlementServiceImpl.java
# blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceApplicationServiceImpl.java
|
2026-10-12 10:59:15 +08:00 |
|
刘泉佳
|
bce360350c
|
fix: 审批通过自动同步金蝶文档
|
2026-10-11 15:51:03 +08:00 |
|
刘泉佳
|
5d1f977abd
|
feat: 付款申请纳入金蝶单据锁定与解锁流程(推送后锁单-删单回调还原-作废守卫-锁状态展示)
|
2026-10-10 16:00:32 +08:00 |
|
刘泉佳
|
15d6f736e5
|
feat: 金蝶锁单改1对1逐张调用并新增列表锁状态展示
|
2026-10-10 15:18:57 +08:00 |
|
b2894lxlx
|
4e7193893f
|
✨ 组织与人员支持OA增量同步,并完善用户启停与性别空值
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-10 13:56:29 +08:00 |
|
刘泉佳
|
7cae2034a4
|
chore: 模板补齐kingdee-bfi回调secure.auth放行规则并与Nacos实际配置对齐
|
2026-10-10 10:34:48 +08:00 |
|
刘泉佳
|
b4119d9dfa
|
feat: 金蝶解锁回调端点加入secure免登放行白名单(blade.secure.skip-url)
|
2026-10-10 09:38:46 +08:00 |
|
b2894lxlx
|
e20afc0d55
|
✨ 合同结算币种贯通应收应付与结算,并完善合同编号与字段
合同结算币种写入应收应付与预结算;总单运费默认币种统一为 RMB;同步合同申请日期、主要内容、部门合同编号前缀及用印材料字典等能力。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-10 00:53:17 +08:00 |
|
刘泉佳
|
1063d5875c
|
docs: 金蝶单据锁定与解锁业务流程文档
|
2026-10-09 19:52:53 +08:00 |
|
刘泉佳
|
e08be9a297
|
feat: 正式结算单/开票申请同步金蝶后联带锁单,支持解锁回调与金蝶删单还原
|
2026-10-09 19:52:15 +08:00 |
|
b2894lxlx
|
ef9eab737f
|
✨ 优化主数据校验与运单导入空值处理
电报略码改为选填且填写时唯一;用户支持账号姓名手机模糊查询;合同名称允许重复;项目情况说明扩至1000字;导入运单未填里程费用不再落库-1。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-09 17:07:56 +08:00 |
|
刘泉佳
|
ef0f9e6e36
|
fix: A303-1 开票申请推送放开来源单据字段
|
2026-10-08 19:59:04 +08:00 |
|
刘泉佳
|
a6af9a2ccd
|
feat: 收款认领公告查询认领人改取Nacos配置thirdParty.bfi.claimAnnounce.claimusers,不再按当前登录用户姓名查询
|
2026-10-08 17:34:11 +08:00 |
|
刘泉佳
|
7505d9bc55
|
feat: 全票池同步发票种类白名单下推远端——invoiceTypes单值参数按编码拆轮独立切片续扫,不再拉回后内存过滤消耗翻页额度;配置键 thirdParty.bfi.invoiceReceipt.invoiceTypes
|
2026-10-08 10:59:09 +08:00 |
|
weicw-dshsa
|
ac6318d174
|
✨ 新增存量司机/车辆补生效快照的订正脚本
「能否接单」的判据是生效快照指针,该列随认证门槛一起新增时对存量对象一律为 NULL,门槛默认开启后存量司机与车辆全部被判未认证、接不了单。脚本给尚无快照的对象补一条已通过记录并把指针指过去,含备份、校验与回退;幂等,且能在已订正过的库上续跑(从段内最大号之后接着发号,不撞主键)。
|
2026-10-07 18:21:38 +08:00 |
|
weicw-dshsa
|
2e5eae4d32
|
✨ 打卡照片按类型最多传 9 张,照片列加宽为 text
- 节点打卡提交新增 photoItems(带显式类型),photos 原样保留供旧版小程序按下标回推
- 打卡照片是每个打卡节点必有的类型,不由过程配置决定,与各凭证类型各自最多 9 张
- 新版提交要求每个类型至少 1 张;旧版仍只要求至少 1 张,避免打断未升级的小程序
- 管理端订正只校验每类上限,不校验必填
- photos 由 varchar(2000) 改 text:36 张约 4000 字符,旧列宽约 17 张即溢出
- 基线建表脚本补 COLLATE=utf8mb4_0900_ai_ci(与本机库实际排序规则一致)
|
2026-10-07 16:49:19 +08:00 |
|
刘泉佳
|
eb1edd3bbe
|
docs: 金蝶票池选票回切镜像读终态口径文档,09-22实时版加退役声明
|
2026-10-05 17:54:03 +08:00 |
|
刘泉佳
|
0dc6c9457a
|
chore: 金蝶票池镜像读回切SQL(可用过滤两列+认领索引幂等脚本)与全票池同步Nacos配置键
|
2026-10-05 17:51:54 +08:00 |
|
weicw-dshsa
|
7c30ead839
|
✨ 异常处置支持归属过程节点并新增打卡门禁
异常上报强制选择过程节点,节点归属写入 node_code / node_name;节点存在未了结
异常时,该节点及其后节点不可打卡(异常门禁),被拦节点仍可展开查看回填内容。
另新增顺序门禁:前置打卡节点未完成时后续节点不可打卡且不可展开;在途节点不受
顺序门禁约束,但仍受异常门禁约束。
配套:
- 过程配置「上传货量为是、货量类型为空」的脏配置订正为不采集货量
- 网关补充 /blade-resource/** 路由(图片上传,小程序打卡与异常上报照片均经此)
|
2026-10-05 15:10:24 +08:00 |
|
weicw-dshsa
|
7296a5af21
|
✨ 异常处置跟进支持上传附件
跟进记录新增 attachments_json 列,存 [{name, url}] 形式的 JSON 数组。
跟进说明与附件至少填其一即可:只传附件时,follow_content 列为 NOT NULL,
故写入固定文案「已上传跟进附件」,列表按该文案展示。
建表脚本补 COLLATE:原先只写 CHARSET,落到 MySQL 8 服务器默认排序规则,
与库中实际的 utf8mb4_0900_ai_ci 不一致。
|
2026-10-05 01:09:33 +08:00 |
|
weicw-dshsa
|
8d35abd23e
|
✨ 异常处置新增编辑功能
运管员可订正已上报的异常内容:异常类型、异常原因、上报说明、现场照片。
车牌、项目、承运商、配载单号由上报时从运单回填,不开放编辑,避免与运单脱钩。
编辑不改动处置状态。状态只能经跟进与完成流转,因为运单详情、运单列表、
首页计数与待办四处都以 disposal_status IN (pending, processing) 判定未完成,
允许编辑改状态会让已结案的异常重新长出来,而那四处判定无从知晓。
每次编辑按字段逐项比对生成变更说明,写入一条跟进记录留痕。
变更说明会内嵌修改前后的原文,长文本字段一次编辑就可能超过跟进内容的
varchar(500) 上限,故按 500 截断。
Permission 表达式用 hasMenu('exception_disposal_edit'):
@PreAuth 的值由 SpEL 求值,root object 是 AuthFun,
写成裸字符串会被当作属性访问而在请求时抛错。
|
2026-10-05 00:54:08 +08:00 |
|
weicw-dshsa
|
5061df8c78
|
📝 删除认证迁移脚本里的解释性注释
SQL 本身(列名、列 COMMENT、IF 条件)已经把意图说清楚了,注释在复述它、
或是在讲当时的排查过程,对读者没有增量信息。只留一处真正反直觉的:
唯一索引不对 NULL 去重,故 tenant_id 必须 NOT NULL。
注释 31 -> 8 行,DDL 未动,重跑两遍验证。
|
2026-10-04 23:49:33 +08:00 |
|
weicw-dshsa
|
4a65951adc
|
📝 精简认证迁移脚本注释
上一版注释把决策理由、备选方案、实测数据都写进了脚本,篇幅盖过 SQL 本身
(cert_record 注释 58 行 / 非空 170 行),后续阅读反而更难抓到重点。
按同目录既有脚本的密度收敛:只留「从 SQL 本身看不出来」的事实
(字段业务含义、不可回退的指针语义、排序规则不能改的原因),
删掉论证过程与常识性说明。
cert_record 注释 58 -> 31 行,另两个 14 -> 6 行;
DDL 一个字未动,重跑一遍验证仍无报错。
|
2026-10-04 23:46:39 +08:00 |
|
weicw-dshsa
|
378aa11842
|
♻️ 认证迁移脚本补幂等并统一注释格式
三个认证相关迁移脚本按项目既有约定整理,DDL 效果不变:
- driving_vehicle 扩长、owner_name/vin 加列两处原为裸 ALTER,重复执行会报
「Duplicate column」或白白重建表;改为 DELIMITER 存储过程 + information_schema
判定,与 doc/sql/transport 下 upgrade_* 的既有写法一致,可重复执行。
扩长那条额外判定 character_maximum_length < 100:MODIFY COLUMN 会重建整表,
已达标就不必再跑一次。
- cert_record 的菜单段补注 parent_id 的出处(与 blade_transport_driver.sql /
blade_transport_vehicle.sql / blade_vehicle_dispatch.sql 同一 ID),并说明
ON DUPLICATE KEY UPDATE 会把 parent_id / name 回写,对旧环境重跑即可收敛。
- 去掉注释里的 markdown 粗体(doc/sql/transport 的既有排版不用 markdown),
统一以 30 个破折号的横幅开头。
已在 dev 库 transport 连跑两遍验证:两遍均无报错,且列定义 116 行、索引 29 行、
三表排序规则与整理前逐项一致。
|
2026-10-04 23:43:05 +08:00 |
|
weicw-dshsa
|
ec98954351
|
🔀 合并认证记录功能分支到 master
认证记录不可变快照数据模型、司机端提交与记录查询、管理端审核、
小程序证件 OCR 适配、接单可用性门槛(带开关可回退),含迁移脚本与单元测试。
|
2026-10-04 23:38:39 +08:00 |
|
weicw-dshsa
|
17ae367100
|
🐛 认证审核菜单名改为「司机审核 / 车辆审核」
原名「认证审核-司机 / 认证审核-车辆」与需求文档的表述不一致,
后台菜单显示为「司机审核」「车辆审核」——与 .scratch 里
审核页分页签那轮需求的措辞对齐。
只改 blade_menu 的 name 字段,code / alias / path / 权限码均不变,
故不影响权限校验与前端路由。
注意:该 INSERT 是 ON DUPLICATE KEY UPDATE,改脚本本身不会改库里已有的行,
要在已有环境生效需重跑本脚本(新环境按脚本建库则直接是新名)。
|
2026-10-04 19:16:38 +08:00 |
|
weicw-dshsa
|
04a7846328
|
✨ 车辆认证扩到6张证件图,字段与车辆档案对齐;补齐建车必填列
司机端车辆认证此前只有 3 张图、5 个字段,且语义与车辆管理不一致
(「副页」字段里装的其实是主页反面)。本次把证件内容整体对齐车辆表列:
- 车辆表新增 owner_name(所有人:行驶证登记的单位名称,不是司机)与 vin;
- 提交请求与司机端车辆卡片全量对齐表列,行驶证四张图各自独立、
不再把「主页反面」与「副页正面」挤在同一个字段;
- 业务关系新增为司机自选(自有/管理挂靠/业务合作),不再由后端替用户猜。
顺带修掉三处会直接让功能不可用的缺陷:
1. 司机建车必失败:organization_name、approved_load_kg、business_relation、
energy_type、registration_no 五列 NOT NULL 且无默认值,而建车链路一个都不设置,
严格模式下 INSERT 直接报「doesn't have a default value」。已补齐并加服务端校验
(司机提交链路此前一句都不查,全靠前端)。
2. OCR 自动填充从未生效:后端按契约透传百度原始结果(中文键),
前端读的却是扁平字段名,永远 undefined 且不报错。新增 OcrFieldSupport
做归一化(键名别名容错、数值/日期/「长期」归一化、外廓尺寸拆三段、
有效期区间拆起止),响应的 fields 即前端直接回填的字段。
3. 审核通过不写回车辆档案:状态已通过、内容却还是旧的,自相矛盾。
现把生效快照的证件内容与指针合并成同一次 UPDATE 写回;快照是改造前
旧格式时明确报错,而不是静默写一堆空值。
|
2026-10-03 16:34:47 +08:00 |
|
weicw-dshsa
|
cc997c1c0c
|
✨ 审核列表新增司机姓名与手机号,并修正驾驶车辆绑定校验
审核页的司机姓名与手机号取司机档案的**当前值**,不是提交时的历史值:
手机号从未进入过认证快照(只有司机档案这一个来源),而队列的用途是
「找得到人、联系得上」。司机侧的认证对象就是记录本身;车辆侧记录不含任何
司机信息,取提交该记录的司机。存量订正记录里没有系统账号的那些司机解析不到,
两列为空属正常状态。
筛选必须发生在分页之前,故列表改为自定义 SQL;在 Java 层补字段再过滤会变成
「先分页再过滤」,每页条数与总数都不准。姓名搜索同时匹配档案当前姓名与提交时的
旧名,改名后按新名、旧名都搜得到。
顺带修掉两处既有缺陷:
1. 管理端保存绑定多辆车的司机会误报「驾驶车辆不存在」——小程序把车牌逗号并列
写入 driving_vehicle,管理端却拿整串去车牌表精确查,两边口径不一致。
2. 「一个司机最多 5 辆车」后端从未校验,且 driving_vehicle 原为 varchar(30),
5 个车牌连分隔符要 39 字符,超长写入会被静默截断成半个车牌(还会被当成一辆车)。
列扩到 varchar(100) 并在写入前校验数量与车牌格式。
|
2026-10-03 14:35:59 +08:00 |
|
weicw-dshsa
|
36d23cb426
|
📝 认证记录相关文件去掉外部文档引用,注释改为自解释
前一次提交的注释大量引用本仓库之外、同事看不到的东西:
docs/adr/0001、docs/adr/0002、GLOSSARY.md、.scratch/ 下的 spec 与 ticket 编号、
以及 ADR-0002 / D10 / 不变式 I1~I3 这类代号。这些都在另一个 git 仓库
(weicw/tms-erp)里,单独 checkout 本仓库的人根本找不到,只会困惑。
改为把结论直接写在注释里:
- 生效快照指针为何「一经设置永不回退」(原来只写「见 ADR-0002」);
- 为何 redis 状态字段不能用 0 兜底;
- 为何生成列要排除 is_deleted、为何 tenant_id 必须 NOT NULL;
- changeStatus 为何被禁用(原来写「破坏 I3 的留痕」)。
顺带对齐本仓库的既有排版习惯:
- 横幅破折号由 77 个改为 30 个(与 blade_annual_inspection_record.sql 等一致);
- 去掉 SQL 注释里的 markdown 粗体(本目录无其他脚本这么写)。
仅注释变更:SQL 的 diff 已逐行核对,非注释行改动为 0,DDL 一字未动;
迁移重跑仍 exit 0,audit-migrations 通过,mvn clean compile 成功。
|
2026-10-02 15:47:39 +08:00 |
|
weicw-dshsa
|
87f4c3a830
|
✨ 新增认证记录不可变快照数据模型与迁移脚本
按 ADR-0001/0002 建立司机与车辆共用的认证记录表 blade_transport_cert_record
(biz_type 区分、载荷存 JSON、检索字段提升为真实列),并为司机/车辆表补生效快照指针。
不变式结构性保证:
- I1 同对象至多一条待审:生成列 pending_biz_id + 唯一索引,数据库层拦截;
生成列同时排除 is_deleted,避免逻辑删除的待审记录永久占用唯一键。
- I3 快照不可变:snapshot_json 等 5 列标 FieldStrategy.NEVER,永不进入 UPDATE。
- status 承载审核状态(0审核中/1已通过/2已驳回/3已作废),新增时必须显式设置:
框架 resolveEntity 会把 null 的 status 静默填成 1(即「已通过」),
且继承来的 changeStatus 可直接写 status,两条通道均已封堵。
其他:司机表补身份证有效期三列并订正排序规则为 utf8mb4_general_ci
(原先为 0900_ai_ci,与车辆表 JOIN 已发生过 Illegal mix of collations);
生效快照指针加 @JsonProperty(READ_ONLY),防止以 /submit 请求体自行「认证」自己;
同步基线建表脚本与认证审核菜单/权限码。本票不含任何业务接口。
|
2026-10-02 14:40:56 +08:00 |
|
刘泉佳
|
d78757b64c
|
fix: A303-1 开票申请推送放开上游来源单据字段,awrp_src_con_no 传首张结算单金蝶应收单编号(金蝶确认单据编号口径,取 A302-4 查询结果)
|
2026-10-01 22:23:41 +08:00 |
|
刘泉佳
|
4b3edf977c
|
Merge remote-tracking branch 'refs/remotes/origin/master' into feature/payment-apply-bfi-sync
# Conflicts:
# blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java
|
2026-10-01 13:47:00 +08:00 |
|
刘泉佳
|
f8bd66aafb
|
docs: BFI接口编号补充名称标注,新增定时任务逻辑全梳理文档
|
2026-09-30 15:01:57 +08:00 |
|
刘泉佳
|
2f6619d443
|
feat: 开票结果回写落库发票文件地址并支持正式结算单详情查看下载
- A303-5 VO 补数电 PDF/XML 直链字段,回写落库四个发票文件地址(板式文件/预览图/数电PDF/数电XML)
- 已落库但缺地址的历史记录由回写任务字段级补空,不覆盖已有值
- 正式结算单详情新增 issuedInvoices:经结算单-开票申请关联查出回写发票,只读不参与匹配金额
- 新增建表补丁 blade_invoice_application_invoice_urls_20260930.sql
- 同步更新金蝶附件上传下载链路梳理文档(新增 3.4 销项直链节)
|
2026-09-30 14:15:58 +08:00 |
|
b2894lxlx
|
2f4513d501
|
📝 新增指定账号各业务模块创建量统计 SQL
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-29 21:42:34 +08:00 |
|
刘泉佳
|
a9eb1d82d4
|
feat: 收款认领推送金蝶定时任务增加single-flight分布式锁及Nacos配置
|
2026-09-29 12:12:59 +08:00 |
|
刘泉佳
|
82fab4b76a
|
feat: 已推送金蝶的认领不允许作废——后端硬校验拦截,列表带出流水推送状态
|
2026-09-29 11:58:20 +08:00 |
|
刘泉佳
|
331ea0466f
|
feat: 定时推送按认领人串行处理——查完该认领人公告并推完名下流水再轮到下一个
|
2026-09-29 11:52:42 +08:00 |
|
刘泉佳
|
fe7a940201
|
fix: A301-3 成功响应 number 为空,金蝶收款单号取回执 keys.awrp_src_code;A301-1 回写命中后以真实收款单号覆盖占位
|
2026-09-29 11:25:58 +08:00 |
|
刘泉佳
|
c8b2b701a3
|
fix: 作废认领不再生成本地KDCX冲单——金蝶单号/状态保留原值,接口改无返回
|
2026-09-29 11:15:57 +08:00 |
|
刘泉佳
|
175dd52d33
|
fix: A301-3 分录按契约改为单条——e_receivableamt=全部未推送金额,seq/e_corebillno=第一张结算单id
|
2026-09-29 11:10:41 +08:00 |
|
刘泉佳
|
ffc2f6eea2
|
fix: A301-3 报文取数按契约修正——awrp_src_code=分摊结算单号拼接,seq/e_corebillno=结算单id
|
2026-09-29 10:48:50 +08:00 |
|