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(Double.valueOf(vo.getLongitude()).toString());
         warn.setLatitude(Double.valueOf(vo.getLatitude()).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());
@@ -111,12 +115,67 @@
               break;
         }
         warn.setCreateTime(LocalDateTime.now());
         warn.setObjectId(vo.getInfoId());
         warn.setVehicleNumber(vo.getVehicleNo());
         warns.add(warn);
      }
      if (warns.size() > 0) {
         this.saveBatch(warns);
      }
   }
   /**
    * 定时保存车辆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);
         }
      }
   }
   /**
    * 定时任务修改预警信息处理结果
    */
   @Override
   public void taskUpdateWarnStatus() {
      List<Warn> warnList = this.list(new LambdaQueryWrapper<Warn>().eq(Warn::getTreatmentState, "处理中"));
      for (Warn warn : warnList) {
         UPWarnMsgAdptInfoVo vo = upWarnMsgAdptInfoClient.findByInfoId(warn.getObjectId()).getData();
         if (null != vo && null != warn && vo.getResult() != 0x00) {
            switch (vo.getResult()) {
               case 0x00:
                  warn.setTreatmentState("处理中");
                  break;
               case 0x01:
                  warn.setTreatmentState("已处理完毕");
                  break;
               case 0x02:
                  warn.setTreatmentState("不作处理");
                  break;
               case 0x03:
                  warn.setTreatmentState("将来处理");
                  break;
            }
            this.updateById(warn);
         }
      }
   }
   
   /**
    * 获取车辆预警
@@ -126,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);
   }
   
@@ -143,8 +202,10 @@
      for (Map<String, Object> map : list) {
         collect.add(map.get("warnType").toString());
      }
      List<Map<String, Object>> warnGroupCount = this.baseMapper.getWarnGroupCount(collect);
      list.addAll(warnGroupCount);
      if (!collect.isEmpty()) {
         List<Map<String, Object>> warnGroupCount = this.baseMapper.getWarnGroupCount(collect);
         list.addAll(warnGroupCount);
      }
      return list;
   }