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.module.model.common.enums.CommonConstant;
|
import com.iailab.module.model.mcs.pre.dto.MmPredictItemDTO;
|
import com.iailab.module.model.mcs.pre.service.MmPredictItemService;
|
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 javax.annotation.security.PermitAll;
|
import java.io.File;
|
import java.util.*;
|
|
import static com.iailab.framework.common.pojo.CommonResult.success;
|
|
/**
|
* @author PanZhibao
|
* @date 2021年04月26日 14:42
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("/model/pre/item")
|
public class MmPredictItemController {
|
|
@Value("${mpk.model-file-path}")
|
private String modelPath;
|
|
@Autowired
|
private IAILModelUtil iAILModelUtil;
|
|
@Autowired
|
private MmPredictItemService mmPredictItemService;
|
|
/**
|
* 预测项列表
|
*/
|
@GetMapping("/page")
|
@PreAuthorize("@ss.hasPermission('model:pre-item:query')")
|
public CommonResult<PageResult<MmPredictItemRespVO>> page(@Validated MmPredictItemPageReqVO reqVO) {
|
PageResult<MmPredictItemRespVO> page = mmPredictItemService.queryPage(reqVO);
|
return success(page);
|
}
|
|
@GetMapping("/list")
|
public CommonResult<List<MmPredictItemRespVO>> list(Map<String, Object> params) {
|
List<MmPredictItemRespVO> list = mmPredictItemService.list(params);
|
return success(list);
|
}
|
|
/**
|
* 预测项信息
|
*/
|
@GetMapping("/get/{id}")
|
@PreAuthorize("@ss.hasPermission('model:pre-item:query')")
|
public CommonResult<MmPredictItemDTO> info(@PathVariable("id") String id) {
|
MmPredictItemDTO predictItem = mmPredictItemService.info(id);
|
return success(predictItem);
|
}
|
|
/**
|
* 保存预测项
|
*/
|
@PostMapping("/create")
|
@PreAuthorize("@ss.hasPermission('model:pre-item:create')")
|
@DSTransactional(rollbackFor = Exception.class)
|
public CommonResult<Boolean> save(@RequestBody MmPredictItemDTO mmPredictItemDto) {
|
mmPredictItemService.add(mmPredictItemDto);
|
return success(true);
|
}
|
|
/**
|
* 修改预测项
|
*/
|
@PutMapping("/update")
|
@PreAuthorize("@ss.hasPermission('model:pre-item:update')")
|
@DSTransactional(rollbackFor = Exception.class)
|
public CommonResult<Boolean> update(@RequestBody MmPredictItemDTO mmPredictItemDTO) {
|
mmPredictItemService.update(mmPredictItemDTO);
|
return success(true);
|
}
|
|
/**
|
* 删除预测项
|
*/
|
@DeleteMapping("/delete")
|
@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);
|
}
|
|
/**
|
* 预测项列表
|
*/
|
@GetMapping("/count-itemtype")
|
public CommonResult<List<CountItemtypeVO>> countItemtype(@RequestParam Map<String, Object> params) {
|
List<CountItemtypeVO> list = new ArrayList<>();
|
return success(list);
|
}
|
|
/**
|
* 上传模型
|
*/
|
@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);
|
}
|
}
|