Przeglądaj źródła

适配postgresql调整

jyyw 2 miesięcy temu
rodzic
commit
b72a747e78

+ 39 - 1
src/main/java/com/syjy/calculate/repository/repositoryImpl/CalculationFormulaRepositoryImpl.java

@@ -2,6 +2,7 @@ package com.syjy.calculate.repository.repositoryImpl;
 
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.db.sql.SqlUtil;
 import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
@@ -482,7 +483,11 @@ public class CalculationFormulaRepositoryImpl implements CalculationFormulaRepos
         case CalculateResult.DB_POSTGRES:
         case CalculateResult.DB_HIGHGO:
         case CalculateResult.DB_XUGU:
-          jdbcTemplate.execute(SqlUtil.formatSql(IoUtil.read(sqlInputStream, StandardCharsets.UTF_8)));
+          String initSQL = SqlUtil.formatSql(IoUtil.read(sqlInputStream, StandardCharsets.UTF_8));
+          List<String> ddls = StrUtil.splitTrim(initSQL, ";");
+          for (String ddl : ddls) {
+            jdbcTemplate.execute(ddl);
+          }
           jdbcTemplate.batchUpdate("INSERT INTO T_CALCULATION_FORMULA VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", pss);
           break;
         case CalculateResult.DB_MYSQL:
