fix: 补全时间区间数据处理逻辑

pull/140/head
Vincent 1 year ago
parent 49c3bcfc43
commit 13bf3e48cc

@ -36,6 +36,8 @@ public interface PrevailCloudApi {
*/ */
boolean startImageDownloadMonitoring(String localImagePath) throws Exception; boolean startImageDownloadMonitoring(String localImagePath) throws Exception;
List<PictureSourceResult> getAllPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter);
List<PictureSourceResult> getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter); List<PictureSourceResult> getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter);
} }

@ -20,8 +20,9 @@ import cn.jyjz.xiaoyao.ocr.util.httputil.HttpMethod;
import cn.jyjz.xiaoyao.ocr.util.httputil.HttpParamers; import cn.jyjz.xiaoyao.ocr.util.httputil.HttpParamers;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -220,6 +221,33 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
return true; return true;
} }
@Override
public List<PictureSourceResult> getAllPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter) {
ApiPage<PictureSourceResult> apiPage = null;
List<PictureSourceResult> result = Lists.newArrayListWithCapacity(pictureSourceParameter.getPageSize());
try {
apiPage = this.pullPictureSource(pictureSourceParameter);
} catch (Exception e) {
e.printStackTrace();
}
if (apiPage == null || CollectionUtils.isEmpty(apiPage.getRecords())) {
return result;
}
result.addAll(apiPage.getRecords());
// 如果pageSize超过实际的数据量说明数据已经查完了
if (apiPage.getRecords().size() < pictureSourceParameter.getPageSize()) {
return result;
}
// 数据没查完就翻页
pictureSourceParameter.setPageNo(pictureSourceParameter.getPageNo() + 1);
result.addAll(this.getAllPictureSourceResultApiPage(pictureSourceParameter));
return result;
}
@Override @Override
public List<PictureSourceResult> getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter) { public List<PictureSourceResult> getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter) {
ApiPage<PictureSourceResult> apiPage = null; ApiPage<PictureSourceResult> apiPage = null;

@ -10,6 +10,7 @@ import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi;
import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter;
import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult;
import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig; import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig;
import cn.jyjz.xiaoyao.ocr.api.utils.ApiPage;
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
@ -277,7 +278,7 @@ public class ApiTestController {
pictureSourceParameter.setTenantNo(tenantNo); pictureSourceParameter.setTenantNo(tenantNo);
pictureSourceParameter.setAccountNo(accountNo); pictureSourceParameter.setAccountNo(accountNo);
List<PictureSourceResult> resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter); List<PictureSourceResult> resultList = prevailCloudApi.getAllPictureSourceResultApiPage(pictureSourceParameter);
if (CollectionUtils.isEmpty(resultList)) { if (CollectionUtils.isEmpty(resultList)) {
continue; continue;
} }

@ -9,9 +9,9 @@ import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter;
import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult;
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -87,6 +87,23 @@ public class PictureSourceTimerJob {
} }
List<PictureSourceResult> totalList = Lists.newArrayList(); List<PictureSourceResult> totalList = Lists.newArrayList();
totalList.addAll(this.pullData(departments, departmentMap, pictureSourceParameter));
int count = totalList.size();
int size = 0;
for (PictureSourceResult pictureSourceResult : totalList) {
if (pictureSourceResult.getLivePhoto() != null) {
size++;
// 将可以处理数据放入处理队列中
TaskQueue.pictureDisposePushData(pictureSourceResult);
}
}
System.out.println("当前区间内图片总数:" + count + "条,可处理数据:" + size + "条");
}
private List<PictureSourceResult> pullData(List<Department> departments, Map<Long, Department> departmentMap, PictureSourceParameter pictureSourceParameter) {
List<PictureSourceResult> totalList = Lists.newArrayListWithCapacity(pictureSourceParameter.getPageSize());
for (Department department : departments) { for (Department department : departments) {
if (!departmentMap.containsKey(department.getParentid())) { if (!departmentMap.containsKey(department.getParentid())) {
continue; continue;
@ -105,16 +122,6 @@ public class PictureSourceTimerJob {
totalList.addAll(resultList); totalList.addAll(resultList);
} }
int count = totalList.size(); return totalList;
int size = 0;
for (PictureSourceResult pictureSourceResult : totalList) {
if (pictureSourceResult.getLivePhoto() != null) {
size++;
// 将可以处理数据放入处理队列中
TaskQueue.pictureDisposePushData(pictureSourceResult);
}
}
System.out.println("当前区间内图片总数:" + count + "条,可处理数据:" + size + "条");
} }
} }

Loading…
Cancel
Save