diff --git a/backend/app/crud/production_work_order.py b/backend/app/crud/production_work_order.py index 4ccbf62e..5304c7fc 100644 --- a/backend/app/crud/production_work_order.py +++ b/backend/app/crud/production_work_order.py @@ -1384,6 +1384,8 @@ def create_temp_production_work_order( id=generate_uuid(), work_order_no=_generate_temp_work_order_no(db, tenant_no), work_order_type="temporary", + # 临时工单不走样本接收;显式置空,避免列默认 cell_storage 误导完成工单门禁 + reception_source=None, work_order_status="dpz", tenant_no=tenant_no, remark=remark, diff --git a/backend/graphify-out/.graphify_extract.json b/backend/graphify-out/.graphify_extract.json index 2ae12510..d14289b5 100644 --- a/backend/graphify-out/.graphify_extract.json +++ b/backend/graphify-out/.graphify_extract.json @@ -10491,42 +10491,42 @@ "label": "list_temp_production_work_orders()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1402" + "source_location": "L1404" }, { "id": "crud_production_work_order_get_temp_production_work_order", "label": "get_temp_production_work_order()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1443" + "source_location": "L1445" }, { "id": "crud_production_work_order_get_temp_production_work_order_detail", "label": "get_temp_production_work_order_detail()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1458" + "source_location": "L1460" }, { "id": "crud_production_work_order_configure_temp_production_work_order", "label": "configure_temp_production_work_order()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1480" + "source_location": "L1482" }, { "id": "crud_production_work_order_sync_temp_production_work_order_status", "label": "sync_temp_production_work_order_status()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1528" + "source_location": "L1530" }, { "id": "crud_production_work_order_delete_temp_production_work_order", "label": "delete_temp_production_work_order()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1564" + "source_location": "L1566" }, { "id": "crud_production_work_order_rationale_54", @@ -63893,7 +63893,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1402", + "source_location": "L1404", "weight": 1.0 }, { @@ -63902,7 +63902,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1443", + "source_location": "L1445", "weight": 1.0 }, { @@ -63911,7 +63911,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1458", + "source_location": "L1460", "weight": 1.0 }, { @@ -63920,7 +63920,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1480", + "source_location": "L1482", "weight": 1.0 }, { @@ -63929,7 +63929,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1528", + "source_location": "L1530", "weight": 1.0 }, { @@ -63938,7 +63938,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1564", + "source_location": "L1566", "weight": 1.0 }, { @@ -64208,7 +64208,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1439", + "source_location": "L1441", "weight": 1.0 }, { @@ -64217,7 +64217,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1461", + "source_location": "L1463", "weight": 1.0 }, { @@ -64226,7 +64226,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1464", + "source_location": "L1466", "weight": 1.0 }, { @@ -64235,7 +64235,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1494", + "source_location": "L1496", "weight": 1.0 }, { @@ -64244,7 +64244,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1536", + "source_location": "L1538", "weight": 1.0 }, { @@ -64253,7 +64253,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1567", + "source_location": "L1569", "weight": 1.0 }, { @@ -64262,7 +64262,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1588", + "source_location": "L1590", "weight": 1.0 }, { @@ -278859,7 +278859,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1429", + "source_location": "L1431", "weight": 1.0 }, { @@ -278869,7 +278869,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1430", + "source_location": "L1432", "weight": 1.0 }, { @@ -278879,7 +278879,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1476", + "source_location": "L1478", "weight": 1.0 }, { @@ -278889,7 +278889,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1496", + "source_location": "L1498", "weight": 1.0 }, { @@ -278899,7 +278899,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1500", + "source_location": "L1502", "weight": 1.0 }, { @@ -278909,7 +278909,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1569", + "source_location": "L1571", "weight": 1.0 }, { diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md index 7f34435a..bdcf4816 100644 --- a/backend/graphify-out/GRAPH_REPORT.md +++ b/backend/graphify-out/GRAPH_REPORT.md @@ -1,7 +1,7 @@ -# Graph Report - app (2026-09-11) +# Graph Report - app (2026-09-14) ## Corpus Check -- Large corpus: 264 files · ~317,127 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only. +- Large corpus: 264 files · ~317,132 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only. ## Summary - 5468 nodes · 30082 edges · 40 communities detected diff --git a/backend/graphify-out/graph.json b/backend/graphify-out/graph.json index 49069c9a..e5263393 100644 --- a/backend/graphify-out/graph.json +++ b/backend/graphify-out/graph.json @@ -13057,7 +13057,7 @@ "label": "list_temp_production_work_orders()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1402", + "source_location": "L1404", "id": "crud_production_work_order_list_temp_production_work_orders", "community": 10, "norm_label": "list_temp_production_work_orders()" @@ -13066,7 +13066,7 @@ "label": "get_temp_production_work_order()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1443", + "source_location": "L1445", "id": "crud_production_work_order_get_temp_production_work_order", "community": 10, "norm_label": "get_temp_production_work_order()" @@ -13075,7 +13075,7 @@ "label": "get_temp_production_work_order_detail()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1458", + "source_location": "L1460", "id": "crud_production_work_order_get_temp_production_work_order_detail", "community": 10, "norm_label": "get_temp_production_work_order_detail()" @@ -13084,7 +13084,7 @@ "label": "configure_temp_production_work_order()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1480", + "source_location": "L1482", "id": "crud_production_work_order_configure_temp_production_work_order", "community": 10, "norm_label": "configure_temp_production_work_order()" @@ -13093,7 +13093,7 @@ "label": "sync_temp_production_work_order_status()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1528", + "source_location": "L1530", "id": "crud_production_work_order_sync_temp_production_work_order_status", "community": 10, "norm_label": "sync_temp_production_work_order_status()" @@ -13102,7 +13102,7 @@ "label": "delete_temp_production_work_order()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L1564", + "source_location": "L1566", "id": "crud_production_work_order_delete_temp_production_work_order", "community": 10, "norm_label": "delete_temp_production_work_order()" @@ -82798,7 +82798,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1429", + "source_location": "L1431", "weight": 1.0, "_src": "crud_production_work_order_list_temp_production_work_orders", "_tgt": "core_data_scope_apply_data_scope", @@ -289005,7 +289005,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1402", + "source_location": "L1404", "weight": 1.0, "_src": "crud_production_work_order_py", "_tgt": "crud_production_work_order_list_temp_production_work_orders", @@ -289017,7 +289017,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1443", + "source_location": "L1445", "weight": 1.0, "_src": "crud_production_work_order_py", "_tgt": "crud_production_work_order_get_temp_production_work_order", @@ -289029,7 +289029,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1458", + "source_location": "L1460", "weight": 1.0, "_src": "crud_production_work_order_py", "_tgt": "crud_production_work_order_get_temp_production_work_order_detail", @@ -289041,7 +289041,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1480", + "source_location": "L1482", "weight": 1.0, "_src": "crud_production_work_order_py", "_tgt": "crud_production_work_order_configure_temp_production_work_order", @@ -289053,7 +289053,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1528", + "source_location": "L1530", "weight": 1.0, "_src": "crud_production_work_order_py", "_tgt": "crud_production_work_order_sync_temp_production_work_order_status", @@ -289065,7 +289065,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1564", + "source_location": "L1566", "weight": 1.0, "_src": "crud_production_work_order_py", "_tgt": "crud_production_work_order_delete_temp_production_work_order", @@ -289233,7 +289233,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1588", + "source_location": "L1590", "weight": 1.0, "_src": "crud_production_work_order_delete_temp_production_work_order", "_tgt": "crud_production_work_order_soft_delete_sub", @@ -290241,7 +290241,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1439", + "source_location": "L1441", "weight": 1.0, "_src": "crud_production_work_order_list_temp_production_work_orders", "_tgt": "crud_production_work_order_temp_wo_to_dict", @@ -290253,7 +290253,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1464", + "source_location": "L1466", "weight": 1.0, "_src": "crud_production_work_order_get_temp_production_work_order_detail", "_tgt": "crud_production_work_order_temp_wo_to_dict", @@ -290314,7 +290314,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1430", + "source_location": "L1432", "weight": 1.0, "_src": "crud_production_work_order_list_temp_production_work_orders", "_tgt": "crud_base_crudbase_count", @@ -290325,7 +290325,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1461", + "source_location": "L1463", "weight": 1.0, "_src": "crud_production_work_order_get_temp_production_work_order_detail", "_tgt": "crud_production_work_order_get_temp_production_work_order", @@ -290337,7 +290337,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1494", + "source_location": "L1496", "weight": 1.0, "_src": "crud_production_work_order_configure_temp_production_work_order", "_tgt": "crud_production_work_order_get_temp_production_work_order", @@ -290349,7 +290349,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1536", + "source_location": "L1538", "weight": 1.0, "_src": "crud_production_work_order_sync_temp_production_work_order_status", "_tgt": "crud_production_work_order_get_temp_production_work_order", @@ -290361,7 +290361,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L1567", + "source_location": "L1569", "weight": 1.0, "_src": "crud_production_work_order_delete_temp_production_work_order", "_tgt": "crud_production_work_order_get_temp_production_work_order", @@ -290374,7 +290374,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1476", + "source_location": "L1478", "weight": 1.0, "_src": "crud_production_work_order_get_temp_production_work_order_detail", "_tgt": "services_oa_engine_task_to_dict", @@ -290386,7 +290386,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1496", + "source_location": "L1498", "weight": 1.0, "_src": "crud_production_work_order_configure_temp_production_work_order", "_tgt": "valueerror", @@ -290398,7 +290398,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1500", + "source_location": "L1502", "weight": 1.0, "_src": "crud_production_work_order_configure_temp_production_work_order", "_tgt": "api_production_create_production_task", @@ -290422,7 +290422,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L1569", + "source_location": "L1571", "weight": 1.0, "_src": "crud_production_work_order_delete_temp_production_work_order", "_tgt": "valueerror", diff --git a/backend/graphify-out/manifest.json b/backend/graphify-out/manifest.json index 2960772f..64de9fea 100644 --- a/backend/graphify-out/manifest.json +++ b/backend/graphify-out/manifest.json @@ -93,7 +93,7 @@ "/Users/wuzilong/work/00code/zkxw/backend/app/crud/qc_inspection_item_template.py": 1786941802.105201, "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_material_stock_batch.py": 1782404955.550011, "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py": 1786616084.8158407, - "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py": 1788234952.0486848, + "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py": 1789366011.0738122, "/Users/wuzilong/work/00code/zkxw/backend/app/crud/material.py": 1781522283.6438622, "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dict_type.py": 1779265621.5212462, "/Users/wuzilong/work/00code/zkxw/backend/app/crud/storage_occupancy.py": 1785237078.9580858, diff --git a/web-admin/graphify-out/.graphify_extract.json b/web-admin/graphify-out/.graphify_extract.json index 9c8369f6..760af0fb 100644 --- a/web-admin/graphify-out/.graphify_extract.json +++ b/web-admin/graphify-out/.graphify_extract.json @@ -3267,14 +3267,14 @@ "label": "classifyTasksForCompleteWorkOrderGate()", "file_type": "code", "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L18" + "source_location": "L22" }, { "id": "utils_production_complete_work_order_gate_logic_findtaskstepgateissue", "label": "findTaskStepGateIssue()", "file_type": "code", "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L31" + "source_location": "L35" }, { "id": "utils_sample_reception_lab_storage_code_ts", @@ -31999,7 +31999,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L18", + "source_location": "L22", "weight": 1.0 }, { @@ -32008,7 +32008,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L31", + "source_location": "L35", "weight": 1.0 }, { @@ -60124,7 +60124,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L122", + "source_location": "L123", "weight": 1.0 }, { @@ -60133,7 +60133,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L123", + "source_location": "L124", "weight": 1.0 }, { @@ -60142,7 +60142,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L124", + "source_location": "L125", "weight": 1.0 }, { @@ -60151,7 +60151,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L125", + "source_location": "L126", "weight": 1.0 }, { @@ -60160,7 +60160,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L133", + "source_location": "L134", "weight": 1.0 }, { @@ -60169,7 +60169,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L137", + "source_location": "L138", "weight": 1.0 }, { @@ -60178,7 +60178,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L138", + "source_location": "L139", "weight": 1.0 }, { @@ -60187,7 +60187,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L139", + "source_location": "L140", "weight": 1.0 }, { @@ -60196,7 +60196,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L140", + "source_location": "L141", "weight": 1.0 }, { @@ -60205,7 +60205,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L141", + "source_location": "L142", "weight": 1.0 }, { @@ -60214,7 +60214,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L142", + "source_location": "L143", "weight": 1.0 }, { @@ -60223,7 +60223,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L143", + "source_location": "L144", "weight": 1.0 }, { @@ -60232,7 +60232,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L144", + "source_location": "L145", "weight": 1.0 }, { @@ -60241,7 +60241,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L145", + "source_location": "L146", "weight": 1.0 }, { @@ -60250,7 +60250,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L146", + "source_location": "L147", "weight": 1.0 }, { @@ -60259,7 +60259,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L147", + "source_location": "L148", "weight": 1.0 }, { @@ -74611,7 +74611,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L35", + "source_location": "L39", "weight": 1.0 }, { diff --git a/web-admin/graphify-out/GRAPH_REPORT.md b/web-admin/graphify-out/GRAPH_REPORT.md index 6a973691..902ddd97 100644 --- a/web-admin/graphify-out/GRAPH_REPORT.md +++ b/web-admin/graphify-out/GRAPH_REPORT.md @@ -1,7 +1,7 @@ -# Graph Report - src (2026-09-11) +# Graph Report - src (2026-09-14) ## Corpus Check -- Large corpus: 1000 files · ~660,141 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only. +- Large corpus: 1000 files · ~660,217 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only. ## Summary - 3602 nodes · 5137 edges · 69 communities detected diff --git a/web-admin/graphify-out/graph.json b/web-admin/graphify-out/graph.json index 472eef0e..34f79546 100644 --- a/web-admin/graphify-out/graph.json +++ b/web-admin/graphify-out/graph.json @@ -4201,7 +4201,7 @@ "label": "classifyTasksForCompleteWorkOrderGate()", "file_type": "code", "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L18", + "source_location": "L22", "id": "utils_production_complete_work_order_gate_logic_classifytasksforcompleteworkordergate", "community": 4, "norm_label": "classifytasksforcompleteworkordergate()" @@ -4210,7 +4210,7 @@ "label": "findTaskStepGateIssue()", "file_type": "code", "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L31", + "source_location": "L35", "id": "utils_production_complete_work_order_gate_logic_findtaskstepgateissue", "community": 4, "norm_label": "findtaskstepgateissue()" @@ -41355,7 +41355,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L18", + "source_location": "L22", "weight": 1.0, "_src": "utils_production_complete_work_order_gate_logic_ts", "_tgt": "utils_production_complete_work_order_gate_logic_classifytasksforcompleteworkordergate", @@ -41367,7 +41367,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L31", + "source_location": "L35", "weight": 1.0, "_src": "utils_production_complete_work_order_gate_logic_ts", "_tgt": "utils_production_complete_work_order_gate_logic_findtaskstepgateissue", @@ -41380,7 +41380,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "utils/production-complete-work-order-gate-logic.ts", - "source_location": "L35", + "source_location": "L39", "weight": 1.0, "_src": "utils_production_complete_work_order_gate_logic_findtaskstepgateissue", "_tgt": "utils_production_labels_extractproductiontasksteps", @@ -58143,7 +58143,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L144", + "source_location": "L145", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "components_business_work_order_remark_dialog_index_vue", @@ -81747,7 +81747,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L139", + "source_location": "L140", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "views_production_production_work_order_productionworkordertabbar_vue", @@ -81759,7 +81759,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L140", + "source_location": "L141", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "views_production_production_work_order_tabs_productionworkordertabpanel_vue", @@ -81771,7 +81771,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L141", + "source_location": "L142", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "views_production_production_work_order_dispatchtaskdialog_vue", @@ -81783,7 +81783,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L142", + "source_location": "L143", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "views_production_production_work_order_dispatchstepdialog_vue", @@ -81795,7 +81795,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L143", + "source_location": "L144", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "views_production_production_work_order_dispatchqcworkorderdialog_vue", @@ -81807,7 +81807,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L145", + "source_location": "L146", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "views_production_production_work_order_samplereceptiondialog_vue", @@ -81819,7 +81819,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L146", + "source_location": "L147", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "views_production_production_work_order_taskexecutiondialog_vue", @@ -81831,7 +81831,7 @@ "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "views/production/production-work-order/index.vue", - "source_location": "L147", + "source_location": "L148", "weight": 1.0, "_src": "views_production_production_work_order_index_vue", "_tgt": "views_production_production_work_order_completeproductiontaskdialog_vue", diff --git a/web-admin/graphify-out/manifest.json b/web-admin/graphify-out/manifest.json index c5855bee..8c9b85f1 100644 --- a/web-admin/graphify-out/manifest.json +++ b/web-admin/graphify-out/manifest.json @@ -17,8 +17,8 @@ "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/common/index.ts": 1781272556.3597305, "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/directive/directive.d.ts": 1781272556.3601494, "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/api/api.d.ts": 1781272556.3606477, - "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1788849928.4684184, - "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1788848629.6992872, + "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1789362706.3178787, + "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1789362686.8080792, "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/store/index.ts": 1787887312.735774, "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/router/index.ts": 1787887320.8486114, "/Users/wuzilong/work/00code/zkxw/web-admin/src/composables/useAttachmentActions.ts": 1788162977.6691713, @@ -102,7 +102,7 @@ "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/oa-receive-account-value.ts": 1785390441.8286228, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/datetime-display.ts": 1782806208.3904786, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/oa-form-value-display.test.ts": 1786364545.4796336, - "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/production-complete-work-order-gate-logic.ts": 1788849790.2824821, + "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/production-complete-work-order-gate-logic.ts": 1789365983.6304162, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/sample-reception-lab-storage-code.ts": 1782378453.1031013, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/outbound-qc-pilot-view-sections.ts": 1781566346.7618802, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/oa-app-icons.ts": 1785992369.9430938, @@ -144,7 +144,7 @@ "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/qc-company-task-group.ts": 1788330359.4652264, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/oa-post-value.ts": 1785394332.7419252, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/attachment-zip.ts": 1788162981.821378, - "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/production-complete-work-order-gate.test.ts": 1788849780.0109205, + "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/production-complete-work-order-gate.test.ts": 1789365983.6307025, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/numeric-input-parse.ts": 1782179343.5953708, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/oa-dept-value.ts": 1785148503.1442196, "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/index.ts": 1781272556.410244, @@ -535,7 +535,7 @@ "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue": 1783326448.939372, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-task/index.vue": 1782893852.6013515, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/reagent/index.vue": 1783326448.9403174, - "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/index.vue": 1788327820.727357, + "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/index.vue": 1789371332.178365, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/ProductionStepBadge.vue": 1783307223.0443783, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/useTaskStepEditor.ts": 1788234280.065907, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/StepDetailPanel.vue": 1787629676.3745494, @@ -591,7 +591,7 @@ "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-material/ProductionMaterialStockCheckTab.vue": 1785210181.870827, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-material/ProductionMaterialPrepTab.vue": 1785210153.359408, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sample-reception-completion/index.vue": 1782893851.986683, - "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/my-production-task/index.vue": 1788327843.899062, + "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/my-production-task/index.vue": 1789371332.4679585, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/equipment/index.vue": 1783326448.9595375, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/index.vue": 1787629663.564886, "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/ProcessRouteTab.vue": 1788231143.029855, diff --git a/web-admin/src/utils/production-complete-work-order-gate-logic.ts b/web-admin/src/utils/production-complete-work-order-gate-logic.ts index 4267634f..fe8a1b86 100644 --- a/web-admin/src/utils/production-complete-work-order-gate-logic.ts +++ b/web-admin/src/utils/production-complete-work-order-gate-logic.ts @@ -5,6 +5,10 @@ import type { ProductionWorkOrderItem } from '@/api/production-work-order' import { extractProductionTaskSteps } from '@/utils/production-labels' export function needsProductionReceptionGate(row: ProductionWorkOrderItem): boolean { + // 仅入库生产(细胞存储/科研捐赠)需要生产接收登记;扩增传代(temporary)、出库等不需要。 + // 注意:临时工单 DB 默认 reception_source=cell_storage,不可仅凭来源判断。 + const woType = String(row.workOrderType || 'inbound').trim() || 'inbound' + if (woType !== 'inbound') return false const src = String(row.receptionSource || '').trim() return src === 'cell_storage' || src === 'research_donation' } diff --git a/web-admin/src/utils/production-complete-work-order-gate.test.ts b/web-admin/src/utils/production-complete-work-order-gate.test.ts index 1fdfe2d9..ded9ce62 100644 --- a/web-admin/src/utils/production-complete-work-order-gate.test.ts +++ b/web-admin/src/utils/production-complete-work-order-gate.test.ts @@ -39,17 +39,44 @@ describe('classifyTasksForCompleteWorkOrderGate', () => { }) describe('needsProductionReceptionGate', () => { - it('true for cell_storage and research_donation', () => { - assert.equal(needsProductionReceptionGate({ receptionSource: 'cell_storage' } as any), true) + it('true for inbound cell_storage and research_donation', () => { assert.equal( - needsProductionReceptionGate({ receptionSource: 'research_donation' } as any), + needsProductionReceptionGate({ + workOrderType: 'inbound', + receptionSource: 'cell_storage' + } as any), true ) + assert.equal( + needsProductionReceptionGate({ + workOrderType: 'inbound', + receptionSource: 'research_donation' + } as any), + true + ) + // 缺省 workOrderType 视为入库 + assert.equal(needsProductionReceptionGate({ receptionSource: 'cell_storage' } as any), true) }) - it('false for outbound/temporary', () => { + it('false for outbound/temporary even if receptionSource looks inbound', () => { assert.equal(needsProductionReceptionGate({ receptionSource: 'outbound' } as any), false) assert.equal(needsProductionReceptionGate({} as any), false) + // 扩增/传代临时工单:DB 默认 reception_source=cell_storage,且常无 sampleCode + assert.equal( + needsProductionReceptionGate({ + workOrderType: 'temporary', + receptionSource: 'cell_storage', + sampleCode: '' + } as any), + false + ) + assert.equal( + needsProductionReceptionGate({ + workOrderType: 'outbound', + receptionSource: 'cell_storage' + } as any), + false + ) }) }) diff --git a/web-admin/src/views/production/my-production-task/index.vue b/web-admin/src/views/production/my-production-task/index.vue index 060259f9..829d617b 100644 --- a/web-admin/src/views/production/my-production-task/index.vue +++ b/web-admin/src/views/production/my-production-task/index.vue @@ -41,6 +41,7 @@ v-model:visible="completeWoVisible" mode="workOrder" :submitting="completeWoSubmitting" + :initial-remark="completeWoTarget?.remark || ''" @submit="submitCompleteWorkOrder" /> diff --git a/web-admin/src/views/production/production-work-order/index.vue b/web-admin/src/views/production/production-work-order/index.vue index 635c1f64..e034b39a 100644 --- a/web-admin/src/views/production/production-work-order/index.vue +++ b/web-admin/src/views/production/production-work-order/index.vue @@ -111,6 +111,7 @@ v-model:visible="completeWoVisible" mode="workOrder" :submitting="completeWoSubmitting" + :initial-remark="completeWoTarget?.remark || ''" @submit="submitCompleteWorkOrder" />