|
@ -1,16 +1,11 @@ |
|
|
package com.lzbi.bi.controller; |
|
|
package com.lzbi.bi.controller; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DatePattern; |
|
|
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
import cn.hutool.core.date.DateUtil; |
|
|
import cn.hutool.core.io.IoUtil; |
|
|
import cn.hutool.core.io.IoUtil; |
|
|
import cn.hutool.poi.excel.ExcelUtil; |
|
|
import cn.hutool.poi.excel.ExcelUtil; |
|
|
import cn.hutool.poi.excel.ExcelWriter; |
|
|
import cn.hutool.poi.excel.ExcelWriter; |
|
|
import com.alibaba.fastjson2.JSONObject; |
|
|
import com.alibaba.fastjson2.JSONObject; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
|
|
|
|
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
|
|
import com.lzbi.bi.domain.DcDymicHeaderQueryVo; |
|
|
import com.lzbi.bi.domain.DcDymicHeaderQueryVo; |
|
|
import com.lzbi.bi.domain.DcDymicReportHeaderVo; |
|
|
import com.lzbi.bi.domain.DcDymicReportHeaderVo; |
|
|
import com.lzbi.bi.domain.LogTimeThreeQueryParamVo; |
|
|
import com.lzbi.bi.domain.LogTimeThreeQueryParamVo; |
|
@ -18,12 +13,9 @@ import com.lzbi.bi.domain.LogTimescaleHistoryThreeVo; |
|
|
import com.lzbi.code.service.LogTimesacleHistoryThreeService; |
|
|
import com.lzbi.code.service.LogTimesacleHistoryThreeService; |
|
|
import com.lzbi.common.core.controller.BaseController; |
|
|
import com.lzbi.common.core.controller.BaseController; |
|
|
import com.lzbi.common.core.domain.AjaxResult; |
|
|
import com.lzbi.common.core.domain.AjaxResult; |
|
|
import com.lzbi.common.core.page.TableDataInfo; |
|
|
|
|
|
import com.lzbi.common.utils.DateUtils; |
|
|
|
|
|
import com.lzbi.common.utils.StringUtils; |
|
|
import com.lzbi.common.utils.StringUtils; |
|
|
import io.swagger.annotations.Api; |
|
|
import io.swagger.annotations.Api; |
|
|
import io.swagger.annotations.ApiOperation; |
|
|
import io.swagger.annotations.ApiOperation; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
@ -31,7 +23,6 @@ import javax.servlet.ServletOutputStream; |
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
import javax.validation.constraints.NotNull; |
|
|
import javax.validation.constraints.NotNull; |
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
import java.sql.Timestamp; |
|
|
|
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@ -47,6 +38,7 @@ import java.util.stream.Collectors; |
|
|
public class DcBusiHisReportController extends BaseController { |
|
|
public class DcBusiHisReportController extends BaseController { |
|
|
@Resource |
|
|
@Resource |
|
|
private LogTimesacleHistoryThreeService logTimesacleHistoryThreeService; |
|
|
private LogTimesacleHistoryThreeService logTimesacleHistoryThreeService; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 分页列表查询 |
|
|
* 分页列表查询 |
|
|
* |
|
|
* |
|
@ -169,6 +161,7 @@ public class DcBusiHisReportController extends BaseController { |
|
|
return AjaxResult.success(dataInfo); |
|
|
return AjaxResult.success(dataInfo); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private String validatorator(LogTimeThreeQueryParamVo queryVo) { |
|
|
private String validatorator(LogTimeThreeQueryParamVo queryVo) { |
|
|
if (StringUtils.isNull(queryVo.getBeginTime()) || StringUtils.isEmpty(queryVo.getBeginTime())) { |
|
|
if (StringUtils.isNull(queryVo.getBeginTime()) || StringUtils.isEmpty(queryVo.getBeginTime())) { |
|
|
return "查询失败,开始时间不能为空!"; |
|
|
return "查询失败,开始时间不能为空!"; |
|
@ -181,6 +174,7 @@ public class DcBusiHisReportController extends BaseController { |
|
|
} |
|
|
} |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
///按时间 设备+参数 形成数据--时间分组
|
|
|
///按时间 设备+参数 形成数据--时间分组
|
|
|
private List<Map<String, Object>> getMapList(List<LogTimescaleHistoryThreeVo> list, List<DcDymicReportHeaderVo> dcDymicReportHeaderVos) { |
|
|
private List<Map<String, Object>> getMapList(List<LogTimescaleHistoryThreeVo> list, List<DcDymicReportHeaderVo> dcDymicReportHeaderVos) { |
|
|
Map<String, List<LogTimescaleHistoryThreeVo>> collect = list.stream().collect(Collectors.groupingBy(LogTimescaleHistoryThreeVo::getTimeStampString)); |
|
|
Map<String, List<LogTimescaleHistoryThreeVo>> collect = list.stream().collect(Collectors.groupingBy(LogTimescaleHistoryThreeVo::getTimeStampString)); |
|
@ -198,6 +192,7 @@ public class DcBusiHisReportController extends BaseController { |
|
|
return map; |
|
|
return map; |
|
|
}).collect(Collectors.toList()); |
|
|
}).collect(Collectors.toList()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// 设备+参数 形成数据--设备-参数分组
|
|
|
/// 设备+参数 形成数据--设备-参数分组
|
|
|
private List<Map<String, Object>> getMapListDevice(List<LogTimescaleHistoryThreeVo> list, List<DcDymicReportHeaderVo> dcDymicReportHeaderVos) { |
|
|
private List<Map<String, Object>> getMapListDevice(List<LogTimescaleHistoryThreeVo> list, List<DcDymicReportHeaderVo> dcDymicReportHeaderVos) { |
|
|
Map<String, List<LogTimescaleHistoryThreeVo>> collect = list.stream().collect(Collectors.groupingBy(item -> item.getDeviceUuid() + "_" + item.getParamCode())); |
|
|
Map<String, List<LogTimescaleHistoryThreeVo>> collect = list.stream().collect(Collectors.groupingBy(item -> item.getDeviceUuid() + "_" + item.getParamCode())); |
|
@ -226,6 +221,7 @@ public class DcBusiHisReportController extends BaseController { |
|
|
List<Map<String, Object>> mapList = getExcellData(queryVo, 2); |
|
|
List<Map<String, Object>> mapList = getExcellData(queryVo, 2); |
|
|
toExcel(response, mapList); |
|
|
toExcel(response, mapList); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ApiOperation("生产设备参数统计明细表导出功能-时间横向") |
|
|
@ApiOperation("生产设备参数统计明细表导出功能-时间横向") |
|
|
@PostMapping("/export2") |
|
|
@PostMapping("/export2") |
|
|
public void export2(HttpServletResponse response, LogTimeThreeQueryParamVo queryVo) throws IOException { |
|
|
public void export2(HttpServletResponse response, LogTimeThreeQueryParamVo queryVo) throws IOException { |
|
@ -234,6 +230,7 @@ public class DcBusiHisReportController extends BaseController { |
|
|
toExcel(response, mapList); |
|
|
toExcel(response, mapList); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//获取excel数据 1 excel设备参数为列模式 2 excel时间为列模式 3 浏览器设备参数为列模式
|
|
|
//获取excel数据 1 excel设备参数为列模式 2 excel时间为列模式 3 浏览器设备参数为列模式
|
|
|
//注意 excel有最大列数显示255 ,超出列数会报错
|
|
|
//注意 excel有最大列数显示255 ,超出列数会报错
|
|
|
private List<Map<String, Object>> getExcellData(LogTimeThreeQueryParamVo queryVo, int type) { |
|
|
private List<Map<String, Object>> getExcellData(LogTimeThreeQueryParamVo queryVo, int type) { |
|
@ -252,26 +249,31 @@ public class DcBusiHisReportController extends BaseController { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void toExcel(HttpServletResponse response,List<Map<String, Object>> mapList) throws IOException { |
|
|
private void toExcel(HttpServletResponse response, List<Map<String, Object>> mapList) { |
|
|
String fileName ="report"+DateUtil.now() + ".xls"; |
|
|
// String fileName = "report" + DateUtil.now() + ".xls";
|
|
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
|
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
|
|
response.setCharacterEncoding("utf-8"); |
|
|
response.setCharacterEncoding("utf-8"); |
|
|
ExcelWriter writer = ExcelUtil.getWriter(); |
|
|
ExcelWriter writer = ExcelUtil.getWriter(true); |
|
|
writer.write(mapList, true); |
|
|
writer.write(mapList, true); |
|
|
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
|
|
|
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
|
|
|
// response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
|
|
|
// response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
|
|
|
ServletOutputStream out = response.getOutputStream(); |
|
|
try (ServletOutputStream out = response.getOutputStream()) { |
|
|
writer.flush(out, true); |
|
|
writer.flush(out, true); |
|
|
// 关闭writer,释放内存
|
|
|
// 关闭writer,释放内存
|
|
|
writer.close(); |
|
|
writer.close(); |
|
|
//此处记得关闭输出Servlet流
|
|
|
//此处记得关闭输出Servlet流
|
|
|
IoUtil.close(out); |
|
|
IoUtil.close(out); |
|
|
|
|
|
} catch (IOException e) { |
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ApiOperation("获取生产IOT系统参数模版列表") |
|
|
@ApiOperation("获取生产IOT系统参数模版列表") |
|
|
@GetMapping("/getParamClass") |
|
|
@GetMapping("/getParamClass") |
|
|
public AjaxResult getParamClass() { |
|
|
public AjaxResult getParamClass() { |
|
|
return AjaxResult.success(logTimesacleHistoryThreeService.selectParamModels()); |
|
|
return AjaxResult.success(logTimesacleHistoryThreeService.selectParamModels()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ApiOperation("获取生产IOT系统设备列表") |
|
|
@ApiOperation("获取生产IOT系统设备列表") |
|
|
@GetMapping("/getDevicie/{orgCode}") |
|
|
@GetMapping("/getDevicie/{orgCode}") |
|
|
public AjaxResult selectDevices(@PathVariable Long orgCode) { |
|
|
public AjaxResult selectDevices(@PathVariable Long orgCode) { |
|
|