1.增加时间日志,方便排查问题

This commit is contained in:
jiangtd 2026-05-19 17:35:34 +08:00
parent 7d8d4d293d
commit 0298014b9d
4 changed files with 61 additions and 3 deletions

View File

@ -36,18 +36,33 @@ public class RecognizeDrivingLicenseController extends BaseController {
@EbAuthentication(tencent = ApiConstants.TENCENT_AUTH) @EbAuthentication(tencent = ApiConstants.TENCENT_AUTH)
@PostMapping("/recognize") @PostMapping("/recognize")
public R<Object> recognize(@RequestBody VehicleLicenseRequest request) { public R<Object> recognize(@RequestBody VehicleLicenseRequest request) {
long start = System.currentTimeMillis();
long t1 = System.currentTimeMillis();
BVehicleLicenseRequest bVehicleLicenseRequest = toBaiduRequest(request); BVehicleLicenseRequest bVehicleLicenseRequest = toBaiduRequest(request);
String checkMsg = checkRequest(bVehicleLicenseRequest); String checkMsg = checkRequest(bVehicleLicenseRequest);
if (!isBlank(checkMsg)) { if (!isBlank(checkMsg)) {
return R.error(checkMsg); return R.error(checkMsg);
} }
log.info("行驶证识别-参数校验及构建请求耗时:{}ms", System.currentTimeMillis() - t1);
long t2 = System.currentTimeMillis();
Map<String, Object> data = requestBaidu(getContent(bVehicleLicenseRequest)); Map<String, Object> data = requestBaidu(getContent(bVehicleLicenseRequest));
long baiduCost = System.currentTimeMillis() - t2;
log.info("行驶证识别-调用百度OCR接口耗时:{}ms", baiduCost);
if (data == null) { if (data == null) {
log.info("行驶证识别-识别失败, 耗时:{}ms", System.currentTimeMillis() - start);
return R.error("行驶证识别失败"); return R.error("行驶证识别失败");
} }
long t3 = System.currentTimeMillis();
R<Object> result = R.ok(); R<Object> 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) { private BVehicleLicenseRequest toBaiduRequest(VehicleLicenseRequest request) {

View File

@ -42,23 +42,34 @@ public class RecognizeLicensePlateController extends BaseController {
@PostMapping("/recognize") @PostMapping("/recognize")
public R recognize(@RequestBody LicensePlateRecognizeRequest request) { public R recognize(@RequestBody LicensePlateRecognizeRequest request) {
long start = System.currentTimeMillis();
if (request == null) { if (request == null) {
return R.error("请求参数不能为空"); return R.error("请求参数不能为空");
} }
if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) { if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) {
return R.error("imageBase64和imageUrl不能同时为空"); return R.error("imageBase64和imageUrl不能同时为空");
} }
log.info("车牌识别-参数校验耗时:{}ms", System.currentTimeMillis() - start);
long t1 = System.currentTimeMillis();
BLicensePlateRequest bRequest = toBaiduRequest(request); BLicensePlateRequest bRequest = toBaiduRequest(request);
log.info("车牌识别-构建百度请求耗时:{}ms", System.currentTimeMillis() - t1);
long t2 = System.currentTimeMillis();
ApiR<BLicensePlateResp> apiR = bLicensePlateHandle.handle(bRequest); ApiR<BLicensePlateResp> apiR = bLicensePlateHandle.handle(bRequest);
long baiduCost = System.currentTimeMillis() - t2;
log.info("车牌识别-调用百度OCR接口耗时:{}ms", baiduCost);
if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) { if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) {
return R.error(thirdError(apiR)); return R.error(thirdError(apiR));
} }
long t3 = System.currentTimeMillis();
BLicensePlateResp bResp = apiR.getData(); BLicensePlateResp bResp = apiR.getData();
List<BLicensePlateResp.WordsResultDTO> plates = bResp.getWordsResult(); List<BLicensePlateResp.WordsResultDTO> plates = bResp.getWordsResult();
if (CollectionUtils.isEmpty(plates)) { if (CollectionUtils.isEmpty(plates)) {
log.info("车牌识别-未识别到车牌信息, 耗时:{}ms", System.currentTimeMillis() - start);
return R.error("未识别到车牌信息"); return R.error("未识别到车牌信息");
} }
@ -76,7 +87,9 @@ public class RecognizeLicensePlateController extends BaseController {
double avgConf = probabilities.stream().mapToDouble(Double::doubleValue).average().orElse(0.0); double avgConf = probabilities.stream().mapToDouble(Double::doubleValue).average().orElse(0.0);
resp.setPlateTypeConfidence((float) avgConf); resp.setPlateTypeConfidence((float) avgConf);
} }
log.info("车牌识别-结果映射耗时:{}ms", System.currentTimeMillis() - t3);
log.info("车牌识别-总耗时:{}ms, 其中第三方(百度OCR):{}ms", System.currentTimeMillis() - start, baiduCost);
return R.ok().setData(resp); return R.ok().setData(resp);
} }

