Skip to content

非标自动化客服现场管理系统 - Field Ticket Management System. 现场问题结构化上报系统,让初级工程师2分钟内完成问题提交,让高级工程师不依赖电话追问即可远程定位。

Notifications You must be signed in to change notification settings

fulingwei1/field-ticket-system

Repository files navigation

非标自动化客服现场问题反馈系统

现场问题结构化上报系统 - 让初级工程师2分钟内完成问题提交,让高级工程师不依赖电话追问即可远程定位

📋 项目概述

本系统旨在建立统一的售后服务管理平台,实现客户问题的快速反馈、追踪、解决,降低客服重复工作,提高服务效率,积累技术知识,形成知识资产。

核心目标

  1. 现场端:让初级工程师/助理/客服在现场用手机 2分钟内 完成问题提交(结构化事实 + 证据 + 版本信息)
  2. 公司端:让高级工程师 不依赖电话追问 即可远程定位,并下发版本化解决方案
  3. 全链路可追溯:问题包 → 判断卡 → 解决方案 → 版本下发 → 现场验证 → 客户沟通记录

🚀 项目状态

构建状态

模块 状态 说明
后端 API ✅ 构建成功 Infrastructure 项目 0 错误
Web 管理端 ✅ 构建成功 前端编译通过
移动端 🔄 开发中 Flutter App
数据库 ✅ 运行中 PostgreSQL 16
缓存 ✅ 运行中 Redis 7
对象存储 ✅ 运行中 MinIO

最后更新: 2025-12-25

最近更新

2025-12-25 - 编译错误全面修复 ✅

成功修复后端 85 个编译错误,项目现可正常构建:

  • ✅ 类型转换问题修复(15+ 处)
  • ✅ 实体属性访问修正(20+ 处)
  • ✅ DTO 属性扩展
  • ✅ MinIO SDK 升级(4.0.0 → 6.0.3)
  • ✅ 前端图标兼容性修复

详情查看 CHANGELOG.md

🏗️ 技术架构

技术栈

层级 技术选型 说明
移动端 Flutter 3.x 一套代码双端,支持离线
Web管理端 React 18 + Ant Design 5 或 Vue3 + Element Plus
后端API .NET 8 + ASP.NET Core Minimal API RESTful
ORM EF Core 8 Code First
数据库 PostgreSQL 16 JSON 字段支持
缓存 Redis 7 幂等性、Session
对象存储 MinIO 附件存储
容器化 Docker Compose 一键部署

系统架构

┌─────────────────────────────────────────────────────────────┐
│                     客服系统前端界面                           │
│              (Flutter App / React Web)                        │
└──────────────────┬──────────────────────────────────────────┘
                   │
┌──────────────────┴──────────────────────────────────────────┐
│                    核心业务模块层                             │
├──────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐ ┌──────────┐│
│ │客户信息模块  │ │问题管理模块  │ │判断卡模块     │ │解决方案  ││
│ │           │ │           │ │            │ │       ││
│ │ - 客户档案 │ │ - 工单创建  │ │ - 判断卡库 │ │ - SOL ││
│ │ - 设备清单 │ │ - 分诊追踪  │ │ - 推荐算法 │ │ - 验证 ││
│ │ - 版本管理 │ │ - 追问机制  │ │ - 版本管理 │ │ - 发布 ││
│ └─────────────┘ └─────────────┘ └──────────────┘ └──────────┘│
└──────────────────────────────────────────────────────────────┘
                   │
┌──────────────────┴──────────────────────────────────────────┐
│                   数据与分析层                               │
├──────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐       │
│ │数据存储     │ │数据分析      │ │报表展示          │       │
│ │(PostgreSQL)│ │(指标计算)    │ │(仪表板)         │       │
│ └─────────────┘ └──────────────┘ └──────────────────┘       │
└──────────────────────────────────────────────────────────────┘

📁 项目结构

field-ticket-system/
├── docker-compose.yml          # Docker Compose 配置
├── .env.example                # 环境变量模板
├── README.md                   # 项目说明
│
├── backend/                    # .NET 8 API
│   ├── src/
│   │   ├── FieldTicket.Api/    # API层
│   │   ├── FieldTicket.Core/   # 领域模型
│   │   ├── FieldTicket.Infrastructure/ # 数据访问、外部服务
│   │   └── FieldTicket.Shared/ # 共享模型
│   ├── tests/
│   └── Dockerfile
│
├── web-admin/                  # React管理端
│   ├── src/
│   │   ├── pages/
│   │   ├── components/
│   │   ├── services/
│   │   └── stores/
│   └── Dockerfile
│
├── mobile-app/                 # Flutter App
│   ├── lib/
│   │   ├── pages/
│   │   ├── widgets/
│   │   ├── services/
│   │   ├── models/
│   │   └── providers/
│   └── pubspec.yaml
│
└── docs/                       # 文档
    ├── api-spec.yaml           # OpenAPI规范
    ├── database-erd.png        # ER图
    └── test-cases.md           # 测试用例

