干燥机配套车间生产管理系统/云平台服务端
bsw215583320
2024-04-09 ae2d52827d289dd985014a63c08b0913d083b215
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -12,7 +12,7 @@
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.util.HerbUtil;
import org.jeecg.modules.dry.vo.CommandMessageVo;
import org.jeecg.modules.dry.vo.DryHerbInfoVo;
import org.jeecg.modules.dry.vo.RealTimeDataVo;
@@ -36,8 +36,8 @@
    @Autowired
    private IDryRealTimeDataService dryRealTimeDataService;
    @Autowired
    private HerbUtil herbUtil;
//    @Autowired
//    private HerbUtil herbUtil;
    @Autowired
    private IDryHerbInfoService herbInfoService;
@@ -85,43 +85,43 @@
        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);
            if(predict.size()>0) {
                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);
            } else {
                return Result.error("AI识别服务异常");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("AI识别服务异常");
        }
    }
//
//    @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);
//
//            if(predict.size()>0) {
//                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);
//            } else {
//                return Result.error("AI识别服务异常");
//            }
//
//        } catch (Exception e) {
//            e.printStackTrace();
//            return Result.error("AI识别服务异常");
//        }
//    }
}