# 06-决策记录

## DR-001 页面放在计划排产模块

- 决策：页面路径使用 `src/views/PlanManagement/TimelyKitTrackingResult/index.vue`，菜单挂在“计划排产”模块下。
- 原因：需求明确一级字段和过滤条件按“计划用表”一致，而“计划用表”属于 `PlanManagement`。
- 影响：菜单权限按“计划用表”复制，避免误开放给没有计划排产权限的角色。

## DR-002 查询过程整合 SAP 缺件和 MES 计划

- 决策：新增独立过程 `dbo.生产管理_及时齐套跟踪结果_查询`，不直接改“计划用表”原过程。
- 原因：新页面有大量二级缺件追踪字段，直接改 `计划排产_查询计划信息` 会影响既有页面。
- 影响：后续口径调整集中在新过程，不影响计划用表。

## DR-003 外购件属性为空时按采购状态展示

- 决策：SAP `属性` 为空时显示为“外购”，生产订单号取 SAP `在制采购`，工艺路线列拼接采购员、采购未清数量、到货草稿、质检状态。
- 原因：需求明确“属性为空时取值 SAP 视图.在制采购”，并要求外购显示采购相关字段。
- 影响：外购件不会显示当前序；如果业务后续要求外购也关联 MES 订单，需要新增匹配规则。

## DR-004 自制件按属性区分匹配规则

- 决策：机加件用 SAP `ItemCode` 匹配 MES `物料编号`；装配件用 SAP `ItemCode + Project` 匹配 MES `物料编号 + 合同号`。
- 原因：需求原文明确机加和装配的匹配条件不同。
- 影响：SAP `Project` 与 MES 合同号不一致时，装配件可能匹配不到 MES 计划。

## DR-005 二级数据用展开表承载

- 决策：主表按订单/产品汇总，缺件明细放到 `el-table-column type="expand"` 的二级表中。
- 原因：需求区分一级数据和绿色二级数据，展开表能避免主表过宽，同时保留所有缺件明细。
- 影响：导出或打印如果需要平铺明细，后续需要另加导出功能。

## DR-006 QUOTED_IDENTIFIER 显式设置

- 决策：查询过程脚本显式设置 `SET ANSI_NULLS ON` 和 `SET QUOTED_IDENTIFIER ON`。
- 原因：过程使用 XML `.value()` 处理工艺路线拼接，SQL Server 对相关 SET 选项有要求。
- 影响：后续重建该过程必须保留这些 SET 选项。

## DR-007 外购一级数据按 SAP DocEntry 匹配

- 决策：SAP `属性` 为空时，使用 `SAP.DocEntry` 作为订单编号匹配计划用表/MES 计划数据。
- 原因：用户明确指出外购一级数据不应取 `在制采购`，应取 SAP 视图 `DocEntry`。
- 影响：外购件的一级字段会尽量从对应 MES 计划订单读取；`在制采购` 不再作为一级匹配订单号。

## DR-008 二级同生产订单号去重

- 决策：最终查询结果按 `订单号 + 缺件生产订单号` 做去重，只保留缺件数量最大的一条。
- 原因：业务要求二级数据里不应出现生产订单号一样的数据。
- 影响：如果同一生产订单号下确实有多个不同 SAP 行，页面只展示汇总代表行；后续若要展示多 SAP 行，需要改为汇总数量而不是逐行显示。

## DR-009 工艺路线由结构化 JSON 驱动

- 决策：查询过程新增 `工艺路线明细` JSON，前端据此渲染日期行、工序行、合格行和颜色。
- 原因：纯文本工艺路线无法满足计划用表式的日期、合格数和颜色展示。
- 影响：前端展示依赖 SQL Server `FOR JSON PATH` 输出；旧字段 `工艺路线` 保留作为无明细时的降级文本。

## DR-010 一级主数据必须来自计划用表

- 决策：及时齐套跟踪结果的一级主数据必须匹配 `View_生产订单_MES`，不允许用 SAP 缺件字段兜底生成主数据。
- 原因：页面主表代表计划用表主订单，SAP 缺件只能作为缺件明细来源；兜底会产生产品编码、计划数量、日期等字段缺失的假主数据。
- 影响：默认查询不再出现产品字段为空的主数据行。

## DR-011 外购缺件生产订单号不使用主订单号

