From c9e48bd2dff2b5766589024cf7264189b5f2a05c Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期五, 03 一月 2025 14:03:33 +0800
Subject: [PATCH] cpp释放java占用内存

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/admin/MmPredictItemController.java |   96 ++++++++++++++++++-----------------------------
 1 files changed, 37 insertions(+), 59 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/admin/MmPredictItemController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/admin/MmPredictItemController.java
index 267f2c0..8c080f8 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/admin/MmPredictItemController.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/admin/MmPredictItemController.java
@@ -1,29 +1,25 @@
 package com.iailab.module.model.mcs.pre.controller.admin;
 
+import cn.hutool.core.io.FileUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.iailab.framework.common.pojo.CommonResult;
 import com.iailab.framework.common.pojo.PageResult;
-import com.iailab.framework.common.util.object.BeanUtils;
+import com.iailab.module.model.common.enums.CommonConstant;
 import com.iailab.module.model.mcs.pre.dto.MmPredictItemDTO;
-import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
-import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity;
-import com.iailab.module.model.mcs.pre.entity.MmPredictItemEntity;
-import com.iailab.module.model.mcs.pre.service.MmItemOutputService;
-import com.iailab.module.model.mcs.pre.service.MmItemTypeService;
 import com.iailab.module.model.mcs.pre.service.MmPredictItemService;
-import com.iailab.module.model.mcs.pre.service.MmResultTableService;
-import com.iailab.module.model.mcs.pre.vo.CountItemtypeVO;
-import com.iailab.module.model.mcs.pre.vo.MmPredictItemPageReqVO;
-import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO;
+import com.iailab.module.model.mcs.pre.vo.*;
+import com.iailab.module.model.mpk.common.utils.IAILModelUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import javax.annotation.security.PermitAll;
+import java.io.File;
+import java.util.*;
 
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
@@ -31,21 +27,19 @@
  * @author PanZhibao
  * @date 2021年04月26日 14:42
  */
+@Slf4j
 @RestController
