- Fix dimension Pareto datasources: PJ_TYPE/PRODUCTLINENAME from DW_MES_CONTAINER, WORKFLOWNAME from DW_MES_LOTWIPHISTORY via WIPTRACKINGGROUPKEYID, EQUIPMENTNAME from LOTREJECTHISTORY only (no WIP fallback), workcenter dimension uses WORKCENTER_GROUP - Add multi-select Pareto click filtering with chip display and detail list integration - Add TOP 20 display scope selector for TYPE/WORKFLOW/機台 dimensions - Pass Pareto selection (dimension + values) through to list/export endpoints - Enable TRACE_WORKER_ENABLED=true by default in start_server.sh and .env.example - Archive reject-history-pareto-datasource-fix and reject-history-pareto-ux-enhancements - Update reject-history-api and reject-history-page specs with new Pareto behaviors Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
MODIFIED Requirements
Requirement: Reject History SQL base query SHALL source dimension columns from correct tables
The base query (performance_daily.sql, performance_daily_lot.sql) SHALL source each dimension column from its authoritative table.
Scenario: PJ_TYPE sourced from DW_MES_CONTAINER
- WHEN the base query resolves PJ_TYPE
- THEN it SHALL use
DW_MES_CONTAINER.PJ_TYPEonly - THEN it SHALL NOT fall back to
DW_MES_WIP
Scenario: PRODUCTLINENAME sourced from DW_MES_CONTAINER
- WHEN the base query resolves PRODUCTLINENAME (package)
- THEN it SHALL use
DW_MES_CONTAINER.PRODUCTLINENAMEonly - THEN it SHALL NOT fall back to
DW_MES_WIP
Scenario: EQUIPMENTNAME sourced from DW_MES_LOTREJECTHISTORY only
- WHEN the base query resolves EQUIPMENTNAME
- THEN it SHALL use
DW_MES_LOTREJECTHISTORY.EQUIPMENTNAMEonly - THEN it SHALL NOT perform any additional lookup when the value is NULL
Scenario: WORKFLOWNAME sourced from DW_MES_LOTWIPHISTORY via WIPTRACKINGGROUPKEYID
- WHEN the base query resolves WORKFLOWNAME
- THEN it SHALL LEFT JOIN
DW_MES_LOTWIPHISTORYonWIPTRACKINGGROUPKEYID - THEN it SHALL use
DW_MES_LOTWIPHISTORY.WORKFLOWNAME - THEN it SHALL NOT fall back to SPECNAME or any other field
Scenario: No DW_MES_WIP dependency in base query
- WHEN the base query CTEs are examined
- THEN there SHALL be no CTE or JOIN referencing
DW_MES_WIP
Requirement: Dimension Pareto workcenter dimension SHALL use WORKCENTER_GROUP
The workcenter dimension in Pareto analysis SHALL group by WORKCENTER_GROUP, not individual WORKCENTERNAME.
Scenario: Cache-based Pareto workcenter mapping
- WHEN
reject_dataset_cache.pycomputes workcenter dimension Pareto - THEN the dimension column SHALL be
WORKCENTER_GROUP
Scenario: SQL-based Pareto workcenter mapping
- WHEN
reject_history_service.pybuilds workcenter dimension Pareto SQL - THEN the dimension column SHALL be
b.WORKCENTER_GROUP