|
@@ -47,26 +47,16 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
@Override
|
|
@Override
|
|
public void recAndSave(OcrGoods ocrGoods) {
|
|
public void recAndSave(OcrGoods ocrGoods) {
|
|
log.info("start rec and save");
|
|
log.info("start rec and save");
|
|
- QueryWrapper<UpGoods> ugw = new QueryWrapper<>();
|
|
|
|
- ugw.lambda().eq(UpGoods::getUploadId, ocrGoods.getUploadId());
|
|
|
|
- List<UpGoods> upGoods = upGoodsMapper.selectList(ugw);
|
|
|
|
- GoodsLog goodsLog = goodsLogMapper.selectById(ocrGoods.getUploadId());
|
|
|
|
|
|
+ List<UpGoods> upGoods = upGoodsMapper.selectByUploadId(ocrGoods.getUploadId());
|
|
|
|
+ GoodsLog goodsLog = goodsLogMapper.selectByUploadId(ocrGoods.getUploadId());
|
|
if (goodsLog != null && CollectionUtils.isNotEmpty(upGoods)) {
|
|
if (goodsLog != null && CollectionUtils.isNotEmpty(upGoods)) {
|
|
goodsLog.setGStartTime(DateTimeUtils.dateTimeNow());
|
|
goodsLog.setGStartTime(DateTimeUtils.dateTimeNow());
|
|
for (UpGoods ug : upGoods) {
|
|
for (UpGoods ug : upGoods) {
|
|
log.info("start ir,upload_id:{},goods_id:{}", ug.getUploadId(), ug.getId());
|
|
log.info("start ir,upload_id:{},goods_id:{}", ug.getUploadId(), ug.getId());
|
|
- startOcr(ocrGoods.getUploadId(), ug);
|
|
|
|
|
|
+ startOcr(ocrGoods.getUploadId(), ug, goodsLog);
|
|
log.info("finish ir,upload_id:{},goods_id:{}", ug.getUploadId(), ug.getId());
|
|
log.info("finish ir,upload_id:{},goods_id:{}", ug.getUploadId(), ug.getId());
|
|
}
|
|
}
|
|
- 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);
|
|
|
|
- } else {
|
|
|
|
- goodsLog.setGError(false);
|
|
|
|
- goodsLog.setGDone(true);
|
|
|
|
|
|
+ if (goodsLog.getGDone()) {
|
|
// 通知监听器
|
|
// 通知监听器
|
|
applicationEventPublisher.publishEvent(new OcrEvent(this, "G", ocrGoods.getUploadId()));
|
|
applicationEventPublisher.publishEvent(new OcrEvent(this, "G", ocrGoods.getUploadId()));
|
|
}
|
|
}
|
|
@@ -89,7 +79,7 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
}
|
|
}
|
|
|
|
|
|
public void reOcr(GoodsLog goodsLog) {
|
|
public void reOcr(GoodsLog goodsLog) {
|
|
- if (goodsLog.getTimes() < 3) {
|
|
|
|
|
|
+ if (goodsLog.getTimes() < 2) {
|
|
Map<String, Object> map = Maps.newHashMap();
|
|
Map<String, Object> map = Maps.newHashMap();
|
|
map.put("upload_id", goodsLog.getUploadId());
|
|
map.put("upload_id", goodsLog.getUploadId());
|
|
List<UpGoods> upGoods = upGoodsMapper.selectByMap(map);
|
|
List<UpGoods> upGoods = upGoodsMapper.selectByMap(map);
|
|
@@ -99,25 +89,18 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
// 重新设置开始时间
|
|
// 重新设置开始时间
|
|
goodsLog.setGStartTime(DateTimeUtils.dateTimeNow());
|
|
goodsLog.setGStartTime(DateTimeUtils.dateTimeNow());
|
|
for (UpGoods ug : upGoods) {
|
|
for (UpGoods ug : upGoods) {
|
|
- startOcr(goodsLog.getUploadId(), ug);
|
|
|
|
|
|
+ startOcr(goodsLog.getUploadId(), ug, goodsLog);
|
|
}
|
|
}
|
|
// 设置结束时间
|
|
// 设置结束时间
|
|
goodsLog.setGFinishTime(DateTimeUtils.dateTimeNow());
|
|
goodsLog.setGFinishTime(DateTimeUtils.dateTimeNow());
|
|
goodsLog.setGTimeConsume(DateTimeUtils.calculateTimeConsume(goodsLog.getGStartTime(), goodsLog.getGFinishTime()));
|
|
goodsLog.setGTimeConsume(DateTimeUtils.calculateTimeConsume(goodsLog.getGStartTime(), goodsLog.getGFinishTime()));
|
|
}
|
|
}
|
|
- List<ErrGoods> errs = errGoodsMapper.selectByMap(map);
|
|
|
|
- if (CollectionUtils.isNotEmpty(errs)) {
|
|
|
|
- goodsLog.setGError(true);
|
|
|
|
- goodsLog.setGDone(false);
|
|
|
|
- } else {
|
|
|
|
- goodsLog.setGError(false);
|
|
|
|
- goodsLog.setGDone(true);
|
|
|
|
|
|
+ if (goodsLog.getGDone()) {
|
|
// 通知监听器
|
|
// 通知监听器
|
|
applicationEventPublisher.publishEvent(new OcrEvent(this, "G", goodsLog.getUploadId()));
|
|
applicationEventPublisher.publishEvent(new OcrEvent(this, "G", goodsLog.getUploadId()));
|
|
}
|
|
}
|
|
goodsLog.setTimes(goodsLog.getTimes() + 1);
|
|
goodsLog.setTimes(goodsLog.getTimes() + 1);
|
|
} else {
|
|
} else {
|
|
- goodsLog.setGError(true);
|
|
|
|
goodsLog.setGDone(true);
|
|
goodsLog.setGDone(true);
|
|
// 通知监听器
|
|
// 通知监听器
|
|
applicationEventPublisher.publishEvent(new OcrEvent(this, "G", goodsLog.getUploadId()));
|
|
applicationEventPublisher.publishEvent(new OcrEvent(this, "G", goodsLog.getUploadId()));
|
|
@@ -125,7 +108,7 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
goodsLogMapper.updateById(goodsLog);
|
|
goodsLogMapper.updateById(goodsLog);
|
|
}
|
|
}
|
|
|
|
|
|
- public void startOcr(String uploadId, UpGoods ug) {
|
|
|
|
|
|
+ public void startOcr(String uploadId, UpGoods ug, GoodsLog goodsLog) {
|
|
QueryWrapper<SubImg> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<SubImg> wrapper = new QueryWrapper<>();
|
|
wrapper.lambda().eq(SubImg::getGoodsId, ug.getId());
|
|
wrapper.lambda().eq(SubImg::getGoodsId, ug.getId());
|
|
// 检查是否已有识别结果
|
|
// 检查是否已有识别结果
|
|
@@ -135,6 +118,8 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
try {
|
|
try {
|
|
res = ctrService.startRequest(uploadId, ug.getGoodsImg());
|
|
res = ctrService.startRequest(uploadId, ug.getGoodsImg());
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
|
+ goodsLog.setGDone(false);
|
|
|
|
+ goodsLog.setGError(true);
|
|
ErrGoods err = ErrGoods.builder()
|
|
ErrGoods err = ErrGoods.builder()
|
|
.uploadId(uploadId)
|
|
.uploadId(uploadId)
|
|
.goodsImg(ug.getGoodsImg())
|
|
.goodsImg(ug.getGoodsImg())
|
|
@@ -146,9 +131,26 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
}
|
|
}
|
|
if (res != null) {
|
|
if (res != null) {
|
|
if (StringUtils.isBlank(res.getErrorCode())) {
|
|
if (StringUtils.isBlank(res.getErrorCode())) {
|
|
- res.setGoodsId(ug.getId());
|
|
|
|
- saveOcrResult(ug, res);
|
|
|
|
|
|
+ IrRet result = res.getResult();
|
|
|
|
+ if (result.getSubnumber() > 0) {
|
|
|
|
+ goodsLog.setGError(false);
|
|
|
|
+ goodsLog.setGDone(true);
|
|
|
|
+ res.setGoodsId(ug.getId());
|
|
|
|
+ saveOcrResult(res);
|
|
|
|
+ } else {
|
|
|
|
+ goodsLog.setGError(true);
|
|
|
|
+ goodsLog.setGDone(true);
|
|
|
|
+ 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);
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
|
|
+ goodsLog.setGDone(false);
|
|
|
|
+ goodsLog.setGError(true);
|
|
ErrGoods err = ErrGoods.builder()
|
|
ErrGoods err = ErrGoods.builder()
|
|
.uploadId(uploadId)
|
|
.uploadId(uploadId)
|
|
.goodsImg(ug.getGoodsImg())
|
|
.goodsImg(ug.getGoodsImg())
|
|
@@ -158,6 +160,8 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
errGoodsMapper.insert(err);
|
|
errGoodsMapper.insert(err);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
|
|
+ goodsLog.setGDone(false);
|
|
|
|
+ goodsLog.setGError(true);
|
|
ErrGoods err = ErrGoods.builder()
|
|
ErrGoods err = ErrGoods.builder()
|
|
.uploadId(uploadId)
|
|
.uploadId(uploadId)
|
|
.goodsImg(ug.getGoodsImg())
|
|
.goodsImg(ug.getGoodsImg())
|
|
@@ -169,7 +173,7 @@ public class OcrGoodsServiceImpl implements OcrGoodsService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public void saveOcrResult(UpGoods ug, IrRes res) {
|
|
|
|
|
|
+ public void saveOcrResult(IrRes res) {
|
|
IrRet result = res.getResult();
|
|
IrRet result = res.getResult();
|
|
if (result.getSubnumber() > 0) {
|
|
if (result.getSubnumber() > 0) {
|
|
Map<String, SubGoods> subGoodsList = result.getSubGoodsList();
|
|
Map<String, SubGoods> subGoodsList = result.getSubGoodsList();
|
|
@@ -190,14 +194,6 @@ 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);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|