From d79c5f396b23520e6370e9d9b6abc31938a0e83f Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期二, 29 四月 2025 18:33:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java          |    2 ++
 iailab-framework/iailab-common/src/main/java/com/iailab/framework/common/exception/enums/GlobalErrorCodeConstants.java                      |    1 +
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java                |    2 ++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java |    5 +++++
 iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmModelArithSettings.xml                                          |    3 +++
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java                                       |    5 ++++-
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java                |    7 +++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java                  |    2 ++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java                                       |   15 +++++++++++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java       |    5 +++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MdkController.java                   |    8 +++++---
 11 files changed, 51 insertions(+), 4 deletions(-)

diff --git a/iailab-framework/iailab-common/src/main/java/com/iailab/framework/common/exception/enums/GlobalErrorCodeConstants.java b/iailab-framework/iailab-common/src/main/java/com/iailab/framework/common/exception/enums/GlobalErrorCodeConstants.java
index bf1e415..a121575 100644
--- a/iailab-framework/iailab-common/src/main/java/com/iailab/framework/common/exception/enums/GlobalErrorCodeConstants.java
+++ b/iailab-framework/iailab-common/src/main/java/com/iailab/framework/common/exception/enums/GlobalErrorCodeConstants.java
@@ -36,6 +36,7 @@
     // ========== 自定义错误段 ==========
     ErrorCode REPEATED_REQUESTS = new ErrorCode(900, "重复请求,请稍后重试"); // 重复请求
     ErrorCode DEMO_DENY = new ErrorCode(901, "演示模式,禁止写操作");
+    ErrorCode NOT_GENERAT = new ErrorCode(902, "测试运行模型前请先生成代码");
 
     ErrorCode UNKNOWN = new ErrorCode(999, "未知错误");
 
diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
index 26839f3..23e129e 100644
--- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
@@ -12,7 +12,6 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
-import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
@@ -169,4 +168,8 @@
     @Operation(summary = "根据预测时间获取最后预测值")
     Map<String, BigDecimal> getPredictValueByTime(@RequestBody PredictLastValueReqVO reqVO);
 
+    @GetMapping(PREFIX + "/predict/model/setting/update")
+    @Operation(summary = "修改预测模型配置")
+    Boolean updatePredictModelSetting(@RequestParam("modelCode") String modelCode, @RequestParam("key") String key, @RequestParam("value") String value);
+
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
index 19268d2..45a1ee3 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -23,6 +23,7 @@
 import com.iailab.module.model.mcs.pre.entity.DmModuleEntity;
 import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
 import com.iailab.module.model.mcs.pre.entity.MmPredictAlarmMessageEntity;
+import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity;
 import com.iailab.module.model.mcs.pre.enums.PredGranularityEnum;
 import com.iailab.module.model.mcs.pre.service.*;
 import com.iailab.module.model.mcs.pre.vo.MmItemOutputRespVO;
@@ -117,6 +118,13 @@
 
     @Autowired
     private StScheduleModelSettingService stScheduleModelSettingService;
+
+    @Autowired
+    private MmPredictModelService mmPredictModelService;
+
+    @Autowired
+    private MmModelArithSettingsService mmModelArithSettingsService;
+
     private int HOUR_MINS = 60;
 
     @Override
@@ -989,6 +997,13 @@
         return stScheduleSuggestService.getLastSuggest(params);
     }
 
+    @Override
+    public Boolean updatePredictModelSetting(String modelCode, String key, String value) {
+        MmPredictModelEntity model = mmPredictModelService.getByModelCode(modelCode);
+        mmModelArithSettingsService.updateByModelIdAndKey(model.getId(), key, value);
+        return true;
+    }
+
     private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) {
         Date[] result = new Date[3];
         Date predictTime = predictItem.getLastTime();
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
index 39fa9f8..bd37854 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
@@ -275,4 +275,11 @@
         List<ScheduleSuggestRespDTO> data = mcsApi.getLastSuggest(params);
         return CommonResult.success(data);
     }