View File

@ -38,27 +38,42 @@ public class RecognizeTaxiInvoiceController extends BaseController {
@PostMapping("/recognize") @PostMapping("/recognize")
public R recognize(@RequestBody TaxiInvoiceRecognizeRequest request) { public R recognize(@RequestBody TaxiInvoiceRecognizeRequest request) {
long start = System.currentTimeMillis();
if (request == null) { if (request == null) {
return R.error("请求参数不能为空"); return R.error("请求参数不能为空");
} }
if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) { if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) {
return R.error("imageBase64和imageUrl不能同时为空"); return R.error("imageBase64和imageUrl不能同时为空");
} }
log.info("出租车发票识别-参数校验耗时:{}ms", System.currentTimeMillis() - start);
long t1 = System.currentTimeMillis();
BTaxiReceiptRequest bRequest = toBaiduRequest(request); BTaxiReceiptRequest bRequest = toBaiduRequest(request);
log.info("出租车发票识别-构建百度请求耗时:{}ms", System.currentTimeMillis() - t1);
long t2 = System.currentTimeMillis();
ApiR<BTaxiReceiptResp> apiR = bTaxiReceiptHandle.handle(bRequest); ApiR<BTaxiReceiptResp> apiR = bTaxiReceiptHandle.handle(bRequest);
long baiduCost = System.currentTimeMillis() - t2;
log.info("出租车发票识别-调用百度OCR接口耗时:{}ms", baiduCost);
if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) { if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) {
return R.error(thirdError(apiR)); return R.error(thirdError(apiR));
} }
long t3 = System.currentTimeMillis();
BTaxiReceiptResp bResp = apiR.getData(); BTaxiReceiptResp bResp = apiR.getData();
BTaxiReceiptResp.WordsResultDTO wordsResult = bResp.getWordsResult(); BTaxiReceiptResp.WordsResultDTO wordsResult = bResp.getWordsResult();
if (wordsResult == null) { if (wordsResult == null) {
log.info("出租车发票识别-未识别到发票信息, 耗时:{}ms", System.currentTimeMillis() - start);
return R.error("未识别到出租车发票信息"); 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) { private BTaxiReceiptRequest toBaiduRequest(TaxiInvoiceRecognizeRequest request) {

View File

@ -38,27 +38,42 @@ public class RecognizeTrainTicketController extends BaseController {
@PostMapping("/recognize") @PostMapping("/recognize")
public R recognize(@RequestBody TrainTicketRecognizeRequest request) { public R recognize(@RequestBody TrainTicketRecognizeRequest request) {
long start = System.currentTimeMillis();
if (request == null) { if (request == null) {
return R.error("请求参数不能为空"); return R.error("请求参数不能为空");
} }
if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) { if (isBlank(request.getImageBase64()) && isBlank(request.getImageUrl())) {
return R.error("imageBase64和imageUrl不能同时为空"); return R.error("imageBase64和imageUrl不能同时为空");
} }
log.info("火车票识别-参数校验耗时:{}ms", System.currentTimeMillis() - start);
long t1 = System.currentTimeMillis();
BTrainTicketRequest bRequest = toBaiduRequest(request); BTrainTicketRequest bRequest = toBaiduRequest(request);
log.info("火车票识别-构建百度请求耗时:{}ms", System.currentTimeMillis() - t1);
long t2 = System.currentTimeMillis();
ApiR<BTrainTicketResp> apiR = bTrainTicketHandle.handle(bRequest); ApiR<BTrainTicketResp> apiR = bTrainTicketHandle.handle(bRequest);
long baiduCost = System.currentTimeMillis() - t2;
log.info("火车票识别-调用百度OCR接口耗时:{}ms", baiduCost);
if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) { if (apiR == null || !apiR.isSuccess() || apiR.getData() == null) {
return R.error(thirdError(apiR)); return R.error(thirdError(apiR));
} }
long t3 = System.currentTimeMillis();
BTrainTicketResp bResp = apiR.getData(); BTrainTicketResp bResp = apiR.getData();
BTrainTicketResp.WordsResultDTO wordsResult = bResp.getWordsResult(); BTrainTicketResp.WordsResultDTO wordsResult = bResp.getWordsResult();
if (wordsResult == null) { if (wordsResult == null) {
log.info("火车票识别-未识别到火车票信息, 耗时:{}ms", System.currentTimeMillis() - start);
return R.error("未识别到火车票信息"); 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) { private BTrainTicketRequest toBaiduRequest(TrainTicketRecognizeRequest request) {