zhanghua
2023-10-06 a746fa722dbe2975e4a7fd2a2028acf1be93cdaf
导出功能
3个文件已修改
2个文件已添加
187 ■■■■■ 已修改文件
ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java 96 ●●●●● 补丁 | 查看 | 原始文档 | 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;
}