Pu Zhibing
2025-04-27 2e1766b31e889d9ee54d433476d031220dfda294
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WarnServiceImpl.java
@@ -86,9 +86,13 @@
         warn.setEndTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(vo.getCreateTime() * 1000), ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
         warn.setWarnType(WarnType.getWarnTypeName(vo.getWarnType()));
         warn.setWarnNumber(1);
         warn.setSpeed(new BigDecimal(vo.getSpeed()));
         warn.setLongitude(new BigDecimal(vo.getLongitude()).divide(new BigDecimal(1000000)).toString());
         warn.setLatitude(new BigDecimal(vo.getLatitude()).divide(new BigDecimal(1000000)).toString());
         warn.setSpeed(null == vo.getSpeed() ? BigDecimal.ZERO : new BigDecimal(vo.getSpeed()));
         if(null != vo.getLongitude()){
            warn.setLongitude(new BigDecimal(vo.getLongitude()).divide(new BigDecimal(1000000)).toString());
         }
         if(null != vo.getLatitude()){
            warn.setLatitude(new BigDecimal(vo.getLatitude()).divide(new BigDecimal(1000000)).toString());
         }
         Map<String, String> geocode = null;
         try {
            geocode = GDMapGeocodingUtil.geocode(warn.getLongitude(), warn.getLatitude());
@@ -112,6 +116,7 @@
         }
         warn.setCreateTime(LocalDateTime.now());
         warn.setObjectId(vo.getInfoId());
         warn.setVehicleNumber(vo.getVehicleNo());
         warns.add(warn);
      }
      if (warns.size() > 0) {
@@ -119,6 +124,28 @@
      }
   }
   
   /**
    * 定时保存车辆id和司机id
    */
   @Override
   public void taskSaveCarIdAndDriverId() {
      List<Warn> list = this.list(new LambdaQueryWrapper<Warn>().isNull(Warn::getCarId).or().isNull(Warn::getDriverId));
      List<Car> carList = carService.list();
      List<Driver> driverList = driverService.list(new LambdaQueryWrapper<Driver>().eq(Driver::getStatus, 1));
      for (Warn warn : list) {
         Optional<Driver> optional = driverList.stream().filter(s -> s.getVehicleNumber().equals(warn.getVehicleNumber())).findFirst();
         if (optional.isPresent()) {
            warn.setDriverId(optional.get().getId());
            this.updateById(warn);
         }
         Optional<Car> optional1 = carList.stream().filter(s -> s.getVehicleNumber().equals(warn.getVehicleNumber())).findFirst();
         if (optional1.isPresent()) {
            warn.setCarId(optional1.get().getId());
            this.updateById(warn);
         }
      }
   }
   
   /**
    * 定时任务修改预警信息处理结果
@@ -158,7 +185,7 @@
    */
   @Override
   public PageInfo<CarWarnListResp> getCarWarnList(CarWarnListReq carWarnListReq) {
      PageInfo<CarWarnListResp> pageInfo = new PageInfo<>(carWarnListReq.getPageCurr(), carWarnListReq.getPageCurr());
      PageInfo<CarWarnListResp> pageInfo = new PageInfo<>(carWarnListReq.getPageCurr(), carWarnListReq.getPageSize());
      return this.baseMapper.getCarWarnList(pageInfo, carWarnListReq);
   }