+
+    @GetMapping("/predict/model/setting/update")
+    @Operation(summary = "修改调度模型配置")
+    public CommonResult<Boolean> updatePredictModelSetting(@RequestParam("modelCode") String modelCode, @RequestParam("key") String key, @RequestParam("value") String value){
+        mcsApi.updatePredictModelSetting(modelCode, key, value);
+        return success( true);
+    }
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java
index 82b30a0..f2a40f2 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java
@@ -33,4 +33,6 @@
     void insertList(List<MmModelArithSettingsEntity> list);
 
     void updatePyFile(@Param("likeValue") String likeValue,@Param("value") String value);
+
+    void updateByModelIdAndKey(@Param("modelId") String modelId,@Param("key") String key,@Param("value") String value);
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java
index dff36f4..99ee534 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java
@@ -15,4 +15,6 @@
     List<MmModelArithSettingsEntity> getByModelId(String modelId);
 
     void updatePyFile(String pyModule, String fileName);
+
+    void updateByModelIdAndKey(String modelId, String key, String value);
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java
index b65f7ac..bce9d19 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java
@@ -27,4 +27,6 @@
     MmPredictModelEntity getActiveModelByItemId(String itemId);
 
     void clearCache();
+
+    MmPredictModelEntity getByModelCode(String modelCode);
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java
index dc13a83..88fa486 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java
@@ -60,4 +60,9 @@
         // 清空缓存
         modelIdMap.clear();
     }
+
+    @Override
+    public void updateByModelIdAndKey(String modelId, String key, String value) {
+        baseMapper.updateByModelIdAndKey(modelId,key,value);
+    }
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java
index 4738817..5aa03cf 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java
@@ -61,6 +61,11 @@
     }
 
     @Override
+    public MmPredictModelEntity getByModelCode(String modelCode) {
+        return mmPredictModelDao.selectOne("modelno", modelCode);
+    }
+
+    @Override
     public MmPredictModelEntity getInfo(String id) {
         return mmPredictModelDao.selectById(id);
     }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MdkController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MdkController.java
index 7e984d7..7b19755 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MdkController.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MdkController.java
@@ -38,6 +38,7 @@
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants.NOT_GENERAT;
 import static com.iailab.framework.common.pojo.CommonResult.error;
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
@@ -72,11 +73,13 @@
         try {
             File jarFile = new File(mpkTenantBakFilePath + File.separator + MdkConstant.JAR + File.separator + dto.getPyName() + ".jar");
             if (!jarFile.exists()) {
-                throw new RuntimeException("jar包不存在,请先生成代码。jarPath:" + jarFile.getAbsolutePath());
+                log.error("jar包不存在,请先生成代码。jarPath:" + jarFile.getAbsolutePath());
+                return CommonResult.error(NOT_GENERAT.getCode(),NOT_GENERAT.getMsg());
             }
             File dllFile = new File(mpkTenantBakFilePath + File.separator + MdkConstant.DLL + File.separator + dto.getPyName() + ".dll");
             if (!dllFile.exists()) {
-                throw new RuntimeException("dll文件不存在,请先生成代码。dllPath:" + dllFile.getAbsolutePath());
+                log.error("dll文件不存在,请先生成代码。dllPath:" + dllFile.getAbsolutePath());
+                return CommonResult.error(NOT_GENERAT.getCode(),NOT_GENERAT.getMsg());
             }
             // 加载jar包
             classLoader = DllUtils.loadJar(jarFile.getAbsolutePath());
@@ -152,7 +155,6 @@
                 DllUtils.unloadDll(classLoader);
                 DllUtils.unloadJar(classLoader);
             }
-            System.gc();
         }
     }
 
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmModelArithSettings.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmModelArithSettings.xml
index 1aa314a..71103ef 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmModelArithSettings.xml
+++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmModelArithSettings.xml
@@ -27,4 +27,7 @@
             (#{item.id}, #{item.modelid}, #{item.key}, #{item.value}, #{item.name}, #{item.valuetype})
         </foreach>
     </insert>
+    <update id="updateByModelIdAndKey">
+        update t_mm_model_arith_settings set value = #{value} where `modelid` = #{modelId} and `key` = #{key}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3