Commit Graph
65 Commits
Author SHA1 Message Date
weicw 12025311be 🎨 归属改造的规范轴修正
基线建表脚本补 blade_loading_manage.driver_id 与两表 (tenant_id, driver_id) 索引,与迁移脚本同名同位置;两份回填存档表改用 utf8mb4_general_ci;测试里的 var 改显式类型。
2026-10-27 22:15:32 +08:00
weicw 64ed3d476d 📝 运次收口注释只陈述当前事实
去掉「判据是 X 而不是 Y」「两段必须同时切否则」「缺省就等于把别人的运次发出去」这类推理与改删史表述,只留当前判据与行为。
2026-10-27 22:15:32 +08:00
weicw bd97b88054 ♻️ 删除 DriverWaybillServiceImpl 无用的 IMpUserClient 注入
该字段已无使用点,连带删掉 import 与 11 个测试构造实参;currentDriver 的注释改为只陈述当前归属判据。
2026-10-27 22:15:25 +08:00
weicw 48acd6a91e 🐛 派单与导入解析不到司机档案时留脱敏 WARN
改派、主单派单、Excel 导入三条写路径在解析不到档案时只落空不阻断,补 log.warn(号码用 DesensitizedUtil.mobilePhone 脱敏)。同时去掉解析结果上多余的 id > 0 归一:解析入口只返回 null 或唯一命中的档案 ID。
2026-10-27 22:15:16 +08:00
weicw 7504ad38f4 🐛 配载单保存按需解析司机归属,不再抹掉已有归属
原实现每次保存都按手机号重解析 driver_id,与司机无关的保存会把归属清空并同步到子运单。改为:单据带正数 driver_id 直接沿用;更新时号码与库中一致且库中已有归属则保留;其余情况(新建、换号、原本无主)才按手机号在租户内唯一匹配,匹配不到落 null 并留脱敏 WARN,不阻断保存。复制配载单直接带源单归属。
2026-10-27 22:15:09 +08:00
weicw 7a81623cc7 🔀 合并票 05:切换验证与接口口径文案 2026-10-27 21:48:23 +08:00
weicw 5be2046588 📝 修正司机端运单接口的归属口径描述(手机号→司机档案 driver_id) 2026-10-27 21:45:38 +08:00
weicw 791539fbdb 🔀 合并票 04:运次判据切到司机档案 ID 2026-10-27 21:09:22 +08:00
weicw 4a64cd53a5 Merge branch 'feat/waybill-driver-id-ownership' into feat/waybill-driver-id/04-trip-scope 2026-10-27 21:07:25 +08:00
weicw 01b4dd0b5b ♻️ 运次收口判据由司机手机号改为司机档案 ID
- TripQueryVO 的收口字段由 driverPhone 换成 driverId,删除按手机号构造收口条件的入口,
  让编译器暴露全部调用点;forAdmin() 与出参 driverPhone 快照不变
