diff --git a/db/upgrade20250501.sql b/db/upgrade20250501.sql index 0f8ffb0..5eb6c69 100644 --- a/db/upgrade20250501.sql +++ b/db/upgrade20250501.sql @@ -3,3 +3,6 @@ ADD COLUMN `upload` INT NULL COMMENT '0:不传; 1:要传;' AFTER `active`; ALTER TABLE `ied_dl_record` ADD COLUMN `upload` INT(11) NULL DEFAULT NULL COMMENT '0:未传; 1:已传;' AFTER `data`; + +ALTER TABLE `i2sync_field` +ADD COLUMN `conversion` VARCHAR(45) NULL COMMENT '单位换算' AFTER `attach`; diff --git a/src/main/java/com/xydl/cac/entity/I2syncField.java b/src/main/java/com/xydl/cac/entity/I2syncField.java index 98d1a05..d770945 100644 --- a/src/main/java/com/xydl/cac/entity/I2syncField.java +++ b/src/main/java/com/xydl/cac/entity/I2syncField.java @@ -36,4 +36,7 @@ public class I2syncField { @Column(name = "attach") private String attach; + @Column(name = "conversion") + private String conversion; + } \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java index 3dab3fe..dc85d65 100644 --- a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java +++ b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java @@ -6,6 +6,7 @@ import com.xydl.cac.model.i2sync.Attr; import com.xydl.cac.model.i2sync.Datanode; import com.xydl.cac.model.i2sync.Monitordata; import com.xydl.cac.model.i2sync.Request; +import com.xydl.cac.util.DataUtil; import com.xydl.cac.util.DateUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -65,6 +66,9 @@ public class I2DataTransformer { List attrs = new ArrayList<>(); for (I2syncField field : fieldList) { Object value = dataMap.get(field.getFieldName()); + if (StringUtils.isNotBlank(field.getConversion())) { + value = DataUtil.convert(value, field.getConversion()); + } if (value != null) { Attr attr = new Attr(); attr.setName(field.getDestFieldName()); diff --git a/src/main/java/com/xydl/cac/util/DataUtil.java b/src/main/java/com/xydl/cac/util/DataUtil.java index a22ca43..87c68a5 100644 --- a/src/main/java/com/xydl/cac/util/DataUtil.java +++ b/src/main/java/com/xydl/cac/util/DataUtil.java @@ -66,4 +66,28 @@ public class DataUtil { list.addAll(newlist); } } + + public static Object convert(Object obj, String conversion) { + if (obj instanceof Number) { + float f = (float) obj; + if (conversion.startsWith("*")) { + float c = Float.parseFloat(conversion.replaceAll("\\*", ""). + replaceAll(" ", "")); + return f * c; + } else if (conversion.startsWith("/")) { + float c = Float.parseFloat(conversion.replaceAll("\\/", ""). + replaceAll(" ", "")); + return f / c; + } else if (conversion.startsWith("+")) { + float c = Float.parseFloat(conversion.replaceAll("\\+", ""). + replaceAll(" ", "")); + return f + c; + } else if (conversion.startsWith("-")) { + float c = Float.parseFloat(conversion.replaceAll("\\-", ""). + replaceAll(" ", "")); + return f - c; + } + } + return obj; + } }