|
@@ -109,7 +109,15 @@ public class GeneralLedgerGetterUnit extends CalcUnit {
|
|
|
@Override
|
|
|
public void calc(CalcResult<String, Object> thisResult, String calculateInstanceNumber, Map<String, Object> context, Map<CalcUnit, CalcResult<String, Object>> sourceResults) {
|
|
|
// 计算过程中,需要循环配置表并将每一个数据进行处理
|
|
|
- StringSubstitutor sub = new StringSubstitutor(context);
|
|
|
+ Map<String,Object> newContext = new HashMap<>();
|
|
|
+ for (String key: context.keySet()) {
|
|
|
+ Object value = context.get(key);
|
|
|
+ if (value instanceof String) {
|
|
|
+ value = "'"+ value +"'";
|
|
|
+ }
|
|
|
+ newContext.put(key, value);
|
|
|
+ }
|
|
|
+ StringSubstitutor sub = new StringSubstitutor(newContext);
|
|
|
JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class);
|
|
|
if (jdbcTemplate == null) {
|
|
|
jdbcTemplate = new JdbcTemplate(SpringUtil.getBean(DataSource.class));
|
|
@@ -188,7 +196,7 @@ public class GeneralLedgerGetterUnit extends CalcUnit {
|
|
|
Map<String, Object> map = ledgerConfigs.get(i);
|
|
|
|
|
|
String getterSql = (String) DataUtil.getDataDefault(map.get("LEDGER_GETDATA_RULE"), String.class);
|
|
|
- getterSql = getterSql.replace("#{dataDate}","'#{dataDate}‘");
|
|
|
+ getterSql = getterSql.replace("#{","${"); // 处理所有的配置转为 可被替换的 $
|
|
|
String LEDGER_GETDATA_RULE_SQL = sub.replace(getterSql);
|
|
|
String BALANCE_Str = DBExecutor.doQuery(LEDGER_GETDATA_RULE_SQL);
|
|
|
String LOAN_REFERENCE_NO = "ZZQS" + DataUtil.getDataDefault(map.get("SUBJECT_CODES"), String.class);
|
|
@@ -198,7 +206,12 @@ public class GeneralLedgerGetterUnit extends CalcUnit {
|
|
|
BigDecimal BALANCE = (BigDecimal) DataUtil.getDataDefault(BALANCE_Str, BigDecimal.class);
|
|
|
String CURRENCY = "CNY";
|
|
|
String LEDGER_OFFOBJECT_NO = (String) DataUtil.getDataDefault(map.get("LEDGER_OFFOBJECT_NO"), String.class);
|
|
|
- String LEDGER_OFFOBJECT_NAME = (String) DataUtil.getDataDefault(infoListModel.get(LEDGER_OFFOBJECT_NO).getOffobjectName(), String.class);
|
|
|
+ String LEDGER_OFFOBJECT_NAME;
|
|
|
+ if (infoListModel.get(LEDGER_OFFOBJECT_NO) == null || map.get("LEDGER_OFFOBJECT_NO") == null){
|
|
|
+ LEDGER_OFFOBJECT_NAME = "";
|
|
|
+ }else{
|
|
|
+ LEDGER_OFFOBJECT_NAME = (String) DataUtil.getDataDefault(infoListModel.get(LEDGER_OFFOBJECT_NO).getOffobjectName(), String.class);
|
|
|
+ }
|
|
|
BigDecimal CCF = infoListModel.get(LEDGER_OFFOBJECT_NO).getCcf();
|
|
|
String RISK_EXPOSURE_LEV01_CODE = "";
|
|
|
String RISK_EXPOSURE_LEV01_CODE_NAME = "";
|