|
|
@ -13,22 +13,21 @@ import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.api.thread.PullAllPictureSourceThread;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.api.thread.PullAllPictureSourceThread;
|
|
|
|
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.api.utils.ApiPage;
|
|
|
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.common.PrevailCloudConstant;
|
|
|
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPrevailCloudLog;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.OcrPrevailCloudLogService;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.OcrPrevailCloudLogService;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.RequestParameterFormat;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.RequestParameterFormat;
|
|
|
|
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;
|
|
|
|
import lombok.extern.flogger.Flogger;
|
|
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
import org.apache.commons.compress.utils.Lists;
|
|
|
|
import org.apache.commons.compress.utils.Lists;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import sun.nio.ch.ThreadPool;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
@ -38,7 +37,11 @@ import java.util.Date;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.concurrent.*;
|
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
|
|
|
|
|
import java.util.concurrent.Executors;
|
|
|
|
|
|
|
|
import java.util.concurrent.LinkedBlockingDeque;
|
|
|
|
|
|
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 无量云api控制器
|
|
|
|
* 无量云api控制器
|
|
|
@ -70,7 +73,7 @@ public class PrevailCloudApiController {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 用于执行全量拉取的定长线程池
|
|
|
|
* 用于执行全量拉取的定长线程池
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private ExecutorService pictureSourceAllPool = new ThreadPoolExecutor(
|
|
|
|
private ExecutorService pictureSourceAllPool = new ThreadPoolExecutor(
|
|
|
|
1,
|
|
|
|
1,
|
|
|
|
1,
|
|
|
|
1,
|
|
|
|
3,
|
|
|
|
3,
|
|
|
@ -87,32 +90,33 @@ public class PrevailCloudApiController {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 拉取无量云全量任务数据,根据业务主体
|
|
|
|
* 拉取无量云全量任务数据,根据业务主体
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param request
|
|
|
|
* @param request
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@GetMapping("pullPictureAllByAccountNo")
|
|
|
|
@GetMapping("pullPictureAllByAccountNo")
|
|
|
|
public String pullPictureAllByAccountNo(HttpServletRequest request){
|
|
|
|
public String pullPictureAllByAccountNo(HttpServletRequest request) {
|
|
|
|
|
|
|
|
|
|
|
|
//检查是否已有全量拉取在执行
|
|
|
|
//检查是否已有全量拉取在执行
|
|
|
|
if(pictureSourceAllPullMsg.isLock()){
|
|
|
|
if (pictureSourceAllPullMsg.isLock()) {
|
|
|
|
return pictureSourceAllPullMsg.getMsg();
|
|
|
|
return pictureSourceAllPullMsg.getMsg();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//1.定义参数
|
|
|
|
//1.定义参数
|
|
|
|
String beginStr = request.getParameter("beginStr");
|
|
|
|
String beginStr = request.getParameter("beginStr");
|
|
|
|
if(StringUtils.isBlank(beginStr)){
|
|
|
|
if (StringUtils.isBlank(beginStr)) {
|
|
|
|
return "开始时间不能为空";
|
|
|
|
return "开始时间不能为空";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String endStr = request.getParameter("endStr");
|
|
|
|
String endStr = request.getParameter("endStr");
|
|
|
|
if(StringUtils.isBlank(endStr)){
|
|
|
|
if (StringUtils.isBlank(endStr)) {
|
|
|
|
return "结束时间不能为空";
|
|
|
|
return "结束时间不能为空";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String tenantNoStr = request.getParameter("tenantNo");
|
|
|
|
String tenantNoStr = request.getParameter("tenantNo");
|
|
|
|
if(StringUtils.isBlank(tenantNoStr)){
|
|
|
|
if (StringUtils.isBlank(tenantNoStr)) {
|
|
|
|
return "租户不能为空";
|
|
|
|
return "租户不能为空";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String accountNoStr = request.getParameter("accountNo");
|
|
|
|
String accountNoStr = request.getParameter("accountNo");
|
|
|
|
if(StringUtils.isBlank(accountNoStr)){
|
|
|
|
if (StringUtils.isBlank(accountNoStr)) {
|
|
|
|
return "业务主体不能为空";
|
|
|
|
return "业务主体不能为空";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Long tenantNo = Long.parseLong(tenantNoStr);
|
|
|
|
Long tenantNo = Long.parseLong(tenantNoStr);
|
|
|
@ -125,8 +129,8 @@ public class PrevailCloudApiController {
|
|
|
|
|
|
|
|
|
|
|
|
//3.调用线程
|
|
|
|
//3.调用线程
|
|
|
|
pictureSourceAllPool.execute(
|
|
|
|
pictureSourceAllPool.execute(
|
|
|
|
new PullAllPictureSourceThread(tenantNo,accountNo,startDate
|
|
|
|
new PullAllPictureSourceThread(tenantNo, accountNo, startDate
|
|
|
|
,endDate,pictureSourceAllPullMsg,prevailCloudApi,apiConfig)
|
|
|
|
, endDate, pictureSourceAllPullMsg, prevailCloudApi, apiConfig)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
return "执行开始";
|
|
|
|
return "执行开始";
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -159,7 +163,7 @@ public class PrevailCloudApiController {
|
|
|
|
DateTime dateTime = DateUtil.parse(beginStr + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
|
|
|
|
DateTime dateTime = DateUtil.parse(beginStr + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
|
|
|
|
// DateTime dateTime = DateUtil.parse("2024-03-31 07:00:000","yyyy-MM-dd HH:mm:ss");
|
|
|
|
// DateTime dateTime = DateUtil.parse("2024-03-31 07:00:000","yyyy-MM-dd HH:mm:ss");
|
|
|
|
Instant binstant = dateTime.toInstant();
|
|
|
|
Instant binstant = dateTime.toInstant();
|
|
|
|
DateTime dateTime1 = DateUtil.parse(endStr+" 23:59:59","yyyy-MM-dd HH:mm:ss");
|
|
|
|
DateTime dateTime1 = DateUtil.parse(endStr + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
|
|
|
|
// DateTime dateTime1 = DateUtil.parse("2024-03-31 09:00:00","yyyy-MM-dd HH:mm:ss");
|
|
|
|
// DateTime dateTime1 = DateUtil.parse("2024-03-31 09:00:00","yyyy-MM-dd HH:mm:ss");
|
|
|
|
Instant einstant = dateTime1.toInstant();
|
|
|
|
Instant einstant = dateTime1.toInstant();
|
|
|
|
pictureSourceParameter.setStartTime(Date.from(binstant));
|
|
|
|
pictureSourceParameter.setStartTime(Date.from(binstant));
|
|
|
@ -279,11 +283,23 @@ public class PrevailCloudApiController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@GetMapping("/pullPictureByParameter")
|
|
|
|
@GetMapping("/pullPictureByParameter")
|
|
|
|
public Boolean pullPictureByParameter(String parameterString) {
|
|
|
|
public Boolean pullPictureByParameter(String parameterString, Long id) {
|
|
|
|
|
|
|
|
OcrPrevailCloudLog byId = ocrPrevailCloudLogService.getById(id);
|
|
|
|
|
|
|
|
if (byId == null) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PictureSourceParameter pictureSourceParameter = RequestParameterFormat.fromString(parameterString);
|
|
|
|
PictureSourceParameter pictureSourceParameter = RequestParameterFormat.fromString(parameterString);
|
|
|
|
List<PictureSourceResult> resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter);
|
|
|
|
List<PictureSourceResult> resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter);
|
|
|
|
if (CollectionUtils.isEmpty(resultList)) {
|
|
|
|
if (CollectionUtils.isEmpty(resultList)) {
|
|
|
|
return false;
|
|
|
|
//更新日志
|
|
|
|
|
|
|
|
OcrPrevailCloudLog ocrPrevailCloudLog = OcrPrevailCloudLog.builder()
|
|
|
|
|
|
|
|
.status(100)
|
|
|
|
|
|
|
|
.id(id)
|
|
|
|
|
|
|
|
.time(byId.getTime() + 1)
|
|
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
ocrPrevailCloudLogService.updateById(ocrPrevailCloudLog);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (PictureSourceResult pictureSourceResult : resultList) {
|
|
|
|
for (PictureSourceResult pictureSourceResult : resultList) {
|
|
|
@ -299,7 +315,7 @@ public class PrevailCloudApiController {
|
|
|
|
//赋值默认参数
|
|
|
|
//赋值默认参数
|
|
|
|
pictureSourceResult.setRequestParam(pictureSourceParameter);
|
|
|
|
pictureSourceResult.setRequestParam(pictureSourceParameter);
|
|
|
|
//将可以处理数据放入处理队列中
|
|
|
|
//将可以处理数据放入处理队列中
|
|
|
|
TaskQueue.pictureDisposePushData(pictureSourceResult, ocrPictureService, ocrPrevailCloudLogService);
|
|
|
|
TaskQueue.pictureDisposePushDataUpdateLog(pictureSourceResult, id, ocrPictureService, ocrPrevailCloudLogService);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|