- 运次可见范围两段同时切:已配载段按配载单 lm.driver_id 子查询,未配载段按运单 driver_id
- 详情复核改为比较档案 ID(ownedBy)、删除 samePhone;收口缺省(空/0/负数)仍返回空集
- 司机端六个运次入口改用当前司机档案 ID;删除 currentUserPhone/isMobileLike 手机号兜底
- 测试夹具改为同时铺设 driverId 与派单快照号,新增改号仍可见、同号换人、管理端、缺省收口四组用例
2026-10-27 21:07:18 +08:00
weicw 0c50790f99 🔀 合并票 02:存量司机档案 ID 回填脚本与对照报告 2026-10-27 20:58:51 +08:00
weicw b85675253b Merge branch 'feat/waybill-driver-id-ownership' into feat/waybill-driver-id/02-backfill 2026-10-27 20:55:10 +08:00
weicw 3ff2c82938 ✨ 司机档案 ID 存量回填脚本与文本护栏测试 2026-10-27 20:55:03 +08:00
weicw b10e4f33b4 🔀 合并票 03:司机端运单判据切到档案 ID 2026-10-27 20:52:49 +08:00
weicw 179444b1fd ✨ 司机端运单归属改按司机档案 ID 收口
- 当前司机解析只按 user_id 查档案,删除按手机号回退匹配档案的分支(同号档案可互相冒充)
- 列表、预览、三档计数、详情、打卡、接单、异常上报的收口判据改为 driver_id = 当前档案 id,且要求 driver_id > 0
- driver_phone 退回纯展示快照;已拒单排除与在途打卡豁免保持不变;运次侧留待票 04
- 四个司机端运单测试类改用档案 ID 夹具,补「改号后仍可用」「同号换人看不到」「无档案被拒」用例
2026-10-27 20:48:48 +08:00
weicw 0869aa7a9d 🔀 合并票 01:派单/配载/导入写入司机档案 ID 2026-10-27 20:36:01 +08:00
weicw 4b489c0041 🗃️ 去掉配载单司机 ID 列上无意义的 COLLATE 子句 2026-10-27 20:35:49 +08:00
weicw 9daf7e5be4 ✅ 补充司机改号不回写单据快照的守卫测试 2026-10-27 20:30:13 +08:00
weicw 625fbc5f04 🗃️ 新增配载单司机 ID 列与运单配载单租户司机索引脚本 2026-10-27 20:30:13 +08:00
weicw 50ad99370c ✨ 运单与配载单在派单、配载、导入时写入司机档案 ID 2026-10-27 20:30:07 +08:00
weicw 4a4b69024f ✨ 新增手机号唯一匹配司机档案 ID 的解析入口 2026-10-27 20:29:47 +08:00
weicw cd9c7f4357 🐛 回退配载准入对进行中运单的放行,恢复只放行待执行 2026-10-27 16:15:00 +08:00
weicw c82657ca56 🐛 改路线时按新地址重推运单站名
- TransportBusinessSupport 新增 deriveRegionName / syncRegionName:按「省+市+区县旗」推导站名,
  与库里存量口径一致,县级市只取到地级市,认不出行政区划退回整段地址并截断 100 字
- WaybillServiceImpl.changeRoute(PC 后台改路线)与
  ExceptionDisposalServiceImpl.applyWaybillRoute(小程序「同意并修改路线」)写地址时同步写站名;
  地址没变保留库里原站名,避免清洗旧的手填站名
- 此前两处都只写 departure_address / arrival_address,站名一直是派单时的旧值,
  司机端列表与详情标题改完仍是旧城市
- 补 TransportBusinessSupportRegionNameTest、WaybillChangeRouteStationNameTest 与异常处置站名断言
2026-10-27 15:44:17 +08:00
weicw dca59720bf 🩹 code-review 修订:改号同步日志手机号脱敏、统一 feign 契约注释 2026-10-26 15:32:11 +08:00
weicw 6a83d14de2 🔀 合并票 03 后端:后台改号三处一致与 openid 覆盖写 2026-10-26 15:20:32 +08:00
weicw 5cc5dbb002 🐛 后台改手机号同步登录账号与司机档案电话
- transport 新增 feign /feign/client/driver/sync-mobile:按 user_id+tenant_id 找档案,
  档案 mobile 等于账号旧号时只改 mobile 一列(带 driving_vehicle 原值),已是新号幂等成功,
  找不到或判据不满足返回 synced=false 与原因
- blade-system updateUserWithPhoneSync:账号等于旧号时跟随新号、补账号唯一性校验,
  本地写库后调 feign 同步档案;同步失败只记日志,不回滚账号更新。登录链路仍走 updateUser
- App 内改号改调 updateUserWithPhoneSync
- bindOpenId 改为覆盖写:不再拦截已绑定其他 openid 或 openid 属于其它账号
2026-10-26 15:19:33 +08:00
weicw ddf0d7b2cf 🔀 合并票 01:小程序登录只按手机号识别 2026-10-26 14:53:34 +08:00
weicw 8ea8d48fff ✨ 小程序登录改为只按手机号识别账号
微信 openid 改为每次登录覆盖写留痕,不再参与账号查找,删除 openid 查账号、改手机号与手机号占用提示。
2026-10-26 14:52:44 +08:00
weicw 6c1e6e9e2f 🔀 合并票 02:openid 唯一键改为普通索引 2026-10-26 14:49:30 +08:00
weicw 29c9f229ac 🗃️ 小程序用户 openid 唯一键改为普通索引 2026-10-26 14:48:48 +08:00
weicw ccf3d7adf7 🐛 修复小程序重新授权因空账号判空失败报 500 且 openid 无法绑定
system 侧 R.data(null) 被空值序列化写成 {},Feign 侧反序列化出 id 为空的
MpUser 而非 null,被当作「已查到」:换号撞键分支误置 openidOccupied,导致
openid 永不绑定并提示「该微信已绑定其他账号」;手机号查不到账号时还会以
空主键、空租户调用 bindOpenId,系统侧判缺参 400,再被 Feign 降级包成
AssertionError(Error 而非 Exception)逃出 catch (Exception),登录返回 500。

