# MES_Manage_View_V20 src/views 逐页面详细分析

生成日期：2026-05-25

分析范围：`MES_Manage_View_V20/src/views` 下 78 个 .vue/.js 文件；辅助读取 `src/api`、`config/index.js`、`static/config.js` 和 SQL 脚本。

## 重要说明

- 页面功能不是只按文件名猜测，报告同时参考页面路径、按钮/字段文案、方法名、存储过程名和 SQL 过程体。
- 存储过程处理说明来自 SQL 静态解析：读写对象、参数、返回字段、过滤条件、更新语句、分组分页、JSON、事务、SAP 链接库等。
- 如果某个过程没有解析到过程体，报告会明确说明不能准确判断内部表/视图和处理逻辑。

## 技术路线总览

- 前端：Vue 2.7、Vue Router、Vuex、Element UI，页面以 Options API 为主。
- 数据访问：页面调用 `this.CreateData(type, procedureName, params[, pageSize, pageCurrent])` 组包，再调用 `this.ExecDatabase(data)` 访问后端。
- 后端：统一接口接收 type/name/param，执行 SQL Server 存储过程，返回 `response.data` 和分页信息。
- 数据库：`YL_MESDB`，核心对象包括生产计划/生产任务、加工中心操作记录、质检记录、设备数据、权限菜单等表和视图。
- SAP：`src/api/b1s.js` 通过 `window.dt_Config.baseURLB1` 访问 B1 Service Layer；部分过程也跨库读取 `SAP.SBO_YL.dbo.*`。

## 模块汇总

| 模块 | 页面数 | 主要能力 |
|---|---:|---|
| 404.vue | 1 | 布局/静态页面 |
| AnomalousManagement | 1 | 过程 4 个 |
| CraftManagement | 1 | 过程 4 个 |
| DeviceManagement | 4 | 过程 11 个 |
| PlanManagement | 8 | 过程 22 个、直接 SAP 调用 8 处 |
| ProcessManagement | 9 | 过程 55 个、直接 SAP 调用 3 处 |
| ProductionManagement | 23 | 过程 111 个、直接 SAP 调用 15 处 |
| QualityManagement | 13 | 过程 54 个、直接 SAP 调用 7 处 |
| SaleManagement | 1 | 过程 4 个 |
| SystemMaintenance | 6 | 过程 20 个、直接 SAP 调用 2 处 |
| dashboard | 1 | 布局/静态页面 |
| layout | 9 | 过程 4 个 |
| login | 1 | 布局/静态页面 |

## SAP 交互总清单

| 页面 | 行号 | 方法 | 接口 | 提交字段线索 |
|---|---:|---|---|---|
| `src/views/PlanManagement/InstallMakePlanDo/index.vue` | 1332 | `postB1` | `/PurchaseRequests` | `ReqType`、`Requester`、`PriceMode`、`RequesterBranch`、`RequesterDepartment`、`DocDate`、`DocDueDate`、`TaxDate`、`RequriedDate`、`Comments` |
| `src/views/PlanManagement/InstallMakePlanDo/index.vue` | 1523 | `patchB1` | `/ProductionOrders(` | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`U_YJQTdate`、`优先级`、`未完成说明`、`派工特殊说明` |
| `src/views/PlanManagement/InstallMakePlan/index.vue` | 1332 | `postB1` | `/PurchaseRequests` | `ReqType`、`Requester`、`PriceMode`、`RequesterBranch`、`RequesterDepartment`、`DocDate`、`DocDueDate`、`TaxDate`、`RequriedDate`、`Comments` |
| `src/views/PlanManagement/InstallMakePlan/index.vue` | 1523 | `patchB1` | `/ProductionOrders(` | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`U_YJQTdate`、`优先级`、`未完成说明`、`派工特殊说明` |
| `src/views/PlanManagement/PlannOrderClose/index.vue` | 117 | `patchB1` | `/ProductionOrders(` | `AbsoluteEntry`、`ProductionOrderStatus` |
| `src/views/PlanManagement/SelfMakePlan/index.vue` | 1500 | `patchB1` | `/ProductionOrders(` | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`优先级`、`未完成说明`、`派工特殊说明` |
| `src/views/PlanManagement/SelfMakePlando/index.vue` | 1433 | `patchB1` | `/ProductionOrders(` | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`优先级`、`未完成说明`、`派工特殊说明` |
| `src/views/PlanManagement/SelfMakePlandone/index.vue` | 1259 | `patchB1` | `/ProductionOrders(` | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`优先级`、`未完成说明`、`派工特殊说明` |
| `src/views/ProcessManagement/ProcedureManagement/index.vue` | 155 | `postB1` | `/RouteStages` | `Code`、`Description`、`CreationDate`、`DateOfUpdate` |
| `src/views/ProcessManagement/ProcedureManagement/index.vue` | 192 | `getB1` | `/RouteStages` | `filter`、`Description`、`DateOfUpdate`、`confirmButtonText`、`cancelButtonText`、`type` |
| `src/views/ProcessManagement/ProcedureManagement/index.vue` | 198 | `patchB1` | `/RouteStages(` | `Description`、`DateOfUpdate`、`confirmButtonText`、`cancelButtonText`、`type`、`top` |
| `src/views/ProductionManagement/AssemblyCenter/index.vue` | 3561 | `getB1` | `/ProductionOrders` | `filter`、`数据`、`lines`、`请求失败` |
| `src/views/ProductionManagement/AssemblyCenter/index.vue` | 3730 | `posttm` | `/stocktask/task/issueordertask` | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |
| `src/views/ProductionManagement/MachiningCenter/index.vue` | 5751 | `posttm` | `/stocktask/task/receiptordertask` | `label` |
| `src/views/ProductionManagement/MachiningCenter/index.vue` | 6409 | `getB1` | `/ProductionOrders` | `filter`、`数据`、`lines`、`请求失败` |
| `src/views/ProductionManagement/MachiningCenter/index.vue` | 6560 | `posttm` | `/stocktask/task/issueordertask` | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |
| `src/views/ProductionManagement/OutsourceMange/index.vue` | 966 | `postB1` | `/PurchaseRequests` | `ReqType`、`Requester`、`PriceMode`、`RequesterBranch`、`RequesterDepartment`、`DocDate`、`DocDueDate`、`TaxDate`、`RequriedDate`、`Comments` |
| `src/views/ProductionManagement/SaleOutsourceMange/index.vue` | 1041 | `postB1` | `/PurchaseRequests` | `ReqType`、`Requester`、`PriceMode`、`RequesterBranch`、`RequesterDepartment`、`DocDate`、`DocDueDate`、`TaxDate`、`RequriedDate`、`Comments` |
| `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` | 1105 | `patchB1` | `ProductionOrders(${order.AbsoluteEntry})` | `ProductionOrderLines`、`ProductionOrdersStages`、`更新SAP失败`、`更新SAP工序和资源失败` |
| `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` | 2124 | `getB1` | `/ProductionOrders` | `filter` |
| `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` | 2255 | `getB1` | `/ProductionOrders` | `filter`、`加班记录`、`记录` |
| `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` | 2311 | `postB1` | `/InventoryGenExits` | `DocDate`、`DocDueDate`、`Comments`、`DocumentLines`、`处理记录失败` |
| `src/views/ProductionManagement/WorkHoursCheck/index.vue` | 577 | `getB1` | `/ProductionOrders` | `filter`、`获取订单数据失败`、`获取到工序数据`、`success`、`error`、`结构异常`、`获取到订单` |
| `src/views/ProductionManagement/WorkHoursCheck/index.vue` | 672 | `getB1` | `/ProductionOrders` | `filter`、`使用原订单` |
| `src/views/ProductionManagement/WorkHoursCheck/index.vue` | 733 | `postB1` | `/InventoryGenExits` | `DocDate`、`DocDueDate`、`Comments`、`AID`、`DocumentLines`、`success`、`error`、`提交工时单据失败`、`warning` |
| `src/views/ProductionManagement/WorkHoursCheck/index.vue` | 1482 | `patchB1` | `ProductionOrders(${order.AbsoluteEntry})` | `ProductionOrderLines`、`ProductionOrdersStages`、`更新SAP失败`、`查找设备资源`、`StageID` |
| `src/views/QualityManagement/CheckTask/materialReturn.vue` | 878 | `getB1` | `/ProductionOrders` | `filter`、`lines`、`doc_date`、`doc_type`、`external_num`、`target_type`、`task_items`、`base_type`、`item_code`、`item_name` |
| `src/views/QualityManagement/CheckTask/materialReturn.vue` | 921 | `posttm` | `/stocktask/task/receiptordertask` | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |
| `src/views/QualityManagement/CheckTask/processReceive.vue` | 820 | `postB1` | `/QueryService_PostQuery` | `QueryPath`、`QueryOption` |
| `src/views/QualityManagement/CheckTask/processReceive.vue` | 842 | `postB1` | `/PurchaseDeliveryNotes` | `CardCode`、`CardName`、`DocDate`、`DocumentLines`、`BaseEntry`、`BaseLine`、`BaseType`、`Quantity`、`U_WWPassedQty` |
| `src/views/QualityManagement/CheckTask/salesReturn.vue` | 623 | `posttm` | `/stocktask/task/issueordertask` | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |
| `src/views/QualityManagement/QualityCenter/index.vue` | 3415 | `getB1` | `/ProductionOrders` | `filter`、`数据`、`lines`、`请求失败` |
| `src/views/QualityManagement/QualityCenter/index.vue` | 3584 | `posttm` | `/stocktask/task/issueordertask` | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |
| `src/views/SystemMaintenance/WorkstationManagement/index.vue` | 201 | `patchB1` | `/Resources('` | `Name`、`message`、`type`、`VisCode`、`ForeignName` |
| `src/views/SystemMaintenance/WorkstationManagement/index.vue` | 235 | `postB1` | `/Resources` | `VisCode`、`Name`、`ForeignName`、`Type`、`Group`、`UnitOfMeasure`、`IssueMethod`、`Active`、`Inactive`、`Remarks` |

## 1. src/views/404.vue

**页面位置**：`src/views/404.vue`  
**所属模块**：404.vue  
**源码行数**：255

### 页面功能

该页面是 404 错误页，用于路由不存在时展示错误信息。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：`data`、`message`

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 2. src/views/AnomalousManagement/PunctualWork/index.vue

**页面位置**：`src/views/AnomalousManagement/PunctualWork/index.vue`  
**所属模块**：AnomalousManagement / PunctualWork  
**源码行数**：697

### 页面功能

该页面用于发现“计划应开工但现场未及时开工”的任务。用户按任务状态、工位、工序、异常原因等条件筛选，页面展示生产订单、销售订单、物料、工序、指派对象、分配数量、上序合格数、加工/收料状态和加急数量，服务于生产异常提醒和催办。

页面可见的操作/字段包括 “全部”、“待执行”、“可执行”、“已开工”、“已完成”、“item.指南工位号”、“指派对象”、“生产订单”、“销售订单”、“物料名称”，这些是判断页面业务范围的主要线索。

后端主要围绕 `异常提醒_及时开工_查询`、`MES_登录_工位与名称_查询`、`Prog_MES_LoadProcess`、`查询字典` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `异常提醒_及时开工_查询` -> `MES_登录_工位与名称_查询` -> `Prog_MES_LoadProcess` -> `查询字典` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`全部`、`待执行`、`可执行`、`已开工`、`已完成`、`item.指南工位号`、`指派对象`、`生产订单`、`销售订单`、`物料名称`、`物料编码`、`顺序`、`工序名称`、`分配数`、`上序合格数`、`加工状态`、`收料状态`、`加急数量`

主要方法线索：`searchTable`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.TaskAID ` | `@TaskAID` | `TaskAID, ` |
| 参数 | `this.orderNo2 ` | `@订单号` | `[订单编号] as 订单号, ` |
| 参数 | `this.productCode2` | `@零件编号` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@计划开工_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@计划开工_End` | - |
| 参数 | `this.productionStatus2` | `@生产状态` | - |
| 参数 | `this.Doing` | `@工位名称` | - |
| 参数 | `this.$store.state.user.id` | `@用户ID` | - |
| 参数 | `this.plannum` | `@计划号` | - |
| 参数 | `this.salenum` | `@销售订单` | - |
| 显示列 | `指派对象` | - | `指派对象` |
| 显示列 | `生产订单` | - | `[订单编号] as 订单号, ` |
| 显示列 | `销售订单` | - | `合同号, ` |
| 显示列 | `物料名称` | - | `[物料描述] as 零件名称, ` |
| 显示列 | `物料编码` | - | `[物料编号] as 零件编码, ` |
| 显示列 | `顺序` | - | `顺序` |
| 显示列 | `工序名称` | - | `[工艺编号], [工序名称]` |
| 显示列 | `分配数` | - | `分配数` |
| 显示列 | `上序合格数` | - | `上序合格数` |
| 显示列 | `加工状态` | - | `加工状态` |
| 显示列 | `收料状态` | - | `收料状态` |
| 显示列 | `加急数量` | - | `加急数量` |
| 显示列 | `下序名称` | - | `下序名称` |
| 显示列 | `加急` | - | `加急总数, ` |
| 显示列 | `优先` | - | `优先` |
| 显示列 | `首检` | - | `首检` |
| 显示列 | `序检` | - | `序检` |
| 显示列 | `内码` | - | `[订单拆分内码], ` |
| 显示列 | `完成数` | - | `完成数量` |
| 显示列 | `任务状态` | - | `任务状态` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `计划开始` | - | `计划开始` |
| 显示列 | `计划完成` | - | `计划完成` |
| 显示列 | `开工时间` | - | `[开工时间], ` |
| 显示列 | `备注` | - | `派工特殊说明, ` |
| 显示列 | `收料数` | - | `收料` |
| 输入字段 | `TaskAID` | `@TaskAID` | - |
| 输入字段 | `orderNo2` | `@订单号` | - |
| 输入字段 | `productCode2` | `@零件编号` | - |
| 输入字段 | `plannum` | `@计划号` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 555 | 11（当前通用存储过程查询/执行） | `异常提醒_及时开工_查询` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 610 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 663 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadProcess` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 675 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `异常提醒_及时开工_查询`：`@生产状态 int = -1, `；`DECLARE @whereStr nvarchar(max) = ' WHERE 排产状态 = 1 '`；`派工特殊说明, `；`case when isnull([加急状态], 0) = 1 then ''加急'' else ''否'' end as [加急], `；`[二次派工], `；`[计划完成时间] as 计划完成, `；`isnull([完成数量], 0) as 完成数量, `；`when isnull(发料状态, 0) = 1 then ''发料齐套''`

### 数据库调用链

- `src/views/AnomalousManagement/PunctualWork/index.vue` -> `异常提醒_及时开工_查询` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/AnomalousManagement/PunctualWork/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/AnomalousManagement/PunctualWork/index.vue` -> `Prog_MES_LoadProcess` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/AnomalousManagement/PunctualWork/index.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据

### 存储过程处理逻辑明细

- `异常提醒_及时开工_查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID int`、`@订单号 int`、`@零件编号 nvarchar(50)`、`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`、`@生产状态 int`、`@工位名称 nvarchar(500)`、`@用户ID nvarchar(50)`、`@计划号 nvarchar(50)`、`@销售订单 nvarchar(50)`。 主要返回字段线索：`TaskAID, `、`[订单编号] as 订单号, `、`合同号, `、`加急总数, `、`派工特殊说明, `、`[订单拆分内码], `、`[订单行号], `、`[开工时间], `、`[物料编号] as 零件编码, `、`[物料描述] as 零件名称, `。 关键过滤/匹配条件：`DECLARE @whereStr nvarchar(max) = ' WHERE 排产状态 = 1 '`；`WHERE next_task.[订单编号] = main.[订单编号]`；`AND next_task.[订单行号] = main.[订单行号] + 1`；`AND next_task.[排产状态] = 1`；`WHERE b.订单编号 = main.[订单编号]`；`AND b.订单行号 = main.[订单行号] - 1`；`AND a.检测类型编号 = 6`；`WHERE EXISTS (`；`WHERE b.订单编号 = main.订单编号`；`AND b.订单行号 = main.订单行号`。 关键写入/状态处理语句线索：`SET @whereStr = @whereStr + ' AND [指派对象] ''外协'' AND [指派对象] NOT LIKE ''%装配%'' AND [指派对象] ''期初物料'' and (计划开始时间 < 开工时间 or 开工时间 is null) and isnull(加工状态, 0) = 0 '`；`SET @whereStr = @whereStr + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @whereStr = @whereStr + ' AND [计划号] = '''+@计划号+''''`；`SET @whereStr = @whereStr + ' AND [合同号] LIKE ''%' + @销售订单 + '%'''`；`SET @whereStr = @whereStr + ' AND [TaskAID] = ' + CONVERT(VARCHAR(10), @TaskAID)`；`SET @whereStr = @whereStr + ' AND [物料编号] LIKE ''%' + @零件编号 + '%'''`；`SET @whereStr = @whereStr + ' AND [计划开始时间] < = ''' + @计划开工_End + ''''`；`SET @whereStr = @whereStr +`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) IN (0, 1, 2) '`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) = 0 '`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) = 1 '`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) = 2 '`。 排序/分组/分页线索：`ORDER BY next_task.[订单行号]) AS 下序名称, `；`SET @selStr = @selStr + @whereStr + ' ORDER BY [计划开始时间], 指派对象'`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `Prog_MES_LoadProcess` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 主要返回字段线索：`[工艺编号], [工序名称]`。 排序/分组/分页线索：`SELECT [工艺编号], [工序名称] FROM [基础表_工序] ORDER BY [工艺编号]`。
- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。

## 3. src/views/CraftManagement/CraftMaintain/index.vue

**页面位置**：`src/views/CraftManagement/CraftMaintain/index.vue`  
**所属模块**：CraftManagement / CraftMaintain  
**源码行数**：302

### 页面功能

该页面维护产品结构树。用户可以新增、编辑、删除产品结构节点，查询现有产品结构，并为后续工艺、物料、BOM 或生产任务提供层级基础数据。

页面可见的操作/字段包括 “新增”、“编辑”、“删除”、“展开”、“产品结构维护”、“产品材料维护”、“工艺参数维护”，这些是判断页面业务范围的主要线索。

后端主要围绕 `WEB_基本表_产品结构_新增`、`WEB_基本表_产品结构_查询`、`WEB_基本表_产品结构_删除`、`WEB_基本表_产品结构_修改` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `WEB_基本表_产品结构_新增` -> `WEB_基本表_产品结构_查询` -> `WEB_基本表_产品结构_删除` -> `WEB_基本表_产品结构_修改` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`新增`、`编辑`、`删除`、`展开`、`产品结构维护`、`产品材料维护`、`工艺参数维护`

主要方法线索：`handleAdd`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.productId` | `@父节点` | - |
| 参数 | `value` | `@节点名称` | - |
| 参数 | `this.PartType.substring(0, 4)` | `@节点类型` | - |
| 参数 | `this.productId` | `@子节点` | - |
| 输入字段 | `PartType` | `@节点类型` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 97 | 11（当前通用存储过程查询/执行） | `WEB_基本表_产品结构_新增` | 新增业务数据 | 未找到过程体 | 未知 |
| 110 | 11（当前通用存储过程查询/执行） | `WEB_基本表_产品结构_查询` | 查询/读取数据 | 未找到过程体 | 未知 |
| 129 | 11（当前通用存储过程查询/执行） | `WEB_基本表_产品结构_删除` | 删除业务数据 | 未找到过程体 | 未知 |
| 161 | 11（当前通用存储过程查询/执行） | `WEB_基本表_产品结构_修改` | 更新/保存业务数据 | 未找到过程体 | 未知 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/CraftManagement/CraftMaintain/index.vue` -> `WEB_基本表_产品结构_新增` -> 过程体未解析 -> 新增业务数据
- `src/views/CraftManagement/CraftMaintain/index.vue` -> `WEB_基本表_产品结构_查询` -> 过程体未解析 -> 查询/读取数据
- `src/views/CraftManagement/CraftMaintain/index.vue` -> `WEB_基本表_产品结构_删除` -> 过程体未解析 -> 删除业务数据
- `src/views/CraftManagement/CraftMaintain/index.vue` -> `WEB_基本表_产品结构_修改` -> 过程体未解析 -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `WEB_基本表_产品结构_新增` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `WEB_基本表_产品结构_查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `WEB_基本表_产品结构_删除` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 删除业务数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `WEB_基本表_产品结构_修改` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。

## 4. src/views/DeviceManagement/DeviceDataHistory/index.vue

**页面位置**：`src/views/DeviceManagement/DeviceDataHistory/index.vue`  
**所属模块**：DeviceManagement / DeviceDataHistory  
**源码行数**：183

### 页面功能

该页面查询设备历史采集数据。用户按工位/设备、参数名称、起止时间分页查询历史记录，用于追溯设备运行参数。

页面可见的操作/字段包括 “查询”、“item.name”、“设备名称”、“参数名称”、“设备编号”、“数值”、“单位”、“采集时间”、“结束日期”、“开始日期”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`设备管理_设备数据_历史查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `设备管理_设备数据_历史查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`item.name`、`设备名称`、`参数名称`、`设备编号`、`数值`、`单位`、`采集时间`、`结束日期`、`开始日期`、`请选择设备`、`请输入参数名称`

主要方法线索：`getbasedata`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.pageCurrent` | `@PageCurrent` | - |
| 参数 | `this.pageSize` | `@PageSize` | - |
| 参数 | `'1111', 'int', '1'` | `@PageCount` | - |
| 参数 | `'1111', 'int', '1'` | `@ItemCount` | - |
| 参数 | `this.completionTime[0` | `@开始时间` | - |
| 参数 | `this.completionTime[1` | `@结束时间` | - |
| 参数 | `this.equipmentType` | `@设备名称` | - |
| 参数 | `this.dataname` | `@参数名称` | - |
| 显示列 | `设备名称` | - | `Zone` |
| 显示列 | `参数名称` | - | `TagName` |
| 显示列 | `设备编号` | - | `TagID` |
| 显示列 | `数值` | - | `数值` |
| 显示列 | `单位` | - | `TagUnit` |
| 显示列 | `采集时间` | - | `采集时间` |
| 输入字段 | `completionTime` | `@开始时间` | - |
| 输入字段 | `equipmentType` | `@设备名称` | - |
| 输入字段 | `dataname` | `@参数名称` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 142 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 162 | 11（当前通用存储过程查询/执行） | `设备管理_设备数据_历史查询` | 查询/读取数据 | 分页 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `设备管理_设备数据_历史查询`：`, [在线状态]`

### 数据库调用链

- `src/views/DeviceManagement/DeviceDataHistory/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/DeviceManagement/DeviceDataHistory/index.vue` -> `设备管理_设备数据_历史查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `设备管理_设备数据_历史查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：分页。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`、`@结束时间 nvarchar(50),`、`@开始时间 nvarchar(50),`、`@设备名称 nvarchar(50),`、`@参数名称 nvarchar(50)`。 关键过滤/匹配条件：`declare @where nvarchar(1000)`；`set @where = ' 1 = 1 '`；`SET @where = @where + N' AND 工位号 = ''' + REPLACE(@设备名称, '''', '''''') + '''';`；`SET @where = @where + N' AND 变量名称 LIKE ''%' + REPLACE(@参数名称, '''', '''''') + '%''';`；`SET @where = @where + N' AND 创建时间 > = ''' + REPLACE(@开始时间, '''', '''''') + '''';`；`SET @where = @where + N' AND 创建时间 < = ''' + REPLACE(@结束时间, '''', '''''') + '''';`；`exec [dbo].[sp_xt_pagesplit] @tbname, @fieldkey, @where, @fieldshow, @fieldOrder, @PageCurrent, @PageSize, @PageCount out, @ItemCount out`。 关键写入/状态处理语句线索：`set @tbname = '历史_设备数据_定时'`；`set @fieldkey = 'AID'`；`set @where = ' 1 = 1 '`；`set @fieldOrder = ''`；`set @fieldshow = '[AID]`；`SET @where = @where + N' AND 工位号 = ''' + REPLACE(@设备名称, '''', '''''') + '''';`；`SET @where = @where + N' AND 变量名称 LIKE ''%' + REPLACE(@参数名称, '''', '''''') + '%''';`；`SET @开始时间 = @开始时间 + ' 00:00:00.000'`；`SET @结束时间 = @结束时间 + ' 23:59:59.999'`；`SET @where = @where + N' AND 创建时间 > = ''' + REPLACE(@开始时间, '''', '''''') + '''';`；`SET @where = @where + N' AND 创建时间 < = ''' + REPLACE(@结束时间, '''', '''''') + '''';`。 实现特征：分页。

## 5. src/views/DeviceManagement/DeviceInformation/index.vue

**页面位置**：`src/views/DeviceManagement/DeviceInformation/index.vue`  
**所属模块**：DeviceManagement / DeviceInformation  
**源码行数**：434

### 页面功能

该页面维护设备台账和设备相关基础资料。用户可以查询设备信息，新增、修改、删除设备，维护维修记录、工时记录或点检配置。

页面可见的操作/字段包括 “查询”、“设备”、“--> 取消”、“确定”、“item.name”、“设备名称”、“设备型号”、“设备类型”、“加工工艺”、“工位”，这些是判断页面业务范围的主要线索。

后端主要围绕 `查询字典`、`设备管理_设备信息_查询`、`设备管理_设备信息_增加`、`设备管理_设备信息_编辑`、`设备管理_设备信息_删除` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `查询字典` -> `设备管理_设备信息_查询` -> `设备管理_设备信息_增加` -> `设备管理_设备信息_编辑` -> `设备管理_设备信息_删除` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`设备`、`--> 取消`、`确定`、`item.name`、`设备名称`、`设备型号`、`设备类型`、`加工工艺`、`工位`、`工时单价(元/小时)`、`月设备加工能力`、`点检类型名称`、`操作`、`item.label`、`工位号`、`工时单价`、`点检类型`

主要方法线索：`getbasedata`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `设备名称` | - | `设备名称` |
| 显示列 | `设备型号` | - | `设备型号` |
| 显示列 | `设备类型` | - | `*, [dbo].[YL_基础表_数据字典].词条名称 as 设备类型名称` |
| 显示列 | `加工工艺` | - | `加工工艺` |
| 显示列 | `工位` | - | `工位` |
| 显示列 | `工时单价(元/小时)` | - | `工时单价(元/小时)` |
| 显示列 | `月设备加工能力` | - | `月设备加工能力` |
| 显示列 | `点检类型名称` | - | `点检类型名称` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `equipmentName` | - | - |
| 输入字段 | `equipmentType` | - | - |
| 输入字段 | `opName` | - | - |
| 输入字段 | `form.设备名称` | - | - |
| 输入字段 | `form.设备型号` | - | - |
| 输入字段 | `form.设备类型` | - | - |
| 输入字段 | `form.加工工艺` | - | - |
| 输入字段 | `form.工位号` | - | - |
| 输入字段 | `form.工时单价` | - | - |
| 输入字段 | `form.月设备加工能力` | - | - |
| 输入字段 | `form.点检类型` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 235 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 257 | 11（当前通用存储过程查询/执行） | `设备管理_设备信息_查询` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 318 | 12（当前通用存储过程写入/业务动作） | `设备管理_设备信息_增加` | 新增业务数据 | 查询、新增、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 351 | 12（当前通用存储过程写入/业务动作） | `设备管理_设备信息_编辑` | 更新/保存业务数据 | 更新、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 378 | 12（当前通用存储过程写入/业务动作） | `设备管理_设备信息_编辑` | 更新/保存业务数据 | 更新、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 404 | 12（当前通用存储过程写入/业务动作） | `设备管理_设备信息_删除` | 删除业务数据 | 查询、删除 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/DeviceManagement/DeviceInformation/index.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/DeviceManagement/DeviceInformation/index.vue` -> `设备管理_设备信息_查询` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/DeviceManagement/DeviceInformation/index.vue` -> `设备管理_设备信息_增加` -> 未在 SQL 中解析到明确依赖 -> 新增业务数据
- `src/views/DeviceManagement/DeviceInformation/index.vue` -> `设备管理_设备信息_编辑` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/DeviceManagement/DeviceInformation/index.vue` -> `设备管理_设备信息_编辑` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/DeviceManagement/DeviceInformation/index.vue` -> `设备管理_设备信息_删除` -> 未在 SQL 中解析到明确依赖 -> 删除业务数据

### 存储过程处理逻辑明细

- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `设备管理_设备信息_查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 入参/分页参数：`@设备名称_check bit`、`@设备名称 nvarchar(50)`、`@设备类型_check bit`、`@设备类型 int`、`@工位_check bit`、`@工位 nvarchar(50)`。 主要返回字段线索：`*, [dbo].[YL_基础表_数据字典].词条名称 as 设备类型名称`。 关键过滤/匹配条件：`set @selectStrWhere = 'where 1 = 1 '`；`set @selectStrWhere = @selectStrWhere+' and 设备名称 like + ''%'' + @设备名称 + ''%'' '`；`set @selectStrWhere = @selectStrWhere+' and 基础数据_设备工位点检表.设备类型 = @设备类型'`。 关键写入/状态处理语句线索：`set @selectStr = `；`set @selectStrWhere = 'where 1 = 1 '`；`set @selectStrWhere = @selectStrWhere+' and 设备名称 like + ''%'' + @设备名称 + ''%'' '`；`set @selectStrWhere = @selectStrWhere+' and 基础数据_设备工位点检表.设备类型 = @设备类型'`；`set @selectStr = @selectStr+@selectStrWhere`。
- `设备管理_设备信息_增加` 属于 设备与实时数据，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`基础数据_设备工位点检表`。 入参/分页参数：`@设备名称 nvarchar(50)`、`@设备类型 nvarchar(50)`、`@设备型号 nvarchar(50)`、`@加工工艺 int`、`@点检类型 int`、`@工位 nvarchar(50)`、`@工时单价 float`、`@月设备加工能力 float`。 关键写入/状态处理语句线索：`insert into 基础数据_设备工位点检表(设备名称, 设备型号, 设备类型)values(@设备名称, @设备型号, @设备类型)`。
- `设备管理_设备信息_编辑` 属于 设备与实时数据，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`基础数据_设备工位点检表`。 入参/分页参数：`@设备流水号 int`、`@设备名称 nvarchar(50)`、`@设备类型 nvarchar(50)`、`@设备型号 nvarchar(50)`、`@加工工艺 int`、`@点检类型 int`、`@工位 nvarchar(50)`、`@原工位 nvarchar(50)`、`@工时单价 float`、`@月设备加工能力 float`。 关键过滤/匹配条件：`update 基础数据_设备工位点检表 set 设备名称 = @设备名称, 设备型号 = @设备型号, 设备类型 = @设备类型 where 设备流水号 = @设备流水号`。 关键写入/状态处理语句线索：`update 基础数据_设备工位点检表 set 设备名称 = @设备名称, 设备型号 = @设备型号, 设备类型 = @设备类型 where 设备流水号 = @设备流水号`。
- `设备管理_设备信息_编辑` 属于 设备与实时数据，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`基础数据_设备工位点检表`。 入参/分页参数：`@设备流水号 int`、`@设备名称 nvarchar(50)`、`@设备类型 nvarchar(50)`、`@设备型号 nvarchar(50)`、`@加工工艺 int`、`@点检类型 int`、`@工位 nvarchar(50)`、`@原工位 nvarchar(50)`、`@工时单价 float`、`@月设备加工能力 float`。 关键过滤/匹配条件：`update 基础数据_设备工位点检表 set 设备名称 = @设备名称, 设备型号 = @设备型号, 设备类型 = @设备类型 where 设备流水号 = @设备流水号`。 关键写入/状态处理语句线索：`update 基础数据_设备工位点检表 set 设备名称 = @设备名称, 设备型号 = @设备型号, 设备类型 = @设备类型 where 设备流水号 = @设备流水号`。
- `设备管理_设备信息_删除` 属于 设备与实时数据，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、删除。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`基础数据_设备工位点检表`。 入参/分页参数：`@设备流水号 int`。 关键过滤/匹配条件：`delete from 基础数据_设备工位点检表 where 设备流水号 = @设备流水号`。 关键写入/状态处理语句线索：`delete from 基础数据_设备工位点检表 where 设备流水号 = @设备流水号`。

## 6. src/views/DeviceManagement/DeviceRealData/index.vue

**页面位置**：`src/views/DeviceManagement/DeviceRealData/index.vue`  
**所属模块**：DeviceManagement / DeviceRealData  
**源码行数**：306

### 页面功能

该页面展示设备实时或近实时数据。用户按工位和数据类型查询当前采集值、统计值或状态，通常用于设备运行监控。

页面可见的操作/字段包括 “查询”、“item.name”、“设备名称”、“参数名称”、“参数值”、“操作”、“开始时间”、“结束时间”、“状态”、“时长(m)”，这些是判断页面业务范围的主要线索。

后端主要围绕 `设备管理_设备数据_工位信息_查询`、`设备管理_设备数据_统计数据查询`、`设备管理_设备数据_统计数据查询_通过类型` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `设备管理_设备数据_工位信息_查询` -> `设备管理_设备数据_统计数据查询` -> `设备管理_设备数据_统计数据查询_通过类型` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`item.name`、`设备名称`、`参数名称`、`参数值`、`操作`、`开始时间`、`结束时间`、`状态`、`时长(m)`、`订单编号`、`加工时长`、`采集时间`、`结束日期`、`开始日期`、`请选择设备`

主要方法线索：`getbasedata`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.pageCurrent` | `@PageCurrent` | - |
| 参数 | `this.pageSize` | `@PageSize` | - |
| 参数 | `'1111', 'int', '1'` | `@PageCount` | - |
| 参数 | `'1111', 'int', '1'` | `@ItemCount` | - |
| 参数 | `this.completionTime[0` | `@开始时间` | - |
| 参数 | `this.completionTime[1` | `@结束时间` | - |
| 参数 | `this.equipmentType` | `@设备名称` | - |
| 参数 | `row.参数名称` | `@参数名称` | - |
| 参数 | `row.数据类型` | `@数据类型` | - |
| 显示列 | `设备名称` | - | `Zone` |
| 显示列 | `参数名称` | - | `TagName` |
| 显示列 | `参数值` | - | `参数值` |
| 显示列 | `操作` | - | `操作` |
| 显示列 | `开始时间` | - | `Zone` |
| 显示列 | `结束时间` | - | `TagName` |
| 显示列 | `状态` | - | `工位号, 设备状态, @状态名称 as 状态名称, convert(varchar(16), 创建时间, 121) as 创建时间` |
| 显示列 | `时长(m)` | - | `时长(m)` |
| 显示列 | `订单编号` | - | `Zone` |
| 显示列 | `加工时长` | - | `TagName` |
| 显示列 | `采集时间` | - | `采集时间` |
| 输入字段 | `completionTime` | `@开始时间` | - |
| 输入字段 | `equipmentType` | `@设备名称` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 170 | 11（当前通用存储过程查询/执行） | `设备管理_设备数据_工位信息_查询` | 查询/读取数据 | 查询、新增 | 未在 SQL 中解析到明确依赖 |
| 200 | 11（当前通用存储过程查询/执行） | `设备管理_设备数据_统计数据查询` | 查询/读取数据 | 查询、新增、处理报工/工时 | 表：`YL_设备管理_工时记录` |
| 283 | 11（当前通用存储过程查询/执行） | `设备管理_设备数据_统计数据查询_通过类型` | 查询/读取数据 | 查询、处理报工/工时 | 表：`YL_设备管理_工时记录` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `设备管理_设备数据_统计数据查询`：`select top 1 @开机时刻 = convert(varchar(19), 创建时间, 121) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = 1 order by 创建时间`；`select @停机时长 = count(1) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = 0`；`select @报警时长 = count(1) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = 2`；`select @关机时长 = count(1) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = -1`
- `设备管理_设备数据_统计数据查询_通过类型`：`declare @设备状态 int = -999`；`declare @状态名称 nvarchar(50) = '未知'`；`if(@参数名称 = '开机时刻') begin set @设备状态 = 0 set @状态名称 = '开机' end`；`if(@参数名称 = '停机时长') begin set @设备状态 = 0 set @状态名称 = '停机' end`；`if(@参数名称 = '报警时长') begin set @设备状态 = 2 set @状态名称 = '报警' end`；`if(@参数名称 = '关机时长') begin set @设备状态 = -1 set @状态名称 = '关机' end`；`select 工位号, 设备状态, @状态名称 as 状态名称, convert(varchar(16), 创建时间, 121) as 创建时间 from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = @设备状态 order by 创建时间`

### 数据库调用链

- `src/views/DeviceManagement/DeviceRealData/index.vue` -> `设备管理_设备数据_工位信息_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/DeviceManagement/DeviceRealData/index.vue` -> `设备管理_设备数据_统计数据查询` -> 表：`YL_设备管理_工时记录` -> 查询/读取数据
- `src/views/DeviceManagement/DeviceRealData/index.vue` -> `设备管理_设备数据_统计数据查询_通过类型` -> 表：`YL_设备管理_工时记录` -> 查询/读取数据

### 存储过程处理逻辑明细

- `设备管理_设备数据_工位信息_查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、新增。 读取/关联对象：未在 SQL 中解析到明确依赖。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`insert into @TempTable (工位名称, 工位号)values('加3', '加3')`。
- `设备管理_设备数据_统计数据查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`YL_设备管理_工时记录`。 入参/分页参数：`@结束时间 nvarchar(50),`、`@开始时间 nvarchar(50),`、`@设备名称 nvarchar(50)`。 主要返回字段线索：`top 1 @开机时刻 = convert(varchar(19), 创建时间, 121)`。 关键过滤/匹配条件：`select top 1 @开机时刻 = convert(varchar(19), 创建时间, 121) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = 1 order by 创建时间`；`select @停机时长 = count(1) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = 0`；`select @报警时长 = count(1) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = 2`；`select @关机时长 = count(1) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = -1`；`select @程序时长 = sum(循环时间) from [YL_设备管理_工时记录] where 指派对象 = @设备名称 and 采集时间 > = @开始时间 and 采集时间 < = @结束时间`。 关键写入/状态处理语句线索：`set @开始时间 = @开始时间 + ' 00:00:00.000'`；`set @结束时间 = @结束时间 + ' 23:59:59.999'`；`insert into @TempTable (设备名称, 参数名称, 参数值, 数据类型)values(@设备名称, '开机时刻', @开机时刻, 0)`；`insert into @TempTable (设备名称, 参数名称, 参数值, 数据类型)values(@设备名称, '停机时长', @停机时长, 1)`；`insert into @TempTable (设备名称, 参数名称, 参数值, 数据类型)values(@设备名称, '关机时长', @关机时长, 1)`；`insert into @TempTable (设备名称, 参数名称, 参数值, 数据类型)values(@设备名称, '报警时长', @报警时长, 1)`；`insert into @TempTable (设备名称, 参数名称, 参数值, 数据类型)values(@设备名称, '程序时长', @程序时长, 2)`。 排序/分组/分页线索：`select top 1 @开机时刻 = convert(varchar(19), 创建时间, 121) from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = 1 order by 创建时间`。
- `设备管理_设备数据_统计数据查询_通过类型` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`YL_设备管理_工时记录`。 入参/分页参数：`@结束时间 nvarchar(50),`、`@开始时间 nvarchar(50),`、`@设备名称 nvarchar(50),`、`@参数名称 nvarchar(50),`、`@数据类型 int`。 主要返回字段线索：`工位号, 设备状态, @状态名称 as 状态名称, convert(varchar(16), 创建时间, 121) as 创建时间`。 关键过滤/匹配条件：`select 工位号, 设备状态, @状态名称 as 状态名称, convert(varchar(16), 创建时间, 121) as 创建时间 from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = @设备状态 order by 创建时间`；`select * from [YL_设备管理_工时记录] where 指派对象 = @设备名称 and 采集时间 > = @开始时间 and 采集时间 < = @结束时间 order by 采集时间`。 关键写入/状态处理语句线索：`SET @开始时间 = @开始时间 + ' 00:00:00.000'`；`SET @结束时间 = @结束时间 + ' 23:59:59.999'`；`if(@参数名称 = '开机时刻') begin set @设备状态 = 0 set @状态名称 = '开机' end`；`if(@参数名称 = '停机时长') begin set @设备状态 = 0 set @状态名称 = '停机' end`；`if(@参数名称 = '报警时长') begin set @设备状态 = 2 set @状态名称 = '报警' end`；`if(@参数名称 = '关机时长') begin set @设备状态 = -1 set @状态名称 = '关机' end`。 排序/分组/分页线索：`select 工位号, 设备状态, @状态名称 as 状态名称, convert(varchar(16), 创建时间, 121) as 创建时间 from 历史_工位设备状态每分钟记录 where [工位号] = @设备名称 and 创建时间 > = @开始时间 and 创建时间 < = @结束时间 and 设备状态 = @设备状态 order by 创建时间`；`select * from [YL_设备管理_工时记录] where 指派对象 = @设备名称 and 采集时间 > = @开始时间 and 采集时间 < = @结束时间 order by 采集时间`。

## 7. src/views/DeviceManagement/Devicedata/index.vue

**页面位置**：`src/views/DeviceManagement/Devicedata/index.vue`  
**所属模块**：DeviceManagement / Devicedata  
**源码行数**：165

### 页面功能

该页面面向设备采集数据管理，查询缓存变量和设备数据，支持按设备、参数、时间等维度查看实时或历史采集结果。

页面可见的操作/字段包括 “查询”、“item.name”、“设备名称”、“参数名称”、“设备编号”、“数值”、“单位”、“更新时间”、“请选择设备”、“请输入参数名称”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`设备管理_设备数据查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `设备管理_设备数据查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`item.name`、`设备名称`、`参数名称`、`设备编号`、`数值`、`单位`、`更新时间`、`请选择设备`、`请输入参数名称`

主要方法线索：`getbasedata`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.pageCurrent` | `@PageCurrent` | - |
| 参数 | `this.pageSize` | `@PageSize` | - |
| 参数 | `'1111', 'int', '1'` | `@PageCount` | - |
| 参数 | `'1111', 'int', '1'` | `@ItemCount` | - |
| 参数 | `this.equipmentType` | `@设备名称` | - |
| 参数 | `this.dataname` | `@参数名称` | - |
| 显示列 | `设备名称` | - | `[Zone], ` |
| 显示列 | `参数名称` | - | `[TagName], ` |
| 显示列 | `设备编号` | - | `[TagID], ` |
| 显示列 | `数值` | - | `数值` |
| 显示列 | `单位` | - | `TagUnit` |
| 显示列 | `更新时间` | - | `更新时间` |
| 输入字段 | `equipmentType` | `@设备名称` | - |
| 输入字段 | `dataname` | `@参数名称` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 126 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 144 | 11（当前通用存储过程查询/执行） | `设备管理_设备数据查询` | 查询/读取数据 | 查询、分页 | 表：`CaChe_Var` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `设备管理_设备数据查询`：`WHEN [TagName] = N''设备状态'' THEN`

### 数据库调用链

- `src/views/DeviceManagement/Devicedata/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/DeviceManagement/Devicedata/index.vue` -> `设备管理_设备数据查询` -> 表：`CaChe_Var` -> 查询/读取数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `设备管理_设备数据查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、分页。 读取/关联对象：表：`CaChe_Var`。 入参/分页参数：`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`、`@设备名称 nvarchar(50),`、`@参数名称 nvarchar(50)`。 主要返回字段线索：`[AID], `、`[CreateTime], `、`[UpdateTime], `、`[Zone], `、`[Sort], `、`[TagID], `、`[TagName], `、`CASE`、`WHEN [TagName] = N''操作模式'' THEN`、`CASE TRY_CAST([TagValue] AS INT)`。 关键过滤/匹配条件：`DECLARE @where NVARCHAR(4000) = N' WHERE 1 = 1 ';`；`SET @where = @where + N' AND Zone = ''' + REPLACE(@设备名称, '''', '''''') + '''';`；`SET @where = @where + N' AND TagName LIKE ''%' + REPLACE(@参数名称, '''', '''''') + '%''';`；`SET @selectStr = @selectStr + @where;`。 关键写入/状态处理语句线索：`SET @where = @where + N' AND Zone = ''' + REPLACE(@设备名称, '''', '''''') + '''';`；`SET @where = @where + N' AND TagName LIKE ''%' + REPLACE(@参数名称, '''', '''''') + '%''';`；`SET @selectStr = N'`；`SET @selectStr = @selectStr + @where;`。

## 8. src/views/PlanManagement/InstallMakePlanDo/index.vue

**页面位置**：`src/views/PlanManagement/InstallMakePlanDo/index.vue`  
**所属模块**：PlanManagement / InstallMakePlanDo  
**源码行数**：1763

### 页面功能

该页面处理装配件排产。用户查询待排产/已排产装配任务，选择工位和人员，修改计划开工/完成时间、优先级、说明，执行单条派工、二次派工、批量确认排产，并在确认时同步 SAP 生产订单状态或创建相关请求。

页面可见的操作/字段包括 “查询”、“批量排产”、“排产完成”、“确定”、“派工”、“计划排产”、“编辑”、“取 消”、“确 定”、“全部”，这些是判断页面业务范围的主要线索。

后端主要围绕 `计划排产_生产订单_已排产订单查询`、`MES_登录_工位与名称_查询`、`MES_OrderPlanned_Queryzp`、`Prog_MES_LoadStations`、`系统管理_人员管理_所有有效人员查询`、`MES_OrderPlanned_EditTaskPlanned` 等过程 取数或提交业务动作。

### 页面流程图

装配排产流程：

```mermaid
flowchart LR
  A[输入订单/合同/物料/工序/时间条件] --> B[MES_OrderPlanned_Queryzp 查询装配任务]
  B --> C[选择任务]
  C --> D[Prog_MES_LoadStations 选择工位]
  D --> E[系统管理_人员管理_所有有效人员查询 选择人员]
  E --> F[计划排产_派工 或 MES_OrderPlanned_SingleTaskPlanned]
  F --> G[计划排产_二次派工]
  G --> H[MES_OrderPlanned_Finish 确认排产]
  H --> I[PATCH /ProductionOrders(...) 或 POST SAP 请求]
  I --> J[刷新排产结果]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`批量排产`、`排产完成`、`确定`、`派工`、`计划排产`、`编辑`、`取 消`、`确 定`、`全部`、`已完成`、`未完成`、`item.指南工位号`、`表单`、`序号`、`生产订单`、`计划号`、`物料编码`

主要方法线索：`getCurrentTime`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo ` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.productCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.productName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.nature` | `@性质` | - |
| 参数 | `this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.planendTime[0` | `@计划完成1` | - |
| 参数 | `this.planendTime[1` | `@计划完成2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `this.station` | `@指派对象` | - |
| 参数 | `this.doneorderNo ` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.donecontractNo` | `@合同号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.doneproductCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneproductName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneprocessName` | `@工序名称` | - |
| 参数 | `this.donenature` | `@性质` | - |
| 参数 | `this.doneproductionStatus` | `@排产状态` | - |
| 参数 | `editstr` | `@editstr` | - |
| 参数 | `row.订单号` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `row.订单行号` | `@订单行号` | - |
| 参数 | `row.拆分内码` | `@订单拆分内码` | - |
| 参数 | `row.taskaid` | `@TaskAID` | - |
| 参数 | `row.二次派工` | `@personnel` | - |
| 参数 | `row.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@派工操作人` | - |
| 参数 | `row.指派对象编号` | `@指派对象编号` | - |
| 参数 | `row.指派对象` | `@指派对象` | - |
| 参数 | `this.editnumber` | `@指派数量` | - |
| 参数 | `row.计划开始时间` | `@计划开始时间` | - |
| 参数 | `row.计划完成时间` | `@计划完成时间` | - |
| 参数 | `row.最晚开始时间` | `@最晚开始时间` | - |
| 参数 | `item.订单号` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `item.订单行号` | `@订单行号` | - |
| 参数 | `item.拆分内码` | `@订单拆分内码` | - |
| 参数 | `item.指派对象编号` | `@指派对象编号` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 816 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单_已排产订单查询` | 查询/读取数据 | 查询、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 965 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 1034 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Queryzp` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 1089 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Queryzp` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 1124 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 1137 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 1177 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1194 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1211 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1228 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1242 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1251 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1325 | 12（当前通用存储过程写入/业务动作） | `计划排产_派工` | 计划排产或派工 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1378 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1409 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1531 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Finish` | 确认/关闭/完成业务动作 | 查询、更新、解析 JSON 批量数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1560 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1641 | 12（当前通用存储过程写入/业务动作） | `计划排产_自制件_日程时间修改` | 更新/保存业务数据 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 1332 行：`postB1("/PurchaseRequests")`
- 第 1523 行：`patchB1("/ProductionOrders(")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 1332 | `postB1` | `/PurchaseRequests` | 调用外部接口，失败会影响对应外部系统同步。 | `ReqType`、`Requester`、`PriceMode`、`RequesterBranch`、`RequesterDepartment`、`DocDate`、`DocDueDate`、`TaxDate`、`RequriedDate`、`Comments`、`DocumentLines`、`ItemCode` |
| 1523 | `patchB1` | `/ProductionOrders(` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`U_YJQTdate`、`优先级`、`未完成说明`、`派工特殊说明` |

### 状态流转说明

- `计划排产_生产订单_已排产订单查询`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_已排产订单查询]`；`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`
- `MES_OrderPlanned_Queryzp`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], `；`FROM dbo.YL_质量检验_质检记录`
- `MES_OrderPlanned_Queryzp`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], `；`FROM dbo.YL_质量检验_质检记录`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `计划排产_派工`：`CREATE PROCEDURE [dbo].[计划排产_派工]`；`@派工操作人 NVARCHAR(50)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`[派工状态] = 1`；`, [派工时间] = getdate()`；`, [派工操作人] = @派工操作人`；`'成功' AS 状态, `
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_Finish`：`@任务列表 NVARCHAR(MAX), `；`@派工操作人 NVARCHAR(MAX)`；`t.[排产状态] = 1, `；`t.[任务状态] = 0, `；`t.派工特殊说明 = j.派工特殊说明, `；`t.计划完成时间 = j.计划完成时间, `；`t.派工操作人 = @派工操作人, `；`t.最后编辑人 = @派工操作人, `
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `计划排产_自制件_日程时间修改`：`CREATE PROCEDURE [dbo].[计划排产_自制件_日程时间修改]`；`@计划完成时间 nvarchar(50) = ''`；`IF @计划完成时间 ''`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`UPDATE [MES_接口_生产计划_生产任务]`；`计划完成时间 = @EndTime`；`AND ISNULL(派工状态, 0) = 0`；`SELECT '0' AS result, '未找到符合条件的记录或派工状态不为0' AS message`

### 数据库调用链

- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `计划排产_生产订单_已排产订单查询` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_Queryzp` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_Queryzp` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `计划排产_派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_Finish` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 确认/关闭/完成业务动作
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlanDo/index.vue` -> `计划排产_自制件_日程时间修改` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `计划排产_生产订单_已排产订单查询` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_OrderPlanned_Queryzp` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] like ''%装配%'''`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `MES_OrderPlanned_Queryzp` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] like ''%装配%'''`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `计划排产_派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE AID IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET`。 实现特征：事务控制、临时表 `#TempOrders`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_Finish` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 确认/关闭/完成业务动作。 数据库处理摘要：查询、更新、解析 JSON 批量数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@任务列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(MAX)`。 主要返回字段线索：`TaskAID = JSON_VALUE(value, '$.taskaid'), `、`指派对象 = JSON_VALUE(value, '$."指派对象"'), `、`指派数量 = JSON_VALUE(value, '$."指派数量"'), `、`指派对象编号 = JSON_VALUE(value, '$."指派对象编号"'), `、`派工特殊说明 = JSON_VALUE(value, '$."派工特殊说明"'), `、`计划开始时间 = JSON_VALUE(value, '$."计划开始时间"'), `、`计划完成时间 = JSON_VALUE(value, '$."计划完成时间"'), `、`最晚开始时间 = JSON_VALUE(value, '$."最晚开始时间"')`。 关键写入/状态处理语句线索：`UPDATE t`；`SET`。 实现特征：JSON 批量解析。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `计划排产_自制件_日程时间修改` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int`、`@订单拆分内码 int`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号`；`AND 订单行号 = @订单行号`；`AND 订单拆分内码 = @订单拆分内码`；`AND ISNULL(派工状态, 0) = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @StartTime = CONVERT(datetime, @计划开始时间, 120)`；`SET @StartTime = NULL`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`SET @EndTime = NULL`；`UPDATE [MES_接口_生产计划_生产任务]`；`SET 计划开始时间 = @StartTime, `。 实现特征：异常捕获。

## 9. src/views/PlanManagement/InstallMakePlan/index.vue

**页面位置**：`src/views/PlanManagement/InstallMakePlan/index.vue`  
**所属模块**：PlanManagement / InstallMakePlan  
**源码行数**：1763

### 页面功能

该页面处理装配件排产。用户查询待排产/已排产装配任务，选择工位和人员，修改计划开工/完成时间、优先级、说明，执行单条派工、二次派工、批量确认排产，并在确认时同步 SAP 生产订单状态或创建相关请求。

页面可见的操作/字段包括 “查询”、“批量排产”、“排产完成”、“确定”、“派工”、“计划排产”、“编辑”、“取 消”、“确 定”、“全部”，这些是判断页面业务范围的主要线索。

后端主要围绕 `计划排产_生产订单_已排产订单查询`、`MES_登录_工位与名称_查询`、`MES_OrderPlanned_Queryzp`、`Prog_MES_LoadStations`、`系统管理_人员管理_所有有效人员查询`、`MES_OrderPlanned_EditTaskPlanned` 等过程 取数或提交业务动作。

### 页面流程图

装配排产流程：

```mermaid
flowchart LR
  A[输入订单/合同/物料/工序/时间条件] --> B[MES_OrderPlanned_Queryzp 查询装配任务]
  B --> C[选择任务]
  C --> D[Prog_MES_LoadStations 选择工位]
  D --> E[系统管理_人员管理_所有有效人员查询 选择人员]
  E --> F[计划排产_派工 或 MES_OrderPlanned_SingleTaskPlanned]
  F --> G[计划排产_二次派工]
  G --> H[MES_OrderPlanned_Finish 确认排产]
  H --> I[PATCH /ProductionOrders(...) 或 POST SAP 请求]
  I --> J[刷新排产结果]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`批量排产`、`排产完成`、`确定`、`派工`、`计划排产`、`编辑`、`取 消`、`确 定`、`全部`、`已完成`、`未完成`、`item.指南工位号`、`表单`、`序号`、`生产订单`、`计划号`、`物料编码`

主要方法线索：`getCurrentTime`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo ` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.productCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.productName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.nature` | `@性质` | - |
| 参数 | `this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.planendTime[0` | `@计划完成1` | - |
| 参数 | `this.planendTime[1` | `@计划完成2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `this.station` | `@指派对象` | - |
| 参数 | `this.doneorderNo ` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.donecontractNo` | `@合同号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.doneproductCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneproductName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneprocessName` | `@工序名称` | - |
| 参数 | `this.donenature` | `@性质` | - |
| 参数 | `this.doneproductionStatus` | `@排产状态` | - |
| 参数 | `editstr` | `@editstr` | - |
| 参数 | `row.订单号` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `row.订单行号` | `@订单行号` | - |
| 参数 | `row.拆分内码` | `@订单拆分内码` | - |
| 参数 | `row.taskaid` | `@TaskAID` | - |
| 参数 | `row.二次派工` | `@personnel` | - |
| 参数 | `row.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@派工操作人` | - |
| 参数 | `row.指派对象编号` | `@指派对象编号` | - |
| 参数 | `row.指派对象` | `@指派对象` | - |
| 参数 | `this.editnumber` | `@指派数量` | - |
| 参数 | `row.计划开始时间` | `@计划开始时间` | - |
| 参数 | `row.计划完成时间` | `@计划完成时间` | - |
| 参数 | `row.最晚开始时间` | `@最晚开始时间` | - |
| 参数 | `item.订单号` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `item.订单行号` | `@订单行号` | - |
| 参数 | `item.拆分内码` | `@订单拆分内码` | - |
| 参数 | `item.指派对象编号` | `@指派对象编号` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 816 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单_已排产订单查询` | 查询/读取数据 | 查询、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 965 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 1034 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Queryzp` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 1089 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Queryzp` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 1124 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 1137 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 1177 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1194 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1211 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1228 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1242 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1251 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1325 | 12（当前通用存储过程写入/业务动作） | `计划排产_派工` | 计划排产或派工 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1378 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1409 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1531 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Finish` | 确认/关闭/完成业务动作 | 查询、更新、解析 JSON 批量数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1560 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1641 | 12（当前通用存储过程写入/业务动作） | `计划排产_自制件_日程时间修改` | 更新/保存业务数据 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 1332 行：`postB1("/PurchaseRequests")`
- 第 1523 行：`patchB1("/ProductionOrders(")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 1332 | `postB1` | `/PurchaseRequests` | 调用外部接口，失败会影响对应外部系统同步。 | `ReqType`、`Requester`、`PriceMode`、`RequesterBranch`、`RequesterDepartment`、`DocDate`、`DocDueDate`、`TaxDate`、`RequriedDate`、`Comments`、`DocumentLines`、`ItemCode` |
| 1523 | `patchB1` | `/ProductionOrders(` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`U_YJQTdate`、`优先级`、`未完成说明`、`派工特殊说明` |

### 状态流转说明

- `计划排产_生产订单_已排产订单查询`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_已排产订单查询]`；`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`
- `MES_OrderPlanned_Queryzp`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], `；`FROM dbo.YL_质量检验_质检记录`
- `MES_OrderPlanned_Queryzp`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], `；`FROM dbo.YL_质量检验_质检记录`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `计划排产_派工`：`CREATE PROCEDURE [dbo].[计划排产_派工]`；`@派工操作人 NVARCHAR(50)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`[派工状态] = 1`；`, [派工时间] = getdate()`；`, [派工操作人] = @派工操作人`；`'成功' AS 状态, `
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_Finish`：`@任务列表 NVARCHAR(MAX), `；`@派工操作人 NVARCHAR(MAX)`；`t.[排产状态] = 1, `；`t.[任务状态] = 0, `；`t.派工特殊说明 = j.派工特殊说明, `；`t.计划完成时间 = j.计划完成时间, `；`t.派工操作人 = @派工操作人, `；`t.最后编辑人 = @派工操作人, `
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `计划排产_自制件_日程时间修改`：`CREATE PROCEDURE [dbo].[计划排产_自制件_日程时间修改]`；`@计划完成时间 nvarchar(50) = ''`；`IF @计划完成时间 ''`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`UPDATE [MES_接口_生产计划_生产任务]`；`计划完成时间 = @EndTime`；`AND ISNULL(派工状态, 0) = 0`；`SELECT '0' AS result, '未找到符合条件的记录或派工状态不为0' AS message`

### 数据库调用链

- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `计划排产_生产订单_已排产订单查询` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_Queryzp` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_Queryzp` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `计划排产_派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_Finish` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 确认/关闭/完成业务动作
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/InstallMakePlan/index.vue` -> `计划排产_自制件_日程时间修改` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `计划排产_生产订单_已排产订单查询` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_OrderPlanned_Queryzp` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] like ''%装配%'''`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `MES_OrderPlanned_Queryzp` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] like ''%装配%'''`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `计划排产_派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE AID IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET`。 实现特征：事务控制、临时表 `#TempOrders`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_Finish` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 确认/关闭/完成业务动作。 数据库处理摘要：查询、更新、解析 JSON 批量数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@任务列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(MAX)`。 主要返回字段线索：`TaskAID = JSON_VALUE(value, '$.taskaid'), `、`指派对象 = JSON_VALUE(value, '$."指派对象"'), `、`指派数量 = JSON_VALUE(value, '$."指派数量"'), `、`指派对象编号 = JSON_VALUE(value, '$."指派对象编号"'), `、`派工特殊说明 = JSON_VALUE(value, '$."派工特殊说明"'), `、`计划开始时间 = JSON_VALUE(value, '$."计划开始时间"'), `、`计划完成时间 = JSON_VALUE(value, '$."计划完成时间"'), `、`最晚开始时间 = JSON_VALUE(value, '$."最晚开始时间"')`。 关键写入/状态处理语句线索：`UPDATE t`；`SET`。 实现特征：JSON 批量解析。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `计划排产_自制件_日程时间修改` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int`、`@订单拆分内码 int`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号`；`AND 订单行号 = @订单行号`；`AND 订单拆分内码 = @订单拆分内码`；`AND ISNULL(派工状态, 0) = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @StartTime = CONVERT(datetime, @计划开始时间, 120)`；`SET @StartTime = NULL`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`SET @EndTime = NULL`；`UPDATE [MES_接口_生产计划_生产任务]`；`SET 计划开始时间 = @StartTime, `。 实现特征：异常捕获。

## 10. src/views/PlanManagement/PlanShell/index.vue

**页面位置**：`src/views/PlanManagement/PlanShell/index.vue`  
**所属模块**：PlanManagement / PlanShell  
**源码行数**：850

### 页面功能

该页面是计划外壳/计划跟踪类页面，按缺料、发货通知、完成状态等条件查询计划或装配相关任务，用于计划人员集中查看订单齐套、发货和关闭情况。

页面可见的操作/字段包括 “查询”、“缺料”、“关闭”、“全部”、“已下达发货通知”、“未下达发货通知”、“是”、“否”、“已完成”、“未完成”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_装配中心_缺料查询`、`计划排产_查询计划信息`、`MES_OrderPlanned_DescriptionEdit`、`Prog_MES_LoadStations` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `生产管理_装配中心_缺料查询` -> `计划排产_查询计划信息` -> `MES_OrderPlanned_DescriptionEdit` -> `Prog_MES_LoadStations` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`缺料`、`关闭`、`全部`、`已下达发货通知`、`未下达发货通知`、`是`、`否`、`已完成`、`未完成`、`发料齐套`、`发料缺件`、`未发料`、`机加`、`装配`、`加急`、`正常`、`序号`

主要方法线索：`miss`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.产品编码` | `@ItemCode` | - |
| 参数 | `row.订单号` | `@订单号` | - |
| 参数 | `this.orderNo ` | `@订单号` | - |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.productCode` | `@产品编码` | - |
| 参数 | `this.productName` | `@产品名称` | - |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.planStartTime` | `@计划开始` | - |
| 参数 | `this.planendTime` | `@计划完成` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `'全部'` | `@指派对象` | - |
| 参数 | `this.plannum` | `@计划号` | `v.计划号, ` |
| 参数 | `this.ShipmentStatus` | `@发货状态` | `isnull(发货状态, 0) as [发货状态], ` |
| 参数 | `this.complete` | `@齐套` | `when isnull(发料状态, 0) = 1 then ''发料齐套''` |
| 参数 | `this.checkstatus` | `@检验状态` | - |
| 参数 | `this.sendstatus` | `@发料状态` | `when isnull(发料状态, 0) = 1 then ''发料齐套''` |
| 参数 | `this.selfStatus` | `@自制件属性` | - |
| 参数 | `this.outsourceStatus === '是' ? 1 : 0` | `@是否外协` | - |
| 参数 | `this.currentRow.订单号` | `@订单号` | - |
| 参数 | `this.currentRow.订单行号` | `@订单行号` | - |
| 参数 | `this.currentRow.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.editForm.优先级` | `@优先级` | - |
| 参数 | `this.editForm.未完成说明` | `@未完成说明` | - |
| 参数 | `this.editForm.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@最后编辑人` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `计划数量` | - | `计划数量` |
| 显示列 | `指派对象` | - | `指派对象` |
| 显示列 | `开始时间` | - | `计划开始时间` |
| 显示列 | `结束时间` | - | `计划完成时间` |
| 显示列 | `完成进度` | - | `进度` |
| 显示列 | `完成数量` | - | `完成数量` |
| 显示列 | `合格数` | - | `收检合格数` |
| 显示列 | `不良数` | - | `收检不合格数` |
| 显示列 | `任务状态` | - | `任务状态` |
| 显示列 | `加工状态` | - | `加工状态` |
| 显示列 | `操作` | - | `操作` |
| 显示列 | `发货通知` | - | `发货通知` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 355 | 11（当前通用存储过程查询/执行） | `生产管理_装配中心_缺料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty` |
| 630 | 11（当前通用存储过程查询/执行） | `计划排产_查询计划信息` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 视图：`View_生产订单_MES` |
| 664 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 723 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 生产管理_装配中心_缺料查询: SAP.SBO_YL.dbo.UBT_OPKL_MissQty

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `生产管理_装配中心_缺料查询`：`select * from SAP.SBO_YL.dbo.UBT_OPKL_MissQty where DocEntry = @订单号`
- `计划排产_查询计划信息`：`CREATE PROCEDURE [dbo].[计划排产_查询计划信息]`；`@计划完成 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`@发货状态 nvarchar(50) = '全部', `；`@检验状态 nvarchar(50) = '', `；`@发料状态 nvarchar(50) = '全部', `；`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE [物料类型] = ''pit_Resource'' and [排产状态] = 1 '`；`拣配状态, `
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `

### 数据库调用链

- `src/views/PlanManagement/PlanShell/index.vue` -> `生产管理_装配中心_缺料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty` -> 查询/读取数据
- `src/views/PlanManagement/PlanShell/index.vue` -> `计划排产_查询计划信息` -> 视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/PlanShell/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/PlanShell/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据

### 存储过程处理逻辑明细

- `生产管理_装配中心_缺料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty`。 入参/分页参数：`@ItemCode nvarchar(500),`、`@订单号 int`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from SAP.SBO_YL.dbo.UBT_OPKL_MissQty where DocEntry = @订单号`。 实现特征：读取 SAP 数据库对象。
- `计划排产_查询计划信息` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@计划开始 nvarchar(50)`、`@计划完成 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@计划号 nvarchar(50)`、`@发货状态 nvarchar(50)`、`@齐套 nvarchar(50)`、`@检验状态 nvarchar(50)`、`@发料状态 nvarchar(50)`、`@自制件属性 nvarchar(50)`。 主要返回字段线索：`top 300`、`v.计划号, `、`拣配状态, `、`入库数量, `、`要求发货日期, `、`isnull(发货状态, 0) as [发货状态], `、`case`、`when isnull(发料状态, 0) = 1 then ''发料齐套''`、`when isnull(发料状态, 0) = 2 then ''发料缺件''`、`when isnull(发料状态, 0) = 0 then ''未发料''`。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE [物料类型] = ''pit_Resource'' and [排产状态] = 1 '`；`WHEN qt.检验数量_8 > 0 AND qt.检验数量_6 > 0 AND qt.检验数量_8 > = qt.检验数量_6 THEN ''已完成''`；`WHEN qt.检验数量_8 > 0 AND qt.检验数量_6 > 0 AND qt.检验数量_8 < qt.检验数量_6 THEN ''未完成''`；`WHEN qt.检验数量_8 = 0 AND qt.检验数量_6 > 0 THEN ''未完成''`；`WHEN qt.检验数量_8 > 0 AND qt.检验数量_6 = 0 THEN ''已完成''`；`WHERE 质检类型 = ''终检''`；`WHERE 质检类型 = ''收检''`；`SET @selectStrWhere = @selectStrWhere + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @selectStrWhere = @selectStrWhere + ' AND v.[计划号] = '''+@计划号+''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [合同号] LIKE ''%' + @合同号 + '%'''`。 关键写入/状态处理语句线索：`SET @selectStr = N'`；`SET @selectStrWhere = @selectStrWhere + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @selectStrWhere = @selectStrWhere + ' AND v.[计划号] = '''+@计划号+''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [合同号] LIKE ''%' + @合同号 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @产品编码 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料描述] LIKE ''%' + @产品名称 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [工序名称] = ''' + @工序名称 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] > = ''' + @计划开始 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] < = ''' + @计划完成 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL([发货状态], 0) = 0'`；`SET @selectStrWhere = @selectStrWhere + ' AND [发货状态] = 1'`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL([自制件属性], 0) = ''机加件'''`。 排序/分组/分页线索：`GROUP BY TaskAID`；`SET @selectStrWhere = @selectStrWhere + ' ORDER BY 计划开始时间 asc'`。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。

## 11. src/views/PlanManagement/PlannOrderClose/index.vue

**页面位置**：`src/views/PlanManagement/PlannOrderClose/index.vue`  
**所属模块**：PlanManagement / PlannOrderClose  
**源码行数**：151

### 页面功能

该页面用于生产订单关闭。用户筛选 SAP 未关闭或 MES 待确认订单，执行 SAP 生产订单关闭，并调用 MES 过程记录或确认订单关闭状态。

页面可见的操作/字段包括 “查询”、“确认”、“关闭”、“全部”、“已关闭”、“未关闭”、“可关闭”、“SAP未关闭”、“机加”、“装配”，这些是判断页面业务范围的主要线索。

后端主要围绕 `计划排产_生产订单关闭_查询全部订单`、`计划排产_生产订单关闭_关闭订单`、`计划排产_生产订单关闭_确认订单` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `计划排产_生产订单关闭_查询全部订单` -> `计划排产_生产订单关闭_关闭订单` -> `计划排产_生产订单关闭_确认订单` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`确认`、`关闭`、`全部`、`已关闭`、`未关闭`、`可关闭`、`SAP未关闭`、`机加`、`装配`、`订单编号`、`合同号`、`产品编码`、`产品名称`、`计划数量`、`入库数量`、`终检不合格`、`终检合格`

主要方法线索：`searchTable`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.equipmentName` | `@订单号` | `v.订单号 as 订单编号, ` |
| 参数 | `this.equipmentType` | `@单据状态` | - |
| 参数 | `this.orderType` | `@属性` | - |
| 显示列 | `订单编号` | - | `v.订单号 as 订单编号, ` |
| 显示列 | `合同号` | - | `MAX(合同号) as 合同号, ` |
| 显示列 | `产品编码` | - | `MAX(产品编码) as 产品编码, ` |
| 显示列 | `产品名称` | - | `MAX(产品名称) as 产品名称, ` |
| 显示列 | `计划数量` | - | `MAX(计划数量) as 计划数量, ` |
| 显示列 | `入库数量` | - | `MAX(入库数量) as 入库数量, ` |
| 显示列 | `终检不合格` | - | `MAX(终检不合格数合计) as 终检不合格数合计, ` |
| 显示列 | `终检合格` | - | `MAX(终检合格数合计) as 终检合格数合计, ` |
| 显示列 | `收检合格` | - | `MAX(终检不合格数合计) as 终检不合格数合计, ` |
| 显示列 | `收检不合格` | - | `MAX(终检不合格数合计) as 终检不合格数合计, ` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `equipmentName` | `@订单号` | - |
| 输入字段 | `equipmentType` | `@单据状态` | - |
| 输入字段 | `orderType` | `@属性` | - |
| 输入字段 | `opName` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 102 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单关闭_查询全部订单` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`YL_质量检验_质检记录` |
| 111 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单关闭_关闭订单` | 确认/关闭/完成业务动作 | 查询、更新、处理报工/工时、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`；视图：`View_生产工时视图` |
| 129 | 12（当前通用存储过程写入/业务动作） | `计划排产_生产订单关闭_确认订单` | 确认/关闭/完成业务动作 | 更新、处理计划/派工 | 表：`MES_接口_生产计划` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 117 行：`patchB1("/ProductionOrders(")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 117 | `patchB1` | `/ProductionOrders(` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `AbsoluteEntry`、`ProductionOrderStatus` |

### 状态流转说明

- `计划排产_生产订单关闭_查询全部订单`：`CREATE PROCEDURE [dbo].[计划排产_生产订单关闭_查询全部订单]`；`@单据状态 nvarchar(100) = '', `；`if(@单据状态 = '可关闭')`；`MAX(确认状态) as 确认状态, `；`MAX(单据状态) as 单据状态, `；`FROM dbo.YL_质量检验_质检记录`；`WHERE (质检类型 = ''收检'')`；`FROM dbo.YL_质量检验_质检记录 AS YL_质量检验_质检记录_1`
- `计划排产_生产订单关闭_关闭订单`：`CREATE PROCEDURE [dbo].[计划排产_生产订单关闭_关闭订单]`；`declare @selectStrWhere nvarchar(4000) = ' WHERE (v.加工工时 > 0 OR v.总时长 > 0)`；`min(完成数量) as 完成数量, `；`MAX(确认状态) as 确认状态, `；`MAX(单据状态) as 单据状态`；`FROM dbo.YL_质量检验_质检记录`；`WHERE 质检类型 = ''收检''`；`WHERE 质检类型 = ''终检''`
- `计划排产_生产订单关闭_确认订单`：`create PROCEDURE [dbo].[计划排产_生产订单关闭_确认订单]`；`update [dbo].[MES_接口_生产计划] set 确认状态 = 1 where 订单编号 = @订单号`

### 数据库调用链

- `src/views/PlanManagement/PlannOrderClose/index.vue` -> `计划排产_生产订单关闭_查询全部订单` -> 表：`MES_接口_生产计划`、`YL_质量检验_质检记录` -> 查询/读取数据
- `src/views/PlanManagement/PlannOrderClose/index.vue` -> `计划排产_生产订单关闭_关闭订单` -> 表：`MES_接口_生产计划`；视图：`View_生产工时视图` -> 确认/关闭/完成业务动作
- `src/views/PlanManagement/PlannOrderClose/index.vue` -> `计划排产_生产订单关闭_确认订单` -> 表：`MES_接口_生产计划` -> 确认/关闭/完成业务动作

### 存储过程处理逻辑明细

- `计划排产_生产订单关闭_查询全部订单` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`YL_质量检验_质检记录`。 入参/分页参数：`@订单号 nvarchar(100)`、`@单据状态 nvarchar(100)`、`@属性 nvarchar(100)`。 主要返回字段线索：`top 100`、`v.订单号 as 订单编号, `、`MAX(产品名称) as 产品名称, `、`MAX(产品编码) as 产品编码, `、`MAX(入库数量) as 入库数量, `、`MAX(合同号) as 合同号, `、`MAX(终检不合格数合计) as 终检不合格数合计, `、`MAX(终检合格数合计) as 终检合格数合计, `、`MAX(计划数量) as 计划数量, `、`MAX(确认状态) as 确认状态, `。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' WHERE 1 = 1 '`；`WHERE (质检类型 = ''收检'')`；`WHERE (质检类型 = ''终检'')`；`WHERE`；`set @selectStr = @selectStr + ' and v.订单号 = ''' + @订单号 + ''''`；`set @selectStr = @selectStr + ' and ([自制件属性] = ''机加件'') '`；`set @selectStr = @selectStr + ' and [自制件属性] like ''%装配%'' '`；`AND MAX(终检不合格数合计) + MAX(终检合格数合计) + MAX(不合格数合计) = MAX(计划数量)`；`AND max(ISNULL(v.入库数量, 0)) = max(ISNULL(zj_终检数量.终检合格数合计, 0)) ORDER BY v.订单号'`；`WHERE 质检类型 = ''终检''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`set @selectStr = @selectStr + ' and v.订单号 = ''' + @订单号 + ''''`；`set @selectStr = @selectStr + ' and ([自制件属性] = ''机加件'') '`；`set @selectStr = @selectStr + ' and [自制件属性] like ''%装配%'' '`；`set @selectStr = @selectStr + 'GROUP BY v.订单号`；`set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = ''' + @订单号 + ''''`；`set @selectStrWhere = @selectStrWhere + ' and ([单据状态] = ''已关闭'') '`；`set @selectStrWhere = @selectStrWhere + ' and ([单据状态] = ''已关闭'' or [单据状态] = ''已取消'') '`；`set @selectStrWhere = @selectStrWhere + ' and [单据状态] is null'`；`set @selectStrWhere = @selectStrWhere + ' and ([自制件属性] = ''机加件'') '`；`set @selectStrWhere = @selectStrWhere + ' and [自制件属性] like ''%装配%'' '`；`set @selectStrWhere = @selectStrWhere + ' group by v.订单编号'`。 排序/分组/分页线索：`GROUP BY 计划号) AS zj_收检 ON v.订单号 = zj_收检.计划号 LEFT OUTER JOIN`；`GROUP BY 计划号) AS zj_终检数量 ON v.订单号 = zj_终检数量.计划号`；`set @selectStr = @selectStr + 'GROUP BY v.订单号`；`HAVING`；`AND max(ISNULL(v.入库数量, 0)) = max(ISNULL(zj_终检数量.终检合格数合计, 0)) ORDER BY v.订单号'`；`GROUP BY 计划号`；`set @selectStrWhere = @selectStrWhere + ' group by v.订单编号'`。
- `计划排产_生产订单关闭_关闭订单` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 确认/关闭/完成业务动作。 数据库处理摘要：查询、更新、处理报工/工时、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；视图：`View_生产工时视图`。 写入或更新对象：`MES_接口_生产计划`。 入参/分页参数：`@订单号 nvarchar(100)`。 主要返回字段线索：`v.订单号, `、`MAX(产品名称) as 产品名称, `、`MAX(产品编码) as 产品编码, `、`MAX(入库数量) as 入库数量, `、`MAX(合同号) as 合同号, `、`MAX(终检不合格数合计) as 终检不合格数合计, `、`MAX(终检合格数合计) as 终检合格数合计, `、`MAX(合格数合计) as 合格数合计, `、`MAX(不合格数合计) as 不合格数合计, `、`MAX(计划数量) as 计划数量, `。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' WHERE (v.加工工时 > 0 OR v.总时长 > 0)`；`AND v.Expr1 IS NULL`；`WHERE 质检类型 = ''收检''`；`WHERE 质检类型 = ''终检''`；`set @selectStrWhere = ' WHERE (v.加工工时 > 0 OR v.总时长 > 0)`；`AND v.订单号 = ''' + @订单号 + '''`；`where 订单编号 = @订单号`。 关键写入/状态处理语句线索：`set @selectStr = '`；`set @selectStrWhere = @selectStrWhere + ' group by v.订单号'`；`set @selectStr = @selectStr + @selectStrWhere`；`set @selectStrWhere = ' WHERE (v.加工工时 > 0 OR v.总时长 > 0)`；`update [dbo].[MES_接口_生产计划]`；`set 单据状态 = '已关闭'`。 排序/分组/分页线索：`GROUP BY TaskAID`；`set @selectStrWhere = @selectStrWhere + ' group by v.订单号'`；`group by v.订单号'`。
- `计划排产_生产订单关闭_确认订单` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 确认/关闭/完成业务动作。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`。 入参/分页参数：`@订单号 int`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划] set 确认状态 = 1 where 订单编号 = @订单号`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划] set 确认状态 = 1 where 订单编号 = @订单号`。

## 12. src/views/PlanManagement/SelfMakePlan/index.vue

**页面位置**：`src/views/PlanManagement/SelfMakePlan/index.vue`  
**所属模块**：PlanManagement / SelfMakePlan  
**源码行数**：1736

### 页面功能

该页面处理自制件/机加件排产。用户查询生产订单工序任务，筛选订单、合同、物料、工序、计划时间、排产状态和指派对象，完成工位派工、人员二次派工、外协分组、计划说明维护和排产确认。

页面可见的操作/字段包括 “查询”、“批量排产”、“排产完成”、“确定”、“派工”、“计划排产”、“编辑”、“取 消”、“确 定”、“全部”，这些是判断页面业务范围的主要线索。

后端主要围绕 `计划排产_生产订单_已排产订单查询`、`MES_登录_工位与名称_查询`、`MES_OrderPlanned_Query`、`Prog_MES_LoadStations`、`系统管理_人员管理_所有有效人员查询`、`MES_OrderPlanned_EditTaskPlanned` 等过程 取数或提交业务动作。

### 页面流程图

自制/机加排产流程：

```mermaid
flowchart LR
  A[输入订单/合同/物料/工序/时间条件] --> B[调用 MES_OrderPlanned_Query 查询待排产任务]
  B --> C[选择任务行]
  C --> D{派工方式}
  D --> E[MES_OrderPlanned_SingleTaskPlanned 单任务派工]
  D --> F[计划排产_二次派工 绑定人员]
  D --> G[计划排产_外协分组]
  E --> H[MES_OrderPlanned_EditTaskPlanned/DescriptionEdit 修改计划字段]
  F --> H
  G --> H
  H --> I[MES_OrderPlanned_Finish 确认排产]
  I --> J[PATCH /ProductionOrders(...) 回写 SAP 生产订单状态]
  J --> K[页面刷新任务状态]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`批量排产`、`排产完成`、`确定`、`派工`、`计划排产`、`编辑`、`取 消`、`确 定`、`全部`、`已完成`、`未完成`、`item.指南工位号`、`表单`、`序号`、`生产订单`、`计划号`、`物料编码`

主要方法线索：`getCurrentTime`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo ` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.productCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.productName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.nature` | `@性质` | - |
| 参数 | `this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.planendTime[0` | `@计划完成1` | - |
| 参数 | `this.planendTime[1` | `@计划完成2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `this.station` | `@指派对象` | - |
| 参数 | `this.doneorderNo ` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.donecontractNo` | `@合同号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.doneproductCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneproductName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneprocessName` | `@工序名称` | - |
| 参数 | `this.donenature` | `@性质` | - |
| 参数 | `this.doneproductionStatus` | `@排产状态` | - |
| 参数 | `editstr` | `@editstr` | - |
| 参数 | `row.订单号` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `row.订单行号` | `@订单行号` | - |
| 参数 | `row.拆分内码` | `@订单拆分内码` | - |
| 参数 | `row.taskaid` | `@TaskAID` | - |
| 参数 | `row.二次派工` | `@personnel` | - |
| 参数 | `row.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@派工操作人` | - |
| 参数 | `row.指派对象编号` | `@指派对象编号` | - |
| 参数 | `row.指派对象` | `@指派对象` | - |
| 参数 | `this.editnumber` | `@指派数量` | - |
| 参数 | `row.计划开始时间` | `@计划开始时间` | - |
| 参数 | `row.计划完成时间` | `@计划完成时间` | - |
| 参数 | `row.最晚开始时间` | `@最晚开始时间` | - |
| 参数 | `item.订单号` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `item.订单行号` | `@订单行号` | - |
| 参数 | `item.拆分内码` | `@订单拆分内码` | - |
| 参数 | `item.指派对象编号` | `@指派对象编号` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 815 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单_已排产订单查询` | 查询/读取数据 | 查询、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 965 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 1034 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 1092 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 1130 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 1143 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 1183 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1200 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1217 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1234 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1248 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1257 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1361 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1392 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1507 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Finish` | 确认/关闭/完成业务动作 | 查询、更新、解析 JSON 批量数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1536 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1617 | 12（当前通用存储过程写入/业务动作） | `计划排产_自制件_日程时间修改` | 更新/保存业务数据 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 1500 行：`patchB1("/ProductionOrders(")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 1500 | `patchB1` | `/ProductionOrders(` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`优先级`、`未完成说明`、`派工特殊说明` |

### 状态流转说明

- `计划排产_生产订单_已排产订单查询`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_已排产订单查询]`；`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`
- `MES_OrderPlanned_Query`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, v.备注, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], isnull(g.标准工时, 0) as 标准工时, `
- `MES_OrderPlanned_Query`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, v.备注, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], isnull(g.标准工时, 0) as 标准工时, `
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_Finish`：`@任务列表 NVARCHAR(MAX), `；`@派工操作人 NVARCHAR(MAX)`；`t.[排产状态] = 1, `；`t.[任务状态] = 0, `；`t.派工特殊说明 = j.派工特殊说明, `；`t.计划完成时间 = j.计划完成时间, `；`t.派工操作人 = @派工操作人, `；`t.最后编辑人 = @派工操作人, `
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `计划排产_自制件_日程时间修改`：`CREATE PROCEDURE [dbo].[计划排产_自制件_日程时间修改]`；`@计划完成时间 nvarchar(50) = ''`；`IF @计划完成时间 ''`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`UPDATE [MES_接口_生产计划_生产任务]`；`计划完成时间 = @EndTime`；`AND ISNULL(派工状态, 0) = 0`；`SELECT '0' AS result, '未找到符合条件的记录或派工状态不为0' AS message`

### 数据库调用链

- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `计划排产_生产订单_已排产订单查询` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_Query` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_Query` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_Finish` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 确认/关闭/完成业务动作
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlan/index.vue` -> `计划排产_自制件_日程时间修改` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `计划排产_生产订单_已排产订单查询` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_OrderPlanned_Query` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `MES_OrderPlanned_Query` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_Finish` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 确认/关闭/完成业务动作。 数据库处理摘要：查询、更新、解析 JSON 批量数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@任务列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(MAX)`。 主要返回字段线索：`TaskAID = JSON_VALUE(value, '$.taskaid'), `、`指派对象 = JSON_VALUE(value, '$."指派对象"'), `、`指派数量 = JSON_VALUE(value, '$."指派数量"'), `、`指派对象编号 = JSON_VALUE(value, '$."指派对象编号"'), `、`派工特殊说明 = JSON_VALUE(value, '$."派工特殊说明"'), `、`计划开始时间 = JSON_VALUE(value, '$."计划开始时间"'), `、`计划完成时间 = JSON_VALUE(value, '$."计划完成时间"'), `、`最晚开始时间 = JSON_VALUE(value, '$."最晚开始时间"')`。 关键写入/状态处理语句线索：`UPDATE t`；`SET`。 实现特征：JSON 批量解析。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `计划排产_自制件_日程时间修改` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int`、`@订单拆分内码 int`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号`；`AND 订单行号 = @订单行号`；`AND 订单拆分内码 = @订单拆分内码`；`AND ISNULL(派工状态, 0) = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @StartTime = CONVERT(datetime, @计划开始时间, 120)`；`SET @StartTime = NULL`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`SET @EndTime = NULL`；`UPDATE [MES_接口_生产计划_生产任务]`；`SET 计划开始时间 = @StartTime, `。 实现特征：异常捕获。

## 13. src/views/PlanManagement/SelfMakePlando/index.vue

**页面位置**：`src/views/PlanManagement/SelfMakePlando/index.vue`  
**所属模块**：PlanManagement / SelfMakePlando  
**源码行数**：1669

### 页面功能

该页面处理自制件/机加件排产。用户查询生产订单工序任务，筛选订单、合同、物料、工序、计划时间、排产状态和指派对象，完成工位派工、人员二次派工、外协分组、计划说明维护和排产确认。

页面可见的操作/字段包括 “查询”、“批量排产”、“排产完成”、“确定”、“查看”、“零件图纸”、“工艺图纸”、“编辑”、“计划排产”、“取 消”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_图纸维护_查看图纸`、`工艺管理_工艺维护_查看图纸`、`工艺管理_获取物料原料信息`、`计划排产_生产订单_已排产订单查询`、`MES_登录_工位与名称_查询`、`MES_OrderPlanned_Query` 等过程 取数或提交业务动作。

### 页面流程图

自制/机加排产流程：

```mermaid
flowchart LR
  A[输入订单/合同/物料/工序/时间条件] --> B[调用 MES_OrderPlanned_Query 查询待排产任务]
  B --> C[选择任务行]
  C --> D{派工方式}
  D --> E[MES_OrderPlanned_SingleTaskPlanned 单任务派工]
  D --> F[计划排产_二次派工 绑定人员]
  D --> G[计划排产_外协分组]
  E --> H[MES_OrderPlanned_EditTaskPlanned/DescriptionEdit 修改计划字段]
  F --> H
  G --> H
  H --> I[MES_OrderPlanned_Finish 确认排产]
  I --> J[PATCH /ProductionOrders(...) 回写 SAP 生产订单状态]
  J --> K[页面刷新任务状态]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`批量排产`、`排产完成`、`确定`、`查看`、`零件图纸`、`工艺图纸`、`编辑`、`计划排产`、`取 消`、`确 定`、`关闭`、`全部`、`已完成`、`未完成`、`item.指南工位号`、`表单`、`序号`

主要方法线索：`getitemdraw`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `item` | `@订单编号` | - |
| 参数 | `this.orderNo ` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.productCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.productName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.nature` | `@性质` | - |
| 参数 | `this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.planendTime[0` | `@计划完成1` | - |
| 参数 | `this.planendTime[1` | `@计划完成2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `this.station` | `@指派对象` | - |
| 参数 | `this.doneorderNo ` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.donecontractNo` | `@合同号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.doneproductCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneproductName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneprocessName` | `@工序名称` | - |
| 参数 | `this.donenature` | `@性质` | - |
| 参数 | `this.doneproductionStatus` | `@排产状态` | - |
| 参数 | `editstr` | `@editstr` | - |
| 参数 | `row.订单号` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `row.订单行号` | `@订单行号` | - |
| 参数 | `row.拆分内码` | `@订单拆分内码` | - |
| 参数 | `row.taskaid` | `@TaskAID` | - |
| 参数 | `row.二次派工` | `@personnel` | - |
| 参数 | `row.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@派工操作人` | - |
| 参数 | `row.指派对象编号` | `@指派对象编号` | - |
| 参数 | `row.指派对象` | `@指派对象` | - |
| 参数 | `this.editnumber` | `@指派数量` | - |
| 参数 | `row.计划开始时间` | `@计划开始时间` | - |
| 参数 | `row.计划完成时间` | `@计划完成时间` | - |
| 参数 | `row.最晚开始时间` | `@最晚开始时间` | - |
| 参数 | `item.订单号` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `item.订单行号` | `@订单行号` | - |
| 参数 | `item.拆分内码` | `@订单拆分内码` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- FullCalendar
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 632 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 663 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 680 | 11（当前通用存储过程查询/执行） | `工艺管理_获取物料原料信息` | 业务存储过程调用 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material` |
| 710 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单_已排产订单查询` | 查询/读取数据 | 查询、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 860 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 929 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 987 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 1025 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 1038 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 1078 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1095 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1112 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1129 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1143 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1152 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1278 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1309 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1345 | 12（当前通用存储过程写入/业务动作） | `计划排产_外协分组` | 计划排产或派工 | 更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1440 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Finish` | 确认/关闭/完成业务动作 | 查询、更新、解析 JSON 批量数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1469 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1550 | 12（当前通用存储过程写入/业务动作） | `计划排产_自制件_日程时间修改` | 更新/保存业务数据 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 1433 行：`patchB1("/ProductionOrders(")`
存储过程内读取 SAP B1 数据库对象：
- 工艺管理_获取物料原料信息: SAP.SBO_YL.dbo.UBT_OWOR_material

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 1433 | `patchB1` | `/ProductionOrders(` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`优先级`、`未完成说明`、`派工特殊说明` |

### 状态流转说明

- `工艺管理_获取物料原料信息`：`SELECT * FROM SAP.SBO_YL.dbo.UBT_OWOR_material where Docentry = @订单编号`
- `计划排产_生产订单_已排产订单查询`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_已排产订单查询]`；`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`
- `MES_OrderPlanned_Query`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, v.备注, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], isnull(g.标准工时, 0) as 标准工时, `
- `MES_OrderPlanned_Query`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, v.备注, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], isnull(g.标准工时, 0) as 标准工时, `
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `计划排产_外协分组`：`create PROCEDURE [dbo].[计划排产_外协分组]`；`update [dbo].[MES_接口_生产计划_生产任务] set 外协分组 = @外协分组 where AID = @TaskAID`
- `MES_OrderPlanned_Finish`：`@任务列表 NVARCHAR(MAX), `；`@派工操作人 NVARCHAR(MAX)`；`t.[排产状态] = 1, `；`t.[任务状态] = 0, `；`t.派工特殊说明 = j.派工特殊说明, `；`t.计划完成时间 = j.计划完成时间, `；`t.派工操作人 = @派工操作人, `；`t.最后编辑人 = @派工操作人, `
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `计划排产_自制件_日程时间修改`：`CREATE PROCEDURE [dbo].[计划排产_自制件_日程时间修改]`；`@计划完成时间 nvarchar(50) = ''`；`IF @计划完成时间 ''`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`UPDATE [MES_接口_生产计划_生产任务]`；`计划完成时间 = @EndTime`；`AND ISNULL(派工状态, 0) = 0`；`SELECT '0' AS result, '未找到符合条件的记录或派工状态不为0' AS message`

### 数据库调用链

- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `工艺管理_获取物料原料信息` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material` -> 业务存储过程调用
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `计划排产_生产订单_已排产订单查询` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_Query` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_Query` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `计划排产_外协分组` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_Finish` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 确认/关闭/完成业务动作
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlando/index.vue` -> `计划排产_自制件_日程时间修改` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_获取物料原料信息` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM SAP.SBO_YL.dbo.UBT_OWOR_material where Docentry = @订单编号`。 实现特征：读取 SAP 数据库对象。
- `计划排产_生产订单_已排产订单查询` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_OrderPlanned_Query` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `MES_OrderPlanned_Query` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `计划排产_外协分组` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@外协分组 NVARCHAR(50)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 外协分组 = @外协分组 where AID = @TaskAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`update [dbo].[MES_接口_生产计划_生产任务] set 外协分组 = @外协分组 where AID = @TaskAID`。
- `MES_OrderPlanned_Finish` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 确认/关闭/完成业务动作。 数据库处理摘要：查询、更新、解析 JSON 批量数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@任务列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(MAX)`。 主要返回字段线索：`TaskAID = JSON_VALUE(value, '$.taskaid'), `、`指派对象 = JSON_VALUE(value, '$."指派对象"'), `、`指派数量 = JSON_VALUE(value, '$."指派数量"'), `、`指派对象编号 = JSON_VALUE(value, '$."指派对象编号"'), `、`派工特殊说明 = JSON_VALUE(value, '$."派工特殊说明"'), `、`计划开始时间 = JSON_VALUE(value, '$."计划开始时间"'), `、`计划完成时间 = JSON_VALUE(value, '$."计划完成时间"'), `、`最晚开始时间 = JSON_VALUE(value, '$."最晚开始时间"')`。 关键写入/状态处理语句线索：`UPDATE t`；`SET`。 实现特征：JSON 批量解析。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `计划排产_自制件_日程时间修改` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int`、`@订单拆分内码 int`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号`；`AND 订单行号 = @订单行号`；`AND 订单拆分内码 = @订单拆分内码`；`AND ISNULL(派工状态, 0) = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @StartTime = CONVERT(datetime, @计划开始时间, 120)`；`SET @StartTime = NULL`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`SET @EndTime = NULL`；`UPDATE [MES_接口_生产计划_生产任务]`；`SET 计划开始时间 = @StartTime, `。 实现特征：异常捕获。

## 14. src/views/PlanManagement/SelfMakePlandone/index.vue

**页面位置**：`src/views/PlanManagement/SelfMakePlandone/index.vue`  
**所属模块**：PlanManagement / SelfMakePlandone  
**源码行数**：1495

### 页面功能

该页面处理自制件/机加件排产。用户查询生产订单工序任务，筛选订单、合同、物料、工序、计划时间、排产状态和指派对象，完成工位派工、人员二次派工、外协分组、计划说明维护和排产确认。

页面可见的操作/字段包括 “查询”、“确定”、“查看”、“派工”、“编辑”、“取 消”、“确 定”、“全部”、“已完成”、“未完成”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_获取物料原料信息`、`计划排产_生产订单_已排产订单查询`、`MES_登录_工位与名称_查询`、`MES_OrderPlanned_Query`、`Prog_MES_LoadStations`、`系统管理_人员管理_所有有效人员查询` 等过程 取数或提交业务动作。

### 页面流程图

自制/机加排产流程：

```mermaid
flowchart LR
  A[输入订单/合同/物料/工序/时间条件] --> B[调用 MES_OrderPlanned_Query 查询待排产任务]
  B --> C[选择任务行]
  C --> D{派工方式}
  D --> E[MES_OrderPlanned_SingleTaskPlanned 单任务派工]
  D --> F[计划排产_二次派工 绑定人员]
  D --> G[计划排产_外协分组]
  E --> H[MES_OrderPlanned_EditTaskPlanned/DescriptionEdit 修改计划字段]
  F --> H
  G --> H
  H --> I[MES_OrderPlanned_Finish 确认排产]
  I --> J[PATCH /ProductionOrders(...) 回写 SAP 生产订单状态]
  J --> K[页面刷新任务状态]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`确定`、`查看`、`派工`、`编辑`、`取 消`、`确 定`、`全部`、`已完成`、`未完成`、`item.指南工位号`、`表单`、`生产订单`、`计划号`、`物料编码`、`物料名称`、`计划数`、`要求完工日期`

主要方法线索：`getitemdata`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `item` | `@订单编号` | - |
| 参数 | `this.orderNo ` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.productCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.productName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.nature` | `@性质` | - |
| 参数 | `this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.planendTime[0` | `@计划完成1` | - |
| 参数 | `this.planendTime[1` | `@计划完成2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `this.station` | `@指派对象` | - |
| 参数 | `this.doneorderNo ` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.donecontractNo` | `@合同号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.doneproductCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneproductName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneprocessName` | `@工序名称` | - |
| 参数 | `this.donenature` | `@性质` | - |
| 参数 | `this.doneproductionStatus` | `@排产状态` | - |
| 参数 | `editstr` | `@editstr` | - |
| 参数 | `row.订单号` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `row.订单行号` | `@订单行号` | - |
| 参数 | `row.拆分内码` | `@订单拆分内码` | - |
| 参数 | `row.taskaid` | `@TaskAID` | - |
| 参数 | `row.二次派工` | `@personnel` | - |
| 参数 | `row.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@派工操作人` | - |
| 参数 | `row.指派对象编号` | `@指派对象编号` | - |
| 参数 | `row.指派对象` | `@指派对象` | - |
| 参数 | `this.editnumber` | `@指派数量` | - |
| 参数 | `row.计划开始时间` | `@计划开始时间` | - |
| 参数 | `row.计划完成时间` | `@计划完成时间` | - |
| 参数 | `row.最晚开始时间` | `@最晚开始时间` | - |
| 参数 | `item.订单号` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `item.订单行号` | `@订单行号` | - |
| 参数 | `item.拆分内码` | `@订单拆分内码` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 600 | 11（当前通用存储过程查询/执行） | `工艺管理_获取物料原料信息` | 业务存储过程调用 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material` |
| 630 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单_已排产订单查询` | 查询/读取数据 | 查询、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 710 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 779 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 837 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 874 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 887 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 927 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 944 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 961 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 978 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 992 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1001 | 12（当前通用存储过程写入/业务动作） | `计划排产_二次派工` | 计划排产或派工 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1105 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1136 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1172 | 12（当前通用存储过程写入/业务动作） | `计划排产_外协分组` | 计划排产或派工 | 更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1266 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Finish` | 确认/关闭/完成业务动作 | 查询、更新、解析 JSON 批量数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1295 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1376 | 12（当前通用存储过程写入/业务动作） | `计划排产_自制件_日程时间修改` | 更新/保存业务数据 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 1259 行：`patchB1("/ProductionOrders(")`
存储过程内读取 SAP B1 数据库对象：
- 工艺管理_获取物料原料信息: SAP.SBO_YL.dbo.UBT_OWOR_material

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 1259 | `patchB1` | `/ProductionOrders(` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `AbsoluteEntry`、`U_MODueDate`、`U_MOStartDate`、`优先级`、`未完成说明`、`派工特殊说明` |

### 状态流转说明

- `工艺管理_获取物料原料信息`：`SELECT * FROM SAP.SBO_YL.dbo.UBT_OWOR_material where Docentry = @订单编号`
- `计划排产_生产订单_已排产订单查询`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_已排产订单查询]`；`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`
- `MES_OrderPlanned_Query`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, v.备注, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], isnull(g.标准工时, 0) as 标准工时, `
- `MES_OrderPlanned_Query`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, v.备注, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], isnull(g.标准工时, 0) as 标准工时, `
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `计划排产_二次派工`：`create PROCEDURE [dbo].[计划排产_二次派工]`；`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `计划排产_外协分组`：`create PROCEDURE [dbo].[计划排产_外协分组]`；`update [dbo].[MES_接口_生产计划_生产任务] set 外协分组 = @外协分组 where AID = @TaskAID`
- `MES_OrderPlanned_Finish`：`@任务列表 NVARCHAR(MAX), `；`@派工操作人 NVARCHAR(MAX)`；`t.[排产状态] = 1, `；`t.[任务状态] = 0, `；`t.派工特殊说明 = j.派工特殊说明, `；`t.计划完成时间 = j.计划完成时间, `；`t.派工操作人 = @派工操作人, `；`t.最后编辑人 = @派工操作人, `
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `计划排产_自制件_日程时间修改`：`CREATE PROCEDURE [dbo].[计划排产_自制件_日程时间修改]`；`@计划完成时间 nvarchar(50) = ''`；`IF @计划完成时间 ''`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`UPDATE [MES_接口_生产计划_生产任务]`；`计划完成时间 = @EndTime`；`AND ISNULL(派工状态, 0) = 0`；`SELECT '0' AS result, '未找到符合条件的记录或派工状态不为0' AS message`

### 数据库调用链

- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `工艺管理_获取物料原料信息` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material` -> 业务存储过程调用
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `计划排产_生产订单_已排产订单查询` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_Query` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_Query` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `计划排产_二次派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `计划排产_外协分组` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_Finish` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 确认/关闭/完成业务动作
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/SelfMakePlandone/index.vue` -> `计划排产_自制件_日程时间修改` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `工艺管理_获取物料原料信息` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM SAP.SBO_YL.dbo.UBT_OWOR_material where Docentry = @订单编号`。 实现特征：读取 SAP 数据库对象。
- `计划排产_生产订单_已排产订单查询` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from [dbo].[MES_接口_生产计划_生产任务] where 排产状态 = 1`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_OrderPlanned_Query` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `MES_OrderPlanned_Query` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `计划排产_二次派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@personnel nvarchar(500)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[MES_接口_生产计划_生产任务] set 二次派工 = @personnel where AID = @TaskAID`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `计划排产_外协分组` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID int,`、`@外协分组 NVARCHAR(50)`。 关键过滤/匹配条件：`update [dbo].[MES_接口_生产计划_生产任务] set 外协分组 = @外协分组 where AID = @TaskAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`update [dbo].[MES_接口_生产计划_生产任务] set 外协分组 = @外协分组 where AID = @TaskAID`。
- `MES_OrderPlanned_Finish` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 确认/关闭/完成业务动作。 数据库处理摘要：查询、更新、解析 JSON 批量数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@任务列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(MAX)`。 主要返回字段线索：`TaskAID = JSON_VALUE(value, '$.taskaid'), `、`指派对象 = JSON_VALUE(value, '$."指派对象"'), `、`指派数量 = JSON_VALUE(value, '$."指派数量"'), `、`指派对象编号 = JSON_VALUE(value, '$."指派对象编号"'), `、`派工特殊说明 = JSON_VALUE(value, '$."派工特殊说明"'), `、`计划开始时间 = JSON_VALUE(value, '$."计划开始时间"'), `、`计划完成时间 = JSON_VALUE(value, '$."计划完成时间"'), `、`最晚开始时间 = JSON_VALUE(value, '$."最晚开始时间"')`。 关键写入/状态处理语句线索：`UPDATE t`；`SET`。 实现特征：JSON 批量解析。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `计划排产_自制件_日程时间修改` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int`、`@订单拆分内码 int`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号`；`AND 订单行号 = @订单行号`；`AND 订单拆分内码 = @订单拆分内码`；`AND ISNULL(派工状态, 0) = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @StartTime = CONVERT(datetime, @计划开始时间, 120)`；`SET @StartTime = NULL`；`SET @EndTime = CONVERT(datetime, @计划完成时间, 120)`；`SET @EndTime = NULL`；`UPDATE [MES_接口_生产计划_生产任务]`；`SET 计划开始时间 = @StartTime, `。 实现特征：异常捕获。

## 15. src/views/PlanManagement/priorityinstall/index.vue

**页面位置**：`src/views/PlanManagement/priorityinstall/index.vue`  
**所属模块**：PlanManagement / priorityinstall  
**源码行数**：1127

### 页面功能

该页面用于装配优先级调整。用户查询装配计划任务，修改计划开工/完成时间、派工对象或优先级，用于插单和重点订单排序。

页面可见的操作/字段包括 “查询”、“月”、“周”、“日”、“今天”、“表单”、“生产订单”、“计划号”、“物料编码”、“物料名称”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_OrderPlanned_Queryzp`、`MES_OrderPlanned_EditTaskPlanned` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_OrderPlanned_Queryzp` -> `MES_OrderPlanned_EditTaskPlanned` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`月`、`周`、`日`、`今天`、`表单`、`生产订单`、`计划号`、`物料编码`、`物料名称`、`计划数`、`要求完工日期`、`工时`、`工序名称`、`指派对象`、`指派数量`、`计划开始`、`计划完成`

主要方法线索：`handleWindowResize`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.doneorderNo ` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.donecontractNo` | `@合同号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.doneproductCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneproductName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.doneprocessName` | `@工序名称` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.doneproductionStatus` | `@排产状态` | - |
| 参数 | `this.station` | `@指派对象` | - |
| 参数 | ``[计划开始时间` | `@editstr` | - |
| 参数 | `row.订单号` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `row.订单行号` | `@订单行号` | - |
| 参数 | `row.拆分内码` | `@订单拆分内码` | - |
| 参数 | `订单号` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `订单行号` | `@订单行号` | - |
| 参数 | `拆分内码` | `@订单拆分内码` | - |
| 参数 | ``[标准工时` | `@editstr` | - |
| 显示列 | `生产订单` | - | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `物料编码` | - | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 显示列 | `物料名称` | - | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 显示列 | `计划数` | - | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 显示列 | `要求完工日期` | - | `要求完工日期` |
| 显示列 | `工时` | - | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `指派对象` | - | `指派对象` |
| 显示列 | `指派数量` | - | `指派数量` |
| 显示列 | `计划开始` | - | `计划开始` |
| 显示列 | `计划完成` | - | `计划完成` |
| 输入字段 | `doneorderNo` | `@订单号` | - |
| 输入字段 | `donecontractNo` | `@合同号` | - |
| 输入字段 | `doneproductCode` | `@产品编码` | - |
| 输入字段 | `doneproductName` | `@产品名称` | - |
| 输入字段 | `doneprocessName` | `@工序名称` | - |
| 输入字段 | `planStartTime` | `@计划开始1` | - |
| 输入字段 | `doneactiveTab` | - | - |
| 输入字段 | `scope.row.计划开始时间` | `@editstr` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 471 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Queryzp` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 581 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 732 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 798 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_OrderPlanned_Queryzp`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], `；`FROM dbo.YL_质量检验_质检记录`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`

### 数据库调用链

- `src/views/PlanManagement/priorityinstall/index.vue` -> `MES_OrderPlanned_Queryzp` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/PlanManagement/priorityinstall/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/priorityinstall/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/PlanManagement/priorityinstall/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `MES_OrderPlanned_Queryzp` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] like ''%装配%'''`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。

## 16. src/views/ProcessManagement/PartDrawing/index.vue

**页面位置**：`src/views/ProcessManagement/PartDrawing/index.vue`  
**所属模块**：ProcessManagement / PartDrawing  
**源码行数**：905

### 页面功能

该页面维护零件图纸。用户按物料查询图纸、查看文件、验证名称、删除图纸并保留删除记录。

页面可见的操作/字段包括 “查询”、“零件图”、“选零件上传零件图”、“查看删除记录”、“查看”、“删除”、“取消”、“确定”、“关闭”、“查看信息”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_图纸维护_查询删除记录`、`工艺管理_图纸维护_零件图查询`、`工艺管理_图纸维护_物料查询`、`工艺管理_图纸维护_验证名称`、`工艺管理_图纸维护_查看图纸`、`工艺管理_图纸维护_删除图纸` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `工艺管理_图纸维护_查询删除记录` -> `工艺管理_图纸维护_零件图查询` -> `工艺管理_图纸维护_物料查询` -> `工艺管理_图纸维护_验证名称` -> `工艺管理_图纸维护_查看图纸` -> `工艺管理_图纸维护_删除图纸` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`零件图`、`选零件上传零件图`、`查看删除记录`、`查看`、`删除`、`取消`、`确定`、`关闭`、`查看信息`、`关 闭`、`item.物料编码`、`序号`、`物料编号`、`物料名称`、`文件名称`、`导入人`、`导入时间`

主要方法线索：`showDeleteRecords`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.itemnum` | `@物料编码` | - |
| 参数 | `query` | `@过滤` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `物料编号` | - | `物料编号, ` |
| 显示列 | `物料名称` | - | `物料描述` |
| 显示列 | `文件名称` | - | `文件名称, ` |
| 显示列 | `导入人` | - | `worker` |
| 显示列 | `导入时间` | - | `WHEN uploadTime IS NOT NULL` |
| 显示列 | `操作` | - | `操作人, ` |
| 显示列 | `操作人` | - | `操作人, ` |
| 显示列 | `删除时间` | - | `CONVERT(NVARCHAR(19), 删除时间, 120) AS 删除时间, ` |
| 显示列 | `备注` | - | `ISNULL(备注, '''') AS 备注` |
| 显示列 | `物料编码` | - | `物料编码` |
| 显示列 | `现有图纸导入人` | - | `导入人` |
| 输入字段 | `stationNumberValues` | - | - |
| 输入字段 | `selectedMaterials` | - | - |
| 输入字段 | `itemnum` | `@物料编码` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 323 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查询删除记录` | 查询/读取数据 | 查询 | 未在 SQL 中解析到明确依赖 |
| 355 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |
| 366 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_物料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |
| 398 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_验证名称` | 业务存储过程调用 | 查询 | 表：`物料数据` |
| 442 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 471 | 12（当前通用存储过程写入/业务动作） | `工艺管理_图纸维护_删除图纸` | 删除业务数据 | 查询、新增 | 表：`物料基础数据_零件图纸` |
| 556 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 838 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |
| 851 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 工艺管理_图纸维护_物料查询: SAP.SBO_YL.dbo.UBT_OITM

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `工艺管理_图纸维护_物料查询`：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`

### 数据库调用链

- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_查询删除记录` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_零件图查询` -> 视图：`View_图纸视图` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_物料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_验证名称` -> 表：`物料数据` -> 业务存储过程调用
- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_删除图纸` -> 表：`物料基础数据_零件图纸` -> 删除业务数据
- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_零件图查询` -> 视图：`View_图纸视图` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawing/index.vue` -> `工艺管理_图纸维护_零件图查询` -> 视图：`View_图纸视图` -> 查询/读取数据

### 存储过程处理逻辑明细

- `工艺管理_图纸维护_查询删除记录` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编码 nvarchar(200)`。 主要返回字段线索：`top 50`、`物料编号, `、`文件名称, `、`操作人, `、`CONVERT(NVARCHAR(19), 删除时间, 120) AS 删除时间, `、`ISNULL(备注, '''') AS 备注`。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE 1 = 1 '`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @物料编码 + '%'''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @selectStr = N' SELECT top 50`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @物料编码 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' ORDER BY 删除时间 DESC'`；`SET @selectStr = @selectStr + @selectStrWhere`。 排序/分组/分页线索：`SET @selectStrWhere = @selectStrWhere + ' ORDER BY 删除时间 DESC'`。
- `工艺管理_图纸维护_零件图查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`、`@导入人 nvarchar(50)`。 主要返回字段线索：`TOP 50 *`。 关键过滤/匹配条件：`IF @导入人 IS NOT NULL AND LTRIM(RTRIM(@导入人)) ! = ''`；`WHERE num LIKE '%' + @零件图号 + '%'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY`；`ORDER BY uploadTime DESC`。
- `工艺管理_图纸维护_物料查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@过滤 NVARCHAR(200)`。 主要返回字段线索：`top 100 *`。 关键过滤/匹配条件：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_图纸维护_验证名称` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`物料数据`。 入参/分页参数：`@零件图号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM [dbo].[物料数据] where 物料编码 = @零件图号`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_图纸维护_删除图纸` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、新增。 读取/关联对象：表：`物料基础数据_零件图纸`。 写入或更新对象：`物料基础数据_零件图纸`、`物料基础数据_零件图纸删除记录`。 入参/分页参数：`@物料编号 NVARCHAR(100),`、`@文件名称 NVARCHAR(255)`、`@操作人 NVARCHAR(50)`。 关键过滤/匹配条件：`delete [dbo].[物料基础数据_零件图纸] where num = @物料编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO 物料基础数据_零件图纸删除记录 (`。 实现特征：事务控制、异常捕获。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_图纸维护_零件图查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`、`@导入人 nvarchar(50)`。 主要返回字段线索：`TOP 50 *`。 关键过滤/匹配条件：`IF @导入人 IS NOT NULL AND LTRIM(RTRIM(@导入人)) ! = ''`；`WHERE num LIKE '%' + @零件图号 + '%'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY`；`ORDER BY uploadTime DESC`。
- `工艺管理_图纸维护_零件图查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`、`@导入人 nvarchar(50)`。 主要返回字段线索：`TOP 50 *`。 关键过滤/匹配条件：`IF @导入人 IS NOT NULL AND LTRIM(RTRIM(@导入人)) ! = ''`；`WHERE num LIKE '%' + @零件图号 + '%'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY`；`ORDER BY uploadTime DESC`。

## 17. src/views/ProcessManagement/PartDrawlook/index.vue

**页面位置**：`src/views/ProcessManagement/PartDrawlook/index.vue`  
**所属模块**：ProcessManagement / PartDrawlook  
**源码行数**：463

### 页面功能

该页面偏只读查看零件图纸，通常给生产或质检人员按物料快速打开图纸。

页面可见的操作/字段包括 “查询”、“查看”、“删除”、“取消”、“确定”、“关闭”、“item.物料编码”、“序号”、“物料编号”、“物料名称”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_图纸维护_查询删除记录`、`工艺管理_图纸维护_零件图查询全部`、`工艺管理_图纸维护_物料查询`、`工艺管理_图纸维护_验证名称`、`工艺管理_图纸维护_查看图纸`、`工艺管理_图纸维护_删除图纸` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `工艺管理_图纸维护_查询删除记录` -> `工艺管理_图纸维护_零件图查询全部` -> `工艺管理_图纸维护_物料查询` -> `工艺管理_图纸维护_验证名称` -> `工艺管理_图纸维护_查看图纸` -> `工艺管理_图纸维护_删除图纸` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`查看`、`删除`、`取消`、`确定`、`关闭`、`item.物料编码`、`序号`、`物料编号`、`物料名称`、`文件名称`、`导入人`、`导入时间`、`操作`、`操作人`、`删除时间`、`备注`、`请选择物料`

主要方法线索：`showDeleteRecords`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.itemnum` | `@物料编码` | - |
| 参数 | `query` | `@过滤` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `物料编号` | - | `物料编号, ` |
| 显示列 | `物料名称` | - | `物料描述` |
| 显示列 | `文件名称` | - | `文件名称, ` |
| 显示列 | `导入人` | - | `worker` |
| 显示列 | `导入时间` | - | `WHEN uploadTime IS NOT NULL` |
| 显示列 | `操作` | - | `操作人, ` |
| 显示列 | `操作人` | - | `操作人, ` |
| 显示列 | `删除时间` | - | `CONVERT(NVARCHAR(19), 删除时间, 120) AS 删除时间, ` |
| 显示列 | `备注` | - | `ISNULL(备注, '''') AS 备注` |
| 输入字段 | `stationNumberValue` | - | - |
| 输入字段 | `uploadValue` | - | - |
| 输入字段 | `itemnum` | `@物料编码` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 174 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查询删除记录` | 查询/读取数据 | 查询 | 未在 SQL 中解析到明确依赖 |
| 205 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询全部` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |
| 216 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_物料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |
| 248 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_验证名称` | 业务存储过程调用 | 查询 | 表：`物料数据` |
| 294 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 317 | 12（当前通用存储过程写入/业务动作） | `工艺管理_图纸维护_删除图纸` | 删除业务数据 | 查询、新增 | 表：`物料基础数据_零件图纸` |
| 386 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 414 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询全部` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |
| 425 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询全部` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 工艺管理_图纸维护_物料查询: SAP.SBO_YL.dbo.UBT_OITM

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `工艺管理_图纸维护_物料查询`：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`

### 数据库调用链

- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_查询删除记录` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_零件图查询全部` -> 视图：`View_图纸视图` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_物料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_验证名称` -> 表：`物料数据` -> 业务存储过程调用
- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_删除图纸` -> 表：`物料基础数据_零件图纸` -> 删除业务数据
- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_零件图查询全部` -> 视图：`View_图纸视图` -> 查询/读取数据
- `src/views/ProcessManagement/PartDrawlook/index.vue` -> `工艺管理_图纸维护_零件图查询全部` -> 视图：`View_图纸视图` -> 查询/读取数据

### 存储过程处理逻辑明细

- `工艺管理_图纸维护_查询删除记录` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编码 nvarchar(200)`。 主要返回字段线索：`top 50`、`物料编号, `、`文件名称, `、`操作人, `、`CONVERT(NVARCHAR(19), 删除时间, 120) AS 删除时间, `、`ISNULL(备注, '''') AS 备注`。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE 1 = 1 '`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @物料编码 + '%'''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @selectStr = N' SELECT top 50`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @物料编码 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' ORDER BY 删除时间 DESC'`；`SET @selectStr = @selectStr + @selectStrWhere`。 排序/分组/分页线索：`SET @selectStrWhere = @selectStrWhere + ' ORDER BY 删除时间 DESC'`。
- `工艺管理_图纸维护_零件图查询全部` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50 *`。 关键过滤/匹配条件：`WHERE num LIKE '%' + @零件图号 + '%'`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_图纸维护_物料查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@过滤 NVARCHAR(200)`。 主要返回字段线索：`top 100 *`。 关键过滤/匹配条件：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_图纸维护_验证名称` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`物料数据`。 入参/分页参数：`@零件图号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM [dbo].[物料数据] where 物料编码 = @零件图号`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_图纸维护_删除图纸` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、新增。 读取/关联对象：表：`物料基础数据_零件图纸`。 写入或更新对象：`物料基础数据_零件图纸`、`物料基础数据_零件图纸删除记录`。 入参/分页参数：`@物料编号 NVARCHAR(100),`、`@文件名称 NVARCHAR(255)`、`@操作人 NVARCHAR(50)`。 关键过滤/匹配条件：`delete [dbo].[物料基础数据_零件图纸] where num = @物料编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO 物料基础数据_零件图纸删除记录 (`。 实现特征：事务控制、异常捕获。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_图纸维护_零件图查询全部` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50 *`。 关键过滤/匹配条件：`WHERE num LIKE '%' + @零件图号 + '%'`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_图纸维护_零件图查询全部` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50 *`。 关键过滤/匹配条件：`WHERE num LIKE '%' + @零件图号 + '%'`。 关键写入/状态处理语句线索：`set nocount on;`。

## 18. src/views/ProcessManagement/ProcedureManagement/index.vue

**页面位置**：`src/views/ProcessManagement/ProcedureManagement/index.vue`  
**所属模块**：ProcessManagement / ProcedureManagement  
**源码行数**：268

### 页面功能

该页面维护工序/路线阶段主数据。新增或修改工序时会同步 SAP B1 的 RouteStages，保证 MES 工序与 SAP 工艺阶段一致。

页面可见的操作/字段包括 “新增工艺”、“--> 取 消”、“确 定”、“序号”、“工艺名称”、“操作”、“请输入工艺名称”、“title”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_ProcessManagement_ProcessGet`、`MES_ProcessManagement_ProcessAdd`、`MES_ProcessManagement_ProcessEdit`、`MES_ProcessManagement_Processdel` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_ProcessManagement_ProcessGet` -> `MES_ProcessManagement_ProcessAdd` -> `MES_ProcessManagement_ProcessEdit` -> `MES_ProcessManagement_Processdel` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`新增工艺`、`--> 取 消`、`确 定`、`序号`、`工艺名称`、`操作`、`请输入工艺名称`、`title`

主要方法线索：`getProcess`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工艺名称` | - | `工艺编号 as 工艺编号, 工序名称 as 工艺名称` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `searchName` | - | - |
| 输入字段 | `form1.ProcessClassification` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 112 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_ProcessGet` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 151 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_ProcessAdd` | 新增业务数据 | 查询、新增 | 未在 SQL 中解析到明确依赖 |
| 188 | 12（当前通用存储过程写入/业务动作） | `MES_ProcessManagement_ProcessEdit` | 更新/保存业务数据 | 更新 | 未在 SQL 中解析到明确依赖 |
| 225 | 12（当前通用存储过程写入/业务动作） | `MES_ProcessManagement_Processdel` | 业务存储过程调用 | 未找到过程体 | 未知 |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 155 行：`postB1("/RouteStages")`
- 第 192 行：`getB1("/RouteStages")`
- 第 198 行：`patchB1("/RouteStages(")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 155 | `postB1` | `/RouteStages` | 新增或更新 SAP 工序阶段。失败会导致 MES 工序与 SAP RouteStages 不一致。 | `Code`、`Description`、`CreationDate`、`DateOfUpdate` |
| 192 | `getB1` | `/RouteStages` | 新增或更新 SAP 工序阶段。失败会导致 MES 工序与 SAP RouteStages 不一致。 | `filter`、`Description`、`DateOfUpdate`、`confirmButtonText`、`cancelButtonText`、`type` |
| 198 | `patchB1` | `/RouteStages(` | 新增或更新 SAP 工序阶段。失败会导致 MES 工序与 SAP RouteStages 不一致。 | `Description`、`DateOfUpdate`、`confirmButtonText`、`cancelButtonText`、`type`、`top` |

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/ProcessManagement/ProcedureManagement/index.vue` -> `MES_ProcessManagement_ProcessGet` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/ProcessManagement/ProcedureManagement/index.vue` -> `MES_ProcessManagement_ProcessAdd` -> 未在 SQL 中解析到明确依赖 -> 新增业务数据
- `src/views/ProcessManagement/ProcedureManagement/index.vue` -> `MES_ProcessManagement_ProcessEdit` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcedureManagement/index.vue` -> `MES_ProcessManagement_Processdel` -> 过程体未解析 -> 业务存储过程调用

### 存储过程处理逻辑明细

- `MES_ProcessManagement_ProcessGet` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 入参/分页参数：`@工艺编号 nvarchar(50)`。 主要返回字段线索：`工艺编号 as 工艺编号, 工序名称 as 工艺名称`。 关键过滤/匹配条件：`IF @工艺编号 IS NOT NULL AND @工艺编号 ! = ''`；`SELECT 工艺编号 as 工艺编号, 工序名称 as 工艺名称 FROM [基础表_工序] WHERE 工艺编号 IN (SELECT value FROM STRING_SPLIT(@工艺编号, ', '))`。 排序/分组/分页线索：`SELECT 工艺编号 as 工艺编号, 工序名称 as 工艺名称 FROM [基础表_工序] ORDER BY 工艺编号`。
- `MES_ProcessManagement_ProcessAdd` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`基础表_工序`。 入参/分页参数：`@工艺名称 nvarchar(50)`。 主要返回字段线索：`ISNULL(MAX(工艺编号), 0) +1`。 关键过滤/匹配条件：`select 工艺编号 from 基础表_工序 where 工序名称 = @工艺名称`。 关键写入/状态处理语句线索：`INSERT INTO 基础表_工序 (工艺编号, 工序名称) VALUES((select ISNULL(MAX(工艺编号), 0) +1 from 基础表_工序 ), @工艺名称)`。
- `MES_ProcessManagement_ProcessEdit` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`基础表_工序`。 入参/分页参数：`@工艺名称 nvarchar(50)`、`@工艺编号 int`。 关键过滤/匹配条件：`update 基础表_工序 set 工序名称 = @工艺名称 where 工艺编号 = @工艺编号`。 关键写入/状态处理语句线索：`update 基础表_工序 set 工序名称 = @工艺名称 where 工艺编号 = @工艺编号`。
- `MES_ProcessManagement_Processdel` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。

## 19. src/views/ProcessManagement/ProcessDrawing/index.vue

**页面位置**：`src/views/ProcessManagement/ProcessDrawing/index.vue`  
**所属模块**：ProcessManagement / ProcessDrawing  
**源码行数**：417

### 页面功能

该页面维护工艺图纸。用户按物料/工艺条件查询工艺图，验证名称，查看或删除工艺图纸。

页面可见的操作/字段包括 “查询”、“工艺图”、“选零件上传工艺图”、“选订单上传工艺图”、“查看”、“删除”、“取消”、“确定”、“item.物料编码”、“序号”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_工艺维护_工艺图查询`、`工艺管理_图纸维护_物料查询`、`工艺管理_工艺维护_验证名称`、`工艺管理_工艺维护_查看图纸`、`工艺管理_工艺维护_删除图纸` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `工艺管理_工艺维护_工艺图查询` -> `工艺管理_图纸维护_物料查询` -> `工艺管理_工艺维护_验证名称` -> `工艺管理_工艺维护_查看图纸` -> `工艺管理_工艺维护_删除图纸` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`工艺图`、`选零件上传工艺图`、`选订单上传工艺图`、`查看`、`删除`、`取消`、`确定`、`item.物料编码`、`序号`、`物料编号`、`物料名称`、`文件名称`、`导入人`、`导入时间`、`操作`、`请选择物料`、`请选择`

主要方法线索：`queryitem`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `query` | `@过滤` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `物料编号` | - | `num` |
| 显示列 | `物料名称` | - | `t2.物料描述` |
| 显示列 | `文件名称` | - | `THEN name` |
| 显示列 | `导入人` | - | `worker` |
| 显示列 | `导入时间` | - | `WHEN uploadTime IS NOT NULL` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `stationNumberValue` | - | - |
| 输入字段 | `uploadValue` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 165 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_工艺图查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |
| 176 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_物料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |
| 208 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_验证名称` | 业务存储过程调用 | 查询 | 表：`物料数据` |
| 250 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 271 | 12（当前通用存储过程写入/业务动作） | `工艺管理_工艺维护_删除图纸` | 删除业务数据 | 执行数据库业务逻辑 | 表：`物料基础数据_工艺图纸` |
| 340 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 368 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_工艺图查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |
| 379 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_工艺图查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 工艺管理_工艺维护_工艺图查询: SAP.SBO_YL.dbo.UBT_OITM
- 工艺管理_图纸维护_物料查询: SAP.SBO_YL.dbo.UBT_OITM
- 工艺管理_工艺维护_工艺图查询: SAP.SBO_YL.dbo.UBT_OITM
- 工艺管理_工艺维护_工艺图查询: SAP.SBO_YL.dbo.UBT_OITM

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `工艺管理_工艺维护_工艺图查询`：`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码 where num = @零件图号`；`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码`
- `工艺管理_图纸维护_物料查询`：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`
- `工艺管理_工艺维护_工艺图查询`：`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码 where num = @零件图号`；`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码`
- `工艺管理_工艺维护_工艺图查询`：`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码 where num = @零件图号`；`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码`

### 数据库调用链

- `src/views/ProcessManagement/ProcessDrawing/index.vue` -> `工艺管理_工艺维护_工艺图查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessDrawing/index.vue` -> `工艺管理_图纸维护_物料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessDrawing/index.vue` -> `工艺管理_工艺维护_验证名称` -> 表：`物料数据` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessDrawing/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessDrawing/index.vue` -> `工艺管理_工艺维护_删除图纸` -> 表：`物料基础数据_工艺图纸` -> 删除业务数据
- `src/views/ProcessManagement/ProcessDrawing/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessDrawing/index.vue` -> `工艺管理_工艺维护_工艺图查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessDrawing/index.vue` -> `工艺管理_工艺维护_工艺图查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据

### 存储过程处理逻辑明细

- `工艺管理_工艺维护_工艺图查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50`、`t1.*, `、`t2.物料描述`。 关键过滤/匹配条件：`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码 where num = @零件图号`。 关键写入/状态处理语句线索：`set nocount on;`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_图纸维护_物料查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@过滤 NVARCHAR(200)`。 主要返回字段线索：`top 100 *`。 关键过滤/匹配条件：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_工艺维护_验证名称` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`物料数据`。 入参/分页参数：`@零件图号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM [dbo].[物料数据] where 物料编码 = @零件图号`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_删除图纸` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 删除业务数据。 数据库处理摘要：执行数据库业务逻辑。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 nvarchar(50)`。 关键过滤/匹配条件：`delete [dbo].[物料基础数据_工艺图纸] where num = @物料编号`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_工艺图查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50`、`t1.*, `、`t2.物料描述`。 关键过滤/匹配条件：`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码 where num = @零件图号`。 关键写入/状态处理语句线索：`set nocount on;`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_工艺维护_工艺图查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50`、`t1.*, `、`t2.物料描述`。 关键过滤/匹配条件：`SAP.SBO_YL.dbo.UBT_OITM AS t2 ON t1.num = t2.物料编码 where num = @零件图号`。 关键写入/状态处理语句线索：`set nocount on;`。 实现特征：读取 SAP 数据库对象。

## 20. src/views/ProcessManagement/ProcessInquiry/index.vue

**页面位置**：`src/views/ProcessManagement/ProcessInquiry/index.vue`  
**所属模块**：ProcessManagement / ProcessInquiry  
**源码行数**：802

### 页面功能

该页面用于工艺路线查询。用户按物料、产品、工序等条件查看标准工艺或生产工艺，服务于排产、生产和质检核对。

页面可见的操作/字段包括 “查询”、“打印”、“item.物料编码”、“全部”、“已打印”、“未打印”、“已拣配”、“未拣配”、“机加件”、“装配件”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_ProcessManagement_PartGet`、`工艺管理_工艺查询_查询生产工艺`、`工艺管理_工艺查询_更新打印次数` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_ProcessManagement_PartGet` -> `工艺管理_工艺查询_查询生产工艺` -> `工艺管理_工艺查询_更新打印次数` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`打印`、`item.物料编码`、`全部`、`已打印`、`未打印`、`已拣配`、`未拣配`、`机加件`、`装配件`、`序号`、`生产订单`、`计划号`、`物料名称`、`物料编码`、`加工数量`、`打印次数`、`生产工艺物料名称`

主要方法线索：`handleSelectionChange`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `序号` | - | `序号` |
| 显示列 | `生产订单` | - | `c.[订单编号]` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `物料名称` | - | `零件名称` |
| 显示列 | `物料编码` | - | `[零件图号]` |
| 显示列 | `加工数量` | - | `c.[计划数量]` |
| 显示列 | `打印次数` | - | `周转单打印次数` |
| 输入字段 | `partNameValue3` | - | - |
| 输入字段 | `orderNo` | - | - |
| 输入字段 | `plannum` | - | - |
| 输入字段 | `taskstatus` | - | - |
| 输入字段 | `pickingstatus` | - | - |
| 输入字段 | `orderstatus` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 297 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_PartGet` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |
| 350 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺查询_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 646 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺查询_更新打印次数` | 查询/读取数据 | 查询、新增、更新、处理计划/派工 | 表：`MES_接口_生产计划` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- MES_ProcessManagement_PartGet: SAP.SBO_YL.dbo.UBT_OITM

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_ProcessManagement_PartGet`：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`
- `工艺管理_工艺查询_查询生产工艺`：`, c.计划完成`；`, c.加急状态`
- `工艺管理_工艺查询_更新打印次数`：`'成功' AS 状态, `；`'错误' AS 状态, `

### 数据库调用链

- `src/views/ProcessManagement/ProcessInquiry/index.vue` -> `MES_ProcessManagement_PartGet` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessInquiry/index.vue` -> `工艺管理_工艺查询_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessInquiry/index.vue` -> `工艺管理_工艺查询_更新打印次数` -> 表：`MES_接口_生产计划` -> 查询/读取数据

### 存储过程处理逻辑明细

- `MES_ProcessManagement_PartGet` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@过滤 NVARCHAR(200)`。 主要返回字段线索：`top 100 *`。 关键过滤/匹配条件：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_工艺查询_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`c.[订单编号]`、`c.[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`、`isnull(工时合计, 0) as 工时合计`。 关键过滤/匹配条件：`FROM [dbo].[View_生产订单_MES] as c inner join [车间生产管理工艺_零件生产工艺_工艺库] as a on a.订单编号 = c.订单编号 and a.工艺顺序 = c.订单行号`；`where c.[订单编号] = @订单编号`。 排序/分组/分页线索：`ORDER BY TaskAID`。
- `工艺管理_工艺查询_更新打印次数` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、新增、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE 订单编号 IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划]`；`SET 周转单打印次数 = ISNULL(周转单打印次数, 0) + 1`。 实现特征：事务控制、异常捕获、临时表 `#TempOrders`。

## 21. src/views/ProcessManagement/ProcessProduct/index.vue

**页面位置**：`src/views/ProcessManagement/ProcessProduct/index.vue`  
**所属模块**：ProcessManagement / ProcessProduct  
**源码行数**：1232

### 页面功能

该页面维护产品与工艺/图纸的关系，使产品、物料、工序、图纸等基础数据形成可查询的工艺资料。

页面可见的操作/字段包括 “查询”、“批量生成生产工艺”、“编辑工艺”、“拷贝”、“零件图纸”、“工艺图纸”、“保存为标准工艺”、“下发任务”、“已保存”、“保存”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_获取物料原料信息`、`工艺管理_生产工艺_查询生产工艺`、`工艺管理_生产工艺_工艺拷贝`、`工艺管理_生产工艺_生产工艺拷贝`、`工艺管理_生产工艺_标准工艺拷贝`、`计划排产_生产订单_订单查询` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `工艺管理_获取物料原料信息` -> `工艺管理_生产工艺_查询生产工艺` -> `工艺管理_生产工艺_工艺拷贝` -> `工艺管理_生产工艺_生产工艺拷贝` -> `工艺管理_生产工艺_标准工艺拷贝` -> `计划排产_生产订单_订单查询` -> `计划排产_生产订单_订单任务_生产工艺任务下发` -> `计划排产_生产订单_订单任务_单条生产工艺任务下发` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`批量生成生产工艺`、`编辑工艺`、`拷贝`、`零件图纸`、`工艺图纸`、`保存为标准工艺`、`下发任务`、`已保存`、`保存`、`取消`、`确定`、`关闭`、`全部`、`未下发`、`已下发`、`机加件`、`装配件`

主要方法线索：`getitemdata`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `item` | `@订单编号` | - |
| 参数 | `this.orderNo ` | `@订单号` | - |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.productCode` | `@产品编码` | - |
| 参数 | `this.productName` | `@产品名称` | - |
| 参数 | `this.completionTime[0` | `@下达日期1` | - |
| 参数 | `this.completionTime[1` | `@下达日期2` | - |
| 参数 | `this.taskstatus` | `@任务状态` | - |
| 参数 | `this.orderstatus` | `@订单状态` | - |
| 参数 | `this.standardprocess` | `@工艺状态` | - |
| 参数 | `this.plannum` | `@计划号` | - |
| 参数 | `this.pageCurrent` | `@PageCurrent` | - |
| 参数 | `this.pageSize` | `@PageSize` | - |
| 参数 | `'1111', 'int', '1'` | `@PageCount` | - |
| 参数 | `'1111', 'int', '1'` | `@ItemCount` | - |
| 参数 | `this.selectedRow.订单编号` | `@订单编号` | - |
| 参数 | `this.selectedRow.物料编号` | `@物料编号` | - |
| 参数 | `this.selectedRow.计划数量` | `@计划数量` | - |
| 参数 | `row.工艺顺序` | `@工艺顺序` | `g.工艺顺序 AS 订单行号, ` |
| 参数 | `orderids` | `@订单编号` | - |
| 参数 | `orderitems` | `@零件图号` | - |
| 参数 | `ordernums` | `@计划数量` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `销售订单` | - | `合同号` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `生产订单` | - | `[订单编号]` |
| 显示列 | `物料编码` | - | `g.零件图号 AS 物料编码, ` |
| 显示列 | `物料名称` | - | `mp.物料描述 AS 物料名称, ` |
| 显示列 | `属性` | - | `自制件属性` |
| 显示列 | `计划数` | - | `[计划数量]` |
| 显示列 | `下达日期` | - | `下达日期` |
| 显示列 | `计划开始` | - | `计划开始` |
| 显示列 | `计划完成` | - | `计划完成` |
| 显示列 | `加急状态` | - | `加急状态` |
| 显示列 | `标准工艺` | - | `标准工艺` |
| 显示列 | `生产工艺` | - | `生产工艺` |
| 显示列 | `图纸` | - | `图纸` |
| 显示列 | `备注` | - | `备注` |
| 显示列 | `操作` | - | `操作` |
| 显示列 | `工序` | - | `xg.工序名称, ` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 546 | 11（当前通用存储过程查询/执行） | `工艺管理_获取物料原料信息` | 业务存储过程调用 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material` |
| 575 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 601 | 12（当前通用存储过程写入/业务动作） | `工艺管理_生产工艺_工艺拷贝` | 业务存储过程调用 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 618 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_生产工艺拷贝` | 业务存储过程调用 | 查询、分页、处理计划/派工 | 表：`MES_接口_生产计划` |
| 624 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_标准工艺拷贝` | 业务存储过程调用 | 查询、分页 | 表：`车间生产管理工艺_零件工序_工艺库`、`物料数据` |
| 669 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单_订单查询` | 查询/读取数据 | 查询、分页、处理计划/派工 | 表：`MES_接口_生产计划`；视图：`View_生产计划零件图纸视图` |
| 696 | 11（当前通用存储过程查询/执行） | `计划排产_生产订单_订单任务_生产工艺任务下发` | 计划排产或派工 | 查询、新增、更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 721 | 12（当前通用存储过程写入/业务动作） | `计划排产_生产订单_订单任务_单条生产工艺任务下发` | 计划排产或派工 | 查询、新增、更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 753 | 12（当前通用存储过程写入/业务动作） | `工艺管理_零件工序_生产工艺_批量生成生产工艺` | 业务存储过程调用 | 查询、新增、更新、分页、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 765 | 11（当前通用存储过程查询/执行） | `设备管理_设备信息_查询` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 801 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_ProcessBindGet` | 查询/读取数据 | 查询 | 表：`车间生产管理工艺_零件工序_工艺库` |
| 814 | 11（当前通用存储过程查询/执行） | `工艺管理_制定标准工艺_拷贝生产工艺` | 业务存储过程调用 | 查询 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 841 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_ProcessGet` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 863 | 12（当前通用存储过程写入/业务动作） | `车间生产管理工艺_零件工序_保存为标准工艺` | 更新/保存业务数据 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 883 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 905 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 961 | 11（当前通用存储过程查询/执行） | `工艺管理_零件工序_生产工艺_修改数据` | 更新/保存业务数据 | 查询、新增、更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 966 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 1015 | 11（当前通用存储过程查询/执行） | `工艺管理_零件工序_生产工艺_编辑` | 更新/保存业务数据 | 更新、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 1036 | 11（当前通用存储过程查询/执行） | `工艺管理_零件工序_生产工艺_编辑插入工序` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 1042 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 1059 | 11（当前通用存储过程查询/执行） | `工艺管理_零件工序_生产工艺_删除工序` | 删除业务数据 | 查询、更新、删除、处理计划/派工 | 表：`MES_接口_生产计划` |
| 1065 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 1081 | 11（当前通用存储过程查询/执行） | `工艺管理_零件工序_生产工艺_上移工序` | 业务存储过程调用 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 1087 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 1103 | 11（当前通用存储过程查询/执行） | `工艺管理_零件工序_生产工艺_下移工序` | 业务存储过程调用 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 1109 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 1123 | 11（当前通用存储过程查询/执行） | `工艺管理_零件工序_生产工艺_插入工序` | 业务存储过程调用 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 1129 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 1140 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_启用` | 业务存储过程调用 | 更新、处理计划/派工 | 表：`MES_接口_生产计划` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 工艺管理_获取物料原料信息: SAP.SBO_YL.dbo.UBT_OWOR_material

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `工艺管理_获取物料原料信息`：`SELECT * FROM SAP.SBO_YL.dbo.UBT_OWOR_material where Docentry = @订单编号`
- `计划排产_生产订单_订单查询`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_订单查询]`；`@任务状态 int = 1, `；`@订单状态 int = 1, `；`@工艺状态 int, `；`set @where = ' (单据状态 ''已取消'' OR 单据状态 IS NULL) '`；`IF @任务状态 = 2`；`SET @where = @where + ' AND ISNULL(任务状态, 0) = '+ CAST(@任务状态 AS VARCHAR(10));`；`IF @任务状态 = 1`
- `计划排产_生产订单_订单任务_生产工艺任务下发`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_订单任务_生产工艺任务下发]`；`declare @任务状态 int`；`select @任务状态 = isnull(任务状态, 0) from [dbo].[MES_接口_生产计划] where 订单编号 = @订单编号`；`if (@任务状态 2 and @自制件属性 = '机加件')`；`'insert into [dbo].[MES_接口_生产计划_生产任务] (不装配, 订单编号, 计划数量, 物料编码, 订单行号, 顺序编号, 工序名称, 物料名称, 订单发货类型, 物料类型, 基本数量, 已发货数量, 订单拆分内码, 阶段标识, 可视订单)`；`update [dbo].[MES_接口_生产计划] set 任务状态 = 2 where 订单编号 = @订单编号`；`if (@任务状态 2 and @自制件属性 like '%装配%')`；`'insert into [dbo].[MES_接口_生产计划_生产任务] (不装配, 订单编号, 计划数量, 物料编码, 订单行号, `
- `计划排产_生产订单_订单任务_单条生产工艺任务下发`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_订单任务_单条生产工艺任务下发]`；`UPDATE dbo.MES_接口_生产计划_生产任务`；`INSERT INTO [dbo].[MES_接口_生产计划_生产任务]`；`update [dbo].[MES_接口_生产计划] set 任务状态 = 2 where 订单编号 = @订单编号`

### 数据库调用链

- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_获取物料原料信息` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_工艺拷贝` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_生产工艺拷贝` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_标准工艺拷贝` -> 表：`车间生产管理工艺_零件工序_工艺库`、`物料数据` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `计划排产_生产订单_订单查询` -> 表：`MES_接口_生产计划`；视图：`View_生产计划零件图纸视图` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `计划排产_生产订单_订单任务_生产工艺任务下发` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `计划排产_生产订单_订单任务_单条生产工艺任务下发` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_零件工序_生产工艺_批量生成生产工艺` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `设备管理_设备信息_查询` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `MES_ProcessManagement_ProcessBindGet` -> 表：`车间生产管理工艺_零件工序_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_制定标准工艺_拷贝生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `MES_ProcessManagement_ProcessGet` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `车间生产管理工艺_零件工序_保存为标准工艺` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_零件工序_生产工艺_修改数据` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_零件工序_生产工艺_编辑` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_零件工序_生产工艺_编辑插入工序` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_零件工序_生产工艺_删除工序` -> 表：`MES_接口_生产计划` -> 删除业务数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_零件工序_生产工艺_上移工序` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_零件工序_生产工艺_下移工序` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_零件工序_生产工艺_插入工序` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessProduct/index.vue` -> `工艺管理_生产工艺_启用` -> 表：`MES_接口_生产计划` -> 业务存储过程调用

### 存储过程处理逻辑明细

- `工艺管理_获取物料原料信息` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM SAP.SBO_YL.dbo.UBT_OWOR_material where Docentry = @订单编号`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_生产工艺_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`a.[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[订单编号]`、`[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`。 关键过滤/匹配条件：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。
- `工艺管理_生产工艺_工艺拷贝` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@零件图号 nvarchar(50)`、`@订单编号 int,`、`@计划数量 int,`、`@工艺类型 int`。 主要返回字段线索：`@工艺数量 = count(*)`。 关键过滤/匹配条件：`select @工艺数量 = count(*) from 车间生产管理工艺_零件工序_工艺库 where 零件图号 = @零件图号`；`select @工艺数量 = count(*) from 车间生产管理工艺_零件生产工艺_工艺库 where 零件图号 = @零件图号`；`delete 车间生产管理工艺_零件生产工艺_工艺库 where 订单编号 = @订单编号`；`where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 1 where 订单编号 = @订单编号`；`WHERE 零件图号 = @零件图号 and 工艺顺序 = @i and 启用 = 1`；`where 零件图号 = @物料编号 and 工艺顺序 = @i and 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`set @l = 1`；`set @新增条数 = @工艺数量`；`insert into 车间生产管理工艺_零件生产工艺_工艺库(订单编号, 计划数量, 零件图号, 工艺顺序, 启用)values(@订单编号, @计划数量, @物料编号, ISNULL(@最大顺序, 0)+1, 0)`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 1 where 订单编号 = @订单编号`；`set @l = @l+1`；`set @i = 1`；`update 车间生产管理工艺_零件生产工艺_工艺库`；`set 工艺编号 = @工艺编号, `；`set @i = @i+1`。
- `工艺管理_生产工艺_生产工艺拷贝` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、分页、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`from [MES_接口_生产计划] where 生产工艺 = 1) t WHERE rn = 1;`。 排序/分组/分页线索：`ROW_NUMBER() OVER (PARTITION BY [物料编号] ORDER BY (SELECT NULL)) AS rn`。 实现特征：分页。
- `工艺管理_生产工艺_标准工艺拷贝` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、分页。 读取/关联对象：表：`车间生产管理工艺_零件工序_工艺库`、`物料数据`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`from [dbo].[车间生产管理工艺_零件工序_工艺库] a left join [dbo].[物料数据] b on a.零件图号 = b.物料编码 where a.启用 = 1) t WHERE rn = 1;`。 排序/分组/分页线索：`ROW_NUMBER() OVER (PARTITION BY a.[零件图号] ORDER BY (SELECT NULL)) AS rn`。 实现特征：分页。
- `计划排产_生产订单_订单查询` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、分页、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；视图：`View_生产计划零件图纸视图`。 入参/分页参数：`@订单号 int`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@下达日期1 nvarchar(50)`、`@下达日期2 nvarchar(50)`、`@任务状态 int`、`@订单状态 int`、`@工艺状态 int,`、`@计划号 nvarchar(50)`、`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`。 关键过滤/匹配条件：`declare @where nvarchar(4000)`；`set @where = ' (单据状态 ''已取消'' OR 单据状态 IS NULL) '`；`SET @where = @where + ' AND [订单编号] = ' + CAST(@订单号 AS VARCHAR(10));`；`IF @计划号 IS NOT NULL AND @计划号 0`；`SET @where = @where + ' AND 计划号 = '''+@计划号+''''`；`SET @where = @where + ' AND [合同号] LIKE ''%' + @合同号 + '%''';`；`SET @where = @where + ' AND [物料编号] LIKE ''%' + @产品编码 + '%''';`；`SET @where = @where + ' AND [物料描述] LIKE ''%' + @产品名称 + '%''';`；`SET @where = @where + ' AND 下达日期 > = ''' + @下达日期1 + '''';`；`SET @where = @where + ' AND 下达日期 < = ''' + @下达日期2 + '''';`。 关键写入/状态处理语句线索：`set @tbname = '[dbo].[View_生产计划零件图纸视图]'`；`set @fieldkey = ' 订单编号 '`；`set @where = ' (单据状态 ''已取消'' OR 单据状态 IS NULL) '`；`set @fieldshow = ''`；`set @fieldOrder = '订单编号 DESC'`；`SET @where = @where + ' AND [订单编号] = ' + CAST(@订单号 AS VARCHAR(10));`；`SET @where = @where + ' AND 计划号 = '''+@计划号+''''`；`SET @where = @where + ' AND [合同号] LIKE ''%' + @合同号 + '%''';`；`SET @where = @where + ' AND [物料编号] LIKE ''%' + @产品编码 + '%''';`；`SET @where = @where + ' AND [物料描述] LIKE ''%' + @产品名称 + '%''';`；`SET @where = @where + ' AND 下达日期 > = ''' + @下达日期1 + '''';`；`SET @where = @where + ' AND 下达日期 < = ''' + @下达日期2 + '''';`。 实现特征：分页。
- `计划排产_生产订单_订单任务_生产工艺任务下发` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@订单编号 nvarchar(max),`、`@物料编号 nvarchar(max),`、`@计划数量 int`。 主要返回字段线索：`@任务状态 = isnull(任务状态, 0)`。 关键过滤/匹配条件：`select @任务状态 = isnull(任务状态, 0) from [dbo].[MES_接口_生产计划] where 订单编号 = @订单编号`；`select @自制件属性 = isnull(自制件属性, 0) from [dbo].[MES_接口_生产计划] where 订单编号 = @订单编号`；`if (@任务状态 2 and @自制件属性 = '机加件')`；`where 车间生产管理工艺_零件生产工艺_工艺库.零件图号 = '''+@物料编号+'''and MES_接口_生产计划.订单编号 = '''+@订单编号+''''`；`update [dbo].[MES_接口_生产计划] set 任务状态 = 2 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 1 where 订单编号 = @订单编号`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 1 where 订单编号 = @订单编号`；`if (@任务状态 2 and @自制件属性 like '%装配%')`。 关键写入/状态处理语句线索：`set @selectStr2 = `；`'insert into [dbo].[MES_接口_生产计划_生产任务] (不装配, 订单编号, 计划数量, 物料编码, 订单行号, 顺序编号, 工序名称, 物料名称, 订单发货类型, 物料类型, 基本数量, 已发货数量, 订单拆分内码, 阶段标识, 可视订单)`；`update [dbo].[MES_接口_生产计划] set 任务状态 = 2 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 1 where 订单编号 = @订单编号`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 1 where 订单编号 = @订单编号`；`'insert into [dbo].[MES_接口_生产计划_生产任务] (不装配, 订单编号, 计划数量, 物料编码, 订单行号, `。
- `计划排产_生产订单_订单任务_单条生产工艺任务下发` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@订单编号 NVARCHAR(50),`、`@物料编号 NVARCHAR(50),`、`@计划数量 INT,`、`@工艺顺序 INT`。 主要返回字段线索：`''4'' AS 不装配, `、`g.订单编号, `、`g.计划数量, `、`g.零件图号 AS 物料编码, `、`g.工艺顺序 AS 订单行号, `、`g.工艺编号 AS 顺序编号, `、`xg.工序名称, `、`mp.物料描述 AS 物料名称, `、`''im_Manual'' AS 订单发货类型, `、`''pit_Resource'' AS 物料类型, `。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`；`AND 物料编码 = @物料编号`；`AND 订单行号 > = @工艺顺序;`；`LEFT JOIN dbo.MES_接口_生产计划 mp ON g.零件图号 = mp.物料编号 AND mp.订单编号 = g.订单编号`；`WHERE g.零件图号 = ''' + @Safe物料编号 + '''`；`AND mp.订单编号 = ''' + @Safe订单编号 + '''`；`AND g.工艺顺序 = ' + @Safe工艺顺序 + ';'`；`update [dbo].[MES_接口_生产计划] set 任务状态 = 2 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 1 where 订单编号 = @订单编号`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 1 where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE dbo.MES_接口_生产计划_生产任务`；`SET 订单行号 = 订单行号 + 1`；`SET @SQL = '`；`INSERT INTO [dbo].[MES_接口_生产计划_生产任务]`；`update [dbo].[MES_接口_生产计划] set 任务状态 = 2 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 1 where 订单编号 = @订单编号`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 1 where 订单编号 = @订单编号`。 实现特征：事务控制、异常捕获。
- `工艺管理_零件工序_生产工艺_批量生成生产工艺` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新、分页、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@零件图号 NVARCHAR(MAX),`、`@订单编号 NVARCHAR(MAX),`、`@计划数量 NVARCHAR(MAX)`。 主要返回字段线索：`TRIM(value)`。 关键过滤/匹配条件：`IF @零件图号 IS NULL OR @订单编号 IS NULL OR @计划数量 IS NULL`；`WHERE 订单编号 IN (SELECT TRIM(value) FROM STRING_SPLIT(@订单编号, '', '')) ;';`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @sql1 = N'`；`UPDATE [dbo].[MES_接口_生产计划]`；`SET 生产工艺 = 1`；`SET @sql2 = N'`；`INSERT INTO 车间生产管理工艺_零件生产工艺_工艺库`。 排序/分组/分页线索：`SELECT TRIM(value) AS PartID, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn`；`SELECT TRIM(value) AS OrderID, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn`；`SELECT TRIM(value) AS Qty, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn`。 实现特征：分页。
- `设备管理_设备信息_查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 入参/分页参数：`@设备名称_check bit`、`@设备名称 nvarchar(50)`、`@设备类型_check bit`、`@设备类型 int`、`@工位_check bit`、`@工位 nvarchar(50)`。 主要返回字段线索：`*, [dbo].[YL_基础表_数据字典].词条名称 as 设备类型名称`。 关键过滤/匹配条件：`set @selectStrWhere = 'where 1 = 1 '`；`set @selectStrWhere = @selectStrWhere+' and 设备名称 like + ''%'' + @设备名称 + ''%'' '`；`set @selectStrWhere = @selectStrWhere+' and 基础数据_设备工位点检表.设备类型 = @设备类型'`。 关键写入/状态处理语句线索：`set @selectStr = `；`set @selectStrWhere = 'where 1 = 1 '`；`set @selectStrWhere = @selectStrWhere+' and 设备名称 like + ''%'' + @设备名称 + ''%'' '`；`set @selectStrWhere = @selectStrWhere+' and 基础数据_设备工位点检表.设备类型 = @设备类型'`；`set @selectStr = @selectStr+@selectStrWhere`。
- `MES_ProcessManagement_ProcessBindGet` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`*, dbo.基础表_工序.工序名称 as 工艺名称`。 关键过滤/匹配条件：`on 车间生产管理工艺_零件工序_工艺库.工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on 车间生产管理工艺_零件工序_工艺库.工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 ORDER BY [工艺顺序]`。
- `工艺管理_制定标准工艺_拷贝生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`@最大订单 = max(订单编号)`。 关键过滤/匹配条件：`select @最大订单 = max(订单编号) from 车间生产管理工艺_零件生产工艺_工艺库 where 零件图号 = @物料编号 and 启用 = 1`；`on [车间生产管理工艺_零件生产工艺_工艺库].工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 and 启用 = 1 and 订单编号 = @最大订单 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on [车间生产管理工艺_零件生产工艺_工艺库].工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 and 启用 = 1 and 订单编号 = @最大订单 ORDER BY [工艺顺序]`。
- `MES_ProcessManagement_ProcessGet` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 入参/分页参数：`@工艺编号 nvarchar(50)`。 主要返回字段线索：`工艺编号 as 工艺编号, 工序名称 as 工艺名称`。 关键过滤/匹配条件：`IF @工艺编号 IS NOT NULL AND @工艺编号 ! = ''`；`SELECT 工艺编号 as 工艺编号, 工序名称 as 工艺名称 FROM [基础表_工序] WHERE 工艺编号 IN (SELECT value FROM STRING_SPLIT(@工艺编号, ', '))`。 排序/分组/分页线索：`SELECT 工艺编号 as 工艺编号, 工序名称 as 工艺名称 FROM [基础表_工序] ORDER BY 工艺编号`。
- `车间生产管理工艺_零件工序_保存为标准工艺` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(500),`、`@订单编号 int`。 主要返回字段线索：`[零件图号]`、`[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[计划数量]`、`[准备工时]`、`[标准工时]`、`[工时合计]`、`[工卡量具]`。 关键过滤/匹配条件：`delete 车间生产管理工艺_零件工序_工艺库 where 零件图号 = @物料编号`；`from 车间生产管理工艺_零件生产工艺_工艺库 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 1 where 物料编号 = @物料编号`。 关键写入/状态处理语句线索：`insert into 车间生产管理工艺_零件工序_工艺库 ( [零件图号]`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 1 where 物料编号 = @物料编号`。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_零件工序_生产工艺_修改数据` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@工艺编号 int`、`@计划数量 int`、`@订单编号 int`。 主要返回字段线索：`top 1 @工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`select top 1 @工序顺序 = 工艺顺序 from 车间生产管理工艺_零件生产工艺_工艺库 where 零件图号 = @物料编号 and 订单编号 = @订单编号 order by 工艺顺序 desc`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`insert into dbo.车间生产管理工艺_零件生产工艺_工艺库(计划数量, 零件图号, 工艺顺序, 工艺编号, 订单编号)values(@计划数量, @物料编号, @工序顺序+1, @工艺编号, @订单编号)`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。 排序/分组/分页线索：`select top 1 @工序顺序 = 工艺顺序 from 车间生产管理工艺_零件生产工艺_工艺库 where 零件图号 = @物料编号 and 订单编号 = @订单编号 order by 工艺顺序 desc`。
- `工艺管理_生产工艺_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`a.[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[订单编号]`、`[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`。 关键过滤/匹配条件：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。
- `工艺管理_零件工序_生产工艺_编辑` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@idd int,`、`@工艺要求 nvarchar(500)`、`@准备工时 int`、`@标准工时 int`、`@工时合计 int`、`@工卡量具 nvarchar(500)`、`@指定机床 nvarchar(500)`、`@车间 nvarchar(500)`、`@备注 nvarchar(500)`、`@属性 nvarchar(500)`。 关键过滤/匹配条件：`工时合计 = @工时合计, 工卡量具 = @工卡量具, 指定机床 = @指定机床, 车间 = @车间, 备注 = @备注, 属性 = @属性 where id = @idd`。 关键写入/状态处理语句线索：`update 车间生产管理工艺_零件生产工艺_工艺库 set 工艺要求 = @工艺要求, 准备工时 = @准备工时, 标准工时 = @标准工时, `。
- `工艺管理_零件工序_生产工艺_编辑插入工序` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@idd int,`、`@工艺编号 int,`、`@计划数量 int,`、`@订单编号 int`。 关键过滤/匹配条件：`update 车间生产管理工艺_零件生产工艺_工艺库 set 工艺编号 = @工艺编号, 计划数量 = @计划数量 where id = @idd`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`update 车间生产管理工艺_零件生产工艺_工艺库 set 工艺编号 = @工艺编号, 计划数量 = @计划数量 where id = @idd`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。
- `工艺管理_生产工艺_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`a.[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[订单编号]`、`[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`。 关键过滤/匹配条件：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。
- `工艺管理_零件工序_生产工艺_删除工序` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、更新、删除、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@idd int`、`@订单编号 int`。 主要返回字段线索：`@工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`select @工序顺序 = 工艺顺序 from 车间生产管理工艺_零件生产工艺_工艺库 where id = @idd`；`where 工艺顺序>@工序顺序 and 零件图号 = @物料编号 and 订单编号 = @订单编号`；`delete from 车间生产管理工艺_零件生产工艺_工艺库 where id = @idd`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`update 车间生产管理工艺_零件生产工艺_工艺库 set 工艺顺序 = 工艺顺序 - 1`；`delete from 车间生产管理工艺_零件生产工艺_工艺库 where id = @idd`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。
- `工艺管理_生产工艺_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`a.[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[订单编号]`、`[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`。 关键过滤/匹配条件：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。
- `工艺管理_零件工序_生产工艺_上移工序` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@idd int`、`@订单编号 int`。 主要返回字段线索：`@工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`where id = @idd`；`where 零件图号 = @物料编号 and 工艺顺序 = @工序顺序-1 and 订单编号 = @订单编号`；`where id = @前idd`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`update dbo.车间生产管理工艺_零件生产工艺_工艺库`；`set 工艺顺序 = @工序顺序-1`；`set 工艺顺序 = @工序顺序`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。
- `工艺管理_生产工艺_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`a.[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[订单编号]`、`[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`。 关键过滤/匹配条件：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。
- `工艺管理_零件工序_生产工艺_下移工序` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@idd int`、`@订单编号 int`。 主要返回字段线索：`@工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`where id = @idd`；`where 零件图号 = @物料编号 and 工艺顺序 = @工序顺序+1 and 订单编号 = @订单编号`；`where id = @后idd`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`update dbo.车间生产管理工艺_零件生产工艺_工艺库`；`set 工艺顺序 = @工序顺序+1`；`set 工艺顺序 = @工序顺序`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。
- `工艺管理_生产工艺_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`a.[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[订单编号]`、`[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`。 关键过滤/匹配条件：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。
- `工艺管理_零件工序_生产工艺_插入工序` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@零件图号 nvarchar(50)`、`@idd int`、`@订单编号 int`。 主要返回字段线索：`@工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`select @工序顺序 = 工艺顺序 from dbo.车间生产管理工艺_零件生产工艺_工艺库 where id = @idd`；`where 工艺顺序> = @工序顺序 and 零件图号 = @零件图号 and 订单编号 = @订单编号`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`update dbo.车间生产管理工艺_零件生产工艺_工艺库`；`set 工艺顺序 = 工艺顺序+1`；`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 0 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 0 where 订单编号 = @订单编号`。
- `工艺管理_生产工艺_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`a.[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[订单编号]`、`[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`。 关键过滤/匹配条件：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。
- `工艺管理_生产工艺_启用` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@订单编号 nvarchar(50)`。 关键过滤/匹配条件：`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 1 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 1 where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`update 车间生产管理工艺_零件生产工艺_工艺库 set 启用 = 1 where 订单编号 = @订单编号`；`update [dbo].[MES_接口_生产计划] set 生产工艺 = 1 where 订单编号 = @订单编号`。

## 22. src/views/ProcessManagement/ProcessesDevelop/index.vue

**页面位置**：`src/views/ProcessManagement/ProcessesDevelop/index.vue`  
**所属模块**：ProcessManagement / ProcessesDevelop  
**源码行数**：918

### 页面功能

该页面用于工艺开发和生产工艺路线维护。用户围绕物料、工序、顺序、工艺参数、图纸等信息维护标准或生产用工艺路线。

页面可见的操作/字段包括 “查询”、“拷贝”、“图纸”、“已保存”、“保存”、“导出”、“--> 生产工艺 取消”、“确定”、“item.物料编码”、“工序”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_获取物料原料信息`、`设备管理_设备信息_查询`、`工艺管理_生产计划物料查询`、`工艺管理_生产工艺_生产工艺拷贝`、`工艺管理_生产工艺_标准工艺拷贝`、`MES_ProcessManagement_ProcessBindGet` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `工艺管理_获取物料原料信息` -> `设备管理_设备信息_查询` -> `工艺管理_生产计划物料查询` -> `工艺管理_生产工艺_生产工艺拷贝` -> `工艺管理_生产工艺_标准工艺拷贝` -> `MES_ProcessManagement_ProcessBindGet` -> `工艺管理_制定标准工艺_拷贝生产工艺` -> `MES_ProcessManagement_ProcessGet` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`拷贝`、`图纸`、`已保存`、`保存`、`导出`、`--> 生产工艺 取消`、`确定`、`item.物料编码`、`工序`、`序号`、`工序名称`、`准备工时`、`标准工时`、`工时合计`、`工装量具`、`item.name`、`指定机床`

主要方法线索：`getitemdata`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `item` | `@订单编号` | - |
| 参数 | `query` | `@过滤` | - |
| 显示列 | `工序` | - | `*, dbo.基础表_工序.工序名称 as 工艺名称` |
| 显示列 | `序号` | - | `top 1 @工序顺序 = 工艺顺序` |
| 显示列 | `工序名称` | - | `*, dbo.基础表_工序.工序名称 as 工艺名称` |
| 显示列 | `准备工时` | - | `dbo.车间生产管理工艺_零件工序_工艺库.准备工时, ` |
| 显示列 | `标准工时` | - | `dbo.车间生产管理工艺_零件工序_工艺库.标准工时, ` |
| 显示列 | `工时合计` | - | `dbo.车间生产管理工艺_零件工序_工艺库.工时合计, ` |
| 显示列 | `工装量具` | - | `工装量具` |
| 显示列 | `指定机床` | - | `指定机床` |
| 显示列 | `车间` | - | `dbo.车间生产管理工艺_零件工序_工艺库.id, ` |
| 显示列 | `工序说明` | - | `工序说明` |
| 显示列 | `备注` | - | `备注` |
| 显示列 | `操作` | - | `操作` |
| 显示列 | `工序说明` | - | `dbo.车间生产管理工艺_零件工序_工艺库.工艺要求, ` |
| 输入字段 | `partNameValue3` | - | - |
| 输入字段 | `processSearchName` | - | - |
| 输入字段 | `scope.row.准备工时` | - | - |
| 输入字段 | `scope.row.标准工时` | - | - |
| 输入字段 | `scope.row.工时合计` | - | - |
| 输入字段 | `scope.row.工卡量具` | - | - |
| 输入字段 | `scope.row.指定机床` | - | - |
| 输入字段 | `scope.row.车间` | - | - |
| 输入字段 | `scope.row.工艺要求` | - | - |
| 输入字段 | `scope.row.备注` | - | - |
| 输入字段 | `processprodutc` | - | - |
| 输入字段 | `partNameValue2` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- PDF/图纸预览或导出
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 333 | 11（当前通用存储过程查询/执行） | `工艺管理_获取物料原料信息` | 业务存储过程调用 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material` |
| 352 | 11（当前通用存储过程查询/执行） | `设备管理_设备信息_查询` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 385 | 11（当前通用存储过程查询/执行） | `工艺管理_生产计划物料查询` | 查询/读取数据 | 查询、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 402 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_生产工艺拷贝` | 业务存储过程调用 | 查询、分页、处理计划/派工 | 表：`MES_接口_生产计划` |
| 409 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_标准工艺拷贝` | 业务存储过程调用 | 查询、分页 | 表：`车间生产管理工艺_零件工序_工艺库`、`物料数据` |
| 452 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_ProcessBindGet` | 查询/读取数据 | 查询 | 表：`车间生产管理工艺_零件工序_工艺库` |
| 468 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_ProcessBindGet` | 查询/读取数据 | 查询 | 表：`车间生产管理工艺_零件工序_工艺库` |
| 482 | 11（当前通用存储过程查询/执行） | `工艺管理_制定标准工艺_拷贝生产工艺` | 业务存储过程调用 | 查询 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 538 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_ProcessGet` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 568 | 12（当前通用存储过程写入/业务动作） | `工艺管理_制定标准工艺_拷贝工艺保存` | 更新/保存业务数据 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 587 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 634 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_修改数据_工艺库` | 更新/保存业务数据 | 查询、新增、更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 638 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_查询工序信息_工艺库` | 查询/读取数据 | 查询、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 687 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_编辑_工艺库` | 更新/保存业务数据 | 更新、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 695 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_编辑插入行` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 700 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_查询工序信息_工艺库` | 查询/读取数据 | 查询、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 715 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_删除工序_工艺库` | 删除业务数据 | 查询、更新、删除、处理计划/派工 | 表：`MES_接口_生产计划` |
| 720 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_查询工序信息_工艺库` | 查询/读取数据 | 查询、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 734 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_上移工序_工艺库` | 业务存储过程调用 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 739 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_查询工序信息_工艺库` | 查询/读取数据 | 查询、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 754 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_下移工序_工艺库` | 业务存储过程调用 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 759 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_查询工序信息_工艺库` | 查询/读取数据 | 查询、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 774 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_插入工序_工艺库` | 业务存储过程调用 | 查询、更新 | 未在 SQL 中解析到明确依赖 |
| 780 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_查询工序信息_工艺库` | 查询/读取数据 | 查询、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 795 | 11（当前通用存储过程查询/执行） | `车间生产管理工艺_零件工序_启用` | 业务存储过程调用 | 更新、处理计划/派工 | 表：`MES_接口_生产计划` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 工艺管理_获取物料原料信息: SAP.SBO_YL.dbo.UBT_OWOR_material

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `工艺管理_获取物料原料信息`：`SELECT * FROM SAP.SBO_YL.dbo.UBT_OWOR_material where Docentry = @订单编号`
- `工艺管理_生产计划物料查询`：`SELECT top 100 * FROM [SAP].[SBO_YL].[dbo].[UBT_OITM] where 物料编码 like '' +'%'+@过滤+'%' +''`

### 数据库调用链

- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `工艺管理_获取物料原料信息` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `设备管理_设备信息_查询` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `工艺管理_生产计划物料查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `工艺管理_生产工艺_生产工艺拷贝` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `工艺管理_生产工艺_标准工艺拷贝` -> 表：`车间生产管理工艺_零件工序_工艺库`、`物料数据` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `MES_ProcessManagement_ProcessBindGet` -> 表：`车间生产管理工艺_零件工序_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `MES_ProcessManagement_ProcessBindGet` -> 表：`车间生产管理工艺_零件工序_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `工艺管理_制定标准工艺_拷贝生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `MES_ProcessManagement_ProcessGet` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `工艺管理_制定标准工艺_拷贝工艺保存` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_修改数据_工艺库` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_查询工序信息_工艺库` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_编辑_工艺库` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_编辑插入行` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_查询工序信息_工艺库` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_删除工序_工艺库` -> 表：`MES_接口_生产计划` -> 删除业务数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_查询工序信息_工艺库` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_上移工序_工艺库` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_查询工序信息_工艺库` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_下移工序_工艺库` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_查询工序信息_工艺库` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_插入工序_工艺库` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_查询工序信息_工艺库` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/ProcessesDevelop/index.vue` -> `车间生产管理工艺_零件工序_启用` -> 表：`MES_接口_生产计划` -> 业务存储过程调用

### 存储过程处理逻辑明细

- `工艺管理_获取物料原料信息` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_material`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM SAP.SBO_YL.dbo.UBT_OWOR_material where Docentry = @订单编号`。 实现特征：读取 SAP 数据库对象。
- `设备管理_设备信息_查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 入参/分页参数：`@设备名称_check bit`、`@设备名称 nvarchar(50)`、`@设备类型_check bit`、`@设备类型 int`、`@工位_check bit`、`@工位 nvarchar(50)`。 主要返回字段线索：`*, [dbo].[YL_基础表_数据字典].词条名称 as 设备类型名称`。 关键过滤/匹配条件：`set @selectStrWhere = 'where 1 = 1 '`；`set @selectStrWhere = @selectStrWhere+' and 设备名称 like + ''%'' + @设备名称 + ''%'' '`；`set @selectStrWhere = @selectStrWhere+' and 基础数据_设备工位点检表.设备类型 = @设备类型'`。 关键写入/状态处理语句线索：`set @selectStr = `；`set @selectStrWhere = 'where 1 = 1 '`；`set @selectStrWhere = @selectStrWhere+' and 设备名称 like + ''%'' + @设备名称 + ''%'' '`；`set @selectStrWhere = @selectStrWhere+' and 基础数据_设备工位点检表.设备类型 = @设备类型'`；`set @selectStr = @selectStr+@selectStrWhere`。
- `工艺管理_生产计划物料查询` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@过滤 NVARCHAR(200)`。 主要返回字段线索：`top 100 *`。 关键过滤/匹配条件：`SELECT top 100 * FROM [SAP].[SBO_YL].[dbo].[UBT_OITM] where 物料编码 like '' +'%'+@过滤+'%' +''`。
- `工艺管理_生产工艺_生产工艺拷贝` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、分页、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`from [MES_接口_生产计划] where 生产工艺 = 1) t WHERE rn = 1;`。 排序/分组/分页线索：`ROW_NUMBER() OVER (PARTITION BY [物料编号] ORDER BY (SELECT NULL)) AS rn`。 实现特征：分页。
- `工艺管理_生产工艺_标准工艺拷贝` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、分页。 读取/关联对象：表：`车间生产管理工艺_零件工序_工艺库`、`物料数据`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`from [dbo].[车间生产管理工艺_零件工序_工艺库] a left join [dbo].[物料数据] b on a.零件图号 = b.物料编码 where a.启用 = 1) t WHERE rn = 1;`。 排序/分组/分页线索：`ROW_NUMBER() OVER (PARTITION BY a.[零件图号] ORDER BY (SELECT NULL)) AS rn`。 实现特征：分页。
- `MES_ProcessManagement_ProcessBindGet` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`*, dbo.基础表_工序.工序名称 as 工艺名称`。 关键过滤/匹配条件：`on 车间生产管理工艺_零件工序_工艺库.工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on 车间生产管理工艺_零件工序_工艺库.工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 ORDER BY [工艺顺序]`。
- `MES_ProcessManagement_ProcessBindGet` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`*, dbo.基础表_工序.工序名称 as 工艺名称`。 关键过滤/匹配条件：`on 车间生产管理工艺_零件工序_工艺库.工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on 车间生产管理工艺_零件工序_工艺库.工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 ORDER BY [工艺顺序]`。
- `工艺管理_制定标准工艺_拷贝生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`@最大订单 = max(订单编号)`。 关键过滤/匹配条件：`select @最大订单 = max(订单编号) from 车间生产管理工艺_零件生产工艺_工艺库 where 零件图号 = @物料编号 and 启用 = 1`；`on [车间生产管理工艺_零件生产工艺_工艺库].工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 and 启用 = 1 and 订单编号 = @最大订单 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on [车间生产管理工艺_零件生产工艺_工艺库].工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 and 启用 = 1 and 订单编号 = @最大订单 ORDER BY [工艺顺序]`。
- `MES_ProcessManagement_ProcessGet` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 入参/分页参数：`@工艺编号 nvarchar(50)`。 主要返回字段线索：`工艺编号 as 工艺编号, 工序名称 as 工艺名称`。 关键过滤/匹配条件：`IF @工艺编号 IS NOT NULL AND @工艺编号 ! = ''`；`SELECT 工艺编号 as 工艺编号, 工序名称 as 工艺名称 FROM [基础表_工序] WHERE 工艺编号 IN (SELECT value FROM STRING_SPLIT(@工艺编号, ', '))`。 排序/分组/分页线索：`SELECT 工艺编号 as 工艺编号, 工序名称 as 工艺名称 FROM [基础表_工序] ORDER BY 工艺编号`。
- `工艺管理_制定标准工艺_拷贝工艺保存` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@零件图号 nvarchar(50)`、`@工艺类型 int`。 主要返回字段线索：`@工艺数量 = count(*)`。 关键过滤/匹配条件：`select @工艺数量 = count(*) from 车间生产管理工艺_零件工序_工艺库 where 零件图号 = @零件图号`；`select @工艺数量 = count(*) from 车间生产管理工艺_零件生产工艺_工艺库 where 零件图号 = @零件图号`；`delete 车间生产管理工艺_零件工序_工艺库 where 零件图号 = @物料编号`；`where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 1 where 物料编号 = @物料编号`；`WHERE 零件图号 = @零件图号 and 工艺顺序 = @i and 启用 = 1`；`where 零件图号 = @物料编号 and 工艺顺序 = @i`。 关键写入/状态处理语句线索：`set @l = 1`；`set @新增条数 = @工艺数量`；`insert into 车间生产管理工艺_零件工序_工艺库(零件图号, 工艺顺序, 启用)values(@物料编号, ISNULL(@最大顺序, 0)+1, 0)`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 1 where 物料编号 = @物料编号`；`set @l = @l+1`；`set @i = 1`；`update 车间生产管理工艺_零件工序_工艺库`；`set 工艺编号 = @工艺编号, `；`set @i = @i+1`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `车间生产管理工艺_零件工序_修改数据_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@工艺编号 int`。 主要返回字段线索：`top 1 @工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`select top 1 @工序顺序 = 工艺顺序 from 车间生产管理工艺_零件工序_工艺库 where 零件图号 = @物料编号 order by 工艺顺序 desc`；`update 车间生产管理工艺_零件工序_工艺库 set 工艺编号 = @工艺编号 where id = @idd`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`。 关键写入/状态处理语句线索：`insert into dbo.车间生产管理工艺_零件工序_工艺库(零件图号, 工艺顺序, 工艺编号)values(@物料编号, @工序顺序+1, @工艺编号)`；`update 车间生产管理工艺_零件工序_工艺库 set 工艺编号 = @工艺编号 where id = @idd`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`。 排序/分组/分页线索：`select top 1 @工序顺序 = 工艺顺序 from 车间生产管理工艺_零件工序_工艺库 where 零件图号 = @物料编号 order by 工艺顺序 desc`。
- `车间生产管理工艺_零件工序_查询工序信息_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`dbo.车间生产管理工艺_零件工序_工艺库.id, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺要求, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺编号, `、`dbo.基础表_工序.工序名称 as 工艺名称, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序, `、`零件图号, `、`dbo.车间生产管理工艺_零件工序_工艺库.准备工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.标准工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.工时合计, `、`dbo.车间生产管理工艺_零件工序_工艺库.工卡量具, `。 关键过滤/匹配条件：`where 零件图号 = @物料编号`。 排序/分组/分页线索：`order by dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序`。
- `车间生产管理工艺_零件工序_编辑_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@idd int,`、`@工艺要求 nvarchar(500)`、`@准备工时 int`、`@标准工时 int`、`@工时合计 int`、`@工卡量具 nvarchar(500)`、`@指定机床 nvarchar(500)`、`@车间 nvarchar(500)`、`@备注 nvarchar(500)`。 关键过滤/匹配条件：`update 车间生产管理工艺_零件工序_工艺库 set 工艺要求 = @工艺要求, 准备工时 = @准备工时, 标准工时 = @标准工时, 工时合计 = @工时合计, 工卡量具 = @工卡量具, 指定机床 = @指定机床, 车间 = @车间, 备注 = @备注 where id = @idd`。 关键写入/状态处理语句线索：`update 车间生产管理工艺_零件工序_工艺库 set 工艺要求 = @工艺要求, 准备工时 = @准备工时, 标准工时 = @标准工时, 工时合计 = @工时合计, 工卡量具 = @工卡量具, 指定机床 = @指定机床, 车间 = @车间, 备注 = @备注 where id = @idd`。
- `车间生产管理工艺_零件工序_编辑插入行` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@idd int,`、`@工艺编号 int,`、`@物料编号 nvarchar(50)`。 关键过滤/匹配条件：`update 车间生产管理工艺_零件工序_工艺库 set 工艺编号 = @工艺编号 where id = @idd`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 0 where 物料编号 = @物料编号`。 关键写入/状态处理语句线索：`update 车间生产管理工艺_零件工序_工艺库 set 工艺编号 = @工艺编号 where id = @idd`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 0 where 物料编号 = @物料编号`。
- `车间生产管理工艺_零件工序_查询工序信息_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`dbo.车间生产管理工艺_零件工序_工艺库.id, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺要求, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺编号, `、`dbo.基础表_工序.工序名称 as 工艺名称, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序, `、`零件图号, `、`dbo.车间生产管理工艺_零件工序_工艺库.准备工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.标准工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.工时合计, `、`dbo.车间生产管理工艺_零件工序_工艺库.工卡量具, `。 关键过滤/匹配条件：`where 零件图号 = @物料编号`。 排序/分组/分页线索：`order by dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序`。
- `车间生产管理工艺_零件工序_删除工序_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、更新、删除、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@idd int`。 主要返回字段线索：`@工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`select @工序顺序 = 工艺顺序 from 车间生产管理工艺_零件工序_工艺库 where id = @idd`；`where 工艺顺序>@工序顺序 and 零件图号 = @物料编号`；`delete from 车间生产管理工艺_零件工序_工艺库 where id = @idd`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 0 where 物料编号 = @物料编号`。 关键写入/状态处理语句线索：`update 车间生产管理工艺_零件工序_工艺库 set 工艺顺序 = 工艺顺序 - 1`；`delete from 车间生产管理工艺_零件工序_工艺库 where id = @idd`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 0 where 物料编号 = @物料编号`。
- `车间生产管理工艺_零件工序_查询工序信息_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`dbo.车间生产管理工艺_零件工序_工艺库.id, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺要求, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺编号, `、`dbo.基础表_工序.工序名称 as 工艺名称, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序, `、`零件图号, `、`dbo.车间生产管理工艺_零件工序_工艺库.准备工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.标准工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.工时合计, `、`dbo.车间生产管理工艺_零件工序_工艺库.工卡量具, `。 关键过滤/匹配条件：`where 零件图号 = @物料编号`。 排序/分组/分页线索：`order by dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序`。
- `车间生产管理工艺_零件工序_上移工序_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@idd int`。 主要返回字段线索：`@工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`where id = @idd`；`where 零件图号 = @物料编号 and 工艺顺序 = @工序顺序-1`；`where id = @前idd`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 0 where 物料编号 = @物料编号`。 关键写入/状态处理语句线索：`update dbo.车间生产管理工艺_零件工序_工艺库`；`set 工艺顺序 = @工序顺序-1`；`set 工艺顺序 = @工序顺序`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 0 where 物料编号 = @物料编号`。
- `车间生产管理工艺_零件工序_查询工序信息_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`dbo.车间生产管理工艺_零件工序_工艺库.id, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺要求, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺编号, `、`dbo.基础表_工序.工序名称 as 工艺名称, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序, `、`零件图号, `、`dbo.车间生产管理工艺_零件工序_工艺库.准备工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.标准工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.工时合计, `、`dbo.车间生产管理工艺_零件工序_工艺库.工卡量具, `。 关键过滤/匹配条件：`where 零件图号 = @物料编号`。 排序/分组/分页线索：`order by dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序`。
- `车间生产管理工艺_零件工序_下移工序_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@idd int`。 主要返回字段线索：`@工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`where id = @idd`；`where 零件图号 = @物料编号 and 工艺顺序 = @工序顺序+1`；`where id = @后idd`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 0 where 物料编号 = @物料编号`。 关键写入/状态处理语句线索：`update dbo.车间生产管理工艺_零件工序_工艺库`；`set 工艺顺序 = @工序顺序+1`；`set 工艺顺序 = @工序顺序`；`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 0 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 0 where 物料编号 = @物料编号`。
- `车间生产管理工艺_零件工序_查询工序信息_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`dbo.车间生产管理工艺_零件工序_工艺库.id, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺要求, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺编号, `、`dbo.基础表_工序.工序名称 as 工艺名称, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序, `、`零件图号, `、`dbo.车间生产管理工艺_零件工序_工艺库.准备工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.标准工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.工时合计, `、`dbo.车间生产管理工艺_零件工序_工艺库.工卡量具, `。 关键过滤/匹配条件：`where 零件图号 = @物料编号`。 排序/分组/分页线索：`order by dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序`。
- `车间生产管理工艺_零件工序_插入工序_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@零件图号 nvarchar(50)`、`@idd int`。 主要返回字段线索：`@工序顺序 = 工艺顺序`。 关键过滤/匹配条件：`select @工序顺序 = 工艺顺序 from dbo.车间生产管理工艺_零件工序_工艺库 where id = @idd`；`where 工艺顺序> = @工序顺序 and 零件图号 = @零件图号`。 关键写入/状态处理语句线索：`update dbo.车间生产管理工艺_零件工序_工艺库`；`set 工艺顺序 = 工艺顺序+1`。
- `车间生产管理工艺_零件工序_查询工序信息_工艺库` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`dbo.车间生产管理工艺_零件工序_工艺库.id, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺要求, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺编号, `、`dbo.基础表_工序.工序名称 as 工艺名称, `、`dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序, `、`零件图号, `、`dbo.车间生产管理工艺_零件工序_工艺库.准备工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.标准工时, `、`dbo.车间生产管理工艺_零件工序_工艺库.工时合计, `、`dbo.车间生产管理工艺_零件工序_工艺库.工卡量具, `。 关键过滤/匹配条件：`where 零件图号 = @物料编号`。 排序/分组/分页线索：`order by dbo.车间生产管理工艺_零件工序_工艺库.工艺顺序`。
- `车间生产管理工艺_零件工序_启用` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`。 关键过滤/匹配条件：`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 1 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 1 where 物料编号 = @物料编号`。 关键写入/状态处理语句线索：`update 车间生产管理工艺_零件工序_工艺库 set 启用 = 1 where 零件图号 = @物料编号`；`update [dbo].[MES_接口_生产计划] set 标准工艺 = 1 where 物料编号 = @物料编号`。

## 23. src/views/ProcessManagement/ProcurementDrawlook/index.vue

**页面位置**：`src/views/ProcessManagement/ProcurementDrawlook/index.vue`  
**所属模块**：ProcessManagement / ProcurementDrawlook  
**源码行数**：463

### 页面功能

该页面提供采购场景的图纸查看。用户按采购物料查询图纸，查看或删除图纸记录，支持采购、外协、来料检验时查阅技术文件。

页面可见的操作/字段包括 “查询”、“查看”、“删除”、“取消”、“确定”、“关闭”、“item.物料编码”、“序号”、“物料编号”、“物料名称”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_图纸维护_查询删除记录`、`工艺管理_图纸维护_零件图查询采购`、`工艺管理_图纸维护_物料查询_采购`、`工艺管理_图纸维护_验证名称`、`工艺管理_图纸维护_查看图纸`、`工艺管理_图纸维护_删除图纸` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `工艺管理_图纸维护_查询删除记录` -> `工艺管理_图纸维护_零件图查询采购` -> `工艺管理_图纸维护_物料查询_采购` -> `工艺管理_图纸维护_验证名称` -> `工艺管理_图纸维护_查看图纸` -> `工艺管理_图纸维护_删除图纸` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`查看`、`删除`、`取消`、`确定`、`关闭`、`item.物料编码`、`序号`、`物料编号`、`物料名称`、`文件名称`、`导入人`、`导入时间`、`操作`、`操作人`、`删除时间`、`备注`、`请选择物料`

主要方法线索：`showDeleteRecords`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.itemnum` | `@物料编码` | - |
| 参数 | `query` | `@过滤` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `物料编号` | - | `物料编号, ` |
| 显示列 | `物料名称` | - | `物料描述` |
| 显示列 | `文件名称` | - | `文件名称, ` |
| 显示列 | `导入人` | - | `worker` |
| 显示列 | `导入时间` | - | `WHEN uploadTime IS NOT NULL` |
| 显示列 | `操作` | - | `操作人, ` |
| 显示列 | `操作人` | - | `操作人, ` |
| 显示列 | `删除时间` | - | `CONVERT(NVARCHAR(19), 删除时间, 120) AS 删除时间, ` |
| 显示列 | `备注` | - | `ISNULL(备注, '''') AS 备注` |
| 输入字段 | `stationNumberValue` | - | - |
| 输入字段 | `uploadValue` | - | - |
| 输入字段 | `itemnum` | `@物料编码` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 174 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查询删除记录` | 查询/读取数据 | 查询 | 未在 SQL 中解析到明确依赖 |
| 205 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询采购` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |
| 216 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_物料查询_采购` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |
| 248 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_验证名称` | 业务存储过程调用 | 查询 | 表：`物料数据` |
| 294 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 317 | 12（当前通用存储过程写入/业务动作） | `工艺管理_图纸维护_删除图纸` | 删除业务数据 | 查询、新增 | 表：`物料基础数据_零件图纸` |
| 386 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 414 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询采购` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |
| 425 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_零件图查询采购` | 查询/读取数据 | 查询 | 视图：`View_图纸视图` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 工艺管理_图纸维护_物料查询_采购: SAP.SBO_YL.dbo.UBT_OITM

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `工艺管理_图纸维护_物料查询_采购`：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +'' and U_BuyToPrint = 'Y'`

### 数据库调用链

- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_查询删除记录` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_零件图查询采购` -> 视图：`View_图纸视图` -> 查询/读取数据
- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_物料查询_采购` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据
- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_验证名称` -> 表：`物料数据` -> 业务存储过程调用
- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_删除图纸` -> 表：`物料基础数据_零件图纸` -> 删除业务数据
- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_零件图查询采购` -> 视图：`View_图纸视图` -> 查询/读取数据
- `src/views/ProcessManagement/ProcurementDrawlook/index.vue` -> `工艺管理_图纸维护_零件图查询采购` -> 视图：`View_图纸视图` -> 查询/读取数据

### 存储过程处理逻辑明细

- `工艺管理_图纸维护_查询删除记录` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编码 nvarchar(200)`。 主要返回字段线索：`top 50`、`物料编号, `、`文件名称, `、`操作人, `、`CONVERT(NVARCHAR(19), 删除时间, 120) AS 删除时间, `、`ISNULL(备注, '''') AS 备注`。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE 1 = 1 '`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @物料编码 + '%'''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @selectStr = N' SELECT top 50`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @物料编码 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' ORDER BY 删除时间 DESC'`；`SET @selectStr = @selectStr + @selectStrWhere`。 排序/分组/分页线索：`SET @selectStrWhere = @selectStrWhere + ' ORDER BY 删除时间 DESC'`。
- `工艺管理_图纸维护_零件图查询采购` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50 *`。 关键过滤/匹配条件：`WHERE num LIKE '%' + @零件图号 + '%' and U_BuyToPrint = 'Y'`；`[dbo].[View_图纸视图] WHERE U_BuyToPrint = 'Y'`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_图纸维护_物料查询_采购` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@过滤 NVARCHAR(200)`。 主要返回字段线索：`top 100 *`。 关键过滤/匹配条件：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +'' and U_BuyToPrint = 'Y'`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_图纸维护_验证名称` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`物料数据`。 入参/分页参数：`@零件图号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM [dbo].[物料数据] where 物料编码 = @零件图号`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_图纸维护_删除图纸` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、新增。 读取/关联对象：表：`物料基础数据_零件图纸`。 写入或更新对象：`物料基础数据_零件图纸`、`物料基础数据_零件图纸删除记录`。 入参/分页参数：`@物料编号 NVARCHAR(100),`、`@文件名称 NVARCHAR(255)`、`@操作人 NVARCHAR(50)`。 关键过滤/匹配条件：`delete [dbo].[物料基础数据_零件图纸] where num = @物料编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO 物料基础数据_零件图纸删除记录 (`。 实现特征：事务控制、异常捕获。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_图纸维护_零件图查询采购` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50 *`。 关键过滤/匹配条件：`WHERE num LIKE '%' + @零件图号 + '%' and U_BuyToPrint = 'Y'`；`[dbo].[View_图纸视图] WHERE U_BuyToPrint = 'Y'`。 关键写入/状态处理语句线索：`set nocount on;`。
- `工艺管理_图纸维护_零件图查询采购` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_图纸视图`。 入参/分页参数：`@零件图号_check int`、`@零件图号 nvarchar(50)`。 主要返回字段线索：`top 50 *`。 关键过滤/匹配条件：`WHERE num LIKE '%' + @零件图号 + '%' and U_BuyToPrint = 'Y'`；`[dbo].[View_图纸视图] WHERE U_BuyToPrint = 'Y'`。 关键写入/状态处理语句线索：`set nocount on;`。

## 24. src/views/ProcessManagement/ProductionOrder/index.vue

**页面位置**：`src/views/ProcessManagement/ProductionOrder/index.vue`  
**所属模块**：ProcessManagement / ProductionOrder  
**源码行数**：594

### 页面功能

该页面处理生产订单资料。用户查询 ERP/MES 生产订单，并通过过程把 SAP 生产订单同步成 MES 生产计划和工序任务。

页面可见的操作/字段包括 “查询”、“批量生成任务”、“查看生产工艺”、“查看标准工艺”、“全部”、“未下发”、“已下发”、“机加件”、“装配件”、“序号”，这些是判断页面业务范围的主要线索。

后端主要围绕 `设备管理_设备信息_查询`、`工艺管理_生产工艺_查询生产工艺`、`工艺管理_生产工艺_查询标准工艺`、`工艺管理_工艺任务_订单查询`、`计划排产_生产订单_订单任务` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `设备管理_设备信息_查询` -> `工艺管理_生产工艺_查询生产工艺` -> `工艺管理_生产工艺_查询标准工艺` -> `工艺管理_工艺任务_订单查询` -> `计划排产_生产订单_订单任务` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`批量生成任务`、`查看生产工艺`、`查看标准工艺`、`全部`、`未下发`、`已下发`、`机加件`、`装配件`、`序号`、`销售订单`、`生产订单`、`物料编码`、`物料名称`、`属性`、`计划数`、`下达日期`、`计划开始`

主要方法线索：`getbasedata`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo ` | `@订单号` | - |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.productCode` | `@产品编码` | - |
| 参数 | `this.productName` | `@产品名称` | - |
| 参数 | `this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.orderstatus` | `@订单状态` | - |
| 参数 | `this.taskstatus` | `@任务状态` | - |
| 参数 | `ordernums` | `@订单编号` | `[订单编号]` |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `销售订单` | - | `合同号` |
| 显示列 | `生产订单` | - | `[订单编号]` |
| 显示列 | `物料编码` | - | `物料编号` |
| 显示列 | `物料名称` | - | `物料描述` |
| 显示列 | `属性` | - | `TOP 1 @自制件属性 = ISNULL(自制件属性, '0')` |
| 显示列 | `计划数` | - | `[计划数量]` |
| 显示列 | `下达日期` | - | `下达日期` |
| 显示列 | `计划开始` | - | `计划开始` |
| 显示列 | `计划完成` | - | `计划完成` |
| 显示列 | `加急状态` | - | `加急状态` |
| 显示列 | `标准工艺` | - | `标准工艺` |
| 显示列 | `生产工艺` | - | `生产工艺` |
| 显示列 | `操作` | - | `操作` |
| 显示列 | `序号` | - | `[工艺顺序]` |
| 显示列 | `工序名称` | - | `*, dbo.基础表_工序.工序名称 as 工艺名称` |
| 显示列 | `工序说明` | - | `[工艺要求]` |
| 显示列 | `准备工时` | - | `isnull(准备工时, 0) as 准备工时` |
| 显示列 | `标准工时` | - | `isnull(标准工时, 0) as 标准工时` |
| 显示列 | `工时合计` | - | `工时合计` |
| 显示列 | `工装量具` | - | `工装量具` |
| 显示列 | `指定机床` | - | `指定机床` |
| 显示列 | `车间` | - | `车间` |
| 显示列 | `备注` | - | `备注` |
| 输入字段 | `orderNo` | `@订单号` | - |
| 输入字段 | `contractNo` | `@合同号` | - |
| 输入字段 | `productCode` | `@产品编码` | - |
| 输入字段 | `productName` | `@产品名称` | - |
| 输入字段 | `taskstatus` | `@任务状态` | - |
| 输入字段 | `orderstatus` | `@订单状态` | - |
| 输入字段 | `completionTime` | `@要求完工日期1` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 354 | 11（当前通用存储过程查询/执行） | `设备管理_设备信息_查询` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 401 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询生产工艺` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 表：`车间生产管理工艺_零件生产工艺_工艺库` |
| 437 | 11（当前通用存储过程查询/执行） | `工艺管理_生产工艺_查询标准工艺` | 查询/读取数据 | 查询 | 表：`车间生产管理工艺_零件工序_工艺库` |
| 460 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺任务_订单查询` | 查询/读取数据 | 查询、处理计划/派工 | 表：`MES_接口_生产计划` |
| 498 | 12（当前通用存储过程写入/业务动作） | `计划排产_生产订单_订单任务` | 计划排产或派工 | 查询、新增、更新、分页、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `工艺管理_工艺任务_订单查询`：`CREATE PROCEDURE [dbo].[工艺管理_工艺任务_订单查询]`；`@订单状态 int = 1, `；`@任务状态 int = 0`；`DECLARE @selectStrWhere NVARCHAR(MAX) = ' WHERE p.[生产工艺] = 1 and (单据状态 ''已取消'' OR 单据状态 IS NULL) ';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[计划完成] > = ''' + @要求完工日期1 + '''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[计划完成] < = ''' + @要求完工日期2 + '''';`；`IF @任务状态 = 2`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL(p.任务状态, 0) = '+ CAST(@任务状态 AS VARCHAR(10));`
- `计划排产_生产订单_订单任务`：`CREATE PROCEDURE [dbo].[计划排产_生产订单_订单任务]`；`INSERT INTO [dbo].[MES_接口_生产计划_生产任务] (`；`SET 任务状态 = 2`；`已发货数量, 订单拆分内码, 阶段标识, 可视订单, 计划开始时间, 计划完成时间, 指派对象`；`ms.计划完成, `

### 数据库调用链

- `src/views/ProcessManagement/ProductionOrder/index.vue` -> `设备管理_设备信息_查询` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/ProcessManagement/ProductionOrder/index.vue` -> `工艺管理_生产工艺_查询生产工艺` -> 表：`车间生产管理工艺_零件生产工艺_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProductionOrder/index.vue` -> `工艺管理_生产工艺_查询标准工艺` -> 表：`车间生产管理工艺_零件工序_工艺库` -> 查询/读取数据
- `src/views/ProcessManagement/ProductionOrder/index.vue` -> `工艺管理_工艺任务_订单查询` -> 表：`MES_接口_生产计划` -> 查询/读取数据
- `src/views/ProcessManagement/ProductionOrder/index.vue` -> `计划排产_生产订单_订单任务` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工

### 存储过程处理逻辑明细

- `设备管理_设备信息_查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 入参/分页参数：`@设备名称_check bit`、`@设备名称 nvarchar(50)`、`@设备类型_check bit`、`@设备类型 int`、`@工位_check bit`、`@工位 nvarchar(50)`。 主要返回字段线索：`*, [dbo].[YL_基础表_数据字典].词条名称 as 设备类型名称`。 关键过滤/匹配条件：`set @selectStrWhere = 'where 1 = 1 '`；`set @selectStrWhere = @selectStrWhere+' and 设备名称 like + ''%'' + @设备名称 + ''%'' '`；`set @selectStrWhere = @selectStrWhere+' and 基础数据_设备工位点检表.设备类型 = @设备类型'`。 关键写入/状态处理语句线索：`set @selectStr = `；`set @selectStrWhere = 'where 1 = 1 '`；`set @selectStrWhere = @selectStrWhere+' and 设备名称 like + ''%'' + @设备名称 + ''%'' '`；`set @selectStrWhere = @selectStrWhere+' and 基础数据_设备工位点检表.设备类型 = @设备类型'`；`set @selectStr = @selectStr+@selectStrWhere`。
- `工艺管理_生产工艺_查询生产工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50),`、`@订单编号 int`。 主要返回字段线索：`[id]`、`[零件图号]`、`a.[工艺编号]`、`[工艺顺序]`、`[工艺要求]`、`[是否最后一序]`、`[订单编号]`、`[计划数量]`、`isnull(准备工时, 0) as 准备工时`、`isnull(标准工时, 0) as 标准工时`。 关键过滤/匹配条件：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on a.工艺编号 = b.工艺编号 where 零件图号 = @物料编号 and 订单编号 = @订单编号 ORDER BY [工艺顺序]`。
- `工艺管理_生产工艺_查询标准工艺` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`车间生产管理工艺_零件工序_工艺库`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`*, dbo.基础表_工序.工序名称 as 工艺名称`。 关键过滤/匹配条件：`on [车间生产管理工艺_零件工序_工艺库].工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 and 启用 = 1 ORDER BY [工艺顺序]`。 排序/分组/分页线索：`on [车间生产管理工艺_零件工序_工艺库].工艺编号 = dbo.基础表_工序.工艺编号 where 零件图号 = @物料编号 and 启用 = 1 ORDER BY [工艺顺序]`。
- `工艺管理_工艺任务_订单查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 入参/分页参数：`@订单号 int`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@订单状态 int`、`@任务状态 int`。 主要返回字段线索：`p.*`。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(MAX) = ' WHERE p.[生产工艺] = 1 and (单据状态 ''已取消'' OR 单据状态 IS NULL) ';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[订单编号] = ' + CAST(@订单号 AS VARCHAR(10));`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[合同号] LIKE ''%' + @合同号 + '%''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[物料编号] LIKE ''%' + @产品编码 + '%''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[物料描述] LIKE ''%' + @产品名称 + '%''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[计划完成] > = ''' + @要求完工日期1 + '''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[计划完成] < = ''' + @要求完工日期2 + '''';`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL(p.任务状态, 0) = '+ CAST(@任务状态 AS VARCHAR(10));`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL(p.任务状态, 0) = 0'`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL(p.自制件属性, '''') LIKE ''%装配%'''`。 关键写入/状态处理语句线索：`SET @selectStr = N'`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[订单编号] = ' + CAST(@订单号 AS VARCHAR(10));`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[合同号] LIKE ''%' + @合同号 + '%''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[物料编号] LIKE ''%' + @产品编码 + '%''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[物料描述] LIKE ''%' + @产品名称 + '%''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[计划完成] > = ''' + @要求完工日期1 + '''';`；`SET @selectStrWhere = @selectStrWhere + ' AND p.[计划完成] < = ''' + @要求完工日期2 + '''';`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL(p.任务状态, 0) = '+ CAST(@任务状态 AS VARCHAR(10));`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL(p.任务状态, 0) = 0'`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL(p.自制件属性, '''') LIKE ''%装配%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND ISNULL(p.自制件属性, 0) = ''机加件'''`；`SET @selectStr = @selectStr + @selectStrWhere;`。
- `计划排产_生产订单_订单任务` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、分页、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号 nvarchar(max)`。 主要返回字段线索：`TOP 1 @自制件属性 = ISNULL(自制件属性, '0')`。 关键过滤/匹配条件：`WHERE 订单编号 IN (SELECT TRIM(value) FROM STRING_SPLIT(@订单编号, ', '));`；`WHERE 订单编号 IN (SELECT TRIM(value) FROM STRING_SPLIT(@订单编号, '', ''))`；`WHERE src.rn = 1;';`；`WHERE 订单编号 IN (SELECT TRIM(value) FROM STRING_SPLIT(@订单编号, '', ''));';`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @selectStr2 = N'`；`INSERT INTO [dbo].[MES_接口_生产计划_生产任务] (`；`SET @selectStr1 = N'`；`UPDATE [dbo].[MES_接口_生产计划]`；`SET 任务状态 = 2`。 排序/分组/分页线索：`ROW_NUMBER() OVER (`；`ORDER BY (SELECT NULL)`。 实现特征：分页。

## 25. src/views/ProductionManagement/AbnormalControl/index.vue

**页面位置**：`src/views/ProductionManagement/AbnormalControl/index.vue`  
**所属模块**：ProductionManagement / AbnormalControl  
**源码行数**：1015

### 页面功能

该页面管理生产异常。用户查询异常记录，推进异常处理、关闭或记录处理结果。

页面可见的操作/字段包括 “处理”、“转办”、“发起新流程”、“查看进度”、“完结”、“查看详情”、“点击上传”、“添加审批人”、“查询”、“取 消”，这些是判断页面业务范围的主要线索。

后端主要围绕 `sp_获取最近处理任务`、`人员管理_人员信息查询`、`sp_获取我的流程`、`sp_获取待处理任务`、`MES_ProductAdmin_Query`、`sp_创建流程_简化版` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `sp_获取最近处理任务` -> `人员管理_人员信息查询` -> `sp_获取我的流程` -> `sp_获取待处理任务` -> `MES_ProductAdmin_Query` -> `sp_创建流程_简化版` -> `sp_处理审批` -> `sp_转办流程` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`处理`、`转办`、`发起新流程`、`查看进度`、`完结`、`查看详情`、`点击上传`、`添加审批人`、`查询`、`取 消`、`提 交`、`确 定`、`确 认 完 结`、`取消`、`确定`、`待我处理`、`紧急`、`高`

主要方法线索：`uploadSuccessPDF`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.$store.state.user.id` | `@审批人ID` | - |
| 参数 | `this.$store.state.user.id` | `@发起人ID` | - |
| 参数 | `null` | `@状态` | `p.状态, ` |
| 参数 | `this.orderNo ` | `@订单号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.productCode` | `@产品编码` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.productName` | `@产品名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.processName` | `@工序名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.nature` | `@性质` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.completionTime ? this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 参数 | `''` | `@工位` | - |
| 参数 | `this.newProcessForm.title` | `@流程标题` | - |
| 参数 | `this.newProcessForm.description` | `@流程描述` | - |
| 参数 | `this.newProcessForm.priority ` | `@优先级` | - |
| 参数 | `this.$store.state.user.name` | `@发起人姓名` | - |
| 参数 | `approverId` | `@审批人ID` | - |
| 参数 | `approverName` | `@审批人姓名` | - |
| 参数 | `'0'` | `@新流程ID` | - |
| 参数 | `this.tableOrderNum ` | `@已关联计划号` | - |
| 参数 | `this.tableProductName ` | `@零件名称` | - |
| 参数 | `this.tableProductCode ` | `@零件编号` | - |
| 参数 | `this.tableProcessName ` | `@工序名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `task.流程ID` | `@流程ID` | - |
| 参数 | `task.节点ID` | `@节点ID` | - |
| 参数 | `this.$store.state.user.name` | `@审批人姓名` | - |
| 参数 | `this.$refs.approvalForm.model.result` | `@处理结果` | - |
| 参数 | `this.$refs.approvalForm.model.comment` | `@审批意见` | - |
| 参数 | `''` | `@成功` | - |
| 参数 | `this.currentTask.流程ID` | `@流程ID` | - |
| 参数 | `this.currentTask.节点ID` | `@节点ID` | - |
| 参数 | `this.$store.state.user.id` | `@原审批人ID` | - |
| 参数 | `this.$store.state.user.name` | `@原审批人姓名` | - |
| 参数 | `this.transferForm.newApproverId` | `@新审批人ID` | - |
| 参数 | `this.transferForm.newApproverName` | `@新审批人姓名` | - |
| 参数 | `this.transferForm.reason` | `@转办原因` | - |
| 参数 | `this.selectProcess.流程ID` | `@流程ID` | - |
| 参数 | `this.completeForm.result` | `@完成类型` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 559 | 11（当前通用存储过程查询/执行） | `sp_获取最近处理任务` | 业务存储过程调用 | 查询 | 未在 SQL 中解析到明确依赖 |
| 567 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 583 | 11（当前通用存储过程查询/执行） | `sp_获取我的流程` | 业务存储过程调用 | 查询 | 未在 SQL 中解析到明确依赖 |
| 598 | 11（当前通用存储过程查询/执行） | `sp_获取待处理任务` | 业务存储过程调用 | 查询、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 624 | 11（当前通用存储过程查询/执行） | `MES_ProductAdmin_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 视图：`View_生产订单_MES` |
| 749 | 11（当前通用存储过程查询/执行） | `sp_创建流程_简化版` | 业务存储过程调用 | 查询、新增、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 783 | 12（当前通用存储过程写入/业务动作） | `sp_处理审批` | 业务存储过程调用 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |
| 824 | 12（当前通用存储过程写入/业务动作） | `sp_转办流程` | 业务存储过程调用 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |
| 852 | 11（当前通用存储过程查询/执行） | `sp_完成流程` | 业务存储过程调用 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |
| 869 | 11（当前通用存储过程查询/执行） | `sp_获取流程详情` | 业务存储过程调用 | 查询、处理计划/派工 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `sp_获取最近处理任务`：`create PROCEDURE [dbo].[sp_获取最近处理任务]`
- `sp_获取我的流程`：`@状态 NVARCHAR(20) = NULL`；`p.状态, `；`AND (@状态 IS NULL OR p.状态 = @状态)`
- `sp_获取待处理任务`：`create PROCEDURE [dbo].[sp_获取待处理任务]`；`AND pn.状态 = 'processing'`；`AND p.状态 = 'processing'`
- `MES_ProductAdmin_Query`：`@排产状态 nvarchar(50) = '全部', `；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`；`, [优先级], [未完成说明], [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], '''' as 合同交货期, [计划完成] as 预计齐套时间, ''齐'' as 是否齐套, '''' as 齐套检测, ''是'' as 齐套锁料, [计划开始] as 备料日期, 0 as 加急`；`, [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], TaskAID`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`
- `sp_创建流程_简化版`：`状态, `
- `sp_处理审批`：`SET 状态 = @处理结果, `；`SET 状态 = 'rejected', `；`SET 状态 = 'processing', `；`SET 状态 = 'completed', `；`当前节点 = '已完成', `
- `sp_转办流程`：`AND pn.状态 = 'processing'`；`AND p.状态 = 'processing'`
- `sp_完成流程`：`create PROCEDURE [dbo].[sp_完成流程]`；`@完成类型 NVARCHAR(20), `；`@完成原因 NVARCHAR(500), `；`AND 状态 IN ('draft', 'processing')`；`INSERT INTO 流程完成记录表 (`；`流程ID, 发起人ID, 发起人姓名, 完成类型, 完成原因`；`VALUES (@流程ID, @发起人ID, @发起人姓名, @完成类型, @完成原因);`；`SET 状态 = @完成类型, `
- `sp_获取流程详情`：`p.状态, `；`状态, `；`WHEN 步骤序号 < (SELECT 当前步骤 FROM 流程表 WHERE 流程ID = @流程ID) THEN '已完成'`；`END as 状态描述, `

### 数据库调用链

- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `sp_获取最近处理任务` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `人员管理_人员信息查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `sp_获取我的流程` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `sp_获取待处理任务` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `MES_ProductAdmin_Query` -> 视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `sp_创建流程_简化版` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `sp_处理审批` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `sp_转办流程` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `sp_完成流程` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/AbnormalControl/index.vue` -> `sp_获取流程详情` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用

### 存储过程处理逻辑明细

- `sp_获取最近处理任务` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@审批人ID NVARCHAR(100)`。 主要返回字段线索：`ar.记录ID, `、`p.流程ID, `、`p.流程标题 as 流程名称, `、`p.发起人姓名 as 申请人, `、`ar.审批人姓名 as 处理人, `、`ar.处理结果, `、`CASE ar.处理结果`、`WHEN 'approved' THEN '同意'`、`WHEN 'rejected' THEN '拒绝'`、`ELSE ar.处理结果`。 关键过滤/匹配条件：`WHERE ar.审批人ID = @审批人ID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY ar.处理时间 DESC;`。
- `人员管理_人员信息查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `sp_获取我的流程` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@发起人ID NVARCHAR(100),`、`@状态 NVARCHAR(20)`。 主要返回字段线索：`p.流程ID, `、`p.流程标题, `、`p.流程描述, `、`p.优先级, `、`p.状态, `、`p.当前节点, `、`p.当前步骤, `、`p.总步骤数, `、`p.创建时间 as 发起时间, `、`p.更新时间`。 关键过滤/匹配条件：`WHERE p.发起人ID = @发起人ID`；`AND (@状态 IS NULL OR p.状态 = @状态)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY p.更新时间 DESC;`。
- `sp_获取待处理任务` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@审批人ID NVARCHAR(100)`。 主要返回字段线索：`p.流程ID, `、`p.流程标题, `、`p.流程描述, `、`p.优先级, `、`p.发起人姓名 as 申请人, `、`p.创建时间 as 申请时间, `、`p.已关联计划号, `、`p.零件名称, `、`p.零件编号, `、`p.工序名称, `。 关键过滤/匹配条件：`WHERE pn.审批人ID = @审批人ID`；`AND pn.状态 = 'processing'`；`AND p.状态 = 'processing'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY`。
- `MES_ProductAdmin_Query` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@性质 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@工位 nvarchar(500)`。 主要返回字段线索：`top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`、`[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`、`[优先级], [未完成说明], [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'''`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`；`else if(@排产状态 = '已完成')set @selectStrWhere = @selectStrWhere + ' and [排产状态] = 1'`；`if(@物料类型 = '自制件') set @selectStrWhere = @selectStrWhere + ' and [不装配] ''否'''`。
- `sp_创建流程_简化版` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`流程表`、`流程节点表`。 入参/分页参数：`@流程标题 NVARCHAR(200),`、`@流程描述 NVARCHAR(MAX)`、`@优先级 NVARCHAR(20)`、`@发起人ID NVARCHAR(100),`、`@发起人姓名 NVARCHAR(100),`、`@审批人ID NVARCHAR(100),`、`@审批人姓名 NVARCHAR(100),`、`@新流程ID INT`、`@已关联计划号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@工序名称 NVARCHAR(100)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO 流程表 (`；`SET @新流程ID = SCOPE_IDENTITY();`；`INSERT INTO 流程节点表 (`；`SET @结果 = 1;`；`SET @消息 = '流程创建成功，流程ID: ' + CAST(@新流程ID AS NVARCHAR(10));`；`SET @结果 = 0;`；`SET @消息 = '错误: ' + ERROR_MESSAGE();`。 实现特征：事务控制、异常捕获。
- `sp_处理审批` 属于 通用业务，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`流程表`、`流程节点表`、`审批记录表`。 入参/分页参数：`@流程ID INT,`、`@节点ID INT,`、`@审批人ID NVARCHAR(100),`、`@审批人姓名 NVARCHAR(100),`、`@处理结果 NVARCHAR(20),`、`@审批意见 NVARCHAR(MAX)`、`@成功 BIT`。 主要返回字段线索：`@当前步骤 = 步骤序号`。 关键过滤/匹配条件：`WHERE 节点ID = @节点ID;`；`WHERE 流程ID = @流程ID;`；`SELECT @当前步骤 = 步骤序号 FROM 流程节点表 WHERE 节点ID = @节点ID;`；`WHERE 流程ID = @流程ID AND 步骤序号 = @当前步骤 + 1;`；`WHERE 节点ID = @下一节点ID;`；`当前节点 = (SELECT 节点名称 FROM 流程节点表 WHERE 节点ID = @下一节点ID), `。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO 审批记录表 (流程ID, 节点ID, 审批人ID, 审批人姓名, 处理结果, 审批意见)`；`UPDATE 流程节点表`；`SET 状态 = @处理结果, `；`UPDATE 流程表`；`SET 状态 = 'rejected', `；`SET 状态 = 'processing', `；`SET 当前步骤 = @当前步骤 + 1, `；`SET 状态 = 'completed', `；`SET @成功 = 1;`；`SET @成功 = 0;`。 实现特征：事务控制、异常捕获。
- `sp_转办流程` 属于 通用业务，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`流程节点表`、`流程转办表`、`审批记录表`。 入参/分页参数：`@流程ID INT,`、`@节点ID INT,`、`@原审批人ID NVARCHAR(100),`、`@原审批人姓名 NVARCHAR(100),`、`@新审批人ID NVARCHAR(100),`、`@新审批人姓名 NVARCHAR(100),`、`@转办原因 NVARCHAR(500),`、`@成功 BIT`。 主要返回字段线索：`1`。 关键过滤/匹配条件：`WHERE p.流程ID = @流程ID`；`AND pn.节点ID = @节点ID`；`AND pn.状态 = 'processing'`；`AND p.状态 = 'processing'`；`AND pn.审批人ID = @原审批人ID`；`WHERE 节点ID = @节点ID;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @成功 = 0;`；`INSERT INTO 流程转办表 (`；`UPDATE 流程节点表`；`SET 审批人ID = @新审批人ID, `；`INSERT INTO 审批记录表 (流程ID, 节点ID, 审批人ID, 审批人姓名, 处理结果, 审批意见)`；`SET @成功 = 1;`。 实现特征：事务控制、异常捕获。
- `sp_完成流程` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`流程表`、`流程节点表`、`流程完成记录表`、`审批记录表`。 入参/分页参数：`@流程ID INT,`、`@发起人ID NVARCHAR(100),`、`@发起人姓名 NVARCHAR(100),`、`@完成类型 NVARCHAR(20),`、`@完成原因 NVARCHAR(500),`、`@成功 BIT`。 主要返回字段线索：`1`。 关键过滤/匹配条件：`WHERE 流程ID = @流程ID`；`AND 发起人ID = @发起人ID`；`AND 状态 IN ('draft', 'processing')`；`WHERE 流程ID = @流程ID;`；`AND 状态 = 'processing';`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @成功 = 0;`；`INSERT INTO 流程完成记录表 (`；`UPDATE 流程表`；`SET 状态 = @完成类型, `；`UPDATE 流程节点表`；`SET 状态 = 'cancelled', `；`INSERT INTO 审批记录表 (流程ID, 节点ID, 审批人ID, 审批人姓名, 处理结果, 审批意见)`；`SET @成功 = 1;`。 实现特征：事务控制、异常捕获。
- `sp_获取流程详情` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@流程ID INT`。 主要返回字段线索：`@流程信息 = (`、`SELECT`、`p.流程ID, `、`p.流程标题, `、`p.流程描述, `、`p.优先级, `、`p.状态, `、`p.发起人姓名, `、`p.当前节点, `、`p.当前步骤, `。 关键过滤/匹配条件：`WHERE p.流程ID = @流程ID`；`WHEN 步骤序号 < (SELECT 当前步骤 FROM 流程表 WHERE 流程ID = @流程ID) THEN '已完成'`；`WHEN 步骤序号 = (SELECT 当前步骤 FROM 流程表 WHERE 流程ID = @流程ID) THEN '进行中'`；`WHERE 流程ID = @流程ID`；`WHERE ar.流程ID = @流程ID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 步骤序号`；`ORDER BY ar.处理时间 DESC`。

## 26. src/views/ProductionManagement/AssemblePlanTrack/index.vue

**页面位置**：`src/views/ProductionManagement/AssemblePlanTrack/index.vue`  
**所属模块**：ProductionManagement / AssemblePlanTrack  
**源码行数**：514

### 页面功能

该页面跟踪装配计划执行，展示装配任务进度、计划完成情况和异常。

页面可见的操作/字段包括 “查询”、“全部”、“已完成”、“未完成”、“序号”、“工序名称”、“计划数量”、“指派对象”、“开始时间”、“结束时间”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_OrderPlanned_Queryzp`、`MES_OrderPlanned_DescriptionEdit`、`Prog_MES_LoadStations` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_OrderPlanned_Queryzp` -> `MES_OrderPlanned_DescriptionEdit` -> `Prog_MES_LoadStations` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`全部`、`已完成`、`未完成`、`序号`、`工序名称`、`计划数量`、`指派对象`、`开始时间`、`结束时间`、`完成进度`、`拆分内码`、`销售订单`、`生产订单`、`产品编码`、`产品名称`、`要求完工日`、`当前序`

主要方法线索：`getHeaderClass`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo ` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.productCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.productName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.planendTime[0` | `@计划完成1` | - |
| 参数 | `this.planendTime[1` | `@计划完成2` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `'全部'` | `@指派对象` | - |
| 参数 | `this.currentRow.订单号` | `@订单号` | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.currentRow.订单行号` | `@订单行号` | - |
| 参数 | `this.currentRow.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.editForm.优先级` | `@优先级` | - |
| 参数 | `this.editForm.未完成说明` | `@未完成说明` | - |
| 参数 | `this.editForm.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@最后编辑人` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `计划数量` | - | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 显示列 | `指派对象` | - | `指派对象` |
| 显示列 | `开始时间` | - | `计划开始时间` |
| 显示列 | `结束时间` | - | `计划完成时间` |
| 显示列 | `完成进度` | - | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 显示列 | `拆分内码` | - | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 显示列 | `销售订单` | - | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 显示列 | `生产订单` | - | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 显示列 | `产品编码` | - | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 显示列 | `产品名称` | - | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 显示列 | `要求完工日` | - | `要求完工日` |
| 显示列 | `当前序` | - | `当前序` |
| 显示列 | `排产` | - | `排产` |
| 显示列 | `开工` | - | `top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 显示列 | `终检` | - | `终检` |
| 显示列 | `加急` | - | `加急` |
| 显示列 | `优先级` | - | `优先级` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 347 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Queryzp` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 380 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 439 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_OrderPlanned_Queryzp`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], `；`FROM dbo.YL_质量检验_质检记录`
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `

### 数据库调用链

- `src/views/ProductionManagement/AssemblePlanTrack/index.vue` -> `MES_OrderPlanned_Queryzp` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblePlanTrack/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssemblePlanTrack/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据

### 存储过程处理逻辑明细

- `MES_OrderPlanned_Queryzp` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`top 100 [计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] like ''%装配%'''`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。

## 27. src/views/ProductionManagement/AssembleStatus/index.vue

**页面位置**：`src/views/ProductionManagement/AssembleStatus/index.vue`  
**所属模块**：ProductionManagement / AssembleStatus  
**源码行数**：354

### 页面功能

该页面查看装配现场状态，重点展示进行中任务和当前工位状态。

页面可见的操作/字段包括 “查询”、“item.label”、“序号”、“人员名称”、“工位”、“生产订单”、“计划号”、“销售订单”、“物料名称”、“物料编码”，这些是判断页面业务范围的主要线索。

后端主要围绕 `人员管理_人员信息查询_质检部门_查询`、`MES_登录_工位与名称_查询`、`生产管理_装配状态_获取进行中任务` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `人员管理_人员信息查询_质检部门_查询` -> `MES_登录_工位与名称_查询` -> `生产管理_装配状态_获取进行中任务` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`item.label`、`序号`、`人员名称`、`工位`、`生产订单`、`计划号`、`销售订单`、`物料名称`、`物料编码`、`顺序`、`工序名称`、`分配数`、`上序合格数`、`加工状态`、`送检数`、`收检合格数`、`收检不合格数`

主要方法线索：`getCheckerList`、`for`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `selectedChecker ? selectedChecker.label : ''` | `@操作人` | `t.操作人 AS UserName, ` |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `人员名称` | - | `t.操作人 AS UserName, ` |
| 显示列 | `工位` | - | `[VisCode] as 工位代码` |
| 显示列 | `生产订单` | - | `订单号` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `销售订单` | - | `合同号` |
| 显示列 | `物料名称` | - | `零件名称` |
| 显示列 | `物料编码` | - | `零件编码` |
| 显示列 | `顺序` | - | `顺序` |
| 显示列 | `工序名称` | - | `t.工序名称, ` |
| 显示列 | `分配数` | - | `分配数` |
| 显示列 | `上序合格数` | - | `上序合格数` |
| 显示列 | `加工状态` | - | `加工状态` |
| 显示列 | `送检数` | - | `完成数量` |
| 显示列 | `收检合格数` | - | `收检合格数` |
| 显示列 | `收检不合格数` | - | `收检不合格数` |
| 显示列 | `入库数量` | - | `入库数量` |
| 显示列 | `发料状态` | - | `发料状态` |
| 显示列 | `拣配状态` | - | `拣配状态` |
| 显示列 | `齐套` | - | `齐套` |
| 显示列 | `开始时间` | - | `t.开始时间 AS StartTime, ` |
| 显示列 | `计划开始` | - | `计划开始` |
| 显示列 | `计划完成` | - | `计划完成` |
| 显示列 | `备注` | - | `派工特殊说明` |
| 输入字段 | `checker` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 267 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 278 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 296 | 11（当前通用存储过程查询/执行） | `生产管理_装配状态_获取进行中任务` | 业务存储过程调用 | 查询、处理质检数据、处理计划/派工 | 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `生产管理_装配状态_获取进行中任务`：`CREATE PROCEDURE [dbo].[生产管理_装配状态_获取进行中任务]`；`mes.工序名称 AS 任务工序名称, `；`mes.任务状态, `；`mes.完成数量, `；`mes.计划完成时间 AS 计划完成, `；`when isnull(mes.发料状态, 0) = 1 then '发料齐套'`；`when isnull(mes.发料状态, 0) = 2 then '发料缺件'`；`end as [发料状态], `

### 数据库调用链

- `src/views/ProductionManagement/AssembleStatus/index.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleStatus/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleStatus/index.vue` -> `生产管理_装配状态_获取进行中任务` -> 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` -> 业务存储过程调用

### 存储过程处理逻辑明细

- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `生产管理_装配状态_获取进行中任务` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`。 入参/分页参数：`@操作人 nvarchar(50)`。 主要返回字段线索：`t.AID AS 操作记录ID, `、`t.TaskAID, `、`t.操作人 AS UserName, `、`t.开始时间 AS StartTime, `、`t.操作类别, `、`t.操作类别编号, `、`t.工序名称, `、`t.工位名称, `、`t.订单编号, `、`t.物料编号, `。 关键过滤/匹配条件：`WHERE 质检类型 = '收检'`；`WHERE`；`AND t.结束时间 IS NULL`；`and t.工位名称 like '%装配%'`；`and t.操作数值 is not null`；`AND (@操作人 = '' OR t.操作人 = @操作人)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`GROUP BY TaskAID`；`ORDER BY t.操作人, t.开始时间 DESC;`。 实现特征：异常捕获。

## 28. src/views/ProductionManagement/AssembleTaskManage/index.vue

**页面位置**：`src/views/ProductionManagement/AssembleTaskManage/index.vue`  
**所属模块**：ProductionManagement / AssembleTaskManage  
**源码行数**：1041

### 页面功能

该页面管理装配任务。用户查询装配生产任务、查看工时汇总，进行派工、任务说明维护和外协/生产通知。

页面可见的操作/字段包括 “查询”、“批量排产”、“排产完成”、“确认修改”、“拆分子任务”、“确定”、“编辑”、“取 消”、“确 定”、“全部”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`MES_OrderPlanned_Finish`、`MES_OrderPlanned_ChildTask_Add`、`MES_OrderPlanned_ChildTask_Get`、`MES_OrderPlanned_Query`、`Prog_MES_LoadStations` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `MES_OrderPlanned_Finish` -> `MES_OrderPlanned_ChildTask_Add` -> `MES_OrderPlanned_ChildTask_Get` -> `MES_OrderPlanned_Query` -> `Prog_MES_LoadStations` -> `MES_OrderPlanned_EditTaskPlanned` -> `MES_OrderPlanned_SingleTaskPlanned` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`批量排产`、`排产完成`、`确认修改`、`拆分子任务`、`确定`、`编辑`、`取 消`、`确 定`、`全部`、`已完成`、`未完成`、`表单`、`序号`、`销售订单`、`生产订单`、`订单行号`、`拆分内码`

主要方法线索：`getDoing`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.订单号` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.$store.state.user.name` | `@派工操作人` | - |
| 参数 | `this.$refs.formData.model.TaskAID` | `@TaskAID` | - |
| 参数 | `this.$refs.formData.model.装配任务概述` | `@任务描述` | - |
| 参数 | `this.$refs.formData.model.指派对象` | `@指派对象` | - |
| 参数 | `this.$refs.formData.model.指派对象编号` | `@指派对象编号` | - |
| 参数 | `this.$refs.formData.model.指派数量` | `@指派数量` | - |
| 参数 | `this.$refs.formData.model.计划开始时间` | `@计划开始时间` | - |
| 参数 | `this.$refs.formData.model.计划完成时间` | `@计划结束时间` | - |
| 参数 | `this.$refs.formData.model.最晚开始时间` | `@最晚开始时间` | - |
| 参数 | `0` | `@TaskAID` | - |
| 参数 | `this.orderNo ` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `'装配件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `this.productCode` | `@产品编码` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.productName` | `@产品名称` | `[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''` |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.nature` | `@性质` | - |
| 参数 | `this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `editstr` | `@editstr` | - |
| 参数 | `row.订单行号` | `@订单行号` | - |
| 参数 | `row.拆分内码` | `@订单拆分内码` | - |
| 参数 | `row.指派对象编号` | `@指派对象编号` | - |
| 参数 | `row.指派对象` | `@指派对象` | - |
| 参数 | `this.editnumber` | `@指派数量` | - |
| 参数 | `row.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `row.计划开始时间` | `@计划开始时间` | - |
| 参数 | `row.计划完成时间` | `@计划完成时间` | - |
| 参数 | `row.最晚开始时间` | `@最晚开始时间` | - |
| 参数 | `item.订单号` | `@订单号` | `[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, ` |
| 参数 | `item.订单行号` | `@订单行号` | - |
| 参数 | `item.拆分内码` | `@订单拆分内码` | - |
| 参数 | `item.指派对象编号` | `@指派对象编号` | - |
| 参数 | `item.指派对象` | `@指派对象` | - |
| 参数 | `item.指派数量` | `@指派数量` | - |
| 参数 | `item.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `item.计划开始时间` | `@计划开始时间` | - |
| 参数 | `item.计划完成时间` | `@计划完成时间` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 500 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 528 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_Finish` | 确认/关闭/完成业务动作 | 查询、更新、解析 JSON 批量数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 568 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_ChildTask_Add` | 新增业务数据 | 查询、新增、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 583 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_ChildTask_Get` | 查询/读取数据 | 查询、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 634 | 11（当前通用存储过程查询/执行） | `MES_OrderPlanned_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` |
| 649 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 675 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 692 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 709 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 726 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 780 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 810 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 882 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 963 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_OrderPlanned_Finish`：`@任务列表 NVARCHAR(MAX), `；`@派工操作人 NVARCHAR(MAX)`；`t.[排产状态] = 1, `；`t.[任务状态] = 0, `；`t.派工特殊说明 = j.派工特殊说明, `；`t.计划完成时间 = j.计划完成时间, `；`t.派工操作人 = @派工操作人, `；`t.最后编辑人 = @派工操作人, `
- `MES_OrderPlanned_ChildTask_Add`：`@任务描述 NVARCHAR(500) = NULL, `；`INSERT INTO [dbo].[MES_接口_生产计划_生产任务_子任务]`；`[任务描述], `；`@任务描述, `
- `MES_OrderPlanned_ChildTask_Get`：`[任务描述], `；`[计划结束时间] as 计划完成时间, `；`from [MES_接口_生产计划_生产任务_子任务]`
- `MES_OrderPlanned_Query`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`[计划完成] as 要求完工日期, [工序名称], 完成数量, v.计划号, 收料数量, 外协分组, v.任务状态, v.备注, `；`case when [加急状态] = 1 then ''加急'' else '''' end as 加急状态, 性质, isnull(总工时, 0) as 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, `；`[派工状态], [外协通知], [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], [二次派工], isnull(g.标准工时, 0) as 标准工时, `
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`

### 数据库调用链

- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_Finish` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 确认/关闭/完成业务动作
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_ChildTask_Add` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 新增业务数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_ChildTask_Get` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_Query` -> 表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssembleTaskManage/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_OrderPlanned_Finish` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 确认/关闭/完成业务动作。 数据库处理摘要：查询、更新、解析 JSON 批量数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@任务列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(MAX)`。 主要返回字段线索：`TaskAID = JSON_VALUE(value, '$.taskaid'), `、`指派对象 = JSON_VALUE(value, '$."指派对象"'), `、`指派数量 = JSON_VALUE(value, '$."指派数量"'), `、`指派对象编号 = JSON_VALUE(value, '$."指派对象编号"'), `、`派工特殊说明 = JSON_VALUE(value, '$."派工特殊说明"'), `、`计划开始时间 = JSON_VALUE(value, '$."计划开始时间"'), `、`计划完成时间 = JSON_VALUE(value, '$."计划完成时间"'), `、`最晚开始时间 = JSON_VALUE(value, '$."最晚开始时间"')`。 关键写入/状态处理语句线索：`UPDATE t`；`SET`。 实现特征：JSON 批量解析。
- `MES_OrderPlanned_ChildTask_Add` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID BIGINT,`、`@任务描述 NVARCHAR(500)`、`@指派对象 NVARCHAR(50)`、`@指派对象编号 NVARCHAR(50)`、`@指派数量 INT`、`@计划开始时间 DATETIME`、`@计划结束时间 DATETIME`、`@最晚开始时间 DATETIME`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [dbo].[MES_接口_生产计划_生产任务_子任务]`。 实现特征：事务控制、异常捕获。
- `MES_OrderPlanned_ChildTask_Get` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID BIGINT`。 主要返回字段线索：`[AID], `、`[TaskAID], `、`[任务描述], `、`[指派对象], `、`[指派对象编号], `、`[指派数量], `、`[计划开始时间], `、`[计划结束时间] as 计划完成时间, `、`[最晚开始时间]`。
- `MES_OrderPlanned_Query` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`车间生产管理工艺_零件生产工艺_工艺库`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`。 主要返回字段线索：`[计划数量订单], isnull(开工时间, 0) as 开工时间, isnull(进度, 0) as 进度, [TaskAID], [合同号], v.[订单编号] as 订单号, `、`[订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, TRIM(''.''`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and [自制件属性] = ''机加件'' and isnull(v.任务状态, 0) < 4'`；`WHERE 质检类型 = ''终检''`；`AND v.[订单行号] = g.工艺顺序'`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and v.[订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@计划开始1 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] > = '''+@计划开始1+''''`；`if(@计划开始2 '')set @selectStrWhere = @selectStrWhere + ' and [计划开始时间] < = '''+@计划开始2+''''`；`if(@计划完成1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] > = '''+@计划完成1+''''`；`if(@计划完成2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成时间] < = '''+@计划完成2+''''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。

## 29. src/views/ProductionManagement/AssembleTasksSum/index.vue

**页面位置**：`src/views/ProductionManagement/AssembleTasksSum/index.vue`  
**所属模块**：ProductionManagement / AssembleTasksSum  
**源码行数**：532

### 页面功能

该页面汇总装配任务，按订单、工位、人员或状态统计装配执行情况。

页面可见的操作/字段包括 “查询”、“编辑”、“取 消”、“确 定”、“item.指南工位号”、“表单”、“序号”、“销售订单”、“生产订单”、“零件编码”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`MES_ProductTask_WorkTimeSum`、`MES_ProductAdmin_Query`、`Prog_MES_LoadStations`、`MES_OrderPlanned_DescriptionEdit`、`MES_OrderPlanned_EditTaskPlanned` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `MES_ProductTask_WorkTimeSum` -> `MES_ProductAdmin_Query` -> `Prog_MES_LoadStations` -> `MES_OrderPlanned_DescriptionEdit` -> `MES_OrderPlanned_EditTaskPlanned` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`编辑`、`取 消`、`确 定`、`item.指南工位号`、`表单`、`序号`、`销售订单`、`生产订单`、`零件编码`、`产品名称`、`计划数`、`工序名称`、`总工时`、`占用情况`、`计划开始时间`、`计划完成时间`、`最晚开始时间`

主要方法线索：`getDoing`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.completionTime ? this.completionTime[0` | `@计划开工_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@计划开工_End` | - |
| 参数 | `this.orderNo ` | `@订单号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `'装配件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.productCode` | `@产品编码` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.productName` | `@产品名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.processName` | `@工序名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.nature` | `@性质` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.completionTime ? this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 参数 | `this.Doing.toString()` | `@工位` | - |
| 参数 | `this.currentRow.订单号` | `@订单号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.currentRow.订单行号` | `@订单行号` | - |
| 参数 | `this.currentRow.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.editForm.优先级` | `@优先级` | - |
| 参数 | `this.editForm.未完成说明` | `@未完成说明` | - |
| 参数 | `this.editForm.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@最后编辑人` | - |
| 参数 | `editstr` | `@editstr` | - |
| 参数 | `taskInfo.订单号` | `@订单号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `taskInfo.订单行号` | `@订单行号` | - |
| 参数 | `taskInfo.拆分内码` | `@订单拆分内码` | - |
| 参数 | `startTime` | `@计划开始时间` | - |
| 参数 | `endTime` | `@计划完成时间` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `销售订单` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `生产订单` | - | `生产订单` |
| 显示列 | `零件编码` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `产品名称` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `计划数` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `工序名称` | - | `TaskAID, 工序名称, sum(工时) as 总工时` |
| 显示列 | `总工时` | - | `TaskAID, 工序名称, sum(工时) as 总工时` |
| 显示列 | `占用情况` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `计划开始时间` | - | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 显示列 | `计划完成时间` | - | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 显示列 | `最晚开始时间` | - | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 显示列 | `要求完工日期` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `收料` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 254 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 274 | 11（当前通用存储过程查询/执行） | `MES_ProductTask_WorkTimeSum` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 318 | 11（当前通用存储过程查询/执行） | `MES_ProductAdmin_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 视图：`View_生产订单_MES` |
| 336 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 373 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 453 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_ProductTask_WorkTimeSum`：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`
- `MES_ProductAdmin_Query`：`@排产状态 nvarchar(50) = '全部', `；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`；`, [优先级], [未完成说明], [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], '''' as 合同交货期, [计划完成] as 预计齐套时间, ''齐'' as 是否齐套, '''' as 齐套检测, ''是'' as 齐套锁料, [计划开始] as 备料日期, 0 as 加急`；`, [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], TaskAID`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`

### 数据库调用链

- `src/views/ProductionManagement/AssembleTasksSum/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleTasksSum/index.vue` -> `MES_ProductTask_WorkTimeSum` -> 未在 SQL 中解析到明确依赖 -> 报工或工时处理
- `src/views/ProductionManagement/AssembleTasksSum/index.vue` -> `MES_ProductAdmin_Query` -> 视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleTasksSum/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/ProductionManagement/AssembleTasksSum/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssembleTasksSum/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_ProductTask_WorkTimeSum` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`。 主要返回字段线索：`TaskAID, 工序名称, sum(工时) as 总工时`。 关键过滤/匹配条件：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。 排序/分组/分页线索：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。
- `MES_ProductAdmin_Query` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@性质 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@工位 nvarchar(500)`。 主要返回字段线索：`top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`、`[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`、`[优先级], [未完成说明], [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'''`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`；`else if(@排产状态 = '已完成')set @selectStrWhere = @selectStrWhere + ' and [排产状态] = 1'`；`if(@物料类型 = '自制件') set @selectStrWhere = @selectStrWhere + ' and [不装配] ''否'''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。

## 30. src/views/ProductionManagement/AssemblyCenter/index.vue

**页面位置**：`src/views/ProductionManagement/AssemblyCenter/index.vue`  
**所属模块**：ProductionManagement / AssemblyCenter  
**源码行数**：4838

### 页面功能

该页面是装配生产执行主界面。装配人员按工位查询装配任务，处理开工、结束/报工、送检、缺料查询、收检记录、图纸查看和退库等动作，并会读取 SAP 生产订单信息辅助判断。

页面可见的操作/字段包括 “查询 --> 缺料”、“上一个 下一个”、“删除当前记录 关闭”、“上一个 下一个 保存当前记录 删除当前记录 关闭”、“确定 关闭”、“取 消”、“确 定”、“新增异常工时”、“编辑”、“取消”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_获取人员绑定`、`加急订单_加急明细查询`、`MES_人员工时记录_获取进行中任务2`、`MES_人员工时记录_获取进行中任务`、`工时校验_获取订单列表`、`异常工时_新增操作记录` 等过程 取数或提交业务动作。

### 页面流程图

装配中心执行流程：

```mermaid
flowchart LR
  A[选择工位/人员] --> B[MES_ProductCenter_GetTask_zp 查询装配任务]
  B --> C[查看缺料/图纸/工序]
  C --> D[MES_人员工时记录_开始 或生产任务开始]
  D --> E[执行装配]
  E --> F[MES_ProductTask_SendInspection 送检/报工]
  F --> G[收检记录/质检数据]
  G --> H[读取 SAP ProductionOrders 辅助判断]
  H --> I[刷新装配任务]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询 --> 缺料`、`上一个 下一个`、`删除当前记录 关闭`、`上一个 下一个 保存当前记录 删除当前记录 关闭`、`确定 关闭`、`取 消`、`确 定`、`新增异常工时`、`编辑`、`取消`、`关闭`、`确定`、`全部`、`待执行`、`可执行`、`已开工`、`已完成`、`item.指南工位号`

主要方法线索：`handletaskChange`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.零件编码` | `@物料编号` | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 参数 | `userName` | `@用户ID` | - |
| 参数 | `orderId` | `@订单编号` | `订单编号, ` |
| 参数 | `this.TaskAID ` | `@TaskAID` | - |
| 参数 | `this.orderNo2 ` | `@订单号` | `[订单编号] as 订单号, ` |
| 参数 | `this.productCode2` | `@零件编号` | - |
| 参数 | `this.productionStatus2 ` | `@生产状态` | - |
| 参数 | `this.Doing` | `@工位名称` | - |
| 参数 | `this.$store.state.user.id` | `@用户ID` | - |
| 参数 | `this.plannum` | `@计划号` | - |
| 参数 | `this.salenum` | `@销售订单` | - |
| 参数 | `""` | `@计划开工_Start` | - |
| 参数 | `""` | `@计划开工_End` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@计划开工_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@计划开工_End` | - |
| 参数 | `row.零件编码` | `@ItemCode` | - |
| 参数 | `row.订单号` | `@订单号` | `[订单编号] as 订单号, ` |
| 参数 | `taskAID` | `@TaskAID` | - |
| 参数 | `userId` | `@用户ID` | - |
| 参数 | `userName` | `@用户名` | - |
| 参数 | `userName` | `@操作人` | - |
| 参数 | `this.workendData.备注` | `@备注` | - |
| 参数 | `this.workendData.工序说明` | `@工序说明` | - |
| 参数 | `this.workendData.异常说明` | `@异常说明` | - |
| 参数 | `0` | `@本次检数` | `@检验数 = ISNULL(本次检数, 0)` |
| 参数 | `isOvertime` | `@是否加班` | - |
| 参数 | `ordinaryPersons` | `@加班人员` | - |
| 参数 | `specialPersons` | `@特殊加班人员` | - |
| 参数 | `isRestDay` | `@是否休息日` | - |
| 参数 | `isLegalRestDay` | `@是否法定休息日` | - |
| 参数 | `shiftStandardHours` | `@班次标准工时` | - |
| 参数 | `row.TaskAID` | `@TaskAID` | - |
| 参数 | `this.$store.state.user.name` | `@optor` | - |
| 参数 | `this.assistNumber` | `@recievCount` | - |
| 参数 | `this.receiveCheckData.TaskAID` | `@TaskAID` | - |
| 参数 | `6` | `@检测类型编号` | - |
| 参数 | `"收检"` | `@质检类型` | - |
| 参数 | `this.receiveCheckData.零件名称` | `@零件名称` | - |
| 参数 | `this.receiveCheckData.内部合同号` | `@内部合同号` | - |
| 参数 | `this.receiveCheckData.零件编码` | `@零件编码` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- TM/OpenAPI 接口（`src/api/tm.js`）
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 2196 | 11（当前通用存储过程查询/执行） | `生产管理_获取人员绑定` | 基础权限/人员数据处理 | 查询 | 表：`MES_资源主数据`、`工位人员绑定表` |
| 2277 | 11（当前通用存储过程查询/执行） | `加急订单_加急明细查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` |
| 2290 | 11（当前通用存储过程查询/执行） | `MES_人员工时记录_获取进行中任务2` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表` |
| 2324 | 11（当前通用存储过程查询/执行） | `MES_人员工时记录_获取进行中任务` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表` |
| 2398 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单列表` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 2444 | 11（当前通用存储过程查询/执行） | `异常工时_新增操作记录` | 新增业务数据 | 查询、新增、处理报工/工时 | 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` |
| 2477 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 2521 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 2575 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadProcess` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 2714 | 11（当前通用存储过程查询/执行） | `MES_ProductCenter_GetTask_zp` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 2818 | 11（当前通用存储过程查询/执行） | `MES_ProductTask_WorkTimeSum` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 2850 | 11（当前通用存储过程查询/执行） | `生产管理_装配中心_缺料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty` |
| 2883 | 12（当前通用存储过程写入/业务动作） | `MES_人员工时记录_开始` | 报工或工时处理 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`；视图：`View_生产订单_MES` |
| 3204 | 12（当前通用存储过程写入/业务动作） | `MES_人员工时记录_结束` | 报工或工时处理 | 查询、新增、更新、处理报工/工时、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录` |
| 3276 | 12（当前通用存储过程写入/业务动作） | `MES_ProductTask_SendInspection` | 业务存储过程调用 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES` |
| 3323 | 11（当前通用存储过程查询/执行） | `加工中心_收检_读取收检记录` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 3412 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_ReceiveCheck` | 质量检验处理 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录` |
| 3450 | 11（当前通用存储过程查询/执行） | `加工中心_异常工时_获取操作记录列表` | 报工或工时处理 | 查询、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 3504 | 11（当前通用存储过程查询/执行） | `加工中心_修改工时_保存修改记录` | 更新/保存业务数据 | 更新、处理报工/工时 | 表：`YL_加工中心_操作记录表` |
| 3539 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_生产发料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE` |
| 3593 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 3627 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 3668 | 12（当前通用存储过程写入/业务动作） | `生产管理_加工中心_退库` | 业务存储过程调用 | 查询、新增、处理质检数据 | 表：`质量检验_质检任务_SAP` |
| 3914 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 4144 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_CheckItemData_Save` | 更新/保存业务数据 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` |
| 4232 | 11（当前通用存储过程查询/执行） | `MES_QulityInspection_GetItemStandard` | 查询/读取数据 | 查询、处理质检数据 | 表：`YL_质量检验_检测标准` |
| 4284 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 4327 | 11（当前通用存储过程查询/执行） | `MES_QulityInspection_GetItemStandard` | 查询/读取数据 | 查询、处理质检数据 | 表：`YL_质量检验_检测标准` |
| 4529 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_CheckItemData_Save` | 更新/保存业务数据 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 3561 行：`getB1("/ProductionOrders")`
- 第 3730 行：`posttm("/stocktask/task/issueordertask")`
存储过程内读取 SAP B1 数据库对象：
- 加急订单_加急明细查询: SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL
- 生产管理_装配中心_缺料查询: SAP.SBO_YL.dbo.UBT_OPKL_MissQty
- 生产管理_加工中心_生产发料查询: SAP.SBO_YL.dbo.UBT_OWOR_OIGE

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 3561 | `getB1` | `/ProductionOrders` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `filter`、`数据`、`lines`、`请求失败` |
| 3730 | `posttm` | `/stocktask/task/issueordertask` | 调用外部接口，失败会影响对应外部系统同步。 | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |

### 状态流转说明

- `生产管理_获取人员绑定`：`AND b.绑定状态 = 1;`
- `加急订单_加急明细查询`：`SELECT docentry as 订单编号, itemcode as 物料编号, 加急数量 from SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`
- `MES_人员工时记录_获取进行中任务2`：`CREATE PROCEDURE [dbo].[MES_人员工时记录_获取进行中任务2]`；`pt.工序名称 AS 任务工序名称, `；`pt.任务状态, `；`pt.完成数量, `；`pt.计划完成时间 AS 计划完成, `；`FROM [dbo].[YL_加工中心_操作记录表] t`；`LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID`；`t.操作类别 = '开始加工'`
- `MES_人员工时记录_获取进行中任务`：`CREATE PROCEDURE [dbo].[MES_人员工时记录_获取进行中任务]`；`pt.工序名称 AS 任务工序名称, `；`pt.任务状态, `；`pt.完成数量, `；`pt.计划完成时间 AS 计划完成, `；`FROM [dbo].[YL_加工中心_操作记录表] t`；`LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID`；`AND t.操作类别 = '开始加工'`
- `异常工时_新增操作记录`：`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`；`操作描述, 开始时间, 结束时间, 总时长, 报工日期, 已报工, 不装配, `
- `MES_ProductCenter_GetTask_zp`：`@生产状态 int = -1, `；`DECLARE @whereStr nvarchar(max) = ' WHERE 排产状态 = 1 '`；`派工特殊说明, `；`case when isnull([加急状态], 0) = 1 then ''加急'' else ''否'' end as [加急], `；`[二次派工], `；`[计划完成时间] as 计划完成, `；`isnull([完成数量], 0) as 完成数量, `；`when isnull(发料状态, 0) = 1 then ''发料齐套''`
- `MES_ProductTask_WorkTimeSum`：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`
- `生产管理_装配中心_缺料查询`：`select * from SAP.SBO_YL.dbo.UBT_OPKL_MissQty where DocEntry = @订单号`
- `MES_人员工时记录_开始`：`declare @任务状态 int = -1`；`FROM[dbo].[MES_接口_生产计划_生产任务]`；`SELECT 1 FROM YL_加工中心_操作记录表`；`AND 操作类别 = '开始加工'`；`select @任务状态 = isnull(任务状态, 0)from View_生产订单_MES where TaskAID = @TaskAID`；`if(@任务状态 = 1)`；`UPDATE MES_接口_生产计划_生产任务`；`任务状态 = '2', `
- `MES_人员工时记录_结束`：`FROM [dbo].[MES_接口_生产计划_生产任务]`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`FROM YL_加工中心_操作记录表`；`AND 操作类别 = '开始加工'`；`UPDATE YL_加工中心_操作记录表`；`操作描述 = '用户 ' + @用户名 + ' 结束加工，' +`；`INSERT INTO [dbo].[YL_加工中心_报工记录]`；`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`
- `MES_ProductTask_SendInspection`：`declare @任务状态 int`；`declare @完成数量 int`；`Update MES_接口_生产计划_生产任务`；`set 完成数量 = isnull(完成数量, 0)+@recievCount, `；`select @分配数量 = 指派数量, @完成数量 = 完成数量, @订单编号 = 订单编号, @工位名称 = 指派对象 from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`if(@完成数量 = @分配数量)`；`set 任务状态 = 4, `；`INSERT INTO [dbo].[YL_加工中心_操作记录表]`
- `加工中心_收检_读取收检记录`：`CREATE PROCEDURE [dbo].[加工中心_收检_读取收检记录]`；`declare @完成数量 int`；`select @已检验数量 = sum(检验数量) OVER() from YL_质量检验_质检记录 where TaskAID = @TaskAID and 质检类型 = '收检'`；`select @完成数量 = 完成数量 from [dbo].[MES_接口_生产计划_生产任务] where AID = @TaskAID`；`FROM [dbo].[YL_质量检验_质检记录] qc`；`select isnull(@已检验数量, 0), isnull(@完成数量, 0), isnull(@上序合格数, 0), @订单行号`
- `MES_QulityInspection_ReceiveCheck`：`@质检类型 NVARCHAR(50), `；`FROM [dbo].[MES_接口_生产计划_生产任务]`；`FROM [YL_MESDB].[dbo].[YL_质量检验_质检记录] qc`；`0 AS 清零任务数`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`[质检类型], `；`@质检类型, `；`INNER JOIN [dbo].[MES_接口_生产计划_生产任务] task ON qc.TaskAID = task.AID`
- `加工中心_异常工时_获取操作记录列表`：`CREATE PROCEDURE [dbo].[加工中心_异常工时_获取操作记录列表]`；`o.实际工时 as 加工工时, `；`o.已报工, `；`FROM [dbo].[YL_加工中心_操作记录表] o`
- `加工中心_修改工时_保存修改记录`：`CREATE PROCEDURE [dbo].[加工中心_修改工时_保存修改记录]`；`update [dbo].[YL_加工中心_操作记录表]`
- `生产管理_加工中心_生产发料查询`：`CREATE PROCEDURE [dbo].[生产管理_加工中心_生产发料查询]`；`select * from SAP.SBO_YL.dbo.UBT_OWOR_OIGE where 生产订单号 = @生产订单号`
- `生产管理_加工中心_退库`：`CREATE PROCEDURE [dbo].[生产管理_加工中心_退库]`；`select @行号 = max(isnull(行号, 0)) from [dbo].[质量检验_质检任务_SAP] where [订单编号] = @生产订单号 and [订单类型] = '202-60'`；`insert into [dbo].[质量检验_质检任务_SAP] ( [订单编号]`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `MES_QulityInspection_CheckItemData_Save`：`@质检类型 nvarchar(100) = '', `；`FROM [dbo].[YL_质量检验_质检记录]`；`AND 质检类型 = @质检类型`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`TaskAID, 质检类型, 检测类型编号, 零件名称, 内部合同号, `；`@TaskAID, @质检类型, @检测类型编号, @零件名称, @内部合同号, `；`UPDATE [dbo].[YL_质量检验_质检记录]`；`FROM [dbo].[YL_质量检验_质检记录_检测零件]`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `MES_QulityInspection_CheckItemData_Save`：`@质检类型 nvarchar(100) = '', `；`FROM [dbo].[YL_质量检验_质检记录]`；`AND 质检类型 = @质检类型`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`TaskAID, 质检类型, 检测类型编号, 零件名称, 内部合同号, `；`@TaskAID, @质检类型, @检测类型编号, @零件名称, @内部合同号, `；`UPDATE [dbo].[YL_质量检验_质检记录]`；`FROM [dbo].[YL_质量检验_质检记录_检测零件]`

### 数据库调用链

- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `生产管理_获取人员绑定` -> 表：`MES_资源主数据`、`工位人员绑定表` -> 基础权限/人员数据处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `加急订单_加急明细查询` -> 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_人员工时记录_获取进行中任务2` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表` -> 报工或工时处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_人员工时记录_获取进行中任务` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表` -> 报工或工时处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `工时校验_获取订单列表` -> 表：`MES_接口_生产计划` -> 报工或工时处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `异常工时_新增操作记录` -> 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` -> 新增业务数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `Prog_MES_LoadProcess` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_ProductCenter_GetTask_zp` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_ProductTask_WorkTimeSum` -> 未在 SQL 中解析到明确依赖 -> 报工或工时处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `生产管理_装配中心_缺料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_人员工时记录_开始` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`；视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_人员工时记录_结束` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录` -> 报工或工时处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_ProductTask_SendInspection` -> 表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES` -> 业务存储过程调用
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `加工中心_收检_读取收检记录` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_QulityInspection_ReceiveCheck` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录` -> 质量检验处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `加工中心_异常工时_获取操作记录列表` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 报工或工时处理
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `加工中心_修改工时_保存修改记录` -> 表：`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `生产管理_加工中心_生产发料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `生产管理_加工中心_退库` -> 表：`质量检验_质检任务_SAP` -> 业务存储过程调用
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_QulityInspection_CheckItemData_Save` -> 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` -> 更新/保存业务数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_QulityInspection_GetItemStandard` -> 表：`YL_质量检验_检测标准` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_QulityInspection_GetItemStandard` -> 表：`YL_质量检验_检测标准` -> 查询/读取数据
- `src/views/ProductionManagement/AssemblyCenter/index.vue` -> `MES_QulityInspection_CheckItemData_Save` -> 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `生产管理_获取人员绑定` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 基础权限/人员数据处理。 数据库处理摘要：查询。 读取/关联对象：表：`MES_资源主数据`、`工位人员绑定表`。 入参/分页参数：`@操作人ID NVARCHAR(50)`。 主要返回字段线索：`m.[name] AS 工位名称`。 关键过滤/匹配条件：`WHERE`；`AND b.绑定状态 = 1;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `加急订单_加急明细查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`docentry as 订单编号, itemcode as 物料编号, 加急数量`。 关键过滤/匹配条件：`where itemcode = @物料编号`。 实现特征：读取 SAP 数据库对象。
- `MES_人员工时记录_获取进行中任务2` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`。 入参/分页参数：`@用户ID NVARCHAR(50)`。 主要返回字段线索：`t.AID AS 操作记录ID, `、`t.TaskAID, `、`t.操作人 AS UserName, `、`t.开始时间 AS StartTime, `、`t.操作类别, `、`t.操作类别编号, `、`t.工序名称, `、`t.工位名称, `、`t.订单编号, `、`t.物料编号, `。 关键过滤/匹配条件：`WHERE`；`AND t.结束时间 IS NULL`；`and t.工位名称 like '%装配%'`；`and t.操作数值 is not null`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY t.开始时间 DESC;`。 实现特征：异常捕获。
- `MES_人员工时记录_获取进行中任务` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`。 入参/分页参数：`@用户ID NVARCHAR(50)`。 主要返回字段线索：`t.AID AS 操作记录ID, `、`t.TaskAID, `、`t.操作人 AS UserName, `、`t.开始时间 AS StartTime, `、`t.操作类别, `、`t.操作类别编号, `、`t.工序名称, `、`t.工位名称, `、`t.订单编号, `、`t.物料编号, `。 关键过滤/匹配条件：`WHERE t.操作人 = @用户ID`；`AND t.操作类别 = '开始加工'`；`AND t.结束时间 IS NULL`；`and t.工位名称 like '%装配%'`；`and t.操作数值 is not null`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY t.开始时间 DESC;`。 实现特征：异常捕获。
- `工时校验_获取订单列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`DISTINCT top 20`、`订单编号, `、`物料编号 as 零件编码, `、`物料描述 as 零件名称`。 关键过滤/匹配条件：`FROM [dbo].[MES_接口_生产计划] WHERE 订单编号 LIKE '%' + @订单编号 + '%' OR @订单编号 = ''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单编号 ;`。
- `异常工时_新增操作记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`。 写入或更新对象：`YL_加工中心_操作记录表`。 入参/分页参数：`@操作类别 nvarchar(50),`、`@订单编号 nvarchar(50),`、`@物料编号 nvarchar(50),`、`@物料描述 nvarchar(50),`、`@工序名称 nvarchar(50),`、`@操作人 nvarchar(50),`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@操作内容 nvarchar(500)`、`@操作描述 nvarchar(2000)`、`@TaskAID nvarchar(2000)`。 主要返回字段线索：`@工位名称 = 指派对象`。 关键过滤/匹配条件：`select @工位名称 = 指派对象 from [dbo].[View_生产订单_MES] where TaskAID = @TaskAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @工时 = DATEDIFF(SECOND, @开始时间, @结束时间);`；`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`。 实现特征：异常捕获。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `Prog_MES_LoadProcess` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 主要返回字段线索：`[工艺编号], [工序名称]`。 排序/分组/分页线索：`SELECT [工艺编号], [工序名称] FROM [基础表_工序] ORDER BY [工艺编号]`。
- `MES_ProductCenter_GetTask_zp` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID int`、`@订单号 int`、`@零件编号 nvarchar(50)`、`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`、`@生产状态 int`、`@工位名称 nvarchar(50)`、`@用户ID nvarchar(50)`、`@计划号 nvarchar(50)`、`@销售订单 nvarchar(50)`。 主要返回字段线索：`TaskAID, `、`[订单编号] as 订单号, `、`合同号, `、`自制件属性, `、`加急总数, `、`派工特殊说明, `、`[订单拆分内码], `、`[订单行号], `、`[开工时间], `、`[物料编号] as 零件编码, `。 关键过滤/匹配条件：`DECLARE @whereStr nvarchar(max) = ' WHERE 排产状态 = 1 '`；`WHERE next_task.[订单编号] = main.[订单编号]`；`AND next_task.[订单行号] = main.[订单行号] + 1`；`AND next_task.[排产状态] = 1`；`WHERE b.订单编号 = main.[订单编号]`；`AND b.订单行号 = main.[订单行号] - 1`；`AND a.检测类型编号 = 6`；`WHERE EXISTS (`；`WHERE b.订单编号 = main.订单编号`；`AND b.订单行号 = main.订单行号`。 关键写入/状态处理语句线索：`SET @whereStr = @whereStr + ' AND [指派对象] ''外协'' AND [指派对象] LIKE ''%装配%'''`；`SET @whereStr = @whereStr + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @whereStr = @whereStr + ' AND [计划号] = '''+@计划号+''''`；`SET @whereStr = @whereStr + ' AND [合同号] LIKE ''%' + @销售订单 + '%'''`；`SET @whereStr = @whereStr + ' AND [TaskAID] = ' + CONVERT(VARCHAR(10), @TaskAID)`；`SET @whereStr = @whereStr + ' AND [物料编号] LIKE ''%' + @零件编号 + '%'''`；`SET @whereStr = @whereStr + ' AND [计划开始时间] > = ''' + @计划开工_Start + ''''`；`SET @whereStr = @whereStr + ' AND [计划开始时间] < = ''' + @计划开工_End + ''''`；`SET @whereStr = @whereStr +`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) IN (0, 1, 2) '`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) = 0 '`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) = 1 '`。 排序/分组/分页线索：`ORDER BY next_task.[订单行号]) AS 下序名称, `；`SET @selStr = @selStr + @whereStr + ' ORDER BY [计划开始时间], [订单编号], [阶段标识]'`。
- `MES_ProductTask_WorkTimeSum` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`。 主要返回字段线索：`TaskAID, 工序名称, sum(工时) as 总工时`。 关键过滤/匹配条件：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。 排序/分组/分页线索：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。
- `生产管理_装配中心_缺料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty`。 入参/分页参数：`@ItemCode nvarchar(500),`、`@订单号 int`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from SAP.SBO_YL.dbo.UBT_OPKL_MissQty where DocEntry = @订单号`。 实现特征：读取 SAP 数据库对象。
- `MES_人员工时记录_开始` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`；视图：`View_生产订单_MES`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`。 入参/分页参数：`@TaskAID INT,`、`@用户ID NVARCHAR(50),`、`@用户名 NVARCHAR(50),`、`@操作人 NVARCHAR(50)`。 主要返回字段线索：`@订单编号 = ISNULL(订单编号, ''), `、`@物料编号 = ISNULL(物料编码, ''), `、`@物料描述 = ISNULL(物料名称, ''), `、`@工序名称 = ISNULL(工序名称, ''), `、`@工位名称 = ISNULL(指派对象, ''), `、`@阶段标识 = ISNULL(顺序编号, -1)`。 关键过滤/匹配条件：`WHERE AID = @TaskAID`；`WHERE TaskAID = @TaskAID`；`AND 操作人 = @用户名`；`AND 操作类别 = '开始加工'`；`AND 结束时间 IS NULL`；`select @任务状态 = isnull(任务状态, 0)from View_生产订单_MES where TaskAID = @TaskAID`。 关键写入/状态处理语句线索：`UPDATE MES_接口_生产计划_生产任务`；`SET`；`INSERT INTO YL_加工中心_操作记录表 (`。 实现特征：异常捕获。
- `MES_人员工时记录_结束` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录`。 写入或更新对象：`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`。 入参/分页参数：`@TaskAID INT,`、`@用户ID NVARCHAR(50),`、`@用户名 NVARCHAR(50),`、`@操作人 NVARCHAR(50),`、`@备注 NVARCHAR(200)`、`@工序说明 NVARCHAR(200)`、`@异常说明 NVARCHAR(200)`、`@本次检数 NVARCHAR(200)`、`@是否加班 INT`、`@加班人员 NVARCHAR(500)`、`@特殊加班人员 NVARCHAR(500)`、`@是否休息日 INT`、`@是否法定休息日 INT`、`@班次标准工时 NVARCHAR`。 主要返回字段线索：`@订单编号 = ISNULL(订单编号, ''), `、`@物料编号 = ISNULL(物料编码, ''), `、`@物料描述 = ISNULL(物料名称, ''), `、`@工序名称 = ISNULL(工序名称, ''), `、`@工位名称 = ISNULL(指派对象, ''), `、`@阶段标识 = ISNULL(顺序编号, -1), `、`@检验数 = ISNULL(本次检数, 0)`。 关键过滤/匹配条件：`WHERE AID = @TaskAID`；`WHERE TaskAID = @TaskAID`；`AND 操作人 = @用户名`；`AND 操作类别 = '开始加工'`；`AND 结束时间 IS NULL`；`WHERE 班次名称 = '白班'`；`IF @是否休息日 = 1 OR @是否法定休息日 = 1`；`WHERE AID = @开始记录ID`；`IF @是否法定休息日 = 1 AND @是否加班 = 0`；`ELSE IF @是否休息日 = 1 AND @是否加班 = 0`。 关键写入/状态处理语句线索：`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 本次检数 = ISNULL(@检验数, 0) + ISNULL(@本次检数, 0)`；`SET @白班结束时间 = '16:30:00'`；`SET @白班结束时间_完整 = CAST(CAST(@结束时间 AS DATE) AS DATETIME) + CAST(@白班结束时间 AS DATETIME)`；`SET @加班时长秒 = @总工时`；`SET @加班开始时间 = @开始时间`；`SET @工作时间 = 0`；`SET @工作时间 = @总工时`；`SET @报工开始时间 = @开始时间`；`SET @报工结束时间 = @结束时间`；`SET @加班时长秒 = 0`；`SET @加班开始时间 = NULL`。 排序/分组/分页线索：`ORDER BY 开始时间 DESC`。 实现特征：异常捕获、临时表 `#TempOvertimePersons`。
- `MES_ProductTask_SendInspection` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`。 入参/分页参数：`@TaskAID bigint,`、`@recievCount int,`、`@optor nvarchar(50)`。 主要返回字段线索：`@分配数量 = 指派数量, @完成数量 = 完成数量, @订单编号 = 订单编号, @工位名称 = 指派对象`。 关键过滤/匹配条件：`where AID = @TaskAID`；`select @分配数量 = 指派数量, @完成数量 = 完成数量, @订单编号 = 订单编号, @工位名称 = 指派对象 from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`select @dicItemID = 词条编号 from YL_基础表_数据字典 where 词条名称 = @词条名称 and 数据类别 = @数据类别`；`from View_生产订单_MES where TaskAID = @TaskAID`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务`；`set 完成数量 = isnull(完成数量, 0)+@recievCount, `；`set 任务状态 = 4, `；`INSERT INTO [dbo].[YL_加工中心_操作记录表]`；`INSERT INTO [dbo].[YL_加工中心_报工记录]`。
- `加工中心_收检_读取收检记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID int`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`select @已检验数量 = sum(检验数量) OVER() from YL_质量检验_质检记录 where TaskAID = @TaskAID and 质检类型 = '收检'`；`select @完成数量 = 完成数量 from [dbo].[MES_接口_生产计划_生产任务] where AID = @TaskAID`；`WHERE vt.[订单编号] = @订单编号`；`AND vt.[订单行号] = @订单行号-1`；`AND qc.检测类型编号 = '6'`。
- `MES_QulityInspection_ReceiveCheck` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 质量检验处理。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@检测类型编号 int,`、`@质检类型 NVARCHAR(50),`、`@零件名称 NVARCHAR(200),`、`@内部合同号 int,`、`@零件编码 NVARCHAR(200),`、`@计划号 int,`、`@工序名称 NVARCHAR(100),`、`@检测数量 INT,`、`@合格数 INT,`、`@不合格数 INT,`、`@检测人 NVARCHAR(50),`、`@检测时间 DATETIME,`、`@计划生产数 INT,`、`@检测说明 NVARCHAR(MAX)`。 主要返回字段线索：`@分配数量 = ISNULL(指派数量, 0)`。 关键过滤/匹配条件：`WHERE AID = @TaskAID`；`WHERE qc.TaskAID = @TaskAID`；`WHERE task.订单编号 = @计划号`；`AND task.订单行号 = @当前订单行号`；`AND qc.质检类型 = '收检'`；`WHERE 订单编号 = @计划号`；`AND 订单行号 = @当前订单行号 + 1`；`AND ISNULL(订单拆分内码, 1) = 1`；`IF @下一道工序AID IS NOT NULL and @合格数 > 0`；`WHERE AID = @下一道工序AID and isnull(任务状态, 0) < 1`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 任务状态 = 4`；`SET 任务状态 = 1`。 实现特征：事务控制、异常捕获。
- `加工中心_异常工时_获取操作记录列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 入参/分页参数：`@操作人 nvarchar(50)`。 主要返回字段线索：`o.AID, `、`o.操作类别编号, `、`o.操作类别, `、`o.阶段标识, `、`o.工序名称, `、`o.工位编号, `、`o.工位名称, `、`o.操作人 as 指派对象, `、`o.合同号, `、`o.订单编号 as 订单号, `。 关键过滤/匹配条件：`WHERE c.AID IS NULL and o.操作人 = @操作人 and o.操作类别编号 in ('8', '9')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `加工中心_修改工时_保存修改记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`。 写入或更新对象：`YL_加工中心_操作记录表`。 入参/分页参数：`@TaskAID bigint,`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@工时 int,`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 关键过滤/匹配条件：`where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[YL_加工中心_操作记录表]`；`set 最后编辑时间 = GETDATE(), 最后编辑人 = @最后编辑人, 实际工时 = @工时, 开始时间 = @开始时间, 结束时间 = @结束时间`。
- `生产管理_加工中心_生产发料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE`。 入参/分页参数：`@生产订单号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from SAP.SBO_YL.dbo.UBT_OWOR_OIGE where 生产订单号 = @生产订单号`。 关键写入/状态处理语句线索：`set nocount on;`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `生产管理_加工中心_退库` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、处理质检数据。 读取/关联对象：表：`质量检验_质检任务_SAP`。 写入或更新对象：`质量检验_质检任务_SAP`。 入参/分页参数：`@生产订单号 bigint,`、`@编码 nvarchar(500),`、`@名称 nvarchar(500),`、`@数量 float,`、`@单位 nvarchar(50),`、`@批次信息 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`@行号 = max(isnull(行号, 0))`。 关键过滤/匹配条件：`select @行号 = max(isnull(行号, 0)) from [dbo].[质量检验_质检任务_SAP] where [订单编号] = @生产订单号 and [订单类型] = '202-60'`。 关键写入/状态处理语句线索：`insert into [dbo].[质量检验_质检任务_SAP] ( [订单编号]`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `MES_QulityInspection_CheckItemData_Save` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 写入或更新对象：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 入参/分页参数：`@TaskAID bigint`、`@物料编号 nvarchar(100)`、`@阶段标识 int`、`@工序名称 nvarchar(100)`、`@计划号 int`、`@检测项目 nvarchar(500)`、`@理论值 nvarchar(50)`、`@上限值 nvarchar(50)`、`@下限值 nvarchar(50)`、`@实测值 nvarchar(50)`、`@测量单位 nvarchar(50)`、`@检验比例 nvarchar(50)`、`@检具 nvarchar(50)`、`@检测结果 int`、`@合格数 int`、`@不合格数 int`、`@备注 nvarchar(200)`、`@检测人 nvarchar(50)`、`@检测时间 datetime`、`@当前检测零件编号 int`、`@质检类型 nvarchar(100)`、`@检测类型编号 nvarchar(100)`、`@零件名称 nvarchar(100)`、`@内部合同号 nvarchar(100)`。 主要返回字段线索：`@ExistingQT_AID = QT_AID`。 关键过滤/匹配条件：`WHERE TaskAID = @TaskAID`；`AND 零件编码 = @零件编码`；`AND 工序名称 = @工序名称`；`AND 质检类型 = @质检类型`；`AND 检测人 = @检测人`；`AND CONVERT(DATE, 检测时间) = CONVERT(DATE, @检测时间);`；`WHERE QT_AID = @ExistingQT_AID;`；`WHERE QT_AID = @ExistingQT_AID`；`AND 零件编号 = @零件编码`；`AND 当前检测零件编号 = @当前检测零件编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`SET @QT_AID = SCOPE_IDENTITY();`；`SET @ExistingQT_AID = @QT_AID;`；`SET @CurrentQualifiedCount = @CurrentQualifiedCount + @合格数;`；`SET @CurrentUnqualifiedCount = @CurrentUnqualifiedCount + @不合格数;`；`SET @CurrentInspectionCount = @CurrentInspectionCount + @检验数量;`；`UPDATE [dbo].[YL_质量检验_质检记录]`；`SET`；`SET @QT_AID = @ExistingQT_AID;`；`SET @PartResult = 0;`；`INSERT INTO [dbo].[YL_质量检验_质检记录_检测零件](`。 实现特征：事务控制、异常捕获。
- `MES_QulityInspection_GetItemStandard` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`YL_质量检验_检测标准`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@工序名称编号 int`、`@检测类别编号 int`。 主要返回字段线索：`[物料编号]`、`[工序名称编号]`、`[检测项目]`、`[理论值]`、`[上限值]`、`[下限值]`、`[测量单位]`、`[检验比例]`、`[检具]`、`[备注]`。 关键过滤/匹配条件：`where [物料编号] = @物料编号 and [工序名称编号] = @工序名称编号 and [检测类别编号] = @检测类别编号`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `MES_QulityInspection_GetItemStandard` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`YL_质量检验_检测标准`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@工序名称编号 int`、`@检测类别编号 int`。 主要返回字段线索：`[物料编号]`、`[工序名称编号]`、`[检测项目]`、`[理论值]`、`[上限值]`、`[下限值]`、`[测量单位]`、`[检验比例]`、`[检具]`、`[备注]`。 关键过滤/匹配条件：`where [物料编号] = @物料编号 and [工序名称编号] = @工序名称编号 and [检测类别编号] = @检测类别编号`。
- `MES_QulityInspection_CheckItemData_Save` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 写入或更新对象：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 入参/分页参数：`@TaskAID bigint`、`@物料编号 nvarchar(100)`、`@阶段标识 int`、`@工序名称 nvarchar(100)`、`@计划号 int`、`@检测项目 nvarchar(500)`、`@理论值 nvarchar(50)`、`@上限值 nvarchar(50)`、`@下限值 nvarchar(50)`、`@实测值 nvarchar(50)`、`@测量单位 nvarchar(50)`、`@检验比例 nvarchar(50)`、`@检具 nvarchar(50)`、`@检测结果 int`、`@合格数 int`、`@不合格数 int`、`@备注 nvarchar(200)`、`@检测人 nvarchar(50)`、`@检测时间 datetime`、`@当前检测零件编号 int`、`@质检类型 nvarchar(100)`、`@检测类型编号 nvarchar(100)`、`@零件名称 nvarchar(100)`、`@内部合同号 nvarchar(100)`。 主要返回字段线索：`@ExistingQT_AID = QT_AID`。 关键过滤/匹配条件：`WHERE TaskAID = @TaskAID`；`AND 零件编码 = @零件编码`；`AND 工序名称 = @工序名称`；`AND 质检类型 = @质检类型`；`AND 检测人 = @检测人`；`AND CONVERT(DATE, 检测时间) = CONVERT(DATE, @检测时间);`；`WHERE QT_AID = @ExistingQT_AID;`；`WHERE QT_AID = @ExistingQT_AID`；`AND 零件编号 = @零件编码`；`AND 当前检测零件编号 = @当前检测零件编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`SET @QT_AID = SCOPE_IDENTITY();`；`SET @ExistingQT_AID = @QT_AID;`；`SET @CurrentQualifiedCount = @CurrentQualifiedCount + @合格数;`；`SET @CurrentUnqualifiedCount = @CurrentUnqualifiedCount + @不合格数;`；`SET @CurrentInspectionCount = @CurrentInspectionCount + @检验数量;`；`UPDATE [dbo].[YL_质量检验_质检记录]`；`SET`；`SET @QT_AID = @ExistingQT_AID;`；`SET @PartResult = 0;`；`INSERT INTO [dbo].[YL_质量检验_质检记录_检测零件](`。 实现特征：事务控制、异常捕获。

## 31. src/views/ProductionManagement/DeviceStatus/index.vue

**页面位置**：`src/views/ProductionManagement/DeviceStatus/index.vue`  
**所属模块**：ProductionManagement / DeviceStatus  
**源码行数**：352

### 页面功能

该页面查看设备/工位生产状态，通常用于判断设备是否在加工、待机、报警或空闲。

页面可见的操作/字段包括 “查询”、“item.name”、“序号”、“工位”、“生产订单”、“计划号”、“销售订单”、“物料名称”、“物料编码”、“顺序”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`设备管理_设备状态_查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `设备管理_设备状态_查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`item.name`、`序号`、`工位`、`生产订单`、`计划号`、`销售订单`、`物料名称`、`物料编码`、`顺序`、`工序名称`、`分配数`、`上序合格数`、`加工状态`、`收料状态`、`下序名称`、`优先`、`完成数`

主要方法线索：`getbasedata`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.equipmentType` | `@设备名称` | - |
| 参数 | `this.dataname` | `@参数名称` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工位` | - | `[VisCode] as 工位代码` |
| 显示列 | `生产订单` | - | `订单号` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `销售订单` | - | `合同号, ` |
| 显示列 | `物料名称` | - | `零件名称` |
| 显示列 | `物料编码` | - | `零件编码` |
| 显示列 | `顺序` | - | `顺序` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `分配数` | - | `分配数` |
| 显示列 | `上序合格数` | - | `上序合格数` |
| 显示列 | `加工状态` | - | `加工状态` |
| 显示列 | `收料状态` | - | `收料状态` |
| 显示列 | `下序名称` | - | `下序名称` |
| 显示列 | `优先` | - | `优先` |
| 显示列 | `完成数` | - | `完成数量` |
| 显示列 | `收检合格数` | - | `收检合格数` |
| 显示列 | `收检不合格数` | - | `收检不合格数` |
| 显示列 | `人员名称` | - | `人员名称` |
| 显示列 | `加急数量` | - | `加急总数, ` |
| 显示列 | `任务状态` | - | `任务状态` |
| 显示列 | `开工时间` | - | `[开工时间], ` |
| 显示列 | `计划开始` | - | `计划开始` |
| 显示列 | `计划完成` | - | `计划完成` |
| 显示列 | `备注` | - | `派工特殊说明, ` |
| 显示列 | `收料数` | - | `收料` |
| 输入字段 | `equipmentType` | `@设备名称` | - |
| 输入字段 | `dataname` | `@参数名称` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 276 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 293 | 11（当前通用存储过程查询/执行） | `设备管理_设备状态_查询` | 查询/读取数据 | 查询、分页、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`MES_资源主数据`、`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`、`View_设备工位人员` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `设备管理_设备状态_查询`：`CREATE PROCEDURE [dbo].[设备管理_设备状态_查询]`；`DECLARE @where NVARCHAR(4000) = N' WHERE 1 = 1 and isnull(加工状态, 0) in (2, 4) ';`；`派工特殊说明, `；`[加急状态], `；`[二次派工], `；`[计划完成时间], `；`[完成数量], `；`发料状态, `

### 数据库调用链

- `src/views/ProductionManagement/DeviceStatus/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/DeviceStatus/index.vue` -> `设备管理_设备状态_查询` -> 表：`MES_资源主数据`、`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`、`View_设备工位人员` -> 查询/读取数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `设备管理_设备状态_查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、分页、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_资源主数据`、`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`、`View_设备工位人员`。 入参/分页参数：`@设备名称 nvarchar(50)`。 主要返回字段线索：`main.TaskAID, `、`[订单编号], `、`合同号, `、`加急总数, `、`派工特殊说明, `、`[订单拆分内码], `、`[订单行号], `、`[开工时间], `、`[物料编号], `、`[物料描述], `。 关键过滤/匹配条件：`DECLARE @where NVARCHAR(4000) = N' WHERE 1 = 1 and isnull(加工状态, 0) in (2, 4) ';`；`IF @时间值 > = @夜班开始阈值 OR @时间值 < @白班开始阈值`；`SET @班次条件 = N' AND d2.班次名称 = N''夜班''';`；`SET @班次条件 = N' AND d2.班次名称 = N''白班''';`；`WHERE b.订单编号 = main.[订单编号]`；`AND b.订单行号 = main.[订单行号] - 1`；`AND a.检测类型编号 = 6`；`WHERE d2.工位名称 = main.指派对象 ' + @班次条件 + N'`；`WHERE 质检类型 = ''收检''`；`' + @where + N'`。 关键写入/状态处理语句线索：`SET @班次条件 = N' AND d2.班次名称 = N''夜班''';`；`SET @班次条件 = N' AND d2.班次名称 = N''白班''';`；`SET @selectStr = N'`。 排序/分组/分页线索：`ROW_NUMBER() OVER (PARTITION BY [指派对象] ORDER BY ISNULL([开工时间], ''1900-01-01'') DESC) AS rn, `；`ROW_NUMBER() OVER (PARTITION BY`；`ORDER BY ISNULL([开工时间], ''1900-01-01'') DESC) AS duplicate_rn`；`GROUP BY TaskAID`；`ORDER BY [指派对象];'`。 实现特征：分页。

## 32. src/views/ProductionManagement/MachiningCenter/index.vue

**页面位置**：`src/views/ProductionManagement/MachiningCenter/index.vue`  
**所属模块**：ProductionManagement / MachiningCenter  
**源码行数**：6909

### 页面功能

该页面是机加生产执行主界面。操作员按工位查看可执行任务和进行中任务，完成收料、开始加工、暂停/恢复、报工、辅助工序、首检/巡检/序检、生产发料查询、退库、图纸查看等动作，并写入加工中心操作记录和报工记录。

页面可见的操作/字段包括 “取 消”、“确 定”、“上一个 下一个”、“删除当前记录 关闭”、“上一个 下一个 保存当前记录 删除当前记录 关闭”、“确定 关闭”、“关闭”、“新增异常工时”、“编辑”、“取消”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_加工中心_获取设备人员`、`生产管理_加工中心_获取班次信息`、`加急订单_加急明细查询`、`生产管理_获取人员绑定`、`工时校验_获取订单工序`、`工时校验_获取订单列表` 等过程 取数或提交业务动作。

### 页面流程图

机加中心执行流程：

```mermaid
flowchart LR
  A[选择工位/人员/任务条件] --> B[MES_ProductCenter_GetTask 查询可执行任务]
  B --> C[选择任务]
  C --> D[收料 MES_ProductTask_MaterialRecieved]
  D --> E[开始加工 MES_ProductTask_WorkingStart]
  E --> F{生产过程}
  F --> G[暂停/恢复 MES_ProductTask_Rest]
  F --> H[首检/巡检/序检]
  F --> I[报工 MES_ProductTask_ProdReport]
  I --> J[写入操作记录/报工记录]
  J --> K[必要时读取 SAP ProductionOrders]
  K --> L[刷新任务和进行中状态]
```


### 用户操作与页面线索

可见按钮/字段线索：`取 消`、`确 定`、`上一个 下一个`、`删除当前记录 关闭`、`上一个 下一个 保存当前记录 删除当前记录 关闭`、`确定 关闭`、`关闭`、`新增异常工时`、`编辑`、`取消`、`处理`、`转办`、`发起新流程`、`查看进度`、`完结`、`查看详情`、`点击上传`、`添加审批人`

主要方法线索：`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.selectedRow.指派对象` | `@指派对象` | - |
| 参数 | `shiftName` | `@班次` | - |
| 参数 | `row.零件编码` | `@物料编号` | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 参数 | `orderId` | `@订单编号` | - |
| 参数 | `this.$store.state.user.name` | `@操作人` | - |
| 参数 | `taskAID` | `@TaskAID` | - |
| 参数 | `row.TaskAID` | `@TaskAID` | - |
| 参数 | `this.$store.state.user.name` | `@optor` | - |
| 参数 | `this.TaskAID ` | `@TaskAID` | - |
| 参数 | `this.orderNo2 ` | `@订单号` | `[订单编号] as 订单号, ` |
| 参数 | `this.productCode2` | `@零件编号` | - |
| 参数 | `this.productionStatus2` | `@生产状态` | - |
| 参数 | `this.Doing` | `@工位名称` | - |
| 参数 | `this.$store.state.user.id` | `@用户ID` | - |
| 参数 | `this.plannum` | `@计划号` | - |
| 参数 | `this.salenum` | `@销售订单` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@计划开工_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@计划开工_End` | - |
| 参数 | `this.assistNumber` | `@partCount` | - |
| 参数 | `row.分配数` | `@指派数量` | - |
| 参数 | `this.selectedOperators` | `@selectedOperators` | - |
| 参数 | `ordinaryPersons` | `@加班人员` | - |
| 参数 | `specialPersons` | `@特殊加班人员` | - |
| 参数 | `isOvertime` | `@是否加班` | - |
| 参数 | `isRestDay` | `@是否休息日` | - |
| 参数 | `isLegalRestDay` | `@是否法定休息日` | - |
| 参数 | `selectedShiftName` | `@用户选择班次` | - |
| 参数 | `shiftStandardHours` | `@班次标准工时` | - |
| 参数 | `this.receiveNum` | `@recievCount` | - |
| 参数 | `row.指派对象` | `@指派对象` | - |
| 参数 | `row.收料` | `@收料` | - |
| 参数 | `row.分配数` | `@分配数` | - |
| 参数 | `this.workStartNum` | `@辅助数` | - |
| 参数 | `前序不合格总数` | `@前序不合格总数` | - |
| 参数 | `BindRpt_ALLtaskids` | `@BindRpt_ALLtaskids` | - |
| 参数 | `this.currentTime` | `@rptDate` | - |
| 参数 | `this.shift` | `@rptShift` | - |
| 参数 | `this.proReportNum` | `@partCount` | - |
| 参数 | `this.rptDesc` | `@rptDesc` | - |
| 参数 | `this.currentShift.班次名称` | `@班次` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- TM/OpenAPI 接口（`src/api/tm.js`）
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 3212 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_获取设备人员` | 基础权限/人员数据处理 | 查询 | 视图：`View_设备工位人员` |
| 3348 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_获取班次信息` | 业务存储过程调用 | 查询 | 表：`班次表` |
| 3366 | 11（当前通用存储过程查询/执行） | `加急订单_加急明细查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` |
| 3373 | 11（当前通用存储过程查询/执行） | `生产管理_获取人员绑定` | 基础权限/人员数据处理 | 查询 | 表：`MES_资源主数据`、`工位人员绑定表` |
| 3384 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 3400 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单列表` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 3445 | 11（当前通用存储过程查询/执行） | `异常工时_新增操作记录` | 新增业务数据 | 查询、新增、处理报工/工时 | 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` |
| 3501 | 11（当前通用存储过程查询/执行） | `MES_操作记录_获取暂停状态` | 业务存储过程调用 | 查询 | 表：`YL_加工中心_操作记录表` |
| 3571 | 11（当前通用存储过程查询/执行） | `MES_操作记录_获取任务暂停状态` | 业务存储过程调用 | 查询 | 表：`YL_加工中心_操作记录表` |
| 3626 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 3679 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadProcess` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 3691 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 3706 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 3744 | 12（当前通用存储过程写入/业务动作） | `MES_ProductTask_HelpStart` | 业务存储过程调用 | 查询、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`；视图：`View_生产订单_MES` |
| 3773 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 3794 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 3857 | 11（当前通用存储过程查询/执行） | `MES_ProductCenter_GetTask` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 3959 | 11（当前通用存储过程查询/执行） | `MES_ProductTask_WorkTimeSum` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 4054 | 11（当前通用存储过程查询/执行） | `MES_ProductTask_HelpEnd` | 业务存储过程调用 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`班次表`；视图：`View_生产订单_MES` |
| 4088 | 12（当前通用存储过程写入/业务动作） | `MES_ProductTask_MaterialRecieved` | 业务存储过程调用 | 查询、更新、处理计划/派工 | 表：`MES_接口_生产计划` |
| 4148 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_设备是否正在加工` | 设备/工位/资源数据处理 | 查询、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 4180 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 4205 | 12（当前通用存储过程写入/业务动作） | `MES_ProductTask_WorkingStart` | 业务存储过程调用 | 查询、更新、处理报工/工时、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 4239 | 11（当前通用存储过程查询/执行） | `MES_ProductCenter_GetOrderTasks` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 4258 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_班次信息` | 业务存储过程调用 | 查询 | 视图：`View_设备工位人员` |
| 4269 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_开始时间` | 业务存储过程调用 | 查询 | 表：`YL_加工中心_操作记录表` |
| 4460 | 11（当前通用存储过程查询/执行） | `MES_ProductTask_ProdReport` | 报工或工时处理 | 查询、新增、更新、处理报工/工时、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES` |
| 4828 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 5058 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_CheckItemData_Save` | 更新/保存业务数据 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` |
| 5146 | 11（当前通用存储过程查询/执行） | `MES_QulityInspection_GetItemStandard` | 查询/读取数据 | 查询、处理质检数据 | 表：`YL_质量检验_检测标准` |
| 5198 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 5241 | 11（当前通用存储过程查询/执行） | `MES_QulityInspection_GetItemStandard` | 查询/读取数据 | 查询、处理质检数据 | 表：`YL_质量检验_检测标准` |
| 5443 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_CheckItemData_Save` | 更新/保存业务数据 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` |
| 5566 | 11（当前通用存储过程查询/执行） | `加工中心_收检_读取收检记录` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 5658 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_ReceiveCheck` | 质量检验处理 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录` |
| 5800 | 11（当前通用存储过程查询/执行） | `MES_QualityInspection_CheckRecord_Query` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`基础表_工序` |
| 5835 | 11（当前通用存储过程查询/执行） | `MES_QualityInspection_GetInspectionParts` | 查询/读取数据 | 查询、处理质检数据 | 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件` |
| 5870 | 11（当前通用存储过程查询/执行） | `MES_QualityInspection_GetInspectionDetails` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测数据` |
| 5906 | 11（当前通用存储过程查询/执行） | `加工中心_异常工时_获取操作记录列表` | 报工或工时处理 | 查询、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 5957 | 11（当前通用存储过程查询/执行） | `加工中心_修改工时_保存修改记录` | 更新/保存业务数据 | 更新、处理报工/工时 | 表：`YL_加工中心_操作记录表` |
| 6026 | 11（当前通用存储过程查询/执行） | `sp_获取最近处理任务` | 业务存储过程调用 | 查询 | 未在 SQL 中解析到明确依赖 |
| 6034 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 6050 | 11（当前通用存储过程查询/执行） | `sp_获取我的流程` | 业务存储过程调用 | 查询 | 未在 SQL 中解析到明确依赖 |
| 6065 | 11（当前通用存储过程查询/执行） | `sp_获取待处理任务` | 业务存储过程调用 | 查询、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 6091 | 11（当前通用存储过程查询/执行） | `MES_ProductAdmin_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 视图：`View_生产订单_MES` |
| 6216 | 11（当前通用存储过程查询/执行） | `sp_创建流程_简化版` | 业务存储过程调用 | 查询、新增、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 6250 | 12（当前通用存储过程写入/业务动作） | `sp_处理审批` | 业务存储过程调用 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |
| 6291 | 12（当前通用存储过程写入/业务动作） | `sp_转办流程` | 业务存储过程调用 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |
| 6319 | 11（当前通用存储过程查询/执行） | `sp_完成流程` | 业务存储过程调用 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |
| 6336 | 11（当前通用存储过程查询/执行） | `sp_获取流程详情` | 业务存储过程调用 | 查询、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 6394 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_生产发料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE` |
| 6443 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 6478 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 6503 | 12（当前通用存储过程写入/业务动作） | `生产管理_加工中心_退库` | 业务存储过程调用 | 查询、新增、处理质检数据 | 表：`质量检验_质检任务_SAP` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 5751 行：`posttm("/stocktask/task/receiptordertask")`
- 第 6409 行：`getB1("/ProductionOrders")`
- 第 6560 行：`posttm("/stocktask/task/issueordertask")`
存储过程内读取 SAP B1 数据库对象：
- 加急订单_加急明细查询: SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL
- 生产管理_加工中心_生产发料查询: SAP.SBO_YL.dbo.UBT_OWOR_OIGE

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 5751 | `posttm` | `/stocktask/task/receiptordertask` | 调用外部接口，失败会影响对应外部系统同步。 | `label` |
| 6409 | `getB1` | `/ProductionOrders` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `filter`、`数据`、`lines`、`请求失败` |
| 6560 | `posttm` | `/stocktask/task/issueordertask` | 调用外部接口，失败会影响对应外部系统同步。 | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |

### 状态流转说明

- `生产管理_加工中心_获取设备人员`：`create PROCEDURE [dbo].[生产管理_加工中心_获取设备人员]`
- `生产管理_加工中心_获取班次信息`：`create PROCEDURE [dbo].[生产管理_加工中心_获取班次信息]`
- `加急订单_加急明细查询`：`SELECT docentry as 订单编号, itemcode as 物料编号, 加急数量 from SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`
- `生产管理_获取人员绑定`：`AND b.绑定状态 = 1;`
- `异常工时_新增操作记录`：`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`；`操作描述, 开始时间, 结束时间, 总时长, 报工日期, 已报工, 不装配, `
- `MES_操作记录_获取暂停状态`：`CREATE PROCEDURE [dbo].[MES_操作记录_获取暂停状态]`；`FROM [YL_加工中心_操作记录表] p`
- `MES_操作记录_获取任务暂停状态`：`CREATE PROCEDURE [dbo].[MES_操作记录_获取任务暂停状态]`；`FROM [YL_加工中心_操作记录表] p`
- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `MES_ProductTask_HelpStart`：`declare @任务状态 int = -1`；`select @任务状态 = isnull(任务状态, 0)from View_生产订单_MES where TaskAID = @TaskAID`；`if(@任务状态 = 1)`；`Update MES_接口_生产计划_生产任务 set 可执行 = 1, 加工状态 = @词条ID, 开工时间 = @操作时间, 操作时间 = @操作时间 where AID = @TaskAID`；`if(@任务状态 = 2)`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `MES_ProductCenter_GetTask`：`@生产状态 int = -1, `；`DECLARE @whereStr nvarchar(max) = ' WHERE 排产状态 = 1 '`；`派工特殊说明, `；`case when isnull([加急状态], 0) = 1 then ''加急'' else ''否'' end as [加急], `；`[二次派工], `；`[计划完成时间] as 计划完成, `；`isnull([完成数量], 0) as 完成数量, `；`when isnull(发料状态, 0) = 1 then ''发料齐套''`
- `MES_ProductTask_WorkTimeSum`：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`
- `MES_ProductTask_HelpEnd`：`declare @完成数量_New int = -1`；`declare @任务状态 int = -1`；`Select @完成数量_New = isnull(完成数量, 0) + @partCount, `；`select @任务状态 = isnull(任务状态, 0) from View_生产订单_MES where TaskAID = @TaskAID`；`FROM [YL_加工中心_操作记录表]`；`AND ISNULL([已报工], 0) = 0`；`if(@指派数量 > = @完成数量_New)`；`Update MES_接口_生产计划_生产任务`
- `MES_ProductTask_MaterialRecieved`：`declare @任务状态 int`；`select @任务状态 = 任务状态 from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`if(@任务状态 < = 1 )`；`Update MES_接口_生产计划_生产任务`；`set 任务状态 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `；`if(@任务状态 > 1 )`
- `生产管理_加工中心_设备是否正在加工`：`CREATE PROCEDURE [dbo].[生产管理_加工中心_设备是否正在加工]`；`select * from [dbo].[MES_接口_生产计划_生产任务] where 指派对象 = @指派对象 AND 加工状态 in ( 2, 4 )`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `MES_ProductTask_WorkingStart`：`declare @任务状态 int = -1`；`declare @词条名称 nvarchar(50) = '开始加工'`；`select @任务状态 = isnull(任务状态, 0), @开工 = isnull(开工, 0) from View_生产订单_MES where TaskAID = @TaskAID`；`if(@任务状态 = 1)`；`Update MES_接口_生产计划_生产任务 set 任务状态 = 2, 可执行 = 1, 开工 = 1, 加工状态 = @词条ID, 开工时间 = @操作时间, 操作时间 = @操作时间 where AID = @TaskAID`；`if(@任务状态 = 2)`；`FROM [dbo].[YL_质量检验_质检记录] qc`；`Update MES_接口_生产计划_生产任务 set 收料 = 1, 收料数量 = @合格数, 操作时间 = @操作时间 where AID = @TaskAID`
- `MES_ProductCenter_GetOrderTasks`：`, [计划完成时间]`；`, isnull([完成数量], 0) as [完成数量]`；`when isnull(任务状态, 0) = 2 then '已开工'`；`else '''' end as [任务状态]`；`FROM [dbo].[YL_质量检验_质检记录] qc`
- `生产管理_加工中心_班次信息`：`create PROCEDURE [dbo].[生产管理_加工中心_班次信息]`
- `生产管理_加工中心_开始时间`：`create PROCEDURE [dbo].[生产管理_加工中心_开始时间]`；`from [YL_加工中心_操作记录表]`
- `MES_ProductTask_ProdReport`：`declare @完成数量_New int = -1`；`@完成数量_New = isnull(完成数量, 0) + @partCount, `；`FROM [YL_加工中心_操作记录表]`；`AND 操作类别 = '开始加工'`；`AND ISNULL([已报工], 0) = 0`；`IF (@完成数量_New + @最新不合格数 < = @指派数量)`；`IF (@完成数量_New + @最新不合格数 < @指派数量)`；`UPDATE MES_接口_生产计划_生产任务`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `MES_QulityInspection_CheckItemData_Save`：`@质检类型 nvarchar(100) = '', `；`FROM [dbo].[YL_质量检验_质检记录]`；`AND 质检类型 = @质检类型`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`TaskAID, 质检类型, 检测类型编号, 零件名称, 内部合同号, `；`@TaskAID, @质检类型, @检测类型编号, @零件名称, @内部合同号, `；`UPDATE [dbo].[YL_质量检验_质检记录]`；`FROM [dbo].[YL_质量检验_质检记录_检测零件]`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `MES_QulityInspection_CheckItemData_Save`：`@质检类型 nvarchar(100) = '', `；`FROM [dbo].[YL_质量检验_质检记录]`；`AND 质检类型 = @质检类型`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`TaskAID, 质检类型, 检测类型编号, 零件名称, 内部合同号, `；`@TaskAID, @质检类型, @检测类型编号, @零件名称, @内部合同号, `；`UPDATE [dbo].[YL_质量检验_质检记录]`；`FROM [dbo].[YL_质量检验_质检记录_检测零件]`
- `加工中心_收检_读取收检记录`：`CREATE PROCEDURE [dbo].[加工中心_收检_读取收检记录]`；`declare @完成数量 int`；`select @已检验数量 = sum(检验数量) OVER() from YL_质量检验_质检记录 where TaskAID = @TaskAID and 质检类型 = '收检'`；`select @完成数量 = 完成数量 from [dbo].[MES_接口_生产计划_生产任务] where AID = @TaskAID`；`FROM [dbo].[YL_质量检验_质检记录] qc`；`select isnull(@已检验数量, 0), isnull(@完成数量, 0), isnull(@上序合格数, 0), @订单行号`
- `MES_QulityInspection_ReceiveCheck`：`@质检类型 NVARCHAR(50), `；`FROM [dbo].[MES_接口_生产计划_生产任务]`；`FROM [YL_MESDB].[dbo].[YL_质量检验_质检记录] qc`；`0 AS 清零任务数`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`[质检类型], `；`@质检类型, `；`INNER JOIN [dbo].[MES_接口_生产计划_生产任务] task ON qc.TaskAID = task.AID`
- `MES_QualityInspection_CheckRecord_Query`：`a.[质检类型], `；`FROM [dbo].[YL_质量检验_质检记录] a`；`WHERE 质检类型 ''来料检验''`
- `MES_QualityInspection_GetInspectionParts`：`FROM [dbo].[YL_质量检验_质检记录_检测零件]`
- `MES_QualityInspection_GetInspectionDetails`：`FROM [dbo].[YL_质量检验_质检记录_检测数据]`
- `加工中心_异常工时_获取操作记录列表`：`CREATE PROCEDURE [dbo].[加工中心_异常工时_获取操作记录列表]`；`o.实际工时 as 加工工时, `；`o.已报工, `；`FROM [dbo].[YL_加工中心_操作记录表] o`
- `加工中心_修改工时_保存修改记录`：`CREATE PROCEDURE [dbo].[加工中心_修改工时_保存修改记录]`；`update [dbo].[YL_加工中心_操作记录表]`
- `sp_获取最近处理任务`：`create PROCEDURE [dbo].[sp_获取最近处理任务]`
- `sp_获取我的流程`：`@状态 NVARCHAR(20) = NULL`；`p.状态, `；`AND (@状态 IS NULL OR p.状态 = @状态)`
- `sp_获取待处理任务`：`create PROCEDURE [dbo].[sp_获取待处理任务]`；`AND pn.状态 = 'processing'`；`AND p.状态 = 'processing'`
- `MES_ProductAdmin_Query`：`@排产状态 nvarchar(50) = '全部', `；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`；`, [优先级], [未完成说明], [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], '''' as 合同交货期, [计划完成] as 预计齐套时间, ''齐'' as 是否齐套, '''' as 齐套检测, ''是'' as 齐套锁料, [计划开始] as 备料日期, 0 as 加急`；`, [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], TaskAID`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`
- `sp_创建流程_简化版`：`状态, `
- `sp_处理审批`：`SET 状态 = @处理结果, `；`SET 状态 = 'rejected', `；`SET 状态 = 'processing', `；`SET 状态 = 'completed', `；`当前节点 = '已完成', `
- `sp_转办流程`：`AND pn.状态 = 'processing'`；`AND p.状态 = 'processing'`
- `sp_完成流程`：`create PROCEDURE [dbo].[sp_完成流程]`；`@完成类型 NVARCHAR(20), `；`@完成原因 NVARCHAR(500), `；`AND 状态 IN ('draft', 'processing')`；`INSERT INTO 流程完成记录表 (`；`流程ID, 发起人ID, 发起人姓名, 完成类型, 完成原因`；`VALUES (@流程ID, @发起人ID, @发起人姓名, @完成类型, @完成原因);`；`SET 状态 = @完成类型, `
- `sp_获取流程详情`：`p.状态, `；`状态, `；`WHEN 步骤序号 < (SELECT 当前步骤 FROM 流程表 WHERE 流程ID = @流程ID) THEN '已完成'`；`END as 状态描述, `
- `生产管理_加工中心_生产发料查询`：`CREATE PROCEDURE [dbo].[生产管理_加工中心_生产发料查询]`；`select * from SAP.SBO_YL.dbo.UBT_OWOR_OIGE where 生产订单号 = @生产订单号`
- `生产管理_加工中心_退库`：`CREATE PROCEDURE [dbo].[生产管理_加工中心_退库]`；`select @行号 = max(isnull(行号, 0)) from [dbo].[质量检验_质检任务_SAP] where [订单编号] = @生产订单号 and [订单类型] = '202-60'`；`insert into [dbo].[质量检验_质检任务_SAP] ( [订单编号]`

### 数据库调用链

- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `生产管理_加工中心_获取设备人员` -> 视图：`View_设备工位人员` -> 基础权限/人员数据处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `生产管理_加工中心_获取班次信息` -> 表：`班次表` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `加急订单_加急明细查询` -> 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `生产管理_获取人员绑定` -> 表：`MES_资源主数据`、`工位人员绑定表` -> 基础权限/人员数据处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `工时校验_获取订单列表` -> 表：`MES_接口_生产计划` -> 报工或工时处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `异常工时_新增操作记录` -> 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` -> 新增业务数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_操作记录_获取暂停状态` -> 表：`YL_加工中心_操作记录表` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_操作记录_获取任务暂停状态` -> 表：`YL_加工中心_操作记录表` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `Prog_MES_LoadProcess` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductTask_HelpStart` -> 表：`MES_接口_生产计划`；视图：`View_生产订单_MES` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductCenter_GetTask` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductTask_WorkTimeSum` -> 未在 SQL 中解析到明确依赖 -> 报工或工时处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductTask_HelpEnd` -> 表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`班次表`；视图：`View_生产订单_MES` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductTask_MaterialRecieved` -> 表：`MES_接口_生产计划` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `生产管理_加工中心_设备是否正在加工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 设备/工位/资源数据处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductTask_WorkingStart` -> 表：`MES_接口_生产计划`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductCenter_GetOrderTasks` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `生产管理_加工中心_班次信息` -> 视图：`View_设备工位人员` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `生产管理_加工中心_开始时间` -> 表：`YL_加工中心_操作记录表` -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductTask_ProdReport` -> 表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_QulityInspection_CheckItemData_Save` -> 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` -> 更新/保存业务数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_QulityInspection_GetItemStandard` -> 表：`YL_质量检验_检测标准` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_QulityInspection_GetItemStandard` -> 表：`YL_质量检验_检测标准` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_QulityInspection_CheckItemData_Save` -> 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` -> 更新/保存业务数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `加工中心_收检_读取收检记录` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_QulityInspection_ReceiveCheck` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录` -> 质量检验处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_QualityInspection_CheckRecord_Query` -> 表：`YL_质量检验_质检记录`、`基础表_工序` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_QualityInspection_GetInspectionParts` -> 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_QualityInspection_GetInspectionDetails` -> 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测数据` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `加工中心_异常工时_获取操作记录列表` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 报工或工时处理
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `加工中心_修改工时_保存修改记录` -> 表：`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `sp_获取最近处理任务` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `人员管理_人员信息查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `sp_获取我的流程` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `sp_获取待处理任务` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `MES_ProductAdmin_Query` -> 视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `sp_创建流程_简化版` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `sp_处理审批` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `sp_转办流程` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `sp_完成流程` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `sp_获取流程详情` -> 未在 SQL 中解析到明确依赖 -> 业务存储过程调用
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `生产管理_加工中心_生产发料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/ProductionManagement/MachiningCenter/index.vue` -> `生产管理_加工中心_退库` -> 表：`质量检验_质检任务_SAP` -> 业务存储过程调用

### 存储过程处理逻辑明细

- `生产管理_加工中心_获取设备人员` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 基础权限/人员数据处理。 数据库处理摘要：查询。 读取/关联对象：视图：`View_设备工位人员`。 入参/分页参数：`@指派对象 nvarchar(50),`、`@班次 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SELECT * FROM [YL_MESDB].[dbo].[View_设备工位人员] where 工位名称 = @指派对象 and 班次名称 = @班次`。
- `生产管理_加工中心_获取班次信息` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`班次表`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `加急订单_加急明细查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`docentry as 订单编号, itemcode as 物料编号, 加急数量`。 关键过滤/匹配条件：`where itemcode = @物料编号`。 实现特征：读取 SAP 数据库对象。
- `生产管理_获取人员绑定` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 基础权限/人员数据处理。 数据库处理摘要：查询。 读取/关联对象：表：`MES_资源主数据`、`工位人员绑定表`。 入参/分页参数：`@操作人ID NVARCHAR(50)`。 主要返回字段线索：`m.[name] AS 工位名称`。 关键过滤/匹配条件：`WHERE`；`AND b.绑定状态 = 1;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `工时校验_获取订单列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`DISTINCT top 20`、`订单编号, `、`物料编号 as 零件编码, `、`物料描述 as 零件名称`。 关键过滤/匹配条件：`FROM [dbo].[MES_接口_生产计划] WHERE 订单编号 LIKE '%' + @订单编号 + '%' OR @订单编号 = ''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单编号 ;`。
- `异常工时_新增操作记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`。 写入或更新对象：`YL_加工中心_操作记录表`。 入参/分页参数：`@操作类别 nvarchar(50),`、`@订单编号 nvarchar(50),`、`@物料编号 nvarchar(50),`、`@物料描述 nvarchar(50),`、`@工序名称 nvarchar(50),`、`@操作人 nvarchar(50),`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@操作内容 nvarchar(500)`、`@操作描述 nvarchar(2000)`、`@TaskAID nvarchar(2000)`。 主要返回字段线索：`@工位名称 = 指派对象`。 关键过滤/匹配条件：`select @工位名称 = 指派对象 from [dbo].[View_生产订单_MES] where TaskAID = @TaskAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @工时 = DATEDIFF(SECOND, @开始时间, @结束时间);`；`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`。 实现特征：异常捕获。
- `MES_操作记录_获取暂停状态` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`YL_加工中心_操作记录表`。 入参/分页参数：`@操作人 NVARCHAR(50)`。 主要返回字段线索：`p.TaskAID, `、`p.关联操作类型 AS PreviousState, `、`p.操作人 AS Operator, `、`p.开始时间 AS PauseTime`。 关键过滤/匹配条件：`WHERE p.操作类别 = '暂停'`；`AND (p.结束时间 IS NULL OR p.结束时间 = '')`；`AND p.关联操作类型 IS NOT NULL`；`WHERE 1 = 0;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY p.开始时间 DESC`。 实现特征：异常捕获。
- `MES_操作记录_获取任务暂停状态` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`YL_加工中心_操作记录表`。 入参/分页参数：`@TaskAID INT`。 主要返回字段线索：`TOP 1`、`p.TaskAID, `、`p.关联操作类型 AS PreviousState, `、`p.操作人 AS Operator, `、`p.开始时间 AS PauseTime`。 关键过滤/匹配条件：`WHERE p.操作类别 = '暂停'`；`AND p.TaskAID = @TaskAID`；`AND (p.结束时间 IS NULL OR p.结束时间 = '')`；`AND p.关联操作类型 IS NOT NULL`；`WHERE 1 = 0;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY p.开始时间 DESC`。 实现特征：异常捕获。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `Prog_MES_LoadProcess` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 主要返回字段线索：`[工艺编号], [工序名称]`。 排序/分组/分页线索：`SELECT [工艺编号], [工序名称] FROM [基础表_工序] ORDER BY [工艺编号]`。
- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `MES_ProductTask_HelpStart` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；视图：`View_生产订单_MES`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@optor nvarchar(50)`。 主要返回字段线索：`@词条ID = 词条编号`。 关键过滤/匹配条件：`select @词条ID = 词条编号 from YL_基础表_数据字典 where 词条名称 = @词条名称 and 数据类别 = @数据类别`；`select @任务状态 = isnull(任务状态, 0)from View_生产订单_MES where TaskAID = @TaskAID`；`Update MES_接口_生产计划_生产任务 set 可执行 = 1, 加工状态 = @词条ID, 开工时间 = @操作时间, 操作时间 = @操作时间 where AID = @TaskAID`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务 set 可执行 = 1, 加工状态 = @词条ID, 开工时间 = @操作时间, 操作时间 = @操作时间 where AID = @TaskAID`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `MES_ProductCenter_GetTask` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID int`、`@订单号 int`、`@零件编号 nvarchar(50)`、`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`、`@生产状态 int`、`@工位名称 nvarchar(50)`、`@用户ID nvarchar(50)`、`@计划号 nvarchar(50)`、`@销售订单 nvarchar(50)`。 主要返回字段线索：`TaskAID, `、`[订单编号] as 订单号, `、`合同号, `、`加急总数, `、`派工特殊说明, `、`[订单拆分内码], `、`[订单行号], `、`[开工时间], `、`[物料编号] as 零件编码, `、`[物料描述] as 零件名称, `。 关键过滤/匹配条件：`DECLARE @whereStr nvarchar(max) = ' WHERE 排产状态 = 1 '`；`WHERE next_task.[订单编号] = main.[订单编号]`；`AND next_task.[订单行号] = main.[订单行号] + 1`；`AND next_task.[排产状态] = 1`；`WHERE b.订单编号 = main.[订单编号]`；`AND b.订单行号 = main.[订单行号] - 1`；`AND a.检测类型编号 = 6`；`WHERE EXISTS (`；`WHERE b.订单编号 = main.订单编号`；`AND b.订单行号 = main.订单行号`。 关键写入/状态处理语句线索：`SET @whereStr = @whereStr + ' AND [指派对象] ''外协'' AND [指派对象] NOT LIKE ''%装配%'''`；`SET @whereStr = @whereStr + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @whereStr = @whereStr + ' AND [计划号] = '''+@计划号+''''`；`SET @whereStr = @whereStr + ' AND [合同号] LIKE ''%' + @销售订单 + '%'''`；`SET @whereStr = @whereStr + ' AND [TaskAID] = ' + CONVERT(VARCHAR(10), @TaskAID)`；`SET @whereStr = @whereStr + ' AND [物料编号] LIKE ''%' + @零件编号 + '%'''`；`SET @whereStr = @whereStr + ' AND [计划开始时间] > = ''' + @计划开工_Start + ''''`；`SET @whereStr = @whereStr + ' AND [计划开始时间] < = ''' + @计划开工_End + ''''`；`SET @whereStr = @whereStr +`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) IN (0, 1, 2) '`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) = 0 '`；`SET @whereStr = @whereStr + ' AND ISNULL(任务状态, 0) = 1 '`。 排序/分组/分页线索：`ORDER BY next_task.[订单行号]) AS 下序名称, `；`SET @selStr = @selStr + @whereStr + ' ORDER BY [计划开始时间], [订单编号], [阶段标识]'`。
- `MES_ProductTask_WorkTimeSum` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`。 主要返回字段线索：`TaskAID, 工序名称, sum(工时) as 总工时`。 关键过滤/匹配条件：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。 排序/分组/分页线索：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。
- `MES_ProductTask_HelpEnd` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`班次表`；视图：`View_生产订单_MES`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`。 入参/分页参数：`@TaskAID bigint,`、`@partCount int,`、`@optor nvarchar(50),`、`@指派数量 decimal(16,2)`、`@selectedOperators NVARCHAR(50)`、`@加班人员 nvarchar(500)`、`@特殊加班人员 nvarchar(500)`、`@是否加班 bit`、`@是否休息日 bit`、`@是否法定休息日 bit`、`@用户选择班次 nvarchar(50)`、`@班次标准工时 int`。 主要返回字段线索：`@词条ID = 词条编号`。 关键过滤/匹配条件：`select @词条ID = 词条编号 from YL_基础表_数据字典 where 词条名称 = @词条名称 and 数据类别 = @数据类别`；`FROM View_生产订单_MES where TaskAID = @TaskAID`；`select @任务状态 = isnull(任务状态, 0) from View_生产订单_MES where TaskAID = @TaskAID`；`WHERE TaskAID = @TaskAID`；`AND 操作类别 = '辅助开始'`；`AND 开始时间 IS NOT NULL`；`AND ISNULL([已报工], 0) = 0`；`IF @开始总分钟 > = 465 AND @开始总分钟 < 990`；`WHERE 班次名称 = @当前班次`；`IF (@是否休息日 = 1 OR @是否法定休息日 = 1)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @报工开始时间 = DATEADD(HOUR, -1, @操作时间)`；`SET @打卡开始秒 = DATEDIFF(SECOND, '00:00:00', CAST(@报工开始时间 AS time))`；`SET @打卡结束秒 = DATEDIFF(SECOND, '00:00:00', CAST(@操作时间 AS time))`；`SET @总时长秒 = @打卡结束秒 - @打卡开始秒`；`SET @当前班次 = ISNULL(@用户选择班次, '')`；`SET @当前班次 = '白班'`；`SET @当前班次 = '夜班'`；`SET @加班时长秒 = @总时长秒`；`SET @加班开始时间 = @报工开始时间`；`SET @班次结束时间_完整 = CAST(@基准日期 AS DATETIME) + CAST(@班次结束时间 AS datetime)`；`SET @加班时长秒 = DATEDIFF(SECOND, @班次结束时间_完整, @操作时间)`。 排序/分组/分页线索：`ORDER BY 开始时间 DESC`。 实现特征：临时表 `#TempPersons`。
- `MES_ProductTask_MaterialRecieved` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@recievCount int,`、`@optor nvarchar(50)`。 主要返回字段线索：`@任务状态 = 任务状态`。 关键过滤/匹配条件：`select @任务状态 = 任务状态 from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`where AID = @TaskAID`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务`；`set 任务状态 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `；`set 收料 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `。
- `生产管理_加工中心_设备是否正在加工` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 设备/工位/资源数据处理。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@指派对象 NVARCHAR(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from [dbo].[MES_接口_生产计划_生产任务] where 指派对象 = @指派对象 AND 加工状态 in ( 2, 4 )`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `MES_ProductTask_WorkingStart` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、更新、处理报工/工时、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@optor nvarchar(50),`、`@收料 int,`、`@分配数 int`。 主要返回字段线索：`@任务状态 = isnull(任务状态, 0), @开工 = isnull(开工, 0)`。 关键过滤/匹配条件：`select @任务状态 = isnull(任务状态, 0), @开工 = isnull(开工, 0) from View_生产订单_MES where TaskAID = @TaskAID`；`select @词条ID = 词条编号 from YL_基础表_数据字典 where 词条名称 = @词条名称 and 数据类别 = @数据类别`；`Update MES_接口_生产计划_生产任务 set 任务状态 = 2, 可执行 = 1, 开工 = 1, 加工状态 = @词条ID, 开工时间 = @操作时间, 操作时间 = @操作时间 where AID = @TaskAID`；`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单行号] = @订单行号-1`；`and vt.订单编号 = @订单编号`；`AND qc.检测类型编号 = '6'`；`if(@收料@合格数 and @订单行号>1)`；`Update MES_接口_生产计划_生产任务 set 收料 = 1, 收料数量 = @合格数, 操作时间 = @操作时间 where AID = @TaskAID`；`if(@收料@合格数 and @订单行号 = 1)`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务 set 任务状态 = 2, 可执行 = 1, 开工 = 1, 加工状态 = @词条ID, 开工时间 = @操作时间, 操作时间 = @操作时间 where AID = @TaskAID`；`Update MES_接口_生产计划_生产任务 set 收料 = 1, 收料数量 = @合格数, 操作时间 = @操作时间 where AID = @TaskAID`；`Update MES_接口_生产计划_生产任务 set 收料 = 1, 收料数量 = @分配数, 操作时间 = @操作时间 where AID = @TaskAID`。
- `MES_ProductCenter_GetOrderTasks` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] < vo.[订单行号]`；`AND qc.检测类型编号 = '6'`；`AND vt.[订单行号] = vo.[订单行号]-1`；`where [订单编号] = @订单编号`。 排序/分组/分页线索：`order by [订单行号]`。
- `生产管理_加工中心_班次信息` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：视图：`View_设备工位人员`。 主要返回字段线索：`*`。
- `生产管理_加工中心_开始时间` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：表：`YL_加工中心_操作记录表`。 入参/分页参数：`@TaskAID nvarchar(50)`。 主要返回字段线索：`top(1)`、`开始时间`。 关键过滤/匹配条件：`where TaskAID = @TaskAID`。 排序/分组/分页线索：`order by 结束时间 desc`。
- `MES_ProductTask_ProdReport` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`。 入参/分页参数：`@TaskAID bigint,`、`@BindRpt_ALLtaskids nvarchar(500),`、`@rptDate nvarchar(50),`、`@rptShift nvarchar(50),`、`@partCount int,`、`@rptDesc nvarchar(50),`、`@optor nvarchar(50),`、`@前序不合格总数 nvarchar(500),`、`@加班人员 nvarchar(500)`、`@特殊加班人员 nvarchar(500)`、`@是否加班 nvarchar(10)`、`@是否休息日 nvarchar(10)`、`@是否法定休息日 nvarchar(10)`、`@用户选择班次 nvarchar(50)`、`@班次标准工时 int`。 主要返回字段线索：`@词条ID = 词条编号`。 关键过滤/匹配条件：`WHEN @是否加班 = '1' OR @是否加班 = 'true' OR @是否加班 = 'True' OR @是否加班 = 'TRUE' THEN 1`；`WHEN @是否休息日 = '1' OR @是否休息日 = 'true' OR @是否休息日 = 'True' OR @是否休息日 = 'TRUE' THEN 1`；`WHEN @是否法定休息日 = '1' OR @是否法定休息日 = 'true' OR @是否法定休息日 = 'True' OR @是否法定休息日 = 'TRUE' THEN 1`；`where 词条名称 = @词条名称 and 数据类别 = @数据类别`；`where TaskAID = @TaskAID`；`WHERE TaskAID = @TaskAID`；`AND 操作类别 = '开始加工'`；`AND 开始时间 IS NOT NULL`；`AND ISNULL([已报工], 0) = 0`；`AND 操作类别 IN ('加班', '休息日加班', '法定休息日加班', '休息日工作', '法定休息日工作')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @打卡开始秒 = DATEDIFF(SECOND, '00:00:00', CAST(@报工开始时间 AS time))`；`SET @打卡结束秒 = DATEDIFF(SECOND, '00:00:00', CAST(@rptDate AS time))`；`SET @打卡结束秒 = @打卡结束秒 + 24 * 3600`；`SET @总时长秒 = @打卡结束秒 - @打卡开始秒`；`SET @中点秒 = @打卡开始秒 + (@总时长秒 / 2)`；`SET @最小班次标准工时 = @班次标准工时`；`SET @位置 = CHARINDEX(', ', @人员列表)`；`SET @当前人员 = LTRIM(RTRIM(SUBSTRING(@人员列表, 1, @位置 - 1)))`；`SET @人员列表 = SUBSTRING(@人员列表, @位置 + 1, LEN(@人员列表))`；`SET @当前人员 = LTRIM(RTRIM(@人员列表))`；`SET @人员列表 = ''`。 排序/分组/分页线索：`ORDER BY 开始时间 DESC`；`FETCH NEXT FROM 班次游标 INTO @当前处理班次, @是否操作人班次`；`FETCH NEXT FROM task_cursor INTO @CurrentTaskAID, @CurrentDefectCount`；`FETCH NEXT FROM task_cursor2 INTO @CurrentTaskAID`。 实现特征：临时表 `#TempPersons`、`#班次处理`、`#TaskData`、`#TaskIDs`、`#DefectCounts`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `MES_QulityInspection_CheckItemData_Save` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 写入或更新对象：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 入参/分页参数：`@TaskAID bigint`、`@物料编号 nvarchar(100)`、`@阶段标识 int`、`@工序名称 nvarchar(100)`、`@计划号 int`、`@检测项目 nvarchar(500)`、`@理论值 nvarchar(50)`、`@上限值 nvarchar(50)`、`@下限值 nvarchar(50)`、`@实测值 nvarchar(50)`、`@测量单位 nvarchar(50)`、`@检验比例 nvarchar(50)`、`@检具 nvarchar(50)`、`@检测结果 int`、`@合格数 int`、`@不合格数 int`、`@备注 nvarchar(200)`、`@检测人 nvarchar(50)`、`@检测时间 datetime`、`@当前检测零件编号 int`、`@质检类型 nvarchar(100)`、`@检测类型编号 nvarchar(100)`、`@零件名称 nvarchar(100)`、`@内部合同号 nvarchar(100)`。 主要返回字段线索：`@ExistingQT_AID = QT_AID`。 关键过滤/匹配条件：`WHERE TaskAID = @TaskAID`；`AND 零件编码 = @零件编码`；`AND 工序名称 = @工序名称`；`AND 质检类型 = @质检类型`；`AND 检测人 = @检测人`；`AND CONVERT(DATE, 检测时间) = CONVERT(DATE, @检测时间);`；`WHERE QT_AID = @ExistingQT_AID;`；`WHERE QT_AID = @ExistingQT_AID`；`AND 零件编号 = @零件编码`；`AND 当前检测零件编号 = @当前检测零件编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`SET @QT_AID = SCOPE_IDENTITY();`；`SET @ExistingQT_AID = @QT_AID;`；`SET @CurrentQualifiedCount = @CurrentQualifiedCount + @合格数;`；`SET @CurrentUnqualifiedCount = @CurrentUnqualifiedCount + @不合格数;`；`SET @CurrentInspectionCount = @CurrentInspectionCount + @检验数量;`；`UPDATE [dbo].[YL_质量检验_质检记录]`；`SET`；`SET @QT_AID = @ExistingQT_AID;`；`SET @PartResult = 0;`；`INSERT INTO [dbo].[YL_质量检验_质检记录_检测零件](`。 实现特征：事务控制、异常捕获。
- `MES_QulityInspection_GetItemStandard` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`YL_质量检验_检测标准`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@工序名称编号 int`、`@检测类别编号 int`。 主要返回字段线索：`[物料编号]`、`[工序名称编号]`、`[检测项目]`、`[理论值]`、`[上限值]`、`[下限值]`、`[测量单位]`、`[检验比例]`、`[检具]`、`[备注]`。 关键过滤/匹配条件：`where [物料编号] = @物料编号 and [工序名称编号] = @工序名称编号 and [检测类别编号] = @检测类别编号`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `MES_QulityInspection_GetItemStandard` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`YL_质量检验_检测标准`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@工序名称编号 int`、`@检测类别编号 int`。 主要返回字段线索：`[物料编号]`、`[工序名称编号]`、`[检测项目]`、`[理论值]`、`[上限值]`、`[下限值]`、`[测量单位]`、`[检验比例]`、`[检具]`、`[备注]`。 关键过滤/匹配条件：`where [物料编号] = @物料编号 and [工序名称编号] = @工序名称编号 and [检测类别编号] = @检测类别编号`。
- `MES_QulityInspection_CheckItemData_Save` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 写入或更新对象：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 入参/分页参数：`@TaskAID bigint`、`@物料编号 nvarchar(100)`、`@阶段标识 int`、`@工序名称 nvarchar(100)`、`@计划号 int`、`@检测项目 nvarchar(500)`、`@理论值 nvarchar(50)`、`@上限值 nvarchar(50)`、`@下限值 nvarchar(50)`、`@实测值 nvarchar(50)`、`@测量单位 nvarchar(50)`、`@检验比例 nvarchar(50)`、`@检具 nvarchar(50)`、`@检测结果 int`、`@合格数 int`、`@不合格数 int`、`@备注 nvarchar(200)`、`@检测人 nvarchar(50)`、`@检测时间 datetime`、`@当前检测零件编号 int`、`@质检类型 nvarchar(100)`、`@检测类型编号 nvarchar(100)`、`@零件名称 nvarchar(100)`、`@内部合同号 nvarchar(100)`。 主要返回字段线索：`@ExistingQT_AID = QT_AID`。 关键过滤/匹配条件：`WHERE TaskAID = @TaskAID`；`AND 零件编码 = @零件编码`；`AND 工序名称 = @工序名称`；`AND 质检类型 = @质检类型`；`AND 检测人 = @检测人`；`AND CONVERT(DATE, 检测时间) = CONVERT(DATE, @检测时间);`；`WHERE QT_AID = @ExistingQT_AID;`；`WHERE QT_AID = @ExistingQT_AID`；`AND 零件编号 = @零件编码`；`AND 当前检测零件编号 = @当前检测零件编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`SET @QT_AID = SCOPE_IDENTITY();`；`SET @ExistingQT_AID = @QT_AID;`；`SET @CurrentQualifiedCount = @CurrentQualifiedCount + @合格数;`；`SET @CurrentUnqualifiedCount = @CurrentUnqualifiedCount + @不合格数;`；`SET @CurrentInspectionCount = @CurrentInspectionCount + @检验数量;`；`UPDATE [dbo].[YL_质量检验_质检记录]`；`SET`；`SET @QT_AID = @ExistingQT_AID;`；`SET @PartResult = 0;`；`INSERT INTO [dbo].[YL_质量检验_质检记录_检测零件](`。 实现特征：事务控制、异常捕获。
- `加工中心_收检_读取收检记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID int`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`select @已检验数量 = sum(检验数量) OVER() from YL_质量检验_质检记录 where TaskAID = @TaskAID and 质检类型 = '收检'`；`select @完成数量 = 完成数量 from [dbo].[MES_接口_生产计划_生产任务] where AID = @TaskAID`；`WHERE vt.[订单编号] = @订单编号`；`AND vt.[订单行号] = @订单行号-1`；`AND qc.检测类型编号 = '6'`。
- `MES_QulityInspection_ReceiveCheck` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 质量检验处理。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@检测类型编号 int,`、`@质检类型 NVARCHAR(50),`、`@零件名称 NVARCHAR(200),`、`@内部合同号 int,`、`@零件编码 NVARCHAR(200),`、`@计划号 int,`、`@工序名称 NVARCHAR(100),`、`@检测数量 INT,`、`@合格数 INT,`、`@不合格数 INT,`、`@检测人 NVARCHAR(50),`、`@检测时间 DATETIME,`、`@计划生产数 INT,`、`@检测说明 NVARCHAR(MAX)`。 主要返回字段线索：`@分配数量 = ISNULL(指派数量, 0)`。 关键过滤/匹配条件：`WHERE AID = @TaskAID`；`WHERE qc.TaskAID = @TaskAID`；`WHERE task.订单编号 = @计划号`；`AND task.订单行号 = @当前订单行号`；`AND qc.质检类型 = '收检'`；`WHERE 订单编号 = @计划号`；`AND 订单行号 = @当前订单行号 + 1`；`AND ISNULL(订单拆分内码, 1) = 1`；`IF @下一道工序AID IS NOT NULL and @合格数 > 0`；`WHERE AID = @下一道工序AID and isnull(任务状态, 0) < 1`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 任务状态 = 4`；`SET 任务状态 = 1`。 实现特征：事务控制、异常捕获。
- `MES_QualityInspection_CheckRecord_Query` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`基础表_工序`。 入参/分页参数：`@计划号 NVARCHAR(100)`、`@零件编码 NVARCHAR(200)`、`@工艺编号 NVARCHAR(50)`、`@检测类型编号 INT`、`@检验结果 NVARCHAR(10)`、`@检测人 NVARCHAR(50)`、`@检测时间开始 DATETIME`、`@检测时间结束 DATETIME`。 主要返回字段线索：`top 100`、`a.[QT_AID], `、`a.[TaskAID], `、`a.[检测类型编号], `、`a.[质检类型], `、`a.[零件名称], `、`a.[内部合同号], `、`a.[零件编码], `、`a.[计划号], `、`a.[工序名称], `。 关键过滤/匹配条件：`WHEN a.[不合格数] = 0 AND a.[合格数] > 0 THEN ''合格''`；`WHERE 质检类型 ''来料检验''`；`SET @SQL = @SQL + ' AND a.[计划号] = ''' + @计划号 + ''''`；`SET @SQL = @SQL + ' AND a.[零件编码] LIKE ''%' + @零件编码 + '%'''`；`IF @检测类型编号 IS NOT NULL AND @检测类型编号 > 0`；`SET @SQL = @SQL + ' AND a.[检测类型编号] = ' + CAST(@检测类型编号 AS NVARCHAR(10))`；`SET @SQL = @SQL + ' AND EXISTS (`；`WHERE b2.[工艺编号] = ''' + @工艺编号 + '''`；`AND b2.[工序名称] = a.[工序名称]`；`SET @SQL = @SQL + ' AND a.[不合格数] = 0 AND a.[合格数] > 0'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @SQL = @SQL + ' AND a.[计划号] = ''' + @计划号 + ''''`；`SET @SQL = @SQL + ' AND a.[零件编码] LIKE ''%' + @零件编码 + '%'''`；`SET @SQL = @SQL + ' AND a.[检测类型编号] = ' + CAST(@检测类型编号 AS NVARCHAR(10))`；`SET @SQL = @SQL + ' AND EXISTS (`；`SET @SQL = @SQL + ' AND a.[不合格数] = 0 AND a.[合格数] > 0'`；`SET @SQL = @SQL + ' AND a.[不合格数] > 0'`；`SET @SQL = @SQL + ' AND a.[检测人] LIKE ''%' + @检测人 + '%'''`；`SET @SQL = @SQL + ' ORDER BY a.[检测时间] DESC'`；`SET @检测时间开始 = DATEADD(YEAR, -1, GETDATE())`；`SET @检测时间结束 = GETDATE()`。 排序/分组/分页线索：`SET @SQL = @SQL + ' ORDER BY a.[检测时间] DESC'`。
- `MES_QualityInspection_GetInspectionParts` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`。 入参/分页参数：`@QT_AID BIGINT`。 主要返回字段线索：`LJ_AID, `、`QT_AID, `、`当前检测零件编号, `、`检测结果, `、`检测时间, `、`检测人, `、`零件编号, `、`CASE`、`WHEN 检测结果 = 1 THEN '合格'`、`WHEN 检测结果 = 0 THEN '不合格'`。 关键过滤/匹配条件：`WHERE QT_AID = @QT_AID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 当前检测零件编号;`。
- `MES_QualityInspection_GetInspectionDetails` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测数据`。 入参/分页参数：`@LJ_AID BIGINT`。 主要返回字段线索：`AID, `、`LJ_AID, `、`物料编号, `、`当前检测零件编号, `、`阶段标识, `、`工序名称, `、`计划号, `、`检测项目, `、`理论值, `、`上限值, `。 关键过滤/匹配条件：`WHERE LJ_AID = @LJ_AID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY AID;`。
- `加工中心_异常工时_获取操作记录列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 入参/分页参数：`@操作人 nvarchar(50)`。 主要返回字段线索：`o.AID, `、`o.操作类别编号, `、`o.操作类别, `、`o.阶段标识, `、`o.工序名称, `、`o.工位编号, `、`o.工位名称, `、`o.操作人 as 指派对象, `、`o.合同号, `、`o.订单编号 as 订单号, `。 关键过滤/匹配条件：`WHERE c.AID IS NULL and o.操作人 = @操作人 and o.操作类别编号 in ('8', '9')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `加工中心_修改工时_保存修改记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`。 写入或更新对象：`YL_加工中心_操作记录表`。 入参/分页参数：`@TaskAID bigint,`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@工时 int,`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 关键过滤/匹配条件：`where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[YL_加工中心_操作记录表]`；`set 最后编辑时间 = GETDATE(), 最后编辑人 = @最后编辑人, 实际工时 = @工时, 开始时间 = @开始时间, 结束时间 = @结束时间`。
- `sp_获取最近处理任务` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@审批人ID NVARCHAR(100)`。 主要返回字段线索：`ar.记录ID, `、`p.流程ID, `、`p.流程标题 as 流程名称, `、`p.发起人姓名 as 申请人, `、`ar.审批人姓名 as 处理人, `、`ar.处理结果, `、`CASE ar.处理结果`、`WHEN 'approved' THEN '同意'`、`WHEN 'rejected' THEN '拒绝'`、`ELSE ar.处理结果`。 关键过滤/匹配条件：`WHERE ar.审批人ID = @审批人ID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY ar.处理时间 DESC;`。
- `人员管理_人员信息查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `sp_获取我的流程` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@发起人ID NVARCHAR(100),`、`@状态 NVARCHAR(20)`。 主要返回字段线索：`p.流程ID, `、`p.流程标题, `、`p.流程描述, `、`p.优先级, `、`p.状态, `、`p.当前节点, `、`p.当前步骤, `、`p.总步骤数, `、`p.创建时间 as 发起时间, `、`p.更新时间`。 关键过滤/匹配条件：`WHERE p.发起人ID = @发起人ID`；`AND (@状态 IS NULL OR p.状态 = @状态)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY p.更新时间 DESC;`。
- `sp_获取待处理任务` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@审批人ID NVARCHAR(100)`。 主要返回字段线索：`p.流程ID, `、`p.流程标题, `、`p.流程描述, `、`p.优先级, `、`p.发起人姓名 as 申请人, `、`p.创建时间 as 申请时间, `、`p.已关联计划号, `、`p.零件名称, `、`p.零件编号, `、`p.工序名称, `。 关键过滤/匹配条件：`WHERE pn.审批人ID = @审批人ID`；`AND pn.状态 = 'processing'`；`AND p.状态 = 'processing'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY`。
- `MES_ProductAdmin_Query` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@性质 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@工位 nvarchar(500)`。 主要返回字段线索：`top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`、`[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`、`[优先级], [未完成说明], [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'''`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`；`else if(@排产状态 = '已完成')set @selectStrWhere = @selectStrWhere + ' and [排产状态] = 1'`；`if(@物料类型 = '自制件') set @selectStrWhere = @selectStrWhere + ' and [不装配] ''否'''`。
- `sp_创建流程_简化版` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`流程表`、`流程节点表`。 入参/分页参数：`@流程标题 NVARCHAR(200),`、`@流程描述 NVARCHAR(MAX)`、`@优先级 NVARCHAR(20)`、`@发起人ID NVARCHAR(100),`、`@发起人姓名 NVARCHAR(100),`、`@审批人ID NVARCHAR(100),`、`@审批人姓名 NVARCHAR(100),`、`@新流程ID INT`、`@已关联计划号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@工序名称 NVARCHAR(100)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO 流程表 (`；`SET @新流程ID = SCOPE_IDENTITY();`；`INSERT INTO 流程节点表 (`；`SET @结果 = 1;`；`SET @消息 = '流程创建成功，流程ID: ' + CAST(@新流程ID AS NVARCHAR(10));`；`SET @结果 = 0;`；`SET @消息 = '错误: ' + ERROR_MESSAGE();`。 实现特征：事务控制、异常捕获。
- `sp_处理审批` 属于 通用业务，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`流程表`、`流程节点表`、`审批记录表`。 入参/分页参数：`@流程ID INT,`、`@节点ID INT,`、`@审批人ID NVARCHAR(100),`、`@审批人姓名 NVARCHAR(100),`、`@处理结果 NVARCHAR(20),`、`@审批意见 NVARCHAR(MAX)`、`@成功 BIT`。 主要返回字段线索：`@当前步骤 = 步骤序号`。 关键过滤/匹配条件：`WHERE 节点ID = @节点ID;`；`WHERE 流程ID = @流程ID;`；`SELECT @当前步骤 = 步骤序号 FROM 流程节点表 WHERE 节点ID = @节点ID;`；`WHERE 流程ID = @流程ID AND 步骤序号 = @当前步骤 + 1;`；`WHERE 节点ID = @下一节点ID;`；`当前节点 = (SELECT 节点名称 FROM 流程节点表 WHERE 节点ID = @下一节点ID), `。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO 审批记录表 (流程ID, 节点ID, 审批人ID, 审批人姓名, 处理结果, 审批意见)`；`UPDATE 流程节点表`；`SET 状态 = @处理结果, `；`UPDATE 流程表`；`SET 状态 = 'rejected', `；`SET 状态 = 'processing', `；`SET 当前步骤 = @当前步骤 + 1, `；`SET 状态 = 'completed', `；`SET @成功 = 1;`；`SET @成功 = 0;`。 实现特征：事务控制、异常捕获。
- `sp_转办流程` 属于 通用业务，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`流程节点表`、`流程转办表`、`审批记录表`。 入参/分页参数：`@流程ID INT,`、`@节点ID INT,`、`@原审批人ID NVARCHAR(100),`、`@原审批人姓名 NVARCHAR(100),`、`@新审批人ID NVARCHAR(100),`、`@新审批人姓名 NVARCHAR(100),`、`@转办原因 NVARCHAR(500),`、`@成功 BIT`。 主要返回字段线索：`1`。 关键过滤/匹配条件：`WHERE p.流程ID = @流程ID`；`AND pn.节点ID = @节点ID`；`AND pn.状态 = 'processing'`；`AND p.状态 = 'processing'`；`AND pn.审批人ID = @原审批人ID`；`WHERE 节点ID = @节点ID;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @成功 = 0;`；`INSERT INTO 流程转办表 (`；`UPDATE 流程节点表`；`SET 审批人ID = @新审批人ID, `；`INSERT INTO 审批记录表 (流程ID, 节点ID, 审批人ID, 审批人姓名, 处理结果, 审批意见)`；`SET @成功 = 1;`。 实现特征：事务控制、异常捕获。
- `sp_完成流程` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`流程表`、`流程节点表`、`流程完成记录表`、`审批记录表`。 入参/分页参数：`@流程ID INT,`、`@发起人ID NVARCHAR(100),`、`@发起人姓名 NVARCHAR(100),`、`@完成类型 NVARCHAR(20),`、`@完成原因 NVARCHAR(500),`、`@成功 BIT`。 主要返回字段线索：`1`。 关键过滤/匹配条件：`WHERE 流程ID = @流程ID`；`AND 发起人ID = @发起人ID`；`AND 状态 IN ('draft', 'processing')`；`WHERE 流程ID = @流程ID;`；`AND 状态 = 'processing';`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @成功 = 0;`；`INSERT INTO 流程完成记录表 (`；`UPDATE 流程表`；`SET 状态 = @完成类型, `；`UPDATE 流程节点表`；`SET 状态 = 'cancelled', `；`INSERT INTO 审批记录表 (流程ID, 节点ID, 审批人ID, 审批人姓名, 处理结果, 审批意见)`；`SET @成功 = 1;`。 实现特征：事务控制、异常捕获。
- `sp_获取流程详情` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@流程ID INT`。 主要返回字段线索：`@流程信息 = (`、`SELECT`、`p.流程ID, `、`p.流程标题, `、`p.流程描述, `、`p.优先级, `、`p.状态, `、`p.发起人姓名, `、`p.当前节点, `、`p.当前步骤, `。 关键过滤/匹配条件：`WHERE p.流程ID = @流程ID`；`WHEN 步骤序号 < (SELECT 当前步骤 FROM 流程表 WHERE 流程ID = @流程ID) THEN '已完成'`；`WHEN 步骤序号 = (SELECT 当前步骤 FROM 流程表 WHERE 流程ID = @流程ID) THEN '进行中'`；`WHERE 流程ID = @流程ID`；`WHERE ar.流程ID = @流程ID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 步骤序号`；`ORDER BY ar.处理时间 DESC`。
- `生产管理_加工中心_生产发料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE`。 入参/分页参数：`@生产订单号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from SAP.SBO_YL.dbo.UBT_OWOR_OIGE where 生产订单号 = @生产订单号`。 关键写入/状态处理语句线索：`set nocount on;`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `生产管理_加工中心_退库` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、处理质检数据。 读取/关联对象：表：`质量检验_质检任务_SAP`。 写入或更新对象：`质量检验_质检任务_SAP`。 入参/分页参数：`@生产订单号 bigint,`、`@编码 nvarchar(500),`、`@名称 nvarchar(500),`、`@数量 float,`、`@单位 nvarchar(50),`、`@批次信息 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`@行号 = max(isnull(行号, 0))`。 关键过滤/匹配条件：`select @行号 = max(isnull(行号, 0)) from [dbo].[质量检验_质检任务_SAP] where [订单编号] = @生产订单号 and [订单类型] = '202-60'`。 关键写入/状态处理语句线索：`insert into [dbo].[质量检验_质检任务_SAP] ( [订单编号]`。

## 33. src/views/ProductionManagement/OutsourceMange/index.vue

**页面位置**：`src/views/ProductionManagement/OutsourceMange/index.vue`  
**所属模块**：ProductionManagement / OutsourceMange  
**源码行数**：1509

### 页面功能

该页面管理外协任务。用户查询可外协工序，按供应商/订单/工序分组，执行外协派工并同步 SAP 采购请求或相关单据，维护外协发料、收料、质检记录、打印次数和备注。

页面可见的操作/字段包括 “查询 派工并同步SAP”、“打印”、“发料”、“收货”、“编辑”、“历史记录”、“查看图纸”、“工艺图纸”、“取 消”、“确 定”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_外协管理_外协历史查询`、`计划排产_派工`、`生产管理_外协管理_更新打印次数`、`生产管理_外协管理_更新备注`、`工艺管理_图纸维护_查看图纸`、`工艺管理_工艺维护_查看图纸` 等过程 取数或提交业务动作。

### 页面流程图

外协业务流程：

```mermaid
flowchart LR
  A[输入订单/合同/供应商/工序条件] --> B[查询外协任务或外协报表]
  B --> C[选择外协工序/供应商]
  C --> D[计划排产_派工 或外协分组]
  D --> E[POST SAP 采购/外协相关请求]
  E --> F[外协发料查询/保存]
  F --> G[外协收料/质检记录]
  G --> H[更新打印次数/备注/报表状态]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询 派工并同步SAP`、`打印`、`发料`、`收货`、`编辑`、`历史记录`、`查看图纸`、`工艺图纸`、`取 消`、`确 定`、`关 闭`、`关闭`、`item.label`、`序号`、`生产订单`、`计划号`、`工序名称`、`物料名称`

主要方法线索：`print`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `minTaskAID` | `@minTaskAID` | - |
| 参数 | `maxTaskAID` | `@TaskAID` | `TaskAID` |
| 参数 | `this.textcontent` | `@外协备注` | - |
| 参数 | `this.textweight` | `@单重` | - |
| 参数 | `this.textsum` | `@打印数量` | - |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.productCode` | `@产品编码` | - |
| 参数 | `this.itemName` | `@产品名称` | - |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.workstate` | `@派工状态` | - |
| 参数 | `this.orderstate` | `@订单状态` | - |
| 参数 | `this.dostate` | `@执行状态` | - |
| 参数 | `this.plannum` | `@计划号` | - |
| 参数 | `maxTaskAID` | `@maxTaskAID` | - |
| 参数 | `this.$store.state.user.name` | `@optor` | - |
| 参数 | `this.receiveNum` | `@recievCount` | - |
| 参数 | `row.单重` | `@单重` | - |
| 参数 | `row.外协备注` | `@备注` | - |
| 参数 | `this.doNum` | `@recievCount` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `生产订单` | - | `订单号` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `物料名称` | - | `产品名称` |
| 显示列 | `同步状态` | - | `同步状态` |
| 显示列 | `上序合格数` | - | `上序合格数` |
| 显示列 | `指派数量` | - | `v.[指派数量], ` |
| 显示列 | `打印数量` | - | `打印数量` |
| 显示列 | `发料数量` | - | `v.[收料数量], ` |
| 显示列 | `收货数量` | - | `v.[完成数量], ` |
| 显示列 | `备注` | - | `外协备注` |
| 显示列 | `单重` | - | `单重` |
| 显示列 | `物料编码` | - | `产品编码` |
| 显示列 | `打印次数` | - | `外协打印次数` |
| 显示列 | `计划开始时间` | - | `计划开始时间` |
| 显示列 | `计划完成时间` | - | `计划完成时间` |
| 显示列 | `操作` | - | `操作描述, ` |
| 显示列 | `备注` | - | `操作描述, ` |
| 显示列 | `时间` | - | `最后编辑时间, ` |
| 显示列 | `数量` | - | `操作数值, ` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 641 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协历史查询` | 查询/读取数据 | 查询、处理外协业务 | 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` |
| 956 | 12（当前通用存储过程写入/业务动作） | `计划排产_派工` | 计划排产或派工 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1011 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_更新打印次数` | 更新/保存业务数据 | 查询、新增、更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1033 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_更新备注` | 更新/保存业务数据 | 查询、新增、更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1065 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 1084 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 1111 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_查询外协全部` | 查询/读取数据 | 查询、新增、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单全部（包括已关闭）` |
| 1347 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协发料查询` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 1374 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协发料查询` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 1416 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协发料保存` | 更新/保存业务数据 | 查询、更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划` |
| 1451 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协收料保存` | 更新/保存业务数据 | 更新、处理报工/工时、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 966 行：`postB1("/PurchaseRequests")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 966 | `postB1` | `/PurchaseRequests` | 调用外部接口，失败会影响对应外部系统同步。 | `ReqType`、`Requester`、`PriceMode`、`RequesterBranch`、`RequesterDepartment`、`DocDate`、`DocDueDate`、`TaxDate`、`RequriedDate`、`Comments`、`DocumentLines`、`ItemCode` |

### 状态流转说明

- `生产管理_外协管理_外协历史查询`：`FROM [dbo].[YL_加工中心_操作记录表]`
- `计划排产_派工`：`CREATE PROCEDURE [dbo].[计划排产_派工]`；`@派工操作人 NVARCHAR(50)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`[派工状态] = 1`；`, [派工时间] = getdate()`；`, [派工操作人] = @派工操作人`；`'成功' AS 状态, `
- `生产管理_外协管理_更新打印次数`：`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`'成功' AS 状态, `；`'错误' AS 状态, `
- `生产管理_外协管理_更新备注`：`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`'成功' AS 状态, `；`'错误' AS 状态, `
- `生产管理_外协管理_查询外协全部`：`@派工状态 int = 1, `；`@订单状态 int = 0, `；`@发料状态 int = 2`；`完成数量 nvarchar(50), `；`计划完成 datetime, `；`加急状态 nvarchar(50), `；`排产状态 nvarchar(20), `；`计划完成时间 datetime, `
- `生产管理_外协管理_外协发料查询`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `生产管理_外协管理_外协发料查询`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `生产管理_外协管理_外协发料保存`：`declare @任务状态 int`；`select @任务状态 = isnull(任务状态, 0) from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`if(@任务状态 < = 1 )`；`Update MES_接口_生产计划_生产任务`；`set 任务状态 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `；`if(@任务状态 > 1 )`
- `生产管理_外协管理_外协收料保存`：`declare @任务状态 int`；`Update MES_接口_生产计划_生产任务`；`set 完成数量 = isnull(完成数量, 0)+@recievCount, `

### 数据库调用链

- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `生产管理_外协管理_外协历史查询` -> 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `计划排产_派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `生产管理_外协管理_更新打印次数` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `生产管理_外协管理_更新备注` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `生产管理_外协管理_查询外协全部` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单全部（包括已关闭）` -> 查询/读取数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `生产管理_外协管理_外协发料查询` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `生产管理_外协管理_外协发料查询` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `生产管理_外协管理_外协发料保存` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据
- `src/views/ProductionManagement/OutsourceMange/index.vue` -> `生产管理_外协管理_外协收料保存` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `生产管理_外协管理_外协历史查询` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`操作描述, `、`最后编辑时间, `、`操作数值, `、`TaskAID`。 关键过滤/匹配条件：`WHERE [TaskAID] = @TaskAID and 操作类别 = '收料'`。
- `计划排产_派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE AID IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET`。 实现特征：事务控制、临时表 `#TempOrders`。
- `生产管理_外协管理_更新打印次数` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE AID IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 外协打印次数 = ISNULL(外协打印次数, 0) + 1`。 实现特征：事务控制、异常捕获、临时表 `#TempOrders`。
- `生产管理_外协管理_更新备注` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX),`、`@外协备注 NVARCHAR(MAX)`、`@单重 NVARCHAR(50)`、`@打印数量 NVARCHAR(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE AID IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 外协备注 = @外协备注, 单重 = @单重, 打印数量 = @打印数量`。 实现特征：事务控制、异常捕获、临时表 `#TempOrders`。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `生产管理_外协管理_查询外协全部` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、新增、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单全部（包括已关闭）`。 入参/分页参数：`@订单号 int`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@派工状态 int`、`@订单状态 int`、`@计划号 nvarchar(50)`、`@发料状态 int`。 主要返回字段线索：`v.[订单编号], `、`v.[订单行号], `、`v.[物料编号], `、`v.[物料描述], `、`v.[完成数量], `、`v.[指派数量], `、`v.[外协分组], `、`v.[不合格数量], `、`v.[收料数量], `、`v.[合同号], `。 关键过滤/匹配条件：`WHERE v.[物料类型] = 'pit_Resource'`；`AND v.[指派对象] = '外协'`；`AND (@订单号 = 0 OR v.[订单编号] = @订单号)`；`AND (@计划号 = '' OR v.[计划号] LIKE '%' + @计划号 + '%')`；`AND (@产品编码 = '' OR v.[物料编号] LIKE '%' + @产品编码 + '%')`；`AND (@产品名称 = '' OR v.[物料描述] LIKE '%' + @产品名称 + '%')`；`AND (@工序名称 = '' OR v.[工序名称] LIKE '%' + @工序名称 + '%')`；`WHERE prev.订单编号 = bd.订单编号`；`AND prev.订单行号 = bd.订单行号 - 1`；`AND ISNULL(prev.外协分组, '') = ISNULL(bd.外协分组, '')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #BaseData (`。 排序/分组/分页线索：`ORDER BY ga.订单行号`；`GROUP BY 订单编号, 外协分组, 组ID`；`ORDER BY bd.订单编号, bd.订单行号`。 实现特征：临时表 `#BaseData`。
- `生产管理_外协管理_外协发料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@maxTaskAID bigint,`、`@minTaskAID bigint`。 主要返回字段线索：`@上序订单编号 = [订单编号], `、`@上序订单行号 = [订单行号]`。 关键过滤/匹配条件：`WHERE [TaskAID] = @minTaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = @上序订单行号 - 1`；`AND qc.检测类型编号 = '6'`；`WHERE qc.TaskAID = @minTaskAID`；`WHERE [TaskAID] = @maxTaskAID`。
- `生产管理_外协管理_外协发料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@maxTaskAID bigint,`、`@minTaskAID bigint`。 主要返回字段线索：`@上序订单编号 = [订单编号], `、`@上序订单行号 = [订单行号]`。 关键过滤/匹配条件：`WHERE [TaskAID] = @minTaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = @上序订单行号 - 1`；`AND qc.检测类型编号 = '6'`；`WHERE qc.TaskAID = @minTaskAID`；`WHERE [TaskAID] = @maxTaskAID`。
- `生产管理_外协管理_外协发料保存` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@recievCount int,`、`@optor nvarchar(50),`、`@单重 nvarchar(50)`、`@备注 nvarchar(50)`。 主要返回字段线索：`@任务状态 = isnull(任务状态, 0)`。 关键过滤/匹配条件：`select @任务状态 = isnull(任务状态, 0) from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`where AID = @TaskAID`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务`；`set 任务状态 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `；`set 收料 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `。
- `生产管理_外协管理_外协收料保存` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@recievCount int,`、`@optor nvarchar(50)`。 关键过滤/匹配条件：`where AID = @TaskAID`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务`；`set 完成数量 = isnull(完成数量, 0)+@recievCount, `。

## 34. src/views/ProductionManagement/OutsourceSheet/index.vue

**页面位置**：`src/views/ProductionManagement/OutsourceSheet/index.vue`  
**所属模块**：ProductionManagement / OutsourceSheet  
**源码行数**：496

### 页面功能

该页面输出外协报表。用户按订单、合同、产品、计划号、供应商、状态分页查询外协报表，也可导出，用于外协进度、发料、收料、质检、开票等跟踪。

页面可见的操作/字段包括 “查询”、“Excel导出”、“全部”、“收检”、“终检”、“来料检验”、“退库检验”、“收料小于发料”、“供应商”、“订单号”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_外协报表_导出`、`生产管理_外协报表_查询` 取数或提交业务动作。

### 页面流程图

外协业务流程：

```mermaid
flowchart LR
  A[输入订单/合同/供应商/工序条件] --> B[查询外协任务或外协报表]
  B --> C[选择外协工序/供应商]
  C --> D[计划排产_派工 或外协分组]
  D --> E[POST SAP 采购/外协相关请求]
  E --> F[外协发料查询/保存]
  F --> G[外协收料/质检记录]
  G --> H[更新打印次数/备注/报表状态]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`Excel导出`、`全部`、`收检`、`终检`、`来料检验`、`退库检验`、`收料小于发料`、`供应商`、`订单号`、`计划号`、`合同号`、`零件编码`、`零件名称`、`工序名称`、`材质`、`数量`、`单价`

主要方法线索：`tableRowClassName`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo` | `@订单号` | `订单号, ` |
| 参数 | `this.productCode` | `@产品编码` | `MAX(产品编码) AS 产品编码, ` |
| 参数 | `this.productName` | `@产品名称` | `MAX(产品名称) AS 产品名称, ` |
| 参数 | `this.supplierName` | `@供应商` | `MAX(供应商名称) AS 供应商名称, ` |
| 参数 | `this.statusFilter ? 1 : 0` | `@状态过滤` | - |
| 参数 | `orderId` | `@订单编号` | - |
| 显示列 | `供应商` | - | `MAX(供应商名称) AS 供应商名称, ` |
| 显示列 | `订单号` | - | `订单号, ` |
| 显示列 | `计划号` | - | `MAX(计划号) AS 计划号, ` |
| 显示列 | `合同号` | - | `MAX(合同号) AS 合同号, ` |
| 显示列 | `零件编码` | - | `MAX(产品编码) AS 产品编码, ` |
| 显示列 | `零件名称` | - | `MAX(产品名称) AS 产品名称, ` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `材质` | - | `材质` |
| 显示列 | `数量` | - | `MAX(指派数量) AS 指派数量, ` |
| 显示列 | `单价` | - | `MAX(含税单价) AS 含税单价, ` |
| 显示列 | `金额` | - | `MAX(含税行总计) AS 含税行总计, ` |
| 显示列 | `发料日期` | - | `开始时间` |
| 显示列 | `要求到货日期` | - | `计划完成时间` |
| 显示列 | `外协预计到货` | - | `外协预计到货` |
| 显示列 | `收货日期` | - | `外协结束时间` |
| 显示列 | `收货数量` | - | `收料数量` |
| 显示列 | `合格数量` | - | `收检合格数` |
| 显示列 | `报废数量` | - | `收检不合格数` |
| 显示列 | `开票状态` | - | `开票数量` |
| 显示列 | `发料数量` | - | `发料数量合计` |
| 显示列 | `收料数量` | - | `收料数量_报工` |
| 输入字段 | `orderNo` | `@订单号` | - |
| 输入字段 | `contractNo` | - | - |
| 输入字段 | `productCode` | `@产品编码` | - |
| 输入字段 | `productName` | `@产品名称` | - |
| 输入字段 | `QualityStatus` | - | - |
| 输入字段 | `supplierName` | `@供应商` | - |
| 输入字段 | `statusFilter` | `@状态过滤` | - |
| 输入字段 | `activeTab` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 176 | 2001（导出/报表类过程） | `生产管理_外协报表_导出` | 外协业务处理 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 未在 SQL 中解析到明确依赖 |
| 252 | 11（当前通用存储过程查询/执行） | `生产管理_外协报表_查询` | 查询/读取数据 | 查询、分页、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `生产管理_外协报表_导出`：`@状态过滤 int = 0`；`MAX(完成数量) AS 完成数量, `；`MAX(CASE WHEN 订单行号 = 1 OR ISNULL(收检合格数, 0) > 0 THEN 1 ELSE 0 END) AS 执行状态, `；`(@状态过滤 = 0 OR MAX(CASE WHEN ISNULL(收料数量_报工, 0) < ISNULL(发料数量合计, 0) THEN 1 ELSE 0 END) = 1)`；`CASE WHEN 开票数量 > 0 THEN '是' ELSE '否' END AS 开票状态, `；`执行状态, `；`CASE WHEN 执行状态 = 1 THEN '可执行' ELSE '不可执行' END AS 执行状态文本, `；`完成数量, `
- `生产管理_外协报表_查询`：`@状态过滤 int = 0, `；`MIN(计划完成时间) AS 计划完成时间, `；`MAX(完成数量) AS 完成数量, `；`MAX(CASE WHEN 订单行号 = 1 OR ISNULL(收检合格数, 0) > 0 THEN 1 ELSE 0 END) AS 执行状态, `；`(@状态过滤 = 0 OR MAX(CASE WHEN ISNULL(收料数量_报工, 0) < ISNULL(发料数量合计, 0) THEN 1 ELSE 0 END) = 1)`；`计划完成时间, `；`执行状态, `；`CASE WHEN 执行状态 = 1 THEN '可执行' ELSE '不可执行' END AS 执行状态文本, `

### 数据库调用链

- `src/views/ProductionManagement/OutsourceSheet/index.vue` -> `生产管理_外协报表_导出` -> 未在 SQL 中解析到明确依赖 -> 外协业务处理
- `src/views/ProductionManagement/OutsourceSheet/index.vue` -> `生产管理_外协报表_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据

### 存储过程处理逻辑明细

- `生产管理_外协报表_导出` 属于 外协协同，前端以 type=2001（导出/报表类过程）调用，页面用途是 外协业务处理。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@订单号 int`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@供应商 nvarchar(100)`、`@状态过滤 int`。 主要返回字段线索：`订单号, `、`拆分内码, `、`MAX(计划号) AS 计划号, `、`MAX(合同号) AS 合同号, `、`MAX(产品编码) AS 产品编码, `、`MAX(产品名称) AS 产品名称, `、`MAX(供应商名称) AS 供应商名称, `、`MAX(指派数量) AS 指派数量, `、`MAX(含税单价) AS 含税单价, `、`MAX(含税行总计) AS 含税行总计, `。 关键过滤/匹配条件：`MAX(CASE WHEN 订单行号 = 1 OR ISNULL(收检合格数, 0) > 0 THEN 1 ELSE 0 END) AS 执行状态, `；`WHERE d2.订单号 = d.订单号 AND d2.拆分内码 = d.拆分内码`；`WHERE 1 = 1`；`AND (@订单号 = 0 OR d.订单号 = @订单号)`；`AND (@产品编码 = '' OR d.产品编码 LIKE '%' + @产品编码 + '%')`；`AND (@产品名称 = '' OR d.产品名称 LIKE '%' + @产品名称 + '%')`；`(@供应商 = '' OR MAX(CASE WHEN 供应商名称 LIKE '%' + @供应商 + '%' THEN 1 ELSE 0 END) = 1)`；`AND`；`(@状态过滤 = 0 OR MAX(CASE WHEN ISNULL(收料数量_报工, 0) < ISNULL(发料数量合计, 0) THEN 1 ELSE 0 END) = 1)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON`。 排序/分组/分页线索：`ORDER BY d2.订单行号`；`GROUP BY 订单号, 拆分内码`；`HAVING`；`ORDER BY 订单号`。 实现特征：临时表 `#MergedResult`。
- `生产管理_外协报表_查询` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、分页、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@订单号 int`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@计划号 nvarchar(50)`、`@供应商 nvarchar(100)`、`@状态过滤 int`、`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`。 主要返回字段线索：`订单号, `、`拆分内码, `、`MAX(计划号) AS 计划号, `、`MAX(合同号) AS 合同号, `、`MAX(产品编码) AS 产品编码, `、`MAX(产品名称) AS 产品名称, `、`MAX(供应商名称) AS 供应商名称, `、`MAX(指派数量) AS 指派数量, `、`MAX(含税单价) AS 含税单价, `、`MAX(含税行总计) AS 含税行总计, `。 关键过滤/匹配条件：`MAX(CASE WHEN 订单行号 = 1 OR ISNULL(收检合格数, 0) > 0 THEN 1 ELSE 0 END) AS 执行状态, `；`WHERE d2.订单号 = d.订单号 AND d2.拆分内码 = d.拆分内码`；`WHERE 1 = 1`；`and isnull(供应商名称, '') ''`；`AND (@订单号 = 0 OR d.订单号 = @订单号)`；`AND (@计划号 = '' OR d.计划号 = @计划号)`；`AND (@合同号 = '' OR d.合同号 LIKE '%' + @合同号 + '%')`；`AND (@产品编码 = '' OR d.产品编码 LIKE '%' + @产品编码 + '%')`；`AND (@产品名称 = '' OR d.产品名称 LIKE '%' + @产品名称 + '%')`；`AND (@供应商 = '' OR d.供应商名称 LIKE '%' + @供应商 + '%')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON`；`SET @PageCount = 0`；`SET @PageCount = CEILING(CAST(@ItemCount AS FLOAT) / @PageSize)`。 排序/分组/分页线索：`ORDER BY d2.订单行号`；`ROW_NUMBER() OVER (ORDER BY 订单号) AS RowNum`；`GROUP BY 订单号, 拆分内码, 供应商名称`；`HAVING`；`ORDER BY 订单号, 供应商名称`。 实现特征：分页、临时表 `#MergedResult`。

## 35. src/views/ProductionManagement/PersonnelBinding/index.vue

**页面位置**：`src/views/ProductionManagement/PersonnelBinding/index.vue`  
**所属模块**：ProductionManagement / PersonnelBinding  
**源码行数**：235

### 页面功能

该页面维护工位与人员绑定关系。用于限制或提示哪些人员可在指定工位报工、开工或执行任务。

页面可见的操作/字段包括 “查询”、“绑定人员”、“确 定”、“取 消”、“序号”、“工位名称”、“工位号”、“操作”、“请输入工位名称”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`系统管理_人员管理_所有有效人员查询`、`系统管理_工位管理_工位绑定人员查询`、`系统管理_工位管理_工位绑定人员保存` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `系统管理_人员管理_所有有效人员查询` -> `系统管理_工位管理_工位绑定人员查询` -> `系统管理_工位管理_工位绑定人员保存` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`绑定人员`、`确 定`、`取 消`、`序号`、`工位名称`、`工位号`、`操作`、`请输入工位名称`

主要方法线索：`searchData`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工位名称` | - | `[Name] as 工位名称` |
| 显示列 | `工位号` | - | `[VisCode] as 工位号` |
| 显示列 | `绑定人员` | - | `绑定人员` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `searchWorkstationName` | - | - |
| 输入字段 | `selectedPersonnel` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 108 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 122 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 143 | 11（当前通用存储过程查询/执行） | `系统管理_工位管理_工位绑定人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 183 | 11（当前通用存储过程查询/执行） | `系统管理_工位管理_工位绑定人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 204 | 11（当前通用存储过程查询/执行） | `系统管理_工位管理_工位绑定人员保存` | 更新/保存业务数据 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `系统管理_工位管理_工位绑定人员查询`：`AND wb.绑定状态 = 1`
- `系统管理_工位管理_工位绑定人员查询`：`AND wb.绑定状态 = 1`
- `系统管理_工位管理_工位绑定人员保存`：`SET 绑定状态 = 0`；`WHERE 工位号 = @工位号 AND 绑定状态 = 1;`；`INSERT INTO 工位人员绑定表 (工位号, 人员编号, 绑定时间, 绑定人, 绑定状态)`

### 数据库调用链

- `src/views/ProductionManagement/PersonnelBinding/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/PersonnelBinding/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/PersonnelBinding/index.vue` -> `系统管理_工位管理_工位绑定人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/PersonnelBinding/index.vue` -> `系统管理_工位管理_工位绑定人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/PersonnelBinding/index.vue` -> `系统管理_工位管理_工位绑定人员保存` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `系统管理_工位管理_工位绑定人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 入参/分页参数：`@工位号 NVARCHAR(50)`。 主要返回字段线索：`p.Personnel_Number AS 人员编号, `、`p.Personnel_Name AS 人员姓名, `、`p.account AS 账号, `、`p.Roles_Function AS 角色, `、`wb.绑定时间`。 关键过滤/匹配条件：`WHERE wb.工位号 = @工位号`；`AND wb.绑定状态 = 1`；`AND p.Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY p.Personnel_Name;`。
- `系统管理_工位管理_工位绑定人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 入参/分页参数：`@工位号 NVARCHAR(50)`。 主要返回字段线索：`p.Personnel_Number AS 人员编号, `、`p.Personnel_Name AS 人员姓名, `、`p.account AS 账号, `、`p.Roles_Function AS 角色, `、`wb.绑定时间`。 关键过滤/匹配条件：`WHERE wb.工位号 = @工位号`；`AND wb.绑定状态 = 1`；`AND p.Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY p.Personnel_Name;`。
- `系统管理_工位管理_工位绑定人员保存` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`工位人员绑定表`。 入参/分页参数：`@工位号 NVARCHAR(50),`、`@人员编号列表 NVARCHAR(MAX)`。 主要返回字段线索：`CAST(value AS INT)`。 关键过滤/匹配条件：`WHERE 工位号 = @工位号 AND 绑定状态 = 1;`；`IF @人员编号列表 IS NOT NULL AND LEN(LTRIM(RTRIM(@人员编号列表))) > 0`；`WHERE LTRIM(RTRIM(value)) ! = '';`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE 工位人员绑定表`；`SET 绑定状态 = 0`；`INSERT INTO #临时人员表 (人员编号)`；`INSERT INTO 工位人员绑定表 (工位号, 人员编号, 绑定时间, 绑定人, 绑定状态)`。 实现特征：事务控制、异常捕获、临时表 `#临时人员表`。

## 36. src/views/ProductionManagement/PickingTask/index.vue

**页面位置**：`src/views/ProductionManagement/PickingTask/index.vue`  
**所属模块**：ProductionManagement / PickingTask  
**源码行数**：438

### 页面功能

该页面处理拣配任务。用户查询生产订单相关拣配/领料任务，并可能联动 SAP 生产订单或库存出入库状态。

页面可见的操作/字段包括 “查询”、“转至 完成 --> 生产订单 加急数量 物料编号 关闭”、“装配”、“机加”、“全部”、“一楼”、“二楼”、“仓库”、“已完成”、“未完成”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_拣配任务_查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `生产管理_拣配任务_查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`转至 完成 --> 生产订单 加急数量 物料编号 关闭`、`装配`、`机加`、`全部`、`一楼`、`二楼`、`仓库`、`已完成`、`未完成`、`序号`、`项目`、`计划号`、`生产订单号`、`物料名称`、`产成品物料编号`、`计划生产数`、`加急数量`

主要方法线索：`tableRowClassName`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.零件编码` | `@物料编号` | - |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.positionstate` | `@位置` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `项目` | - | `项目` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `生产订单号` | - | `生产订单号` |
| 显示列 | `物料名称` | - | `物料名称` |
| 显示列 | `产成品物料编号` | - | `产成品物料编号` |
| 显示列 | `计划生产数` | - | `计划生产数` |
| 显示列 | `加急数量` | - | `加急数量` |
| 显示列 | `计划数量` | - | `计划数量` |
| 显示列 | `拣配日期` | - | `拣配日期` |
| 显示列 | `预计齐套时间` | - | `预计齐套时间` |
| 显示列 | `检验操作人` | - | `检测人` |
| 显示列 | `检验时间` | - | `检测时间` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `contractNo` | `@合同号` | - |
| 输入字段 | `orderNo` | `@订单号` | - |
| 输入字段 | `partNo` | `@零件编号` | - |
| 输入字段 | `attribute` | - | - |
| 输入字段 | `positionstate` | `@位置` | - |
| 输入字段 | `finishstate` | - | - |
| 输入字段 | `item.订单编号` | - | - |
| 输入字段 | `item.加急数量` | - | - |
| 输入字段 | `item.物料编号` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 326 | 11（当前通用存储过程查询/执行） | `生产管理_拣配任务_查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_MES_TASK_MERGE` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 生产管理_拣配任务_查询: SAP.SBO_YL.dbo.UBT_MES_TASK_MERGE

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `生产管理_拣配任务_查询`：`CREATE PROCEDURE [dbo].[生产管理_拣配任务_查询]`；`SET @selectStr = N' select top 50 * from SAP.SBO_YL.dbo.UBT_MES_TASK_MERGE '`

### 数据库调用链

- `src/views/ProductionManagement/PickingTask/index.vue` -> `生产管理_拣配任务_查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_MES_TASK_MERGE` -> 查询/读取数据

### 存储过程处理逻辑明细

- `生产管理_拣配任务_查询` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_MES_TASK_MERGE`。 入参/分页参数：`@合同号 NVARCHAR(100)`、`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@位置 NVARCHAR(100)`。 主要返回字段线索：`top 50 *`。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE 1 = 1 '`；`SET @selectStrWhere = @selectStrWhere + ' AND 项目 LIKE ''%' + REPLACE(@合同号, '''', '''''') + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 生产订单号 = '+@订单号+''`；`SET @selectStrWhere = @selectStrWhere + ' AND 产成品物料编号 LIKE ''%' + REPLACE(@零件编号, '''', '''''') + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 位置 = ''一楼拣配'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 位置 = ''二楼拣配'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 位置 = ''二楼主子机加'''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @selectStrWhere = @selectStrWhere + ' AND 项目 LIKE ''%' + REPLACE(@合同号, '''', '''''') + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 生产订单号 = '+@订单号+''`；`SET @selectStrWhere = @selectStrWhere + ' AND 产成品物料编号 LIKE ''%' + REPLACE(@零件编号, '''', '''''') + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 位置 = ''一楼拣配'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 位置 = ''二楼拣配'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 位置 = ''二楼主子机加'''`；`SET @selectStr = N' select top 50 * from SAP.SBO_YL.dbo.UBT_MES_TASK_MERGE '`；`set @selectStr = @selectStr + @selectStrWhere`。 实现特征：读取 SAP 数据库对象。

## 37. src/views/ProductionManagement/ProductionPlanTrack/index.vue

**页面位置**：`src/views/ProductionManagement/ProductionPlanTrack/index.vue`  
**所属模块**：ProductionManagement / ProductionPlanTrack  
**源码行数**：682

### 页面功能

该页面跟踪生产计划执行。用户查看计划任务的开工、完工、进度、延期或异常情况，用于计划员追踪订单。

页面可见的操作/字段包括 “查询”、“关闭”、“全部”、“机加”、“装配”、“是”、“否”、“加急”、“正常”、“序号”，这些是判断页面业务范围的主要线索。

后端主要围绕 `加急订单_加急明细查询`、`生产管理_生产计划跟踪`、`MES_OrderPlanned_DescriptionEdit`、`Prog_MES_LoadStations` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `加急订单_加急明细查询` -> `生产管理_生产计划跟踪` -> `MES_OrderPlanned_DescriptionEdit` -> `Prog_MES_LoadStations` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`关闭`、`全部`、`机加`、`装配`、`是`、`否`、`加急`、`正常`、`序号`、`工序名称`、`计划数量`、`指派对象`、`外协`、`计划开始时间`、`计划结束时间`、`实际开始时间`、`实际结束时间`

主要方法线索：`Urgent`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.产品编码` | `@物料编号` | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 参数 | `this.orderNo ` | `@订单号` | - |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.productCode` | `@产品编码` | - |
| 参数 | `this.productName` | `@产品名称` | - |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.planendTime[0` | `@计划完成1` | - |
| 参数 | `this.planendTime[1` | `@计划完成2` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `this.selfStatus` | `@自制件属性` | `自制件属性, ` |
| 参数 | `'全部'` | `@指派对象` | - |
| 参数 | `this.plannum` | `@计划号` | `v.计划号, ` |
| 参数 | `this.urgentStatus` | `@加急状态` | - |
| 参数 | `this.outsourceStatus === '是' ? 1 : 0` | `@是否外协` | - |
| 参数 | `this.currentRow.订单号` | `@订单号` | - |
| 参数 | `this.currentRow.订单行号` | `@订单行号` | - |
| 参数 | `this.currentRow.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.editForm.优先级` | `@优先级` | - |
| 参数 | `this.editForm.未完成说明` | `@未完成说明` | - |
| 参数 | `this.editForm.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@最后编辑人` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `计划数量` | - | `计划数量` |
| 显示列 | `指派对象` | - | `指派对象` |
| 显示列 | `外协` | - | `外协` |
| 显示列 | `计划开始时间` | - | `计划开始时间` |
| 显示列 | `计划结束时间` | - | `计划完成时间` |
| 显示列 | `实际开始时间` | - | `开始时间` |
| 显示列 | `实际结束时间` | - | `实际结束时间` |
| 显示列 | `完成进度` | - | `进度` |
| 显示列 | `完成数量` | - | `完成数量` |
| 显示列 | `外协发料数量` | - | `收料数量` |
| 显示列 | `合格数` | - | `收检合格数` |
| 显示列 | `不良数` | - | `收检不合格数` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 259 | 11（当前通用存储过程查询/执行） | `加急订单_加急明细查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` |
| 487 | 11（当前通用存储过程查询/执行） | `生产管理_生产计划跟踪` | 计划排产或派工 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`、`View_生产订单全部（包括已关闭）` |
| 521 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 580 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 加急订单_加急明细查询: SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `加急订单_加急明细查询`：`SELECT docentry as 订单编号, itemcode as 物料编号, 加急数量 from SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`
- `生产管理_生产计划跟踪`：`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`@加急状态 nvarchar(50) = ''`；`拣配状态, `；`when isnull(任务状态, 0) = 4 then ''已完成''`；`when isnull(任务状态, 0) = 2 then ''已开工''`；`when isnull(任务状态, 0) = 0 then ''待执行''`
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `

### 数据库调用链

- `src/views/ProductionManagement/ProductionPlanTrack/index.vue` -> `加急订单_加急明细查询` -> 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` -> 查询/读取数据
- `src/views/ProductionManagement/ProductionPlanTrack/index.vue` -> `生产管理_生产计划跟踪` -> 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`、`View_生产订单全部（包括已关闭）` -> 计划排产或派工
- `src/views/ProductionManagement/ProductionPlanTrack/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/ProductionPlanTrack/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据

### 存储过程处理逻辑明细

- `加急订单_加急明细查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`docentry as 订单编号, itemcode as 物料编号, 加急数量`。 关键过滤/匹配条件：`where itemcode = @物料编号`。 实现特征：读取 SAP 数据库对象。
- `生产管理_生产计划跟踪` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`、`View_生产订单全部（包括已关闭）`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@自制件属性 nvarchar(50)`、`@计划号 nvarchar(50)`、`@加急状态 nvarchar(50)`。 主要返回字段线索：`top 200`、`v.计划号, `、`加急总数, `、`拣配状态, `、`自制件属性, `、`入库数量, `、`case`、`when isnull(任务状态, 0) = 4 then ''已完成''`、`when isnull(任务状态, 0) = 2 then ''已开工''`、`when isnull(任务状态, 0) = 0 then ''待执行''`。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE [物料类型] = ''pit_Resource'' '`；`WHERE d2.订单编号 = v.订单编号 order by d2.订单行号`；`WHERE 质检类型 = ''终检''`；`WHERE 质检类型 = ''收检''`；`SET @selectStrWhere = @selectStrWhere + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @selectStrWhere = @selectStrWhere + ' AND v.[计划号] = '''+@计划号+''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [合同号] LIKE ''%' + @合同号 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @产品编码 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料描述] LIKE ''%' + @产品名称 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [工序名称] = ''' + @工序名称 + ''''`。 关键写入/状态处理语句线索：`SET @selectStr = N'`；`SET @selectStrWhere = @selectStrWhere + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @selectStrWhere = @selectStrWhere + ' AND v.[计划号] = '''+@计划号+''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [合同号] LIKE ''%' + @合同号 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @产品编码 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料描述] LIKE ''%' + @产品名称 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [工序名称] = ''' + @工序名称 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] > = ''' + @要求完工日期1 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] < = ''' + @要求完工日期2 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] > = ''' + @计划开始1 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] < = ''' + @计划开始2 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划完成时间] > = ''' + @计划完成1 + ''''`。 排序/分组/分页线索：`WHERE d2.订单编号 = v.订单编号 order by d2.订单行号`；`GROUP BY TaskAID`；`SET @selectStrWhere = @selectStrWhere + ' ORDER BY [计划完成] ASC, [订单编号] ASC'`。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。

## 38. src/views/ProductionManagement/ProductionTaskManage/index.vue

**页面位置**：`src/views/ProductionManagement/ProductionTaskManage/index.vue`  
**所属模块**：ProductionManagement / ProductionTaskManage  
**源码行数**：735

### 页面功能

该页面管理生产任务。用户按工位、订单、工序查询任务，查看工时汇总，执行派工、修改计划字段、维护任务说明和通知状态。

页面可见的操作/字段包括 “查询”、“表单”、“日程”、“派工调整”、“外协通知”、“已发起”、“编辑”、“取 消”、“确 定”、“item.指南工位号”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`MES_OrderPlanned_SingleTaskPlanned`、`MES_ProductTask_WorkTimeSum`、`MES_ProductAdmin_Query`、`Prog_MES_LoadStations`、`Prog_MES_SingleTaskPlanned` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `MES_OrderPlanned_SingleTaskPlanned` -> `MES_ProductTask_WorkTimeSum` -> `MES_ProductAdmin_Query` -> `Prog_MES_LoadStations` -> `Prog_MES_SingleTaskPlanned` -> `MES_OrderPlanned_DescriptionEdit` -> `MES_ProductTask_Notice` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`表单`、`日程`、`派工调整`、`外协通知`、`已发起`、`编辑`、`取 消`、`确 定`、`item.指南工位号`、`序号`、`销售订单`、`生产订单`、`零件编码`、`产品名称`、`计划数`、`工序名称`、`性质`

主要方法线索：`getDoing`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.订单号` | `@订单号` | - |
| 参数 | `row.订单行号` | `@订单行号` | - |
| 参数 | `row.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.$refs.formData.model.指派对象编号` | `@指派对象编号` | - |
| 参数 | `this.$refs.formData.model.指派对象` | `@指派对象` | - |
| 参数 | `this.$refs.formData.model.指派数量` | `@指派数量` | - |
| 参数 | `this.$refs.formData.model.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$refs.formData.model.计划开始时间` | `@计划开始时间` | - |
| 参数 | `this.$refs.formData.model.计划完成时间` | `@计划完成时间` | - |
| 参数 | `this.$refs.formData.model.最晚开始时间` | `@最晚开始时间` | - |
| 参数 | `this.$store.state.user.name` | `@派工操作人` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@计划开工_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@计划开工_End` | - |
| 参数 | `this.orderNo ` | `@订单号` | - |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.productCode` | `@产品编码` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.productName` | `@产品名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.processName` | `@工序名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.nature` | `@性质` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.completionTime ? this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 参数 | `this.Doing.toString()` | `@工位` | - |
| 参数 | `this.selectedRow.订单号` | `@订单号` | - |
| 参数 | `this.selectedRow.订单行号` | `@订单行号` | - |
| 参数 | `this.selectedRow.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.taskForm.指派对象编号` | `@指派对象编号` | - |
| 参数 | `this.taskForm.指派对象` | `@指派对象` | - |
| 参数 | `this.taskForm.指派数量` | `@指派数量` | - |
| 参数 | `this.taskForm.派工特殊说明 ` | `@派工特殊说明` | - |
| 参数 | `this.taskForm.计划开始时间 ` | `@计划开始时间` | - |
| 参数 | `this.taskForm.计划完成时间 ` | `@计划完成时间` | - |
| 参数 | `this.taskForm.最晚开始时间 ` | `@最晚开始时间` | - |
| 参数 | `this.currentRow.订单号` | `@订单号` | - |
| 参数 | `this.currentRow.订单行号` | `@订单行号` | - |
| 参数 | `this.currentRow.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.editForm.优先级` | `@优先级` | - |
| 参数 | `this.editForm.未完成说明` | `@未完成说明` | - |
| 参数 | `this.editForm.派工特殊说明` | `@派工特殊说明` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 366 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 406 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_SingleTaskPlanned` | 计划排产或派工 | 查询、新增、更新、删除、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 427 | 11（当前通用存储过程查询/执行） | `MES_ProductTask_WorkTimeSum` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 459 | 11（当前通用存储过程查询/执行） | `MES_ProductAdmin_Query` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 视图：`View_生产订单_MES` |
| 476 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 519 | 12（当前通用存储过程写入/业务动作） | `Prog_MES_SingleTaskPlanned` | 计划排产或派工 | 未找到过程体 | 未知 |
| 554 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 575 | 12（当前通用存储过程写入/业务动作） | `MES_ProductTask_Notice` | 业务存储过程调用 | 更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 656 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_OrderPlanned_SingleTaskPlanned`：`@派工特殊说明 nvarchar(500) = '', `；`@计划完成时间 nvarchar(50) = '', `；`@派工操作人 nvarchar(50) = ''`；`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`INSERT INTO [MES_接口_生产计划_生产任务]`
- `MES_ProductTask_WorkTimeSum`：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`
- `MES_ProductAdmin_Query`：`@排产状态 nvarchar(50) = '全部', `；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`；`, [优先级], [未完成说明], [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], '''' as 合同交货期, [计划完成] as 预计齐套时间, ''齐'' as 是否齐套, '''' as 齐套检测, ''是'' as 齐套锁料, [计划开始] as 备料日期, 0 as 加急`；`, [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], TaskAID`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `MES_ProductTask_Notice`：`UPDATE [MES_接口_生产计划_生产任务] set [外协通知] = @外协通知 where [AID] = @TaskAID`
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`

### 数据库调用链

- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `MES_OrderPlanned_SingleTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `MES_ProductTask_WorkTimeSum` -> 未在 SQL 中解析到明确依赖 -> 报工或工时处理
- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `MES_ProductAdmin_Query` -> 视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `Prog_MES_SingleTaskPlanned` -> 过程体未解析 -> 计划排产或派工
- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `MES_ProductTask_Notice` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 业务存储过程调用
- `src/views/ProductionManagement/ProductionTaskManage/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_OrderPlanned_SingleTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、删除、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`、`@指派对象编号 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@指派数量 int`、`@派工特殊说明 nvarchar(500)`、`@计划开始时间 nvarchar(50)`、`@计划完成时间 nvarchar(50)`、`@最晚开始时间 nvarchar(50)`、`@派工操作人 nvarchar(50)`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`if(select count(1) from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0)>0`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`select @拆分内码_New = max([订单拆分内码])+1 from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号`；`FROM [MES_接口_生产计划_生产任务] WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`；`select @未指派数量_剩余 = 计划数量+@指派数量_Free from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`WHERE [订单编号] = @订单号 AND [订单行号] = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`set @指派数量_Free = @计划数量-@指派数量`；`Update [MES_接口_生产计划_生产任务] set [计划数量] = [计划数量]+@指派数量_Free WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and isnull(派工状态, 0) = 0`；`INSERT INTO [MES_接口_生产计划_生产任务]`；`set @ErrMsg = '指派数量大于剩余未分配数量，派工失败'`；`delete from [MES_接口_生产计划_生产任务] where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码@订单拆分内码 and isnull(派工状态, 0) = 0`；`if(@最晚开始时间 = '') set @最晚开始时间 = NULL`；`if(@计划开始时间 = '') set @计划开始时间 = NULL`；`if(@计划完成时间 = '') set @计划完成时间 = NULL`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET [指派对象编号] = @指派对象编号`。
- `MES_ProductTask_WorkTimeSum` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`。 主要返回字段线索：`TaskAID, 工序名称, sum(工时) as 总工时`。 关键过滤/匹配条件：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。 排序/分组/分页线索：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。
- `MES_ProductAdmin_Query` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@性质 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@工位 nvarchar(500)`。 主要返回字段线索：`top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`、`[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`、`[优先级], [未完成说明], [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'''`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`；`else if(@排产状态 = '已完成')set @selectStrWhere = @selectStrWhere + ' and [排产状态] = 1'`；`if(@物料类型 = '自制件') set @selectStrWhere = @selectStrWhere + ' and [不装配] ''否'''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `Prog_MES_SingleTaskPlanned` 属于 通用业务，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `MES_ProductTask_Notice` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID BIGINT,`、`@外协通知 int`。 关键过滤/匹配条件：`UPDATE [MES_接口_生产计划_生产任务] set [外协通知] = @外协通知 where [AID] = @TaskAID`。 关键写入/状态处理语句线索：`UPDATE [MES_接口_生产计划_生产任务] set [外协通知] = @外协通知 where [AID] = @TaskAID`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。

## 39. src/views/ProductionManagement/ProductionTasksSum/index.vue

**页面位置**：`src/views/ProductionManagement/ProductionTasksSum/index.vue`  
**所属模块**：ProductionManagement / ProductionTasksSum  
**源码行数**：533

### 页面功能

该页面做生产任务汇总。用户按订单、工序、工位、时间等维度查询生产任务和工时汇总，并可编辑计划说明或派工信息。

页面可见的操作/字段包括 “查询”、“编辑”、“取 消”、“确 定”、“item.指南工位号”、“表单”、“序号”、“销售订单”、“生产订单”、“零件编码”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`MES_ProductTask_WorkTimeSum`、`生产管理_生产任务汇总`、`Prog_MES_LoadStations`、`MES_OrderPlanned_DescriptionEdit`、`MES_OrderPlanned_EditTaskPlanned` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `MES_ProductTask_WorkTimeSum` -> `生产管理_生产任务汇总` -> `Prog_MES_LoadStations` -> `MES_OrderPlanned_DescriptionEdit` -> `MES_OrderPlanned_EditTaskPlanned` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`编辑`、`取 消`、`确 定`、`item.指南工位号`、`表单`、`序号`、`销售订单`、`生产订单`、`零件编码`、`产品名称`、`计划数`、`工序名称`、`总工时`、`占用情况`、`计划开始时间`、`计划完成时间`、`最晚开始时间`

主要方法线索：`getDoing`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.completionTime ? this.completionTime[0` | `@计划开工_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@计划开工_End` | - |
| 参数 | `this.orderNo ` | `@订单号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.productCode` | `@产品编码` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.productName` | `@产品名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.processName` | `@工序名称` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.nature` | `@性质` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.completionTime ? this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 参数 | `this.Doing.toString()` | `@工位` | - |
| 参数 | `this.currentRow.订单号` | `@订单号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `this.currentRow.订单行号` | `@订单行号` | - |
| 参数 | `this.currentRow.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.editForm.优先级` | `@优先级` | - |
| 参数 | `this.editForm.未完成说明` | `@未完成说明` | - |
| 参数 | `this.editForm.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@最后编辑人` | - |
| 参数 | `editstr` | `@editstr` | - |
| 参数 | `taskInfo.订单号` | `@订单号` | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 参数 | `taskInfo.订单行号` | `@订单行号` | - |
| 参数 | `taskInfo.拆分内码` | `@订单拆分内码` | - |
| 参数 | `startTime` | `@计划开始时间` | - |
| 参数 | `endTime` | `@计划完成时间` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `销售订单` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `生产订单` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `零件编码` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `产品名称` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `计划数` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `工序名称` | - | `TaskAID, 工序名称, sum(工时) as 总工时` |
| 显示列 | `总工时` | - | `TaskAID, 工序名称, sum(工时) as 总工时` |
| 显示列 | `占用情况` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `计划开始时间` | - | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 显示列 | `计划完成时间` | - | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 显示列 | `最晚开始时间` | - | `[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]` |
| 显示列 | `要求完工日期` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |
| 显示列 | `收料` | - | `top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- FullCalendar

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 254 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 274 | 11（当前通用存储过程查询/执行） | `MES_ProductTask_WorkTimeSum` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 318 | 11（当前通用存储过程查询/执行） | `生产管理_生产任务汇总` | 业务存储过程调用 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 视图：`View_生产订单_MES` |
| 336 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 373 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 453 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_EditTaskPlanned` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_ProductTask_WorkTimeSum`：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`
- `生产管理_生产任务汇总`：`CREATE PROCEDURE [dbo].[生产管理_生产任务汇总]`；`@排产状态 nvarchar(50) = '全部', `；`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and 加工状态 in (2, 4) '`；`SELECT top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`；`, [排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`；`, [优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], `；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `
- `MES_OrderPlanned_EditTaskPlanned`：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`

### 数据库调用链

- `src/views/ProductionManagement/ProductionTasksSum/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/ProductionManagement/ProductionTasksSum/index.vue` -> `MES_ProductTask_WorkTimeSum` -> 未在 SQL 中解析到明确依赖 -> 报工或工时处理
- `src/views/ProductionManagement/ProductionTasksSum/index.vue` -> `生产管理_生产任务汇总` -> 视图：`View_生产订单_MES` -> 业务存储过程调用
- `src/views/ProductionManagement/ProductionTasksSum/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/ProductionManagement/ProductionTasksSum/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/ProductionTasksSum/index.vue` -> `MES_OrderPlanned_EditTaskPlanned` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `MES_ProductTask_WorkTimeSum` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`。 主要返回字段线索：`TaskAID, 工序名称, sum(工时) as 总工时`。 关键过滤/匹配条件：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。 排序/分组/分页线索：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。
- `生产管理_生产任务汇总` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@性质 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@工位 nvarchar(500)`。 主要返回字段线索：`top 100 isnull([不合格数量], 0) as 不合格数量, [收料数量], [合同号], [订单编号] as 订单号, [订单行号], [订单拆分内码] as 拆分内码, [物料编号] as 产品编码, [物料描述] as 产品名称, [计划数量], [计划完成] as 要求完工日期, [工序名称], [加急状态], 性质, 总工时, [占用情况]`、`[排产状态], [工序计划数量], 指派对象编号, 指派对象, 指派数量, 计划开始时间, 计划完成时间, 最晚开始时间, [派工状态], [外协通知]`、`[优先级], [未完成说明], [派工特殊说明], [最后编辑人], [最后编辑时间], `、`isnull([可执行], 0) as 可执行, isnull([收料], 0) as [收料], isnull([开工], 0) as [开工], isnull([首检], 0) as [首检], isnull([巡检], 0) as [巡检], `、`isnull([进度], 0) as [进度], isnull([序检], 0) as [序检], isnull([测试], 0) as [测试], isnull([入库], 0) as [入库], TaskAID`。 关键过滤/匹配条件：`declare @selectStrWhere nvarchar(4000) = ' where [物料类型] = ''pit_Resource'' and 加工状态 in (2, 4) '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`。 关键写入/状态处理语句线索：`set @selectStr = '`；`if(@订单号>0)set @selectStrWhere = @selectStrWhere + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@合同号'')set @selectStrWhere = @selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''`；`if(@产品编码'')set @selectStrWhere = @selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''`；`if(@产品名称'')set @selectStrWhere = @selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''`；`if(@工序名称'')set @selectStrWhere = @selectStrWhere + ' and [工序名称] = '''+@工序名称+''''`；`if(@性质'')set @selectStrWhere = @selectStrWhere + ' and [性质] = '''+@性质+''''`；`if(@要求完工日期1 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] > = '''+@要求完工日期1+''''`；`if(@要求完工日期2 '')set @selectStrWhere = @selectStrWhere + ' and [计划完成] < = '''+@要求完工日期2+''''`；`if(@排产状态 = '未完成')set @selectStrWhere = @selectStrWhere + ' and isnull([排产状态], 0) = 0'`；`else if(@排产状态 = '已完成')set @selectStrWhere = @selectStrWhere + ' and [排产状态] = 1'`；`if(@物料类型 = '自制件') set @selectStrWhere = @selectStrWhere + ' and [不装配] ''否'''`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `MES_OrderPlanned_EditTaskPlanned` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@editstr nvarchar(50),`、`@订单号 int`、`@订单行号 int`、`@订单拆分内码 int`。 关键过滤/匹配条件：`declare @whereStr nvarchar(max) = ' where 1 = 1 '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`。 关键写入/状态处理语句线索：`declare @updateStr nvarchar(max) = 'update [MES_接口_生产计划_生产任务] set '`；`if(@订单号>0)set @whereStr = @whereStr + ' and [订单编号] = '+Convert(VARCHAR(10), @订单号)`；`if(@订单行号>0)set @whereStr = @whereStr + ' and [订单行号] = '+Convert(VARCHAR(10), @订单行号)`；`if(@订单拆分内码>0)set @whereStr = @whereStr + ' and [订单拆分内码] = '+Convert(VARCHAR(10), @订单拆分内码)`；`if(@editstr'')set @updateStr = @updateStr + @editstr`；`set @selStr = @updateStr+@whereStr`。

## 40. src/views/ProductionManagement/SaleOutsourceMange/index.vue

**页面位置**：`src/views/ProductionManagement/SaleOutsourceMange/index.vue`  
**所属模块**：ProductionManagement / SaleOutsourceMange  
**源码行数**：1630

### 页面功能

该页面管理外协任务。用户查询可外协工序，按供应商/订单/工序分组，执行外协派工并同步 SAP 采购请求或相关单据，维护外协发料、收料、质检记录、打印次数和备注。

页面可见的操作/字段包括 “查询 派工并同步SAP”、“打印”、“发料”、“收货”、“更新”、“编辑”、“历史记录”、“查看图纸”、“工艺图纸”、“收发记录”，这些是判断页面业务范围的主要线索。

后端主要围绕 `计划排产_重置派工状态`、`生产管理_外协管理_外协历史查询`、`计划排产_派工`、`生产管理_外协管理_更新打印次数`、`生产管理_外协管理_更新备注`、`工艺管理_图纸维护_查看图纸` 等过程 取数或提交业务动作。

### 页面流程图

外协业务流程：

```mermaid
flowchart LR
  A[输入订单/合同/供应商/工序条件] --> B[查询外协任务或外协报表]
  B --> C[选择外协工序/供应商]
  C --> D[计划排产_派工 或外协分组]
  D --> E[POST SAP 采购/外协相关请求]
  E --> F[外协发料查询/保存]
  F --> G[外协收料/质检记录]
  G --> H[更新打印次数/备注/报表状态]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询 派工并同步SAP`、`打印`、`发料`、`收货`、`更新`、`编辑`、`历史记录`、`查看图纸`、`工艺图纸`、`收发记录`、`质检记录`、`取 消`、`确 定`、`关 闭`、`关闭`、`item.label`、`序号`、`生产订单`

主要方法线索：`updatedata`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.TaskAID` | `@TaskAID` | - |
| 参数 | `minTaskAID` | `@minTaskAID` | - |
| 参数 | `maxTaskAID` | `@TaskAID` | - |
| 参数 | `this.textcontent` | `@外协备注` | - |
| 参数 | `this.textweight` | `@单重` | - |
| 参数 | `this.textsum` | `@打印数量` | - |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.productCode` | `@产品编码` | - |
| 参数 | `this.itemName` | `@产品名称` | - |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.workstate` | `@派工状态` | - |
| 参数 | `this.issuingstate` | `@发料状态` | - |
| 参数 | `this.orderstate` | `@订单状态` | - |
| 参数 | `this.dostate` | `@执行状态` | - |
| 参数 | `this.plannum` | `@计划号` | - |
| 参数 | `maxTaskAID` | `@maxTaskAID` | - |
| 参数 | `this.$store.state.user.name` | `@optor` | - |
| 参数 | `this.receiveNum` | `@recievCount` | - |
| 参数 | `row.单重` | `@单重` | - |
| 参数 | `row.外协备注` | `@备注` | - |
| 参数 | `this.doNum` | `@recievCount` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `生产订单` | - | `订单号` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `物料名称` | - | `产品名称` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `物料编码` | - | `产品编码` |
| 显示列 | `计划开始时间` | - | `计划开始时间` |
| 显示列 | `计划完成时间` | - | `计划完成时间` |
| 显示列 | `同步状态` | - | `同步状态` |
| 显示列 | `上序合格数` | - | `上序合格数` |
| 显示列 | `指派数量` | - | `v.[指派数量], ` |
| 显示列 | `打印数量` | - | `打印数量` |
| 显示列 | `发料数量` | - | `v.[收料数量], ` |
| 显示列 | `收货数量` | - | `v.[完成数量], ` |
| 显示列 | `单重` | - | `单重` |
| 显示列 | `打印次数` | - | `外协打印次数` |
| 显示列 | `备注` | - | `外协备注` |
| 显示列 | `操作` | - | `操作描述, ` |
| 显示列 | `类型` | - | `操作类别` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 684 | 11（当前通用存储过程查询/执行） | `计划排产_重置派工状态` | 计划排产或派工 | 更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 715 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协历史查询` | 查询/读取数据 | 查询、处理外协业务 | 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` |
| 1030 | 12（当前通用存储过程写入/业务动作） | `计划排产_派工` | 计划排产或派工 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1086 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_更新打印次数` | 更新/保存业务数据 | 查询、新增、更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1108 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_更新备注` | 更新/保存业务数据 | 查询、新增、更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 1140 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 1159 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 1187 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_查询外协` | 查询/读取数据 | 查询、新增、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 1419 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协发料查询` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 1443 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_查询外协历史记录` | 查询/读取数据 | 查询、处理报工/工时、处理外协业务 | 表：`YL_加工中心_操作记录表` |
| 1468 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_查询质检记录` | 查询/读取数据 | 查询、处理质检数据、处理外协业务 | 表：`YL_质量检验_质检记录` |
| 1495 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协发料查询` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 1537 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协发料保存` | 更新/保存业务数据 | 查询、更新、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划` |
| 1572 | 11（当前通用存储过程查询/执行） | `生产管理_外协管理_外协收料保存` | 更新/保存业务数据 | 更新、处理报工/工时、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 1041 行：`postB1("/PurchaseRequests")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 1041 | `postB1` | `/PurchaseRequests` | 调用外部接口，失败会影响对应外部系统同步。 | `ReqType`、`Requester`、`PriceMode`、`RequesterBranch`、`RequesterDepartment`、`DocDate`、`DocDueDate`、`TaxDate`、`RequriedDate`、`Comments`、`DocumentLines`、`ItemCode` |

### 状态流转说明

- `计划排产_重置派工状态`：`CREATE PROCEDURE [dbo].[计划排产_重置派工状态]`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`[派工状态] = 0, `；`[派工时间] = GETDATE(), `
- `生产管理_外协管理_外协历史查询`：`FROM [dbo].[YL_加工中心_操作记录表]`
- `计划排产_派工`：`CREATE PROCEDURE [dbo].[计划排产_派工]`；`@派工操作人 NVARCHAR(50)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`[派工状态] = 1`；`, [派工时间] = getdate()`；`, [派工操作人] = @派工操作人`；`'成功' AS 状态, `
- `生产管理_外协管理_更新打印次数`：`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`'成功' AS 状态, `；`'错误' AS 状态, `
- `生产管理_外协管理_更新备注`：`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`'成功' AS 状态, `；`'错误' AS 状态, `
- `生产管理_外协管理_查询外协`：`@派工状态 int = 1, `；`@订单状态 int = 0, `；`@发料状态 int = 2`；`完成数量 nvarchar(50), `；`计划完成 datetime, `；`加急状态 nvarchar(50), `；`排产状态 nvarchar(20), `；`计划完成时间 datetime, `
- `生产管理_外协管理_外协发料查询`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `生产管理_外协管理_查询外协历史记录`：`select * from [dbo].[YL_加工中心_操作记录表] where 操作类别 in ('收料', '报工') and TaskAID = @maxTaskAID and isnull(操作数值, 0) 0`
- `生产管理_外协管理_查询质检记录`：`create PROCEDURE [dbo].[生产管理_外协管理_查询质检记录]`；`select * from [dbo].[YL_质量检验_质检记录] where TaskAID = @maxTaskAID`
- `生产管理_外协管理_外协发料查询`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `生产管理_外协管理_外协发料保存`：`declare @任务状态 int`；`select @任务状态 = isnull(任务状态, 0) from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`if(@任务状态 < = 1 )`；`Update MES_接口_生产计划_生产任务`；`set 任务状态 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `；`if(@任务状态 > 1 )`
- `生产管理_外协管理_外协收料保存`：`declare @任务状态 int`；`Update MES_接口_生产计划_生产任务`；`set 完成数量 = isnull(完成数量, 0)+@recievCount, `

### 数据库调用链

- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `计划排产_重置派工状态` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_外协历史查询` -> 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `计划排产_派工` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 计划排产或派工
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_更新打印次数` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_更新备注` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_查询外协` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_外协发料查询` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_查询外协历史记录` -> 表：`YL_加工中心_操作记录表` -> 查询/读取数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_查询质检记录` -> 表：`YL_质量检验_质检记录` -> 查询/读取数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_外协发料查询` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_外协发料保存` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据
- `src/views/ProductionManagement/SaleOutsourceMange/index.vue` -> `生产管理_外协管理_外协收料保存` -> 表：`MES_接口_生产计划` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `计划排产_重置派工状态` 属于 计划排产，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 计划排产或派工。 数据库处理摘要：更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID NVARCHAR(MAX)`。 关键过滤/匹配条件：`WHERE AID IN (' + @TaskAID + ')'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @Sql = '`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET`。
- `生产管理_外协管理_外协历史查询` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`操作描述, `、`最后编辑时间, `、`操作数值, `、`TaskAID`。 关键过滤/匹配条件：`WHERE [TaskAID] = @TaskAID and 操作类别 = '收料'`。
- `计划排产_派工` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 计划排产或派工。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX),`、`@派工操作人 NVARCHAR(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE AID IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET`。 实现特征：事务控制、临时表 `#TempOrders`。
- `生产管理_外协管理_更新打印次数` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE AID IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 外协打印次数 = ISNULL(外协打印次数, 0) + 1`。 实现特征：事务控制、异常捕获、临时表 `#TempOrders`。
- `生产管理_外协管理_更新备注` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单编号列表 NVARCHAR(MAX),`、`@外协备注 NVARCHAR(MAX)`、`@单重 NVARCHAR(50)`、`@打印数量 NVARCHAR(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE LTRIM(RTRIM(value)) '';`；`WHERE AID IN (SELECT 订单编号 FROM #TempOrders);`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempOrders (订单编号)`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 外协备注 = @外协备注, 单重 = @单重, 打印数量 = @打印数量`。 实现特征：事务控制、异常捕获、临时表 `#TempOrders`。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `生产管理_外协管理_查询外协` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、新增、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@派工状态 int`、`@订单状态 int`、`@计划号 nvarchar(50)`、`@发料状态 int`。 主要返回字段线索：`v.[订单编号], `、`v.[订单行号], `、`v.[物料编号], `、`v.[物料描述], `、`v.[完成数量], `、`v.[指派数量], `、`v.[外协分组], `、`v.[不合格数量], `、`v.[收料数量], `、`v.[合同号], `。 关键过滤/匹配条件：`WHERE v.[物料类型] = 'pit_Resource'`；`AND v.[指派对象] = '外协'`；`AND (@订单号 = 0 OR v.[订单编号] = @订单号)`；`AND (@计划号 = '' OR v.[计划号] LIKE '%' + @计划号 + '%')`；`AND (@产品编码 = '' OR v.[物料编号] LIKE '%' + @产品编码 + '%')`；`AND (@产品名称 = '' OR v.[物料描述] LIKE '%' + @产品名称 + '%')`；`AND (@工序名称 = '' OR v.[工序名称] LIKE '%' + @工序名称 + '%')`；`WHERE prev.订单编号 = bd.订单编号`；`AND prev.订单行号 = bd.订单行号 - 1`；`AND ISNULL(prev.外协分组, '') = ISNULL(bd.外协分组, '')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #BaseData (`。 排序/分组/分页线索：`ORDER BY ga.订单行号`；`GROUP BY 订单编号, 外协分组, 组ID`；`ORDER BY bd.订单编号, bd.订单行号`。 实现特征：临时表 `#BaseData`。
- `生产管理_外协管理_外协发料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@maxTaskAID bigint,`、`@minTaskAID bigint`。 主要返回字段线索：`@上序订单编号 = [订单编号], `、`@上序订单行号 = [订单行号]`。 关键过滤/匹配条件：`WHERE [TaskAID] = @minTaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = @上序订单行号 - 1`；`AND qc.检测类型编号 = '6'`；`WHERE qc.TaskAID = @minTaskAID`；`WHERE [TaskAID] = @maxTaskAID`。
- `生产管理_外协管理_查询外协历史记录` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理外协业务。 读取/关联对象：表：`YL_加工中心_操作记录表`。 入参/分页参数：`@maxTaskAID bigint`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from [dbo].[YL_加工中心_操作记录表] where 操作类别 in ('收料', '报工') and TaskAID = @maxTaskAID and isnull(操作数值, 0) 0`。
- `生产管理_外协管理_查询质检记录` 属于 外协协同，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`。 入参/分页参数：`@maxTaskAID bigint`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from [dbo].[YL_质量检验_质检记录] where TaskAID = @maxTaskAID`。
- `生产管理_外协管理_外协发料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@maxTaskAID bigint,`、`@minTaskAID bigint`。 主要返回字段线索：`@上序订单编号 = [订单编号], `、`@上序订单行号 = [订单行号]`。 关键过滤/匹配条件：`WHERE [TaskAID] = @minTaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = @上序订单行号 - 1`；`AND qc.检测类型编号 = '6'`；`WHERE qc.TaskAID = @minTaskAID`；`WHERE [TaskAID] = @maxTaskAID`。
- `生产管理_外协管理_外协发料保存` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@recievCount int,`、`@optor nvarchar(50),`、`@单重 nvarchar(50)`、`@备注 nvarchar(50)`。 主要返回字段线索：`@任务状态 = isnull(任务状态, 0)`。 关键过滤/匹配条件：`select @任务状态 = isnull(任务状态, 0) from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`where AID = @TaskAID`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务`；`set 任务状态 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `；`set 收料 = case when isnull(收料数量, 0)+@recievCount>0 then 1 else 0 end, `。
- `生产管理_外协管理_外协收料保存` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@recievCount int,`、`@optor nvarchar(50)`。 关键过滤/匹配条件：`where AID = @TaskAID`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务`；`set 完成数量 = isnull(完成数量, 0)+@recievCount, `。

## 41. src/views/ProductionManagement/ShiftManagement/index.vue

**页面位置**：`src/views/ProductionManagement/ShiftManagement/index.vue`  
**所属模块**：ProductionManagement / ShiftManagement  
**源码行数**：390

### 页面功能

该页面维护班次和班次人员绑定。用户新增、修改、删除班次，给班次绑定人员，为工时计算和报工归属提供基础数据。

页面可见的操作/字段包括 “添加新班次”、“编辑”、“保存”、“取消”、“绑定”、“删除”、“确 定”、“取 消”、“序号”、“班次”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_班次管理_班次列表查询`、`系统管理_人员管理_所有有效人员查询`、`生产管理_班次管理_班次绑定人员查询`、`生产管理_班次管理_班次保存`、`生产管理_班次管理_班次删除`、`生产管理_班次管理_班次绑定人员保存` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `生产管理_班次管理_班次列表查询` -> `系统管理_人员管理_所有有效人员查询` -> `生产管理_班次管理_班次绑定人员查询` -> `生产管理_班次管理_班次保存` -> `生产管理_班次管理_班次删除` -> `生产管理_班次管理_班次绑定人员保存` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`添加新班次`、`编辑`、`保存`、`取消`、`绑定`、`删除`、`确 定`、`取 消`、`序号`、`班次`、`时间`、`绑定人员`、`操作`、`请输入班次名称`、`开始时间`、`结束时间`

主要方法线索：`searchData`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `序号` | - | `序号` |
| 显示列 | `班次` | - | `班次编号, ` |
| 显示列 | `时间` | - | `CONVERT(VARCHAR(5), 开始时间, 108) AS 开始时间, ` |
| 显示列 | `绑定人员` | - | `绑定人员` |
| 显示列 | `操作` | - | `@操作人, ` |
| 输入字段 | `scope.row.班次名称` | - | - |
| 输入字段 | `scope.row.开始时间` | - | - |
| 输入字段 | `scope.row.结束时间` | - | - |
| 输入字段 | `selectedPersonnel` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 159 | 11（当前通用存储过程查询/执行） | `生产管理_班次管理_班次列表查询` | 查询/读取数据 | 查询 | 未在 SQL 中解析到明确依赖 |
| 179 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 200 | 11（当前通用存储过程查询/执行） | `生产管理_班次管理_班次绑定人员查询` | 查询/读取数据 | 查询 | 未在 SQL 中解析到明确依赖 |
| 252 | 11（当前通用存储过程查询/执行） | `生产管理_班次管理_班次保存` | 更新/保存业务数据 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |
| 311 | 11（当前通用存储过程查询/执行） | `生产管理_班次管理_班次删除` | 删除业务数据 | 查询、更新 | 未在 SQL 中解析到明确依赖 |
| 334 | 11（当前通用存储过程查询/执行） | `生产管理_班次管理_班次绑定人员查询` | 查询/读取数据 | 查询 | 未在 SQL 中解析到明确依赖 |
| 355 | 11（当前通用存储过程查询/执行） | `生产管理_班次管理_班次绑定人员保存` | 更新/保存业务数据 | 查询、新增、更新 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/ProductionManagement/ShiftManagement/index.vue` -> `生产管理_班次管理_班次列表查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProductionManagement/ShiftManagement/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/ShiftManagement/index.vue` -> `生产管理_班次管理_班次绑定人员查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProductionManagement/ShiftManagement/index.vue` -> `生产管理_班次管理_班次保存` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/ProductionManagement/ShiftManagement/index.vue` -> `生产管理_班次管理_班次删除` -> 未在 SQL 中解析到明确依赖 -> 删除业务数据
- `src/views/ProductionManagement/ShiftManagement/index.vue` -> `生产管理_班次管理_班次绑定人员查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProductionManagement/ShiftManagement/index.vue` -> `生产管理_班次管理_班次绑定人员保存` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `生产管理_班次管理_班次列表查询` 属于 班次与人员排班，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 主要返回字段线索：`班次编号, `、`班次名称, `、`CONVERT(VARCHAR(5), 开始时间, 108) AS 开始时间, `、`CONVERT(VARCHAR(5), 结束时间, 108) AS 结束时间, `、`创建时间, `、`创建人, `、`更新时间, `、`更新人`。 关键过滤/匹配条件：`WHERE 是否删除 = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 开始时间`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `生产管理_班次管理_班次绑定人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@班次编号 NVARCHAR(50)`。 主要返回字段线索：`p.Personnel_Number AS 人员编号, `、`p.Personnel_Name AS 人员姓名, `、`p.account AS 账号, `、`p.Roles_Function AS 角色, `、`sb.绑定时间`。 关键过滤/匹配条件：`WHERE sb.班次编号 = @班次编号`；`AND sb.是否删除 = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY p.Personnel_Name`。
- `生产管理_班次管理_班次保存` 属于 班次与人员排班，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`班次表`。 入参/分页参数：`@班次编号 NVARCHAR(50),`、`@班次名称 NVARCHAR(50),`、`@开始时间 NVARCHAR(5),`、`@结束时间 NVARCHAR(5),`、`@操作人 NVARCHAR(50)`。 主要返回字段线索：`@执行结果 AS 执行结果, @提示信息 AS 提示信息;`、`RETURN;`、`END`、`IF EXISTS (SELECT 1`。 关键过滤/匹配条件：`IF @开始时间DT IS NULL OR @结束时间DT IS NULL`；`IF EXISTS (SELECT 1 FROM 班次表 WHERE 班次名称 = @班次名称 AND 班次编号 ! = @班次编号 AND 是否删除 = 0)`；`IF EXISTS (SELECT 1 FROM 班次表 WHERE 班次编号 = @班次编号 AND 是否删除 = 0)`；`WHERE 班次编号 = @班次编号;`；`IF EXISTS (SELECT 1 FROM 班次表 WHERE 班次编号 = @班次编号 AND 是否删除 = 1)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @开始时间DT = TRY_CAST(@开始时间 AS TIME);`；`SET @结束时间DT = TRY_CAST(@结束时间 AS TIME);`；`SET @执行结果 = 0;`；`SET @提示信息 = '时间格式不正确，请使用HH:mm格式';`；`SET @提示信息 = '班次名称已存在，请使用其他名称';`；`UPDATE 班次表`；`SET`；`SET @提示信息 = '班次更新成功';`；`INSERT INTO 班次表 (`；`SET @提示信息 = '班次保存成功';`。 实现特征：事务控制、异常捕获。
- `生产管理_班次管理_班次删除` 属于 班次与人员排班，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`班次表`。 入参/分页参数：`@班次编号 NVARCHAR(50),`、`@操作人 NVARCHAR(50)`。 主要返回字段线索：`1`。 关键过滤/匹配条件：`IF EXISTS (SELECT 1 FROM 班次人员绑定表 WHERE 班次编号 = @班次编号 AND 是否删除 = 0)`；`WHERE 班次编号 = @班次编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE 班次表`；`SET 是否删除 = 1, `。 实现特征：事务控制、异常捕获。
- `生产管理_班次管理_班次绑定人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@班次编号 NVARCHAR(50)`。 主要返回字段线索：`p.Personnel_Number AS 人员编号, `、`p.Personnel_Name AS 人员姓名, `、`p.account AS 账号, `、`p.Roles_Function AS 角色, `、`sb.绑定时间`。 关键过滤/匹配条件：`WHERE sb.班次编号 = @班次编号`；`AND sb.是否删除 = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY p.Personnel_Name`。
- `生产管理_班次管理_班次绑定人员保存` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`班次人员绑定表`。 入参/分页参数：`@班次编号 NVARCHAR(50),`、`@人员编号列表 NVARCHAR(MAX),`、`@操作人 NVARCHAR(50)`。 主要返回字段线索：`@班次编号, `、`value AS 人员编号, `、`GETDATE(), `、`@操作人, `、`0`。 关键过滤/匹配条件：`WHERE 班次编号 = @班次编号`；`AND 是否删除 = 0`；`IF @人员编号列表 IS NOT NULL AND @人员编号列表 ! = ''`；`WHERE value IS NOT NULL AND value ! = ''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE 班次人员绑定表`；`SET 是否删除 = 1, `；`INSERT INTO 班次人员绑定表 (`。 实现特征：事务控制、异常捕获。

## 42. src/views/ProductionManagement/Timesheet/index.vue

**页面位置**：`src/views/ProductionManagement/Timesheet/index.vue`  
**所属模块**：ProductionManagement / Timesheet  
**源码行数**：858

### 页面功能

该页面统计工时。用户按项目、作业者、设备、任务等维度查询工时数据，并可导出报表。

页面可见的操作/字段包括 “查询”、“Excel导出”、“项目工时”、“合同号”、“产品名称”、“产品编码”、“订单编号”、“工序名称”、“操作人”、“计划/完成”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工时统计_项目工时_查询`、`工时统计_作业者工时_查询`、`工时统计_设备工时_查询`、`工时统计_任务工时_查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `工时统计_项目工时_查询` -> `工时统计_作业者工时_查询` -> `工时统计_设备工时_查询` -> `工时统计_任务工时_查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`Excel导出`、`项目工时`、`合同号`、`产品名称`、`产品编码`、`订单编号`、`工序名称`、`操作人`、`计划/完成`、`报工数量`、`计划开始`、`计划完成`、`工时(h)`、`作业者工时`、`操作人/日期`、`报工次数`、`订单号`

主要方法线索：`handleSearch`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `合同号` | - | `v.订单合同号 AS 合同号, ` |
| 显示列 | `产品名称` | - | `v.产品名称, ` |
| 显示列 | `产品编码` | - | `v.产品编码, ` |
| 显示列 | `订单编号` | - | `订单号, ` |
| 显示列 | `工序名称` | - | `工序名称, ` |
| 显示列 | `操作人` | - | `操作人, ` |
| 显示列 | `计划/完成` | - | `qty` |
| 显示列 | `报工数量` | - | `SUM(CASE WHEN v.操作类别 IN ('报工', '辅助结束') THEN v.操作数值 ELSE 0 END) AS 报工数量, ` |
| 显示列 | `计划开始` | - | `MIN(CONVERT(VARCHAR(10), v.报工日期, 120)) AS 计划开始, ` |
| 显示列 | `计划完成` | - | `MAX(CONVERT(VARCHAR(10), v.报工日期, 120)) AS 计划完成, ` |
| 显示列 | `工时(h)` | - | `workHours` |
| 显示列 | `操作人/日期` | - | `operator` |
| 显示列 | `报工次数` | - | `COUNT(*) AS 报工次数, ` |
| 显示列 | `订单号` | - | `订单号, ` |
| 显示列 | `开始时间` | - | `startTime` |
| 显示列 | `结束时间` | - | `endTime` |
| 显示列 | `类型` | - | `SUM(CASE WHEN v.操作类别 IN ('报工', '辅助结束') THEN v.操作数值 ELSE 0 END) AS 报工数量, ` |
| 显示列 | `工序说明` | - | `工序说明` |
| 显示列 | `异常说明` | - | `异常说明` |
| 显示列 | `类型` | - | `workHours` |
| 输入字段 | `searchForm.contractNo` | - | - |
| 输入字段 | `searchForm.operator` | - | - |
| 输入字段 | `searchForm.productCode` | - | - |
| 输入字段 | `searchForm.processName` | - | - |
| 输入字段 | `searchForm.orderNo` | - | - |
| 输入字段 | `searchForm.startDate` | - | - |
| 输入字段 | `searchForm.endDate` | - | - |
| 输入字段 | `activeTab` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 476 | 11（当前通用存储过程查询/执行） | `工时统计_项目工时_查询` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 547 | 11（当前通用存储过程查询/执行） | `工时统计_作业者工时_查询` | 查询/读取数据 | 查询、处理报工/工时 | 视图：`View_生产工时视图` |
| 568 | 11（当前通用存储过程查询/执行） | `工时统计_设备工时_查询` | 查询/读取数据 | 查询、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 649 | 11（当前通用存储过程查询/执行） | `工时统计_任务工时_查询` | 查询/读取数据 | 查询、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `工时统计_项目工时_查询`：`MAX(v.完成数量) AS 完成数量, `；`MAX(CONVERT(VARCHAR(10), v.报工日期, 120)) AS 计划完成, `；`CAST(SUM(v.加工工时) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 总工时小时`；`CAST(SUM(v.加工工时) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 工时小时, `；`MAX(CONVERT(VARCHAR(10), v.报工日期, 120)) AS 计划完成`；`CASE WHEN 完成数量 = FLOOR(完成数量) THEN CAST(CAST(完成数量 AS INT) AS VARCHAR(20)) ELSE CAST(CAST(完成数量 AS DECIMAL(10, 1)) AS VARCHAR(20)) END AS qty, `；`ISNULL(计划完成, '') AS planEnd, `；`d.计划完成 AS planEnd, `
- `工时统计_设备工时_查询`：`CAST(SUM(加工工时) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 总工时小时`；`CAST(SUM(加工工时) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 工时小时`；`CAST(加工工时 / 60.0 / 60.0 AS DECIMAL(10, 2)) AS 工时小时`
- `工时统计_任务工时_查询`：`CREATE PROCEDURE [dbo].[工时统计_任务工时_查询]`；`;WITH 任务汇总 AS (`；`MAX(完成数量) AS 完成数量, `；`CASE WHEN 完成数量 IS NULL THEN '0' WHEN 完成数量 = FLOOR(完成数量) THEN CAST(CAST(完成数量 AS INT) AS VARCHAR(20)) ELSE CAST(CAST(完成数量 AS DECIMAL(10, 1)) AS VARCHAR(20)) END AS qty, `；`FROM 任务汇总`

### 数据库调用链

- `src/views/ProductionManagement/Timesheet/index.vue` -> `工时统计_项目工时_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProductionManagement/Timesheet/index.vue` -> `工时统计_作业者工时_查询` -> 视图：`View_生产工时视图` -> 查询/读取数据
- `src/views/ProductionManagement/Timesheet/index.vue` -> `工时统计_设备工时_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/ProductionManagement/Timesheet/index.vue` -> `工时统计_任务工时_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据

### 存储过程处理逻辑明细

- `工时统计_项目工时_查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@合同号 NVARCHAR(50)`、`@操作人 NVARCHAR(50)`、`@产品编码 NVARCHAR(100)`、`@工序名称 NVARCHAR(50)`、`@订单号 NVARCHAR(50)`、`@开始日期 DATE`、`@结束日期 DATE`。 主要返回字段线索：`v.订单合同号 AS 合同号, `、`v.产品编码, `、`v.产品名称, `、`MAX(v.计划数量) AS 计划数量, `、`MAX(v.完成数量) AS 完成数量, `、`SUM(CASE WHEN v.操作类别 IN ('报工', '辅助结束') THEN v.操作数值 ELSE 0 END) AS 报工数量, `、`MIN(CONVERT(VARCHAR(10), v.报工日期, 120)) AS 计划开始, `、`MAX(CONVERT(VARCHAR(10), v.报工日期, 120)) AS 计划完成, `、`CAST(SUM(v.加工工时) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 总工时小时`。 关键过滤/匹配条件：`WHERE (@开始日期 IS NULL OR @开始日期 = '' OR 结束时间 > = @开始日期)`；`AND (@结束日期 IS NULL OR @结束日期 = '' OR 开始时间 < = @结束日期)`；`AND (@合同号 IS NULL OR @合同号 = '' OR v.订单合同号 LIKE '%' + @合同号 + '%')`；`AND (@操作人 IS NULL OR @操作人 = '' OR v.操作人 LIKE '%' + @操作人 + '%')`；`AND (@产品编码 IS NULL OR @产品编码 = '' OR v.产品编码 LIKE '%' + @产品编码 + '%')`；`AND (@工序名称 IS NULL OR @工序名称 = '' OR v.工序名称 LIKE '%' + @工序名称 + '%')`；`AND (@订单号 IS NULL OR @订单号 = '' OR v.订单号 LIKE '%' + @订单号 + '%')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`GROUP BY v.订单合同号, v.产品编码, v.产品名称`；`GROUP BY v.订单合同号, v.产品编码, v.工序名称, v.操作人, v.订单号`；`ORDER BY contractNo, materialCode, [Level], processName`。
- `工时统计_作业者工时_查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产工时视图`。 入参/分页参数：`@合同号 NVARCHAR(50)`、`@操作人 NVARCHAR(50)`、`@产品编码 NVARCHAR(100)`、`@工序名称 NVARCHAR(50)`、`@订单号 NVARCHAR(50)`、`@开始日期 DATE`、`@结束日期 DATE`。 主要返回字段线索：`操作人, `、`COUNT(*) AS 报工次数, `、`SUM(CASE`、`WHEN 操作类别 NOT IN ('异常') THEN 操作数值`、`WHEN 操作类别 = '异常' THEN -操作数值`、`ELSE 0`、`END) AS 报工数量, `、`CAST(SUM(CASE`、`WHEN 操作类别 = '异常' THEN -总时长`、`ELSE 总时长`。 关键过滤/匹配条件：`WHERE (@开始日期 IS NULL OR @开始日期 = '' OR 开始时间 > = @开始日期)`；`AND (@结束日期 IS NULL OR @结束日期 = '' OR 结束时间 < = @结束日期)`；`AND 操作人 IS NOT NULL AND 操作人 ! = ''`；`AND (@合同号 IS NULL OR @合同号 = '' OR 订单合同号 LIKE '%' + @合同号 + '%')`；`AND (@操作人 IS NULL OR @操作人 = '' OR 操作人 LIKE '%' + @操作人 + '%')`；`AND (@产品编码 IS NULL OR @产品编码 = '' OR 产品编码 LIKE '%' + @产品编码 + '%')`；`AND (@工序名称 IS NULL OR @工序名称 = '' OR 工序名称 LIKE '%' + @工序名称 + '%')`；`AND (@订单号 IS NULL OR @订单号 = '' OR 订单号 LIKE '%' + @订单号 + '%')`；`and isNull(阶段标识, 0) ! = -1`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`GROUP BY 操作人`；`GROUP BY 操作人, CONVERT(VARCHAR(10), 开始时间, 120)`；`ORDER BY operator, dateLabel, [Level]`。
- `工时统计_设备工时_查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@合同号 NVARCHAR(50)`、`@操作人 NVARCHAR(50)`、`@产品编码 NVARCHAR(100)`、`@工序名称 NVARCHAR(50)`、`@订单号 NVARCHAR(50)`、`@开始日期 DATE`、`@结束日期 DATE`。 主要返回字段线索：`工位名称, `、`COUNT(*) AS 报工次数, `、`SUM(CASE WHEN 操作类别 IN ('报工', '辅助结束') THEN 操作数值 ELSE 0 END) AS 报工数量, `、`CAST(SUM(加工工时) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 总工时小时`。 关键过滤/匹配条件：`WHERE (@开始日期 IS NULL OR @开始日期 = '' OR 结束时间 > = @开始日期)`；`AND (@结束日期 IS NULL OR @结束日期 = '' OR 开始时间 < = @结束日期)`；`AND 操作人 IS NOT NULL AND 操作人 ! = ''`；`AND (@合同号 IS NULL OR @合同号 = '' OR 订单合同号 LIKE '%' + @合同号 + '%')`；`AND (@操作人 IS NULL OR @操作人 = '' OR 工位名称 LIKE '%' + @操作人 + '%')`；`AND (@产品编码 IS NULL OR @产品编码 = '' OR 产品编码 LIKE '%' + @产品编码 + '%')`；`AND (@工序名称 IS NULL OR @工序名称 = '' OR 工序名称 LIKE '%' + @工序名称 + '%')`；`AND (@订单号 IS NULL OR @订单号 = '' OR 订单号 LIKE '%' + @订单号 + '%')`；`and isNull(阶段标识, 0) = -1`；`AND 工位名称 IS NOT NULL AND 工位名称 ! = ''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`GROUP BY 工位名称`；`GROUP BY 工位名称, CONVERT(VARCHAR(10), 开始时间, 120)`；`ORDER BY operator, dateLabel, [Level]`。
- `工时统计_任务工时_查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@合同号 NVARCHAR(50)`、`@操作人 NVARCHAR(50)`、`@产品编码 NVARCHAR(100)`、`@工序名称 NVARCHAR(50)`、`@订单号 NVARCHAR(50)`、`@开始日期 DATE`、`@结束日期 DATE`。 主要返回字段线索：`订单合同号 AS 合同号, `、`订单号, `、`产品编码, `、`产品名称, `、`工序名称, `、`操作类别, `、`MAX(计划数量) AS 计划数量, `、`MAX(完成数量) AS 完成数量, `、`SUM(CASE WHEN 操作类别 IN ('报工', '辅助结束') THEN 操作数值 ELSE 0 END) AS 报工数量, `、`CAST(SUM(总时长) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 总工时小时`。 关键过滤/匹配条件：`WHERE (@开始日期 IS NULL OR @开始日期 = '' OR 结束时间 > = @开始日期)`；`AND (@结束日期 IS NULL OR @结束日期 = '' OR 开始时间 < = @结束日期)`；`AND (@合同号 IS NULL OR @合同号 = '' OR 订单合同号 LIKE '%' + @合同号 + '%')`；`AND (@操作人 IS NULL OR @操作人 = '' OR 操作人 LIKE '%' + @操作人 + '%')`；`AND (@产品编码 IS NULL OR @产品编码 = '' OR 产品编码 LIKE '%' + @产品编码 + '%')`；`AND (@工序名称 IS NULL OR @工序名称 = '' OR 工序名称 LIKE '%' + @工序名称 + '%')`；`AND (@订单号 IS NULL OR @订单号 = '' OR 订单号 LIKE '%' + @订单号 + '%')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`GROUP BY 订单合同号, 订单号, 产品编码, 产品名称, 工序名称, 操作类别`；`ORDER BY contractNo, orderNo, productCode, processName, [Level], startTime`。

## 43. src/views/ProductionManagement/Urgent/index.vue

**页面位置**：`src/views/ProductionManagement/Urgent/index.vue`  
**所属模块**：ProductionManagement / Urgent  
**源码行数**：474

### 页面功能

该页面维护加急任务。用户查询加急订单明细，并更新完成、转至等字段，用于生产/质检优先级管理。

页面可见的操作/字段包括 “查询”、“转至 完成 加急明细 --> 生产订单 加急数量 物料编号 关闭”、“装配”、“机加”、“全部”、“已转至”、“未转至”、“已完成”、“未完成”、“序号”，这些是判断页面业务范围的主要线索。

后端主要围绕 `加急订单_加急明细查询`、`生产管理_加急件管理查询`、`生产管理_加急件管理_更新转至`、`生产管理_加急件管理_更新完成` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `加急订单_加急明细查询` -> `生产管理_加急件管理查询` -> `生产管理_加急件管理_更新转至` -> `生产管理_加急件管理_更新完成` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`转至 完成 加急明细 --> 生产订单 加急数量 物料编号 关闭`、`装配`、`机加`、`全部`、`已转至`、`未转至`、`已完成`、`未完成`、`序号`、`销售订单`、`生产订单`、`物料名称`、`物料编码`、`工序名称`、`计划生产数`、`加急数量`、`收检数量`

主要方法线索：`Urgent`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.零件编码` | `@物料编号` | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 参数 | `this.contractNo` | `@合同号` | `a.内部合同号, ` |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.changstate` | `@转至状态` | - |
| 参数 | `this.finishstate` | `@完成状态` | - |
| 参数 | `row.计划号` | `@订单号` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `销售订单` | - | `a.内部合同号, ` |
| 显示列 | `生产订单` | - | `a.计划号, ` |
| 显示列 | `物料名称` | - | `a.零件名称, ` |
| 显示列 | `物料编码` | - | `a.零件编码, ` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `计划生产数` | - | `计划生产数` |
| 显示列 | `加急数量` | - | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 显示列 | `收检数量` | - | `sum(a.检验数量) as 检验数量, ` |
| 显示列 | `合格数` | - | `sum(a.不合格数) as 不合格数, ` |
| 显示列 | `不合格` | - | `sum(a.不合格数) as 不合格数, ` |
| 显示列 | `检验操作人` | - | `检测人` |
| 显示列 | `检验时间` | - | `检测时间` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `contractNo` | `@合同号` | - |
| 输入字段 | `orderNo` | `@订单号` | - |
| 输入字段 | `partNo` | `@零件编号` | - |
| 输入字段 | `attribute` | - | - |
| 输入字段 | `changstate` | `@转至状态` | - |
| 输入字段 | `finishstate` | `@完成状态` | - |
| 输入字段 | `item.订单编号` | - | - |
| 输入字段 | `item.加急数量` | - | - |
| 输入字段 | `item.物料编号` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 311 | 11（当前通用存储过程查询/执行） | `加急订单_加急明细查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` |
| 335 | 11（当前通用存储过程查询/执行） | `生产管理_加急件管理查询` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 379 | 11（当前通用存储过程查询/执行） | `生产管理_加急件管理_更新转至` | 更新/保存业务数据 | 更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录` |
| 393 | 11（当前通用存储过程查询/执行） | `生产管理_加急件管理_更新完成` | 更新/保存业务数据 | 更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 加急订单_加急明细查询: SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `加急订单_加急明细查询`：`SELECT docentry as 订单编号, itemcode as 物料编号, 加急数量 from SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`
- `生产管理_加急件管理查询`：`@转至状态 int = 3, `；`@完成状态 int = 3, `；`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE [质检类型] = ''终检'' and b.加急总数 > 0 '`；`IF @转至状态 3`；`IF @转至状态 = '1'`；`ELSE IF @转至状态 = '2'`；`IF @完成状态 3`；`IF @完成状态 = '1'`
- `生产管理_加急件管理_更新转至`：`update [dbo].[YL_质量检验_质检记录] set 转至 = 1 where 计划号 = @订单号 and 质检类型 = '终检'`
- `生产管理_加急件管理_更新完成`：`CREATE PROCEDURE [dbo].[生产管理_加急件管理_更新完成]`；`update [dbo].[YL_质量检验_质检记录] set 完成 = 1 where 计划号 = @订单号 and 质检类型 = '终检'`

### 数据库调用链

- `src/views/ProductionManagement/Urgent/index.vue` -> `加急订单_加急明细查询` -> 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` -> 查询/读取数据
- `src/views/ProductionManagement/Urgent/index.vue` -> `生产管理_加急件管理查询` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/ProductionManagement/Urgent/index.vue` -> `生产管理_加急件管理_更新转至` -> 表：`YL_质量检验_质检记录` -> 更新/保存业务数据
- `src/views/ProductionManagement/Urgent/index.vue` -> `生产管理_加急件管理_更新完成` -> 表：`YL_质量检验_质检记录` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `加急订单_加急明细查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`docentry as 订单编号, itemcode as 物料编号, 加急数量`。 关键过滤/匹配条件：`where itemcode = @物料编号`。 实现特征：读取 SAP 数据库对象。
- `生产管理_加急件管理查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@转至状态 int`、`@完成状态 int`、`@合同号 NVARCHAR(100)`、`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`。 主要返回字段线索：`sum(a.不合格数) as 不合格数, `、`sum(a.合格数) as 合格数, `、`a.内部合同号, `、`a.完成, `、`a.转至, `、`a.计划号, `、`a.零件名称, `、`a.零件编码, `、`sum(a.检验数量) as 检验数量, `、`b.加急总数, `。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE [质检类型] = ''终检'' and b.加急总数 > 0 '`；`SET @selectStrWhere = @selectStrWhere + ' AND a.内部合同号 LIKE ''%' + REPLACE(@合同号, '''', '''''') + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND a.计划号 = '+@订单号+''`；`SET @selectStrWhere = @selectStrWhere + ' AND a.零件编码 LIKE ''%' + REPLACE(@零件编号, '''', '''''') + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 转至 = 1'`；`SET @selectStrWhere = @selectStrWhere + ' AND 转至 = 0'`；`SET @selectStrWhere = @selectStrWhere + ' AND 完成 = 1'`；`SET @selectStrWhere = @selectStrWhere + ' AND 完成 = 0'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @selectStrWhere = @selectStrWhere + ' AND a.内部合同号 LIKE ''%' + REPLACE(@合同号, '''', '''''') + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND a.计划号 = '+@订单号+''`；`SET @selectStrWhere = @selectStrWhere + ' AND a.零件编码 LIKE ''%' + REPLACE(@零件编号, '''', '''''') + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND 转至 = 1'`；`SET @selectStrWhere = @selectStrWhere + ' AND 转至 = 0'`；`SET @selectStrWhere = @selectStrWhere + ' AND 完成 = 1'`；`SET @selectStrWhere = @selectStrWhere + ' AND 完成 = 0'`；`SET @selectStr = N' select`。 排序/分组/分页线索：`group by a.内部合同号, a.完成, a.转至, a.计划号, `。
- `生产管理_加急件管理_更新转至` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`。 写入或更新对象：`YL_质量检验_质检记录`。 入参/分页参数：`@订单号 int`。 关键过滤/匹配条件：`update [dbo].[YL_质量检验_质检记录] set 转至 = 1 where 计划号 = @订单号 and 质检类型 = '终检'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`update [dbo].[YL_质量检验_质检记录] set 转至 = 1 where 计划号 = @订单号 and 质检类型 = '终检'`。
- `生产管理_加急件管理_更新完成` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`。 写入或更新对象：`YL_质量检验_质检记录`。 入参/分页参数：`@订单号 int`。 关键过滤/匹配条件：`update [dbo].[YL_质量检验_质检记录] set 完成 = 1 where 计划号 = @订单号 and 质检类型 = '终检'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`update [dbo].[YL_质量检验_质检记录] set 完成 = 1 where 计划号 = @订单号 and 质检类型 = '终检'`。

## 44. src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue

**页面位置**：`src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue`  
**所属模块**：ProductionManagement / WorkHoursCheck  
**源码行数**：2489

### 页面功能

该页面用于工时校验。质检/管理人员查询待校验报工记录，系统计算标准/实际工时，保存单条或批量校验结果；通过校验后可把工序资源或工时/出库类单据上传到 SAP。

页面可见的操作/字段包括 “查询”、“一键校验”、“新增工时记录”、“设备工时”、“关闭”、“确 定”、“取消”、“item.label”、“全部”、“已校验”，这些是判断页面业务范围的主要线索。

后端主要围绕 `人员管理_人员信息查询_质检部门_查询`、`系统管理_人员管理_所有有效人员查询`、`工时校验_获取订单列表`、`工时校验_获取订单工序`、`工时校验_获取昨日之前操作记录列表`、`工时校验_获取资源` 等过程 取数或提交业务动作。

### 页面流程图

工时校验流程：

```mermaid
flowchart LR
  A[选择人员/订单/工序/日期] --> B[工时校验_获取昨日之前操作记录列表]
  B --> C[选择待校验记录]
  C --> D[usp_ValidateWorkTime 或 usp_BatchValidateWorkTime 计算工时]
  D --> E{校验结果}
  E --> F[工时校验_保存校验记录]
  E --> G[工时校验_批量保存校验记录]
  F --> H[更新校验状态]
  G --> H
  H --> I[GET/PATCH /ProductionOrders 补工序资源]
  I --> J[POST /InventoryGenExits 上传 SAP]
  J --> K[标记已上传/失败留痕]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`一键校验`、`新增工时记录`、`设备工时`、`关闭`、`确 定`、`取消`、`item.label`、`全部`、`已校验`、`未校验`、`异常`、`正常`、`装配`、`机加`、`加班`、`序号`、`工时ID`

主要方法线索：`getCheckerList`、`for`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `orderId` | `@订单编号` | `订单编号, ` |
| 参数 | `selectedChecker ? selectedChecker.label : 0` | `@人员` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工时ID` | - | `工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode` |
| 显示列 | `人员` | - | `Personnel_Number AS 人员编号, ` |
| 显示列 | `生产订单` | - | `订单编号, ` |
| 显示列 | `物料编码` | - | `产品编码` |
| 显示列 | `物料名称` | - | `产品名称` |
| 显示列 | `工序名称` | - | `工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode` |
| 显示列 | `工位名称` | - | `工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode` |
| 显示列 | `报工类型` | - | `@操作类别编号 = 操作类别编号, ` |
| 显示列 | `数量` | - | `操作数值` |
| 显示列 | `开始时间` | - | `开始时间` |
| 显示列 | `结束时间` | - | `结束时间` |
| 显示列 | `设备工时` | - | `设备工时` |
| 显示列 | `人员工时` | - | `人员工时` |
| 显示列 | `绑定设备数` | - | `绑定设备数` |
| 显示列 | `工序说明` | - | `工序说明` |
| 显示列 | `异常说明` | - | `异常说明` |
| 显示列 | `校验状态` | - | `校验状态` |
| 显示列 | `最后编辑人` | - | `最后编辑人` |
| 显示列 | `最后编辑时间` | - | `最后编辑时间` |
| 显示列 | `操作` | - | `@操作类别编号 = 操作类别编号, ` |
| 显示列 | `累计分钟` | - | `累计分钟` |
| 显示列 | `设备状态` | - | `CASE TRY_CAST([设备状态] AS INT)` |
| 显示列 | `累计秒数` | - | `累计秒数` |
| 输入字段 | `taskid` | - | - |
| 输入字段 | `taskorder` | - | - |
| 输入字段 | `checker` | - | - |
| 输入字段 | `timeRange` | - | - |
| 输入字段 | `checkStatus` | - | - |
| 输入字段 | `abnormalstatus` | - | - |
| 输入字段 | `natureStatus` | - | - |
| 输入字段 | `addwork` | - | - |
| 输入字段 | `activeTab` | - | - |
| 输入字段 | `editForm.订单编号` | - | - |
| 输入字段 | `editForm.产品编码` | - | - |
| 输入字段 | `editForm.产品名称` | - | - |
| 输入字段 | `editForm.工序名称` | - | - |
| 输入字段 | `editForm.工位名称` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 497 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 548 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 563 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单列表` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 592 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 645 | 11（当前通用存储过程查询/执行） | `工时校验_获取昨日之前操作记录列表` | 报工或工时处理 | 分页、处理报工/工时 | 视图：`View_生产工时视图` |
| 737 | 11（当前通用存储过程查询/执行） | `工时校验_获取资源` | 报工或工时处理 | 查询、读取 SAP B1 数据库对象、处理报工/工时 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_ORSC` |
| 759 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 868 | 11（当前通用存储过程查询/执行） | `工时校验_获取设备数据` | 报工或工时处理 | 查询、处理报工/工时 | 表：`历史_工位设备状态每分钟记录` |
| 1443 | 11（当前通用存储过程查询/执行） | `工时校验_保存校验记录` | 更新/保存业务数据 | 查询、新增、更新、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 1480 | 11（当前通用存储过程查询/执行） | `工时校验_批量保存校验记录` | 更新/保存业务数据 | 查询、新增、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 2006 | 11（当前通用存储过程查询/执行） | `工时校验_获取操作人当天报工记录` | 报工或工时处理 | 查询、处理报工/工时 | 表：`YL_加工中心_操作记录表` |
| 2344 | 11（当前通用存储过程查询/执行） | `工时校验_批量保存校验记录` | 更新/保存业务数据 | 查询、新增、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 2362 | 11（当前通用存储过程查询/执行） | `工时校验_批量保存校验记录` | 更新/保存业务数据 | 查询、新增、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 1105 行：`patchB1("ProductionOrders(${order.AbsoluteEntry})")`
- 第 2124 行：`getB1("/ProductionOrders")`
- 第 2255 行：`getB1("/ProductionOrders")`
- 第 2311 行：`postB1("/InventoryGenExits")`
存储过程内读取 SAP B1 数据库对象：
- 工时校验_获取资源: SAP.SBO_YL.dbo.UBT_ORSC

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 1105 | `patchB1` | `ProductionOrders(${order.AbsoluteEntry})` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `ProductionOrderLines`、`ProductionOrdersStages`、`更新SAP失败`、`更新SAP工序和资源失败` |
| 2124 | `getB1` | `/ProductionOrders` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `filter` |
| 2255 | `getB1` | `/ProductionOrders` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `filter`、`加班记录`、`记录` |
| 2311 | `postB1` | `/InventoryGenExits` | 上传库存发出/工时相关单据。失败会导致 SAP 未生成对应业务单据。 | `DocDate`、`DocDueDate`、`Comments`、`DocumentLines`、`处理记录失败` |

### 状态流转说明

- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `工时校验_获取昨日之前操作记录列表`：`@校验状态 nvarchar(4000) = 2, `；`@任务ID nvarchar(4000) = 0, `；`'+ @校验状态 +' = 2`；`OR ('+@校验状态+' = 0 AND Expr1 IS NULL)`；`OR ('+@校验状态+' = 1 AND Expr1 IS NOT NULL)`；`IF @任务ID ! = '0' AND @任务ID ! = ''`；`set @where = @where + ' AND ISNULL(AID, 0) = ' + @任务ID + ' '`；`, 加工工时`
- `工时校验_获取资源`：`select VisName as 资源名称, VisCode, StdCost1 from SAP.SBO_YL.dbo.UBT_ORSC as a where a.VisName = @资源名称`
- `工时校验_获取设备数据`：`CASE TRY_CAST([设备状态] AS INT)`；`END AS 设备状态, `；`FROM [dbo].[历史_工位设备状态每分钟记录]`；`设备状态, `；`WHERE 设备状态 ! = N'未知'`；`GROUP BY 工位名称, 设备状态`；`ORDER BY 设备状态`；`SUM(CASE WHEN 设备状态 = N'运行' THEN 累计分钟 ELSE 0 END) AS 运行总分钟, `
- `工时校验_保存校验记录`：`FROM [dbo].[YL_加工中心_操作记录表]`；`UPDATE [dbo].[YL_加工中心_操作记录表]`；`已报工 = 1, `
- `工时校验_批量保存校验记录`：`操作描述, 开始时间, 结束时间, 工时, 报工日期, 已报工, 不装配, `；`FROM [dbo].[YL_加工中心_操作记录表] o`
- `工时校验_获取操作人当天报工记录`：`FROM [dbo].[YL_加工中心_操作记录表]`
- `工时校验_批量保存校验记录`：`操作描述, 开始时间, 结束时间, 工时, 报工日期, 已报工, 不装配, `；`FROM [dbo].[YL_加工中心_操作记录表] o`
- `工时校验_批量保存校验记录`：`操作描述, 开始时间, 结束时间, 工时, 报工日期, 已报工, 不装配, `；`FROM [dbo].[YL_加工中心_操作记录表] o`

### 数据库调用链

- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_获取订单列表` -> 表：`MES_接口_生产计划` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_获取昨日之前操作记录列表` -> 视图：`View_生产工时视图` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_获取资源` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_ORSC` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_获取设备数据` -> 表：`历史_工位设备状态每分钟记录` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_批量保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_获取操作人当天报工记录` -> 表：`YL_加工中心_操作记录表` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_批量保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/WorkHoursCheck/index - 副本.vue` -> `工时校验_批量保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `工时校验_获取订单列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`DISTINCT top 20`、`订单编号, `、`物料编号 as 零件编码, `、`物料描述 as 零件名称`。 关键过滤/匹配条件：`FROM [dbo].[MES_接口_生产计划] WHERE 订单编号 LIKE '%' + @订单编号 + '%' OR @订单编号 = ''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单编号 ;`。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `工时校验_获取昨日之前操作记录列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：分页、处理报工/工时。 读取/关联对象：视图：`View_生产工时视图`。 入参/分页参数：`@开始时间 datetime`、`@结束时间 datetime`、`@校验状态 nvarchar(4000)`、`@过滤性质 nvarchar(4000)`、`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`、`@异常 nvarchar(4000)`、`@任务ID nvarchar(4000)`、`@生产订单 nvarchar(4000)`、`@加班 nvarchar(4000)`、`@人员 nvarchar(4000)`。 关键过滤/匹配条件：`declare @where nvarchar(4000)`；`set @where = ' (`；`OR ('+@校验状态+' = 0 AND Expr1 IS NULL)`；`OR ('+@校验状态+' = 1 AND Expr1 IS NOT NULL)`；`AND (`；`OR ('+@过滤性质+' = 1 AND ISNULL(工位名称, 工位名称) NOT LIKE ''%装配%'')`；`OR ('+@过滤性质+' = 2 AND ISNULL(工位名称, 工位名称) LIKE ''%装配%'')`；`OR ('+@异常+' = 1 AND (ISNULL(结束时间, 结束时间) IS NULL))`；`OR ('+@异常+' = 2 AND ISNULL(结束时间, 结束时间) IS NOT NULL)`；`AND 开始时间 < CONVERT(VARCHAR(10), GETDATE(), 120) + '' 00:00:00''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`set @tbname = ' [dbo].[View_生产工时视图] '`；`set @fieldkey = ' AID '`；`set @where = ' (`；`set @where = @where + ' AND ISNULL(操作类别, '''') LIKE ''%加班%'' '`；`set @where = @where + ' AND ISNULL(操作类别, '''') NOT LIKE ''%加班%'' '`；`set @where = @where + ' AND ISNULL(AID, 0) = ' + @任务ID + ' '`；`set @where = @where + ' AND ISNULL(订单号, 0) = ' + @生产订单 + ' '`；`set @where = @where + ' AND 操作人 LIKE ''%' + @人员 + '%'' '`；`set @fieldOrder = ' 开始时间 DESC '`；`set @fieldshow = '`。 实现特征：分页。
- `工时校验_获取资源` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理报工/工时。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_ORSC`。 入参/分页参数：`@资源名称 NVARCHAR(MAX)`。 主要返回字段线索：`VisName as 资源名称, VisCode, StdCost1`。 关键过滤/匹配条件：`select VisName as 资源名称, VisCode, StdCost1 from SAP.SBO_YL.dbo.UBT_ORSC as a where a.VisName = @资源名称`。 实现特征：读取 SAP 数据库对象。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `工时校验_获取设备数据` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`历史_工位设备状态每分钟记录`。 入参/分页参数：`@工位名称 nvarchar(50)`。 主要返回字段线索：`[AID], `、`[工位号] AS 工位名称, `、`[创建时间], `、`CASE TRY_CAST([设备状态] AS INT)`、`WHEN -1 THEN N'关机'`、`WHEN 0 THEN N'待机'`、`WHEN 1 THEN N'运行'`、`WHEN 2 THEN N'报警'`、`ELSE N'未知'`、`END AS 设备状态, `。 关键过滤/匹配条件：`WHERE 工位号 = @工位名称`；`AND CAST([创建时间] AS DATE) = CAST(GETDATE() AS DATE)`；`WHERE 设备状态 ! = N'未知'`。 排序/分组/分页线索：`LEAD([创建时间]) OVER (ORDER BY [创建时间]) AS 下一记录时间`；`GROUP BY 工位名称, 设备状态`；`ORDER BY 设备状态`；`GROUP BY 工位名称`。
- `工时校验_保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 入参/分页参数：`@orderAID bigint,`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@总时长 int,`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50),`、`@当日班次最小标准工时 nvarchar(50)`。 主要返回字段线索：`@操作类别编号 = 操作类别编号, `、`@操作类别 = 操作类别, `、`@阶段标识 = 阶段标识, `、`@工序名称 = 工序名称, `、`@工位编号 = 工位编号, `、`@工位名称 = 工位名称, `、`@合同号 = 合同号, `、`@订单编号 = 订单编号, `、`@物料编号 = 物料编号, `、`@物料描述 = 物料描述, `。 关键过滤/匹配条件：`WHERE AID = @orderAID;`；`WHERE AID = @orderAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE [dbo].[YL_加工中心_操作记录表]`；`SET`。 实现特征：事务控制、异常捕获。
- `工时校验_批量保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`。 入参/分页参数：`@AID列表 nvarchar(MAX),`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE c.AID IS NULL;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempAID (AID)`；`INSERT INTO [dbo].[生产管理_工时校验_校验工时表] (`。 实现特征：事务控制、异常捕获、临时表 `#TempAID`。
- `工时校验_获取操作人当天报工记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`。 入参/分页参数：`@操作人 nvarchar(50),`、`@开始时间 datetime,`、`@结束时间 datetime`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`WHERE 操作人 = @操作人`；`AND 开始时间 > = @开始时间`；`AND 开始时间 < = @结束时间`；`AND (总时长> 0 or 实际工时 >0)`；`and isNull(阶段标识, 0) ! = -1`；`and 操作类别 not like '%加班%'`；`and 订单编号 3886`。
- `工时校验_批量保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`。 入参/分页参数：`@AID列表 nvarchar(MAX),`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE c.AID IS NULL;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempAID (AID)`；`INSERT INTO [dbo].[生产管理_工时校验_校验工时表] (`。 实现特征：事务控制、异常捕获、临时表 `#TempAID`。
- `工时校验_批量保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`。 入参/分页参数：`@AID列表 nvarchar(MAX),`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE c.AID IS NULL;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempAID (AID)`；`INSERT INTO [dbo].[生产管理_工时校验_校验工时表] (`。 实现特征：事务控制、异常捕获、临时表 `#TempAID`。

## 45. src/views/ProductionManagement/WorkHoursCheck/index.vue

**页面位置**：`src/views/ProductionManagement/WorkHoursCheck/index.vue`  
**所属模块**：ProductionManagement / WorkHoursCheck  
**源码行数**：1975

### 页面功能

该页面用于工时校验。质检/管理人员查询待校验报工记录，系统计算标准/实际工时，保存单条或批量校验结果；通过校验后可把工序资源或工时/出库类单据上传到 SAP。

页面可见的操作/字段包括 “查询”、“一键校验”、“直接校验”、“新增工时记录”、“设备工时”、“关闭”、“确 定”、“取消”、“item.label”、“全部”，这些是判断页面业务范围的主要线索。

后端主要围绕 `usp_BatchValidateWorkTime`、`usp_ValidateWorkTime`、`人员管理_人员信息查询_质检部门_查询`、`系统管理_人员管理_所有有效人员查询`、`工时校验_获取订单列表`、`工时校验_获取订单工序` 等过程 取数或提交业务动作。

### 页面流程图

工时校验流程：

```mermaid
flowchart LR
  A[选择人员/订单/工序/日期] --> B[工时校验_获取昨日之前操作记录列表]
  B --> C[选择待校验记录]
  C --> D[usp_ValidateWorkTime 或 usp_BatchValidateWorkTime 计算工时]
  D --> E{校验结果}
  E --> F[工时校验_保存校验记录]
  E --> G[工时校验_批量保存校验记录]
  F --> H[更新校验状态]
  G --> H
  H --> I[GET/PATCH /ProductionOrders 补工序资源]
  I --> J[POST /InventoryGenExits 上传 SAP]
  J --> K[标记已上传/失败留痕]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`一键校验`、`直接校验`、`新增工时记录`、`设备工时`、`关闭`、`确 定`、`取消`、`item.label`、`全部`、`已校验`、`未校验`、`异常`、`正常`、`装配`、`机加`、`加班`、`序号`

主要方法线索：`getUserName`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `orderId` | `@订单编号` | `订单编号, ` |
| 参数 | `selectedChecker ? selectedChecker.label : 0` | `@人员` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工时ID` | - | `工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode` |
| 显示列 | `人员` | - | `@操作人 = 操作人, ` |
| 显示列 | `生产订单` | - | `@订单编号 = 订单号, ` |
| 显示列 | `物料编码` | - | `产品编码` |
| 显示列 | `物料名称` | - | `产品名称` |
| 显示列 | `工序名称` | - | `@工序名称 = 工序名称` |
| 显示列 | `工位名称` | - | `@工位名称 = 工位名称, ` |
| 显示列 | `报工类型` | - | `@操作类别编号 = 操作类别编号, ` |
| 显示列 | `数量` | - | `操作数值` |
| 显示列 | `开始时间` | - | `开始时间` |
| 显示列 | `结束时间` | - | `结束时间` |
| 显示列 | `设备工时` | - | `设备工时` |
| 显示列 | `人员工时` | - | `人员工时` |
| 显示列 | `绑定设备数` | - | `绑定设备数` |
| 显示列 | `工序说明` | - | `工序说明` |
| 显示列 | `异常说明` | - | `异常说明` |
| 显示列 | `校验状态` | - | `校验状态` |
| 显示列 | `最后编辑人` | - | `最后编辑人` |
| 显示列 | `最后编辑时间` | - | `最后编辑时间` |
| 显示列 | `操作` | - | `@操作人 = 操作人, ` |
| 显示列 | `累计分钟` | - | `累计分钟` |
| 显示列 | `设备状态` | - | `CASE TRY_CAST([设备状态] AS INT)` |
| 显示列 | `累计秒数` | - | `累计秒数` |
| 输入字段 | `taskid` | - | - |
| 输入字段 | `taskorder` | - | - |
| 输入字段 | `checker` | - | - |
| 输入字段 | `timeRange` | - | - |
| 输入字段 | `checkStatus` | - | - |
| 输入字段 | `abnormalstatus` | - | - |
| 输入字段 | `natureStatus` | - | - |
| 输入字段 | `addwork` | - | - |
| 输入字段 | `activeTab` | - | - |
| 输入字段 | `editForm.订单编号` | - | - |
| 输入字段 | `editForm.产品编码` | - | - |
| 输入字段 | `editForm.产品名称` | - | - |
| 输入字段 | `editForm.工序名称` | - | - |
| 输入字段 | `editForm.工位名称` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 786 | 11（当前通用存储过程查询/执行） | `usp_BatchValidateWorkTime` | 报工或工时处理 | 查询、新增、更新、解析 JSON 批量数据、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 888 | 11（当前通用存储过程查询/执行） | `usp_ValidateWorkTime` | 报工或工时处理 | 查询、新增、更新、解析 JSON 批量数据、处理报工/工时 | 未在 SQL 中解析到明确依赖 |
| 909 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 960 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 975 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单列表` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 1004 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 1057 | 11（当前通用存储过程查询/执行） | `工时校验_获取昨日之前操作记录列表` | 报工或工时处理 | 分页、处理报工/工时 | 视图：`View_生产工时视图` |
| 1149 | 11（当前通用存储过程查询/执行） | `工时校验_获取资源` | 报工或工时处理 | 查询、读取 SAP B1 数据库对象、处理报工/工时 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_ORSC` |
| 1174 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 1293 | 11（当前通用存储过程查询/执行） | `工时校验_获取设备数据` | 报工或工时处理 | 查询、处理报工/工时 | 表：`历史_工位设备状态每分钟记录` |
| 1650 | 11（当前通用存储过程查询/执行） | `工时校验_保存校验记录` | 更新/保存业务数据 | 查询、新增、更新、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 1665 | 11（当前通用存储过程查询/执行） | `工时校验_批量保存校验记录` | 更新/保存业务数据 | 查询、新增、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 1684 | 11（当前通用存储过程查询/执行） | `工时校验_批量保存校验记录` | 更新/保存业务数据 | 查询、新增、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 1707 | 11（当前通用存储过程查询/执行） | `工时校验_保存校验记录` | 更新/保存业务数据 | 查询、新增、更新、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 1756 | 11（当前通用存储过程查询/执行） | `工时校验_批量保存校验记录` | 更新/保存业务数据 | 查询、新增、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 577 行：`getB1("/ProductionOrders")`
- 第 672 行：`getB1("/ProductionOrders")`
- 第 733 行：`postB1("/InventoryGenExits")`
- 第 1482 行：`patchB1("ProductionOrders(${order.AbsoluteEntry})")`
存储过程内读取 SAP B1 数据库对象：
- 工时校验_获取资源: SAP.SBO_YL.dbo.UBT_ORSC

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 577 | `getB1` | `/ProductionOrders` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `filter`、`获取订单数据失败`、`获取到工序数据`、`success`、`error`、`结构异常`、`获取到订单` |
| 672 | `getB1` | `/ProductionOrders` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `filter`、`使用原订单` |
| 733 | `postB1` | `/InventoryGenExits` | 上传库存发出/工时相关单据。失败会导致 SAP 未生成对应业务单据。 | `DocDate`、`DocDueDate`、`Comments`、`AID`、`DocumentLines`、`success`、`error`、`提交工时单据失败`、`warning` |
| 1482 | `patchB1` | `ProductionOrders(${order.AbsoluteEntry})` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `ProductionOrderLines`、`ProductionOrdersStages`、`更新SAP失败`、`查找设备资源`、`StageID` |

### 状态流转说明

- `usp_BatchValidateWorkTime`：`IF @WorkType = '跳过SAP'`；`VALUES (@CurrentAID, 1, '总时长为0，跳过SAP上传', 0, @WorkType, @CalcDetail);`；`PRINT ' 成功: 总时长为0，跳过SAP上传';`；`PRINT '处理完成 - 成功: ' + CAST(@SuccessCount AS NVARCHAR) + ', 失败: ' + CAST(@FailCount AS NVARCHAR);`；`PRINT ' = = = usp_BatchValidateWorkTime 执行完成 = = = ';`
- `usp_ValidateWorkTime`：`@SAPDocumentLine NVARCHAR(MAX) OUTPUT`；`@加工工时 DECIMAL(18, 2), `；`@加工工时 = ISNULL(加工工时, 0), `；`SET @SAPDocumentLine = (`；`UPDATE YL_加工中心_操作记录表`；`加工工时, `；`SET @SAPDocumentLine = NULL;`
- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `工时校验_获取昨日之前操作记录列表`：`@校验状态 nvarchar(4000) = 2, `；`@任务ID nvarchar(4000) = 0, `；`'+ @校验状态 +' = 2`；`OR ('+@校验状态+' = 0 AND Expr1 IS NULL)`；`OR ('+@校验状态+' = 1 AND Expr1 IS NOT NULL)`；`IF @任务ID ! = '0' AND @任务ID ! = ''`；`set @where = @where + ' AND ISNULL(AID, 0) = ' + @任务ID + ' '`；`, 加工工时`
- `工时校验_获取资源`：`select VisName as 资源名称, VisCode, StdCost1 from SAP.SBO_YL.dbo.UBT_ORSC as a where a.VisName = @资源名称`
- `工时校验_获取设备数据`：`CASE TRY_CAST([设备状态] AS INT)`；`END AS 设备状态, `；`FROM [dbo].[历史_工位设备状态每分钟记录]`；`设备状态, `；`WHERE 设备状态 ! = N'未知'`；`GROUP BY 工位名称, 设备状态`；`ORDER BY 设备状态`；`SUM(CASE WHEN 设备状态 = N'运行' THEN 累计分钟 ELSE 0 END) AS 运行总分钟, `
- `工时校验_保存校验记录`：`FROM [dbo].[YL_加工中心_操作记录表]`；`UPDATE [dbo].[YL_加工中心_操作记录表]`；`已报工 = 1, `
- `工时校验_批量保存校验记录`：`操作描述, 开始时间, 结束时间, 工时, 报工日期, 已报工, 不装配, `；`FROM [dbo].[YL_加工中心_操作记录表] o`
- `工时校验_批量保存校验记录`：`操作描述, 开始时间, 结束时间, 工时, 报工日期, 已报工, 不装配, `；`FROM [dbo].[YL_加工中心_操作记录表] o`
- `工时校验_保存校验记录`：`FROM [dbo].[YL_加工中心_操作记录表]`；`UPDATE [dbo].[YL_加工中心_操作记录表]`；`已报工 = 1, `
- `工时校验_批量保存校验记录`：`操作描述, 开始时间, 结束时间, 工时, 报工日期, 已报工, 不装配, `；`FROM [dbo].[YL_加工中心_操作记录表] o`

### 数据库调用链

- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `usp_BatchValidateWorkTime` -> 未在 SQL 中解析到明确依赖 -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `usp_ValidateWorkTime` -> 未在 SQL 中解析到明确依赖 -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_获取订单列表` -> 表：`MES_接口_生产计划` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_获取昨日之前操作记录列表` -> 视图：`View_生产工时视图` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_获取资源` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_ORSC` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_获取设备数据` -> 表：`历史_工位设备状态每分钟记录` -> 报工或工时处理
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_批量保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_批量保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/WorkHoursCheck/index.vue` -> `工时校验_批量保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `usp_BatchValidateWorkTime` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、新增、更新、解析 JSON 批量数据、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@RecordAIDs NVARCHAR(MAX),`、`@Operator NVARCHAR(50),`、`@Editor NVARCHAR(50),`、`@SuccessCount INT`、`@FailCount INT`、`@ResultDetails NVARCHAR(MAX)`。 主要返回字段线索：`CAST(value AS INT)`。 关键过滤/匹配条件：`WHERE ISNUMERIC(value) = 1;`；`WHERE v.操作类别 NOT IN ('加班', '休息日加班', '法定休息日加班')`；`AND v.总时长 > 0`；`AND TRY_CAST(v.开始时间 AS DATE) IS NOT NULL;`；`WHERE OperatorName = @OpName AND WorkDate = @WDate;`；`DECLARE record_cursor CURSOR FOR SELECT AID FROM #TempRecords WHERE Processed = 0;`；`WHERE v.AID = @CurrentAID;`；`ELSE IF @UploadMinutes < 0 OR @WorkType = '无效'`；`UPDATE #TempRecords SET Processed = 1 WHERE AID = @CurrentAID;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempRecords (AID)`；`SET @SuccessCount = 0;`；`SET @FailCount = 0;`；`SET @ResultDetails = '{"SuccessCount":0, "FailCount":0, "Details":[], "Message":"没有有效的记录ID"}';`；`INSERT INTO @OperatorGroups (OperatorName, WorkDate, StandardHours, Ratio, TotalMinutes)`；`UPDATE @OperatorGroups`；`SET Ratio = @Ratio, TotalMinutes = @TotalMin`；`SET @UploadMinutes = @TotalSeconds / 60.0;`；`SET @WorkType = '加班';`；`SET @CalcDetail = (`；`INSERT INTO @ResultTable (AID, Success, Message, UploadMinutes, WorkType, CalculationDetail)`。 排序/分组/分页线索：`FETCH NEXT FROM group_cursor INTO @OpName, @WDate, @StdHours;`；`FETCH NEXT FROM record_cursor INTO @CurrentAID;`。 实现特征：JSON 批量解析、异常捕获、临时表 `#TempRecords`。
- `usp_ValidateWorkTime` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、新增、更新、解析 JSON 批量数据、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 入参/分页参数：`@RecordAID INT,`、`@Operator NVARCHAR(50),`、`@Editor NVARCHAR(50),`、`@StartTime DATETIME`、`@EndTime DATETIME`、`@Success BIT`、`@Message NVARCHAR(500)`、`@SAPDocumentLine NVARCHAR(MAX)`。 主要返回字段线索：`@订单编号 = 订单号, `、`@工位名称 = 工位名称, `、`@操作人 = 操作人, `、`@加工工时 = ISNULL(加工工时, 0), `、`@总时长 = ISNULL(总时长, 0), `、`@工序名称 = 工序名称`。 关键过滤/匹配条件：`WHERE AID = @RecordAID;`；`IF @StartTime IS NOT NULL AND @EndTime IS NOT NULL`；`IF NOT EXISTS (SELECT 1 FROM 生产管理_工时校验_校验工时表 WHERE 报工记录id = @RecordAID)`；`WHERE 报工记录id = @RecordAID;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @Success = 0;`；`SET @Message = '工时计算为0或负数，无法上传';`；`SET @SAPDocumentLine = (`；`UPDATE YL_加工中心_操作记录表`；`SET 开始时间 = @StartTime, `；`INSERT INTO 生产管理_工时校验_校验工时表 (`；`UPDATE 生产管理_工时校验_校验工时表`；`SET 计算详情 = @CalculationDetail, `；`SET @Success = 1;`；`SET @Message = '校验成功，上传工时：' + CAST(@UploadMinutes AS NVARCHAR(20)) + '分钟';`；`SET @Message = ERROR_MESSAGE();`。 实现特征：JSON 批量解析、事务控制、异常捕获。
- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `工时校验_获取订单列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`DISTINCT top 20`、`订单编号, `、`物料编号 as 零件编码, `、`物料描述 as 零件名称`。 关键过滤/匹配条件：`FROM [dbo].[MES_接口_生产计划] WHERE 订单编号 LIKE '%' + @订单编号 + '%' OR @订单编号 = ''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单编号 ;`。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `工时校验_获取昨日之前操作记录列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：分页、处理报工/工时。 读取/关联对象：视图：`View_生产工时视图`。 入参/分页参数：`@开始时间 datetime`、`@结束时间 datetime`、`@校验状态 nvarchar(4000)`、`@过滤性质 nvarchar(4000)`、`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`、`@异常 nvarchar(4000)`、`@任务ID nvarchar(4000)`、`@生产订单 nvarchar(4000)`、`@加班 nvarchar(4000)`、`@人员 nvarchar(4000)`。 关键过滤/匹配条件：`declare @where nvarchar(4000)`；`set @where = ' (`；`OR ('+@校验状态+' = 0 AND Expr1 IS NULL)`；`OR ('+@校验状态+' = 1 AND Expr1 IS NOT NULL)`；`AND (`；`OR ('+@过滤性质+' = 1 AND ISNULL(工位名称, 工位名称) NOT LIKE ''%装配%'')`；`OR ('+@过滤性质+' = 2 AND ISNULL(工位名称, 工位名称) LIKE ''%装配%'')`；`OR ('+@异常+' = 1 AND (ISNULL(结束时间, 结束时间) IS NULL))`；`OR ('+@异常+' = 2 AND ISNULL(结束时间, 结束时间) IS NOT NULL)`；`AND 开始时间 < CONVERT(VARCHAR(10), GETDATE(), 120) + '' 00:00:00''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`set @tbname = ' [dbo].[View_生产工时视图] '`；`set @fieldkey = ' AID '`；`set @where = ' (`；`set @where = @where + ' AND ISNULL(操作类别, '''') LIKE ''%加班%'' '`；`set @where = @where + ' AND ISNULL(操作类别, '''') NOT LIKE ''%加班%'' '`；`set @where = @where + ' AND ISNULL(AID, 0) = ' + @任务ID + ' '`；`set @where = @where + ' AND ISNULL(订单号, 0) = ' + @生产订单 + ' '`；`set @where = @where + ' AND 操作人 LIKE ''%' + @人员 + '%'' '`；`set @fieldOrder = ' 开始时间 DESC '`；`set @fieldshow = '`。 实现特征：分页。
- `工时校验_获取资源` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理报工/工时。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_ORSC`。 入参/分页参数：`@资源名称 NVARCHAR(MAX)`。 主要返回字段线索：`VisName as 资源名称, VisCode, StdCost1`。 关键过滤/匹配条件：`select VisName as 资源名称, VisCode, StdCost1 from SAP.SBO_YL.dbo.UBT_ORSC as a where a.VisName = @资源名称`。 实现特征：读取 SAP 数据库对象。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `工时校验_获取设备数据` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`历史_工位设备状态每分钟记录`。 入参/分页参数：`@工位名称 nvarchar(50)`。 主要返回字段线索：`[AID], `、`[工位号] AS 工位名称, `、`[创建时间], `、`CASE TRY_CAST([设备状态] AS INT)`、`WHEN -1 THEN N'关机'`、`WHEN 0 THEN N'待机'`、`WHEN 1 THEN N'运行'`、`WHEN 2 THEN N'报警'`、`ELSE N'未知'`、`END AS 设备状态, `。 关键过滤/匹配条件：`WHERE 工位号 = @工位名称`；`AND CAST([创建时间] AS DATE) = CAST(GETDATE() AS DATE)`；`WHERE 设备状态 ! = N'未知'`。 排序/分组/分页线索：`LEAD([创建时间]) OVER (ORDER BY [创建时间]) AS 下一记录时间`；`GROUP BY 工位名称, 设备状态`；`ORDER BY 设备状态`；`GROUP BY 工位名称`。
- `工时校验_保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 入参/分页参数：`@orderAID bigint,`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@总时长 int,`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50),`、`@当日班次最小标准工时 nvarchar(50)`。 主要返回字段线索：`@操作类别编号 = 操作类别编号, `、`@操作类别 = 操作类别, `、`@阶段标识 = 阶段标识, `、`@工序名称 = 工序名称, `、`@工位编号 = 工位编号, `、`@工位名称 = 工位名称, `、`@合同号 = 合同号, `、`@订单编号 = 订单编号, `、`@物料编号 = 物料编号, `、`@物料描述 = 物料描述, `。 关键过滤/匹配条件：`WHERE AID = @orderAID;`；`WHERE AID = @orderAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE [dbo].[YL_加工中心_操作记录表]`；`SET`。 实现特征：事务控制、异常捕获。
- `工时校验_批量保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`。 入参/分页参数：`@AID列表 nvarchar(MAX),`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE c.AID IS NULL;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempAID (AID)`；`INSERT INTO [dbo].[生产管理_工时校验_校验工时表] (`。 实现特征：事务控制、异常捕获、临时表 `#TempAID`。
- `工时校验_批量保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`。 入参/分页参数：`@AID列表 nvarchar(MAX),`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE c.AID IS NULL;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempAID (AID)`；`INSERT INTO [dbo].[生产管理_工时校验_校验工时表] (`。 实现特征：事务控制、异常捕获、临时表 `#TempAID`。
- `工时校验_保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 入参/分页参数：`@orderAID bigint,`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@总时长 int,`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50),`、`@当日班次最小标准工时 nvarchar(50)`。 主要返回字段线索：`@操作类别编号 = 操作类别编号, `、`@操作类别 = 操作类别, `、`@阶段标识 = 阶段标识, `、`@工序名称 = 工序名称, `、`@工位编号 = 工位编号, `、`@工位名称 = 工位名称, `、`@合同号 = 合同号, `、`@订单编号 = 订单编号, `、`@物料编号 = 物料编号, `、`@物料描述 = 物料描述, `。 关键过滤/匹配条件：`WHERE AID = @orderAID;`；`WHERE AID = @orderAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE [dbo].[YL_加工中心_操作记录表]`；`SET`。 实现特征：事务控制、异常捕获。
- `工时校验_批量保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`。 入参/分页参数：`@AID列表 nvarchar(MAX),`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`value`。 关键过滤/匹配条件：`WHERE c.AID IS NULL;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO #TempAID (AID)`；`INSERT INTO [dbo].[生产管理_工时校验_校验工时表] (`。 实现特征：事务控制、异常捕获、临时表 `#TempAID`。

## 46. src/views/ProductionManagement/WorkhoursEdit/index.vue

**页面位置**：`src/views/ProductionManagement/WorkhoursEdit/index.vue`  
**所属模块**：ProductionManagement / WorkhoursEdit  
**源码行数**：839

### 页面功能

该页面用于编辑已产生的工时/报工记录，修正异常工时或补录说明。

页面可见的操作/字段包括 “查询”、“新增工时记录”、“设备工时”、“关闭”、“确 定”、“取消”、“item.label”、“全部”、“已校验”、“未校验”，这些是判断页面业务范围的主要线索。

后端主要围绕 `人员管理_人员信息查询_质检部门_查询`、`系统管理_人员管理_所有有效人员查询`、`工时校验_获取订单列表`、`工时校验_获取订单工序`、`工时校验_获取操作记录列表`、`工时校验_获取设备数据` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `人员管理_人员信息查询_质检部门_查询` -> `系统管理_人员管理_所有有效人员查询` -> `工时校验_获取订单列表` -> `工时校验_获取订单工序` -> `工时校验_获取操作记录列表` -> `工时校验_获取设备数据` -> `工时校验_保存校验记录` -> `工时校验_新增操作记录` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`新增工时记录`、`设备工时`、`关闭`、`确 定`、`取消`、`item.label`、`全部`、`已校验`、`未校验`、`异常`、`正常`、`大于550`、`超时未校验`、`装配`、`机加`、`加班`、`序号`

主要方法线索：`getCheckerList`、`for`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `orderId` | `@订单编号` | `订单编号, ` |
| 参数 | `selectedChecker ? selectedChecker.label : 0` | `@人员` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工时ID` | - | `工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode` |
| 显示列 | `人员` | - | `Personnel_Number AS 人员编号, ` |
| 显示列 | `生产订单` | - | `订单编号, ` |
| 显示列 | `物料编码` | - | `产品编码` |
| 显示列 | `物料名称` | - | `产品名称` |
| 显示列 | `工序名称` | - | `工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode` |
| 显示列 | `工位名称` | - | `工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode` |
| 显示列 | `报工类型` | - | `@操作类别编号 = 操作类别编号, ` |
| 显示列 | `数量` | - | `操作数值` |
| 显示列 | `开始时间` | - | `开始时间` |
| 显示列 | `结束时间` | - | `结束时间` |
| 显示列 | `设备工时` | - | `设备工时` |
| 显示列 | `人员工时` | - | `人员工时` |
| 显示列 | `校验状态` | - | `校验状态` |
| 显示列 | `最后编辑人` | - | `最后编辑人` |
| 显示列 | `最后编辑时间` | - | `最后编辑时间` |
| 显示列 | `操作` | - | `@操作类别编号 = 操作类别编号, ` |
| 显示列 | `累计分钟` | - | `累计分钟` |
| 显示列 | `设备状态` | - | `CASE TRY_CAST([设备状态] AS INT)` |
| 显示列 | `累计秒数` | - | `累计秒数` |
| 输入字段 | `taskid` | - | - |
| 输入字段 | `taskorder` | - | - |
| 输入字段 | `checker` | - | - |
| 输入字段 | `timeRange` | - | - |
| 输入字段 | `checkStatus` | - | - |
| 输入字段 | `abnormalstatus` | - | - |
| 输入字段 | `natureStatus` | - | - |
| 输入字段 | `addwork` | - | - |
| 输入字段 | `activeTab` | - | - |
| 输入字段 | `editForm.订单编号` | - | - |
| 输入字段 | `editForm.产品编码` | - | - |
| 输入字段 | `editForm.产品名称` | - | - |
| 输入字段 | `editForm.工序名称` | - | - |
| 输入字段 | `editForm.工位名称` | - | - |
| 输入字段 | `editForm.操作人` | - | - |
| 输入字段 | `editForm.操作类别` | - | - |
| 输入字段 | `editForm.操作数值` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 474 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 503 | 11（当前通用存储过程查询/执行） | `系统管理_人员管理_所有有效人员查询` | 查询/读取数据 | 查询 | 视图：`登录基础数据_管理人员权限视图` |
| 518 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单列表` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 547 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 602 | 11（当前通用存储过程查询/执行） | `工时校验_获取操作记录列表` | 报工或工时处理 | 分页、处理报工/工时 | 视图：`View_生产工时视图` |
| 647 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 662 | 11（当前通用存储过程查询/执行） | `工时校验_获取设备数据` | 报工或工时处理 | 查询、处理报工/工时 | 表：`历史_工位设备状态每分钟记录` |
| 739 | 11（当前通用存储过程查询/执行） | `工时校验_保存校验记录` | 更新/保存业务数据 | 查询、新增、更新、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 798 | 11（当前通用存储过程查询/执行） | `工时校验_新增操作记录` | 新增业务数据 | 查询、新增、处理报工/工时 | 表：`YL_加工中心_操作记录表` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `工时校验_获取操作记录列表`：`@校验状态 nvarchar(4000) = 2, `；`@任务ID nvarchar(4000) = 0, `；`IF @校验状态 = '0'`；`ELSE IF @校验状态 = '1'`；`set @where = @where + ' AND 结束时间 IS NOT NULL AND ISNULL(加工工时, 总时长) DATEADD(day, -1, GETDATE()) '`；`set @where = @where + ' AND ISNULL(加工工时, 总时长) > 33000 '`；`IF @任务ID ! = '0' AND @任务ID ! = ''`；`set @where = @where + ' AND ISNULL(AID, 0) = ' + @任务ID + ' '`
- `工时校验_获取设备数据`：`CASE TRY_CAST([设备状态] AS INT)`；`END AS 设备状态, `；`FROM [dbo].[历史_工位设备状态每分钟记录]`；`设备状态, `；`WHERE 设备状态 ! = N'未知'`；`GROUP BY 工位名称, 设备状态`；`ORDER BY 设备状态`；`SUM(CASE WHEN 设备状态 = N'运行' THEN 累计分钟 ELSE 0 END) AS 运行总分钟, `
- `工时校验_保存校验记录`：`FROM [dbo].[YL_加工中心_操作记录表]`；`UPDATE [dbo].[YL_加工中心_操作记录表]`；`已报工 = 1, `
- `工时校验_新增操作记录`：`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`；`操作描述, TaskAID, 开始时间, 结束时间, 实际工时, 报工日期, 已报工, 不装配, `；`WHEN '开始加工' THEN 4`

### 数据库调用链

- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `系统管理_人员管理_所有有效人员查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `工时校验_获取订单列表` -> 表：`MES_接口_生产计划` -> 报工或工时处理
- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `工时校验_获取操作记录列表` -> 视图：`View_生产工时视图` -> 报工或工时处理
- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `工时校验_获取设备数据` -> 表：`历史_工位设备状态每分钟记录` -> 报工或工时处理
- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `工时校验_保存校验记录` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/ProductionManagement/WorkhoursEdit/index.vue` -> `工时校验_新增操作记录` -> 表：`YL_加工中心_操作记录表` -> 新增业务数据

### 存储过程处理逻辑明细

- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `系统管理_人员管理_所有有效人员查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`Personnel_Number AS 人员编号, `、`Personnel_Name AS 人员姓名, `、`account AS 账号, `、`Roles_Function AS 角色, `、`部门名称`。 关键过滤/匹配条件：`WHERE Quit = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY Personnel_Name;`。
- `工时校验_获取订单列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`DISTINCT top 20`、`订单编号, `、`物料编号 as 零件编码, `、`物料描述 as 零件名称`。 关键过滤/匹配条件：`FROM [dbo].[MES_接口_生产计划] WHERE 订单编号 LIKE '%' + @订单编号 + '%' OR @订单编号 = ''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单编号 ;`。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `工时校验_获取操作记录列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：分页、处理报工/工时。 读取/关联对象：视图：`View_生产工时视图`。 入参/分页参数：`@开始时间 datetime`、`@结束时间 datetime`、`@校验状态 nvarchar(4000)`、`@过滤性质 nvarchar(4000)`、`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`、`@异常 nvarchar(4000)`、`@任务ID nvarchar(4000)`、`@生产订单 nvarchar(4000)`、`@加班 nvarchar(4000)`、`@人员 nvarchar(4000)`。 关键过滤/匹配条件：`declare @where nvarchar(4000)`；`set @where = ' (1 = 1) '`；`set @where = @where + ' AND Expr1 IS NULL '`；`set @where = @where + ' AND Expr1 IS NOT NULL '`；`set @where = @where + ' AND ISNULL(工位名称, '''') NOT LIKE ''%装配%'' '`；`set @where = @where + ' AND ISNULL(工位名称, '''') LIKE ''%装配%'' '`；`set @where = @where + ' AND 结束时间 IS NULL '`；`set @where = @where + ' AND 结束时间 IS NOT NULL AND ISNULL(加工工时, 总时长) DATEADD(day, -1, GETDATE()) '`；`set @where = @where + ' AND ISNULL(加工工时, 总时长) > 33000 '`；`set @where = @where + ' AND 结束时间 < DATEADD(day, -1, GETDATE()) '`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`set @tbname = ' [dbo].[View_生产工时视图] '`；`set @fieldkey = ' AID '`；`set @where = ' (1 = 1) '`；`set @where = @where + ' AND Expr1 IS NULL '`；`set @where = @where + ' AND Expr1 IS NOT NULL '`；`set @where = @where + ' AND ISNULL(工位名称, '''') NOT LIKE ''%装配%'' '`；`set @where = @where + ' AND ISNULL(工位名称, '''') LIKE ''%装配%'' '`；`set @where = @where + ' AND 结束时间 IS NULL '`；`set @where = @where + ' AND 结束时间 IS NOT NULL AND ISNULL(加工工时, 总时长) DATEADD(day, -1, GETDATE()) '`；`set @where = @where + ' AND ISNULL(加工工时, 总时长) > 33000 '`；`set @where = @where + ' AND 结束时间 < DATEADD(day, -1, GETDATE()) '`。 实现特征：分页。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `工时校验_获取设备数据` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`历史_工位设备状态每分钟记录`。 入参/分页参数：`@工位名称 nvarchar(50)`。 主要返回字段线索：`[AID], `、`[工位号] AS 工位名称, `、`[创建时间], `、`CASE TRY_CAST([设备状态] AS INT)`、`WHEN -1 THEN N'关机'`、`WHEN 0 THEN N'待机'`、`WHEN 1 THEN N'运行'`、`WHEN 2 THEN N'报警'`、`ELSE N'未知'`、`END AS 设备状态, `。 关键过滤/匹配条件：`WHERE 工位号 = @工位名称`；`AND CAST([创建时间] AS DATE) = CAST(GETDATE() AS DATE)`；`WHERE 设备状态 ! = N'未知'`。 排序/分组/分页线索：`LEAD([创建时间]) OVER (ORDER BY [创建时间]) AS 下一记录时间`；`GROUP BY 工位名称, 设备状态`；`ORDER BY 设备状态`；`GROUP BY 工位名称`。
- `工时校验_保存校验记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 写入或更新对象：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 入参/分页参数：`@orderAID bigint,`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@总时长 int,`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50),`、`@当日班次最小标准工时 nvarchar(50)`。 主要返回字段线索：`@操作类别编号 = 操作类别编号, `、`@操作类别 = 操作类别, `、`@阶段标识 = 阶段标识, `、`@工序名称 = 工序名称, `、`@工位编号 = 工位编号, `、`@工位名称 = 工位名称, `、`@合同号 = 合同号, `、`@订单编号 = 订单编号, `、`@物料编号 = 物料编号, `、`@物料描述 = 物料描述, `。 关键过滤/匹配条件：`WHERE AID = @orderAID;`；`WHERE AID = @orderAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE [dbo].[YL_加工中心_操作记录表]`；`SET`。 实现特征：事务控制、异常捕获。
- `工时校验_新增操作记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`。 写入或更新对象：`YL_加工中心_操作记录表`。 入参/分页参数：`@操作类别 nvarchar(50),`、`@订单编号 nvarchar(50),`、`@物料编号 nvarchar(50),`、`@物料描述 nvarchar(50),`、`@工序名称 nvarchar(50),`、`@工位名称 nvarchar(50),`、`@操作人 nvarchar(50),`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@操作内容 nvarchar(500)`、`@操作描述 nvarchar(2000)`、`@TaskAID int`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @工时 = DATEDIFF(SECOND, @开始时间, @结束时间);`；`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`。 实现特征：异常捕获。

## 47. src/views/ProductionManagement/Workhours/index.vue

**页面位置**：`src/views/ProductionManagement/Workhours/index.vue`  
**所属模块**：ProductionManagement / Workhours  
**源码行数**：413

### 页面功能

该页面用于工时查询，按工序、人员、设备、时间等条件查看工序工时。

页面可见的操作/字段包括 “查询”、“工序工时”、“任务描述”、“报工次数”、“报工数量”、“工位名称”、“实际工时”、“辅助工时”、“平均程序工时”、“平均实际工时”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_工时查询_工序工时_查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `生产管理_工时查询_工序工时_查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`工序工时`、`任务描述`、`报工次数`、`报工数量`、`工位名称`、`实际工时`、`辅助工时`、`平均程序工时`、`平均实际工时`、`平均辅助工时`、`工艺工时`、`合同号`、`订单号`、`产品编码`、`产品名称`、`工序名称`、`请输入合同号`

主要方法线索：`handleSearch`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `任务描述` | - | `taskAID` |
| 显示列 | `报工次数` | - | `reportCount` |
| 显示列 | `报工数量` | - | `reportQty` |
| 显示列 | `工位名称` | - | `工位名称` |
| 显示列 | `实际工时` | - | `actualWorkHours` |
| 显示列 | `辅助工时` | - | `auxiliaryWorkHours` |
| 显示列 | `平均程序工时` | - | `avgActualWorkHours` |
| 显示列 | `平均实际工时` | - | `avgActualWorkHours` |
| 显示列 | `平均辅助工时` | - | `avgAuxiliaryWorkHours` |
| 显示列 | `工艺工时` | - | `avgAuxiliaryWorkHours` |
| 显示列 | `合同号` | - | `contractNo` |
| 显示列 | `订单号` | - | `orderNo` |
| 显示列 | `产品编码` | - | `productCode` |
| 显示列 | `产品名称` | - | `productName` |
| 显示列 | `工序名称` | - | `processName` |
| 输入字段 | `searchForm.contractNo` | - | - |
| 输入字段 | `searchForm.productCode` | - | - |
| 输入字段 | `searchForm.orderNo` | - | - |
| 输入字段 | `searchForm.datanum` | - | - |
| 输入字段 | `searchForm.startDate` | - | - |
| 输入字段 | `searchForm.endDate` | - | - |
| 输入字段 | `activeTab` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 238 | 11（当前通用存储过程查询/执行） | `生产管理_工时查询_工序工时_查询` | 查询/读取数据 | 查询、处理报工/工时 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `生产管理_工时查询_工序工时_查询`：`CASE WHEN v.操作内容 = '报工' THEN v.加工工时 ELSE 0 END AS 实际加工工时, `；`CASE WHEN v.操作内容 = '辅助结束' THEN v.加工工时 ELSE 0 END AS 辅助加工工时, `；`AND (CASE WHEN v.操作内容 = '报工' THEN v.加工工时 ELSE 0 END > 0`；`OR CASE WHEN v.操作内容 = '辅助结束' THEN v.加工工时 ELSE 0 END > 0)`；`ISNULL(产品名称, '') + ' ' + ISNULL(产品编码, '') + ' ' + ISNULL(工序名称, '') + ' 序'+ CAST(订单行号 AS VARCHAR(50)) AS 任务描述`；`t.任务描述, `；`CAST(SUM(实际加工工时) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 实际工时小时, `；`CAST(SUM(辅助加工工时) / 60.0 / 60.0 AS DECIMAL(10, 1)) AS 辅助工时小时, `

### 数据库调用链

- `src/views/ProductionManagement/Workhours/index.vue` -> `生产管理_工时查询_工序工时_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据

### 存储过程处理逻辑明细

- `生产管理_工时查询_工序工时_查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@合同号 NVARCHAR(50)`、`@产品编码 NVARCHAR(100)`、`@订单号 NVARCHAR(50)`、`@开始日期 DATE`、`@结束日期 DATE`、`@数据条数 int`。 主要返回字段线索：`top (@数据条数)`、`v.*, `、`CASE`、`WHEN CAST(v.开始时间 AS TIME) > = @白班开始时间`、`AND CAST(v.开始时间 AS TIME) < @白班结束时间 THEN '白班'`、`WHEN CAST(v.开始时间 AS TIME) > = @夜班开始时间`、`OR CAST(v.开始时间 AS TIME) < @夜班结束时间 THEN '夜班'`、`ELSE '其他'`、`END AS 班次, `、`CASE WHEN v.操作内容 = '报工' THEN v.加工工时 ELSE 0 END AS 实际加工工时, `。 关键过滤/匹配条件：`AND CAST(v.开始时间 AS TIME) < @白班结束时间 THEN '白班'`；`OR CAST(v.开始时间 AS TIME) < @夜班结束时间 THEN '夜班'`；`AND v.订单行号 = p.工艺顺序`；`WHERE (@开始日期 IS NULL OR @开始日期 = '' OR v.开始时间 > = @开始日期)`；`AND (@结束日期 IS NULL OR @结束日期 = '' OR v.结束时间 > = @结束日期)`；`AND (@合同号 IS NULL OR @合同号 = '' OR v.订单合同号 LIKE '%' + @合同号 + '%')`；`AND (@产品编码 IS NULL OR @产品编码 = '' OR v.产品编码 LIKE '%' + @产品编码 + '%')`；`AND (@订单号 IS NULL OR @订单号 = '' OR v.订单号 = @订单号 )`；`AND (CASE WHEN v.操作内容 = '报工' THEN v.加工工时 ELSE 0 END > 0`；`OR CASE WHEN v.操作内容 = '辅助结束' THEN v.加工工时 ELSE 0 END > 0)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`GROUP BY b.TaskAID, t.任务描述`；`GROUP BY b.TaskAID, t.任务描述, CONVERT(VARCHAR(10), b.开始时间, 120)`；`GROUP BY b.TaskAID, t.任务描述, CONVERT(VARCHAR(10), b.开始时间, 120), b.班次, b.工位名称`；`ORDER BY TaskAID, dateLabel, shift, [Level]`。

## 48. src/views/QualityManagement/CheckTask/OtherInbound.vue

**页面位置**：`src/views/QualityManagement/CheckTask/OtherInbound.vue`  
**所属模块**：QualityManagement / CheckTask  
**源码行数**：752

### 页面功能

该页面处理其他入库检验。用户查询其他入库待检任务，录入检验结果并更新质检记录。

页面可见的操作/字段包括 “查询”、“取 消”、“合格”、“不合格”、“item.label”、“序号”、“生产订单”、“物料名称”、“物料编码”、“采购数”，这些是判断页面业务范围的主要线索。

后端主要围绕 `查询字典`、`人员管理_人员信息查询_质检部门_查询`、`质量管理_其他入库_查询`、`质量管理_其他入库检验_更新` 取数或提交业务动作。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`取 消`、`合格`、`不合格`、`item.label`、`序号`、`生产订单`、`物料名称`、`物料编码`、`采购数`、`检验数量`、`合格数`、`不合格数`、`检验人`、`检验时间`、`备注`、`操作`、`请输入生产订单`

主要方法线索：`getTypeList`、`for`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.partName` | `@零件名称` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[0` | `@检测日期_Start` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[1` | `@检测日期_End` | - |
| 参数 | `this.inspectionResult` | `@检测结果` | - |
| 参数 | `selectedChecker ? selectedChecker.label : ""` | `@检测人` | - |
| 参数 | `5` | `@检测类型编号` | - |
| 参数 | `"来料检验"` | `@质检类型` | - |
| 参数 | `this.receiveCheckData.零件名称` | `@零件名称` | - |
| 参数 | `this.receiveCheckData.零件编码` | `@零件编码` | - |
| 参数 | `this.receiveCheckData.计划号` | `@计划号` | - |
| 参数 | `this.receiveCheckData.检测数量` | `@检测数量` | - |
| 参数 | `this.receiveCheckData.合格数` | `@合格数` | - |
| 参数 | `this.receiveCheckData.不合格数` | `@不合格数` | - |
| 参数 | `this.receiveCheckData.检测人` | `@检测人` | - |
| 参数 | `this.receiveCheckData.检测时间` | `@检测时间` | - |
| 参数 | `this.receiveCheckData.检测说明` | `@检测说明` | - |
| 参数 | `this.receiveCheckData.行号` | `@行号` | - |
| 参数 | `this.receiveCheckData.订单类型` | `@订单类型` | - |
| 参数 | `this.receiveCheckData.放行数量` | `@放行数量` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `生产订单` | - | `订单编号` |
| 显示列 | `物料名称` | - | `物料名称` |
| 显示列 | `物料编码` | - | `物料编码` |
| 显示列 | `采购数` | - | `计划生产数` |
| 显示列 | `检验数量` | - | `入库数量` |
| 显示列 | `合格数` | - | `合格数` |
| 显示列 | `不合格数` | - | `不合格数` |
| 显示列 | `检验人` | - | `检测人` |
| 显示列 | `检验时间` | - | `检验时间` |
| 显示列 | `备注` | - | `备注` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `orderNo` | `@订单号` | - |
| 输入字段 | `partName` | `@零件名称` | - |
| 输入字段 | `partNo` | `@零件编号` | - |
| 输入字段 | `inspectionDate` | `@检测日期_Start` | - |
| 输入字段 | `completionTime` | - | - |
| 输入字段 | `inspectionResult` | `@检测结果` | - |
| 输入字段 | `checker` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 433 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 447 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 483 | 11（当前通用存储过程查询/执行） | `质量管理_其他入库_查询` | 查询/读取数据 | 查询、处理质检数据 | 表：`质量检验_质检任务_SAP` |
| 581 | 12（当前通用存储过程写入/业务动作） | `质量管理_其他入库检验_更新` | 更新/保存业务数据 | 查询、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `质量管理_其他入库_查询`：`@状态 NVARCHAR(10) = '', `；`IF @状态 ''`；`IF @状态 = '1'`；`ELSE IF @状态 = '0'`；`* from [dbo].[质量检验_质检任务_SAP] '+@WhereConditions+''`
- `质量管理_其他入库检验_更新`：`@质检类型 NVARCHAR(50), `；`UPDATE [dbo].[质量检验_质检任务_SAP]`；`MERGE INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] AS target`；`@质检类型 AS 质检类型, `；`target.[质检类型] = source.[质检类型], `；`[质检类型], `；`source.[质检类型], `

### 数据库调用链

- `src/views/QualityManagement/CheckTask/OtherInbound.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/OtherInbound.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/OtherInbound.vue` -> `质量管理_其他入库_查询` -> 表：`质量检验_质检任务_SAP` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/OtherInbound.vue` -> `质量管理_其他入库检验_更新` -> 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `质量管理_其他入库_查询` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`质量检验_质检任务_SAP`。 入参/分页参数：`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@检测日期_Start NVARCHAR(20)`、`@检测日期_End NVARCHAR(20)`、`@检测结果 NVARCHAR(10)`、`@检测人 NVARCHAR(50)`、`@状态 NVARCHAR(10)`、`@单据码 NVARCHAR(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SET @WhereConditions = @WhereConditions + ' AND (订单类型 = ''59'') '`；`SET @WhereConditions = @WhereConditions + ' AND 单据码 LIKE ''%' + @单据码 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 订单编号 LIKE ''%' + @订单号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料编码 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料名称 LIKE ''%' + @零件名称 + '%'''`；`IF @检测日期_Start '' AND @检测日期_End ''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检验时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND (合格数 > 0 AND 不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND ( 不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(合格数, 0) + ISNULL(不合格数, 0) = ISNULL(到货数, 0)) AND ISNULL(到货数, 0) 0'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @WhereConditions = @WhereConditions + ' AND (订单类型 = ''59'') '`；`SET @WhereConditions = @WhereConditions + ' AND 单据码 LIKE ''%' + @单据码 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 订单编号 LIKE ''%' + @订单号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料编码 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料名称 LIKE ''%' + @零件名称 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检验时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND (合格数 > 0 AND 不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND ( 不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(合格数, 0) + ISNULL(不合格数, 0) = ISNULL(到货数, 0)) AND ISNULL(到货数, 0) 0'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(合格数, 0) + ISNULL(不合格数, 0) < ISNULL(到货数, 入库数量)) '`；`SET @WhereConditions = @WhereConditions + ' AND ISNULL( 检测人, '''') LIKE ''%' + @检测人 + '%'''`。
- `质量管理_其他入库检验_更新` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP`。 写入或更新对象：`质量检验_质检任务_SAP`。 入参/分页参数：`@检测类型编号 int,`、`@质检类型 NVARCHAR(50),`、`@零件名称 NVARCHAR(200),`、`@零件编码 NVARCHAR(200),`、`@计划号 int,`、`@检测数量 decimal(18,`、`@合格数 decimal(18,`、`@不合格数 decimal(18,`、`@检测人 NVARCHAR(50),`、`@检测时间 DATETIME,`、`@检测说明 NVARCHAR(MAX),`、`@行号 int,`、`@订单类型 NVARCHAR(50),`、`@放行数量 int`。 关键过滤/匹配条件：`WHERE 订单编号 = @计划号 AND 行号 = @行号 and 订单类型 = @订单类型`；`ON (target.[零件编码] = source.[零件编码] AND target.[计划号] = source.[计划号] and target.行号 = source.行号 )`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE [dbo].[质量检验_质检任务_SAP]`；`SET 合格数 = @合格数, `；`MERGE INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] AS target`；`UPDATE SET`。

## 49. src/views/QualityManagement/CheckTask/final.vue

**页面位置**：`src/views/QualityManagement/CheckTask/final.vue`  
**所属模块**：QualityManagement / CheckTask  
**源码行数**：1209

### 页面功能

该页面处理终检任务。质检人员查询终检任务，录入终检结果，并预留 SAP 生产订单状态回写。

页面可见的操作/字段包括 “查询”、“导出 --> -->”、“取 消”、“关闭”、“装配”、“机加”、“全部”、“合格”、“不合格”、“已完成”，这些是判断页面业务范围的主要线索。

后端主要围绕 `加急订单_加急明细查询`、`查询字典`、`人员管理_人员信息查询_质检部门_查询`、`质量管理_质量检验_终检数据_查询`、`质量管理_质量检验_终检记录_查询`、`MES_QulityInspection_FinalCheck` 等过程 取数或提交业务动作。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`导出 --> -->`、`取 消`、`关闭`、`装配`、`机加`、`全部`、`合格`、`不合格`、`已完成`、`未完成`、`item.label`、`序号`、`销售订单`、`生产订单`、`物料名称`、`物料编码`、`工序名称`

主要方法线索：`Urgent`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.零件编码` | `@物料编号` | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.partName` | `@零件名称` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@完工日期_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@完工日期_End` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[0` | `@检测日期_Start` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[1` | `@检测日期_End` | - |
| 参数 | `this.inspectionResult` | `@检测结果` | - |
| 参数 | `selectedChecker ? selectedChecker.label : ""` | `@检测人` | - |
| 参数 | `this.checkstatus` | `@检验状态` | - |
| 参数 | `this.attribute` | `@属性` | - |
| 参数 | `row.内部合同号 ` | `@合同号` | - |
| 参数 | `row.计划号 ` | `@订单号` | - |
| 参数 | `row.零件编码 ` | `@零件编号` | - |
| 参数 | `row.零件名称 ` | `@零件名称` | - |
| 参数 | `this.inspectionDate[0` | `@检测日期_Start` | - |
| 参数 | `this.inspectionDate[1` | `@检测日期_End` | - |
| 参数 | `this.finalCheckData.TaskAID ` | `@TaskAID` | - |
| 参数 | `8` | `@检测类型编号` | - |
| 参数 | `"终检"` | `@质检类型` | - |
| 参数 | `this.finalCheckData.零件名称` | `@零件名称` | - |
| 参数 | `this.finalCheckData.内部合同号` | `@内部合同号` | - |
| 参数 | `this.finalCheckData.零件编码` | `@零件编码` | - |
| 参数 | `this.finalCheckData.计划号` | `@计划号` | - |
| 参数 | `this.finalCheckData.工序名称` | `@工序名称` | - |
| 参数 | `this.finalCheckData.检测数量` | `@检测数量` | - |
| 参数 | `this.finalCheckData.合格数` | `@合格数` | - |
| 参数 | `this.finalCheckData.不合格数` | `@不合格数` | - |
| 参数 | `this.finalCheckData.检测人` | `@检测人` | - |
| 参数 | `this.finalCheckData.检测时间` | `@检测时间` | - |
| 参数 | `this.finalCheckData.检测说明` | `@检测说明` | - |
| 参数 | `this.finalCheckData.放行数量` | `@放行数量` | - |
| 参数 | `this.finalCheckData.计划号` | `@订单编号` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `销售订单` | - | `内部合同号, ` |
| 显示列 | `生产订单` | - | `计划号, ` |
| 显示列 | `物料名称` | - | `零件名称, ` |
| 显示列 | `物料编码` | - | `零件编码, ` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 650 | 11（当前通用存储过程查询/执行） | `加急订单_加急明细查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` |
| 657 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 671 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 725 | 11（当前通用存储过程查询/执行） | `质量管理_质量检验_终检数据_查询` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 829 | 11（当前通用存储过程查询/执行） | `质量管理_质量检验_终检记录_查询` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录` |
| 923 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_FinalCheck` | 质量检验处理 | 查询、新增、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录` |
| 962 | 11（当前通用存储过程查询/执行） | `工时校验_获取工序和指派对象` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 加急订单_加急明细查询: SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `加急订单_加急明细查询`：`SELECT docentry as 订单编号, itemcode as 物料编号, 加急数量 from SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`
- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `质量管理_质量检验_终检数据_查询`：`@检验状态 NVARCHAR(10) = '', `；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 计划完成时间) BETWEEN ''' + @完工日期_Start + ''' AND ''' + @完工日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND 检测状态 = 1'`；`SET @WhereConditions = @WhereConditions + ' AND 检测状态 = 2'`；`IF @检验状态 ''`；`IF @检验状态 = '1'`；`SET @WhereConditions = @WhereConditions + ' AND 检验状态 = ''已完成'''`；`ELSE IF @检验状态 = '0'`
- `质量管理_质量检验_终检记录_查询`：`SET @WhereConditions = @WhereConditions + ' AND 质检类型 = ''终检'' AND 检测类型编号 = 8'`；`质检类型, `；`FROM [dbo].[YL_质量检验_质检记录]`
- `MES_QulityInspection_FinalCheck`：`@质检类型 NVARCHAR(50) = '终检', `；`INSERT INTO [dbo].[YL_质量检验_质检记录] (`；`TaskAID, 检测类型编号, 质检类型, 零件名称, 内部合同号, `；`@TaskAID, @检测类型编号, @质检类型, @零件名称, @内部合同号, `
- `工时校验_获取工序和指派对象`：`select 顺序编号, 指派对象, 工序名称, 订单行号, b.VisCode as 指派对象编号 from MES_接口_生产计划_生产任务 a left join MES_资源主数据 b on a.指派对象 = b.Name where 订单编号 = @订单编号`

### 数据库调用链

- `src/views/QualityManagement/CheckTask/final.vue` -> `加急订单_加急明细查询` -> 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/final.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/final.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/final.vue` -> `质量管理_质量检验_终检数据_查询` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/final.vue` -> `质量管理_质量检验_终检记录_查询` -> 表：`YL_质量检验_质检记录` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/final.vue` -> `MES_QulityInspection_FinalCheck` -> 表：`YL_质量检验_质检记录` -> 质量检验处理
- `src/views/QualityManagement/CheckTask/final.vue` -> `工时校验_获取工序和指派对象` -> 表：`MES_接口_生产计划` -> 报工或工时处理

### 存储过程处理逻辑明细

- `加急订单_加急明细查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`docentry as 订单编号, itemcode as 物料编号, 加急数量`。 关键过滤/匹配条件：`where itemcode = @物料编号`。 实现特征：读取 SAP 数据库对象。
- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `质量管理_质量检验_终检数据_查询` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@合同号 NVARCHAR(100)`、`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@完工日期_Start NVARCHAR(20)`、`@完工日期_End NVARCHAR(20)`、`@检测日期_Start NVARCHAR(20)`、`@检测日期_End NVARCHAR(20)`、`@检测结果 NVARCHAR(10)`、`@检测人 NVARCHAR(50)`、`@检测类别 NVARCHAR(50)`、`@检验状态 NVARCHAR(10)`、`@属性 NVARCHAR(50)`。 主要返回字段线索：`订单编号, MAX(订单行号) AS 最大订单行号`。 关键过滤/匹配条件：`SET @WhereConditions = @WhereConditions + ' AND 内部合同号 LIKE ''%' + REPLACE(@合同号, '''', '''''') + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 计划号 = '+@订单号+''`；`SET @WhereConditions = @WhereConditions + ' AND 零件编码 LIKE ''%' + REPLACE(@零件编号, '''', '''''') + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 零件名称 LIKE ''%' + REPLACE(@零件名称, '''', '''''') + '%'''`；`IF @完工日期_Start '' AND @完工日期_End ''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 计划完成时间) BETWEEN ''' + @完工日期_Start + ''' AND ''' + @完工日期_End + ''''`；`IF @检测日期_Start '' AND @检测日期_End ''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检测时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND 检测状态 = 1'`；`SET @WhereConditions = @WhereConditions + ' AND 检测状态 = 2'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @WhereConditions = @WhereConditions + ' AND 内部合同号 LIKE ''%' + REPLACE(@合同号, '''', '''''') + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 计划号 = '+@订单号+''`；`SET @WhereConditions = @WhereConditions + ' AND 零件编码 LIKE ''%' + REPLACE(@零件编号, '''', '''''') + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 零件名称 LIKE ''%' + REPLACE(@零件名称, '''', '''''') + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 计划完成时间) BETWEEN ''' + @完工日期_Start + ''' AND ''' + @完工日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检测时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND 检测状态 = 1'`；`SET @WhereConditions = @WhereConditions + ' AND 检测状态 = 2'`；`SET @WhereConditions = @WhereConditions + ' AND 检测人 LIKE ''%' + REPLACE(@检测人, '''', '''''') + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 检测类别 = ''' + REPLACE(@检测类别, '''', '''''') + ''''`；`SET @WhereConditions = @WhereConditions + ' AND 检验状态 = ''已完成'''`。 排序/分组/分页线索：`GROUP BY 订单编号`；`GROUP BY TaskAID, 工序名称`；`GROUP BY 内部合同号, 计划号, 零件编码, 零件名称, 工序名称, TaskAID, 加急状态, 加急总数, 自制件属性`；`SET @SQL = @SQL + ' ORDER BY 检测时间 DESC, 内部合同号, 计划号'`。
- `质量管理_质量检验_终检记录_查询` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`。 入参/分页参数：`@合同号 NVARCHAR(100)`、`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@检测日期_Start NVARCHAR(20)`、`@检测日期_End NVARCHAR(20)`、`@检测结果 NVARCHAR(10)`、`@检测人 NVARCHAR(50)`。 主要返回字段线索：`QT_AID, `、`TaskAID, `、`检测类型编号, `、`质检类型, `、`零件编码, `、`零件名称, `、`内部合同号, `、`计划号, `、`工序名称, `、`计划生产数, `。 关键过滤/匹配条件：`SET @WhereConditions = @WhereConditions + ' AND 内部合同号 LIKE ''%' + @合同号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 计划号 LIKE ''%' + @订单号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 零件编码 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'''`；`IF @检测日期_Start '' AND @检测日期_End ''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检测时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND (合格数 > 0 AND 不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND 检测人 LIKE ''%' + @检测人 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 质检类型 = ''终检'' AND 检测类型编号 = 8'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @WhereConditions = @WhereConditions + ' AND 内部合同号 LIKE ''%' + @合同号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 计划号 LIKE ''%' + @订单号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 零件编码 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检测时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND (合格数 > 0 AND 不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND 检测人 LIKE ''%' + @检测人 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 质检类型 = ''终检'' AND 检测类型编号 = 8'`；`SET @WhereConditions = ' WHERE ' + SUBSTRING(@WhereConditions, 5, LEN(@WhereConditions))`；`SET @SQL = '`。 排序/分组/分页线索：`ORDER BY 检测时间 DESC, 内部合同号, 计划号'`。
- `MES_QulityInspection_FinalCheck` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 质量检验处理。 数据库处理摘要：查询、新增、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`。 写入或更新对象：`YL_质量检验_质检记录`。 入参/分页参数：`@TaskAID INT`、`@检测类型编号 INT`、`@质检类型 NVARCHAR(50)`、`@零件名称 NVARCHAR(100),`、`@内部合同号 NVARCHAR(100),`、`@零件编码 NVARCHAR(100),`、`@计划号 NVARCHAR(100),`、`@工序名称 NVARCHAR(100),`、`@检测数量 INT,`、`@合格数 INT,`、`@不合格数 INT,`、`@检测人 NVARCHAR(50),`、`@检测时间 NVARCHAR(50),`、`@检测说明 NVARCHAR(500)`、`@放行数量 INT`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [dbo].[YL_质量检验_质检记录] (`。
- `工时校验_获取工序和指派对象` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`顺序编号, 指派对象, 工序名称, 订单行号, b.VisCode as 指派对象编号`。 关键过滤/匹配条件：`select 顺序编号, 指派对象, 工序名称, 订单行号, b.VisCode as 指派对象编号 from MES_接口_生产计划_生产任务 a left join MES_资源主数据 b on a.指派对象 = b.Name where 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。

## 50. src/views/QualityManagement/CheckTask/firstSpecial.vue

**页面位置**：`src/views/QualityManagement/CheckTask/firstSpecial.vue`  
**所属模块**：QualityManagement / CheckTask  
**源码行数**：302

### 页面功能

该页面处理首检/特殊首件检验。用户按工序和工位选择任务，录入首检数据。

页面可见的操作/字段包括 “item.label”、“序号”、“工位编号”、“工序名称”、“操作类别”、“操作人”、“销售订单”、“生产订单”、“物料编号”、“物料名称”，这些是判断页面业务范围的主要线索。

后端主要围绕 `Prog_MES_LoadProcess`、`Prog_MES_LoadStations`、`MES_QulityInspection_FirstCheckRecords` 取数或提交业务动作。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：`item.label`、`序号`、`工位编号`、`工序名称`、`操作类别`、`操作人`、`销售订单`、`生产订单`、`物料编号`、`物料名称`、`操作数值`、`开始时间`、`结束时间`、`工时(分)`、`请选择工序`、`请选择工位`、`请输入生产订单`、`请输入零件编号`

主要方法线索：`getProcessList`、`for`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.process` | `@ProcessID` | - |
| 参数 | `this.station` | `@OPCode` | - |
| 参数 | `this.orderNo` | `@OrderNo` | - |
| 参数 | `this.partNo` | `@PartCode` | - |
| 参数 | `this.operationTime ? this.operationTime[0` | `@PlanStart` | - |
| 参数 | `this.operationTime ? this.operationTime[1` | `@PlanEnd` | - |
| 参数 | `1` | `@不装配` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工位编号` | - | `[工位编号]` |
| 显示列 | `工序名称` | - | `[工艺编号], [工序名称]` |
| 显示列 | `操作类别` | - | `[操作类别]` |
| 显示列 | `操作人` | - | `[操作人]` |
| 显示列 | `销售订单` | - | `销售订单` |
| 显示列 | `生产订单` | - | `生产订单` |
| 显示列 | `物料编号` | - | `[物料编号]` |
| 显示列 | `物料名称` | - | `物料名称` |
| 显示列 | `操作数值` | - | `操作数值` |
| 显示列 | `开始时间` | - | `开始时间` |
| 显示列 | `结束时间` | - | `结束时间` |
| 显示列 | `工时(分)` | - | `工时(分)` |
| 输入字段 | `process` | `@ProcessID` | - |
| 输入字段 | `station` | `@OPCode` | - |
| 输入字段 | `orderNo` | `@OrderNo` | - |
| 输入字段 | `partNo` | `@PartCode` | - |
| 输入字段 | `operationTime` | `@PlanStart` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 236 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadProcess` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 249 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |
| 273 | 11（当前通用存储过程查询/执行） | `MES_QulityInspection_FirstCheckRecords` | 质量检验处理 | 查询、处理报工/工时 | 表：`YL_加工中心_操作记录表` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_QulityInspection_FirstCheckRecords`：`FROM [YL_加工中心_操作记录表]';`

### 数据库调用链

- `src/views/QualityManagement/CheckTask/firstSpecial.vue` -> `Prog_MES_LoadProcess` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/firstSpecial.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/firstSpecial.vue` -> `MES_QulityInspection_FirstCheckRecords` -> 表：`YL_加工中心_操作记录表` -> 质量检验处理

### 存储过程处理逻辑明细

- `Prog_MES_LoadProcess` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 主要返回字段线索：`[工艺编号], [工序名称]`。 排序/分组/分页线索：`SELECT [工艺编号], [工序名称] FROM [基础表_工序] ORDER BY [工艺编号]`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。
- `MES_QulityInspection_FirstCheckRecords` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 质量检验处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`。 入参/分页参数：`@ProcessID int`、`@OPCode nvarchar(50)`、`@OrderNo int`、`@PartCode nvarchar(50)`、`@PlanStart nvarchar(50)`、`@PlanEnd nvarchar(50)`、`@不装配 int`。 主要返回字段线索：`[操作类别]`、`[阶段标识]`、`[工序名称]`、`[工位编号]`、`[工位名称]`、`[操作人]`、`[合同号]`、`[订单编号]`、`[物料编号]`、`[物料描述]`。 关键过滤/匹配条件：`declare @whereString nvarchar(max) = ' where 操作类别 = ''首检'''`；`if(@ProcessID>0) set @whereString = @whereString+' and [阶段标识] = '+Convert(VARCHAR(10), @ProcessID)`；`if(len(@OPCode)>0) set @whereString = @whereString+' and [工位编号] = '''+@OPCode+''''`；`if(@OrderNo>0) set @whereString = @whereString+' and [订单编号] = '+Convert(VARCHAR(10), @OrderNo)`；`if(len(@PartCode)>0) set @whereString = @whereString+' and [物料编号] like ''%'+@PartCode+'%'''`；`if(len(@PlanStart)>0) set @whereString = @whereString+' and [开始时间] > = '''+Convert(VARCHAR(50), @PlanStart)+''''`；`if(len(@PlanEnd)>0) set @whereString = @whereString+' and [开始时间] < = '''+Convert(VARCHAR(50), DATEADD(day, 1, @PlanEnd))+''''`；`if(@不装配 = 1)set @whereString = @whereString+' and [不装配] ''否'''`；`if(@不装配 = 2)set @whereString = @whereString+' and [不装配] = ''否'''`。 关键写入/状态处理语句线索：`if(@ProcessID>0) set @whereString = @whereString+' and [阶段标识] = '+Convert(VARCHAR(10), @ProcessID)`；`if(len(@OPCode)>0) set @whereString = @whereString+' and [工位编号] = '''+@OPCode+''''`；`if(@OrderNo>0) set @whereString = @whereString+' and [订单编号] = '+Convert(VARCHAR(10), @OrderNo)`；`if(len(@PartCode)>0) set @whereString = @whereString+' and [物料编号] like ''%'+@PartCode+'%'''`；`if(len(@PlanStart)>0) set @whereString = @whereString+' and [开始时间] > = '''+Convert(VARCHAR(50), @PlanStart)+''''`；`if(len(@PlanEnd)>0) set @whereString = @whereString+' and [开始时间] < = '''+Convert(VARCHAR(50), DATEADD(day, 1, @PlanEnd))+''''`；`if(@不装配 = 1)set @whereString = @whereString+' and [不装配] ''否'''`；`if(@不装配 = 2)set @whereString = @whereString+' and [不装配] = ''否'''`；`set @sqlString = @sqlString+@whereString+@orderString`。 排序/分组/分页线索：`declare @orderString nvarchar(max) = ' order by 开始时间 desc'`。

## 51. src/views/QualityManagement/CheckTask/materialReturn.vue

**页面位置**：`src/views/QualityManagement/CheckTask/materialReturn.vue`  
**所属模块**：QualityManagement / CheckTask  
**源码行数**：1346

### 页面功能

该页面处理原材料退库检验。用户查询退库检验任务，读取 SAP 生产订单辅助信息，录入并更新检验结果。

页面可见的操作/字段包括 “查询”、“扫码”、“取 消”、“合格”、“不合格”、“已完成”、“未完成”、“item.label”、“序号”、“单据码”，这些是判断页面业务范围的主要线索。

后端主要围绕 `查询字典`、`人员管理_人员信息查询_质检部门_查询`、`质量管理_原材料退库_查询`、`质量管理_原材料退库检验_更新` 取数或提交业务动作。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`扫码`、`取 消`、`合格`、`不合格`、`已完成`、`未完成`、`item.label`、`序号`、`单据码`、`生产订单`、`物料名称`、`物料编码`、`到货时间`、`检验数量`、`合格数`、`不合格数`、`批次信息`

主要方法线索：`startscan`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.partName` | `@零件名称` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[0` | `@检测日期_Start` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[1` | `@检测日期_End` | - |
| 参数 | `this.taskstatus` | `@状态` | - |
| 参数 | `this.inspectionResult` | `@检测结果` | - |
| 参数 | `this.ordercode` | `@单据码` | - |
| 参数 | `selectedChecker ? selectedChecker.label : ""` | `@检测人` | - |
| 参数 | `5` | `@检测类型编号` | - |
| 参数 | `"退库检验"` | `@质检类型` | - |
| 参数 | `this.receiveCheckData.零件名称` | `@零件名称` | - |
| 参数 | `this.receiveCheckData.零件编码` | `@零件编码` | - |
| 参数 | `this.receiveCheckData.计划号` | `@计划号` | - |
| 参数 | `this.receiveCheckData.送检数量` | `@检测数量` | - |
| 参数 | `this.receiveCheckData.合格数` | `@合格数` | - |
| 参数 | `this.receiveCheckData.不合格数` | `@不合格数` | - |
| 参数 | `this.receiveCheckData.检测人` | `@检测人` | - |
| 参数 | `this.receiveCheckData.检测时间` | `@检测时间` | - |
| 参数 | `this.receiveCheckData.检测说明` | `@检测说明` | - |
| 参数 | `this.receiveCheckData.行号` | `@行号` | - |
| 参数 | `this.receiveCheckData.订单类型` | `@订单类型` | - |
| 参数 | `this.receiveCheckData.检测数量` | `@到货数` | - |
| 参数 | `this.receiveCheckData.放行数量` | `@放行数量` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `单据码` | - | `单据码` |
| 显示列 | `生产订单` | - | `订单编号` |
| 显示列 | `物料名称` | - | `物料名称` |
| 显示列 | `物料编码` | - | `物料编码` |
| 显示列 | `到货时间` | - | `采购到货时间` |
| 显示列 | `检验数量` | - | `入库数量` |
| 显示列 | `合格数` | - | `合格数` |
| 显示列 | `不合格数` | - | `不合格数` |
| 显示列 | `批次信息` | - | `批次信息` |
| 显示列 | `检验人` | - | `检测人` |
| 显示列 | `检验时间` | - | `检验时间` |
| 显示列 | `备注` | - | `备注` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `ordercode` | `@单据码` | - |
| 输入字段 | `orderNo` | `@订单号` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- TM/OpenAPI 接口（`src/api/tm.js`）
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 681 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 695 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 733 | 11（当前通用存储过程查询/执行） | `质量管理_原材料退库_查询` | 查询/读取数据 | 查询、处理质检数据 | 表：`质量检验_质检任务_SAP` |
| 841 | 12（当前通用存储过程写入/业务动作） | `质量管理_原材料退库检验_更新` | 更新/保存业务数据 | 查询、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 878 行：`getB1("/ProductionOrders")`
- 第 921 行：`posttm("/stocktask/task/receiptordertask")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 878 | `getB1` | `/ProductionOrders` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `filter`、`lines`、`doc_date`、`doc_type`、`external_num`、`target_type`、`task_items`、`base_type`、`item_code`、`item_name`、`whs_code`、`manage_type` |
| 921 | `posttm` | `/stocktask/task/receiptordertask` | 调用外部接口，失败会影响对应外部系统同步。 | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |

### 状态流转说明

- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `质量管理_原材料退库_查询`：`@状态 NVARCHAR(10) = '', `；`IF @状态 ''`；`IF @状态 = '1'`；`ELSE IF @状态 = '0'`；`* from [dbo].[质量检验_质检任务_SAP] '+@WhereConditions+''`
- `质量管理_原材料退库检验_更新`：`@质检类型 NVARCHAR(50), `；`UPDATE [dbo].[质量检验_质检任务_SAP]`；`MERGE INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] AS target`；`@质检类型 AS 质检类型, `；`target.[质检类型] = source.[质检类型], `；`[质检类型], `；`source.[质检类型], `

### 数据库调用链

- `src/views/QualityManagement/CheckTask/materialReturn.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/materialReturn.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/materialReturn.vue` -> `质量管理_原材料退库_查询` -> 表：`质量检验_质检任务_SAP` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/materialReturn.vue` -> `质量管理_原材料退库检验_更新` -> 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `质量管理_原材料退库_查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`质量检验_质检任务_SAP`。 入参/分页参数：`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@检测日期_Start NVARCHAR(20)`、`@检测日期_End NVARCHAR(20)`、`@检测结果 NVARCHAR(10)`、`@检测人 NVARCHAR(50)`、`@状态 NVARCHAR(10)`、`@单据码 NVARCHAR(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SET @WhereConditions = @WhereConditions + ' AND (订单类型 = ''202-60'') '`；`SET @WhereConditions = @WhereConditions + ' AND 单据码 LIKE ''%' + @单据码 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 订单编号 LIKE ''%' + @订单号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料编码 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料名称 LIKE ''%' + @零件名称 + '%'''`；`IF @检测日期_Start '' AND @检测日期_End ''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检验时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND (合格数 > 0 AND 不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND ( 不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(合格数, 0) + ISNULL(不合格数, 0) = ISNULL(到货数, 0)) AND ISNULL(到货数, 0) 0'`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @WhereConditions = @WhereConditions + ' AND (订单类型 = ''202-60'') '`；`SET @WhereConditions = @WhereConditions + ' AND 单据码 LIKE ''%' + @单据码 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 订单编号 LIKE ''%' + @订单号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料编码 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料名称 LIKE ''%' + @零件名称 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检验时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND (合格数 > 0 AND 不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND ( 不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(合格数, 0) + ISNULL(不合格数, 0) = ISNULL(到货数, 0)) AND ISNULL(到货数, 0) 0'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(合格数, 0) + ISNULL(不合格数, 0) < ISNULL(到货数, 入库数量)) '`；`SET @WhereConditions = @WhereConditions + ' AND ISNULL( 检测人, '''') LIKE ''%' + @检测人 + '%'''`。
- `质量管理_原材料退库检验_更新` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP`。 写入或更新对象：`质量检验_质检任务_SAP`。 入参/分页参数：`@检测类型编号 int,`、`@质检类型 NVARCHAR(50),`、`@零件名称 NVARCHAR(200),`、`@零件编码 NVARCHAR(200),`、`@计划号 int,`、`@检测数量 decimal(18,`、`@合格数 decimal(18,`、`@不合格数 decimal(18,`、`@检测人 NVARCHAR(50),`、`@检测时间 DATETIME,`、`@检测说明 NVARCHAR(MAX),`、`@行号 int,`、`@订单类型 NVARCHAR(50),`、`@到货数 decimal(18,`、`@放行数量 int`。 关键过滤/匹配条件：`WHERE 订单编号 = @计划号 AND 行号 = @行号 and 订单类型 = @订单类型`；`ON (target.[零件编码] = source.[零件编码] AND target.[计划号] = source.[计划号] and target.行号 = source.行号 )`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE [dbo].[质量检验_质检任务_SAP]`；`SET 合格数 = @合格数, `；`MERGE INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] AS target`；`UPDATE SET`。

## 52. src/views/QualityManagement/CheckTask/processReceive.vue

**页面位置**：`src/views/QualityManagement/CheckTask/processReceive.vue`  
**所属模块**：QualityManagement / CheckTask  
**源码行数**：1199

### 页面功能

该页面处理序检收检。质检人员接收工序检验任务，查询加急和字典信息，读取 SAP 工序状态，新增序检收检记录。

页面可见的操作/字段包括 “查询”、“导出 -->”、“取 消”、“关闭”、“装配”、“机加”、“全部”、“合格”、“不合格”、“item.label”，这些是判断页面业务范围的主要线索。

后端主要围绕 `工艺管理_图纸维护_查看图纸`、`加急订单_加急明细查询`、`查询字典`、`人员管理_人员信息查询_质检部门_查询`、`质量管理_质量检验_收检记录_查询`、`质量管理_序检收检_新增` 取数或提交业务动作。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`导出 -->`、`取 消`、`关闭`、`装配`、`机加`、`全部`、`合格`、`不合格`、`item.label`、`已完成`、`未完成`、`序号`、`销售订单`、`生产订单`、`物料名称`、`物料编码`、`工序名称`

主要方法线索：`getitemdraw`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.零件编码` | `@物料编号` | - |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.partName` | `@零件名称` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@完工日期_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@完工日期_End` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[0` | `@检测日期_Start` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[1` | `@检测日期_End` | - |
| 参数 | `this.inspectionResult` | `@检测结果` | - |
| 参数 | `selectedChecker ? selectedChecker.label : ""` | `@检测人` | `MAX(检测人) AS 检测人, ` |
| 参数 | `this.type` | `@检测类别` | - |
| 参数 | `this.checkstatus` | `@检测状态` | - |
| 参数 | `this.attribute` | `@属性` | - |
| 参数 | `this.receiveCheckData.TaskAID ` | `@TaskAID` | - |
| 参数 | `6` | `@检测类型编号` | - |
| 参数 | `"收检"` | `@质检类型` | - |
| 参数 | `this.receiveCheckData.零件名称` | `@零件名称` | - |
| 参数 | `this.receiveCheckData.内部合同号` | `@内部合同号` | - |
| 参数 | `this.receiveCheckData.零件编码` | `@零件编码` | - |
| 参数 | `this.receiveCheckData.计划号` | `@计划号` | - |
| 参数 | `this.receiveCheckData.工序名称` | `@工序名称` | - |
| 参数 | `this.receiveCheckData.检测数量` | `@检测数量` | - |
| 参数 | `this.receiveCheckData.合格数` | `@合格数` | - |
| 参数 | `this.receiveCheckData.不合格数` | `@不合格数` | - |
| 参数 | `this.receiveCheckData.检测人` | `@检测人` | `MAX(检测人) AS 检测人, ` |
| 参数 | `this.receiveCheckData.检测时间` | `@检测时间` | - |
| 参数 | `this.receiveCheckData.检测说明` | `@检测说明` | - |
| 参数 | `this.receiveCheckData.放行数量` | `@放行数量` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `销售订单` | - | `合同号` |
| 显示列 | `生产订单` | - | `计划号` |
| 显示列 | `物料名称` | - | `零件名称` |
| 显示列 | `物料编码` | - | `零件编码` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `工位名称` | - | `工位名称` |
| 显示列 | `加急数量` | - | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 显示列 | `完成数量` | - | `完成数量` |
| 显示列 | `检验数量` | - | `SUM(检验数量) AS 检验数量, ` |
| 显示列 | `检验合格数量` | - | `SUM(合格数) AS 合格数, ` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- PDF/图纸预览或导出
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 578 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 619 | 11（当前通用存储过程查询/执行） | `加急订单_加急明细查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` |
| 626 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 640 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 697 | 11（当前通用存储过程查询/执行） | `质量管理_质量检验_收检记录_查询` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`YL_加工中心_操作记录表`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 898 | 12（当前通用存储过程写入/业务动作） | `质量管理_序检收检_新增` | 新增业务数据 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 820 行：`postB1("/QueryService_PostQuery")`
- 第 842 行：`postB1("/PurchaseDeliveryNotes")`
存储过程内读取 SAP B1 数据库对象：
- 加急订单_加急明细查询: SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 820 | `postB1` | `/QueryService_PostQuery` | 调用外部接口，失败会影响对应外部系统同步。 | `QueryPath`、`QueryOption` |
| 842 | `postB1` | `/PurchaseDeliveryNotes` | 调用外部接口，失败会影响对应外部系统同步。 | `CardCode`、`CardName`、`DocDate`、`DocumentLines`、`BaseEntry`、`BaseLine`、`BaseType`、`Quantity`、`U_WWPassedQty` |

### 状态流转说明

- `加急订单_加急明细查询`：`SELECT docentry as 订单编号, itemcode as 物料编号, 加急数量 from SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`
- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `质量管理_质量检验_收检记录_查询`：`@检测状态 NVARCHAR(50) = '', `；`DECLARE @WhereConditions NVARCHAR(MAX) = ' and v.单据状态 is null '`；`IF @检测状态 = 1`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(q.检验数量, 0)) = (ISNULL(o.完成数量, 0))'`；`IF @检测状态 = 0`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(q.检验数量, 0)) < (ISNULL(o.完成数量, 0))'`；`IF @检测状态 = 2`；`FROM [dbo].[YL_质量检验_质检记录]`
- `质量管理_序检收检_新增`：`@质检类型 NVARCHAR(50), `；`DECLARE @已完成检测数量 int`；`select @计划数量 = 计划数量 from [dbo].[MES_接口_生产计划_生产任务] where AID = @TaskAID`；`select @已完成检测数量 = sum(检验数量) from YL_质量检验_质检记录 where [TaskAID] = @TaskAID and 质检类型 = '收检'`；`set @最新检测数量 = @检测数量 + isnull(@已完成检测数量, 0)`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`[质检类型], `；`@质检类型, `

### 数据库调用链

- `src/views/QualityManagement/CheckTask/processReceive.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/processReceive.vue` -> `加急订单_加急明细查询` -> 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/processReceive.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/processReceive.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/processReceive.vue` -> `质量管理_质量检验_收检记录_查询` -> 表：`YL_加工中心_操作记录表`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/processReceive.vue` -> `质量管理_序检收检_新增` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录` -> 新增业务数据

### 存储过程处理逻辑明细

- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `加急订单_加急明细查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`docentry as 订单编号, itemcode as 物料编号, 加急数量`。 关键过滤/匹配条件：`where itemcode = @物料编号`。 实现特征：读取 SAP 数据库对象。
- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `质量管理_质量检验_收检记录_查询` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_加工中心_操作记录表`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@合同号 NVARCHAR(100)`、`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@完工日期_Start NVARCHAR(20)`、`@完工日期_End NVARCHAR(20)`、`@检测日期_Start NVARCHAR(20)`、`@检测日期_End NVARCHAR(20)`、`@检测结果 NVARCHAR(10)`、`@检测人 NVARCHAR(50)`、`@检测类别 NVARCHAR(50)`、`@检测状态 NVARCHAR(50)`、`@属性 NVARCHAR(50)`。 主要返回字段线索：`TaskAID, `、`SUM(检验数量) AS 检验数量, `、`SUM(合格数) AS 合格数, `、`SUM(不合格数) AS 不合格数, `、`MAX(检测人) AS 检测人, `、`MAX(检测时间) AS 检测时间, `、`MAX(检测说明) AS 检测说明`。 关键过滤/匹配条件：`DECLARE @WhereConditions NVARCHAR(MAX) = ' and v.单据状态 is null '`；`SET @WhereConditions = @WhereConditions + ' AND o.订单编号 = '+ @订单号 +''`；`SET @WhereConditions = @WhereConditions + ' AND v.[合同号] LIKE ''%' + @合同号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND o.物料编号 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND o.物料描述 LIKE ''%' + @零件名称 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND (q.合格数 > 0 AND q.不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (q.不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(q.检验数量, 0)) = (ISNULL(o.完成数量, 0))'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(q.检验数量, 0)) < (ISNULL(o.完成数量, 0))'`；`SET @WhereConditions = @WhereConditions + ' AND 自制件属性 NOT LIKE ''%装配%'''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @WhereConditions = @WhereConditions + ' AND o.订单编号 = '+ @订单号 +''`；`SET @WhereConditions = @WhereConditions + ' AND v.[合同号] LIKE ''%' + @合同号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND o.物料编号 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND o.物料描述 LIKE ''%' + @零件名称 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND (q.合格数 > 0 AND q.不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (q.不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(q.检验数量, 0)) = (ISNULL(o.完成数量, 0))'`；`SET @WhereConditions = @WhereConditions + ' AND (ISNULL(q.检验数量, 0)) < (ISNULL(o.完成数量, 0))'`；`SET @WhereConditions = @WhereConditions`；`SET @WhereConditions = @WhereConditions + ' AND 自制件属性 NOT LIKE ''%装配%'''`；`SET @WhereConditions = @WhereConditions + ' AND 自制件属性 LIKE ''%装配%'''`。 排序/分组/分页线索：`GROUP BY TaskAID`；`GROUP BY`；`ORDER BY o.订单编号 desc'`。
- `质量管理_序检收检_新增` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@检测类型编号 int,`、`@质检类型 NVARCHAR(50),`、`@零件名称 NVARCHAR(200),`、`@内部合同号 int,`、`@零件编码 NVARCHAR(200),`、`@计划号 int,`、`@工序名称 NVARCHAR(100),`、`@检测数量 INT,`、`@合格数 INT,`、`@不合格数 INT,`、`@检测人 NVARCHAR(50),`、`@检测时间 DATETIME,`、`@检测说明 NVARCHAR(MAX),`、`@放行数量 INT`。 主要返回字段线索：`@计划数量 = 计划数量`。 关键过滤/匹配条件：`select @计划数量 = 计划数量 from [dbo].[MES_接口_生产计划_生产任务] where AID = @TaskAID`；`select @已完成检测数量 = sum(检验数量) from YL_质量检验_质检记录 where [TaskAID] = @TaskAID and 质检类型 = '收检'`；`WHERE AID = @TaskAID`；`WHERE 订单编号 = @计划号`；`AND 订单行号 = @当前订单行号 + 1`；`AND ISNULL(订单拆分内码, 1) = 1`；`WHERE AID = @下一道工序AID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`set @最新检测数量 = @检测数量 + isnull(@已完成检测数量, 0)`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 任务状态 = 1`。 实现特征：事务控制、异常捕获。

## 53. src/views/QualityManagement/CheckTask/processSpecial.vue

**页面位置**：`src/views/QualityManagement/CheckTask/processSpecial.vue`  
**所属模块**：QualityManagement / CheckTask  
**源码行数**：65

### 页面功能

该页面处理过程/特殊检验。用户按工序任务录入特殊检验结果和检测明细。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：无

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 54. src/views/QualityManagement/CheckTask/purchaseIncoming.vue

**页面位置**：`src/views/QualityManagement/CheckTask/purchaseIncoming.vue`  
**所属模块**：QualityManagement / CheckTask  
**源码行数**：1335

### 页面功能

该页面处理采购/来料检验。质检人员查询待检任务，查看图纸、字典和检验人员，录入合格数、不合格数、检测数据，调用过程更新来料检验结果。

页面可见的操作/字段包括 “查询”、“取 消”、“关闭”、“合格”、“不合格”、“已完成”、“未完成”、“item.label”、“序号”、“单据码”，这些是判断页面业务范围的主要线索。

后端主要围绕 `加急订单_加急明细查询`、`工艺管理_图纸维护_查看图纸`、`查询字典`、`人员管理_人员信息查询_质检部门_查询`、`质量管理_质量检验_入库质检任务_查询`、`质量管理_来料检验_更新` 取数或提交业务动作。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`取 消`、`关闭`、`合格`、`不合格`、`已完成`、`未完成`、`item.label`、`序号`、`单据码`、`生产订单`、`物料名称`、`物料编码`、`到货时间`、`位置`、`加急数量`、`到货数量`、`已检验数量`

主要方法线索：`Urgent`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.物料编码` | `@物料编号` | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.partName` | `@零件名称` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[0` | `@检测日期_Start` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[1` | `@检测日期_End` | - |
| 参数 | `this.taskstatus` | `@状态` | - |
| 参数 | `this.inspectionResult` | `@检测结果` | - |
| 参数 | `this.ordercode` | `@单据码` | - |
| 参数 | `selectedChecker ? selectedChecker.label : ""` | `@检测人` | `检测人, ` |
| 参数 | `5` | `@检测类型编号` | - |
| 参数 | `"来料检验"` | `@质检类型` | - |
| 参数 | `this.receiveCheckData.零件名称` | `@零件名称` | - |
| 参数 | `this.receiveCheckData.零件编码` | `@零件编码` | - |
| 参数 | `this.receiveCheckData.计划号` | `@计划号` | - |
| 参数 | `this.receiveCheckData.本次检验数量` | `@检测数量` | - |
| 参数 | `this.receiveCheckData.合格数` | `@合格数` | - |
| 参数 | `this.receiveCheckData.不合格数` | `@不合格数` | - |
| 参数 | `this.receiveCheckData.检测人` | `@检测人` | `检测人, ` |
| 参数 | `this.receiveCheckData.检测时间` | `@检测时间` | - |
| 参数 | `this.receiveCheckData.检测说明` | `@检测说明` | - |
| 参数 | `this.receiveCheckData.行号` | `@行号` | - |
| 参数 | `this.receiveCheckData.订单类型` | `@订单类型` | - |
| 参数 | `this.receiveCheckData.到货总数` | `@到货数` | - |
| 参数 | `this.receiveCheckData.放行数量` | `@放行数量` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `单据码` | - | `单据码` |
| 显示列 | `生产订单` | - | `计划号, ` |
| 显示列 | `物料名称` | - | `物料名称` |
| 显示列 | `物料编码` | - | `物料编码` |
| 显示列 | `到货时间` | - | `采购到货时间` |
| 显示列 | `位置` | - | `存放位置` |
| 显示列 | `加急数量` | - | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 显示列 | `到货数量` | - | `入库数量` |
| 显示列 | `已检验数量` | - | `已检验数量` |
| 显示列 | `剩余待检` | - | `剩余待检数量` |
| 显示列 | `合格数` | - | `合格数, ` |
| 显示列 | `不合格数` | - | `不合格数, ` |
| 显示列 | `检验人` | - | `检测人, ` |
| 显示列 | `检验时间` | - | `检验时间` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- PDF/图纸预览或导出
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 626 | 11（当前通用存储过程查询/执行） | `加急订单_加急明细查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` |
| 634 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 782 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 796 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 842 | 11（当前通用存储过程查询/执行） | `质量管理_质量检验_入库质检任务_查询` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` |
| 990 | 12（当前通用存储过程写入/业务动作） | `质量管理_来料检验_更新` | 更新/保存业务数据 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 加急订单_加急明细查询: SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `加急订单_加急明细查询`：`SELECT docentry as 订单编号, itemcode as 物料编号, 加急数量 from SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`
- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `质量管理_质量检验_入库质检任务_查询`：`CREATE PROCEDURE [dbo].[质量管理_质量检验_入库质检任务_查询]`；`@状态 NVARCHAR(10) = '', `；`IF @状态 ''`；`SET @OuterWhere = @OuterWhere + ' AND 状态 = ''' + @状态 + ''''`；`FROM [dbo].[YL_质量检验_质检记录]`；`订单类型 AS 质检订单类型, `；`task.加急状态, `；`END AS 状态`
- `质量管理_来料检验_更新`：`@质检类型 NVARCHAR(50), `；`UPDATE [dbo].[质量检验_质检任务_SAP]`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`[质检类型], `；`@质检类型, `

### 数据库调用链

- `src/views/QualityManagement/CheckTask/purchaseIncoming.vue` -> `加急订单_加急明细查询` -> 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/purchaseIncoming.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/purchaseIncoming.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/purchaseIncoming.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/purchaseIncoming.vue` -> `质量管理_质量检验_入库质检任务_查询` -> 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/purchaseIncoming.vue` -> `质量管理_来料检验_更新` -> 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `加急订单_加急明细查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`docentry as 订单编号, itemcode as 物料编号, 加急数量`。 关键过滤/匹配条件：`where itemcode = @物料编号`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `质量管理_质量检验_入库质检任务_查询` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP`。 入参/分页参数：`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@检测日期_Start NVARCHAR(20)`、`@检测日期_End NVARCHAR(20)`、`@检测结果 NVARCHAR(10)`、`@检测人 NVARCHAR(50)`、`@状态 NVARCHAR(10)`、`@单据码 NVARCHAR(50)`。 主要返回字段线索：`计划号, `、`检验数量, `、`合格数, `、`不合格数, `、`检测人, `、`检测时间, `、`6 AS 检测类型编号`。 关键过滤/匹配条件：`SET @TaskWhere = @TaskWhere + ' AND (task.订单类型 = ''20'') '`；`SET @TaskWhere = @TaskWhere + ' AND task.单据码 LIKE ''%' + @单据码 + '%'''`；`SET @TaskWhere = @TaskWhere + ' AND task.订单编号 LIKE ''%' + @订单号 + '%'''`；`SET @TaskWhere = @TaskWhere + ' AND task.物料编码 LIKE ''%' + @零件编号 + '%'''`；`SET @TaskWhere = @TaskWhere + ' AND task.物料名称 LIKE ''%' + @零件名称 + '%'''`；`SET @OuterWhere = @OuterWhere + ' AND 检测结果 = ' + @检测结果`；`SET @OuterWhere = @OuterWhere + ' AND 状态 = ''' + @状态 + ''''`；`SET @OuterWhere = @OuterWhere + ' AND 检测人 LIKE ''%' + @检测人 + '%'''`；`IF @检测日期_Start '' AND @检测日期_End ''`；`SET @OuterWhere = @OuterWhere + ' AND CAST(检验时间 AS DATE) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @TaskWhere = @TaskWhere + ' AND (task.订单类型 = ''20'') '`；`SET @TaskWhere = @TaskWhere + ' AND task.单据码 LIKE ''%' + @单据码 + '%'''`；`SET @TaskWhere = @TaskWhere + ' AND task.订单编号 LIKE ''%' + @订单号 + '%'''`；`SET @TaskWhere = @TaskWhere + ' AND task.物料编码 LIKE ''%' + @零件编号 + '%'''`；`SET @TaskWhere = @TaskWhere + ' AND task.物料名称 LIKE ''%' + @零件名称 + '%'''`；`SET @OuterWhere = @OuterWhere + ' AND 检测结果 = ' + @检测结果`；`SET @OuterWhere = @OuterWhere + ' AND 状态 = ''' + @状态 + ''''`；`SET @OuterWhere = @OuterWhere + ' AND 检测人 LIKE ''%' + @检测人 + '%'''`；`SET @OuterWhere = @OuterWhere + ' AND CAST(检验时间 AS DATE) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @InnerWhere = ' WHERE ' + SUBSTRING(@TaskWhere, 5, LEN(@TaskWhere))`；`SET @SQL = '`。 排序/分组/分页线索：`GROUP BY 计划号, 行号, 订单类型`；`GROUP BY task.订单编号, task.单据码, task.订单类型, task.物料编码, task.物料名称, task.到货数, task.入库数量, task.加急状态, task.行号, task.采购到货时间, task.存放位置, task.加急总数, cq.已检验数量, cq.累计合格数, cq.累计不合格数`；`ORDER BY 加急状态 DESC'`。
- `质量管理_来料检验_更新` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP`。 写入或更新对象：`质量检验_质检任务_SAP`。 入参/分页参数：`@检测类型编号 int,`、`@质检类型 NVARCHAR(50),`、`@零件名称 NVARCHAR(200),`、`@零件编码 NVARCHAR(200),`、`@计划号 int,`、`@检测数量 decimal(18,`、`@合格数 decimal(18,`、`@不合格数 decimal(18,`、`@检测人 NVARCHAR(50),`、`@检测时间 DATETIME,`、`@检测说明 NVARCHAR(MAX),`、`@行号 int,`、`@订单类型 NVARCHAR(50),`、`@到货数 decimal(18,`、`@放行数量 int`。 关键过滤/匹配条件：`WHERE 订单编号 = @计划号 AND 行号 = @行号 AND 订单类型 = @订单类型`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE [dbo].[质量检验_质检任务_SAP]`；`SET 合格数 = ISNULL(合格数, 0) + @合格数, `；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`。

## 55. src/views/QualityManagement/CheckTask/salesReturn.vue

**页面位置**：`src/views/QualityManagement/CheckTask/salesReturn.vue`  
**所属模块**：QualityManagement / CheckTask  
**源码行数**：830

### 页面功能

该页面处理销售退货检验。用户查询销售退货待检任务，录入检验结果并更新质检记录。

页面可见的操作/字段包括 “查询”、“取 消”、“合格”、“不合格”、“item.label”、“序号”、“生产订单”、“物料名称”、“物料编码”、“采购数”，这些是判断页面业务范围的主要线索。

后端主要围绕 `查询字典`、`人员管理_人员信息查询_质检部门_查询`、`质量管理_质量检验_退货质检任务_查询`、`质量管理_销售退货检_更新` 取数或提交业务动作。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询`、`取 消`、`合格`、`不合格`、`item.label`、`序号`、`生产订单`、`物料名称`、`物料编码`、`采购数`、`检验数量`、`合格数`、`不合格数`、`检验人`、`检验时间`、`备注`、`操作`、`请输入生产订单`

主要方法线索：`getTypeList`、`for`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.partName` | `@零件名称` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[0` | `@检测日期_Start` | - |
| 参数 | `this.inspectionDate ? this.inspectionDate[1` | `@检测日期_End` | - |
| 参数 | `this.inspectionResult` | `@检测结果` | - |
| 参数 | `selectedChecker ? selectedChecker.label : ""` | `@检测人` | - |
| 参数 | `5` | `@检测类型编号` | - |
| 参数 | `"来料检验"` | `@质检类型` | - |
| 参数 | `this.receiveCheckData.零件名称` | `@零件名称` | - |
| 参数 | `this.receiveCheckData.零件编码` | `@零件编码` | - |
| 参数 | `this.receiveCheckData.计划号` | `@计划号` | - |
| 参数 | `this.receiveCheckData.检测数量` | `@检测数量` | - |
| 参数 | `this.receiveCheckData.合格数` | `@合格数` | - |
| 参数 | `this.receiveCheckData.不合格数` | `@不合格数` | - |
| 参数 | `this.receiveCheckData.检测人` | `@检测人` | - |
| 参数 | `this.receiveCheckData.检测时间` | `@检测时间` | - |
| 参数 | `this.receiveCheckData.检测说明` | `@检测说明` | - |
| 参数 | `this.receiveCheckData.行号` | `@行号` | - |
| 参数 | `this.receiveCheckData.订单类型` | `@订单类型` | - |
| 参数 | `this.formatDate(this.currentTime)` | `@doc_date` | - |
| 参数 | `"202-59"` | `@doc_type` | - |
| 参数 | `this.receiveCheckData.计划号` | `@external_num` | - |
| 参数 | `param2` | `@task_items` | - |
| 参数 | `"202"` | `@base_type` | - |
| 参数 | `this.receiveCheckData.零件编码` | `@item_code` | - |
| 参数 | `this.receiveCheckData.零件名称` | `@item_name` | - |
| 参数 | `""` | `@whs_code` | - |
| 参数 | `'B'` | `@manage_type` | - |
| 参数 | `0` | `@price` | - |
| 参数 | `this.receiveCheckData.合格数` | `@quantity` | - |
| 参数 | `this.receiveCheckData.行号` | `@base_line_num` | - |
| 参数 | `this.receiveCheckData.计划号` | `@base_entry` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `生产订单` | - | `订单编号` |
| 显示列 | `物料名称` | - | `物料名称` |
| 显示列 | `物料编码` | - | `物料编码` |
| 显示列 | `采购数` | - | `计划生产数` |
| 显示列 | `检验数量` | - | `入库数量` |
| 显示列 | `合格数` | - | `合格数` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- TM/OpenAPI 接口（`src/api/tm.js`）
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 421 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 435 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 472 | 11（当前通用存储过程查询/执行） | `质量管理_质量检验_退货质检任务_查询` | 查询/读取数据 | 查询、处理质检数据 | 表：`质量检验_质检任务_SAP` |
| 577 | 12（当前通用存储过程写入/业务动作） | `质量管理_销售退货检_更新` | 更新/保存业务数据 | 查询、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 623 行：`posttm("/stocktask/task/issueordertask")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 623 | `posttm` | `/stocktask/task/issueordertask` | 调用外部接口，失败会影响对应外部系统同步。 | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |

### 状态流转说明

- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `质量管理_质量检验_退货质检任务_查询`：`CREATE PROCEDURE [dbo].[质量管理_质量检验_退货质检任务_查询]`；`* from [dbo].[质量检验_质检任务_SAP] '+@WhereConditions+''`
- `质量管理_销售退货检_更新`：`@质检类型 NVARCHAR(50), `；`UPDATE [dbo].[质量检验_质检任务_SAP]`；`MERGE INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] AS target`；`@质检类型 AS 质检类型, `；`target.[质检类型] = source.[质检类型], `；`[质检类型], `；`source.[质检类型], `

### 数据库调用链

- `src/views/QualityManagement/CheckTask/salesReturn.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/salesReturn.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/salesReturn.vue` -> `质量管理_质量检验_退货质检任务_查询` -> 表：`质量检验_质检任务_SAP` -> 查询/读取数据
- `src/views/QualityManagement/CheckTask/salesReturn.vue` -> `质量管理_销售退货检_更新` -> 表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `质量管理_质量检验_退货质检任务_查询` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`质量检验_质检任务_SAP`。 入参/分页参数：`@订单号 NVARCHAR(100)`、`@零件编号 NVARCHAR(100)`、`@零件名称 NVARCHAR(100)`、`@检测日期_Start NVARCHAR(20)`、`@检测日期_End NVARCHAR(20)`、`@检测结果 NVARCHAR(10)`、`@检测人 NVARCHAR(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`SET @WhereConditions = @WhereConditions + ' AND (订单类型 = ''234000031'') '`；`SET @WhereConditions = @WhereConditions + ' AND 订单编号 LIKE ''%' + @订单号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料编码 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料名称 LIKE ''%' + @零件名称 + '%'''`；`IF @检测日期_Start '' AND @检测日期_End ''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检验时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND (合格数 > 0 AND 不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND ( 不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND ISNULL( 检测人, '''') LIKE ''%' + @检测人 + '%'''`；`SET @WhereConditions = ' WHERE ' + SUBSTRING(@WhereConditions, 5, LEN(@WhereConditions))`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @WhereConditions = @WhereConditions + ' AND (订单类型 = ''234000031'') '`；`SET @WhereConditions = @WhereConditions + ' AND 订单编号 LIKE ''%' + @订单号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料编码 LIKE ''%' + @零件编号 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND 物料名称 LIKE ''%' + @零件名称 + '%'''`；`SET @WhereConditions = @WhereConditions + ' AND CONVERT(DATE, 检验时间) BETWEEN ''' + @检测日期_Start + ''' AND ''' + @检测日期_End + ''''`；`SET @WhereConditions = @WhereConditions + ' AND (合格数 > 0 AND 不合格数 = 0)'`；`SET @WhereConditions = @WhereConditions + ' AND ( 不合格数 > 0)'`；`SET @WhereConditions = @WhereConditions + ' AND ISNULL( 检测人, '''') LIKE ''%' + @检测人 + '%'''`；`SET @WhereConditions = ' WHERE ' + SUBSTRING(@WhereConditions, 5, LEN(@WhereConditions))`；`SET @SQL = '`。
- `质量管理_销售退货检_更新` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`质量检验_质检任务_SAP`。 写入或更新对象：`质量检验_质检任务_SAP`。 入参/分页参数：`@检测类型编号 int,`、`@质检类型 NVARCHAR(50),`、`@零件名称 NVARCHAR(200),`、`@零件编码 NVARCHAR(200),`、`@计划号 int,`、`@检测数量 decimal(18,`、`@合格数 decimal(18,`、`@不合格数 decimal(18,`、`@检测人 NVARCHAR(50),`、`@检测时间 DATETIME,`、`@检测说明 NVARCHAR(MAX),`、`@行号 int,`、`@订单类型 NVARCHAR(50)`。 关键过滤/匹配条件：`WHERE 订单编号 = @计划号 AND 行号 = @行号 and 订单类型 = @订单类型`；`ON (target.[零件编码] = source.[零件编码] AND target.[计划号] = source.[计划号] and target.行号 = source.行号 )`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE [dbo].[质量检验_质检任务_SAP]`；`SET 合格数 = @合格数, `；`MERGE INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] AS target`；`UPDATE SET`。

## 56. src/views/QualityManagement/QualityCenter/index.vue

**页面位置**：`src/views/QualityManagement/QualityCenter/index.vue`  
**所属模块**：QualityManagement / QualityCenter  
**源码行数**：4692

### 页面功能

该页面是质量综合处理中心。用户集中查询质检任务、收检记录、终检/入库任务和质检明细，录入检测数据、不合格处理，并读取 SAP 生产订单信息辅助校验。

页面可见的操作/字段包括 “查询 --> --> 缺料”、“上一个 下一个”、“删除当前记录 关闭”、“上一个 下一个 保存当前记录 删除当前记录 关闭”、“确定 关闭”、“取 消”、“确 定”、“新增异常工时”、“编辑”、“取消”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_获取人员绑定`、`加急订单_加急明细查询`、`MES_人员工时记录_获取进行中任务2`、`MES_人员工时记录_获取进行中任务`、`工时校验_获取订单列表`、`异常工时_新增操作记录` 等过程 取数或提交业务动作。

### 页面流程图

质检业务流程：

```mermaid
flowchart LR
  A[选择检验类型/订单/物料/工序] --> B[查询待检任务]
  B --> C[查看图纸/字典/检验人员]
  C --> D[录入检测数量、合格数、不合格数和检测明细]
  D --> E{检验类型}
  E --> F[来料/入库/退货检验更新]
  E --> G[序检收检新增或更新]
  E --> H[终检/首检/特殊检验保存]
  F --> I[写入 YL_质量检验_质检记录及明细]
  G --> I
  H --> I
  I --> J[必要时查询/回写 SAP 生产订单或单据]
```


### 用户操作与页面线索

可见按钮/字段线索：`查询 --> --> 缺料`、`上一个 下一个`、`删除当前记录 关闭`、`上一个 下一个 保存当前记录 删除当前记录 关闭`、`确定 关闭`、`取 消`、`确 定`、`新增异常工时`、`编辑`、`取消`、`关闭`、`确定`、`全部`、`已送检`、`未送检`、`待执行`、`可执行`、`已开工`

主要方法线索：`handletaskChange`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.零件编码` | `@物料编号` | `docentry as 订单编号, itemcode as 物料编号, 加急数量` |
| 参数 | `userName` | `@用户ID` | - |
| 参数 | `orderId` | `@订单编号` | `订单编号, ` |
| 参数 | `this.TaskAID ` | `@TaskAID` | - |
| 参数 | `this.orderNo2 ` | `@订单号` | `main.[订单编号] as 订单号, ` |
| 参数 | `this.productCode2` | `@零件编号` | - |
| 参数 | `this.productionStatus2 ` | `@生产状态` | - |
| 参数 | `this.Doing` | `@工位名称` | - |
| 参数 | `this.$store.state.user.id` | `@用户ID` | - |
| 参数 | `this.plannum` | `@计划号` | - |
| 参数 | `this.salenum` | `@销售订单` | - |
| 参数 | `this.SendCheckStatus` | `@送检` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@计划开工_Start` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@计划开工_End` | - |
| 参数 | `row.零件编码` | `@ItemCode` | - |
| 参数 | `row.订单号` | `@订单号` | `main.[订单编号] as 订单号, ` |
| 参数 | `taskAID` | `@TaskAID` | - |
| 参数 | `userId` | `@用户ID` | - |
| 参数 | `userName` | `@用户名` | - |
| 参数 | `userName` | `@操作人` | - |
| 参数 | `"1"` | `@isOvertime` | - |
| 参数 | `overtimeResult.person` | `@加班人员` | - |
| 参数 | `overtimeResult.hours` | `@overtimeHours` | - |
| 参数 | `currentShift.shiftName` | `@overtimeShift` | - |
| 参数 | `this.currentTime` | `@结束时间` | - |
| 参数 | `this.workendData.备注` | `@备注` | - |
| 参数 | `this.workendData.工序说明` | `@工序说明` | - |
| 参数 | `this.workendData.异常说明` | `@异常说明` | - |
| 参数 | `this.workendData.本次检数` | `@本次检数` | `@检验数 = ISNULL(本次检数, 0)` |
| 参数 | `row.TaskAID` | `@TaskAID` | - |
| 参数 | `this.$store.state.user.name` | `@optor` | - |
| 参数 | `this.assistNumber` | `@recievCount` | - |
| 参数 | `this.receiveCheckData.TaskAID` | `@TaskAID` | - |
| 参数 | `6` | `@检测类型编号` | - |
| 参数 | `"收检"` | `@质检类型` | - |
| 参数 | `this.receiveCheckData.零件名称` | `@零件名称` | - |
| 参数 | `this.receiveCheckData.内部合同号` | `@内部合同号` | - |
| 参数 | `this.receiveCheckData.零件编码` | `@零件编码` | - |
| 参数 | `this.receiveCheckData.计划号 ` | `@计划号` | - |
| 参数 | `this.receiveCheckData.工序名称 ` | `@工序名称` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）
- TM/OpenAPI 接口（`src/api/tm.js`）
- PDF/图纸预览或导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 2168 | 11（当前通用存储过程查询/执行） | `生产管理_获取人员绑定` | 基础权限/人员数据处理 | 查询 | 表：`MES_资源主数据`、`工位人员绑定表` |
| 2249 | 11（当前通用存储过程查询/执行） | `加急订单_加急明细查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象、处理计划/派工 | 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` |
| 2262 | 11（当前通用存储过程查询/执行） | `MES_人员工时记录_获取进行中任务2` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表` |
| 2296 | 11（当前通用存储过程查询/执行） | `MES_人员工时记录_获取进行中任务` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表` |
| 2362 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单列表` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划` |
| 2408 | 11（当前通用存储过程查询/执行） | `异常工时_新增操作记录` | 新增业务数据 | 查询、新增、处理报工/工时 | 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` |
| 2441 | 11（当前通用存储过程查询/执行） | `工时校验_获取订单工序` | 报工或工时处理 | 查询、处理报工/工时 | 视图：`View_生产订单_MES` |
| 2485 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 2539 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadProcess` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 2571 | 11（当前通用存储过程查询/执行） | `质量管理_质检报工_任务查询` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 2676 | 11（当前通用存储过程查询/执行） | `MES_ProductTask_WorkTimeSum` | 报工或工时处理 | 查询、处理报工/工时、处理计划/派工 | 未在 SQL 中解析到明确依赖 |
| 2708 | 11（当前通用存储过程查询/执行） | `生产管理_装配中心_缺料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty` |
| 2742 | 12（当前通用存储过程写入/业务动作） | `MES_人员工时记录_开始` | 报工或工时处理 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`；视图：`View_生产订单_MES` |
| 2973 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_班次信息` | 业务存储过程调用 | 查询 | 视图：`View_设备工位人员` |
| 3026 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_自动加班` | 业务存储过程调用 | 查询、新增、处理报工/工时 | 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` |
| 3058 | 12（当前通用存储过程写入/业务动作） | `MES_人员工时记录_结束` | 报工或工时处理 | 查询、新增、更新、处理报工/工时、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录` |
| 3130 | 12（当前通用存储过程写入/业务动作） | `MES_ProductTask_SendInspection` | 业务存储过程调用 | 查询、新增、更新、处理报工/工时、处理计划/派工 | 表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES` |
| 3177 | 11（当前通用存储过程查询/执行） | `加工中心_收检_读取收检记录` | 查询/读取数据 | 查询、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 3266 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_ReceiveCheck` | 质量检验处理 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录` |
| 3304 | 11（当前通用存储过程查询/执行） | `加工中心_异常工时_获取操作记录列表` | 报工或工时处理 | 查询、处理报工/工时 | 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` |
| 3358 | 11（当前通用存储过程查询/执行） | `加工中心_修改工时_保存修改记录` | 更新/保存业务数据 | 更新、处理报工/工时 | 表：`YL_加工中心_操作记录表` |
| 3393 | 11（当前通用存储过程查询/执行） | `生产管理_加工中心_生产发料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE` |
| 3447 | 11（当前通用存储过程查询/执行） | `工艺管理_图纸维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_零件图纸` |
| 3481 | 11（当前通用存储过程查询/执行） | `工艺管理_工艺维护_查看图纸` | 查询/读取数据 | 查询 | 表：`物料基础数据_工艺图纸` |
| 3522 | 12（当前通用存储过程写入/业务动作） | `生产管理_加工中心_退库` | 业务存储过程调用 | 查询、新增、处理质检数据 | 表：`质量检验_质检任务_SAP` |
| 3768 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 3998 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_CheckItemData_Save` | 更新/保存业务数据 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` |
| 4086 | 11（当前通用存储过程查询/执行） | `MES_QulityInspection_GetItemStandard` | 查询/读取数据 | 查询、处理质检数据 | 表：`YL_质量检验_检测标准` |
| 4138 | 11（当前通用存储过程查询/执行） | `Prog_MES_GetProductOrder_byAID` | 查询/读取数据 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` |
| 4181 | 11（当前通用存储过程查询/执行） | `MES_QulityInspection_GetItemStandard` | 查询/读取数据 | 查询、处理质检数据 | 表：`YL_质量检验_检测标准` |
| 4383 | 12（当前通用存储过程写入/业务动作） | `MES_QulityInspection_CheckItemData_Save` | 更新/保存业务数据 | 查询、新增、更新、处理质检数据、处理计划/派工 | 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 3415 行：`getB1("/ProductionOrders")`
- 第 3584 行：`posttm("/stocktask/task/issueordertask")`
存储过程内读取 SAP B1 数据库对象：
- 加急订单_加急明细查询: SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL
- 生产管理_装配中心_缺料查询: SAP.SBO_YL.dbo.UBT_OPKL_MissQty
- 生产管理_加工中心_生产发料查询: SAP.SBO_YL.dbo.UBT_OWOR_OIGE

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 3415 | `getB1` | `/ProductionOrders` | 读取或更新 SAP 生产订单。失败会导致 MES 与 SAP 订单状态/工序资源不同步。 | `filter`、`数据`、`lines`、`请求失败` |
| 3584 | `posttm` | `/stocktask/task/issueordertask` | 调用外部接口，失败会影响对应外部系统同步。 | `原始数据`、`doc_date`、`doc_type`、`external_num`、`task_items` |

### 状态流转说明

- `生产管理_获取人员绑定`：`AND b.绑定状态 = 1;`
- `加急订单_加急明细查询`：`SELECT docentry as 订单编号, itemcode as 物料编号, 加急数量 from SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`
- `MES_人员工时记录_获取进行中任务2`：`CREATE PROCEDURE [dbo].[MES_人员工时记录_获取进行中任务2]`；`pt.工序名称 AS 任务工序名称, `；`pt.任务状态, `；`pt.完成数量, `；`pt.计划完成时间 AS 计划完成, `；`FROM [dbo].[YL_加工中心_操作记录表] t`；`LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID`；`t.操作类别 = '开始加工'`
- `MES_人员工时记录_获取进行中任务`：`CREATE PROCEDURE [dbo].[MES_人员工时记录_获取进行中任务]`；`pt.工序名称 AS 任务工序名称, `；`pt.任务状态, `；`pt.完成数量, `；`pt.计划完成时间 AS 计划完成, `；`FROM [dbo].[YL_加工中心_操作记录表] t`；`LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID`；`AND t.操作类别 = '开始加工'`
- `异常工时_新增操作记录`：`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`；`操作描述, 开始时间, 结束时间, 总时长, 报工日期, 已报工, 不装配, `
- `质量管理_质检报工_任务查询`：`create PROCEDURE [dbo].[质量管理_质检报工_任务查询]`；`@生产状态 int = -1, `；`DECLARE @whereStr nvarchar(max) = ' WHERE main.排产状态 = 1 '`；`main.派工特殊说明, `；`case when isnull(main.[加急状态], 0) = 1 then ''加急'' else ''否'' end as [加急], `；`main.[二次派工], `；`main.[计划完成时间] as 计划完成, `；`isnull(main.[完成数量], 0) as 完成数量, `
- `MES_ProductTask_WorkTimeSum`：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`
- `生产管理_装配中心_缺料查询`：`select * from SAP.SBO_YL.dbo.UBT_OPKL_MissQty where DocEntry = @订单号`
- `MES_人员工时记录_开始`：`declare @任务状态 int = -1`；`FROM[dbo].[MES_接口_生产计划_生产任务]`；`SELECT 1 FROM YL_加工中心_操作记录表`；`AND 操作类别 = '开始加工'`；`select @任务状态 = isnull(任务状态, 0)from View_生产订单_MES where TaskAID = @TaskAID`；`if(@任务状态 = 1)`；`UPDATE MES_接口_生产计划_生产任务`；`任务状态 = '2', `
- `生产管理_加工中心_班次信息`：`create PROCEDURE [dbo].[生产管理_加工中心_班次信息]`
- `生产管理_加工中心_自动加班`：`CREATE PROCEDURE [dbo].[生产管理_加工中心_自动加班]`；`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`；`操作描述, 开始时间, 结束时间, 总时长, 报工日期, 已报工, 不装配, `
- `MES_人员工时记录_结束`：`FROM [dbo].[MES_接口_生产计划_生产任务]`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`FROM YL_加工中心_操作记录表`；`AND 操作类别 = '开始加工'`；`UPDATE YL_加工中心_操作记录表`；`操作描述 = '用户 ' + @用户名 + ' 结束加工，' +`；`INSERT INTO [dbo].[YL_加工中心_报工记录]`；`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`
- `MES_ProductTask_SendInspection`：`declare @任务状态 int`；`declare @完成数量 int`；`Update MES_接口_生产计划_生产任务`；`set 完成数量 = isnull(完成数量, 0)+@recievCount, `；`select @分配数量 = 指派数量, @完成数量 = 完成数量, @订单编号 = 订单编号, @工位名称 = 指派对象 from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`if(@完成数量 = @分配数量)`；`set 任务状态 = 4, `；`INSERT INTO [dbo].[YL_加工中心_操作记录表]`
- `加工中心_收检_读取收检记录`：`CREATE PROCEDURE [dbo].[加工中心_收检_读取收检记录]`；`declare @完成数量 int`；`select @已检验数量 = sum(检验数量) OVER() from YL_质量检验_质检记录 where TaskAID = @TaskAID and 质检类型 = '收检'`；`select @完成数量 = 完成数量 from [dbo].[MES_接口_生产计划_生产任务] where AID = @TaskAID`；`FROM [dbo].[YL_质量检验_质检记录] qc`；`select isnull(@已检验数量, 0), isnull(@完成数量, 0), isnull(@上序合格数, 0), @订单行号`
- `MES_QulityInspection_ReceiveCheck`：`@质检类型 NVARCHAR(50), `；`FROM [dbo].[MES_接口_生产计划_生产任务]`；`FROM [YL_MESDB].[dbo].[YL_质量检验_质检记录] qc`；`0 AS 清零任务数`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`[质检类型], `；`@质检类型, `；`INNER JOIN [dbo].[MES_接口_生产计划_生产任务] task ON qc.TaskAID = task.AID`
- `加工中心_异常工时_获取操作记录列表`：`CREATE PROCEDURE [dbo].[加工中心_异常工时_获取操作记录列表]`；`o.实际工时 as 加工工时, `；`o.已报工, `；`FROM [dbo].[YL_加工中心_操作记录表] o`
- `加工中心_修改工时_保存修改记录`：`CREATE PROCEDURE [dbo].[加工中心_修改工时_保存修改记录]`；`update [dbo].[YL_加工中心_操作记录表]`
- `生产管理_加工中心_生产发料查询`：`CREATE PROCEDURE [dbo].[生产管理_加工中心_生产发料查询]`；`select * from SAP.SBO_YL.dbo.UBT_OWOR_OIGE where 生产订单号 = @生产订单号`
- `生产管理_加工中心_退库`：`CREATE PROCEDURE [dbo].[生产管理_加工中心_退库]`；`select @行号 = max(isnull(行号, 0)) from [dbo].[质量检验_质检任务_SAP] where [订单编号] = @生产订单号 and [订单类型] = '202-60'`；`insert into [dbo].[质量检验_质检任务_SAP] ( [订单编号]`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `MES_QulityInspection_CheckItemData_Save`：`@质检类型 nvarchar(100) = '', `；`FROM [dbo].[YL_质量检验_质检记录]`；`AND 质检类型 = @质检类型`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`TaskAID, 质检类型, 检测类型编号, 零件名称, 内部合同号, `；`@TaskAID, @质检类型, @检测类型编号, @零件名称, @内部合同号, `；`UPDATE [dbo].[YL_质量检验_质检记录]`；`FROM [dbo].[YL_质量检验_质检记录_检测零件]`
- `Prog_MES_GetProductOrder_byAID`：`, [加急状态]`；`, [排产状态]`；`, [计划完成时间]`；`, [派工状态]`；`, [派工时间]`；`, [任务状态]`；`, [未完成说明]`；`, [派工特殊说明]`
- `MES_QulityInspection_CheckItemData_Save`：`@质检类型 nvarchar(100) = '', `；`FROM [dbo].[YL_质量检验_质检记录]`；`AND 质检类型 = @质检类型`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`TaskAID, 质检类型, 检测类型编号, 零件名称, 内部合同号, `；`@TaskAID, @质检类型, @检测类型编号, @零件名称, @内部合同号, `；`UPDATE [dbo].[YL_质量检验_质检记录]`；`FROM [dbo].[YL_质量检验_质检记录_检测零件]`

### 数据库调用链

- `src/views/QualityManagement/QualityCenter/index.vue` -> `生产管理_获取人员绑定` -> 表：`MES_资源主数据`、`工位人员绑定表` -> 基础权限/人员数据处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `加急订单_加急明细查询` -> 表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_人员工时记录_获取进行中任务2` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表` -> 报工或工时处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_人员工时记录_获取进行中任务` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表` -> 报工或工时处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `工时校验_获取订单列表` -> 表：`MES_接口_生产计划` -> 报工或工时处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `异常工时_新增操作记录` -> 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` -> 新增业务数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `工时校验_获取订单工序` -> 视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `Prog_MES_LoadProcess` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `质量管理_质检报工_任务查询` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_ProductTask_WorkTimeSum` -> 未在 SQL 中解析到明确依赖 -> 报工或工时处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `生产管理_装配中心_缺料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_人员工时记录_开始` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`；视图：`View_生产订单_MES` -> 报工或工时处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `生产管理_加工中心_班次信息` -> 视图：`View_设备工位人员` -> 业务存储过程调用
- `src/views/QualityManagement/QualityCenter/index.vue` -> `生产管理_加工中心_自动加班` -> 表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES` -> 业务存储过程调用
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_人员工时记录_结束` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录` -> 报工或工时处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_ProductTask_SendInspection` -> 表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES` -> 业务存储过程调用
- `src/views/QualityManagement/QualityCenter/index.vue` -> `加工中心_收检_读取收检记录` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_QulityInspection_ReceiveCheck` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录` -> 质量检验处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `加工中心_异常工时_获取操作记录列表` -> 表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表` -> 报工或工时处理
- `src/views/QualityManagement/QualityCenter/index.vue` -> `加工中心_修改工时_保存修改记录` -> 表：`YL_加工中心_操作记录表` -> 更新/保存业务数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `生产管理_加工中心_生产发料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `工艺管理_图纸维护_查看图纸` -> 表：`物料基础数据_零件图纸` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `工艺管理_工艺维护_查看图纸` -> 表：`物料基础数据_工艺图纸` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `生产管理_加工中心_退库` -> 表：`质量检验_质检任务_SAP` -> 业务存储过程调用
- `src/views/QualityManagement/QualityCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_QulityInspection_CheckItemData_Save` -> 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` -> 更新/保存业务数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_QulityInspection_GetItemStandard` -> 表：`YL_质量检验_检测标准` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `Prog_MES_GetProductOrder_byAID` -> 表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_QulityInspection_GetItemStandard` -> 表：`YL_质量检验_检测标准` -> 查询/读取数据
- `src/views/QualityManagement/QualityCenter/index.vue` -> `MES_QulityInspection_CheckItemData_Save` -> 表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据` -> 更新/保存业务数据

### 存储过程处理逻辑明细

- `生产管理_获取人员绑定` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 基础权限/人员数据处理。 数据库处理摘要：查询。 读取/关联对象：表：`MES_资源主数据`、`工位人员绑定表`。 入参/分页参数：`@操作人ID NVARCHAR(50)`。 主要返回字段线索：`m.[name] AS 工位名称`。 关键过滤/匹配条件：`WHERE`；`AND b.绑定状态 = 1;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `加急订单_加急明细查询` 属于 加急任务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`；SAP/链接库：`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。 入参/分页参数：`@物料编号 nvarchar(50)`。 主要返回字段线索：`docentry as 订单编号, itemcode as 物料编号, 加急数量`。 关键过滤/匹配条件：`where itemcode = @物料编号`。 实现特征：读取 SAP 数据库对象。
- `MES_人员工时记录_获取进行中任务2` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`。 入参/分页参数：`@用户ID NVARCHAR(50)`。 主要返回字段线索：`t.AID AS 操作记录ID, `、`t.TaskAID, `、`t.操作人 AS UserName, `、`t.开始时间 AS StartTime, `、`t.操作类别, `、`t.操作类别编号, `、`t.工序名称, `、`t.工位名称, `、`t.订单编号, `、`t.物料编号, `。 关键过滤/匹配条件：`WHERE`；`AND t.结束时间 IS NULL`；`and t.工位名称 like '%装配%'`；`and t.操作数值 is not null`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY t.开始时间 DESC;`。 实现特征：异常捕获。
- `MES_人员工时记录_获取进行中任务` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`。 入参/分页参数：`@用户ID NVARCHAR(50)`。 主要返回字段线索：`t.AID AS 操作记录ID, `、`t.TaskAID, `、`t.操作人 AS UserName, `、`t.开始时间 AS StartTime, `、`t.操作类别, `、`t.操作类别编号, `、`t.工序名称, `、`t.工位名称, `、`t.订单编号, `、`t.物料编号, `。 关键过滤/匹配条件：`WHERE t.操作人 = @用户ID`；`AND t.操作类别 = '开始加工'`；`AND t.结束时间 IS NULL`；`and t.工位名称 like '%装配%'`；`and t.操作数值 is not null`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY t.开始时间 DESC;`。 实现特征：异常捕获。
- `工时校验_获取订单列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`。 入参/分页参数：`@订单编号 nvarchar(50)`。 主要返回字段线索：`DISTINCT top 20`、`订单编号, `、`物料编号 as 零件编码, `、`物料描述 as 零件名称`。 关键过滤/匹配条件：`FROM [dbo].[MES_接口_生产计划] WHERE 订单编号 LIKE '%' + @订单编号 + '%' OR @订单编号 = ''`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单编号 ;`。
- `异常工时_新增操作记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`。 写入或更新对象：`YL_加工中心_操作记录表`。 入参/分页参数：`@操作类别 nvarchar(50),`、`@订单编号 nvarchar(50),`、`@物料编号 nvarchar(50),`、`@物料描述 nvarchar(50),`、`@工序名称 nvarchar(50),`、`@操作人 nvarchar(50),`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@操作内容 nvarchar(500)`、`@操作描述 nvarchar(2000)`、`@TaskAID nvarchar(2000)`。 主要返回字段线索：`@工位名称 = 指派对象`。 关键过滤/匹配条件：`select @工位名称 = 指派对象 from [dbo].[View_生产订单_MES] where TaskAID = @TaskAID`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @工时 = DATEDIFF(SECOND, @开始时间, @结束时间);`；`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`。 实现特征：异常捕获。
- `工时校验_获取订单工序` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单编号 int`。 主要返回字段线索：`工序名称, 订单行号 as 工艺顺序, 指派对象, TaskAID, 顺序编号, 指派对象 as 工位名称, VisCode`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 订单行号;`。
- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `Prog_MES_LoadProcess` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 主要返回字段线索：`[工艺编号], [工序名称]`。 排序/分组/分页线索：`SELECT [工艺编号], [工序名称] FROM [基础表_工序] ORDER BY [工艺编号]`。
- `质量管理_质检报工_任务查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID int`、`@订单号 int`、`@零件编号 nvarchar(50)`、`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`、`@生产状态 int`、`@工位名称 nvarchar(50)`、`@用户ID nvarchar(50)`、`@计划号 nvarchar(50)`、`@销售订单 nvarchar(50)`、`@送检 int`。 主要返回字段线索：`main.TaskAID, `、`main.本次检数, `、`main.[订单编号] as 订单号, `、`main.合同号, `、`main.自制件属性, `、`main.加急总数, `、`main.派工特殊说明, `、`main.[订单拆分内码], `、`main.[订单行号], `、`main.[开工时间], `。 关键过滤/匹配条件：`DECLARE @whereStr nvarchar(max) = ' WHERE main.排产状态 = 1 '`；`WHERE a.检测类型编号 = 6`；`) AS 质检统计 ON main.订单编号 = 质检统计.订单编号 AND main.订单行号 = 质检统计.订单行号`；`) AS 上序统计 ON main.订单编号 = 上序统计.订单编号 AND main.订单行号 = 上序统计.订单行号 + 1'`；`SET @whereStr = @whereStr + ' AND main.[指派对象] ''外协'' AND main.[指派对象] LIKE ''%装配%'''`；`SET @whereStr = @whereStr + ' AND main.[订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @whereStr = @whereStr + ' AND main.[计划号] = '''+@计划号+''''`；`SET @whereStr = @whereStr + ' AND main.[合同号] LIKE ''%' + @销售订单 + '%'''`；`SET @whereStr = @whereStr + ' AND main.[TaskAID] = ' + CONVERT(VARCHAR(10), @TaskAID)`；`SET @whereStr = @whereStr + ' AND ISNULL(main.完成数量, 0) > 0 '`。 关键写入/状态处理语句线索：`SET @whereStr = @whereStr + ' AND main.[指派对象] ''外协'' AND main.[指派对象] LIKE ''%装配%'''`；`SET @whereStr = @whereStr + ' AND main.[订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @whereStr = @whereStr + ' AND main.[计划号] = '''+@计划号+''''`；`SET @whereStr = @whereStr + ' AND main.[合同号] LIKE ''%' + @销售订单 + '%'''`；`SET @whereStr = @whereStr + ' AND main.[TaskAID] = ' + CONVERT(VARCHAR(10), @TaskAID)`；`SET @whereStr = @whereStr + ' AND ISNULL(main.完成数量, 0) > 0 '`；`SET @whereStr = @whereStr + ' AND ISNULL(main.完成数量, 0) = 0 '`；`SET @whereStr = @whereStr + ' AND main.[物料编号] LIKE ''%' + @零件编号 + '%'''`；`SET @whereStr = @whereStr + ' AND main.[计划开始时间] > = ''' + @计划开工_Start + ''''`；`SET @whereStr = @whereStr + ' AND main.[计划开始时间] < = ''' + @计划开工_End + ''''`；`SET @whereStr = @whereStr +`；`SET @whereStr = @whereStr + ' AND ISNULL(main.任务状态, 0) IN (0, 1, 2) '`。 排序/分组/分页线索：`GROUP BY b.订单编号, b.订单行号`；`SET @selStr = @selStr + @whereStr + ' ORDER BY main.[计划开始时间], main.[订单编号], main.[阶段标识]'`。
- `MES_ProductTask_WorkTimeSum` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时、处理计划/派工。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@计划开工_Start nvarchar(50)`、`@计划开工_End nvarchar(50)`。 主要返回字段线索：`TaskAID, 工序名称, sum(工时) as 总工时`。 关键过滤/匹配条件：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。 排序/分组/分页线索：`select TaskAID, 工序名称, sum(工时) as 总工时 from YL_加工中心_操作记录表 where 工时 >0 group by TaskAID, 工序名称`。
- `生产管理_装配中心_缺料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty`。 入参/分页参数：`@ItemCode nvarchar(500),`、`@订单号 int`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from SAP.SBO_YL.dbo.UBT_OPKL_MissQty where DocEntry = @订单号`。 实现特征：读取 SAP 数据库对象。
- `MES_人员工时记录_开始` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`；视图：`View_生产订单_MES`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`。 入参/分页参数：`@TaskAID INT,`、`@用户ID NVARCHAR(50),`、`@用户名 NVARCHAR(50),`、`@操作人 NVARCHAR(50)`。 主要返回字段线索：`@订单编号 = ISNULL(订单编号, ''), `、`@物料编号 = ISNULL(物料编码, ''), `、`@物料描述 = ISNULL(物料名称, ''), `、`@工序名称 = ISNULL(工序名称, ''), `、`@工位名称 = ISNULL(指派对象, ''), `、`@阶段标识 = ISNULL(顺序编号, -1)`。 关键过滤/匹配条件：`WHERE AID = @TaskAID`；`WHERE TaskAID = @TaskAID`；`AND 操作人 = @用户名`；`AND 操作类别 = '开始加工'`；`AND 结束时间 IS NULL`；`select @任务状态 = isnull(任务状态, 0)from View_生产订单_MES where TaskAID = @TaskAID`。 关键写入/状态处理语句线索：`UPDATE MES_接口_生产计划_生产任务`；`SET`；`INSERT INTO YL_加工中心_操作记录表 (`。 实现特征：异常捕获。
- `生产管理_加工中心_班次信息` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询。 读取/关联对象：视图：`View_设备工位人员`。 主要返回字段线索：`*`。
- `生产管理_加工中心_自动加班` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`；视图：`View_生产订单_MES`。 写入或更新对象：`YL_加工中心_操作记录表`。 入参/分页参数：`@操作类别 nvarchar(50),`、`@订单编号 nvarchar(50),`、`@物料编号 nvarchar(50),`、`@物料描述 nvarchar(50),`、`@工序名称 nvarchar(50),`、`@操作人 nvarchar(50),`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@TaskAID nvarchar(2000)`、`@加班人员 nvarchar(500)`。 主要返回字段线索：`@工位名称 = 指派对象`。 关键过滤/匹配条件：`select @工位名称 = 指派对象 from [dbo].[View_生产订单_MES] where TaskAID = @TaskAID`；`IF @人员列表 IS NULL OR LEN(@人员列表) = 0`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @工时 = DATEDIFF(SECOND, @开始时间, @结束时间);`；`SET @人员列表 = @操作人;`；`SET @位置 = CHARINDEX(', ', @人员列表);`；`SET @当前人员 = LTRIM(RTRIM(SUBSTRING(@人员列表, 1, @位置 - 1)));`；`SET @人员列表 = SUBSTRING(@人员列表, @位置 + 1, LEN(@人员列表));`；`SET @当前人员 = LTRIM(RTRIM(@人员列表));`；`SET @人员列表 = '';`；`INSERT INTO #Temp人员 (人员名称) VALUES (@当前人员);`；`INSERT INTO [dbo].[YL_加工中心_操作记录表] (`；`SET @成功计数 = @@ROWCOUNT;`。 实现特征：事务控制、异常捕获、临时表 `#Temp人员`。
- `MES_人员工时记录_结束` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`班次表`、`YL_加工中心_报工记录`。 写入或更新对象：`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`。 入参/分页参数：`@TaskAID INT,`、`@用户ID NVARCHAR(50),`、`@用户名 NVARCHAR(50),`、`@操作人 NVARCHAR(50),`、`@备注 NVARCHAR(200)`、`@工序说明 NVARCHAR(200)`、`@异常说明 NVARCHAR(200)`、`@本次检数 NVARCHAR(200)`、`@是否加班 INT`、`@加班人员 NVARCHAR(500)`、`@特殊加班人员 NVARCHAR(500)`、`@是否休息日 INT`、`@是否法定休息日 INT`、`@班次标准工时 NVARCHAR`。 主要返回字段线索：`@订单编号 = ISNULL(订单编号, ''), `、`@物料编号 = ISNULL(物料编码, ''), `、`@物料描述 = ISNULL(物料名称, ''), `、`@工序名称 = ISNULL(工序名称, ''), `、`@工位名称 = ISNULL(指派对象, ''), `、`@阶段标识 = ISNULL(顺序编号, -1), `、`@检验数 = ISNULL(本次检数, 0)`。 关键过滤/匹配条件：`WHERE AID = @TaskAID`；`WHERE TaskAID = @TaskAID`；`AND 操作人 = @用户名`；`AND 操作类别 = '开始加工'`；`AND 结束时间 IS NULL`；`WHERE 班次名称 = '白班'`；`IF @是否休息日 = 1 OR @是否法定休息日 = 1`；`WHERE AID = @开始记录ID`；`IF @是否法定休息日 = 1 AND @是否加班 = 0`；`ELSE IF @是否休息日 = 1 AND @是否加班 = 0`。 关键写入/状态处理语句线索：`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 本次检数 = ISNULL(@检验数, 0) + ISNULL(@本次检数, 0)`；`SET @白班结束时间 = '16:30:00'`；`SET @白班结束时间_完整 = CAST(CAST(@结束时间 AS DATE) AS DATETIME) + CAST(@白班结束时间 AS DATETIME)`；`SET @加班时长秒 = @总工时`；`SET @加班开始时间 = @开始时间`；`SET @工作时间 = 0`；`SET @工作时间 = @总工时`；`SET @报工开始时间 = @开始时间`；`SET @报工结束时间 = @结束时间`；`SET @加班时长秒 = 0`；`SET @加班开始时间 = NULL`。 排序/分组/分页线索：`ORDER BY 开始时间 DESC`。 实现特征：异常捕获、临时表 `#TempOvertimePersons`。
- `MES_ProductTask_SendInspection` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、更新、处理报工/工时、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`；视图：`View_生产订单_MES`。 写入或更新对象：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_加工中心_操作记录表`、`YL_加工中心_报工记录`。 入参/分页参数：`@TaskAID bigint,`、`@recievCount int,`、`@optor nvarchar(50)`。 主要返回字段线索：`@分配数量 = 指派数量, @完成数量 = 完成数量, @订单编号 = 订单编号, @工位名称 = 指派对象`。 关键过滤/匹配条件：`where AID = @TaskAID`；`select @分配数量 = 指派数量, @完成数量 = 完成数量, @订单编号 = 订单编号, @工位名称 = 指派对象 from MES_接口_生产计划_生产任务 where AID = @TaskAID`；`select @dicItemID = 词条编号 from YL_基础表_数据字典 where 词条名称 = @词条名称 and 数据类别 = @数据类别`；`from View_生产订单_MES where TaskAID = @TaskAID`。 关键写入/状态处理语句线索：`Update MES_接口_生产计划_生产任务`；`set 完成数量 = isnull(完成数量, 0)+@recievCount, `；`set 任务状态 = 4, `；`INSERT INTO [dbo].[YL_加工中心_操作记录表]`；`INSERT INTO [dbo].[YL_加工中心_报工记录]`。
- `加工中心_收检_读取收检记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID int`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`select @已检验数量 = sum(检验数量) OVER() from YL_质量检验_质检记录 where TaskAID = @TaskAID and 质检类型 = '收检'`；`select @完成数量 = 完成数量 from [dbo].[MES_接口_生产计划_生产任务] where AID = @TaskAID`；`WHERE vt.[订单编号] = @订单编号`；`AND vt.[订单行号] = @订单行号-1`；`AND qc.检测类型编号 = '6'`。
- `MES_QulityInspection_ReceiveCheck` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 质量检验处理。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`、`YL_质量检验_质检记录`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@TaskAID bigint,`、`@检测类型编号 int,`、`@质检类型 NVARCHAR(50),`、`@零件名称 NVARCHAR(200),`、`@内部合同号 int,`、`@零件编码 NVARCHAR(200),`、`@计划号 int,`、`@工序名称 NVARCHAR(100),`、`@检测数量 INT,`、`@合格数 INT,`、`@不合格数 INT,`、`@检测人 NVARCHAR(50),`、`@检测时间 DATETIME,`、`@计划生产数 INT,`、`@检测说明 NVARCHAR(MAX)`。 主要返回字段线索：`@分配数量 = ISNULL(指派数量, 0)`。 关键过滤/匹配条件：`WHERE AID = @TaskAID`；`WHERE qc.TaskAID = @TaskAID`；`WHERE task.订单编号 = @计划号`；`AND task.订单行号 = @当前订单行号`；`AND qc.质检类型 = '收检'`；`WHERE 订单编号 = @计划号`；`AND 订单行号 = @当前订单行号 + 1`；`AND ISNULL(订单拆分内码, 1) = 1`；`IF @下一道工序AID IS NOT NULL and @合格数 > 0`；`WHERE AID = @下一道工序AID and isnull(任务状态, 0) < 1`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [YL_MESDB].[dbo].[YL_质量检验_质检记录] (`；`UPDATE [dbo].[MES_接口_生产计划_生产任务]`；`SET 任务状态 = 4`；`SET 任务状态 = 1`。 实现特征：事务控制、异常捕获。
- `加工中心_异常工时_获取操作记录列表` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 报工或工时处理。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`生产管理_工时校验_校验工时表`、`YL_加工中心_操作记录表`。 入参/分页参数：`@操作人 nvarchar(50)`。 主要返回字段线索：`o.AID, `、`o.操作类别编号, `、`o.操作类别, `、`o.阶段标识, `、`o.工序名称, `、`o.工位编号, `、`o.工位名称, `、`o.操作人 as 指派对象, `、`o.合同号, `、`o.订单编号 as 订单号, `。 关键过滤/匹配条件：`WHERE c.AID IS NULL and o.操作人 = @操作人 and o.操作类别编号 in ('8', '9')`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `加工中心_修改工时_保存修改记录` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`。 写入或更新对象：`YL_加工中心_操作记录表`。 入参/分页参数：`@TaskAID bigint,`、`@开始时间 datetime,`、`@结束时间 datetime,`、`@工时 int,`、`@操作人 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 关键过滤/匹配条件：`where AID = @TaskAID`。 关键写入/状态处理语句线索：`update [dbo].[YL_加工中心_操作记录表]`；`set 最后编辑时间 = GETDATE(), 最后编辑人 = @最后编辑人, 实际工时 = @工时, 开始时间 = @开始时间, 结束时间 = @结束时间`。
- `生产管理_加工中心_生产发料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OWOR_OIGE`。 入参/分页参数：`@生产订单号 nvarchar(50)`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from SAP.SBO_YL.dbo.UBT_OWOR_OIGE where 生产订单号 = @生产订单号`。 关键写入/状态处理语句线索：`set nocount on;`。 实现特征：读取 SAP 数据库对象。
- `工艺管理_图纸维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_零件图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`、`worker`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `工艺管理_工艺维护_查看图纸` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`物料基础数据_工艺图纸`。 入参/分页参数：`@物料编号 NVARCHAR(50)`。 主要返回字段线索：`CASE`、`WHEN uploadTime IS NOT NULL`、`AND ISDATE(uploadTime) = 1`、`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`、`THEN name`、`ELSE uid`、`END AS uid`。 关键过滤/匹配条件：`AND ISDATE(uploadTime) = 1`；`AND CONVERT(DATETIME, uploadTime) > = '2026-01-27 13:01:00'`；`WHERE num = @物料编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `生产管理_加工中心_退库` 属于 生产执行/工时，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、新增、处理质检数据。 读取/关联对象：表：`质量检验_质检任务_SAP`。 写入或更新对象：`质量检验_质检任务_SAP`。 入参/分页参数：`@生产订单号 bigint,`、`@编码 nvarchar(500),`、`@名称 nvarchar(500),`、`@数量 float,`、`@单位 nvarchar(50),`、`@批次信息 nvarchar(50),`、`@最后编辑人 nvarchar(50)`。 主要返回字段线索：`@行号 = max(isnull(行号, 0))`。 关键过滤/匹配条件：`select @行号 = max(isnull(行号, 0)) from [dbo].[质量检验_质检任务_SAP] where [订单编号] = @生产订单号 and [订单类型] = '202-60'`。 关键写入/状态处理语句线索：`insert into [dbo].[质量检验_质检任务_SAP] ( [订单编号]`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `MES_QulityInspection_CheckItemData_Save` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 写入或更新对象：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 入参/分页参数：`@TaskAID bigint`、`@物料编号 nvarchar(100)`、`@阶段标识 int`、`@工序名称 nvarchar(100)`、`@计划号 int`、`@检测项目 nvarchar(500)`、`@理论值 nvarchar(50)`、`@上限值 nvarchar(50)`、`@下限值 nvarchar(50)`、`@实测值 nvarchar(50)`、`@测量单位 nvarchar(50)`、`@检验比例 nvarchar(50)`、`@检具 nvarchar(50)`、`@检测结果 int`、`@合格数 int`、`@不合格数 int`、`@备注 nvarchar(200)`、`@检测人 nvarchar(50)`、`@检测时间 datetime`、`@当前检测零件编号 int`、`@质检类型 nvarchar(100)`、`@检测类型编号 nvarchar(100)`、`@零件名称 nvarchar(100)`、`@内部合同号 nvarchar(100)`。 主要返回字段线索：`@ExistingQT_AID = QT_AID`。 关键过滤/匹配条件：`WHERE TaskAID = @TaskAID`；`AND 零件编码 = @零件编码`；`AND 工序名称 = @工序名称`；`AND 质检类型 = @质检类型`；`AND 检测人 = @检测人`；`AND CONVERT(DATE, 检测时间) = CONVERT(DATE, @检测时间);`；`WHERE QT_AID = @ExistingQT_AID;`；`WHERE QT_AID = @ExistingQT_AID`；`AND 零件编号 = @零件编码`；`AND 当前检测零件编号 = @当前检测零件编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`SET @QT_AID = SCOPE_IDENTITY();`；`SET @ExistingQT_AID = @QT_AID;`；`SET @CurrentQualifiedCount = @CurrentQualifiedCount + @合格数;`；`SET @CurrentUnqualifiedCount = @CurrentUnqualifiedCount + @不合格数;`；`SET @CurrentInspectionCount = @CurrentInspectionCount + @检验数量;`；`UPDATE [dbo].[YL_质量检验_质检记录]`；`SET`；`SET @QT_AID = @ExistingQT_AID;`；`SET @PartResult = 0;`；`INSERT INTO [dbo].[YL_质量检验_质检记录_检测零件](`。 实现特征：事务控制、异常捕获。
- `MES_QulityInspection_GetItemStandard` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`YL_质量检验_检测标准`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@工序名称编号 int`、`@检测类别编号 int`。 主要返回字段线索：`[物料编号]`、`[工序名称编号]`、`[检测项目]`、`[理论值]`、`[上限值]`、`[下限值]`、`[测量单位]`、`[检验比例]`、`[检具]`、`[备注]`。 关键过滤/匹配条件：`where [物料编号] = @物料编号 and [工序名称编号] = @工序名称编号 and [检测类别编号] = @检测类别编号`。
- `Prog_MES_GetProductOrder_byAID` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：表：`YL_质量检验_质检记录`；视图：`View_生产订单_MES`。 入参/分页参数：`@TaskAID bigint`。 主要返回字段线索：`@订单编号 = [订单编号], @订单行号 = 订单行号`。 关键过滤/匹配条件：`select @订单编号 = [订单编号], @订单行号 = 订单行号 FROM [View_生产订单_MES] where TaskAID = @TaskAID`；`WHERE vt.[订单编号] = vo.[订单编号]`；`AND vt.[订单行号] = vo.[订单行号]-1`；`AND qc.检测类型编号 = '6'`；`WHERE [TaskAID] = @TaskAID`。
- `MES_QulityInspection_GetItemStandard` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：表：`YL_质量检验_检测标准`。 入参/分页参数：`@物料编号 nvarchar(50)`、`@工序名称编号 int`、`@检测类别编号 int`。 主要返回字段线索：`[物料编号]`、`[工序名称编号]`、`[检测项目]`、`[理论值]`、`[上限值]`、`[下限值]`、`[测量单位]`、`[检验比例]`、`[检具]`、`[备注]`。 关键过滤/匹配条件：`where [物料编号] = @物料编号 and [工序名称编号] = @工序名称编号 and [检测类别编号] = @检测类别编号`。
- `MES_QulityInspection_CheckItemData_Save` 属于 质量检验，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、新增、更新、处理质检数据、处理计划/派工。 读取/关联对象：表：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 写入或更新对象：`YL_质量检验_质检记录`、`YL_质量检验_质检记录_检测零件`、`YL_质量检验_质检记录_检测数据`。 入参/分页参数：`@TaskAID bigint`、`@物料编号 nvarchar(100)`、`@阶段标识 int`、`@工序名称 nvarchar(100)`、`@计划号 int`、`@检测项目 nvarchar(500)`、`@理论值 nvarchar(50)`、`@上限值 nvarchar(50)`、`@下限值 nvarchar(50)`、`@实测值 nvarchar(50)`、`@测量单位 nvarchar(50)`、`@检验比例 nvarchar(50)`、`@检具 nvarchar(50)`、`@检测结果 int`、`@合格数 int`、`@不合格数 int`、`@备注 nvarchar(200)`、`@检测人 nvarchar(50)`、`@检测时间 datetime`、`@当前检测零件编号 int`、`@质检类型 nvarchar(100)`、`@检测类型编号 nvarchar(100)`、`@零件名称 nvarchar(100)`、`@内部合同号 nvarchar(100)`。 主要返回字段线索：`@ExistingQT_AID = QT_AID`。 关键过滤/匹配条件：`WHERE TaskAID = @TaskAID`；`AND 零件编码 = @零件编码`；`AND 工序名称 = @工序名称`；`AND 质检类型 = @质检类型`；`AND 检测人 = @检测人`；`AND CONVERT(DATE, 检测时间) = CONVERT(DATE, @检测时间);`；`WHERE QT_AID = @ExistingQT_AID;`；`WHERE QT_AID = @ExistingQT_AID`；`AND 零件编号 = @零件编码`；`AND 当前检测零件编号 = @当前检测零件编号;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO [dbo].[YL_质量检验_质检记录](`；`SET @QT_AID = SCOPE_IDENTITY();`；`SET @ExistingQT_AID = @QT_AID;`；`SET @CurrentQualifiedCount = @CurrentQualifiedCount + @合格数;`；`SET @CurrentUnqualifiedCount = @CurrentUnqualifiedCount + @不合格数;`；`SET @CurrentInspectionCount = @CurrentInspectionCount + @检验数量;`；`UPDATE [dbo].[YL_质量检验_质检记录]`；`SET`；`SET @QT_AID = @ExistingQT_AID;`；`SET @PartResult = 0;`；`INSERT INTO [dbo].[YL_质量检验_质检记录_检测零件](`。 实现特征：事务控制、异常捕获。

## 57. src/views/QualityManagement/QualityDetails/index.vue

**页面位置**：`src/views/QualityManagement/QualityDetails/index.vue`  
**所属模块**：QualityManagement / QualityDetails  
**源码行数**：308

### 页面功能

该页面查询质检明细。用户按订单、物料、检验类型、时间等条件查询和导出检测明细。

页面可见的操作/字段包括 “查询”、“Excel导出”、“全部”、“收检”、“终检”、“来料检验”、“退库检验”、“序号”、“质检类型”、“零件编码”，这些是判断页面业务范围的主要线索。

后端主要围绕 `质量管理_质检明细_导出`、`质量管理_质检明细_查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `质量管理_质检明细_导出` -> `质量管理_质检明细_查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`Excel导出`、`全部`、`收检`、`终检`、`来料检验`、`退库检验`、`序号`、`质检类型`、`零件编码`、`零件名称`、`销售订单号`、`生产订单号`、`工序名称`、`工位名称`、`供应商代码`、`检验数量`、`合格数`

主要方法线索：`tableRowClassName`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.QualityStatus` | `@质检类型` | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 参数 | `this.startDate` | `@开始日期` | - |
| 参数 | `this.endDate` | `@结束日期` | - |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.contractNo` | `@合同号` | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 参数 | `this.productCode` | `@零件编码` | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 参数 | `this.productName` | `@零件名称` | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 参数 | `orderId` | `@订单编号` | - |
| 参数 | `this.pageCurrent` | `@PageCurrent` | - |
| 参数 | `this.pageSize` | `@pageSize` | - |
| 参数 | `'1111', 'int', '1'` | `@PageCount` | - |
| 参数 | `'1111', 'int', '1'` | `@ItemCount` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `质检类型` | - | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 显示列 | `零件编码` | - | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 显示列 | `零件名称` | - | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 显示列 | `销售订单号` | - | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 显示列 | `生产订单号` | - | `SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, ` |
| 显示列 | `工序名称` | - | `256*15 AS 工序名称, 256*15 AS 检验数量, 256*10 AS 合格数, 256*25 AS 不合格数, 256*12 AS 检测人, 256*10 AS 工位名称, ` |
| 显示列 | `工位名称` | - | `256*15 AS 工序名称, 256*15 AS 检验数量, 256*10 AS 合格数, 256*25 AS 不合格数, 256*12 AS 检测人, 256*10 AS 工位名称, ` |
| 显示列 | `供应商代码` | - | `供应商代码` |
| 显示列 | `检验数量` | - | `256*15 AS 工序名称, 256*15 AS 检验数量, 256*10 AS 合格数, 256*25 AS 不合格数, 256*12 AS 检测人, 256*10 AS 工位名称, ` |
| 显示列 | `合格数` | - | `256*15 AS 工序名称, 256*15 AS 检验数量, 256*10 AS 合格数, 256*25 AS 不合格数, 256*12 AS 检测人, 256*10 AS 工位名称, ` |
| 显示列 | `不合格数` | - | `256*15 AS 工序名称, 256*15 AS 检验数量, 256*10 AS 合格数, 256*25 AS 不合格数, 256*12 AS 检测人, 256*10 AS 工位名称, ` |
| 显示列 | `检测人` | - | `256*15 AS 工序名称, 256*15 AS 检验数量, 256*10 AS 合格数, 256*25 AS 不合格数, 256*12 AS 检测人, 256*10 AS 工位名称, ` |
| 显示列 | `检测时间` | - | `256*20 AS 检测时间, 256*20 AS 检测说明` |
| 显示列 | `检测说明` | - | `256*20 AS 检测时间, 256*20 AS 检测说明` |
| 输入字段 | `orderNo` | `@订单号` | - |
| 输入字段 | `contractNo` | `@合同号` | - |
| 输入字段 | `productCode` | `@零件编码` | - |
| 输入字段 | `productName` | `@零件名称` | - |
| 输入字段 | `QualityStatus` | `@质检类型` | - |
| 输入字段 | `startDate` | `@开始日期` | - |
| 输入字段 | `endDate` | `@结束日期` | - |
| 输入字段 | `activeTab` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 174 | 2001（导出/报表类过程） | `质量管理_质检明细_导出` | 质量检验处理 | 查询、处理质检数据、处理计划/派工 | 视图：`View_质检明细` |
| 248 | 11（当前通用存储过程查询/执行） | `质量管理_质检明细_查询` | 查询/读取数据 | 分页、处理质检数据、处理计划/派工 | 视图：`View_质检明细` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `质量管理_质检明细_导出`：`CREATE PROCEDURE [dbo].[质量管理_质检明细_导出]`；`@质检类型 nvarchar(4000) = '10', `；`SELECT '质检明细_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype`；`SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, `；`SELECT 0 AS 质检类型, 0 AS 零件编码, 0 AS 零件名称, 0 AS 内部合同号, 0 AS 计划号, `；`[质检类型]`；`FROM [dbo].[View_质检明细]'`；`IF @质检类型 = '10'`
- `质量管理_质检明细_查询`：`CREATE PROCEDURE [dbo].[质量管理_质检明细_查询]`；`@质检类型 nvarchar(4000) = '10', `；`DECLARE @tbname sysname = ' [dbo].[View_质检明细] '`；`IF @质检类型 = '10'`；`ELSE IF @质检类型 = '0'`；`SET @where = @where + ' AND 质检类型 = ''收检'' '`；`ELSE IF @质检类型 = '1'`；`SET @where = @where + ' AND 质检类型 = ''终检'' '`

### 数据库调用链

- `src/views/QualityManagement/QualityDetails/index.vue` -> `质量管理_质检明细_导出` -> 视图：`View_质检明细` -> 质量检验处理
- `src/views/QualityManagement/QualityDetails/index.vue` -> `质量管理_质检明细_查询` -> 视图：`View_质检明细` -> 查询/读取数据

### 存储过程处理逻辑明细

- `质量管理_质检明细_导出` 属于 质量检验，前端以 type=2001（导出/报表类过程）调用，页面用途是 质量检验处理。 数据库处理摘要：查询、处理质检数据、处理计划/派工。 读取/关联对象：视图：`View_质检明细`。 入参/分页参数：`@质检类型 nvarchar(4000)`、`@开始日期 datetime`、`@结束日期 datetime`、`@订单号 nvarchar(4000)`、`@合同号 nvarchar(4000)`、`@零件编码 nvarchar(4000)`、`@零件名称 nvarchar(4000)`。 主要返回字段线索：`'质检明细_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype`、`SELECT 256*12 AS 质检类型, 256*40 AS 零件编码, 256*20 AS 零件名称, 256*12 AS 内部合同号, 256*12 AS 计划号, `、`256*15 AS 工序名称, 256*15 AS 检验数量, 256*10 AS 合格数, 256*25 AS 不合格数, 256*12 AS 检测人, 256*10 AS 工位名称, `、`256*20 AS 检测时间, 256*20 AS 检测说明`、`SELECT 0 AS 质检类型, 0 AS 零件编码, 0 AS 零件名称, 0 AS 内部合同号, 0 AS 计划号, `、`0 AS 工序名称, 0 AS 检验数量, 0 AS 合格数, 0 AS 不合格数, 0 AS 检测人, 0 AS 工位名称, `、`0 AS 检测时间, 0 AS 检测说明`、`DECLARE @where nvarchar(max) = ' where '`、`DECLARE @selStr nvarchar(max) = `、`'SELECT`。 关键过滤/匹配条件：`DECLARE @where nvarchar(max) = ' where '`；`SET @where = @where + ' (1 = 1) '`；`SET @where = @where + ' AND 质检类型 = ''收检'' '`；`SET @where = @where + ' AND 质检类型 = ''终检'' '`；`SET @where = @where + ' AND 质检类型 = ''来料检验'' '`；`SET @where = @where + ' AND 质检类型 = ''退库检验'' '`；`SET @where = @where + ' AND 计划号 LIKE ''%' + @订单号 + '%'' '`；`SET @where = @where + ' AND 零件编码 LIKE ''%' + @零件编码 + '%'' '`；`SET @where = @where + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'' '`；`SET @where = @where + ' AND 检测时间 > = ''' + CONVERT(nvarchar(30), @开始日期, 120) + ''' '`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @where = @where + ' (1 = 1) '`；`SET @where = @where + ' AND 质检类型 = ''收检'' '`；`SET @where = @where + ' AND 质检类型 = ''终检'' '`；`SET @where = @where + ' AND 质检类型 = ''来料检验'' '`；`SET @where = @where + ' AND 质检类型 = ''退库检验'' '`；`SET @where = @where + ' AND 计划号 LIKE ''%' + @订单号 + '%'' '`；`SET @where = @where + ' AND 零件编码 LIKE ''%' + @零件编码 + '%'' '`；`SET @where = @where + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'' '`；`SET @where = @where + ' AND 检测时间 > = ''' + CONVERT(nvarchar(30), @开始日期, 120) + ''' '`；`SET @where = @where + ' AND 检测时间 < = ''' + CONVERT(nvarchar(30), @结束日期, 120) + ''' '`；`SET @selStr = @selStr + @where + ' ORDER BY 检测时间 desc'`。 排序/分组/分页线索：`SET @selStr = @selStr + @where + ' ORDER BY 检测时间 desc'`。
- `质量管理_质检明细_查询` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：分页、处理质检数据、处理计划/派工。 读取/关联对象：视图：`View_质检明细`。 入参/分页参数：`@质检类型 nvarchar(4000)`、`@开始日期 datetime`、`@结束日期 datetime`、`@订单号 nvarchar(4000)`、`@合同号 nvarchar(4000)`、`@零件编码 nvarchar(4000)`、`@零件名称 nvarchar(4000)`、`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`。 关键过滤/匹配条件：`DECLARE @where nvarchar(4000)`；`SET @where = ' (1 = 1) '`；`SET @where = @where + ' AND (1 = 1) '`；`SET @where = @where + ' AND 质检类型 = ''收检'' '`；`SET @where = @where + ' AND 质检类型 = ''终检'' '`；`SET @where = @where + ' AND 质检类型 = ''来料检验'' '`；`SET @where = @where + ' AND 质检类型 = ''退库检验'' '`；`SET @where = @where + ' AND 计划号 LIKE ''%' + @订单号 + '%'' '`；`SET @where = @where + ' AND 零件编码 LIKE ''%' + @零件编码 + '%'' '`；`SET @where = @where + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'' '`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @where = ' (1 = 1) '`；`SET @where = @where + ' AND (1 = 1) '`；`SET @where = @where + ' AND 质检类型 = ''收检'' '`；`SET @where = @where + ' AND 质检类型 = ''终检'' '`；`SET @where = @where + ' AND 质检类型 = ''来料检验'' '`；`SET @where = @where + ' AND 质检类型 = ''退库检验'' '`；`SET @where = @where + ' AND 计划号 LIKE ''%' + @订单号 + '%'' '`；`SET @where = @where + ' AND 零件编码 LIKE ''%' + @零件编码 + '%'' '`；`SET @where = @where + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'' '`；`SET @where = @where + ' AND 检测时间 > = ''' + CONVERT(nvarchar(30), @开始日期, 120) + ''' '`；`SET @where = @where + ' AND 检测时间 < = ''' + CONVERT(nvarchar(30), @结束日期, 120) + ''' '`。 实现特征：分页。

## 58. src/views/QualityManagement/QualityStandardQuery/index copy.vue

**页面位置**：`src/views/QualityManagement/QualityStandardQuery/index copy.vue`  
**所属模块**：QualityManagement / QualityStandardQuery  
**源码行数**：816

### 页面功能

该页面维护/查询检验标准。用户按物料、工序、检测项目维护理论值、上下限、量具和启用状态。

页面可见的操作/字段包括 “查询 新增标准 修改 删除 确定 取 消”、“确定 取 消”、“item.label”、“序号”、“零件号”、“工序”、“类型”、“检验项目”、“检验内容”、“上限值”，这些是判断页面业务范围的主要线索。

后端主要围绕 `Prog_MES_LoadProcess`、`查询字典`、`质量管理_检验标准表_新增`、`质量管理_检验标准表_查询`、`质量管理_检验标准表_修改`、`质量管理_检验标准表_删除` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `Prog_MES_LoadProcess` -> `查询字典` -> `质量管理_检验标准表_新增` -> `质量管理_检验标准表_查询` -> `质量管理_检验标准表_修改` -> `质量管理_检验标准表_删除` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询 新增标准 修改 删除 确定 取 消`、`确定 取 消`、`item.label`、`序号`、`零件号`、`工序`、`类型`、`检验项目`、`检验内容`、`上限值`、`下限值`、`单位`、`检验比例`、`检具`、`备注`、`操作`、`请选择零件号`、`请选择工序`

主要方法线索：`getNoList`、`for`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.checkForm.零件号` | `@零件号` | - |
| 参数 | `partNoItem ? partNoItem.value : ""` | `@零件编号` | - |
| 参数 | `this.checkForm.工序` | `@工序` | - |
| 参数 | `processItem ? processItem.value : ""` | `@工序编号` | - |
| 参数 | `this.checkForm.类型` | `@类型` | - |
| 参数 | `typeItem ? typeItem.value : ""` | `@类型编号` | - |
| 参数 | `this.checkForm.检验比例` | `@检验比例` | - |
| 参数 | `this.checkForm.检验项目` | `@检验项目` | - |
| 参数 | `this.checkForm.检验内容` | `@检验内容` | - |
| 参数 | `this.checkForm.上限值` | `@上限值` | - |
| 参数 | `this.checkForm.下限值` | `@下限值` | - |
| 参数 | `this.checkForm.单位` | `@单位` | - |
| 参数 | `this.checkForm.检具` | `@检具` | - |
| 参数 | `this.checkForm.备注` | `@备注` | - |
| 参数 | `this.partNo` | `@零件编号` | - |
| 参数 | `this.process` | `@工序编号` | - |
| 参数 | `this.type` | `@类型编号` | - |
| 参数 | `this.currentEditRow.ID` | `@ID` | - |
| 参数 | `row.ID` | `@ID` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `零件号` | - | `零件号` |
| 显示列 | `工序` | - | `[工艺编号], [工序名称]` |
| 显示列 | `类型` | - | `类型` |
| 显示列 | `检验项目` | - | `检验项目` |
| 显示列 | `检验内容` | - | `检验内容` |
| 显示列 | `上限值` | - | `上限值, ` |
| 显示列 | `下限值` | - | `下限值, ` |
| 显示列 | `单位` | - | `测量单位, ` |
| 显示列 | `检验比例` | - | `检验比例, ` |
| 显示列 | `检具` | - | `检具` |
| 显示列 | `备注` | - | `备注` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `partNo` | `@零件编号` | - |
| 输入字段 | `process` | `@工序编号` | - |
| 输入字段 | `type` | `@类型编号` | - |
| 输入字段 | `checkForm.零件号` | `@零件号` | - |
| 输入字段 | `checkForm.工序` | `@工序` | - |
| 输入字段 | `checkForm.类型` | `@类型` | - |
| 输入字段 | `checkForm.检验比例` | `@检验比例` | - |
| 输入字段 | `checkForm.检验项目` | `@检验项目` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 512 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadProcess` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 524 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 598 | 12（当前通用存储过程写入/业务动作） | `质量管理_检验标准表_新增` | 新增业务数据 | 查询、新增、处理质检数据 | 未在 SQL 中解析到明确依赖 |
| 647 | 11（当前通用存储过程查询/执行） | `质量管理_检验标准表_查询` | 查询/读取数据 | 查询、处理质检数据 | 未在 SQL 中解析到明确依赖 |
| 734 | 12（当前通用存储过程写入/业务动作） | `质量管理_检验标准表_修改` | 更新/保存业务数据 | 查询、更新、处理质检数据 | 未在 SQL 中解析到明确依赖 |
| 773 | 12（当前通用存储过程写入/业务动作） | `质量管理_检验标准表_删除` | 删除业务数据 | 查询、删除、处理质检数据 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/QualityManagement/QualityStandardQuery/index copy.vue` -> `Prog_MES_LoadProcess` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/QualityManagement/QualityStandardQuery/index copy.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/QualityManagement/QualityStandardQuery/index copy.vue` -> `质量管理_检验标准表_新增` -> 未在 SQL 中解析到明确依赖 -> 新增业务数据
- `src/views/QualityManagement/QualityStandardQuery/index copy.vue` -> `质量管理_检验标准表_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/QualityManagement/QualityStandardQuery/index copy.vue` -> `质量管理_检验标准表_修改` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/QualityManagement/QualityStandardQuery/index copy.vue` -> `质量管理_检验标准表_删除` -> 未在 SQL 中解析到明确依赖 -> 删除业务数据

### 存储过程处理逻辑明细

- `Prog_MES_LoadProcess` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 主要返回字段线索：`[工艺编号], [工序名称]`。 排序/分组/分页线索：`SELECT [工艺编号], [工序名称] FROM [基础表_工序] ORDER BY [工艺编号]`。
- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `质量管理_检验标准表_新增` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、处理质检数据。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`YL_质量检验_检测标准`。 入参/分页参数：`@物料编号 NVARCHAR(100)`、`@工序名称编号 INT`、`@检测项目 NVARCHAR(500)`、`@理论值 NVARCHAR(50)`、`@上限值 NVARCHAR(50)`、`@下限值 NVARCHAR(50)`、`@测量单位 NVARCHAR(50)`、`@检验比例 NVARCHAR(50)`、`@检具 NVARCHAR(100)`、`@备注 NVARCHAR(500)`、`@检测类别编号 INT`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO YL_质量检验_检测标准 (`。 实现特征：事务控制、异常捕获。
- `质量管理_检验标准表_查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编号 NVARCHAR(100)`、`@工序名称编号 INT`、`@检测类别编号 INT`。 主要返回字段线索：`AID, `、`物料编号, `、`工序名称编号, `、`检测类别编号, `、`检测项目, `、`理论值, `、`上限值, `、`下限值, `、`测量单位, `、`检验比例, `。 关键过滤/匹配条件：`WHERE (@物料编号 IS NULL OR 物料编号 = @物料编号)`；`AND (@工序名称编号 IS NULL OR 工序名称编号 = @工序名称编号)`；`AND (@检测类别编号 IS NULL OR 检测类别编号 = @检测类别编号)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 物料编号, 工序名称编号, 检测类别编号;`。
- `质量管理_检验标准表_修改` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理质检数据。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`YL_质量检验_检测标准`。 入参/分页参数：`@AID INT,`、`@物料编号 NVARCHAR(100)`、`@工序名称编号 INT`、`@检测项目 NVARCHAR(500)`、`@理论值 NVARCHAR(50)`、`@上限值 NVARCHAR(50)`、`@下限值 NVARCHAR(50)`、`@测量单位 NVARCHAR(50)`、`@检验比例 NVARCHAR(50)`、`@检具 NVARCHAR(100)`、`@备注 NVARCHAR(500)`、`@检测类别编号 INT`。 关键过滤/匹配条件：`WHERE AID = @AID;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE YL_质量检验_检测标准`；`SET`。 实现特征：事务控制、异常捕获。
- `质量管理_检验标准表_删除` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、删除、处理质检数据。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`YL_质量检验_检测标准`。 入参/分页参数：`@AID INT`。 主要返回字段线索：`1`。 关键过滤/匹配条件：`IF NOT EXISTS (SELECT 1 FROM YL_质量检验_检测标准 WHERE AID = @AID)`；`DELETE FROM YL_质量检验_检测标准 WHERE AID = @AID;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`DELETE FROM YL_质量检验_检测标准 WHERE AID = @AID;`。 实现特征：事务控制、异常捕获。

## 59. src/views/QualityManagement/QualityStandardQuery/index.vue

**页面位置**：`src/views/QualityManagement/QualityStandardQuery/index.vue`  
**所属模块**：QualityManagement / QualityStandardQuery  
**源码行数**：786

### 页面功能

该页面维护/查询检验标准。用户按物料、工序、检测项目维护理论值、上下限、量具和启用状态。

页面可见的操作/字段包括 “查询 新增标准 修改 删除 确定 取 消”、“确定 取 消”、“item.label”、“序号”、“物料编号”、“工序名称”、“检测类别”、“检测项目”、“上限值”、“下限值”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_ProcessManagement_PartGet`、`Prog_MES_LoadProcess`、`查询字典`、`质量管理_检验标准表_新增`、`质量管理_检验标准表_查询`、`质量管理_检验标准表_修改` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_ProcessManagement_PartGet` -> `Prog_MES_LoadProcess` -> `查询字典` -> `质量管理_检验标准表_新增` -> `质量管理_检验标准表_查询` -> `质量管理_检验标准表_修改` -> `质量管理_检验标准表_删除` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询 新增标准 修改 删除 确定 取 消`、`确定 取 消`、`item.label`、`序号`、`物料编号`、`工序名称`、`检测类别`、`检测项目`、`上限值`、`下限值`、`测量单位`、`检验比例`、`检具`、`备注`、`操作`、`理论值`、`检测类别编号`、`请选择物料编号`

主要方法线索：`getNoList`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.checkForm.物料编号` | `@物料编号` | - |
| 参数 | `this.checkForm.工序名称编号` | `@工序名称编号` | - |
| 参数 | `this.checkForm.检测类别编号` | `@检测类别编号` | - |
| 参数 | `this.checkForm.检测项目` | `@检测项目` | - |
| 参数 | `this.checkForm.理论值` | `@理论值` | - |
| 参数 | `this.checkForm.上限值` | `@上限值` | - |
| 参数 | `this.checkForm.下限值` | `@下限值` | - |
| 参数 | `this.checkForm.测量单位` | `@测量单位` | - |
| 参数 | `this.checkForm.检验比例` | `@检验比例` | - |
| 参数 | `this.checkForm.检具` | `@检具` | - |
| 参数 | `this.checkForm.备注` | `@备注` | - |
| 参数 | `this.物料编号` | `@物料编号` | - |
| 参数 | `this.工序名称编号` | `@工序名称编号` | - |
| 参数 | `this.检测类别编号` | `@检测类别编号` | - |
| 参数 | `this.checkForm.AID` | `@AID` | - |
| 参数 | `row.AID` | `@AID` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `物料编号` | - | `物料编号, ` |
| 显示列 | `工序名称` | - | `[工艺编号], [工序名称]` |
| 显示列 | `检测类别` | - | `检测类别编号, ` |
| 显示列 | `检测项目` | - | `检测项目, ` |
| 显示列 | `上限值` | - | `上限值, ` |
| 显示列 | `下限值` | - | `下限值, ` |
| 显示列 | `测量单位` | - | `测量单位, ` |
| 显示列 | `检验比例` | - | `检验比例, ` |
| 显示列 | `检具` | - | `检具` |
| 显示列 | `备注` | - | `备注` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `物料编号` | `@物料编号` | - |
| 输入字段 | `工序名称编号` | `@工序名称编号` | - |
| 输入字段 | `检测类别编号` | `@检测类别编号` | - |
| 输入字段 | `checkForm.物料编号` | `@物料编号` | - |
| 输入字段 | `checkForm.工序名称编号` | `@工序名称编号` | - |
| 输入字段 | `checkForm.检测类别编号` | `@检测类别编号` | - |
| 输入字段 | `checkForm.检具` | `@检具` | - |
| 输入字段 | `checkForm.检测项目` | `@检测项目` | - |
| 输入字段 | `checkForm.理论值` | `@理论值` | - |
| 输入字段 | `checkForm.上限值` | `@上限值` | - |
| 输入字段 | `checkForm.下限值` | `@下限值` | - |
| 输入字段 | `checkForm.测量单位` | `@测量单位` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 522 | 11（当前通用存储过程查询/执行） | `MES_ProcessManagement_PartGet` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` |
| 544 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadProcess` | 查询/读取数据 | 查询 | 表：`基础表_工序` |
| 556 | 11（当前通用存储过程查询/执行） | `查询字典` | 查询/读取数据 | 查询 | 表：`YL_基础表_数据字典` |
| 611 | 12（当前通用存储过程写入/业务动作） | `质量管理_检验标准表_新增` | 新增业务数据 | 查询、新增、处理质检数据 | 未在 SQL 中解析到明确依赖 |
| 651 | 11（当前通用存储过程查询/执行） | `质量管理_检验标准表_查询` | 查询/读取数据 | 查询、处理质检数据 | 未在 SQL 中解析到明确依赖 |
| 703 | 12（当前通用存储过程写入/业务动作） | `质量管理_检验标准表_修改` | 更新/保存业务数据 | 查询、更新、处理质检数据 | 未在 SQL 中解析到明确依赖 |
| 742 | 12（当前通用存储过程写入/业务动作） | `质量管理_检验标准表_删除` | 删除业务数据 | 查询、删除、处理质检数据 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- MES_ProcessManagement_PartGet: SAP.SBO_YL.dbo.UBT_OITM

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `MES_ProcessManagement_PartGet`：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`

### 数据库调用链

- `src/views/QualityManagement/QualityStandardQuery/index.vue` -> `MES_ProcessManagement_PartGet` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM` -> 查询/读取数据
- `src/views/QualityManagement/QualityStandardQuery/index.vue` -> `Prog_MES_LoadProcess` -> 表：`基础表_工序` -> 查询/读取数据
- `src/views/QualityManagement/QualityStandardQuery/index.vue` -> `查询字典` -> 表：`YL_基础表_数据字典` -> 查询/读取数据
- `src/views/QualityManagement/QualityStandardQuery/index.vue` -> `质量管理_检验标准表_新增` -> 未在 SQL 中解析到明确依赖 -> 新增业务数据
- `src/views/QualityManagement/QualityStandardQuery/index.vue` -> `质量管理_检验标准表_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/QualityManagement/QualityStandardQuery/index.vue` -> `质量管理_检验标准表_修改` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/QualityManagement/QualityStandardQuery/index.vue` -> `质量管理_检验标准表_删除` -> 未在 SQL 中解析到明确依赖 -> 删除业务数据

### 存储过程处理逻辑明细

- `MES_ProcessManagement_PartGet` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OITM`。 入参/分页参数：`@过滤 NVARCHAR(200)`。 主要返回字段线索：`top 100 *`。 关键过滤/匹配条件：`SELECT top 100 * FROM SAP.SBO_YL.dbo.UBT_OITM where 物料编码 like '' +'%'+@过滤+'%' +''`。 实现特征：读取 SAP 数据库对象。
- `Prog_MES_LoadProcess` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`基础表_工序`。 主要返回字段线索：`[工艺编号], [工序名称]`。 排序/分组/分页线索：`SELECT [工艺编号], [工序名称] FROM [基础表_工序] ORDER BY [工艺编号]`。
- `查询字典` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：表：`YL_基础表_数据字典`。 主要返回字段线索：`*`。
- `质量管理_检验标准表_新增` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增、处理质检数据。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`YL_质量检验_检测标准`。 入参/分页参数：`@物料编号 NVARCHAR(100)`、`@工序名称编号 INT`、`@检测项目 NVARCHAR(500)`、`@理论值 NVARCHAR(50)`、`@上限值 NVARCHAR(50)`、`@下限值 NVARCHAR(50)`、`@测量单位 NVARCHAR(50)`、`@检验比例 NVARCHAR(50)`、`@检具 NVARCHAR(100)`、`@备注 NVARCHAR(500)`、`@检测类别编号 INT`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`INSERT INTO YL_质量检验_检测标准 (`。 实现特征：事务控制、异常捕获。
- `质量管理_检验标准表_查询` 属于 工艺与图纸，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@物料编号 NVARCHAR(100)`、`@工序名称编号 INT`、`@检测类别编号 INT`。 主要返回字段线索：`AID, `、`物料编号, `、`工序名称编号, `、`检测类别编号, `、`检测项目, `、`理论值, `、`上限值, `、`下限值, `、`测量单位, `、`检验比例, `。 关键过滤/匹配条件：`WHERE (@物料编号 IS NULL OR 物料编号 = @物料编号)`；`AND (@工序名称编号 IS NULL OR 工序名称编号 = @工序名称编号)`；`AND (@检测类别编号 IS NULL OR 检测类别编号 = @检测类别编号)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY 物料编号, 工序名称编号, 检测类别编号;`。
- `质量管理_检验标准表_修改` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新、处理质检数据。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`YL_质量检验_检测标准`。 入参/分页参数：`@AID INT,`、`@物料编号 NVARCHAR(100)`、`@工序名称编号 INT`、`@检测项目 NVARCHAR(500)`、`@理论值 NVARCHAR(50)`、`@上限值 NVARCHAR(50)`、`@下限值 NVARCHAR(50)`、`@测量单位 NVARCHAR(50)`、`@检验比例 NVARCHAR(50)`、`@检具 NVARCHAR(100)`、`@备注 NVARCHAR(500)`、`@检测类别编号 INT`。 关键过滤/匹配条件：`WHERE AID = @AID;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`UPDATE YL_质量检验_检测标准`；`SET`。 实现特征：事务控制、异常捕获。
- `质量管理_检验标准表_删除` 属于 工艺与图纸，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、删除、处理质检数据。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`YL_质量检验_检测标准`。 入参/分页参数：`@AID INT`。 主要返回字段线索：`1`。 关键过滤/匹配条件：`IF NOT EXISTS (SELECT 1 FROM YL_质量检验_检测标准 WHERE AID = @AID)`；`DELETE FROM YL_质量检验_检测标准 WHERE AID = @AID;`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`DELETE FROM YL_质量检验_检测标准 WHERE AID = @AID;`。 实现特征：事务控制、异常捕获。

## 60. src/views/QualityManagement/Unqualified/index.vue

**页面位置**：`src/views/QualityManagement/Unqualified/index.vue`  
**所属模块**：QualityManagement / Unqualified  
**源码行数**：577

### 页面功能

该页面处理不合格品。用户查询不合格记录，查看处置流程和节点，推进让步放行、返工、报废等处理。

页面可见的操作/字段包括 “查询”、“Excel导出”、“打印”、“item.label”、“全部”、“收检”、“终检”、“来料检验”、“退库检验”、“序号”，这些是判断页面业务范围的主要线索。

后端主要围绕 `人员管理_人员信息查询_质检部门_查询`、`质量管理_不合格品处置_查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `人员管理_人员信息查询_质检部门_查询` -> `质量管理_不合格品处置_查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`Excel导出`、`打印`、`item.label`、`全部`、`收检`、`终检`、`来料检验`、`退库检验`、`序号`、`质检类型`、`零件编码`、`零件名称`、`内部合同号`、`计划号`、`工序名称`、`工位名称`、`供应商代码`

主要方法线索：`getCheckerList`、`for`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.QualityStatus` | `@质检类型` | - |
| 参数 | `this.startDate` | `@开始日期` | - |
| 参数 | `this.endDate` | `@结束日期` | - |
| 参数 | `this.orderNo` | `@订单号` | - |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.productCode` | `@零件编码` | - |
| 参数 | `this.productName` | `@零件名称` | - |
| 参数 | `selectedChecker ? selectedChecker.label : 0` | `@检测人` | - |
| 参数 | `this.pageCurrent` | `@PageCurrent` | - |
| 参数 | `this.pageSize` | `@pageSize` | - |
| 参数 | `'1111', 'int', '1'` | `@PageCount` | - |
| 参数 | `'1111', 'int', '1'` | `@ItemCount` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `质检类型` | - | `质检类型` |
| 显示列 | `零件编码` | - | `零件编码` |
| 显示列 | `零件名称` | - | `零件名称` |
| 显示列 | `内部合同号` | - | `内部合同号` |
| 显示列 | `计划号` | - | `计划号` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `工位名称` | - | `工位名称` |
| 显示列 | `供应商代码` | - | `供应商代码` |
| 显示列 | `检验数量` | - | `检验数量` |
| 显示列 | `合格数` | - | `合格数` |
| 显示列 | `不合格数` | - | `不合格数` |
| 显示列 | `检测人` | - | `检测人` |
| 显示列 | `检测时间` | - | `检测时间` |
| 显示列 | `检测说明` | - | `检测说明` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `orderNo` | `@订单号` | - |
| 输入字段 | `contractNo` | `@合同号` | - |
| 输入字段 | `productCode` | `@零件编码` | - |
| 输入字段 | `productName` | `@零件名称` | - |
| 输入字段 | `checker` | - | - |
| 输入字段 | `QualityStatus` | `@质检类型` | - |
| 输入字段 | `startDate` | `@开始日期` | - |
| 输入字段 | `endDate` | `@结束日期` | - |
| 输入字段 | `activeTab` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- Excel/报表导出

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 316 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_质检部门_查询` | 查询/读取数据 | 查询、处理质检数据 | 视图：`登录基础数据_管理人员权限视图` |
| 376 | 11（当前通用存储过程查询/执行） | `质量管理_不合格品处置_查询` | 查询/读取数据 | 分页、处理质检数据、处理计划/派工 | 视图：`View_质检明细` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `人员管理_人员信息查询_质检部门_查询`：`create PROCEDURE [dbo].[人员管理_人员信息查询_质检部门_查询]`
- `质量管理_不合格品处置_查询`：`@质检类型 nvarchar(4000) = '10', `；`DECLARE @tbname sysname = ' [dbo].[View_质检明细] '`；`IF @质检类型 = '0'`；`SET @where = @where + ' AND 质检类型 = ''收检'' '`；`ELSE IF @质检类型 = '1'`；`SET @where = @where + ' AND 质检类型 = ''终检'' '`；`ELSE IF @质检类型 = '2'`；`SET @where = @where + ' AND 质检类型 = ''来料检验'' '`

### 数据库调用链

- `src/views/QualityManagement/Unqualified/index.vue` -> `人员管理_人员信息查询_质检部门_查询` -> 视图：`登录基础数据_管理人员权限视图` -> 查询/读取数据
- `src/views/QualityManagement/Unqualified/index.vue` -> `质量管理_不合格品处置_查询` -> 视图：`View_质检明细` -> 查询/读取数据

### 存储过程处理逻辑明细

- `人员管理_人员信息查询_质检部门_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理质检数据。 读取/关联对象：视图：`登录基础数据_管理人员权限视图`。 主要返回字段线索：`*`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。
- `质量管理_不合格品处置_查询` 属于 质量检验，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：分页、处理质检数据、处理计划/派工。 读取/关联对象：视图：`View_质检明细`。 入参/分页参数：`@质检类型 nvarchar(4000)`、`@开始日期 datetime`、`@结束日期 datetime`、`@订单号 nvarchar(4000)`、`@合同号 nvarchar(4000)`、`@零件编码 nvarchar(4000)`、`@零件名称 nvarchar(4000)`、`@检测人 nvarchar(4000)`、`@PageCurrent int`、`@PageSize int`、`@PageCount int`、`@ItemCount int`。 关键过滤/匹配条件：`DECLARE @where nvarchar(4000)`；`SET @where = ' (1 = 1) '`；`SET @where = @where + ' AND 质检类型 = ''收检'' '`；`SET @where = @where + ' AND 质检类型 = ''终检'' '`；`SET @where = @where + ' AND 质检类型 = ''来料检验'' '`；`SET @where = @where + ' AND 质检类型 = ''退库检验'' '`；`SET @where = @where + ' AND 计划号 LIKE ''%' + @订单号 + '%'' '`；`SET @where = @where + ' AND 零件编码 LIKE ''%' + @零件编码 + '%'' '`；`SET @where = @where + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'' '`；`SET @where = @where + ' AND 检测人 LIKE ''%' + @检测人 + '%'' '`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`SET @where = ' (1 = 1) '`；`SET @where = @where + ' AND 质检类型 = ''收检'' '`；`SET @where = @where + ' AND 质检类型 = ''终检'' '`；`SET @where = @where + ' AND 质检类型 = ''来料检验'' '`；`SET @where = @where + ' AND 质检类型 = ''退库检验'' '`；`SET @where = @where + ' AND 计划号 LIKE ''%' + @订单号 + '%'' '`；`SET @where = @where + ' AND 零件编码 LIKE ''%' + @零件编码 + '%'' '`；`SET @where = @where + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'' '`；`SET @where = @where + ' AND 检测人 LIKE ''%' + @检测人 + '%'' '`；`SET @where = @where + ' AND 检测时间 > = ''' + CONVERT(nvarchar(30), @开始日期, 120) + ''' '`；`SET @where = @where + ' AND 检测时间 < = ''' + CONVERT(nvarchar(30), @结束日期, 120) + ''' '`。 实现特征：分页。

## 61. src/views/SaleManagement/saleorderstatus/index.vue

**页面位置**：`src/views/SaleManagement/saleorderstatus/index.vue`  
**所属模块**：SaleManagement / saleorderstatus  
**源码行数**：804

### 页面功能

该页面查询销售订单状态。用户按销售订单、合同、物料等条件查看销售订单在 SAP/MES 中的履约、生产、发货或关闭状态。

页面可见的操作/字段包括 “查询”、“缺料”、“关闭”、“全部”、“已下达发货通知”、“未下达发货通知”、“机加”、“装配”、“是”、“否”，这些是判断页面业务范围的主要线索。

后端主要围绕 `生产管理_装配中心_缺料查询`、`销售管理_销售订单状态`、`MES_OrderPlanned_DescriptionEdit`、`Prog_MES_LoadStations` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `生产管理_装配中心_缺料查询` -> `销售管理_销售订单状态` -> `MES_OrderPlanned_DescriptionEdit` -> `Prog_MES_LoadStations` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`缺料`、`关闭`、`全部`、`已下达发货通知`、`未下达发货通知`、`机加`、`装配`、`是`、`否`、`加急`、`正常`、`未完成`、`已完成`、`序号`、`工序名称`、`计划数量`、`指派对象`

主要方法线索：`miss`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `row.产品编码` | `@ItemCode` | - |
| 参数 | `row.订单号` | `@订单号` | - |
| 参数 | `this.orderNo ` | `@订单号` | - |
| 参数 | `'自制件'` | `@物料类型` | - |
| 参数 | `this.contractNo` | `@合同号` | - |
| 参数 | `this.productCode` | `@产品编码` | - |
| 参数 | `this.productName` | `@产品名称` | - |
| 参数 | `this.processName` | `@工序名称` | - |
| 参数 | `this.planStartTime[0` | `@计划开始1` | - |
| 参数 | `this.planStartTime[1` | `@计划开始2` | - |
| 参数 | `this.planendTime[0` | `@计划完成1` | - |
| 参数 | `this.planendTime[1` | `@计划完成2` | - |
| 参数 | `this.completionTime ? this.completionTime[0` | `@要求完工日期1` | - |
| 参数 | `this.completionTime ? this.completionTime[1` | `@要求完工日期2` | - |
| 参数 | `this.productionStatus` | `@排产状态` | - |
| 参数 | `'全部'` | `@指派对象` | - |
| 参数 | `this.plannum` | `@计划号` | `v.计划号, ` |
| 参数 | `this.ShipmentStatus` | `@发货状态` | `isnull(发货状态, 0) as [发货状态], ` |
| 参数 | `this.stockStatus` | `@入库状态` | - |
| 参数 | `this.outsourceStatus === '是' ? 1 : 0` | `@是否外协` | - |
| 参数 | `this.currentRow.订单号` | `@订单号` | - |
| 参数 | `this.currentRow.订单行号` | `@订单行号` | - |
| 参数 | `this.currentRow.拆分内码` | `@订单拆分内码` | - |
| 参数 | `this.editForm.优先级` | `@优先级` | - |
| 参数 | `this.editForm.未完成说明` | `@未完成说明` | - |
| 参数 | `this.editForm.派工特殊说明` | `@派工特殊说明` | - |
| 参数 | `this.$store.state.user.name` | `@最后编辑人` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `计划数量` | - | `计划数量` |
| 显示列 | `指派对象` | - | `指派对象` |
| 显示列 | `开始时间` | - | `计划开始时间` |
| 显示列 | `结束时间` | - | `计划完成时间` |
| 显示列 | `完成进度` | - | `进度` |
| 显示列 | `完成数量` | - | `完成数量` |
| 显示列 | `合格数` | - | `收检合格数` |
| 显示列 | `不良数` | - | `收检不合格数` |
| 显示列 | `任务状态` | - | `任务状态` |
| 显示列 | `加工状态` | - | `加工状态` |
| 显示列 | `操作` | - | `操作` |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 315 | 11（当前通用存储过程查询/执行） | `生产管理_装配中心_缺料查询` | 查询/读取数据 | 查询、读取 SAP B1 数据库对象 | SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty` |
| 584 | 11（当前通用存储过程查询/执行） | `销售管理_销售订单状态` | 业务存储过程调用 | 查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务 | 视图：`View_生产订单_MES` |
| 618 | 12（当前通用存储过程写入/业务动作） | `MES_OrderPlanned_DescriptionEdit` | 更新/保存业务数据 | 更新、处理计划/派工 | 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` |
| 677 | 11（当前通用存储过程查询/执行） | `Prog_MES_LoadStations` | 查询/读取数据 | 查询、处理外协业务 | 表：`MES_资源主数据` |

### 与 SAP 的交互

存储过程内读取 SAP B1 数据库对象：
- 生产管理_装配中心_缺料查询: SAP.SBO_YL.dbo.UBT_OPKL_MissQty

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `生产管理_装配中心_缺料查询`：`select * from SAP.SBO_YL.dbo.UBT_OPKL_MissQty where DocEntry = @订单号`
- `销售管理_销售订单状态`：`CREATE PROCEDURE [dbo].[销售管理_销售订单状态]`；`@计划完成1 nvarchar(50) = '', `；`@计划完成2 nvarchar(50) = '', `；`@排产状态 nvarchar(50) = '全部', `；`@发货状态 nvarchar(50) = '全部', `；`@入库状态 nvarchar(50) = '全部'`；`拣配状态, `；`isnull(发货状态, 0) as [发货状态], `
- `MES_OrderPlanned_DescriptionEdit`：`@未完成说明 nvarchar(50) = '', `；`@派工特殊说明 nvarchar(500) = '', `；`Update [MES_接口_生产计划_生产任务] set`；`未完成说明 = @未完成说明, `；`派工特殊说明 = @派工特殊说明, `

### 数据库调用链

- `src/views/SaleManagement/saleorderstatus/index.vue` -> `生产管理_装配中心_缺料查询` -> SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty` -> 查询/读取数据
- `src/views/SaleManagement/saleorderstatus/index.vue` -> `销售管理_销售订单状态` -> 视图：`View_生产订单_MES` -> 业务存储过程调用
- `src/views/SaleManagement/saleorderstatus/index.vue` -> `MES_OrderPlanned_DescriptionEdit` -> 表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务` -> 更新/保存业务数据
- `src/views/SaleManagement/saleorderstatus/index.vue` -> `Prog_MES_LoadStations` -> 表：`MES_资源主数据` -> 查询/读取数据

### 存储过程处理逻辑明细

- `生产管理_装配中心_缺料查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、读取 SAP B1 数据库对象。 读取/关联对象：SAP/链接库：`SAP.SBO_YL.dbo.UBT_OPKL_MissQty`。 入参/分页参数：`@ItemCode nvarchar(500),`、`@订单号 int`。 主要返回字段线索：`*`。 关键过滤/匹配条件：`select * from SAP.SBO_YL.dbo.UBT_OPKL_MissQty where DocEntry = @订单号`。 实现特征：读取 SAP 数据库对象。
- `销售管理_销售订单状态` 属于 销售/订单状态，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 业务存储过程调用。 数据库处理摘要：查询、处理报工/工时、处理质检数据、处理计划/派工、处理外协业务。 读取/关联对象：视图：`View_生产订单_MES`。 入参/分页参数：`@订单号 int`、`@物料类型 nvarchar(50)`、`@合同号 nvarchar(50)`、`@产品编码 nvarchar(50)`、`@产品名称 nvarchar(50)`、`@工序名称 nvarchar(50)`、`@要求完工日期1 nvarchar(50)`、`@要求完工日期2 nvarchar(50)`、`@计划开始1 nvarchar(50)`、`@计划开始2 nvarchar(50)`、`@计划完成1 nvarchar(50)`、`@计划完成2 nvarchar(50)`、`@排产状态 nvarchar(50)`、`@指派对象 nvarchar(50)`、`@计划号 nvarchar(50)`、`@发货状态 nvarchar(50)`、`@入库状态 nvarchar(50)`。 主要返回字段线索：`top 200`、`v.计划号, `、`拣配状态, `、`入库数量, `、`要求发货日期, `、`isnull(发货状态, 0) as [发货状态], `、`case`、`when isnull(发料状态, 0) = 1 then ''发料齐套''`、`when isnull(发料状态, 0) = 2 then ''发料缺件''`、`when isnull(发料状态, 0) = 0 then ''未发料''`。 关键过滤/匹配条件：`DECLARE @selectStrWhere NVARCHAR(4000) = ' WHERE [物料类型] = ''pit_Resource'' and 自制件属性 LIKE ''%装配%'' '`；`WHERE 质检类型 = ''终检''`；`WHERE 质检类型 = ''收检''`；`SET @selectStrWhere = @selectStrWhere + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @selectStrWhere = @selectStrWhere + ' AND v.[计划号] = '''+@计划号+''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [合同号] LIKE ''%' + @合同号 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @产品编码 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料描述] LIKE ''%' + @产品名称 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [工序名称] = ''' + @工序名称 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] > = ''' + @要求完工日期1 + ''''`。 关键写入/状态处理语句线索：`SET @selectStr = N'`；`SET @selectStrWhere = @selectStrWhere + ' AND [订单编号] = ' + CONVERT(VARCHAR(10), @订单号)`；`SET @selectStrWhere = @selectStrWhere + ' AND v.[计划号] = '''+@计划号+''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [合同号] LIKE ''%' + @合同号 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料编号] LIKE ''%' + @产品编码 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [物料描述] LIKE ''%' + @产品名称 + '%'''`；`SET @selectStrWhere = @selectStrWhere + ' AND [工序名称] = ''' + @工序名称 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] > = ''' + @要求完工日期1 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划完成] < = ''' + @要求完工日期2 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] > = ''' + @计划开始1 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划开始时间] < = ''' + @计划开始2 + ''''`；`SET @selectStrWhere = @selectStrWhere + ' AND [计划完成时间] > = ''' + @计划完成1 + ''''`。 排序/分组/分页线索：`GROUP BY TaskAID`；`SET @selectStrWhere = @selectStrWhere + ' ORDER BY [合同号] DESC, [订单编号] DESC '`。
- `MES_OrderPlanned_DescriptionEdit` 属于 计划排产，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、处理计划/派工。 读取/关联对象：表：`MES_接口_生产计划`、`MES_接口_生产计划_生产任务`。 写入或更新对象：`MES_接口_生产计划_生产任务`。 入参/分页参数：`@订单号 int,`、`@订单行号 int,`、`@订单拆分内码 int,`、`@优先级 nvarchar(50)`、`@未完成说明 nvarchar(50)`、`@派工特殊说明 nvarchar(500)`、`@最后编辑人 nvarchar(500)`。 关键过滤/匹配条件：`WHERE 订单编号 = @订单号 and 订单行号 = @订单行号 and 订单拆分内码 = @订单拆分内码`。 关键写入/状态处理语句线索：`Update [MES_接口_生产计划_生产任务] set`。
- `Prog_MES_LoadStations` 属于 通用业务，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理外协业务。 读取/关联对象：表：`MES_资源主数据`。 主要返回字段线索：`[VisCode], [Name] as OPName`。 关键过滤/匹配条件：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。 排序/分组/分页线索：`SELECT [VisCode], [Name] as OPName FROM [MES_资源主数据] where type = 'rtMachine' AND Active = 'tYES' AND IssueMethod = 'rimManual' or Name = '外协' order by VisCode`。

## 62. src/views/SystemMaintenance/MenuManagement/index.vue

**页面位置**：`src/views/SystemMaintenance/MenuManagement/index.vue`  
**所属模块**：SystemMaintenance / MenuManagement  
**源码行数**：480

### 页面功能

该页面维护菜单和权限。管理员查询、增加、修改、删除菜单/角色权限配置，用于动态路由和按钮权限。

页面可见的操作/字段包括 “取消”、“确定”、“item.label”、“模块名称”、“模块路径”、“请选择”、“输入关键字进行过滤”、“新增一级模块”，这些是判断页面业务范围的主要线索。

后端主要围绕 `菜单系统模块_项目角色_查询数据_MESWORK` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `菜单系统模块_项目角色_查询数据_MESWORK` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`取消`、`确定`、`item.label`、`模块名称`、`模块路径`、`请选择`、`输入关键字进行过滤`、`新增一级模块`

主要方法线索：`returnModule`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `模块名称` | - | `模块名称` |
| 显示列 | `模块路径` | - | `模块路径` |
| 输入字段 | `roleName` | - | - |
| 输入字段 | `filterTextLeft` | - | - |
| 输入字段 | `filterText` | - | - |
| 输入字段 | `data.AuthButtonsAll` | - | - |
| 输入字段 | `data.SearchData` | - | - |
| 输入字段 | `data.AddData` | - | - |
| 输入字段 | `data.EditData` | - | - |
| 输入字段 | `data.DeleteData` | - | - |
| 输入字段 | `filterTextRight` | - | - |
| 输入字段 | `form1.moduleName` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 434 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_查询数据_MESWORK` | 查询/读取数据 | 分页 | 未在 SQL 中解析到明确依赖 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/SystemMaintenance/MenuManagement/index.vue` -> `菜单系统模块_项目角色_查询数据_MESWORK` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据

### 存储过程处理逻辑明细

- `菜单系统模块_项目角色_查询数据_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：分页。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@角色功能 nvarchar(50)`、`@PageCurrent int,`、`@PageSize int,`、`@PageCount int`、`@ItemCount int`。 关键过滤/匹配条件：`declare @where nvarchar(1000)`；`set @where = ' 1 = 1 AND Roles_number ! = 1 '`；`set @where = @where + ' AND [Roles_Function] like ' +'''' + '%' + @角色功能 + '%'+''''`；`PRINT @where`；`exec dbo.sp_xt_pagesplit @tbname, @fieldkey, @where, @fieldshow, @fieldOrder, @PageCurrent, @PageSize, @PageCount out, @ItemCount out`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`set @where = ' 1 = 1 AND Roles_number ! = 1 '`；`set @tbname = '登录基础数据_角色信息'`；`set @fieldkey = ' Roles_number '`；`set @fieldOrder = ' Roles_number '`；`set @fieldshow = ''`；`set @where = @where + ' AND [Roles_Function] like ' +'''' + '%' + @角色功能 + '%'+''''`。 实现特征：分页。

## 63. src/views/SystemMaintenance/OperationLog/index.vue

**页面位置**：`src/views/SystemMaintenance/OperationLog/index.vue`  
**所属模块**：SystemMaintenance / OperationLog  
**源码行数**：183

### 页面功能

该页面查询操作日志或报工操作记录，用于审计用户操作和追踪异常。

页面可见的操作/字段包括 “查询”、“订单编号”、“操作人”、“序号”、“操作类别”、“工序名称”、“工位名称”、“合同号”、“物料编号”、“物料描述”，这些是判断页面业务范围的主要线索。

后端主要围绕 `系统管理_报工操作记录_查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `系统管理_报工操作记录_查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`订单编号`、`操作人`、`序号`、`操作类别`、`工序名称`、`工位名称`、`合同号`、`物料编号`、`物料描述`、`操作数值`、`开始时间`、`结束时间`、`人员工时`、`设备工时`、`最后编辑人`、`最后编辑时间`、`操作描述`

主要方法线索：`searchData`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.queryParams.订单编号` | `@订单编号` | - |
| 参数 | `this.queryParams.操作人` | `@操作人` | - |
| 显示列 | `序号` | - | `序号` |
| 显示列 | `订单编号` | - | `订单编号` |
| 显示列 | `操作类别` | - | `操作类别` |
| 显示列 | `工序名称` | - | `工序名称` |
| 显示列 | `工位名称` | - | `工位名称` |
| 显示列 | `操作人` | - | `操作人` |
| 显示列 | `合同号` | - | `合同号` |
| 显示列 | `物料编号` | - | `物料编号` |
| 显示列 | `物料描述` | - | `物料描述` |
| 显示列 | `操作数值` | - | `操作数值` |
| 显示列 | `开始时间` | - | `开始时间` |
| 显示列 | `结束时间` | - | `结束时间` |
| 显示列 | `人员工时` | - | `总时长` |
| 显示列 | `设备工时` | - | `实际工时` |
| 显示列 | `最后编辑人` | - | `最后编辑人` |
| 显示列 | `最后编辑时间` | - | `最后编辑时间` |
| 显示列 | `操作描述` | - | `操作描述` |
| 输入字段 | `queryParams.订单编号` | `@订单编号` | - |
| 输入字段 | `queryParams.操作人` | `@操作人` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 115 | 11（当前通用存储过程查询/执行） | `系统管理_报工操作记录_查询` | 查询/读取数据 | 查询、处理报工/工时 | 表：`YL_加工中心_操作记录表` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

- `系统管理_报工操作记录_查询`：`FROM [dbo].[YL_加工中心_操作记录表]`

### 数据库调用链

- `src/views/SystemMaintenance/OperationLog/index.vue` -> `系统管理_报工操作记录_查询` -> 表：`YL_加工中心_操作记录表` -> 查询/读取数据

### 存储过程处理逻辑明细

- `系统管理_报工操作记录_查询` 属于 生产执行/工时，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询、处理报工/工时。 读取/关联对象：表：`YL_加工中心_操作记录表`。 入参/分页参数：`@订单编号 NVARCHAR(100)`、`@操作人 NVARCHAR(100)`。 主要返回字段线索：`top 100`、`*`。 关键过滤/匹配条件：`WHERE 1 = 1`；`AND (@订单编号 IS NULL OR 订单编号 = @订单编号)`；`AND (@操作人 IS NULL OR 操作人 = @操作人)`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`。 排序/分组/分页线索：`ORDER BY AID DESC`。

## 64. src/views/SystemMaintenance/OrgManagement/index.vue

**页面位置**：`src/views/SystemMaintenance/OrgManagement/index.vue`  
**所属模块**：SystemMaintenance / OrgManagement  
**源码行数**：240

### 页面功能

该页面维护组织/角色类基础数据，支持新增、修改、删除和查询。

页面可见的操作/字段包括 “查询”、“新增”、“编辑”、“删除”、“确 定”、“取消”、“部门名称”、“请输入部门名称”、“新增部门”、“编辑部门”，这些是判断页面业务范围的主要线索。

后端主要围绕 `菜单系统模块_项目角色_查询数据_MESWORK`、`菜单系统模块_项目角色_修改数据_MESWORK`、`菜单系统模块_项目角色_增加_MESWORK`、`菜单系统模块_项目角色_删除_MESWORK` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `菜单系统模块_项目角色_查询数据_MESWORK` -> `菜单系统模块_项目角色_修改数据_MESWORK` -> `菜单系统模块_项目角色_增加_MESWORK` -> `菜单系统模块_项目角色_删除_MESWORK` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`新增`、`编辑`、`删除`、`确 定`、`取消`、`部门名称`、`请输入部门名称`、`新增部门`、`编辑部门`

主要方法线索：`searchData`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `部门名称` | - | `部门名称` |
| 显示列 | `编辑` | - | `编辑` |
| 输入字段 | `RoleFunctioning` | - | - |
| 输入字段 | `form.角色功能` | - | - |
| 输入字段 | `form2.角色功能` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 120 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_查询数据_MESWORK` | 查询/读取数据 | 分页 | 未在 SQL 中解析到明确依赖 |
| 145 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_修改数据_MESWORK` | 更新/保存业务数据 | 查询、更新 | 表：`登录基础数据_角色信息` |
| 175 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_增加_MESWORK` | 新增业务数据 | 查询、新增 | 表：`登录基础数据_角色信息` |
| 202 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_删除_MESWORK` | 删除业务数据 | 查询、删除 | 表：`登录基础数据_角色信息`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/SystemMaintenance/OrgManagement/index.vue` -> `菜单系统模块_项目角色_查询数据_MESWORK` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/SystemMaintenance/OrgManagement/index.vue` -> `菜单系统模块_项目角色_修改数据_MESWORK` -> 表：`登录基础数据_角色信息` -> 更新/保存业务数据
- `src/views/SystemMaintenance/OrgManagement/index.vue` -> `菜单系统模块_项目角色_增加_MESWORK` -> 表：`登录基础数据_角色信息` -> 新增业务数据
- `src/views/SystemMaintenance/OrgManagement/index.vue` -> `菜单系统模块_项目角色_删除_MESWORK` -> 表：`登录基础数据_角色信息`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单` -> 删除业务数据

### 存储过程处理逻辑明细

- `菜单系统模块_项目角色_查询数据_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：分页。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@角色功能 nvarchar(50)`、`@PageCurrent int,`、`@PageSize int,`、`@PageCount int`、`@ItemCount int`。 关键过滤/匹配条件：`declare @where nvarchar(1000)`；`set @where = ' 1 = 1 AND Roles_number ! = 1 '`；`set @where = @where + ' AND [Roles_Function] like ' +'''' + '%' + @角色功能 + '%'+''''`；`PRINT @where`；`exec dbo.sp_xt_pagesplit @tbname, @fieldkey, @where, @fieldshow, @fieldOrder, @PageCurrent, @PageSize, @PageCount out, @ItemCount out`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`set @where = ' 1 = 1 AND Roles_number ! = 1 '`；`set @tbname = '登录基础数据_角色信息'`；`set @fieldkey = ' Roles_number '`；`set @fieldOrder = ' Roles_number '`；`set @fieldshow = ''`；`set @where = @where + ' AND [Roles_Function] like ' +'''' + '%' + @角色功能 + '%'+''''`。 实现特征：分页。
- `菜单系统模块_项目角色_修改数据_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新。 读取/关联对象：表：`登录基础数据_角色信息`。 写入或更新对象：`登录基础数据_角色信息`。 入参/分页参数：`@角色功能 nvarchar(50),`、`@角色编号 int`。 主要返回字段线索：`@同名角色是否存在 = count(*)`。 关键过滤/匹配条件：`SELECT @同名角色是否存在 = count(*) FROM [登录基础数据_角色信息] WHERE [Roles_Function] = @角色功能 AND [Roles_number] ! = @角色编号`；`WHERE [Roles_number] = @角色编号`。 关键写入/状态处理语句线索：`UPDATE [dbo].[登录基础数据_角色信息]`；`SET`。
- `菜单系统模块_项目角色_增加_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增。 读取/关联对象：表：`登录基础数据_角色信息`。 写入或更新对象：`登录基础数据_角色信息`。 入参/分页参数：`@角色功能 nvarchar(50)`。 主要返回字段线索：`@同名角色是否存在 = count(*)`。 关键过滤/匹配条件：`SELECT @同名角色是否存在 = count(*) FROM [登录基础数据_角色信息] WHERE [Roles_Function] = @角色功能`。 关键写入/状态处理语句线索：`INSERT INTO [dbo].[登录基础数据_角色信息]( [Roles_Function])`。
- `菜单系统模块_项目角色_删除_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、删除。 读取/关联对象：表：`登录基础数据_角色信息`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单`。 写入或更新对象：`登录基础数据_角色信息`。 入参/分页参数：`@角色编号 int`。 主要返回字段线索：`@是否分配菜单 = COUNT(*)`。 关键过滤/匹配条件：`select @是否分配菜单 = COUNT(*) from [dbo].[登录基础数据_二级菜单] where 账号代码 = @角色编号`；`select @是否分配人员 = COUNT(*) from [dbo].[登录基础数据_人员权限角色] where Roles_number = @角色编号`；`delete from [dbo].[登录基础数据_角色信息] where Roles_number = @角色编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`delete from [dbo].[登录基础数据_角色信息] where Roles_number = @角色编号`。

## 65. src/views/SystemMaintenance/PersonnelManagement/index.vue

**页面位置**：`src/views/SystemMaintenance/PersonnelManagement/index.vue`  
**所属模块**：SystemMaintenance / PersonnelManagement  
**源码行数**：526

### 页面功能

该页面维护人员账号。管理员维护人员、部门、角色、启用状态等登录和权限基础数据。

页面可见的操作/字段包括 “查询”、“新增”、“重置密码”、“编辑”、“确 定”、“取消”、“item.label”、“姓名”、“工号”、“密码”，这些是判断页面业务范围的主要线索。

后端主要围绕 `人员管理_角色信息初始化查询_查询`、`登录基础数据_人员信息_切换是否用户`、`人员管理_人员信息查询_查询`、`人员管理_人员信息修改_编辑`、`人员管理_人员信息修改_删除`、`人员管理_人员信息新增_新增` 等过程 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `人员管理_角色信息初始化查询_查询` -> `登录基础数据_人员信息_切换是否用户` -> `人员管理_人员信息查询_查询` -> `人员管理_人员信息修改_编辑` -> `人员管理_人员信息修改_删除` -> `人员管理_人员信息新增_新增` -> `WEB_摄像头查看权限_查询` -> `WEB_登录基础数据_人员信息_重置密码` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`新增`、`重置密码`、`编辑`、`确 定`、`取消`、`item.label`、`姓名`、`工号`、`密码`、`角色`、`操作`、`请输入姓名`、`请选择角色`、`请输入工号`、`请输入密码`、`title`、`title1`

主要方法线索：`getPersonalrole`、`for`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `姓名` | - | `姓名` |
| 显示列 | `工号` | - | `工号` |
| 显示列 | `密码` | - | `密码` |
| 显示列 | `角色` | - | `角色` |
| 显示列 | `操作` | - | `操作` |
| 输入字段 | `PersonalName` | - | - |
| 输入字段 | `PersonalroleValue` | - | - |
| 输入字段 | `scope.row.personnel_name` | - | - |
| 输入字段 | `scope.row.account` | - | - |
| 输入字段 | `scope.row.password` | - | - |
| 输入字段 | `form.PersonalName` | - | - |
| 输入字段 | `form.account` | - | - |
| 输入字段 | `form.password` | - | - |
| 输入字段 | `form.PersonalroleValue` | - | - |
| 输入字段 | `form1.PersonalName` | - | - |
| 输入字段 | `form1.account` | - | - |
| 输入字段 | `form1.password` | - | - |
| 输入字段 | `form1.PersonalroleValue` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 193 | 11（当前通用存储过程查询/执行） | `人员管理_角色信息初始化查询_查询` | 查询/读取数据 | 查询 | 未在 SQL 中解析到明确依赖 |
| 207 | 12（当前通用存储过程写入/业务动作） | `登录基础数据_人员信息_切换是否用户` | 基础权限/人员数据处理 | 未找到过程体 | 未知 |
| 243 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息查询_查询` | 查询/读取数据 | 分页 | 未在 SQL 中解析到明确依赖 |
| 296 | 12（当前通用存储过程写入/业务动作） | `人员管理_人员信息修改_编辑` | 更新/保存业务数据 | 更新 | 表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色` |
| 325 | 12（当前通用存储过程写入/业务动作） | `人员管理_人员信息修改_删除` | 更新/保存业务数据 | 更新、删除 | 表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色` |
| 374 | 11（当前通用存储过程查询/执行） | `人员管理_人员信息新增_新增` | 新增业务数据 | 查询、新增 | 表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色` |
| 410 | 11（当前通用存储过程查询/执行） | `WEB_摄像头查看权限_查询` | 查询/读取数据 | 未找到过程体 | 未知 |
| 429 | 12（当前通用存储过程写入/业务动作） | `WEB_登录基础数据_人员信息_重置密码` | 基础权限/人员数据处理 | 查询、更新 | 表：`登录基础数据_人员信息` |
| 441 | 11（当前通用存储过程查询/执行） | `WEB_人员设备查看权限_查询` | 查询/读取数据 | 未找到过程体 | 未知 |
| 459 | 12（当前通用存储过程写入/业务动作） | `WEB_人员设备查看权限_权限切换` | 查询/读取数据 | 未找到过程体 | 未知 |
| 479 | 12（当前通用存储过程写入/业务动作） | `WEB_人员摄像头查看权限_权限切换` | 查询/读取数据 | 未找到过程体 | 未知 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `人员管理_角色信息初始化查询_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `登录基础数据_人员信息_切换是否用户` -> 过程体未解析 -> 基础权限/人员数据处理
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `人员管理_人员信息查询_查询` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `人员管理_人员信息修改_编辑` -> 表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色` -> 更新/保存业务数据
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `人员管理_人员信息修改_删除` -> 表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色` -> 更新/保存业务数据
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `人员管理_人员信息新增_新增` -> 表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色` -> 新增业务数据
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `WEB_摄像头查看权限_查询` -> 过程体未解析 -> 查询/读取数据
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `WEB_登录基础数据_人员信息_重置密码` -> 表：`登录基础数据_人员信息` -> 基础权限/人员数据处理
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `WEB_人员设备查看权限_查询` -> 过程体未解析 -> 查询/读取数据
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `WEB_人员设备查看权限_权限切换` -> 过程体未解析 -> 查询/读取数据
- `src/views/SystemMaintenance/PersonnelManagement/index.vue` -> `WEB_人员摄像头查看权限_权限切换` -> 过程体未解析 -> 查询/读取数据

### 存储过程处理逻辑明细

- `人员管理_角色信息初始化查询_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 主要返回字段线索：`*`。 关键过滤/匹配条件：`where [Roles_number] 1`。
- `登录基础数据_人员信息_切换是否用户` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 基础权限/人员数据处理。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `人员管理_人员信息查询_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：分页。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@姓名_check int`、`@姓名 nvarchar(500)`、`@角色代码_check int`、`@角色代码 nvarchar(500)`、`@PageCurrent int,`、`@PageSize int,`、`@PageCount int`、`@ItemCount int`。 关键过滤/匹配条件：`declare @where nvarchar(1000)`；`set @where = ' 1 = 1 '`；`set @where = @where + ' and Personnel_Number is not null'`；`set @where = @where+' and Personnel_Name like '+substring(@a, 1, 1)+'%'+@姓名+substring(@a, 1, 1) + '+'+substring(@a, 1, 1)+'%'+substring(@a, 1, 1)`；`set @where = @where+' and Roles_number = ' + CAST(@角色代码 AS NVARCHAR(50))`；`exec dbo.sp_xt_pagesplit @tbname, @fieldkey, @where, @fieldshow, @fieldOrder, @PageCurrent, @PageSize, @PageCount out, @ItemCount out`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`set @where = ' 1 = 1 '`；`set @tbname = '登录基础数据_管理人员权限视图'`；`set @fieldkey = ' Personnel_Number '`；`set @fieldOrder = ' Personnel_Number desc '`；`set @fieldshow = ''`；`set @a = ''''`；`set @where = @where + ' and Personnel_Number is not null'`；`set @where = @where+' and Personnel_Name like '+substring(@a, 1, 1)+'%'+@姓名+substring(@a, 1, 1) + '+'+substring(@a, 1, 1)+'%'+substring(@a, 1, 1)`；`set @where = @where+' and Roles_number = ' + CAST(@角色代码 AS NVARCHAR(50))`。 实现特征：分页。
- `人员管理_人员信息修改_编辑` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新。 读取/关联对象：表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色`。 写入或更新对象：`登录基础数据_人员信息`、`登录基础数据_人员权限角色`。 入参/分页参数：`@Personnel_Number int`、`@account nvarchar(50)`、`@password nvarchar(50)`、`@Personnel_Name nvarchar(50)`、`@Roles_number int`。 关键过滤/匹配条件：`where Personnel_Number = @Personnel_Number`。 关键写入/状态处理语句线索：`UPDATE [dbo].[登录基础数据_人员信息]`；`SET`；`UPDATE [dbo].[登录基础数据_人员权限角色]`。
- `人员管理_人员信息修改_删除` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：更新、删除。 读取/关联对象：表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色`。 写入或更新对象：`登录基础数据_人员信息`、`登录基础数据_人员权限角色`。 入参/分页参数：`@Personnel_Number int`。 关键过滤/匹配条件：`where Personnel_Number = @Personnel_Number`；`delete from [dbo].[登录基础数据_人员权限角色] where Personnel_Number = @Personnel_Number`。 关键写入/状态处理语句线索：`UPDATE [dbo].[登录基础数据_人员信息]`；`SET`；`delete from [dbo].[登录基础数据_人员权限角色] where Personnel_Number = @Personnel_Number`。
- `人员管理_人员信息新增_新增` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增。 读取/关联对象：表：`登录基础数据_人员信息`、`登录基础数据_人员权限角色`。 写入或更新对象：`登录基础数据_人员信息`、`登录基础数据_人员权限角色`。 入参/分页参数：`@account nvarchar(50)`、`@password nvarchar(50)`、`@Personnel_Name nvarchar(50)`、`@Roles_number int`。 主要返回字段线索：`count(*)`。 关键过滤/匹配条件：`if(select count(*) from [登录基础数据_人员信息] where account = @account ) = 0`；`where account = @account`。 关键写入/状态处理语句线索：`INSERT INTO [登录基础数据_人员信息]`；`INSERT INTO [登录基础数据_人员权限角色]`。
- `WEB_摄像头查看权限_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `WEB_登录基础数据_人员信息_重置密码` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 基础权限/人员数据处理。 数据库处理摘要：查询、更新。 读取/关联对象：表：`登录基础数据_人员信息`。 写入或更新对象：`登录基础数据_人员信息`。 入参/分页参数：`@Personnel_Number int`。 关键过滤/匹配条件：`update 登录基础数据_人员信息 set password = '123456' where [Personnel_Number] = @Personnel_Number`。 关键写入/状态处理语句线索：`update 登录基础数据_人员信息 set password = '123456' where [Personnel_Number] = @Personnel_Number`。
- `WEB_人员设备查看权限_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `WEB_人员设备查看权限_权限切换` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 查询/读取数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `WEB_人员摄像头查看权限_权限切换` 属于 系统基础资料/权限，前端以 type=12（当前通用存储过程写入/业务动作）调用，页面用途是 查询/读取数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。

## 66. src/views/SystemMaintenance/SystemRrolemaintenance/index.vue

**页面位置**：`src/views/SystemMaintenance/SystemRrolemaintenance/index.vue`  
**所属模块**：SystemMaintenance / SystemRrolemaintenance  
**源码行数**：276

### 页面功能

该页面维护系统角色。管理员查询、新增、修改、删除角色数据。

页面可见的操作/字段包括 “查询”、“新增”、“编辑”、“删除”、“确 定”、“取消”、“角色功能”、“角色名称”、“请输入角色功能”、“新增角色”，这些是判断页面业务范围的主要线索。

后端主要围绕 `菜单系统模块_项目角色_查询数据_MESWORK`、`菜单系统模块_项目角色_修改数据_MESWORK`、`菜单系统模块_项目角色_增加_MESWORK`、`菜单系统模块_项目角色_删除_MESWORK` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `菜单系统模块_项目角色_查询数据_MESWORK` -> `菜单系统模块_项目角色_修改数据_MESWORK` -> `菜单系统模块_项目角色_增加_MESWORK` -> `菜单系统模块_项目角色_删除_MESWORK` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`新增`、`编辑`、`删除`、`确 定`、`取消`、`角色功能`、`角色名称`、`请输入角色功能`、`新增角色`、`编辑角色`

主要方法线索：`searchData`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `角色功能` | - | `角色功能` |
| 显示列 | `编辑` | - | `编辑` |
| 输入字段 | `RoleFunctioning` | - | - |
| 输入字段 | `form.角色功能` | - | - |
| 输入字段 | `form2.角色功能` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 156 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_查询数据_MESWORK` | 查询/读取数据 | 分页 | 未在 SQL 中解析到明确依赖 |
| 181 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_修改数据_MESWORK` | 更新/保存业务数据 | 查询、更新 | 表：`登录基础数据_角色信息` |
| 211 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_增加_MESWORK` | 新增业务数据 | 查询、新增 | 表：`登录基础数据_角色信息` |
| 238 | 11（当前通用存储过程查询/执行） | `菜单系统模块_项目角色_删除_MESWORK` | 删除业务数据 | 查询、删除 | 表：`登录基础数据_角色信息`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单` |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/SystemMaintenance/SystemRrolemaintenance/index.vue` -> `菜单系统模块_项目角色_查询数据_MESWORK` -> 未在 SQL 中解析到明确依赖 -> 查询/读取数据
- `src/views/SystemMaintenance/SystemRrolemaintenance/index.vue` -> `菜单系统模块_项目角色_修改数据_MESWORK` -> 表：`登录基础数据_角色信息` -> 更新/保存业务数据
- `src/views/SystemMaintenance/SystemRrolemaintenance/index.vue` -> `菜单系统模块_项目角色_增加_MESWORK` -> 表：`登录基础数据_角色信息` -> 新增业务数据
- `src/views/SystemMaintenance/SystemRrolemaintenance/index.vue` -> `菜单系统模块_项目角色_删除_MESWORK` -> 表：`登录基础数据_角色信息`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单` -> 删除业务数据

### 存储过程处理逻辑明细

- `菜单系统模块_项目角色_查询数据_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：分页。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@角色功能 nvarchar(50)`、`@PageCurrent int,`、`@PageSize int,`、`@PageCount int`、`@ItemCount int`。 关键过滤/匹配条件：`declare @where nvarchar(1000)`；`set @where = ' 1 = 1 AND Roles_number ! = 1 '`；`set @where = @where + ' AND [Roles_Function] like ' +'''' + '%' + @角色功能 + '%'+''''`；`PRINT @where`；`exec dbo.sp_xt_pagesplit @tbname, @fieldkey, @where, @fieldshow, @fieldOrder, @PageCurrent, @PageSize, @PageCount out, @ItemCount out`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`set @where = ' 1 = 1 AND Roles_number ! = 1 '`；`set @tbname = '登录基础数据_角色信息'`；`set @fieldkey = ' Roles_number '`；`set @fieldOrder = ' Roles_number '`；`set @fieldshow = ''`；`set @where = @where + ' AND [Roles_Function] like ' +'''' + '%' + @角色功能 + '%'+''''`。 实现特征：分页。
- `菜单系统模块_项目角色_修改数据_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新。 读取/关联对象：表：`登录基础数据_角色信息`。 写入或更新对象：`登录基础数据_角色信息`。 入参/分页参数：`@角色功能 nvarchar(50),`、`@角色编号 int`。 主要返回字段线索：`@同名角色是否存在 = count(*)`。 关键过滤/匹配条件：`SELECT @同名角色是否存在 = count(*) FROM [登录基础数据_角色信息] WHERE [Roles_Function] = @角色功能 AND [Roles_number] ! = @角色编号`；`WHERE [Roles_number] = @角色编号`。 关键写入/状态处理语句线索：`UPDATE [dbo].[登录基础数据_角色信息]`；`SET`。
- `菜单系统模块_项目角色_增加_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增。 读取/关联对象：表：`登录基础数据_角色信息`。 写入或更新对象：`登录基础数据_角色信息`。 入参/分页参数：`@角色功能 nvarchar(50)`。 主要返回字段线索：`@同名角色是否存在 = count(*)`。 关键过滤/匹配条件：`SELECT @同名角色是否存在 = count(*) FROM [登录基础数据_角色信息] WHERE [Roles_Function] = @角色功能`。 关键写入/状态处理语句线索：`INSERT INTO [dbo].[登录基础数据_角色信息]( [Roles_Function])`。
- `菜单系统模块_项目角色_删除_MESWORK` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、删除。 读取/关联对象：表：`登录基础数据_角色信息`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单`。 写入或更新对象：`登录基础数据_角色信息`。 入参/分页参数：`@角色编号 int`。 主要返回字段线索：`@是否分配菜单 = COUNT(*)`。 关键过滤/匹配条件：`select @是否分配菜单 = COUNT(*) from [dbo].[登录基础数据_二级菜单] where 账号代码 = @角色编号`；`select @是否分配人员 = COUNT(*) from [dbo].[登录基础数据_人员权限角色] where Roles_number = @角色编号`；`delete from [dbo].[登录基础数据_角色信息] where Roles_number = @角色编号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`delete from [dbo].[登录基础数据_角色信息] where Roles_number = @角色编号`。

## 67. src/views/SystemMaintenance/WorkstationManagement/index.vue

**页面位置**：`src/views/SystemMaintenance/WorkstationManagement/index.vue`  
**所属模块**：SystemMaintenance / WorkstationManagement  
**源码行数**：306

### 页面功能

该页面维护工位资源。管理员在 MES 侧新增、修改、删除工位，同时调用 SAP B1 Resources 新增或更新资源主数据。

页面可见的操作/字段包括 “查询”、“新增”、“编辑”、“删除”、“确 定”、“取消”、“工位名称”、“工位号”、“请输入工位名称”、“新增工位”，这些是判断页面业务范围的主要线索。

后端主要围绕 `MES_登录_工位与名称_查询`、`系统管理_工位管理_工位信息修改`、`系统管理_工位管理_工位信息增加`、`系统管理_工位管理_工位信息删除` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `MES_登录_工位与名称_查询` -> `系统管理_工位管理_工位信息修改` -> `系统管理_工位管理_工位信息增加` -> `系统管理_工位管理_工位信息删除` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`查询`、`新增`、`编辑`、`删除`、`确 定`、`取消`、`工位名称`、`工位号`、`请输入工位名称`、`新增工位`、`编辑工位`

主要方法线索：`searchData`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `工位名称` | - | `[Name] as 工位名称` |
| 显示列 | `工位号` | - | `[VisCode] as 工位号` |
| 显示列 | `编辑` | - | `编辑` |
| 输入字段 | `RoleFunctioning` | - | - |
| 输入字段 | `form.工位名称` | - | - |
| 输入字段 | `form.工位号` | - | - |
| 输入字段 | `form2.工位名称` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程
- SAP B1 Service Layer（`src/api/b1s.js`）

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 168 | 11（当前通用存储过程查询/执行） | `MES_登录_工位与名称_查询` | 查询/读取数据 | 查询 | 视图：`View_基础数据_工位` |
| 192 | 11（当前通用存储过程查询/执行） | `系统管理_工位管理_工位信息修改` | 更新/保存业务数据 | 查询、更新 | 表：`MES_资源主数据` |
| 228 | 11（当前通用存储过程查询/执行） | `系统管理_工位管理_工位信息增加` | 新增业务数据 | 查询、新增 | 表：`MES_资源主数据` |
| 268 | 11（当前通用存储过程查询/执行） | `系统管理_工位管理_工位信息删除` | 删除业务数据 | 查询、删除 | 表：`MES_资源主数据`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单` |

### 与 SAP 的交互

页面直接 SAP/接口调用：
- 第 201 行：`patchB1("/Resources('")`
- 第 235 行：`postB1("/Resources")`

### SAP 接口级说明

| 行号 | 方法 | 接口 | 调用时机/影响判断 | 提交字段线索 |
|---:|---|---|---|---|
| 201 | `patchB1` | `/Resources('` | 新增或更新 SAP 资源主数据。失败会导致 MES 工位与 SAP 资源不一致。 | `Name`、`message`、`type`、`VisCode`、`ForeignName` |
| 235 | `postB1` | `/Resources` | 新增或更新 SAP 资源主数据。失败会导致 MES 工位与 SAP 资源不一致。 | `VisCode`、`Name`、`ForeignName`、`Type`、`Group`、`UnitOfMeasure`、`IssueMethod`、`Active`、`Inactive`、`Remarks`、`Allocation`、`confirmButtonText` |

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/SystemMaintenance/WorkstationManagement/index.vue` -> `MES_登录_工位与名称_查询` -> 视图：`View_基础数据_工位` -> 查询/读取数据
- `src/views/SystemMaintenance/WorkstationManagement/index.vue` -> `系统管理_工位管理_工位信息修改` -> 表：`MES_资源主数据` -> 更新/保存业务数据
- `src/views/SystemMaintenance/WorkstationManagement/index.vue` -> `系统管理_工位管理_工位信息增加` -> 表：`MES_资源主数据` -> 新增业务数据
- `src/views/SystemMaintenance/WorkstationManagement/index.vue` -> `系统管理_工位管理_工位信息删除` -> 表：`MES_资源主数据`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单` -> 删除业务数据

### 存储过程处理逻辑明细

- `MES_登录_工位与名称_查询` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 数据库处理摘要：查询。 读取/关联对象：视图：`View_基础数据_工位`。 主要返回字段线索：`[VisCode] as 工位代码`、`[VisCode] as MesWebCode`、`[VisCode] as 工位号`、`[Name] as 指南工位号`、`[Name] as 工位名称`。 排序/分组/分页线索：`order by [VisCode]`。
- `系统管理_工位管理_工位信息修改` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新。 读取/关联对象：表：`MES_资源主数据`。 写入或更新对象：`MES_资源主数据`。 入参/分页参数：`@工位名称 nvarchar(50),`、`@工位号 nvarchar(50)`。 主要返回字段线索：`@同名工位是否存在 = count(*)`。 关键过滤/匹配条件：`SELECT @同名工位是否存在 = count(*) FROM [MES_资源主数据] WHERE [Name] = @工位名称`；`WHERE [VisCode] = @工位号`。 关键写入/状态处理语句线索：`UPDATE [dbo].[MES_资源主数据]`；`SET`。
- `系统管理_工位管理_工位信息增加` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 新增业务数据。 数据库处理摘要：查询、新增。 读取/关联对象：表：`MES_资源主数据`。 写入或更新对象：`MES_资源主数据`。 入参/分页参数：`@工位名称 nvarchar(50),`、`@工位号 nvarchar(50)`。 主要返回字段线索：`@同名工位是否存在 = count(*)`。 关键过滤/匹配条件：`SELECT @同名工位是否存在 = count(*) FROM [MES_资源主数据] WHERE [Name] = @工位名称`。 关键写入/状态处理语句线索：`INSERT INTO [dbo].[MES_资源主数据]( [Name], [VisCode], [Type], [Active], [IssueMethod], [Allocation], [SyncTime], [ResourceGroup], [ForeignName], [UnitOfMeasure])`。
- `系统管理_工位管理_工位信息删除` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 删除业务数据。 数据库处理摘要：查询、删除。 读取/关联对象：表：`MES_资源主数据`、`登录基础数据_人员权限角色`、`登录基础数据_二级菜单`。 写入或更新对象：`MES_资源主数据`。 入参/分页参数：`@工位号 nvarchar(50)`。 关键过滤/匹配条件：`delete from [dbo].[MES_资源主数据] where [VisCode] = @工位号`。 关键写入/状态处理语句线索：`SET NOCOUNT ON;`；`delete from [dbo].[MES_资源主数据] where [VisCode] = @工位号`。

## 68. src/views/dashboard/index.vue

**页面位置**：`src/views/dashboard/index.vue`  
**所属模块**：dashboard / index.vue  
**源码行数**：356

### 页面功能

该页面是系统首页或欢迎页，用于承载看板入口或基础统计展示。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：`toView`

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 69. src/views/layout/Layout.vue

**页面位置**：`src/views/layout/Layout.vue`  
**所属模块**：layout / Layout.vue  
**源码行数**：72

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：`handleClickOutside`

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 70. src/views/layout/components/AppMain.vue

**页面位置**：`src/views/layout/components/AppMain.vue`  
**所属模块**：layout / components  
**源码行数**：32

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：无

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 71. src/views/layout/components/Navbar.vue

**页面位置**：`src/views/layout/components/Navbar.vue`  
**所属模块**：layout / components  
**源码行数**：380

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

页面可见的操作/字段包括 “[ &nbsp 登出 &nbsp ] &nbsp--> Log Off”、“取 消”、“提 交”、“旧密码”、“新密码”、“确认密码”、“修改密码”，这些是判断页面业务范围的主要线索。

后端主要围绕 `登录基础数据_人员信息_登陆检查密码`、`登录基础数据_人员信息_修改密码`、`WEB_报警查询_未读报警记录_查询`、`WEB_报警查询_未读报警记录_未读条数查询` 取数或提交业务动作。

### 页面流程图

通用流程：用户输入查询/维护条件 -> 调用 `登录基础数据_人员信息_登陆检查密码` -> `登录基础数据_人员信息_修改密码` -> `WEB_报警查询_未读报警记录_查询` -> `WEB_报警查询_未读报警记录_未读条数查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。

### 用户操作与页面线索

可见按钮/字段线索：`[ &nbsp 登出 &nbsp ] &nbsp--> Log Off`、`取 消`、`提 交`、`旧密码`、`新密码`、`确认密码`、`修改密码`

主要方法线索：`toErrorPage`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 参数 | `this.$store.state.user.id` | `@Personnel_Number` | - |
| 参数 | `this.$store.state.user.id` | `@userId` | - |
| 参数 | `this.updatePasswordForm.oldPassword` | `@旧密码` | - |
| 参数 | `this.updatePasswordForm.newPassword1` | `@新密码1` | `if (@新密码1 = '') begin` |
| 参数 | `this.updatePasswordForm.newPassword2` | `@新密码2` | - |
| 参数 | `this.id` | `@personnel_Number` | - |
| 输入字段 | `updatePasswordForm.oldPassword` | `@旧密码` | - |
| 输入字段 | `updatePasswordForm.newPassword1` | `@新密码1` | - |
| 输入字段 | `updatePasswordForm.newPassword2` | `@新密码2` | - |

### 技术路线

- Vue 2 Options API
- Element UI
- `CreateData` + `ExecDatabase` 调用后端过程

### 调用的存储过程总览

| 行号 | type | 存储过程 | 前端用途 | SQL摘要 | 依赖对象 |
|---:|---|---|---|---|---|
| 119 | 11（当前通用存储过程查询/执行） | `登录基础数据_人员信息_登陆检查密码` | 基础权限/人员数据处理 | 查询 | 未在 SQL 中解析到明确依赖 |
| 163 | 11（当前通用存储过程查询/执行） | `登录基础数据_人员信息_修改密码` | 更新/保存业务数据 | 查询、更新 | 未在 SQL 中解析到明确依赖 |
| 187 | 11（当前通用存储过程查询/执行） | `WEB_报警查询_未读报警记录_查询` | 查询/读取数据 | 未找到过程体 | 未知 |
| 205 | 11（当前通用存储过程查询/执行） | `WEB_报警查询_未读报警记录_未读条数查询` | 查询/读取数据 | 未找到过程体 | 未知 |

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

- `src/views/layout/components/Navbar.vue` -> `登录基础数据_人员信息_登陆检查密码` -> 未在 SQL 中解析到明确依赖 -> 基础权限/人员数据处理
- `src/views/layout/components/Navbar.vue` -> `登录基础数据_人员信息_修改密码` -> 未在 SQL 中解析到明确依赖 -> 更新/保存业务数据
- `src/views/layout/components/Navbar.vue` -> `WEB_报警查询_未读报警记录_查询` -> 过程体未解析 -> 查询/读取数据
- `src/views/layout/components/Navbar.vue` -> `WEB_报警查询_未读报警记录_未读条数查询` -> 过程体未解析 -> 查询/读取数据

### 存储过程处理逻辑明细

- `登录基础数据_人员信息_登陆检查密码` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 基础权限/人员数据处理。 数据库处理摘要：查询。 读取/关联对象：未在 SQL 中解析到明确依赖。 入参/分页参数：`@Personnel_Number int`。 主要返回字段线索：`top 1 @password = password`。 关键过滤/匹配条件：`select top 1 @password = password from 登录基础数据_人员信息 where [Personnel_Number] = @Personnel_Number`。
- `登录基础数据_人员信息_修改密码` 属于 系统基础资料/权限，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 更新/保存业务数据。 数据库处理摘要：查询、更新。 读取/关联对象：未在 SQL 中解析到明确依赖。 写入或更新对象：`登录基础数据_人员信息`。 入参/分页参数：`@userId int`、`@旧密码 nvarchar(50)`、`@新密码1 nvarchar(50)`、`@新密码2 nvarchar(50)`。 主要返回字段线索：`2 as result, '两次密码不一致！' as msg`、`return`、`end`、`if (@新密码1 = '') begin`、`select 2 as result, '新密码不能为空！' as msg`、`DECLARE @count int`、`SELECT @count = count(1)`。 关键过滤/匹配条件：`SELECT @count = count(1) FROM 登录基础数据_人员信息 WHERE [Personnel_Number] = @userId and password = @旧密码`；`update 登录基础数据_人员信息 set password = @新密码1 where [Personnel_Number] = @userId and password = @旧密码`。 关键写入/状态处理语句线索：`update 登录基础数据_人员信息 set password = @新密码1 where [Personnel_Number] = @userId and password = @旧密码`。
- `WEB_报警查询_未读报警记录_查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。
- `WEB_报警查询_未读报警记录_未读条数查询` 属于 设备与实时数据，前端以 type=11（当前通用存储过程查询/执行）调用，页面用途是 查询/读取数据。 当前工作区 SQL 中没有解析到该过程体，因此只能确认前端调用关系，不能准确说明内部读写表、过滤条件和状态变更。

## 72. src/views/layout/components/Sidebar/Item.vue

**页面位置**：`src/views/layout/components/Sidebar/Item.vue`  
**所属模块**：layout / components / Sidebar  
**源码行数**：30

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：`render`、`if`

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 73. src/views/layout/components/Sidebar/SidebarItem.vue

**页面位置**：`src/views/layout/components/Sidebar/SidebarItem.vue`  
**所属模块**：layout / components / Sidebar  
**源码行数**：111

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

页面可见的操作/字段包括 “onlyOneChild.meta.title”、“item.meta.title”、“child.meta.title”，这些是判断页面业务范围的主要线索。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：`onlyOneChild.meta.title`、`item.meta.title`、`child.meta.title`

主要方法线索：`hasOneShowingChild`、`if`

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 74. src/views/layout/components/Sidebar/index.vue

**页面位置**：`src/views/layout/components/Sidebar/index.vue`  
**所属模块**：layout / components / Sidebar  
**源码行数**：84

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：`showLogo`

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 75. src/views/layout/components/TagsView.vue

**页面位置**：`src/views/layout/components/TagsView.vue`  
**所属模块**：layout / components  
**源码行数**：219

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：`generateRoute`、`if`

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 76. src/views/layout/components/index.js

**页面位置**：`src/views/layout/components/index.js`  
**所属模块**：layout / components  
**源码行数**：5

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：无

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 77. src/views/layout/mixin/ResizeHandler.js

**页面位置**：`src/views/layout/mixin/ResizeHandler.js`  
**所属模块**：layout / mixin  
**源码行数**：53

### 页面功能

该文件属于系统布局组件，负责菜单、导航、标签页、内容承载或窗口自适应，不承载具体业务流程。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：无

主要方法线索：`isMobile`

### 字段映射表

未从页面模板中抽取到明确的 `v-model`、表格列或 `param.push` 字段映射。

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## 78. src/views/login/index.vue

**页面位置**：`src/views/login/index.vue`  
**所属模块**：login / index.vue  
**源码行数**：501

### 页面功能

该页面是登录入口，负责账号密码登录、角色选择、Token/Cookie 写入、路由权限初始化和密码修改入口。

页面可见的操作/字段包括 “修改密码”、“登录”、“取消”、“确定”、“角色名称”、“工号”、“原始密码”、“新密码”、“确认密码”、“请输入用户名”，这些是判断页面业务范围的主要线索。

### 页面流程图

该页面未发现后端存储过程调用，通常不形成完整业务流程。

### 用户操作与页面线索

可见按钮/字段线索：`修改密码`、`登录`、`取消`、`确定`、`角色名称`、`工号`、`原始密码`、`新密码`、`确认密码`、`请输入用户名`、`请输入密码`、`请选择登录角色`

主要方法线索：`showPwd`、`if`

### 字段映射表

| 类型 | 前端字段/显示列 | 存储过程参数或表达式 | SQL返回字段/数据库字段线索 |
|---|---|---|---|
| 显示列 | `角色名称` | - | `角色名称` |
| 输入字段 | `loginForm.username` | - | - |
| 输入字段 | `loginForm.password` | - | - |
| 输入字段 | `loginForm.checked` | - | - |
| 输入字段 | `form.Account` | - | - |
| 输入字段 | `form.beforPassword` | - | - |
| 输入字段 | `form.newPassword` | - | - |
| 输入字段 | `form.againPassword` | - | - |

### 技术路线

- Vue 2 Options API
- Element UI
- 未发现页面级后端存储过程调用

### 调用的存储过程总览

未发现 `CreateData(...)` 存储过程调用。

### 与 SAP 的交互

未发现页面直接调用 SAP B1 Service Layer；相关存储过程也未解析到 `SAP.SBO_YL` 链接库引用。

### SAP 接口级说明

页面无直接 SAP Service Layer 调用。

### 状态流转说明

未从当前 SQL 静态解析到明确的状态字段变更。

### 数据库调用链

无数据库调用链。

### 存储过程处理逻辑明细

无页面级存储过程调用。

## SQL 对象总览

脚本中解析到表/视图 76 个、存储过程 345 个。

### 表/视图清单

- 表：`MES_资源主数据`
- 视图：`View_基础数据_工位`
- 表：`生产管理_工时校验_校验工时表`
- 表：`物料基础数据_零件图纸`
- 表：`MES_接口_生产计划`
- 表：`MES_接口_生产计划_生产任务`
- 视图：`View_生产订单_MES`
- 表：`工位人员绑定表`
- 表：`登录基础数据_人员信息`
- 视图：`View_工位人员绑定数`
- 表：`YL_加工中心_操作记录表`
- 视图：`View_生产工时视图`
- 视图：`View_图纸视图`
- 表：`YL_质量检验_质检记录`
- 视图：`View_质量检验_质检记录_外协收检`
- 视图：`View_生产订单全部（包括已关闭）`
- 视图：`View_外协质检`
- 视图：`View_装配信息`
- 视图：`View_生产计划零件图纸视图`
- 表：`登录基础数据_角色信息`
- 表：`登录基础数据_人员权限角色`
- 表：`登录基础数据_二级菜单`
- 视图：`View_账号权限信息`
- 表：`车间生产管理工艺_零件工序_工艺库`
- 视图：`计划任务视图`
- 表：`基础表_工序`
- 视图：`View_标准工艺视图`
- 表：`车间生产管理工艺_零件生产工艺_工艺库`
- 视图：`View_生产工艺视图`
- 视图：`View_报工人员`
- 表：`班次表`
- 表：`班次人员绑定表`
- 视图：`View_设备工位人员`
- 表：`YL_质量检验_不合格品处理`
- 表：`YL_质量检验_不合格品处理_处理节点`
- 视图：`View_质量检验_不合格品处理`
- 视图：`View_校验后的生产工时`
- 表：`登录基础数据_部门`
- 视图：`登录基础数据_管理人员权限视图`
- 视图：`View_生产订单完工`
- 视图：`View_终检状态`
- 视图：`View_质检明细`
- 视图：`View_外协报表视图`
- 视图：`View_质量检验_质检记录`
- 视图：`v_CurrentProductionStatus`
- 视图：`View_生产订单Temp_ERP`
- 表：`_日志`
- 表：`Attachments`
- 表：`BOM数据`
- 表：`CaChe_Var`
- 表：`MES_接口_工艺路线主数据`
- 表：`YL_基础表_数据字典`
- 表：`YL_加工中心_报工记录`
- 表：`YL_设备管理_工时记录`
- 表：`YL_设备管理_设备台账`
- 表：`YL_设备管理_维修记录`
- 表：`YL_质量检验_检测标准`
- 表：`YL_质量检验_量具信息`
- 表：`YL_质量检验_质检记录_检测零件`
- 表：`YL_质量检验_质检记录_检测数据`
- 表：`报警_记录_历史`
- 表：`报警_记录_历史_缓存`
- 表：`基础数据_设备工位点检表`
- 表：`记录_日志_项目运行日志`
- 表：`历史_工位设备状态每分钟记录`
- 表：`历史_设备数据_定时`
- 表：`流程表`
- 表：`流程节点表`
- 表：`流程完成记录表`
- 表：`流程转办表`
- 表：`设备信息缓存表`
- 表：`审批记录表`
- 表：`物料基础数据_工艺图纸`
- 表：`物料基础数据_零件图纸删除记录`
- 表：`物料数据`
- 表：`质量检验_质检任务_SAP`

## 同级项目数据看板补充分析

本节补充 `MES_Manage_View_V20` 同级目录下的大屏/看板项目。它们与主系统 `src/views` 的区别是：页面本身基本不做业务写入，主要通过统一接口 `CreateData('11', 存储过程名, [])` 或 `ExecDatabaseByParam('11', 存储过程名, 参数)` 调用 SQL Server 存储过程，把 MES、SAP 同步表、设备采集缓存和质检记录加工成 KPI、滚动表格和 ECharts/DataV 图表。因此它们虽然“不操作业务”，但会直接放大统计口径问题：主系统一旦新增字段、状态、报工类型或 SAP 同步逻辑，看板上的齐套率、未及时开工、加急、在制、质检未清、设备运行状态可能同步失真。

### 看板项目总体技术路线

| 项目 | 技术栈 | 入口页面 | 数据访问方式 | 主要刷新/展示方式 |
|---|---|---|---|---|
| `生产任务看板` | Vue 3 + Vite + Element Plus/DataV | `src/views/index.vue` | `CreateData('11', 生产任务综合看板_*)` | 固定 1920x1080 大屏，自适应缩放，定时钟，KPI + 表格 |
| `装配任务看板` | Vue 3 + Vite | `src/views/index.vue`、`ProductionTaskDashboard.vue` | `CreateData('11', 装配中心任务看板_*)`；另一个页面复用生产任务看板过程 | 多列表 2 秒循环滚动 |
| `质检任务看板` | Vue 3 + Vite + ECharts + DataV | `src/views/index.vue` | `CreateData('11', 质量任务看板_*)` | 未清/完成/趋势/明细大屏，标签轮播 |
| `机加设备生产运营看板` | Vue 3 + Vite + ECharts + DataV | `src/views/index.vue`、`machiningOperationTwo.vue` | `CreateData('11', 机加设备生产运营看板_*)`，部分复用 `质量任务看板_*` | 设备状态、计划执行率、在制/加急/不良滚动表 |
| `机加设备生产运营看板二` | Vue 3 + Vite | `src/views/index.vue` | 与 `machiningOperationTwo.vue` 基本同源 | 在制、加急、关键工序汇总 |
| `TableTV` | Vue 3 + Vite | `src/views/index.vue` | `ExecDatabaseByParam('11', '设备管理_设备状态_查询', [['设备名称','']])` | 工位任务卡片，每 5 秒刷新，自动滚动 |
| `board_view` | Vue 2 + Webpack + DataV + vue-seamless-scroll + ECharts | `src/views/left.vue` | `CreateData1('11', 看板_*)`、`ExecDatabase2`，访问 `MESCommonBase.ashx` | 综合项目大屏，30 秒级刷新，分区轮播 |
| `新建文件夹` | Vue 3 + Vite | `index.vue`、`ProductionTaskDashboard.vue`、`AssemblyCenterTaskDashboard.vue` | `index.vue` 调用 `Visualization_QcTask_*`；另两个多为静态/样例或旧版页面 | 试验版质检可视化，过程名在当前 SQL 未落库 |

统一调用链如下：

```mermaid
flowchart LR
  A[看板 Vue 页面] --> B[CreateData / ExecDatabaseByParam]
  B --> C[MESCommonBase.ashx type=11]
  C --> D[SQL Server 存储过程]
  D --> E[MES 表/视图]
  D --> F[SAP.SBO_YL 跨库表或 SAP 同步表]
  D --> G[设备采集缓存 CaChe_Var]
  D --> H[质量/工时/操作记录]
  E --> I[response.data]
  F --> I
  G --> I
  H --> I
  I --> J[KPI、滚动表格、图表]
```

### 1. `生产任务看板/src/views/index.vue`：生产任务综合看板

**页面功能**：这是管理层生产任务总览大屏，首屏展示“按期齐套率、待排产任务、待处理销售订单、工艺 BOM 待完成、采购未及时到货、机加未及时开工、质检及时率、未及时入库、加急件”等 KPI，并在下方展示“未按期齐套任务”和“加急件明细”。页面本身没有新增、修改、审核等业务写入动作，只把多个业务链条汇总成一张风险看板：齐套风险、排产风险、工艺准备风险、开工风险和加急风险。

**调用存储过程与处理逻辑**：

| 页面区域 | 存储过程 | 过程处理了什么 | 主要表/视图 |
|---|---|---|---|
| 按期齐套率 | `生产任务综合看板_按期齐套率` | 统计近一个月、计划开始早于当前 3 天、`自制件属性 like '%装配%'` 的任务，按 `齐套` 计算总任务数、齐套任务数、未齐套任务数、齐套率，并按 `发料状态` 细分发料齐套、发料缺件、未发料。 | `View_生产订单_MES` |
| 待排产/无工艺 | `生产任务综合看板_未排产无工艺查询` | 用三个子查询返回未排产任务数、装配未排产数、无生产工艺计划数。页面再用“未排产任务数 - 装配未排产数”推导机加待排产。 | `View_生产订单_MES`、`MES_接口_生产计划` |
| 加急件明细 | `生产任务综合看板_加急任务查询` | 从 SAP 加急物料跨库表读取加急数量大于 0 的非装配属性数据，再左连 MES 生产计划补下达日期、计划开始、计划完成、计划数量，并用 `COUNT(*) OVER()` 返回加急订单总数。 | `SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`、`MES_接口_生产计划` |
| 机加未及时开工 | `生产任务综合看板_未及时开工查询` | 查询已排产、非装配/非外协/非走手续等任务，要求 `开工时间 IS NULL`、`加工状态 = 0`、计划开始早于当天，并通过质检记录反查合格数，最终只保留 `合格数 = 0` 的未及时开工任务。 | `View_生产订单_MES`、`YL_质量检验_质检记录`、`MES_接口_生产计划_生产任务`、`登录基础数据_人员信息` |
| 未按期齐套任务 | `生产任务综合看板_未按期齐套任务` | 返回计划开始已过、近一个月同步、`齐套=0`、装配属性任务的完整任务行，用于下方表格展示。 | `View_生产订单_MES` |

**字段映射**：

| 前端显示 | 前端字段 | 存储过程返回字段 | 数据库来源/含义 |
|---|---|---|---|
| 按期齐套率 | `complete.completeset` | `齐套率` | `View_生产订单_MES.齐套` 汇总计算 |
| 未齐套数 | `complete.untasknum` | `未齐套任务数` | `齐套=0` 的装配属性任务数 |
| 应齐套数 | `complete.tasknum` | `总任务数` | 符合时间和装配属性条件的任务数 |
| 待排产总数 | `noProcessStats.total` | `未排产任务数` | `排产状态=0` 的生产订单 |
| 机加待排产 | `noProcessStats.machining` | 前端计算 | `未排产任务数 - 装配未排产数` |
| 装配待排产 | `noProcessStats.assembly` | `装配未排产数` | 未排产且自制件属性包含装配 |
| 工艺 BOM 待完成 | `topStats[1].value` | `无生产工艺计划数` | `MES_接口_生产计划.生产工艺=0` |
| 加急件数 | `Urgentnum` | `加急订单总数` | SAP 加急物料表中过滤后的总行数 |
| 加急件明细 | `urgentRows` | `合同号、订单编号、物料描述、物料编号、自制件属性、计划数量、下达日期、计划开始、计划完成` | SAP 加急表 + MES 计划 |
| 未按期齐套表 | `kitRows` | `订单编号、物料描述、物料编号、计划数量、计划开始时间、计划完成时间、合同号、拣配状态、发料状态` | `View_生产订单_MES` |

**SAP 交互**：页面没有直接调用 B1 Service Layer；SAP 依赖体现在 SQL 过程 `生产任务综合看板_加急任务查询` 读取 `SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`。这意味着加急件数取决于 SAP 加急物料表是否同步及时，且页面把 SAP 加急记录与 MES 计划的连接键默认放在 `docentry/订单编号` 上。

**状态/口径影响**：

- `齐套`、`发料状态`、`拣配状态` 是看板核心口径，若主系统新增“部分齐套、手续确认、SAP 发料失败、缺件预计到货”等中间状态，当前页面只能显示二元结果，容易把中间状态误判为未齐套或未发料。
- `未及时开工` 用 `开工时间 IS NULL + 加工状态=0 + 计划开始<今天 + 合格数=0` 判断。新增设计/编程前置、二次派工、异常暂停后，如果不扩展排除条件，会把“不能开工”也统计为“未及时开工”。
- 页面里“采购未及时到货、质检及时率、未及时入库”仍是静态或未接入真实过程的显示项，后续若作为管理指标使用，必须补存储过程和来源字段，否则大屏会出现半真半假的 KPI。

### 2. `装配任务看板/src/views/index.vue`：装配中心任务看板

**页面功能**：围绕装配中心的当天/近期执行情况，展示及时送检数、加急任务数、装配合格率、异常未关闭消息数、缺勤人员，以及四类滚动明细：发货状态列表、装配任务列表、在制任务缺件明细、已完工作务。页面通过 2 秒循环滚动让班组现场持续看到装配交付、缺件、质量和异常风险。

**调用存储过程与处理逻辑**：

| 页面区域 | 存储过程 | 过程处理了什么 | 主要表/视图 |
|---|---|---|---|
| 异常未关闭 | `装配中心任务看板_异常未关闭总数` | 当前实现统计 `流程表` 中 `完成人 is null` 的流程数量，作为未关闭异常数；注释中曾尝试统计装配开始加工未结束记录。 | `流程表` |
| 发货状态列表 | `装配中心任务看板_发货状态查询` | 查询装配属性、`发货状态=1`、任务状态未完成的生产订单，左连操作记录取操作人，左连 SAP 发货/交货中间表取交货数量，按要求发货日期排序。 | `View_生产订单_MES`、`YL_加工中心_操作记录表`、`SAP.SBO_YL.dbo.UBT_ODRF_ODLNMES` |
| 在制任务缺件 | `装配中心任务看板_在制品缺件查询` | 从 SAP 加急/缺件物料表读取非装配属性缺件，再连 MES 生产计划，筛选 MES 自制件属性为装配的主计划，用于展示装配在制缺件。 | `SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL`、`MES_接口_生产计划` |
| 加急任务数 | `装配中心任务看板_加急任务总数查询` | 统计已排产、指派对象包含装配、任务状态为待执行/可执行/已开工的任务中 `加急总数>0` 的数量。 | `View_生产订单_MES` |
| 装配任务列表 | `装配中心任务看板_装配任务查询` | 查询已排产、装配指派对象、未完成任务，返回订单、合同、物料、工序、分配数、完成数量、齐套、发料、拣配、任务状态、加工状态等字段。 | `View_生产订单_MES` |
| 装配合格率 | `装配中心任务看板_装配合格率` | 统计近 3 天 `工序名称='装配'` 的质检记录，按合格数/检验数量计算总合格率。 | `View_质量检验_质检记录` |
| 已完成任务 | `装配中心任务看板_已完成任务` | 查询近 3 天装配工序质检记录，按单条记录计算单项合格率，用于完成列表。 | `View_质量检验_质检记录` |

**字段映射**：

| 前端显示 | 前端字段 | 存储过程返回字段 | 数据库来源/含义 |
|---|---|---|---|
| 加急任务数 | `summaryCards[1].value` | `加急总数` | 装配任务中加急总数大于 0 的任务数 |
| 装配合格率 | `summaryCards[2].value` | `总合格率` | 近 3 天装配质检合格数 / 检验数量 |
| 异常未关闭 | `summaryCards[3].value` | `装配异常未关闭总数` | `流程表.完成人 is null` |
| 发货状态 | `deliveryRows` | `订单编号、合同号、物料描述、物料编号、齐套、发料状态、操作人、交货数量、要求发货日期、任务状态` | MES 任务 + SAP 发货中间表 |
| 装配任务 | `taskRows` | `订单号、合同号、零件名称、零件编码、工序名称、齐套、发料状态、加急总数、分配数、完成数量、指派对象` | `View_生产订单_MES` |
| 在制缺件 | `materialRows` | `DocEntry、U_Name、ItemCode、加急数量` | SAP 加急/缺件物料表和 MES 计划 |
| 已完工作务 | `doneRows` | `计划号、零件名称、零件编码、单项合格率` | 装配质检记录 |

**SAP 交互**：前端不直接调 SAP；SQL 层直接读取两个 SAP 库对象：`SAP.SBO_YL.dbo.UBT_ODRF_ODLNMES` 提供发货/交货数量，`SAP.SBO_YL.dbo.ubt_OPKL_UrgentMaterials_ALL` 提供缺件/加急物料。装配看板因此同时依赖 MES 任务状态和 SAP 缺件/发货同步状态。

**状态/口径影响**：

- 发货状态只筛 `发货状态=1` 且任务状态未完成，如果 SAP 发货通知、MES 发货状态、仓库出库状态不是同一个语义，页面标题“发货状态列表”会混合多个阶段。
- `装配异常未关闭总数` 当前直接统计所有 `流程表` 未完成人记录，没有限定装配任务；如果流程表中包含机加、质检、外协异常，大屏会高估装配异常。
- 缺件逻辑把 SAP 缺件子项与 MES 装配主计划关联，若新增主子订单关系、替代料、部分到货、预计齐套时间，需要扩展过程返回字段，否则只能看到“缺件”，看不到是否可恢复生产。

### 3. `质检任务看板/src/views/index.vue`：质检任务看板

**页面功能**：质检大屏聚合未清任务、加急任务、未清任务分类、未清明细、质检及时率、近七日趋势、关键工序检验任务、当天已完成任务汇总和明细。页面使用 DataV 滚动表格和 ECharts 图表，未清明细支持按“全部、采购入库检、序检收检、原料退库检、销售退货检、终检、其他入库检”自动切换。

**调用存储过程与处理逻辑**：

| 页面区域 | 存储过程 | 过程处理了什么 | 主要表/视图 |
|---|---|---|---|
| 未清任务数/加急数/分类 | `质量任务看板_未完成统计` | 建临时表分 6 类插入未完成统计：工序收检、其他入库、原材料退库、销售退货、采购入库、终检；最后追加 `【汇总】` 行。 | `YL_质量检验_质检记录`、`YL_加工中心_操作记录表`、`质量检验_质检任务_SAP`、`MES_接口_生产计划_生产任务`、`View_生产订单_MES` |
| 未清任务明细 | `质量任务看板_未完成明细查询` | 与统计过程同源，但返回逐条明细：任务类型、订单号、物料、工序、已检/合格/不合格、加急、最近检测说明，并按加急优先排序。 | 同上 |
| 当天完成汇总 | `质量任务看板_当天已完成汇总` | 按当天检测时间统计质检记录中的任务数、合格数、不合格数。 | `View_质量检验_质检记录` |
| 当天完成明细 | `质量任务看板_当天已完成明细` | 按检测类型编号和订单类型归类为采购入库检、序检收检、终检、其他入库检、原料退库检、销售退货检等，按 TaskAID 聚合检验数量、合格数、不合格数，并关联 `View_生产订单_MES` 判断加急。 | `View_质量检验_质检记录`、`View_生产订单_MES` |

**存储过程具体处理重点**：

- 工序收检未完成：用 `YL_加工中心_操作记录表` 中报工/辅助结束数量作为应检数量，用 `YL_质量检验_质检记录` 的检测类型 6 已检数量作为已检数量，`已检 < 完成数量` 即为未完成。
- 入库/退库/退货类未完成：从 `质量检验_质检任务_SAP` 读取 SAP 同步来的质检任务，按订单类型区分 `20` 采购入库、`59` 其他入库、`202-60` 原材料退库、`234000031` 销售退货，并比较已合格+不合格数量与到货数/入库数量。
- 终检未完成：找每个订单最大订单行号作为最后工序，再用操作记录与检测类型 6/8 的检验数量判断是否终检不足。
- 加急判断：工序类从 `View_生产订单_MES.加急状态` 判断，SAP 质检任务类从 `质量检验_质检任务_SAP.加急状态` 判断。

**字段映射**：

| 前端显示 | 前端字段 | 返回字段 | 含义 |
|---|---|---|---|
| 未清任务数 | `summary.pendingCount` | `【汇总】.未完成数量` | 六类未完成质检任务合计 |
| 加急任务数 | `summary.urgentCount` | `【汇总】.加急数量` | 六类未完成任务中的加急数 |
| 分类卡片 | `categoryStats` | `质检类型、未完成数量、加急数量` | 过程分类名映射到页面六类标签 |
| 未清明细 | `pendingRows` | `taskType、orderNo、materialName、materialCode、processName、inspectQty、passQty、failQty、urgentQty、inspectRemark、status` | 质检待办明细 |
| 当天完成 | `todayDoneSummary` | `totalCount、passCount、failCount` | 当天质检完成量 |
| 当天完成明细 | `todayDoneRows` | `taskType、orderNo、materialName、materialCode、processName、inspectQty、passQty、failQty、urgentQty` | 当天已检任务列表 |

**SAP 交互**：前端无直接 SAP 调用；质检看板强依赖 `质量检验_质检任务_SAP`，该表是 SAP 入库、退库、销售退货等质检任务同步到 MES 的落地表。当天完成过程主要读 MES 质检记录，未完成过程同时读 SAP 同步任务和 MES 报工记录。

**状态/口径影响**：

- “未清”不是单表状态，而是跨 `操作记录表`、`质检任务_SAP`、`质检记录` 计算出来的结果；新增质检类型、复检、返工、让步接收、批量检验时，必须同步扩展统计和明细过程。
- 页面显示了“质检及时率”和趋势图，但当前正式过程只覆盖未完成与当天完成。若要成为真实指标，需要补“应检时间、送检时间、完成检验时间、超期规则、责任部门”的过程。
- 检测说明字段通过最近一条质检记录取值，只能解释“已有检测记录”的任务；完全未检任务的原因需要另建待检原因或送检说明字段。

### 4. `机加设备生产运营看板/src/views/index.vue`：机加设备生产运营看板（一）

**页面功能**：面向机加工段，展示设备总数、运行/待机/报警/关机数量、在制任务数、未及时开工、当天完成、合格率、不良品、计划执行率，并展示未及时开工、当天完成、不良品等滚动明细和 ECharts 图表。

**调用存储过程与处理逻辑**：

| 页面区域 | 存储过程 | 过程处理了什么 | 主要表/视图 |
|---|---|---|---|
| 设备任务数 | `机加设备生产运营看板_设备任务查询` | 对 `View_生产订单_MES` 中加工状态为辅助开始/开始加工的任务去重后计数，排除外协和装配指派对象。 | `View_生产订单_MES`、`View_设备工位人员` |
| 设备运行状态 | `机加设备生产运营看板_设备运行状态查询` | 从 `CaChe_Var` 读取 `TagName='设备状态'`，把 -1/0/1/2 转成关机/待机/运行/报警，再汇总各状态数量。 | `CaChe_Var` |
| 未及时开工 | `机加设备生产运营看板_未及时开工查询` | 查询已排产、非装配/非外协、未开工、计划开始已过的机加任务，返回任务明细并用窗口函数返回总记录数。 | `View_生产订单_MES`、`YL_质量检验_质检记录`、`MES_接口_生产计划_生产任务` |
| 当天完成汇总 | `质量任务看板_当天已完成汇总` | 复用质检完成汇总，页面据此计算 `passCount/(passCount+failCount)` 作为合格率。 | `View_质量检验_质检记录` |
| 当天完成明细 | `机加设备生产运营看板_当天已完成明细` | 只统计当天检测类型 6/8，即序检收检和终检，返回任务类型、订单、物料、工序、检验数、合格数、不合格数、加急数。 | `View_质量检验_质检记录`、`View_生产订单_MES` |
| 不良品查询 | `机加设备生产运营看板_不良品查询` | 查询昨天的收检/终检质检记录中 `不合格数 > 0` 的记录，并返回总记录数。 | `View_质量检验_质检记录` |
| 计划执行率 | `机加设备生产运营看板_计划执行率` | 当月计划开始且已到计划开始时间的机加任务，按 `开工时间 <= 计划开始时间 + 1天` 计算按期开始率，排除装配、外协、走手续、打磨、钻床等非目标工位。 | `View_生产订单_MES` |

**SAP 交互**：页面不直接调用 SAP；当前过程主要读 MES 视图和设备采集缓存，没有直接访问 SAP 表。SAP 对它的影响通过 `View_生产订单_MES` 中的计划、任务、加急、齐套等同步字段间接体现。

**状态/口径影响**：

- 设备状态来自 `CaChe_Var` 最新缓存，任务状态来自 `View_生产订单_MES`，两者时间粒度不同。设备显示“运行”但任务未开工、或任务已开工但设备缓存待机，都会造成 OEE 和现场状态不一致。
- `当天完成` 实际复用质检记录，不等于生产报工完成。若管理层理解为“机加当天完成任务”，需要改成报工/任务完成口径，或者明确是“当天质检完成”。
- 不良品查询用“昨天”而不是当天，且只看收检/终检，若页面标题没有说明，会与当天完成合格率产生时间口径冲突。

### 5. `机加设备生产运营看板/src/views/machiningOperationTwo.vue` 与 `机加设备生产运营看板二/src/views/index.vue`

**页面功能**：这是机加二屏，重点不是设备状态，而是任务池：在制任务汇总、加急任务汇总、关键工序任务、已开工/在制明细、缺勤人员等。两个项目中的页面结构和调用过程基本一致。

**调用存储过程与处理逻辑**：

| 页面区域 | 存储过程 | 过程处理了什么 | 主要表/视图 |
|---|---|---|---|
| 加急任务汇总/明细 | `机加设备生产运营看板_加急任务查询` | 读取 `View_生产订单_MES` 中 `加急数量 > 0` 且非装配指派对象的数据，返回订单、合同、物料、计划数量、工序、指派对象、加急数量，并用窗口函数返回加急订单总数。 | `View_生产订单_MES` |
| 已开工/当前进行 | `机加设备生产运营看板_机加在制查询` | 查询加工状态为辅助开始或开始加工的任务，按指派对象和开工时间排序去重，排除外协、装配，返回当前各工位正在处理的任务。 | `View_生产订单_MES` |
| 在制任务池 | `机加设备生产运营看板_机加在制查询2` | 查询已排产、未完成、非装配/非外协/非打磨/非走手续的任务，临时表落地后返回总记录数、计划开始早于今天/今天及之后的数量，并计算上序合格数。 | `View_生产订单_MES`、`YL_质量检验_质检记录`、`MES_接口_生产计划_生产任务` |

**字段映射**：

| 前端显示 | 返回字段 | 说明 |
|---|---|---|
| 在制任务汇总 | `总记录数、计划开始_今天之前_数量、计划开始_今天及之后_数量` | 页面拆成总在制、超期/当前计划两个子指标 |
| 加急任务汇总 | `加急订单总数` | 首页卡片和加急明细共用 |
| 在制/关键工序明细 | `订单号、合同号、零件名称、零件编码、分配数、工序名称、指派对象、完成数量、上序合格数、加急` | 用于滚动任务表和进度百分比 |

**状态/口径影响**：

- `机加在制查询` 用加工状态 2/4 代表“正在执行”，`机加在制查询2` 用排产状态和任务状态代表“任务池”。这两个“在制”不是一个口径，文档和页面标题必须区分“当前执行在制”和“已排产未完成在制”。
- 上序合格数来自检测类型 6 的质检记录。如果新增返修、让步接收或免检，关键工序是否可开工不能只看上序合格数。

### 6. `TableTV/src/views/index.vue`：工位生产监控看板

**页面功能**：这是更接近车间电视屏的工位任务卡片页面。它每 5 秒调用一次 `设备管理_设备状态_查询`，把返回的任务按卡片显示，顶部统计总任务数、加急数、完成数量、不合格数量。卡片字段包括任务/工位、物料、工序、加工状态/任务状态、计划/完成/不合格、人员等。

**调用存储过程**：`设备管理_设备状态_查询 @设备名称=''`。

**存储过程处理逻辑**：

- 根据当前时间判断白班/夜班，用 `View_设备工位人员` 拼接当前班次人员名称。
- 从 `View_生产订单_MES` 查询加工状态为辅助开始/开始加工的任务。
- 计算上序合格数、收检合格数、收检不合格数。
- 按指派对象、开工时间、订单/工序去重，返回任务状态、加工状态、首检、序检、人员名称等字段。

**涉及对象**：`View_生产订单_MES`、`View_设备工位人员`、`YL_质量检验_质检记录`、`MES_接口_生产计划_生产任务`。

**SAP 交互**：无直接 SAP 调用；显示的订单、计划、加急、齐套信息来自 MES 视图，受 SAP 同步结果间接影响。

**状态/口径影响**：

- 该页面按当前班次显示人员，班次切换阈值在存储过程中写死为白班 7.5、夜班 16.5。若主系统班次管理修改了班次时间，但此过程不改，大屏人员归属会错。
- 5 秒刷新会放大数据库压力；若 `设备管理_设备状态_查询` 继续执行复杂子查询和 XML 拼接，需要索引或缓存层支持。

### 7. `board_view/src/views/left.vue`：综合项目数据看板

**页面功能**：这是综合项目/生产经营大屏。页面分为左侧订单/装配/未完成，中央合同/订单主体和订单明细，右侧设备/质量/环境/水电气等监控区域，并包含计划执行曲线、质量饼图、设备问题柱状图和实时 OEE 区域。页面使用 `vue-seamless-scroll`、DataV 边框、ECharts，定时刷新并支持中间主体订单点击钻取明细。

**调用存储过程与处理逻辑**：

| 页面区域 | 存储过程 | 过程处理了什么 | 主要表/视图 |
|---|---|---|---|
| 顶部/主页关键指标 | `看板_主页六个关键数据_查询` | 计算当月当前计划、当前产量、计划完成率、工时消耗、齐套率、合格率，同时返回环境/水/电/气的占位数据。 | `View_生产订单_MES`、`View_生产工时视图` |
| 左上订单看板 | `看板_左上订单看板_表格_查询` | 按订单聚合合同号、最大计划完成、工艺部进度、装配部进度，并取最后工序完成率作为生产部进度；采购部当前为 0。 | `View_生产订单_MES` |
| 左中装配看板 | `看板_左中装配看板_表格_查询` | 查询机械/电气装配订单，展示内部合同号、产品名称、要求发货时间、出库状态。 | `View_生产订单_MES` |
| 左下未完成 | `看板_左下未完成看板_表格_查询` | 查询未完工任务，左连工时视图求已完工工时，左连工艺视图取标准工时，计算未完工工时。 | `View_生产订单_MES`、`View_生产工时视图`、`View_生产工艺视图` |
| 计划执行曲线 | `看板_左上计划执行情况_曲线_查询` | 近 10 天按计划完成日期统计工艺、采购、生产、装配进度。采购部当前仍为 0。 | `View_生产订单_MES` |
| 中间主体订单 | `看板_中间主体订单_表格_查询` | 按订单聚合工艺/采购/生产/装配进度，供中央列表和点击钻取使用。 | `View_生产订单_MES` |
| 中间主体订单详情 | `看板_中间主体订单详情_表格_查询 @合同号` | 按合同号返回物料描述、编码、属性、额定数量、总需求等字段，库存/待出/可用等字段当前为 0。 | `View_生产订单_MES` |
| 设备状态列表 | `设备管理_设备状态_查询` | 与 `TableTV` 同源，返回当前加工任务和设备/人员/质检状态。 | `View_生产订单_MES` 等 |
| 设备采集变量 | `Event_CaChe_Var_看板查询` | 读取设备采集缓存变量，前端把操作模式、设备状态数值翻译成中文。 | `CaChe_Var` |
| 质量表/饼图 | `看板_右下质量看板_表格_查询`、`看板_右下质量看板_饼图_查询` | 当前 SQL 中表格返回空结果集、饼图返回“无/0”，属于占位实现。 | 占位 |
| 实时 OEE | `看板_中间实时OEE数据展示_查询` | 当前 SQL 插入临时表返回两台加工中心的固定 OEE、时间利用率、性能利用率、合格率、设备状态、进度，属于样例/占位数据。 | 临时表常量 |

**SAP 交互**：`board_view` 的正式过程主要读 MES 视图，没有直接 B1 API；但 `View_生产订单_MES` 很可能承载 SAP 生产订单同步数据。看板右侧合同、库存、采购、质量等区域当前有多个占位字段，说明它并未完整打通 SAP 库存、采购、发货、质量问题链路。

**状态/口径影响**：

- 综合大屏把工艺、采购、生产、装配进度放在同一张合同进度表，但 SQL 中采购进度多处为 0，占位字段很多。新增采购到货、发货通知、及时齐套需求后，这里必须接入真实采购和库存口径。
- 中间订单详情库存/在购/占用等字段当前全为 0，若客户把它作为“项目齐套/可用库存”看板，必须补 SAP 库存和采购在途数据。
- OEE 当前是固定样例，不应作为真实设备绩效依据；若要上线，需要统一设备运行时长、程序时长、报工数量、合格率的计算口径。

### 8. `新建文件夹`：试验版/副本看板

**页面功能与状态**：

- `src/views/index.vue` 是新版质检可视化试验页，页面能力比 `质检任务看板` 更完整，包含未清、加急、分类、及时率汇总、及时率趋势、关键工序汇总/明细、当天完成汇总/明细。
- 它调用的过程是 `Visualization_QcTask_PendingSummary_Query`、`Visualization_QcTask_UrgentSummary_Query`、`Visualization_QcTask_CategorySummary_Query`、`Visualization_QcTask_PendingDetail_Query`、`Visualization_QcTask_RateSummary_Query`、`Visualization_QcTask_RateTrend_Query`、`Visualization_QcTask_KeyProcessSummary_Query`、`Visualization_QcTask_KeyProcessDetail_Query`、`Visualization_QcTask_TodayDoneSummary_Query`、`Visualization_QcTask_TodayDoneDetail_Query`。
- 当前 `MES_Manage_View_V20/script.sql` 和 `board_view/sql/存储过程.sql` 未发现这些 `Visualization_QcTask_*` 过程定义，因此这套页面要么是试验版接口命名，要么依赖未纳入脚本的数据库对象。不能把它当作已完整落库的正式看板。
- `ProductionTaskDashboard.vue` 和 `AssemblyCenterTaskDashboard.vue` 分别是生产任务、装配中心看板的静态/样例或旧版页面，当前未看到正式 `CreateData` 调用链，不应作为已接入数据库的正式页面判断。

**隐含价值**：虽然未落库，但这套试验页暴露了客户后续可能要的质检能力：及时率汇总、趋势、关键工序质量、未清任务钻取、当天完成明细。这些能力与正式 `质量任务看板_*` 过程高度相关，后续可考虑把正式过程扩展为统一质检看板服务，而不是并行维护两套命名。

### 看板与主系统页面的依赖关系

| 看板指标 | 依赖主系统动作 | 如果主系统新增/修改会影响什么 |
|---|---|---|
| 齐套率、未齐套任务 | 排产、拣配、发料、SAP 缺件同步 | 新增部分齐套、手续确认、预计齐套日期后，生产任务看板和 board_view 必须改过程 |
| 未及时开工 | 计划开始、开工时间、加工状态、上序合格数 | 新增设计/编程前置、异常暂停、二次派工后，需要避免误判 |
| 加急任务 | SAP 加急表、MES 加急状态/加急数量 | 加急从订单级改到工序/物料级后，所有加急总数和明细都要重算 |
| 装配发货/缺件 | SAP 发货/缺件中间表、MES 装配计划 | 发货通知、仓库出库、交货数量、缺件替代料需要统一解释 |
| 质检未清 | 报工完成、SAP 质检任务、质检记录 | 新增复检、返工、免检、让步接收后，未清统计和明细都要扩展 |
| 设备运行 | `CaChe_Var`、历史设备状态、加工任务 | 若引入真实 OEE，必须同步设备采集、报工、质检合格率 |
| 工时消耗/未完工工时 | 报工记录、生产工艺标准工时 | 设计/编程/装配/质检工时纳入后，board_view 工时口径必须重构 |

### 同级看板的数据库调用链汇总

```mermaid
flowchart TD
  A1[生产任务看板] --> P1[生产任务综合看板_*]
  A2[装配中心看板] --> P2[装配中心任务看板_*]
  A3[质检任务看板] --> P3[质量任务看板_*]
  A4[机加运营看板一/二] --> P4[机加设备生产运营看板_*]
  A5[TableTV] --> P5[设备管理_设备状态_查询]
  A6[board_view 综合大屏] --> P6[看板_* / Event_CaChe_Var_看板查询]

  P1 --> V1[View_生产订单_MES]
  P1 --> S1[SAP 加急物料表]
  P2 --> V1
  P2 --> S2[SAP 发货/缺件表]
  P3 --> Q1[质量检验_质检任务_SAP]
  P3 --> Q2[YL_质量检验_质检记录]
  P3 --> O1[YL_加工中心_操作记录表]
  P4 --> V1
  P4 --> C1[CaChe_Var]
  P4 --> Q2
  P5 --> V1
  P5 --> R1[View_设备工位人员]
  P6 --> V1
  P6 --> H1[View_生产工时视图]
  P6 --> C1
```

### 设备数据采集与大屏新增需求补充

本次新增讨论的需求把“设备采集、设备档案、OEE、工时异常、条码拣配、质检/机加/装配现场大屏”纳入同一条业务链。结合现有页面和存储过程，落点如下。

#### 1. 设备档案管理：标准工时、主要设备

**涉及页面**：

- `DeviceManagement/DeviceInformation/index.vue`：设备信息维护。
- `SystemMaintenance/WorkstationManagement/index.vue`：工位和 SAP Resource 维护。
- `ProductionManagement/PersonnelBinding/index.vue`、`ShiftManagement/index.vue`：人员、班次、工位绑定。
- 工艺维护类页面：生产工艺/标准工艺中已有 `标准工时`、`准备工时`、`工时合计` 等字段线索。

**现有数据基础**：

- 设备相关过程：`设备管理_设备信息_查询`、`设备管理_设备信息_增加`、`设备管理_设备信息_编辑`、`设备管理_设备状态_查询`、`设备管理_设备数据查询`、`设备管理_设备数据_历史查询`、`设备管理_设备数据_统计数据查询`。
- 现有表/视图：`基础数据_设备工位点检表`、`View_设备工位人员`、`CaChe_Var`、`历史_设备数据_定时`、`历史_工位设备状态每分钟记录`、`YL_设备管理_工时记录`。
- 工艺标准工时来源：`车间生产管理工艺_零件生产工艺_工艺库`、`车间生产管理工艺_零件工序_工艺库`、`View_生产工艺视图`。

**新增需求分析**：

设备档案不能只新增一个“标准工时”字段就结束，因为标准工时至少有三种含义：

| 标准工时类型 | 建议来源 | 用途 |
|---|---|---|
| 工艺标准单件工时 | 生产工艺/标准工艺 | 性能开动率、工时异常 |
| 设备可用标准工时 | 设备档案或班次日历 | 设备利用率 |
| 任务计划标准工时 | 生产任务快照 | 计划执行、未完工工时 |

因此设备档案应重点维护“是否主要设备、是否参与 OEE、设备/工位关系、采集点位、设备能力参数”，标准单件工时优先从工艺或设备+工序能力表取。否则同一设备加工不同零件时，单台设备 OEE 会被固定标准工时误导。

#### 2. 设备数据采集：程序工时、单件工时、设备状态

**涉及页面/看板**：

- `TableTV/src/views/index.vue`：当前每 5 秒调用 `设备管理_设备状态_查询` 展示工位任务。
- `机加设备生产运营看板/src/views/index.vue`：调用 `机加设备生产运营看板_设备运行状态查询` 读取 `CaChe_Var` 当前设备状态。
- `board_view/src/views/left.vue`：调用 `Event_CaChe_Var_看板查询` 展示设备采集变量。
- 主系统设备数据页面：`设备管理_设备数据查询`、`设备管理_设备数据_历史查询`、`设备管理_设备数据_统计数据查询`。

**当前处理方式**：

- `机加设备生产运营看板_设备运行状态查询` 只从 `CaChe_Var` 读取当前 `TagName='设备状态'` 并汇总关机/待机/运行/报警数量。
- `设备管理_设备数据查询` 会把 `操作模式` 和 `设备状态` 的数值翻译成中文。
- `设备管理_设备数据_统计数据查询` 已经从 `历史_工位设备状态每分钟记录` 统计停机、关机、报警时长，并从 `YL_设备管理_工时记录` 汇总程序时长。

**新增需求需要补的处理链**：

```mermaid
flowchart LR
  A[设备采集原始点位] --> B[采集原始表]
  B --> C[当前缓存 CaChe_Var]
  B --> D[设备状态历史]
  B --> E[程序/循环时间历史]
  D --> F[设备状态时长汇总]
  E --> G[程序工时/单件工时]
  F --> H[设备利用率/OEE]
  G --> I[性能开动率/工时异常]
```

**必须新增或明确的字段**：

- 设备编号/工位号
- 采集时间
- 设备状态
- 操作模式
- 程序号
- 循环时间
- 程序开始/结束时间
- 当前任务或条码
- 采集质量标识

如果没有“设备采集数据与 MES 任务的绑定字段”，程序工时只能按设备和时间段估算，不能准确回写到订单、工序和人员。

#### 3. OEE 与设备指标：公式和数据来源

**需求公式**：

| 指标 | 公式 | 需要的数据 |
|---|---|---|
| 产能利用率（单台） | 实际产量 / 计划产量 * 100% | 设备维度计划产量、实际产量 |
| 设备利用率（单台） | 设备工时 / 标准工时 | 设备运行工时、设备/班次标准工时 |
| 设备性能开动率（单台） | 标准单件工时 / 实际单件工时 | 工艺标准单件工时、设备采集单件工时 |
| 产品合格率（工位） | 良品数 / 总产量 | 质检合格数或报工良品数、总产量 |
| OEE | 设备利用率 * 开动率 * 合格率 | 上述三项同口径结果 |

**当前页面差距**：

- `board_view` 的 `看板_中间实时OEE数据展示_查询` 当前返回固定样例数据，不是实际 OEE。
- `机加设备生产运营看板` 当前有设备状态、计划执行率、不良品、当天完成，但没有完整的设备利用率、性能开动率、产品合格率三段计算链。
- `TableTV` 当前以任务卡片为主，没有展示单件工时/OEE。

**建议新增数据库层**：

| 建议对象 | 作用 |
|---|---|
| `设备采集_原始数据表` | 保存设备原始采集值，避免丢失追溯 |
| `设备状态_分钟汇总表` | 按设备、时间段统计运行/待机/报警/关机时长 |
| `设备程序工时_明细表` | 保存程序号、循环时间、设备、任务绑定 |
| `View_设备OEE_班次指标` | 按设备、日期、班次输出产能利用率、设备利用率、开动率、合格率、OEE |
| `View_设备单件工时异常` | 输出实际单件工时大于标准工时的异常明细 |

#### 4. 工时异常报表：单件工时大于标准工时

**涉及页面**：

- `ProductionManagement/Timesheet`、工时统计类页面。
- `ProductionManagement/WorkHoursCheck`：工时校验。
- 后续新增“工时异常报表”页面。

**现有过程线索**：

- `工时统计_任务工时_查询`
- `工时统计_设备工时_查询`
- `工时统计_作业者工时_查询`
- `工时校验_保存校验记录`
- `设备管理_设备数据_统计数据查询`

**新增报表逻辑**：

| 字段 | 来源建议 | 说明 |
|---|---|---|
| 标准单件工时 | 生产工艺/标准工艺 | 应做任务快照 |
| 实际单件工时 | 设备采集循环时间，或设备运行时长/产量 | 无采集时可降级为人工工时/完成数量 |
| 超出时长 | 实际单件工时 - 标准单件工时 | 大于 0 进入异常 |
| 超出比例 | 超出时长 / 标准单件工时 | 用于排序和预警颜色 |
| 异常原因 | 人工确认或规则分类 | 后续闭环需要 |

**隐性影响**：工时异常报表会反向要求 `WorkHoursCheck` 能解释“人工工时、程序工时、设备工时”三者差异。否则设备采集显示异常，但人工报工正常，页面无法判断该不该上传 SAP 或计入绩效。

#### 5. 及时拣配（机加/装配）：条码到 MES

**涉及页面**：

- `ProductionManagement/MachiningCenter/index.vue`：机加领料/发料/退库/开工相关。
- `ProductionManagement/AssemblyCenter/index.vue`：装配领料/发料/缺件/开工相关。
- `生产任务看板`：齐套率、未按期齐套任务。
- `装配任务看板`：在制缺件、发货状态、装配任务列表。

**新增业务流程**：

```mermaid
flowchart LR
  A[扫描条码] --> B[解析条码类型]
  B --> C[查 MES 任务/物料/BOM]
  C --> D{匹配任务?}
  D -- 否 --> E[异常提示/记录]
  D -- 是 --> F[保存拣配记录]
  F --> G[更新拣配状态]
  G --> H[重算齐套/缺件]
  H --> I[影响可开工/看板]
```

**需要新增或确认的表/字段**：

- 条码类型、条码值
- 生产订单/任务 AID
- 物料编码、批次、数量
- 拣配人、拣配时间
- 拣配结果
- 异常原因
- 是否写回 `拣配状态`
- 是否写回 `齐套`
- 是否触发 `发料状态`

**SAP 影响**：条码拣配如果涉及库存占用或发料，必须确认 SAP 是否同步校验库存。否则 MES 已拣配、SAP 库存不足，会造成生产看板显示可开工但实际不能发料。

#### 6. 一楼质检大屏幕：质检及时率与关键工序

**涉及页面/看板**：

- `质检任务看板/src/views/index.vue`
- `新建文件夹/src/views/index.vue` 试验版质检可视化
- 主系统 `QualityManagement/QualityCenter`、各类 `CheckTask`
- 工艺维护页面

**需求口径**：

- 质检及时率：报检任务超过 2 天未检验；起算时间取最后一次生产完成时间。
- 关键工序检验任务汇总数和明细：工艺编辑工艺时标记关键工序。

**当前差距**：

- `质量任务看板_未完成统计` 和 `质量任务看板_未完成明细查询` 能算未完成质检，但没有明确返回“最后一次生产完成时间、超期天数、是否关键工序”。
- 试验版 `Visualization_QcTask_RateSummary_Query`、`Visualization_QcTask_RateTrend_Query` 等过程名在当前脚本未落库。

**需要改造的存储过程**：

| 过程 | 改造点 |
|---|---|
| `质量任务看板_未完成统计` | 增加超 2 天未检数量、关键工序未检数量 |
| `质量任务看板_未完成明细查询` | 增加最后生产完成时间、超期天数、是否关键工序、关键工序排序 |
| `质量任务看板_当天已完成明细` | 增加关键工序标识，便于完成闭环 |
| 新增 `质量任务看板_质检及时率` | 专门输出应检、及时检、超期未检、及时率 |

**关键工序字段建议**：

- 工艺库字段：`是否关键工序`
- 生产任务快照字段：`是否关键工序`
- 看板优先读任务快照，避免工艺后改影响历史任务。

#### 7. 机加现场大屏幕：缺勤人员与关键工序任务

**涉及页面/看板**：

- `机加设备生产运营看板/src/views/machiningOperationTwo.vue`
- `机加设备生产运营看板二/src/views/index.vue`
- `TableTV/src/views/index.vue`
- 班次/人员/工位绑定页面

**需求**：

- 缺勤人员：岗位、工位（一对多合并显示）、姓名。
- 关键工序任务汇总数和明细：工艺编辑时标记关键工序。

**当前差距**：

- 机加二屏现在有“缺勤人员”展示结构，但仍是静态/样例数据。
- `机加设备生产运营看板_机加在制查询2` 返回在制任务，但没有 `是否关键工序`。
- 缺勤不能从“没有报工”反推，必须有应到人员与实到人员来源。

**建议新增过程**：

| 过程 | 返回字段 |
|---|---|
| `机加现场大屏_缺勤人员查询` | 岗位、工位列表、姓名、班次、应到时间、缺勤原因 |
| `机加现场大屏_关键工序任务汇总` | 关键工序任务数、加急数、超期数、进行中数 |
| `机加现场大屏_关键工序任务明细` | 订单、合同、物料、工序、工位、指派对象、计划开始、完成数量、上序合格数、加急 |

**涉及对象**：`View_生产订单_MES`、`View_设备工位人员`、班次表、班次人员绑定表、工艺/生产任务关键工序标识表。

#### 8. 装配现场大屏幕：缺勤人员与及时送检

**涉及页面/看板**：

- `装配任务看板/src/views/index.vue`
- `新建文件夹/src/views/AssemblyCenterTaskDashboard.vue`
- 主系统 `ProductionManagement/AssemblyCenter/index.vue`

**需求**：

- 缺勤人员：岗位、工位、姓名，一对多合并显示。
- 及时送检任务列表：可合并到现有任务列表，通过颜色区分；排序在加急后；规则为“发料齐套后 2 天未送检”。

**当前差距**：

- 装配看板 `summaryCards` 中有缺勤人员样例，但没有正式过程。
- `装配中心任务看板_装配任务查询` 返回齐套、发料状态、任务状态，但未返回发料齐套时间、送检状态、送检时间、超期天数。
- 质检任务看板能统计未检，但不是以装配“发料齐套后 2 天未送检”为起点。

**建议改造**：

| 过程 | 改造点 |
|---|---|
| `装配中心任务看板_装配任务查询` | 增加发料齐套时间、是否送检、送检时间、送检超期天数、显示颜色等级 |
| 新增 `装配现场大屏_缺勤人员查询` | 返回岗位、工位列表、姓名、班次 |
| 新增 `装配现场大屏_及时送检任务查询` | 返回发料齐套后超过 2 天未送检任务，支持加急后排序 |

**状态排序建议**：

1. 加急任务。
2. 发料齐套后 2 天未送检任务。
3. 发料齐套但未超期任务。
4. 缺件任务。
5. 普通未完成任务。

#### 9. 对现有看板章节的修正结论

- `机加设备生产运营看板` 当前只能作为“任务/设备状态看板”，还不能作为真实 OEE 看板。需要设备采集明细、标准工时、实际产量、质检良品数统一后才能上线 OEE。
- `board_view` 的 OEE 仍是样例值，本次需求明确后应优先替换为真实设备指标。
- `质检任务看板` 已有未完成和当天完成基础，但要满足一楼质检大屏，还必须补“超 2 天未检、最后生产完成时间、关键工序”。
- `装配任务看板` 的缺勤人员和及时送检当前不是正式数据链，需要新增过程。
- `TableTV` 可作为设备采集指标的现场承载页，但要注意 5 秒刷新频率和 SQL 性能。

## 追加修正：新增需求的页面归属与维护入口复核

本节用于修正“只按展示页面分析”的不足。新增需求不能只判断是否新增报表，还要判断字段维护入口是否已经存在。下面按现有 `src/views` 页面归属重新落点。

### 1. 标准工艺、生产工艺、关键工序

**涉及页面**：

- `src/views/ProcessManagement/ProcessesDevelop/index.vue`：制定标准工艺。
- `src/views/ProcessManagement/ProcessProduct/index.vue`：生产工艺。
- `src/views/ProcessManagement/ProcedureManagement/index.vue`：工序基础数据。
- `src/views/ProcessManagement/ProcessInquiry/index.vue`：工艺查询。

**修正结论**：

关键工序不是看板字段，而是工艺字段。应在标准工艺和生产工艺中维护：

| 字段 | 标准工艺维护 | 生产工艺维护 | 任务快照 |
|---|---|---|---|
| 是否关键工序 | 需要 | 需要，默认继承标准工艺，可按订单调整 | 需要 |
| 标准单件工时 | 需要 | 需要，生产订单可覆盖 | 需要 |
| 准备工时/工时合计 | 已有字段线索，应统一口径 | 需要同步 | 需要 |
| 是否影响质检及时率 | 可作为默认规则 | 订单级确认 | 快照后供质检看板读取 |

**原因**：

- `ProcessProduct` 已经同时出现“标准工艺”“生产工艺”“批量生成生产工艺”“保存为标准工艺”等业务动作，是订单级工艺维护的合理入口。
- `ProcessesDevelop` 是标准工艺维护入口，适合维护默认关键工序和标准工时。
- 质检看板、机加现场大屏只应该读取 `是否关键工序`，不应该承担维护。

**必须补充的后端能力**：

| 对象 | 建议改造 |
|---|---|
| `车间生产管理工艺_零件工序_工艺库` | 增加或确认 `是否关键工序`、`标准单件工时` 字段 |
| `车间生产管理工艺_零件生产工艺_工艺库` | 增加或确认订单级 `是否关键工序`、`标准单件工时` 字段 |
| 生产任务生成/下发过程 | 将关键工序和标准工时快照到任务或任务扩展表 |
| `View_标准工艺视图`、`View_生产工艺视图` | 返回关键工序标识和标准工时 |

**影响页面/看板**：

- `QualityManagement/QualityCenter`、`质检任务看板`：按关键工序统计应检、未检、超期。
- `ProductionManagement/MachiningCenter`、机加现场大屏：关键工序任务汇总和明细。
- `PlanManagement/ProductionPlanTrack`：工艺路线展示时可标识关键工序。

### 2. 缺勤人员：不能由看板静态维护

**涉及页面/模块**：

- `src/views/BasicData/PersonnelManagement` 或人员维护类页面。
- `src/views/BasicData/ShiftManagement`：班次管理。
- `src/views/SystemMaintenance/WorkstationManagement/index.vue`：工位和 SAP Resource 维护。
- `src/views/ProductionManagement/PersonnelBinding/index.vue`：人员绑定线索。
- `机加设备生产运营看板`、`装配任务看板`：缺勤展示。

**修正结论**：

缺勤人员必须有“应到人员”和“实到人员”两个来源：

```mermaid
flowchart LR
  A[班次管理/排班] --> B[应到人员]
  C[工位人员绑定/岗位配置] --> B
  D[考勤/上岗/登录/报工] --> E[实到人员]
  B --> F[缺勤计算过程]
  E --> F
  F --> G[机加/装配看板缺勤人员]
```

**维护入口建议**：

| 数据 | 建议入口 | 说明 |
|---|---|---|
| 人员基础信息 | 人员管理 | 姓名、岗位、班组、状态 |
| 班次规则 | 班次管理 | 班次开始/结束、跨天规则 |
| 应到人员/排班 | 若现有班次管理不能承载，需要新增或扩展排班维护 | 缺勤判断的前置条件 |
| 工位/岗位/人员关系 | 工位管理或人员绑定页面 | 支持一人多工位、多岗位合并显示 |
| 实到记录 | 考勤、上岗绑定、登录或报工记录 | 需要最终确认哪个是权威来源 |

**不建议**：

- 不建议从“没有报工”直接推断缺勤。
- 不建议在大屏页面手工维护缺勤人员。
- 不建议用静态数组或样例过程长期支撑现场看板。

**建议新增/改造过程**：

| 过程 | 用途 |
|---|---|
| `机加现场大屏_缺勤人员查询` | 返回岗位、工位列表、姓名、班次、应到时间、实到状态、缺勤原因 |
| `装配现场大屏_缺勤人员查询` | 同上，按装配岗位/工位过滤 |
| `班次排班_应到人员查询` | 统一给看板和报表复用 |

### 3. 报表页和维护页的拆分原则

现有新增需求里有很多“新增页面”，但页面类型并不相同：

| 需求 | 页面类型 | 是否承担维护 |
|---|---|---|
| 机加班次产量表 | 报表查询页 | 不承担班次维护，只读班次规则和报工记录 |
| 及时检验报表 | 催办/查询页 | 不维护质检结果，质检仍在质检中心处理 |
| 生产日报-送检 | 日报查询页 | 不维护送检/检验结果 |
| 让步接收记录 | 查询追溯页 | 不维护让步接收，来源是质检中心/不合格处置 |
| 发货通知列表 | SAP 数据查询页 | 默认不维护 SAP 发货通知；如需备注另建扩展表 |
| 手续确认报表 | 待办确认页 | 可以维护 `手续确认`、确认人、确认时间 |
| 及时齐套跟踪结果报表 | 查询 + 部分维护页 | 可维护预计可执行时间、主子订单人工关系，但要留日志 |
| 装配已排产需求 | 交付进度页 + 部分过程字段维护页 | 可维护钣金/泵、备注、人工日期类字段，不能替代装配中心所有业务动作 |
| 设计任务报工 | 新业务操作页 | 维护设计任务和设计工时 |
| 编程任务清单/编程报工 | 新业务操作页 | 维护编程任务、程序号、编程工时 |

### 4. 现有页面需补的字段归属

| 现有页面 | 应补字段/能力 | 说明 |
|---|---|---|
| `ProcessManagement/ProcessesDevelop` | `是否关键工序`、标准单件工时、保存提示 | 标准来源 |
| `ProcessManagement/ProcessProduct` | 自动带出标准工艺、订单级关键工序、生产工艺快照提示 | 生产任务使用来源 |
| `ProcessManagement/ProcedureManagement` | 工序是否需要 SAP 同步状态、是否允许作为关键工序候选 | 工序主数据 |
| `BasicData/ShiftManagement` | 班次业务日、跨天规则、是否参与缺勤/OEE | 班次产量和缺勤基础 |
| `SystemMaintenance/WorkstationManagement` | 工位-设备-岗位-人员关系、SAP Resource 映射 | 缺勤、OEE、设备看板基础 |
| `DeviceManagement/DeviceInformation` | 主要设备、是否参与 OEE、采集点位、设备能力参数 | 不独立承担所有工艺标准工时 |
| `ProductionManagement/MachiningCenter` | 报异常入口、扫码拣配、设备采集任务绑定、关键工序提示 | 机加执行入口 |
| `ProductionManagement/AssemblyCenter` | 报异常入口、发料齐套时间、送检状态、手续确认关联 | 装配执行入口 |
| `QualityManagement/QualityCenter` | 关键工序质检、让步接收、最后生产完成时间、超期天数 | 质检执行入口 |
| `PlanManagement/PlannOrderClose` | 批量关闭 SAP、逐单结果、失败原因、重试 | 关闭动作不应新建孤立页面 |

### 5. 对看板章节的修正

看板章节中出现的“缺勤人员”“关键工序”“及时率”“OEE”都不是单纯前端字段：

| 看板字段 | 必须有的业务维护入口 | 看板只负责 |
|---|---|---|
| 缺勤人员 | 班次/排班、人员工位绑定、实到来源 | 汇总展示和滚动明细 |
| 关键工序 | 标准工艺、生产工艺、任务快照 | 汇总关键工序任务和未检任务 |
| 质检及时率 | 质检中心、报工完成时间、送检记录 | 计算应检、已检、超期 |
| OEE | 设备档案、采集点位、工艺标准工时、报工/质检数量 | 展示设备指标和下钻 |
| 齐套/缺件 | SAP 缺件、MES 拣配、发料、主子订单关系 | 展示缺件状态和预计可执行时间 |

后续修改看板时，应先检查维护入口和统一过程是否存在。没有维护入口时，看板开发只能算“展示壳”，不能算需求闭环。
