Ver Fonte

1. 修复同一时间小票和商品识别完成后无法回传的问题

semi há 4 anos atrás
pai
commit
dc39634b27

+ 4 - 2
src/main/java/com/pavis/ai/kwp/ioc/common/listener/OcrListener.java

@@ -35,7 +35,8 @@ public class OcrListener {
         if (properties.getCallback()) {
             if (StringUtils.equals(event.getOcrType(), GOODS_OCR_TYPE)) {
                 // 查询小票是否识别完成
-                TripLog tripLog = tripLogMapper.selectById(event.getUploadId());
+                // 需要强制查询走主表而非从表
+                TripLog tripLog = tripLogMapper.selectByUploadId(event.getUploadId());
                 if (tripLog.getTDone()) {
                     log.info("小票已识别,开始回传,{}", event.getUploadId());
                     callbackService.callback(event.getUploadId());
@@ -44,7 +45,8 @@ public class OcrListener {
 
             if (StringUtils.equals(event.getOcrType(), TRIP_OCR_TYPE)) {
                 // 查询商品是否识别完成
-                GoodsLog goodsLog = goodsLogMapper.selectById(event.getUploadId());
+                // 需要强制查询走主表而非从表
+                GoodsLog goodsLog = goodsLogMapper.selectByUploadId(event.getUploadId());
                 if (goodsLog.getGDone()) {
                     log.info("商品已识别,开始回传,{}", event.getUploadId());
                     callbackService.callback(event.getUploadId());

+ 2 - 0
src/main/java/com/pavis/ai/kwp/ioc/mapper/TripLogMapper.java

@@ -2,8 +2,10 @@ package com.pavis.ai.kwp.ioc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.pavis.ai.kwp.ioc.model.TripLog;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
 @Component
 public interface TripLogMapper extends BaseMapper<TripLog> {
+    TripLog selectByUploadId(@Param("uploadId") String uploadId);
 }

+ 7 - 4
src/main/java/com/pavis/ai/kwp/ioc/service/impl/OcrTripServiceImpl.java

@@ -83,11 +83,14 @@ public class OcrTripServiceImpl extends ServiceImpl<OcrTripMapper, OcrTrip> impl
             if (!StringUtils.equals(Constants.OP_CODE_OCR_SUCCESS, ret.getCode())) {
                 // OCR识别错误
                 tripLog.setTError(ret.getCode() + ":" + ret.getMessage());
+                tripLog.setTTimeConsume("-1");
+                tripLog.setTDone(false);
+            } else {
+                tripLog.setTStartTime(ret.getStart());
+                tripLog.setTFinishTime(ret.getEnd());
+                tripLog.setTTimeConsume(DateTimeUtils.calculateTimeConsume(tripLog.getTStartTime(), tripLog.getTFinishTime()));
+                tripLog.setTDone(true);
             }
-            tripLog.setTStartTime(ret.getStart());
-            tripLog.setTFinishTime(ret.getEnd());
-            tripLog.setTTimeConsume(DateTimeUtils.calculateTimeConsume(tripLog.getTStartTime(), tripLog.getTFinishTime()));
-            tripLog.setTDone(true);
             tripLogMapper.updateById(tripLog);
         }
 

+ 9 - 0
src/main/resources/mapper/TripLogMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.pavis.ai.kwp.ioc.mapper.TripLogMapper">
+    <select id="selectByUploadId" resultType="TripLog">
+        /*#mycat:db_type=master*/ select *
+                                  from trip_log
+                                  where upload_id = #{uploadId}
+    </select>
+</mapper>