Эх сурвалжийг харах

模板计算过程问题,通过 jdbcTemplate 处理调整接口

CodeLife Leno 3 долоо хоног өмнө
parent
commit
b4ead6d97a

+ 14 - 14
Procedure/backend/project/src/main/java/com/sundata/config/DefaultDataSourceConfig.java

@@ -57,20 +57,20 @@ public class DefaultDataSourceConfig {
     @Bean
     public DataSources initOtherDatasource() {
         DataSources dataSources = new DataSources();
-        Setting setting = new Setting("OtherDBConfig.setting");
-//		String group = "GBaseDB";
-        setting.getGroups().forEach(group -> {
-            HikariConfig config = new HikariConfig();
-            config.setDriverClassName(setting.getByGroup("driver", group));
-            config.setJdbcUrl(setting.getByGroup("url", group));
-            config.setUsername(setting.getByGroup("user", group));
-            config.setPassword(setting.getByGroup("pass", group));
-            config.setMaximumPoolSize(5);
-            config.setMinimumIdle(1);
-            config.setAutoCommit(true);//自动提交
-            HikariDataSource ds = new HikariDataSource(config);
-            dataSources.setDataSource(group, ds);
-        });
+//        Setting setting = new Setting("OtherDBConfig.setting");
+////		String group = "GBaseDB";
+//        setting.getGroups().forEach(group -> {
+//            HikariConfig config = new HikariConfig();
+//            config.setDriverClassName(setting.getByGroup("driver", group));
+//            config.setJdbcUrl(setting.getByGroup("url", group));
+//            config.setUsername(setting.getByGroup("user", group));
+//            config.setPassword(setting.getByGroup("pass", group));
+//            config.setMaximumPoolSize(5);
+//            config.setMinimumIdle(1);
+//            config.setAutoCommit(true);//自动提交
+//            HikariDataSource ds = new HikariDataSource(config);
+//            dataSources.setDataSource(group, ds);
+//        });
 
         return dataSources;
     }

+ 3 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/calc/param/ParamCalcSQLMap.java

@@ -8,6 +8,7 @@ import org.apache.commons.text.StringSubstitutor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 
 import javax.sql.DataSource;
 import java.util.List;
@@ -27,9 +28,9 @@ public class ParamCalcSQLMap implements ParamCalc {
             StringSubstitutor sub = new StringSubstitutor(context);
             sql = sub.replace(sql);
         }
-        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class);
+        NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         if (jdbcTemplate == null) {
-            jdbcTemplate = new JdbcTemplate(SpringUtil.getBean(DataSource.class));
+            jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         }
         List<Map<String,Object>> mapList = jdbcTemplate.query(sql,new UpperMapRowMapper());
         if (mapList.isEmpty()) {

+ 3 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/calc/param/ParamCalcSQLMapList.java

@@ -8,6 +8,7 @@ import org.apache.commons.text.StringSubstitutor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 
 import javax.sql.DataSource;
 import java.util.List;
@@ -23,9 +24,9 @@ public class ParamCalcSQLMapList implements ParamCalc {
             StringSubstitutor sub = new StringSubstitutor(context);
             sql = sub.replace(sql);
         }
-        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class);
+        NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         if (jdbcTemplate == null) {
-            jdbcTemplate = new JdbcTemplate(SpringUtil.getBean(DataSource.class));
+            jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         }
         List<Map<String, Object>> mapList = jdbcTemplate.query(sql, new UpperMapRowMapper());
         if (mapList.isEmpty()) {

+ 6 - 4
Procedure/backend/project/src/main/java/com/sundata/product/rwa/calc/service/ReportCalcService.java

@@ -21,6 +21,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.sql.DataSource;
@@ -29,6 +30,7 @@ import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.nio.file.Files;
+import java.sql.PreparedStatement;
 import java.util.*;
 
 /**
@@ -57,9 +59,9 @@ public class ReportCalcService {
     public void createAllReport(String calcIndex, String dataDate, Map<String, Object> context, Map<String, Object> reportParam) {
 
         // 计算过程中,需要循环配置表并将每一个数据进行处理
-        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class);
+        NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         if (jdbcTemplate == null) {
-            jdbcTemplate = new JdbcTemplate(SpringUtil.getBean(DataSource.class));
+            jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         }
         MapSqlParameterSource sqlParam = new MapSqlParameterSource(context);
         String CALCINDEX = context.get("CALCINDEX").toString();
@@ -68,8 +70,8 @@ public class ReportCalcService {
         String TERM = context.get("TERM").toString();
         String DATA_DATE = context.get("DATA_DATE").toString();
 
-        jdbcTemplate.execute("truncate table RWA_SYSTEM_REPORT_PROCESS_TABLE ");
-        jdbcTemplate.execute("truncate table RWA_SYSTEM_REPORT_PROCESS_TABLEUNIT ");
+        jdbcTemplate.execute("truncate table RWA_SYSTEM_REPORT_PROCESS_TABLE ", PreparedStatement::executeUpdate);
+        jdbcTemplate.execute("truncate table RWA_SYSTEM_REPORT_PROCESS_TABLEUNIT ",PreparedStatement::executeUpdate);
 
         List<ReportDefinitionModel> reportParamDefineModels = service.getDataList(new ReportDefinitionModel());
         context.putAll(reportParam);

+ 3 - 3
Procedure/backend/project/src/main/java/com/sundata/product/rwa/calc/service/ReportUnitParamCalcService.java

@@ -15,6 +15,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.sql.DataSource;
@@ -37,9 +38,9 @@ public class ReportUnitParamCalcService {
     public List<ReportUnitParamCalcModel> calc(String calcindex, String dataDate, Map<String, Object> context, String reportno) {
         List<ReportCalculationModel> modelList = reportFillingConfigMapper.selectCalcReportData(reportno);
         // 计算过程中,需要循环配置表并将每一个数据进行处理
-        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class);
+        NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         if (jdbcTemplate == null) {
-            jdbcTemplate = new JdbcTemplate(SpringUtil.getBean(DataSource.class));
+            jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         }
 
         context.put("REPORT_NO", reportno);
@@ -73,7 +74,6 @@ public class ReportUnitParamCalcService {
             sqlParam.addValue("CALC_TOOK", timeInterval.interval());
             sqlParam.addValue("REPORT_UNIT_STR_TIME", DateUtil.formatDateTime(startDateTime));
             sqlParam.addValue("REPORT_UNIT_END_TIME", DateUtil.formatDateTime(new Date()));
-
             jdbcTemplate.update(sql, sqlParam);
         }
 

+ 5 - 3
Procedure/backend/project/src/main/java/com/sundata/product/rwa/calc/service/implement/units/GeneralLedgerGetterUnit.java

@@ -21,10 +21,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 
 import javax.sql.DataSource;
 import java.math.BigDecimal;
 import java.sql.Connection;
+import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.util.Calendar;
 import java.util.HashMap;
@@ -118,9 +120,9 @@ public class GeneralLedgerGetterUnit extends CalcUnit {
             newContext.put(key, value);
         }
         StringSubstitutor sub = new StringSubstitutor(newContext);
-        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class);
+        NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         if (jdbcTemplate == null) {
-            jdbcTemplate = new JdbcTemplate(SpringUtil.getBean(DataSource.class));
+            jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         }
         MapSqlParameterSource sqlParam = new MapSqlParameterSource(context);
         String CALCINDEX = calculateInstanceNumber;
@@ -141,7 +143,7 @@ public class GeneralLedgerGetterUnit extends CalcUnit {
 
         String deleteSql = "truncate table rwa_apm_bus_rs_ledgergeneral";
 
-        jdbcTemplate.execute(deleteSql);
+        jdbcTemplate.execute(deleteSql, PreparedStatement::execute);
 
         // 初始化 表外项目划分
         List<Map<String, Object>> offObjectTypes = jdbcTemplate.query("select CALCINDEX, SDATE, EDATE, TERM, DATA_DATE, OFFOBJECT_NO, OFFOBJECT_NAME, OFFOBJECT_STAGE_ID, OFFOBJECT_INDEX, DEFAULT_OUT, OFFOBJECT_SUPER, ISMINI, CCF, RISK_EXPOSE_CLASS_CODE, YESORNO from RWA_CALC_CONF_OFFBALANCEPROTYPE", new UpperMapRowMapper());

+ 6 - 4
Procedure/backend/project/src/main/java/com/sundata/product/rwa/calc/service/implement/units/GeneralLedgerUnit.java

@@ -23,10 +23,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 
 import javax.sql.DataSource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.sql.PreparedStatement;
 import java.text.DecimalFormat;
 import java.util.Calendar;
 import java.util.HashMap;
@@ -130,9 +132,9 @@ public class GeneralLedgerUnit extends CalcUnit {
         }
         StringSubstitutor sub = new StringSubstitutor(newContext);
 
-        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class);
+        NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         if (jdbcTemplate == null) {
-            jdbcTemplate = new JdbcTemplate(SpringUtil.getBean(DataSource.class));
+            jdbcTemplate = new NamedParameterJdbcTemplate(SpringUtil.getBean(DataSource.class));
         }
 
         MapSqlParameterSource sqlParam = new MapSqlParameterSource(context);
@@ -157,8 +159,8 @@ public class GeneralLedgerUnit extends CalcUnit {
         List<DiffconfigListModel> diffconfigListModels = diffconfigListService.rule_querylist(new DiffconfigListModel());
         Map<String, DiffconfigListModel> subjectDiffConfig = new HashMap<>();
 
-        jdbcTemplate.execute("truncate table rwa_apm_bus_rs_accadjustment ");
-        jdbcTemplate.execute("truncate table rwa_leart_ins_ledgresult ");
+        jdbcTemplate.execute("truncate table rwa_apm_bus_rs_accadjustment ", PreparedStatement::execute);
+        jdbcTemplate.execute("truncate table rwa_leart_ins_ledgresult ", PreparedStatement::execute);
         // 初始化 风险暴露分类
         List<Map<String, Object>> riskTypeList = jdbcTemplate.query("select CALCINDEX, SDATE, EDATE, TERM, DATA_DATE, RISKEXPOSURE_NO, RISKEXPOSURE_NAME,RISKEXPOSURE_STAGE_ID, DEFAULT_OUT, RISKEXPOSURE_INDEX, RISKEXPOSURE_SUPER,RISKEXPOSURE_ISMINI, RISKEXPOSURE_WEIGHT, RISKEXPOSURE_STATE from RWA_CALC_CONF_RISKEXPOSURE", new UpperMapRowMapper());
         Map<String, RiskExposureDefinitionModel> riskExposureDefinitionModelMap = new HashMap<>();