Commit Graph

209 Commits

Author SHA1 Message Date
b2894lxlx 93a6555293 ✨ 新增项目预付核销,并修复平台公司多选、常用线路组织过滤与登录 IP 连坐锁
结算附件支持项目预付核销并扣减可付款金额;加固项目平台公司多选字段扩容脚本;常用线路新增归属组织与列表筛选对齐;登录失败仅按账号锁定,取消 IP 级连坐。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 02:01:58 +08:00
b2894lxlx 0657cfe69f !2 金蝶解锁回调以及客商审核通过推送金蝶失败被吞异常,以及补充文档
Merge pull request !2 from mindless/feature/payment-apply-bfi-sync
2026-10-15 16:58:41 +00:00
b2894lxlx d7bf82b159 ✨ 新增导入结算单,并修复运单超管组织过滤与计量单位软删恢复
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 00:56:54 +08:00
刘泉佳 cb19618101 fix: 解锁标识术语统一为金蝶锁单/金蝶删单
- 回调操作类型展示口径统一:SAVE=金蝶锁单(保存触发解锁,单据仍在)、DELETE=金蝶删单
- 同步更新解锁标识标签、VO 注释与业务流程文档
2026-10-15 11:44:37 +08:00
刘泉佳 f23e24e808 fix: 修正金蝶解锁回调单号定位并新增解锁终态页面标识
- 回调方向与锁定相反:按金蝶单号+我方单号双条件反查最新locked锁记录(targetBillType回调为空不参与匹配)
- 回调处理批量化:一次IN查询+updateBatchById批量落库,消除逐张查询/更新N+1
- 新增KingdeeUnlockMark展示契约与fillUnlockMarks通用填充,付款申请/结算单/开票申请VO回填解锁时间、操作人、动作名称
- 更新金蝶单据锁定与解锁业务流程文档(回调方向、解锁后数据变化、事务语义、联调实测结论)
2026-10-15 11:29:11 +08:00
刘泉佳 f5a7b76205 fix: 金蝶操作文档 2026-10-15 09:29:04 +08:00
刘泉佳 4b52eb28d8 fix: 金蝶文档新增发票菜单 2026-10-15 09:13:26 +08:00
刘泉佳 259407c3b9 docs: 新增金蝶BFI全链路梳理总纲与BFI对接纯操作手册(2026-10-14)
总纲:按业务域汇总前端入口-后端链路-定时任务三层流程,含审批自动同步/单据锁单解锁/failed重推/票池镜像读等新机制、状态机、配置开关与风险清单,并补充金蝶侧效果图14张;操作手册:面向业务与运维的纯操作版,含客商/预结算/结算/付款/开票/收票/收款认领与汇率维护全流程截图,TMS页面截图10张
2026-10-15 03:31:23 +08:00
刘泉佳 e24314d6cb :feat: 新增金蝶单据锁定解锁总开关(billLock.enabled,控制推送锁单/解锁回调/补偿重锁) 2026-10-15 03:21:33 +08:00
刘泉佳 94acfc2174 Merge branch 'master' into feature/payment-apply-bfi-sync 2026-10-14 15:34:45 +08:00
b2894lxlx b791401620 🐛 扩容用户手机号字段并规范化 OA 多号码同步
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 15:15:53 +08:00
b2894lxlx dee392eb48 🐛 修复 IAM 同步 dept_id 超长与手机号明文解密失败
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 15:13:19 +08:00
刘泉佳 865e3a0498 Merge branch 'master' into feature/payment-apply-bfi-sync
# Conflicts:
#	blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java
2026-10-14 14:24:27 +08:00
b2894lxlx 6f4812db75 ✨ 项目申请平台公司多选,运单导入承运商筛选与复制草稿优化
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 12:59:31 +08:00
刘泉佳 40181a64b0 chore: 样例配置补充receivedInvoiceResult/billLock/customer金蝶调度段
三个定时任务此前仅在代码里有默认值、Nacos无显式配置,错峰值无法按环境显式下发;样例与 Nacos blade-dev.yaml 同步补齐(receivedInvoiceResult :08/10min、billLock.retry :02/5min、customer 每日02:00),开关默认关闭与代码兜底一致
2026-10-14 11:29:40 +08:00
刘泉佳 5211e8f18e chore: 按业务复杂度错峰分散金蝶BFI定时任务调度时间
原 6 个调度默认值全部压在整点边界(:00/:10/:20 同时起 4 个重任务),按复杂度错开起始分钟、频率不变、互不重叠:payResult :01/10min、receiptClaimPush :04/10min、autoSync.retry :05/10min、receivedInvoiceResult :08/10min、invoiceReceipt :16/30min、billLock.retry :02/5min;整点留缓冲,同步更新代码默认值、本地 yaml 兜底与 Nacos blade-dev.yaml
2026-10-14 11:10:38 +08:00
刘泉佳 5470eaf9c5 refactor: 统一金蝶BFI配置为BfiProperties类注入并补齐Nacos配置缺项
1. BfiProperties 新增 payResult/receivedInvoiceResult/receiptClaimPush/invoiceReceipt/customer/blacklist/invoiceResult/arResult/billLock/autoSync 嵌套配置类,收口 thirdParty.bfi.* 全部键;receivedInvoice 补 queryWindowDays/resultWindowDays/lockLeaseSeconds
2. 6 个定时任务、审批监听器及 6 个 ServiceImpl 共 13 处 @Value 改为 BfiProperties 注入(Nacos 刷新后自动重绑定,无需重启)
3. 本地 third-party-api.yaml 补 invoiceReceipt.invoiceTypes/compensateLimit 与 autoSync 整段,Nacos blade-dev.yaml 补 invoiceReceipt.lockLeaseSeconds
2026-10-14 11:10:20 +08:00
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