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.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(@RequestParam 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); } }