diff --git a/util/src/test/java/com/ccsens/util/OtherTest.java b/util/src/test/java/com/ccsens/util/OtherTest.java index 94b6482a..fead9a28 100644 --- a/util/src/test/java/com/ccsens/util/OtherTest.java +++ b/util/src/test/java/com/ccsens/util/OtherTest.java @@ -9,6 +9,7 @@ import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; import java.io.File; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; @@ -52,4 +53,16 @@ public class OtherTest { System.out.println(Math.ceil((float)a/(float)b)); } + + @Test + public void test5() { + BigDecimal a = BigDecimal.valueOf(1.255); + BigDecimal b = BigDecimal.valueOf(1.256); + BigDecimal aa = a.divide(BigDecimal.valueOf(1),2,BigDecimal.ROUND_HALF_DOWN); + BigDecimal aa1 = a.divide(BigDecimal.valueOf(1),2,BigDecimal.ROUND_DOWN); + BigDecimal bb = b.divide(BigDecimal.valueOf(1),2,BigDecimal.ROUND_HALF_DOWN); + BigDecimal bb1 = b.divide(BigDecimal.valueOf(1),2,BigDecimal.ROUND_DOWN); + System.out.println(aa + "++++" + bb); + System.out.println(aa1 + "++++" + bb1); + } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java index 0fc354b5..e746bd5c 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java @@ -107,7 +107,7 @@ public class RecordService implements IRecordService{ step = stepDao.getCodeByStepOne(); //处理体重数据 int weightInt = Integer.parseInt(carRecordMessageDto.getValue()); - BigDecimal weight = BigDecimal.valueOf(weightInt).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); + BigDecimal weight = BigDecimal.valueOf(weightInt).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_DOWN); carRecordMessageDto.setValue(weight+""); if(f){ log.info("处理称重信息"); @@ -128,7 +128,7 @@ public class RecordService implements IRecordService{ // if(carRecordMessageDto.getType() == Constant.CAR_RECORD_WEIGHT){ // // String value = stepDao.getRecordByCarIdAndType(wisdomCars.get(0).getId(),carRecordMessageDto.getType()); -// BigDecimal weight = BigDecimal.valueOf(Double.parseDouble(value)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); +// BigDecimal weight = BigDecimal.valueOf(Double.parseDouble(value)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_DOWN); // if(!carRecordMessageDto.getValue().equals(weight.toString())){ // log.info("处理称重信息"); // doseAndSensorMessage(carRecordMessageDto, userIdSet); @@ -141,26 +141,28 @@ public class RecordService implements IRecordService{ private void doseAndSensorMessage(CarRecordMessageDto carRecordMessageDto, Set userIdSet) throws Exception { //体重 单位g BigDecimal weightInt = BigDecimal.valueOf(Double.parseDouble(carRecordMessageDto.getValue())); - BigDecimal sensor1 = BigDecimal.valueOf(0); - BigDecimal sensor2 = BigDecimal.valueOf(0); - BigDecimal sensor3 = BigDecimal.valueOf(0); - BigDecimal sensor4 = BigDecimal.valueOf(0); + BigDecimal sensor1 = BigDecimal.valueOf(0,3); + BigDecimal sensor2 = BigDecimal.valueOf(0,3); + BigDecimal sensor3 = BigDecimal.valueOf(0,3); + BigDecimal sensor4 = BigDecimal.valueOf(0,3); /*称重传感器数据*/ - if(!weightInt.equals(BigDecimal.valueOf(0))){ +// if(!weightInt.equals(BigDecimal.valueOf(0))){ +// if(!weightInt.equals(BigDecimal.valueOf(0))){ + if(weightInt.compareTo(BigDecimal.ZERO) > 0){ //获取一个5000以内的平均数 Random random = new Random(); - BigDecimal randomWeight1 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); - BigDecimal randomWeight2 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_HALF_DOWN); + BigDecimal randomWeight1 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_DOWN); + BigDecimal randomWeight2 = BigDecimal.valueOf(random.nextInt(5000)).divide(BigDecimal.valueOf(1000),2,BigDecimal.ROUND_DOWN); //体重除以4 - BigDecimal aveWeight = weightInt.divide(BigDecimal.valueOf(4),3,BigDecimal.ROUND_HALF_DOWN); + BigDecimal aveWeight = weightInt.divide(BigDecimal.valueOf(4),3,BigDecimal.ROUND_DOWN); if(aveWeight.compareTo(BigDecimal.valueOf(5000)) < 1){ - BigDecimal divide = aveWeight.multiply(BigDecimal.valueOf(1000)).divide(BigDecimal.valueOf(3), 2, BigDecimal.ROUND_HALF_DOWN); - if(divide.equals(BigDecimal.valueOf(0))){ + BigDecimal divide = aveWeight.multiply(BigDecimal.valueOf(1000)).divide(BigDecimal.valueOf(3), 2, BigDecimal.ROUND_DOWN); + if(divide.compareTo(BigDecimal.ZERO) == 0){ randomWeight1 = BigDecimal.valueOf(0); randomWeight2 = BigDecimal.valueOf(0); }else { - randomWeight1 = BigDecimal.valueOf(random.nextInt(divide.intValue())).divide(BigDecimal.valueOf(1000), 2, BigDecimal.ROUND_HALF_DOWN); - randomWeight2 = BigDecimal.valueOf(random.nextInt(divide.intValue())).divide(BigDecimal.valueOf(1000), 2, BigDecimal.ROUND_HALF_DOWN); + randomWeight1 = BigDecimal.valueOf(random.nextInt(divide.intValue())).divide(BigDecimal.valueOf(1000), 2, BigDecimal.ROUND_DOWN); + randomWeight2 = BigDecimal.valueOf(random.nextInt(divide.intValue())).divide(BigDecimal.valueOf(1000), 2, BigDecimal.ROUND_DOWN); } } diff --git a/wisdomcar/src/main/resources/application-dev.yml b/wisdomcar/src/main/resources/application-dev.yml index 01db920c..92b5cda5 100644 --- a/wisdomcar/src/main/resources/application-dev.yml +++ b/wisdomcar/src/main/resources/application-dev.yml @@ -8,8 +8,9 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource rabbitmq: - host: 192.144.182.42 +# host: 192.144.182.42 # host: test.tall.wiki + host: 192.168.0.99 password: 111111 port: 5672 username: admin