-- 定时自动完成功能 - 数据库表创建脚本
-- 创建日期: 2025-11-01
-- 功能说明: 为工序执行情况表添加定时自动完成功能
-- =============================================

-- 1. 创建定时自动完成配置表
CREATE TABLE IF NOT EXISTS `sys_timed_complete_config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `module_name` varchar(50) NOT NULL COMMENT '模块名称（sale_order/work_order等）',
  `enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用（0=关闭，1=开启）',
  `day_threshold` int(11) NOT NULL DEFAULT '30' COMMENT '天数阈值',
  `last_check_time` datetime DEFAULT NULL COMMENT '最后检查时间',
  `last_execute_time` datetime DEFAULT NULL COMMENT '最后执行时间',
  `last_execute_count` int(11) DEFAULT '0' COMMENT '最后执行处理数量',
  `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_module_name` (`module_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时自动完成配置表';

-- 2. 创建定时自动完成执行日志表
CREATE TABLE IF NOT EXISTS `sys_timed_complete_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `config_id` bigint(20) NOT NULL COMMENT '配置ID',
  `execute_time` datetime NOT NULL COMMENT '执行时间',
  `execute_type` varchar(20) NOT NULL COMMENT '执行类型（AUTO=自动, MANUAL=手动）',
  `total_count` int(11) NOT NULL COMMENT '检查订单总数',
  `success_count` int(11) NOT NULL COMMENT '成功数量',
  `fail_count` int(11) NOT NULL COMMENT '失败数量',
  `execute_duration` int(11) DEFAULT NULL COMMENT '执行耗时（秒）',
  `execute_result` text COMMENT '执行结果详情（JSON）',
  `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `idx_config_id` (`config_id`),
  KEY `idx_execute_time` (`execute_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时自动完成执行日志表';

-- 3. 插入默认配置数据（销售订单模块）
INSERT INTO `sys_timed_complete_config` 
  (`module_name`, `enabled`, `day_threshold`, `create_by`, `create_time`, `remark`) 
VALUES 
  ('sale_order', 0, 30, 'admin', NOW(), '销售订单定时自动完成配置（默认关闭）')
ON DUPLICATE KEY UPDATE 
  `update_by` = 'admin', 
  `update_time` = NOW();

-- 4. 查询验证
SELECT * FROM sys_timed_complete_config WHERE module_name = 'sale_order';
SELECT COUNT(*) as table_count FROM information_schema.tables 
WHERE table_schema = DATABASE() 
  AND table_name IN ('sys_timed_complete_config', 'sys_timed_complete_log');

-- =============================================
-- 执行完成提示
-- =============================================
-- 请在MySQL中执行此脚本
-- 执行成功后应该看到：
-- 1. sys_timed_complete_config 表已创建
-- 2. sys_timed_complete_log 表已创建
-- 3. 插入了1条默认配置数据
-- =============================================

