项目概述
AutoSummaryService 是一个基于 .NET 8.0 构建的控制台应用程序,专为半导体行业设计,用于自动化生成晶圆测试数据报表。该系统能够从 Oracle 数据库提取测试数据,根据客户特定模板生成格式化的 Excel 报表,并计算关键指标如良率和测试结果分布。
技术架构
核心技术栈
-
开发框架:.NET 8.0
-
数据库访问:Oracle 数据库 + Dapper ORM
-
报表生成:NPOI 库(Excel 操作)
-
配置管理:App.config 配置文件
项目结构
核心功能
1. 数据提取与处理
系统通过 OracleDataRepository 从数据库获取以下关键数据:
-
批次信息(LotInfo):客户代码、产品型号、晶圆批号等
-
测试状态(TesterState):测试机台、测试步骤等
-
测试明细(DataDetail):测试结果、Bin 分布、良率数据等
-
设备信息(WipMc):测试设备型号与状态
2. 智能报表生成
ReportService 类实现了核心报表生成逻辑:
-
根据客户代码和测试流程自动选择合适的 Excel 模板
-
填充批次基本信息到报表头部
-
处理原始测试数据并计算 Bin 分布统计
-
自动计算总测试数量、通过数量和良率
-
生成时间戳命名的报表文件,避免重复
3. 模板化设计
系统支持多模板策略,通过 GetTemplatePath 方法实现:
-
默认模板:summary_normal_64bin_auto.xls
-
客户特定模板:如 ZJL 客户专用模板
-
流程特定模板:如 HFT 客户的 CP1 流程专用模板
使用方法
- 配置 Oracle 数据库连接字符串
- 设置报表输出目录和模板目录
- 运行程序并输入批次号(如 TSXT10929.1)
- 系统自动生成报表并保存到指定目录
业务价值
-
自动化:减少人工报表制作时间,提高效率
-
标准化:确保报表格式一致性和数据准确性
-
可扩展性:通过模板机制轻松支持新客户和新流程
-
数据可视化:将原始测试数据转化为直观的图表和统计信息
技术亮点
-
使用依赖注入实现松耦合架构
-
采用仓储模式隔离数据访问逻辑
-
扩展方法 SetCellValueSafe 确保 Excel 数据类型安全
-
异常处理机制确保系统稳定性
-
支持大量 Bin 数据(最多 64 种 Bin)的统计分析
未来展望
-
增加 Web 界面,实现浏览器访问
-
集成 PDF 报表生成功能
-
添加数据可视化图表
-
实现定时任务自动生成报表
-
增加邮件发送功能,自动分发报表
GitHub 链接:
项目克隆:https://github.com/wyh1359498723/AutoSummaryService.git
暂无评论