# PadService 项目说明文档 ## 项目概述 PadService是一个基于.NET Core开发的MES(制造执行系统)后端服务,主要用于管理工厂生产过程中的条码打印、报工、数据采集等功能。系统通过API接口提供服务,支持前端应用(如移动设备、平板电脑等)进行生产数据的管理和操作。 ## 系统架构 - **开发框架**:.NET Core - **API类型**:RESTful API - **数据库访问**:SqlSugar ORM - **API文档**:Swagger - **序列化**:Newtonsoft.Json - **跨域支持**:CORS已配置 ## 核心功能模块 ### 1. 条码管理模块 (MesInvItemBarcodes) 该模块负责产品条码的生成、打印和管理,是系统的核心功能之一。 - **条码生成**:根据工单信息生成唯一条码 - **条码打印**:支持批量打印条码 - **条码验证**:确保条码的唯一性和有效性 - **条码更新**:支持条码信息的更新和维护 - **条码删除**:支持条码的删除操作 ### 2. 报工管理模块 (MesReporting) 该模块负责记录和管理生产过程中的报工数据。 - **报工记录**:记录生产人员、生产数量、不良数量等信息 - **数据统计**:统计累计采集数、打印数、不良数等 - **报工审核**:支持报工数据的审核流程 ### 3. 工单管理模块 (Womdaa) 该模块负责工单的管理和跟踪。 - **工单状态跟踪**:记录工单的开工、暂停、完工等状态 - **工单数量管理**:管理工单的计划数量、已完成数量等 - **工单关联信息**:关联物料、批次、客户等信息 ### 4. 数据采集模块 (MesNumerical) 该模块负责从生产设备采集数据。 - **实时数据采集**:采集生产设备的实时产量数据 - **数据记录**:记录采集时间、采集数量等信息 ### 5. 质量检验模块 (MesQaItemsDetect02) 该模块负责产品质量的检验和记录。 - **首检管理**:支持产品的首检流程 - **检验记录**:记录检验结果、检验人员等信息 ## 关键数据流程 ### 条码打印流程 (AddItemToBarcodes) 1. 验证工单状态和首检状态 2. 检查打印数量是否超过工单数量 3. 生成唯一条码 4. 创建条码记录和报工记录 5. 更新工单已完成数量 ### 报工数据更新流程 (UpdateAmount) 1. 获取已打印数据 (DyQty) 2. 获取数采数据 (CjQty) 3. 获取初始值 (anchors.InitialValue) 4. 计算累计采集数 (ljcj = CjQty - anchors.InitialValue) 5. 获取已报工数量 (anchorsQty) 6. 计算不良数量 (BlQty = (ljcj + anchorsQty) - DyQty) 7. 更新MesReporting表中的相关字段 ## 数据库表结构 ### 主要表 - **MES_INV_ITEM_BARCODES**:条码信息表 - **MES_REPORTING**:报工记录表 - **WOMDAA**:工单主表 - **MES_NUMERICAL**:数据采集表 - **MES_ANCHORS**:工单锚点表(记录初始值和已报工数量) - **MES_QA_ITEMS_DETECT_02**:质量检验表 ### 关键字段说明 - **MesReporting.BlQty**:累计不良数量 = (当前采集数量 - 初始值 + 已报工数量) - 已打印数量 - **MesReporting.CsQty**:初始值(来自MesAnchors.InitialValue) - **MesReporting.JtQty**:机台面板数(当前采集数量) - **MesReporting.CjQty**:累计采集数量 = 当前采集数量 - 初始值 - **MesReporting.DyQty**:累计打印数量 - **MesAnchors.InitialValue**:开工时采集数初始值 - **MesAnchors.Qty**:工单已报工数 ## API接口说明 ### 条码管理接口 - **POST /api/MesInvItemBarcodes/AddItemToBarcodes**:生成并打印条码 - **POST /api/MesInvItemBarcodes/UpdateBarcodeAmount**:更新条码数量 - **POST /api/MesInvItemBarcodes/DeleteBarcode**:删除条码 ### 其他接口 - 工单管理接口 - 报工管理接口 - 数据采集接口 - 质量检验接口 ## 注意事项 1. 报工数据计算中,anchors.InitialValue(初始值)是关键参数,需确保其正确性 2. 工单状态和首检状态会影响条码打印功能 3. 打印数量不能超过工单数量和可打印总数 ## 系统维护 当需要修正数据时(如初始值错误导致的报工数据不准确),可使用以下SQL脚本更新MesReporting表: ```sql -- 更新MesReporting表中的数据,修正初始值及相关计算字段 UPDATE MES_REPORTING r SET -- 设置正确的初始值 CS_QTY = '[正确的初始值]', -- 累计采集数 = 当前机台面板数 - 初始值 CJ_QTY = TO_CHAR(TO_NUMBER(r.JT_QTY) - TO_NUMBER('[正确的初始值]')), -- 累计不良数量 = (当前机台面板数 - 初始值 + anchors.Qty) - 已打印数量 BL_QTY = TO_CHAR((TO_NUMBER(r.JT_QTY) - TO_NUMBER('[正确的初始值]') + TO_NUMBER(NVL((SELECT a.QTY FROM MES_ANCHORS a WHERE a.ORDER_ID = r.ORDER_ID ORDER BY a.EDIT_DATE DESC FETCH FIRST 1 ROW ONLY), 0))) - TO_NUMBER(r.DY_QTY)) WHERE r.BG_DATE >= TRUNC(SYSDATE) -- 只更新今天的记录 AND r.CHECK_TYPE = 0; -- 只更新未审核的记录 ``` ## 未来优化方向 1. 增强数据校验逻辑,减少数据错误 2. 优化报工流程,提高操作效率 3. 增加数据分析功能,提供生产决策支持 4. 完善异常处理机制,提高系统稳定性