diff --git a/MES_Manage_View_V20/今日工作汇报_2026-05-25.md b/MES_Manage_View_V20/今日工作汇报_2026-05-25.md new file mode 100644 index 0000000..b6105f1 --- /dev/null +++ b/MES_Manage_View_V20/今日工作汇报_2026-05-25.md @@ -0,0 +1,151 @@ +# 元利 MES 项目 — 今日工作汇报 + +日期:2026-05-25 +项目:MES_Manage_View_V20 + +## 一、今日主要工作 + +### 1. 完成 `src/views` 页面与 SAP 交互分析整理 + +基于 `元利项目详细分析.md`,对主系统 `src/views` 中涉及 SAP 的页面调用进行了梳理,明确了 SAP 交互主要集中在以下业务链路: + +| 业务链路 | 涉及页面 | SAP 交互内容 | +|---|---|---| +| 机加/装配排产 | `SelfMakePlan`、`SelfMakePlando`、`SelfMakePlandone`、`InstallMakePlan`、`InstallMakePlanDo` | 回写 SAP 生产订单计划日期、派工信息、优先级、未完成说明 | +| 生产订单关闭 | `PlannOrderClose` | 更新 SAP 生产订单关闭状态 | +| 工序基础数据 | `ProcedureManagement` | 新增、查询、修改 SAP RouteStages | +| 工位资源维护 | `WorkstationManagement` | 新增、修改 SAP Resources | +| 外协业务 | `OutsourceMange`、`SaleOutsourceMange`、装配排产相关页面 | 创建 SAP 采购申请 | +| 工时校验/投料 | `WorkHoursCheck` | 查询 SAP 生产订单、更新工序资源、提交 InventoryGenExits | +| 质检/收货 | `processReceive`、`materialReturn`、`QualityCenter` | 查询 SAP 订单、创建采购收货单、生成库存任务 | + +分析结论: +- 当前系统不是单点 SAP 对接,而是计划、工艺、工位、生产、外协、质检、工时多个模块共同对接 SAP。 +- SAP 写操作失败会造成 MES 与 SAP 状态不一致,需要在后续开发中保留失败原因、同步状态和重试依据。 +- 生产订单关闭、工时校验、外协采购申请、采购收货是高风险操作,需要重点检查重复提交和半成功问题。 + +### 2. 生成元利项目详细流程图 + +已根据 `元利项目详细分析.md` 生成: + +- `元利项目详细流程图.md` + +内容包括: +- 系统总体架构流程 +- 登录、菜单、权限流程 +- 基础资料维护流程 +- 标准工艺/生产工艺流程 +- 机加排产与 SAP 回写流程 +- 装配排产与采购申请流程 +- 机加生产执行流程 +- 装配中心执行流程 +- 质检流程 +- 外协流程 +- 工时校验与 SAP 投料流程 +- 异常管控流程 +- 生产订单关闭与 SAP 状态同步流程 +- 看板数据汇总流程 +- 新增需求与维护入口判断流程 + +### 3. 生成新增需求界面原型设计 + +已根据 `新增需求分析与开发记录_2026-05-23.md` 生成: + +- `新增需求界面原型设计_2026-05-25.md` + +主要覆盖以下页面原型: +- 设计任务报工 +- 机加班次产量表 +- 手续确认报表 +- 及时检验报表 +- 及时齐套跟踪结果报表 +- 生产日报-送检 +- 编程任务清单/编程报工 +- 让步接收记录 +- 装配已排产需求 +- 质检任务早知道 +- 及时送检报表 +- 发货通知列表 +- 工时异常报表 + +同时补充了现有页面改造说明,包括机加已排产、生产计划跟踪、序检收检、生产订单关闭、生产工艺、异常管控、及时开工报表、工时报表、领料/退库/外协小字段等。 + +### 4. 生成元利项目详细用户使用说明书 + +已根据 `元利项目详细分析.md` 生成: + +- `元利项目详细用户使用说明书.md` + +内容覆盖: +- 登录与通用操作 +- 基础资料维护 +- 工艺与图纸管理 +- 计划排产管理 +- 生产执行管理 +- 外协业务 +- 质检管理 +- 工时与报表 +- 异常管控 +- 设备管理与采集 +- 看板使用 +- 销售与交付查询 +- 新增需求相关页面使用 +- 系统维护 +- 常见问题和名词解释 + +### 5. 修正新增需求分析口径 + +对前期新增需求分析进行了补充修正,重点明确不能只判断“是否新增页面”,还必须判断: + +1. 数据来源是什么。 +2. 字段在哪里维护。 +3. 是否已有业务页面承载。 +4. 是否需要新增维护页面。 +5. 是否影响历史任务、报表和看板。 + +已补充的关键结论: +- 缺勤人员不能从“没有报工”反推,必须有应到人员和实到人员来源。 +- 关键工序应在标准工艺和生产工艺中维护,任务下发时做快照。 +- 看板只读取缺勤、关键工序、OEE、及时率等指标,不作为主维护入口。 + +## 二、今日修改工作 + +### 1. 工时校验报工培训 + +今日进行了工时校验和报工相关培训,重点说明: +- 报工数据与工时校验之间的关系。 +- MES 工时与 SAP 工时提交的关系。 +- 工时校验页面中 SAP 订单、工序、资源、投料的核对方式。 +- SAP 提交失败时需要查看失败原因,避免重复提交。 + +### 2. 质检历史数据修复 + +已处理质检历史数据修复工作,重点围绕历史质检记录、任务状态和相关查询口径进行校正,减少历史数据对当前质检查询和报表统计的影响。 + +### 3. 修改生产订单关闭判断条件 + +已修改生产订单关闭相关判断条件,调整关闭前校验逻辑,避免不符合条件的订单被错误关闭,同时减少已完成、已入库、已取消等状态判断不一致带来的问题。 + +### 4. 修复休息日加班和法定加班计算 Bug + +已修复休息日加班和法定加班计算异常问题,调整加班类型对应的计算逻辑,避免休息日加班和法定加班工时统计错误。 + +## 三、今日产出文档 + +| 文档 | 说明 | +|---|---| +| `元利项目详细流程图.md` | 根据详细分析生成系统级和业务级流程图 | +| `新增需求界面原型设计_2026-05-25.md` | 根据新增需求生成界面原型和页面说明 | +| `元利项目详细用户使用说明书.md` | 根据详细分析生成面向用户的完整操作说明 | +| `新增需求分析与开发记录_2026-05-23.md` | 补充数据来源、维护入口、是否新建页面等分析 | +| `隐性需求综合分析_2026-05-25.md` | 补充维护入口和隐性需求判断规则 | +| `MES_Manage_View_V20_src_views_逐页面详细分析.md` | 补充页面归属、缺勤、关键工序、看板维护边界说明 | + +## 四、当前结论 + +1. 元利 MES 与 SAP 的交互范围较广,后续所有涉及 SAP 写操作的功能都需要补同步状态、失败原因和重试机制。 +2. 新增需求不能简单按“新增页面”评估,要同步判断维护入口、数据来源、历史数据和看板影响。 +3. 工时、质检、订单关闭、加班计算属于当前重点稳定性工作,已完成培训和部分修复。 +4. 后续开发建议优先处理低风险、小范围功能,再推进装配已排产需求、及时齐套、设计/编程报工、OEE 等跨模块功能。 + + diff --git a/MES_Manage_View_V20/元利项目详细分析.md b/MES_Manage_View_V20/元利项目详细分析.md new file mode 100644 index 0000000..c0afb48 --- /dev/null +++ b/MES_Manage_View_V20/元利项目详细分析.md @@ -0,0 +1,9794 @@ +# 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 + +### 页面功能 + +该文件属于系统布局组件,负责菜单、导航、标签页、内容承载或窗口自适应,不承载具体业务流程。 + +页面可见的操作/字段包括 “[   登出   ]  --> Log Off”、“取 消”、“提 交”、“旧密码”、“新密码”、“确认密码”、“修改密码”,这些是判断页面业务范围的主要线索。 + +后端主要围绕 `登录基础数据_人员信息_登陆检查密码`、`登录基础数据_人员信息_修改密码`、`WEB_报警查询_未读报警记录_查询`、`WEB_报警查询_未读报警记录_未读条数查询` 取数或提交业务动作。 + +### 页面流程图 + +通用流程:用户输入查询/维护条件 -> 调用 `登录基础数据_人员信息_登陆检查密码` -> `登录基础数据_人员信息_修改密码` -> `WEB_报警查询_未读报警记录_查询` -> `WEB_报警查询_未读报警记录_未读条数查询` -> 后端读写 SQL Server -> 页面刷新表格或弹窗结果。 + +### 用户操作与页面线索 + +可见按钮/字段线索:`[   登出   ]  --> 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 拣配、发料、主子订单关系 | 展示缺件状态和预计可执行时间 | + +后续修改看板时,应先检查维护入口和统一过程是否存在。没有维护入口时,看板开发只能算“展示壳”,不能算需求闭环。 diff --git a/MES_Manage_View_V20/元利项目详细流程图.md b/MES_Manage_View_V20/元利项目详细流程图.md new file mode 100644 index 0000000..1c1d83c --- /dev/null +++ b/MES_Manage_View_V20/元利项目详细流程图.md @@ -0,0 +1,551 @@ +# 元利 MES 项目详细流程图 + +生成日期:2026-05-25 +依据文档:`元利项目详细分析.md` + +说明: +- 本文把 `元利项目详细分析.md` 中的页面、存储过程、SAP 调用、看板和新增隐性需求整理为可维护的 Mermaid 流程图。 +- 图中页面路径以 `src/views/...` 为主,过程名称以文档分析到的 `CreateData(type, name, params)` 调用为主。 +- `type=11` 通常表示查询/读取或通用执行,`type=12` 通常表示写入/业务动作,具体仍以后端实现为准。 + +## 1. 系统总体架构流程 + +```mermaid +flowchart TD + U[用户/班组/计划/质检/设备/管理层] --> FE[Vue 2.7 前端页面] + FE --> ROUTE[动态菜单/路由/权限] + ROUTE --> PAGE[src/views 业务页面] + + PAGE --> CD[CreateData type + procedure + params] + CD --> ED[ExecDatabase 统一后端接口] + ED --> SP[SQL Server 存储过程] + SP --> DB[(YL_MESDB)] + + PAGE --> B1[src/api/b1s.js] + B1 --> SAP[SAP B1 Service Layer] + SP --> SAPDB[(SAP.SBO_YL 跨库/同步表)] + + PAGE --> TM[tm 仓储/条码任务接口] + TM --> WMS[库存/条码任务服务] + + DB --> VIEW[业务视图/报表视图] + VIEW --> PAGE + VIEW --> DASH[生产/装配/质检/机加/综合看板] + SAPDB --> VIEW + SAP --> PAGE + WMS --> PAGE +``` + +关键链路: +- 前端页面不直接写 SQL,而是通过 `CreateData` 组装过程名和参数。 +- SAP 既有前端直接调用 B1 Service Layer,也有 SQL 跨库或同步表读取。 +- 看板主要读存储过程和视图,本身通常不维护业务数据。 + +## 2. 登录、菜单、权限与页面访问流程 + +```mermaid +flowchart TD + A[进入登录页 src/views/login] --> B[输入工号/密码] + B --> C[登录基础数据_人员信息_登陆检查密码] + C --> D{校验通过?} + D -- 否 --> E[提示登录失败] + D -- 是 --> F[写入 Token/用户信息] + F --> G[加载用户角色/菜单权限] + G --> H[登录基础数据_二级菜单/角色权限] + H --> I[生成动态路由] + I --> J[进入 Layout] + J --> K[侧边栏/标签页/AppMain] + K --> L[打开具体业务页面] +``` + +涉及页面: +- `src/views/login/index.vue` +- `src/views/layout/Layout.vue` +- `src/views/layout/components/Sidebar` +- `src/views/SystemMaintenance/MenuManagement` +- `src/views/SystemMaintenance/SystemRrolemaintenance` + +## 3. 基础资料维护总流程 + +```mermaid +flowchart TD + A[系统基础资料] --> B[人员/组织/角色] + A --> C[工位/设备/SAP Resource] + A --> D[班次/人员绑定] + A --> E[工序/物料/图纸/产品结构] + + B --> B1[PersonnelManagement/OrgManagement/SystemRole] + B1 --> B2[人员、岗位、班组、权限] + + C --> C1[WorkstationManagement] + C1 --> C2[维护工位] + C2 --> C3{是否同步 SAP Resource?} + C3 -- 是 --> C4[POST/PATCH /Resources] + C3 -- 否 --> C5[仅 MES 保存] + C4 --> C6[记录同步状态/失败原因] + C5 --> C6 + + C --> C7[DeviceInformation] + C7 --> C8[设备名称/型号/类型/工位/点检/能力] + + D --> D1[ShiftManagement/PersonnelBinding] + D1 --> D2[班次规则/人员工位绑定] + + E --> E1[ProcedureManagement] + E1 --> E2[工序基础数据] + E2 --> E3{是否同步 SAP RouteStages?} + E3 -- 是 --> E4[POST/PATCH /RouteStages] + E3 -- 否 --> E5[MES 本地维护] +``` + +维护口径: +- 缺勤人员不能由看板维护,必须来自班次/排班、人员工位绑定和实到来源。 +- 设备 OEE 基础数据应分散在设备档案、工位、工艺、采集配置中维护,不应只靠看板公式。 + +## 4. 工艺、图纸、标准工艺、生产工艺流程 + +```mermaid +flowchart TD + A[产品/物料/图纸基础] --> B[产品结构维护 CraftMaintain] + A --> C[零件图纸 PartDrawing] + A --> D[工艺图纸 ProcessDrawing] + A --> E[工序基础 ProcedureManagement] + + B --> F[制定标准工艺 ProcessesDevelop] + C --> F + D --> F + E --> F + + F --> G[标准工艺库] + G --> G1[工序顺序] + G --> G2[标准工时/准备工时] + G --> G3[是否关键工序] + + G --> H[生产工艺 ProcessProduct] + H --> I{订单是否已有生产工艺?} + I -- 是 --> J[编辑订单级生产工艺] + I -- 否 --> K[按物料带出标准工艺草稿] + K --> L{用户保存?} + L -- 否 --> M[不写入生产工艺] + L -- 是 --> N[写入生产工艺库] + + J --> O[启用/下发生产工艺] + N --> O + O --> P[生成任务可用工艺快照] + P --> Q[排产/报工/质检/看板读取] +``` + +关键结论: +- `关键工序` 应在标准工艺和生产工艺维护。 +- 生产任务下发时应快照关键工序和标准工时,避免后续改标准工艺影响历史任务。 +- 质检大屏、机加大屏只读取关键工序,不作为维护入口。 + +## 5. 生产订单、机加排产与 SAP 回写流程 + +```mermaid +flowchart TD + A[SAP/MES 生产订单同步] --> B[MES_接口_生产计划] + B --> C[待排产 SelfMakePlan] + C --> D[选择订单/工序/设备/工位/时间] + D --> E[排产保存] + E --> F[MES_接口_生产计划_生产任务] + F --> G[任务排产状态=已排产] + + E --> H{是否回写 SAP 生产订单日期?} + H -- 是 --> I[PATCH /ProductionOrders] + I --> J{SAP 回写成功?} + J -- 是 --> K[记录同步成功] + J -- 否 --> L[记录失败原因/待重试] + H -- 否 --> M[仅 MES 排产] + + G --> N[已排产 SelfMakePlando/SelfMakePlandone] + N --> O[生产计划跟踪/及时开工/机加中心] +``` + +涉及页面: +- `PlanManagement/SelfMakePlan` +- `PlanManagement/SelfMakePlando` +- `PlanManagement/SelfMakePlandone` +- `ProductionManagement/ProductionPlanTrack` +- `AnomalousManagement/PunctualWork` + +风险点: +- MES 排产成功但 SAP 回写失败时,需要保留同步状态和失败原因。 +- 已排产页面新增历史工时、总工时后,必须明确工时来源是生产报工、质检、异常还是设备采集。 + +## 6. 装配排产、外购申请与 SAP 流程 + +```mermaid +flowchart TD + A[装配/电气/系统相关订单] --> B[InstallMakePlan 待排产] + B --> C[选择装配任务/计划时间/优先级] + C --> D[保存装配排产] + D --> E[生成装配生产任务] + + C --> F{需要采购申请?} + F -- 是 --> G[POST /PurchaseRequests] + G --> H{SAP 采购申请成功?} + H -- 是 --> I[记录 SAP 采购请求号] + H -- 否 --> J[记录失败/允许重试] + F -- 否 --> K[不生成采购申请] + + D --> L{是否回写 SAP 生产订单?} + L -- 是 --> M[PATCH /ProductionOrders] + M --> N[同步派工/日期/说明] + L -- 否 --> O[仅 MES 保存] + + E --> P[InstallMakePlanDo/装配中心/装配看板] +``` + +涉及页面: +- `PlanManagement/InstallMakePlan` +- `PlanManagement/InstallMakePlanDo` +- `ProductionManagement/AssemblyCenter` +- `装配任务看板` + +新增需求影响: +- 发料齐套时间、装配完成时间、手续确认、送检状态会反向要求装配排产和装配中心补字段。 + +## 7. 机加生产执行流程 + +```mermaid +flowchart TD + A[已排产机加任务] --> B[MachiningCenter 机加中心] + B --> C{任务是否可开工?} + C -- 否 --> C1[显示不可操作原因: 未齐套/上序未合格/异常/编程未完成/设备占用] + C -- 是 --> D[开始加工/开工] + + D --> E[操作记录表写入开始时间/人员/设备] + E --> F[加工过程] + F --> G{是否异常?} + G -- 是 --> H[直接报异常] + H --> I[AbnormalControl 异常管控] + I --> F + + F --> J[结束报工] + J --> K[写入 YL_加工中心_操作记录表] + K --> L[更新完成数量/工时/任务状态] + + L --> M{是否需要质检?} + M -- 是 --> N[进入质检任务/序检/首检/终检] + M -- 否 --> O[进入下序或完成] + + O --> P{是否入库/转序/外协?} + P -- 转序 --> A + P -- 入库 --> Q[入库/库存任务] + P -- 外协 --> R[外协流程] +``` + +涉及对象: +- `YL_加工中心_操作记录表` +- `MES_接口_生产计划_生产任务` +- `View_生产订单_MES` +- `ProductionManagement/MachiningCenter` + +新增需求影响: +- 编程任务完成状态可能成为开工前置条件。 +- 设备采集工时、程序工时、人工报工工时需要区分。 +- 条码拣配会影响齐套、发料、可开工状态。 + +## 8. 装配中心执行流程 + +```mermaid +flowchart TD + A[已排产装配任务] --> B[AssemblyCenter 装配中心] + B --> C[查询 SAP/MES 订单、物料、发料、齐套] + C --> D{发料/齐套是否满足?} + D -- 否 --> E[缺件/待发料/不可开工] + E --> F[缺件明细/预计可执行时间] + D -- 是 --> G[开始装配] + + G --> H[装配报工/工时记录] + H --> I{是否产生异常?} + I -- 是 --> J[直接报异常 -> AbnormalControl] + I -- 否 --> K[继续装配] + + K --> L[装配完成/更新任务状态] + L --> M{是否需要送检?} + M -- 是 --> N[送检/质检任务] + M -- 否 --> O[入库/发货/后续确认] + + L --> P[手续确认报表] + P --> Q{手续确认完成?} + Q -- 否 --> R[待办保留] + Q -- 是 --> S[从待办消失] + + O --> T[装配看板/生产任务看板] +``` + +关键新增字段: +- 发料齐套时间 +- 装配完成时间 +- 送检状态/送检时间 +- 手续确认、确认人、确认时间 +- 当前对应人员/当前对应内容 + +## 9. 质检业务流程 + +```mermaid +flowchart TD + A[质检任务来源] --> A1[机加报工后待检] + A --> A2[装配送检] + A --> A3[采购入库检] + A --> A4[序检收检/外协收检] + A --> A5[退库/销售退货/其他入库] + + A1 --> B[QualityCenter/CheckTask] + A2 --> B + A3 --> B + A4 --> B + A5 --> B + + B --> C[录入检验结果] + C --> D{合格?} + D -- 是 --> E[合格数量/质检完成] + D -- 否 --> F[不合格处理 Unqualified] + + F --> G{处置方式} + G -- 返工 --> H[回生产/返修] + G -- 报废 --> I[报废记录] + G -- 让步接收 --> J[让步接收字段] + G -- 复检 --> K[生成复检/再次检验] + + E --> L{是否 SAP 收货/库存动作?} + L -- 是 --> M[PurchaseDeliveryNotes 或库存任务] + L -- 否 --> N[MES 本地完成] + + J --> O[让步接收记录查询页] + E --> P[质检看板/及时检验/生产日报] +``` + +涉及页面: +- `QualityManagement/QualityCenter` +- `QualityManagement/CheckTask/processReceive` +- `QualityManagement/CheckTask/purchaseIncoming` +- `QualityManagement/CheckTask/final` +- `QualityManagement/Unqualified` +- `QualityManagement/QualityDetails` + +新增需求影响: +- 及时检验要以生产完成/报工完成时间为起点。 +- 关键工序要从工艺/任务快照读取。 +- 让步接收记录页只查询,不应成为维护入口。 + +## 10. 外协业务流程 + +```mermaid +flowchart TD + A[生产任务指派对象=外协] --> B[OutsourceMange 外协管理] + B --> C[生成外协任务/采购申请] + C --> D{是否提交 SAP 采购申请?} + D -- 是 --> E[POST /PurchaseRequests] + E --> F{SAP 成功?} + F -- 是 --> G[记录采购请求/单据关系] + F -- 否 --> H[记录失败/重试] + D -- 否 --> I[MES 本地外协任务] + + G --> J[外协加工/供应商交付] + I --> J + J --> K[序检收检/外协收货] + K --> L[记录供应商/SAP采购收货单号/指派对象] + L --> M{质检合格?} + M -- 是 --> N[SAP PurchaseDeliveryNotes/入库] + M -- 否 --> O[不合格/返修/让步] + N --> P[外协报表/供应商质量统计] + O --> P +``` + +涉及页面: +- `ProductionManagement/OutsourceMange` +- `ProductionManagement/OutsourceSheet` +- `ProductionManagement/SaleOutsourceMange` +- `QualityManagement/CheckTask/processReceive` + +关键修正: +- 供应商、SAP 采购收货单号、指派对象应在外协/序检收检链路维护,报表只消费这些字段。 + +## 11. 工时、SAP 工时校验与投料流程 + +```mermaid +flowchart TD + A[报工/设备采集/质检/装配] --> B[工时来源汇总] + B --> B1[人工报工工时] + B --> B2[设备运行工时] + B --> B3[程序工时] + B --> B4[质检/装配/设计/编程工时] + + B1 --> C[Workhours/Timesheet/WorkHoursCheck] + B2 --> C + B3 --> C + B4 --> C + + C --> D[工时校验] + D --> E{是否提交 SAP?} + E -- 否 --> F[MES 工时报表/绩效] + E -- 是 --> G[GET /ProductionOrders] + G --> H[匹配 SAP 工序/资源] + H --> I[POST /InventoryGenExits 投料] + H --> J[PATCH /ProductionOrders 更新工序资源/工时] + I --> K{SAP 成功?} + J --> K + K -- 是 --> L[记录提交成功] + K -- 否 --> M[记录失败原因/允许重试] +``` + +涉及页面: +- `ProductionManagement/WorkHoursCheck` +- `ProductionManagement/WorkhoursEdit` +- `ProductionManagement/Workhours` +- `ProductionManagement/Timesheet` + +风险点: +- 程序工时、设备工时、人工工时不是同一口径。 +- 上 SAP 的工时要明确是否包含设计、编程、质检、装配、异常。 + +## 12. 异常管控流程 + +```mermaid +flowchart TD + A[报工/质检/外协/装配/设计/编程页面] --> B[选择任务] + B --> C[点击报异常] + C --> D[带出任务/订单/工序/人员信息] + D --> E[填写异常类型/说明/附件] + E --> F[选择审批人 多选] + F --> G[保存异常] + G --> H[AbnormalControl 异常管控] + + H --> I[审批人待办可见] + I --> J{任一审批人处理?} + J -- 否 --> K[异常未关闭] + J -- 是 --> L[记录实际处理人] + L --> M[异常进入下一状态/关闭] + + K --> N[影响任务可操作性/及时开工/看板] + M --> O[任务恢复或结束] +``` + +关键规则: +- 多审批人不是会签,是多人可见、一人处理。 +- 异常需要带业务域、任务、工序、责任部门,否则看板异常数会混淆。 + +## 13. 生产订单关闭与 SAP 状态同步流程 + +```mermaid +flowchart TD + A[生产订单关闭 PlannOrderClose] --> B[查询可关闭订单] + B --> C[选择单个或批量订单] + C --> D[二次确认] + D --> E[逐单 PATCH /ProductionOrders] + E --> F{单据关闭成功?} + F -- 是 --> G[记录成功/更新 MES 状态] + F -- 否 --> H[记录失败原因] + H --> I[失败项重试] + G --> J[刷新关闭页] + H --> J + J --> K[影响排产页/生产中心/手续确认/看板] +``` + +要求: +- 批量关闭不应“一条失败全批失败”,应逐单记录成功/失败。 +- 关闭结果要被排产、生产中心、装配看板、手续确认报表识别。 + +## 14. 看板数据汇总流程 + +```mermaid +flowchart TD + A[主系统业务数据] --> B[统一视图/存储过程] + C[SAP 同步表/跨库表] --> B + D[设备采集缓存/历史] --> B + E[质检记录/报工记录] --> B + + B --> P[生产任务看板] + B --> Q[装配任务看板] + B --> R[质检任务看板] + B --> S[机加设备生产运营看板] + B --> T[TableTV 工位监控] + B --> U[board_view 综合大屏] + + P --> P1[齐套率/待排产/未及时开工/加急/未入库] + Q --> Q1[装配任务/发货状态/缺件/异常/缺勤] + R --> R1[未清/及时率/关键工序/当天完成] + S --> S1[设备状态/在制/关键工序/缺勤/OEE] + U --> U1[合同进度/工时/采购/库存/OEE] +``` + +看板治理规则: +- 看板只展示和钻取,不作为主维护入口。 +- SAP 类指标必须有同步时间和同步状态。 +- `GETDATE()` 型实时指标如要做日报/历史回看,应补统计日期或日快照。 +- `board_view` 中 OEE、采购、库存等占位指标上线前必须接真实数据或隐藏。 + +## 15. 新增需求与维护入口判断流程 + +```mermaid +flowchart TD + A[收到新增需求/新增字段] --> B{字段性质是什么?} + B -- 主数据 --> C[找基础维护页: 人员/班次/工位/设备/工序/工艺] + B -- 订单过程数据 --> D[找业务页: 计划/排产/装配/机加/质检] + B -- SAP 同步数据 --> E[找 SAP 同步表/接口/同步时间] + B -- 设备采集数据 --> F[找采集原始表/设备状态历史/任务绑定] + B -- 人工确认 --> G[待办页维护并记录确认人时间] + B -- 计算指标 --> H[统一视图/过程/快照] + + C --> I{现有页面能承载?} + D --> I + E --> I + F --> I + G --> I + H --> I + + I -- 是 --> J[扩展现有页面/过程] + I -- 否 --> K[新增维护页或业务页] + J --> L[同步菜单/权限/日志/历史策略] + K --> L + L --> M[检查影响看板/报表/SAP/历史数据] + M --> N[开发排期] +``` + +典型判断: +- 缺勤人员:先确认排班/应到和实到来源;没有维护入口则新增或扩展排班/出勤维护。 +- 关键工序:在标准工艺和生产工艺维护,任务下发快照,看板只读取。 +- 让步接收:质检中心维护,记录页只查询。 +- OEE:设备采集、报工、质检、工艺标准工时共同计算,不是人工维护字段。 + +## 16. 端到端生产业务主流程 + +```mermaid +flowchart TD + A[SAP/MES 生产订单] --> B[工艺准备] + B --> B1[标准工艺] + B1 --> B2[生产工艺] + B2 --> B3[任务工艺快照] + + A --> C[计划排产] + C --> C1[机加排产] + C --> C2[装配排产] + C1 --> D[生产执行] + C2 --> E[装配执行] + + D --> F[报工/工时/设备采集] + E --> G[装配报工/发料/齐套/送检] + + F --> H[质检] + G --> H + H --> I{质量结果} + I -- 合格 --> J[入库/转序/交付] + I -- 不合格 --> K[返工/报废/让步接收/复检] + K --> D + + J --> L[工时校验/SAP 投料/订单状态] + L --> M[订单关闭] + M --> N[报表/看板/日报] + + D --> O[异常管控] + E --> O + H --> O + O --> N + + N --> P[管理层 KPI/现场大屏/追溯查询] +``` + +这个主流程是后续所有新增需求的评估底图:任何新增字段都要判断它落在工艺准备、计划排产、生产执行、质检、入库交付、SAP 回写、看板报表中的哪一环。 diff --git a/MES_Manage_View_V20/元利项目详细用户使用说明书.md b/MES_Manage_View_V20/元利项目详细用户使用说明书.md new file mode 100644 index 0000000..29cdcdc --- /dev/null +++ b/MES_Manage_View_V20/元利项目详细用户使用说明书.md @@ -0,0 +1,1066 @@ +# 元利 MES 项目详细用户使用说明书 + +生成日期:2026-05-25 +依据文档:`元利项目详细分析.md` +适用系统:`MES_Manage_View_V20` + +## 一、使用说明 + +本文面向生产操作工、装配人员、质检员、计划员、工艺员、设备管理员、班组长、主管、系统管理员和看板使用人员,说明元利 MES 系统各功能模块的日常使用方式。 + +注意: +- 不同账号看到的菜单不同,本文按系统功能完整说明。 +- 页面名称可能由数据库菜单动态配置,实际菜单名称以现场系统为准。 +- 涉及 SAP 的操作,如果 SAP 接口失败,应以页面提示和操作日志为准,不要重复提交同一业务动作。 +- 看板页面主要用于展示,不作为业务数据维护入口。 + +## 二、系统登录与通用操作 + +### 2.1 登录系统 + +操作步骤: + +1. 打开浏览器,输入 MES 系统地址。 +2. 在登录页输入工号和密码。 +3. 点击 `登录`。 +4. 如果账号有多个角色,选择本次要使用的角色。 +5. 进入系统首页或九宫格功能入口。 + +常见问题: + +| 问题 | 处理方式 | +|---|---| +| 提示账号或密码错误 | 检查工号、密码,必要时联系系统管理员重置 | +| 登录后无菜单 | 检查账号是否分配角色和菜单权限 | +| 页面空白或跳回登录页 | 清理浏览器缓存后重新登录 | + +### 2.2 主界面说明 + +系统主界面一般包括: + +| 区域 | 用途 | +|---|---| +| 左侧菜单 | 按模块进入计划、工艺、生产、质检、设备、系统维护等页面 | +| 顶部栏 | 显示当前用户、消息、修改密码、退出系统 | +| 标签栏 | 切换已经打开的页面 | +| 主工作区 | 显示当前页面的查询条件、表格、弹窗和操作按钮 | + +### 2.3 通用查询操作 + +大多数页面都采用相同模式: + +1. 在页面上方填写查询条件,例如订单号、物料编码、日期、工位、状态。 +2. 点击 `查询`。 +3. 在下方表格查看结果。 +4. 如需重新查询,点击 `重置` 清空条件。 +5. 如页面支持导出,点击 `导出` 生成表格文件。 + +### 2.4 通用新增、编辑、删除 + +| 操作 | 使用方式 | +|---|---| +| 新增 | 点击 `新增`,填写必填项,点击保存 | +| 编辑 | 选中一行或点击行内 `编辑`,修改字段后保存 | +| 删除 | 选中记录后点击 `删除`,确认后删除 | +| 批量操作 | 勾选多行后点击批量按钮,按弹窗提示确认 | + +操作要求: +- 带星号字段必须填写。 +- 日期字段建议使用日期选择器。 +- 删除和批量操作前需要确认数据是否已经被业务引用。 + +## 三、角色与日常工作入口 + +| 角色 | 常用入口 | 主要工作 | +|---|---|---| +| 计划员 | 自制件排产、装配排产、生产订单关闭 | 排产、调整计划、关闭订单、同步 SAP | +| 工艺员 | 工序管理、制定标准工艺、生产工艺、工艺查询 | 维护工艺、生成生产工艺、查看路线 | +| 机加操作工 | 机加中心、领料、退库、报工 | 收料、开工、报工、异常反馈 | +| 装配人员 | 装配中心、装配任务管理 | 发料、装配、报工、送检、异常反馈 | +| 质检员 | 质检中心、各类检验任务、不合格处理 | 检验、录入结果、处理不合格 | +| 外协人员 | 外协管理、外协任务报表、序检收检 | 外协派发、收货、质检追溯 | +| 设备管理员 | 设备信息、设备实时数据、设备历史数据 | 维护设备、查看设备状态 | +| 班组长/主管 | 及时开工、工时报表、看板、异常管控 | 任务跟踪、异常处理、产量和工时分析 | +| 系统管理员 | 菜单、人员、组织、角色、工位管理 | 权限、主数据、基础配置 | + +## 四、基础资料维护 + +### 4.1 人员维护 + +适用页面: +- `SystemMaintenance/PersonnelManagement` +- 人员角色、组织、权限相关页面 + +用途: +- 维护员工基本信息。 +- 设置人员所属组织、岗位、角色。 +- 支持后续登录、权限、派工、报工、缺勤统计。 + +操作步骤: + +1. 进入人员维护页面。 +2. 按工号、姓名、组织查询人员。 +3. 点击新增或编辑。 +4. 填写工号、姓名、部门、岗位、状态等信息。 +5. 保存后检查角色权限是否正确。 + +注意: +- 离职或停用人员应设置为不可用,不建议直接删除历史人员。 +- 缺勤、班次、人员绩效依赖人员基础信息准确。 + +### 4.2 组织与角色维护 + +适用页面: +- `SystemMaintenance/OrgManagement` +- `SystemMaintenance/SystemRrolemaintenance` +- `SystemMaintenance/MenuManagement` + +用途: +- 设置组织结构。 +- 设置系统角色。 +- 给角色分配菜单和功能权限。 + +操作步骤: + +1. 维护组织节点。 +2. 新建或编辑角色。 +3. 给角色分配菜单权限。 +4. 给用户绑定角色。 +5. 使用对应账号重新登录确认菜单是否生效。 + +### 4.3 工位维护 + +适用页面: +- `SystemMaintenance/WorkstationManagement` + +用途: +- 维护工位号、工位名称。 +- 对接 SAP Resource。 +- 作为设备、人员、任务、缺勤和看板统计的基础。 + +操作步骤: + +1. 进入工位管理页面。 +2. 查询现有工位。 +3. 新增或编辑工位。 +4. 如需同步 SAP,检查资源编码、名称和同步结果。 +5. 保存后确认生产页面是否可以选择该工位。 + +注意: +- 工位编码应保持稳定,避免影响历史任务和 SAP 资源。 +- 如果 SAP 同步失败,应查看失败提示并重新同步。 + +### 4.4 设备信息维护 + +适用页面: +- `DeviceManagement/DeviceInformation` + +用途: +- 维护设备名称、型号、类型、工位、点检类型、工时单价、加工能力。 +- 支持设备状态、工时、OEE、机加看板等功能。 + +操作步骤: + +1. 进入设备信息页面。 +2. 按设备名称、设备类型、工位查询。 +3. 点击新增或编辑。 +4. 填写设备名称、设备型号、设备类型、加工工艺、工位、点检类型等。 +5. 保存。 + +注意: +- 设备标准工时不应简单作为所有零件的标准工时,标准单件工时优先从标准工艺或生产工艺取。 +- 设备是否参与 OEE、采集点位、主要设备等字段如后续上线,应由设备管理员维护。 + +### 4.5 班次与人员绑定 + +适用页面: +- `ProductionManagement/ShiftManagement` +- `ProductionManagement/PersonnelBinding` + +用途: +- 维护班次规则。 +- 维护人员与工位、岗位、设备的绑定关系。 +- 为班次产量、缺勤人员、设备看板提供基础数据。 + +操作注意: +- 班次跨天规则必须明确。 +- 缺勤不能从“没有报工”直接推断,必须有应到和实到来源。 +- 一个人可能对应多个工位,展示时需要合并显示。 + +## 五、工艺与图纸管理 + +### 5.1 工序基础数据 + +适用页面: +- `ProcessManagement/ProcedureManagement` + +用途: +- 维护工序编号和工序名称。 +- 部分工序需要同步到 SAP RouteStages。 + +操作步骤: + +1. 进入工序管理页面。 +2. 查询已有工序。 +3. 新增或编辑工序编号、工序名称。 +4. 如页面提示同步 SAP,确认同步结果。 +5. 保存。 + +注意: +- 工序编号应避免重复。 +- 若 SAP 同步失败,不应继续使用该工序进行正式下发,需先处理同步问题。 + +### 5.2 图纸查看与维护 + +适用页面: +- `ProcessManagement/PartDrawing` +- `ProcessManagement/PartDrawlook` +- `ProcessManagement/ProcessDrawing` +- `ProcessManagement/ProcurementDrawlook` + +用途: +- 上传、维护、查看零件图纸、工艺图纸、采购图纸。 +- 支持生产和质检查看图纸依据。 + +通用操作: + +1. 输入物料编码、物料名称或图号查询。 +2. 查看图纸列表。 +3. 点击查看或下载。 +4. 如有权限,可新增、替换或删除图纸。 + +### 5.3 产品结构维护 + +适用页面: +- `CraftManagement/CraftMaintain` + +用途: +- 维护产品结构树。 +- 维护产品材料和工艺参数。 +- 为后续工艺、物料、BOM 和生产任务提供结构基础。 + +操作步骤: + +1. 进入产品结构维护页面。 +2. 展开产品结构树。 +3. 选择节点后新增、编辑或删除子节点。 +4. 维护产品材料和工艺参数。 +5. 保存后确认结构是否正确。 + +### 5.4 制定标准工艺 + +适用页面: +- `ProcessManagement/ProcessesDevelop` + +用途: +- 为物料维护标准工艺路线。 +- 设置工序顺序、标准工时、准备工时。 +- 后续可维护关键工序标识。 + +操作步骤: + +1. 进入制定标准工艺页面。 +2. 按物料编码或名称查询。 +3. 选择物料后维护工序路线。 +4. 设置每道工序的工序名称、顺序、标准工时、准备工时等。 +5. 点击保存。 + +注意: +- 标准工艺是生产工艺的默认来源。 +- 保存成功后应有明确提示。 +- 关键工序应在标准工艺中作为默认标识维护。 + +### 5.5 生产工艺维护 + +适用页面: +- `ProcessManagement/ProcessProduct` + +用途: +- 按生产订单或物料维护实际生产工艺。 +- 将标准工艺转为订单级生产工艺。 +- 下发生产工艺任务。 + +操作步骤: + +1. 进入生产工艺页面。 +2. 按订单、物料、标准工艺状态、生产工艺状态查询。 +3. 点击编辑生产工艺。 +4. 若订单没有生产工艺,可按物料带出标准工艺作为草稿。 +5. 检查工序顺序、指派对象、标准工时等内容。 +6. 保存后启用或下发。 + +注意: +- 标准工艺带出后不应自动保存,必须由用户确认保存。 +- 已生成生产工艺不建议随标准工艺自动变化。 +- 关键工序、标准工时等字段下发任务时应形成快照。 + +### 5.6 工艺查询 + +适用页面: +- `ProcessManagement/ProcessInquiry` + +用途: +- 查询标准工艺或生产工艺。 +- 查看工艺路线和工序明细。 +- 支持打印或导出。 + +## 六、计划排产管理 + +### 6.1 机加待排产 + +适用页面: +- `PlanManagement/SelfMakePlan` + +用途: +- 查询未排产机加任务。 +- 设置计划开始、计划完成、工位、设备、优先级等。 +- 将 MES 排产信息同步到 SAP 生产订单。 + +操作步骤: + +1. 进入机加待排产页面。 +2. 输入生产订单、物料、计划号等条件查询。 +3. 选择待排产任务。 +4. 设置计划开始时间、计划完成时间、指派对象、工位或设备。 +5. 点击保存或排产。 +6. 如页面触发 SAP 回写,等待返回结果。 +7. 如果 SAP 回写失败,记录失败原因并联系相关人员处理。 + +注意: +- 排产时间会影响及时开工、生产看板和 SAP 订单日期。 +- 排产后任务进入已排产或待执行状态。 + +### 6.2 机加已排产 + +适用页面: +- `PlanManagement/SelfMakePlando` +- `PlanManagement/SelfMakePlandone` + +用途: +- 查看已排产任务。 +- 调整部分排产信息。 +- 查看任务状态、工艺、计划时间、SAP 同步结果。 + +操作步骤: + +1. 进入已排产页面。 +2. 按生产订单、物料、计划开始日期、计划完成日期查询。 +3. 查看任务状态和加工状态。 +4. 如需调整,点击编辑。 +5. 如需查看历史工时,点击总工时或工时明细入口。 + +注意: +- 日期筛选按自然日时,应查询 `00:00:00` 至 `23:59:59`。 +- 总工时是汇总值,明细需要按设备、日期、任务查看。 + +### 6.3 装配排产 + +适用页面: +- `PlanManagement/InstallMakePlan` +- `PlanManagement/InstallMakePlanDo` + +用途: +- 排产装配、电气相关任务。 +- 提交 SAP 采购申请。 +- 回写 SAP 生产订单日期和说明。 + +操作步骤: + +1. 进入装配排产页面。 +2. 查询待排产装配任务。 +3. 设置计划时间、优先级、说明。 +4. 如需生成采购申请,确认采购字段。 +5. 点击保存或提交。 +6. 查看 SAP 采购申请或生产订单回写结果。 + +注意: +- SAP 采购申请失败时,不要重复点击提交,应先确认是否已在 SAP 生成单据。 +- 装配排产数据会影响装配中心、装配看板、齐套和送检相关报表。 + +### 6.4 优先装配与计划壳 + +适用页面: +- `PlanManagement/priorityinstall` +- `PlanManagement/PlanShell` + +用途: +- 处理优先装配或计划壳相关任务。 +- 查询计划任务状态。 + +使用方式: + +1. 输入订单、物料或计划号查询。 +2. 查看任务列表和状态。 +3. 按页面按钮执行调整、查询或导出。 + +### 6.5 生产订单关闭 + +适用页面: +- `PlanManagement/PlannOrderClose` + +用途: +- 关闭生产订单。 +- 将订单关闭状态同步到 SAP。 + +操作步骤: + +1. 进入生产订单关闭页面。 +2. 查询待关闭订单。 +3. 选择订单。 +4. 点击关闭或批量关闭 SAP 订单。 +5. 在确认框中确认。 +6. 查看每条订单的关闭结果。 + +注意: +- 关闭是高风险操作,必须确认订单已满足关闭条件。 +- 批量关闭应逐单查看成功或失败原因。 +- SAP 部分成功时,应按失败明细重试,不要重复关闭已成功订单。 + +## 七、生产执行管理 + +### 7.1 机加中心 + +适用页面: +- `ProductionManagement/MachiningCenter` + +用途: +- 机加任务执行。 +- 收料、开工、暂停、恢复、报工、退库、入库、发料、查看图纸、报异常。 + +典型流程: + +1. 查询当前工位或当前人员任务。 +2. 查看生产订单、物料、工序、分配数、上序合格数、收料状态。 +3. 确认可执行后进行收料。 +4. 点击开始加工。 +5. 加工过程中如有问题,点击报异常。 +6. 完成后填写报工数量、工时、说明。 +7. 提交报工。 +8. 根据任务要求进入质检、转序或入库。 + +不可开工常见原因: + +| 原因 | 处理方式 | +|---|---| +| 未收料 | 先执行收料 | +| 上序未完成或未合格 | 等待上道工序或质检完成 | +| 发料未齐套 | 等待发料或拣配完成 | +| 异常未关闭 | 联系异常责任人处理 | +| 设备或工位不匹配 | 联系班组长调整 | + +### 7.2 装配中心 + +适用页面: +- `ProductionManagement/AssemblyCenter` + +用途: +- 装配任务执行。 +- 查看装配任务、发料、缺件、齐套、报工、送检、异常。 + +典型流程: + +1. 查询装配任务。 +2. 查看发料状态、齐套状态、物料、合同、计划时间。 +3. 发料齐套后开始装配。 +4. 执行装配报工。 +5. 如有缺件或异常,查看缺件明细或提交异常。 +6. 装配完成后按要求送检或入库。 + +注意: +- 发料齐套时间会影响装配完成时间、及时送检和装配看板。 +- 手续确认如果上线,应按手续确认报表处理。 + +### 7.3 生产任务管理 + +适用页面: +- `ProductionManagement/ProductionTaskManage` +- `ProductionManagement/ProductionTasksSum` +- `ProductionManagement/AssembleTaskManage` +- `ProductionManagement/AssembleTasksSum` + +用途: +- 查询生产任务和装配任务。 +- 查看任务汇总。 +- 跟踪任务状态、加工状态、完成数量。 + +使用方式: + +1. 进入任务管理或任务汇总页面。 +2. 输入订单、物料、任务状态、日期等条件。 +3. 点击查询。 +4. 查看任务明细或汇总。 + +### 7.4 生产计划跟踪 + +适用页面: +- `ProductionManagement/ProductionPlanTrack` +- `ProductionManagement/AssemblePlanTrack` + +用途: +- 查看生产订单当前进度。 +- 查看工艺路线、当前序、等待序、已完成序。 + +使用方式: + +1. 输入生产订单、合同号、物料等查询。 +2. 查看工艺路线。 +3. 判断当前正在加工的工序和后续等待工序。 +4. 查看标准工时、订单状态等信息。 + +## 八、外协业务 + +### 8.1 外协管理 + +适用页面: +- `ProductionManagement/OutsourceMange` +- `ProductionManagement/SaleOutsourceMange` + +用途: +- 管理外协任务。 +- 生成 SAP 采购申请。 +- 跟踪外协交付。 + +操作步骤: + +1. 查询外协任务。 +2. 选择需要外协的任务。 +3. 填写供应商、交期、说明等信息。 +4. 提交外协或生成采购申请。 +5. 查看 SAP 返回结果。 +6. 后续在外协收货或序检收检中录入检验结果。 + +### 8.2 外协任务报表 + +适用页面: +- `ProductionManagement/OutsourceSheet` + +用途: +- 查看外协任务状态。 +- 查询采购到货期说明。 +- 追溯供应商、采购收货单和质检结果。 + +### 8.3 外协检验 + +适用页面: +- `QualityManagement/CheckTask/processReceive` + +用途: +- 对外协任务进行收检。 +- 保存指派对象、供应商、SAP 采购收货单号、检验结果。 + +注意: +- 供应商合格率依赖供应商字段准确。 +- SAP 采购收货单号用于单据追溯。 + +## 九、质检管理 + +### 9.1 质检中心 + +适用页面: +- `QualityManagement/QualityCenter` + +用途: +- 处理机加、装配、采购、外协等来源的质检任务。 +- 录入检验结果。 +- 发起不合格处理、让步接收、返工等。 + +操作步骤: + +1. 进入质检中心。 +2. 按订单、物料、检验类型、状态查询。 +3. 选择待检任务。 +4. 查看工序、数量、图纸和检验要求。 +5. 录入检验数量、合格数量、不合格数量和检测项。 +6. 保存检验结果。 +7. 如不合格,进入不合格处理流程。 + +### 9.2 采购入库检 + +适用页面: +- `QualityManagement/CheckTask/purchaseIncoming` + +用途: +- 对采购到货物料进行入库检验。 + +操作步骤: + +1. 查询采购入库检任务。 +2. 查看供应商、物料、数量。 +3. 录入检验结果。 +4. 保存。 + +### 9.3 序检收检 + +适用页面: +- `QualityManagement/CheckTask/processReceive` + +用途: +- 处理工序之间的收检。 +- 外协收检也会使用该链路。 + +操作注意: +- 如为外协任务,应确认指派对象、供应商和 SAP 采购收货单号。 +- 检验结果会影响后续工序是否可执行。 + +### 9.4 终检、首检、特殊检验 + +适用页面: +- `QualityManagement/CheckTask/final` +- `QualityManagement/CheckTask/firstSpecial` +- `QualityManagement/CheckTask/processSpecial` +- `QualityManagement/CheckTask/OtherInbound` +- `QualityManagement/CheckTask/materialReturn` +- `QualityManagement/CheckTask/salesReturn` + +通用操作: + +1. 查询待检任务。 +2. 选择任务。 +3. 录入检验数量和检验结果。 +4. 保存。 +5. 如需退库、入库或出库,按页面提示生成库存任务。 + +### 9.5 不合格品处理 + +适用页面: +- `QualityManagement/Unqualified` + +用途: +- 对不合格记录进行处理。 + +处置方式: +- 返工 +- 报废 +- 让步接收 +- 复检 +- 其他处置 + +操作步骤: + +1. 查询不合格记录。 +2. 打开处置详情。 +3. 选择处置方式。 +4. 填写原因、责任、说明。 +5. 保存处置结果。 + +注意: +- 让步接收记录查询页只用于查询,让步接收应在质检或不合格处置中维护。 + +### 9.6 质量标准查询 + +适用页面: +- `QualityManagement/QualityStandardQuery` + +用途: +- 查询质量检验标准。 +- 查看检测项目、标准值、上下限。 + +## 十、工时与报表 + +### 10.1 工时报表 + +适用页面: +- `ProductionManagement/Timesheet` +- `ProductionManagement/Workhours` +- `ProductionManagement/WorkhoursEdit` + +用途: +- 查询作业者工时。 +- 查询任务工时。 +- 查看设备、日期、任务维度明细。 + +使用方式: + +1. 输入日期、人员、设备、生产订单等条件。 +2. 点击查询。 +3. 查看工时明细和汇总。 +4. 如支持导出,点击导出。 + +注意: +- 人工报工工时、设备工时、程序工时不是同一口径。 +- 总工时应确认是否包含质检、装配、设计、编程或异常工时。 + +### 10.2 工时校验与 SAP 提交 + +适用页面: +- `ProductionManagement/WorkHoursCheck` + +用途: +- 校验工时。 +- 向 SAP 提交工时、投料或更新生产订单工序资源。 + +操作步骤: + +1. 查询待校验工时。 +2. 查看 MES 报工记录。 +3. 获取 SAP 生产订单工序和资源。 +4. 检查工时、工序、资源是否匹配。 +5. 点击提交。 +6. 查看 SAP 返回结果。 + +注意: +- SAP 提交失败时,应查看失败原因,不要重复提交。 +- 部分成功时,应区分成功项和失败项。 +- 工时差异需要说明人工工时、设备工时、SAP 工时之间的关系。 + +### 10.3 机加班次产量 + +如新增 `机加班次产量表`: + +1. 选择日期、班次、设备、操作人。 +2. 查询每台设备每班次任务明细。 +3. 查看数量、工时、小计和合计。 + +说明: +- 该页面只查询,不维护班次。 +- 班次规则应在班次管理维护。 + +### 10.4 工时异常报表 + +如新增 `工时异常报表`: + +1. 选择日期、设备、工位、物料、工序、超出比例。 +2. 查询单件实际工时大于标准工时的任务。 +3. 查看标准单件工时、实际单件工时、超出时长、超出比例。 +4. 如页面支持确认,填写异常原因和处理说明。 + +## 十一、异常管控 + +### 11.1 异常管控页面 + +适用页面: +- `ProductionManagement/AbnormalControl` + +用途: +- 查询异常。 +- 提交、处理、关闭异常。 +- 跟踪异常责任人和处理状态。 + +操作步骤: + +1. 进入异常管控页面。 +2. 按订单、异常类型、状态、责任人查询。 +3. 查看异常明细。 +4. 处理异常。 +5. 填写处理说明并关闭。 + +### 11.2 报工页面直接报异常 + +如功能上线,机加、装配、质检、外协、设计、编程报工页面可直接报异常: + +1. 在业务页面选中任务。 +2. 点击 `报异常`。 +3. 系统自动带出订单、任务、工序、人员等信息。 +4. 填写异常类型、说明、附件。 +5. 选择审批人,可多选。 +6. 提交。 + +规则: +- 多审批人表示多人可见,不是会签。 +- 任一审批人处理后,应记录实际处理人。 + +## 十二、设备管理与采集 + +### 12.1 设备实时数据 + +适用页面: +- `DeviceManagement/DeviceRealData` +- `DeviceManagement/Devicedata` + +用途: +- 查看设备当前状态。 +- 查看设备统计数据,如开机、停机、报警、程序时长。 + +使用方式: + +1. 选择设备或工位。 +2. 选择时间范围。 +3. 查询设备状态和统计结果。 +4. 查看设备状态明细。 + +### 12.2 设备历史数据 + +适用页面: +- `DeviceManagement/DeviceDataHistory` + +用途: +- 查询设备历史状态和采集数据。 + +注意: +- 设备当前状态不能直接替代历史状态。 +- 计算 OEE 和设备工时时需要时间段数据。 + +### 12.3 OEE 和设备指标 + +相关看板: +- 机加设备生产运营看板 +- `board_view` + +指标说明: + +| 指标 | 含义 | +---|---| +| 产能利用率 | 实际产量 / 计划产量 | +| 设备利用率 | 设备运行工时 / 标准工时 | +| 性能开动率 | 标准单件工时 / 实际单件工时 | +| 产品合格率 | 良品数 / 总产量 | +| OEE | 设备利用率 * 性能开动率 * 合格率 | + +注意: +- OEE 必须基于同设备、同班次、同日期口径。 +- 当前若看板仍为样例数据,不应作为正式绩效依据。 + +## 十三、看板使用 + +### 13.1 生产任务看板 + +用途: +- 查看按期齐套率、待排产任务、待处理销售订单、工艺 BOM 待完成、采购未及时到货、机加未及时开工、质检及时率、未及时入库、加急件。 + +使用方式: +- 现场或管理层直接查看大屏。 +- 点击或查看滚动明细,定位异常任务。 + +注意: +- 齐套、发料、拣配、发货、加急等状态来自不同业务链路。 +- 如果新增部分齐套、预计齐套时间、手续确认等状态,看板口径需要同步更新。 + +### 13.2 装配任务看板 + +用途: +- 查看装配任务、发货状态、在制缺件、已完任务、异常未关闭、缺勤人员。 + +注意: +- 缺勤人员不能使用静态样例,应来自排班和实到记录。 +- 及时送检任务如上线,应按发料齐套后超期规则展示。 + +### 13.3 质检任务看板 + +用途: +- 查看未清任务、加急任务、质检及时率、关键工序、当天完成。 + +注意: +- 关键工序来自工艺维护和任务快照。 +- 及时率应有明确起算时间,例如最后一次生产完成时间。 + +### 13.4 机加设备生产运营看板 + +用途: +- 查看设备状态、在制任务、关键工序任务、缺勤人员、设备指标。 + +注意: +- 设备状态、报工状态、质检状态不应互相替代。 +- OEE 上线前需确认设备采集和标准工时口径。 + +### 13.5 综合项目看板 + +适用项目: +- `board_view` + +用途: +- 查看合同、项目、计划、生产、装配、质量、设备等综合进度。 + +注意: +- 若采购、库存、OEE 等字段仍为占位数据,应先接入真实数据后再作为经营口径。 + +## 十四、销售与交付查询 + +### 14.1 销售订单状态 + +适用页面: +- `SaleManagement/saleorderstatus` + +用途: +- 查询销售订单状态。 +- 查看生产工艺、排产、生产、装配、发货相关状态。 + +### 14.2 发货通知列表 + +如新增该页面: + +1. 输入发货通知号、合同号、客户、状态、要求发货日期。 +2. 点击查询。 +3. 查看 SAP 发货通知明细。 +4. 查看关联生产订单。 + +注意: +- 默认只读 SAP 或 SAP 同步数据。 +- 如需 MES 备注,应单独保存备注,不覆盖 SAP 字段。 + +## 十五、新增需求相关页面使用 + +### 15.1 设计任务报工 + +用途: +- 创建设计任务。 +- 开始和结束设计报工。 +- 统计设计工时。 + +操作步骤: + +1. 新增设计任务。 +2. 分配设计人员。 +3. 设计人员点击开始报工。 +4. 完成后点击结束报工,填写工作内容和说明。 +5. 查询设计工时记录。 + +### 15.2 编程任务清单/编程报工 + +用途: +- 管理编程任务。 +- 记录程序号、编程人员、开始时间、结束时间和工时。 + +操作步骤: + +1. 查询或新增编程任务。 +2. 点击开始编程。 +3. 结束时填写程序内容、说明和程序号。 +4. 查看编程工时。 + +### 15.3 手续确认报表 + +用途: +- 对发料齐套后的装配、电气任务进行手续确认。 + +操作步骤: + +1. 查询待确认任务。 +2. 查看发料齐套时间、装配完成时间、当前状态。 +3. 点击确认完成。 +4. 填写确认备注。 +5. 保存后该任务从待确认列表消失。 + +### 15.4 及时检验报表 + +用途: +- 查询报工完成超过 2 天仍未检验的任务。 + +操作步骤: + +1. 输入日期、订单、物料、工序等条件。 +2. 查询超期未检任务。 +3. 查看报工数量、已检数量、未检数量和超期天数。 +4. 通知质检人员处理。 + +### 15.5 及时齐套跟踪结果报表 + +用途: +- 跟踪主订单齐套状态。 +- 展开 SAP 缺件明细。 +- 维护预计可执行时间。 + +操作步骤: + +1. 输入主生产订单、合同号、物料等条件。 +2. 查询齐套跟踪结果。 +3. 展开主订单查看缺件明细。 +4. 如需维护预计可执行时间,点击编辑并保存说明。 + +### 15.6 装配已排产需求 + +用途: +- 查看装配交付进度。 +- 整合 SAP 派工时间、合同交货期、发料齐套、装配完成、工时、异常。 + +操作步骤: + +1. 按合同、订单、系统分类、日期查询。 +2. 查看发料齐套时间和装配完成时间。 +3. 查看累计工时、当前人员、异常数。 +4. 维护允许手工维护的字段,例如备注、钣金/泵到达信息。 +5. 查看工时、异常、缺件明细。 + +### 15.7 质检任务早知道 + +用途: +- 预测即将进入质检的装配任务。 + +操作步骤: + +1. 按预计装配完成时间查询。 +2. 查看即将需要质检的任务。 +3. 提前安排质检资源。 + +## 十六、系统维护 + +### 16.1 菜单管理 + +适用页面: +- `SystemMaintenance/MenuManagement` + +用途: +- 维护菜单名称、路径、组件地址、排序和图标。 + +注意: +- 新增页面必须同步菜单记录。 +- 菜单路径和组件地址错误会导致页面打不开。 + +### 16.2 操作日志 + +适用页面: +- `SystemMaintenance/OperationLog` + +用途: +- 查询用户操作记录。 +- 追溯新增、修改、删除、同步等关键动作。 + +### 16.3 权限检查 + +如用户看不到页面或按钮,按以下顺序检查: + +1. 用户是否启用。 +2. 用户是否分配角色。 +3. 角色是否分配菜单。 +4. 页面是否配置到二级菜单。 +5. 前端组件路径是否正确。 + +## 十七、常见业务问题与处理 + +| 问题 | 可能原因 | 处理方式 | +|---|---|---| +| 任务无法开工 | 未收料、未齐套、上序未合格、异常未关闭、工艺未下发 | 查看任务状态和不可操作原因 | +| 排产后 SAP 未更新 | SAP 接口失败或同步字段异常 | 查看页面提示和 SAP 同步日志 | +| 工时和 SAP 不一致 | MES 人工工时、设备工时、SAP 工时口径不同 | 在工时校验页面查看差异 | +| 看板数据和页面不一致 | 看板读取缓存或不同统计口径 | 检查看板过程、同步时间、统计日期 | +| 缺勤人员不准 | 排班或实到来源不明确 | 检查班次、人员绑定、考勤/上岗记录 | +| 关键工序统计不准 | 工艺未维护关键工序或任务未快照 | 检查标准工艺、生产工艺和任务数据 | +| 让步接收查不到 | 质检记录未填写让步接收字段 | 回到质检或不合格处置页面检查 | +| 外协供应商合格率不准 | 检验记录缺供应商字段 | 检查序检收检/外协收货记录 | + +## 十八、名词解释 + +| 名词 | 说明 | +|---|---| +| 标准工艺 | 按物料维护的默认工艺路线 | +| 生产工艺 | 按生产订单生成或编辑的实际工艺 | +| 指派对象 | 工序或任务分配给的工位、人员、外协或装配对象 | +| 齐套 | 所需物料是否满足开工或装配条件 | +| 发料齐套时间 | 发料满足齐套条件的时间 | +| 报工 | 操作人员提交加工数量、时间、工时等生产记录 | +| 工时校验 | 校验 MES 工时并准备提交 SAP | +| 关键工序 | 对质量、进度或交付关键的工序,应在工艺中维护 | +| 让步接收 | 不合格或偏差品经审批允许接收 | +| OEE | 设备综合效率,由利用率、性能开动率、合格率组成 | +| 缺勤 | 应到人员无实到记录 | + +## 十九、操作安全要求 + +1. 不确认的数据不要保存。 +2. 不要重复点击 SAP 提交、采购申请、关闭订单等按钮。 +3. 批量操作前必须确认选择范围。 +4. 已入库、已关闭、已完成的任务一般不应再修改关键业务字段。 +5. 修改工艺、标准工时、关键工序时,要确认是否影响历史任务。 +6. 看板异常数、齐套数、未检数只作为提醒,处理业务仍需回到对应业务页面。 + +## 二十、建议培训顺序 + +1. 登录、菜单、通用查询和表格操作。 +2. 基础资料:人员、工位、设备、工序。 +3. 工艺:标准工艺、生产工艺、工艺查询。 +4. 计划:机加排产、装配排产、订单关闭。 +5. 执行:机加中心、装配中心、外协管理。 +6. 质检:质检中心、序检收检、不合格处理。 +7. 工时:工时报表、工时校验、SAP 提交。 +8. 异常:报异常、处理异常、关闭异常。 +9. 看板:生产、装配、质检、机加、综合大屏。 +10. 新增需求页面:手续确认、及时检验、装配已排产需求、齐套跟踪等。 diff --git a/MES_Manage_View_V20/新增需求分析与开发记录_2026-05-23.md b/MES_Manage_View_V20/新增需求分析与开发记录_2026-05-23.md index 684f745..9312eb0 100644 --- a/MES_Manage_View_V20/新增需求分析与开发记录_2026-05-23.md +++ b/MES_Manage_View_V20/新增需求分析与开发记录_2026-05-23.md @@ -1158,7 +1158,307 @@ AI 关键记录: - 前端提示优化。 - 不涉及复杂业务逻辑。 -## 31. 追加需求处理状态汇总 +## 31. 设备数据采集与大屏指标需求 + +本次补充需求不是单个页面小改,而是“设备档案 + 设备采集 + 产能/OEE 指标 + 工时异常 + 条码拣配 + 现场大屏”的一组联动需求。它会影响设备管理、工艺标准工时、生产报工、质检、拣配、机加/装配现场看板和综合大屏。 + +### 31.1 设备档案管理 + +页面:设备档案/设备管理相关页面 +关联页面线索:`DeviceManagement/DeviceInformation`、`SystemMaintenance/WorkstationManagement`、设备工位绑定相关页面 + +需求: +- 维护设备档案。 +- 设备档案中需要标记“主要设备”。 +- 设备档案或设备工艺能力中需要维护标准工时相关字段。 +- 后续设备采集、设备利用率、OEE、设备异常报表都以设备档案为基础。 + +建议字段: +- 设备编号/设备名称 +- 工位编号/工位名称 +- 设备类型 +- 是否主要设备 +- 设备状态采集点位 +- 程序工时采集点位 +- 标准工时来源 +- 标准单件工时 +- 计划产量来源 +- 是否参与 OEE + +开发思路: +1. 梳理现有设备档案表、工位表、设备工位人员视图。 +2. 确认标准工时放在设备档案、工艺路线,还是设备+工序能力表。 +3. “主要设备”建议独立字段,不能只靠设备名称判断。 +4. OEE 只统计参与 OEE 的主要设备,避免普通辅助设备拉低指标。 + +风险点: +- 如果标准工时只放在工艺里,设备利用率无法按单台设备准确计算。 +- 如果标准工时只放在设备档案里,同一设备加工不同零件时又会失真。 +- 更稳妥的口径是:设备档案负责“是否主要设备、是否采集、是否参与 OEE”,工艺/设备能力表负责“标准单件工时”。 + +预估周期: +- 字段梳理和表结构确认:0.5 到 1 天 +- 页面字段改造:0.5 到 1 天 +- 联调:0.5 天 + +### 31.2 设备数据采集 + +页面/模块:设备数据采集、设备状态监控、设备历史数据 +现有对象线索:`CaChe_Var`、`历史_设备数据_定时`、`历史_工位设备状态每分钟记录`、`YL_设备管理_工时记录`、`设备管理_设备状态_查询` + +需求: +- 采集程序工时。 +- 采集单件工时。 +- 采集设备状态。 +- 采集数据后用于设备利用率、开动率、OEE、工时异常报表和现场大屏。 + +采集数据建议: +- 设备编号/工位号 +- 采集时间 +- 设备状态:运行、待机、报警、关机 +- 操作模式 +- 程序号 +- 循环时间 +- 程序开始时间 +- 程序结束时间 +- 当前加工数量 +- 当前任务或条码绑定信息 +- 采集来源和采集质量标识 + +关键口径: +- 程序工时:设备程序运行累计时间,不等于 MES 人工报工工时。 +- 单件工时:单件实际加工时间,优先由程序循环时间或“设备运行时间 / 实际产量”计算。 +- 设备状态:要有时间段,不只保存当前状态,否则无法算设备工时。 +- 设备工时:用于设备利用率时,应指设备处于运行/有效加工状态的累计时长。 + +开发思路: +1. 明确采集系统把数据写入 MES 表,还是 MES 定时读取设备/PLC/MQTT。 +2. 建采集原始表,保留原始点位值,不直接覆盖业务结果。 +3. 建设备状态分钟级/秒级汇总表,用于快速计算设备状态时长。 +4. 建设备任务绑定规则:设备采集数据如何关联 MES 任务。 +5. 建异常数据清洗规则:断点、重复、设备离线、跨班次、跨天。 + +预估周期: +- 采集字段和接口确认:1 到 2 天 +- 数据落库和历史汇总:2 到 4 天 +- 与 MES 任务关联:2 到 3 天 +- 看板联调:1 到 2 天 + +AI 关键记录: +- 设备采集必须先落原始数据,再计算指标。 +- 程序工时、设备工时、人工报工工时是三套口径,不能直接混用。 + +### 31.3 设备指标与 OEE 计算 + +目标:支持单台设备产能利用率、设备利用率、设备性能开动率、产品合格率、OEE。 + +公式: + +| 指标 | 公式 | 数据来源建议 | 说明 | +|---|---|---|---| +| 产能利用率(单台) | 实际产量 / 计划产量 * 100% | MES 报工数量或质检合格前产量 / 排产计划数量 | 计划产量必须按设备、日期、班次拆分 | +| 设备利用率(单台) | 设备工时 / 标准工时 | 设备采集运行时长 / 设备或工艺标准工时 | 标准工时要明确是班次标准工时、计划标准工时还是理论可用工时 | +| 设备性能开动率(单台) | 标准单件工时 / 实际单件工时 | 工艺标准单件工时 / 设备采集单件工时 | 实际单件工时异常时要剔除停机、等待、返工 | +| 产品合格率(工位) | 良品数 / 总产量 | 质检记录、报工良品/不良品 | 质检滞后时会导致当天合格率滞后 | +| 设备综合效率 OEE | 设备利用率 * 开动率 * 合格率 | 上面三项 | 三项必须同设备、同班次、同日期口径 | + +需要新增或确认的字段: +- 计划产量 +- 实际产量 +- 良品数 +- 不良品数 +- 标准单件工时 +- 实际单件工时 +- 设备运行工时 +- 标准工时 +- 统计日期 +- 班次 +- 设备/工位 + +开发风险: +- 如果实际产量来自报工、良品数来自质检,而质检跨天完成,则当天 OEE 会被低估。 +- 如果设备运行工时来自采集、计划产量来自排产,但任务没有绑定到设备,则单台设备产能利用率无法准确计算。 +- 如果标准工时来源不统一,设备利用率和性能开动率会互相冲突。 + +建议: +- 先做设备日/班次指标明细表,再做大屏汇总。 +- 看板显示的 OEE 必须能下钻到三个组成指标。 +- 每个指标保留计算口径说明,不要只显示百分比。 + +预估周期: +- 指标口径确认:1 天 +- SQL/视图/汇总表:2 到 4 天 +- 大屏对接:1 到 2 天 + +### 31.4 工时异常报表 + +页面:新增报表或工时查询扩展 + +需求: +- 单件工时大于标准工时,形成工时异常报表。 +- 报表用于发现设备、工序、人员、程序、物料导致的异常加工。 + +判断口径: +- 异常条件:`实际单件工时 > 标准单件工时`。 +- 实际单件工时建议优先来自设备采集;无采集时可用人工报工工时 / 完成数量作为降级口径。 +- 标准单件工时来自生产工艺或设备能力表。 + +建议字段: +- 设备/工位 +- 生产订单 +- 物料编码/名称 +- 工序名称 +- 指派对象 +- 操作人 +- 程序号 +- 标准单件工时 +- 实际单件工时 +- 超出时长 +- 超出比例 +- 开始时间/结束时间 +- 班次 +- 异常原因 + +开发思路: +1. 建单件工时明细视图。 +2. 计算标准与实际差异。 +3. 超出阈值的进入异常报表。 +4. 支持按设备、工位、人员、物料、工序、日期筛选。 +5. 如需闭环,增加异常确认人、确认时间、处理说明。 + +预估周期: +- 报表查询:1 到 2 天 +- 页面和导出:0.5 到 1 天 +- 异常确认闭环:另加 1 到 2 天 + +### 31.5 及时拣配(机加/装配) + +页面/模块:机加拣配、装配拣配、条码扫描 + +需求: +- 及时拣配(机加):条码 → MES。 +- 及时拣配(装配):条码 → MES。 + +业务含义: +- 扫描条码后,MES 要识别任务、物料、领料/发料状态、是否齐套、是否可开工。 +- 机加和装配都需要及时拣配,但拣配对象不同:机加更偏工序/零件加工前物料,装配更偏装配 BOM/缺件齐套。 + +建议流程: + +```mermaid +flowchart LR + A[扫描条码] --> B[解析条码] + B --> C[查 MES 任务/物料/BOM] + C --> D{是否匹配当前任务} + D -- 否 --> E[提示异常并记录] + D -- 是 --> F[更新拣配状态] + F --> G[判断齐套/缺件] + G --> H[反馈可开工或缺件清单] +``` + +需要确认: +- 条码代表物料、箱号、批次、生产订单,还是拣配单。 +- SAP 库存和 MES 拣配状态谁是主口径。 +- 拣配后是否自动改变 `拣配状态`、`齐套`、`发料状态`。 +- 机加和装配是否共用同一套拣配表。 + +预估周期: +- 条码规则确认:0.5 到 1 天 +- 机加拣配流程:1 到 2 天 +- 装配拣配流程:1 到 2 天 +- 与看板联动:0.5 到 1 天 + +### 31.6 一楼质检大屏幕 + +页面:质检任务看板/一楼质检大屏 + +需求: +- 质检及时率:报检任务超过 2 天未检验,时间基准取最后一次生产完成时间。 +- 关键工序检验任务汇总数和明细:工艺编辑时标记关键工序。 + +质检及时率口径: +- 应检任务:已有生产完成/报检触发的任务。 +- 超期任务:最后一次生产完成时间超过 2 天,仍未完成检验。 +- 已检任务:已存在对应质检记录且检验数量满足应检数量。 +- 及时率建议:及时检验任务数 / 应检任务数 * 100%。 + +关键工序需求: +- 工艺维护时增加“是否关键工序”字段。 +- 生产工艺生成任务时,要把关键工序标识快照到生产任务。 +- 质检大屏按关键工序标识统计应检/未检/已检/加急。 + +影响: +- `质量任务看板_未完成统计`、`质量任务看板_未完成明细查询` 需要补超期天数、最后生产完成时间、是否关键工序。 +- 若仅在工艺库改“关键工序”,历史任务是否跟着变,需要确认。建议任务下发时快照,不自动影响历史。 + +预估周期: +- 工艺字段和任务快照:1 到 2 天 +- 质检及时率过程:1 到 2 天 +- 大屏改造:1 天 + +### 31.7 机加现场大屏幕 + +页面:机加设备生产运营看板/机加现场大屏 + +需求: +- 缺勤人员:显示岗位、工位、姓名;一个人或一个岗位可能对应多个工位,需要合并显示。 +- 关键工序任务汇总数和明细:工艺编辑时标记关键工序。 + +缺勤人员口径: +- 应到人员:班次人员绑定表或岗位排班表。 +- 实到人员:打卡/登录/报工/绑定上岗记录,需要确认来源。 +- 缺勤:应到但无实到记录。 +- 展示:岗位、工位列表、姓名;多工位用逗号合并。 + +关键工序任务口径: +- 已排产且未完成的关键工序任务。 +- 可区分未开工、进行中、超期、加急。 +- 明细至少显示订单、合同、物料、工序、设备/工位、指派对象、计划开始、完成数量、上序合格数。 + +影响: +- `机加设备生产运营看板_机加在制查询2` 需要补关键工序标识。 +- 需要新增缺勤人员查询过程,不能继续使用静态示例数据。 + +预估周期: +- 缺勤来源确认:0.5 到 1 天 +- 缺勤查询过程和页面对接:1 天 +- 关键工序标识和大屏改造:1 到 2 天 + +### 31.8 装配现场大屏幕 + +页面:装配任务看板/装配现场大屏 + +需求: +- 缺勤人员:岗位、工位、姓名,一对多合并显示。 +- 及时送检任务列表:可与加急/任务列表合并,用颜色区分;排序在加急后;规则为发料齐套后 2 天未送检。 + +及时送检口径: +- 起算时间:发料齐套时间。 +- 超期规则:发料齐套后超过 2 天仍未送检。 +- 送检判断:是否存在送检/质检任务/质检记录,需要确认具体表。 +- 排序:加急任务优先,其次及时送检超期任务,再按计划开始或齐套时间排序。 + +影响: +- `装配中心任务看板_装配任务查询` 需要返回发料齐套时间、是否已送检、送检时间、超期天数。 +- `装配中心任务看板_在制品缺件查询` 和发货状态列表需要区分缺件、齐套未送检、已送检未检。 +- 装配缺勤人员不能再用静态样例,需要与班次/岗位/工位绑定联动。 + +预估周期: +- 发料齐套时间来源确认:0.5 天 +- 送检状态过程:1 到 2 天 +- 大屏颜色/排序改造:0.5 到 1 天 +- 缺勤人员对接:1 天 + +### 31.9 本组需求总风险 + +1. 设备数据采集是前置条件。没有稳定采集数据,程序工时、单件工时、设备利用率、OEE 都只能是估算。 +2. 标准工时来源必须统一。工艺标准工时、设备标准工时、班次标准工时不是同一件事。 +3. 质检及时率和产品合格率存在时间滞后。生产完成当天不一定当天质检,日报和大屏要明确口径。 +4. 关键工序标识要做任务快照。否则工艺维护改字段会影响历史统计。 +5. 缺勤人员必须有排班/应到和实到来源,不能只从当前报工人员反推。 +6. 条码拣配会反向影响 `齐套`、`拣配状态`、`发料状态`,必须同步改生产任务看板和装配看板。 + +## 32. 追加需求处理状态汇总 | 需求 | 处理状态 | 周期 | |---|---|---| @@ -1175,3 +1475,81 @@ AI 关键记录: | 标牌打印操作 | 需求未确定 | 无法排期 | | 发货通知列表 | SAP 数据已提供,可开发 | 0.5 天 | | 制定标准工艺保存提示 | 可开发 | 0.1 天 | +| 设备档案管理-主要设备/标准工时 | 可开发,需先定字段归属 | 1.5 到 2.5 天 | +| 设备数据采集-程序工时/单件工时/设备状态 | 需先确认采集接口和落库表 | 待评估,预计 6 到 11 天 | +| 设备产能/OEE 指标 | 依赖设备采集和标准工时口径 | 4 到 7 天 | +| 工时异常报表 | 依赖单件工时和标准工时 | 1.5 到 3 天 | +| 及时拣配(机加/装配) | 需确认条码规则和状态写回 | 3 到 6 天 | +| 一楼质检大屏-及时率/关键工序 | 可开发,需补关键工序标识 | 3 到 5 天 | +| 机加现场大屏-缺勤/关键工序 | 可开发,需确认缺勤来源 | 2.5 到 4 天 | +| 装配现场大屏-缺勤/及时送检 | 可开发,需确认送检状态来源 | 3 到 5 天 | + +## 33. 补充修正:按“数据来源、维护入口、是否新建页面”重新复核 + +前面部分有些需求只写成“新增页面”或“页面改造”,这个口径还不够。后续评估必须先拆成三件事: + +1. 查询/看板页面:给谁看、按什么条件筛选、是否导出。 +2. 数据维护入口:这个字段由谁维护、在哪个业务页面维护、是否要留修改记录。 +3. 数据来源口径:来自 MES 业务表、SAP 同步、设备采集、人工维护、排班/考勤,还是计算结果。 + +原则: +- 报表类需求可以新建查询页,但不要把所有字段维护都放进报表页。 +- 主数据类字段优先放在主数据页面维护,例如人员、班次、工位、设备、工序、标准工艺。 +- 订单/任务过程字段优先放在生产计划、生产工艺、装配中心、机加中心、质检中心等业务页面维护。 +- 看板只展示和钻取,不作为唯一维护入口,除非需求明确就是现场确认动作。 +- 如果没有现成维护入口,才考虑新增维护页面,并同步菜单、权限、日志和历史记录。 + +### 33.1 逐项落点复核 + +| 需求/字段 | 数据来源建议 | 维护入口建议 | 是否新建页面 | 同步影响 | +|---|---|---|---|---| +| 缺勤人员 | 应到:班次/排班/岗位工位人员绑定;实到:考勤、上岗绑定、登录或报工记录 | 若已有班次管理、人员绑定、工位人员关系,则扩展这些页面;若没有排班入口,需要新增 `班次排班/人员出勤维护` 页面 | 看板查询过程要新增;维护页视现有排班能力决定 | 机加看板、装配看板、班次产量、人员绩效 | +| 关键工序 | 标准工艺/生产工艺中的工序标识,任务下发时快照到生产任务 | `制定标准工艺` 和 `生产工艺` 页面都要支持维护 `是否关键工序`;生产工艺可继承标准工艺但允许按订单调整 | 不建议单独新建“关键工序维护”页;可新增查询/批量检查页 | 质检看板、机加现场大屏、及时检验、生产计划跟踪 | +| 标准单件工时 | 标准工艺、生产工艺;必要时扩展设备+工序能力表 | 优先在标准工艺/生产工艺维护,设备档案只维护设备能力和是否参与 OEE | 不单独新建维护页,除非要做设备+工序能力矩阵 | OEE、工时异常、未完工工时、计划工时 | +| 生产工艺自动带出标准工艺 | 标准工艺库生成草稿,保存后进入生产工艺库 | `生产工艺` 页面编辑入口处理;`制定标准工艺` 负责标准来源 | 不新建页面 | 排产、流转卡、工时报表、任务快照 | +| 设计任务报工 | MES 自建设计任务、设计工时 | 需要独立任务创建、报工、查询和权限 | 需要新建业务页面 | 合同工时、设计工时报表、装配已排产需求 | +| 编程任务清单/编程报工 | 编程任务、程序号、设备/工位、编程工时 | 需要独立编程任务维护和报工;可从生产订单/设备任务派生 | 需要新建业务页面 | 机加可开工判断、工时报表、及时开工 | +| 发料齐套时间 | SAP/MES 发料状态、齐套计算或人工维护字段 | 优先落在生产计划/装配排产相关页面;装配已排产需求可展示和必要时编辑 | 报表可新建,字段维护不应只放报表 | 装配完成时间、及时送检、齐套看板 | +| 装配完成时间 | 规则计算:发料齐套时间 + 3 天;也可能人工调整 | 装配已排产需求或装配排产页面显示;若允许调整需保存调整日志 | 新建装配已排产需求页是合理的,但要明确它既是进度页也是部分字段维护入口 | 质检任务早知道、日计划、合同进度 | +| 预计可执行时间 | SAP 缺件明细 + 主子订单关系 + 人工判断 | 及时齐套跟踪结果报表中可维护,但必须记录维护人、时间、来源说明 | 可在新报表内做维护动作,不必另建维护页 | 生产任务看板、及时开工、装配计划 | +| 主订单与缺料子订单关系 | SAP/MES 订单关系,必要时人工绑定 | 若 SAP 无法稳定提供,需要新增主子订单关系维护入口 | 可能需要新增维护页或在齐套报表内维护 | 及时齐套、装配缺件、生产看板 | +| 手续确认 | 人工确认状态、确认人、确认时间 | 手续确认报表本身就是待办确认入口,可在该页面维护 | 需要新建待办/报表页 | 装配中心、生产任务看板、订单关闭 | +| 让步接收记录 | 质检记录中的让步接收字段 | 质检中心/不合格处置页面负责维护;新页面只查询 | 新建查询页,不新建维护页 | 质检看板、供应商质量、未清任务 | +| 外协供应商/SAP 收货单号 | 外协任务、采购收货、质检收检记录 | 序检收检、外协收货、外协任务页面补字段 | 不单独新建维护页 | 外协报表、供应商合格率、SAP 追溯 | +| 机加班次产量 | 报工记录 + 设备 + 班次规则 | 班次规则在班次管理维护;报表只查询 | 新建报表页,不新建维护页 | 设备看板、工位汇总、OEE | +| 及时检验 | 生产完成/报工完成时间 + 质检记录 | 质检业务在质检中心维护;及时检验页只催办和查询 | 新建报表页 | 质检看板、生产日报、异常提醒 | +| 生产日报-送检 | 送检记录、质检记录、部门归属 | 送检和质检在原业务页面维护;日报只汇总 | 可新建报表页 | 日报、质检统计、部门绩效 | +| 发货通知列表 | SAP 发货通知或同步落地表 | SAP 为主,MES 页面只查询;若需备注/确认再加本地扩展表 | 新建查询页 | 装配看板、合同交付、board_view | +| 批量关闭 SAP 订单 | MES 订单 + SAP 关闭接口返回 | 生产订单关闭页维护,增加批量动作和结果日志 | 不新建页面,扩展现有关闭页 | 排产页、生产中心、手续确认 | +| 异常管控直接报异常 | 所有报工页面选中任务带入异常 | 异常管控页维护异常主流程;各报工页只提供入口 | 不新建页面,改异常页和各报工页入口 | 机加、装配、质检、外协、设计、编程 | +| 条码拣配 | 条码、物料、批次、任务、拣配状态 | 机加中心/装配中心增加扫码入口;条码规则可单独维护 | 扫码操作不一定新建页面,条码规则可能要新建维护页 | 齐套、发料、看板、SAP 库存 | +| 设备 OEE | 设备采集、报工产量、质检良品、标准工时 | 设备档案、工位管理、工艺维护、设备采集配置分别维护 | OEE 是报表/看板,不是单独维护页 | 机加看板、board_view、设备报表 | +| 工时异常 | 设备采集单件工时/人工工时 + 标准工时 | 异常报表可增加确认动作;标准工时仍在工艺/设备能力维护 | 新建报表或扩展工时查询 | 工时校验、异常管控、绩效 | + +### 33.2 对两个典型问题的明确修正 + +#### 缺勤数据来源 + +缺勤不能从“没有报工”反推。正确链路应该是: + +```mermaid +flowchart LR + A[班次/排班] --> B[应到人员] + C[岗位/工位人员绑定] --> B + D[考勤/上岗/登录/报工] --> E[实到人员] + B --> F[缺勤判断] + E --> F + F --> G[机加/装配现场看板] +``` + +如果系统没有排班或应到人员维护能力,就必须补一个维护入口。可以是扩展 `ShiftManagement`、人员绑定、工位人员角色页面,也可以新增 `人员排班/出勤维护` 页面。单纯新增看板查询过程只能展示结果,不能解决应到人员从哪里来的问题。 + +#### 关键工序维护位置 + +关键工序属于工艺属性,不属于看板属性。维护位置应放在: + +- `制定标准工艺`:维护物料标准工艺路线时标记标准关键工序。 +- `生产工艺`:按生产订单生成/编辑工艺时继承标准关键工序,并允许订单级调整。 +- 生产任务生成/下发时:把 `是否关键工序` 快照到任务,避免后续修改标准工艺导致历史看板重算。 + +因此“一楼质检大屏”和“机加现场大屏”只读取关键工序,不负责维护关键工序。若客户需要批量检查哪些工艺未标关键工序,可以新增查询/批量修正页,但主维护仍应落在标准工艺和生产工艺页面。 diff --git a/MES_Manage_View_V20/新增需求界面原型设计_2026-05-25.md b/MES_Manage_View_V20/新增需求界面原型设计_2026-05-25.md new file mode 100644 index 0000000..4715a5d --- /dev/null +++ b/MES_Manage_View_V20/新增需求界面原型设计_2026-05-25.md @@ -0,0 +1,524 @@ +# 新增需求界面原型设计 + +生成日期:2026-05-25 +依据文档:`新增需求分析与开发记录_2026-05-23.md` +说明:本文只描述界面原型、字段、按钮、弹窗和交互,不涉及代码修改。 + +## 一、界面设计总原则 + +1. 报表页只负责查询、展示、导出、钻取;不把基础字段维护塞进报表页。 +2. 待办页可以承担确认动作,例如手续确认、异常处理。 +3. 工艺、关键工序、标准工时仍在标准工艺/生产工艺页面维护。 +4. 缺勤、班次、人员、工位类数据需要来源于班次/排班/人员工位绑定,不在大屏直接维护。 +5. 所有新增页面保留系统现有风格:顶部查询区、右侧操作按钮、下方表格、必要时弹窗明细。 + +## 二、新增页面总览 + +| 页面名称 | 页面类型 | 菜单建议 | 是否新增页面 | 是否维护数据 | +|---|---|---|---|---| +| 设计任务报工 | 业务操作页 | 生产管理/报工管理 | 是 | 是 | +| 机加班次产量表 | 报表页 | 报表中心/生产报表 | 是 | 否 | +| 手续确认报表 | 待办确认页 | 报表中心/装配报表 | 是 | 是,确认状态 | +| 及时检验报表 | 催办报表页 | 报表中心/质检报表 | 是 | 否 | +| 及时齐套跟踪结果报表 | 查询 + 部分维护页 | 报表中心/齐套报表 | 是 | 可维护预计可执行时间 | +| 生产日报-送检 | 日报页 | 报表中心/生产日报 | 是或扩展 | 否 | +| 编程任务清单/编程报工 | 业务操作页 | 生产管理/报工管理 | 是 | 是 | +| 让步接收记录 | 查询追溯页 | 质量管理/质量报表 | 是 | 否 | +| 装配已排产需求 | 交付进度页 | 生产管理/装配管理 | 是 | 部分字段可维护 | +| 质检任务早知道 | 预告报表页 | 质量管理/质量报表 | 是 | 否 | +| 及时送检报表 | 催办报表页 | 报表中心/质检报表 | 是或扩展 | 否 | +| 发货通知列表 | SAP 查询页 | 销售/交付报表 | 是 | 否 | +| 工时异常报表 | 异常分析页 | 报表中心/工时报表 | 是或扩展 | 可增加异常确认 | + +## 三、页面原型 + +### 1. 设计任务报工 + +定位:MES 自建设计任务和设计工时,不关联生产订单,不上传 SAP。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 设计任务报工 │ +├────────────────────────────────────────────────────────────────────┤ +│ 查询区 │ +│ 任务名称 [________] 设计人员 [____] 状态 [全部▼] 日期 [____至____] │ +│ [查询] [重置] [新增设计任务] │ +├────────────────────────────────────────────────────────────────────┤ +│ 任务列表 │ +│ □ 任务编号 | 任务名称 | 设计人员 | 状态 | 开始时间 | 结束时间 | 工时 │ +│ | 工作内容 | 结束说明 | 创建人 | 创建时间 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[开始报工] [结束报工] [工时记录] [编辑] [删除] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +弹窗: + +| 弹窗 | 字段/按钮 | +|---|---| +| 新增设计任务 | 任务名称、设计人员、计划开始、计划完成、任务说明、保存、取消 | +| 开始报工 | 任务信息只读、开始时间默认当前、工作内容、确认开始 | +| 结束报工 | 任务信息只读、结束时间默认当前、结束说明、确认结束 | +| 工时记录 | 开始时间、结束时间、工时、工作内容、操作人 | + +状态: +- 未开始 +- 进行中 +- 已完成 +- 已取消 + +### 2. 机加班次产量表 + +定位:报表页,查看每天每台设备每班次干了什么活。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 机加班次产量表 │ +├────────────────────────────────────────────────────────────────────┤ +│ 日期 [____至____] 班次 [全部▼] 设备 [全部▼] 操作人 [____] │ +│ [查询] [重置] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ 汇总卡:设备数 班次数 总数量 总工时 │ +├────────────────────────────────────────────────────────────────────┤ +│ 分组表 │ +│ ▶ 设备:CNC-01 合计数量 合计工时 │ +│ ▶ 日期:2026-05-25 班次:白班 小计数量 小计工时 │ +│ 生产订单 | 物料编码 | 物料名称 | 工序 | 开始 | 结束 | 工时 | 数量 | 操作人 │ +└────────────────────────────────────────────────────────────────────┘ +``` + +字段: +- 设备名称 +- 日期 +- 班次 +- 生产订单 +- 物料编码 +- 物料名称 +- 工序名称 +- 开始时间 +- 结束时间 +- 工时 +- 数量 +- 操作人 + +说明: +- 班次规则来自班次管理。 +- 该页面不维护班次,只读取班次和报工记录。 + +### 3. 手续确认报表 + +定位:装配、电气发料齐套后的待办确认页。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 手续确认报表 │ +├────────────────────────────────────────────────────────────────────┤ +│ 生产订单 [____] 合同号 [____] 物料 [____] 指派对象 [全部▼] │ +│ 发料齐套日期 [____至____] 手续确认 [未完成▼] │ +│ [查询] [重置] [导出] [批量确认完成] │ +├────────────────────────────────────────────────────────────────────┤ +│ □ 生产订单 | 合同号 | 物料编码 | 物料名称 | 指派对象 | 发料齐套时间 │ +│ 装配完成时间 | 当前状态 | 手续确认 | 确认人 | 确认时间 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[确认完成] [查看装配明细] [查看异常] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +消失条件: +- 手续确认 = 已完成 +- 生产订单取消 +- 生产订单关闭 +- 整单已入库 + +确认弹窗: +- 生产订单 +- 物料名称 +- 当前发料齐套时间 +- 确认备注 +- 确认完成 +- 取消 + +### 4. 及时检验报表 + +定位:生产报工完成超过 2 天仍未检验的催办报表。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 及时检验报表 │ +├────────────────────────────────────────────────────────────────────┤ +│ 生产订单 [____] 物料 [____] 工序 [全部▼] 指派对象 [全部▼] │ +│ 报工结束日期 [____至____] 超期天数 [>= 2] │ +│ [查询] [重置] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ 生产订单 | 物料编码 | 物料名称 | 工序 | 指派对象 | 报工数量 │ +│ 已检数量 | 未检数量 | 报工结束时间 | 超期天数 | 责任人 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[查看报工] [查看质检记录] [生成催办] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +字段: +- 生产订单 +- 物料编码 +- 物料名称 +- 工序名称 +- 指派对象 +- 报工数量 +- 已检数量 +- 未检数量 +- 报工结束时间 +- 超期天数 + +### 5. 及时齐套跟踪结果报表 + +定位:主订单齐套跟踪,支持展开查看 SAP 缺件明细。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 及时齐套跟踪结果报表 │ +├────────────────────────────────────────────────────────────────────┤ +│ 主生产订单 [____] 合同号 [____] 物料 [____] 齐套状态 [全部▼] │ +│ 预计可执行时间 [____至____] SAP同步时间 [____至____] │ +│ [查询] [重置] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ ▶ 主生产订单 | 合同号 | 物料编码 | 物料名称 | 计划数量 | 齐套状态 │ +│ 缺件数 | 当前进度 | 预计可执行时间 | SAP同步时间 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 展开明细: │ +│ 缺料物料 | 名称 | 缺件数量 | 属性 | 对应单据号 | 当前进度 │ +│ 全序展示 | 单条预计完成时间 | 预计可执行时间 | 操作 │ +└────────────────────────────────────────────────────────────────────┘ +``` + +可维护字段: +- 预计可执行时间 +- 预计可执行说明 +- 主订单与缺料子订单人工绑定关系 + +弹窗: +- 编辑预计可执行时间 +- 查看 SAP 缺件明细 +- 主子订单关系维护 + +### 6. 生产日报-送检 + +定位:机加/装配送检日报,建议一个页面两个页签。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 生产日报-送检 │ +├────────────────────────────────────────────────────────────────────┤ +│ 页签:[机加送检日报] [装配送检日报] │ +├────────────────────────────────────────────────────────────────────┤ +│ 日期 [____] 部门 [全部▼] 生产订单 [____] 物料 [____] │ +│ [查询] [重置] [导出日报] │ +├────────────────────────────────────────────────────────────────────┤ +│ 日汇总:送检数量 已检数量 合格数量 不合格数量 未检数量 │ +├────────────────────────────────────────────────────────────────────┤ +│ 日期 | 部门 | 生产订单 | 物料编码 | 物料名称 | 工序 | 送检数量 │ +│ 已检数量 | 合格数量 | 不合格数量 | 送检时间 | 检验时间 | 状态 │ +└────────────────────────────────────────────────────────────────────┘ +``` + +说明: +- 部门归属规则需确认。 +- 该页面不维护送检和检验结果。 + +### 7. 编程任务清单 / 编程报工 + +定位:编程任务和编程工时管理。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 编程任务清单 │ +├────────────────────────────────────────────────────────────────────┤ +│ 设备 [全部▼] 工位 [全部▼] 程序员 [____] 状态 [全部▼] │ +│ 生产订单 [____] 日期 [____至____] │ +│ [查询] [重置] [新增编程任务] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ 任务编号 | 生产订单 | 物料编码 | 物料名称 | 工序 | 设备/工位 │ +│ 程序号 | 编程人员 | 状态 | 开始时间 | 结束时间 | 工时 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[开始编程] [结束编程] [编辑程序号] [工时记录] [报异常] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +弹窗: +- 新增编程任务 +- 开始编程 +- 结束编程 +- 工时记录 +- 程序号维护 + +状态: +- 未开始 +- 编程中 +- 已完成 +- 已取消 +- 异常中 + +### 8. 让步接收记录 + +定位:查询质检记录中让步接收字段不为空的数据。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 让步接收记录 │ +├────────────────────────────────────────────────────────────────────┤ +│ 生产订单 [____] 物料 [____] 检验人 [____] 检验日期 [____至____] │ +│ 让步接收类型 [全部▼] │ +│ [查询] [重置] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ 生产订单 | 物料编码 | 物料名称 | 工序 | 检验数量 | 不合格数量 │ +│ 让步接收 | 检验人 | 检验时间 | 处置说明 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[查看质检记录] [查看不合格处置] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +说明: +- 页面只查询,不维护让步接收。 +- 让步接收仍在质检中心或不合格处置维护。 + +### 9. 装配已排产需求 + +定位:装配交付进度中心,整合 SAP 字段、MES 报工、工时、异常、齐套和日计划。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 装配已排产需求 │ +├────────────────────────────────────────────────────────────────────┤ +│ 系统分类 [全部▼] 合同号 [____] 生产订单 [____] 物料 [____] │ +│ 发料齐套时间 [____至____] 装配完成时间 [____至____] 状态 [全部▼] │ +│ [查询] [重置] [导出] [批量维护] │ +├────────────────────────────────────────────────────────────────────┤ +│ 生产订单 | 合同号 | 物料编码 | 物料名称 | 系统/非系统 | 派工时间 │ +│ 合同交货期 | 发料齐套时间 | 装配完成时间 | 当前人员 | 当前内容 │ +│ 累计工时 | 异常数 | 钣金预达 | 钣金到达 | 泵预达 | 泵到达 | 备注 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[查看工时] [查看异常] [查看缺件] [维护字段] [生成日计划] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +字段分组: +- SAP 字段:派工时间、合同交货期 +- MES 计算字段:装配完成时间、累计工时、异常数 +- 手工维护字段:钣金预达、钣金到达、泵预达、泵到达、备注、当前对应内容 + +弹窗: +- 工时明细 +- 异常明细 +- 缺件明细 +- 手工字段维护 +- 日计划预览 + +### 10. 质检任务早知道 + +定位:根据装配已排产需求预测即将进入质检的任务。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 质检任务早知道 │ +├────────────────────────────────────────────────────────────────────┤ +│ 装配完成时间 [____至____] 合同号 [____] 生产订单 [____] │ +│ 物料 [____] 状态 [待质检▼] │ +│ [查询] [重置] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ 预计质检日期 | 生产订单 | 合同号 | 物料编码 | 物料名称 | 装配完成时间 │ +│ 当前人员 | 当前内容 | 累计工时 | 异常状态 | 质检状态 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[查看装配进度] [查看异常] [查看质检记录] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +说明: +- 强依赖装配已排产需求。 +- 不直接维护质检结果。 + +### 11. 及时送检报表 + +定位:发料齐套后超过规则时间未送检的任务催办。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 及时送检报表 │ +├────────────────────────────────────────────────────────────────────┤ +│ 生产订单 [____] 合同号 [____] 物料 [____] 指派对象 [全部▼] │ +│ 发料齐套时间 [____至____] 送检状态 [未送检▼] 超期天数 [>= 2] │ +│ [查询] [重置] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ 生产订单 | 合同号 | 物料编码 | 物料名称 | 指派对象 | 发料齐套时间 │ +│ 是否送检 | 送检时间 | 超期天数 | 加急 | 当前状态 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[查看装配任务] [查看质检任务] [生成催办] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +### 12. 发货通知列表 + +定位:SAP 已提供数据,大屏已展示,新增普通报表查询页。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 发货通知列表 │ +├────────────────────────────────────────────────────────────────────┤ +│ 发货通知号 [____] 合同号 [____] 客户 [____] 状态 [全部▼] │ +│ 要求发货日期 [____至____] SAP同步时间 [____至____] │ +│ [查询] [重置] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ 发货通知号 | 合同号 | 客户 | 物料编码 | 物料名称 | 数量 │ +│ 要求发货日期 | 发货状态 | SAP同步时间 | 备注 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[查看明细] [查看关联生产订单] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +说明: +- 默认只读 SAP 或 SAP 同步表。 +- 如需 MES 备注,建议单独建本地备注扩展字段。 + +### 13. 工时异常报表 + +定位:单件实际工时大于标准单件工时的异常分析。 + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ 工时异常报表 │ +├────────────────────────────────────────────────────────────────────┤ +│ 日期 [____至____] 设备 [全部▼] 工位 [全部▼] 操作人 [____] │ +│ 物料 [____] 工序 [全部▼] 超出比例 [>=____%] 状态 [全部▼] │ +│ [查询] [重置] [导出] │ +├────────────────────────────────────────────────────────────────────┤ +│ 设备/工位 | 生产订单 | 物料编码 | 物料名称 | 工序 | 操作人 │ +│ 标准单件工时 | 实际单件工时 | 超出时长 | 超出比例 | 班次 | 状态 | 操作 │ +│ ------------------------------------------------------------------ │ +│ 操作:[查看工时明细] [确认异常] [填写原因] │ +└────────────────────────────────────────────────────────────────────┘ +``` + +异常确认弹窗: +- 异常原因 +- 责任部门 +- 处理说明 +- 确认人 +- 确认时间 + +## 四、现有页面改造界面说明 + +### 1. 机加件已排产页面 + +改造点: +- `计划开始时间` 改为单日期选择。 +- `计划完成时间` 改为单日期选择。 +- 表格增加 `总工时` 列。 +- 点击总工时打开历史工时明细弹窗。 + +```text +查询区:计划开始日期 [____] 计划完成日期 [____] +表格列:... | 总工时 | 操作 +总工时点击弹窗:设备 -> 日期 -> 任务明细 +``` + +### 2. 生产计划跟踪 + +改造点: +- 当前序展示完整工艺路线。 +- 工序按状态变色。 +- 增加标准工时、订单状态。 + +```text +工艺路线:打磨(张三) -> 淬火(外协) -> 精磨(李四) +状态颜色:进行中高亮、已完成置灰、待加工普通色、异常红色 +``` + +### 3. 序检收检/外协任务检验 + +改造点: +- 增加指派对象。 +- 增加供应商。 +- 增加 SAP 采购收货单号。 + +建议在检验记录表格和检验详情弹窗中同时展示。 + +### 4. 生产订单关闭 + +改造点: +- 表格增加多选。 +- 增加 `批量关闭 SAP 订单` 按钮。 +- 增加批量关闭结果弹窗。 + +结果弹窗字段: +- 生产订单 +- SAP 单据号 +- 执行结果 +- 失败原因 +- 是否可重试 + +### 5. 生产工艺 + +改造点: +- 点击编辑时,若无生产工艺,弹窗提示“未找到生产工艺,是否带出标准工艺作为草稿?” +- 带出后不自动保存。 +- 保存后才写入生产工艺。 + +### 6. 异常管控 + 全部报工页面 + +改造点: +- 所有报工页面增加 `报异常` 按钮。 +- 选中任务后打开统一异常弹窗。 +- 异常弹窗支持多选审批人。 + +异常弹窗字段: +- 异常类型 +- 异常说明 +- 附件 +- 审批人,多选 +- 关联订单/任务/工序,只读 + +### 7. 及时开工报表 + +改造点: +- 指派对象查询增加模式选择。 + +```text +指派对象 [多选] 查询模式 [包含▼ / 排除▼] +``` + +### 8. 工时报表 + +改造点: +- 增加指派对象字段。 +- 后续支持工时类型和来源模块。 + +### 9. 领料/退库/外协报表小字段 + +| 页面 | 界面改造 | +|---|---| +| 生产领料(机加) | 增加备注输入/备注列 | +| 生产退库(机加) | 增加备注输入/备注列 | +| 生产退库(装配) | 增加备注输入/备注列 | +| 外协任务报表(采购) | 增加采购到货期说明列 | +| 工序流转卡 | 打印模板增加原料编码 | +| 制定标准工艺 | 保存成功/失败提示明确化 | + +## 五、优先原型顺序 + +| 优先级 | 页面 | +|---|---| +| P0 | 手续确认报表、及时检验报表、发货通知列表、生产订单关闭批量 SAP | +| P0 | 生产工艺自动带出标准工艺、异常管控直接报异常 | +| P1 | 装配已排产需求、及时齐套跟踪结果报表、质检任务早知道 | +| P1 | 设计任务报工、编程任务清单/编程报工 | +| P1 | 机加班次产量表、生产日报-送检、及时送检报表 | +| P2 | 工时异常报表、OEE/设备采集相关界面、现场大屏缺勤/关键工序 | + +## 六、客户确认清单 + +1. 新增页面菜单位置是否按本文建议放置。 +2. 手续确认、预计可执行时间、装配已排产需求中的手工字段是否允许页面维护。 +3. 设计任务、编程任务是否需要审批或只做报工。 +4. 缺勤人员是否已有排班/考勤来源。 +5. 关键工序是否确认在标准工艺和生产工艺维护。 +6. 及时检验、及时送检的超期天数是否统一为 2 天。 +7. 发货通知列表是否只读 SAP 数据,是否需要 MES 备注。 +8. 工时异常是否需要确认闭环,还是只做查询。 diff --git a/MES_Manage_View_V20/隐性需求综合分析_2026-05-25.md b/MES_Manage_View_V20/隐性需求综合分析_2026-05-25.md new file mode 100644 index 0000000..e3f33a7 --- /dev/null +++ b/MES_Manage_View_V20/隐性需求综合分析_2026-05-25.md @@ -0,0 +1,860 @@ +# MES_Manage_View_V20 新增需求后的整体影响与隐性需求综合分析 + +生成日期:2026-05-25 + +分析依据: +- `新增需求分析与开发记录_2026-05-23.md` +- `今日工作汇报_2026-05-23.txt` +- `需求分析_自制件与工位汇总表.md` +- `MES_Manage_View_V20_src_views_逐页面详细分析.md` + +## 一、分析视角调整 + +本文不单纯从“客户后续可能要什么”出发,而是从系统整体出发,分析这些新增需求如果逐步落地,会对现有 MES 产生什么连锁影响: + +1. 会新增哪些业务数据。 +2. 会改变哪些原有统计口径。 +3. 会冲击哪些已完成页面、报表、看板。 +4. 会让哪些现有字段含义变得不够用。 +5. 会产生哪些必须补做的隐性能力。 +6. 客户基于新数据和新功能,后续还可能继续提出什么。 + +核心判断: + +这些需求不是孤立新增页面。它们会把系统从“生产任务执行系统”推向“生产进度、质量、工时、齐套、异常、SAP 状态一体化追踪系统”。一旦新增字段、报表、SAP 回写、设计/编程报工、装配已排产需求进入系统,很多已完成页面也要重新解释和调整。 + +## 二、总体连锁影响 + +| 新增能力 | 直接新增数据 | 产生的问题 | 隐性需求 | 已完成页面/报表是否需要改 | +|---|---|---|---|---| +| 设计任务报工 | 设计任务、设计工时、工作内容、开始/结束时间 | 原有工时只覆盖生产/质检/装配,合同总工时会漏设计 | 工时分类、合同工时汇总、设计任务权限、设计工时报表 | 装配已排产需求、工时报表、合同进度、日报需要纳入设计工时 | +| 编程任务清单/编程报工 | 编程任务、编程工时、设备/工位、人员、说明 | 编程是否影响生产任务可开工不明确 | 编程完成状态、编程工时独立统计、任务前置条件 | 机加中心、生产计划跟踪、工时报表、及时开工可能需要增加编程状态 | +| 装配已排产需求 | 发料齐套时间、装配完成时间、SAP 派工时间、合同交货期、钣金/泵、当前人员、累计工时、异常 | 原装配排产页只管排产,新页面会变成交付进度中心 | 装配进度模型、日计划、合同进度、异常汇总、手工字段维护历史 | `InstallMakePlan`、`AssemblyCenter`、生产任务看板、质检任务早知道、日报都要联动 | +| 历史工时查询 | 任务总工时、设备/日期分组明细 | 原列表只显示任务状态,新总工时会引出明细追溯 | 汇总到明细钻取、工时来源标识、重复报工处理 | `SelfMakePlandone`、工时查询、班次产量表、合同工时汇总要统一口径 | +| 机加班次产量表 | 班次、设备、日期、任务、数量、工时 | 原工时和产量按任务查,现在要按班次归属 | 班次日历、跨天班次规则、设备日合计、人员归属 | 设备看板、工位汇总表、工时报表、生产日报需要统一班次口径 | +| 外协检验字段增强 | 指派对象、供应商、SAP 采购收货单号 | 原质检记录只到工序,供应商/单据链不完整 | 供应商合格率、SAP 单据追溯、外协质检报表 | 外协报表、质检记录、供应商统计、序检收检页面需要补字段 | +| 手续确认报表 | 手续确认状态、确认人、确认时间 | 原任务消失规则依赖已入库/关闭,现在又增加人工确认维度 | 待办清单、确认日志、取消/关闭/入库同步规则 | 装配中心、发料齐套列表、生产任务看板、订单关闭后状态需要同步 | +| 及时检验报表 | 报工完成时间、未检数量、超期天数 | 原质检任务是业务操作,新报表要求按时间催办 | 质检责任人、催办、超期规则、已检数量核算 | 质检中心、生产日报、异常提醒、看板需要展示未检/超期 | +| 及时齐套跟踪结果报表 | 主订单与缺料子订单关系、SAP 缺件明细、预计可执行时间 | SAP 实时数据和 MES 落库数据会不一致 | SAP 缓存、展开加载、主子订单关系维护 | 生产任务看板、装配已排产、及时开工、发料齐套报表需要统一缺件状态 | +| 生产日报-送检 | 送检、已检、合格、不合格、部门 | 原质检记录按任务查,现在要按部门/日报统计 | 部门归属规则、日报快照、合计口径 | 质检报表、工位汇总、日报、看板需要改统计维度 | +| 生产订单批量关闭 SAP | SAP 关闭结果、失败原因、操作日志 | MES/SAP 状态可能部分成功、重复关闭 | 批量结果表、重试机制、二次确认、权限 | 订单关闭页、排产页、生产中心、手续确认报表都要识别 SAP 关闭 | +| 异常管控入口统一 | 异常关联任务、审批人多选、附件、处理状态 | 原异常页面独立,新增入口后所有报工页都要联动 | 异常状态流转、待办、任务暂停规则、异常统计 | 机加/装配/质检/外协/设计/编程报工页面都要加入口和状态 | +| 生产工艺自动带出标准工艺 | 标准工艺草稿、生产工艺映射 | 原工艺一旦生成就被任务使用,修改会影响历史 | 工艺版本、任务快照、字段映射 | 生产计划跟踪、排产、流转卡、工时报表都要按任务快照而非最新工艺 | +| 发货通知列表 | SAP 发货通知数据、状态、单据号 | 原大屏展示变为报表查询后要支持筛选和追溯 | SAP 数据同步/实时查询、导出、状态解释 | 大屏、销售/生产交付类报表可能要统一发货状态 | + +## 三、最主要的问题不是新增页面,而是口径被改变 + +### 1. 工时口径会被重构 + +新增需求之前,系统主要工时来源集中在生产执行和质检相关记录,典型对象包括: +- `YL_加工中心_操作记录表` +- `生产管理_工时校验_校验工时表` +- 装配报工记录 +- 质检记录或质检报工 + +新增需求之后,工时会被拆成更多类别: +- 机加工时 +- 装配工时 +- 质检工时 +- 设计工时 +- 编程工时 +- 设备运行工时 +- 程序工时 +- 人员工时 +- 合同工时 +- 预计总工时 +- 剩余工时 + +会产生的问题: + +1. 原来“总工时”字段含义不够用了。 + - `SelfMakePlandone` 要加总工时。 + - 装配已排产需求要显示生产订单累计工时、合同工时汇总。 + - 班次产量表要按设备、日期、班次汇总工时。 + - 工时报表要加指派对象。 + - 如果都叫“总工时”,但来源不一致,页面数字会对不上。 + +2. 合同进度会和生产任务工时产生冲突。 + - 装配已排产需求提出“合同进度 = 累计工时 / 预计总工时”。 + - 但累计工时是否包含设计、质检、编程、装配、返工、异常工时,需要明确。 + - 如果不明确,合同进度会成为争议字段。 + +3. 已完成报表需要增加工时分类。 + - 原工时报表只要显示工时即可。 + - 新增设计/编程后,必须能区分工时类型。 + - 否则设计工时可能被误算进生产工时,或者合同总工时漏算。 + +需要跟着调整的已完成页面/报表: + +| 页面/报表 | 需要调整原因 | 建议调整 | +|---|---|---| +| `ProductionManagement/Timesheet` | 作业者工时新增指派对象,后续还会受到设计/编程工时影响 | 增加工时类型、来源模块、指派对象 | +| `ProductionManagement/WorkHoursCheck` | SAP 工时/投料校验与 MES 工时会产生差异 | 显示本次提交、历史提交、SAP 返回结果 | +| `PlanManagement/SelfMakePlandone` | 新增总工时和明细弹窗 | 总工时必须注明来源,仅统计生产报工还是包含质检/异常 | +| `ProductionManagement/AssemblyCenter` | 装配工时要进入装配已排产需求和合同进度 | 输出可复用的装配工时汇总字段 | +| 工位汇总表 | 新增班次、设备、人员、程序工时后口径变化 | 增加班次维度,区分设备工时/人工工时 | +| 自制件汇总表 | 合同工时和订单工时可能要求纳入新工时类型 | 增加工时类型过滤和明细钻取 | + +产生的隐性需求: +- 统一工时事实视图或工时汇总表。 +- 工时来源字段:生产、装配、质检、设计、编程、设备采集。 +- 工时单位统一:秒、分钟、小时。 +- 工时快照:报表发布后是否允许历史数据随新规则变化。 +- 工时差异解释:人工工时、设备工时、SAP 工时不一致时显示差异原因。 + +客户可能继续要: +- 合同维度工时明细。 +- 人员维度工时排名。 +- 设备维度利用率。 +- 设计/装配/质检工时占比。 +- 超预算工时预警。 + +### 2. 状态口径会被重新拉通 + +现有系统中已经出现很多状态: +- 排产状态 +- 派工状态 +- 任务状态 +- 加工状态 +- 收料状态 +- 发料状态 +- 质检状态 +- 入库状态 +- 加急状态 +- 外协通知 +- SAP 订单状态 +- 手续确认状态 +- 异常状态 +- 编程完成状态 +- 设计任务状态 + +会产生的问题: + +1. 一个任务在不同页面可能显示成不同状态。 + - 排产页面看 `排产状态`、`派工状态`。 + - 生产中心看 `任务状态`、`加工状态`。 + - 质检页面看检验记录。 + - 手续确认报表看手续确认、入库、关闭。 + - SAP 订单关闭后,MES 任务可能仍显示未完成。 + +2. 新增状态会影响原来的“消失条件”。 + - 手续确认报表中,已完成、取消、关闭、整单已入库都要消失。 + - 质检任务早知道也要排除已入库、关闭、取消任务。 + - 及时检验报表要排除已检足数量的任务。 + - 如果状态判断不统一,会出现同一任务在 A 页面消失,在 B 页面仍提醒。 + +3. 异常状态会打断原流程。 + - 报异常后是否允许继续报工? + - 异常未关闭时是否允许质检? + - 异常是否影响及时开工/及时检验/齐套报表? + - 这些都不是当前页面能单独决定的。 + +需要跟着调整的已完成页面/报表: + +| 页面/报表 | 受影响点 | 建议调整 | +|---|---|---| +| `AnomalousManagement/PunctualWork` | 及时开工按任务状态筛选,新增异常/编程/齐套后可能影响可执行判断 | 增加异常、编程、齐套条件说明 | +| `PlanManagement/InstallMakePlan` | 排产完成后还要看 SAP 订单状态、发料齐套、装配完成时间 | 查询结果补 SAP/齐套相关状态 | +| `PlanManagement/PlannOrderClose` | 批量关闭 SAP 后,MES 页面必须识别关闭结果 | 增加 SAP 关闭状态、失败原因、重试入口 | +| `ProductionManagement/MachiningCenter` | 异常入口、编程完成、设备占用都会影响可开工 | 增加任务不可操作原因 | +| `ProductionManagement/AssemblyCenter` | 装配完成时间、手续确认、异常都会影响任务显示 | 增加装配进度状态 | +| `QualityManagement/QualityCenter` | 已入库/关闭/异常/让步接收会影响质检操作 | 增加质检可操作性判断 | +| 生产任务看板 | 新增齐套、及时检验、手续确认、异常后看板指标会变化 | 重算指标口径 | + +产生的隐性需求: +- 生产任务状态总表。 +- 页面状态与数据库状态映射表。 +- 状态优先级规则:关闭 > 入库 > 异常 > 未检 > 未开工 等。 +- “不可操作原因”统一返回,而不是前端各页面自己判断。 +- 批量状态校验接口。 + +客户可能继续要: +- 任务状态流转图。 +- 状态变更历史。 +- 状态异常看板。 +- 一键修复状态不一致。 +- 已关闭/已入库任务仍可查询但不可操作。 + +### 3. SAP 与 MES 数据一致性问题会放大 + +今天逐页面分析中,SAP 相关调用已经覆盖多个核心流程: +- 排产确认:`PATCH /ProductionOrders(...)` +- 订单关闭:`PATCH /ProductionOrders(...)` +- 工时校验/发料:`GET /ProductionOrders`、`POST /InventoryGenExits`、`PATCH ProductionOrders(...)` +- 外协采购申请:`POST /PurchaseRequests` +- 外协采购收货:`POST /PurchaseDeliveryNotes` +- 工位资源:`POST /Resources`、`PATCH /Resources(...)` +- 工序:`POST /RouteStages`、`PATCH /RouteStages(...)` + +新增需求后,SAP 相关数据还会增加: +- SAP 派工时间 +- 合同交货期 +- 发料齐套时间 +- 缺件明细 +- 发货通知 +- 采购收货单号 +- SAP 订单取消/关闭状态 + +会产生的问题: + +1. 实时查 SAP 和 MES 落库字段会不一致。 + - 及时齐套缺件明细要求 SAP 实时查询。 + - 装配已排产需求要求 SAP 派工时间、合同交货期。 + - 发货通知列表来源 SAP。 + - 如果某些页面读 SAP 实时,某些页面读 MES 同步表,数字和状态可能不同。 + +2. SAP 写操作失败会产生半成功数据。 + - MES 排产已完成,但 SAP 生产订单未更新。 + - MES 工时校验已保存,但 `InventoryGenExits` 失败。 + - 批量关闭 SAP 订单时,部分成功部分失败。 + - 外协采购请求成功,但 MES 未记录单号。 + +3. 新增报表会追问 SAP 数据更新时间。 + - 合同交货期什么时候同步? + - 发料齐套时间是否最新? + - 缺件明细是否实时? + - 发货通知状态是否已更新? + +需要跟着调整的已完成页面/报表: + +| 页面/报表 | 受影响点 | 建议调整 | +|---|---|---| +| `PlanManagement/SelfMakePlan/SelfMakePlando/SelfMakePlandone` | 排产同步 SAP 后缺少同步结果留痕 | 增加 SAP 同步状态、失败提示、重试依据 | +| `PlanManagement/InstallMakePlan/InstallMakePlanDo` | 装配新增 SAP 派工时间、合同交货期、发料齐套时间 | 查询和导出补 SAP 字段来源 | +| `ProductionManagement/WorkHoursCheck` | 已有 SAP 工序、资源、发料操作 | 增加 SAP 请求/返回日志和失败重试 | +| `QualityManagement/CheckTask/processReceive` | SAP 采购收货单号成为后续统计字段 | 保存 SAP 单号、行号、供应商 | +| `ProductionManagement/OutsourceMange` | 外协采购请求后要追踪 SAP 单据 | 记录采购请求号/采购订单关系 | +| `SystemMaintenance/WorkstationManagement` | 工位资源同步 SAP 后要防重复 | 增加 SAP 资源编码校验 | +| 发货通知大屏/新增报表 | 大屏已有数据,新增报表要求查询/导出 | 明确实时或同步数据源 | + +产生的隐性需求: +- SAP 调用日志表。 +- SAP 同步状态字段。 +- SAP 失败重试页面。 +- SAP 单据关系表:MES 任务 -> SAP 生产订单/采购请求/收货单/发货通知。 +- 数据更新时间展示。 +- 批量操作结果明细。 + +客户可能继续要: +- SAP 同步失败列表。 +- 手工重推 SAP。 +- SAP 与 MES 差异对账。 +- 每张 SAP 单据反查 MES 来源任务。 +- 批量关闭/批量回写的成功失败导出。 + +### 4. 报表会从结果展示变成数据追溯 + +新增需求中报表很多: +- 机加班次产量表 +- 手续确认报表 +- 及时检验报表 +- 及时齐套跟踪结果报表 +- 生产日报-送检 +- 让步接收记录 +- 及时送检报表 +- 发货通知列表 +- 质检任务早知道 +- 设计工时报表 +- 自制件汇总表 +- 工位汇总表 + +会产生的问题: + +1. 报表之间会互相引用同一批数据。 + - 及时检验依赖报工记录和质检记录。 + - 生产日报-送检依赖送检和质检记录。 + - 质检任务早知道依赖装配完成时间。 + - 装配已排产需求依赖工时、异常、齐套、SAP 字段。 + - 如果每个报表各写一套 SQL,口径会分裂。 + +2. 报表新增字段会要求历史数据补齐。 + - 外协检验新增供应商后,历史质检记录没有供应商。 + - 发料齐套时间新增后,历史生产计划没有该字段。 + - 手续确认新增后,历史任务默认是否“未确认”需要确定。 + - 设计/编程工时新增后,历史合同进度是否重算需要确定。 + +3. 报表会反向要求修改业务页面。 + - 报表要统计供应商合格率,就要求质检页面必须保存供应商。 + - 报表要统计及时检验,就要求报工结束时间必须准确。 + - 报表要统计手续确认,就要求业务页面维护确认状态。 + - 报表要统计合同进度,就要求所有工时都有合同号。 + +需要跟着调整的已完成页面/报表: + +| 已完成页面/报表 | 因新增需求需要调整什么 | +|---|---| +| 生产任务看板 | 增加及时齐套、及时检验、手续确认、装配完成时间等新指标或修正原指标 | +| 机加设备/生产运营看板 | 班次产量、设备工时、程序工时进入后,需要重算设备利用和产量口径 | +| 装配任务看板 | 装配完成时间、发料齐套、合同交货期、质检任务早知道会影响待办和逾期 | +| 质检任务看板 | 新增及时检验、质检任务早知道、让步接收后,待检数量口径要改 | +| 自制件汇总表 | 新增历史工时、设计/编程/质检工时后,总工时口径要扩展 | +| 工位汇总表 | 班次和设备采集数据进入后,按工位+日期的统计需要支持班次和设备维度 | +| 外协任务报表 | 增加供应商、采购到货期说明、SAP 收货单号后,导出和统计都要改 | +| 工时报表 | 指派对象、工时分类、设计/编程工时进入后,需要新增字段和筛选 | + +产生的隐性需求: +- 报表数据口径说明。 +- 报表明细钻取。 +- 报表导出字段配置。 +- 报表历史快照。 +- 历史数据补录/默认值策略。 +- 跨报表公共视图。 + +客户可能继续要: +- 每个报表点击数字看明细。 +- 报表导出与页面一致。 +- 报表按部门、班组、班次、人员、设备切换。 +- 报表定时推送。 +- 历史报表锁定,不随后续数据变化。 + +## 四、已完成页面/报表需要关注的改造清单 + +### 1. 计划排产相关页面 + +| 页面 | 需要关注的新增影响 | 是否需要修改 | +|---|---|---| +| `PlanManagement/SelfMakePlan` | SAP 回写状态、排产字段、计划时间口径、总工时 | 需要,至少补同步状态和字段口径 | +| `PlanManagement/SelfMakePlando` | 待排产转已排产后,装配/机加新字段是否继承 | 需要,确认新增字段默认值 | +| `PlanManagement/SelfMakePlandone` | 单日期筛选、总工时、历史明细、SAP 状态 | 已明确需要改 | +| `PlanManagement/InstallMakePlan` | 装配已排产需求会复用其数据,新增 SAP 派工时间、合同交货期、发料齐套 | 需要,至少 SQL 返回字段要扩展 | +| `PlanManagement/InstallMakePlanDo` | 同上,且涉及采购请求/SAP 回写 | 需要,补 SAP 单据和失败处理 | +| `PlanManagement/PlannOrderClose` | 批量关闭 SAP 后影响所有任务显示 | 需要,增加批量结果、失败原因、日志 | + +### 2. 生产执行相关页面 + +| 页面 | 需要关注的新增影响 | 是否需要修改 | +|---|---|---| +| `ProductionManagement/MachiningCenter` | 编程状态、异常入口、设备工时、程序工时、及时检验起算 | 需要,新增入口和不可操作原因 | +| `ProductionManagement/AssemblyCenter` | 装配完成时间、手续确认、装配工时、异常、发料任务状态 | 需要,作为装配已排产需求的数据来源 | +| `ProductionManagement/ProductionTaskManage` | 生产任务状态增加异常/齐套/质检/关闭维度 | 需要,查询字段和状态说明要扩展 | +| `ProductionManagement/AssembleTaskManage` | 装配任务将进入日计划和质检任务早知道 | 需要,补装配完成时间和任务排除规则 | +| `ProductionManagement/WorkHoursCheck` | SAP 工时校验、发料、订单工序资源更新风险扩大 | 需要,补 SAP 日志、重试、差异说明 | +| `ProductionManagement/Timesheet` | 指派对象、设计/编程工时、工时分类 | 需要,补字段和筛选 | + +### 3. 质检相关页面 + +| 页面 | 需要关注的新增影响 | 是否需要修改 | +|---|---|---| +| `QualityManagement/QualityCenter` | 及时检验、让步接收、外协供应商、已入库限制 | 需要,补状态和字段 | +| `QualityManagement/CheckTask/processReceive` | SAP 采购收货单号、供应商、外协指派对象 | 需要,新增保存和查询字段 | +| `QualityManagement/CheckTask/purchaseIncoming` | 采购检验备注、供应商统计、到货期说明 | 需要,至少补导出字段 | +| `QualityManagement/CheckTask/materialReturn` | 退库备注、库存任务状态 | 可能需要,跟退库备注和库存任务联动 | +| `QualityManagement/Unqualified` | 供应商合格率、让步接收、不合格统计口径 | 需要,补供应商/让步接收字段 | +| 质检任务看板 | 质检任务早知道和及时检验会改变待检数量 | 需要,重算待检/超期口径 | + +### 4. 外协相关页面 + +| 页面 | 需要关注的新增影响 | 是否需要修改 | +|---|---|---| +| `ProductionManagement/OutsourceMange` | 外协采购请求、供应商、发料/收料/质检闭环 | 需要,补 SAP 单据关系 | +| `ProductionManagement/OutsourceSheet` | 采购到货期说明、供应商、SAP 收货单号、外协质检 | 需要,查询和导出都要补 | +| `ProductionManagement/SaleOutsourceMange` | 销售外协同样受采购请求和供应商统计影响 | 需要,保持与外协管理一致 | + +### 5. 工艺和基础数据页面 + +| 页面 | 需要关注的新增影响 | 是否需要修改 | +|---|---|---| +| `ProcessManagement/ProcessProduct` | 自动带出标准工艺后,生产任务快照问题变明显 | 需要,避免覆盖已开工任务 | +| `CraftManagement/CraftMaintain` | 工艺版本、标准工艺字段映射 | 需要,补版本/草稿概念 | +| `ProcessManagement/ProcedureManagement` | SAP `RouteStages` 同步后要防止 MES/SAP 工序不一致 | 需要,补同步状态 | +| `SystemMaintenance/WorkstationManagement` | SAP `Resources` 新增/修改后要防重复和同步失败 | 需要,补资源同步状态 | + +### 6. 已完成看板和报表 + +| 看板/报表 | 新增功能导致的新数据 | 需要调整 | +|---|---|---| +| 生产任务看板 | 发料齐套、及时齐套、装配完成时间、及时检验、异常 | 指标口径需要重算 | +| 装配任务看板 | 装配完成时间、合同交货期、质检预告、手续确认 | 新增逾期和待办指标 | +| 质检任务看板 | 及时检验、质检任务早知道、让步接收 | 待检、超期、预告分开 | +| 机加设备生产运营看板 | 班次产量、程序工时、设备采集 | 设备利用率和产量来源需要统一 | +| 自制件汇总表 | 总工时、设计/编程/质检分类 | 工时口径要扩展 | +| 工位汇总表 | 班次、设备、人员、程序工时 | 增加班次/设备维度或说明不支持 | + +## 五、新增数据会带来的数据治理问题 + +### 1. 新字段放哪里 + +容易新增到生产计划/任务表的字段: +- 发料齐套时间 +- 装配完成时间 +- 手续确认 +- 当前对应人员 +- 当前对应内容 +- 钣金预达 +- 钣金到达 +- 泵 +- 生产异常标记 + +问题: +- 这些字段有些是 SAP 来的,有些是手工维护,有些是计算结果。 +- 全部塞进 `MES_接口_生产计划` 或 `MES_接口_生产计划_生产任务` 会让主表越来越混乱。 +- 手工维护字段还需要修改历史,否则无法解释是谁改了装配完成时间。 + +建议: +- SAP 同步字段、手工维护字段、计算字段分开存。 +- 手工维护字段建议用扩展表。 +- 计算字段优先用视图或报表过程生成。 + +### 2. 历史数据怎么处理 + +新增字段会导致历史数据为空: +- 历史外协质检没有供应商。 +- 历史质检没有 SAP 收货单号。 +- 历史生产计划没有发料齐套时间。 +- 历史任务没有手续确认。 +- 历史任务没有设计/编程工时。 + +问题: +- 报表默认查全部时,历史数据会被算成未完成、未确认、未齐套。 +- 用户可能认为系统数据异常。 + +建议: +- 每个新增字段定义历史默认规则。 +- 报表上区分“无数据”和“未完成”。 +- 对考核类报表增加启用日期。 + +### 3. 新增数据是否参与已完成报表 + +例如: +- 设计工时是否参与合同进度? +- 编程工时是否参与生产订单累计工时? +- 让步接收是否算合格? +- 外协供应商合格率是否包含历史无供应商数据? +- 已入库补检是否进入及时检验统计? + +这些会直接影响已完成报表。 + +建议: +- 新增需求上线前,同步输出“影响报表清单”。 +- 每个报表明确是否纳入新数据。 +- 如果纳入,是否重算历史。 + +## 六、系统级隐性需求清单 + +这些不是客户一开始直接说的需求,但只要新增功能落地,基本会被迫出现。 + +| 隐性需求 | 触发原因 | 不做的后果 | +|---|---|---| +| 字段来源字典 | 新字段来自 MES、SAP、手工、设备采集 | 联调时无法解释字段来源,报表口径反复变 | +| 状态总字典 | 状态分散在排产、生产、质检、入库、SAP | 同一任务不同页面显示不同状态 | +| SAP 调用日志 | 多页面写 SAP,且可能失败 | 无法排查 MES/SAP 不一致 | +| SAP 失败重试 | 批量关闭、工时校验、外协采购都可能部分失败 | 人工只能改库或重复操作 | +| 工时统一视图 | 新增设计、编程、设备、合同工时 | 各报表总工时对不上 | +| 报表明细钻取 | 汇总类报表越来越多 | 客户无法核对数字,只能反复查 SQL | +| 报表历史快照 | 报表用于日报/周报/考核 | 历史报表随数据变化,无法对账 | +| 手工字段维护历史 | 装配完成时间、钣金、泵、手续确认等可人工维护 | 无法追溯谁改了关键交期字段 | +| 批量操作结果表 | 批量关闭 SAP、批量排产、批量确认 | 部分成功/失败无法恢复 | +| 异常统一入口组件 | 所有报工页都要报异常 | 每页重复开发,状态不一致 | +| 任务追溯详情页 | 报表要解释数字来源 | 每个报表都要临时加明细 | +| 菜单/权限自动配置规范 | 新增页面很多 | 页面上线后权限、菜单容易漏 | +| 数据启用日期配置 | 新字段历史为空 | 历史数据被误算为异常 | +| 不可操作原因接口 | 关闭、入库、异常、未齐套都影响操作 | 前端提示不一致,用户不知道为什么不能点 | + +## 七、客户可能继续提出的需求 + +保留从客户使用角度推导出的后续需求,但这些需求都是由前面的整体影响引出来的。 + +### 1. 围绕工时 + +- 合同总工时明细。 +- 设计/编程/装配/质检/机加工时占比。 +- 按人员、设备、班次统计工时。 +- 工时超预算预警。 +- 工时与 SAP 上传差异对比。 +- 一键查看某订单所有工时来源。 + +### 2. 围绕状态和进度 + +- 生产任务全流程状态图。 +- 每个状态变更历史。 +- 为什么任务不可开工/不可质检/不可关闭的原因说明。 +- 已关闭/已入库任务仍可查询但禁止操作。 +- 任务异常状态看板。 + +### 3. 围绕 SAP + +- SAP 同步失败清单。 +- 手工重推 SAP。 +- SAP 与 MES 状态对账。 +- SAP 单据号反查 MES 任务。 +- 批量 SAP 操作结果导出。 +- SAP 数据最后同步时间展示。 + +### 4. 围绕质检 + +- 供应商合格率。 +- 设备合格率。 +- 让步接收审批。 +- 质检超期催办。 +- 已入库补检。 +- 质检记录按订单、供应商、人员、工序多维分析。 + +### 5. 围绕报表 + +- 所有汇总数字可点开明细。 +- 报表导出字段自定义。 +- 报表按部门/班组/班次拆分。 +- 报表定时推送。 +- 日报/周报历史锁定。 + +### 6. 围绕异常 + +- 所有报工页面直接报异常。 +- 异常审批待办。 +- 异常处理超期提醒。 +- 异常关闭后自动恢复任务。 +- 异常原因统计。 + +## 八、建议的开发控制策略 + +### 1. 每个新增需求都必须补“四张表” + +不是数据库表,而是分析表: + +1. 字段影响表:新增字段来自哪里,写到哪里,哪些页面显示。 +2. 状态影响表:是否改变排产/派工/任务/质检/入库/SAP 状态。 +3. 报表影响表:哪些已完成报表要纳入新数据。 +4. SAP 影响表:是否读 SAP、写 SAP、是否需要日志和重试。 + +### 2. 不建议继续只按页面单点开发 + +原因: +- 新增页面会越来越多,但数据源高度重叠。 +- 如果每个页面单独写 SQL,口径很快分裂。 +- 新增字段一旦被报表引用,历史数据和导出口径都会受影响。 + +建议: +- 工时类先建统一视图。 +- 状态类先建统一解释。 +- SAP 类先建日志。 +- 报表类先建公共明细查询。 + +### 3. 新增字段优先走扩展表 + +适合放扩展表的字段: +- 手工维护字段。 +- SAP 同步字段。 +- 报表补充字段。 +- 后续可能继续变动的字段。 + +不建议直接塞入主任务表的字段: +- 钣金预达、钣金到达、泵、当前对应内容。 +- 手续确认说明。 +- SAP 同步状态明细。 +- 合同级汇总字段。 + +### 4. 报表先定口径,再开发页面 + +尤其是: +- 及时检验。 +- 及时送检。 +- 生产日报-送检。 +- 机加班次产量。 +- 装配已排产需求。 +- 合同工时汇总。 + +这些报表一旦上线,后续就是管理依据,不能边用边改口径。 + +## 九、结论 + +新增需求真正带来的影响不是“多几个页面”,而是会改变现有系统的数据结构和统计口径。 + +最需要提前处理的是: + +1. 工时统一,否则总工时、合同进度、班次产量、日报都会互相对不上。 +2. 状态统一,否则排产、生产、质检、入库、关闭、异常在不同页面显示不一致。 +3. SAP 日志和重试,否则批量关闭、工时校验、外协采购、质检收货都会出现无法排查的半成功状态。 +4. 报表影响清单,否则新增字段上线后已完成报表会漏算或错算。 +5. 历史数据策略,否则新增字段为空会被误判为未完成、未确认、未齐套。 + +因此后续评估新增需求时,应先问一个问题:这个需求新增的数据,会不会改变现有页面、报表、看板、SAP 状态和历史统计。如果会,就必须同步改受影响页面,而不是只开发新页面。 + +## 十、同级项目数据看板带来的额外连锁影响 + +这次补充分析的同级看板包括:`生产任务看板`、`装配任务看板`、`质检任务看板`、`机加设备生产运营看板`、`机加设备生产运营看板二`、`TableTV`、`board_view`、`新建文件夹`。这些项目不是普通查询页,而是管理层和车间现场会持续观看的大屏。它们把 MES、SAP、设备采集、质检和工时数据压缩成几个关键数字,因此新增需求影响到看板时,问题会比普通页面更明显:不是某个按钮不可用,而是管理层看到的 KPI 可能直接变错。 + +### 1. 新增功能会让现有看板指标失真的位置 + +| 看板指标 | 当前主要来源 | 新增需求/功能变化 | 可能失真结果 | 必须同步改造 | +|---|---|---|---|---| +| 生产任务看板“按期齐套率” | `生产任务综合看板_按期齐套率`,按 `View_生产订单_MES.齐套` 汇总 | 及时齐套跟踪、SAP 缺件明细、部分齐套、预计齐套时间 | 只有“齐套/未齐套”会掩盖部分齐套和预计可执行状态 | 增加齐套状态字典、缺件明细、预计齐套日期、SAP 同步时间 | +| 生产任务看板“未及时开工” | `计划开始时间、开工时间、加工状态、合格数` | 设计/编程前置、异常暂停、二次派工、手续确认 | 被设计/编程/异常卡住的任务仍被算作生产未及时开工 | 增加未开工原因维度,区分“计划原因、前置原因、异常原因、人员/设备原因” | +| 生产任务看板“加急件” | SAP `ubt_OPKL_UrgentMaterials_ALL` + MES 计划 | 加急从订单级变为物料/工序/质检级 | 加急总数与页面明细、装配缺件、质检加急互相对不上 | 建统一加急来源视图,明确订单级/工序级/物料级 | +| 装配看板“发货状态” | `View_生产订单_MES.发货状态` + SAP `UBT_ODRF_ODLNMES` | 发货通知列表、仓库出库、SAP 发货回写 | 页面显示“发货状态”但可能混合通知、待出库、已出库、已交货 | 增加发货状态分层:通知、备货、出库、交货、SAP 回写 | +| 装配看板“在制缺件” | SAP 缺件表 + MES 装配计划 | 及时齐套跟踪、替代料、部分到货 | 只能看到缺件,无法知道是否已经采购、何时可恢复 | 增加缺件原因、预计到货、替代料、主子订单关系 | +| 装配看板“异常未关闭” | `流程表.完成人 is null` | 异常管控入口统一,机加/质检/外协都能发异常 | 未限定装配范围时,装配看板可能统计到其他部门异常 | 异常流程必须带业务域、任务、工序、责任部门 | +| 质检看板“未清任务” | `质量任务看板_未完成统计/明细` | 及时检验、复检、返工、让步接收、免检 | 未清数量会把复检/返工/免检混为同一类待检 | 增加质检状态流转、复检批次、处置结果、免检标识 | +| 质检看板“当天完成” | `View_质量检验_质检记录` 当天检测时间 | 生产日报-送检、部门日报、班次统计 | 当天完成按自然日统计,日报/班次按业务日统计会不一致 | 增加班次/日报快照口径 | +| 机加看板“设备运行状态” | `CaChe_Var` 当前缓存 | 机加班次产量、真实 OEE、设备运行工时 | 设备运行与任务报工可能不同步,OEE 无法解释 | 统一设备状态、任务状态、报工状态的时间轴 | +| 机加看板“当天完成/合格率” | 复用质检完成汇总 | 生产完成、质检完成、入库完成都被要求展示 | “完成”可能被理解成生产完成,但实际是质检完成 | 页面标题和过程改名,或新增生产完成口径 | +| `TableTV` 当前工位任务 | `设备管理_设备状态_查询` | 班次维护、人员绑定、二次派工 | 班次阈值写死后,人员归属与班次管理不一致 | 过程改读班次表,不再硬编码 7.5/16.5 | +| `board_view` 合同/项目进度 | `看板_*`,采购/库存/OEE 多处为 0 或样例 | 发货通知、采购到货、合同工时、真实 OEE | 综合大屏展示为“项目全貌”,但采购、库存、OEE 仍不真实 | 优先补真实数据源,否则不要作为经营口径 | + +### 2. 已完成页面、报表、看板必须同步修改的清单 + +| 变更来源 | 必须同步修改的看板/报表 | 原因 | +|---|---|---| +| 设计任务报工、编程任务报工 | `board_view` 工时消耗、未完工工时;工时报表;合同进度类报表 | 当前大屏工时主要来自生产工时,新增设计/编程后合同总工时会漏算 | +| 装配已排产需求 | `生产任务看板`、`装配任务看板`、`board_view` 装配进度 | 装配计划、齐套、发货、异常、累计工时都会进入交付进度 | +| 及时检验报表 | `质检任务看板`、`机加设备生产运营看板`、生产日报-送检 | 质检及时率必须从静态/占位指标变成真实过程 | +| 及时齐套跟踪 | `生产任务看板` 齐套率/未齐套任务、`装配任务看板` 缺件、`board_view` 合同进度 | 缺件从单一状态变成主子订单、SAP 缺料、预计可执行时间 | +| 发货通知列表 | `装配任务看板` 发货状态、`board_view` 合同/交付区域 | 发货状态需要区分 SAP 通知、仓库出库、MES 任务完成 | +| 机加班次产量表 | `TableTV`、机加运营看板、设备工时报表 | 班次、设备、人员、产量、工时必须按同一业务日归属 | +| 异常管控入口统一 | 装配看板异常数、机加看板未及时开工、生产任务看板风险数 | 异常暂停不应被误算为未及时开工或未完成 | +| SAP 生产订单批量关闭 | 生产任务看板、装配看板、计划关闭页、手续确认报表 | SAP 部分成功/失败会造成 MES 任务仍显示在看板上 | +| 外协检验字段增强 | 质检看板、外协报表、供应商质量统计 | 质检任务要按供应商、采购收货单、指派对象追溯 | + +### 3. 看板暴露出的系统级隐性需求 + +1. **统一指标口径层** + 现在不同看板各自写存储过程:`生产任务综合看板_*`、`装配中心任务看板_*`、`质量任务看板_*`、`机加设备生产运营看板_*`、`看板_*`。这些过程大量重复读取 `View_生产订单_MES`、`YL_质量检验_质检记录`、`YL_加工中心_操作记录表`。后续应建立统一口径视图,例如: + - `View_MES_任务状态统一口径` + - `View_MES_齐套缺件统一口径` + - `View_MES_质检待办统一口径` + - `View_MES_工时统一口径` + - `View_MES_设备任务运行统一口径` + +2. **统一状态字典** + 当前看板内同时出现 `任务状态`、`加工状态`、`排产状态`、`齐套`、`发料状态`、`拣配状态`、`发货状态`、`加急状态`、`质检状态`、`设备状态`。这些状态来自不同表,且有的前端再次转换。必须补一张状态解释表或统一视图,避免同一个 `0/1/2/4` 在不同页面含义不同。 + +3. **SAP 同步状态与时间戳** + 看板不是实时调用 B1 Service Layer,而是通过 SQL 读取 SAP 跨库表或 SAP 同步落地表,例如 `ubt_OPKL_UrgentMaterials_ALL`、`UBT_ODRF_ODLNMES`、`质量检验_质检任务_SAP`。因此大屏上所有 SAP 相关指标都应该显示或记录同步时间、同步结果、失败原因。否则用户看到缺件、发货、加急时无法判断是 SAP 最新状态还是 MES 缓存状态。 + +4. **指标钻取能力** + `board_view` 已经有中央订单点击钻取明细,其他看板多数只有汇总和滚动表。新增需求上线后,客户很可能要求点击“未及时开工、未清质检、缺件、异常、加急、未齐套”直接看到来源明细。不能只返回总数,过程应统一支持“汇总 + 明细 + 字段来源”。 + +5. **历史快照** + 大屏是实时结果,但日报、周报、月报需要历史定版。当前很多过程使用 `GETDATE()` 实时计算,例如当天完成、近 3 天装配合格率、当月计划执行率。新增管理报表后,必须保存日快照或允许传入统计日期,否则第二天无法复现昨天看板上的数字。 + +6. **占位指标清理** + `board_view` 中 OEE、环境、水电气、采购部进度、库存/在购字段存在样例或占位;生产任务看板中采购未及时到货、质检及时率、未及时入库也有静态值或未完整接入。上线前必须清理占位指标:要么接真实过程,要么隐藏,不要和真实指标混放。 + +### 4. 统一改造建议 + +| 优先级 | 改造项 | 解决的问题 | +|---|---|---| +| P0 | 给所有看板指标补“口径说明 + 来源过程 + 来源字段” | 防止管理层把不同含义的“完成、齐套、加急、在制”混用 | +| P0 | 把 `GETDATE()` 型过程改造为可传统计日期,实时看板默认当天 | 让日报/历史回看能复现 | +| P0 | 为 SAP 相关看板补同步时间和同步状态 | 判断数据新旧,排查 SAP/MES 不一致 | +| P1 | 统一质检待办过程,覆盖未清、及时率、关键工序、当天完成 | 避免 `质量任务看板_*` 和 `Visualization_QcTask_*` 两套接口并行 | +| P1 | 统一机加任务/设备状态过程,区分任务在制、设备运行、报工完成 | 防止设备状态与任务状态互相替代 | +| P1 | 统一装配发货/缺件过程,串起 SAP 发货通知、缺件、齐套、仓库出库 | 让装配看板真正反映交付风险 | +| P2 | 将 `board_view` 的占位采购、库存、OEE 接入真实数据或移除 | 避免综合大屏成为混合真实/样例数据的经营看板 | + +### 5. 客户可能继续提出的看板类需求 + +这些不是主分析角度,但从现有看板形态看,客户后续很可能继续要求: + +- 点击任意 KPI 下钻明细,例如未齐套、加急、未及时开工、未清质检、装配缺件。 +- 看板按项目、合同、车间、班组、设备筛选。 +- 看板显示 SAP 同步时间和异常提示。 +- 看板支持历史日期回看,而不是只能看当前实时数据。 +- 质检看板增加及时率趋势和超期责任人。 +- 装配看板增加预计发货、预计齐套、缺件到货日期。 +- 机加看板增加真实 OEE、设备利用率、程序运行时长、班次产量。 +- 生产任务综合看板增加“设计/编程是否完成”作为开工前置条件。 +- 大屏数据定时快照,日报/周报自动引用同一口径。 + +## 十一、设备数据采集与现场大屏专项影响分析 + +本次新增的设备档案、设备数据采集、OEE、工时异常、条码拣配和一楼/机加/装配现场大屏需求,会把系统从“任务报工驱动”进一步推向“设备实时数据 + MES 任务 + 质检结果 + 现场人员 + SAP 物料状态”的综合分析系统。它的影响不只在新增几个看板,而是会改变工时、产量、合格率、齐套、送检、缺勤、设备状态的基础口径。 + +### 1. 总体影响链路 + +```mermaid +flowchart TD + A[设备档案/主要设备/标准工时] --> B[设备数据采集] + B --> C[设备状态时长] + B --> D[程序工时/单件工时] + C --> E[设备利用率] + D --> F[性能开动率] + G[MES 报工/计划产量] --> H[产能利用率] + I[质检记录/良品不良品] --> J[产品合格率] + E --> K[OEE] + F --> K + J --> K + D --> L[工时异常报表] + M[条码拣配] --> N[齐套/发料/拣配状态] + N --> O[生产/装配看板] + P[关键工序标识] --> Q[质检/机加关键任务大屏] + R[班次/岗位/工位/考勤] --> S[缺勤人员大屏] +``` + +### 2. 对现有数据模型的冲击 + +| 新需求 | 新增或必须明确的数据 | 冲击对象 | 主要问题 | +|---|---|---|---| +| 设备档案管理 | 主要设备、参与 OEE、设备/工位关系、标准工时来源 | 设备档案、工位管理、工艺维护 | 标准工时放设备、工艺还是设备+工序能力表必须明确 | +| 设备数据采集 | 程序工时、单件工时、设备状态时长、程序号、采集时间 | `CaChe_Var`、历史设备数据、设备状态记录、工时报表 | 当前多为当前缓存或历史状态,缺少可直接算单件工时的任务绑定 | +| OEE 指标 | 计划产量、实际产量、设备工时、标准工时、标准单件工时、实际单件工时、良品数 | 机加看板、`board_view`、设备报表 | OEE 三个组成指标必须同设备、同日期、同班次,否则乘出来没有管理意义 | +| 工时异常报表 | 实际单件工时、标准单件工时、超出比例、异常原因 | 工时查询、工时校验、异常管控 | 设备采集工时与人工报工工时不一致时,谁作为异常依据需要确定 | +| 条码拣配 | 条码、物料、批次、任务、拣配人、拣配时间、状态写回 | 机加中心、装配中心、齐套看板 | 条码扫描会改变 `拣配状态/齐套/发料状态`,看板和生产任务必须同步 | +| 质检及时率 | 最后一次生产完成时间、报检时间、检验完成时间、超期天数 | 质检看板、生产日报-送检 | 以生产完成时间作为起算点,会改变现有“未清任务”定义 | +| 关键工序 | 工艺关键标识、任务快照、关键工序应检/未检/在制 | 工艺维护、生产任务、质检/机加大屏 | 关键工序如果只存在工艺库,会影响历史任务重算 | +| 缺勤人员 | 岗位、工位、人员、应到、实到、班次 | 班次管理、人员绑定、机加/装配大屏 | 不能从“没有报工”直接判断缺勤,必须有排班和考勤/上岗数据 | +| 装配及时送检 | 发料齐套时间、送检状态、送检时间、超期天数 | 装配中心、装配看板、质检任务 | 发料齐套后 2 天未送检会新增一种介于“可开工/待检”之间的风险状态 | + +### 3. OEE 不是一个单独公式,而是一组口径治理 + +当前讨论公式为: + +- 产能利用率(单台)= 实际产量 / 计划产量 * 100% +- 设备利用率(单台)= 设备工时 / 标准工时 +- 设备性能开动率(单台)= 标准单件工时 / 实际单件工时 +- 产品合格率(工位)= 良品数 / 总产量 +- OEE = 设备利用率 * 开动率 * 合格率 + +这些公式看起来简单,但真正的隐性需求是统一统计边界: + +1. **设备边界**:只算主要设备,还是所有设备都算。辅助设备、测试设备、维修设备是否排除。 +2. **时间边界**:自然日、班次日、订单周期、计划周期不能混用。 +3. **产量边界**:实际产量来自 MES 报工、设备计数还是质检数量。三者时间上可能不一致。 +4. **合格率边界**:良品数来自报工良品还是质检合格数。若质检晚于生产,日合格率会滞后。 +5. **标准工时边界**:标准工时可能来自工艺标准工时、设备能力标准、班次可用工时。三个字段不能都叫标准工时。 +6. **实际单件工时边界**:设备采集循环时间、设备运行时间/产量、人工报工工时/产量是不同口径。 + +因此 OEE 不能只在大屏上增加几个公式。必须先建立设备指标明细层,至少包含设备、工位、日期、班次、任务、物料、工序、计划产量、实际产量、良品、不良、标准工时、设备运行工时、标准单件工时、实际单件工时和采集质量标识。 + +### 4. 对已完成页面和看板的必要改造 + +| 页面/看板 | 必须新增或调整 | 原因 | +|---|---|---| +| `DeviceManagement/DeviceInformation` | 主要设备、是否参与 OEE、采集点位、标准工时来源 | 设备档案是设备采集和 OEE 的基础 | +| `SystemMaintenance/WorkstationManagement` | 工位与设备、人员、岗位的一对多关系 | 缺勤人员要显示岗位、工位、姓名,多工位需合并 | +| `ProcessManagement/ProcessProduct` / 工艺维护 | 是否关键工序、标准单件工时 | 质检和机加大屏需要关键工序汇总和明细 | +| `PlanManagement/SelfMakePlan/SelfMakePlandone` | 任务设备绑定、计划产量、标准工时字段确认 | 单台设备产能利用率需要按任务落到设备 | +| `ProductionManagement/MachiningCenter` | 条码拣配入口、拣配状态写回、设备采集任务绑定 | 机加及时拣配和设备采集都要关联生产任务 | +| `ProductionManagement/AssemblyCenter` | 条码拣配入口、发料齐套时间、送检状态 | 装配及时拣配和及时送检都要从这里进入 | +| `ProductionManagement/WorkHoursCheck` | 程序工时、设备工时、人工工时差异、异常确认 | 工时异常报表会反向要求工时校验解释差异 | +| `QualityManagement/QualityCenter` | 最后生产完成时间、报检时间、超期天数、关键工序 | 质检及时率和关键工序任务必须有来源 | +| `质检任务看板` | 质检及时率真实过程、超 2 天未检明细、关键工序汇总/明细 | 当前看板未完整实现及时率真实口径 | +| `机加设备生产运营看板` | OEE、设备利用率、开动率、合格率、关键工序任务、缺勤人员 | 现有设备状态和 OEE 仍不足以支撑新指标 | +| `装配任务看板` | 缺勤人员、及时送检任务颜色/排序、发料齐套后 2 天未送检 | 新需求直接改变装配现场大屏列表逻辑 | +| `TableTV` | 设备采集状态、单件工时、异常颜色 | 现场卡片应展示设备真实状态和工时风险 | +| `board_view` | 真实 OEE 替换样例、设备/产能/质量指标统一 | 综合大屏不能继续使用固定 OEE 样例 | + +### 5. 工时异常报表会反向推动工时体系重构 + +工时异常条件是“单件工时 > 标准工时”。这会带来三个隐性问题: + +1. **异常来源不只设备** + 单件工时超标可能来自设备状态异常、程序问题、刀具/工装、人员操作、物料质量、等待质检、等待发料。报表如果只列超标,不记录原因,会变成无法闭环的告警列表。 + +2. **需要区分程序工时和人工工时** + 程序工时用于判断设备加工效率;人工工时用于人工绩效和 SAP 工时上传。两者差异本身就是一个分析点,不能用程序工时直接覆盖人工报工。 + +3. **需要异常确认流程** + 如果报表用于管理考核,就必须支持确认:是否真实异常、原因分类、责任部门、处理说明、确认人、确认时间。否则数据会被质疑。 + +### 6. 条码拣配会改变齐套和开工状态 + +及时拣配(机加/装配)表面是扫码需求,实际会改动任务状态链: + +```mermaid +flowchart LR + A[条码扫描] --> B[识别物料/任务] + B --> C[更新拣配记录] + C --> D[更新拣配状态] + D --> E[计算齐套] + E --> F[影响发料状态] + F --> G[影响是否可开工] + G --> H[影响生产/装配看板] +``` + +如果扫码只记录日志,不写回 `拣配状态/齐套/发料状态`,看板仍然显示未齐套;如果扫码直接写回状态,但没有 SAP 库存校验,又可能造成 MES 显示已齐套、SAP 库存不足。因此需要明确 MES 与 SAP 谁作为库存和发料主口径。 + +### 7. 三类大屏的新增字段影响 + +| 大屏 | 新增指标 | 需要的新增字段/过程 | +|---|---|---| +| 一楼质检大屏 | 质检及时率、超 2 天未检、关键工序检验汇总/明细 | 最后生产完成时间、报检时间、检验完成时间、是否关键工序、超期天数 | +| 机加现场大屏 | 缺勤人员、关键工序任务汇总/明细、设备 OEE | 岗位、工位、姓名、应到/实到、是否关键工序、设备运行工时、单件工时 | +| 装配现场大屏 | 缺勤人员、及时送检任务列表、加急后排序、颜色区分 | 岗位、工位、姓名、发料齐套时间、送检状态、送检时间、超期天数 | + +### 8. 需要优先确认的问题 + +1. 设备采集数据由谁写入 MES,接口频率是多少。 +2. 设备采集如何绑定到 MES 任务,是靠设备+时间段、程序号、条码,还是人工绑定。 +3. 标准单件工时来自生产工艺,还是设备能力表。 +4. 实际产量以 MES 报工、设备计数、质检数量中的哪一个为准。 +5. 良品数以报工良品还是质检合格数为准。 +6. 质检及时率的“最后一次生产完成时间”取操作记录的报工、辅助结束,还是任务完成时间。 +7. 关键工序标识是否影响历史任务,建议只影响新下发任务或做任务快照。 +8. 缺勤人员的“应到”来源是班次绑定、排班表还是岗位配置。 +9. 装配“发料齐套后 2 天未送检”的发料齐套时间来自哪个表。 +10. 条码拣配是否需要 SAP 库存校验和失败重试。 + +## 十二、补充修正:新增需求必须同时判断“维护入口” + +前面的分析已经覆盖了工时、状态、SAP、报表、看板的连锁影响,但还需要补一个更基础的判断:客户提出一个报表或看板字段时,不等于只新增一个展示页面。必须同时判断这个字段从哪里来、由谁维护、在哪个页面维护。 + +如果不先确认维护入口,会出现三类问题: + +1. 报表页面有字段,但没有地方录入,最终只能写死、手工改库或长期为空。 +2. 看板显示了 KPI,但基础字段散落在多个页面,用户不知道该去哪里修正。 +3. 同一个字段在标准数据、订单数据、任务快照、SAP 同步表中重复维护,导致历史统计和当前查询对不上。 + +### 1. 判断框架 + +| 判断项 | 需要回答的问题 | 典型结论 | +|---|---|---| +| 字段性质 | 是主数据、订单过程数据、任务执行数据、外部同步数据、计算结果,还是人工确认结果 | 主数据进基础维护页;过程数据进业务页;计算结果进视图/报表 | +| 数据来源 | MES、SAP、设备采集、考勤/排班、人工维护,还是多来源融合 | 多来源字段必须记录来源和更新时间 | +| 维护责任人 | 工艺、计划、生产、质检、仓库、设备、班组长、系统管理员谁维护 | 决定页面权限和菜单归属 | +| 维护入口 | 现有页面能否承载,还是必须新建页面 | 优先扩展现有业务页面,缺口大时才新建维护页 | +| 历史影响 | 修改后是否影响已下发任务和历史报表 | 影响历史的字段要做任务快照或维护历史 | +| 看板影响 | 是否会改变已有 KPI 口径 | 看板过程必须同步改,不只改主系统页面 | + +### 2. 按字段类型划分维护位置 + +| 字段/能力类型 | 应优先维护的位置 | 不建议的做法 | +|---|---|---| +| 人员、岗位、班次、排班、出勤 | 人员管理、班次管理、工位人员绑定,必要时新增排班/出勤维护页 | 在机加/装配大屏里直接维护缺勤 | +| 工序、关键工序、标准工时、准备工时 | 标准工艺、生产工艺、工序基础数据 | 单独做一个脱离工艺的关键工序表但不和任务快照同步 | +| 设备、工位、采集点位、是否参与 OEE | 设备档案、工位管理、设备采集配置 | 把设备标准工时简单塞进设备档案并用于所有零件 | +| 生产订单过程字段 | 生产计划、排产、装配已排产需求、生产工艺 | 只在报表页维护,不写回业务主链路 | +| 质检处置字段 | 质检中心、不合格处置、序检收检 | 让步接收记录页反向维护质检结果 | +| SAP 同步字段 | SAP 同步表或 MES 扩展表,只读展示同步时间和状态 | 前端手工覆盖 SAP 字段但不留来源 | +| 人工确认字段 | 待办类页面维护,例如手续确认报表,同时记录确认人和时间 | 把确认状态隐藏在 SQL 过滤里,没有操作日志 | +| 统计/看板指标 | 统一视图、存储过程、日报快照 | 每个看板各写一套 SQL 重新定义口径 | + +### 3. 典型字段修正结论 + +| 需求点 | 修正结论 | +|---|---| +| 缺勤人员 | 必须先有“应到人员”和“实到人员”来源。应到来自班次/排班/岗位工位人员绑定,实到来自考勤/上岗/登录/报工。若现有系统没有排班入口,需要新增或扩展排班/出勤维护页;看板只查询缺勤结果。 | +| 关键工序 | 属于工艺属性,应在标准工艺和生产工艺维护。生产任务下发时快照 `是否关键工序`,质检和机加大屏读取快照。不能只在大屏或质检报表里临时标记。 | +| 标准单件工时 | 优先来自标准工艺/生产工艺,必要时增加设备+工序能力表。设备档案只维护设备能力参数和 OEE 参与属性。 | +| 发料齐套时间 | 如果来自 SAP,必须同步到 MES 并记录同步时间;如果允许人工修正,应放在生产计划/装配排产业务链路或装配已排产需求页,并保留维护历史。 | +| 装配完成时间 | 规则计算字段可以在装配已排产需求中显示;人工调整时要作为订单过程字段保存,不应只存在前端。 | +| 预计可执行时间 | 依赖 SAP 缺件、主子订单关系和人工判断。可以在及时齐套跟踪页维护,但要记录维护人、维护时间和依据。 | +| 让步接收 | 质检结果字段应在质检中心或不合格处置维护;让步接收记录页只做查询、导出和追溯。 | +| 外协供应商/SAP 收货单号 | 应在外协任务、序检收检或外协收货链路补字段;供应商质量报表只消费这些字段。 | +| OEE | OEE 是计算结果,不是人工维护字段。基础数据分别来自设备采集、MES 报工、质检记录、工艺标准工时和班次规则。 | + +### 4. 对已完成页面的新增影响 + +| 现有页面 | 新增维护责任 | +|---|---| +| `ProcessManagement/ProcessProduct` 生产工艺 | 维护订单级关键工序、标准工时、标准工艺带出后的生产工艺草稿;保存时形成任务可用快照 | +| `ProcessManagement/ProcessesDevelop` 制定标准工艺 | 维护标准关键工序、标准单件工时、准备工时,作为生产工艺默认来源 | +| `SystemMaintenance/WorkstationManagement` | 补工位与设备、岗位、人员关系,支持缺勤和 OEE 维度 | +| `BasicData/ShiftManagement` 或现有班次管理 | 支持班次时间、跨天规则、应到人员或排班规则 | +| `BasicData/PersonnelManagement`、人员角色绑定 | 支持人员岗位、班组、工位范围,为缺勤和权限提供来源 | +| `ProductionManagement/AssemblyCenter` | 维护/展示装配执行、发料、送检、异常、手续确认相关过程字段 | +| `ProductionManagement/MachiningCenter` | 维护/展示机加扫码、设备绑定、报工、异常、关键工序执行状态 | +| `QualityManagement/QualityCenter` | 维护质检结果、让步接收、送检/已检数量、关键工序质检状态 | +| `DeviceManagement/DeviceInformation` | 维护主要设备、采集点位、OEE 参与标识,不独立承担所有标准工时 | + +### 5. 后续评估新增需求的强制问题 + +后续每个新需求都要在开发前回答: + +1. 这个字段是展示、维护、确认,还是计算。 +2. 如果要维护,是否已有页面可以维护。 +3. 如果新增页面,它是查询页、待办页,还是主数据维护页。 +4. 数据是否需要修改历史;如果需要,是否留维护日志。 +5. 是否需要任务快照,避免标准数据变化影响历史任务。 +6. 是否影响生产任务看板、装配看板、质检看板、机加看板或 `board_view`。 + +只有这六个问题明确后,才能判断是“新增页面”、 “扩展现有页面”、 “新增维护页”,还是“只改 SQL/视图/看板口径”。