提交 d6f4d43b authored 作者: junjie's avatar junjie

feat(数据集):时间转换

上级 e963e586
...@@ -36,4 +36,6 @@ public class ChartViewFieldDTO implements Serializable { ...@@ -36,4 +36,6 @@ public class ChartViewFieldDTO implements Serializable {
private String sort; private String sort;
private List<ChartViewFieldFilterDTO> filter; private List<ChartViewFieldFilterDTO> filter;
private Integer deExtractType;
} }
...@@ -265,17 +265,29 @@ public class ChartViewService { ...@@ -265,17 +265,29 @@ public class ChartViewService {
if (StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*")) { if (StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*")) {
f.append(y.getSummary()).append("(").append(y.getDataeaseName()).append(")"); f.append(y.getSummary()).append("(").append(y.getDataeaseName()).append(")");
} else { } else {
f.append(y.getSummary()).append("(").append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append("))"); f.append("CAST(")
.append(y.getSummary()).append("(")
.append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
.append(") AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")");
} }
f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()); f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName());
return f.toString(); return f.toString();
}).toArray(String[]::new); }).toArray(String[]::new);
String[] groupField = xAxis.stream().map(x -> { String[] groupField = xAxis.stream().map(x -> {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
if (x.getDeType() == 1) { // 如果原始类型为时间
stringBuilder.append("FROM_UNIXTIME(cast(").append(x.getDataeaseName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(x.getDataeaseName()); if (x.getDeExtractType() == 1) {
if (x.getDeType() == 2 || x.getDeType() == 3) {
stringBuilder.append("unix_timestamp(").append(x.getDataeaseName()).append(")*1000 as ").append(x.getDataeaseName());
} else {
stringBuilder.append(x.getDataeaseName());
}
} else { } else {
stringBuilder.append(x.getDataeaseName()); if (x.getDeType() == 1) {
stringBuilder.append("FROM_UNIXTIME(cast(").append(x.getDataeaseName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(x.getDataeaseName());
} else {
stringBuilder.append(x.getDataeaseName());
}
} }
return stringBuilder.toString(); return stringBuilder.toString();
}).toArray(String[]::new); }).toArray(String[]::new);
......
...@@ -516,8 +516,9 @@ public class DataSetTableService { ...@@ -516,8 +516,9 @@ public class DataSetTableService {
datasetTableField.setDeType(transFieldType(filed.getFieldType())); datasetTableField.setDeType(transFieldType(filed.getFieldType()));
datasetTableField.setDeExtractType(transFieldType(filed.getFieldType())); datasetTableField.setDeExtractType(transFieldType(filed.getFieldType()));
} else { } else {
datasetTableField.setDeType(transFieldType(ds.getType(), filed.getFieldType())); Integer fieldType = transFieldType(ds.getType(), filed.getFieldType());
datasetTableField.setDeExtractType(transFieldType(ds.getType(), filed.getFieldType())); datasetTableField.setDeType(fieldType == 4 ? 2 : fieldType);
datasetTableField.setDeExtractType(fieldType);
} }
datasetTableField.setSize(filed.getFieldSize()); datasetTableField.setSize(filed.getFieldSize());
datasetTableField.setChecked(true); datasetTableField.setChecked(true);
...@@ -555,10 +556,19 @@ public class DataSetTableService { ...@@ -555,10 +556,19 @@ public class DataSetTableService {
public String createQuerySQL(String type, String table, List<DatasetTableField> fields) { public String createQuerySQL(String type, String table, List<DatasetTableField> fields) {
String[] array = fields.stream().map(f -> { String[] array = fields.stream().map(f -> {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
if (f.getDeType() == 1) { // 如果原始类型为时间
stringBuilder.append("FROM_UNIXTIME(cast(").append(f.getDataeaseName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(f.getDataeaseName()); if (f.getDeExtractType() == 1) {
if (f.getDeType() == 2 || f.getDeType() == 3) {
stringBuilder.append("unix_timestamp(").append(f.getDataeaseName()).append(")*1000 as ").append(f.getDataeaseName());
} else {
stringBuilder.append(f.getDataeaseName());
}
} else { } else {
stringBuilder.append(f.getDataeaseName()); if (f.getDeType() == 1) {
stringBuilder.append("FROM_UNIXTIME(cast(").append(f.getDataeaseName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(f.getDataeaseName());
} else {
stringBuilder.append(f.getDataeaseName());
}
} }
return stringBuilder.toString(); return stringBuilder.toString();
}).toArray(String[]::new); }).toArray(String[]::new);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论