759 Commits

Author SHA1 Message Date
b2894lxlx b5c26609ea Merge remote-tracking branch 'websoft/dev'
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/LoadingManageServiceImpl.java
2026-10-29 14:07:28 +08:00
b2894lxlx ef05534114 🐛 修复项目部门可见性、费用项翻倍与配载合同匹配
业务部门变更后本部门可查项目;清洗 freightJson 误写入的费用项并修正预结算合计;配载承运商按客户合同乙方匹配。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-29 14:05:07 +08:00
weicw 6880de54ff ✨ 新增异常关联维修记录:维修记录加 exception_id,异常详情内联记录并新增录入接口 2026-10-29 08:58:17 +08:00
weicw c677caf817 🐛 补齐调度服务测试的车辆服务依赖
ManageWaybillServiceImpl 新增 ITransportVehicleService 后,五处测试的构造函数仍是旧参数,
test-compile 直接失败;补上 mock 参数。
2026-10-28 18:49:59 +08:00
weicw 077848a0f6 🐛 首页异常处置红点只数待处理
- 快捷入口红点由 disposalStatus≠completed 改为 =pending,处置中的不再计入待办
- 补充 ManageAdminHomeBadgeTest
2026-10-28 18:48:31 +08:00
weicw afe651f612 ✨ 小程序档案管理支持组织树选择与大头照清空
- 新增 GET /archive/manage/dept/tree,直读本租户启用中的部门并组装成树,剔除「外部组织」整支
- 司机保存时大头照为空则显式置 null,否则 update-strategy=not_null 会保留旧值
2026-10-28 18:20:35 +08:00
weicw 85a3416b6e ✨ 新增小程序端司机与车辆档案管理接口
- /archive/manage/driver|vehicle 的 page/detail/submit/status 八个接口,仅登录态 + 显式 admin 校验,
  权限不足回业务 403(小程序把 401 当会话失效,不能回 401)
- 分页支持 keyword(司机:姓名/手机号;车辆:车牌/VIN/所有人)与 expireStatus、status
- 停用真正生效:/driver/vehicles 只回启用车辆、停用车辆不可提交车辆认证、
  派单检索排除停用司机、选车列表改查车辆档案表并排除停用车辆
