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} + + + + + +