多租户企业差旅报销 SaaS 平台 · Travel Expense SaaS
基于 Spring Boot 3.2 + Spring Cloud Alibaba 2022 + Vue 3 的微服务架构差旅报销 SaaS 系统。 覆盖 出差申请 → 报销录入(发票查重)→ 多级审批 → 银企直连付款 → 月结关账 → 对账报表 全业务闭环, 支持 5 个角色协同,5 个微服务独立部署。
6 个核心功能模块界面 · 拖动画廊可自由旋转浏览
悬停卡片放大 · 双击查看大图
围绕真实业务痛点展开的技术方案设计,每项包含"业务问题 → 技术难点 → 解决方案 → 最终行为"完整链路。
所有业务表带 tenant_id,网关 JWT 解析后 ThreadLocal 透传,绝不信任前端参数。管理员传参校验合法性,普通用户强制覆盖为上下文租户。
审批通过场景采用 Seata AT 解决跨服务事务一致性;针对银行等外部系统调用,采用 RabbitMQ + 状态机 + 幂等实现异步付款及最终一致性。
按金额区间动态匹配审批规则:小额免审直接进待付款、跳过部门审批直入财务审批、默认两级审批。一级通过时实时再查规则,支持管理员中途改规则即时生效。
Redisson 防重 + MQ 异步化 + 模拟银行回调 + Lua 原子扣余额/预算。连点 10 次只提交一次,回调重复推送状态只更新一次,失败 3 次自动通知财务不再重试。
Redis + DB 双层查重:Redis 快速路径命中即拦截,未命中走 DB 兜底并回填。Redis 异常时降级纯 DB 查重,可用性优先。删除发票同步清理 Redis 标记。
关账前扫描当月单据,存在未终态单据则拒绝并列出明细。关账后 SUBMIT 拒绝、APPROVE/PAY 放行(存量单走完)。跨服务 Feign 拦截,fail-open 设计防止拖垮全站。XXL-JOB 定时扫描关账日临近(-3/-1/当天),自动向租户全体财务推送 REMIND 提醒消息。
限流先于 JWT 校验(不消耗鉴权资源)。Redis + Lua 令牌桶:全局 QPS + 用户/IP QPS 双层。Redis 异常时 fail-open 放行,限流自身不成为单点故障。
按业务领域(DDD 思想)拆分微服务,每个服务可独立部署、独立扩容。
DEMO CREDENTIALS · 点击右侧按钮可一键复制