This commit is contained in:
zlwu committed 2026-08-25 09:19:31 +08:00
1 parent 848517479d
commit d2290eb92c
20 files changed
+497 -807

No files matched your search

+2
View File
@@ -2782,7 +2782,9 @@ def set_task_outputs(
BizCellProduct.id == cp_id, BizCellProduct.del_flag == 0
).first()
if product:
# 作废并软删:避免同编码再入库时留下 voided+frozen 双行,污染各类选择器
product.product_status = "voided"
product.del_flag = 1
product.update_by = user_id
product.update_time = now
db.add(product)
+3 -3
View File
@@ -2844,9 +2844,9 @@
"crud_production_task_rationale_2513",
"crud_production_task_rationale_2636",
"crud_production_task_rationale_2694",
"crud_production_task_rationale_2897",
"crud_production_task_rationale_3022",
"crud_production_task_rationale_3203",
"crud_production_task_rationale_2899",
"crud_production_task_rationale_3024",
"crud_production_task_rationale_3205",
"crud_production_task_rationale_460",
"crud_production_task_rationale_479",
"crud_production_task_rationale_579",
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -1,7 +1,7 @@
# Graph Report - app (2026-08-20)
## Corpus Check
- Large corpus: 262 files · ~313,525 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
- Large corpus: 262 files · ~313,532 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
## Summary
- 5425 nodes · 29863 edges · 43 communities detected
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -105,7 +105,7 @@
"/Users/wuzilong/work/00code/zkxw/backend/app/crud/material_usage.py": 1782894693.7808309,
"/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_material_usage.py": 1781513732.7796721,
"/Users/wuzilong/work/00code/zkxw/backend/app/crud/sop_document.py": 1779265721.9928973,
"/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py": 1785240038.2612407,
"/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py": 1787212916.0972161,
"/Users/wuzilong/work/00code/zkxw/backend/app/crud/inbound_sample_special.py": 1782890475.769446,
"/Users/wuzilong/work/00code/zkxw/backend/app/crud/qc_third_party_item.py": 1779265661.482352,
"/Users/wuzilong/work/00code/zkxw/backend/app/crud/sample_production_reception.py": 1782722028.9202535,
@@ -1,13 +0,0 @@
-- 质检物料月初模板:模板行字段改为可空(维护时可不全填,确认入库时再校验)
-- MySQL 5.7;已建表环境执行本脚本
ALTER TABLE `biz_qc_material_month_template`
MODIFY COLUMN `material_code` varchar(64) NOT NULL DEFAULT '' COMMENT '物料编码',
MODIFY COLUMN `material_name` varchar(200) NOT NULL DEFAULT '' COMMENT '物料名称',
MODIFY COLUMN `catalog_no` varchar(128) DEFAULT NULL COMMENT '货号',
MODIFY COLUMN `batch_no` varchar(128) DEFAULT NULL COMMENT '批号',
MODIFY COLUMN `manufacturer` varchar(200) DEFAULT NULL COMMENT '厂家',
MODIFY COLUMN `unit_price` decimal(18,2) NOT NULL DEFAULT 0.00 COMMENT '单价(元)',
MODIFY COLUMN `amount` decimal(18,2) NOT NULL DEFAULT 0.00 COMMENT '金额(元)',
MODIFY COLUMN `in_qty` decimal(18,4) NOT NULL DEFAULT 0.0000 COMMENT '默认入库数量',
MODIFY COLUMN `expire_date` date DEFAULT NULL COMMENT '默认过期日期';
@@ -1,30 +0,0 @@
-- 质检物料库:月初入库模板
-- MySQL 5.7 / utf8mb4;可重复执行需人工判断表是否已存在
CREATE TABLE IF NOT EXISTS `biz_qc_material_month_template` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`material_id` varchar(64) DEFAULT NULL COMMENT '关联 biz_qc_material.id,可空',
`material_code` varchar(64) NOT NULL DEFAULT '' COMMENT '物料编码',
`material_name` varchar(200) NOT NULL DEFAULT '' COMMENT '物料名称',
`spec_model` varchar(200) DEFAULT NULL COMMENT '规格型号',
`unit` varchar(32) DEFAULT NULL COMMENT '单位',
`catalog_no` varchar(128) DEFAULT NULL COMMENT '货号',
`batch_no` varchar(128) DEFAULT NULL COMMENT '批号',
`manufacturer` varchar(200) DEFAULT NULL COMMENT '厂家',
`unit_price` decimal(18,2) NOT NULL DEFAULT 0.00 COMMENT '单价(元)',
`amount` decimal(18,2) NOT NULL DEFAULT 0.00 COMMENT '金额(元)',
`in_qty` decimal(18,4) NOT NULL DEFAULT 0.0000 COMMENT '默认入库数量',
`expire_date` date DEFAULT NULL COMMENT '默认过期日期',
`tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
`order_num` int(11) DEFAULT 0 COMMENT '排序号',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
PRIMARY KEY (`id`),
KEY `idx_qc_mmt_tenant` (`tenant_no`, `del_flag`, `order_num`),
KEY `idx_qc_mmt_material` (`material_id`, `del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='质检物料月初入库模板';
@@ -1,91 +0,0 @@
-- 入库放行审核:生产 / 质检菜单(sys_menu)
-- MySQL 5.7;可重复执行
-- 市场 → 细胞存储 原菜单(biz:storageReleaseReview:list)保持不变
-- 不写入 sys_role_menu:由管理员在角色管理中勾选新菜单
SET @tenant_no = CONVERT('zkxw' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @prm_id = CONVERT('PRM00000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @qcm_id = CONVERT('QCM00000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 注意:954…001 已占用「生产任务组合模版」,生产侧入库放行用 955…001
SET @menu_prod = CONVERT('95500000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @menu_qc = CONVERT('70000000000000000000000000000014' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 1) 生产 → 生产管理 → 入库放行审核
INSERT INTO sys_menu (
id, menu_name, parent_id, menu_type, path, component, perms,
is_frame, visible, status, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
@menu_prod,
'入库放行审核',
@prm_id,
'C',
'storage-release-review',
'/quality-inspection/storage-release-review/index',
'production:storageReleaseReview:list',
1, '1', '1', @tenant_no, 4,
'生产侧入库放行审核(仅审生产结论;双通过后可入库)',
NULL, '', NOW(), NULL, NOW(), 0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.id COLLATE utf8mb4_unicode_ci = @menu_prod
OR m.perms COLLATE utf8mb4_unicode_ci = 'production:storageReleaseReview:list'
);
UPDATE sys_menu
SET
menu_name = '入库放行审核',
parent_id = @prm_id,
menu_type = 'C',
path = 'storage-release-review',
component = '/quality-inspection/storage-release-review/index',
perms = 'production:storageReleaseReview:list',
visible = '1',
status = '1',
order_num = 4,
remark = '生产侧入库放行审核(仅审生产结论;双通过后可入库)',
del_flag = 0,
update_time = NOW()
WHERE id COLLATE utf8mb4_unicode_ci = @menu_prod;
-- 2) 质检 → 质检管理 → 入库放行审核
INSERT INTO sys_menu (
id, menu_name, parent_id, menu_type, path, component, perms,
is_frame, visible, status, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
@menu_qc,
'入库放行审核',
@qcm_id,
'C',
'storage-release-review',
'/quality-inspection/storage-release-review/index',
'quality:storageReleaseReview:list',
1, '1', '1', @tenant_no, 3,
'质检侧入库放行审核(仅审质检结论;双通过后可入库)',
NULL, '', NOW(), NULL, NOW(), 0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.id COLLATE utf8mb4_unicode_ci = @menu_qc
OR m.perms COLLATE utf8mb4_unicode_ci = 'quality:storageReleaseReview:list'
);
UPDATE sys_menu
SET
menu_name = '入库放行审核',
parent_id = @qcm_id,
menu_type = 'C',
path = 'storage-release-review',
component = '/quality-inspection/storage-release-review/index',
perms = 'quality:storageReleaseReview:list',
visible = '1',
status = '1',
order_num = 3,
remark = '质检侧入库放行审核(仅审质检结论;双通过后可入库)',
del_flag = 0,
update_time = NOW()
WHERE id COLLATE utf8mb4_unicode_ci = @menu_qc;
@@ -1,111 +0,0 @@
-- 入库放行审核:给指定角色授权(sys_role_menu)
-- MySQL 5.7;可重复执行
-- 研发主管 → 生产侧入库放行审核
-- 质量主管 → 质检侧入库放行审核
-- 祖先菜单(生产/生产管理、质检/质检管理)若已有则不重复插入
SET @tenant_no = CONVERT('zkxw' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 研发主管
SET @role_rd = CONVERT('2668804724054AB6A45DF35D2108138B' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 质量主管
SET @role_qa = CONVERT('35DD110367764827ACCCFEEBA1E21699' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 生产入库放行
SET @menu_prod = CONVERT('95500000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 质检入库放行
SET @menu_qc = CONVERT('70000000000000000000000000000014' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @top_prod = CONVERT('TOP00000000000000000000000000002' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @prm_id = CONVERT('PRM00000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @top_qc = CONVERT('TOP00000000000000000000000000003' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @qcm_id = CONVERT('QCM00000000000000000000000000001' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @web_root = CONVERT('2' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 软删恢复
UPDATE sys_role_menu
SET del_flag = 0, update_time = NOW(), remark = 'grant storage release dual-gate'
WHERE tenant_no COLLATE utf8mb4_unicode_ci = @tenant_no
AND del_flag = 1
AND (
(role_id COLLATE utf8mb4_unicode_ci = @role_rd AND menu_id COLLATE utf8mb4_unicode_ci IN (@web_root, @top_prod, @prm_id, @menu_prod))
OR
(role_id COLLATE utf8mb4_unicode_ci = @role_qa AND menu_id COLLATE utf8mb4_unicode_ci IN (@web_root, @top_qc, @qcm_id, @menu_qc))
);
-- 研发主管:Web 根 + 生产 + 生产管理 + 生产入库放行
INSERT INTO sys_role_menu (
id, role_id, menu_id, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
UPPER(MD5(CONCAT(x.role_id, '|', x.menu_id))),
x.role_id,
x.menu_id,
@tenant_no,
0,
'grant storage release dual-gate',
'admin',
'',
NOW(),
NULL,
NOW(),
0
FROM (
SELECT @role_rd AS role_id, @web_root AS menu_id
UNION ALL SELECT @role_rd, @top_prod
UNION ALL SELECT @role_rd, @prm_id
UNION ALL SELECT @role_rd, @menu_prod
) x
WHERE EXISTS (
SELECT 1 FROM sys_role r
WHERE r.id COLLATE utf8mb4_unicode_ci = x.role_id AND r.del_flag = 0
)
AND EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.id COLLATE utf8mb4_unicode_ci = x.menu_id AND m.del_flag = 0
)
AND NOT EXISTS (
SELECT 1 FROM sys_role_menu rm
WHERE rm.role_id COLLATE utf8mb4_unicode_ci = x.role_id
AND rm.menu_id COLLATE utf8mb4_unicode_ci = x.menu_id
AND rm.tenant_no COLLATE utf8mb4_unicode_ci = @tenant_no
AND rm.del_flag = 0
);
-- 质量主管:Web 根 + 质检 + 质检管理 + 质检入库放行
INSERT INTO sys_role_menu (
id, role_id, menu_id, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
UPPER(MD5(CONCAT(x.role_id, '|', x.menu_id))),
x.role_id,
x.menu_id,
@tenant_no,
0,
'grant storage release dual-gate',
'admin',
'',
NOW(),
NULL,
NOW(),
0
FROM (
SELECT @role_qa AS role_id, @web_root AS menu_id
UNION ALL SELECT @role_qa, @top_qc
UNION ALL SELECT @role_qa, @qcm_id
UNION ALL SELECT @role_qa, @menu_qc
) x
WHERE EXISTS (
SELECT 1 FROM sys_role r
WHERE r.id COLLATE utf8mb4_unicode_ci = x.role_id AND r.del_flag = 0
)
AND EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.id COLLATE utf8mb4_unicode_ci = x.menu_id AND m.del_flag = 0
)
AND NOT EXISTS (
SELECT 1 FROM sys_role_menu rm
WHERE rm.role_id COLLATE utf8mb4_unicode_ci = x.role_id
AND rm.menu_id COLLATE utf8mb4_unicode_ci = x.menu_id
AND rm.tenant_no COLLATE utf8mb4_unicode_ci = @tenant_no
AND rm.del_flag = 0
);
@@ -1,42 +0,0 @@
-- 入库放行审核:生产/质检双闸门
-- MySQL 5.7;历史拷贝条件见下方 UPDATE 的 WHERE(可重复执行)
ALTER TABLE `biz_storage_release_review`
ADD COLUMN `qc_review_conclusion` VARCHAR(16) DEFAULT NULL COMMENT '质检侧结论 tg/btg/NULL待审' AFTER `review_time`,
ADD COLUMN `qc_review_remark` VARCHAR(512) DEFAULT NULL COMMENT '质检侧审核备注' AFTER `qc_review_conclusion`,
ADD COLUMN `qc_review_attachments` VARCHAR(4000) DEFAULT NULL COMMENT '质检侧审核附件(逗号分隔URL)' AFTER `qc_review_remark`,
ADD COLUMN `qc_review_by` VARCHAR(64) DEFAULT NULL COMMENT '质检侧审核人ID' AFTER `qc_review_attachments`,
ADD COLUMN `qc_review_by_name` VARCHAR(64) DEFAULT NULL COMMENT '质检侧审核人姓名' AFTER `qc_review_by`,
ADD COLUMN `qc_review_time` DATETIME DEFAULT NULL COMMENT '质检侧审核时间' AFTER `qc_review_by_name`,
ADD COLUMN `prod_review_conclusion` VARCHAR(16) DEFAULT NULL COMMENT '生产侧结论 tg/btg/NULL待审' AFTER `qc_review_time`,
ADD COLUMN `prod_review_remark` VARCHAR(512) DEFAULT NULL COMMENT '生产侧审核备注' AFTER `prod_review_conclusion`,
ADD COLUMN `prod_review_attachments` VARCHAR(4000) DEFAULT NULL COMMENT '生产侧审核附件(逗号分隔URL)' AFTER `prod_review_remark`,
ADD COLUMN `prod_review_by` VARCHAR(64) DEFAULT NULL COMMENT '生产侧审核人ID' AFTER `prod_review_attachments`,
ADD COLUMN `prod_review_by_name` VARCHAR(64) DEFAULT NULL COMMENT '生产侧审核人姓名' AFTER `prod_review_by`,
ADD COLUMN `prod_review_time` DATETIME DEFAULT NULL COMMENT '生产侧审核时间' AFTER `prod_review_by_name`;
ALTER TABLE `biz_storage_release_review`
ADD KEY `idx_srr_dual_conclusion` (`tenant_no`, `qc_review_conclusion`, `prod_review_conclusion`, `del_flag`);
-- 旧单人结论只落到质检侧;已入库状态不改
UPDATE `biz_storage_release_review`
SET
`qc_review_conclusion` = `review_conclusion`,
`qc_review_remark` = `review_remark`,
`qc_review_attachments` = `review_attachments`,
`qc_review_by` = `review_by`,
`qc_review_by_name` = `review_by_name`,
`qc_review_time` = `review_time`
WHERE `del_flag` = 0
AND (`qc_review_conclusion` IS NULL OR `qc_review_conclusion` = '')
AND `review_conclusion` IS NOT NULL
AND `review_conclusion` <> '';
-- 按双闸门重算汇总(旧「仅质检通过」汇总变为 NULL)
UPDATE `biz_storage_release_review`
SET `review_conclusion` = CASE
WHEN `prod_review_conclusion` = 'tg' AND `qc_review_conclusion` = 'tg' THEN 'tg'
WHEN `prod_review_conclusion` = 'btg' OR `qc_review_conclusion` = 'btg' THEN 'btg'
ELSE NULL
END
WHERE `del_flag` = 0;
@@ -1,42 +0,0 @@
-- 市场 → 细胞存储 → 入库放行审核:取消全部角色授权 + 菜单软删
-- MySQL 5.7;可重复执行
-- 目标菜单:id=70000000000000000000000000000011
-- perms=biz:storageReleaseReview:list
-- 不影响生产/质检侧入库放行审核菜单与授权
SET @tenant_no = CONVERT('zkxw' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
SET @menu_market = CONVERT('70000000000000000000000000000011' USING utf8mb4) COLLATE utf8mb4_unicode_ci;
-- 1) 取消任意角色对该菜单的授权(软删 sys_role_menu)
UPDATE sys_role_menu
SET
del_flag = 1,
update_time = NOW(),
remark = 'revoke market storage release review (overview offline)'
WHERE menu_id COLLATE utf8mb4_unicode_ci = @menu_market
AND del_flag = 0;
-- 兼容按 perms 关联(若存在重复/历史 id)
UPDATE sys_role_menu rm
INNER JOIN sys_menu m
ON m.id COLLATE utf8mb4_unicode_ci = rm.menu_id COLLATE utf8mb4_unicode_ci
SET
rm.del_flag = 1,
rm.update_time = NOW(),
rm.remark = 'revoke market storage release review (overview offline)'
WHERE m.perms COLLATE utf8mb4_unicode_ci = 'biz:storageReleaseReview:list'
AND rm.del_flag = 0;
-- 2) 菜单表虚拟删除
UPDATE sys_menu
SET
del_flag = 1,
visible = '0',
status = '0',
update_time = NOW(),
remark = '市场侧入库放行审核暂下线(改由生产/质检入口)'
WHERE (
id COLLATE utf8mb4_unicode_ci = @menu_market
OR perms COLLATE utf8mb4_unicode_ci = 'biz:storageReleaseReview:list'
)
AND del_flag = 0;
@@ -0,0 +1,15 @@
-- 细胞产品:历史「产出作废」仅将 product_status 置为 voided、未软删,
-- 同编码再入库后留下 voided+frozen 双行,导致各类「质检对象/细胞产品」下拉重复。
-- 将仍 del_flag=0 的 voided 行软删,与后续 set_task_outputs 行为对齐。
-- 执行前请备份;可先 SELECT 预览。
-- 预览:
-- SELECT id, product_code, product_name, product_status, production_task_id, create_time
-- FROM biz_cell_product
-- WHERE del_flag = 0 AND product_status = 'voided';
UPDATE biz_cell_product
SET del_flag = 1,
update_time = NOW()
WHERE del_flag = 0
AND product_status = 'voided';
@@ -1,5 +0,0 @@
-- 临时质检:外部质检对象编号(手写,可空)
-- MySQL 5.7
ALTER TABLE `biz_qc_work_order`
ADD COLUMN `external_target_code` varchar(64) DEFAULT NULL COMMENT '外部质检对象编号(手写)' AFTER `cell_product_id`;
@@ -20109,14 +20109,14 @@
"label": "if()",
"file_type": "code",
"source_file": "views/quality-inspection/qc-work-order/index.vue",
"source_location": "L353"
"source_location": "L355"
},
{
"id": "qc_work_order_index_for",
"label": "for()",
"file_type": "code",
"source_file": "views/quality-inspection/qc-work-order/index.vue",
"source_location": "L566"
"source_location": "L568"
},
{
"id": "views_quality_inspection_qc_work_order_qcworkordertaskresultpanel_vue",
@@ -61390,7 +61390,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/quality-inspection/qc-work-order/index.vue",
"source_location": "L353",
"source_location": "L355",
"weight": 1.0
},
{
@@ -61399,7 +61399,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/quality-inspection/qc-work-order/index.vue",
"source_location": "L566",
"source_location": "L568",
"weight": 1.0
},
{
+1 -1
View File
@@ -1,7 +1,7 @@
# Graph Report - src (2026-08-20)
## Corpus Check
- Large corpus: 989 files · ~649,506 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
- Large corpus: 989 files · ~649,543 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
## Summary
- 3536 nodes · 5036 edges · 70 communities detected
+5 -5
View File
@@ -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": 1787191156.0489578,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1787191105.2374692,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1787208239.1977408,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1787208217.4751275,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/store/index.ts": 1781272556.364766,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/router/index.ts": 1782394569.8806834,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/composables/useAttachmentActions.ts": 1783921717.4015942,
@@ -527,7 +527,7 @@
"/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": 1782893853.82419,
"/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": 1787019566.8583055,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/useTaskStepEditor.ts": 1787212916.097241,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/StepDetailPanel.vue": 1787020117.4362667,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/CompleteProductionTaskDialog.vue": 1782893853.1254928,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/TaskInputEnhancedTable.vue": 1782893853.0951817,
@@ -588,7 +588,7 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/index.vue": 1782893851.5846715,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/OutputTypeTab.vue": 1783326448.9644928,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/index/index.vue": 1782893851.535544,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue": 1787193664.0060346,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue": 1787212916.0972576,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/QcWorkOrderTaskResultPanel.vue": 1785145511.8775067,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/QcWorkOrderProtocolGroup.vue": 1786971279.6317575,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/QcWorkOrderSingleCard.vue": 1786971268.6215816,
@@ -683,7 +683,7 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/index.vue": 1785303426.866327,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseViewDialog.vue": 1782893853.1006944,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseReviewDialog.vue": 1782893853.242398,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseMaterialDialog.vue": 1785291644.1620467,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseMaterialDialog.vue": 1787212916.0797153,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseReviewCardList.vue": 1785312226.1840794,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/index.vue": 1782893852.991473,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue": 1782893852.9339294,
@@ -666,7 +666,10 @@
pageSize: 100,
keyword: cellSearchKeyword.value?.trim() || undefined
})
cellProductOptions.value = res.list || []
// 产出作废后仍 del_flag=0,同编码常残留 voided+frozen 两条;选择器不展示作废项
cellProductOptions.value = (res.list || []).filter(
(p) => (p.productStatus || '') !== 'voided'
)
} finally {
cellProductLoading.value = false
}
@@ -551,7 +551,9 @@ export function useTaskStepEditor() {
const next = { ...cellProductMasterById.value }
for (const p of list) if (p?.id) next[p.id] = p
cellProductMasterById.value = next
// 产出作废后仍 del_flag=0,同编码常残留 voided+frozen 两条;下拉不展示作废项
cellProductOptions.value = list
.filter((p) => (p.productStatus || '') !== 'voided')
.filter((p) => (p.productName || '').trim() || (p.productCode || '').trim())
.map((p) => ({
id: p.id,
@@ -326,7 +326,9 @@
pageSize: 100,
keyword: query?.trim() || undefined
})
// 产出作废后仍 del_flag=0,同编码常残留 voided+frozen 两条;下拉不展示作废项
cellProductOptions.value = (res.list || [])
.filter((p) => (p.productStatus || '') !== 'voided')
.filter((p) => (p.productName || '').trim() || (p.productCode || '').trim())
.map((p) => ({
id: p.id,