From 05725108f66518938aa1bc2908889b6250eccba3 Mon Sep 17 00:00:00 2001
From: Vincent <19330835921@163.com>
Date: Sat, 1 Jun 2024 23:00:07 +0800
Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E5=9B=BE?=
=?UTF-8?q?=E7=89=87=E6=8B=89=E5=8F=96=E9=87=8D=E8=AF=95=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../oa/ocr/prevailcloudlog/list.html | 21 +++---
.../controller/PrevailCloudApiController.java | 50 +++++++++-----
.../ocr/dataobject/OcrPrevailCloudLog.java | 6 ++
.../cn/jyjz/xiaoyao/ocr/thread/TaskQueue.java | 69 ++++++++++++++++++-
4 files changed, 117 insertions(+), 29 deletions(-)
diff --git a/htmlweb/web/backstage/oa/ocr/prevailcloudlog/list.html b/htmlweb/web/backstage/oa/ocr/prevailcloudlog/list.html
index e650d5c..038e6cc 100644
--- a/htmlweb/web/backstage/oa/ocr/prevailcloudlog/list.html
+++ b/htmlweb/web/backstage/oa/ocr/prevailcloudlog/list.html
@@ -5,7 +5,7 @@
数据拉取日志
-
+
<#include "/head/headlist.html" />
@@ -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 + " " + "重试" + " ";
+ listOperation = listOperation + " " + "重试" + " ";
}
});
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);
- toastr.success('Request was successful!');
+ 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!');
}
});
});
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/PrevailCloudApiController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/PrevailCloudApiController.java
index 8e9d85d..a30ba54 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/PrevailCloudApiController.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/PrevailCloudApiController.java
@@ -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控制器
@@ -70,7 +73,7 @@ public class PrevailCloudApiController {
/**
* 用于执行全量拉取的定长线程池
*/
- private ExecutorService pictureSourceAllPool = new ThreadPoolExecutor(
+ private ExecutorService pictureSourceAllPool = new ThreadPoolExecutor(
1,
1,
3,
@@ -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 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;
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrPrevailCloudLog.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrPrevailCloudLog.java
index 070821c..1d24d75 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrPrevailCloudLog.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrPrevailCloudLog.java
@@ -113,4 +113,10 @@ public class OcrPrevailCloudLog {
*/
@TableField(value = "redundance")
private String redundance;
+
+ /**
+ * 重试次数
+ */
+ @TableField(value = "time")
+ private Integer time = 0;
}
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/TaskQueue.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/TaskQueue.java
index 29a11c5..139c6d9 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/TaskQueue.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/TaskQueue.java
@@ -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;
+ }
+
/**
* 无量云接口数据处理 拉取队列值
*
From e081a21a6db844876ab99fbd6416b90ec411a94d Mon Sep 17 00:00:00 2001
From: Vincent <19330835921@163.com>
Date: Tue, 4 Jun 2024 23:38:57 +0800
Subject: [PATCH 2/7] =?UTF-8?q?fix:=20=E9=87=8D=E8=AF=95=E4=B8=8D=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E6=97=A5=E5=BF=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java | 7 +++++--
.../xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java | 14 +++++++++-----
.../ocr/controller/PrevailCloudApiController.java | 6 +++---
.../ocr/timerJob/PictureSourceTimerJob.java | 2 +-
.../xiaoyao/ocr/timerJob/PullPictureDataJob.java | 2 +-
5 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java
index 5281658..b018fe5 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java
@@ -17,13 +17,15 @@ public interface PrevailCloudApi {
/**
* 根据参数拉取,某个业务主体的任务数据
+ *
* @param pictureSourceParameter
* @return
*/
- ApiPage pullPictureSource(PictureSourceParameter pictureSourceParameter) throws Exception;
+ ApiPage pullPictureSource(PictureSourceParameter pictureSourceParameter, boolean isRetry) throws Exception;
/**
* 根据参数,拉取某个业务主体,全量业务数据
+ *
* @param pictureSourceParameter
* @return
*/
@@ -33,6 +35,7 @@ public interface PrevailCloudApi {
/**
* 根据租户id 拉取对应业务主体信息
+ *
* @param tenantNo
*/
void pullAccountInfo(long tenantNo) throws Exception;
@@ -44,7 +47,7 @@ public interface PrevailCloudApi {
List getAllPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter);
- List getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter);
+ List getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter, boolean isRetry);
}
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java
index 0034a3e..fbe848b 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java
@@ -56,7 +56,7 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
private OcrPrevailCloudLogService prevailCloudLogService;
@Override
- public ApiPage pullPictureSource(PictureSourceParameter pictureSourceParameter) throws Exception {
+ public ApiPage pullPictureSource(PictureSourceParameter pictureSourceParameter, boolean isRetry) throws Exception {
//1.检查api配置是否正常
if (!apiConfig.checkConfig()) {
return null;
@@ -105,7 +105,7 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
ApiPage apiPage = JSONUtil.toBean(data, ApiPage.class);
//日志增加拉取数量
prevailCloudLog.setResponseParam(prevailCloudLog.getResponseParam()+",拉取数量:"+apiPage.getTotal());
- if(apiPage.getTotal()==0){
+ if(!isRetry && apiPage.getTotal()==0){
prevailCloudLogService.save(prevailCloudLog);
return null;
}
@@ -116,7 +116,11 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
resultApiPage.setPageSize(apiPage.getPageSize());
resultApiPage.setTotal(apiPage.getTotal());
resultApiPage.setRecords(listResult);
- prevailCloudLogService.save(prevailCloudLog);
+
+ if (!isRetry) {
+ prevailCloudLogService.save(prevailCloudLog);
+ }
+
return resultApiPage;
} else {
logger.debug("请求图片接口数据失败,参数:{},返回值:{}", json, responseJsonStr);
@@ -330,10 +334,10 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
}
@Override
- public List getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter) {
+ public List getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter, boolean isRetry) {
ApiPage apiPage = null;
try {
- apiPage = this.pullPictureSource(pictureSourceParameter);
+ apiPage = this.pullPictureSource(pictureSourceParameter, isRetry);
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/PrevailCloudApiController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/PrevailCloudApiController.java
index a30ba54..7aa54a8 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/PrevailCloudApiController.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/PrevailCloudApiController.java
@@ -173,7 +173,7 @@ public class PrevailCloudApiController {
pictureSourceParameter.setTenantNo(tenantNo);
pictureSourceParameter.setAccountNo(accountNo);
try {
- ApiPage apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter);
+ ApiPage apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter, false);
if (apiPage == null) {
return "获取数据为空!";
}
@@ -255,7 +255,7 @@ public class PrevailCloudApiController {
pictureSourceParameter.setTenantNo(tenantNo);
pictureSourceParameter.setAccountNo(accountNo);
- List resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter);
+ List resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter, false);
if (CollectionUtils.isEmpty(resultList)) {
continue;
}
@@ -290,7 +290,7 @@ public class PrevailCloudApiController {
}
PictureSourceParameter pictureSourceParameter = RequestParameterFormat.fromString(parameterString);
- List resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter);
+ List resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter, true);
if (CollectionUtils.isEmpty(resultList)) {
//更新日志
OcrPrevailCloudLog ocrPrevailCloudLog = OcrPrevailCloudLog.builder()
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java
index f99ea54..b1a94bc 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java
@@ -135,7 +135,7 @@ public class PictureSourceTimerJob {
pictureSourceParameter.setTenantNo(tenantNo);
pictureSourceParameter.setAccountNo(accountNo);
- List resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter);
+ List resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter, false);
if (CollectionUtils.isEmpty(resultList)) {
continue;
}
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PullPictureDataJob.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PullPictureDataJob.java
index 8e3648f..a23060f 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PullPictureDataJob.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PullPictureDataJob.java
@@ -97,7 +97,7 @@ public class PullPictureDataJob {
pictureSourceParameter.setTenantNo(tenantNo);
pictureSourceParameter.setAccountNo(accountNo);
- List resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter);
+ List resultList = prevailCloudApi.getPictureSourceResultApiPage(pictureSourceParameter, false);
if (CollectionUtils.isEmpty(resultList)) {
continue;
}
From 998206e8f17ef1f9fc523d02cab81ef939767cad Mon Sep 17 00:00:00 2001
From: Vincent <19330835921@163.com>
Date: Tue, 4 Jun 2024 23:53:36 +0800
Subject: [PATCH 3/7] fix
---
.../java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java
index fbe848b..d9cf963 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java
@@ -311,7 +311,7 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
ApiPage apiPage = null;
List result = Lists.newArrayListWithCapacity(pictureSourceParameter.getPageSize());
try {
- apiPage = this.pullPictureSource(pictureSourceParameter);
+ apiPage = this.pullPictureSource(pictureSourceParameter, false);
} catch (Exception e) {
e.printStackTrace();
}
From 87738f71aa991948defd8da55cb95f34feb3823e Mon Sep 17 00:00:00 2001
From: sunchenliang <2532527871@qq.com>
Date: Wed, 8 May 2024 20:09:25 +0800
Subject: [PATCH 4/7] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=B0=8F?=
=?UTF-8?q?=E7=BB=93=E6=9F=A5=E9=87=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/FlowTaskController.java | 127 +++++++++-
.../flowable/service/IFlowTaskService.java | 2 +-
.../service/impl/FlowTaskServiceImpl.java | 23 +-
.../oa/from/dataDao/FlowableccMybatisDao.java | 2 +-
.../resources/mapper/oa/FlowableccMapper.xml | 230 ++++++++++++++++++
5 files changed, 363 insertions(+), 21 deletions(-)
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java
index d96a82e..8921735 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java
@@ -501,7 +501,7 @@ public class FlowTaskController extends BaseController {
Map query = searchQuery.getQuery();
- flowTaskService.getFinalProcessInstances(query, pageUtils,user);
+ flowTaskService.getFinalProcessInstances(query, pageUtils, user);
return ResultVoUtil.success(pageUtils);
}
@@ -682,9 +682,120 @@ public class FlowTaskController extends BaseController {
@GetMapping("/repetitionTask")
@ResponseBody
public ResultVo repetitionTask(HttpServletRequest request,
- @RequestParam(value = "type",required = false,defaultValue = "1") Integer type) {
+ @RequestParam(value = "type", required = false, defaultValue = "0") Integer type,
+ @RequestParam(name = "izupuser", defaultValue = "", required = false) String izupuser,
+ @RequestParam(name = "taskName", defaultValue = "", required = false) String taskName,
+ @RequestParam(name = "izproject", defaultValue = "", required = false) String izproject,
+ @RequestParam(name = "izplan", defaultValue = "", required = false) String izplan,
+ @RequestParam(name = "izstatus", defaultValue = "", required = false) String izstatus,
+ @RequestParam(name = "iztaskrrom", defaultValue = "", required = false) String iztaskrrom,
+ @RequestParam(name = "izuptime", defaultValue = "", required = false) String izuptime,
+ @RequestParam(name = "isFail", defaultValue = "false", required = false) String isFail) {
+ SearchQuery searchQuery = new SearchQuery();
+ if (org.springframework.util.StringUtils.hasText(izupuser)) {
+ if (izupuser.contains(",")) {
+ String[] userIds = izupuser.split(",");
+ List arrayData = Arrays.asList(userIds);
+ searchQuery.addIn("fromuserid", arrayData);
+ } else {
+ searchQuery.addEqual("fromuserid", izupuser);
+ }
+ }
+ if (StringUtils.isNotBlank(taskName)) {
+ searchQuery.addLike("fromtaskname", taskName);
+ }
+ if (org.springframework.util.StringUtils.hasText(izproject)) {
+ if (izproject.contains(",")) {
+ String[] projectIds = izproject.split(","); // 以逗号拆分字符串
+ List arrayData = Arrays.asList(projectIds);
+ SearchQueryForm searchQueryForm = new SearchQueryForm();
+ searchQuery.addIn("fromprojectname", arrayData);
+ } else {
+ searchQuery.addEqual("fromprojectname", izproject);
+ }
+ }
+ if (org.springframework.util.StringUtils.hasText(izplan)) {
+ if (izplan.contains(",")) {
+ String[] planIds = izplan.split(","); // 以逗号拆分字符串
+ List arrayData = Arrays.asList(planIds);
+ SearchQueryForm searchQueryForm = new SearchQueryForm();
+ searchQuery.addIn("fromplanid", arrayData);
+ } else {
+ searchQuery.addEqual("fromplanid", izplan);
+ }
+ }
+ if (org.springframework.util.StringUtils.hasText(izstatus)) {
+ if (izstatus.contains(",")) {
+ String[] statusIds = izstatus.split(","); // 以逗号拆分字符串
+ List arrayData = Arrays.asList(statusIds);
+ searchQuery.addIn("states", arrayData);
+ } else {
+ searchQuery.addEqual("states", izstatus);
+ }
+ }
+ if (Boolean.parseBoolean(isFail)) {
+ searchQuery.addEqual("isFail", "1");
+ }
+ if (org.springframework.util.StringUtils.hasText(iztaskrrom)) {
+ if (iztaskrrom.contains(",")) {
+ String[] taskrromIds = iztaskrrom.split(","); // 以逗号拆分字符串
+ List arrayData = Arrays.asList(taskrromIds);
+ searchQuery.addIn("fromsourceid", arrayData);
+ } else {
+ searchQuery.addEqual("fromsourceid", iztaskrrom);
+ }
+ }
+
+ if (org.springframework.util.StringUtils.hasText(izuptime)) {
+ String[] dateRange = izuptime.split("-");
+ if (dateRange.length == 2) {
+ try {
+ SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+
+ // 解析开始时间
+ Long startTimeStamp = sdfInput.parse(dateRange[0].trim() + " 00:00:00").getTime();
+
+ // 解析结束时间
+ Long endTimeStamp = sdfInput.parse(dateRange[1].trim() + " 23:59:59").getTime();
+
+ // 如果开始时间不为空,则将其放入查询条件中
+ if (startTimeStamp != null) {
+ searchQuery.addGreater("fromuptimeStart", startTimeStamp);
+ }
+ // 如果结束时间不为空,则将其放入查询条件中
+ if (endTimeStamp != null) {
+ searchQuery.addLess("fromuptimeEnd", endTimeStamp);
+ }
+ } catch (ParseException e) {
+ // 处理日期解析异常
+ e.printStackTrace();
+ }
+ }
+ }
+ //租户主键,由前端页面传送
String tenantId = request.getHeader("X-Tenant-Id");
- return flowTaskService.repetitionTask(type,tenantId);
+
+ if (org.apache.commons.lang3.StringUtils.isBlank(tenantId)) {
+ return ResultVoUtil.error("租户主键不能为空");
+ }
+ User user = this.userService.getSessionUser(request);
+ if (user.isUserIsSys(xiaoyaoConfig.getWebconfig().getSysLoginUser().split(","))) {
+ } else {
+ searchQuery.addEqual("thisLoginUserid", user.getLoginname());
+ }
+ searchQuery.addEqual("tenantid", tenantId);
+ String searchId = request.getParameter("searchId");
+
+ if (StringUtils.isNotBlank(searchId)) {
+ List list = usersearchchildService.list(new LambdaQueryWrapper().eq(OcrUsersearchchild::getUsersearchid, searchId).orderByAsc(OcrUsersearchchild::getOrderNum));
+ for (OcrUsersearchchild userSearch : list) {
+ disSearchQuery(searchQuery, userSearch);
+ }
+ }
+
+ Map query = searchQuery.getQuery();
+
+ return flowTaskService.repetitionTask(type, tenantId,query);
}
/**
@@ -701,9 +812,9 @@ public class FlowTaskController extends BaseController {
public ResultVo repetitionTaskList(HttpServletRequest request,
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
- @RequestParam(value = "type",required = false,defaultValue = "1") Integer type) {
+ @RequestParam(value = "type", required = false, defaultValue = "1") Integer type) {
String tenantId = request.getHeader("X-Tenant-Id");
- Page result = flowTaskService.repetitionTaskList(pageNo, pageSize,type,tenantId);
+ Page result = flowTaskService.repetitionTaskList(pageNo, pageSize, type, tenantId);
return ResultVoUtil.success(result);
}
@@ -719,14 +830,14 @@ public class FlowTaskController extends BaseController {
@GetMapping("/retryPrevailCloud")
@ResponseBody
public ResultVo retryPrevailCloud(HttpServletRequest request,
- @RequestParam(name = "formId") String formId) {
+ @RequestParam(name = "formId") String formId) {
String tenantId = request.getHeader("X-Tenant-Id");
Boolean result = null;
try {
- result = flowTaskService.retryPrevailCloud(tenantId,formId);
+ result = flowTaskService.retryPrevailCloud(tenantId, formId);
} catch (Exception e) {
log.error(e.getMessage());
- result =false;
+ result = false;
}
return ResultVoUtil.success(result);
}
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/IFlowTaskService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/IFlowTaskService.java
index 49d61f2..ce565ab 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/IFlowTaskService.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/IFlowTaskService.java
@@ -193,7 +193,7 @@ public interface IFlowTaskService {
*
* @return
*/
- ResultVo repetitionTask(Integer type, String tenantId);
+ ResultVo repetitionTask(Integer type, String tenantId, Map query);
Page repetitionTaskList(Integer pageNo, Integer pageSize, Integer type, String tenantId);
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java
index 422cb95..30ae4e8 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java
@@ -40,7 +40,6 @@ import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.service.*;
import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskchildPictureApproVo;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -1963,8 +1962,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
@Override
- public ResultVo repetitionTask(Integer type, String tenantId) {
- List repeatedContentVoList = flowableccMybatisDao.repetitionTask(type, tenantId);
+ public ResultVo repetitionTask(Integer type, String tenantId, Map query) {
+ query.put("type",type);
+ List repeatedContentVoList = flowableccMybatisDao.repetitionTaskNew(query);
List formIdsToUpdate = new ArrayList<>();
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(repeatedContentVoList)) {
List checkDescribeHis = new ArrayList<>();
@@ -1998,15 +1998,16 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
}
- ocrCheckDescribeHisService.saveOrUpdateBatch(checkDescribeHis);
- UpdateWrapper updateWrapper = new UpdateWrapper<>();
- updateWrapper.in("PICTUREID", formIdsToUpdate)
- .eq("is_repeated_nodules", 0);
- OcrTaskchildPicture updateEntity = new OcrTaskchildPicture();
- updateEntity.setIsRepeatedNodules(1);
- ocrTaskchildPictureService.update(updateEntity, updateWrapper);
-
+ if(!CollectionUtils.isEmpty(checkDescribeHis)){
+ ocrCheckDescribeHisService.saveOrUpdateBatch(checkDescribeHis);
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.in("PICTUREID", formIdsToUpdate)
+ .eq("is_repeated_nodules", 0);
+ OcrTaskchildPicture updateEntity = new OcrTaskchildPicture();
+ updateEntity.setIsRepeatedNodules(1);
+ ocrTaskchildPictureService.update(updateEntity, updateWrapper);
+ }
}
return ResultVoUtil.success(repeatedContentVoList);
}
diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataDao/FlowableccMybatisDao.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataDao/FlowableccMybatisDao.java
index 7b2ef3c..7bf22f2 100644
--- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataDao/FlowableccMybatisDao.java
+++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/oa/from/dataDao/FlowableccMybatisDao.java
@@ -40,7 +40,7 @@ public interface FlowableccMybatisDao extends BaseMapper {
*/
List selectUserByFromid(String fromid);
- List repetitionTask(@Param("type") Integer type, @Param("tenantId") String tenantId);
+ List repetitionTaskNew(Map query);
Page repetitionTaskList(Page page, @Param("type") Integer type, @Param("tenantId") String tenantId);
}
diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/FlowableccMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/FlowableccMapper.xml
index 8811ff5..8c49724 100644
--- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/FlowableccMapper.xml
+++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/FlowableccMapper.xml
@@ -158,6 +158,187 @@
+
+
+
+
+ and tcp.ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend}
+
+
+
+ and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}
+
+
+ and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend}
+
+
+ and tcp.PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend}
+
+
+ and tcp.DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend}
+
+
+ and tcp.TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend}
+
+
+ and tcp.PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend}
+
+
+ and tcp.PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend}
+
+
+ and tcp.CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend}
+
+
+ and tcp.CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend}
+
+
+ and tcp.SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend}
+
+
+ and tcp.BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend}
+
+
+
+ and tcp.PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend}
+
+
+ and tcp.PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend}
+
+
+ and tcp.DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend}
+
+
+ and tcp.ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend}
+
+
+ and tcp.ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend}
+
+
+ and tcp.UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend}
+
+
+ and tcp.UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend}
+
+
+ and tcp.FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend}
+
+
+ and tcp.GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend}
+
+
+ and tcp.CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend}
+
+
+ and tcp.CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend}
+
+
+ and tcp.CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend}
+
+
+ and tcp.CREATEDATE ${createdateStart.dataOp} ${createdateStart.likestar}#{createdateStart.value}${createdateStart.likeend}
+
+
+ and tcp.CREATEDATE ${createdateEnd.dataOp} ${createdateEnd.likestar}#{createdateEnd.value}${createdateEnd.likeend}
+
+
+ and tcp.USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend}
+
+
+ and tcp.FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend}
+
+
+ and tcp.FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend}
+
+
+
+
+
+ and tcp.FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend}
+
+
+ and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}
+
+
+
+ #{item}
+
+
+
+ #{fromuserid.value}
+
+ ${fromuserid.likeend}
+
+
+ and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}
+
+
+
+ #{item}
+
+
+
+ #{fromprojectid.value}
+
+ ${fromprojectid.likeend}
+
+
+ and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}
+
+
+
+ #{item}
+
+
+
+ #{fromplanid.value}
+
+ ${fromplanid.likeend}
+
+
+ and tcp.STATES ${states.dataOp} ${states.likestar}
+
+
+
+ #{item}
+
+
+
+ #{states.value}
+
+ ${states.likeend}
+
+
+ and tcp.FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}
+
+
+
+ #{item}
+
+
+
+ #{fromsourceid.value}
+
+ ${fromsourceid.likeend}
+
+
+
+
+
+
+
+
+ and tcp.HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend}
+
+
+ and tcp.TASKNAME ${taskname.dataOp} ${taskname.likestar}#{taskname.value}${taskname.likeend}
+
+
+ and tcp.USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend}
+
+
+
+
+
+