用车申请
这篇解决什么
车辆台账、用车单、还车单怎么分表,流程 key 是哪两个。读完能改 list / info 和 FlowBillService 回写,不要把还车字段塞进用车单。
先开模块和模型,见 OA 功能设计。业务表单约定见 业务表单开发。
示意图:先有车辆档案。用车审批通过后才能还车。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 车辆 API | /oa/car | ruoyi-office/yudao-module-oa/.../CarController.java |
| 用车单 | /oa/car-apply-bill,save / submit | CarApplyBillController.java |
| 还车单 | /oa/car-return-bill | CarReturnBillController.java |
| 表 | 档案 / 用车 / 还车 | oa_car、oa_car_apply_bill、oa_car_return_bill |
| 流程 key | oa_car_apply_bill / oa_car_return_bill | OaBillTypeEnum |
| 前端 | 台账 + 两套 list/info | ruoyi-office-vben/apps/web-antd/src/views/oa/car/ |
| 移动 | 创建页在 pages-oa | ruoyi-office-uniapp/src/pages-oa/car/ |
页面必须是 carapply/list、carapply/info(还车同理)。模型 formCustomViewPath 还指向 apply/detail 时改模型或 SQL,不要加路由别名。
CarApplyBillServiceImpl 实现 FlowBillService,审批结束走 updateProcessStatus。提交用 oa:car-apply-bill:create,暂存用 oa:car-apply-bill:save。
出车 / 回车是 LocalDateTime,前端 valueFormat: 'x'。后端还会 validateTimeConflict,同一辆车时间重叠会拒。前端比较只是提示。
returnStatus 在用车单上表示还了没有。还车单另有 processDefinitionKey=oa_car_return_bill,权限 oa:car-return-bill:create。
选车用模块内 car-select-modal,不是公共 UserSelect。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
carId / carNo | 车辆与车牌冗余 | CarApplyBillDO |
goTime / returnTime | 出车、计划回车,时间戳 | 同上 |
processInstanceId | 对流程实例 | 同上 |
returnStatus | 是否已还 | 同上 |
流程 key 不要写成 oa_car
档案表是 oa_car。发起用车必须是 oa_car_apply_bill。移动端 bpm-menu-config.ts 已按这个 key 注册。
还车是第二张单
不要在用车 info 上直接改成已还。走还车 list/info,用车单只回写 returnStatus。
@RequestMapping("/oa/car-apply-bill")
public class CarApplyBillController { }
@TableName("oa_car_apply_bill")
public class CarApplyBillDO extends BaseDO { }配置与操作
先在 OA → 车辆管理 → 车辆信息 建车(车牌、状态)。发起用车走 car-apply-list / car-apply-info,选车用模块内弹窗,填出车 / 计划回车后提交。同一辆车时段重叠由后端 validateTimeConflict 拒,前端比较只是提示。
还车走 还车申请 的 list / info,用车单只回写 returnStatus。不要在用车 info 上改成已还。

本系统截图:OA → 车辆管理 → 用车申请。单据编号可点进 info。

本系统截图:用车单 info。出车 / 回车是时间戳,前端 valueFormat: 'x'。
