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