CREATE TABLE `efcode_cp_plan` ( `id` varchar(50) NOT NULL COMMENT '主键ID' primary key, `plan_type` tinyint NOT NULL COMMENT '计划类别:1=日常计划,2=专项计划', `plan_date` datetime NOT NULL COMMENT '计划执行日期(如 2025-05-08)', `plan_time` tinyint NOT NULL COMMENT '执行时段:1=上午,2=下午,3=其他', `plan_source_date` datetime NULL COMMENT '原始日期', `plan_source_time` tinyint NULL COMMENT '原始执行时段:1=上午,2=下午,3=其他', `enforce_content` varchar(1000) NOT NULL COMMENT '执法事项(最多1000字)', `enterprise_name` varchar(200) NOT NULL COMMENT '被检查企业/机构名称', `enterprise_number` varchar(200) NOT NULL COMMENT '被检查企业/机构信用代码', `enterprise_id` varchar(200) NOT NULL COMMENT '被检查企业/机构Id', `contact_person` varchar(100) NULL COMMENT '企业联系人', `contact_phone` varchar(200) NULL COMMENT '企业联系电话', `enforce_user_names` varchar(512) NOT NULL COMMENT '执法人员姓名(多个逗号分隔)', `enforce_user_ids` varchar(512) NOT NULL COMMENT '执法人员姓名(多个逗号分隔)', `enforce_user_tels` varchar(512) NULL COMMENT '执法人员电话号码(多个逗号分隔)', `enforce_user_codes` varchar(512) NOT NULL COMMENT '执法人员证件编号(多个逗号分隔)', `is_public` tinyint NOT NULL DEFAULT 1 COMMENT '是否公开:1=是,0=否', `is_union` tinyint NOT NULL DEFAULT 1 COMMENT '是否联合执法:1=是,0=否', `union_bureau_dept_names` varchar(500) DEFAULT NULL COMMENT '联合执法单位(多个逗号分隔)', `reserve_status` tinyint NOT NULL DEFAULT 0 COMMENT '预约状态:0=草稿,1=待预约(未发起联合),2=预约中,3=预约完成,4=重新预约中,5=待预约(还有位置可以加入),6=待预约(人数已满),7=预约完成(人数已满)', `task_id` varchar(50) NULL DEFAULT '' COMMENT '任务id:空串表示还没生成任务', `system_reserved` tinyint NOT NULL DEFAULT 0 COMMENT '是否已经经过系统推荐预约:1=是,0=否', `manual_reserved` tinyint NOT NULL DEFAULT 0 COMMENT '是否已经经过手动预约:1=是,0=否', `bureau_dept_id` varchar(50) NOT NULL COMMENT '执法单位ID', `bureau_dept_name` varchar(100) NOT NULL COMMENT '执法单位名称', `organ_id` varchar(50) NOT NULL COMMENT '市认证机构ID', `organ_name` varchar(100) NOT NULL COMMENT '市认证机构名称', `dept_id` varchar(50) NOT NULL COMMENT '市认证部门ID', `dept_name` varchar(100) NOT NULL COMMENT '市认证部门名称', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_delete` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `my_remark` varchar(500) DEFAULT NULL COMMENT '私有备注', KEY `idx_dept_id` (`bureau_dept_id`), KEY `idx_reserve_status` (`reserve_status`) ) comment '行政执法检查计划-计划表' row_format = DYNAMIC; CREATE TABLE `efcode_cp_task` ( `id` varchar(50) NOT NULL COMMENT '主键ID' primary key, `task_name` varchar(200) NOT NULL COMMENT '任务名称', `bureau_dept_id` varchar(50) NOT NULL COMMENT '执法单位ID', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) comment '行政执法检查计划-任务表' row_format = DYNAMIC; CREATE TABLE `efcode_cp_plan_users` ( `id` varchar(50) NOT NULL COMMENT '主键ID' primary key, `plan_id` varchar(50) NOT NULL COMMENT '计划ID', `user_id` varchar(50) NOT NULL COMMENT '用户ID', `user_name` varchar(100) NOT NULL COMMENT '用户名称', `user_tel` varchar(50) NULL COMMENT '执法人员电话号码', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) comment '行政执法检查计划-计划参与人员表' row_format = DYNAMIC; CREATE TABLE `efcode_cp_reserve` ( `id` varchar(50) NOT NULL COMMENT '主键ID' primary key, `plan_id` varchar(50) NOT NULL COMMENT '计划ID', `plan_group_id` varchar(50) NOT NULL COMMENT '计划分组ID:相同的表示预约同一个计划', `reserve_time` datetime NOT NULL COMMENT '预约时间', `op_status` tinyint NOT NULL COMMENT '操作状态' DEFAULT 3 COMMENT '操作状态:1=同意,2=拒绝,3=待确认,4=超期取消', `op_order` int NOT NULL COMMENT '联合时用户的操作顺序', `op_time` datetime NULL COMMENT '联合时用户的操作时间', `op_message` varchar(500) NULL COMMENT '联合时用户输入的操作消息', `warring_message` varchar(500) NULL COMMENT '警告的消息', `warring_is_pass` tinyint NULL COMMENT '警告的消息是否被确认:1=已确认,0=为确认', `op_set_date` datetime NOT NULL COMMENT '联合时用户选择的操作时间', `op_set_time` tinyint NOT NULL COMMENT '执行时段:1=上午,2=下午,3=其他', `res_from` tinyint NOT NULL COMMENT '来自:系统匹配=1,手动匹配=0', `sender_id` varchar(50) NULL DEFAULT '' COMMENT '发送者用户ID', `receiver_id` varchar(50) NULL DEFAULT '' COMMENT '接收者用户ID', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) comment '行政执法检查计划-预约表' row_format = DYNAMIC; CREATE TABLE `efcode_cp_notice` ( `id` varchar(50) NOT NULL COMMENT '主键ID' primary key, `plan_id` bigint DEFAULT NULL COMMENT '导入的计划ID(关联执法计划表)', `enforce_date` datetime NOT NULL COMMENT '执法日期', `enforce_time` tinyint NOT NULL COMMENT '执法时段:1=上午,2=下午,3=其他', `bureau_dept_id` varchar(50) NOT NULL COMMENT '执法单位ID', `bureau_dept_name` varchar(100) NOT NULL COMMENT '执法单位名称', `organ_id` varchar(50) NOT NULL COMMENT '市认证机构ID', `organ_name` varchar(100) NOT NULL COMMENT '市认证机构名称', `dept_id` varchar(50) NOT NULL COMMENT '市认证部门ID', `dept_name` varchar(100) NOT NULL COMMENT '市认证部门名称', `enforce_user_names` varchar(512) NOT NULL COMMENT '执法人员姓名(多个逗号分隔)', `enforce_user_ids` varchar(512) NOT NULL COMMENT '执法人员ID(多个逗号分隔)', `enforce_user_tels` varchar(512) NULL DEFAULT '' COMMENT '执法人员电话(多个逗号分隔)', `enforce_user_codes` varchar(512) NOT NULL COMMENT '执法人员证件编号(多个逗号分隔)', `enterprise_id` varchar(50) NOT NULL COMMENT '被检查企业ID', `enterprise_name` varchar(200) NOT NULL COMMENT '被检查企业名称', `enterprise_number` varchar(32) DEFAULT NULL COMMENT '企业统一社会信用代码', `contact_person` varchar(100) NULL COMMENT '企业联系人', `contact_phone` varchar(200) NULL COMMENT '企业联系电话', `enforce_content` varchar(1000) NOT NULL COMMENT '执法事项', `enforce_requirement` varchar(1000) NOT NULL COMMENT '执法要求', `publish_time` datetime DEFAULT NULL COMMENT '预告发布时间', `status` tinyint NOT NULL DEFAULT 0 COMMENT '预告状态:0=草稿,1=已发布,2=已取消,3=已执行', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_delete` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除:0=否,1=是', `remark` varchar(500) DEFAULT NULL COMMENT '备注' ) comment '行政执法检查计划-预告表' row_format = DYNAMIC; CREATE TABLE `efcode_cp_notice_users` ( `id` varchar(50) NOT NULL COMMENT '主键ID' primary key, `notice_id` varchar(50) NOT NULL COMMENT '通知ID', `user_id` varchar(50) NOT NULL COMMENT '用户ID', `user_name` varchar(100) NOT NULL COMMENT '用户名称', `user_tel` varchar(50) NULL COMMENT '执法人员电话号码', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) comment '行政执法检查计划-预告参与人员表' row_format = DYNAMIC; CREATE TABLE `efcode_cp_notice_message` ( `id` varchar(50) NOT NULL COMMENT '主键ID' primary key, `notice_id` varchar(50) NOT NULL COMMENT '预告ID', `user_id` varchar(50) NOT NULL COMMENT '用户ID', `user_name` varchar(100) NOT NULL COMMENT '用户名称', `msg_from` tinyint NOT NULL COMMENT '来自:企业=1,执法单位=0', `msg_type` tinyint NULL DEFAULT 1 COMMENT '消息类型:1=用户消息,2=系统提示', `bureau_dept_viewed` tinyint NULL DEFAULT 0 COMMENT '执法部门是否已读:已读=1,未读=0', `enterprise_viewed` tinyint NULL DEFAULT 0 COMMENT '企业是否已读:已读=1,未读=0', `message` varchar(1000) NOT NULL COMMENT '消息内容', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_delete` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除:0=否,1=是' ) comment '行政执法检查计划-预告交流表' row_format = DYNAMIC; CREATE TABLE `efcode_cp_setting` ( `id` varchar(50) NOT NULL COMMENT '主键ID' primary key, `setting_name` varchar(100) NOT NULL COMMENT '设置名称', `setting_value` varchar(100) NOT NULL COMMENT '设置值', `remark` varchar(500) NOT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) comment '行政执法检查计划-设置表' row_format = DYNAMIC; CREATE TABLE `efcode_cp_log` ( `id` varchar(50) NOT NULL COMMENT '主键ID' PRIMARY KEY, `record_id` varchar(50) NULL COMMENT '关联记录', `table_name` varchar(50) NULL COMMENT '关联表', `log_type` varchar(50) NULL COMMENT '日志类型', `op_slog` varchar(2000) NULL COMMENT '短日志', `op_llog` text NULL COMMENT '长日志', `op_user_id` varchar(50) NOT NULL COMMENT '操作人ID', `op_user_name` varchar(50) NOT NULL COMMENT '操作人姓名', `remark` varchar(500) NULL COMMENT '备注', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建人部门', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) COMMENT '行政执法检查计划-日志表' ROW_FORMAT = DYNAMIC; /*初始化数据*/ INSERT INTO `efcode_cp_setting` (`id`, `setting_name`, `setting_value`, `remark`, `create_by`, `create_dept`) VALUES ('CP_SETTING_SUBMIT_DEADLINE', '下阶段计划提交最晚时间', '26', '每月几号前需提交下阶段计划<=26号', '0', '0'), ('CP_SETTING_AUTO_MATCH_START', '系统自动推荐匹配开始时间', '26', '系统自动推荐匹配的开始时间(号)=26号', '0', '0'), ('CP_SETTING_RESERVE_CANCEL_DURATION', '预约自动取消时长', '14', '发起预约后,如果多长时间没有处理,则自动取消,14天', '0', '0'), ('CP_SETTING_MANUAL_MATCH_DAYS', '手工匹配距计划开始天数', '3', '手工匹配距离计划开始的天数>=3天,同时,距离计划开始的第3天,系统自动去掉这些计划的预约,同时转化为任务', '0', '0'), ('CP_MAX_UNION_UNIT', '获取单次手动联合单位最大数量', '2', '获取单次手动联合单位最大数量<=2个执法单位', '0', '0'), ('CP_MAX_AUTO_MATCH_UNION_UNIT', '获取单次系统联合单位最大数量', '3', '获取单次系统联合单位最大数量<=3个执法单位', '0', '0'), ('CP_MAX_INNER_UNIT_AC_PERSON_NUM', '单位内部单次计划最多参与人数', '3', '单位内部单次计划最多参与人数<=3人', '0', '0'), ('CP_SETTING_SYSTEM_MATCH_WEEKS', '系统匹配预约周数范围', '1', '系统匹配时向后查找的周数范围1周:可选1,2,3,4周', '0', '0'); /*创建计划任务*/ DELETE FROM sys_job WHERE invoke_target = 'cpPlanAutoMatchJob.execute()'; INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark) VALUES ('计划自动匹配预约', 'DEFAULT', 'cpPlanAutoMatchJob.execute()', '0 0 2 * * ?', '3', '1', '0', 'admin', NOW(), '每天凌晨2点扫描待预约计划并自动匹配生成预约记录'); DELETE FROM sys_job WHERE invoke_target = 'cpReserveOverdueCancelJob.execute()'; INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark) VALUES ('预约超期自动取消', 'DEFAULT', 'cpReserveOverdueCancelJob.execute()', '0 0 1 * * ?', '3', '1', '0', 'admin', NOW(), '每天凌晨1点扫描超期未处理的预约记录并自动取消'); DELETE FROM sys_job WHERE invoke_target = 'cpPlanDeadlineGenTaskJob.execute()'; INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark) VALUES ('计划到期自动生成任务', 'DEFAULT', 'cpPlanDeadlineGenTaskJob.execute()', '0 0 2 * * ?', '3', '1', '0', 'admin', NOW(), '每天凌晨2点扫描即将到期的计划,取消剩余未处理预约并自动生成任务'); DELETE FROM sys_job WHERE invoke_target = 'cpNoticeAutoCompleteJob.execute()'; INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark) VALUES ('预告到期自动标记已执行', 'DEFAULT', 'cpNoticeAutoCompleteJob.execute()', '0 30 0 * * ?', '3', '1', '0', 'admin', NOW(), '每天凌晨0点30分扫描执法日期已过期的已发布预告,自动标记为已执行'); delete from efcode_cp_log where create_time > '2026-01-01'; delete from efcode_cp_notice where create_time > '2026-01-01'; delete from efcode_cp_notice_message where create_time > '2026-01-01'; delete from efcode_cp_notice_users where create_time > '2026-01-01'; delete from efcode_cp_plan where create_time > '2026-01-01'; delete from efcode_cp_plan_users where create_time > '2026-01-01'; delete from efcode_cp_reserve where create_time > '2026-01-01'; delete from efcode_cp_task where create_time > '2026-01-01';