Преглед изворни кода

1. 修复g_done不更新问题

semi пре 4 година
родитељ
комит
615137087a
1 измењених фајлова са 18 додато и 26 уклоњено
  1. 18 26
      src/main/java/com/pavis/ai/kwp/ioc/service/impl/OcrGoodsServiceImpl.java

+ 18 - 26
src/main/java/com/pavis/ai/kwp/ioc/service/impl/OcrGoodsServiceImpl.java

@@ -55,14 +55,14 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
             goodsLog.setGStartTime(DateTimeUtils.dateTimeNow());
             for (UpGoods ug : upGoods) {
                 log.info("start ir,upload_id:{},goods_id:{}", ug.getUploadId(), ug.getId());
-                startOcr(ocrGoods.getUploadId(), ug, goodsLog);
+                startOcr(ug, goodsLog);
                 log.info("finish ir,upload_id:{},goods_id:{}", ug.getUploadId(), ug.getId());
             }
+            goodsLog.setGFinishTime(DateTimeUtils.dateTimeNow());
+            goodsLog.setGTimeConsume(DateTimeUtils.calculateTimeConsume(goodsLog.getGStartTime(), goodsLog.getGFinishTime()));
             if (goodsLog.getGDone() == null) {
                 goodsLog.setGDone(!goodsLog.getGError());
             }
-            goodsLog.setGFinishTime(DateTimeUtils.dateTimeNow());
-            goodsLog.setGTimeConsume(DateTimeUtils.calculateTimeConsume(goodsLog.getGStartTime(), goodsLog.getGFinishTime()));
             goodsLogMapper.updateById(goodsLog);
             if (goodsLog.getGDone()) {
                 // 通知监听器
@@ -84,6 +84,7 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
     }
 
     public void reOcr(GoodsLog goodsLog) {
+        log.info("start reOcr:{}", goodsLog.getUploadId());
         if (goodsLog.getTimes() < 2) {
             Map<String, Object> map = Maps.newHashMap();
             map.put("upload_id", goodsLog.getUploadId());
@@ -94,29 +95,26 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
                 // 重新设置开始时间
                 goodsLog.setGStartTime(DateTimeUtils.dateTimeNow());
                 for (UpGoods ug : upGoods) {
-                    startOcr(goodsLog.getUploadId(), ug, goodsLog);
-                }
-                if (goodsLog.getGDone() == null) {
-                    goodsLog.setGDone(!goodsLog.getGError());
+                    startOcr(ug, goodsLog);
                 }
                 // 设置结束时间
                 goodsLog.setGFinishTime(DateTimeUtils.dateTimeNow());
                 goodsLog.setGTimeConsume(DateTimeUtils.calculateTimeConsume(goodsLog.getGStartTime(), goodsLog.getGFinishTime()));
-            }
-            if (goodsLog.getGDone()) {
-                // 通知监听器
-                applicationEventPublisher.publishEvent(new OcrEvent(this, "G", goodsLog.getUploadId()));
+            } else {
+                goodsLog.setGDone(true);
             }
             goodsLog.setTimes(goodsLog.getTimes() + 1);
         } else {
             goodsLog.setGDone(true);
+        }
+        goodsLogMapper.updateById(goodsLog);
+        if (goodsLog.getGDone()) {
             // 通知监听器
             applicationEventPublisher.publishEvent(new OcrEvent(this, "G", goodsLog.getUploadId()));
         }
-        goodsLogMapper.updateById(goodsLog);
     }
 
-    public void startOcr(String uploadId, UpGoods ug, GoodsLog goodsLog) {
+    public void startOcr(UpGoods ug, GoodsLog goodsLog) {
         QueryWrapper<SubImg> wrapper = new QueryWrapper<>();
         wrapper.lambda().eq(SubImg::getGoodsId, ug.getId());
         // 检查是否已有识别结果
@@ -124,11 +122,11 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
         if (CollectionUtils.isEmpty(subImgList)) {
             IrRes res = null;
             try {
-                res = ctrService.startRequest(uploadId, ug.getGoodsImg());
+                res = ctrService.startRequest(goodsLog.getUploadId(), ug.getGoodsImg());
             } catch (Exception e) {
                 goodsLog.setGError(true);
                 ErrGoods err = ErrGoods.builder()
-                        .uploadId(uploadId)
+                        .uploadId(ug.getUploadId())
                         .goodsImg(ug.getGoodsImg())
                         .error(e.getMessage())
                         .createTime(DateTimeUtils.dateTimeNow())
@@ -141,6 +139,7 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
                     IrRet result = res.getResult();
                     if (result.getSubnumber() > 0) {
                         goodsLog.setGError(false);
+                        goodsLog.setGDone(true);
                         res.setGoodsId(ug.getId());
                         saveOcrResult(res);
                     } else {
@@ -153,27 +152,20 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
                                 .build();
                         errGoodsMapper.insert(err);
                     }
-                    goodsLog.setGDone(true);
                 } else {
                     goodsLog.setGError(true);
                     ErrGoods err = ErrGoods.builder()
-                            .uploadId(uploadId)
+                            .uploadId(ug.getUploadId())
                             .goodsImg(ug.getGoodsImg())
                             .error(res.getErrorMsg())
                             .createTime(DateTimeUtils.dateTimeNow())
                             .build();
                     errGoodsMapper.insert(err);
                 }
-            } else {
-                goodsLog.setGError(true);
-                ErrGoods err = ErrGoods.builder()
-                        .uploadId(uploadId)
-                        .goodsImg(ug.getGoodsImg())
-                        .error("未知错误,res=null")
-                        .createTime(DateTimeUtils.dateTimeNow())
-                        .build();
-                errGoodsMapper.insert(err);
             }
+        } else {
+            goodsLog.setGError(false);
+            goodsLog.setGDone(true);
         }
     }