ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java
@@ -5,15 +5,28 @@ import com.ycl.api.CommonPage; import com.ycl.api.CommonResult; import com.ycl.controller.BaseController; import com.ycl.dto.caseHandler.QueryForViolationParam; import com.ycl.dto.smoker.InTimeCountDto; import com.ycl.dto.smoker.QueryInTimeParam; import com.ycl.entity.smoke.OdsCustomer; import com.ycl.entity.smoke.OdsInTime; import com.ycl.service.smoke.IOdsCustomerService; import com.ycl.service.smoke.IOdsInTimeService; import com.ycl.utils.EasyExcelUtils; import com.ycl.vo.casePool.QueryForViolationVO; import com.ycl.vo.smoke.OdsInTimeVo; 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.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.*; @RestController @RequestMapping("/smoke") @@ -62,6 +75,57 @@ return CommonResult.success(CommonPage.restPage(inTimePage)); } @ApiOperation("导出实时数据") @PostMapping(value = "/inTime/export") @LogSave(operationType = "油烟模块", contain = "查询实时数据") public void exportInTimeList(HttpServletResponse response, QueryInTimeParam param) throws IOException { Page<OdsInTime> inTimePage = inTimeService.findList(param.getOwner(), param.getOnlineStatus(), param.getStartTime(), param.getEndTime(), param.getType(), param.getStatus(), 99999, 1); List<OdsInTimeVo> odsInTimeVos = new ArrayList<>(); Dictionary<Integer, String> fanStatusDic = new Hashtable<>(); fanStatusDic.put(1, "开"); fanStatusDic.put(2, "关"); fanStatusDic.put(3, "异常"); fanStatusDic.put(0, "异常"); Dictionary<Integer, String> onlineStatusDic = new Hashtable<>(); onlineStatusDic.put(1, "在线"); onlineStatusDic.put(2, "离线"); onlineStatusDic.put(3, "异常离线"); onlineStatusDic.put(0, "异常离线"); Dictionary<String, String> statusDic = new Hashtable<>(); statusDic.put("NORMAL", "正常"); statusDic.put("ALARM", "预警"); statusDic.put("EXCESS", "超标"); statusDic.put("DOWN", "离线"); statusDic.put("OFF", "异常离线"); inTimePage.getRecords().stream().forEach(o -> { OdsInTimeVo vo = new OdsInTimeVo(); BeanUtils.copyProperties(o, vo); vo.setAcquitAtStr(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(o.getAcquitAt() * 1000))); vo.setFanStatusStr(fanStatusDic.get(o.getFanStatus())); vo.setFilterStatusStr(fanStatusDic.get(o.getFilterStatus())); vo.setOnlineStatusStr(onlineStatusDic.get(o.getOnlineStatus())); vo.setStatusStr(statusDic.get(o.getStatus())); odsInTimeVos.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, OdsInTimeVo.class, odsInTimeVos); } @ApiOperation("获取设备在线情况") @RequestMapping(value = "/inTime/count", method = RequestMethod.GET) @ResponseBody ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java
New file @@ -0,0 +1,13 @@ package com.ycl.dto.smoker; import lombok.Data; @Data public class QueryInTimeParam { private String owner; private String onlineStatus; private String startTime; private String endTime; private String type; private String status; } ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java
@@ -1,5 +1,6 @@ package com.ycl.entity.smoke; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -51,6 +52,7 @@ */ @TableField("c_emissions") @JsonProperty("CEmissions") @ExcelProperty(value = "油烟折算浓度", index =7) private String cEmissions; /** @@ -58,6 +60,7 @@ */ @TableField("c_granule") @JsonProperty("CGranule") @ExcelProperty(value = "颗粒物折算浓度", index =9) private String cGranule; /** @@ -72,6 +75,7 @@ */ @TableField("emissions_conc") @JsonProperty("EmissionsConc") @ExcelProperty(value = "油烟实时浓度", index =6) private BigDecimal emissionsConc; /** @@ -79,6 +83,7 @@ */ @TableField("granule_conc") @JsonProperty("GranuleConc") @ExcelProperty(value = "颗粒物实时浓度", index =8) private BigDecimal granuleConc; /** @@ -86,6 +91,7 @@ */ @TableField("hydrocarbon_conc") @JsonProperty("HydrocarbonConc") @ExcelProperty(value = "非甲烷总烃实时浓度", index =10) private BigDecimal hydrocarbonConc; /** @@ -144,6 +150,7 @@ */ @TableField("locale") @JsonProperty("Locale") @ExcelProperty(value = "监测点名称", index = 1) private String locale; /** @@ -165,6 +172,7 @@ */ @TableField("addr") @JsonProperty("Addr") @ExcelProperty(value = "安装地址", index = 2) private String addr; /** ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java
@@ -33,7 +33,7 @@ QueryWrapper<OdsInTime> wrapper = new QueryWrapper<>(); LambdaQueryWrapper<OdsInTime> lambda = wrapper.lambda(); if (StrUtil.isNotEmpty(owner)) { lambda.eq(OdsInTime::getOwner, owner); lambda.like(OdsInTime::getOwner, owner); } if (StrUtil.isNotEmpty(onlineStatus)) { lambda.eq(OdsInTime::getOnlineStatus, onlineStatus); @@ -42,10 +42,10 @@ try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startdate = format.parse(startTime); Long startTimestamp = startdate.getTime(); Long startTimestamp = startdate.getTime() / 1000; Date enddate = format.parse(endTime); Long endTimestamp = enddate.getTime(); Long endTimestamp = enddate.getTime() / 1000; lambda.between(OdsInTime::getLastAt, startTimestamp, endTimestamp); } catch (ParseException e) { ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java
New file @@ -0,0 +1,96 @@ package com.ycl.vo.smoke; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonProperty; import com.ycl.entity.smoke.OdsInTime; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; @Data @Builder @NoArgsConstructor @AllArgsConstructor public class OdsInTimeVo { @ExcelProperty(value = "采集时间", index = 3) private String acquitAtStr; @ExcelProperty(value = "风机状态", index = 4) private String FanStatusStr; @ExcelProperty(value = "净化器状态", index = 5) private String FilterStatusStr; @ExcelProperty(value = "排放状态", index = 11) private String StatusStr; @ExcelProperty(value = "整体状态", index = 12) private String OnlineStatusStr; /** * 排放物折算浓度 */ @TableField("c_emissions") @JsonProperty("CEmissions") @ExcelProperty(value = "油烟折算浓度", index =7) private String cEmissions; /** * 颗粒物折算浓度 */ @TableField("c_granule") @JsonProperty("CGranule") @ExcelProperty(value = "颗粒物折算浓度", index =9) private String cGranule; /** * 实时排放量 */ @TableField("emissions_conc") @JsonProperty("EmissionsConc") @ExcelProperty(value = "油烟实时浓度", index =6) private BigDecimal emissionsConc; /** * 颗粒物含量 */ @TableField("granule_conc") @JsonProperty("GranuleConc") @ExcelProperty(value = "颗粒物实时浓度", index =8) private BigDecimal granuleConc; /** * 非甲烷总烃含量 */ @TableField("hydrocarbon_conc") @JsonProperty("HydrocarbonConc") @ExcelProperty(value = "非甲烷总烃实时浓度", index =10) private BigDecimal hydrocarbonConc; /** * 监测点名称 */ @TableField("locale") @JsonProperty("Locale") @ExcelProperty(value = "监测点名称", index = 1) private String locale; /** * 安装地址 */ @TableField("addr") @JsonProperty("Addr") @ExcelProperty(value = "安装地址", index = 2) private String addr; }