icd、删除计划时同时删除与之关联的表

This commit is contained in:
caozehui
2025-02-11 10:33:00 +08:00
parent 5b0cdb5c18
commit bd90965597
13 changed files with 250 additions and 146 deletions

View File

@@ -1,11 +1,18 @@
package com.njcn.gather.storage.service;
import java.util.List;
public interface TableGenService {
void genAdNonHarmonicTable(String code);
void delAdNonHarmonicTable(String code);
/**
* 批量删除表 (包括谐波表、谐波结果表、非谐波表、非谐波结果表)
*
* @param codeList
*/
void deleteTable(List<String> codeList);
}

View File

@@ -5,6 +5,8 @@ import com.njcn.gather.storage.service.TableGenService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class TableGenServiceImpl implements TableGenService {
@@ -23,19 +25,19 @@ public class TableGenServiceImpl implements TableGenService {
StringBuilder A = new StringBuilder();
StringBuilder B = new StringBuilder();
StringBuilder C = new StringBuilder();
for(int i=1;i<=50;i++){
if(i == 1){
for (int i = 1; i <= 50; i++) {
if (i == 1) {
A.append("A_Value_").append(i).append(" json NULL COMMENT 'A相基波',");
B.append("B_Value_").append(i).append(" json NULL COMMENT 'B相基波',");
C.append("C_Value_").append(i).append(" json NULL COMMENT 'C相基波',");
}else {
} else {
A.append("A_Value_").append(i).append(" json NULL COMMENT '").append(i).append("次A相谐波',");
B.append("B_Value_").append(i).append(" json NULL COMMENT '").append(i).append("次B相谐波',");
C.append("C_Value_").append(i).append(" json NULL COMMENT '").append(i).append("次C相谐波',");
}
}
String sql = "CREATE TABLE AD_Harmonic_"+code+" (\n" +
String sql = "CREATE TABLE AD_Harmonic_" + code + " (\n" +
" Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',\n" +
" Time_Id DATETIME NOT NULL COMMENT '时间',\n" +
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id字典表',\n" +
@@ -43,12 +45,12 @@ public class TableGenServiceImpl implements TableGenService {
" AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',\n" +
" Data_Type CHAR(32) NOT NULL COMMENT '数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表',\n" +
" Result_Flag int(1) NULL COMMENT '0.不合格 1.合格',\n" +
A+B+C+
A + B + C +
" PRIMARY KEY (Monitor_Id,Time_Id, Script_Id, Sort, AD_Type)\n" +
") COMMENT='监测数据表';";
tableGenMapper.genAdHarmonicTable(sql);
String sql2 = "CREATE TABLE AD_Harmonic_Result_"+code+" (\n" +
String sql2 = "CREATE TABLE AD_Harmonic_Result_" + code + " (\n" +
" Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',\n" +
" Time_Id DATETIME NULL COMMENT '时间',\n" +
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id字典表',\n" +
@@ -56,16 +58,23 @@ public class TableGenServiceImpl implements TableGenService {
" AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',\n" +
" Data_Type CHAR(32) NOT NULL COMMENT '数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表',\n" +
" Result_Flag int(1) NOT NULL COMMENT '1不合格 2合格 4无法处理',\n" +
A+B+C+
A + B + C +
" PRIMARY KEY (Monitor_Id, Script_Id, Sort, AD_Type)\n" +
") COMMENT='监测数据表';";
tableGenMapper.genAdHarmonicTable(sql2);
}
@Override
public void delAdNonHarmonicTable(String code) {
String sql = "DROP TABLE ad_harmonic_"+code+",ad_harmonic_result_"+code+",ad_non_harmonic_"+code+",ad_non_harmonic_result_"+code;
tableGenMapper.genAdHarmonicTable(sql);
public void deleteTable(List<String> codeList) {
StringBuilder sb = new StringBuilder();
for (String code : codeList) {
sb.append("ad_harmonic_").append(code)
.append(",ad_harmonic_result_").append(code)
.append(",ad_non_harmonic_").append(code)
.append(",ad_non_harmonic_result_").append(code).append(",");
}
sb.deleteCharAt(sb.length() - 1);
tableGenMapper.genAdHarmonicTable("DROP TABLE " + sb.toString());
}