ProcessBusinessActivity - 工序业务活动
概述
ProcessBusinessActivity 是 MES 专用节点的基类,继承自 BusinessActivity,为所有工序相关的业务节点提供通用的基础设施。该类封装了配方应用、生产记录查询、点检任务检测、当前用户获取等常用功能,简化了工序节点的开发。
基本信息
| 属性 | 值 |
|---|---|
| 显示名称 | 工序业务 |
| 类名 | ProcessBusinessActivity |
| 命名空间 | CMS.Plugin.MesSuite.Activitys |
| 基类 | BusinessActivity |
| 分类 | 工序步骤 |
| 发布 | 否 |
| 排序 | 1 |
继承关系
BusinessActivity (FlowManagement.Abstractions)
└── ProcessBusinessActivity (MesSuite.Activitys)
├── GenerateCodeActivity
├── InboundInitializeActivity
├── InboundDetectionActivity
│ ├── DuplicateCodeDetectionActivity
│ ├── ProductStateDetectionActivity
│ ├── MissingProcessDetectionActivity
│ └── ProductAutomaticRepairActivity
├── OutboundInitializeActivity
├── MaterialDetectionActivity
├── MaterialVerificationActivity
├── MaterialDeductionActivity
├─ ─ MaterialIntegrityDetectionActivity
├── QualificationJudgmentActivity
├── DistributeFormulaActivity
├── ParameterCollectActivity
├── PrintLabelActivity
└── ... (其他工序节点)
提供的通用方法
1. InitFormulaApplyModel - 初始化配方应用模型
获取当前工序应用的配方信息。
protected virtual async Task<FormulaApplyModel> InitFormulaApplyModel(
ProcessModel processModel,
bool forceRefresh = false)
| 参数 | 类型 | 说明 |
|---|---|---|
| processModel | ProcessModel | 工艺模型 |
| forceRefresh | bool | 是否强制刷新(默认 false) |
返回值:FormulaApplyModel - 配方应用模型
功能说明:
- 优先从流程上下文获取已缓存的配方应用
- 如果不存在或强制刷新,则从服务查询
- 查询结果会缓存到流程上下文
2. GetProductionAsync - 获取生产记录
根据产品序列号查询生产记录、工单和产品信息。
protected virtual async Task<(
AssociationProductModel ProductModel,
OrderModel OrderModel,
ProductionRecordModel RecordModel)> GetProductionAsync(
ProcessModel processModel,
string serialNumber)
| 参数 | 类型 | 说明 |
|---|---|---|
| processModel | ProcessModel | 工艺模型 |
| serialNumber | string | 产品序列号 |
返回值:元组包含:
ProductModel- 产品型号信息OrderModel- 工单信息RecordModel- 生产记录信息
功能说明:
- 根据序列号和工位查询生产记录
- 获取当前工序的进站信息
- 根据工序段配置匹配正确的工单
- 支持工序段启用和未启用两种模式
3. HasInspectionAsync - 检测点检任务
检测当前工序是否存在执行中的点检任务。
protected virtual async Task<(
bool HasInspectionMark,
InspectionPointTaskModel InspectionPointTask)> HasInspectionAsync(
ProcessModel processModel)
| 参数 | 类型 | 说明 |
|---|---|---|
| processModel | ProcessModel | 工艺模型 |
返回值:元组包含:
HasInspectionMark- 是否存在点检任务InspectionPointTask- 点检任务模型
功能说明:
- 优先检查流程上下文中的点检任务
- 如果不存在,则查询所有点检任务提供者
- 返回第一个找到的执行中点检任务
4. GetCurrentUser - 获取当前用户
获取当前工位的登录用户信息。
protected string GetCurrentUser(ProcessModel processModel)
| 参数 | 类型 | 说明 |
|---|---|---|
| processModel | ProcessModel | 工艺模型 |
返回值:string - 用户名(多个用户以逗号分隔)
流程上下文变量
该基类使用和设置的流程上下文变量:
| 变量名 | 常量 | 类型 | 说明 |
|---|---|---|---|
| FormulaApplyModel | FlowItemCollection.FormulaApplyModel | FormulaApplyModel | 配方应用模型 |
| InspectionPointTaskModel | FlowItemCollection.InspectionPointTaskModel | InspectionPointTaskModel | 点检任务模型 |