diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeDrivingLicenseController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeDrivingLicenseController.java index cf6680b..3cba6d1 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeDrivingLicenseController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeDrivingLicenseController.java @@ -36,18 +36,33 @@ public class RecognizeDrivingLicenseController extends BaseController { @EbAuthentication(tencent = ApiConstants.TENCENT_AUTH) @PostMapping("/recognize") public R recognize(@RequestBody VehicleLicenseRequest request) { + long start = System.currentTimeMillis(); + + long t1 = System.currentTimeMillis(); BVehicleLicenseRequest bVehicleLicenseRequest = toBaiduRequest(request); String checkMsg = checkRequest(bVehicleLicenseRequest); if (!isBlank(checkMsg)) { return R.error(checkMsg); } + log.info("行驶证识别-参数校验及构建请求耗时:{}ms", System.currentTimeMillis() - t1); + + long t2 = System.currentTimeMillis(); Map data = requestBaidu(getContent(bVehicleLicenseRequest)); + long baiduCost = System.currentTimeMillis() - t2; + log.info("行驶证识别-调用百度OCR接口耗时:{}ms", baiduCost); + if (data == null) { + log.info("行驶证识别-识别失败, 耗时:{}ms", System.currentTimeMillis() - start); return R.error("行驶证识别失败"); } + long t3 = System.currentTimeMillis(); R result = R.ok(); - return result.setData(toRecognizeResp(bVehicleLicenseRequest.getVehicleLicenseSide(), data)); + result.setData(toRecognizeResp(bVehicleLicenseRequest.getVehicleLicenseSide(), data)); + log.info("行驶证识别-结果映射耗时:{}ms", System.currentTimeMillis() - t3); + + log.info("行驶证识别-总耗时:{}ms, 其中第三方(百度OCR):{}ms", System.currentTimeMillis() - start, baiduCost); + return result; } private BVehicleLicenseRequest toBaiduRequest(VehicleLicenseRequest request) { diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeLicensePlateController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeLicensePlateController.java index 1ae3677..9b40376 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeLicensePlateController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeLicensePlateController.java @@ -42,23 +42,34 @@ public class RecognizeLicensePlateController extends BaseController { @PostMapping("/recognize") public R recognize(@RequestBody LicensePlateRecognizeRequest request) { + long start = System.currentTimeMillis(); + if (request == null) { return R.error("请求参数不能为空"); } if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) { return R.error("imageBase64和imageUrl不能同时为空"); } + log.info("车牌识别-参数校验耗时:{}ms", System.currentTimeMillis() - start); + long t1 = System.currentTimeMillis(); BLicensePlateRequest bRequest = toBaiduRequest(request); + log.info("车牌识别-构建百度请求耗时:{}ms", System.currentTimeMillis() - t1); + long t2 = System.currentTimeMillis(); ApiR apiR = bLicensePlateHandle.handle(bRequest); + long baiduCost = System.currentTimeMillis() - t2; + log.info("车牌识别-调用百度OCR接口耗时:{}ms", baiduCost); + if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) { return R.error(thirdError(apiR)); } + long t3 = System.currentTimeMillis(); BLicensePlateResp bResp = apiR.getData(); List plates = bResp.getWordsResult(); if (CollectionUtils.isEmpty(plates)) { + log.info("车牌识别-未识别到车牌信息, 耗时:{}ms", System.currentTimeMillis() - start); return R.error("未识别到车牌信息"); } @@ -76,7 +87,9 @@ public class RecognizeLicensePlateController extends BaseController { double avgConf = probabilities.stream().mapToDouble(Double::doubleValue).average().orElse(0.0); resp.setPlateTypeConfidence((float) avgConf); } + log.info("车牌识别-结果映射耗时:{}ms", System.currentTimeMillis() - t3); + log.info("车牌识别-总耗时:{}ms, 其中第三方(百度OCR):{}ms", System.currentTimeMillis() - start, baiduCost); return R.ok().setData(resp); } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeTaxiInvoiceController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeTaxiInvoiceController.java index 82ea54f..9aac6af 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeTaxiInvoiceController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeTaxiInvoiceController.java @@ -38,27 +38,42 @@ public class RecognizeTaxiInvoiceController extends BaseController { @PostMapping("/recognize") public R recognize(@RequestBody TaxiInvoiceRecognizeRequest request) { + long start = System.currentTimeMillis(); + if (request == null) { return R.error("请求参数不能为空"); } if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) { return R.error("imageBase64和imageUrl不能同时为空"); } + log.info("出租车发票识别-参数校验耗时:{}ms", System.currentTimeMillis() - start); + long t1 = System.currentTimeMillis(); BTaxiReceiptRequest bRequest = toBaiduRequest(request); + log.info("出租车发票识别-构建百度请求耗时:{}ms", System.currentTimeMillis() - t1); + long t2 = System.currentTimeMillis(); ApiR apiR = bTaxiReceiptHandle.handle(bRequest); + long baiduCost = System.currentTimeMillis() - t2; + log.info("出租车发票识别-调用百度OCR接口耗时:{}ms", baiduCost); + if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) { return R.error(thirdError(apiR)); } + long t3 = System.currentTimeMillis(); BTaxiReceiptResp bResp = apiR.getData(); BTaxiReceiptResp.WordsResultDTO wordsResult = bResp.getWordsResult(); if (wordsResult == null) { + log.info("出租车发票识别-未识别到发票信息, 耗时:{}ms", System.currentTimeMillis() - start); return R.error("未识别到出租车发票信息"); } - return R.ok().setData(toResp(wordsResult)); + RecognizeTaxiInvoiceResp resp = toResp(wordsResult); + log.info("出租车发票识别-结果映射耗时:{}ms", System.currentTimeMillis() - t3); + + log.info("出租车发票识别-总耗时:{}ms, 其中第三方(百度OCR):{}ms", System.currentTimeMillis() - start, baiduCost); + return R.ok().setData(resp); } private BTaxiReceiptRequest toBaiduRequest(TaxiInvoiceRecognizeRequest request) { diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeTrainTicketController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeTrainTicketController.java index 54c3699..8f64b3a 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeTrainTicketController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeTrainTicketController.java @@ -38,27 +38,42 @@ public class RecognizeTrainTicketController extends BaseController { @PostMapping("/recognize") public R recognize(@RequestBody TrainTicketRecognizeRequest request) { + long start = System.currentTimeMillis(); + if (request == null) { return R.error("请求参数不能为空"); } if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) { return R.error("imageBase64和imageUrl不能同时为空"); } + log.info("火车票识别-参数校验耗时:{}ms", System.currentTimeMillis() - start); + long t1 = System.currentTimeMillis(); BTrainTicketRequest bRequest = toBaiduRequest(request); + log.info("火车票识别-构建百度请求耗时:{}ms", System.currentTimeMillis() - t1); + long t2 = System.currentTimeMillis(); ApiR apiR = bTrainTicketHandle.handle(bRequest); + long baiduCost = System.currentTimeMillis() - t2; + log.info("火车票识别-调用百度OCR接口耗时:{}ms", baiduCost); + if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) { return R.error(thirdError(apiR)); } + long t3 = System.currentTimeMillis(); BTrainTicketResp bResp = apiR.getData(); BTrainTicketResp.WordsResultDTO wordsResult = bResp.getWordsResult(); if (wordsResult == null) { + log.info("火车票识别-未识别到火车票信息, 耗时:{}ms", System.currentTimeMillis() - start); return R.error("未识别到火车票信息"); } - return R.ok().setData(toResp(wordsResult)); + RecognizeTrainTicketResp resp = toResp(wordsResult); + log.info("火车票识别-结果映射耗时:{}ms", System.currentTimeMillis() - t3); + + log.info("火车票识别-总耗时:{}ms, 其中第三方(百度OCR):{}ms", System.currentTimeMillis() - start, baiduCost); + return R.ok().setData(resp); } private BTrainTicketRequest toBaiduRequest(TrainTicketRecognizeRequest request) {