chore: 并入 iotlcm-admin-svr 历史到 admin-svr/(原提交 49818c6)
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
-- card_channel_assoc.channel_id historically mixed primary IDs and numeric channel keys.
|
||||
-- Store the actual t_sim_channels.chan_key so every environment resolves associations identically.
|
||||
ALTER TABLE `card_channel_assoc`
|
||||
MODIFY COLUMN `channel_id` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道编号';
|
||||
@@ -0,0 +1,4 @@
|
||||
-- Keep cards offline across billing cycles only after a successful traffic-cutoff action.
|
||||
ALTER TABLE `t_sim_card_info`
|
||||
ADD COLUMN `traffic_cutoff_cross_month_hold` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '达量断网跨月保持:0否,1是' AFTER `traffic_cutoff_threshold`,
|
||||
ADD COLUMN `traffic_cutoff_triggered_at` DATETIME NULL DEFAULT NULL COMMENT '最近一次达量断网成功时间' AFTER `traffic_cutoff_cross_month_hold`;
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE `sys_role`
|
||||
ADD COLUMN `source_role_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '下发角色来源角色ID' AFTER `is_pass`,
|
||||
ADD COLUMN `source_dept_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '下发角色来源组织ID' AFTER `source_role_id`;
|
||||
|
||||
CREATE INDEX `idx_sys_role_source_role_id` ON `sys_role` (`source_role_id`);
|
||||
@@ -0,0 +1,26 @@
|
||||
CREATE TEMPORARY TABLE `tmp_agent_role_source_map` AS
|
||||
SELECT `tenant_id`, `dept_id`, MIN(`role_id`) AS `source_role_id`
|
||||
FROM `sys_role`
|
||||
WHERE `is_pass` = 1 AND `deleted_at` IS NULL
|
||||
GROUP BY `tenant_id`, `dept_id`
|
||||
HAVING COUNT(*) = 1;
|
||||
|
||||
UPDATE `sys_role` AS `child_role`
|
||||
JOIN `sys_dept` AS `child_dept`
|
||||
ON `child_dept`.`dept_id` = `child_role`.`dept_id`
|
||||
AND `child_dept`.`tenant_id` = `child_role`.`tenant_id`
|
||||
AND `child_dept`.`dept_role` = `child_role`.`role_id`
|
||||
AND `child_dept`.`dept_type` = 1
|
||||
JOIN `tmp_agent_role_source_map` AS `source_map`
|
||||
ON `source_map`.`tenant_id` = `child_dept`.`tenant_id`
|
||||
AND `source_map`.`dept_id` = `child_dept`.`parent_id`
|
||||
JOIN `sys_role` AS `source_role` ON `source_role`.`role_id` = `source_map`.`source_role_id`
|
||||
SET
|
||||
`child_role`.`source_role_id` = `source_role`.`role_id`,
|
||||
`child_role`.`source_dept_id` = `source_role`.`dept_id`
|
||||
WHERE `child_role`.`source_role_id` = 0
|
||||
AND `child_role`.`created_dept` = `source_role`.`dept_id`
|
||||
AND `child_role`.`role_key` = `source_role`.`role_key`
|
||||
AND `child_role`.`deleted_at` IS NULL;
|
||||
|
||||
DROP TEMPORARY TABLE `tmp_agent_role_source_map`;
|
||||
@@ -0,0 +1,6 @@
|
||||
-- Support the 15-minute traffic-cutoff threshold scan and cross-month reapply scan.
|
||||
ALTER TABLE `t_sim_card_info`
|
||||
ADD INDEX `idx_card_traffic_cutoff_threshold_scan`
|
||||
(`traffic_cutoff_status`, `data_service_status`, `package_status`, `boss_card_status`, `is_flow_pool`, `id`),
|
||||
ADD INDEX `idx_card_traffic_cutoff_hold_scan`
|
||||
(`traffic_cutoff_status`, `traffic_cutoff_cross_month_hold`, `traffic_cutoff_triggered_at`, `data_service_status`, `id`);
|
||||
@@ -0,0 +1,40 @@
|
||||
-- 批次来源方式:4=定时任务。
|
||||
-- 自动达量断网批次由 check_traffic_cutoff 定时任务创建,历史批次通过稳定的批次号前缀和备注识别。
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`tenant_id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`,
|
||||
`is_default`, `created_dept`, `created_by`, `created_at`, `remark`
|
||||
)
|
||||
SELECT '000000', 4, '定时任务', '4', 't_batch_source_type', '', 'warning', 'N', 100, 1, NOW(),
|
||||
'由系统定时任务自动创建的批次'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `sys_dict_data`
|
||||
WHERE `tenant_id` = '000000'
|
||||
AND `dict_type` = 't_batch_source_type'
|
||||
AND `dict_value` = '4'
|
||||
);
|
||||
|
||||
UPDATE `sys_dict_data`
|
||||
SET `dict_sort` = 4,
|
||||
`dict_label` = '定时任务',
|
||||
`list_class` = 'warning',
|
||||
`remark` = '由系统定时任务自动创建的批次',
|
||||
`updated_at` = NOW(),
|
||||
`updated_by` = 1
|
||||
WHERE `tenant_id` = '000000'
|
||||
AND `dict_type` = 't_batch_source_type'
|
||||
AND `dict_value` = '4';
|
||||
|
||||
UPDATE `sys_dict_type`
|
||||
SET `remark` = '0:批次选择\n1:连号\n2:批量输入\n3:文件\n4:定时任务',
|
||||
`updated_at` = NOW(),
|
||||
`updated_by` = 1
|
||||
WHERE `tenant_id` = '000000'
|
||||
AND `dict_type` = 't_batch_source_type';
|
||||
|
||||
UPDATE `batch_main`
|
||||
SET `source_type` = 4
|
||||
WHERE `source_type` = 0
|
||||
AND `batch_type` = 107
|
||||
AND `batch_no` LIKE 'DCT%'
|
||||
AND JSON_UNQUOTE(JSON_EXTRACT(`batch_info`, '$.remark')) LIKE '达量断网自动触发%';
|
||||
@@ -0,0 +1,12 @@
|
||||
-- 执行日志元数据:仅新增两列,不回填、不重建表。
|
||||
-- 部署前确认库、备份、同名字段和DDL维护窗口。
|
||||
-- 旧写入端兼容legacy/0;应用新版本依赖此结构,先迁移再部署。
|
||||
-- 此脚本尚未在开发、预演或生产数据库执行。
|
||||
ALTER TABLE batch_main
|
||||
ADD COLUMN source_channel VARCHAR(24) NOT NULL DEFAULT 'legacy'
|
||||
COMMENT '发起渠道:console/mini_program/api/system/legacy',
|
||||
ADD COLUMN execution_mode TINYINT UNSIGNED NOT NULL DEFAULT 0
|
||||
COMMENT '操作规模:0未知1单卡2批量';
|
||||
|
||||
-- 不自动创建索引:按目标表已有索引和查询EXPLAIN确认。
|
||||
-- 不自动回填:历史来源必须有可验证证据,不能按数量推断单卡。
|
||||
@@ -0,0 +1,11 @@
|
||||
-- 套餐到期提醒:独立月度任务;不修改、启用或复用旧 ScanSimExpireCandidateWarning。
|
||||
-- sys_job.job_id 为 AUTO_INCREMENT,由数据库生成;本脚本仅提供部署使用,本次不执行。
|
||||
-- 默认暂停:核实实际短信参数、部署配置并确认调度时间后,再在任务管理页启用。
|
||||
-- 启用/修改任务需通过管理页刷新进程内调度,直接改库不刷新调度。
|
||||
-- cron 以 Asia/Shanghai 每月15日09:00 执行;站内通知与短信独立,短信需要审核模板参数。
|
||||
INSERT INTO sys_job (job_name, job_params, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, remark, created_at, updated_at)
|
||||
SELECT '套餐到期提醒(企业月度汇总)', '', '3', 'NotifyMonthlyPackageExpiry',
|
||||
'CRON_TZ=Asia/Shanghai 0 0 9 15 * *', 1, 1, '1', '独立月度到期通知任务;默认暂停', NOW(), NOW()
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM sys_job WHERE invoke_target = 'NotifyMonthlyPackageExpiry'
|
||||
);
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
-- 补齐异步导出执行日志元数据及运行结果。
|
||||
-- batch_type=14 仅由 Web 控制台导出中心创建;此类导出按批量操作展示。
|
||||
-- 运行结果跟随既有异步状态映射:0/1 -> 待运行,2 -> 运行中,3 -> 成功,4 -> 失败,5 -> 部分成功,6 -> 待核查。
|
||||
-- 仅更新导出类型,不影响其他批次。可重复执行。
|
||||
UPDATE batch_main
|
||||
SET source_channel = 'console',
|
||||
execution_mode = 2,
|
||||
run_result = CASE batch_async_status
|
||||
WHEN 2 THEN 1
|
||||
WHEN 3 THEN 2
|
||||
WHEN 4 THEN 3
|
||||
WHEN 5 THEN 4
|
||||
WHEN 6 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
WHERE batch_type = 14;
|
||||
@@ -0,0 +1,17 @@
|
||||
-- 明细状态 5=未执行:本卡校验通过,但整批因其他卡校验失败而未执行。
|
||||
-- 部署前备份并核对目标租户的 detail_status 字典;此脚本只补默认租户且不覆盖已有标签。
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`tenant_id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`,
|
||||
`is_default`, `created_dept`, `created_by`, `created_at`, `remark`
|
||||
)
|
||||
SELECT '000000', 5, '未执行', '5', 'detail_status', '', 'warning',
|
||||
'N', 100, 1, NOW(), '本卡校验通过,本批存在校验失败卡,整批未执行'
|
||||
FROM `sys_dict_type` AS dict_type
|
||||
WHERE dict_type.`tenant_id` = '000000'
|
||||
AND dict_type.`dict_type` = 'detail_status'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` AS dict_data
|
||||
WHERE dict_data.`tenant_id` = '000000'
|
||||
AND dict_data.`dict_type` = 'detail_status'
|
||||
AND dict_data.`dict_value` = '5'
|
||||
);
|
||||
Reference in New Issue
Block a user