weicw-dshsa
|
1bc4eb0c03
|
🐛 认领记录列表改为按认领日期倒序,同日按记录先后倒序
|
2026-10-16 12:42:43 +08:00 |
|
weicw-dshsa
|
164ef5f8e2
|
🐛 修复启用/停用司机与关联账号时清空驾驶车辆绑定
blade_transport_driver.driving_vehicle 标了 FieldStrategy.ALWAYS,更新时忽略
null 直接写。changeStatus 与同步小程序账号的 linkDriverUserId 都是只带少数
几列的 patch,没带这一列就会把司机的车辆绑定清成 NULL,司机端车辆列表随即
变成「暂无绑定车辆」,司机在界面上无法自行恢复。
两处改为按库中原值一并带上(与认证缓存、审核写回两处的既有做法一致),
并补 DriverServiceImplTest 四个用例:撤下修复后两条断言即变红。
|
2026-10-15 21:02:41 +08:00 |
|
weicw-dshsa
|
fe35b39f2c
|
🐛 补收票登记金蝶单据字段迁移脚本,存量库缺 kingdee_bill_no、kingdee_status 两列
|
2026-10-15 20:50:18 +08:00 |
|
weicw-dshsa
|
5f7735ec23
|
✨ 新增预结算单号预览接口
|
2026-10-15 16:56:46 +08:00 |
|
weicw-dshsa
|
e6868304a3
|
🐛 修复转结算候选明细缺少来源字段
|
2026-10-15 15:30:57 +08:00 |
|
weicw-dshsa
|
0eb5cc88a8
|
⚡ 司机端运单归属改回手机号口径,取消车牌过滤
归属与取单范围按运单 driver_phone 匹配当前用户手机号(司机档案 mobile 优先,其次小程序账号),主车/挂车车牌模糊匹配整段删除。认证门槛仍按司机档案绑定车牌判定,拒单排除条件不变。
|
2026-10-13 14:58:50 +08:00 |
|
weicw-dshsa
|
8f11bc70ec
|
🐛 恢复合并时丢失的司机端自动完成、地点回退与拒单脱离
合并 websoft/dev 解冲突时 DriverWaybillServiceImpl 整段退回旧版,丢掉三处功能,按原提交补回:
- 末位打卡是到货/卸货/签收且回单无需确认时自动完成运单
- 导入运单只有详细地址、没有地点名称时回退显示地址
- 司机拒单后该运单对其列表/计数/详情/打卡/接单全部不可达
归属校验测试原按手机号匹配运单,与打卡、接单的车牌口径冲突,改为按司机档案绑定的车牌断言。
|
2026-10-13 14:12:31 +08:00 |
|
weicw-dshsa
|
6fecc262b1
|
✨ 司机端运单卡片补运输组织类型字段
DriverWaybillCardVO 加 transportOrgType,toCard 按运单是否带配载单号判定 common/load;司机端详情、首页当前任务与列表共用该出口
|
2026-10-13 13:54:51 +08:00 |
|
b2894lxlx
|
ea1829cd75
|
🐛 修复小程序令牌严格校验 401,并开放调度端打卡接口
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-12 14:47:17 +08:00 |
|
b2894lxlx
|
c3edca04a5
|
⚡ 小程序密码/短信登录按 User-Type=mp 走 blade_mp_user
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-12 14:22:33 +08:00 |
|
b2894lxlx
|
d8b10377f0
|
🐛 补齐 DriverWaybillServiceImpl 单测对 IMpUserClient 的构造注入
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-12 13:59:00 +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 |
|
b2894lxlx
|
42ca5ee7bc
|
Merge remote-tracking branch 'websoft/dev'
# Conflicts:
# blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/DriverWaybillServiceImpl.java
|
2026-10-12 10:39:38 +08:00 |
|
b2894lxlx
|
a2e9e020b1
|
mk调试
|
2026-10-11 23:55:02 +08:00 |
|
b2894lxlx
|
68fede2caf
|
🐛 完善港口码头/铁路导入失败原因与软删除恢复,并修复运单导入列表筛选
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-10 16:20:21 +08:00 |
|
b2894lxlx
|
a4287d8b15
|
🐛 用户缓存反序列化失败时清理并回源,避免列表翻译姓名时报 500
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-10 14:28:31 +08:00 |
|
b2894lxlx
|
4e7193893f
|
✨ 组织与人员支持OA增量同步,并完善用户启停与性别空值
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-10 13:56:29 +08:00 |
|
weicw-dshsa
|
4fe0c8a968
|
✨ 调度首页把司机已拒单的运单列为重新派单待处理,并在司机端让该运单脱离
|
2026-10-10 01:48:49 +08:00 |
|
b2894lxlx
|
e20afc0d55
|
✨ 合同结算币种贯通应收应付与结算,并完善合同编号与字段
合同结算币种写入应收应付与预结算;总单运费默认币种统一为 RMB;同步合同申请日期、主要内容、部门合同编号前缀及用印材料字典等能力。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-10 00:53:17 +08:00 |
|
weicw-dshsa
|
b66984d3a1
|
✨ 认证审核详情下发审核人与审核时间
|
2026-10-09 20:47:22 +08:00 |
|
weicw-dshsa
|
143c6f99fb
|
🐛 修复司机端档案按脱敏手机号匹配导致本人档案查不到
|
2026-10-09 20:13:38 +08:00 |
|
b2894lxlx
|
ef9eab737f
|
✨ 优化主数据校验与运单导入空值处理
电报略码改为选填且填写时唯一;用户支持账号姓名手机模糊查询;合同名称允许重复;项目情况说明扩至1000字;导入运单未填里程费用不再落库-1。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-09 17:07:56 +08:00 |
|
b2894lxlx
|
5ed2a5c0fc
|
✨ 新增小程序司机端运单行驶轨迹接口
按打卡记录/计划时间自动推导起止日期后查询 LBS 轨迹。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-08 23:27:35 +08:00 |
|
b2894lxlx
|
d5c6d10352
|
⚡ 小程序司机端运单改为按手机号匹配,取消车牌过滤
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-08 19:37:26 +08:00 |
|
weicw-dshsa
|
9f9ce7842e
|
♻️ 司机端可完成状态白名单收敛为单一常量并订正注释
|
2026-10-08 10:07:00 +08:00 |
|
weicw-dshsa
|
7c488b6f09
|
✨ 司机打完末位到货卸货签收节点且回单无需确认时自动完成运单
|
2026-10-08 09:24:30 +08:00 |
|
weicw-dshsa
|
9f8ea5412d
|
✨ 运单过程判定补充到货卸货签收、末位打卡与回单无需确认完成三项
|
2026-10-08 09:09:17 +08:00 |
|
weicw-dshsa
|
f3ae784f20
|
🐛 导入运单地点名称为空时司机端回退显示详细地址
|
2026-10-08 00:15:35 +08:00 |
|
weicw-dshsa
|
44197a4cff
|
🐛 审核通过与重新提交时清空档案上的旧驳回原因
司机/车辆档案上的 certification_reject_reason 是展示缓存,没有驳回原因时应为 NULL(建表即 DEFAULT NULL,数据订正脚本也写 NULL)。但框架的 not_null 更新策略会跳过 patch 里的 null 字段,把 null 交给 updateById 到不了 SQL,于是两处都留下了陈旧文案:审核通过后状态已是「已通过」,档案上却还挂着上一次的驳回原因;被驳回后重新提交,旧原因会一直挂到审核通过,而提交侧本就写明「新提交不能继承上一次的驳回文案」。现在这两条路径各显式发一条只改该列的语句,带主键条件,不碰生效快照指针、不碰车辆绑定,驳回时仍照常写入原因。改用 ALWAYS 更新策略会让改手机号、绑定车辆这类无关操作也清掉该列,故不做。
|
2026-10-07 23:00:28 +08:00 |
|
weicw-dshsa
|
5496f487c7
|
🐛 车辆停用与未认证分开提示,不再把停用报成「认证没通过」
接单门槛对「车辆停用」和「车辆未认证」返回同一句「该车辆尚未通过认证审核,暂不可接单,请先提交认证」。生产上有一辆车已认证、只是被停用,司机照着提示做了两轮重新认证仍然接不了单——停用要找调度启用、认证才要提交资料,本是两件事。现在按运营状态优先逐车给出原因:停用报「该车辆已停用,请联系调度启用」,未认证才报认证。
|
2026-10-07 19:30:31 +08:00 |
|
weicw-dshsa
|
f3dc451802
|
🐛 个人认证通过后姓名与身份证号也写回司机档案
审核通过时只写回证件内容,姓名与身份证号被当作「身份标识」跳过:司机申报「黄大富」,档案里却还是建档时的「黄宇富」,司机端卡片显示档案名、「重新认证」表单回填快照名,同一个页面上两个名字。现在审核通过即认可整份申报内容,姓名与身份证号一并写回,档案与生效值一致。身份证号写回前先确认它没有落在另一名司机名下——该列没有唯一索引,直接写会静默产生两条同证件号的档案,管理端的证件号查重从此失效。
|
2026-10-07 19:15:29 +08:00 |
|
weicw-dshsa
|
ac6318d174
|
✨ 新增存量司机/车辆补生效快照的订正脚本
「能否接单」的判据是生效快照指针,该列随认证门槛一起新增时对存量对象一律为 NULL,门槛默认开启后存量司机与车辆全部被判未认证、接不了单。脚本给尚无快照的对象补一条已通过记录并把指针指过去,含备份、校验与回退;幂等,且能在已订正过的库上续跑(从段内最大号之后接着发号,不撞主键)。
|
2026-10-07 18:21:38 +08:00 |
|
weicw-dshsa
|
7d8f2df56f
|
🐛 审核未命中目标档案时整体回滚,不再静默置为已通过
审核通过时对司机/车辆档案的 updateById 命中 0 行只返回 false、不抛异常,而这个返回值原先被丢弃,于是「认证记录已通过、档案一个字没变」能静默成立:生效快照指针没写进去,对象下次接单仍被判未认证,审核页却显示已通过。现在命中 0 行即抛异常并回滚整次审核,宁可报错也不留下状态与档案互相矛盾的数据。
|
2026-10-07 18:21:29 +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 |
|
weicw-dshsa
|
e9156ab56b
|
🔀 合并异常上报门禁实现
|
2026-10-07 13:40:37 +08:00 |
|
weicw-dshsa
|
1038063231
|
♻️ 上报门禁的节点编码比较忽略首尾空白,移除失去调用点的判据方法
|
2026-10-07 13:33:07 +08:00 |
|
weicw-dshsa
|
3d3ed0ca27
|
♻️ 收紧上报门禁查询、去掉平行列表接口并统一节点编码比较
|
2026-10-07 13:24:02 +08:00 |
|
weicw-dshsa
|
3e687c8519
|
🔀 合并异常上报门禁后端实现
|
2026-10-07 13:17:50 +08:00 |
|
weicw-dshsa
|
f9654fbe30
|
✨ 节点卡片下发整单异常标记与相关异常列表,列表支持按运单精确过滤
|
2026-10-07 12:25:31 +08:00 |
|
weicw-dshsa
|
75cd448e2d
|
✨ 异常上报校验上报人必须是该运单的承运司机
|
2026-10-07 12:18:49 +08:00 |
|
weicw-dshsa
|
7e84b670b6
|
✨ 节点异常上报增加打卡与重复上报校验
|
2026-10-07 12:16:22 +08:00 |
|
weicw-dshsa
|
bf37c47856
|
✨ 接单后自动将接单节点置为已打卡
管理端打卡时间轴上的「接单」节点此前恒显示未打卡:接单动作只写运单字段,不落打卡流水,
而时间轴的节点来源含接单/回单,没有流水即判为未打卡。
改为按运单的接单事实派生:司机确认接单即为已打卡,时间取接单时间;项目「无需确认接单」时,
运单越过接单阶段(进行中/已完成/已取消)即为已打卡,但没有完成时刻——运单上没有任何字段
记着那一刻,时间栏留空,不拿创建时间或更新时间编一个。
不写打卡流水的原因:接单环节有 5 个产生点(司机确认、免确认落库、复制运单、导入进行中、
配载单开始),其中两处是绕过 Java 逻辑的批量 SQL;接单事实另有 4 个清除点。写流水要在每处
挂点,漏一处就出现「待接单却已打卡」或「进行中却未打卡」;派生只需在 listPunchRecords 一处判定,
且历史运单立即正确,无需回填。打卡表 (waybill_id, node_code) 也没有唯一约束,幂等只能靠代码自保。
配套:
- 接单节点不再允许补录或取消打卡:它由接单动作决定,人工订正只会造出一条与运单事实打架的
流水(时间轴显示已打卡、运单却还没人接单),故后端拒绝、前端不展示编辑入口
- 接单节点判据提为 WaybillProcessSupport.isAcceptNode(nodeCode, nodeName) 公开方法,
时间轴与补录校验共用同一份,不再各写一处硬编码
- 补 8 个时间轴用例(真接单带时间/待接单/已拒单/免确认进行中无时间/免确认草稿/免确认待执行/
免确认已取消/普通节点不受影响)+ 1 个补录拒绝用例
|
2026-10-06 12:36:17 +08:00 |
|
weicw-dshsa
|
4e5b6ce8f3
|
✨ 全局入口上报异常不再要求指定节点
从小程序首页快捷格、打卡页底部按钮进入上报时不再要求选择节点,node_code / node_name 落空;
要指定环节只能从节点卡片进入(入口即已确定环节,节点名仍从过程配置回填、不信任请求体)。
未指明节点的异常无从定位阻断区间,按「阻断该运单全部未打卡节点」处理,含在途。
此前「异常必须归属节点」的校验与相应术语表述一并作废。
|
2026-10-06 12:36:07 +08:00 |
|
weicw-dshsa
|
c50a86d5c4
|
✨ 运单详情打卡记录支持管理端编辑(含打卡状态)
新增 POST /waybill-manage/punch-record/save:按运单当前过程配置补录或修正
节点打卡与在途打卡,打卡状态也在可编辑之列。
- punched=false 即取消打卡:清除该节点全部打卡流水(时间轴上「未打卡」的判据
就是没有流水);在途节点没有节点 key 可定位单条,故清空该运单全部在途流水
- 节点以当前过程配置为准回写 key/name,前端带旧值也不会写歪
- 编辑按字段显式更新:updateById 会跳过 null 字段,清空地址/货量/照片保存后不生效
- 编辑不改 exception_flag(与异常处置表绑定);管理端补录 driver_id 留空
- 凭证图按 [{type,url}] 回写,避免展示层按下标回推类型时换序串标
- 补 8 个服务单测 + 3 个 MockMvc 端点绑定测试
|
2026-10-06 04:40:43 +08:00 |
|
weicw-dshsa
|
19ddc445da
|
🐛 修复在途打卡绕过异常门禁:未了结异常落在在途之后时仍可打卡
在途的异常阻断此前按过程配置里节点的位置区间计算:异常节点及其后的节点不可打卡。
异常报在「卸货」这类排在在途之后的节点时,区间只有卸货、签收,在途被放行,
等于车越接近目的地越能报在途;而异常报在「装货」(在途之前)反而会锁住在途。
改为运单级判定:该运单只要存在未了结异常,在途就不可打卡,与异常归属哪个节点无关。
普通打卡节点仍按区间(异常所在节点及其后)阻断。判定集中在
WaybillProcessSupport.blockedNodeKeys,卡片禁用态与 /enroute/submit 的强制校验共用它。
异常落在非打卡节点上(接单/回单、或已从过程配置删掉的节点)时没有可跳转的具体异常,
故 blockedExceptionId 可能为空,卡片只显示不可打卡原因。
|
2026-10-06 03:17:25 +08:00 |
|
weicw-dshsa
|
ffed7d328c
|
✨ 打卡照片改为必填
节点打卡与在途打卡都必须上传照片,缺照片直接拒绝。前端已做必填校验,此处拦的是
绕过客户端直接调接口的情况;空白字符串不算已上传。
|
2026-10-06 00:29:28 +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 |
|