140 lines
4.3 KiB
Java
140 lines
4.3 KiB
Java
|
|
package com.klp.controller;
|
|||
|
|
|
|||
|
|
import com.klp.common.annotation.Log;
|
|||
|
|
import com.klp.common.core.controller.BaseController;
|
|||
|
|
import com.klp.common.core.domain.R;
|
|||
|
|
import com.klp.common.core.validate.AddGroup;
|
|||
|
|
import com.klp.common.core.validate.EditGroup;
|
|||
|
|
import com.klp.common.core.validate.QueryGroup;
|
|||
|
|
import com.klp.common.enums.BusinessType;
|
|||
|
|
import com.klp.common.utils.poi.ExcelUtil;
|
|||
|
|
import com.klp.domain.bo.ImageRecognitionBo;
|
|||
|
|
import com.klp.domain.vo.ImageRecognitionVo;
|
|||
|
|
import com.klp.service.IImageRecognitionService;
|
|||
|
|
import lombok.RequiredArgsConstructor;
|
|||
|
|
import org.springframework.validation.annotation.Validated;
|
|||
|
|
import org.springframework.web.bind.annotation.*;
|
|||
|
|
|
|||
|
|
import javax.servlet.http.HttpServletResponse;
|
|||
|
|
import javax.validation.constraints.NotEmpty;
|
|||
|
|
import javax.validation.constraints.NotNull;
|
|||
|
|
import java.util.List;
|
|||
|
|
import java.util.Map;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 图片识别控制器
|
|||
|
|
*
|
|||
|
|
* @author klp
|
|||
|
|
* @date 2025-01-27
|
|||
|
|
*/
|
|||
|
|
@Validated
|
|||
|
|
@RequiredArgsConstructor
|
|||
|
|
@RestController
|
|||
|
|
@RequestMapping("/wms/imageRecognition")
|
|||
|
|
public class WmsImageRecognitionController extends BaseController {
|
|||
|
|
|
|||
|
|
private final IImageRecognitionService iImageRecognitionService;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 识别图片内容
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/recognize")
|
|||
|
|
public R<ImageRecognitionVo> recognize(@RequestBody @Validated(AddGroup.class) ImageRecognitionBo bo) {
|
|||
|
|
return R.ok(iImageRecognitionService.recognizeImage(bo));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 识别BOM内容
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/recognizeBom")
|
|||
|
|
public R<ImageRecognitionVo> recognizeBom(@RequestBody @Validated(AddGroup.class) ImageRecognitionBo bo) {
|
|||
|
|
bo.setRecognitionType("bom");
|
|||
|
|
return R.ok(iImageRecognitionService.recognizeBom(bo));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 识别文字内容
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/recognizeText")
|
|||
|
|
public R<ImageRecognitionVo> recognizeText(@RequestBody @Validated(AddGroup.class) ImageRecognitionBo bo) {
|
|||
|
|
bo.setRecognitionType("text");
|
|||
|
|
return R.ok(iImageRecognitionService.recognizeText(bo));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 批量识别图片
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/recognizeBatch")
|
|||
|
|
public R<List<ImageRecognitionVo>> recognizeBatch(@RequestBody @Validated(AddGroup.class) List<ImageRecognitionBo> boList) {
|
|||
|
|
return R.ok(iImageRecognitionService.recognizeImages(boList));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 测试AI连接
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/testConnection")
|
|||
|
|
public R<Map<String, Object>> testConnection() {
|
|||
|
|
return R.ok(iImageRecognitionService.testAiConnection());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取识别配置
|
|||
|
|
*/
|
|||
|
|
@GetMapping("/config")
|
|||
|
|
public R<Map<String, Object>> getConfig() {
|
|||
|
|
return R.ok(iImageRecognitionService.getRecognitionConfig());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 更新识别配置
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/config")
|
|||
|
|
public R<Void> updateConfig(@RequestBody Map<String, Object> config) {
|
|||
|
|
iImageRecognitionService.updateRecognitionConfig(config);
|
|||
|
|
return R.ok();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取识别历史
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/history")
|
|||
|
|
public R<Map<String, Object>> getHistory(@RequestBody Map<String, Object> pageQuery) {
|
|||
|
|
return R.ok(iImageRecognitionService.getRecognitionHistory(pageQuery));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 简单识别接口(兼容原有格式)
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/recognizeTextSimple")
|
|||
|
|
public R<ImageRecognitionVo> recognizeTextSimple(@RequestBody Map<String, String> request) {
|
|||
|
|
String imgUrl = request.get("imgUrl");
|
|||
|
|
if (imgUrl == null || imgUrl.trim().isEmpty()) {
|
|||
|
|
return R.fail("图片URL不能为空");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
ImageRecognitionBo bo = new ImageRecognitionBo();
|
|||
|
|
bo.setImageUrl(imgUrl);
|
|||
|
|
bo.setRecognitionType("text");
|
|||
|
|
|
|||
|
|
ImageRecognitionVo result = iImageRecognitionService.recognizeText(bo);
|
|||
|
|
return R.ok(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 识别BOM接口(兼容原有格式)
|
|||
|
|
*/
|
|||
|
|
@PostMapping("/recognizeBomSimple")
|
|||
|
|
public R<ImageRecognitionVo> recognizeBomSimple(@RequestBody Map<String, String> request) {
|
|||
|
|
String imgUrl = request.get("imgUrl");
|
|||
|
|
if (imgUrl == null || imgUrl.trim().isEmpty()) {
|
|||
|
|
return R.fail("图片URL不能为空");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
ImageRecognitionBo bo = new ImageRecognitionBo();
|
|||
|
|
bo.setImageUrl(imgUrl);
|
|||
|
|
bo.setRecognitionType("bom");
|
|||
|
|
|
|||
|
|
ImageRecognitionVo result = iImageRecognitionService.recognizeBom(bo);
|
|||
|
|
return R.ok(result);
|
|||
|
|
}
|
|||
|
|
}
|