| | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneOffset; |
| | | import java.util.List; |
| | |
| | | Driver driver = driverService.getOne(new LambdaQueryWrapper<Driver>().eq(Driver::getVehicleNumber, car.getVehicleNumber()).eq(Driver::getStatus, 1)); |
| | | Enterprise enterprise = enterpriseService.getById(car.getEnterpriseId()); |
| | | car.setEnterpriseName(enterprise.getName()); |
| | | car.setDriverName(driver.getName()); |
| | | if (null != driver) { |
| | | car.setDriverName(driver.getName()); |
| | | car.setDriverPhone(driver.getPhone()); |
| | | car.setDrivingLicenseNumber(driver.getDrivingLicenceFile()); |
| | | } |
| | | return R.ok(car); |
| | | } |
| | | |
| | |
| | | @ApiOperation(value = "获取车辆状态汇总数据和公司总数等", tags = {"首页"}) |
| | | public R<CarStatusCount> getCarStatusCount() { |
| | | List<Car> list = carService.list(); |
| | | long online = list.stream().filter(s -> s.getStatus() == 1).count(); |
| | | long offline = list.stream().filter(s -> s.getStatus() == 3).count(); |
| | | long breakdown = list.stream().filter(s -> s.getStatus() == 4).count(); |
| | | long abnormal = list.stream().filter(s -> s.getStatus() == 2).count(); |
| | | long online = list.isEmpty() ? 0 : list.stream().filter(s -> s.getStatus() == 1).count(); |
| | | long offline = list.isEmpty() ? 0 : list.stream().filter(s -> s.getStatus() == 3).count(); |
| | | long breakdown = list.isEmpty() ? 0 : list.stream().filter(s -> s.getStatus() == 4).count(); |
| | | long abnormal = list.isEmpty() ? 0 : list.stream().filter(s -> s.getStatus() == 2).count(); |
| | | CarStatusCount carStatusCount = new CarStatusCount(); |
| | | carStatusCount.setOffline(offline); |
| | | carStatusCount.setOnline(online); |
| | |
| | | @GetMapping("/getMapCarList") |
| | | @ApiOperation(value = "获取地图司机数据", tags = {"首页"}) |
| | | public R<List<Car>> getMapCarList() { |
| | | List<Car> list = carService.list(); |
| | | List<Car> list = carService.list(new LambdaQueryWrapper<Car>().eq(Car::getStatus, 1)); |
| | | for (Car car : list) { |
| | | Long s = (null == car.getDownlineTime() ? LocalDateTime.now() : car.getDownlineTime()).toEpochSecond(ZoneOffset.ofHours(8)) - car.getOnlineTime().toEpochSecond(ZoneOffset.ofHours(8)); |
| | | car.setDrivingTime(s / 60); |
| | | GnssDataVo gnssDataVo = (GnssDataVo) redisTemplate.opsForValue().get("location:" + car.getVehicleNumber()); |
| | | car.setLongitude(Double.valueOf(gnssDataVo.getLon() / 1000000).toString()); |
| | | car.setLatitude(Double.valueOf(gnssDataVo.getLat() / 1000000).toString()); |
| | | if (null != gnssDataVo) { |
| | | car.setLongitude(new BigDecimal(gnssDataVo.getLon()).divide(new BigDecimal(1000000)).toString()); |
| | | car.setLatitude(new BigDecimal(gnssDataVo.getLat()).divide(new BigDecimal(1000000)).toString()); |
| | | } |
| | | } |
| | | return R.ok(list); |
| | | } |