Bladeren bron

新建项目

523096025 1 jaar geleden
bovenliggende
commit
1c131ad3f5

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

@@ -11,6 +11,7 @@ import com.huimv.env.common.service.IEnergyElectricityService;
 import com.huimv.env.common.service.IEnergyEnvDeviceService;
 import com.huimv.env.common.service.IEnergyWaterService;
 import com.huimv.env.device.service.DataService;
+import org.apache.commons.lang3.StringUtils;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -43,6 +44,7 @@ public class DataServiceImpl implements DataService {
         String voltage = String.format("%.1f", (double)Integer.parseInt(payload.substring(8, 10),16)/10.0);
         // 数值
         Integer originalData = Integer.parseInt(payload.substring(10),16);
+        System.out.println(originalData +" = originalData");
         EnergyEnvDevice deviceCode = energyEnvDeviceService.getOne(new QueryWrapper<EnergyEnvDevice>().eq("device_code", nodeEui));
         if (ObjectUtil.isNotEmpty(deviceCode)){
             Integer farmId = deviceCode.getFarmId();
@@ -67,6 +69,9 @@ public class DataServiceImpl implements DataService {
         if (ObjectUtil.isNotEmpty(one)){
             lastData =  one.get(0).getOriginalValue();
         }
+        if (originalData == null){
+            originalData = 0;
+        }
         //差值
         Integer str =   (originalData - Integer.parseInt(lastData));
 
@@ -84,7 +89,12 @@ public class DataServiceImpl implements DataService {
         envWater.setOther2(farmName);
 
         envWater.setDeviceType(Integer.parseInt(devType));
-        BigDecimal bigDecimal = new BigDecimal(one.get(0).getOther3());
+        String other3 = one.get(0).getOther3();
+
+        if (StringUtils.isBlank(other3)){
+            other3 = (originalData-difference)+"";
+        }
+        BigDecimal bigDecimal = new BigDecimal(other3);
         if(str <0 ){
             envWater.setElectricityValue( String.format("%.1f", (double)originalData*transformer/10.0));
             BigDecimal bigDecimal1 = new BigDecimal(String.format("%.1f", (double) originalData * transformer / 10.0));