fix(数据集): 抽取数据精度丢失

This commit is contained in:
taojinlong 2022-09-22 16:33:01 +08:00
parent 067e1facb2
commit 0f906acbad
4 changed files with 12 additions and 1 deletions

View File

@ -173,6 +173,9 @@ public class JdbcProvider extends DefaultJdbcProvider {
}
}
}
if(StringUtils.isNotEmpty(tableField.getFieldType()) && tableField.getFieldType().equalsIgnoreCase("DECIMAL")){
tableField.setAccuracy(Integer.valueOf(resultSet.getString("DECIMAL_DIGITS")));
}
return tableField;
}

View File

@ -72,7 +72,11 @@ public class DorisDDLProvider extends DDLProviderImpl {
Column_Fields.append("bigint").append(",`");
break;
case 3:
Column_Fields.append("DOUBLE").append(",`");
if(datasetTableField.getType().equalsIgnoreCase("DECIMAL") && datasetTableField.getAccuracy() != 0){
Column_Fields.append("DECIMAL(" + datasetTableField.getSize() + "," + datasetTableField.getAccuracy() + ")").append(",`");
}else {
Column_Fields.append("DOUBLE").append(",`");
}
break;
case 4:
Column_Fields.append("TINYINT(length)".replace("length", String.valueOf(size))).append(",`");

View File

@ -1947,6 +1947,7 @@ public class DataSetTableService {
datasetTableField.setOriginName(filed.getFieldName());
datasetTableField.setType(filed.getFieldType());
datasetTableField.setSize(filed.getFieldSize());
datasetTableField.setAccuracy(filed.getAccuracy());
if (ObjectUtils.isEmpty(ds)) {
datasetTableField.setDeExtractType(transFieldType(filed.getFieldType()));
} else {
@ -1972,6 +1973,7 @@ public class DataSetTableService {
datasetTableField.setDeExtractType(fieldType);
}
datasetTableField.setSize(filed.getFieldSize());
datasetTableField.setAccuracy(filed.getAccuracy());
datasetTableField.setChecked(true);
datasetTableField.setLastSyncTime(syncTime);
datasetTableField.setExtField(0);

View File

@ -121,3 +121,5 @@ ALTER TABLE `sys_user_assist`
ADD COLUMN `dingtalk_id` varchar(255) NULL COMMENT '钉钉账号' AFTER `wecom_id`,
ADD COLUMN `lark_id` varchar(255) NULL COMMENT '飞书账号' AFTER `dingtalk_id`;
ALTER TABLE `dataset_table_field` ADD COLUMN `accuracy` INT(11) NULL DEFAULT 0 COMMENT '精度' AFTER `last_sync_time`;