编辑 | blame | 历史 | 原始文档

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表:

-- 更新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. 完善异常处理机制,提高系统稳定性
CLAUDE 4 KB
README 5 KB