|
|
@@ -104,11 +104,16 @@ public class PanelInstanceServiceImpl extends BaseService<PanelInstance> impleme
|
|
|
if (parameter.getType() == Type.SQL) {
|
|
|
try {
|
|
|
NewbieJdbcSupport jdbc = dataSourceManager.getJdbc(dataSourceCode);
|
|
|
- List<Map<String, Object>> listMap = jdbc.listMap(String.valueOf(parameter.getValue()));
|
|
|
- if (listMap == null) {
|
|
|
- listMap = new ArrayList<>();
|
|
|
+ parameter.setValue(getValue(jdbc, String.valueOf(parameter.getValue())));
|
|
|
+ // 并且需要解析 optionalValues 里可选择的值
|
|
|
+ List<Object> optionalValues = parameter.getOptionalValues();
|
|
|
+ if (!CollectionUtils.isEmpty(optionalValues)) {
|
|
|
+ for (int i = 0; i < optionalValues.size(); i++) {
|
|
|
+ Object optionValue = optionalValues.get(i);
|
|
|
+ optionalValues.set(i, getValue(jdbc, String.valueOf(optionValue)));
|
|
|
+ }
|
|
|
+ parameter.setOptionalValues(optionalValues);
|
|
|
}
|
|
|
- parameter.setValue(JSONObject.toJSONString(listMap));
|
|
|
} catch (SQLException e) {
|
|
|
throw new IllegalStateException("参数解析错误", e);
|
|
|
}
|
|
|
@@ -117,6 +122,14 @@ public class PanelInstanceServiceImpl extends BaseService<PanelInstance> impleme
|
|
|
return parameters;
|
|
|
}
|
|
|
|
|
|
+ private String getValue(@NotEmpty("jdbc") NewbieJdbcSupport jdbc, @NotEmpty("sql") String sql) {
|
|
|
+ List<Map<String, Object>> listMap = jdbc.listMap(sql);
|
|
|
+ if (listMap == null) {
|
|
|
+ listMap = new ArrayList<>();
|
|
|
+ }
|
|
|
+ return JSONObject.toJSONString(listMap);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 比较参数数量、名称等是否一致
|
|
|
*
|
|
|
@@ -265,8 +278,7 @@ public class PanelInstanceServiceImpl extends BaseService<PanelInstance> impleme
|
|
|
throw new IllegalStateException("面板 '" + panel.getName() + "' 未关联看板,请联系管理员");
|
|
|
}
|
|
|
panelInstance.initKanbanCodes(kanbans);
|
|
|
- panelInstanceDao.save(panelInstance);
|
|
|
- return panelInstance;
|
|
|
+ return panelInstanceDao.save(panelInstance);
|
|
|
}
|
|
|
|
|
|
/**
|