From cc69f877cb51f4014c664d8002050fa0f9314a81 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期三, 28 五月 2025 15:35:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StSuggestOperationRecordServiceImpl.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StSuggestOperationRecordServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StSuggestOperationRecordServiceImpl.java
index 51c6f0c..8e9b090 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StSuggestOperationRecordServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StSuggestOperationRecordServiceImpl.java
@@ -2,15 +2,22 @@
 
 import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
+import com.iailab.framework.common.util.collection.CollectionUtils;
 import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.module.model.mcs.sche.dao.StSuggestOperationRecordDao;
 import com.iailab.module.model.mcs.sche.entity.StSuggestOperationRecordEntity;
 import com.iailab.module.model.mcs.sche.service.StSuggestOperationRecordService;
-import com.iailab.module.model.mcs.sche.vo.StSuggestOperationRecordPageReqVO;
-import com.iailab.module.model.mcs.sche.vo.StSuggestOperationRecordReqVO;
+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;
+import com.iailab.module.model.mcs.sche.vo.*;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
+import java.util.List;
 import java.util.UUID;
 
 
@@ -20,6 +27,15 @@
 @Service
 public class StSuggestOperationRecordServiceImpl extends BaseServiceImpl<StSuggestOperationRecordDao, StSuggestOperationRecordEntity>
         implements StSuggestOperationRecordService {
+
+    @Autowired
+    private StSuggestSnapshotConfMainService stSuggestSnapshotConfMainService;
+
+    @Autowired
+    private StSuggestSnapshotConfDetService stSuggestSnapshotConfDetService;
+
+    @Autowired
+    private StSuggestSnapshotRecordService stSuggestSnapshotRecordService;
 
     @Override
     public PageResult<StSuggestOperationRecordEntity> page(StSuggestOperationRecordPageReqVO reqVO) {
@@ -32,6 +48,37 @@
         entity.setId(UUID.randomUUID().toString());
         entity.setHandleTime(new Date());
         baseDao.insert(entity);
+        if (!"采纳建议".equals(reqVo.getOperate())){
+            return;
+        }
+        //获取调度建议快照配置表信息
+        StSuggestSnapshotConfMainRespVO confMain = stSuggestSnapshotConfMainService.getByModelIdAndScheduleObj(reqVo.getModelId(), reqVo.getScheduleObj());
+        if (confMain == null) {
+            return;
+        }
+        List<StSuggestSnapshotConfDetRespVO> confDetList = stSuggestSnapshotConfDetService.getByConfId(confMain.getId());
+        if (CollectionUtils.isAnyEmpty(confDetList)) {
+            return;
+        }
+        confDetList.forEach(confDet -> {
+            StSuggestSnapshotRecordSaveReqVO snapshotRecordSaveReqVO = new StSuggestSnapshotRecordSaveReqVO();
+            snapshotRecordSaveReqVO.setSuggestId(reqVo.getSuggestId());
+            snapshotRecordSaveReqVO.setModelId(entity.getModelId());
+            snapshotRecordSaveReqVO.setOperationId(entity.getId());
+            snapshotRecordSaveReqVO.setDataNo(confDet.getDataNo());
+            snapshotRecordSaveReqVO.setDataType(confDet.getDataType());
+            snapshotRecordSaveReqVO.setDataName(confDet.getDataName());
+            snapshotRecordSaveReqVO.setScheduleTime(entity.getScheduleTime());
+            //计算开始时间,开始时间为当前调度时间减去快照配置表配置的左侧时间长度
+            LocalDateTime localStartDateTime =  entity.getScheduleTime().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 =  entity.getScheduleTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().plusMinutes(confDet.getRightLength() ==  null ? 60 : confDet.getLeftLength());
+            Date endTime = Date.from(localEndDateTime.atZone(ZoneId.systemDefault()).toInstant());
+            snapshotRecordSaveReqVO.setEndTime(endTime);
+            stSuggestSnapshotRecordService.create(snapshotRecordSaveReqVO);
+        });
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.3