@@ -513,7 +518,18 @@ public class CalculationFormulaRepositoryImpl implements CalculationFormulaRepos
    */
   private String getVersion() {
     String version = "";
+    String dbType = properties.getDbType();
     String sql = " SELECT * FROM t_calculation_formula where type = 'VERSION' ";
+    switch (dbType) {
+      case CalculateResult.DB_KINGBASE:
+      case CalculateResult.DB_POSTGRES:
+      case CalculateResult.DB_HIGHGO:
+      case CalculateResult.DB_XUGU:
+        sql = " SELECT * FROM t_calculation_formula where \"TYPE\" = 'VERSION' ";
+        break;
+      default:
+        sql = " SELECT * FROM t_calculation_formula where type = 'VERSION' ";
+    }
     try {
       CalculationFormula calculationFormula = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(CalculationFormula.class));
       version = calculationFormula.getFormula();
@@ -528,7 +544,18 @@ public class CalculationFormulaRepositoryImpl implements CalculationFormulaRepos
    */
   @Override
   public List<CalculationFormula> getUser() {
+    String dbType = properties.getDbType();
     String sql = " SELECT * FROM t_calculation_formula where type = 'USER' ";
+    switch (dbType) {
+      case CalculateResult.DB_KINGBASE:
+      case CalculateResult.DB_POSTGRES:
+      case CalculateResult.DB_HIGHGO:
+      case CalculateResult.DB_XUGU:
+        sql = " SELECT * FROM t_calculation_formula where \"TYPE\" = 'USER' ";
+        break;
+      default:
+        sql = " SELECT * FROM t_calculation_formula where type = 'USER' ";
+    }
     List<CalculationFormula> list = new ArrayList<>();
     try {
       list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(CalculationFormula.class));
@@ -543,7 +570,18 @@ public class CalculationFormulaRepositoryImpl implements CalculationFormulaRepos
    */
   private void updateVersion() {
     String version = properties.getVersion();
+    String dbType = properties.getDbType();
     String sql = " UPDATE t_calculation_formula set FORMULA = '" + version + "' where type = 'VERSION' ";
+    switch (dbType) {
+      case CalculateResult.DB_KINGBASE:
+      case CalculateResult.DB_POSTGRES:
+      case CalculateResult.DB_HIGHGO:
+      case CalculateResult.DB_XUGU:
+        sql = " UPDATE t_calculation_formula SET \"FORMULA\"='" + version + "' WHERE \"TYPE\"='VERSION' ";
+        break;
+      default:
+        sql = " UPDATE t_calculation_formula set FORMULA = '" + version + "' where type = 'VERSION' ";
+    }
     try {
       jdbcTemplate.update(sql);
     } catch (DataAccessException e) {

BIN
src/main/resources/sql/t_calculation_formula.xlsx


+ 1 - 22
src/main/resources/sql/t_calculation_formula_highgo.sql

@@ -1,23 +1,2 @@
 DROP TABLE IF EXISTS T_CALCULATION_FORMULA;
-CREATE TABLE T_CALCULATION_FORMULA
-(
-    "ID"               INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
-    "TYPE"             VARCHAR(50) NOT NULL,
-    "ORDER_NO"         INTEGER,
-    "FORMULA"          TEXT        NOT NULL,
-    "PROVINCE"         VARCHAR(50) NOT NULL,
-    "ELECTRIC_TYPE"    VARCHAR(50) NOT NULL,
-    "STATION_CODE"     VARCHAR(50),
-    "RULE_FORMULA"     VARCHAR(50),
-    "IS_RATE"          VARCHAR(50) NOT NULL,
-    "MAX_MIN_LIMIT"    VARCHAR(50),
-    "STATE"            VARCHAR(50),
-    "DATA_SOURCE_TYPE" VARCHAR(50),
-    "HOW_MANY_DAYS"    VARCHAR(50),
-    "CREATE_TIME"      TIMESTAMP(0),
-    "CREATOR"          VARCHAR(50),
-    "LAST_MODIFIER"    VARCHAR(50),
-    "LAST_MODIFY_TIME" TIMESTAMP(0),
-    PRIMARY KEY ("ID") USING INDEX TABLESPACE "SYSTEM"
-) WITHOUT OIDS
-TABLESPACE "SYSTEM";
+CREATE TABLE T_CALCULATION_FORMULA ("ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,"TYPE" VARCHAR (50) NOT NULL,"ORDER_NO" INTEGER,"FORMULA" TEXT NOT NULL,"PROVINCE" VARCHAR (50) NOT NULL,"ELECTRIC_TYPE" VARCHAR (50) NOT NULL,"STATION_CODE" VARCHAR (50),"RULE_FORMULA" VARCHAR (50),"IS_RATE" VARCHAR (50) NOT NULL,"MAX_MIN_LIMIT" VARCHAR (50),"STATE" VARCHAR (50),"DATA_SOURCE_TYPE" VARCHAR (50),"HOW_MANY_DAYS" VARCHAR (50),"CREATE_TIME" TIMESTAMP (0),"CREATOR" VARCHAR (50),"LAST_MODIFIER" VARCHAR (50),"LAST_MODIFY_TIME" TIMESTAMP (0),PRIMARY KEY ("ID") USING INDEX TABLESPACE "SYSTEM") WITHOUT OIDS TABLESPACE "SYSTEM";

+ 1 - 20
src/main/resources/sql/t_calculation_formula_king_base.sql

@@ -1,21 +1,2 @@
 DROP TABLE IF EXISTS T_CALCULATION_FORMULA;
-CREATE TABLE T_CALCULATION_FORMULA(
- "ID" INTEGER IDENTITY (1,1),
- "TYPE" VARCHAR (50) NOT NULL,
- "ORDER_NO" INTEGER ,
- "FORMULA" TEXT NOT NULL,
- "PROVINCE" VARCHAR (50) NOT NULL,
- "ELECTRIC_TYPE" VARCHAR (50) NOT NULL,
- "STATION_CODE" VARCHAR (50) ,
- "RULE_FORMULA" VARCHAR (50) ,
- "IS_RATE" VARCHAR (50) NOT NULL,
- "MAX_MIN_LIMIT" VARCHAR (50) ,
- "STATE" VARCHAR (50) ,
- "DATA_SOURCE_TYPE" VARCHAR (50) ,
- "HOW_MANY_DAYS" VARCHAR (50) ,
- "CREATE_TIME" TIMESTAMP(0),
- "CREATOR" VARCHAR (50),
- "LAST_MODIFIER" VARCHAR (50),
- "LAST_MODIFY_TIME" TIMESTAMP(0),
-  PRIMARY KEY ("ID") USING INDEX TABLESPACE "SYSTEM") WITHOUT OIDS
-TABLESPACE "SYSTEM";
+CREATE TABLE T_CALCULATION_FORMULA ("ID" INTEGER IDENTITY (1,1),"TYPE" VARCHAR (50) NOT NULL,"ORDER_NO" INTEGER,"FORMULA" TEXT NOT NULL,"PROVINCE" VARCHAR (50) NOT NULL,"ELECTRIC_TYPE" VARCHAR (50) NOT NULL,"STATION_CODE" VARCHAR (50),"RULE_FORMULA" VARCHAR (50),"IS_RATE" VARCHAR (50) NOT NULL,"MAX_MIN_LIMIT" VARCHAR (50),"STATE" VARCHAR (50),"DATA_SOURCE_TYPE" VARCHAR (50),"HOW_MANY_DAYS" VARCHAR (50),"CREATE_TIME" TIMESTAMP (0),"CREATOR" VARCHAR (50),"LAST_MODIFIER" VARCHAR (50),"LAST_MODIFY_TIME" TIMESTAMP (0),PRIMARY KEY ("ID") USING INDEX TABLESPACE "SYSTEM") WITHOUT OIDS TABLESPACE "SYSTEM";

+ 2 - 21
src/main/resources/sql/t_calculation_formula_postgresql.sql

@@ -1,21 +1,2 @@
-DROP TABLE
-IF EXISTS T_CALCULATION_FORMULA;
-  CREATE TABLE T_CALCULATION_FORMULA (
-    "ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
-    "TYPE" VARCHAR (50) NOT NULL,
-    "ORDER_NO" INTEGER,
-    "FORMULA" TEXT NOT NULL,
-    "PROVINCE" VARCHAR (50) NOT NULL,
-    "ELECTRIC_TYPE" VARCHAR (50) NOT NULL,
-    "STATION_CODE" VARCHAR (50),
-    "RULE_FORMULA" VARCHAR (50),
-    "IS_RATE" VARCHAR (50) NOT NULL,
-    "MAX_MIN_LIMIT" VARCHAR (50),
-    "STATE" VARCHAR (50),
-    "DATA_SOURCE_TYPE" VARCHAR (50),
-    "HOW_MANY_DAYS" VARCHAR (50),
-    "CREATE_TIME" TIMESTAMP (0),
-    "CREATOR" VARCHAR (50),
-    "LAST_MODIFIER" VARCHAR (50),
-    "LAST_MODIFY_TIME" TIMESTAMP (0)
-  );
+DROP TABLE IF EXISTS T_CALCULATION_FORMULA;
+CREATE TABLE t_calculation_formula (id SERIAL PRIMARY KEY,"TYPE" VARCHAR (50) NOT NULL,"ORDER_NO" INTEGER,"FORMULA" TEXT NOT NULL,"PROVINCE" VARCHAR (50) NOT NULL,"ELECTRIC_TYPE" VARCHAR (50) NOT NULL,"STATION_CODE" VARCHAR (50),"RULE_FORMULA" VARCHAR (50),"IS_RATE" VARCHAR (50) NOT NULL,"MAX_MIN_LIMIT" VARCHAR (50),"STATE" VARCHAR (50),"DATA_SOURCE_TYPE" VARCHAR (50),"HOW_MANY_DAYS" VARCHAR (50),"CREATE_TIME" TIMESTAMP (0),"CREATOR" VARCHAR (50),"LAST_MODIFIER" VARCHAR (50),"LAST_MODIFY_TIME" TIMESTAMP (0));

+ 1 - 19
src/main/resources/sql/t_calculation_formula_xugu.sql

@@ -1,19 +1 @@
-CREATE TABLE T_CALCULATION_FORMULA (
-ID INTEGER identity(1,1),
-TYPE VARCHAR (50) NOT NULL,
-ORDER_NO INTEGER,
-FORMULA TEXT NOT NULL,
-PROVINCE VARCHAR (50) NOT NULL,
-ELECTRIC_TYPE VARCHAR (50) NOT NULL,
-STATION_CODE VARCHAR (50),
-RULE_FORMULA VARCHAR (50),
-IS_RATE VARCHAR (50) NOT NULL,
-MAX_MIN_LIMIT VARCHAR (50),
-STATE VARCHAR (50),
-DATA_SOURCE_TYPE VARCHAR (50),
-HOW_MANY_DAYS VARCHAR (50),
-CREATE_TIME TIMESTAMP(0),
-CREATOR VARCHAR (50),
-LAST_MODIFIER VARCHAR (50),
-LAST_MODIFY_TIME TIMESTAMP(0),
-PRIMARY KEY (ID));
+CREATE TABLE T_CALCULATION_FORMULA (ID INTEGER IDENTITY (1,1),TYPE VARCHAR (50) NOT NULL,ORDER_NO INTEGER,FORMULA TEXT NOT NULL,PROVINCE VARCHAR (50) NOT NULL,ELECTRIC_TYPE VARCHAR (50) NOT NULL,STATION_CODE VARCHAR (50),RULE_FORMULA VARCHAR (50),IS_RATE VARCHAR (50) NOT NULL,MAX_MIN_LIMIT VARCHAR (50),STATE VARCHAR (50),DATA_SOURCE_TYPE VARCHAR (50),HOW_MANY_DAYS VARCHAR (50),CREATE_TIME TIMESTAMP (0),CREATOR VARCHAR (50),LAST_MODIFIER VARCHAR (50),LAST_MODIFY_TIME TIMESTAMP (0),PRIMARY KEY (ID));