Zing 论坛

正文

CRS:Oracle Petroleum 客户入职平台的现代化实践,从 Jotform 到结构化审批工作流

CRS是一个面向Oracle Petroleum Toll Blend部门的内部客户入职平台,采用Next.js 16、TypeScript和Drizzle ORM构建,通过角色驱动的审批链替代了原有的手动Jotform流程,实现了从客户填表到ERP编码的全流程数字化管理。

客户入职工作流审批系统Next.jsTypeScriptDrizzle ORMPostgreSQL企业应用角色权限
发布时间 2026/05/16 11:45最近活动 2026/05/16 11:48预计阅读 2 分钟
CRS:Oracle Petroleum 客户入职平台的现代化实践,从 Jotform 到结构化审批工作流
1

章节 01

CRS项目导读:Oracle Petroleum客户入职流程的数字化转型实践

CRS是Oracle Petroleum Toll Blend部门的内部客户入职平台,旨在通过角色驱动的审批链替代传统手动Jotform流程,实现从客户填表到ERP编码的全流程数字化管理。该平台采用Next.js 16、TypeScript和Drizzle ORM等现代技术构建,解决了传统流程中数据分散、协作低效、合规性不足等问题,为企业内部系统建设提供了可借鉴的架构范式。

2

章节 02

背景:传统Jotform流程的痛点分析

Oracle Petroleum Toll Blend部门此前使用Jotform收集客户信息,但存在明显局限性:数据分散在不同表单中,缺乏统一审批追踪机制,销售代理与审核人员协作效率低;业务规模扩大后,手动处理表单耗时耗力且易出错,难以满足合规审计要求。企业迫切需要结构化、可追溯的数字化解决方案。

3

章节 03

CRS的定位与核心目标

CRS(Customer Registration System)作为内部客户入职平台,核心目标是取代手动Jotform工作流,构建基于角色的结构化Web系统。销售代理提交客户注册表单(CIS),内部利益相关方通过可追溯审批链审核背书,明确责任边界,提升流程透明度。

4

章节 04

技术架构:现代全栈技术选型

CRS采用主流现代Web技术栈:框架为Next.js 16.2.1(App Router),开发语言TypeScript(类型安全),样式用Tailwind CSS v4+shadcn/ui(视觉一致+开发效率),认证层NextAuth v5(JWT会话),数据库访问Drizzle ORM+PostgreSQL(Neon托管),文件存储Vercel Blob。兼顾开发效率、运行性能和运维便利性。

5

章节 05

角色体系与状态机驱动的工作流引擎

CRS定义8种角色:销售代理(提交CIS)、销售经理(只读团队提交)、财务审核员(审查文档/信用)、法务审批员(经销商审核)、高级审批员(最终批准/拒绝)、销售支持(填写账户信息)、项目开发专员(ERP编码)、管理员(全量权限)。工作流引擎基于状态机:客户填表→代理补充→按类型分流(经销商→法务,其他→财务)→审核(转发/退回)→高级审批→销售支持→ERP编码,每个状态转换触发通知和审计日志。

6

章节 06

关键业务规则与数据模型设计

关键业务规则:客户类型决定路由(经销商需法务审核)、经理角色只读、代理代码自动关联、财务审核需CFO签署文档才能转发、审计追踪覆盖所有动作(workflowEvents表记录执行者/动作/时间戳)、邮件+应用内双通知。数据模型:4核心表(users用户信息、cisSubmissions表单数据、workflowEvents审计日志、notifications通知记录),文档存储用Vercel Blob(仅URL存DB)。

7

章节 07

部署运维与项目总结

CRS部署于Vercel(无服务器+全球CDN),环境变量管理配置(数据库连接、认证密钥等),本地开发用.env.local,Drizzle Kit管理数据库迁移。总结:CRS解决了实际业务痛点,为企业工作流数字化提供参考范式,技术选型紧跟趋势,架构清晰,是值得研究的企业级应用案例。