|
@@ -15,7 +15,6 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
@@ -40,19 +39,23 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
|
@Autowired
|
|
|
private SubImgRetMapper subImgRetMapper;
|
|
|
|
|
|
- @Async("recAndSaveExecutor")
|
|
|
+ // @Async("recAndSaveExecutor")
|
|
|
@Override
|
|
|
public void recAndSave(OcrGoods ocrGoods) {
|
|
|
- Map<String, Object> map = Maps.newHashMap();
|
|
|
- map.put("upload_id", ocrGoods.getUploadId());
|
|
|
- List<UpGoods> upGoods = upGoodsMapper.selectByMap(map);
|
|
|
+ QueryWrapper<UpGoods> ugw = new QueryWrapper<>();
|
|
|
+ ugw.lambda().eq(UpGoods::getUploadId, ocrGoods.getUploadId());
|
|
|
+ List<UpGoods> upGoods = upGoodsMapper.selectList(ugw);
|
|
|
GoodsLog goodsLog = goodsLogMapper.selectById(ocrGoods.getUploadId());
|
|
|
if (goodsLog != null && CollectionUtils.isNotEmpty(upGoods)) {
|
|
|
goodsLog.setGStartTime(DateTimeUtils.dateTimeNow());
|
|
|
for (UpGoods ug : upGoods) {
|
|
|
+ log.info("start ir,upload_id:{},goods_id:{}", ug.getUploadId(), ug.getId());
|
|
|
startOcr(ocrGoods.getUploadId(), ug);
|
|
|
+ log.info("finish ir,upload_id:{},goods_id:{}", ug.getUploadId(), ug.getId());
|
|
|
}
|
|
|
- List<ErrGoods> errs = errGoodsMapper.selectByMap(map);
|
|
|
+ QueryWrapper<ErrGoods> egw = new QueryWrapper<>();
|
|
|
+ egw.lambda().eq(ErrGoods::getUploadId, ocrGoods.getUploadId());
|
|
|
+ List<ErrGoods> errs = errGoodsMapper.selectList(egw);
|
|
|
if (CollectionUtils.isNotEmpty(errs)) {
|
|
|
goodsLog.setGError(true);
|
|
|
goodsLog.setGDone(false);
|
|
@@ -105,6 +108,7 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
|
}
|
|
|
goodsLog.setTimes(goodsLog.getTimes() + 1);
|
|
|
} else {
|
|
|
+ goodsLog.setGError(true);
|
|
|
goodsLog.setGDone(true);
|
|
|
}
|
|
|
goodsLogMapper.updateById(goodsLog);
|
|
@@ -116,6 +120,7 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
|
// 检查是否已有识别结果
|
|
|
List<SubImg> subImgList = subImgMapper.selectList(wrapper);
|
|
|
if (CollectionUtils.isEmpty(subImgList)) {
|
|
|
+ GoodsLog goodsLog = goodsLogMapper.selectById(uploadId);
|
|
|
IrRes res = null;
|
|
|
try {
|
|
|
res = ctrService.startRequest(uploadId, ug.getGoodsImg());
|
|
@@ -128,11 +133,12 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
|
.build();
|
|
|
errGoodsMapper.insert(err);
|
|
|
log.error("商品图片:{},识别出错:{}", ug.getGoodsImg(), e.getMessage());
|
|
|
+ goodsLog.setGError(true);
|
|
|
}
|
|
|
if (res != null) {
|
|
|
if (StringUtils.isBlank(res.getErrorCode())) {
|
|
|
res.setGoodsId(ug.getId());
|
|
|
- saveOcrResult(res);
|
|
|
+ saveOcrResult(ug, res);
|
|
|
} else {
|
|
|
ErrGoods err = ErrGoods.builder()
|
|
|
.uploadId(uploadId)
|
|
@@ -141,12 +147,23 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
|
.createTime(DateTimeUtils.dateTimeNow())
|
|
|
.build();
|
|
|
errGoodsMapper.insert(err);
|
|
|
+ goodsLog.setGError(true);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ ErrGoods err = ErrGoods.builder()
|
|
|
+ .uploadId(uploadId)
|
|
|
+ .goodsImg(ug.getGoodsImg())
|
|
|
+ .error("未知错误,res=null")
|
|
|
+ .createTime(DateTimeUtils.dateTimeNow())
|
|
|
+ .build();
|
|
|
+ errGoodsMapper.insert(err);
|
|
|
+ goodsLog.setGError(true);
|
|
|
}
|
|
|
+ goodsLogMapper.updateById(goodsLog);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void saveOcrResult(IrRes res) {
|
|
|
+ public void saveOcrResult(UpGoods ug, IrRes res) {
|
|
|
IrRet result = res.getResult();
|
|
|
if (result.getSubnumber() > 0) {
|
|
|
Map<String, SubGoods> subGoodsList = result.getSubGoodsList();
|
|
@@ -167,6 +184,14 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ ErrGoods err = ErrGoods.builder()
|
|
|
+ .uploadId(ug.getUploadId())
|
|
|
+ .goodsImg(ug.getGoodsImg())
|
|
|
+ .error(String.format("subnumber:0,goodsId:%s", ug.getId()))
|
|
|
+ .createTime(DateTimeUtils.dateTimeNow())
|
|
|
+ .build();
|
|
|
+ errGoodsMapper.insert(err);
|
|
|
}
|
|
|
}
|
|
|
}
|