wms/nflg-qms-admin/CLAUDE.md

181 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[根目录](../CLAUDE.md) > **nflg-qms-admin**
# nflg-qms-admin - QMS 质量管理后台
## 模块职责
QMS质量管理系统管理后台服务是一个功能丰富的独立业务服务覆盖
- **来料检验** -- 来料检验任务管理、AQL 抽样规则、不合格处理
- **检验标准** -- 检验项目、检验标准、检验标准项目管理
- **抽样计划** -- 抽样方案管理
- **质量通知** -- 质量通知单管理
- **问题工单** -- 问题工单(Issue Ticket)、工单流程、整改措施、待办事项
- **COA 证书** -- COA 审核任务管理
- **PDI 整车检测** -- 整车检测任务记录、检测规则、检测结果、交付项、组件、状态项
- **免检管理** -- 免检物料、免检类别
- **质检物料** -- 质检物料分类、质检物料管理
- **质量检验员** -- 质量检验员管理
- **供应商 SQE** -- 供应商 SQE 管理
- **标准缺陷** -- 标准缺陷管理
- **质量报表** -- 质量报表
- **文件管理** -- QMS 文件管理(文件分类/文件/版本/成员/OnlyOffice 集成)
- **广告管理** -- 广告管理
- **PDF 尺寸提取** -- 集成 nflg-qms-pdf-extract从工程图纸提取尺寸数据
- **外部接口** -- 为 WMS 等系统提供来料检验回调、PDI 任务记录、物料查询等外部接口
- **消息通知** -- 邮件/RTX/待办事项三种消息渠道
## 入口与启动
| 项 | 值 |
|----|-----|
| 入口类 | `com.nflg.qms.admin.QmsApplication` |
| 端口 | 8105 |
| 服务名 | qms-local |
| ComponentScan | `com.nflg.qms.admin`, `com.nflg.wms.starter`, `com.nflg.wms.repository` |
## 关键依赖
- nflg-wms-common
- nflg-wms-starter
- **nflg-qms-pdf-extract** (PDF 数据提取)
- Spring Boot Web / AOP / Validation / Mail / Thymeleaf / LDAP / MongoDB
- ZXing (二维码)
- EasyExcel (Excel 处理)
- iText7 / Flying Saucer PDF (PDF 生成)
- PowerJob Client (任务调度)
- Redisson (分布式锁)
- OpenTelemetry (链路追踪)
- Hypersistence TSID (ID 生成)
- **MinIO** 8.5.17 (对象存储)
- **AWS S3 SDK** 2.39.5 (对象存储)
- **JJWT** 0.12.6 (OnlyOffice JWT 签名)
- Apache Commons IO / Lang3
- TinyPinyin (拼音转换)
- Spring Retry
## 对外接口 (Controller)
### 业务 Controller (34 个)
| Controller | 路由前缀 | 说明 |
|-----------|---------|------|
| `QmsIncomingInspectionTaskController` | `/incoming-inspection-task` | 来料检验任务 |
| `QmsIncomingInspectionTaskAqlRuleController` | `/incoming-inspection-task-aql-rule` | 来料检验 AQL 抽样规则 |
| `QmsIncomingInspectionTaskNonconformanceController` | `/incoming-inspection-task-nonconformance` | 来料检验不合格处理 |
| `QmsInspectionItemController` | `/inspectionItem` | 检验项目管理 |
| `QmsInspectionStandardController` | `/inspection-standard` | 检验标准管理 |
| `QmsInspectionStandardItemController` | `/inspection-standard-item` | 检验标准项目 |
| `QmsSamplingPlanController` | `/sampling-plan` | 抽样计划 |
| `QualityNotificationController` | `/quality-notification` | 质量通知 |
| `QmsIssueTicketController` | `/issueTicket` | 问题工单 |
| `QmsIssueTicketProcessController` | `/issueTicketProcess` | 工单流程 |
| `QmsIssueTicketProcessMeasureController` | `/issueTicketProcessMeasure` | 工单整改措施 |
| `QmsIssueTicketTodoController` | `/ticket-todo-item` | 工单待办事项 |
| `QmsCoaTaskController` | `/coaTask` | COA 证书任务 |
| `QmsCoaReviewController` | `/coaReview` | COA 审核 |
| `QmsPdiTaskRecordController` | `/pdiTaskRecord` | PDI 检测任务记录 |
| `QmsPdiComponentController` | `/pdiComponent` | PDI 组件 |
| `QmsPdiDeliveryItemController` | `/pdiDeliveryItem` | PDI 交付项 |
| `QmsPdiDetectionRulesController` | `/pdiDetectionRules` | PDI 检测规则 |
| `QmsPdiInspectionResultsController` | `/pdiInspectionResults` | PDI 检测结果 |
| `QmsPdiStatusItemController` | `/pdiStatusItem` | PDI 状态项 |
| `QmsExemptCategoryController` | `/exemptCategory` | 免检类别 |
| `QmsExemptMaterialController` | `/exemptMaterial` | 免检物料 |
| `QmsQcMaterialCategoryController` | `/qcMaterialCategory` | 质检物料分类 |
| `QmsQcMaterialController` | `/qcMaterial` | 质检物料 |
| `QmsQualityInspectorController` | `/qualityInspector` | 质量检验员 |
| `QmsSupplierSqeController` | `/supplierSqe` | 供应商 SQE |
| `QmsStandardDefectController` | `/standardDefect` | 标准缺陷 |
| `QmsReportController` | `/report` | 质量报表 |
| `QmsFileCategoryController` | `/fileCategory` | 文件分类 |
| `QmsFileController` | `/file` | 文件管理 |
| `QmsFileMemberController` | `/fileMember` | 文件成员 |
| `FileUpLoadController` | `/fileUpload` | 文件上传 |
| `AdvertisementController` | `/ad` | 广告管理 |
| `TestController` | `/test` | 测试接口 |
### 外部接口 Controller (3 个)
| Controller | 路由前缀 | 说明 |
|-----------|---------|------|
| `ExternalIncomingInspectionTaskController` | `/external/incoming-inspection-task` | 外部来料检验任务接口(供 WMS 回调) |
| `ExternalPdiTaskRecordController` | `/external/pdi-task-record` | 外部 PDI 任务记录接口 |
| `MaterialController` | `/external/material` | 外部物料查询接口 |
## 关键业务 Service
| Service | 说明 |
|---------|------|
| `IncomingInspectionTaskControllerService` | 来料检验任务业务逻辑 |
| `QmsInspectionStandardControllerService` | 检验标准业务逻辑 |
| `QmsInspectionStandardItemControllerService` | 检验标准项目业务逻辑 |
| `QmsSamplingPlanControllerService` | 抽样计划业务逻辑 |
| `QualityNotificationControllerService` | 质量通知业务逻辑 |
| `QmsIssueTicketControllerService` | 问题工单业务逻辑 |
| `QmsIssueTicketProcessControllerService` | 工单流程业务逻辑 |
| `QmsIssueTicketProcessMeasureControllerService` | 工单整改措施业务逻辑 |
| `QmsIssueTicketTodoControllerService` | 工单待办事项业务逻辑 |
| `QmsPdiTaskRecordControllerService` | PDI 任务记录业务逻辑 |
| `QmsPdiComponentControllerService` | PDI 组件业务逻辑 |
| `QmsPdiDeliveryItemControllerService` | PDI 交付项业务逻辑 |
| `QmsPdiDetectionRulesControllerService` | PDI 检测规则业务逻辑 |
| `QmsPdiInspectionResultsControllerService` | PDI 检测结果业务逻辑 |
| `QmsPdiStatusItemControllerService` | PDI 状态项业务逻辑 |
| `QmsFileCategoryControllerService` | 文件分类业务逻辑 |
| `QmsFileControllerService` | 文件管理业务逻辑 |
| `QmsFileMemberControllerService` | 文件成员业务逻辑 |
| `FileControllerService` | 文件上传业务逻辑 |
| `QmsQcMaterialControllerService` | 质检物料业务逻辑 |
| `QmsStandardDefectControllerService` | 标准缺陷业务逻辑 |
| `QmsReportControllerService` | 质量报表业务逻辑 |
| `ExternalPdiTaskRecordControllerService` | 外部 PDI 任务业务逻辑 |
| `WmsApiService` | WMS 系统 API 调用服务 |
| `WmsIncomingInspectionTaskCallbackService` | WMS 来料检验回调服务 |
| `BasdeSerialNumberControllerService` | 流水号生成 |
| `ISendMessageService` | 消息发送接口 |
| `EmailMessageImpl` | 邮件消息实现 |
| `RtxMessageImpl` | RTX 消息实现 |
| `TodoItemMessageImpl` | 待办事项消息实现 |
| `RtxSendService` | RTX 发送服务 |
## 事件驱动
| 类 | 说明 |
|----|------|
| `IncomingInspectionTaskFinishEvent` | 来料检验完成事件 |
| `TicketEventPublisher` | 工单事件发布器 |
| `TicketEventListener` | 工单事件监听器 |
## 配置
| 类 | 说明 |
|----|------|
| `PdfExtractConfig` | PDF 提取服务 Bean 配置(注册 PdfExtractionService/TextGrouper/DimensionIdentifier/RegionFilterService |
| `AsyncConfig` | 异步线程池配置:`ticketTaskExecutor`(5-10)、`wmsCallbackExecutor`(5-20) |
## 测试
- `DeploySitTest.java` - SIT 环境部署测试
## 相关文件清单
- `src/main/java/com/nflg/qms/admin/controller/` - 34 个 Controller
- `src/main/java/com/nflg/qms/admin/controller/external/` - 3 个外部接口 Controller
- `src/main/java/com/nflg/qms/admin/service/` - 约 31 个 Service
- `src/main/java/com/nflg/qms/admin/service/impl/` - 消息发送实现
- `src/main/java/com/nflg/qms/admin/config/` - 配置类
- `src/main/java/com/nflg/qms/admin/event/` - 事件定义
- `src/main/java/com/nflg/qms/admin/listener/` - 事件监听器
- `src/main/java/com/nflg/qms/admin/publisher/` - 事件发布器
- `src/main/java/com/nflg/qms/admin/pojo/` - QO/VO 对象
- `src/main/java/com/nflg/qms/admin/util/` - 工具类
- `src/main/resources/application*.yml` - 配置文件
- `pom.xml` - 模块依赖定义
## 变更记录 (Changelog)
| 时间 | 操作 | 说明 |
|------|------|------|
| 2026-05-23 14:28:57 | 重写 | 首次扫描严重低估模块规模(记录 3 文件,实际约 80 文件),本次全面重写:补充全部 37 个 Controller、31 个 Service、事件驱动架构、MinIO/OnlyOffice/PDF 提取等依赖,修正入口类名 |
| 2026-05-23 14:16:58 | 初始化 | 首次生成模块文档(内容不完整) |