-@RequestMapping("/model/pre/predict-item")
+@RequestMapping("/model/pre/item")
 public class MmPredictItemController {
+
+    @Value("${mpk.model-file-path}")
+    private String modelPath;
+
+    @Autowired
+    private IAILModelUtil iAILModelUtil;
 
     @Autowired
     private MmPredictItemService mmPredictItemService;
-
-    @Autowired
-    private MmItemTypeService mmItemTypeService;
-
-    @Autowired
-    private MmItemOutputService mmItemOutputService;
-
-    @Autowired
-    private MmResultTableService mmResultTableService;
 
     /**
      * 预测项列表
@@ -53,25 +47,13 @@
     @GetMapping("/page")
     @PreAuthorize("@ss.hasPermission('model:pre-item:query')")
     public CommonResult<PageResult<MmPredictItemRespVO>> page(@Validated MmPredictItemPageReqVO reqVO) {
-        PageResult<MmPredictItemEntity> page = mmPredictItemService.queryPage(reqVO);
-        PageResult<MmPredictItemRespVO> result = BeanUtils.toBean(page, MmPredictItemRespVO.class);
-        for (MmPredictItemRespVO item : result.getList()){
-
-            MmItemTypeEntity mmItemTypeEntity = mmItemTypeService.info(item.getItemtypeid());
-            item.setItemtypename(mmItemTypeEntity== null ? "" :mmItemTypeEntity.getItemtypename());
-
-            MmItemOutputEntity mmItemOutputEntity = mmItemOutputService.getByItemid(item.getId());
-            item.setTagname(mmItemOutputEntity== null ? "" :mmItemOutputEntity.getTagname());
-            item.setResulttableid(mmItemOutputEntity== null ? "" :mmItemOutputEntity.getResulttableid());
-            item.setTablename(item == null ? "" : mmResultTableService.info(item.getResulttableid()).getTablename());
-        }
-        return success(result);
+        PageResult<MmPredictItemRespVO> page = mmPredictItemService.queryPage(reqVO);
+        return success(page);
     }
 
     @GetMapping("/list")
-    public CommonResult<List<MmPredictItemEntity>> list() {
-        List<MmPredictItemEntity> list = mmPredictItemService.list();
-
+    public CommonResult<List<MmPredictItemRespVO>> list(@RequestParam Map<String, Object> params) {
+        List<MmPredictItemRespVO> list = mmPredictItemService.list(params);
         return success(list);
     }
 
@@ -80,7 +62,7 @@
      */
     @GetMapping("/get/{id}")
     @PreAuthorize("@ss.hasPermission('model:pre-item:query')")
-    public CommonResult<MmPredictItemDTO> info(@PathVariable("id") String id){
+    public CommonResult<MmPredictItemDTO> info(@PathVariable("id") String id) {
         MmPredictItemDTO predictItem = mmPredictItemService.info(id);
         return success(predictItem);
     }
@@ -90,8 +72,8 @@
      */
     @PostMapping("/create")
     @PreAuthorize("@ss.hasPermission('model:pre-item:create')")
-    @DSTransactional(rollbackFor= Exception.class)
-    public CommonResult<Boolean> save(@RequestBody MmPredictItemDTO mmPredictItemDto){
+    @DSTransactional(rollbackFor = Exception.class)
+    public CommonResult<Boolean> save(@RequestBody MmPredictItemDTO mmPredictItemDto) {
         mmPredictItemService.add(mmPredictItemDto);
         return success(true);
     }
@@ -101,8 +83,8 @@
      */
     @PutMapping("/update")
     @PreAuthorize("@ss.hasPermission('model:pre-item:update')")
-    @DSTransactional(rollbackFor= Exception.class)
-    public CommonResult<Boolean> update(@RequestBody MmPredictItemDTO mmPredictItemDTO){
+    @DSTransactional(rollbackFor = Exception.class)
+    public CommonResult<Boolean> update(@RequestBody MmPredictItemDTO mmPredictItemDTO) {
         mmPredictItemService.update(mmPredictItemDTO);
         return success(true);
     }
@@ -112,7 +94,7 @@
      */
     @DeleteMapping("/delete")
     @PreAuthorize("@ss.hasPermission('model:pre-item:delete')")
-    @DSTransactional(rollbackFor= Exception.class)
+    @DSTransactional(rollbackFor = Exception.class)
     public CommonResult<Boolean> delete(@RequestParam("id") String id) {
         mmPredictItemService.deleteBatch(new String[]{id});
         return success(true);
@@ -122,26 +104,22 @@
      * 预测项列表
      */
     @GetMapping("/count-itemtype")
-    public CommonResult<List<CountItemtypeVO>> countItemtype(@RequestParam Map<String, Object> params){
+    public CommonResult<List<CountItemtypeVO>> countItemtype(@RequestParam Map<String, Object> params) {
         List<CountItemtypeVO> list = new ArrayList<>();
         return success(list);
     }
 
-//    /**
-//     * 数量
-//     */
-//    @GetMapping("/count")
-//    public CommonResult<Long> count() {
-//        Long count = mmPredictItemService.count();
-//        return success(count);
-//    }
-
     /**
      * 上传模型
      */
-    @PostMapping("/uploadModel")
-    public CommonResult<Boolean> uploadModel(@RequestParam("file") MultipartFile file) throws Exception {
-
-        return success(true);
+    @PermitAll
+    @PostMapping("/upload-model")
+    public CommonResult<Map<String, Object>> uploadModel(@RequestParam("file") MultipartFile file) throws Exception {
+        String uploadDir = modelPath + file.getOriginalFilename();
+        FileUtil.mkParentDirs(uploadDir);
+        file.transferTo(new File(uploadDir));
+        Map<String, Object> result = iAILModelUtil.parseModel(uploadDir);
+        result.put("originalFilename", file.getOriginalFilename().replace(CommonConstant.MDK_SUFFIX, ""));
+        return success(result);
     }
 }

--
Gitblit v1.9.3