dengzedong
2025-06-06 337e1145cfec2bd18e859a4336725cb64943c175
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StSuggestSnapshotRecordServiceImpl.java
@@ -1,5 +1,7 @@
package com.iailab.module.model.mcs.sche.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.format.DateParser;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.service.impl.BaseServiceImpl;
@@ -28,11 +30,13 @@
import com.iailab.module.model.mcs.sche.vo.StSuggestSnapshotConfDetRespVO;
import com.iailab.module.model.mcs.sche.vo.StSuggestSnapshotConfMainRespVO;
import com.iailab.module.model.mcs.sche.vo.StSuggestSnapshotRecordSaveReqVO;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
@@ -124,6 +128,9 @@
            snapshotRecordSaveReqVO.setDataName(confDet.getDataName());
            snapshotRecordSaveReqVO.setScheduleTime(scheduleTime);
            snapshotRecordSaveReqVO.setSort(confDet.getSort());
            snapshotRecordSaveReqVO.setLimitH(confDet.getLimitH());
            snapshotRecordSaveReqVO.setLimitL(confDet.getLimitL());
            snapshotRecordSaveReqVO.setSort(confDet.getSort());
            //计算开始时间,开始时间为当前调度时间减去快照配置表配置的左侧时间长度
            LocalDateTime localStartDateTime =  scheduleTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().minusMinutes(confDet.getLeftLength() ==  null ? 60 : confDet.getLeftLength());
            Date startTime = Date.from(localStartDateTime.atZone(ZoneId.systemDefault()).toInstant());
@@ -191,6 +198,17 @@
            }
            item.setDataList(dataList);
            if (!CollectionUtils.isEmpty(dataList)) {
                List<String> overLimitTimes = new ArrayList<>();
                dataList.forEach(data -> {
                    BigDecimal value = new BigDecimal(data[1].toString());
                    if (value.compareTo(item.getLimitH()) >= 0 || value.compareTo(item.getLimitL()) <= 0) {
                        overLimitTimes.add(data[0].toString());
                    }
                });
                item.setOverLimitTimes(overLimitTimes);
            }
        });
        return reqList;
    }