liriming
2024-11-26 5b952f77058a9da5af5e143a6c2c7ba195aa736d
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,47 +27,33 @@
 * @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;
    /**
     * 预测项列表
     */
    @GetMapping("/page")
    @PreAuthorize("@ss.hasPermission('model:pre-predict:query')")
    @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);
    }
@@ -79,8 +61,8 @@
     * 预测项信息
     */
    @GetMapping("/get/{id}")
    @PreAuthorize("@ss.hasPermission('model:pre-predict:query')")
    public CommonResult<MmPredictItemDTO> info(@PathVariable("id") String id){
    @PreAuthorize("@ss.hasPermission('model:pre-item:query')")
    public CommonResult<MmPredictItemDTO> info(@PathVariable("id") String id) {
        MmPredictItemDTO predictItem = mmPredictItemService.info(id);
        return success(predictItem);
    }
@@ -89,9 +71,9 @@
     * 保存预测项
     */
    @PostMapping("/create")
    @PreAuthorize("@ss.hasPermission('model:pre-predict:create')")
    @DSTransactional(rollbackFor= Exception.class)
    public CommonResult<Boolean> save(@RequestBody MmPredictItemDTO mmPredictItemDto){
    @PreAuthorize("@ss.hasPermission('model:pre-item:create')")
    @DSTransactional(rollbackFor = Exception.class)
    public CommonResult<Boolean> save(@RequestBody MmPredictItemDTO mmPredictItemDto) {
        mmPredictItemService.add(mmPredictItemDto);
        return success(true);
    }
@@ -100,9 +82,9 @@
     * 修改预测项
     */
    @PutMapping("/update")
    @PreAuthorize("@ss.hasPermission('model:pre-predict:update')")
    @DSTransactional(rollbackFor= Exception.class)
    public CommonResult<Boolean> update(@RequestBody MmPredictItemDTO mmPredictItemDTO){
    @PreAuthorize("@ss.hasPermission('model:pre-item:update')")
    @DSTransactional(rollbackFor = Exception.class)
    public CommonResult<Boolean> update(@RequestBody MmPredictItemDTO mmPredictItemDTO) {
        mmPredictItemService.update(mmPredictItemDTO);
        return success(true);
    }
@@ -111,8 +93,8 @@
     * 删除预测项
     */
    @DeleteMapping("/delete")
    @PreAuthorize("@ss.hasPermission('model:pre-predict:delete')")
    @DSTransactional(rollbackFor= Exception.class)
    @PreAuthorize("@ss.hasPermission('model:pre-item:delete')")
    @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);
    }
}