Pu Zhibing
2025-04-07 4109495b9c51a4bbd8b0a7c3c69093909d2e33e1
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WarnController.java
@@ -1,5 +1,7 @@
package com.ruoyi.system.controller;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.page.PageInfo;
@@ -15,13 +17,17 @@
import com.ruoyi.system.service.IWarnService;
import com.ruoyi.system.util.GDMapGeocodingUtil;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -56,9 +62,38 @@
   }
   
   
   @GetMapping("/exportCarWarnList")
   @ApiOperation(value = "导出车辆预警列表数据", tags = {"预警记录"})
   public void exportCarWarnList(CarWarnListReq carWarnListReq, HttpServletResponse response) {
      carWarnListReq.setPageSize(99999);
      PageInfo<CarWarnListResp> pageInfo = warnService.getCarWarnList(carWarnListReq);
      Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), CarWarnListResp.class, pageInfo.getRecords());
      response.setCharacterEncoding("utf-8");
      ServletOutputStream outputStream = null;
      try {
         String fileName = URLEncoder.encode("预警记录.xls", "utf-8");
         response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
         response.setContentType("application/vnd.ms-excel;charset=UTF-8");
         response.setHeader("Pragma", "no-cache");
         response.setHeader("Cache-Control", "no-cache");
         outputStream = response.getOutputStream();
         workbook.write(outputStream);
      } catch (IOException e) {
         e.printStackTrace();
      } finally {
         try {
            workbook.close();
            outputStream.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
   }
   @GetMapping("/getCarWarnInfo")
   @ApiOperation(value = "获取车辆预警详情数据", tags = {"车辆管理", "预警记录"})
   public R<CarWarnInfoResp> getCarWarnInfo(@PathVariable("vehicleNumber") String vehicleNumber) {
   public R<CarWarnInfoResp> getCarWarnInfo(String vehicleNumber) {
      Car car = carService.getOne(new LambdaQueryWrapper<Car>().eq(Car::getVehicleNumber, vehicleNumber));
      if (null == car) {
         return R.ok();
@@ -71,7 +106,9 @@
      carWarnInfoResp.setSpeed(new BigDecimal(gnssDataVo.getVec1()));
      Map<String, String> geocode = null;
      try {
         geocode = GDMapGeocodingUtil.geocode(Double.valueOf(gnssDataVo.getLon() / 1000000).toString(), Double.valueOf(gnssDataVo.getLat() / 1000000).toString());
         String longitude = new BigDecimal(gnssDataVo.getLon()).divide(new BigDecimal(1000000)).toString();
         String latitude = new BigDecimal(gnssDataVo.getLat()).divide(new BigDecimal(1000000)).toString();
         geocode = GDMapGeocodingUtil.geocode(longitude, latitude);
      } catch (Exception e) {
         throw new RuntimeException(e);
      }