diff --git a/lzbi-module/pom.xml b/lzbi-module/pom.xml index 07151be..0fbb7b4 100644 --- a/lzbi-module/pom.xml +++ b/lzbi-module/pom.xml @@ -62,6 +62,14 @@ - + + cn.hutool + hutool-poi + + + xerces + xercesImpl + 2.12.2 + \ No newline at end of file diff --git a/lzbi-module/src/main/java/com/lzbi/bi/controller/DcBusiHisReportController.java b/lzbi-module/src/main/java/com/lzbi/bi/controller/DcBusiHisReportController.java new file mode 100644 index 0000000..00c7344 --- /dev/null +++ b/lzbi-module/src/main/java/com/lzbi/bi/controller/DcBusiHisReportController.java @@ -0,0 +1,306 @@ +package com.lzbi.bi.controller; + + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; +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.DcDymicReportHeaderVo; +import com.lzbi.bi.domain.LogTimeThreeQueryParamVo; +import com.lzbi.bi.domain.LogTimescaleHistoryThreeVo; +import com.lzbi.code.service.LogTimesacleHistoryThreeService; +import com.lzbi.common.core.controller.BaseController; +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 io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.NotNull; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 生产设备参数统计明细表; + * + * @author : zhousq + * @date : 2024-02-5 + */ +@Api(tags = "生产设备参数统计明细表功能接口") +@RestController +@RequestMapping("/dc/hisDetailReport") +public class DcBusiHisReportController extends BaseController { + @Resource + private LogTimesacleHistoryThreeService logTimesacleHistoryThreeService; + /** + * 分页列表查询 + * + * @return 分页数据 + */ + @GetMapping("/listReport") + public AjaxResult list(@NotNull @RequestBody LogTimeThreeQueryParamVo queryVo) { + String error = validatorator(queryVo); + if (error != null) { + return AjaxResult.error(error); + } else { + // 设置头部数据, + List tableColumns = new ArrayList(); + JSONObject tableColum = new JSONObject(); + tableColum.put("field", "totalTime"); + tableColum.put("title", "统计时间"); + tableColum.put("width", 100); + tableColumns.add(tableColum); + List tableDatas = new ArrayList(); + DcDymicHeaderQueryVo dcDymicHeaderQueryVo = new DcDymicHeaderQueryVo(); + dcDymicHeaderQueryVo.setParamModels(queryVo.getQueryParamClass()); + dcDymicHeaderQueryVo.setDeviceUuids(queryVo.getDeviceUuids()); + List dcDymicReportHeaderVos = logTimesacleHistoryThreeService.selectHeaderInfo(dcDymicHeaderQueryVo); + List collect = dcDymicReportHeaderVos.stream().map(DcDymicReportHeaderVo::getParamCode).collect(Collectors.toList()); + queryVo.setQueryParamCodes(collect); + List list = logTimesacleHistoryThreeService.selectDetailByQuery(queryVo); + Map columnMap = new LinkedHashMap<>(); + dcDymicReportHeaderVos.stream() + .sorted(Comparator.comparing(DcDymicReportHeaderVo::getDeviceUUID).thenComparing(DcDymicReportHeaderVo::getParamCode)) + .forEach(dcDymicReportHeaderVo -> { + JSONObject ct = new JSONObject(); + ct.put("field", "C"+dcDymicReportHeaderVo.getColCode()); + ct.put("title", dcDymicReportHeaderVo.getColName1() + "[" + dcDymicReportHeaderVo.getColName2() + "]"); + ct.put("width", 80); + columnMap.put(dcDymicReportHeaderVo.getColCode(), dcDymicReportHeaderVo.getParamCode()); + tableColumns.add(ct); + }); + Map> data = list.stream().sorted(Comparator.comparing((LogTimescaleHistoryThreeVo::getTimestampKey))).collect(Collectors.groupingBy(LogTimescaleHistoryThreeVo::getTimestampKey)); + //生成talbecolum { field: 'id', title: 'ID', width: 80, fixed: 'left' }, + //生成tabledata + //PageInfo pageInfo=new PageInfo(pageNum,pageSize); + data.entrySet().stream().forEach(entry -> { + JSONObject jdata = new JSONObject(); + jdata.put("totalTime", entry.getKey()); + entry.getValue().stream().sorted(Comparator.comparing(LogTimescaleHistoryThreeVo::getDeviceUuid).thenComparing(LogTimescaleHistoryThreeVo::getParamCode)) + .forEach(tVo -> { + String ck = tVo.getDeviceUuid() + "_" + tVo.getParamCode(); + if (StringUtils.isNotNull(columnMap.get(ck))) { + jdata.put("C"+ck, tVo.getParamValueNum()); + } + + }); + tableDatas.add(jdata); + }); + JSONObject dataInfo = new JSONObject(); + dataInfo.put("header", tableColumns); + dataInfo.put("tableData", tableDatas); + return AjaxResult.success(dataInfo); + } + + } + + @PostMapping("/listDetail") + public AjaxResult listDetail(@NotNull @RequestBody LogTimeThreeQueryParamVo queryVo) { + String error = validatorator(queryVo); + if (error != null) { + return AjaxResult.error(error); + } else { + // 设置头部数据, + List tableColumns = new ArrayList(); + JSONObject tableColum = new JSONObject(); + tableColum.put("field", "deviceName"); + tableColum.put("title", "设备名称"); + tableColum.put("width", 100); + tableColumns.add(tableColum); + tableColum = new JSONObject(); + tableColum.put("field", "paramName"); + tableColum.put("title", "参数名称"); + tableColum.put("width", 100); + tableColumns.add(tableColum); + List tableDatas = new ArrayList(); + DcDymicHeaderQueryVo dcDymicHeaderQueryVo = new DcDymicHeaderQueryVo(); + dcDymicHeaderQueryVo.setParamModels(queryVo.getQueryParamClass()); + dcDymicHeaderQueryVo.setDeviceUuids(queryVo.getDeviceUuids()); + List dcDymicReportHeaderVos = logTimesacleHistoryThreeService.selectHeaderInfo(dcDymicHeaderQueryVo); + List collect = dcDymicReportHeaderVos.stream().map(DcDymicReportHeaderVo::getParamCode).collect(Collectors.toList()); + queryVo.setQueryParamCodes(collect); + List list = logTimesacleHistoryThreeService.selectDetailByQuery(queryVo); + Map columnMap = new LinkedHashMap<>(); + dcDymicReportHeaderVos.stream() + .sorted(Comparator.comparing(DcDymicReportHeaderVo::getDeviceUUID).thenComparing(DcDymicReportHeaderVo::getParamCode)) + .forEach(dcDymicReportHeaderVo -> { + JSONObject ct = new JSONObject(); + ct.put("deviceName", "C"+dcDymicReportHeaderVo.getColCode()); + ct.put("paramName", dcDymicReportHeaderVo.getColName1() + "[" + dcDymicReportHeaderVo.getColName2() + "]"); + columnMap.put(dcDymicReportHeaderVo.getColCode(), ct); + + }); + Map> data = list.stream().sorted(Comparator.comparing((LogTimescaleHistoryThreeVo::getTimestampKey))).collect(Collectors.groupingBy(LogTimescaleHistoryThreeVo::getTimestampKey)); + data.entrySet().stream().forEach(entry -> { + JSONObject tc = new JSONObject(); + tc.put("field", entry.getKey().toString()); + tc.put("title", entry.getKey()); + tc.put("width", 100); + tableColumns.add(tc); + }); + Map> data2 = list.stream().sorted(Comparator.comparing((LogTimescaleHistoryThreeVo::getDeviceUuid))).collect(Collectors.groupingBy(LogTimescaleHistoryThreeVo::getDeviceUuid)); + data2.entrySet().stream().forEach(entry -> { + entry.getValue().stream().sorted(Comparator.comparing(LogTimescaleHistoryThreeVo::getParamCode)).forEach(vo -> { + JSONObject jsonObject = columnMap.get(vo.getDeviceUuid() + "_" + vo.getParamCode()); + if(StringUtils.isNotNull(jsonObject)){ + jsonObject.put(vo.getTimestampKey().toString(), vo.getParamValueNum()); + } + tableDatas.add(jsonObject); + }); + }); + JSONObject dataInfo = new JSONObject(); + dataInfo.put("header", tableColumns); + dataInfo.put("tableData", tableDatas); + return AjaxResult.success(dataInfo); + } + } + private String validatorator(LogTimeThreeQueryParamVo queryVo) { + if (StringUtils.isEmpty(queryVo.getBeginTime())) { + return "查询失败,开始时间不能为空!"; + } + if (StringUtils.isEmpty(queryVo.getEndTime())) { + return "查询失败,结束时间不能为空!"; + } + if (StringUtils.isEmpty(queryVo.getQueryParamClass())) { + return "查询失败,参数类型不能为空!"; + } + return null; + } + ///按时间 设备+参数 形成数据--时间分组 + private List> getMapList(List list, List dcDymicReportHeaderVos) { + Map> collect = list.stream().sorted(Comparator.comparing(LogTimescaleHistoryThreeVo::getTimestampKey)).collect(Collectors.groupingBy(LogTimescaleHistoryThreeVo::getTimestampKey)); + return collect.entrySet().stream().map(entry -> { + Map map = new LinkedHashMap<>(); + map.put("统计时间", DateUtil.format(entry.getKey(), DatePattern.NORM_DATETIME_PATTERN)); + entry.getValue().stream().sorted(Comparator.comparing(LogTimescaleHistoryThreeVo::getDeviceUuid).thenComparing(LogTimescaleHistoryThreeVo::getParamCode)).forEach(vo -> { + String key=vo.getDeviceUuid() + "_" + vo.getParamCode(); + Optional first = dcDymicReportHeaderVos.stream().filter(vos -> vos.getColCode().equals(key)).findFirst(); + if(first.isPresent()){ + //map.put(first.get().getColName1(), first.get().getColName2()); + map.put(first.get().getColName1()+'.'+first.get().getColName2(), vo.getParamValueNum()); + } + }); + return map; + }).collect(Collectors.toList()); + } + /// 设备+参数 形成数据--设备-参数分组 + private List> getMapListDevice(List list,List dcDymicReportHeaderVos) { + Map> collect = list.stream().sorted(Comparator.comparing(LogTimescaleHistoryThreeVo::getDeviceUuid)).collect(Collectors.groupingBy(LogTimescaleHistoryThreeVo::getDeviceUuid)); + List> collect1 = collect.entrySet().stream().map(entry -> { + Map map = new LinkedHashMap<>(); + entry.getValue().stream().sorted(Comparator.comparing(LogTimescaleHistoryThreeVo::getTimestampKey)).forEach(vo -> { + String key = vo.getDeviceUuid() + "_" + vo.getParamCode(); + Optional first = dcDymicReportHeaderVos.stream().filter(vos -> vos.getColCode().equals(key)).findFirst(); + if (first.isPresent()) { + map.put("设备名称", first.get().getColName1()); + map.put("参数名称", first.get().getColName2()); + map.put(DateUtil.format(vo.getTimestampKey(), DatePattern.NORM_DATETIME_PATTERN), vo.getParamValueNum()); + } + }); + return map; + }).collect(Collectors.toList()); + return collect1; + } + //获取excel表头格式1 + private List> getMapListHeader(List dcDymicReportHeaderVos) { + //初始化map 获取字段的名称 根据 + Map> collect = dcDymicReportHeaderVos.stream().collect(Collectors.groupingBy(DcDymicReportHeaderVo::getColName1)); + List> headerList = dcDymicReportHeaderVos.stream().sorted(Comparator.comparing(DcDymicReportHeaderVo::getDeviceUUID).thenComparing(DcDymicReportHeaderVo::getParamCode).thenComparing(DcDymicReportHeaderVo::getPartion)).map(entry -> { + Map map = new LinkedHashMap<>(); + map.put(entry.getColName1(), collect.get(entry.getColName1()).stream().map(DcDymicReportHeaderVo::getColName2).collect(Collectors.toList())); + return map; + } + ).collect(Collectors.toList()); + //headerList.add(0,"统计时间"); + return headerList; + } + //获取数据 + + private List> getMapListHeaderString(DcDymicHeaderQueryVo dcDymicHeaderQueryVo) { + List lists = new ArrayList<>(); + List dcDymicReportHeaderVos = logTimesacleHistoryThreeService.selectHeaderInfo(dcDymicHeaderQueryVo); + //初始化map 获取字段的名称 根据 + List headerList = dcDymicReportHeaderVos.stream().sorted(Comparator.comparing(DcDymicReportHeaderVo::getColCode)).map(DcDymicReportHeaderVo::getColName2 + ).collect(Collectors.toList()); + //设置表字表头的时间类型 + headerList.add(0, "统计时间"); + List> ret = new ArrayList<>(); + ret.add(headerList); + return ret; + } + + /** + * "生产设备参数统计明细表导出功能 + */ + @ApiOperation("生产设备参数统计明细表导出功能--时间纵向") + @PostMapping("/export") + public void export(HttpServletResponse response, @RequestBody LogTimeThreeQueryParamVo queryVo) throws IOException { + List> mapList=getExcellData(queryVo,2); + toExcel(response,mapList); + } + @ApiOperation("生产设备参数统计明细表导出功能-时间横向") + @PostMapping("/export2") + public void export2(HttpServletResponse response, @RequestBody LogTimeThreeQueryParamVo queryVo) throws IOException { + List> mapList=getExcellData(queryVo,2); + // 通过工具类创建writer,默认创建xls格式 + toExcel(response,mapList); + + } + //获取excel数据 1 excel设备参数为列模式 2 excel时间为列模式 3 浏览器设备参数为列模式 + //注意 excel有最大列数显示255 ,超出列数会报错 + private List> getExcellData(LogTimeThreeQueryParamVo queryVo,int type){ + // 设置头部数据, + DcDymicHeaderQueryVo dcDymicHeaderQueryVo = new DcDymicHeaderQueryVo(); + dcDymicHeaderQueryVo.setParamModels(queryVo.getQueryParamClass()); + dcDymicHeaderQueryVo.setDeviceUuids(queryVo.getDeviceUuids()); + List dcDymicReportHeaderVos = logTimesacleHistoryThreeService.selectHeaderInfo(dcDymicHeaderQueryVo); + List collect = dcDymicReportHeaderVos.stream().map(DcDymicReportHeaderVo::getParamCode).collect(Collectors.toList()); + queryVo.setQueryParamCodes(collect); + List list = logTimesacleHistoryThreeService.selectDetailByQuery(queryVo); + if(type==1){ + return getMapListDevice(list,dcDymicReportHeaderVos); + }else { + return getMapList(list,dcDymicReportHeaderVos); + } + } + + private void toExcel(HttpServletResponse response,List> mapList) throws IOException { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + ExcelWriter writer = ExcelUtil.getWriter(); + // 一次性写出内容,使用默认样式,强制输出标题 + //writer.write(mapList, true); + + //List> mapListHeader = getMapListHeader(dcDymicReportHeaderVos); + //writer.writeHeadRow(mapListHeader); + writer.write(mapList, true); + //out为OutputStream,需要写出到的目标流 + + //response为HttpServletResponse对象 + response.setContentType("application/vnd.ms-excel;charset=utf-8"); + //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 + response.setHeader("Content-Disposition", "attachment;filename=换热站数据明细表.xls"); + ServletOutputStream out = response.getOutputStream(); + writer.flush(out, true); + // 关闭writer,释放内存 + writer.close(); + //此处记得关闭输出Servlet流 + IoUtil.close(out); + } + +} \ No newline at end of file diff --git a/lzbi-module/src/main/java/com/lzbi/bi/domain/DcDymicHeaderQueryVo.java b/lzbi-module/src/main/java/com/lzbi/bi/domain/DcDymicHeaderQueryVo.java new file mode 100644 index 0000000..f2c81e3 --- /dev/null +++ b/lzbi-module/src/main/java/com/lzbi/bi/domain/DcDymicHeaderQueryVo.java @@ -0,0 +1,13 @@ +package com.lzbi.bi.domain; + +import lombok.Data; + +import java.util.List; + +@Data +public class DcDymicHeaderQueryVo { + /*设备UUID列表*/ + private List deviceUuids; + /**参数类型列表*/ + private List paramModels; +} diff --git a/lzbi-module/src/main/java/com/lzbi/bi/domain/DcDymicReportHeaderVo.java b/lzbi-module/src/main/java/com/lzbi/bi/domain/DcDymicReportHeaderVo.java new file mode 100644 index 0000000..e2624d9 --- /dev/null +++ b/lzbi-module/src/main/java/com/lzbi/bi/domain/DcDymicReportHeaderVo.java @@ -0,0 +1,23 @@ +package com.lzbi.bi.domain; + +import lombok.Data; + +@Data +public class DcDymicReportHeaderVo { + /**字段名称-一级标题*/ + private String colName1; + /**字段名称-二级标题*/ + private String colName2; + /**字段编码*/ + private String colCode; + /**类型编码*/ + private String classCode; + /**类型名称*/ + private String className; + /**字段名称*/ + private String deviceUUID; + /**参数编码*/ + private String paramCode; + /**参数分区*/ + private String partion; +} diff --git a/lzbi-module/src/main/java/com/lzbi/bi/domain/LogTimeThreeQueryParamVo.java b/lzbi-module/src/main/java/com/lzbi/bi/domain/LogTimeThreeQueryParamVo.java new file mode 100644 index 0000000..93c85f3 --- /dev/null +++ b/lzbi-module/src/main/java/com/lzbi/bi/domain/LogTimeThreeQueryParamVo.java @@ -0,0 +1,36 @@ +package com.lzbi.bi.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @Description: level3 日志查询参数 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +@ApiModel(value = "level3 日志查询参数",description = "") +public class LogTimeThreeQueryParamVo { + /** 开始时间 */ + @ApiModelProperty(name = "开始时间",notes = "") + private String beginTime; + /** 结束时间 */ + @ApiModelProperty(name = "开始时间",notes = "") + private String endTime; + /** 中台设备UUID */ + @ApiModelProperty(name = "中台设备UUID",notes = "") + private List deviceUuids ; + /** 参数列表 */ + @ApiModelProperty(name = "参数列表",notes = "") + private List queryParamCodes ; + /** 参数模版列表 */ + @ApiModelProperty(name = "参数模版列表",notes = "") + private List queryParamClass ; +} diff --git a/lzbi-module/src/main/java/com/lzbi/bi/domain/LogTimescaleHistoryThreeVo.java b/lzbi-module/src/main/java/com/lzbi/bi/domain/LogTimescaleHistoryThreeVo.java new file mode 100644 index 0000000..e0a740c --- /dev/null +++ b/lzbi-module/src/main/java/com/lzbi/bi/domain/LogTimescaleHistoryThreeVo.java @@ -0,0 +1,45 @@ +package com.lzbi.bi.domain; + + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; + +@Data +@NoArgsConstructor +@AllArgsConstructor +//@Accessors(chain = true) +@ApiModel(value = "数据采集历史汇总表",description = "") +@TableName("dc_base_log_history_level3") +public class LogTimescaleHistoryThreeVo { + /** 时间戳 */ + @ApiModelProperty(name = "时间戳",notes = "") + private Timestamp timestampKey; + /** 中台设备UUID */ + @ApiModelProperty(name = "中台设备UUID",notes = "") + private String deviceUuid ; + /** 参数编码 */ + @ApiModelProperty(name = "参数编码",notes = "") + private String paramCode ; + /** 参数值数值型 */ + @ApiModelProperty(name = "参数值数值型",notes = "") + private Double paramValueNum ; + /** 参数类型 */ + @ApiModelProperty(name = "参数类型",notes = "") + private String paramType ; + /** 参数值字符型 */ + @ApiModelProperty(name = "参数值字符型",notes = "") + private String paramValueStr ; + @ApiModelProperty(name = "数值来源类型",notes = "") + private String logSrctag ; + @ApiModelProperty(name = "数值来源的时间tingsboard ts ;ioserver t",notes = "") + private String logSrctype ; + + + +} \ No newline at end of file diff --git a/lzbi-module/src/main/java/com/lzbi/bi/mapper/LogTimeScaleThreeMapper.java b/lzbi-module/src/main/java/com/lzbi/bi/mapper/LogTimeScaleThreeMapper.java new file mode 100644 index 0000000..eedd4ca --- /dev/null +++ b/lzbi-module/src/main/java/com/lzbi/bi/mapper/LogTimeScaleThreeMapper.java @@ -0,0 +1,25 @@ +package com.lzbi.bi.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lzbi.bi.domain.DcDymicHeaderQueryVo; +import com.lzbi.bi.domain.DcDymicReportHeaderVo; +import com.lzbi.bi.domain.LogTimeThreeQueryParamVo; +import com.lzbi.bi.domain.LogTimescaleHistoryThreeVo; + + +import java.util.List; + + +@InterceptorIgnore(tenantLine = "true") +public interface LogTimeScaleThreeMapper extends BaseMapper { + + + + //List selectVo(DeviceHistoryQueryVo queryVo); + List selectDetailByQuery(LogTimeThreeQueryParamVo queryVo); + List selectHeaderInfo(DcDymicHeaderQueryVo queryVo); + +} + + + diff --git a/lzbi-module/src/main/java/com/lzbi/code/service/LogTimesacleHistoryThreeService.java b/lzbi-module/src/main/java/com/lzbi/code/service/LogTimesacleHistoryThreeService.java new file mode 100644 index 0000000..4ac3028 --- /dev/null +++ b/lzbi-module/src/main/java/com/lzbi/code/service/LogTimesacleHistoryThreeService.java @@ -0,0 +1,33 @@ +package com.lzbi.code.service; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import com.lzbi.bi.domain.DcDymicHeaderQueryVo; +import com.lzbi.bi.domain.DcDymicReportHeaderVo; +import com.lzbi.bi.domain.LogTimeThreeQueryParamVo; +import com.lzbi.bi.domain.LogTimescaleHistoryThreeVo; +import com.lzbi.bi.mapper.LogTimeScaleThreeMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; +@DS("workDB") +@Slf4j +@Service +public class LogTimesacleHistoryThreeService extends ServiceImpl implements IService { + + + //@DataScopeCommon(deptAlias = "param") + //public List selectVo(DeviceHistoryQueryVo queryVo){ + // return baseMapper.selectVo(queryVo); + //} + + public List selectDetailByQuery(LogTimeThreeQueryParamVo queryVo){ + return baseMapper.selectDetailByQuery(queryVo); + } + public List selectHeaderInfo(DcDymicHeaderQueryVo queryVo){ + return baseMapper.selectHeaderInfo(queryVo); + } +} diff --git a/lzbi-module/src/main/resources/mapper/LogTimeScaleThreeMapper.xml b/lzbi-module/src/main/resources/mapper/LogTimeScaleThreeMapper.xml new file mode 100644 index 0000000..47b9a4a --- /dev/null +++ b/lzbi-module/src/main/resources/mapper/LogTimeScaleThreeMapper.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3266a18..78de54a 100644 --- a/pom.xml +++ b/pom.xml @@ -30,6 +30,7 @@ 4.1.2 2.3 0.9.1 + 5.8.20 @@ -181,6 +182,14 @@ lzbi-module ${lzbi.version} + + cn.hutool + hutool-bom + ${hutool.version} + pom + + import +