| | |
| | | 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; |
| | |
| | | |
| | | 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 = "实时数据处理控制器") |
| | |
| | | |
| | | @Autowired |
| | | private IDryRealTimeDataService dryRealTimeDataService; |
| | | |
| | | @Autowired |
| | | private HerbUtil herbUtil; |
| | | |
| | | |
| | | @ApiOperation(value="测试", notes="返回Hello") |
| | |
| | | return dryRealTimeDataService.queryMachineRealTImeData(realTimeDataVo); |
| | | } |
| | | |
| | | @ApiOperation(value="获取车间统计数据", notes="通过租户ID获取车间统计数据") |
| | | @GetMapping("/workshopStatistics") |
| | | public Result<?> workshopStatistics(RealTimeDataVo realTimeDataVo) { |
| | | return dryRealTimeDataService.queryWorkshopStatistics(realTimeDataVo); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 1001 风箱升 1002 风箱降 |
| | | * 1003 滚筒升 1004 滚筒降 |
| | | * 1005 滚筒正转 1006 滚筒反转 |
| | | * 1007 设备停止 1010 干燥启动 |
| | | * 1011 前门开关 1012 后门开关 |
| | | * 1013 热风启动 1014 开门观察 |
| | | * 1015 出料按钮 |
| | | */ |
| | | @ApiOperation(value="发送控制指令", notes="向服务端发送控制指令,由服务端通过socket转发给控制模块") |
| | | @PostMapping("/sendCommand") |
| | | 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识别服务异常"); |
| | | } |
| | | } |
| | | |
| | | } |