干燥机配套车间生产管理系统/云平台服务端
bsw215583320
2023-12-21 f18634833512849ca9d95bf3522dfb9f7cedc55c
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -2,15 +2,19 @@
import ai.djl.modality.Classifications;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.dry.entity.DryHerbInfo;
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.DryHerbInfoVo;
import org.jeecg.modules.dry.vo.RealTimeDataVo;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,7 +22,9 @@
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Api(tags = "实时数据处理控制器")
@@ -32,6 +38,9 @@
    @Autowired
    private HerbUtil herbUtil;
    @Autowired
    private IDryHerbInfoService herbInfoService;
    @ApiOperation(value="测试", notes="返回Hello")
@@ -86,7 +95,23 @@
            }
            InputStream inputStream = file.getInputStream();
            List<Classifications.Classification> predict = herbUtil.predict(inputStream);
            return Result.ok(predict);
            Map<String, Double> collect = predict.stream().collect(Collectors.toMap(Classifications.Classification::getClassName, Classifications.Classification::getProbability));
            List<DryHerbInfoVo> voList = new ArrayList<>();
            Set<String> strings = collect.keySet();
            List<DryHerbInfo> list = herbInfoService.list(new LambdaQueryWrapper<DryHerbInfo>().in(DryHerbInfo::getPinyin, strings));
            list.forEach(item -> {
                DryHerbInfoVo dryHerbInfoVo = new DryHerbInfoVo();
                BeanUtil.copyProperties(item, dryHerbInfoVo);
                dryHerbInfoVo.setProbabily(collect.get(item.getPinyin()));
                voList.add(dryHerbInfoVo);
            });
            List<DryHerbInfoVo> collect1 = voList.stream().sorted(Comparator.comparing(DryHerbInfoVo::getProbabily, Comparator.reverseOrder())).
                    collect(Collectors.toList());
            return Result.ok(collect1);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("AI识别服务异常");