From d6663067bda192c82eb9a262be7e967bb811a20a Mon Sep 17 00:00:00 2001
From: Jay <csj123456>
Date: 星期五, 23 五月 2025 16:35:48 +0800
Subject: [PATCH] 保存建议操作记录的同时保存调度建议快照记录表

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StSuggestOperationRecordServiceImpl.java |   38 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 36 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..31e43d5 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
@@ -6,10 +6,15 @@
 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.UUID;
 
@@ -20,6 +25,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 +46,26 @@
         entity.setId(UUID.randomUUID().toString());
         entity.setHandleTime(new Date());
         baseDao.insert(entity);
+
+        //获取调度建议快照配置表信息
+        StSuggestSnapshotConfMainRespVO confMain = stSuggestSnapshotConfMainService.getByModelIdAndScheduleObj(reqVo.getModelId(), reqVo.getSuggestId());
+        if (confMain != null){
+            StSuggestSnapshotRecordSaveReqVO snapshotRecordSaveReqVO = new StSuggestSnapshotRecordSaveReqVO();
+            snapshotRecordSaveReqVO.setModelId(entity.getModelId());
+            StSuggestSnapshotConfDetRespVO confDet = stSuggestSnapshotConfDetService.getByConfId(confMain.getId());
+            snapshotRecordSaveReqVO.setDataNo(confDet.getDataNo());
+            snapshotRecordSaveReqVO.setDataType(confDet.getDataType());
+            snapshotRecordSaveReqVO.setScheduleTime(entity.getScheduleTime());
+            //计算开始时间,开始时间为当前调度时间减去快照配置表配置的左侧时间长度
+            LocalDateTime localStartDateTime =  entity.getScheduleTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().minusMinutes(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());
+            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