立项原因:旅行社单团成本核算涉及 10+ 种费用类型(酒店/门票/导游/车队/地接社等),团前预估与团后实际常出现差额(如团前预估餐费 1 万、团后实付 9 千),需通过负数调账解决。传统 Excel+微信群协作模式在旺季(日均 50+ 团)下,请款与收款对账滞后 2-3 天,错付/漏付频发,亟需一套支持负数调账、多级审批、与财务流程深度耦合的一体化 ERP 系统。
行业场景:覆盖国内旅行社从客户询价 → 团单创建 → 调度排期 → 票务预订 → 多级审批 → 团单核算 → Word 文档导出的全业务流程。单团平均涉及 20+ 费用行、3-5 轮审批节点,旺季并发请款,需保证账务一致性与审批可追溯。
项目具体功能模块
1. 团单管理:客户信息、团号、行程、人数、发/散团日期、负责人等全生命周期 CRUD
2. 调度安排:10 种费用项(团款/酒店/用餐/门票/用车/导游/地接社/交通票/其他支出/代付)的录入、编辑、批量保存、状态联动
3. 请款审批:成本付款(向供应商)与收款确认(向客户)两类审批流,复用同一审批引擎
4. 单团核算:自动按团汇总收入、成本、毛利、毛利率,支持 Word文档导出供财务归档
5. 资源管理:酒店、车队、餐厅、票务、地接社等供应商资源的独立 CRUD 与查询主要功能描述
本系统是面向中小旅行社的一站式业务+财务 ERP,以"团单"为核心业务对象,串联客户、行程、调度、审批、核算全链路。
核心亮点:单一金额计算公式 'total - progress - requested' 同时支持成本和收入两种业务方向(通过 order_line.direction 字段与审批回调分流),解决了"团后实际金额小于已付金额"导致的负数调账难题;审批流引擎基于状态机设计,支持撤销/驳回/部分批准/调账等状态转换,避免部分审批过程中金额被锁死。
负责的任务
独立完成项目整体架构设计(前后端分离 + 多模块)、数据库建模(共 97张表)、后端 Spring Boot 业务开发(请款审批回调引擎、金额计算器、状态机、工作流模板)、前端 React + TypeScript 组件开发(含复杂表单/Table/打印预览)、MySQL 索引调优与单元测试,覆盖订单、调度、付款、审批、资源管理五大核心模块。
技术栈:Spring Boot 、MyBatis Plus、MySQL、Redis、React 18 、 TypeScript、Vite
项目亮点:
自研审批流引擎:基于状态机实现审批模板/实例/任务三层模型,通过回调抽象支持多业务类型,请款按方向字段分流转成本付款/收款确认两套账务
调度管理统一建模:10种费用类型共用"主表+9子表"结构,direction区分收支,金额字段复用,任意调整自动触发重算(含负数调账)
资金账务中心化:所有金额变更收敛到统一工具类,公式 total-progress-requested 覆盖收支两侧,规避账目不一致
项目难点:
负数调账状态机:需同时放开公式截断、符号校验、回调负向三个环节才能支持团后少付/多付调整
部分审批金额一致性:onApproved 需正确释放"申请中"金额并累加实付,否则未批准部分被锁死
跨9表报表聚合:单团核算Word导出需内存聚合主表+全部子表,用原生XML模板规避第三方组件授权问题
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论