From 84f3ca28082a8dcc917c9046b42842777cc13b0a Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Thu, 3 Aug 2023 16:18:47 +0800 Subject: [PATCH] updates --- .../java/org/jeecg/common/util/RestUtil.java | 4 +- .../modules/api/controller/ApiController.java | 179 ++---------------- 2 files changed, 19 insertions(+), 164 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestUtil.java index 3f751a8..c59f93a 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestUtil.java @@ -67,8 +67,8 @@ public class RestUtil { static { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); - requestFactory.setConnectTimeout(300000); - requestFactory.setReadTimeout(300000); + requestFactory.setConnectTimeout(3000000); + requestFactory.setReadTimeout(3000000); RT = new RestTemplate(requestFactory); // 解决乱码问题 RT.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java index e561885..a30c22b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java @@ -2,6 +2,7 @@ package org.jeecg.modules.api.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.ApiOperation; @@ -14,8 +15,10 @@ import org.jeecg.common.util.AssertUtils; import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.RestUtil; import org.jeecg.modules.ocr.entity.OcrIdentify; +import org.jeecg.modules.ocr.entity.OcrIdentifyDetail; import org.jeecg.modules.ocr.entity.OcrRuleCheck; import org.jeecg.modules.ocr.model.TaskModel; +import org.jeecg.modules.ocr.service.IOcrIdentifyDetailService; import org.jeecg.modules.ocr.service.IOcrIdentifyService; import org.jeecg.modules.ocr.service.IOcrRuleCheckService; import org.jeecg.modules.ocr.utils.FileOUtils; @@ -48,6 +51,8 @@ public class ApiController { @Resource private IOcrIdentifyService ocrIdentifyService; @Resource + private IOcrIdentifyDetailService ocrIdentifyDetailService; + @Resource private ISysDictService sysDictService; @Resource private RedisUtil redisUtil; @@ -196,169 +201,19 @@ public class ApiController { } //========================================================================================== - /*@ApiOperation(value = "模拟创建任务", notes = "模拟创建任务") - @PostMapping(value = "/pushTask") - @Transactional(rollbackFor = Exception.class) - public Result pushTask(@RequestBody JSONObject jsonObject) { - //获取优先级1的任务 - String taskId = jsonObject.getString("taskId"); - String taskType = jsonObject.getString("taskType"); - int taskLevel= jsonObject.getInteger("taskLevel"); - String task_1 = (String) redisUtil.get("task_"+taskLevel); - if (task_1 == null || task_1.equals("[]")) { - //无历史任务 - TaskModel task = new TaskModel(); - task.setTaskId(taskId); - task.setTaskType(taskType); - task.setTaskStatus("0");//任务 待运行 - task.setTaskLevel(taskLevel); - List jsonObjects = Arrays.asList(task); - task_1 = JSONObject.toJSONString(jsonObjects); - } else { - //有历史任务 - JSONArray jsonArray = JSONObject.parseArray(task_1); - if (jsonArray != null) { - List taskList = jsonArray.toJavaList(TaskModel.class); - List staskList = taskList.stream().filter(t -> t.getTaskId().equals(taskId)).collect(Collectors.toList()); - TaskModel task = null; - if (staskList==null || staskList.size()==0) { - //该任务不存在, 看看 库表里 该任务是否已执行成功了 - String overTask = (String) redisUtil.get("over_task"); - if (StringUtils.isNotBlank(overTask)&&Arrays.asList(overTask.split(",")).contains(taskId)) { - //库表里已执行过 - return Result.OK("该任务已执行结束"); - } else { - //库表中未执行过,追加任务 - taskList.add(new TaskModel(taskId, taskLevel, taskType, "0", "")); - task_1 = JSONObject.toJSONString(taskList); - } - } else if ("0".equals(staskList.get(0).getTaskStatus())) { - //该任务 待运行 - return Result.OK("该任务还处于排队中"); - } else if ("1".equals(staskList.get(0).getTaskStatus())) { - //该任务 运行中 - return Result.OK("该任务还处于运行中"); - } - } - } - //存入redis - redisUtil.set("task_"+taskLevel, task_1); - //执行任务 - executeTask(); - return Result.OK("已追加到任务"); - }*/ - - /*@Transactional(rollbackFor = Exception.class) - @Async - public void executeTask() { - //获取任务 - List taskList=getTaskList(); - //查看是否有执行中的任务 - long executingCount = taskList.stream().filter(t -> t.getTaskStatus().equals("1")).count(); - if (executingCount>0) { - //该方法正在执行中 - log.error("该方法正在执行中"); - } - List waitingTaskList = taskList.stream().filter(t -> t.getTaskStatus().equals("0")).collect(Collectors.toList()); - if (waitingTaskList!=null) { - while (waitingTaskList.size()>0){ - //取第一个任务 - TaskModel taskModel = waitingTaskList.get(0); - waitingTaskList.get(0).setTaskStatus("1"); - //刷新redis,执行中 - flushTask(taskModel.getTaskId(),1); - //执行 - executeTaskp(taskModel); - //刷新已知任务 - taskList=getTaskList(); - //刷新待运行任务 - waitingTaskList = taskList.stream().filter(t -> t.getTaskStatus().equals("0")).collect(Collectors.toList()); + @ApiOperation(value = "刷新为完成的任务", notes = "任务完结通知") + @GetMapping("/restartTask") + public Result restartTask(){ + //获取未执行完的任务 + List list = ocrIdentifyService.list(new LambdaQueryWrapper().eq(OcrIdentify::getStatus, "0")); + List identifyIdList = list.stream().map(l -> l.getId()).collect(Collectors.toList()); + if (identifyIdList.size()>0) { + ocrIdentifyDetailService.remove(new LambdaQueryWrapper().in(OcrIdentifyDetail::getIdentifyId,identifyIdList)); + for (OcrIdentify ocrIdentify : list) { + List identifyUrlList = FileOUtils.fileLists(null, ocrIdentify.getIdentifyUrl()); + ocrIdentifyService.postSemantic(ocrIdentify,identifyUrlList); } } - log.error("任务已全部执行"); + return Result.OK(list.size()+"个任务."); } - - *//** - * 刷新任务状态 - * @param taskId - * @param status 状态 1 运行中,2 已结束 - *//* - public void flushTask(String taskId,int status) { - List taskList = getTaskList(); - if (taskList!=null && taskList.size()>0) { - TaskModel taskModel = taskList.stream().filter(t -> t.getTaskId().equals(taskId)).findFirst().get(); - if (taskModel!=null) { - int taskLevel = taskModel.getTaskLevel(); - String task=(String) redisUtil.get("task_"+taskLevel); - JSONArray taskJsonArray = JSONObject.parseArray(task); - taskList=new ArrayList<>(); - if (task!=null) { - taskList.addAll(taskJsonArray.toJavaList(TaskModel.class)); - } - if (status==1) { - //更新任务状态 - taskList.forEach(t->{ - if (t.getTaskId().equals(taskId)) { - t.setTaskStatus("1"); - } - }); - }else if(status==2){ - //删除任务 - taskList=taskList.stream().filter(t->!t.getTaskId().equals(taskId)).collect(Collectors.toList()); - } - String s = JSONObject.toJSONString(taskList); - //存入redis - redisUtil.set("task_"+taskLevel,s); - } - } - } - - //执行任务 - public void executeTaskp(TaskModel taskModel){ - //睡眠 - try { - Thread.sleep(20000l); - } catch (InterruptedException e) { - e.printStackTrace(); - } - //模拟执行成功 - String overTaskIds = (String) redisUtil.get("over_task"); - if (StringUtils.isBlank(overTaskIds)) { - overTaskIds=taskModel.getTaskId(); - }else{ - if (!Arrays.asList(overTaskIds.split(",")).contains(taskModel.getTaskId())) { - //该任务未执行过 - overTaskIds+=","+taskModel.getTaskId(); - }else{ - //该任务已结束过 - } - } - //存入已执行 redis里 - redisUtil.set("over_task",overTaskIds); - log.error( taskModel.getTaskLevel()+"-级别,"+ taskModel.getTaskId()+"-已执行"); - //从3中任务集中,删除该任务 - flushTask(taskModel.getTaskId(),2); - } - - //获取全部任务 - public List getTaskList(){ - String task_1 = (String) redisUtil.get("task_1"); - String task_2 = (String) redisUtil.get("task_2"); - String task_3 = (String) redisUtil.get("task_3"); - JSONArray task1JsonArray = JSONObject.parseArray(task_1); - JSONArray task2JsonArray = JSONObject.parseArray(task_2); - JSONArray task3JsonArray = JSONObject.parseArray(task_3); - List taskList=new ArrayList<>(); - if (task1JsonArray!=null) { - taskList.addAll(task1JsonArray.toJavaList(TaskModel.class)); - } - if (task2JsonArray!=null) { - taskList.addAll(task2JsonArray.toJavaList(TaskModel.class)); - } - if (task3JsonArray!=null) { - taskList.addAll(task3JsonArray.toJavaList(TaskModel.class)); - } - return taskList; - }*/ - }