From a746fa722dbe2975e4a7fd2a2028acf1be93cdaf Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期五, 06 十月 2023 21:05:38 +0800 Subject: [PATCH] 导出功能 --- ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java | 64 ++++++++++++++++ ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java | 13 +++ ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java | 8 ++ ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java | 96 ++++++++++++++++++++++++ ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java | 6 5 files changed, 184 insertions(+), 3 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java b/ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java index a703a9b..fd2b6f2 100644 --- a/ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java +++ b/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", "姝e父"); + 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 diff --git a/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java b/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java new file mode 100644 index 0000000..e4b68ce --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java @@ -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; +} diff --git a/ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java b/ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java index 812a907..3522a73 100644 --- a/ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java +++ b/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; /** diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java index 6edbd26..14b4991 100644 --- a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java +++ b/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) { diff --git a/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java b/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java new file mode 100644 index 0000000..6349803 --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java @@ -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; + +} -- Gitblit v1.8.0