3.8 KiB
3.8 KiB
MODIFIED Requirements
Requirement: Query-tool page SHALL use tab-based layout separating LOT tracing from equipment queries
The query-tool page SHALL present three top-level tabs with independent state: 批次追蹤(正向), 流水批反查(反向), and 設備生產批次追蹤.
Scenario: Tab switching preserves independent state
- WHEN the user switches between forward, reverse, and equipment tabs
- THEN each tab SHALL retain its own input values, resolved seeds, selected nodes, and detail sub-tab state
- THEN switching tabs SHALL NOT clear another tab's query context
Scenario: URL state reflects active tab and tab-local inputs
- WHEN the user is on a specific tab
- THEN the URL SHALL include
taband corresponding tab-local query parameters - THEN reloading the page SHALL restore the active tab and its tab-local state
Requirement: QueryBar SHALL resolve LOT/Serial/WorkOrder inputs
The query bar SHALL support profile-specific input types. Forward tracing SHALL support wafer/lot/work-order inputs, and reverse tracing SHALL support serial, GD work-order, and GD lot-id inputs.
Scenario: Forward query supports wafer-lot seeds
- WHEN the user selects
wafer_lotin forward tab and submits values - THEN the system SHALL call resolve API with
input_type=wafer_lot - THEN resolved lots under the wafer origin SHALL appear as forward tree roots
Scenario: Reverse query supports GD work-order seeds
- WHEN the user selects
gd_work_orderin reverse tab and submitsGD%work orders - THEN the system SHALL call resolve API with
input_type=gd_work_order - THEN resolved GD lots SHALL appear as reverse tree roots
Scenario: Reverse query supports GD lot-id seeds
- WHEN the user selects
gd_lot_idin reverse tab and submits GD lot IDs - THEN the system SHALL call resolve API with
input_type=gd_lot_id - THEN resolved GD lot roots SHALL be used for reverse lineage expansion
Scenario: Invalid GD work-order input is rejected
- WHEN reverse tab input type is
gd_work_orderand a value does not matchGD% - THEN the system SHALL return validation error without issuing lineage query
- THEN the UI SHALL keep user input and display actionable error text
Scenario: Invalid GD lot-id input is rejected
- WHEN reverse tab input type is
gd_lot_idand a value does not match GD lot rules - THEN the system SHALL return validation error without issuing lineage query
- THEN invalid values SHALL be reported in the UI without clearing user input
Requirement: LineageTree SHALL display as a decomposition tree with progressive growth animation
The lineage tree SHALL render semantic node/edge relationships and SHALL preserve progressive loading behavior.
Scenario: GC is optional and wafer linkage remains visible
- WHEN a GA lot has no GC node in its upstream chain
- THEN the tree SHALL still render a direct
WAFER -> GArelationship - THEN this SHALL NOT be treated as a broken lineage
Scenario: GD rework branch is explicitly rendered
- WHEN lineage includes GD rework data
- THEN the tree SHALL render
source lot -> GD lot -> new serial/lotusing GD-specific node/edge style - THEN users SHALL be able to distinguish GD rework edges from split/merge edges
Scenario: Auto-fire lineage after forward resolve
- WHEN forward lot resolution completes with N resolved lots
- THEN lineage SHALL be fetched automatically with concurrency-limited requests
- THEN the tree SHALL progressively grow as lineage responses arrive
Scenario: Node click only scopes detail panel
- WHEN the user clicks one or more nodes in the tree
- THEN only the detail panel query scope SHALL change
- THEN the tree structure and node visibility SHALL remain unchanged