Commit 1f50f882 authored by litengwei's avatar litengwei

Merge remote-tracking branch 'origin/develop_dl' into develop_dl

parents 31a63895 48c5487a
...@@ -53,4 +53,10 @@ public class CarSpeedWarningRecord extends BaseEntity { ...@@ -53,4 +53,10 @@ public class CarSpeedWarningRecord extends BaseEntity {
@ApiModelProperty(value = "联系电话") @ApiModelProperty(value = "联系电话")
@TableField("ownership") @TableField("ownership")
private String ownership; private String ownership;
@ApiModelProperty(value = "超速时间到分钟")
@TableField("waring_date_minute")
private String waringDateMinute;
@ApiModelProperty(value = "超速次数")
@TableField("over_speed_count")
private Integer overSpeedCount;
} }
...@@ -1780,27 +1780,24 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -1780,27 +1780,24 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
colModels.add(new ColModel("bizOrgName", "所属单位")); colModels.add(new ColModel("bizOrgName", "所属单位"));
colModels.add(new ColModel("waringDate", "超速时间")); colModels.add(new ColModel("waringDate", "超速时间"));
colModels.add(new ColModel("overSpeed", "超速值(Km/h)")); colModels.add(new ColModel("overSpeed", "超速值(Km/h)"));
Date date = new Date();
String endTime = DateUtil.format(date, DatePattern.NORM_DATETIME_FORMAT);
date = DateUtil.offsetDay(date, -5);
String startTime = DateUtil.format(date, DatePattern.NORM_DATETIME_FORMAT);
QueryWrapper queryWrapper = new QueryWrapper<CarSpeedWarningRecord>(); QueryWrapper queryWrapper = new QueryWrapper<CarSpeedWarningRecord>();
if (StringUtils.isNotEmpty(keyWord)) { if (StringUtils.isNotEmpty(keyWord)) {
queryWrapper.like("biz_org_name", keyWord); queryWrapper.like("biz_org_name", keyWord);
} }
queryWrapper.orderByDesc("over_speed"); queryWrapper.ge("over_speed_count",5);
queryWrapper.last("limit " + (current - 1) * pageSize + "," + current * pageSize); queryWrapper.orderByDesc("waring_date");
// 过滤车牌 // 过滤车牌
List<Car> clist = this.list(new LambdaQueryWrapper<Car>().likeRight(Car::getBizOrgCode, orgCode)); List<Car> clist = this.list(new LambdaQueryWrapper<Car>().likeRight(Car::getBizOrgCode, orgCode));
List<String> carnums = clist.stream().map(i -> i.getCarNum()).collect(Collectors.toList()); List<String> carnums = clist.stream().map(i -> i.getCarNum()).collect(Collectors.toList());
if (carnums.size() > 0) { if (carnums.size() > 0) {
queryWrapper.in("car_num", carnums); queryWrapper.in("car_num", carnums);
} }
Integer count = wlCarSpeedWaringRecordMapper.selectCount(queryWrapper);
queryWrapper.last("limit " + (current - 1) * pageSize + "," + pageSize);
List<CarSpeedWarningRecord> list = wlCarSpeedWaringRecordMapper.selectList(queryWrapper); List<CarSpeedWarningRecord> list = wlCarSpeedWaringRecordMapper.selectList(queryWrapper);
DataGridMock dataGridMock = new DataGridMock(current, wlCarSpeedWaringRecordMapper.getCountOfRecords(), true, Integer totalPage = (count+pageSize-1)/pageSize;
current, list); DataGridMock dataGridMock = new DataGridMock(current,count, true,
totalPage, list);
basicTableDataDto.setDataGridMock(dataGridMock); basicTableDataDto.setDataGridMock(dataGridMock);
basicTableDataDto.setColModel(colModels); basicTableDataDto.setColModel(colModels);
return basicTableDataDto; return basicTableDataDto;
......
...@@ -64,8 +64,8 @@ public class JxiopCarIotListerServiceImpl { ...@@ -64,8 +64,8 @@ public class JxiopCarIotListerServiceImpl {
private RedisTemplate redisTemplate; private RedisTemplate redisTemplate;
// @Async("equipAsyncExecutor") // @Async("equipAsyncExecutor")
public void processMessage(String topic, MqttMessage message){ public void processMessage(String topic, MqttMessage message) {
String measurement = topic.split("/")[0]; String measurement = topic.split("/")[0];
String deviceName = topic.split("/")[1]; String deviceName = topic.split("/")[1];
//根据topic 组装iotCode //根据topic 组装iotCode
...@@ -100,11 +100,11 @@ public class JxiopCarIotListerServiceImpl { ...@@ -100,11 +100,11 @@ public class JxiopCarIotListerServiceImpl {
} }
this.updateCarLocation(jsonObject, iotCode); this.updateCarLocation(jsonObject, iotCode);
String coordinate = jsonObject.getString("FireCar_Longitude") + "," + jsonObject.getString("FireCar_Latitude"); String coordinate = jsonObject.getString("FireCar_Longitude") + "," + jsonObject.getString("FireCar_Latitude");
if(ObjectUtils.isEmpty(redisTemplate.opsForValue().get(iotCode))){ if (ObjectUtils.isEmpty(redisTemplate.opsForValue().get(iotCode))) {
redisTemplate.opsForValue().set(iotCode, coordinate, 10, TimeUnit.MINUTES); redisTemplate.opsForValue().set(iotCode, coordinate, 10, TimeUnit.MINUTES);
logger.info("插入数据到::redis"); logger.info("插入数据到::redis");
}else{ } else {
if(!String.valueOf(redisTemplate.opsForValue().get(iotCode)).equals(coordinate)){ if (!String.valueOf(redisTemplate.opsForValue().get(iotCode)).equals(coordinate)) {
redisTemplate.opsForValue().set(iotCode, coordinate, 10, TimeUnit.MINUTES); redisTemplate.opsForValue().set(iotCode, coordinate, 10, TimeUnit.MINUTES);
logger.info("插入数据到::redis"); logger.info("插入数据到::redis");
} }
...@@ -203,10 +203,10 @@ public class JxiopCarIotListerServiceImpl { ...@@ -203,10 +203,10 @@ public class JxiopCarIotListerServiceImpl {
logger.info("----------------更新车辆电池电量信息成功----------------"); logger.info("----------------更新车辆电池电量信息成功----------------");
carMapper.updateById(car); carMapper.updateById(car);
logger.info("车牌号::" + car.getCarNum() + "最大车速:" + maxSpeed + "当前车速::" + speed); logger.info("车牌号::" + car.getCarNum() + "最大车速:" + maxSpeed + "当前车速::" + speed);
if ((speed - maxSpeed)>0) { if ((speed - maxSpeed) > 0) {
List<CarSpeedWarningRecord> list = wlCarSpeedWaringRecordMapper.selectList(new QueryWrapper<CarSpeedWarningRecord>().eq("car_num",car.getCarNum()). List<CarSpeedWarningRecord> list = wlCarSpeedWaringRecordMapper.selectList(new QueryWrapper<CarSpeedWarningRecord>().eq("car_num", car.getCarNum()).
between("waring_date",DateUtil.offsetMinute(new Date(),10),new Date())); between("waring_date", DateUtil.offsetMinute(new Date(), -10), new Date()));
if(!(list.size() >0)) { if (!(list.size() > 0)) {
CarSpeedWarningRecord carSpeedWarningRecord = new CarSpeedWarningRecord(); CarSpeedWarningRecord carSpeedWarningRecord = new CarSpeedWarningRecord();
carSpeedWarningRecord.setCarNum(car.getCarNum()); carSpeedWarningRecord.setCarNum(car.getCarNum());
carSpeedWarningRecord.setDriver(car.getDriver()); carSpeedWarningRecord.setDriver(car.getDriver());
...@@ -215,13 +215,29 @@ public class JxiopCarIotListerServiceImpl { ...@@ -215,13 +215,29 @@ public class JxiopCarIotListerServiceImpl {
carSpeedWarningRecord.setOwnership(car.getOwnership()); carSpeedWarningRecord.setOwnership(car.getOwnership());
carSpeedWarningRecord.setBizOrgName(car.getBizOrgName()); carSpeedWarningRecord.setBizOrgName(car.getBizOrgName());
carSpeedWarningRecord.setWaringDate(DateUtil.parse(waringDate, DatePattern.NORM_DATETIME_PATTERN)); carSpeedWarningRecord.setWaringDate(DateUtil.parse(waringDate, DatePattern.NORM_DATETIME_PATTERN));
wlCarSpeedWaringRecordMapper.insert(carSpeedWarningRecord); carSpeedWarningRecord.setWaringDateMinute(DateUtil.format(carSpeedWarningRecord.getWaringDate(), DatePattern.NORM_DATETIME_MINUTE_PATTERN));
carSpeedWarningRecord.setOverSpeedCount(1);
if((speed-maxSpeed)<maxSpeed){
wlCarSpeedWaringRecordMapper.insert(carSpeedWarningRecord);
}
logger.info("-----------触发车辆超速告警成功--------"); logger.info("-----------触发车辆超速告警成功--------");
} else {
CarSpeedWarningRecord carSpeedWarningRecord = list.get(0);
if (!carSpeedWarningRecord.getWaringDateMinute().equals(DateUtil.parse(waringDate, DatePattern.NORM_DATETIME_MINUTE_PATTERN))) {
carSpeedWarningRecord.setOverSpeedCount(carSpeedWarningRecord.getOverSpeedCount() + 1);
carSpeedWarningRecord.setWaringDate(DateUtil.parse(waringDate, DatePattern.NORM_DATETIME_PATTERN));
carSpeedWarningRecord.setWaringDateMinute(DateUtil.format(carSpeedWarningRecord.getWaringDate(), DatePattern.NORM_DATETIME_MINUTE_PATTERN));
if((speed-maxSpeed)<maxSpeed){
carSpeedWarningRecord.setOverSpeed(speed - maxSpeed);
}
wlCarSpeedWaringRecordMapper.updateById(carSpeedWarningRecord);
}
logger.info("-----------更新车辆超速告警成功--------");
} }
} }
logger.info("-----------推送车辆位置消息到到地图成功--------"); logger.info("-----------推送车辆位置消息到到地图成功--------");
try { try {
emqkeeper.getMqttClient().publish("car/location",sendArr.toJSONString().getBytes(),0,false); emqkeeper.getMqttClient().publish("car/location", sendArr.toJSONString().getBytes(), 0, false);
} catch (MqttException e) { } catch (MqttException e) {
e.printStackTrace(); e.printStackTrace();
} }
......
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.equipmanage.common.entity.Car; import com.yeejoin.equipmanage.common.entity.Car;
import com.yeejoin.equipmanage.common.entity.CarSpeedWarningRecord;
import com.yeejoin.equipmanage.common.entity.WlCarMileage; import com.yeejoin.equipmanage.common.entity.WlCarMileage;
import com.yeejoin.equipmanage.common.utils.CoordinateUtil; import com.yeejoin.equipmanage.common.utils.CoordinateUtil;
import com.yeejoin.equipmanage.common.utils.DateUtils; import com.yeejoin.equipmanage.common.utils.DateUtils;
...@@ -19,6 +20,7 @@ import com.yeejoin.equipmanage.fegin.IotFeign; ...@@ -19,6 +20,7 @@ import com.yeejoin.equipmanage.fegin.IotFeign;
import com.yeejoin.equipmanage.listener.CarIotNewListener; import com.yeejoin.equipmanage.listener.CarIotNewListener;
import com.yeejoin.equipmanage.mapper.CarMapper; import com.yeejoin.equipmanage.mapper.CarMapper;
import com.yeejoin.equipmanage.mapper.WlCarMileageMapper; import com.yeejoin.equipmanage.mapper.WlCarMileageMapper;
import com.yeejoin.equipmanage.mapper.WlCarSpeedWaringRecordMapper;
import com.yeejoin.equipmanage.service.ICarService; import com.yeejoin.equipmanage.service.ICarService;
import com.yeejoin.equipmanage.service.IWlCarMileageService; import com.yeejoin.equipmanage.service.IWlCarMileageService;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
...@@ -76,6 +78,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -76,6 +78,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
@Autowired @Autowired
WlCarMileageMapper wlCarMileageMapper; WlCarMileageMapper wlCarMileageMapper;
@Autowired @Autowired
WlCarSpeedWaringRecordMapper wlCarSpeedWaringRecordMapper;
@Autowired
CarMapper carMapper; CarMapper carMapper;
@Value("${car.max.speed:100}") @Value("${car.max.speed:100}")
private Integer CAR_MAX_SPEED; private Integer CAR_MAX_SPEED;
...@@ -393,6 +397,10 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -393,6 +397,10 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
} }
}); });
log.info("-------------------跨天轨迹切分任务执行完成.............."); log.info("-------------------跨天轨迹切分任务执行完成..............");
//删除过期的告警数据
Date endTime = DateUtil.offsetDay(new Date(),-15);
String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd HH:mm:00");
wlCarSpeedWaringRecordMapper.delete(new QueryWrapper<CarSpeedWarningRecord>().le("waring_date",endTimeStr));
} }
@Scheduled(cron = "${mileage.splitmileage.cron}") @Scheduled(cron = "${mileage.splitmileage.cron}")
...@@ -472,6 +480,10 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -472,6 +480,10 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
}); });
log.info("轨迹切分任务执行完成.............."); log.info("轨迹切分任务执行完成..............");
//删除无效的告警数据
Date endTime = DateUtil.offsetMinute(new Date(),-10);
String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd HH:mm:00");
wlCarSpeedWaringRecordMapper.delete(new QueryWrapper<CarSpeedWarningRecord>().le("waring_date",endTimeStr).lt("over_speed_count",5));
} }
@Override @Override
......
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