- 管理端保存不再重置车辆认证状态(此前每存一次就造出「审核中但没有待审记录」的死状态)
2026-10-28 17:36:19 +08:00
weicw 29bce66d63 ✨ 新增调度端档案统计接口,供小程序资料页取司机与车辆证照数 2026-10-28 16:14:20 +08:00
weicw df3b21922d ♻️ 审核修订:补身份字段服务端校验并整理注释
修订通过时比对原提交的身份字段(司机身份证号/驾驶证号、车牌号),原提交为空时允许补全;抽出 preferBody 与修订解析方法,统一许可头与注释口径。
2026-10-28 02:25:02 +08:00
weicw a06b2ead16 ✨ 认证审核接口支持修订版内容写入
- 新增 CertAuditRequest,audit 接口原地升级为 body 优先、query 兜底,缺 id/pass 返回 400
- 通过时同事务写入 audited_snapshot_json(驳回忽略修订);修订内容先校验可反序列化与关键字段再落库
- 写回档案与司机端「当前生效内容」改为修订版优先,为空回退 snapshot_json
- 读不懂的历史快照不再静默跳过,改为抛错回滚,杜绝空内容被盖章通过
- 审核详情下发 auditedSnapshotJson;司机端 VO 增加 revised 标记,快照字段不随 VO 下发
2026-10-28 01:37:45 +08:00
weicw 1b19d4e60c ⏪ 回退金蝶客商同步测试的 HCS 占位地址
该测试的上下文依赖本机 Nacos 配置,不在本仓库补默认值;本地跑全量时用 -Dtest='!CustomerArchiveSyncKingdeeDataTest' 跳过。
2026-10-27 23:57:47 +08:00
weicw 6ac6cf9bff 🐛 修复配载承运商乙方交集在缺客户合同与无可用合同时的报错
子运单全都没有客户合同时,甲方映射是空表,按 null 键取甲方抛 NPE,配载提交 500;
项目下没有可用承运商合同时乙方交集必然为空,被当成「无共同乙方」拦截,自运的多张子运单因此配不进去。
金蝶客商同步测试补 HCS 占位地址:本地未配置 thirdParty.hcs.baseUrl 时 Feign 客户端会让整个上下文起不来。
2026-10-27 23:53:32 +08:00
weicw 2e25754d7e ♻️ 司机端档案解析收口到 user_id 2026-10-27 22:35:17 +08:00
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 5be2046588 📝 修正司机端运单接口的归属口径描述(手机号→司机档案 driver_id) 2026-10-27 21:45:38 +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 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 179444b1fd ✨ 司机端运单归属改按司机档案 ID 收口
- 当前司机解析只按 user_id 查档案,删除按手机号回退匹配档案的分支(同号档案可互相冒充)
- 列表、预览、三档计数、详情、打卡、接单、异常上报的收口判据改为 driver_id = 当前档案 id,且要求 driver_id > 0
- driver_phone 退回纯展示快照;已拒单排除与在途打卡豁免保持不变;运次侧留待票 04
- 四个司机端运单测试类改用档案 ID 夹具,补「改号后仍可用」「同号换人看不到」「无档案被拒」用例
2026-10-27 20:48:48 +08:00
weicw 9daf7e5be4 ✅ 补充司机改号不回写单据快照的守卫测试 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
b2894lxlx 4b9e117c9e ✨ 新增合同变更独立单据与MK审批回写
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 18:34:09 +08:00
b2894lxlx 41a86fe335 ✨ 新增项目变更独立单据与MK审批回写
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 16:45:37 +08:00
b2894lxlx adf782401a 🐛 合并 websoft/dev:改路线重推站名并回退进行中运单配载准入
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 16:23:57 +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
b2894lxlx 3450799c2a !6 fix: 项目+合同对接合同系统
Merge pull request !6 from mindless/feature/hcs-api-p0
2026-10-27 06:24:01 +00:00
b2894lxlx 035a8500cc !5 金蝶测试问题修复
Merge pull request !5 from mindless/feature/20261019-bfi-all
2026-10-27 06:23:34 +00:00
刘泉佳 7a6ff0c456 fix: 合同接口合并后报错 2026-10-27 09:54:33 +08:00
b2894lxlx 8737c4b5f9 ✨ 角色菜单数据权限替代用户级组织/客商权限
将后台数据权限迁移到角色×菜单配置,运行时按 menuCode 解析;组织树取最宽合并;停用用户侧组织与客商授权过滤。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 04:05:01 +08:00
b2894lxlx 7e009ac7c3 Merge remote-tracking branch 'websoft/dev' 2026-10-26 16:09:25 +08:00
weicw dca59720bf 🩹 code-review 修订:改号同步日志手机号脱敏、统一 feign 契约注释 2026-10-26 15:32:11 +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
b2894lxlx 8a10ffeed6 Merge remote-tracking branch 'websoft/dev' 2026-10-26 13:49:08 +08:00
weicw b7d922077d 🐛 认证审核放行小程序调度端管理身份 2026-10-26 11:38:50 +08:00
b2894lxlx 81648fc659 ✨ 开票合计反算、配载承运商乙方交集与临时合同结算校验
开票按合计金额/税率反算不含税单价(6位小数);配载按子单客户合同甲方匹配后取承运商乙方交集;临时合同过期不可结算,并修正合同变更编号唯一校验。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-26 10:50:55 +08:00
weicw 0ebba9d6b7 ✅ 补充审核详情驳回原因与车辆查看菜单能力判定测试 2026-10-26 10:49:09 +08:00
b2894lxlx 6a4b9cf012 Merge remote-tracking branch 'websoft/dev' 2026-10-26 10:12:11 +08:00
b2894lxlx 488940d9c4 🐛 OA人员同步在部门匹配失败时仍清理历史脏部门关系
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-26 09:53:27 +08:00
weicw aac08bcbaa 📝 认证审核注释改为事实描述并统一引用菜单码常量 2026-10-26 03:39:55 +08:00
weicw e0ff423de0 🐛 审核详情返回驳回原因 2026-10-26 03:22:35 +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