10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | dengzedong | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
10 天以前 | dengzedong | ![]() |
10 天以前 | 潘志宝 | ![]() |
ansteel-biz/db/mysql.sql
@@ -976,20 +976,30 @@ -- xiz135机组指标数据配置表 -- ---------------------------- DROP TABLE IF EXISTS `t_plant_index_conf`; CREATE TABLE `t_plant_index_conf` ( `id` varchar(36) NOT NULL COMMENT 'id', `business_type` varchar(20) DEFAULT NULL COMMENT '业务类别', `business_desc` varchar(20) DEFAULT NULL COMMENT '业务描述', `ind_code` varchar(20) DEFAULT NULL COMMENT '指标编码', `ind_name` varchar(20) DEFAULT NULL COMMENT '指标名称', `ind_unit` varchar(20) DEFAULT NULL COMMENT '指标单位', `ind_avg` varchar(20) DEFAULT NULL COMMENT '历史平均', `ind_theory` varchar(20) DEFAULT NULL COMMENT '理论值', `ind_optimal` varchar(20) DEFAULT NULL COMMENT '最优值', `ind_real` varchar(20) DEFAULT NULL COMMENT '实时值', `ind_deviation_value` varchar(20) DEFAULT NULL COMMENT '偏差值', `ind_deviation_rate` varchar(20) DEFAULT NULL COMMENT '偏差率', `ind_previous` varchar(20) DEFAULT NULL COMMENT '上班数据', `sort` int DEFAULT NULL COMMENT '排序', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='135机组指标数据配置表'; CREATE TABLE `t_plant_index_conf` ( `id` varchar(36) NOT NULL COMMENT 'id', `business_type` varchar(20) DEFAULT NULL COMMENT '业务类别', `business_desc` varchar(20) DEFAULT NULL COMMENT '业务描述', `ind_code` varchar(20) DEFAULT NULL COMMENT '指标编码', `ind_name` varchar(20) DEFAULT NULL COMMENT '指标名称', `ind_unit` varchar(20) DEFAULT NULL COMMENT '指标单位', `ind_avg` varchar(20) DEFAULT NULL COMMENT '历史平均', `ind_theory` varchar(20) DEFAULT NULL COMMENT '理论值', `ind_optimal` varchar(20) DEFAULT NULL COMMENT '最优值', `ind_real` varchar(20) DEFAULT NULL COMMENT '实时值', `ind_deviation_value` varchar(20) DEFAULT NULL COMMENT '偏差值', `ind_deviation_rate` varchar(20) DEFAULT NULL COMMENT '偏差率', `ind_previous` varchar(20) DEFAULT NULL COMMENT '上班数据', `sort` int DEFAULT NULL COMMENT '排序', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='135机组指标数据配置表'; CREATE TABLE `t_sync_log` ( `id` varchar(36) NOT NULL COMMENT 'id', `table_name` varchar(50) NULL DEFAULT NULL COMMENT '表名称', `remark` varchar(50) NULL DEFAULT NULL COMMENT '备注', create_date datetime COMMENT '创建时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT '同步日志'; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/FileController.java
文件已删除 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -16,6 +16,7 @@ import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO; import com.iailab.module.ansteel.common.constant.CommonConstant; import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum; import com.iailab.module.ansteel.common.utils.CalendarUtil; import com.iailab.module.ansteel.common.utils.DecimalUtil; import com.iailab.module.ansteel.common.utils.PowerUtil; import com.iailab.module.ansteel.power.entity.*; @@ -302,6 +303,13 @@ params.put("groupName", entity.getNodeName()); } list = powerNetDropdownService.list(params); // 追加公共 2025-06-18 Map<String, Object> paramsCom = new HashMap<>(); paramsCom.put("groupName", "COMMON1"); List<PowerNetDropdownEntity> comList = powerNetDropdownService.list(paramsCom); list.addAll(comList); List<String> points = list.stream().map(item -> { return item.getCurCos(); }).collect(Collectors.toList()); @@ -728,9 +736,20 @@ log.info("PowerDemandEntity is null"); return success(result); } List<PowerNetDropdownEntity> list = new ArrayList<>(); Map<String, Object> params0 = new HashMap<>(); params0.put("groupName", entity.getName()); List<PowerNetDropdownEntity> list = powerNetDropdownService.list(params0); List<PowerNetDropdownEntity> list0 = powerNetDropdownService.list(params0); if (!CollectionUtils.isEmpty(list0)) { list.addAll(list0); } Map<String, Object> params1 = new HashMap<>(); params1.put("groupName", "COMMON1"); List<PowerNetDropdownEntity> list1 = powerNetDropdownService.list(params1); if (!CollectionUtils.isEmpty(list1)) { list.addAll(list1); } List<String> points = list.stream().map(item -> { return item.getCurCos(); }).collect(Collectors.toList()); @@ -1136,6 +1155,136 @@ return success(result); } @PostMapping("/net-factor/export-history") @Operation(summary = "功率因数-电网拓扑功率历史导出(多code)") public void exportPowerHistoryList(HttpServletResponse response, HttpServletRequest request, @RequestBody PowerNetFactorHisReqDTO dto) throws IOException { log.info("exportPowerHistoryList开始"); String firstCol = "时间"; List<String> column = new ArrayList<>(); column.add(firstCol); List<List<Object>> exportData = new ArrayList<>(); List<String> nodeCodeList = dto.getNodeCodeList(); if (CollectionUtils.isEmpty(nodeCodeList)) { return; } String queryType = dto.getQueryType(); if (StringUtils.isBlank(queryType)) { return; } Calendar calendar0 = Calendar.getInstance(); calendar0.set(Calendar.MILLISECOND, 0); calendar0.set(Calendar.SECOND, 0); Date end0 = dto.getEndTime() == null ? calendar0.getTime() : dto.getEndTime(); calendar0.set(Calendar.MINUTE, 0); calendar0.set(Calendar.HOUR_OF_DAY, 0); Date start0 = dto.getStartTime() == null ? calendar0.getTime() : dto.getStartTime(); Map<String, Map<String, Object>> dataAll = new HashMap<>(); List<String> categories = DateUtils.getTimeScale(start0, end0, 60); for (String nodeCode : nodeCodeList) { PowerNetFactorQuery powerNetFactorQuery = null; PowerNetFactorEntity powerNetFactorEntity = powerNetFactorService.getByNodeCode(nodeCode); PowerNetDropdownEntity powerNetDropdownEntity = powerNetDropdownService.getByNodeCode(nodeCode); if (powerNetFactorEntity != null) { powerNetFactorQuery = ConvertUtils.sourceToTarget(powerNetFactorEntity, PowerNetFactorQuery.class); } else if (powerNetDropdownEntity != null) { powerNetFactorQuery = ConvertUtils.sourceToTarget(powerNetDropdownEntity, PowerNetFactorQuery.class); } if (powerNetFactorQuery == null) { log.info("powerNetFactor is null"); continue; } column.add(powerNetFactorQuery.getNodeName()); log.info("开始查询,"); ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO(); String pointNo = ""; String[] pointNoArr = new String[2]; switch (queryType.toUpperCase()) { case "P": pointNo = powerNetFactorQuery.getCurP(); break; case "Q": pointNo = powerNetFactorQuery.getCurQ(); break; case "COS": pointNo = powerNetFactorQuery.getCurCos(); break; case "DAYCOS": pointNoArr[0] = powerNetFactorEntity.getPDay(); pointNoArr[1] = powerNetFactorEntity.getQDay(); break; case "MONTHCOS": pointNoArr[0] = powerNetFactorEntity.getPMon(); pointNoArr[1] = powerNetFactorEntity.getQMon(); break; default: break; } //查询图表 apiPointValueQueryDTO.setEnd(end0); apiPointValueQueryDTO.setStart(start0); Map<String, Object> dataMap = new HashMap<>(); if (StringUtils.isNotBlank(pointNo)) { log.info("查询功率"); apiPointValueQueryDTO.setPointNo(pointNo); List<ApiPointValueDTO> chartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); for (ApiPointValueDTO pv : chartData) { String key = DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); Object val = pv.getV(); dataMap.put(key, val); } } else if (StringUtils.isNotBlank(pointNoArr[0]) && StringUtils.isNotBlank(pointNoArr[1])) { log.info("查询累计功率"); apiPointValueQueryDTO.setPointNo(pointNoArr[0]); List<ApiPointValueDTO> chartDataP = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); Map<String, Double> dataMapP = new HashMap<>(); for (ApiPointValueDTO pv : chartDataP) { dataMapP.put(DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND), pv.getV()); } apiPointValueQueryDTO.setPointNo(pointNoArr[1]); List<ApiPointValueDTO> chartDataQ = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); Map<String, Double> dataMapQ = new HashMap<>(); for (ApiPointValueDTO pv : chartDataQ) { dataMapQ.put(DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND), pv.getV()); } for (String cate : categories) { Double cos = PowerUtil.calculateCos(dataMapP.get(cate), dataMapQ.get(cate)); Object val = cos == null ? 0 : new BigDecimal(cos).setScale(2, BigDecimal.ROUND_HALF_UP); dataMap.put(cate, val); } } dataAll.put(powerNetFactorQuery.getNodeName(), dataMap); } log.info("column=" + JSONArray.toJSONString(column)); for (String cate : categories) { List<Object> row = new ArrayList<>(); for (String col : column) { if (firstCol.equals(col)) { row.add(cate); } else if (dataAll.get(col) == null) { log.info(col + " is null"); row.add(""); } else if (dataAll.get(col).get(cate) == null) { log.info(col + cate + " is null"); row.add(""); } else { row.add(dataAll.get(col).get(cate)); } } exportData.add(row); } log.info("exportData.size=" + exportData.size()); ExcelUtils.write(response, "历史.xlsx", "历史数据", column, exportData); } @PostMapping("/net-factor/history-list") @Operation(summary = "功率因数-电网拓扑功率历史(多code)") public CommonResult<LinkedHashMap<String, PowerHistoryDTO>> getPowerHistoryList(@RequestBody PowerNetFactorHisReqDTO dto) { @@ -1204,9 +1353,14 @@ apiPointValueQueryDTO.setEnd(end0); apiPointValueQueryDTO.setStart(start0); List<Object[]> dataList = new ArrayList<>(); List<Double> valueList = new ArrayList<>(); double max = 0; double min = 0; double avg = 0; String maxTime = ""; String minTime = ""; if (StringUtils.isNotBlank(pointNo)) { List<Double> valueList = new ArrayList<>(); apiPointValueQueryDTO.setPointNo(pointNo); List<ApiPointValueDTO> chartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); for (ApiPointValueDTO pv : chartData) { @@ -1217,15 +1371,9 @@ valueList.add(pv.getV()); } // 返送累计 double fsl = 0; double max = 0; double min = 0; double avg = 0; if (!CollectionUtils.isEmpty(valueList)) { max = valueList.stream().mapToDouble(Double::doubleValue).max().getAsDouble(); min = valueList.stream().mapToDouble(Double::doubleValue).min().getAsDouble(); avg = valueList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); if (powerNetFactorQuery.getCurFlag() != null && powerNetFactorQuery.getCurFlag().intValue() != 0) { for ( Double val : valueList) { if (new BigDecimal(val).compareTo(BigDecimal.ZERO) != powerNetFactorQuery.getCurFlag()) { @@ -1236,21 +1384,60 @@ } } } powerHistoryDTO.setMax(new BigDecimal(max).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setMin(new BigDecimal(min).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setAvg(new BigDecimal(avg).setScale(2, BigDecimal.ROUND_HALF_UP)); // 当查询为P, Q,且有返送flag时 计算 返送累计 if (("P".equals(queryType.toUpperCase()) || "Q".equals(queryType.toUpperCase())) && powerNetFactorQuery.getCurFlag() != null && powerNetFactorQuery.getCurFlag().intValue() != 0) { powerHistoryDTO.setFsl(new BigDecimal(fsl).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setFsl(new BigDecimal(fsl).setScale(2, BigDecimal.ROUND_HALF_UP)); } else if (StringUtils.isNotBlank(pointNoArr[0]) && StringUtils.isNotBlank(pointNoArr[1])) { apiPointValueQueryDTO.setPointNo(pointNoArr[0]); List<ApiPointValueDTO> chartDataP = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); Map<String, Double> dataMapP = new HashMap<>(); for (ApiPointValueDTO pv : chartDataP) { dataMapP.put(DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND), pv.getV()); } } else if (StringUtils.isNotBlank(pointNoArr[0]) && StringUtils.isNotBlank(pointNoArr[1])) { apiPointValueQueryDTO.setPointNo(pointNoArr[1]); List<ApiPointValueDTO> chartDataQ = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO); Map<String, Double> dataMapQ = new HashMap<>(); for (ApiPointValueDTO pv : chartDataQ) { dataMapQ.put(DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND), pv.getV()); } for (String cate : categories) { Double cos = PowerUtil.calculateCos(dataMapP.get(cate), dataMapQ.get(cate)); if (cos == null) { continue; } Object[] data = new Object[2]; data[0] = cate; data[1] = cos; dataList.add(data); valueList.add(cos); } } if (!CollectionUtils.isEmpty(valueList)) { // max = valueList.stream().mapToDouble(Double::doubleValue).max().getAsDouble(); // min = valueList.stream().mapToDouble(Double::doubleValue).min().getAsDouble(); avg = valueList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); max = valueList.get(0).doubleValue(); min = valueList.get(0).doubleValue(); for (Object[] dataItem : dataList) { String time = (String) dataItem[0]; double value = (double)dataItem[1]; if (value > max) { max = value; maxTime = time; } if (value < min) { min = value; minTime = time; } } } powerHistoryDTO.setMax(new BigDecimal(max).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setMin(new BigDecimal(min).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setAvg(new BigDecimal(avg).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setMaxTime(maxTime); powerHistoryDTO.setMinTime(minTime); powerHistoryDTO.setDataList(dataList); result.put(nodeCode, powerHistoryDTO); } @@ -1414,6 +1601,7 @@ throw new IllegalArgumentException("不支持的queryType: " + queryType); } // 查询历史数据 ApiPointValueQueryDTO query = new ApiPointValueQueryDTO(); query.setPointNo(pointNo); @@ -1428,10 +1616,13 @@ }) .collect(Collectors.toList()); List<Double> valueList = chartData.stream().map(pv -> { return pv.getV(); }).collect(Collectors.toList()); powerHistoryDTO.setDataList(dataList); //查询月最大最小值 ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO(); /*ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO(); apiPointValueQueryDTO1.setStart(start1); apiPointValueQueryDTO1.setEnd(new Date()); apiPointValueQueryDTO1.setPointNo(pointNo); @@ -1442,7 +1633,40 @@ } if (minV != null && minV.containsKey(pointNo)) { powerHistoryDTO.setMin(new BigDecimal(minV.get(pointNo).toString())); }*/ double max = 0; double min = 0; double avg = 0; String maxTime = ""; String minTime = ""; if (!CollectionUtils.isEmpty(valueList)) { // max = valueList.stream().mapToDouble(Double::doubleValue).max().getAsDouble(); // min = valueList.stream().mapToDouble(Double::doubleValue).min().getAsDouble(); avg = valueList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); max = valueList.get(0).doubleValue(); min = valueList.get(0).doubleValue(); for (Object[] dataItem : dataList) { String time = (String) dataItem[0]; double value = (double)dataItem[1]; if (value > max) { max = value; maxTime = time; } if (value < min) { min = value; minTime = time; } } } powerHistoryDTO.setMax(new BigDecimal(max).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setMin(new BigDecimal(min).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setAvg(new BigDecimal(avg).setScale(2, BigDecimal.ROUND_HALF_UP)); powerHistoryDTO.setMaxTime(maxTime); powerHistoryDTO.setMinTime(minTime); powerHistoryDTO.setDataList(dataList); result.put(code, powerHistoryDTO); } @@ -1491,6 +1715,11 @@ log.info("code is blank"); return error(GlobalErrorCodeConstants.BAD_REQUEST); } // 默认只展示当月 if(reqVO.getStartTime() == null) { reqVO.setStartTime(CalendarUtil.getMonthFirstDay()); } PageResult<PowerMaxdemandMainEntity> page = powerMaxDemandMainService.page(reqVO); PageResult<PowerMaxDemandMainDTO> result = BeanUtils.toBean(page, PowerMaxDemandMainDTO.class); result.getList().forEach(dto0 -> { ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerHistoryDTO.java
@@ -33,4 +33,10 @@ @Schema(description = "返送累计") private BigDecimal fsl; @Schema(description = "最大值发生时间") private String maxTime; @Schema(description = "最小值发生时间") private String minTime; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorQuery.java
@@ -14,6 +14,11 @@ private static final long serialVersionUID = 1L; /** * 节点名称 */ private String nodeName; /** * 当前有功 */ private String curP; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataChartRespVO.java
@@ -1,7 +1,6 @@ package com.iailab.module.ansteel.api.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.iailab.module.model.api.mcs.dto.PreDataViewRespDTO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -19,8 +18,8 @@ private static final long serialVersionUID = 1L; @Schema(description = "预测时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date predictTime; //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private String predictTime; @Schema(description = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java
@@ -35,8 +35,7 @@ private String resultName; @Schema(description = "预测时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date predictTime; private String predictTime; @Schema(description = "量程上限") private BigDecimal rangeH; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewSimpleDTO.java
@@ -23,8 +23,8 @@ private String itemName; @Schema(description = "预测时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date predictTime; // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private String predictTime; @Schema(description = "当时预测值") private List<Object[]> curData; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
@@ -175,7 +175,7 @@ if (predictItem == null || predictItem.getLastTime() == null) { return null; } String timeFormat = StringUtils.isBlank(reqVO.getTimeFormat()) ? DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND : reqVO.getTimeFormat(); int lengthLeft = tMap.get(CommonConstant.LENGTH_LEFT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_LEFT)).intValue(); int lengthRight = tMap.get(CommonConstant.LENGTH_RIGHT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_RIGHT)).intValue(); String trendsDataH = tMap.get(CommonConstant.TRENDSDATA_H) == null ? null : tMap.get(CommonConstant.TRENDSDATA_H); @@ -186,10 +186,24 @@ Date[] timeArray = calResultTime(predictItem, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight); Date startTime = timeArray[1]; Date endTime = timeArray[2]; String timeFormat = null; if (StringUtils.isNotBlank(reqVO.getTimeFormat())) { timeFormat = reqVO.getTimeFormat(); } else if ((endTime.getTime() - startTime.getTime()) < 1000 * 60 * 60 * 24 ) { // 时间范围短,默认使用短时间格式 "HH:mm" timeFormat = DateUtils.FORMAT_SIMPLE_TIME; } else { timeFormat = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; } final String finalTimeFormat = timeFormat; reqVO.setTimeFormat(finalTimeFormat); PreDataSingleChartRespVO resultOld = mcsApi.getPreDataSingleChart(reqVO); PreDataChartRespVO result = ConvertUtils.sourceToTarget(resultOld, PreDataChartRespVO.class); result.setPredictTime(DateUtils.format(resultOld.getPredictTime(), finalTimeFormat)); PreDataViewDTO preDataView = ConvertUtils.sourceToTarget(resultOld.getDataView(), PreDataViewDTO.class); preDataView.setPredictTime(DateUtils.format(resultOld.getDataView().getPredictTime(), finalTimeFormat)); if (StringUtils.isNotBlank(trendsDataH)) { // 动态上限 ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO(); @@ -200,7 +214,7 @@ List<Object[]> newList = new ArrayList<>(); trendsDataHList.forEach(item -> { Object[] dataItem = new Object[2]; dataItem[0] = DateUtils.format(item.getT(), "yyyy-MM-dd HH:mm:00"); dataItem[0] = DateUtils.format(item.getT(), finalTimeFormat); dataItem[1] = item.getV(); newList.add(dataItem); }); @@ -216,7 +230,7 @@ List<Object[]> newList = new ArrayList<>(); trendsDataLList.forEach(item -> { Object[] dataItem = new Object[2]; dataItem[0] = DateUtils.format(item.getT(), "yyyy-MM-dd HH:mm:00"); dataItem[0] = DateUtils.format(item.getT(), finalTimeFormat); dataItem[1] = item.getV(); newList.add(dataItem); }); @@ -478,11 +492,13 @@ @Override public List<PreDataViewSimpleDTO> getPreDataByOutIds(PreDataBarLineReqVO reqVO) { PreDataBarLineRespVO preDataBarLineRespVO = mcsApi.getPreDataCharts(reqVO); String predictTime = DateUtils.format(preDataBarLineRespVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); List<PreDataViewSimpleDTO> preDataViewSimpleDTOList = new ArrayList<>(); preDataBarLineRespVO.getDataViewList().forEach(item -> { PreDataViewSimpleDTO preDataViewSimpleDTO = new PreDataViewSimpleDTO(); preDataViewSimpleDTO.setItemName(item.getResultName()); preDataViewSimpleDTO.setPredictTime(preDataBarLineRespVO.getPredictTime()); preDataViewSimpleDTO.setPredictTime(predictTime); preDataViewSimpleDTO.setCurData(item.getCurData()); preDataViewSimpleDTO.setRealData(item.getRealData()); preDataViewSimpleDTO.setPreDataN(item.getPreDataN().stream() ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerExportCosVO.java
@@ -26,7 +26,7 @@ private BigDecimal cos; @Schema(description = "日最大功率因数") @ExcelProperty("采集值") @ExcelProperty("日最大功率因数") private BigDecimal max; @Schema(description = "日最小功率因数") ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerExportPqVO.java
@@ -22,22 +22,22 @@ private String date; @Schema(description = "受电功率累计") @ExcelProperty("采集值") @ExcelProperty("受电功率累计") private BigDecimal sdl; @Schema(description = "返送功率累计") @ExcelProperty("采集值") @ExcelProperty("返送功率累计") private BigDecimal fsl; @Schema(description = "日最大功率") @ExcelProperty("采集值") @ExcelProperty("日最大功率") private BigDecimal max; @Schema(description = "日最小功率") @ExcelProperty("采集值") @ExcelProperty("日最小功率") private BigDecimal min; @Schema(description = "日平均功率") @ExcelProperty("采集值") @ExcelProperty("日平均功率") private BigDecimal avg; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PreDataByOutReqVO.java
对比新文件 @@ -0,0 +1,44 @@ package com.iailab.module.ansteel.api.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; import java.util.Date; import java.util.List; /** * @author PanZhibao * @Description * @createTime 2025年06月18日 */ @Data public class PreDataByOutReqVO implements Serializable { private static final long serialVersionUID = 1L; @Schema(description = "查询ID列表") private List<String[]> queryIds; @Schema(description = "输出ID列表") private List<String> outIds; @Schema(description = "预测时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date predictTime; @Schema(description = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; @Schema(description = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; @Schema(description = "数据精度,小于0,不限制位数,大于0设置位数") private Integer prec; @Schema(description = "时间格式化") private String timeFormat; } ansteel-biz/src/main/java/com/iailab/module/ansteel/common/utils/CalendarUtil.java
对比新文件 @@ -0,0 +1,22 @@ package com.iailab.module.ansteel.common.utils; import java.util.Calendar; import java.util.Date; /** * @author PanZhibao * @Description * @createTime 2025年06月18日 */ public class CalendarUtil { public static Date getMonthFirstDay() { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.DAY_OF_MONTH, 1); return calendar.getTime(); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/common/utils/PowerUtil.java
@@ -30,7 +30,7 @@ if (result.compareTo(BigDecimal.ONE) >= 0) { return 0.99; } return result.doubleValue(); return result.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); } } } ansteel-biz/src/main/java/com/iailab/module/ansteel/ems/package-info.java
对比新文件 @@ -0,0 +1 @@ package com.iailab.module.ansteel.ems; ansteel-biz/src/main/java/com/iailab/module/ansteel/framework/security/config/SecurityConfiguration.java
@@ -29,9 +29,6 @@ registry.requestMatchers("/actuator").anonymous() .requestMatchers("/actuator/**").anonymous(); // 导出文件流接口 registry.requestMatchers("/ansteel/api/file/**"); // RPC 服务的安全配置 registry.requestMatchers(ApiConstants.PREFIX + "/**").permitAll(); } ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunDayScheduleModuleTask.java
对比新文件 @@ -0,0 +1,51 @@ package com.iailab.module.ansteel.job.task; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Calendar; /** * 执行天粒度调度方案定时任务 */ @Component("runDayScheduleModuleTask") public class RunDayScheduleModuleTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private MdkApi mdkApi; @Override public void run(String params) { logger.info("runDayScheduleModuleTask定时任务正在执行,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.MINUTE,0); calendar.set(Calendar.HOUR_OF_DAY,0); MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(calendar.getTime()); dto.setScheduleCode(params); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); logger.info(params + "调度方案执行完成," + mdkScheduleRespDTO); logger.info("调度方案结果开始下发"); if (mdkApi.scheduleModelOut(mdkScheduleRespDTO)) { logger.info("调度方案结果下发成功"); } else { logger.error("调度方案结果下发失败"); } } catch (Exception ex) { logger.error("runDayScheduleModuleTask运行异常"); ex.printStackTrace(); } logger.info("runDayScheduleModuleTask运行完成"); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/dao/SyncLogDao.java
对比新文件 @@ -0,0 +1,9 @@ package com.iailab.module.ansteel.sync.dao; /** * @author PanZhibao * @Description * @createTime 2025年06月18日 */ public interface SyncLogDao { } ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/entity/SyncLogEntity.java
对比新文件 @@ -0,0 +1,9 @@ package com.iailab.module.ansteel.sync.entity; /** * @author PanZhibao * @Description * @createTime 2025年06月18日 */ public class SyncLogEntity { } ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/package-info.java
对比新文件 @@ -0,0 +1 @@ package com.iailab.module.ansteel.sync; ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/service/SyncLogService.java
对比新文件 @@ -0,0 +1,9 @@ package com.iailab.module.ansteel.sync.service; /** * @author PanZhibao * @Description * @createTime 2025年06月18日 */ public class SyncLogService { } ansteel-biz/src/main/java/com/iailab/module/ansteel/sync/service/impl/SyncLogServiceImpl.java
对比新文件 @@ -0,0 +1,9 @@ package com.iailab.module.ansteel.sync.service.impl; /** * @author PanZhibao * @Description * @createTime 2025年06月18日 */ public class SyncLogServiceImpl { } doc/鞍钢数据接口文档_master.docBinary files differ