潘志宝
2025-06-11 e7a52d9e21eddb8ff94fb2b0ac95e4d7da541ed2
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StSuggestSnapshotRecordServiceImpl.java
@@ -21,7 +21,9 @@
import com.iailab.module.model.common.utils.DateUtils;
import com.iailab.module.model.mcs.pre.service.MmItemResultService;
import com.iailab.module.model.mcs.sche.dao.StSuggestSnapshotRecordDao;
import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
import com.iailab.module.model.mcs.sche.entity.StSuggestSnapshotRecordEntity;
import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService;
import com.iailab.module.model.mcs.sche.service.StSuggestSnapshotConfDetService;
import com.iailab.module.model.mcs.sche.service.StSuggestSnapshotConfMainService;
import com.iailab.module.model.mcs.sche.service.StSuggestSnapshotRecordService;
@@ -35,10 +37,7 @@
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
import static com.iailab.module.model.common.utils.DateUtils.DATE_TIME_PATTERN;
@@ -61,13 +60,14 @@
    @Autowired
    private MmItemResultService mmItemResultService;
    @Autowired
    private StSuggestSnapshotConfMainService stSuggestSnapshotConfMainService;
    @Autowired
    private StSuggestSnapshotConfDetService stSuggestSnapshotConfDetService;
    @Autowired
    private StScheduleSuggestService stScheduleSuggestService;
    @Override
    @DSTransactional(rollbackFor = Exception.class)
@@ -124,12 +124,15 @@
            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());
            snapshotRecordSaveReqVO.setStartTime(startTime);
            //计算结束时间,结束时间为当前调度时间加上快照配置表配置的右侧时间长度
            LocalDateTime localEndDateTime =  scheduleTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().plusMinutes(confDet.getRightLength() ==  null ? 60 : confDet.getLeftLength());
            LocalDateTime localEndDateTime =  scheduleTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().plusMinutes(confDet.getRightLength() ==  null ? 60 : confDet.getRightLength());
            Date endTime = Date.from(localEndDateTime.atZone(ZoneId.systemDefault()).toInstant());
            snapshotRecordSaveReqVO.setEndTime(endTime);
            this.create(snapshotRecordSaveReqVO);
@@ -138,6 +141,7 @@
    @Override
    public List<StSuggestSnapshotRecordRespVO> getChartData(List<StSuggestSnapshotRecordRespVO> reqList) {
        Map<String,StScheduleSuggestEntity> suggestInfos = new HashMap<>(reqList.size());
        reqList.forEach(item -> {
            List<Object[]> dataList = new ArrayList<>();
            if(DataCategoryEnum.DATAPOINT.getCode().equals(item.getDataType())){
@@ -191,6 +195,29 @@
            }
            item.setDataList(dataList);
//             越界时间
//            if (!CollectionUtils.isEmpty(dataList)) {
//                List<String> overLimitTimes = new ArrayList<>();
//                dataList.forEach(data -> {
//                    BigDecimal value = new BigDecimal(data[1].toString());
//                    if ((item.getLimitH() != null &&value.compareTo(item.getLimitH()) >= 0) || (item.getLimitL() != null && value.compareTo(item.getLimitL()) <= 0)) {
//                        overLimitTimes.add(data[0].toString());
//                    }
//                });
//                item.setOverLimitTimes(overLimitTimes);
//            }
            // 建议处理时间
            String suggestId = item.getSuggestId();
            StScheduleSuggestEntity suggestInfo;
            if (suggestInfos.containsKey(suggestId)) {
                suggestInfo = suggestInfos.get(suggestId);
            }else {
                suggestInfo = stScheduleSuggestService.getInfo(suggestId);
                suggestInfos.put(suggestId,suggestInfo);
            }
            item.setStatus(suggestInfo.getStatus());
            item.setHandleTime(suggestInfo.getHandleTime());
        });
        return reqList;
    }