|
@@ -1,20 +1,16 @@
|
|
|
package com.pavis.ai.kwp.ioc.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.pavis.ai.kwp.ioc.common.config.Constants;
|
|
|
import com.pavis.ai.kwp.ioc.common.event.OcrEvent;
|
|
|
import com.pavis.ai.kwp.ioc.common.utils.DateTimeUtils;
|
|
|
import com.pavis.ai.kwp.ioc.dto.meta.OcrRetDto;
|
|
|
import com.pavis.ai.kwp.ioc.dto.meta.OcrTripDto;
|
|
|
-import com.pavis.ai.kwp.ioc.mapper.OcrTripDetMapper;
|
|
|
-import com.pavis.ai.kwp.ioc.mapper.OcrTripMapper;
|
|
|
-import com.pavis.ai.kwp.ioc.mapper.OcrTripProbMapper;
|
|
|
-import com.pavis.ai.kwp.ioc.mapper.TripLogMapper;
|
|
|
-import com.pavis.ai.kwp.ioc.model.OcrTrip;
|
|
|
-import com.pavis.ai.kwp.ioc.model.OcrTripDet;
|
|
|
-import com.pavis.ai.kwp.ioc.model.OcrTripProb;
|
|
|
-import com.pavis.ai.kwp.ioc.model.TripLog;
|
|
|
+import com.pavis.ai.kwp.ioc.mapper.*;
|
|
|
+import com.pavis.ai.kwp.ioc.model.*;
|
|
|
import com.pavis.ai.kwp.ioc.service.OcrTripService;
|
|
|
+import com.pavis.ai.kwp.ioc.service.SendService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -25,6 +21,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -39,8 +36,12 @@ public class OcrTripServiceImpl extends ServiceImpl<OcrTripMapper, OcrTrip> impl
|
|
|
private OcrTripDetMapper ocrTripDetMapper;
|
|
|
@Autowired
|
|
|
private OcrTripProbMapper ocrTripProbMapper;
|
|
|
- // @Autowired
|
|
|
- // private UpMainMapper upMainMapper;
|
|
|
+ @Autowired
|
|
|
+ private UpTripMapper upTripMapper;
|
|
|
+ @Autowired
|
|
|
+ private UpMainMapper upMainMapper;
|
|
|
+ @Autowired
|
|
|
+ private SendService sendService;
|
|
|
|
|
|
@Async("ocrSave")
|
|
|
@Override
|
|
@@ -96,6 +97,47 @@ public class OcrTripServiceImpl extends ServiceImpl<OcrTripMapper, OcrTrip> impl
|
|
|
applicationEventPublisher.publishEvent(new OcrEvent(this, "T", ret.getUploadId()));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void reStartRec() {
|
|
|
+ QueryWrapper<TripLog> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.lambda().eq(TripLog::getTError, "1").eq(TripLog::getTDone, false).orderByAsc(TripLog::getCreateTime).last("limit 100");
|
|
|
+ List<TripLog> tripLogList = tripLogMapper.selectList(wrapper);
|
|
|
+ if (CollectionUtils.isNotEmpty(tripLogList)) {
|
|
|
+ log.info("restart ocr trip count:{}", tripLogList.size());
|
|
|
+ for (TripLog tripLog : tripLogList) {
|
|
|
+ log.info("starting ocr trip upload_id:{}", tripLog.getUploadId());
|
|
|
+ reOcr(tripLog);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void reOcr(TripLog tripLog) {
|
|
|
+ log.info("restart trip rec:{}", tripLog.getUploadId());
|
|
|
+ UpMain upMain = upMainMapper.selectById(tripLog.getUploadId());
|
|
|
+ if (upMain.getTripType().equals(Constants.TRIP_TYPE_NT)) {
|
|
|
+ tripLog.setTStartTime(DateTimeUtils.dateTimeNow());
|
|
|
+ tripLog.setTFinishTime(tripLog.getTStartTime());
|
|
|
+ tripLog.setTTimeConsume("0");
|
|
|
+ tripLog.setTDone(true);
|
|
|
+ } else {
|
|
|
+ List<UpTrip> upTrips = upTripMapper.selectByUploadId(tripLog.getUploadId());
|
|
|
+ if (CollectionUtils.isNotEmpty(upTrips)) {
|
|
|
+ // 发送到队列
|
|
|
+ sendService.sendTripToOcr(tripLog.getUploadId(), upMain.getTripType(), upTrips.stream().map(UpTrip::getTripImg).collect(Collectors.toList()));
|
|
|
+ } else {
|
|
|
+ tripLog.setTStartTime(DateTimeUtils.dateTimeNow());
|
|
|
+ tripLog.setTFinishTime(tripLog.getTStartTime());
|
|
|
+ tripLog.setTTimeConsume("0");
|
|
|
+ tripLog.setTDone(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tripLogMapper.updateById(tripLog);
|
|
|
+ if (tripLog.getTDone()) {
|
|
|
+ // 通知监听器
|
|
|
+ applicationEventPublisher.publishEvent(new OcrEvent(this, "T", tripLog.getUploadId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
|
|
|
this.applicationEventPublisher = applicationEventPublisher;
|