- 新增 presentAccount():以主键判定是否命中,findByOpenid/findByPhone 统一走它
- bindOpenid 入口加守卫:缺主键或租户只记 WARN 后跳过,不再发空参数请求
- 补 2 条单测:空对象 data 视为未命中;不落空主键账号、不发空主键绑定
2026-10-26 13:48:30 +08:00
weicw 1b11d3f369 🔀 合并小程序认证审核能力接口与调度端身份放行 2026-10-26 12:02:32 +08:00
weicw b7d922077d 🐛 认证审核放行小程序调度端管理身份 2026-10-26 11:38:50 +08:00
weicw 0ebba9d6b7 ✅ 补充审核详情驳回原因与车辆查看菜单能力判定测试 2026-10-26 10:49:09 +08:00
weicw aac08bcbaa 📝 认证审核注释改为事实描述并统一引用菜单码常量 2026-10-26 03:39:55 +08:00
weicw e0ff423de0 🐛 审核详情返回驳回原因 2026-10-26 03:22:35 +08:00
weicw 4ca40960d5 🔀 合并票 05 认证审核能力判定接口 2026-10-26 03:16:20 +08:00
weicw ec926afa46 ✨ 新增认证审核能力判定接口 2026-10-26 03:14:05 +08:00
weicw 2e3853db18 🐛 运输类型筛选改按整趟车判,修正配载与多式联运双重计数
行级 SQL 筛会把混装挂总单与不挂总单的配载单劈成两档:同一趟车同时出现在配载运输与多式联运,两档各只剩命中的子单,卡片上的运单数、货物与重量缩水,三档数目之和大于全部。判据移到服务层 matchesOrgType,按整趟车的子单集合分档。
2026-10-26 00:56:16 +08:00
weicw 05aaa5396b ✨ 运次与运单下发多式联运标志,运输类型筛选分三档
transportOrgType 仍是 common/load 二值(组织形态维),另加 Boolean multimodal 表示挂了多联总单;两者可叠加,文案由前端组合。visibleRows 补选 master_no,否则派生永远为空。配载档筛选排掉挂总单的行,多式联运档只看 master_no。
2026-10-26 00:45:54 +08:00
weicw c95dccc871 🐛 fix(打卡里程): 回显里程去掉两位小数
运单里程列是 decimal(18,2),BigDecimal 经全局 ToStringSerializer 序列化后
下发成 "200.00",而客户端按正整数校验,原样回填直接提交会被拒。

