523096025 1 год назад
Родитель
Сommit
617d8c88e7

+ 1 - 0
huimv-env-admin/src/main/resources/application-dev.yml

@@ -6,6 +6,7 @@ spring:
     name: huimv-env-admin
 
   datasource:
+#    url: jdbc:mysql://115.238.57.190:3306/huimv-env-hylintech?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
     url: jdbc:mysql://115.238.57.190:3306/huimv-env-hylintech?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
     username: root
     password: hm123456

+ 2 - 0
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnergyEnvDevice.java

@@ -80,5 +80,7 @@ public class EnergyEnvDevice implements Serializable {
     private String remark;
 
     private Integer deviceType;
+    private Integer transformer;
+    private Integer difference;
 
 }

+ 15 - 11
huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DataServiceImpl.java

@@ -48,10 +48,10 @@ public class DataServiceImpl implements DataService {
             Integer unitId = deviceCode.getUnitId();
             //小口径水表
             if ("01".equals(devType) || "02".equals(devType)){
-                saveShui(devType,voltage,originalData,timestamp,nodeEui,payload,farmId,unitId,deviceCode.getUnitName(),deviceCode.getRemark());
+                saveShui(devType,voltage,originalData,timestamp,nodeEui,payload,farmId,unitId,deviceCode.getUnitName(),deviceCode.getRemark(),deviceCode.getTransformer(),deviceCode.getDifference());
             }
             if ("03".equals(devType)){
-                saveDian(devType,voltage,originalData,timestamp,nodeEui,payload,farmId,unitId,deviceCode.getUnitName(),deviceCode.getRemark());
+                saveDian(devType,voltage,originalData,timestamp,nodeEui,payload,farmId,unitId,deviceCode.getUnitName(),deviceCode.getRemark(),deviceCode.getTransformer(),deviceCode.getDifference());
             }
         }
 
@@ -60,7 +60,7 @@ public class DataServiceImpl implements DataService {
 
 
     private void saveDian(String devType ,String voltage, Integer originalData, String timestamp, String nodeEui,String payload
-            ,Integer farmId,Integer unitId,String unitName,String farmName) throws ParseException {
+            ,Integer farmId,Integer unitId,String unitName,String farmName,int transformer,int difference) throws ParseException {
         EnergyElectricity one = energyElectricityService.getOne(new QueryWrapper<EnergyElectricity>().eq("chip_code", nodeEui).orderByDesc("id").last("limit 1"));
         String lastData ="0";
         if (ObjectUtil.isNotEmpty(one)){
@@ -76,32 +76,35 @@ public class DataServiceImpl implements DataService {
         envWater.setUploadDate(new Date(Long.parseLong(timestamp)));
         envWater.setFarmId(farmId);
         envWater.setUnitId(unitId);
-        envWater.setOriginalValue(originalData+"");
+        envWater.setOriginalValue((originalData-difference)+"");
         envWater.setChipCode(nodeEui);
         envWater.setOriginalDate(payload);
         envWater.setOther1(unitName);
         envWater.setOther2(farmName);
         envWater.setDeviceType(Integer.parseInt(devType));
         if(str <0 ){
-            envWater.setElectricityValue( String.format("%.1f", (double)originalData/10.0));
+            envWater.setElectricityValue( String.format("%.1f", (double)originalData*transformer/10.0));
         }else if (str == 0){
             envWater.setElectricityValue("0");
         }else {
-            envWater.setElectricityValue( String.format("%.1f", (double)str/10.0));
+            envWater.setElectricityValue( String.format("%.1f", (double)str*transformer/10.0));
         }
         envWater.setVoltage(voltage);
         energyElectricityService.save(envWater);
     }
 
     private void saveShui(String devType ,String voltage, Integer originalData, String timestamp, String nodeEui
-            ,String payload,Integer farmId,Integer unitId,String unitName,String farmName) throws ParseException {
+            ,String payload,Integer farmId,Integer unitId,String unitName,String farmName,int transformer,int difference) throws ParseException {
         EnergyWater one = energyWaterService.getOne(new QueryWrapper<EnergyWater>().eq("chip_code", nodeEui).orderByDesc("id").last("limit 1"));
         String lastData ="0";
         if (ObjectUtil.isNotEmpty(one)){
             lastData =  one.getOriginalValue();
         }
         //差值
-       Integer str =   (originalData - Integer.parseInt(lastData));
+       Integer str =   (originalData - Integer.parseInt(lastData) -difference);
+        if (str <0){
+             str =   (originalData - Integer.parseInt(lastData));
+        }
 
         // 将时间戳字符串解析为Date对象
         EnergyWater envWater = new EnergyWater();
@@ -110,18 +113,19 @@ public class DataServiceImpl implements DataService {
         envWater.setDeviceType(Integer.parseInt(devType));
         envWater.setUploadDate(new Date(Long.parseLong(timestamp)));
         envWater.setFarmId(farmId);
-        envWater.setOriginalValue(originalData+"");
+        envWater.setOriginalValue((originalData-difference)+"");
         envWater.setChipCode(nodeEui);
         envWater.setUnitId(unitId);
         envWater.setOther1(unitName);
         envWater.setOther2(farmName);
         envWater.setOriginalDate(payload);
         if(str <0 ){
-            envWater.setWaterValue( String.format("%.1f", (double)originalData/10.0));
+            envWater.setWaterValue( String.format("%.1f", (double)originalData*transformer/10.0));
         }else if (str == 0){
             envWater.setWaterValue("0");
+
         }else {
-            envWater.setWaterValue( String.format("%.1f", (double)str/10.0));
+            envWater.setWaterValue( String.format("%.1f", (double)str*transformer/10.0));
         }
 
         envWater.setVoltage(voltage);