建表语句调整

This commit is contained in:
caozehui
2025-04-10 16:08:21 +08:00
parent 3fcad5ff76
commit 6727dee61e
2 changed files with 23 additions and 21 deletions

View File

@@ -10,11 +10,11 @@
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',
Data_Type CHAR(32) NOT NULL COMMENT '数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表',
A_Value float DEFAULT NULL COMMENT 'A相值',
B_Value float DEFAULT NULL COMMENT 'B相值',
C_Value float DEFAULT NULL COMMENT 'C相值',
T_Value float DEFAULT NULL COMMENT 'T相值(没有相别的则存这里)',
Result_Flag int(1) NULL COMMENT '1合格 2不合格 4无法处理',
A_Value varchar(30) DEFAULT NULL COMMENT 'A相值',
B_Value varchar(30) DEFAULT NULL COMMENT 'B相值',
C_Value varchar(30) DEFAULT NULL COMMENT 'C相值',
T_Value varchar(30) DEFAULT NULL COMMENT 'T相值(没有相别的则存这里)',
PRIMARY KEY (Monitor_Id, Time_Id, Script_Id, Sort, AD_Type)
) COMMENT='监测数据表';
</update>
@@ -28,7 +28,7 @@
<update id="genAdNonHarmonicResultTable" parameterType="string">
CREATE TABLE if not exists ad_non_harmonic_result_${code} (
Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',
Time_Id DATETIME NULL COMMENT '时间',
Time_Id DATETIME NULL COMMENT '时间',
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id字典表',
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',

View File

@@ -1,8 +1,10 @@
package com.njcn.gather.storage.service.impl;
import cn.hutool.core.util.StrUtil;
import com.njcn.gather.storage.mapper.TableGenMapper;
import com.njcn.gather.storage.service.TableGenService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -16,50 +18,50 @@ public class TableGenServiceImpl implements TableGenService {
@Override
public void genAdNonHarmonicTable(String code) {
//TODO 判断是否存在该表
tableGenMapper.genAdNonHarmonicTable(code);
tableGenMapper.genAdNonHarmonicResultTable(code);
//TODO 判断是否存在该表
StringBuilder A = new StringBuilder();
StringBuilder B = new StringBuilder();
StringBuilder C = new StringBuilder();
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相基波',");
A.append("A_Value_").append(i).append(" float NULL COMMENT 'A相基波',");
B.append("B_Value_").append(i).append(" float NULL COMMENT 'B相基波',");
C.append("C_Value_").append(i).append(" float NULL COMMENT 'C相基波',");
} 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相谐波',");
A.append("A_Value_").append(i).append(" float NULL COMMENT '").append(i).append("次A相谐波',");
B.append("B_Value_").append(i).append(" float NULL COMMENT '").append(i).append("次B相谐波',");
C.append("C_Value_").append(i).append(" float NULL COMMENT '").append(i).append("次C相谐波',");
}
}
String sql = "CREATE TABLE AD_Harmonic_" + code + " (\n" +
" Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',\n" +
" Time_Id DATETIME NOT NULL COMMENT '时间',\n" +
" Time_Id DATETIME NOT NULL COMMENT '时间',\n" +
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id字典表',\n" +
" Sort int(5) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
" 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" +
" Result_Flag int(1) NULL COMMENT '0不合格 1合格 4无法处理',\n" +
A + B + C +
" PRIMARY KEY (Monitor_Id,Time_Id, Script_Id, Sort, AD_Type)\n" +
" PRIMARY KEY (Monitor_Id,Time_Id,Script_Id, Sort, AD_Type)\n" +
") COMMENT='监测数据表';";
tableGenMapper.genAdHarmonicTable(sql);
String a = A.toString().replaceAll("float", "json");
String b = B.toString().replaceAll("float", "json");
String c = C.toString().replaceAll("float", "json");
String sql2 = "CREATE TABLE AD_Harmonic_Result_" + code + " (\n" +
" Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',\n" +
" Time_Id DATETIME NULL COMMENT '时间',\n" +
" Time_Id DATETIME NULL COMMENT '时间',\n" +
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id字典表',\n" +
" Sort int(5) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
" 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 +
" PRIMARY KEY (Monitor_Id, Script_Id, Sort, AD_Type)\n" +
a + b + c +
" PRIMARY KEY (Monitor_Id,Script_Id, Sort, AD_Type)\n" +
") COMMENT='监测数据表';";
tableGenMapper.genAdHarmonicTable(sql2);
}