# wlbill **Repository Path**: SuNan202011/wlbill ## Basic Information - **Project Name**: wlbill - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-07-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 物流公司费用结算系统 基于 `Vue3 + Vite` 前端、`Spring Boot 3` 后端、`MySQL + Redis` 的前后端分离物流费用结算系统骨架版。 ## 已实现内容 - 后端统一返回、统一异常处理、JWT 鉴权、基于角色的接口权限控制 - 司机、客户、供应商、运单、账单、支付登记的基础 CRUD 和分页查询 - 订单管理:客户下单 → 审核通过/驳回 → 转为运单的完整流程 - 运单状态正向流转、结算后只读、关联数据禁止删除 - 司机账号自动同步,司机手机号作为登录账号,默认密码 `123456` - 账单按月份或时间段生成,避免已挂账运单重复生成,自动校验供应商一致性 - 文件上传 MinIO 存储,运单附件上传接口 - 基础资料、运单、账单 Excel 导出 - 运单批量状态流转 - 运单附件上传、账单支付凭证上传 - 运单录入页下拉联动司机 / 客户 / 供应商基础数据 - 客户送货地址一对多管理,支持默认地址 - 首次登录强制修改密码 - 仪表盘未结算 / 未支付提醒 - 系统日志查询(登录日志、操作日志) - 系统日志 Excel 导出 - 账单支付记录查看 - **合同管理**:运输合同模板 → 变量填充 → PDF 生成 → 物流商签章 → 司机上传身份证+手写签名 → OCR 身份核验 → 合同生效 - **签章管理**:SVG 印章模板上传与管理,支持 PDF 坐标定位签章 - **数据字典**:车辆类型、车长、能源类型等枚举统一管理 - **回单管理**:运单签收拍照上传 - 司机专属登录入口与独立查询布局 - **微信小程序**:司机端(运单查看/状态流转/合同签署/回单上传)、客户货主端(下单/运单跟踪)、运营端(运单录入/合同管理/司机管理/GPS 追踪) - 司机 GPS 位置上报与轨迹追踪 - Vue3 管理台:登录页、概览页、基础资料管理、运单管理、账单管理 ## 目录结构 ```text backend/ Spring Boot 3 后端 (Java 17, Maven) frontend/ Vue3 + Vite 管理台前端 miniapp/ 微信小程序 (司机端 / 货主端 / 运营端) sql/ 数据库初始化脚本 (init.sql 包含全部表结构) docs/ 设计文档、合同模板、签章模板等 uploads/ 本地文件上传目录 (生产环境使用 MinIO) ``` ## 默认账号 | 账号 | 角色 | 用途 | |------|------|------| | `admin / 123456` | SUPER_ADMIN | 超级管理员,全部权限 | | `finance / 123456` | FINANCE_ADMIN | 财务管理员,账单与付款 | | `dispatch / 123456` | DISPATCH_DIRECTOR | 调度总监,运单与管理 | | `miniadmin / 123456` | MINI_OPERATOR | 小程序运营端登录 | > 生产环境建议通过环境变量 `APP_DEFAULT_PASSWORD` 修改默认密码。 ## 后端启动 1. 创建数据库并执行 [sql/init.sql](/Users/sunan/java_project/demo/wuliu/sql/init.sql) 2. 修改 [backend/src/main/resources/application.yml](/Users/sunan/java_project/demo/wuliu/backend/src/main/resources/application.yml) 中的 MySQL 和 Redis 连接信息 3. 在 `backend` 目录执行: ```bash mvn spring-boot:run ``` ## 前端启动 前端按 `Node 20+` 配置,当前代码使用 `Vite 5`。 1. 将本机 Node 升级到 `20+` 2. 在 `frontend` 目录执行: ```bash npm install npm run dev ``` ## 小程序启动 1. 使用微信开发者工具打开 `miniapp/` 目录 2. 修改 `utils/config.js` 中的 `BASE_URL_MAP` 为实际后端地址 3. 在微信公众平台配置服务器域名白名单 4. 确保后端 `application.yml` 中配置了正确的 `wechat.appid` 和 `wechat.secret` ## 当前说明 这是一个可继续扩展的主干版本,已覆盖主要业务实体和权限框架,但以下能力仍建议下一阶段继续增强: - 更细的字段级权限脱敏和 DTO 拆分 - 批量导出细化、批量导入 - TypeScript 迁移(前端/小程序) - 单元测试与集成测试覆盖 - 登录日志单独结构化存储、操作日志差异化记录 - 司机端移动端体验和独立品牌化继续优化 - Redis 缓存热点数据与提醒任务 - 小程序司机收益、客户对账、回单确认等占位页面补全