From 247e6fcfd4d294147fc133b70c701427b2777afa Mon Sep 17 00:00:00 2001 From: huangfeng Date: Sun, 27 Apr 2025 13:08:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0i2=E4=BC=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=97=B6=E5=80=99=E5=8F=AF=E4=BB=A5=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E6=8D=A2=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/upgrade20250501.sql | 3 +++ .../java/com/xydl/cac/entity/I2syncField.java | 3 +++ .../xydl/cac/transform/I2DataTransformer.java | 4 ++++ src/main/java/com/xydl/cac/util/DataUtil.java | 24 +++++++++++++++++++ 4 files changed, 34 insertions(+) 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; + } }