dev
Vincent 2 weeks ago
parent 1c06d52b19
commit 0c388e0183

@ -104,7 +104,7 @@ public class DuplicateTaskRunner {
boolean isCrossProject = "crossProject".equals(queryConfig.getValidateScope()) && !CollectionUtils.isEmpty(queryConfig.getCrossProjectLimit()); boolean isCrossProject = "crossProject".equals(queryConfig.getValidateScope()) && !CollectionUtils.isEmpty(queryConfig.getCrossProjectLimit());
// 普通查重 // 普通查重
List<Task> tasks = taskMapper.selectByAccountNoAndQueryConfig(duplicateTask.getAccountNo(), duplicateTask.getQueryConfig()); List<Task> tasks = taskMapper.selectByAccountNoAndQueryConfig(duplicateTask.getAccountNo(), duplicateTask.getQueryConfig(), queryConfig.getValidateColumn());
checkDuplicate(duplicateTask, tasks, queryConfig, isCrossProject); checkDuplicate(duplicateTask, tasks, queryConfig, isCrossProject);
// 获取跨项目任务 // 获取跨项目任务

@ -1,13 +1,7 @@
package org.jeecg.module.custom.ocr.api.thread.tasks; package org.jeecg.module.custom.ocr.api.thread.tasks;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import lombok.var;
import org.jeecg.module.custom.ocr.api.entity.FormRecord; import org.jeecg.module.custom.ocr.api.entity.FormRecord;
import org.jeecg.module.custom.ocr.api.entity.LivePhoto; import org.jeecg.module.custom.ocr.api.entity.LivePhoto;
import org.jeecg.module.custom.ocr.dataobject.Task; import org.jeecg.module.custom.ocr.dataobject.Task;
@ -16,7 +10,6 @@ import org.jeecg.module.custom.ocr.service.TaskService;
import org.jeecg.module.custom.ocr.utils.DownloadImgUtil; import org.jeecg.module.custom.ocr.utils.DownloadImgUtil;
import org.jeecg.module.custom.ocr.utils.ImageUtils; import org.jeecg.module.custom.ocr.utils.ImageUtils;
import org.jeecg.module.custom.ocr.utils.SpringUtils; import org.jeecg.module.custom.ocr.utils.SpringUtils;
import org.jeecg.module.custom.ocr.utils.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -90,6 +83,8 @@ public class PictureImgToLocalTask implements Runnable {
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
logger.info("task: {}", task);
Map<String, String> ocrPictureClassifyAndHash = ocrPictureService.getOcrPictureClassifyAndHash(task.getLocalImageUrl()); Map<String, String> ocrPictureClassifyAndHash = ocrPictureService.getOcrPictureClassifyAndHash(task.getLocalImageUrl());
if (ocrPictureClassifyAndHash != null) { if (ocrPictureClassifyAndHash != null) {
task.setImgHash(ocrPictureClassifyAndHash.get("hash")); task.setImgHash(ocrPictureClassifyAndHash.get("hash"));

@ -14,7 +14,7 @@ public interface TaskMapper extends BaseMapper<Task> {
void deleteByTaskNos(@Param("taskNos") List<Long> taskNos); void deleteByTaskNos(@Param("taskNos") List<Long> taskNos);
List<Task> selectByAccountNoAndQueryConfig(@Param("accountNo") Long accountNo, @Param("queryConfig") String queryConfig); List<Task> selectByAccountNoAndQueryConfig(@Param("accountNo") Long accountNo, @Param("queryConfig") String queryConfig, @Param("validateColumns") List<String> validateColumns);
List<Task> selectByQueryConfig(@Param("queryConfig") QueryConfig queryConfig); List<Task> selectByQueryConfig(@Param("queryConfig") QueryConfig queryConfig);
} }

@ -71,8 +71,8 @@ public class ImageClassUtil {
jsonObjectVi.put("taskId", taskId); jsonObjectVi.put("taskId", taskId);
JSONArray jsonArrayVi = new JSONArray(); JSONArray jsonArrayVi = new JSONArray();
// TODO: 测试环境可能需要调整本地图片地址路径 // TODO: 测试环境可能需要调整本地图片地址路径
// jsonArrayVi.add(imgurl); jsonArrayVi.add(imgurl);
jsonArrayVi.add("/server/ocr/data/images/test01.png"); // jsonArrayVi.add("/server/ocr/data/images/test01.png");
logger.info("imgurl={}", imgurl); logger.info("imgurl={}", imgurl);
jsonObjectVi.put("imgUrls", jsonArrayVi); jsonObjectVi.put("imgUrls", jsonArrayVi);

@ -78,21 +78,20 @@
SELECT * SELECT *
FROM task t FROM task t
WHERE WHERE
UNIX_TIMESTAMP(STR_TO_DATE( UNIX_TIMESTAMP(STR_TO_DATE(
JSON_UNQUOTE(JSON_EXTRACT(t.dynamic_fields, CONCAT('$.', JSON_UNQUOTE(JSON_EXTRACT(#{queryConfig}, '$.validateTimeColumn'))))), JSON_UNQUOTE(JSON_EXTRACT(t.dynamic_fields, CONCAT('$.', JSON_UNQUOTE(JSON_EXTRACT(#{queryConfig}, '$.validateTimeColumn'))))),
'%Y-%m-%d %H:%i:%s' '%Y-%m-%d %H:%i:%s'
)) * 1000 BETWEEN )) * 1000 BETWEEN
UNIX_TIMESTAMP(STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(#{queryConfig}, '$.startTime')), '%Y-%m-%d %H:%i:%s')) * 1000 UNIX_TIMESTAMP(STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(#{queryConfig}, '$.startTime')), '%Y-%m-%d %H:%i:%s')) * 1000
AND AND
UNIX_TIMESTAMP(STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(#{queryConfig}, '$.endTime')), '%Y-%m-%d %H:%i:%s')) * 1000 UNIX_TIMESTAMP(STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(#{queryConfig}, '$.endTime')), '%Y-%m-%d %H:%i:%s')) * 1000
AND EXISTS ( AND EXISTS (
SELECT 1 SELECT 1
FROM JSON_TABLE( WHERE
JSON_EXTRACT(#{queryConfig}, '$.validateColumn'), <foreach collection="validateColumns" item="col" open="" close="" separator=" OR ">
'$[*]' COLUMNS (col VARCHAR(255) PATH '$') JSON_EXTRACT(t.dynamic_fields, CONCAT('$.', #{col})) IS NOT NULL
) AS jt AND JSON_LENGTH(JSON_EXTRACT(t.dynamic_fields, CONCAT('$.', #{col}))) > 0
WHERE JSON_EXTRACT(t.dynamic_fields, CONCAT('$.', jt.col)) IS NOT NULL </foreach>
AND JSON_LENGTH(JSON_EXTRACT(t.dynamic_fields, CONCAT('$.', jt.col))) > 0
) )
</select> </select>

Loading…
Cancel
Save