- 决策：外购属性为空时，二级缺件生产订单号使用采购入库检侧的到货草稿；没有到货草稿时留空。
- 原因：主订单号表示一级产品订单，不能同时作为外购缺件订单号，否则会出现“主数据缺件是主数据自身”的误解。
- 影响：`2007` 这类外购缺件不再显示缺件生产订单号等于主订单号。

## DR-012 外购质检状态按采购入库检任务判断

- 决策：外购质检状态按 `SAP.到货草稿 -> 质量检验_质检任务_SAP.订单编号 -> YL_质量检验_质检记录` 判断。
- 原因：采购入库检页面的生产订单字段来自 `质量检验_质检任务_SAP.订单编号`，状态由入库数量与来料检验数量决定。
- 影响：有到货草稿的外购缺件能展示采购入库检口径的未完成/已完成；非外购不显示采购质检状态。

## DR-013 库存数量直接来自 SAP 缺件视图

- 决策：二级缺件明细的 `库存数量` 直接取 `[SAP].[SBO_YL].[dbo].[VIEW_Jijiankukc].[库存量]`，过程输出别名为 `库存数量`。
- 原因：用户确认“库存数量字段在 SAP 里面有”，实际字段列表也显示缺件视图已有 `库存量`，不需要再 join 其他库存表。
- 影响：库存口径与 SAP 缺件视图保持一致；如果 SAP 后续调整 `库存量` 口径，页面同步变化。

## DR-014 本轮数据库调整使用新日期增量脚本

- 决策：新增 `db_backups/update_timely_kit_tracking_result_inventory_20260630.sql`，不覆盖 `create_timely_kit_tracking_result_20260629.sql`。
- 原因：昨天的脚本已经作为历史交付和验收证据，新增日期脚本更利于追踪本轮库存字段和采购员拼接变更。
- 影响：后续继续修改过程时优先新增日期脚本或在最新脚本基础上演进，保留历史过程版本。

## DR-015 外购采购状态不再拼接采购员（已废止）

- 决策：外购 `工艺路线/采购状态` 文本只保留采购未清数量、到货草稿、质检状态，不再拼接采购员。
- 原因：用户明确要求“去掉拼接的采购员字段”，且页面已单独去掉采购员列。
- 影响：该决策已被 DR-017 替代。最新口径为恢复采购员拼接，但不恢复单独采购员列。

## DR-016 工艺路线判色与生产计划跟踪一致

- 决策：及时齐套跟踪结果二级工艺路线判色复用生产计划跟踪口径：`加工状态` 为 `6` 或 `3`，或 `收检合格数 > 0` 时为蓝色；外协在收料数量大于已收检数量时为绿色；`加工状态` 为 `2` 或 `4` 时为绿色；否则为红色。
- 原因：用户指出 `7134` 在当前页显示一个蓝色两个红色，而生产计划跟踪显示两个蓝色一个红色。差异来自当前页旧逻辑需要进度/完成量满足条件才判蓝，而生产计划跟踪只要有收检合格数就判蓝。
- 影响：`7134` 的“打磨、打压检测、喷塑”将显示为蓝、蓝、红；后续颜色争议以生产计划跟踪页面口径为准。

## DR-017 外购采购员只作为采购状态拼接文本

- 决策：外购 `工艺路线/采购状态` 文本恢复拼接采购员，格式为 `采购员:xxx / 未清数量:xxx / 到货草稿:xxx / 质检状态:xxx`；页面和过程结果集都不提供单独 `采购员` 列。
- 原因：用户明确最新口径为“还原字段拼接采购员部分，不要单独的采购员列”。
- 影响：前端无需新增列；外购采购状态里能看到采购员，导出/接口结果集仍不会出现独立采购员字段。

## DR-018 自制缺件显示所有匹配生产订单

- 决策：属性不为空的自制缺件按 SAP 缺件物料匹配 MES 生产订单时，不再只取 `TOP (1)`；同一缺件物料匹配到的所有生产订单都显示，但同一生产订单号只保留一条。
- 原因：用户明确要求“同一个生产订单号不要出现重复，同一缺件物料所有匹配生产订单都显示”。4222 的缺件物料同时匹配到 5960 和 7142，旧 `TOP (1)` 只能显示其中一个。
- 影响：4222 这类同物料多生产订单场景会显示多条二级明细；页面已有前端去重，SQL 最终层也按 `订单号 + 缺件生产订单号` 去重。
