Commit bd8b0548 authored by caotao's avatar caotao

1.车辆里程统计问题不显示问题处理。

2.新增开关默认走电力的监听器。
parent 12255d2c
...@@ -1383,6 +1383,10 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -1383,6 +1383,10 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
Double totalTravel = 0.0; Double totalTravel = 0.0;
LambdaQueryWrapper<WlCarMileage> wrapper = new LambdaQueryWrapper<WlCarMileage>(); LambdaQueryWrapper<WlCarMileage> wrapper = new LambdaQueryWrapper<WlCarMileage>();
wrapper.eq(WlCarMileage::getIotCode, car.getIotCode()); wrapper.eq(WlCarMileage::getIotCode, car.getIotCode());
wrapper.ge(WlCarMileage::getTravel, 0.5);
wrapper.isNotNull(WlCarMileage::getEndTime);
wrapper.isNotNull(WlCarMileage::getStartTime);
// .ge("travel", 0.5)
List<WlCarMileage> list = iWlCarMileageService.list(wrapper); List<WlCarMileage> list = iWlCarMileageService.list(wrapper);
for (WlCarMileage wl : list) { for (WlCarMileage wl : list) {
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回 //判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
...@@ -1390,7 +1394,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -1390,7 +1394,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
totalTravel += wl.getTravel(); totalTravel += wl.getTravel();
} }
} }
car.setTotalTravel(totalTravel); car.setTotalTravel(Double.valueOf(String.format("%.1f",totalTravel)));
WlCarMileage last = iWlCarMileageService WlCarMileage last = iWlCarMileageService
.getOne(new LambdaQueryWrapper<WlCarMileage>().eq(WlCarMileage::getIotCode, car.getIotCode()) .getOne(new LambdaQueryWrapper<WlCarMileage>().eq(WlCarMileage::getIotCode, car.getIotCode())
.orderByDesc(WlCarMileage::getEndTime).last("limit 1")); .orderByDesc(WlCarMileage::getEndTime).last("limit 1"));
......
...@@ -239,7 +239,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -239,7 +239,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
doubles.add(Double.valueOf(jsonObject1.get("x").toString())); doubles.add(Double.valueOf(jsonObject1.get("x").toString()));
doubles.add(Double.valueOf(jsonObject1.get("y").toString())); doubles.add(Double.valueOf(jsonObject1.get("y").toString()));
coordinate.setLnglat(doubles); coordinate.setLnglat(doubles);
Double speeed = getSpeedByOriginalData(objects, Double.valueOf(jsonObject1.get("x").toString()), Double.valueOf(jsonObject1.get("y").toString()), i ); Double speeed = getSpeedByOriginalData(objects, Double.valueOf(jsonObject1.get("x").toString()), Double.valueOf(jsonObject1.get("y").toString()));
coordinate.setSpeed(speeed); coordinate.setSpeed(speeed);
coordinates.add(coordinate); coordinates.add(coordinate);
} }
...@@ -281,8 +281,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -281,8 +281,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
List<WlCarMileage> wlCarMileageList = this.list(new QueryWrapper<WlCarMileage>().eq("iot_code", car.getIotCode()) List<WlCarMileage> wlCarMileageList = this.list(new QueryWrapper<WlCarMileage>().eq("iot_code", car.getIotCode())
.between("date", daylist.get(0), daylist.get(daylist.size() - 1)) .between("date", daylist.get(0), daylist.get(daylist.size() - 1))
.isNotNull("end_time") .isNotNull("end_time")
.ge("travel", 0.5) .ge("travel", 0.5));
.groupBy("date")); // .groupBy("date"));
List<WlCarMileage> wlCarMileageListActiveData = wlCarMileageList.stream().filter(wl -> (!ObjectUtils.isEmpty(wl.getTakeTime()) && !ObjectUtils.isEmpty(wl.getTravel()) && ((wl.getTravel() / (wl.getTakeTime() / 3600000.0)) < CAR_MAX_SPEED))).collect(Collectors.toList()); List<WlCarMileage> wlCarMileageListActiveData = wlCarMileageList.stream().filter(wl -> (!ObjectUtils.isEmpty(wl.getTakeTime()) && !ObjectUtils.isEmpty(wl.getTravel()) && ((wl.getTravel() / (wl.getTakeTime() / 3600000.0)) < CAR_MAX_SPEED))).collect(Collectors.toList());
List<String> activeDateList = wlCarMileageListActiveData.stream().map(wlCarMileage -> String.valueOf(DateUtils.convertDateToString(wlCarMileage.getDate(), DateUtils.DATE_PATTERN))).collect(Collectors.toList()); List<String> activeDateList = wlCarMileageListActiveData.stream().map(wlCarMileage -> String.valueOf(DateUtils.convertDateToString(wlCarMileage.getDate(), DateUtils.DATE_PATTERN))).collect(Collectors.toList());
for (String day : daylist) { for (String day : daylist) {
...@@ -494,11 +494,11 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -494,11 +494,11 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
* @param index 当前纠偏数据的索引 * @param index 当前纠偏数据的索引
* @return 当前数据应该展示的速度 * @return 当前数据应该展示的速度
*/ */
public Double getSpeedByOriginalData(JSONArray objects, Double startLatitude, Double startLongitude, Integer index) { public Double getSpeedByOriginalData(JSONArray objects, Double startLatitude, Double startLongitude) {
Double speed = 0.0; Double speed = 0.0;
for (int i = index; i < objects.size() - 1; i++) { for (int i = 0; i < objects.size() - 1; i++) {
JSONObject jsonObject1 = objects.getJSONObject(index); JSONObject jsonObject1 = objects.getJSONObject(i);
JSONObject jsonObject2 = objects.getJSONObject(index+1); JSONObject jsonObject2 = objects.getJSONObject(i+1);
Double travel1 = CoordinateUtil.distance(startLatitude, startLongitude, jsonObject1.getDoubleValue("x"), jsonObject1.getDoubleValue("y")); Double travel1 = CoordinateUtil.distance(startLatitude, startLongitude, jsonObject1.getDoubleValue("x"), jsonObject1.getDoubleValue("y"));
Double travel2 = CoordinateUtil.distance(startLatitude, startLongitude, jsonObject2.getDoubleValue("x"), jsonObject2.getDoubleValue("y")); Double travel2 = CoordinateUtil.distance(startLatitude, startLongitude, jsonObject2.getDoubleValue("x"), jsonObject2.getDoubleValue("y"));
log.info("travel1:"+travel1+"travel2:"+travel2); log.info("travel1:"+travel1+"travel2:"+travel2);
......
...@@ -9,6 +9,7 @@ import org.mybatis.spring.annotation.MapperScan; ...@@ -9,6 +9,7 @@ import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
...@@ -45,6 +46,9 @@ import java.net.UnknownHostException; ...@@ -45,6 +46,9 @@ import java.net.UnknownHostException;
public class AmostEquipApplication { public class AmostEquipApplication {
private static final Logger logger = LoggerFactory.getLogger(AmostEquipApplication.class); private static final Logger logger = LoggerFactory.getLogger(AmostEquipApplication.class);
//是否走江西电建的车辆监听器,默认不走,如果在配置文件中添加了该配置且配置的值不为false
@Value("${jxiop.carIotNewListener.enable:false}")
private String jxiop;
@Autowired @Autowired
private EmqKeeper emqKeeper; private EmqKeeper emqKeeper;
...@@ -86,16 +90,21 @@ public class AmostEquipApplication { ...@@ -86,16 +90,21 @@ public class AmostEquipApplication {
@Bean @Bean
void initMqtt() throws MqttException { void initMqtt() throws MqttException {
try { try {
emqKeeper.subscript("+/+/property", 1, carIotListener); if(jxiop.equals("false")){
emqKeeper.subscript("+/+/property", 1, carIotListener);
}else {
emqKeeper.subscript("+/+/property", 1, carIotNewListener);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
logger.error("EMQ初始化连接失败!"); logger.error("EMQ初始化连接失败!");
} }
} }
//江西电建服务重启后对于未计时且未结束的里程的进行处理 // 江西电建服务重启后对于未计时且未结束的里程的进行处理
@Bean // @Bean
void initCarMelige() { // void initCarMelige() {
threadCarMileageTreatment.start(); // threadCarMileageTreatment.start();
} // }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment