Browse Source

修改平车重量精度

recovery
zy_Java 5 years ago
parent
commit
b1ffb8e99a
  1. 13
      util/src/test/java/com/ccsens/util/OtherTest.java
  2. 30
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java
  3. 3
      wisdomcar/src/main/resources/application-dev.yml

13
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);
}
}

30
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<String> 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);
}
}

3
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

Loading…
Cancel
Save