提交
This commit is contained in:
1 parent
4daf990fab
commit
1ca2668112
219 files changed
+29817
-20945
No files matched your search
+12
-241
@@ -1,237 +1,4 @@
|
||||
-- 生产过程派发质检:支持仅关联步骤产出物(无细胞产品时也可派发)
|
||||
ALTER TABLE `biz_qc_work_order`
|
||||
ADD COLUMN `production_step_output_id` varchar(64) DEFAULT NULL
|
||||
COMMENT '关联生产任务步骤产出物ID(生产过程触发时)'
|
||||
AFTER `production_task_id`;
|
||||
|
||||
CREATE INDEX `idx_qc_wo_prod_step_output` ON `biz_qc_work_order` (`production_step_output_id`, `del_flag`);
|
||||
|
||||
|
||||
-- 生产任务 · 工艺步骤级派发
|
||||
-- 步骤计划开始时间、完成人 + 步骤负责人关联表
|
||||
|
||||
ALTER TABLE `biz_production_task_step`
|
||||
ADD COLUMN `planned_start_time` datetime DEFAULT NULL COMMENT '计划开始时间' AFTER `step_status`;
|
||||
|
||||
ALTER TABLE `biz_production_task_step`
|
||||
ADD COLUMN `completed_by` varchar(64) DEFAULT NULL COMMENT '完成步骤的用户ID' AFTER `completed_time`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `biz_production_task_step_assignee` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键',
|
||||
`step_id` varchar(64) NOT NULL COMMENT '生产任务步骤ID',
|
||||
`user_id` varchar(64) NOT NULL COMMENT '负责人用户ID',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
`order_num` int 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 COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL COMMENT '更新时间',
|
||||
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_step_assignee_step` (`step_id`),
|
||||
KEY `idx_step_assignee_user` (`user_id`, `tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务步骤负责人';
|
||||
|
||||
|
||||
|
||||
-- 可选:将仍有 task.current_assignee_user_id 且无步骤负责人的旧任务回填到全部步骤
|
||||
--
|
||||
-- 注意:MySQL 5.7 在 INSERT...SELECT 中 UUID() 可能整批只计算一次,导致主键重复。
|
||||
-- 此处用 SHA2(step_id) 生成确定性主键,每步唯一,且可重复执行(已存在则跳过)。
|
||||
|
||||
INSERT INTO `biz_production_task_step_assignee` (
|
||||
`id`, `step_id`, `user_id`, `tenant_no`, `order_num`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
LOWER(SHA2(CONCAT('step-assignee-backfill:', s.id), 256)),
|
||||
s.id,
|
||||
t.current_assignee_user_id,
|
||||
s.tenant_no,
|
||||
0,
|
||||
t.create_by,
|
||||
IFNULL(t.create_dept_id, ''),
|
||||
NOW(),
|
||||
t.update_by,
|
||||
NOW(),
|
||||
0
|
||||
FROM `biz_production_task` t
|
||||
JOIN `biz_production_task_step` s ON s.task_id = t.id AND s.del_flag = 0
|
||||
WHERE t.del_flag = 0
|
||||
AND t.current_assignee_user_id IS NOT NULL
|
||||
AND TRIM(t.current_assignee_user_id) <> ''
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `biz_production_task_step_assignee` a
|
||||
WHERE a.step_id = s.id AND a.del_flag = 0
|
||||
);
|
||||
|
||||
|
||||
-- 环境检测登记:新增结果时间
|
||||
ALTER TABLE `biz_env_detect_record`
|
||||
ADD COLUMN `result_time` datetime DEFAULT NULL COMMENT '结果时间' AFTER `detect_time`;
|
||||
|
||||
|
||||
-- 检测项目参数模板:单选类型支持选项列表与默认值
|
||||
ALTER TABLE `biz_qc_item_param`
|
||||
ADD COLUMN `options` varchar(2000) DEFAULT NULL COMMENT '单选选项列表,JSON数组格式' AFTER `param_type`,
|
||||
ADD COLUMN `default_value` varchar(500) DEFAULT NULL COMMENT '单选默认值' AFTER `options`;
|
||||
|
||||
|
||||
|
||||
|
||||
-- 质检检测批次:新表 + 明细 batch_id + 历史数据迁移
|
||||
|
||||
-- 1. 检测批次主表
|
||||
CREATE TABLE IF NOT EXISTS `biz_qc_work_order_inspection_batch` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`work_order_id` varchar(64) NOT NULL COMMENT '工单ID',
|
||||
`order_source` varchar(20) NOT NULL DEFAULT 'inbound' COMMENT '工单来源',
|
||||
`batch_no` varchar(32) NOT NULL COMMENT '批次编号',
|
||||
`batch_name` varchar(200) NOT NULL COMMENT '批次展示名',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL 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 COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL COMMENT '更新时间',
|
||||
`del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_qc_wo_batch_wo` (`work_order_id`,`del_flag`),
|
||||
KEY `idx_qc_wo_batch_no` (`tenant_no`,`batch_no`,`del_flag`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='质检工单检测批次';
|
||||
|
||||
-- 2. 批次负责人
|
||||
CREATE TABLE IF NOT EXISTS `biz_qc_batch_assignee` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键',
|
||||
`batch_id` varchar(64) NOT NULL COMMENT '检测批次ID',
|
||||
`user_id` varchar(64) NOT NULL COMMENT '负责人用户ID',
|
||||
`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) DEFAULT NULL COMMENT '创建人部门ID',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_qc_batch_assignee_batch` (`batch_id`,`del_flag`),
|
||||
KEY `idx_qc_batch_assignee_user` (`user_id`,`tenant_no`,`del_flag`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='质检检测批次负责人';
|
||||
|
||||
-- 3. 明细表增加 batch_id
|
||||
ALTER TABLE `biz_qc_work_order_lab_item`
|
||||
ADD COLUMN `batch_id` varchar(64) DEFAULT NULL COMMENT '检测批次ID' AFTER `order_source`;
|
||||
|
||||
ALTER TABLE `biz_qc_work_order_third_item`
|
||||
ADD COLUMN `batch_id` varchar(64) DEFAULT NULL COMMENT '检测批次ID' AFTER `order_source`;
|
||||
|
||||
ALTER TABLE `biz_qc_task`
|
||||
ADD COLUMN `batch_id` varchar(64) DEFAULT NULL COMMENT '检测批次ID' AFTER `work_order_id`;
|
||||
|
||||
-- 4. 历史数据迁移:每工单默认批次 B01(需在应用层或下列 SQL 按环境执行)
|
||||
-- 见 migrate_qc_inspection_batch_data.sql
|
||||
|
||||
|
||||
|
||||
|
||||
-- 历史质检工单:为每工单创建默认检测批次 B01,并回填 batch_id
|
||||
|
||||
-- 注意:按租户/环境执行前请备份;若已存在批次可跳过对应工单
|
||||
|
||||
INSERT INTO `biz_qc_work_order_inspection_batch` (
|
||||
`id`, `work_order_id`, `order_source`, `batch_no`, `batch_name`,
|
||||
`tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`,
|
||||
`create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
UUID() AS id,
|
||||
wo.id AS work_order_id,
|
||||
CASE wo.work_order_type
|
||||
WHEN 'temporary' THEN 'temporary'
|
||||
WHEN 'outbound' THEN 'outbound'
|
||||
ELSE 'inbound'
|
||||
END AS order_source,
|
||||
CONCAT(wo.work_order_no, '-B01') AS batch_no,
|
||||
CONCAT(DATE_FORMAT(COALESCE(wo.create_time, NOW()), '%Y%m%d'), '检测') AS batch_name,
|
||||
wo.tenant_no,
|
||||
1 AS order_num,
|
||||
'历史数据迁移默认批次' AS remark,
|
||||
wo.create_by,
|
||||
COALESCE(wo.create_dept_id, '') AS create_dept_id,
|
||||
NOW() AS create_time,
|
||||
wo.update_by,
|
||||
NOW() AS update_time,
|
||||
0 AS del_flag
|
||||
FROM `biz_qc_work_order` wo
|
||||
WHERE wo.del_flag = 0
|
||||
AND wo.work_order_status IN ('ypz', 'ywc')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `biz_qc_work_order_inspection_batch` b
|
||||
WHERE b.work_order_id = wo.id AND b.del_flag = 0
|
||||
);
|
||||
|
||||
-- 回填实验室明细 batch_id
|
||||
UPDATE `biz_qc_work_order_lab_item` li
|
||||
INNER JOIN `biz_qc_work_order_inspection_batch` b
|
||||
ON b.work_order_id = li.work_order_id AND b.del_flag = 0 AND b.batch_no LIKE '%-B01'
|
||||
SET li.batch_id = b.id
|
||||
WHERE li.del_flag = 0 AND (li.batch_id IS NULL OR li.batch_id = '');
|
||||
|
||||
-- 回填第三方明细 batch_id
|
||||
UPDATE `biz_qc_work_order_third_item` ti
|
||||
INNER JOIN `biz_qc_work_order_inspection_batch` b
|
||||
ON b.work_order_id = ti.work_order_id AND b.del_flag = 0 AND b.batch_no LIKE '%-B01'
|
||||
SET ti.batch_id = b.id
|
||||
WHERE ti.del_flag = 0 AND (ti.batch_id IS NULL OR ti.batch_id = '');
|
||||
|
||||
-- 回填任务 batch_id
|
||||
UPDATE `biz_qc_task` t
|
||||
INNER JOIN `biz_qc_work_order_inspection_batch` b
|
||||
ON b.work_order_id = t.work_order_id AND b.del_flag = 0 AND b.batch_no LIKE '%-B01'
|
||||
SET t.batch_id = b.id
|
||||
WHERE t.del_flag = 0 AND (t.batch_id IS NULL OR t.batch_id = '');
|
||||
|
||||
-- 从任务负责人迁移批次负责人(去重)
|
||||
INSERT INTO `biz_qc_batch_assignee` (
|
||||
`id`, `batch_id`, `user_id`, `tenant_no`, `order_num`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
UUID(),
|
||||
b.id,
|
||||
ta.user_id,
|
||||
b.tenant_no,
|
||||
0,
|
||||
b.create_by,
|
||||
b.create_dept_id,
|
||||
NOW(),
|
||||
b.update_by,
|
||||
NOW(),
|
||||
0
|
||||
FROM `biz_qc_work_order_inspection_batch` b
|
||||
INNER JOIN `biz_qc_task` t ON t.batch_id = b.id AND t.del_flag = 0
|
||||
INNER JOIN `biz_qc_task_assignee` ta ON ta.task_id = t.id AND ta.del_flag = 0
|
||||
WHERE b.del_flag = 0
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `biz_qc_batch_assignee` ba
|
||||
WHERE ba.batch_id = b.id AND ba.user_id = ta.user_id AND ba.del_flag = 0
|
||||
)
|
||||
GROUP BY b.id, ta.user_id, b.tenant_no, b.create_by, b.create_dept_id, b.update_by;
|
||||
|
||||
|
||||
|
||||
|
||||
-- 生产物料入库批次:增加生产日期
|
||||
ALTER TABLE `biz_production_material_stock_batch`
|
||||
ADD COLUMN `production_date` date DEFAULT NULL COMMENT '生产日期' AFTER `expire_date`;
|
||||
|
||||
|
||||
-- 质检管理 · 质检物料库:新增「查看单价金额」按钮权限(F 类型,仅角色权限树勾选)
|
||||
-- 质检管理 · 质检项目管理(第三方检测):新增「查看检测费用」按钮权限(F 类型,仅角色权限树勾选)
|
||||
INSERT INTO `sys_menu` (
|
||||
`id`,
|
||||
`menu_name`,
|
||||
@@ -254,19 +21,19 @@ INSERT INTO `sys_menu` (
|
||||
`del_flag`
|
||||
)
|
||||
SELECT
|
||||
'70000000000000000000000000000090',
|
||||
'查看单价金额',
|
||||
'70000000000000000000000000000009',
|
||||
'70000000000000000000000000000091',
|
||||
'查看检测费用',
|
||||
'70000000000000000000000000000006',
|
||||
'F',
|
||||
'',
|
||||
'',
|
||||
'biz:qcMaterial:viewAmount',
|
||||
'biz:qcThirdPartyCompany:viewAmount',
|
||||
1,
|
||||
'0',
|
||||
'1',
|
||||
'zkxw',
|
||||
1,
|
||||
'控制质检物料库各 Tab 列表、查看弹窗与导出中的单价、金额字段展示',
|
||||
'控制质检工单详情等场景中第三方检测项目费用(元)字段展示',
|
||||
NULL,
|
||||
'',
|
||||
NOW(),
|
||||
@@ -275,8 +42,12 @@ SELECT
|
||||
0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_menu` WHERE `id` = '70000000000000000000000000000090'
|
||||
SELECT 1 FROM `sys_menu` WHERE `id` = '70000000000000000000000000000091'
|
||||
);
|
||||
|
||||
|
||||
commit;
|
||||
- 生产部门配置权限
|
||||
|
||||
- 周末服务器也要开放外网访问权限
|
||||
|
||||
|
||||
Reference in new issue
Block a user