增强审批流管理能力,新增审批环节的 stageKey 区分关键环节与过路审批节点,完善钉钉回调日志记录,停用部分 HTTP 回调接口,改由集成方案驱动审批流,优化审批注册中心的查询逻辑。

This commit is contained in:
geht
2026-06-05 19:05:48 +08:00
parent fc4e3211ad
commit 1d0b4c9fbb
95 changed files with 8385 additions and 457 deletions

View File

@@ -0,0 +1,115 @@
-- 审核集成 Phase0新建4张集成表 + 扩展审批台账
-- author: GHT date: 2026-06-05
SET NAMES utf8mb4;
-- 单据注册中心
CREATE TABLE IF NOT EXISTS `mes_xsl_biz_doc_registry` (
`id` varchar(32) NOT NULL COMMENT '主键',
`doc_code` varchar(64) NOT NULL COMMENT '业务编码 formula_spec',
`table_name` varchar(128) NOT NULL COMMENT '物理表名',
`display_name` varchar(128) DEFAULT NULL COMMENT '中文名',
`enabled` tinyint DEFAULT 1 COMMENT '启用 0否 1是',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`del_flag` int DEFAULT 0 COMMENT '逻辑删除',
`tenant_id` int DEFAULT NULL COMMENT '租户ID',
`sys_org_code` varchar(64) DEFAULT NULL,
`create_by` varchar(50) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_by` varchar(50) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_biz_doc_code_tenant` (`doc_code`, `tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='MES单据注册中心';
-- 预置常用单据
INSERT IGNORE INTO `mes_xsl_biz_doc_registry`
(`id`, `doc_code`, `table_name`, `display_name`, `enabled`, `del_flag`, `tenant_id`, `create_by`, `create_time`)
VALUES
(REPLACE(UUID(),'-',''), 'formula_spec', 'mes_xsl_formula_spec', '配合示方', 1, 0, 0, 'admin', NOW()),
(REPLACE(UUID(),'-',''), 'mixing_spec', 'mes_xsl_mixing_spec', '密炼示方', 1, 0, 0, 'admin', NOW()),
(REPLACE(UUID(),'-',''), 'mixer_ps_compile', 'mes_xsl_mixer_ps_compile', '密炼PS编制', 1, 0, 0, 'admin', NOW()),
(REPLACE(UUID(),'-',''), 'rubber_quick_test_std', 'mes_xsl_rubber_quick_test_std', '快检实验标准', 1, 0, 0, 'admin', NOW()),
(REPLACE(UUID(),'-',''), 'raw_material_entry', 'mes_xsl_raw_material_entry', '原料入场记录', 1, 0, 0, 'admin', NOW());
-- 集成方案
CREATE TABLE IF NOT EXISTS `mes_xsl_integration_plan` (
`id` varchar(32) NOT NULL COMMENT '主键',
`plan_code` varchar(64) NOT NULL COMMENT '方案编码唯一',
`plan_name` varchar(128) NOT NULL COMMENT '方案名称',
`source_table` varchar(128) NOT NULL COMMENT '源单表名',
`trigger_phase` varchar(20) NOT NULL COMMENT '触发时机 onApprove/onReject/onNodeApprove',
`exec_mode` varchar(10) DEFAULT 'async' COMMENT '执行模式 sync同步/async异步提交后',
`match_condition` varchar(500) DEFAULT NULL COMMENT '匹配条件=无条件',
`status` varchar(1) DEFAULT '0' COMMENT '0草稿 1已发布 2已停用',
`remark` varchar(500) DEFAULT NULL,
`del_flag` int DEFAULT 0,
`tenant_id` int DEFAULT NULL,
`sys_org_code` varchar(64) DEFAULT NULL,
`create_by` varchar(50) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_by` varchar(50) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_int_plan_table_phase` (`source_table`, `trigger_phase`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审核集成方案';
-- 集成动作
CREATE TABLE IF NOT EXISTS `mes_xsl_integration_action` (
`id` varchar(32) NOT NULL COMMENT '主键',
`plan_id` varchar(32) NOT NULL COMMENT '所属方案ID',
`action_name` varchar(128) NOT NULL COMMENT '动作名称',
`action_type` varchar(30) NOT NULL DEFAULT 'SQL_UPDATE' COMMENT '动作类型 Phase0仅SQL_UPDATE',
`sql_template` text DEFAULT NULL COMMENT 'SQL_UPDATE模板支持#{source.xxx}变量',
`exec_order` int DEFAULT 0 COMMENT '执行顺序升序',
`on_fail` varchar(10) DEFAULT 'stop' COMMENT '失败策略 stop终止/continue继续',
`idempotent_key` varchar(200) DEFAULT NULL COMMENT '幂等键表达式=record_id+action_id',
`enabled` tinyint DEFAULT 1 COMMENT '启用',
`remark` varchar(500) DEFAULT NULL,
`del_flag` int DEFAULT 0,
`create_by` varchar(50) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_by` varchar(50) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_int_action_plan` (`plan_id`, `exec_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审核集成动作';
-- 集成执行日志
CREATE TABLE IF NOT EXISTS `mes_xsl_integration_log` (
`id` varchar(32) NOT NULL COMMENT '主键',
`record_id` varchar(32) DEFAULT NULL COMMENT '审批台账ID',
`plan_id` varchar(32) DEFAULT NULL COMMENT '方案ID',
`action_id` varchar(32) DEFAULT NULL COMMENT '动作ID',
`idempotent_key` varchar(200) DEFAULT NULL COMMENT '幂等键',
`status` varchar(10) DEFAULT NULL COMMENT 'success/failed/skipped',
`source_biz_id` varchar(64) DEFAULT NULL COMMENT '源单ID',
`source_biz_table` varchar(128) DEFAULT NULL COMMENT '源单表名',
`error_message` text DEFAULT NULL COMMENT '错误信息',
`retry_count` int DEFAULT 0 COMMENT '重试次数',
`exec_time_ms` bigint DEFAULT NULL COMMENT '耗时ms',
`request_snapshot` text DEFAULT NULL COMMENT '执行前变量快照',
`response_snapshot` text DEFAULT NULL COMMENT '执行结果快照',
`create_by` varchar(50) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_intlog_record` (`record_id`),
KEY `idx_intlog_idempotent` (`idempotent_key`(191)),
KEY `idx_intlog_plan_action` (`plan_id`, `action_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审核集成执行日志';
-- 扩展 mes_xsl_approval_record幂等列已存在则跳过避免重复执行报 1060
SET @db = DATABASE();
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_approval_record' AND COLUMN_NAME = 'integration_status') = 0,
'ALTER TABLE `mes_xsl_approval_record` ADD COLUMN `integration_status` varchar(2) DEFAULT ''0'' COMMENT ''编排状态 0未执行 1成功 2部分失败 3失败'' AFTER `finish_time`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_approval_record' AND COLUMN_NAME = 'integration_remark') = 0,
'ALTER TABLE `mes_xsl_approval_record` ADD COLUMN `integration_remark` varchar(500) DEFAULT NULL COMMENT ''编排摘要/错误信息'' AFTER `integration_status`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

View File

@@ -0,0 +1,74 @@
-- 审核集成 Phase0字典数据
-- author: GHT date: 2026-06-05
SET NAMES utf8mb4;
-- 集成动作类型
INSERT IGNORE INTO `sys_dict` (`id`,`dict_name`,`dict_code`,`description`,`del_flag`,`create_by`,`create_time`,`type`,`tenant_id`)
VALUES ('1995000000000000360','集成动作类型','mes_xsl_integration_action_type','审核集成动作类型',0,'admin',NOW(),0,0);
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000361','1995000000000000360','SQL更新','SQL_UPDATE','执行UPDATE/INSERT SQL',1,1,'admin',NOW()),
('1995000000000000362','1995000000000000360','更新单据','UPDATE_DOC','结构化更新目标单据Phase1',2,1,'admin',NOW()),
('1995000000000000363','1995000000000000360','生成单据','CREATE_DOC','生成目标主+子表Phase1',3,1,'admin',NOW()),
('1995000000000000364','1995000000000000360','调用接口','CALL_API','HTTP调用业务接口Phase2',4,1,'admin',NOW()),
('1995000000000000365','1995000000000000360','调用Handler','CALL_HANDLER','Spring Bean处理Phase2',5,1,'admin',NOW());
-- 集成触发时机
INSERT IGNORE INTO `sys_dict` (`id`,`dict_name`,`dict_code`,`description`,`del_flag`,`create_by`,`create_time`,`type`,`tenant_id`)
VALUES ('1995000000000000366','集成触发时机','mes_xsl_integration_trigger_phase','审核集成方案触发时机',0,'admin',NOW(),0,0);
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000367','1995000000000000366','审批通过','onApprove','整个流程最终通过时触发',1,1,'admin',NOW()),
('1995000000000000368','1995000000000000366','审批驳回','onReject','任一节点驳回时触发',2,1,'admin',NOW()),
('1995000000000000369','1995000000000000366','节点通过','onNodeApprove','单个节点通过中间态时触发',3,1,'admin',NOW());
-- 集成方案状态
INSERT IGNORE INTO `sys_dict` (`id`,`dict_name`,`dict_code`,`description`,`del_flag`,`create_by`,`create_time`,`type`,`tenant_id`)
VALUES ('1995000000000000370','集成方案状态','mes_xsl_integration_plan_status','审核集成方案状态',0,'admin',NOW(),0,0);
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000371','1995000000000000370','草稿','0','未发布不生效',1,1,'admin',NOW()),
('1995000000000000372','1995000000000000370','已发布','1','生效中',2,1,'admin',NOW()),
('1995000000000000373','1995000000000000370','已停用','2','已停用',3,1,'admin',NOW());
-- 集成执行日志状态
INSERT IGNORE INTO `sys_dict` (`id`,`dict_name`,`dict_code`,`description`,`del_flag`,`create_by`,`create_time`,`type`,`tenant_id`)
VALUES ('1995000000000000374','集成执行状态','mes_xsl_integration_log_status','审核集成执行日志状态',0,'admin',NOW(),0,0);
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000375','1995000000000000374','成功','success','执行成功',1,1,'admin',NOW()),
('1995000000000000376','1995000000000000374','失败','failed','执行失败',2,1,'admin',NOW()),
('1995000000000000377','1995000000000000374','已跳过','skipped','幂等命中跳过',3,1,'admin',NOW());
-- 集成执行模式
INSERT IGNORE INTO `sys_dict` (`id`,`dict_name`,`dict_code`,`description`,`del_flag`,`create_by`,`create_time`,`type`,`tenant_id`)
VALUES ('1995000000000000378','集成执行模式','mes_xsl_integration_exec_mode','审批后编排执行模式',0,'admin',NOW(),0,0);
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000379','1995000000000000378','异步推荐','async','事务提交后异步执行审批不因编排失败回滚',1,1,'admin',NOW()),
('1995000000000000380','1995000000000000378','同步','sync','与审批同事务编排失败回滚审批',2,1,'admin',NOW());
-- 编排执行状态台账扩展字段
INSERT IGNORE INTO `sys_dict` (`id`,`dict_name`,`dict_code`,`description`,`del_flag`,`create_by`,`create_time`,`type`,`tenant_id`)
VALUES ('1995000000000000381','编排执行状态','mes_xsl_integration_orch_status','审批台账的编排执行状态',0,'admin',NOW(),0,0);
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000382','1995000000000000381','未执行','0','未触发编排',1,1,'admin',NOW()),
('1995000000000000383','1995000000000000381','全部成功','1','所有动作均成功',2,1,'admin',NOW()),
('1995000000000000384','1995000000000000381','部分失败','2','存在on_fail=continue的失败动作',3,1,'admin',NOW()),
('1995000000000000385','1995000000000000381','失败','3','遇到on_fail=stop的失败动作中止',4,1,'admin',NOW());
-- 失败策略
INSERT IGNORE INTO `sys_dict` (`id`,`dict_name`,`dict_code`,`description`,`del_flag`,`create_by`,`create_time`,`type`,`tenant_id`)
VALUES ('1995000000000000386','动作失败策略','mes_xsl_integration_on_fail','集成动作失败后的处理策略',0,'admin',NOW(),0,0);
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000387','1995000000000000386','停止','stop','失败后停止后续动作',1,1,'admin',NOW()),
('1995000000000000388','1995000000000000386','继续','continue','失败后继续执行后续动作',2,1,'admin',NOW());

View File

@@ -0,0 +1,50 @@
-- 审核集成 Phase0菜单 + 权限挂在 MESToDing审批配置 父菜单 178046026420801
-- author: GHT date: 2026-06-05
SET NAMES utf8mb4;
-- 单据注册中心
INSERT INTO sys_permission(id,parent_id,name,url,component,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_route,is_leaf,keep_alive,hidden,hide_tab,description,status,del_flag,rule_flag,create_by,create_time,update_by,update_time,internal_or_external)
VALUES('178046026420838','178046026420801','单据注册中心','/xslmes/mesXslBizDocRegistryList','xslmes/approval/integration/MesXslBizDocRegistryList',NULL,NULL,0,NULL,'1',4.00,0,'ant-design:database-outlined',1,0,0,0,0,NULL,'1',0,0,'admin','2026-06-05 00:00:00',NULL,NULL,0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420839','178046026420838','查询单据注册',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_biz_doc_registry:list','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420840','178046026420838','新增单据注册',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_biz_doc_registry:add','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420841','178046026420838','编辑单据注册',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_biz_doc_registry:edit','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420842','178046026420838','删除单据注册',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_biz_doc_registry:delete','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
-- 集成方案管理含内嵌动作管理
INSERT INTO sys_permission(id,parent_id,name,url,component,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_route,is_leaf,keep_alive,hidden,hide_tab,description,status,del_flag,rule_flag,create_by,create_time,update_by,update_time,internal_or_external)
VALUES('178046026420830','178046026420801','集成方案管理','/xslmes/mesXslIntegrationPlanList','xslmes/approval/integration/MesXslIntegrationPlanList',NULL,NULL,0,NULL,'1',5.00,0,'ant-design:node-index-outlined',1,0,0,0,0,NULL,'1',0,0,'admin','2026-06-05 00:00:00',NULL,NULL,0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420831','178046026420830','查询集成方案',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_integration_plan:list','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420832','178046026420830','新增集成方案',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_integration_plan:add','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420833','178046026420830','编辑集成方案',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_integration_plan:edit','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420834','178046026420830','删除集成方案',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_integration_plan:delete','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420843','178046026420830','发布集成方案',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_integration_plan:publish','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
-- 集成执行日志
INSERT INTO sys_permission(id,parent_id,name,url,component,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_route,is_leaf,keep_alive,hidden,hide_tab,description,status,del_flag,rule_flag,create_by,create_time,update_by,update_time,internal_or_external)
VALUES('178046026420835','178046026420801','集成执行日志','/xslmes/mesXslIntegrationLogList','xslmes/approval/integration/MesXslIntegrationLogList',NULL,NULL,0,NULL,'1',6.00,0,'ant-design:file-search-outlined',1,0,0,0,0,NULL,'1',0,0,'admin','2026-06-05 00:00:00',NULL,NULL,0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420836','178046026420835','查询集成日志',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_integration_log:list','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
INSERT INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420837','178046026420835','重试集成动作',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_integration_log:retry','1',NULL,0,NULL,1,0,0,0,NULL,'admin','2026-06-05 00:00:00',NULL,NULL,0,0,'1',0);
-- 授权给超管角色f6817f48af4fb3af11b9e8bf182f618b
INSERT INTO sys_role_permission (id,role_id,permission_id,data_rule_ids,operate_date,operate_ip)
SELECT REPLACE(UUID(),'-',''),'f6817f48af4fb3af11b9e8bf182f618b',id,NULL,'2026-06-05 00:00:00','127.0.0.1'
FROM sys_permission
WHERE id IN (
'178046026420830','178046026420831','178046026420832','178046026420833','178046026420834','178046026420843',
'178046026420835','178046026420836','178046026420837',
'178046026420838','178046026420839','178046026420840','178046026420841','178046026420842'
);

View File

@@ -0,0 +1,106 @@
-- 审核集成 Phase0密炼PS编制 集成方案演示数据
-- 功能说明
-- 将密炼PS现有三节点审批校对审核批准的状态流转逻辑
-- 转化为可视化的集成方案配置验证 SQL_UPDATE 动作执行器的实际效果
-- 注意
-- 方案初始状态为"草稿(0)"不会自动触发
-- 需要在集成方案管理页面手动"发布"后才生效
-- 现有 @ApprovalBizAction HTTP 回调仍然生效两套并行SQL AND status=? 条件防重
-- author: GHT date: 2026-06-05
SET NAMES utf8mb4;
-- =============================================================
-- 方案一审批全部通过 推进主表 + 配合示方到最终批准态
-- 触发时机onApprove最终通过整个流程时
-- =============================================================
INSERT IGNORE INTO `mes_xsl_integration_plan`
(`id`,`plan_code`,`plan_name`,`source_table`,`trigger_phase`,`exec_mode`,`match_condition`,`status`,`remark`,`del_flag`,`tenant_id`,`create_by`,`create_time`)
VALUES
('mxpsonapproveplan000001','mixer_ps_on_approve','密炼PS-审批通过批准态同步','mes_xsl_mixer_ps_compile','onApprove','async',NULL,'0',
'最终审批通过后主表 statusapprove配合示方 statusrecognition_pass',
0,0,'admin',NOW());
INSERT IGNORE INTO `mes_xsl_integration_action`
(`id`,`plan_id`,`action_name`,`action_type`,`sql_template`,`exec_order`,`on_fail`,`enabled`,`remark`,`del_flag`,`create_by`,`create_time`)
VALUES
('mxpsonapprove_act001','mxpsonapproveplan000001',
'主表批准态','SQL_UPDATE',
'UPDATE mes_xsl_mixer_ps_compile SET status=''approve'', approve_time=NOW() WHERE id=#{source.id} AND status=''audit''',
1,'stop',1,'只在 audit 态才更新防止重复触发',0,'admin',NOW()),
('mxpsonapprove_act002','mxpsonapproveplan000001',
'配合示方认定通过','SQL_UPDATE',
'UPDATE mes_xsl_formula_spec SET status=''recognition_pass'', approve_time=NOW() WHERE issue_number=#{source.issue_number} AND issue_number IS NOT NULL',
2,'continue',1,'通过 issue_number 级联同步issue_number 为空时影响0行自动跳过',0,'admin',NOW()),
('mxpsonapprove_act003','mxpsonapproveplan000001',
'混炼示方同步批准时间','SQL_UPDATE',
'UPDATE mes_xsl_mixing_spec SET approve_time=NOW() WHERE issue_number=#{source.issue_number} AND issue_number IS NOT NULL',
3,'continue',1,'仅同步时间戳不改变混炼示方 status',0,'admin',NOW());
-- =============================================================
-- 方案二审批驳回 全量回退到编制态清空所有痕迹
-- 触发时机onReject任一节点被驳回时
-- =============================================================
INSERT IGNORE INTO `mes_xsl_integration_plan`
(`id`,`plan_code`,`plan_name`,`source_table`,`trigger_phase`,`exec_mode`,`match_condition`,`status`,`remark`,`del_flag`,`tenant_id`,`create_by`,`create_time`)
VALUES
('mxpsonrejectplan000002','mixer_ps_on_reject','密炼PS-审批驳回恢复编制态','mes_xsl_mixer_ps_compile','onReject','async',NULL,'0',
'驳回后主表+配合示方回到 compile清空校对/审核/批准全部痕迹字段',
0,0,'admin',NOW());
INSERT IGNORE INTO `mes_xsl_integration_action`
(`id`,`plan_id`,`action_name`,`action_type`,`sql_template`,`exec_order`,`on_fail`,`enabled`,`remark`,`del_flag`,`create_by`,`create_time`)
VALUES
('mxpsonreject_act001','mxpsonrejectplan000002',
'主表回退编制态','SQL_UPDATE',
'UPDATE mes_xsl_mixer_ps_compile SET status=''compile'', proofread_by=NULL, proofread_time=NULL, audit_by=NULL, audit_time=NULL, approve_by=NULL, approve_time=NULL WHERE id=#{source.id}',
1,'stop',1,'无条件回退清空所有审批痕迹',0,'admin',NOW()),
('mxpsonreject_act002','mxpsonrejectplan000002',
'配合示方回退编制态','SQL_UPDATE',
'UPDATE mes_xsl_formula_spec SET status=''compile'', proofread_by=NULL, proofread_time=NULL, audit_by=NULL, audit_time=NULL, approve_by=NULL, approve_time=NULL WHERE issue_number=#{source.issue_number} AND issue_number IS NOT NULL',
2,'continue',1,'级联回退配合示方状态',0,'admin',NOW()),
('mxpsonreject_act003','mxpsonrejectplan000002',
'混炼示方清空痕迹','SQL_UPDATE',
'UPDATE mes_xsl_mixing_spec SET proofread_by=NULL, proofread_time=NULL, audit_by=NULL, audit_time=NULL, approve_by=NULL, approve_time=NULL WHERE issue_number=#{source.issue_number} AND issue_number IS NOT NULL',
3,'continue',1,'混炼示方只清痕迹不改 status',0,'admin',NOW());
-- =============================================================
-- 方案三节点逐级通过 利用条件 WHERE 区分校对/审核两个节点
-- 触发时机onNodeApprove每通过一个中间节点时触发一次
-- 关键设计每个 UPDATE AND status='当前期望状态' 条件
-- status 不匹配时影响 0 自动跳过实现节点自动识别
-- =============================================================
INSERT IGNORE INTO `mes_xsl_integration_plan`
(`id`,`plan_code`,`plan_name`,`source_table`,`trigger_phase`,`exec_mode`,`match_condition`,`status`,`remark`,`del_flag`,`tenant_id`,`create_by`,`create_time`)
VALUES
('mxpsnodeapprplan000003','mixer_ps_node_approve','密炼PS-节点通过逐级状态推进','mes_xsl_mixer_ps_compile','onNodeApprove','async',NULL,'0',
'利用条件 WHERE 区分校对/审核两节点每次只有一条 SQL 真正命中影响1行另一条影响0行自动跳过',
0,0,'admin',NOW());
INSERT IGNORE INTO `mes_xsl_integration_action`
(`id`,`plan_id`,`action_name`,`action_type`,`sql_template`,`exec_order`,`on_fail`,`enabled`,`remark`,`del_flag`,`create_by`,`create_time`)
VALUES
-- 第12条校对节点通过当前 status=compile 时命中
('mxpsnodeappr_act001','mxpsnodeapprplan000003',
'校对通过-主表proofread','SQL_UPDATE',
'UPDATE mes_xsl_mixer_ps_compile SET status=''proofread'', proofread_time=NOW() WHERE id=#{source.id} AND status=''compile''',
1,'continue',1,'status=compile 才命中校对节点status=proofread 时影响0行自动跳过',0,'admin',NOW()),
('mxpsnodeappr_act002','mxpsnodeapprplan000003',
'校对通过-配合示方submit','SQL_UPDATE',
'UPDATE mes_xsl_formula_spec SET status=''submit'', proofread_time=NOW() WHERE issue_number=#{source.issue_number} AND status=''compile'' AND issue_number IS NOT NULL',
2,'continue',1,'配合示方校对态同步',0,'admin',NOW()),
-- 第34条审核节点通过当前 status=proofread 时命中
('mxpsnodeappr_act003','mxpsnodeapprplan000003',
'审核通过-主表audit','SQL_UPDATE',
'UPDATE mes_xsl_mixer_ps_compile SET status=''audit'', audit_time=NOW() WHERE id=#{source.id} AND status=''proofread''',
3,'continue',1,'status=proofread 才命中审核节点校对节点时影响0行跳过',0,'admin',NOW()),
('mxpsnodeappr_act004','mxpsnodeapprplan000003',
'审核通过-配合示方review_pass','SQL_UPDATE',
'UPDATE mes_xsl_formula_spec SET status=''review_pass'', audit_time=NOW() WHERE issue_number=#{source.issue_number} AND status=''submit'' AND issue_number IS NOT NULL',
4,'continue',1,'配合示方审核态同步',0,'admin',NOW());

View File

@@ -0,0 +1,5 @@
-- 审核集成 Phase0新增动作可视化配置字段
-- 用于存储可视化编辑器的配置 JSON支持重新打开时还原可视化状态
-- author: GHT date: 2026-06-05
ALTER TABLE `mes_xsl_integration_action`
ADD COLUMN `action_config` TEXT DEFAULT NULL COMMENT '可视化配置JSON可视化编辑器专用用于重新打开时还原配置' AFTER `sql_template`;

View File

@@ -0,0 +1,132 @@
-- 审批注册中心扩展注册配置 + 审批痕迹明细表每单据一行
-- author: GHT date: 2026-06-05 forXSLMES-20260605-K8R2
SET NAMES utf8mb4;
SET @db = DATABASE();
-- 扩展 mes_xsl_biz_doc_registry幂等列已存在则跳过
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_biz_doc_registry' AND COLUMN_NAME = 'enabled_stages') = 0,
'ALTER TABLE `mes_xsl_biz_doc_registry` ADD COLUMN `enabled_stages` varchar(128) DEFAULT NULL COMMENT ''启用环节(多选逗号分隔 proofread,audit,approve)'' AFTER `enabled`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_biz_doc_registry' AND COLUMN_NAME = 'status_field') = 0,
'ALTER TABLE `mes_xsl_biz_doc_registry` ADD COLUMN `status_field` varchar(64) DEFAULT ''status'' COMMENT ''业务状态字段名'' AFTER `enabled_stages`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_biz_doc_registry' AND COLUMN_NAME = 'proofread_by_field') = 0,
'ALTER TABLE `mes_xsl_biz_doc_registry` ADD COLUMN `proofread_by_field` varchar(64) DEFAULT ''proofread_by'' COMMENT ''校对人字段名'' AFTER `status_field`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_biz_doc_registry' AND COLUMN_NAME = 'proofread_time_field') = 0,
'ALTER TABLE `mes_xsl_biz_doc_registry` ADD COLUMN `proofread_time_field` varchar(64) DEFAULT ''proofread_time'' COMMENT ''校对时间字段名'' AFTER `proofread_by_field`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_biz_doc_registry' AND COLUMN_NAME = 'audit_by_field') = 0,
'ALTER TABLE `mes_xsl_biz_doc_registry` ADD COLUMN `audit_by_field` varchar(64) DEFAULT ''audit_by'' COMMENT ''审核人字段名'' AFTER `proofread_time_field`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_biz_doc_registry' AND COLUMN_NAME = 'audit_time_field') = 0,
'ALTER TABLE `mes_xsl_biz_doc_registry` ADD COLUMN `audit_time_field` varchar(64) DEFAULT ''audit_time'' COMMENT ''审核时间字段名'' AFTER `audit_by_field`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_biz_doc_registry' AND COLUMN_NAME = 'approve_by_field') = 0,
'ALTER TABLE `mes_xsl_biz_doc_registry` ADD COLUMN `approve_by_field` varchar(64) DEFAULT ''approve_by'' COMMENT ''批准人字段名'' AFTER `audit_time_field`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_biz_doc_registry' AND COLUMN_NAME = 'approve_time_field') = 0,
'ALTER TABLE `mes_xsl_biz_doc_registry` ADD COLUMN `approve_time_field` varchar(64) DEFAULT ''approve_time'' COMMENT ''批准时间字段名'' AFTER `approve_by_field`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
ALTER TABLE `mes_xsl_biz_doc_registry` COMMENT='MES审批注册中心';
-- 密炼PS编制默认开启三环节
UPDATE `mes_xsl_biz_doc_registry`
SET `enabled_stages` = 'proofread,audit,approve',
`status_field` = 'status',
`proofread_by_field` = 'proofread_by',
`proofread_time_field` = 'proofread_time',
`audit_by_field` = 'audit_by',
`audit_time_field` = 'audit_time',
`approve_by_field` = 'approve_by',
`approve_time_field` = 'approve_time',
`update_by` = 'admin',
`update_time` = NOW()
WHERE `doc_code` = 'mixer_ps_compile' AND `del_flag` = 0;
-- 审批痕迹明细每业务单据一行 biz_table + biz_data_id 唯一
CREATE TABLE IF NOT EXISTS `mes_xsl_approval_trace` (
`id` varchar(32) NOT NULL COMMENT '主键',
`registry_id` varchar(32) DEFAULT NULL COMMENT '审批注册配置ID',
`biz_table` varchar(128) NOT NULL COMMENT '业务表名',
`biz_data_id` varchar(32) NOT NULL COMMENT '业务单据ID',
`proofread_by` varchar(80) DEFAULT NULL COMMENT '校对人',
`proofread_time` datetime DEFAULT NULL COMMENT '校对时间',
`audit_by` varchar(80) DEFAULT NULL COMMENT '审核人',
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
`approve_by` varchar(80) DEFAULT NULL COMMENT '批准人',
`approve_time` datetime DEFAULT NULL COMMENT '批准时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`del_flag` int DEFAULT 0 COMMENT '逻辑删除',
`tenant_id` int DEFAULT NULL COMMENT '租户ID',
`sys_org_code` varchar(64) DEFAULT NULL,
`create_by` varchar(50) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_by` varchar(50) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_approval_trace_biz` (`biz_table`, `biz_data_id`, `tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='MES审批痕迹明细(每单据一行)';
-- 审批环节字典注册中心多选
INSERT IGNORE INTO `sys_dict` (`id`,`dict_name`,`dict_code`,`description`,`del_flag`,`create_by`,`create_time`,`type`,`tenant_id`)
VALUES ('1995000000000000390','审批环节','mes_xsl_approval_stage','审批注册中心可启用环节',0,'admin',NOW(),0,0);
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000391','1995000000000000390','校对','proofread','校对环节',1,1,'admin',NOW()),
('1995000000000000392','1995000000000000390','审核','audit','审核环节',2,1,'admin',NOW()),
('1995000000000000393','1995000000000000390','批准','approve','批准环节',3,1,'admin',NOW());
-- 菜单重命名 + 新增审批痕迹
UPDATE `sys_permission`
SET `name` = '审批注册中心', `update_by` = 'admin', `update_time` = NOW()
WHERE `id` = '178046026420838';
INSERT IGNORE INTO `sys_permission`
(`id`,`parent_id`,`name`,`url`,`component`,`is_route`,`component_name`,`redirect`,`menu_type`,`perms`,`perms_type`,`sort_no`,`always_show`,`icon`,`is_leaf`,`keep_alive`,`hidden`,`hide_tab`,`description`,`status`,`del_flag`,`rule_flag`,`create_by`,`create_time`)
VALUES
('178046026420843','178046026420801','审批痕迹','/xslmes/mesXslApprovalTraceList','xslmes/approval/integration/MesXslApprovalTraceList',1,NULL,0,NULL,1,4.50,0,'ant-design:history-outlined',1,0,0,0,0,NULL,1,0,0,'admin',NOW());
INSERT IGNORE INTO `sys_permission`
(`id`,`parent_id`,`name`,`perms`,`perms_type`,`menu_type`,`sort_no`,`is_leaf`,`create_by`,`create_time`)
VALUES
('178046026420844','178046026420843','查询审批痕迹','xslmes:mes_xsl_approval_trace:list',1,2,1,1,'admin',NOW());
INSERT IGNORE INTO `sys_role_permission` (`id`,`role_id`,`permission_id`,`operate_date`,`operate_ip`)
VALUES (REPLACE(UUID(),'-',''),'f6817f48af4fb3af11b9e8bf182f618b','178046026420843',NOW(),'127.0.0.1');
INSERT IGNORE INTO `sys_role_permission` (`id`,`role_id`,`permission_id`,`operate_date`,`operate_ip`)
VALUES (REPLACE(UUID(),'-',''),'f6817f48af4fb3af11b9e8bf182f618b','178046026420844',NOW(),'127.0.0.1');

View File

@@ -0,0 +1,26 @@
-- 审批注册中心新增查看明细按钮权限并授权给已有注册中心权限的角色
-- author: GHT date: 2026-06-05 forXSLMES-20260605-K8R2
SET NAMES utf8mb4;
-- 审批注册中心下新增按钮权限查看审批明细列格式与 V3.9.2_132 按钮权限一致
INSERT IGNORE INTO sys_permission(id,parent_id,name,url,component,is_route,component_name,redirect,menu_type,perms,perms_type,sort_no,always_show,icon,is_leaf,keep_alive,hidden,hide_tab,description,create_by,create_time,update_by,update_time,del_flag,rule_flag,status,internal_or_external)
VALUES('178046026420845','178046026420838','查看审批明细',NULL,NULL,0,NULL,NULL,2,'xslmes:mes_xsl_biz_doc_registry:trace','1',5,0,NULL,1,0,0,0,'审批注册中心操作列查看审批痕迹明细','admin',NOW(),NULL,NULL,0,0,'1',0);
-- 超管角色授权
INSERT IGNORE INTO `sys_role_permission` (`id`,`role_id`,`permission_id`,`operate_date`,`operate_ip`)
VALUES (REPLACE(UUID(),'-',''),'f6817f48af4fb3af11b9e8bf182f618b','178046026420845',NOW(),'127.0.0.1');
-- 已有审批注册中心任意按钮权限的角色自动补查看明细权限
INSERT IGNORE INTO `sys_role_permission` (`id`,`role_id`,`permission_id`,`operate_date`,`operate_ip`)
SELECT REPLACE(UUID(),'-',''), rp.`role_id`, '178046026420845', NOW(), '127.0.0.1'
FROM `sys_role_permission` rp
WHERE rp.`permission_id` IN (
'178046026420839',
'178046026420840',
'178046026420841',
'178046026420842'
)
AND NOT EXISTS (
SELECT 1 FROM `sys_role_permission` x
WHERE x.`role_id` = rp.`role_id` AND x.`permission_id` = '178046026420845'
);

View File

@@ -0,0 +1,32 @@
-- 集成方案与审批注册中心环节绑定
-- author: GHT date: 2026-06-05 forXSLMES-20260605-K8R2
SET NAMES utf8mb4;
SET @db = DATABASE();
-- 集成方案关联注册中心 + 绑定审批环节
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_integration_plan' AND COLUMN_NAME = 'registry_id') = 0,
'ALTER TABLE `mes_xsl_integration_plan` ADD COLUMN `registry_id` varchar(32) DEFAULT NULL COMMENT ''审批注册中心ID'' AFTER `source_table`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'mes_xsl_integration_plan' AND COLUMN_NAME = 'trigger_stage') = 0,
'ALTER TABLE `mes_xsl_integration_plan` ADD COLUMN `trigger_stage` varchar(32) DEFAULT NULL COMMENT ''绑定审批环节 proofread/audit/approve'' AFTER `trigger_phase`',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- 回填已有方案的注册中心与环节 source_table 关联
UPDATE `mes_xsl_integration_plan` p
INNER JOIN `mes_xsl_biz_doc_registry` r ON r.table_name = p.source_table AND r.del_flag = 0 AND r.enabled = 1
SET p.registry_id = r.id,
p.trigger_stage = CASE p.trigger_phase
WHEN 'onApprove' THEN 'approve'
WHEN 'onNodeApprove' THEN NULL
ELSE NULL
END,
p.update_by = 'admin',
p.update_time = NOW()
WHERE p.del_flag = 0 AND (p.registry_id IS NULL OR p.trigger_stage IS NULL);

View File

@@ -0,0 +1,87 @@
-- 集成方案审批注册中心环节同步动作 + 密炼PS无代码审批方案示例
-- author: GHT date: 2026-06-05 forXSLMES-20260605-K8R2
SET NAMES utf8mb4;
-- 集成动作类型字典扩展
INSERT IGNORE INTO `sys_dict_item` (`id`,`dict_id`,`item_text`,`item_value`,`description`,`sort_order`,`status`,`create_by`,`create_time`)
VALUES
('1995000000000000394','1995000000000000360','审批环节同步','REGISTRY_STAGE_SYNC','按审批注册中心更新源单状态/操作人/痕迹',6,1,'admin',NOW()),
('1995000000000000395','1995000000000000360','审批环节回退','REGISTRY_STAGE_REVERT','驳回时回退源单状态并清空痕迹',7,1,'admin',NOW());
-- 停用旧版 SQL 手写演示方案保留数据改为已停用
UPDATE `mes_xsl_integration_plan`
SET `status` = '2', `update_by` = 'admin', `update_time` = NOW()
WHERE `plan_code` IN ('mixer_ps_on_approve','mixer_ps_on_reject','mixer_ps_node_approve')
AND `del_flag` = 0;
-- 密炼PS 校对环节通过
INSERT IGNORE INTO `mes_xsl_integration_plan`
(`id`,`plan_code`,`plan_name`,`source_table`,`registry_id`,`trigger_phase`,`trigger_stage`,`exec_mode`,`status`,`remark`,`del_flag`,`tenant_id`,`create_by`,`create_time`)
SELECT
'mxpsregproofread00001','mixer_ps_reg_proofread','密炼PS-校对通过(注册中心同步)',
'mes_xsl_mixer_ps_compile', r.id, 'onNodeApprove', 'proofread', 'async', '0',
'无需Java回调更新status=proofread并写校对人/时间+审批痕迹', 0, 0, 'admin', NOW()
FROM `mes_xsl_biz_doc_registry` r
WHERE r.table_name='mes_xsl_mixer_ps_compile' AND r.del_flag=0 AND r.enabled=1
LIMIT 1;
INSERT IGNORE INTO `mes_xsl_integration_action`
(`id`,`plan_id`,`action_name`,`action_type`,`action_config`,`exec_order`,`on_fail`,`enabled`,`del_flag`,`create_by`,`create_time`)
VALUES
('mxpsregproofreadact01','mxpsregproofread00001','校对环节同步','REGISTRY_STAGE_SYNC',
'{"visualType":"REGISTRY_STAGE_SYNC","stage":"proofread","expectedFrom":"compile"}',
1,'stop',1,0,'admin',NOW());
-- 密炼PS 审核环节通过
INSERT IGNORE INTO `mes_xsl_integration_plan`
(`id`,`plan_code`,`plan_name`,`source_table`,`registry_id`,`trigger_phase`,`trigger_stage`,`exec_mode`,`status`,`remark`,`del_flag`,`tenant_id`,`create_by`,`create_time`)
SELECT
'mxpsregaudit00000002','mixer_ps_reg_audit','密炼PS-审核通过(注册中心同步)',
'mes_xsl_mixer_ps_compile', r.id, 'onNodeApprove', 'audit', 'async', '0',
'无需Java回调更新status=audit并写审核人/时间+审批痕迹', 0, 0, 'admin', NOW()
FROM `mes_xsl_biz_doc_registry` r
WHERE r.table_name='mes_xsl_mixer_ps_compile' AND r.del_flag=0 AND r.enabled=1
LIMIT 1;
INSERT IGNORE INTO `mes_xsl_integration_action`
(`id`,`plan_id`,`action_name`,`action_type`,`action_config`,`exec_order`,`on_fail`,`enabled`,`del_flag`,`create_by`,`create_time`)
VALUES
('mxpsregauditact00001','mxpsregaudit00000002','审核环节同步','REGISTRY_STAGE_SYNC',
'{"visualType":"REGISTRY_STAGE_SYNC","stage":"audit","expectedFrom":"proofread"}',
1,'stop',1,0,'admin',NOW());
-- 密炼PS 批准(全流程通过)
INSERT IGNORE INTO `mes_xsl_integration_plan`
(`id`,`plan_code`,`plan_name`,`source_table`,`registry_id`,`trigger_phase`,`trigger_stage`,`exec_mode`,`status`,`remark`,`del_flag`,`tenant_id`,`create_by`,`create_time`)
SELECT
'mxpsregapprove000003','mixer_ps_reg_approve','密炼PS-批准通过(注册中心同步)',
'mes_xsl_mixer_ps_compile', r.id, 'onApprove', 'approve', 'async', '0',
'无需Java回调更新status=approve并写批准人/时间+审批痕迹', 0, 0, 'admin', NOW()
FROM `mes_xsl_biz_doc_registry` r
WHERE r.table_name='mes_xsl_mixer_ps_compile' AND r.del_flag=0 AND r.enabled=1
LIMIT 1;
INSERT IGNORE INTO `mes_xsl_integration_action`
(`id`,`plan_id`,`action_name`,`action_type`,`action_config`,`exec_order`,`on_fail`,`enabled`,`del_flag`,`create_by`,`create_time`)
VALUES
('mxpsregapproveact01','mxpsregapprove000003','批准环节同步','REGISTRY_STAGE_SYNC',
'{"visualType":"REGISTRY_STAGE_SYNC","stage":"approve","expectedFrom":"audit"}',
1,'stop',1,0,'admin',NOW());
-- 密炼PS 驳回回退编制
INSERT IGNORE INTO `mes_xsl_integration_plan`
(`id`,`plan_code`,`plan_name`,`source_table`,`registry_id`,`trigger_phase`,`trigger_stage`,`exec_mode`,`status`,`remark`,`del_flag`,`tenant_id`,`create_by`,`create_time`)
SELECT
'mxpsregreject000004','mixer_ps_reg_reject','密炼PS-驳回回退(注册中心同步)',
'mes_xsl_mixer_ps_compile', r.id, 'onReject', NULL, 'async', '0',
'无需Java回调回退status=compile并清空环节痕迹', 0, 0, 'admin', NOW()
FROM `mes_xsl_biz_doc_registry` r
WHERE r.table_name='mes_xsl_mixer_ps_compile' AND r.del_flag=0 AND r.enabled=1
LIMIT 1;
INSERT IGNORE INTO `mes_xsl_integration_action`
(`id`,`plan_id`,`action_name`,`action_type`,`action_config`,`exec_order`,`on_fail`,`enabled`,`del_flag`,`create_by`,`create_time`)
VALUES
('mxpsregrejectact001','mxpsregreject000004','驳回回退编制','REGISTRY_STAGE_REVERT',
'{"visualType":"REGISTRY_STAGE_REVERT","targetStage":"compile"}',
1,'stop',1,0,'admin',NOW());