From 9881ce0814ad642646d9b76ad2caa70a0b966036 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期一, 26 五月 2025 16:15:16 +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 |   43 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 41 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 8908bd5..9963fca 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,17 @@
 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 @@
 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) {
         return baseDao.selectPage(reqVO);
@@ -29,7 +45,30 @@
     public void create(StSuggestOperationRecordReqVO reqVo) {
         StSuggestOperationRecordEntity entity = BeanUtils.toBean(reqVo, StSuggestOperationRecordEntity.class);
         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());
+            List<StSuggestSnapshotConfDetRespVO> confDetList = stSuggestSnapshotConfDetService.getByConfId(confMain.getId());
+            confDetList.forEach(confDet -> {
+                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