🚀 快速开始

前置要求

  • Docker & Docker Compose
  • .NET 8 SDK (本地开发)
  • Node.js 18+ (本地开发)
  • Flutter 3.x (移动端开发)

一键启动(Docker Compose)

# 1. 复制环境变量文件
cp env.example .env

# 2. 配置环境变量(企业微信、数据库等)
# 必须配置:POSTGRES_PASSWORD, JWT_SECRET, WECOM_CORP_ID, WECOM_AGENT_ID, WECOM_SECRET
vim .env

# 3. 验证配置(可选)
./scripts/verify-docker-compose.sh

# 4. 启动所有服务
docker-compose up -d

# 5. 查看服务状态
docker-compose ps

# 6. 查看日志
docker-compose logs -f

# 7. 访问服务
# - Web管理端: http://localhost:3000
# - API文档: http://localhost:5000/swagger
# - API健康检查: http://localhost:5000/health
# - MinIO控制台: http://localhost:9001 (默认用户名/密码: minioadmin/minioadmin)

开发环境启动

# 使用开发环境配置(支持热重载)
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d

生产环境启动

# 使用生产环境配置
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

📖 详细的部署文档请参考 DOCKER_DEPLOYMENT.md

📚 核心功能

1. 工单全生命周期管理

  • 状态流转:Draft → Submitted → Triage → SolutionIssued → Verifying → Closed
  • 结构化上报:问题域(A-E) + 步骤 + 版本 + YES/NO事实表(5维度) + 证据附件
  • 离线支持:草稿本地存储 + 弱网补传队列

2. 判断卡推荐系统

  • 规则引擎:按问题域+步骤+关键词+事实特征匹配
  • 智能推荐:返回Top 5候选判断卡,显示匹配得分和原因

3. 解决方案版本化发布

  • 结构化修改内容:类型+位置+修改前+修改后+原因
  • 验证清单:类型(action/test/data_collection)+ 验收标准
  • 回滚策略:版本号管理

4. 客户沟通话术模板

  • 预置模板:问题已确认、方案已发布、验证通过
  • 变量替换:自动填充客户名称、设备SN、方案编号等

5. 附件分片上传

  • 断点续传:支持大文件分片上传,网络中断后自动续传
  • 进度显示:实时上传进度反馈

👥 用户角色

角色 主要职责
FieldEngineer 现场工程师,创建工单、上传证据、执行验证
CS 客服,跟进工单状态、催办、客户沟通
SeniorEngineer 高级工程师,分诊、诊断、发布解决方案
Admin 管理员,系统配置、用户管理、数据管理

📖 文档

🔐 认证方式

  • 企业微信 OAuth2:内部应用授权登录
  • JWT Token:API认证,有效期7天,支持刷新

📊 验收标准

指标 目标值 测量方式
工单提交完整率 ≥ 95% 提交成功数 / 创建草稿数
一次定位成功率 ≥ 60% 无追问直接出SOL / 总工单数
平均闭环时间 下降 ≥ 30% (提交→关闭) 对比上线前
高级工程师现场介入 下降 ≥ 40% 季度口径对比

🛠️ 开发计划

Sprint 1(MVP闭环,2周)

  • 认证:企业微信登录 + JWT
  • 工单:Draft/Submit + facts_json
  • 附件:上传(不做断点,先做重试)
  • 分诊:绑定JC、创建SOL
  • 通知:提交/SOL发布通知
  • 验证:提交验证结果
  • 问诊式补全:缺失信息分析
  • 部署:Docker Compose一键启动

Sprint 2(可用性增强,2周)

  • 离线:草稿本地存储 + 补传队列
  • 附件:分片断点续传
  • 推荐:判断卡推荐规则引擎
  • 统计:基础看板(闭环时长、Top问题域)
  • 通知:追问/验证通知

Sprint 3(体验优化,2周)

  • 扫码:设备二维码生成 + 扫码预填
  • 话术:客户沟通模板
  • 搜索:工单全文搜索
  • 导出:工单/统计Excel导出

📝 License

[待定]

👨‍💻 贡献指南

[待补充]


项目状态:🚧 开发中
最后更新:2025-12-22

About

非标自动化客服现场管理系统 - Field Ticket Management System. 现场问题结构化上报系统,让初级工程师2分钟内完成问题提交,让高级工程师不依赖电话追问即可远程定位。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published