zhanghua
2025-04-14 1cad14bca191807e18705c3a5526eda8151be439
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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<CommonPage<OdsAlarmMsg>> 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<OdsAlarmMsg> 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<OdsAlarmMsg> page = alarmMsgService.findList(param.getMsgType(), param.getStartTime(),
                param.getEndTime(), 99999, 1);
 
        List<OdsAlarmVo> alarmMsgs = new ArrayList<>();
 
        Dictionary<String, String> 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);
    }
 
}