| | |
| | | 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; |
| | |
| | | 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; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | |
| | | @GetMapping("/getCarWarnList") |
| | | @ApiOperation(value = "获取车辆预警列表数据", tags = {"车辆管理", "预警记录", "首页"}) |
| | | public R<PageInfo<CarWarnListResp>> getCarWarnList(CarWarnListReq carWarnListReq) { |
| | | public R<Map<String, Object>> getCarWarnList(CarWarnListReq carWarnListReq) { |
| | | PageInfo<CarWarnListResp> pageInfo = warnService.getCarWarnList(carWarnListReq); |
| | | return R.ok(pageInfo); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("page", pageInfo); |
| | | List<Warn> list = warnService.getAllCarWarnList(carWarnListReq); |
| | | map.put("total", list.size()); |
| | | map.put("processed", list.stream().filter(s->!s.getTreatmentState().equals("处理中")).count()); |
| | | map.put("unprocessed", list.stream().filter(s->s.getTreatmentState().equals("处理中")).count()); |
| | | return R.ok(map); |
| | | } |
| | | |
| | | |
| | | @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(); |
| | |
| | | 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); |
| | | } |
| | |
| | | List<Map<String, Object>> warnGroupCountTop10 = warnService.getWarnGroupCountTop10(); |
| | | return R.ok(warnGroupCountTop10); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @GetMapping("/getAllWarnGroupVehicleType") |
| | | @ApiOperation(value = "获取根据车辆类型的报警汇总数据", tags = {"首页"}) |
| | | public R<List<Map<String, Object>>> getAllWarnGroupVehicleType(){ |
| | | List<Map<String, Object>> allWarnGroupVehicleType = warnService.getAllWarnGroupVehicleType(); |
| | | return R.ok(allWarnGroupVehicleType); |
| | | } |
| | | } |