parent
260061ef31
commit
28c10f590c
@ -0,0 +1,14 @@
|
|||||||
|
package org.jeecg.module.custom.ocr;
|
||||||
|
|
||||||
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
@MapperScan("org.jeecg.module.custom.ocr.dataDao")
|
||||||
|
@SpringBootApplication
|
||||||
|
public class OcrApplication {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(OcrApplication.class, args);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,134 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.api.entity;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TaskCompletionRequest {
|
||||||
|
@JSONField(name = "status")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@JSONField(name = "message")
|
||||||
|
private String message;
|
||||||
|
|
||||||
|
@JSONField(name = "timestamp")
|
||||||
|
private Long timestamp;
|
||||||
|
|
||||||
|
@JSONField(name = "signature")
|
||||||
|
private String signature;
|
||||||
|
|
||||||
|
@JSONField(name = "data")
|
||||||
|
private String data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class TaskCompletionData {
|
||||||
|
@JSONField(name = "tenantNo")
|
||||||
|
private Long tenantNo;
|
||||||
|
|
||||||
|
@JSONField(name = "accountNo")
|
||||||
|
private Long accountNo;
|
||||||
|
|
||||||
|
@JSONField(name = "taskNo")
|
||||||
|
private Long taskNo;
|
||||||
|
|
||||||
|
@JSONField(name = "approveResult")
|
||||||
|
private Integer approveResult;
|
||||||
|
|
||||||
|
@JSONField(name = "approveRemark")
|
||||||
|
private String approveRemark;
|
||||||
|
|
||||||
|
@JSONField(name = "pictureMatchDegree")
|
||||||
|
private BigDecimal pictureMatchDegree;
|
||||||
|
|
||||||
|
@JSONField(name = "extendField")
|
||||||
|
private String extendField;
|
||||||
|
|
||||||
|
@JSONField(name = "isPictureRepeat")
|
||||||
|
private Integer isPictureRepeat;
|
||||||
|
|
||||||
|
@JSONField(name = "isPictureRight")
|
||||||
|
private Integer isPictureRight;
|
||||||
|
|
||||||
|
@JSONField(name = "isBriefRepeat")
|
||||||
|
private Integer isBriefRepeat;
|
||||||
|
|
||||||
|
@JSONField(name = "pictureRepeatList")
|
||||||
|
private List<PictureRepeat> pictureRepeatList;
|
||||||
|
|
||||||
|
@JSONField(name = "hisPictureRepeatList")
|
||||||
|
private List<HisPictureRepeat> hisPictureRepeatList;
|
||||||
|
|
||||||
|
@JSONField(name = "falseImgList")
|
||||||
|
private List<Long> falseImgList;
|
||||||
|
|
||||||
|
@JSONField(name = "briefRepeatTaskList")
|
||||||
|
private List<Long> briefRepeatTaskList;
|
||||||
|
|
||||||
|
@JSONField(name = "approveDetailList")
|
||||||
|
private List<ApproveDetail> approveDetailList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class PictureRepeat {
|
||||||
|
@JSONField(name = "imgNo")
|
||||||
|
private Long imgNo;
|
||||||
|
|
||||||
|
@JSONField(name = "imgUrl")
|
||||||
|
private String imgUrl;
|
||||||
|
|
||||||
|
@JSONField(name = "dynamicFields")
|
||||||
|
private Map<String, String> dynamicFields;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class HisPictureRepeat {
|
||||||
|
@JSONField(name = "hisTaskNo")
|
||||||
|
private Long hisTaskNo;
|
||||||
|
|
||||||
|
@JSONField(name = "hisRepeatImgNo")
|
||||||
|
private Long hisRepeatImgNo;
|
||||||
|
|
||||||
|
@JSONField(name = "hisRepeatImgUrl")
|
||||||
|
private String hisRepeatImgUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class ApproveDetail {
|
||||||
|
@JSONField(name = "nodeName")
|
||||||
|
private String nodeName;
|
||||||
|
|
||||||
|
@JSONField(name = "approveByName")
|
||||||
|
private String approveByName;
|
||||||
|
|
||||||
|
@JSONField(name = "approveWay")
|
||||||
|
private Integer approveWay;
|
||||||
|
|
||||||
|
@JSONField(name = "approveResult")
|
||||||
|
private Integer approveResult;
|
||||||
|
|
||||||
|
@JSONField(name = "reason")
|
||||||
|
private String reason;
|
||||||
|
|
||||||
|
@JSONField(name = "processMethod")
|
||||||
|
private Integer processMethod;
|
||||||
|
|
||||||
|
@JSONField(name = "approveRemark")
|
||||||
|
private String approveRemark;
|
||||||
|
|
||||||
|
@JSONField(name = "extendField")
|
||||||
|
private String extendField;
|
||||||
|
|
||||||
|
@JSONField(name = "isPictureRight")
|
||||||
|
private Integer isPictureRight;
|
||||||
|
|
||||||
|
@JSONField(name = "isPictureRepeat")
|
||||||
|
private Integer isPictureRepeat;
|
||||||
|
|
||||||
|
@JSONField(name = "isBriefRepeat")
|
||||||
|
private Integer isBriefRepeat;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.controller.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AddTaskData {
|
||||||
|
|
||||||
|
private List<TaskDTO> records;
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.controller.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AddTaskRequest {
|
||||||
|
|
||||||
|
private String tenantCode;
|
||||||
|
|
||||||
|
private String accessKey;
|
||||||
|
|
||||||
|
private Long timestamp;
|
||||||
|
|
||||||
|
private String signature;
|
||||||
|
|
||||||
|
private AddTaskData data;
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.controller.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DeleteTaskRequest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务NO
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private Long taskNo;
|
||||||
|
}
|
@ -0,0 +1,98 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.controller.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.jeecg.module.custom.ocr.api.entity.LivePhoto;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TaskDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户雪花no
|
||||||
|
*/
|
||||||
|
private Long tenantNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务NO
|
||||||
|
*/
|
||||||
|
private Long taskNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务主体雪花no
|
||||||
|
*/
|
||||||
|
private Long accountNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务主体名称
|
||||||
|
*/
|
||||||
|
private String accountName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联项目no
|
||||||
|
*/
|
||||||
|
private Long projectNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目名称
|
||||||
|
*/
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务表单no
|
||||||
|
*/
|
||||||
|
private Long taskFormNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属主计划ID
|
||||||
|
*/
|
||||||
|
private Long planNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属主计划名称
|
||||||
|
*/
|
||||||
|
private String planName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属子计划ID
|
||||||
|
*/
|
||||||
|
private Long planChildNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属子计划名称
|
||||||
|
*/
|
||||||
|
private String planChildName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务ID
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务名称
|
||||||
|
*/
|
||||||
|
private String taskName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提报人no
|
||||||
|
*/
|
||||||
|
private Long userNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提报人名称
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务提交时间
|
||||||
|
*/
|
||||||
|
private Long submitTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拍照打卡
|
||||||
|
*/
|
||||||
|
private LivePhoto livePhoto;
|
||||||
|
|
||||||
|
// 使用 Map 捕获动态字段
|
||||||
|
private Map<String, Object> dynamicFields;
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.dataDao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.jeecg.module.custom.ocr.dataobject.DuplicateTask;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface DuplicateTaskMapper extends BaseMapper<DuplicateTask> {
|
||||||
|
void save(DuplicateTask task);
|
||||||
|
|
||||||
|
List<DuplicateTask> getAllUnCompletedTask();
|
||||||
|
|
||||||
|
void updateCompletedById(Long id);
|
||||||
|
|
||||||
|
void updateCompletedAndMaxSimilarity(Long id, boolean completed, String maxSimilarityScore);
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.dataDao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.jeecg.module.custom.ocr.dataobject.PictureCompare;
|
||||||
|
|
||||||
|
public interface PictureCompareMapper extends BaseMapper<PictureCompare> {
|
||||||
|
void save(PictureCompare compare);
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.dataDao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.jeecg.module.custom.ocr.dataobject.Task;
|
||||||
|
|
||||||
|
public interface TaskMapper extends BaseMapper<Task> {
|
||||||
|
void save(Task task);
|
||||||
|
|
||||||
|
void deleteByTaskNo(Long taskNo);
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.dataobject;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PictureCompare {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片NO
|
||||||
|
*/
|
||||||
|
private Long firstImgNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片地址
|
||||||
|
*/
|
||||||
|
private String firstImgUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本地图片地址
|
||||||
|
*/
|
||||||
|
private String firstLocalImgUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片hash值
|
||||||
|
*/
|
||||||
|
private String firstImgHash;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片NO
|
||||||
|
*/
|
||||||
|
private Long secondImgNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片地址
|
||||||
|
*/
|
||||||
|
private String secondImgUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本地图片地址
|
||||||
|
*/
|
||||||
|
private String secondLocalImgUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片hash值
|
||||||
|
*/
|
||||||
|
private String secondImgHash;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相似度
|
||||||
|
*/
|
||||||
|
private String similarityScore;
|
||||||
|
}
|
@ -0,0 +1,105 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.dataobject;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Task {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String tenantCode;
|
||||||
|
|
||||||
|
private String accessKey;
|
||||||
|
|
||||||
|
private Long timestamp;
|
||||||
|
|
||||||
|
private String signature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户雪花no
|
||||||
|
*/
|
||||||
|
private Long tenantNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务NO
|
||||||
|
*/
|
||||||
|
private Long taskNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务主体雪花no
|
||||||
|
*/
|
||||||
|
private Long accountNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务主体名称
|
||||||
|
*/
|
||||||
|
private String accountName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联项目no
|
||||||
|
*/
|
||||||
|
private Long projectNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目名称
|
||||||
|
*/
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务表单no
|
||||||
|
*/
|
||||||
|
private Long taskFormNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属主计划ID
|
||||||
|
*/
|
||||||
|
private Long planNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属主计划名称
|
||||||
|
*/
|
||||||
|
private String planName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属子计划ID
|
||||||
|
*/
|
||||||
|
private Long planChildNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属子计划名称
|
||||||
|
*/
|
||||||
|
private String planChildName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务ID
|
||||||
|
*/
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务名称
|
||||||
|
*/
|
||||||
|
private String taskName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提报人no
|
||||||
|
*/
|
||||||
|
private Long userNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提报人名称
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务提交时间
|
||||||
|
*/
|
||||||
|
private Long submitTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拍照打卡
|
||||||
|
*/
|
||||||
|
private String livePhoto;
|
||||||
|
|
||||||
|
// 使用 Map 捕获动态字段
|
||||||
|
private String dynamicFields;
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.service;
|
||||||
|
|
||||||
|
import org.jeecg.module.custom.ocr.controller.dto.DuplicateTaskRequest;
|
||||||
|
import org.jeecg.module.custom.ocr.dataobject.DuplicateTask;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public interface DuplicateTaskService {
|
||||||
|
|
||||||
|
void save(DuplicateTaskRequest request);
|
||||||
|
|
||||||
|
void updateCompletedById(Long id);
|
||||||
|
|
||||||
|
List<DuplicateTask> getAllUnCompletedTask();
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.service;
|
||||||
|
|
||||||
|
import org.jeecg.module.custom.ocr.controller.dto.AddTaskRequest;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
public interface TaskService {
|
||||||
|
|
||||||
|
void save(AddTaskRequest request);
|
||||||
|
|
||||||
|
void deleteTask(Long taskNo);
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
package org.jeecg.module.custom.ocr.service.impl;
|
||||||
|
|
||||||
|
import org.jeecg.module.custom.ocr.controller.dto.DuplicateTaskData;
|
||||||
|
import org.jeecg.module.custom.ocr.controller.dto.DuplicateTaskRequest;
|
||||||
|
import org.jeecg.module.custom.ocr.dataDao.DuplicateTaskMapper;
|
||||||
|
import org.jeecg.module.custom.ocr.dataobject.DuplicateTask;
|
||||||
|
import org.jeecg.module.custom.ocr.service.DuplicateTaskService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class DuplicateTaskServiceImpl implements DuplicateTaskService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DuplicateTaskMapper duplicateTaskMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void save(DuplicateTaskRequest request) {
|
||||||
|
DuplicateTask task = toDuplicateTask(request);
|
||||||
|
duplicateTaskMapper.save(task);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateCompletedById(Long id) {
|
||||||
|
duplicateTaskMapper.updateCompletedById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DuplicateTask> getAllUnCompletedTask() {
|
||||||
|
return duplicateTaskMapper.getAllUnCompletedTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
private DuplicateTask toDuplicateTask(DuplicateTaskRequest request) {
|
||||||
|
DuplicateTask task = new DuplicateTask();
|
||||||
|
|
||||||
|
// 映射顶级字段
|
||||||
|
task.setTenantCode(request.getTenantCode());
|
||||||
|
task.setAccessKey(request.getAccessKey());
|
||||||
|
task.setTimestamp(request.getTimestamp());
|
||||||
|
task.setSignature(request.getSignature());
|
||||||
|
|
||||||
|
// 映射 DuplicateTaskData 中的字段
|
||||||
|
if (request.getData() != null) {
|
||||||
|
DuplicateTaskData data = request.getData();
|
||||||
|
task.setAccountNo(data.getAccountNo());
|
||||||
|
task.setTenantNo(data.getTenantNo());
|
||||||
|
task.setRequestId(data.getRequestId());
|
||||||
|
task.setQueryConfig(data.getQueryConfig());
|
||||||
|
|
||||||
|
// 将 List<Long> taskNos 转换为逗号分隔的字符串
|
||||||
|
if (data.getTaskNos() != null && !data.getTaskNos().isEmpty()) {
|
||||||
|
String taskNosString = data.getTaskNos().stream()
|
||||||
|
.map(String::valueOf)
|
||||||
|
.collect(Collectors.joining(","));
|
||||||
|
task.setTaskNos(taskNosString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置默认值
|
||||||
|
task.setMaxSimilarityScore(null); // 未提供,设为 null
|
||||||
|
task.setCompleted(false); // 默认未完成
|
||||||
|
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.jeecg.module.custom.ocr.dataDao.DuplicateTaskMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="org.jeecg.module.custom.ocr.dataobject.DuplicateTask">
|
||||||
|
<id column="id" jdbcType="BIGINT" property="id" />
|
||||||
|
<result column="tenant_code" jdbcType="VARCHAR" property="tenantCode" />
|
||||||
|
<result column="access_key" jdbcType="VARCHAR" property="accessKey" />
|
||||||
|
<result column="timestamp" jdbcType="BIGINT" property="timestamp" />
|
||||||
|
<result column="signature" jdbcType="VARCHAR" property="signature" />
|
||||||
|
<result column="account_no" jdbcType="BIGINT" property="accountNo" />
|
||||||
|
<result column="tenant_no" jdbcType="BIGINT" property="tenantNo" />
|
||||||
|
<result column="request_id" jdbcType="BIGINT" property="requestId" />
|
||||||
|
<result column="task_nos" jdbcType="VARCHAR" property="taskNos" />
|
||||||
|
<result column="query_config" jdbcType="VARCHAR" property="queryConfig" />
|
||||||
|
<result column="max_similarity_score" jdbcType="VARCHAR" property="maxSimilarityScore" />
|
||||||
|
<result column="completed" jdbcType="TINYINT" property="completed" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
id, tenant_code, access_key, `timestamp`, signature, account_no, tenant_no,
|
||||||
|
request_id, task_nos, query_config, max_similarity_score, completed
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<insert id="save" parameterType="org.jeecg.module.custom.ocr.dataobject.DuplicateTask">
|
||||||
|
INSERT INTO duplicate_task (
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
) VALUES (
|
||||||
|
#{id},
|
||||||
|
#{tenantCode},
|
||||||
|
#{accessKey},
|
||||||
|
#{timestamp},
|
||||||
|
#{signature},
|
||||||
|
#{accountNo},
|
||||||
|
#{tenantNo},
|
||||||
|
#{requestId},
|
||||||
|
#{taskNos},
|
||||||
|
#{queryConfig},
|
||||||
|
#{maxSimilarityScore},
|
||||||
|
#{completed}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<select id="getAllUnCompletedTask" resultMap="BaseResultMap">
|
||||||
|
SELECT <include refid="Base_Column_List" />
|
||||||
|
FROM duplicate_task
|
||||||
|
WHERE completed = 0
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="updateCompletedById" parameterType="java.lang.Long">
|
||||||
|
UPDATE duplicate_task
|
||||||
|
SET completed = #{completed,jdbcType=TINYINT}
|
||||||
|
WHERE id = #{id,jdbcType=BIGINT}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="updateCompletedAndMaxSimilarity">
|
||||||
|
UPDATE duplicate_task
|
||||||
|
SET completed = #{completed,jdbcType=TINYINT},
|
||||||
|
max_similarity_score = #{maxSimilarityScore}
|
||||||
|
WHERE id = #{id,jdbcType=BIGINT}
|
||||||
|
</update>
|
||||||
|
</mapper>
|
@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.jeecg.module.custom.ocr.dataDao.PictureCompareMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="org.jeecg.module.custom.ocr.dataobject.PictureCompare">
|
||||||
|
<id column="id" jdbcType="BIGINT" property="id" />
|
||||||
|
<result column="first_img_no" jdbcType="BIGINT" property="firstImgNo" />
|
||||||
|
<result column="first_img_url" jdbcType="VARCHAR" property="firstImgUrl" />
|
||||||
|
<result column="first_local_img_url" jdbcType="VARCHAR" property="firstLocalImgUrl" />
|
||||||
|
<result column="first_img_hash" jdbcType="VARCHAR" property="firstImgHash" />
|
||||||
|
<result column="second_img_no" jdbcType="BIGINT" property="secondImgNo" />
|
||||||
|
<result column="second_img_url" jdbcType="VARCHAR" property="secondImgUrl" />
|
||||||
|
<result column="second_local_img_url" jdbcType="VARCHAR" property="secondLocalImgUrl" />
|
||||||
|
<result column="second_img_hash" jdbcType="VARCHAR" property="secondImgHash" />
|
||||||
|
<result column="similarity_score" jdbcType="VARCHAR" property="similarityScore" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
id, first_img_no, first_img_url, first_local_img_url, first_img_hash,
|
||||||
|
second_img_no, second_img_url, second_local_img_url, second_img_hash,
|
||||||
|
similarity_score
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<insert id="save" parameterType="org.jeecg.module.custom.ocr.dataobject.PictureCompare" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
INSERT INTO photos_compare (
|
||||||
|
first_img_no, first_img_url, first_local_img_url, first_img_hash,
|
||||||
|
second_img_no, second_img_url, second_local_img_url, second_img_hash,
|
||||||
|
similarity_score
|
||||||
|
) VALUES (
|
||||||
|
#{firstImgNo},
|
||||||
|
#{firstImgUrl},
|
||||||
|
#{firstLocalImgUrl},
|
||||||
|
#{firstImgHash},
|
||||||
|
#{secondImgNo},
|
||||||
|
#{secondImgUrl},
|
||||||
|
#{secondLocalImgUrl},
|
||||||
|
#{secondImgHash},
|
||||||
|
#{similarityScore}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
</mapper>
|
@ -0,0 +1,72 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.jeecg.module.custom.ocr.dataDao.TaskMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="org.jeecg.module.custom.ocr.dataobject.Task">
|
||||||
|
<id column="id" jdbcType="BIGINT" property="id" />
|
||||||
|
<result column="tenant_code" jdbcType="VARCHAR" property="tenantCode" />
|
||||||
|
<result column="access_key" jdbcType="VARCHAR" property="accessKey" />
|
||||||
|
<result column="timestamp" jdbcType="BIGINT" property="timestamp" />
|
||||||
|
<result column="signature" jdbcType="VARCHAR" property="signature" />
|
||||||
|
<result column="tenant_no" jdbcType="BIGINT" property="tenantNo" />
|
||||||
|
<result column="task_no" jdbcType="BIGINT" property="taskNo" />
|
||||||
|
<result column="account_no" jdbcType="BIGINT" property="accountNo" />
|
||||||
|
<result column="account_name" jdbcType="VARCHAR" property="accountName" />
|
||||||
|
<result column="project_no" jdbcType="BIGINT" property="projectNo" />
|
||||||
|
<result column="project_name" jdbcType="VARCHAR" property="projectName" />
|
||||||
|
<result column="task_form_no" jdbcType="BIGINT" property="taskFormNo" />
|
||||||
|
<result column="plan_no" jdbcType="BIGINT" property="planNo" />
|
||||||
|
<result column="plan_name" jdbcType="VARCHAR" property="planName" />
|
||||||
|
<result column="plan_child_no" jdbcType="BIGINT" property="planChildNo" />
|
||||||
|
<result column="plan_child_name" jdbcType="VARCHAR" property="planChildName" />
|
||||||
|
<result column="task_id" jdbcType="BIGINT" property="taskId" />
|
||||||
|
<result column="task_name" jdbcType="VARCHAR" property="taskName" />
|
||||||
|
<result column="user_no" jdbcType="BIGINT" property="userNo" />
|
||||||
|
<result column="user_name" jdbcType="VARCHAR" property="userName" />
|
||||||
|
<result column="submit_time" jdbcType="BIGINT" property="submitTime" />
|
||||||
|
<result column="live_photo" jdbcType="VARCHAR" property="livePhoto" />
|
||||||
|
<result column="dynamic_fields" jdbcType="VARCHAR" property="dynamicFields" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
id, tenant_code, access_key, timestamp, signature, tenant_no, task_no, account_no,
|
||||||
|
account_name, project_no, project_name, task_form_no, plan_no, plan_name,
|
||||||
|
plan_child_no, plan_child_name, task_id, task_name, user_no, user_name,
|
||||||
|
submit_time, live_photo, dynamic_fields
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<insert id="save" parameterType="org.jeecg.module.custom.ocr.dataobject.Task">
|
||||||
|
INSERT INTO task (
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
) VALUES (
|
||||||
|
#{id},
|
||||||
|
#{tenantCode},
|
||||||
|
#{accessKey},
|
||||||
|
#{timestamp},
|
||||||
|
#{signature},
|
||||||
|
#{tenantNo},
|
||||||
|
#{taskNo},
|
||||||
|
#{accountNo},
|
||||||
|
#{accountName},
|
||||||
|
#{projectNo},
|
||||||
|
#{projectName},
|
||||||
|
#{taskFormNo},
|
||||||
|
#{planNo},
|
||||||
|
#{planName},
|
||||||
|
#{planChildNo},
|
||||||
|
#{planChildName},
|
||||||
|
#{taskId},
|
||||||
|
#{taskName},
|
||||||
|
#{userNo},
|
||||||
|
#{userName},
|
||||||
|
#{submitTime},
|
||||||
|
#{livePhoto},
|
||||||
|
#{dynamicFields},
|
||||||
|
#{imgHash},
|
||||||
|
#{similarityScore}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<delete id="deleteByTaskNo" parameterType="java.lang.Long">
|
||||||
|
DELETE FROM task WHERE task_no = #{taskNo,jdbcType=BIGINT}
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
Loading…
Reference in new issue