package com.ycl.controller.smoke; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.annotation.LogSave; import com.ycl.api.CommonPage; import com.ycl.api.CommonResult; import com.ycl.controller.BaseController; import com.ycl.entity.smoke.OdsAlarmMsg; import com.ycl.dto.smoker.QueryAlarmParam; import com.ycl.service.smoke.IOdsAlarmMsgService; import com.ycl.utils.EasyExcelUtils; import com.ycl.vo.smoke.OdsAlarmVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.*; @RestController @RequestMapping("/smoke") @Api(tags = "油烟管理管理-报警") public class SmokeAlarmController extends BaseController { IOdsAlarmMsgService alarmMsgService; @Autowired public void setAlarmMsgService(IOdsAlarmMsgService alarmMsgService) { this.alarmMsgService = alarmMsgService; } @ApiOperation("查询报警数据") @RequestMapping(value = "/alarm/list", method = RequestMethod.GET) @ResponseBody @LogSave(operationType = "油烟模块", contain = "查询报警数据") public CommonResult> findAlarmList(@RequestParam(value = "msgType", required = false) String type, @RequestParam(value = "startTime", required = false) String startTime, @RequestParam(value = "endTime", required = false) String endTime, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) { Page page = alarmMsgService.findList(type, startTime, endTime, pageSize, pageNum); return CommonResult.success(CommonPage.restPage(page)); } @ApiOperation("导出报警数据") @PostMapping(value = "/alarm/export") @LogSave(operationType = "油烟模块", contain = "导出报警数据") public void exportAlarmList(HttpServletResponse response, QueryAlarmParam param) throws IOException { Page page = alarmMsgService.findList(param.getMsgType(), param.getStartTime(), param.getEndTime(), 99999, 1); List alarmMsgs = new ArrayList<>(); Dictionary msgTypeDic = new Hashtable<>(); msgTypeDic.put("ExceedStandard", "超标"); msgTypeDic.put("AbnormalOffline", "异常离线"); page.getRecords().stream().forEach(o -> { OdsAlarmVo vo = new OdsAlarmVo(); BeanUtils.copyProperties(o, vo); vo.setAcquitAtStr(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(o.getAcquitAt() * 1000))); vo.setMsgTypeStr(msgTypeDic.get(o.getMsgType())); alarmMsgs.add(vo); }); String sheetName = "报警消息"; String fileName = URLEncoder.encode(sheetName + ".xlsx", "UTF-8"); //设置响应字符集 response.setCharacterEncoding("UTF-8"); //设置响应媒体类型 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName); EasyExcelUtils.export(response, sheetName, OdsAlarmVo.class, alarmMsgs); } }