Compare commits

...

3 Commits

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数据拉取日志</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="${ctx}/static/js/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
<#include "/head/headlist.html" />
</head>
@ -141,6 +141,7 @@
},
{width: 80, valign: "middle", field: 'responseParam', title: '响应参数', sortable: true},
{width: 80, valign: "middle", field: 'requestParam', title: '请求参数', sortable: true},
{width: 80, valign: "middle", field: 'time', title: '重试次数', sortable: true},
{
width:200,
field: 'id',
@ -148,9 +149,8 @@
formatter:function(value,oData,index) {
var listOperation = "";
$(jspOperation).each(function (i, toolbar) {
console.log(toolbar);
if (toolbar.text === '修改' && oData.status !== 100) {
listOperation = listOperation + "<a href=\"javascript:" + toolbar.actionmethod + "('${resourceid}','" + encodeURIComponent(oData.requestParam) + "');\" class=\"btn " + toolbar.img + " btn-xs\")><i class=\"fa " + "fa-refresh" + "\"></i> " + "重试" + " </a>&nbsp;&nbsp;";
listOperation = listOperation + "<a href=\"javascript:" + toolbar.actionmethod + "('${resourceid}','" + encodeURIComponent(oData.requestParam) + "','" + encodeURIComponent(oData.id) + "');\" class=\"btn " + toolbar.img + " btn-xs\")><i class=\"fa " + "fa-refresh" + "\"></i> " + "重试" + " </a>&nbsp;&nbsp;";
}
});
return listOperation;
@ -167,7 +167,7 @@
_tableListPost.bootstrapTable('refreshOptions',{pageNumber:1});
}
function updateData(jframeid,str){
function updateData(jframeid,str,id){
$(document).ready(function() {
// Encode the parameter string to be URL-safe
// Make an AJAX GET request
@ -175,14 +175,17 @@
url: '${ctx}/test/api/pullPictureByParameter', // Replace with your server endpoint
type: 'GET',
headers: {"logintoken": parent.getLoginToken()},
data: { parameterString: str },
data: { parameterString: str, id },
success: function(response) {
console.log(response);
if (response || "success" === response) {
refreshTable();
toastr.success('Request was successful!');
} else {
toastr.error('Request was failed!');
}
},
error: function(xhr, status, error) {
console.log(error);
toastr.error('Request was failed!');
toastr.error('Request has exception!');
}
});
});

@ -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.utils.ApiConfig;
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.OcrPrevailCloudLogService;
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
import cn.jyjz.xiaoyao.ocr.util.RequestParameterFormat;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import lombok.extern.flogger.Flogger;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
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.RestController;
import sun.nio.ch.ThreadPool;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -38,7 +37,11 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
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
@ -87,32 +90,33 @@ public class PrevailCloudApiController {
/**
*
*
* @param request
* @return
*/
@GetMapping("pullPictureAllByAccountNo")
public String pullPictureAllByAccountNo(HttpServletRequest request){
public String pullPictureAllByAccountNo(HttpServletRequest request) {
//检查是否已有全量拉取在执行
if(pictureSourceAllPullMsg.isLock()){
if (pictureSourceAllPullMsg.isLock()) {
return pictureSourceAllPullMsg.getMsg();
}
//1.定义参数
String beginStr = request.getParameter("beginStr");
if(StringUtils.isBlank(beginStr)){
if (StringUtils.isBlank(beginStr)) {
return "开始时间不能为空";
}
String endStr = request.getParameter("endStr");
if(StringUtils.isBlank(endStr)){
if (StringUtils.isBlank(endStr)) {
return "结束时间不能为空";
}
String tenantNoStr = request.getParameter("tenantNo");
if(StringUtils.isBlank(tenantNoStr)){
if (StringUtils.isBlank(tenantNoStr)) {
return "租户不能为空";
}
String accountNoStr = request.getParameter("accountNo");
if(StringUtils.isBlank(accountNoStr)){
if (StringUtils.isBlank(accountNoStr)) {
return "业务主体不能为空";
}
Long tenantNo = Long.parseLong(tenantNoStr);
@ -125,8 +129,8 @@ public class PrevailCloudApiController {
//3.调用线程
pictureSourceAllPool.execute(
new PullAllPictureSourceThread(tenantNo,accountNo,startDate
,endDate,pictureSourceAllPullMsg,prevailCloudApi,apiConfig)
new PullAllPictureSourceThread(tenantNo, accountNo, startDate
, endDate, pictureSourceAllPullMsg, prevailCloudApi, apiConfig)
);
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("2024-03-31 07:00:000","yyyy-MM-dd HH:mm:ss");
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");
Instant einstant = dateTime1.toInstant();
pictureSourceParameter.setStartTime(Date.from(binstant));
@ -279,11 +283,23 @@ public class PrevailCloudApiController {
}
@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);
List<PictureSourceResult> resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter);
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) {
@ -299,7 +315,7 @@ public class PrevailCloudApiController {
//赋值默认参数
pictureSourceResult.setRequestParam(pictureSourceParameter);
//将可以处理数据放入处理队列中
TaskQueue.pictureDisposePushData(pictureSourceResult, ocrPictureService, ocrPrevailCloudLogService);
TaskQueue.pictureDisposePushDataUpdateLog(pictureSourceResult, id, ocrPictureService, ocrPrevailCloudLogService);
}
return true;

@ -113,4 +113,10 @@ public class OcrPrevailCloudLog {
*/
@TableField(value = "redundance")
private String redundance;
/**
*
*/
@TableField(value = "time")
private Integer time = 0;
}

@ -48,11 +48,11 @@ public class TaskQueue {
if (ocrPicture != null) {
OcrTaskchildPicture taskchildPicture = ocrPictureService.getOcrTaskChildPictureByPictureId(ocrPicture.getId().toString());
if (taskchildPicture != null && pictureSourceResult.getTaskStatus() != null
&& (pictureSourceResult.getTaskStatus() == 6 || pictureSourceResult.getTaskStatus() == 7) && (taskchildPicture.getStates() == 5 || taskchildPicture.getStates()==3)) {
if(taskchildPicture.getStates() == 5){
&& (pictureSourceResult.getTaskStatus() == 6 || pictureSourceResult.getTaskStatus() == 7) && (taskchildPicture.getStates() == 5 || taskchildPicture.getStates() == 3)) {
if (taskchildPicture.getStates() == 5) {
String result = ocrPictureService.getPictureApproveResult(ocrPicture.getId());
pictureSourceResult.setComment(result);
}else{
} else {
pictureSourceResult.setComment("ocr审批全部通过由无量云发起了重置审批流程的操作。");
}
ocrPictureService.deletePictureInfo(ocrPicture.getId());
@ -68,6 +68,7 @@ public class TaskQueue {
.responseParam(pictureSourceResult.toString())
.type(PrevailCloudConstant.DISPOSE_PICTURE_SOURCE)
.status(100)
.time(0)
.build();
ocrPrevailCloudLogService.save(ocrPrevailCloudLog);
resultSet.add(String.valueOf(taskId));
@ -79,6 +80,7 @@ public class TaskQueue {
.responseParam(pictureSourceResult.toString())
.type(PrevailCloudConstant.DISPOSE_PICTURE_SOURCE)
.status(500)
.time(0)
.build();
ocrPrevailCloudLogService.save(ocrPrevailCloudLog);
return false;
@ -86,6 +88,67 @@ public class TaskQueue {
return true;
}
/**
* [] push bi
*
* @param pictureSourceResult //三方拉取 获取到的图片对象
* @return
*/
public static boolean pictureDisposePushDataUpdateLog(PictureSourceResult pictureSourceResult, Long id, OcrPictureService ocrPictureService, OcrPrevailCloudLogService ocrPrevailCloudLogService) {
OcrPrevailCloudLog byId = ocrPrevailCloudLogService.getById(id);
if (byId == null) {
return false;
}
try {
Long taskId = pictureSourceResult.getTaskId();
OcrPicture ocrPicture = ocrPictureService.selectByRemark(String.valueOf(taskId));
if (ocrPicture != null) {
OcrTaskchildPicture taskchildPicture = ocrPictureService.getOcrTaskChildPictureByPictureId(ocrPicture.getId().toString());
if (taskchildPicture != null && pictureSourceResult.getTaskStatus() != null
&& (pictureSourceResult.getTaskStatus() == 6 || pictureSourceResult.getTaskStatus() == 7) && (taskchildPicture.getStates() == 5 || taskchildPicture.getStates() == 3)) {
if (taskchildPicture.getStates() == 5) {
String result = ocrPictureService.getPictureApproveResult(ocrPicture.getId());
pictureSourceResult.setComment(result);
} else {
pictureSourceResult.setComment("ocr审批全部通过由无量云发起了重置审批流程的操作。");
}
ocrPictureService.deletePictureInfo(ocrPicture.getId());
pictureSourceResult.setId(ocrPicture.getId());
} else {
return true;
}
}
//更新日志
OcrPrevailCloudLog ocrPrevailCloudLog = OcrPrevailCloudLog.builder()
.formId(pictureSourceResult.getTaskId())
.requestParam(pictureSourceResult.getRequestParam().toString())
.responseParam(pictureSourceResult.toString())
.type(PrevailCloudConstant.DISPOSE_PICTURE_SOURCE)
.status(100)
.id(id)
.time(byId.getTime() + 1)
.build();
ocrPrevailCloudLogService.updateById(ocrPrevailCloudLog);
resultSet.add(String.valueOf(taskId));
pictureDisposeQueue.put(pictureSourceResult);
} catch (InterruptedException e) {
OcrPrevailCloudLog ocrPrevailCloudLog = OcrPrevailCloudLog.builder()
.formId(pictureSourceResult.getTaskId())
.requestParam(pictureSourceResult.getRequestParam().toString())
.responseParam(pictureSourceResult.toString())
.type(PrevailCloudConstant.DISPOSE_PICTURE_SOURCE)
.status(500)
.time(byId.getTime() + 1)
.id(id)
.build();
ocrPrevailCloudLogService.updateById(ocrPrevailCloudLog);
return false;
}
return true;
}
/**
*
*

Loading…
Cancel
Save