Kaynağa Gözat

Merge branch 'fyc-vpp' of uskycloud/usky-modules into feature/service-vpp-20260701

fuyuchuan 1 hafta önce
ebeveyn
işleme
30ae0ef103

+ 5 - 1
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/domain/VppDevice.java

@@ -57,7 +57,11 @@ public class VppDevice implements Serializable {
     private Integer deleteFlag;
     private Integer deleteFlag;
     @TableField("deleted_at")
     @TableField("deleted_at")
     private LocalDateTime deletedAt;
     private LocalDateTime deletedAt;
+
+    /**
+     * 物联网实时状态(来自 dmp_device_status,非本表字段)
+     * 1:在线,2:离线
+     */
     @TableField(exist = false)
     @TableField(exist = false)
-    /** 1:在线,2:离线 */
     private Integer deviceStatus;
     private Integer deviceStatus;
 }
 }

+ 1 - 1
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/job/VppUnPollScheduler.java

@@ -22,7 +22,7 @@ public class VppUnPollScheduler {
     @Autowired
     @Autowired
     private VppUnIntegrationService integrationService;
     private VppUnIntegrationService integrationService;
 
 
-    @Scheduled(fixedDelayString = "#{${vpp.un.poll-interval-sec:10} * 1000}")
+    //@Scheduled(fixedDelayString = "#{${vpp.un.poll-interval-sec:10} * 1000}")
     public void pollUn() {
     public void pollUn() {
         if (!properties.isPollActive()) {
         if (!properties.isPollActive()) {
             return;
             return;

+ 41 - 12
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/service/impl/VppDashboardServiceImpl.java

@@ -3,6 +3,7 @@ package com.usky.vpp.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.vpp.constant.VppSocialBenefitConstants;
 import com.usky.vpp.constant.VppSocialBenefitConstants;
+import com.usky.vpp.domain.DmpDeviceStatus;
 import com.usky.vpp.domain.VppCustomer;
 import com.usky.vpp.domain.VppCustomer;
 import com.usky.vpp.domain.VppDevice;
 import com.usky.vpp.domain.VppDevice;
 import com.usky.vpp.domain.VppDrEvaluation;
 import com.usky.vpp.domain.VppDrEvaluation;
@@ -11,6 +12,7 @@ import com.usky.vpp.domain.VppDrInvitation;
 import com.usky.vpp.domain.VppDrParticipation;
 import com.usky.vpp.domain.VppDrParticipation;
 import com.usky.vpp.domain.VppResourcePoint;
 import com.usky.vpp.domain.VppResourcePoint;
 import com.usky.vpp.domain.VppSite;
 import com.usky.vpp.domain.VppSite;
+import com.usky.vpp.mapper.DmpDeviceStatusMapper;
 import com.usky.vpp.mapper.VppCustomerMapper;
 import com.usky.vpp.mapper.VppCustomerMapper;
 import com.usky.vpp.mapper.VppDeviceMapper;
 import com.usky.vpp.mapper.VppDeviceMapper;
 import com.usky.vpp.mapper.VppDrEvaluationMapper;
 import com.usky.vpp.mapper.VppDrEvaluationMapper;
@@ -32,6 +34,7 @@ import com.usky.vpp.util.VppCapabilityEvalHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.math.RoundingMode;
@@ -62,9 +65,8 @@ public class VppDashboardServiceImpl implements VppDashboardService {
     private static final int EVENT_TYPE_PEAK = 1;
     private static final int EVENT_TYPE_PEAK = 1;
     private static final int EVENT_TYPE_VALLEY = 2;
     private static final int EVENT_TYPE_VALLEY = 2;
     private static final int REPLY_ACCEPT = 1;
     private static final int REPLY_ACCEPT = 1;
-    private static final int COMM_ONLINE = 1;
-    private static final int COMM_OFFLINE = 0;
-    private static final int RUN_FAULT = 2;
+    /** dmp_device_status.device_status:1 在线,2 离线 */
+    private static final int DMP_STATUS_ONLINE = 1;
     private static final int IS_CONTROL = 1;
     private static final int IS_CONTROL = 1;
     private static final int IS_WINNING = 1;
     private static final int IS_WINNING = 1;
     private static final int SCALE = 4;
     private static final int SCALE = 4;
@@ -80,6 +82,8 @@ public class VppDashboardServiceImpl implements VppDashboardService {
     @Autowired
     @Autowired
     private VppDeviceMapper deviceMapper;
     private VppDeviceMapper deviceMapper;
     @Autowired
     @Autowired
+    private DmpDeviceStatusMapper dmpDeviceStatusMapper;
+    @Autowired
     private VppDrEventMapper eventMapper;
     private VppDrEventMapper eventMapper;
     @Autowired
     @Autowired
     private VppDrEvaluationMapper evaluationMapper;
     private VppDrEvaluationMapper evaluationMapper;
@@ -252,26 +256,51 @@ public class VppDashboardServiceImpl implements VppDashboardService {
         }
         }
     }
     }
 
 
+    /**
+     * 设备状态:从 vpp_device 取 device_uuid,再查 dmp_device_status(1在线 / 2离线)。
+     * 无 uuid 或 dmp 无记录的设备计为离线;dmp 无故障态,fault 固定为 0。
+     */
     private void fillDeviceStatus(DashboardSummaryVO.DeviceStatus status, List<VppDevice> devices) {
     private void fillDeviceStatus(DashboardSummaryVO.DeviceStatus status, List<VppDevice> devices) {
+        status.setTotal((long) devices.size());
+        status.setFault(0L);
+        if (CollectionUtils.isEmpty(devices)) {
+            status.setOnline(0L);
+            status.setOffline(0L);
+            return;
+        }
+
+        List<String> deviceUuids = devices.stream()
+                .map(VppDevice::getDeviceUuid)
+                .filter(StringUtils::hasText)
+                .map(String::trim)
+                .distinct()
+                .collect(Collectors.toList());
+
+        Map<String, Integer> statusByUuid = Collections.emptyMap();
+        if (!deviceUuids.isEmpty()) {
+            statusByUuid = dmpDeviceStatusMapper.selectList(
+                            new LambdaQueryWrapper<DmpDeviceStatus>()
+                                    .select(DmpDeviceStatus::getDeviceUuid, DmpDeviceStatus::getDeviceStatus)
+                                    .in(DmpDeviceStatus::getDeviceUuid, deviceUuids))
+                    .stream()
+                    .filter(s -> StringUtils.hasText(s.getDeviceUuid()))
+                    .collect(Collectors.toMap(DmpDeviceStatus::getDeviceUuid, DmpDeviceStatus::getDeviceStatus, (a, b) -> a));
+        }
+
         long online = 0;
         long online = 0;
         long offline = 0;
         long offline = 0;
-        long fault = 0;
         for (VppDevice device : devices) {
         for (VppDevice device : devices) {
-            if (Objects.equals(device.getRunStatus(), RUN_FAULT)) {
-                fault++;
-            } else if (Objects.equals(device.getCommStatus(), COMM_OFFLINE)
-                    || device.getCommStatus() == null) {
-                offline++;
-            } else if (Objects.equals(device.getCommStatus(), COMM_ONLINE)) {
+            String uuid = StringUtils.hasText(device.getDeviceUuid()) ? device.getDeviceUuid().trim() : null;
+            Integer dmpStatus = uuid == null ? null : statusByUuid.get(uuid);
+            if (Objects.equals(dmpStatus, DMP_STATUS_ONLINE)) {
                 online++;
                 online++;
             } else {
             } else {
+                // 2离线,或无 uuid / dmp 无记录
                 offline++;
                 offline++;
             }
             }
         }
         }
-        status.setTotal((long) devices.size());
         status.setOnline(online);
         status.setOnline(online);
         status.setOffline(offline);
         status.setOffline(offline);
-        status.setFault(fault);
     }
     }
 
 
     private void fillSubsidy(DashboardSummaryVO.Subsidy subsidy, Map<Long, VppDrEvaluation> evaluationMap) {
     private void fillSubsidy(DashboardSummaryVO.Subsidy subsidy, Map<Long, VppDrEvaluation> evaluationMap) {

+ 5 - 0
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/service/vo/DashboardSummaryVO.java

@@ -54,9 +54,13 @@ public class DashboardSummaryVO {
 
 
     @Data
     @Data
     public static class DeviceStatus {
     public static class DeviceStatus {
+        /** 设备总数 */
         private Long total = 0L;
         private Long total = 0L;
+        /** 在线设备数 */
         private Long online = 0L;
         private Long online = 0L;
+        /** 离线设备数 */
         private Long offline = 0L;
         private Long offline = 0L;
+        /** 故障设备数 */
         private Long fault = 0L;
         private Long fault = 0L;
     }
     }
 
 
@@ -68,6 +72,7 @@ public class DashboardSummaryVO {
 
 
     @Data
     @Data
     public static class YearRegulation {
     public static class YearRegulation {
+        /** 年份 */
         private Integer year;
         private Integer year;
         /** 执行偏差率 0~1 */
         /** 执行偏差率 0~1 */
         private BigDecimal executionDeviationRate;
         private BigDecimal executionDeviationRate;

+ 0 - 33
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_audit_field_unify_migration.sql

@@ -1,33 +0,0 @@
--- VPP 审计字段统一为 created_by 风格(已有库执行)
--- operator_id / recorded_by / audit_by -> created_by VARCHAR(30)
--- operated_at -> create_time(日志类表)
-
--- 准入申请:审核人复用 updated_by,移除 audit_by
-ALTER TABLE `vpp_customer_access` DROP COLUMN `audit_by`;
-
--- 合同审核流水
-ALTER TABLE `vpp_contract_audit_log`
-    DROP COLUMN `operator_name`,
-    CHANGE COLUMN `operator_id` `created_by` VARCHAR(30) NULL COMMENT '创建人',
-    CHANGE COLUMN `operated_at` `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
-    DROP INDEX `idx_contract_audit_contract`,
-    ADD KEY `idx_contract_audit_contract` (`contract_id`, `create_time`);
-
--- 设备远程控制日志
-ALTER TABLE `vpp_device_control_log`
-    CHANGE COLUMN `operator_id` `created_by` VARCHAR(30) NULL COMMENT '创建人',
-    CHANGE COLUMN `operated_at` `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
-    DROP INDEX `idx_control_device`,
-    ADD KEY `idx_control_device` (`device_id`, `create_time`);
-
--- 缴费记录
-ALTER TABLE `vpp_payment_record`
-    CHANGE COLUMN `recorded_by` `created_by` VARCHAR(30) NULL COMMENT '创建人',
-    ADD COLUMN `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间' AFTER `tenant_id`;
-
--- 报送审核流水
-ALTER TABLE `vpp_report_audit_log`
-    CHANGE COLUMN `operator_id` `created_by` VARCHAR(30) NULL COMMENT '创建人',
-    CHANGE COLUMN `operated_at` `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
-    DROP INDEX `idx_report_audit_record`,
-    ADD KEY `idx_report_audit_record` (`record_id`, `create_time`);

+ 0 - 35
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_bidding_config_migration.sql

@@ -1,35 +0,0 @@
--- 竞价配置表(已有库执行,可重复执行)
-
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables
-     WHERE table_schema = DATABASE()
-       AND table_name = 'vpp_bidding_config') = 0,
-    'CREATE TABLE `vpp_bidding_config` (
-        `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键'',
-        `config_name` VARCHAR(200) NOT NULL COMMENT ''配置名称'',
-        `effective_start` DATETIME(3) NOT NULL COMMENT ''适用开始时间'',
-        `effective_end` DATETIME(3) NOT NULL COMMENT ''适用结束时间'',
-        `attachment_url` VARCHAR(500) NULL COMMENT ''附件URL'',
-        `attachment_name` VARCHAR(200) NULL COMMENT ''附件原始文件名'',
-        `bidding_mode` TINYINT NOT NULL COMMENT ''1分时段竞价 2整体竞价'',
-        `typical_coefficient` DECIMAL(6,4) NOT NULL COMMENT ''典型系数'',
-        `advance_close_hours` INT NOT NULL COMMENT ''提前截标时间(小时),如24表示>24小时'',
-        `max_price` DECIMAL(12,4) NOT NULL COMMENT ''最高价格(元)'',
-        `min_price` DECIMAL(12,4) NOT NULL COMMENT ''最低价格(元)'',
-        `site_ids` JSON NULL COMMENT ''关联站点ID列表'',
-        `tenant_id` INT NULL COMMENT ''租户ID'',
-        `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT ''创建时间'',
-        `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT ''更新时间'',
-        `created_by` VARCHAR(30) NULL COMMENT ''创建人'',
-        `updated_by` VARCHAR(30) NULL COMMENT ''更新人'',
-        `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'',
-        `deleted_at` DATETIME(3) NULL COMMENT ''软删除时间'',
-        PRIMARY KEY (`id`),
-        KEY `idx_bidding_config_effective` (effective_start, effective_end),
-        KEY `idx_bidding_config_name` (config_name)
-    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=''竞价配置''',
-    'SELECT 1'
-);
-PREPARE stmt FROM @sql;
-EXECUTE stmt;
-DEALLOCATE PREPARE stmt;

+ 0 - 191
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_delete_flag_migration.sql

@@ -1,191 +0,0 @@
--- VPP 软删除标识字段(已有库执行,可重复执行)
--- 含 deleted_at 的表新增 delete_flag INT(1) NOT NULL DEFAULT 0
-
--- vpp_customer
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_customer' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_customer` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_customer.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_customer` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_customer_access
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_customer_access' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_customer_access` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_customer_access.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_customer_access` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_customer_contact
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_customer_contact' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_customer_contact` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_customer_contact.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_customer_contact` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_contract
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_contract' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_contract` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_contract.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_contract` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_contract_template
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_contract_template' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_contract_template` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_contract_template.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_contract_template` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_resource_point
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_resource_point' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_resource_point` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_resource_point.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_resource_point` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_resource_point_config
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_resource_point_config' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_resource_point_config` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_resource_point_config.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_resource_point_config` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_device
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_device' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_device` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_device.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_device` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_energy_reading_monthly
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_energy_reading_monthly' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_energy_reading_monthly` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_energy_reading_monthly.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_energy_reading_monthly` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_energy_summary_daily
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_energy_summary_daily' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_energy_summary_daily` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_energy_summary_daily.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_energy_summary_daily` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_settlement_bill
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_settlement_bill' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_settlement_bill` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_settlement_bill.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_settlement_bill` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_report_task
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_report_task' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_report_task` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_report_task.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_report_task` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_report_record
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_report_record' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_report_record` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_report_record.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_report_record` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_report_data
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_report_data' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_report_data` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_report_data.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_report_data` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_dr_event
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_event' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_dr_event` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_dr_event.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_dr_event` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_dr_participation
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_participation' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_dr_participation` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_dr_participation.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_dr_participation` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_dr_strategy
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_strategy' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_dr_strategy` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_dr_strategy.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_dr_strategy` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_dr_execution
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_execution' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_dr_execution` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_dr_execution.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_dr_execution` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_dr_evaluation
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_evaluation' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_dr_evaluation` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_dr_evaluation.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_dr_evaluation` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_registration
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_registration' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_registration` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_registration.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_registration` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;
-
--- vpp_file_archive
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_file_archive' AND column_name = 'delete_flag') = 0,
-    'ALTER TABLE `vpp_file_archive` ADD COLUMN `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'' AFTER `updated_by`',
-    'SELECT ''skip: vpp_file_archive.delete_flag exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-UPDATE `vpp_file_archive` SET `delete_flag` = 1 WHERE `deleted_at` IS NOT NULL AND `delete_flag` = 0;

+ 0 - 41
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_dr_invitation_migration.sql

@@ -1,41 +0,0 @@
--- VPP 需求响应企业邀约表(已有库执行,可重复执行)
--- 对应 Web「邀约管理」界面,详见 虚拟电厂平台数据库设计文档 V1.1 §5.23
-
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_invitation') = 0,
-    'CREATE TABLE `vpp_dr_invitation` (
-        `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键'',
-        `invitation_no` VARCHAR(32) NOT NULL COMMENT ''邀约编号'',
-        `dr_event_id` BIGINT NOT NULL COMMENT ''需求响应事件ID'',
-        `customer_id` BIGINT NOT NULL COMMENT ''客户ID'',
-        `execute_start_date` DATE NOT NULL COMMENT ''执行开始日期'',
-        `execute_end_date` DATE NOT NULL COMMENT ''执行结束日期'',
-        `reply_deadline` DATETIME(3) NOT NULL COMMENT ''邀约回复截止日期'',
-        `issue_time` DATETIME(3) NOT NULL COMMENT ''下发时间'',
-        `transaction_type` TINYINT NULL COMMENT ''交易类型 1削峰 2填谷'',
-        `response_type` TINYINT NOT NULL COMMENT ''1日前 2日内 3秒级'',
-        `demand_capacity_kw` DECIMAL(12,4) NOT NULL COMMENT ''需求容量 kW'',
-        `declared_capacity_kw` DECIMAL(12,4) NULL COMMENT ''申报出清容量 kW'',
-        `reply_status` TINYINT NOT NULL COMMENT ''0待回复 1参与 2拒绝 3超时'',
-        `response_status` TINYINT NOT NULL COMMENT ''0待响应 1已申报 2执行中 3已结束 4已取消'',
-        `sms_notify_status` TINYINT NOT NULL DEFAULT 0 COMMENT ''0未发送 1已发送 2发送失败'',
-        `sms_notify_at` DATETIME(3) NULL COMMENT ''短信通知时间'',
-        `sms_contact_id` BIGINT NULL COMMENT ''通知联系人ID'',
-        `participation_id` BIGINT NULL COMMENT ''关联参与记录ID'',
-        `remark` VARCHAR(500) NULL COMMENT ''备注'',
-        `tenant_id` INT NULL COMMENT ''租户ID'',
-        `create_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT ''创建时间'',
-        `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT ''更新时间'',
-        `created_by` VARCHAR(30) NULL COMMENT ''创建人'',
-        `updated_by` VARCHAR(30) NULL COMMENT ''更新人'',
-        `delete_flag` INT(1) NOT NULL DEFAULT 0 COMMENT ''删除标识 0未删除 1已删除'',
-        `deleted_at` DATETIME(3) NULL COMMENT ''软删除时间'',
-        PRIMARY KEY (`id`),
-        UNIQUE KEY `uk_dr_invitation_no` (`invitation_no`),
-        UNIQUE KEY `uk_dr_invitation_event_customer` (`dr_event_id`, `customer_id`),
-        KEY `idx_dr_invitation_customer` (`customer_id`, `reply_status`),
-        KEY `idx_dr_invitation_issue` (`issue_time`, `response_type`)
-    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=''需求响应企业邀约''',
-    'SELECT ''skip: vpp_dr_invitation already exists'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

+ 0 - 24
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_dr_participation_completion_rate_migration.sql

@@ -1,24 +0,0 @@
--- 事件参与记录增加完成率(已有库执行,可重复执行)
--- completion_rate = cleared_capacity_kw / declared_capacity_kw(申报出清容量)
-
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns
-     WHERE table_schema = DATABASE()
-       AND table_name = 'vpp_dr_participation'
-       AND column_name = 'completion_rate') = 0,
-    'ALTER TABLE `vpp_dr_participation` ADD COLUMN `completion_rate` DECIMAL(12,4) NULL COMMENT ''完成率=出清容量/申报出清容量'' AFTER `cleared_capacity_kw`',
-    'SELECT 1'
-);
-PREPARE stmt FROM @sql;
-EXECUTE stmt;
-DEALLOCATE PREPARE stmt;
-
--- 回填已有出清数据
-UPDATE `vpp_dr_participation`
-SET `completion_rate` = ROUND(`cleared_capacity_kw` / `declared_capacity_kw`, 4)
-WHERE `delete_flag` = 0
-  AND `cleared_capacity_kw` IS NOT NULL
-  AND `declared_capacity_kw` IS NOT NULL
-  AND `declared_capacity_kw` > 0
-  AND (`completion_rate` IS NULL
-       OR `completion_rate` <> ROUND(`cleared_capacity_kw` / `declared_capacity_kw`, 4));

+ 0 - 284
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_id_auto_increment_migration.sql

@@ -1,284 +0,0 @@
--- VPP 主键自增迁移(已有库执行,可重复执行)
--- 将各表 id 列改为 BIGINT AUTO_INCREMENT,与 MyBatis-Plus IdType.AUTO 对齐
--- 表不存在时自动跳过,适用于部分表尚未创建的库
-
--- vpp_customer
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_customer') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_customer' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_customer` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_customer.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_customer_access
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_customer_access') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_customer_access' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_customer_access` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_customer_access.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_customer_contact
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_customer_contact') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_customer_contact' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_customer_contact` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_customer_contact.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_contract
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_contract') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_contract' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_contract` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_contract.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_contract_template
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_contract_template') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_contract_template' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_contract_template` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_contract_template.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_contract_audit_log
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_contract_audit_log') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_contract_audit_log' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_contract_audit_log` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_contract_audit_log.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_site
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_site') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_site' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_site` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_site.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_site_config
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_site_config') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_site_config' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_site_config` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_site_config.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_resource_point
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_resource_point') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_resource_point' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_resource_point` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_resource_point.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_resource_point_config
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_resource_point_config') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_resource_point_config' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_resource_point_config` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_resource_point_config.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_device
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_device') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_device' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_device` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_device.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_device_control_log
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_device_control_log') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_device_control_log' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_device_control_log` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_device_control_log.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_energy_reading_monthly
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_energy_reading_monthly') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_energy_reading_monthly' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_energy_reading_monthly` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_energy_reading_monthly.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_energy_summary_daily
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_energy_summary_daily') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_energy_summary_daily' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_energy_summary_daily` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_energy_summary_daily.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_settlement_bill
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_settlement_bill') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_settlement_bill' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_settlement_bill` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_settlement_bill.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_settlement_bill_detail
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_settlement_bill_detail') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_settlement_bill_detail' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_settlement_bill_detail` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_settlement_bill_detail.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_payment_record
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_payment_record') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_payment_record' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_payment_record` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_payment_record.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_report_task
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_task') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_report_task' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_report_task` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_report_task.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_report_record
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_record') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_report_record' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_report_record` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_report_record.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_report_data
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_data') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_report_data' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_report_data` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_report_data.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_report_audit_log
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_audit_log') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_report_audit_log' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_report_audit_log` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_report_audit_log.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_dr_event
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_event') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_event' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_dr_event` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_dr_event.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_dr_participation
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_participation') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_participation' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_dr_participation` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_dr_participation.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_dr_invitation
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_invitation') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_invitation' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_dr_invitation` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_dr_invitation.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_dr_strategy
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_strategy') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_strategy' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_dr_strategy` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_dr_strategy.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_dr_strategy_resource
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_strategy_resource') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_strategy_resource' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_dr_strategy_resource` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_dr_strategy_resource.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_dr_execution
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_execution') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_execution' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_dr_execution` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_dr_execution.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_dr_evaluation
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_evaluation') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_evaluation' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_dr_evaluation` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_dr_evaluation.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_registration
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_registration') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_registration' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_registration` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_registration.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_report_log
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_log') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_report_log' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_report_log` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_report_log.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- vpp_file_archive
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_file_archive') > 0
-    AND (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'vpp_file_archive' AND column_name = 'id' AND EXTRA LIKE '%auto_increment%') = 0,
-    'ALTER TABLE `vpp_file_archive` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT ''主键''',
-    'SELECT ''skip: vpp_file_archive.id already auto_increment or table missing'''
-);
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
--- 若需将自增计数与数据 ID 均重置为从 1 开始,请执行 vpp_id_reset_from_one_migration.sql

+ 0 - 362
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_id_reset_from_one_migration.sql

@@ -1,362 +0,0 @@
--- VPP 主键 ID 重置为从 1 开始
--- 执行前请备份数据库!
---
--- 提供两种方案(二选一执行,不要同时执行):
---   方案一:清空全部 vpp_* 数据,TRUNCATE 后自增从 1 开始(开发/联调推荐)
---   方案二:保留现有数据,按依赖关系重编号为 1..n(需 MySQL 8.0+,支持 ROW_NUMBER)
-
--- =============================================================================
--- 方案一:清空数据并重置自增(会删除所有 vpp_* 业务数据)
--- 仅 TRUNCATE 当前库中已存在的表,可重复执行
--- =============================================================================
-
-SET FOREIGN_KEY_CHECKS = 0;
-
--- vpp_payment_record
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_payment_record') > 0, 'TRUNCATE TABLE `vpp_payment_record`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_settlement_bill_detail
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_settlement_bill_detail') > 0, 'TRUNCATE TABLE `vpp_settlement_bill_detail`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_device_control_log
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_device_control_log') > 0, 'TRUNCATE TABLE `vpp_device_control_log`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_contract_audit_log
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_contract_audit_log') > 0, 'TRUNCATE TABLE `vpp_contract_audit_log`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_customer_contact
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_customer_contact') > 0, 'TRUNCATE TABLE `vpp_customer_contact`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_resource_point_config
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_resource_point_config') > 0, 'TRUNCATE TABLE `vpp_resource_point_config`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_site_config
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_site_config') > 0, 'TRUNCATE TABLE `vpp_site_config`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_dr_participation
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_participation') > 0, 'TRUNCATE TABLE `vpp_dr_participation`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_dr_strategy_resource
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_strategy_resource') > 0, 'TRUNCATE TABLE `vpp_dr_strategy_resource`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_dr_execution
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_execution') > 0, 'TRUNCATE TABLE `vpp_dr_execution`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_dr_evaluation
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_evaluation') > 0, 'TRUNCATE TABLE `vpp_dr_evaluation`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_report_audit_log
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_audit_log') > 0, 'TRUNCATE TABLE `vpp_report_audit_log`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_report_data
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_data') > 0, 'TRUNCATE TABLE `vpp_report_data`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_energy_reading_monthly
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_energy_reading_monthly') > 0, 'TRUNCATE TABLE `vpp_energy_reading_monthly`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_energy_summary_daily
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_energy_summary_daily') > 0, 'TRUNCATE TABLE `vpp_energy_summary_daily`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_file_archive
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_file_archive') > 0, 'TRUNCATE TABLE `vpp_file_archive`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_device
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_device') > 0, 'TRUNCATE TABLE `vpp_device`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_resource_point
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_resource_point') > 0, 'TRUNCATE TABLE `vpp_resource_point`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_site
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_site') > 0, 'TRUNCATE TABLE `vpp_site`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_contract
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_contract') > 0, 'TRUNCATE TABLE `vpp_contract`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_settlement_bill
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_settlement_bill') > 0, 'TRUNCATE TABLE `vpp_settlement_bill`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_report_record
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_record') > 0, 'TRUNCATE TABLE `vpp_report_record`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_customer_access
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_customer_access') > 0, 'TRUNCATE TABLE `vpp_customer_access`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_dr_invitation
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_invitation') > 0, 'TRUNCATE TABLE `vpp_dr_invitation`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_dr_invitation
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_invitation') > 0, 'TRUNCATE TABLE `vpp_dr_invitation`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_dr_event
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_event') > 0, 'TRUNCATE TABLE `vpp_dr_event`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_dr_strategy
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_dr_strategy') > 0, 'TRUNCATE TABLE `vpp_dr_strategy`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_contract_template
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_contract_template') > 0, 'TRUNCATE TABLE `vpp_contract_template`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_report_task
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_task') > 0, 'TRUNCATE TABLE `vpp_report_task`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_registration
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_registration') > 0, 'TRUNCATE TABLE `vpp_registration`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_report_log
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_report_log') > 0, 'TRUNCATE TABLE `vpp_report_log`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
--- vpp_customer
-SET @sql = IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 'vpp_customer') > 0, 'TRUNCATE TABLE `vpp_customer`', 'SELECT 1');
-PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-
-SET FOREIGN_KEY_CHECKS = 1;
-
--- TRUNCATE 后 InnoDB 自增值已自动重置为 1,无需再 ALTER AUTO_INCREMENT
-
--- =============================================================================
--- 方案二:保留数据,重编号为 1..n(若需使用,请注释掉上方方案一后执行本段)
--- 要求:MySQL 8.0+;assignee_id 等指向 sys_user 的字段不在此脚本范围内
--- =============================================================================
-
-/*
-SET FOREIGN_KEY_CHECKS = 0;
-SET UNIQUE_CHECKS = 0;
-
--- 1. 生成 ID 映射(old_id -> new_id)
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_contract_template;
-CREATE TEMPORARY TABLE tmp_map_vpp_contract_template AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_contract_template`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_customer;
-CREATE TEMPORARY TABLE tmp_map_vpp_customer AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_customer`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_dr_event;
-CREATE TEMPORARY TABLE tmp_map_vpp_dr_event AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_dr_event`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_dr_strategy;
-CREATE TEMPORARY TABLE tmp_map_vpp_dr_strategy AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_dr_strategy`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_registration;
-CREATE TEMPORARY TABLE tmp_map_vpp_registration AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_registration`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_report_task;
-CREATE TEMPORARY TABLE tmp_map_vpp_report_task AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_report_task`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_report_log;
-CREATE TEMPORARY TABLE tmp_map_vpp_report_log AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_report_log`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_customer_access;
-CREATE TEMPORARY TABLE tmp_map_vpp_customer_access AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_customer_access`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_customer_contact;
-CREATE TEMPORARY TABLE tmp_map_vpp_customer_contact AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_customer_contact`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_contract;
-CREATE TEMPORARY TABLE tmp_map_vpp_contract AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_contract`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_resource_point;
-CREATE TEMPORARY TABLE tmp_map_vpp_resource_point AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_resource_point`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_report_record;
-CREATE TEMPORARY TABLE tmp_map_vpp_report_record AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_report_record`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_contract_audit_log;
-CREATE TEMPORARY TABLE tmp_map_vpp_contract_audit_log AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_contract_audit_log`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_resource_point_config;
-CREATE TEMPORARY TABLE tmp_map_vpp_resource_point_config AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_resource_point_config`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_device;
-CREATE TEMPORARY TABLE tmp_map_vpp_device AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_device`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_energy_reading_monthly;
-CREATE TEMPORARY TABLE tmp_map_vpp_energy_reading_monthly AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_energy_reading_monthly`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_energy_summary_daily;
-CREATE TEMPORARY TABLE tmp_map_vpp_energy_summary_daily AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_energy_summary_daily`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_settlement_bill;
-CREATE TEMPORARY TABLE tmp_map_vpp_settlement_bill AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_settlement_bill`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_dr_participation;
-CREATE TEMPORARY TABLE tmp_map_vpp_dr_participation AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_dr_participation`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_dr_strategy_resource;
-CREATE TEMPORARY TABLE tmp_map_vpp_dr_strategy_resource AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_dr_strategy_resource`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_report_data;
-CREATE TEMPORARY TABLE tmp_map_vpp_report_data AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_report_data`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_report_audit_log;
-CREATE TEMPORARY TABLE tmp_map_vpp_report_audit_log AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_report_audit_log`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_device_control_log;
-CREATE TEMPORARY TABLE tmp_map_vpp_device_control_log AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_device_control_log`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_settlement_bill_detail;
-CREATE TEMPORARY TABLE tmp_map_vpp_settlement_bill_detail AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_settlement_bill_detail`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_payment_record;
-CREATE TEMPORARY TABLE tmp_map_vpp_payment_record AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_payment_record`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_dr_execution;
-CREATE TEMPORARY TABLE tmp_map_vpp_dr_execution AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_dr_execution`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_dr_evaluation;
-CREATE TEMPORARY TABLE tmp_map_vpp_dr_evaluation AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_dr_evaluation`;
-
-DROP TEMPORARY TABLE IF EXISTS tmp_map_vpp_file_archive;
-CREATE TEMPORARY TABLE tmp_map_vpp_file_archive AS
-SELECT `id` AS old_id, ROW_NUMBER() OVER (ORDER BY `id`) AS new_id FROM `vpp_file_archive`;
-
--- 2. 更新外键引用
-UPDATE `vpp_customer_access` t JOIN tmp_map_vpp_customer m ON t.`customer_id` = m.old_id SET t.`customer_id` = m.new_id;
-UPDATE `vpp_customer_contact` t JOIN tmp_map_vpp_customer m ON t.`customer_id` = m.old_id SET t.`customer_id` = m.new_id;
-UPDATE `vpp_contract` t JOIN tmp_map_vpp_customer m ON t.`customer_id` = m.old_id SET t.`customer_id` = m.new_id;
-UPDATE `vpp_contract` t JOIN tmp_map_vpp_contract_template m ON t.`template_id` = m.old_id SET t.`template_id` = m.new_id;
-UPDATE `vpp_resource_point` t JOIN tmp_map_vpp_customer m ON t.`customer_id` = m.old_id SET t.`customer_id` = m.new_id;
-UPDATE `vpp_energy_reading_monthly` t JOIN tmp_map_vpp_customer m ON t.`customer_id` = m.old_id SET t.`customer_id` = m.new_id;
-UPDATE `vpp_energy_reading_monthly` t JOIN tmp_map_vpp_resource_point m ON t.`resource_id` = m.old_id SET t.`resource_id` = m.new_id;
-UPDATE `vpp_energy_summary_daily` t JOIN tmp_map_vpp_resource_point m ON t.`resource_id` = m.old_id SET t.`resource_id` = m.new_id;
-UPDATE `vpp_settlement_bill` t JOIN tmp_map_vpp_customer m ON t.`customer_id` = m.old_id SET t.`customer_id` = m.new_id;
-UPDATE `vpp_contract_audit_log` t JOIN tmp_map_vpp_contract m ON t.`contract_id` = m.old_id SET t.`contract_id` = m.new_id;
-UPDATE `vpp_resource_point_config` t JOIN tmp_map_vpp_resource_point m ON t.`resource_id` = m.old_id SET t.`resource_id` = m.new_id;
-UPDATE `vpp_device` t JOIN tmp_map_vpp_resource_point m ON t.`resource_id` = m.old_id SET t.`resource_id` = m.new_id;
-UPDATE `vpp_device_control_log` t JOIN tmp_map_vpp_device m ON t.`device_id` = m.old_id SET t.`device_id` = m.new_id;
-UPDATE `vpp_settlement_bill_detail` t JOIN tmp_map_vpp_settlement_bill m ON t.`bill_id` = m.old_id SET t.`bill_id` = m.new_id;
-UPDATE `vpp_payment_record` t JOIN tmp_map_vpp_settlement_bill m ON t.`bill_id` = m.old_id SET t.`bill_id` = m.new_id;
-UPDATE `vpp_report_record` t JOIN tmp_map_vpp_report_task m ON t.`task_id` = m.old_id SET t.`task_id` = m.new_id;
-UPDATE `vpp_report_data` t JOIN tmp_map_vpp_report_record m ON t.`record_id` = m.old_id SET t.`record_id` = m.new_id;
-UPDATE `vpp_report_audit_log` t JOIN tmp_map_vpp_report_record m ON t.`record_id` = m.old_id SET t.`record_id` = m.new_id;
-UPDATE `vpp_dr_participation` t JOIN tmp_map_vpp_dr_event m ON t.`event_id` = m.old_id SET t.`event_id` = m.new_id;
-UPDATE `vpp_dr_participation` t JOIN tmp_map_vpp_customer m ON t.`customer_id` = m.old_id SET t.`customer_id` = m.new_id;
-UPDATE `vpp_dr_participation` t JOIN tmp_map_vpp_resource_point m ON t.`resource_id` = m.old_id SET t.`resource_id` = m.new_id;
-UPDATE `vpp_dr_strategy_resource` t JOIN tmp_map_vpp_dr_strategy m ON t.`strategy_id` = m.old_id SET t.`strategy_id` = m.new_id;
-UPDATE `vpp_dr_strategy_resource` t JOIN tmp_map_vpp_resource_point m ON t.`resource_id` = m.old_id SET t.`resource_id` = m.new_id;
-UPDATE `vpp_dr_execution` t JOIN tmp_map_vpp_dr_event m ON t.`event_id` = m.old_id SET t.`event_id` = m.new_id;
-UPDATE `vpp_dr_execution` t JOIN tmp_map_vpp_resource_point m ON t.`resource_id` = m.old_id SET t.`resource_id` = m.new_id;
-UPDATE `vpp_dr_evaluation` t JOIN tmp_map_vpp_dr_event m ON t.`event_id` = m.old_id SET t.`event_id` = m.new_id;
-
--- 电子档案 biz_id(按业务类型映射)
-UPDATE `vpp_file_archive` t JOIN tmp_map_vpp_contract m ON t.`biz_type` = 'CONTRACT' AND t.`biz_id` = m.old_id SET t.`biz_id` = m.new_id;
-UPDATE `vpp_file_archive` t JOIN tmp_map_vpp_customer m ON t.`biz_type` = 'CUSTOMER' AND t.`biz_id` = m.old_id SET t.`biz_id` = m.new_id;
-UPDATE `vpp_file_archive` t JOIN tmp_map_vpp_resource_point m ON t.`biz_type` = 'RESOURCE' AND t.`biz_id` = m.old_id SET t.`biz_id` = m.new_id;
-
--- 3. 重编号主键(先置负避免冲突,再转正)
-UPDATE `vpp_contract_template` t JOIN tmp_map_vpp_contract_template m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_customer` t JOIN tmp_map_vpp_customer m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_dr_event` t JOIN tmp_map_vpp_dr_event m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_dr_strategy` t JOIN tmp_map_vpp_dr_strategy m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_registration` t JOIN tmp_map_vpp_registration m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_report_task` t JOIN tmp_map_vpp_report_task m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_report_log` t JOIN tmp_map_vpp_report_log m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_customer_access` t JOIN tmp_map_vpp_customer_access m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_customer_contact` t JOIN tmp_map_vpp_customer_contact m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_contract` t JOIN tmp_map_vpp_contract m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_resource_point` t JOIN tmp_map_vpp_resource_point m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_report_record` t JOIN tmp_map_vpp_report_record m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_contract_audit_log` t JOIN tmp_map_vpp_contract_audit_log m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_resource_point_config` t JOIN tmp_map_vpp_resource_point_config m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_device` t JOIN tmp_map_vpp_device m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_energy_reading_monthly` t JOIN tmp_map_vpp_energy_reading_monthly m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_energy_summary_daily` t JOIN tmp_map_vpp_energy_summary_daily m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_settlement_bill` t JOIN tmp_map_vpp_settlement_bill m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_dr_participation` t JOIN tmp_map_vpp_dr_participation m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_dr_strategy_resource` t JOIN tmp_map_vpp_dr_strategy_resource m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_report_data` t JOIN tmp_map_vpp_report_data m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_report_audit_log` t JOIN tmp_map_vpp_report_audit_log m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_device_control_log` t JOIN tmp_map_vpp_device_control_log m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_settlement_bill_detail` t JOIN tmp_map_vpp_settlement_bill_detail m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_payment_record` t JOIN tmp_map_vpp_payment_record m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_dr_execution` t JOIN tmp_map_vpp_dr_execution m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_dr_evaluation` t JOIN tmp_map_vpp_dr_evaluation m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-UPDATE `vpp_file_archive` t JOIN tmp_map_vpp_file_archive m ON t.`id` = m.old_id SET t.`id` = -m.new_id;
-
-UPDATE `vpp_contract_template` SET `id` = -`id`;
-UPDATE `vpp_customer` SET `id` = -`id`;
-UPDATE `vpp_dr_event` SET `id` = -`id`;
-UPDATE `vpp_dr_strategy` SET `id` = -`id`;
-UPDATE `vpp_registration` SET `id` = -`id`;
-UPDATE `vpp_report_task` SET `id` = -`id`;
-UPDATE `vpp_report_log` SET `id` = -`id`;
-UPDATE `vpp_customer_access` SET `id` = -`id`;
-UPDATE `vpp_customer_contact` SET `id` = -`id`;
-UPDATE `vpp_contract` SET `id` = -`id`;
-UPDATE `vpp_resource_point` SET `id` = -`id`;
-UPDATE `vpp_report_record` SET `id` = -`id`;
-UPDATE `vpp_contract_audit_log` SET `id` = -`id`;
-UPDATE `vpp_resource_point_config` SET `id` = -`id`;
-UPDATE `vpp_device` SET `id` = -`id`;
-UPDATE `vpp_energy_reading_monthly` SET `id` = -`id`;
-UPDATE `vpp_energy_summary_daily` SET `id` = -`id`;
-UPDATE `vpp_settlement_bill` SET `id` = -`id`;
-UPDATE `vpp_dr_participation` SET `id` = -`id`;
-UPDATE `vpp_dr_strategy_resource` SET `id` = -`id`;
-UPDATE `vpp_report_data` SET `id` = -`id`;
-UPDATE `vpp_report_audit_log` SET `id` = -`id`;
-UPDATE `vpp_device_control_log` SET `id` = -`id`;
-UPDATE `vpp_settlement_bill_detail` SET `id` = -`id`;
-UPDATE `vpp_payment_record` SET `id` = -`id`;
-UPDATE `vpp_dr_execution` SET `id` = -`id`;
-UPDATE `vpp_dr_evaluation` SET `id` = -`id`;
-UPDATE `vpp_file_archive` SET `id` = -`id`;
-
--- 4. 重置自增计数(下一条插入从 max(id)+1,空表则为 1)
-ALTER TABLE `vpp_contract_template` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_customer` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_dr_event` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_dr_strategy` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_registration` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_report_task` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_report_log` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_customer_access` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_customer_contact` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_contract` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_resource_point` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_report_record` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_contract_audit_log` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_resource_point_config` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_device` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_energy_reading_monthly` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_energy_summary_daily` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_settlement_bill` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_dr_participation` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_dr_strategy_resource` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_report_data` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_report_audit_log` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_device_control_log` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_settlement_bill_detail` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_payment_record` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_dr_execution` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_dr_evaluation` AUTO_INCREMENT = 1;
-ALTER TABLE `vpp_file_archive` AUTO_INCREMENT = 1;
-
-SET UNIQUE_CHECKS = 1;
-SET FOREIGN_KEY_CHECKS = 1;
-*/

+ 0 - 13
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_report_task_site_ids_migration.sql

@@ -1,13 +0,0 @@
--- 报送任务关联站点(已有库执行,可重复执行)
-
-SET @sql = IF(
-    (SELECT COUNT(*) FROM information_schema.columns
-     WHERE table_schema = DATABASE()
-       AND table_name = 'vpp_report_task'
-       AND column_name = 'site_ids') = 0,
-    'ALTER TABLE `vpp_report_task` ADD COLUMN `site_ids` JSON NULL COMMENT ''关联站点ID列表'' AFTER `remind_days`',
-    'SELECT 1'
-);
-PREPARE stmt FROM @sql;
-EXECUTE stmt;
-DEALLOCATE PREPARE stmt;

+ 0 - 2
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_schema.sql

@@ -203,8 +203,6 @@ CREATE TABLE `vpp_device` (
     `manufacturer` VARCHAR(100) NULL COMMENT '厂商',
     `manufacturer` VARCHAR(100) NULL COMMENT '厂商',
     `model` VARCHAR(100) NULL COMMENT '型号',
     `model` VARCHAR(100) NULL COMMENT '型号',
     `rated_power_kw` DECIMAL(12,4) NULL COMMENT '额定功率',
     `rated_power_kw` DECIMAL(12,4) NULL COMMENT '额定功率',
-    `comm_status` TINYINT NOT NULL COMMENT '0离线 1在线',
-    `run_status` TINYINT NOT NULL COMMENT '0停机 1运行 2故障',
     `firmware_version` VARCHAR(50) NULL COMMENT '固件版本',
     `firmware_version` VARCHAR(50) NULL COMMENT '固件版本',
     `last_online_at` DATETIME(3) NULL COMMENT '最后在线时间',
     `last_online_at` DATETIME(3) NULL COMMENT '最后在线时间',
     `gateway_id` VARCHAR(64) NULL COMMENT 'IoT网关标识',
     `gateway_id` VARCHAR(64) NULL COMMENT 'IoT网关标识',

+ 0 - 32
service-vpp/service-vpp-biz/src/main/resources/sql/vpp_tenant_migration.sql

@@ -1,32 +0,0 @@
--- VPP 租户字段及审计字段类型变更(已有库执行)
--- created_by / updated_by: BIGINT -> VARCHAR(30)
--- 全表新增 tenant_id
-
-ALTER TABLE `vpp_customer` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `remark`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_customer_access` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `apply_at`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_customer_contact` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `position`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_contract` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `remark`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_contract_template` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `is_enabled`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_contract_audit_log` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `opinion`;
-ALTER TABLE `vpp_resource_point` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `remark`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_resource_point_config` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `alarm_rule_json`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_device` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `remark`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_device_control_log` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `result_message`;
-ALTER TABLE `vpp_energy_reading_monthly` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `calc_at`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_energy_summary_daily` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `avg_power_kw`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_settlement_bill` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `generated_at`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_settlement_bill_detail` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `amount`;
-ALTER TABLE `vpp_payment_record` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `remark`;
-ALTER TABLE `vpp_report_task` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `remind_days`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_report_record` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `archived_at`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_report_data` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `is_draft`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_report_audit_log` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `operator_ip`;
-ALTER TABLE `vpp_dr_event` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `raw_payload`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_dr_participation` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `declared_at`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_dr_strategy` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `is_enabled`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_dr_strategy_resource` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `max_adjust_kw`;
-ALTER TABLE `vpp_dr_execution` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `finished_at`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_dr_evaluation` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `evaluated_at`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_registration` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `meta_report_id`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '创建人', MODIFY COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人';
-ALTER TABLE `vpp_report_log` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `reported_at`;
-ALTER TABLE `vpp_file_archive` ADD COLUMN `tenant_id` INT NULL COMMENT '租户ID' AFTER `remark`, ADD COLUMN `updated_by` VARCHAR(30) NULL COMMENT '更新人' AFTER `created_by`, MODIFY COLUMN `created_by` VARCHAR(30) NULL COMMENT '上传人';