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

pull/157/head
Vincent 1 year ago
parent 49c3bcfc43
commit ee088456e8

@ -36,6 +36,8 @@ public interface PrevailCloudApi {
*/
boolean startImageDownloadMonitoring(String localImagePath) throws Exception;
List<PictureSourceResult> getAllPictureSourceResultApiPage(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 com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import lombok.SneakyThrows;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -220,6 +221,33 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
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
public List<PictureSourceResult> getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter) {
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.PictureSourceResult;
import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig;
import cn.jyjz.xiaoyao.ocr.api.utils.ApiPage;
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
@ -277,7 +278,7 @@ public class ApiTestController {
pictureSourceParameter.setTenantNo(tenantNo);
pictureSourceParameter.setAccountNo(accountNo);
List<PictureSourceResult> resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter);
List<PictureSourceResult> resultList = prevailCloudApi.getAllPictureSourceResultApiPage(pictureSourceParameter);
if (CollectionUtils.isEmpty(resultList)) {
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.thread.TaskQueue;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -87,6 +87,23 @@ public class PictureSourceTimerJob {
}
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) {
if (!departmentMap.containsKey(department.getParentid())) {
continue;
@ -105,16 +122,6 @@ public class PictureSourceTimerJob {
totalList.addAll(resultList);
}
int count = totalList.size();
int size = 0;
for (PictureSourceResult pictureSourceResult : totalList) {
if (pictureSourceResult.getLivePhoto() != null) {
size++;
// 将可以处理数据放入处理队列中
TaskQueue.pictureDisposePushData(pictureSourceResult);
}
}
System.out.println("当前区间内图片总数:" + count + "条,可处理数据:" + size + "条");
return totalList;
}
}

Loading…
Cancel
Save