Merge remote-tracking branch 'origin/master'
| | |
| | | public enum DataPointFreqEnum { |
| | | NET_10S("10s", 10), |
| | | NET_30S("30s", 30), |
| | | NET_1MIN("1min",60); |
| | | NET_1MIN("1min",60), |
| | | NET_1H("1h",60*60); |
| | | |
| | | private String code; |
| | | |
| | |
| | | import com.iailab.module.data.api.dto.IndexQueryDTO; |
| | | import com.iailab.module.data.api.dto.echarts.BarLineDTO; |
| | | import com.iailab.module.data.api.dto.echarts.SeriesItem; |
| | | import com.iailab.module.data.api.ind.IndItemApi; |
| | | import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO; |
| | | import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO; |
| | | import com.iailab.module.data.api.plan.PlanItemApi; |
| | |
| | | |
| | | @Autowired |
| | | private PlanItemApi planItemApi; |
| | | |
| | | @Autowired |
| | | private IndItemApi indItemApi; |
| | | |
| | | @Autowired |
| | | private IndItemCollector indItemCollector; |
| | |
| | | @PermitAll |
| | | @GetMapping("/query-ind/default-value") |
| | | @Operation(summary = "查询指标默认值") |
| | | public CommonResult<List<ApiIndItemValueDTO>> queryIndItemDefaultValue(HttpServletResponse response, HttpServletRequest |
| | | request,@RequestParam String itemNo) throws Exception { |
| | | apiSecurityUtils.validate(request); |
| | | List<IndItemValueVO> list = indItemCollector.queryValue(itemNo); |
| | | List<ApiIndItemValueDTO> dtoList = new ArrayList<>(); |
| | | list.forEach(item -> { |
| | | if (item != null) { |
| | | ApiIndItemValueDTO dto = new ApiIndItemValueDTO(); |
| | | dto.setDataTime(item.getDataTime()); |
| | | dto.setDataValue(item.getDataValue().doubleValue()); |
| | | dtoList.add(dto); |
| | | } |
| | | }); |
| | | return success(dtoList); |
| | | public CommonResult<List<ApiIndItemValueDTO>> queryIndItemDefaultValue(@RequestParam String itemNo) { |
| | | return success(indItemApi.queryIndItemDefaultValue(itemNo)); |
| | | } |
| | | |
| | | @PermitAll |
| | | @PostMapping("/query-ind/history-value") |
| | | @Operation(summary = "查询指标历史值") |
| | | public CommonResult<List<ApiIndItemValueDTO>> queryIndItemHistoryValue(@RequestBody ApiIndItemQueryDTO dto) { |
| | | List<IndItemValueVO> list = indItemCollector.queryValue(dto.getItemNo(), dto.getStart(), dto.getEnd()); |
| | | return success(ConvertUtils.sourceToTarget(list, ApiIndItemValueDTO.class)); |
| | | return success(indItemApi.queryIndItemHistoryValue(dto)); |
| | | } |
| | | |
| | | @PermitAll |
对比新文件 |
| | |
| | | package com.iailab.module.data.job.task; |
| | | |
| | | import com.iailab.module.data.point.collection.PointCollector; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Calendar; |
| | | |
| | | /** |
| | | * @description: Point采集器1h |
| | | * @author: dzd |
| | | * @date: 2025/1/18 14:07 |
| | | **/ |
| | | @Component("pointCollectTaskNet1h") |
| | | public class PointCollectTaskNet1h implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | private final String NET = "1h"; |
| | | |
| | | @Resource |
| | | private PointCollector pointCollector; |
| | | |
| | | @Override |
| | | public void run(String params){ |
| | | logger.debug("pointCollectTaskNet1h定时任务正在执行,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | pointCollector.collect(calendar.getTime(), NET); |
| | | logger.info("pointCollectTaskNet1h定时任务完成时间:" + LocalDateTime.now()); |
| | | } catch (Exception ex) { |
| | | ex.printStackTrace(); |
| | | logger.error("pointCollectTaskNet1h定时任务失败时间:" + LocalDateTime.now()); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | @Schema(description = "更新时间") |
| | | private Date updateTime; |
| | | |
| | | @Schema(description = "累计值上限") |
| | | private BigDecimal culUpper; |
| | | |
| | | @Schema(description = "累计值下限") |
| | | private BigDecimal culLower; |
| | | } |
| | |
| | | INDEX `ind_model_id`(`model_id` ASC) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='模型下发信息表'; |
| | | |
| | | alter table t_st_schedule_scheme add column `run_status` varchar(4) DEFAULT NULL COMMENT '运行状态'; |
| | | alter table t_st_schedule_scheme add column `run_status` varchar(4) DEFAULT NULL COMMENT '运行状态'; |
| | | |
| | | alter table t_mm_predict_alarm_config add column `cul_upper` decimal(10, 4) COMMENT '累计值上限'; |
| | | alter table t_mm_predict_alarm_config add column `cul_lower` decimal(10, 4) COMMENT '累计值下限'; |
| | | |
| | | alter table t_st_schedule_scheme modify column `trigger_condition` varchar(50) COMMENT '触发条件' |
| | |
| | | dataView.setPreMax(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | dataView.setPreMin(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | dataView.setPreLast(new BigDecimal(curList.get(curList.size() - 1))); |
| | | dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum()) |
| | | .divide(new BigDecimal(HOUR_MINS), 2, BigDecimal.ROUND_HALF_UP)); |
| | | dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum())); |
| | | } |
| | | |
| | | String alarmObj = chartParams.get(CommonConstant.ALARM_OBJ); |
| | |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | import static com.iailab.framework.common.pojo.CommonResult.success; |
| | | |
| | |
| | | return CommonResult.success(mcsApi.getLastScheduleData(scheduleCode,limit)); |
| | | } |
| | | |
| | | @PostMapping("/schedule-data/last/more") |
| | | @Operation(summary = "多个调度模型最新结果查询") |
| | | public CommonResult<Map<String,List<StScheduleRecordVO>>> getMoreLastScheduleData(@RequestBody Map<String,Object> params) { |
| | | if (!params.containsKey("scheduleCodes")) { |
| | | return success(new HashMap<>()); |
| | | } |
| | | Set<String> scheduleCodes = new HashSet<>(((List<String>) params.get("scheduleCodes"))); |
| | | if (CollectionUtils.isEmpty(scheduleCodes)) { |
| | | return success(new HashMap<>()); |
| | | } |
| | | Integer limit = 1; |
| | | if (params.containsKey("limit")) { |
| | | limit = Integer.parseInt(params.get("limit").toString()); |
| | | } |
| | | |
| | | Map<String,List<StScheduleRecordVO>> result = new HashMap<>(scheduleCodes.size()); |
| | | for (String scheduleCode : scheduleCodes) { |
| | | result.put(scheduleCode,mcsApi.getLastScheduleData(scheduleCode, limit)); |
| | | } |
| | | return CommonResult.success(result); |
| | | } |
| | | |
| | | @PostMapping("/machineRealTimeStatus") |
| | | @Operation(summary = "发电机组实时状态查询") |
| | | CommonResult<List<Map<String, Object>>> getRealTimeStatus(@RequestBody List<Map<String, Object>> machines) { |
对比新文件 |
| | |
| | | package com.iailab.module.model.common.enums; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | /** |
| | | * 调度建议状态 |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2025年01月21日 |
| | | */ |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum ScheduleSuggestStatusEnum { |
| | | |
| | | S0(0, "未处理"), |
| | | S1(1, "已采纳"); |
| | | |
| | | private Integer code; |
| | | private String desc; |
| | | |
| | | public static ScheduleSuggestStatusEnum getEumByCode(String code) { |
| | | if (code == null) { |
| | | return null; |
| | | } |
| | | |
| | | for (ScheduleSuggestStatusEnum statusEnum : ScheduleSuggestStatusEnum.values()) { |
| | | if (statusEnum.getCode().equals(code)) { |
| | | return statusEnum; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | |
| | | * 更新时间 |
| | | */ |
| | | private Date updateTime; |
| | | |
| | | /** |
| | | * 累计值上限 |
| | | */ |
| | | private BigDecimal culUpper; |
| | | |
| | | /** |
| | | * 累计值下限 |
| | | */ |
| | | private BigDecimal culLower; |
| | | } |
| | |
| | | |
| | | @Schema(description = "更新时间") |
| | | private Date updateTime; |
| | | |
| | | @Schema(description = "累计值上限") |
| | | private BigDecimal culUpper; |
| | | |
| | | @Schema(description = "累计值下限") |
| | | private BigDecimal culLower; |
| | | } |
| | |
| | | |
| | | @Schema(description = "更新时间") |
| | | private Date updateTime; |
| | | |
| | | @Schema(description = "累计值上限") |
| | | private BigDecimal culUpper; |
| | | |
| | | @Schema(description = "累计值下限") |
| | | private BigDecimal culLower; |
| | | } |
| | |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.service.impl.BaseServiceImpl; |
| | | import com.iailab.framework.common.util.object.BeanUtils; |
| | | import com.iailab.module.model.common.enums.ScheduleSuggestStatusEnum; |
| | | import com.iailab.module.model.mcs.sche.dao.StScheduleSuggestDao; |
| | | import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity; |
| | | import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService; |
| | |
| | | public void create(StScheduleSuggestSaveReqVO createReqVO) { |
| | | StScheduleSuggestEntity entity = BeanUtils.toBean(createReqVO, StScheduleSuggestEntity.class); |
| | | entity.setId(UUID.randomUUID().toString()); |
| | | entity.setStatus(ScheduleSuggestStatusEnum.S0.getCode()); |
| | | baseDao.insert(entity); |
| | | } |
| | | |
| | |
| | | * |
| | | * @param predictResult |
| | | */ |
| | | @Async |
| | | @DSTransactional |
| | | public void savePredictResult(PredictResultVO predictResult) { |
| | | Map<String, List<DataValueVO>> resultMap = convertToPredictData(predictResult); |
| | |
| | | vo.setDataValue(t.getDataValue()); |
| | | return vo; |
| | | }).collect(Collectors.toList()); |
| | | break; |
| | | case IND: |
| | | ApiIndItemQueryDTO queryIndItemDTO = new ApiIndItemQueryDTO(); |
| | | ApiIndItemDTO intItem = indMap.get(columnItem.getParamId()); |
| | |
| | | AND t.alarmObj LIKE CONCAT('%', #{params.alarmObj},'%') |
| | | </if> |
| | | </where> |
| | | order by t1.create_time desc |
| | | </select> |
| | | </mapper> |