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

@@ -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`;