- DriverPunchNodeVO / WaybillPunchRecordItemVO 的 mileage 改 String(正整数文本)
- 新增 TransportBusinessSupport.mileageText,去尾随零后再下发
- 打卡记录单测断言同步为字符串
2026-10-25 21:57:33 +08:00
weicw a4de458d27 🔀 合并「所属组织不是小程序注册与司机建档门槛」 2026-10-25 20:24:31 +08:00
weicw 576560f086 📝 收敛测试类与 pom 依赖的注释表述 2026-10-25 20:20:59 +08:00
weicw c03a5fdf47 🐛 司机与车辆导出支持「未分配组织」筛选 2026-10-25 20:20:59 +08:00
weicw 5bcb908cbd 🐛 空组织司机保存时不再发起组织反查 2026-10-25 20:20:59 +08:00
weicw f5f09fd2f0 🔀 合并票 07 单元测试 2026-10-25 19:51:55 +08:00
weicw 46b71faadf 🔀 合并票 06 后端未分配组织筛选 2026-10-25 19:50:58 +08:00
weicw bb4fb82c12 ✅ 补充无组织注册与数据权限空集的单元测试
- 注册路径(submit):司机 / 管理员 / 司机+管理员不选所属组织都能建号
- 数据权限解析:基础组织为空(含自定义范围无关联)时返回空集,不退化成全部组织
- 编辑:显式传 dataLevelRange 时层级改写,范围与自定义组织保持库值、关联表不动
2026-10-25 19:49:33 +08:00
weicw ceccb40cd7 ✨ 司机与车辆列表支持按未分配组织筛选 2026-10-25 19:45:41 +08:00
weicw 9d55b9e95c 🔀 合并票 01/02 账号组织可空与更新不重置数据权限 2026-10-25 19:41:13 +08:00
weicw 06f5b2da04 🔀 合并票 03 车辆侧取消所属组织必填 2026-10-25 19:39:07 +08:00
weicw 1721093c18 🔀 合并集成分支 feat/mp-register-without-org 2026-10-25 19:38:30 +08:00
weicw dfe2d3265f 🐛 小程序用户仅改人口字段时不再重置数据权限范围与自定义组织 2026-10-25 19:38:25 +08:00
weicw 6565e7eeea 🐛 小程序用户所属组织改为非必填,为空表示空集 2026-10-25 19:37:59 +08:00
weicw 32262868c7 🔀 合并集成分支 feat/mp-register-without-org 2026-10-25 19:35:40 +08:00
weicw 068236ba09 🔀 合并票 04 管理端保存司机不再要求所属组织 2026-10-25 19:34:04 +08:00
weicw 6c112bea65 🐛 车辆侧取消所属组织必填,司机无组织也能建首辆车 2026-10-25 19:33:42 +08:00
weicw 1d47015762 🐛 管理端保存司机不再要求所属组织 2026-10-25 19:30:50 +08:00
weicw d3d2c9f116 ✨ 调度端运单详情新增车辆实时定位接口 2026-10-25 18:40:55 +08:00
weicw c950f13c55 ✨ 待回单确认拆出独立 tab 档位,进行中不再包含 2026-10-25 16:20:36 +08:00
weicw 2c4ba589b8 🗃️ 新增回单待确认状态旧值订正脚本 2026-10-24 21:29:16 +08:00
weicw 0c05c3c385 ✨ 运单里程改为末位打卡采集,含里程计费时司机必填 2026-10-24 21:29:16 +08:00
weicw b36abe9e4b 🔀 合并主干 master 到 dev
- 状态命名统一用 dev 的 pending_return_confirm:master 侧 pending_return 常量、字面量与文案分支一并改名,避免两套状态并存
- 汇票可选按 master 放开:去掉部门/收付款方限制,删除随之失效的 selectableBill 判定
- 结算导入模板按 master 重写:不预置费用项列、不再有结算金额列,导出签名收为两参
- 合入 master 的待确认回单批量完成、变更记录审批过滤、小程序数据权限(MpUserDataScope)与评分量化/客商档案改动
- 受影响的测试构造器补上 MpUserDataScopeSupport 依赖
2026-10-24 16:37:43 +08:00
weicw b347869166 🐛 修复 blade-transport 重复声明 spring-boot-starter-test 导致构建失败
- 同一依赖在 pom 里出现两次,Maven 读 POM 阶段直接失败:
  'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique
- 保留带注释那处(说明为什么引入 JUnit 5 / Mockito),删掉前面无注释的重复项
2026-10-24 12:37:40 +08:00
weicw 85e491bfb4 🐛 修正基线建表脚本与迁移脚本不一致
- blade_customer_archive:补 kingdee_status / kingdee_fail_reason / kingdee_sync_time
  与 idx_kingdee_status(迁移 20260917 已加,基线漏写,新环境按基线建库会缺列)
- blade_invoice_receipt:删掉 20260923 已废弃的 kingdee_bill_no / kingdee_status
  与 idx_invoice_receipt_kingdee(迁移里已 DROP,基线仍在声明)
- 依据:scripts/repo/audit-migrations.py 从「缺列(建表语句) 2 + 基线脚本未同步 3」跑到 ✅
2026-10-24 11:46:53 +08:00