perf: 优化自动识别时间字段

dev
huangfeng 10 months ago
parent 99ca4d4d34
commit 08b47022d7

@ -74,13 +74,32 @@ public class DataServiceImpl implements DataService {
if (!col.equals("id") && !col.equals("eqmid") if (!col.equals("id") && !col.equals("eqmid")
&& !col.equals("acquisitionTime") && !col.equals("d_time") && !col.equals("acquisitionTime") && !col.equals("d_time")
&& !col.equals("create_time") && !col.equals("update_time") && !col.equals("create_time") && !col.equals("update_time")
&& !col.equals("isupload")) { && !col.equals("isupload") && !col.equals("capturetime")) {
result.add(item); result.add(item);
} }
} }
return result; return result;
} }
private String getTimeField(String tableName) {
if (StringUtils.isBlank(schema)) {
this.getDatabase();
}
String field = "d_time";
String sql = "SELECT COLUMN_NAME name, COLUMN_COMMENT comment, DATA_TYPE type FROM information_schema.columns WHERE TABLE_NAME='"
+ tableName + "' AND TABLE_SCHEMA='" + schema + "' ORDER BY name desc";
List<ColumnModel> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ColumnModel.class));
for (ColumnModel item : list) {
String col = item.getName();
if (col.equals("acquisitionTime") || col.equals("d_time")
|| col.equals("capturetime")) {
field = col;
break;
}
}
return field;
}
private void getDatabase() { private void getDatabase() {
String sql = "select database()"; String sql = "select database()";
List<String> list = jdbcTemplate.queryForList(sql, String.class); List<String> list = jdbcTemplate.queryForList(sql, String.class);
@ -170,7 +189,7 @@ public class DataServiceImpl implements DataService {
private OnePage<Map<String, Object>> doSqlData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) { private OnePage<Map<String, Object>> doSqlData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) {
String devField = DataTable.getDevidField(sensor.getTableName()); String devField = DataTable.getDevidField(sensor.getTableName());
String timeField = DataTable.getTimeField(sensor.getTableName()); String timeField = this.getTimeField(sensor.getTableName());
OnePage result = new OnePage(); OnePage result = new OnePage();
String sqlFrom = " FROM " + sensor.getTableName(); String sqlFrom = " FROM " + sensor.getTableName();

Loading…
Cancel
Save