干燥机配套车间生产管理系统/云平台服务端
bsw215583320
2023-12-20 92e356d1ee1b877bc17d3aee3a137c234f01c477
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.dry.controller;
import ai.djl.modality.Classifications;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -8,11 +9,16 @@
import org.jeecg.modules.dry.service.*;
import org.jeecg.modules.dry.util.HerbUtil;
import org.jeecg.modules.dry.vo.CommandMessageVo;
import org.jeecg.modules.dry.vo.RealTimeDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.List;
@Api(tags = "实时数据处理控制器")
@@ -23,6 +29,9 @@
    @Autowired
    private IDryRealTimeDataService dryRealTimeDataService;
    @Autowired
    private HerbUtil herbUtil;
    @ApiOperation(value="测试", notes="返回Hello")
@@ -66,4 +75,22 @@
    public Result<?> sendCommand(@RequestBody CommandMessageVo msgVo) {
        return dryRealTimeDataService.sendSocketMsg(msgVo);
    }
    @ApiOperation(value = "药材识别")
    @PostMapping("/identify")
    public Result<?> identify(@RequestParam("file") MultipartFile file) throws Exception {
        try {
            if (file.isEmpty()) {
                throw new RuntimeException("上传文件不能为空");
            }
            InputStream inputStream = file.getInputStream();
            List<Classifications.Classification> predict = herbUtil.predict(inputStream);
            return Result.ok(predict);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("AI识别服务异常");
        }
    }
}