开发任务单详情及相似度列表

pull/1/head
sunchenliang 1 year ago
parent 640419d136
commit 311ea02a71

@ -10,6 +10,7 @@ import cn.jyjz.xiaoyao.ocr.dataobject.OcrCheckDuplicate;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrCheckDuplicateResult;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.service.IOcrCheckDuplicateResultService;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.service.IOcrCheckDuplicateService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import cn.jyjz.xiaoyao.ocr.util.DataUtil;
@ -18,6 +19,7 @@ import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@ -86,7 +88,7 @@ public class OcrCheckDuplicateController {
if (pageList.size() == 1) {
return ResultVoUtil.error("查重数据至少要有两条。");
} else {
return ocrCheckDuplicateService.duplicateCheck(pageList, tenantId, userToken, req,paraMap);
return ocrCheckDuplicateService.duplicateCheck(pageList, tenantId, userToken, req, paraMap);
}
} else {
return ResultVoUtil.error("没有查重数据。");
@ -97,27 +99,28 @@ public class OcrCheckDuplicateController {
@GetMapping("/getCheckDuplicateStatus")
@ResponseBody
public ResultVo getCheckDuplicateStatus(HttpServletResponse response, HttpServletRequest request,
@RequestParam(name="checkDuplicateNo",required = true) String checkDuplicateNo) throws IOException {
@RequestParam(name = "checkDuplicateNo", required = true) String checkDuplicateNo) throws IOException {
String tenantId = request.getHeader("X-Tenant-Id");
if(StringUtils.isBlank(tenantId)){
if (StringUtils.isBlank(tenantId)) {
return ResultVoUtil.error("租户主键不能为空");
}
if(StringUtils.isBlank(checkDuplicateNo)){
if (StringUtils.isBlank(checkDuplicateNo)) {
return ResultVoUtil.error("查重编号不能为空");
}
OcrCheckDuplicate dto = this.ocrCheckDuplicateService.getCheckDuplicateStatus(checkDuplicateNo);
if(null != dto){
if (null != dto) {
return ResultVoUtil.success(dto);
}else{
} else {
return ResultVoUtil.error();
}
}
/**
*
*
* @param request
* @return
*/
@ -125,35 +128,36 @@ public class OcrCheckDuplicateController {
public ResultVo getLastCheckNo(HttpServletRequest request) {
String tenantId = request.getHeader("X-Tenant-Id");
if(StringUtils.isBlank(tenantId)){
if (StringUtils.isBlank(tenantId)) {
return ResultVoUtil.error("租户主键不能为空");
}
String lastCheckNo = this.ocrCheckDuplicateService.getLastCheckNo(tenantId);
if(!StringUtils.isBlank(lastCheckNo)){
if (!StringUtils.isBlank(lastCheckNo)) {
return ResultVoUtil.success(lastCheckNo);
}else{
} else {
return ResultVoUtil.success();
}
}
/**
*
*
* @param request
* @return
*/
@GetMapping(value = "/removeCheckDuplicate")
public ResultVo removeCheckDuplicate(HttpServletRequest request,@RequestParam(name="checkDuplicateNo",required = true) String checkDuplicateNo) {
public ResultVo removeCheckDuplicate(HttpServletRequest request, @RequestParam(name = "checkDuplicateNo", required = true) String checkDuplicateNo) {
String tenantId = request.getHeader("X-Tenant-Id");
if(StringUtils.isBlank(tenantId)){
if (StringUtils.isBlank(tenantId)) {
return ResultVoUtil.error("租户主键不能为空");
}
Boolean result = this.ocrCheckDuplicateService.removeCheckDuplicate(checkDuplicateNo,tenantId);
Boolean result = this.ocrCheckDuplicateService.removeCheckDuplicate(checkDuplicateNo, tenantId);
if(result){
if (result) {
return ResultVoUtil.success("取消查重任务成功!");
}
return ResultVoUtil.error("取消任务失败!");
@ -179,6 +183,4 @@ public class OcrCheckDuplicateController {
return ResultVoUtil.success(pageList);
}
}

@ -13,6 +13,7 @@ import cn.jyjz.xiaoyao.admin.service.LogService;
import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService;
import cn.jyjz.xiaoyao.ocr.util.DataUtil;
@ -173,17 +174,16 @@ public class OcrPictureController extends BaseController {
return ResultVoUtil.error("查重数据至少要有两条。");
}
}
ocrPictureService.createTaskChild(pageList, pageList.get(0).getTenantId().toString(),req);
ocrPictureService.createTaskChild(pageList, pageList.get(0).getTenantId().toString(), req);
return ResultVoUtil.error("没有查重数据。");
}
/**
*
*
* @param req
* @return
*/
@ -230,7 +230,7 @@ public class OcrPictureController extends BaseController {
queryWrapper.eq("tenant_id", tenantId);
List<OcrPicture> pageList = ocrPictureService.listPage(queryWrapper);
if (null != pageList && !pageList.isEmpty()) {
return ocrPictureService.createTaskChild(pageList, tenantId, userToken, search_month, req, buessinessno);
return ocrPictureService.createTaskChild(pageList, tenantId, userToken, search_month, req, buessinessno);
} else {
return ResultVoUtil.error("没有查重数据。");
}
@ -268,7 +268,7 @@ public class OcrPictureController extends BaseController {
String search_month = req.getParameter("search_month");
String ordertype = req.getParameter("ordertype");
queryWrapper.eq("suspiciousfile","0");
queryWrapper.eq("suspiciousfile", "0");
if (StringUtils.isNotBlank(ordertype)) {
if (ordertype.equals("0")) {
queryWrapper.orderByAsc("similarity_score");
@ -374,4 +374,28 @@ public class OcrPictureController extends BaseController {
return ResultVoUtil.success();
}
/**
*
*
* @return
*/
@GetMapping(value = "/getPackagePicture")
public ResultVo getPackagePictureInfo(@RequestParam(name = "checkDuplicateId") String checkDuplicateId,
@RequestParam(name = "pictureId", required = false) String pictureId,
HttpServletRequest req) {
OcrPicture result = ocrPictureService.getPackagePictureInfo(checkDuplicateId, pictureId);
return ResultVoUtil.success(result);
}
/**
* id1,2,3
* mail.zhangyong@gmail.com
* 2024-01-14 10:27:01
**/
@GetMapping("/getPictureDetail")
public ResultVo getPictureDetail(@RequestParam(value = "pictureId") String pictureId, HttpServletRequest request) throws IOException {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
return ResultVoUtil.success(ocrTaskchildPictureService.getPictureDetail(pictureId, userToken));
}
}

@ -7,15 +7,20 @@ import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskPackage;
import cn.jyjz.xiaoyao.ocr.dto.OcrTaskPackageDto;
import cn.jyjz.xiaoyao.ocr.service.IOcrTaskPackageService;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* <p>
@ -39,6 +44,7 @@ public class OcrTaskPackageController extends BaseController {
/**
*
*
* @param ocrTaskPackage
* @param req
* @return
@ -48,22 +54,22 @@ public class OcrTaskPackageController extends BaseController {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(req));
//租户
String tenantId = req.getHeader("X-Tenant-Id");
if(StringUtils.isBlank(tenantId)){
if (StringUtils.isBlank(tenantId)) {
return ResultVoUtil.error("租户主键不能为空");
}
ocrTaskPackage.setTenantId(Long.parseLong(tenantId));
//校验参数包名称
if(ocrTaskPackage == null){
if (ocrTaskPackage == null) {
return ResultVoUtil.error("参数对象为空");
}
//校验参数包名称
if(StringUtils.isBlank(ocrTaskPackage.getName())){
if (StringUtils.isBlank(ocrTaskPackage.getName())) {
return ResultVoUtil.error("任务包名称不能为空");
}
//校验参数包名称
if(StringUtils.isBlank(ocrTaskPackage.getCheckDuplicateNo())){
if (StringUtils.isBlank(ocrTaskPackage.getCheckDuplicateNo())) {
return ResultVoUtil.error("查重任务编号不能为空");
}
ocrTaskPackage.setCreateBy(userToken.getUserid());
@ -74,21 +80,39 @@ public class OcrTaskPackageController extends BaseController {
/**
*
*
* @param packageId
* @param req
* @return
*/
@GetMapping(value = "/deletePackage")
public ResultVo deletePackage(@RequestParam(name="packageId",required = true)Long packageId, HttpServletRequest req) {
public ResultVo deletePackage(@RequestParam(name = "packageId", required = true) Long packageId, HttpServletRequest req) {
OcrTaskPackage taskPackage = new OcrTaskPackage();
taskPackage.setId(packageId);
taskPackage.setIsDelete(1);
boolean b = ocrTaskPackageService.updateById(taskPackage);
if(b){
if (b) {
return ResultVoUtil.success();
}else{
} else {
return ResultVoUtil.error();
}
}
/**
*
*
* @param packageName
* @param req
* @return
*/
@GetMapping(value = "/getPackageList")
public ResultVo getPackageList(@RequestParam(name = "packageName", required = false) String packageName,
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
HttpServletRequest req) {
Page<Map<String, Object>> result = ocrTaskPackageService.getPackageList(pageNo, pageSize, packageName);
return ResultVoUtil.success(result);
}
}

@ -136,8 +136,8 @@ public class OcrTaskchildPictureController extends BaseController {
//获取页码、当前页
String pageNoStr = request.getParameter("pageNo");
String pageSizeStr = request.getParameter("pageSize");
if(StringUtils.isEmpty(pageNoStr)|| StringUtils.isEmpty(pageSizeStr)){
return ResultVoUtil.error("页码和条数必传!");
if (StringUtils.isEmpty(pageNoStr) || StringUtils.isEmpty(pageSizeStr)) {
return ResultVoUtil.error("页码和条数必传!");
}
paramterPage.setStart(Integer.parseInt(pageNoStr));
paramterPage.setPagesize(Integer.parseInt(pageSizeStr));
@ -171,12 +171,12 @@ public class OcrTaskchildPictureController extends BaseController {
jsonObject.put("packageid", jsonObject.getOrDefault("packageid", null).toString());
return jsonObject;
}).collect(Collectors.toList());
List<JSONObject> collect1=new ArrayList<>();
for (JSONObject asd:collect){
List<JSONObject> collect1 = new ArrayList<>();
for (JSONObject asd : collect) {
QueryWrapper<OcrPicture> imgWrapper = new QueryWrapper<>();
imgWrapper.eq("id",asd.get("pictureid"));
imgWrapper.eq("id", asd.get("pictureid"));
OcrPicture one = ocrPictureService.getOne(imgWrapper);
if (one.getSuspiciousfile()==0){
if (one.getSuspiciousfile() == 0) {
collect1.add(asd);
}
}
@ -303,7 +303,7 @@ public class OcrTaskchildPictureController extends BaseController {
@PathVariable("packageid") Long packageid,
@PathVariable("id") Long id) throws IOException {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
OcrTaskchildPicture dto = this.ocrTaskchildPictureService.listPicturePackageId(id.toString(), packageid,userToken);
OcrTaskchildPicture dto = this.ocrTaskchildPictureService.listPicturePackageId(id.toString(), packageid, userToken);
if (null != dto) {
return ResultVoUtil.success(dto);
} else {
@ -371,4 +371,52 @@ public class OcrTaskchildPictureController extends BaseController {
return ResultVoUtil.success();
}
@ApiOperation(value = "ocr_任务包下的当前图片比对的集合列表", notes = "ocr_任务包下的当前图片比对的集合列表")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "X-Tenant-Id", value = "租户主键,用户登录时的信息“tenantList”中获得。", dataType = "String", required = true)
})
@GetMapping("/getSimilarityList")
public ResultVo<IPage<OcrTaskchildPicture>> getSimilarityList(HttpServletRequest request) {
//获取页码、当前页
String pageNo = request.getParameter("pageNo");
String pageSize = request.getParameter("pageSize");
if (StringUtils.isEmpty(pageNo) || StringUtils.isEmpty(pageSize)) {
return ResultVoUtil.error("页码和条数必传!");
}
String pictureId = request.getParameter("pictureId");
if (StringUtils.isBlank(pictureId)) {
return ResultVoUtil.error("pictureId必传");
}
//租户主键,由前端页面传送
String tenantId = request.getHeader("X-Tenant-Id");
if (StringUtils.isBlank(tenantId)) {
return ResultVoUtil.error("租户主键不能为空");
}
//排序方式
String orderType = request.getParameter("orderType");
//排序字段
String orderValue = request.getParameter("orderName");
List<OcrTaskchildPicture> similarityList = ocrTaskchildPictureService.getSimilarityList(Integer.valueOf(pageNo), Integer.valueOf(pageSize), pictureId, orderType, orderValue);
return ResultVoUtil.success(similarityList);
}
/**
*
*
* @return
*/
@GetMapping(value = "/getPictureSimilarityList")
public ResultVo getPictureSimilarityList(
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "oderType") String oderType,
@RequestParam(name = "oderName") String oderName,
@RequestParam(name = "checkDuplicateId") String checkDuplicateId,
@RequestParam(name = "pictureId", required = false) String pictureId,
HttpServletRequest req) {
Page<OcrTaskchildPicture> result = ocrTaskchildPictureService.getPackageSimilarityList(pageNo, pageSize, oderType, oderName, checkDuplicateId, pictureId);
return ResultVoUtil.success(result);
}
}

@ -3,9 +3,12 @@ package cn.jyjz.xiaoyao.ocr.dataDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
*
*/
@Mapper
public interface OcrPictureMybatisDao extends BaseMapper<OcrPicture> {
OcrPicture getPackagePictureInfo(@Param("packageId") String packageId, @Param("pictureId") String pictureId);
}

@ -2,7 +2,12 @@ package cn.jyjz.xiaoyao.ocr.dataDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskPackage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* <p>
@ -15,4 +20,5 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OcrTaskPackageMapper extends BaseMapper<OcrTaskPackage> {
Page<Map<String,Object>> getPackageList(Page<Map<String, Object>> page, @Param("packageName") String packageName);
}

@ -3,7 +3,9 @@ package cn.jyjz.xiaoyao.ocr.dataDao;
import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro;
import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -45,4 +47,10 @@ public interface OcrTaskchildPictureMybatisDao extends BaseMapper<OcrTaskchildPi
String selectocpicture(@Param("tenantid")String tenantid,@Param("packageid")String packageid,@Param("id")String id);
List<OcrTaskchildPicture> getPictureHistoryList(@Param("pictureIds") List<String> pictureIds, @Param("taskname") String taskname);
PictureDetailVo getPictureDetail(String pictureId);
Page<OcrTaskchildPicture> getPackageSimilarityList(Page<OcrTaskchildPicture> page, @Param("checkDuplicateId") String checkDuplicateId, @Param("pictureId") String pictureId, @Param("oderType") String oderType, @Param("oderName") String oderName);
}

@ -265,6 +265,10 @@ public class OcrTaskchildPicture implements BaseDto, java.io.Serializable {
@TableField(exist = false)
private String location;
@ApiModelProperty(value = "图片信息")
@TableField(exist = false)
private String imgUrl;
//保存当前登录用户的数据权限范围的搜索条件
@TableField(exist = false)
@JsonIgnore

@ -5,6 +5,7 @@ import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrCheckDuplicate;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
@ -65,5 +66,16 @@ public interface IOcrCheckDuplicateService extends IService<OcrCheckDuplicate> {
*/
OcrCheckDuplicate queryByCheckDuplicateNo(String checkDuplicateNo, Long tenantId);
/**
*
*
* @param pageNo
* @param pageSize
* @param pictureId
* @param orderType
* @param orderValue
* @return
*/
IPage<OcrPicture> queryPageListByCheckNo(String checkDuplicateNo, String tenantId, Integer pageNo, Integer pageSize);
}

@ -1,14 +1,13 @@
package cn.jyjz.xiaoyao.ocr.service;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskPackage;
import cn.jyjz.xiaoyao.ocr.dto.OcrTaskPackageDto;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -26,4 +25,14 @@ public interface IOcrTaskPackageService extends IService<OcrTaskPackage> {
* @return
*/
ResultVo saveTaskPackage(OcrTaskPackageDto ocrTaskPackage);
/**
*
*
* @param pageNo
* @param pageSize
* @param packageName
* @return
*/
Page<Map<String, Object>> getPackageList(Integer pageNo, Integer pageSize, String packageName);
}

@ -6,6 +6,7 @@ import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -66,4 +67,7 @@ public interface OcrPictureService extends BaseService<OcrPicture> {
Map<String,String> getOcrPictureClassifyAndHash(String img);
String getServerUrl();
OcrPicture getPackagePictureInfo(String packageId, String pictureId);
}

@ -10,10 +10,10 @@ import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro;
import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
*
@ -137,5 +137,13 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
public List<OcrTaskchildPictureAppro> listmytask(Map<String, Object> query);
public Long listmytaskCount(Map<String, Object> query);
List<OcrTaskchildPicture> getPictureHistoryList(List<String> pictureIds, String taskname);
PictureDetailVo getPictureDetail(String pictureId, UserToken userToken);
List<OcrTaskchildPicture> getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue);
Page<OcrTaskchildPicture> getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId);
}

@ -12,20 +12,19 @@ import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrCheckDuplicateMapper;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrCheckDuplicate;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrCheckDuplicateResult;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureDuplicateHis;
import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.service.*;
import cn.jyjz.xiaoyao.ocr.util.HashCompareUtil;
import cn.jyjz.xiaoyao.ocr.util.ImageClassUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@ -36,6 +35,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>

@ -4,8 +4,6 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.jyjz.flowable.service.IFlowInstanceService;
import cn.jyjz.xiaoyao.abase.service.SeqManageService;
import cn.jyjz.xiaoyao.admin.service.LogService;
import cn.jyjz.xiaoyao.common.base.service.UserTokenService;
import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
@ -19,7 +17,6 @@ import cn.jyjz.xiaoyao.ocr.service.*;
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity;
import cn.jyjz.xiaoyao.ocr.util.*;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -31,13 +28,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.stereotype.Service;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
@ -45,7 +38,6 @@ import javax.servlet.http.HttpServletRequest;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.Serializable;
import java.math.BigDecimal;
import java.net.URL;
import java.net.URLConnection;
@ -70,49 +62,34 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
@Value("${image.serverUrl}")
private String serverUrl;
@Resource
private OcrPictureMybatisDao ocrpicturemybatisdao;
@Resource
private OcrPictureNotesService ocrPictureNotesService;
@Resource
private OcrPackagetaskService ocrPackagetaskService;
@Resource
private LogService logService;
@Autowired
private SeqManageService seqManageService;
@Resource
private OcrTaskchildPictureService ocrTaskchildPictureService;
@Resource
IFlowInstanceService flowInstanceService;
@Resource
private OcrUsersearchService ocrUsersearchService;
@Resource
private CategoryService categoryService;
@Resource
private OcrPictureInfoService ocrPictureInfoService;
private Object lock = new Object();
/**
*
*/
@Value("${ocr.api.wly.interface-domain}")
private String interfaceDomain;
/**
*
*/
@Autowired
DataDictionaryUtil dataDictionaryUtil;
@Resource
UserTokenService userTokenService;
@Resource
OcrPictureMybatisDao pictureMybatisDao;
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno) {
//图片错误信息
@ -335,6 +312,12 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
return serverUrl;
}
@Override
public OcrPicture getPackagePictureInfo(String checkDuplicateId, String pictureId) {
return pictureMybatisDao.getPackagePictureInfo(checkDuplicateId,pictureId);
}
public OcrTaskchildPicture updateTaskChild(OcrPicture ocrPicture, Long packageid, String buessinessno) {
OcrTaskchildPicture ocrTaskchildPicture = ocrTaskchildPictureService.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, ocrPicture.getId()));
ocrTaskchildPicture.setBuessinessno(buessinessno);

@ -1,30 +1,23 @@
package cn.jyjz.xiaoyao.ocr.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.jyjz.xiaoyao.admin.service.LogService;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskPackageMapper;
import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.dto.OcrTaskPackageDto;
import cn.jyjz.xiaoyao.ocr.service.*;
import cn.jyjz.xiaoyao.ocr.util.HashCompareUtil;
import cn.jyjz.xiaoyao.ocr.util.ImageClassUtil;
import cn.jyjz.xiaoyao.ocr.util.SearchEnum;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import liquibase.pro.packaged.T;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -43,19 +36,39 @@ public class OcrTaskPackageServiceImpl extends ServiceImpl<OcrTaskPackageMapper,
@Resource
private IOcrCheckDuplicateService checkDuplicateService;
@Resource
private OcrTaskPackageMapper taskPackageMapper;
@Override
public ResultVo saveTaskPackage(OcrTaskPackageDto ocrTaskPackage) {
//1.获取查重任务
OcrCheckDuplicate ocrCheckDuplicate = checkDuplicateService.queryByCheckDuplicateNo(ocrTaskPackage.getCheckDuplicateNo(),ocrTaskPackage.getTenantId());
if(ocrCheckDuplicate==null){
OcrCheckDuplicate ocrCheckDuplicate = checkDuplicateService.queryByCheckDuplicateNo(ocrTaskPackage.getCheckDuplicateNo(), ocrTaskPackage.getTenantId());
if (ocrCheckDuplicate == null) {
return ResultVoUtil.error("无法获取到查重任务!");
}
OcrTaskPackage taskPackage = new OcrTaskPackage();
BeanUtil.copyProperties(ocrTaskPackage,taskPackage);
BeanUtil.copyProperties(ocrTaskPackage, taskPackage);
taskPackage.setCheckDuplicateId(ocrCheckDuplicate.getId());
if(this.save(taskPackage)){
if (this.save(taskPackage)) {
return ResultVoUtil.success("创建任务包成功!");
}
return ResultVoUtil.error("创建任务包失败!");
}
@Override
public Page<Map<String, Object>> getPackageList(Integer pageNo, Integer pageSize, String packageName) {
Page<Map<String, Object>> page = new Page<>(pageNo, pageSize);
Page<Map<String, Object>> result = taskPackageMapper.getPackageList(page, packageName);
if(CollectionUtils.isNotEmpty(result.getRecords())){
List<Map<String, Object>> records = result.getRecords();
for (Map<String, Object> record : records) {
Object search = record.getOrDefault("search", null);
if(search!=null){
Map map = JSONObject.parseObject(search.toString(), Map.class);
record.putAll(map);
}
}
}
return result;
}
}

@ -5,27 +5,21 @@ import cn.jyjz.flowable.common.SystemConstantsOa;
import cn.jyjz.flowable.service.IFlowInstanceService;
import cn.jyjz.flowable.service.IFlowTaskService;
import cn.jyjz.xiaoyao.common.base.param.ParamterPage;
import cn.jyjz.xiaoyao.common.base.service.UserTokenService;
import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.common.mybatisplus.util.SearchQueryFormat;
import cn.jyjz.xiaoyao.oa.from.dataobject.Category;
import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove;
import cn.jyjz.xiaoyao.oa.from.service.CategoryService;
import cn.jyjz.xiaoyao.oa.from.service.UserapproveService;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskchildPictureMybatisDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro;
import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.dto.UserapproveDto;
import cn.jyjz.xiaoyao.ocr.service.IOcrPictureDuplicateHisService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureInfoService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -33,9 +27,9 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.flowable.task.api.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.stereotype.Service;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl;
@ -74,6 +68,9 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
@Resource
private CategoryService categoryService;
@Resource
private IOcrPictureDuplicateHisService pictureDuplicateHisService;
/**
*
*
@ -295,6 +292,10 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
//用于标记相似度是否存在百分百的情况
for (OcrPicture ocrPicture : ocrPictureList) {
OcrTaskchildPicture one = this.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, ocrPicture.getId()));
if(ObjectUtils.isNotEmpty(one)){
continue;
}
//查询项目对象
if (null == ocrPicture.getCategoryid()) {
//TODO 没有对应项目,返回提示信息
@ -620,4 +621,60 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
public Long listmytaskCount(Map<String, Object> query) {
return this.ocrtaskchildpicturemybatisdao.listmytaskCount(query);
}
@Override
public List<OcrTaskchildPicture> getPictureHistoryList(List<String> pictureIds, String taskname) {
return ocrtaskchildpicturemybatisdao.getPictureHistoryList(pictureIds,taskname);
}
@Override
public PictureDetailVo getPictureDetail(String pictureId, UserToken userToken) {
PictureDetailVo pictureDetail = ocrtaskchildpicturemybatisdao.getPictureDetail(pictureId);
//查询审批流节点信息
List<Task> taskList = iFlowTaskService.nowRunTask(pictureDetail.getProcessInstanceId(), pictureDetail.getProcessDefinitionId());
if (null != taskList && !taskList.isEmpty()) {
pictureDetail.setTaskId(taskList.get(0).getId());
}
if (null != userToken && CollectionUtils.isNotEmpty(pictureDetail.getUserapproveList())) {
Optional<Userapprove> first = pictureDetail.getUserapproveList().stream().filter(userapprove -> userapprove.getUserid().toString().equals(userToken.getUserid())).findFirst();
pictureDetail.setUserapprove(first.orElse(new Userapprove()));
}
return pictureDetail;
}
@Override
public List<OcrTaskchildPicture> getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue) {
OcrPictureDuplicateHis duplicateHis = pictureDuplicateHisService.getOne(new LambdaQueryWrapper<OcrPictureDuplicateHis>().eq(OcrPictureDuplicateHis::getPictureId, pictureId));
if (ObjectUtils.isNotEmpty(duplicateHis) && org.apache.commons.lang3.StringUtils.isNotBlank(duplicateHis.getCheckDuplicateResultHisJson())) {
OcrTaskchildPicture one = this.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, pictureId));
JSONObject jsonObject = JSONObject.parseObject(duplicateHis.getCheckDuplicateResultHisJson());
Set<String> pictureIds = jsonObject.keySet();
List<OcrTaskchildPicture> taskChildPictures = this.getPictureHistoryList(new ArrayList<>(pictureIds), one.getTaskname());
for (OcrTaskchildPicture taskChildPicture : taskChildPictures) {
taskChildPicture.setSimilarityscore(Integer.parseInt(jsonObject.getString(taskChildPicture.getPictureid().toString())));
}
if (orderValue.equals("similarityScore")) {
if ("desc".equals(orderType)) {
taskChildPictures.sort(Comparator.comparing(OcrTaskchildPicture::getSimilarityscore).reversed());
} else {
taskChildPictures.sort(Comparator.comparing(OcrTaskchildPicture::getSimilarityscore));
}
} else {
if ("desc".equals(orderType)) {
taskChildPictures.sort(Comparator.comparing(OcrTaskchildPicture::getCreatedate).reversed());
} else {
taskChildPictures.sort(Comparator.comparing(OcrTaskchildPicture::getCreatedate));
}
}
return taskChildPictures.stream().skip((pageNo - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
}
return new ArrayList<>();
}
@Override
public Page<OcrTaskchildPicture> getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId) {
Page<OcrTaskchildPicture> page = new Page<>(pageNo,pageSize);
return ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page,checkDuplicateId,pictureId,oderType,oderName);
}
}

@ -206,4 +206,15 @@
</if>
</sql>
<select id="getPackagePictureInfo" resultMap="BaseResultMap">
SELECT t2.*
FROM ocr_check_duplicate_result t1
LEFT JOIN ocr_picture t2 ON t1.picture_id = t2.ID
where t1.check_duplicate_id = #{packageId}
<if test="pictureId != null and pictureId != ''">
and t1.picture_id = #{pictureId}
</if>
ORDER BY t1.max_similarity desc, t2.create_time DESC
LIMIT 1
</select>
</mapper>

@ -1,255 +1,456 @@
<?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="cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskchildPictureMybatisDao">
<resultMap id="BaseResultMap" type="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture">
<id column="ID" property="id" jdbcType="BIGINT"/>
<result column="OCPICTUREID" property="ocpictureid" jdbcType="LONGVARCHAR"/>
<result column="PICTURERESULT" property="pictureresult" jdbcType="LONGVARCHAR"/>
<result column="PICTURECOMPARE" property="picturecompare" jdbcType="LONGVARCHAR"/>
<result column="DEPTID" property="deptid" jdbcType="VARCHAR"/>
<result column="TENANTID" property="tenantid" jdbcType="BIGINT"/>
<result column="PACKAGEID" property="packageid" jdbcType="BIGINT"/>
<result column="PICTUREID" property="pictureid" jdbcType="BIGINT"/>
<result column="CATEGORY" property="category" jdbcType="VARCHAR"/>
<result column="CATEGORYID" property="categoryid" jdbcType="BIGINT"/>
<result column="SPECIFICATION" property="specification" jdbcType="VARCHAR"/>
<result column="BUESSINESSNO" property="buessinessno" jdbcType="VARCHAR"/>
<result column="STATES" property="states" jdbcType="INTEGER"/>
<result column="PROCESSINSTANCEID" property="processinstanceid" jdbcType="VARCHAR"/>
<result column="PROCESSDEFINITIONID" property="processdefinitionid" jdbcType="VARCHAR"/>
<result column="DEPLOYMENTID" property="deploymentid" jdbcType="VARCHAR"/>
<result column="ASSIGNEENAME" property="assigneename" jdbcType="VARCHAR"/>
<result column="ASSIGNEE" property="assignee" jdbcType="VARCHAR"/>
<result column="UPDATEUSER" property="updateuser" jdbcType="VARCHAR"/>
<result column="UPDATETIME" property="updatetime" jdbcType="BIGINT"/>
<result column="FILEANNEX" property="fileannex" jdbcType="VARCHAR"/>
<result column="GUIDANG" property="guidang" jdbcType="INTEGER"/>
<result column="CREATEUSER" property="createuser" jdbcType="VARCHAR"/>
<result column="CREATEUSERNAME" property="createusername" jdbcType="VARCHAR"/>
<result column="CREATEDATE" property="createdate" jdbcType="BIGINT"/>
<result column="USERID" property="userid" jdbcType="BIGINT"/>
<result column="USERNAME" property="username" jdbcType="VARCHAR"/>
<result column="FROMTASKID" property="fromtaskid" jdbcType="VARCHAR"/>
<result column="FROMTASKNAME" property="fromtaskname" jdbcType="VARCHAR"/>
<result column="FROMUSERID" property="fromuserid" jdbcType="VARCHAR"/>
<result column="FROMPROJECTID" property="fromprojectid" jdbcType="VARCHAR"/>
<result column="FROMPLANID" property="fromplanid" jdbcType="VARCHAR"/>
<result column="FROMUPTIME" property="fromuptime" jdbcType="BIGINT"/>
<result column="FROMSOURCEID" property="fromsourceid" jdbcType="VARCHAR"/>
<result column="HAVEPOINTS" property="havepoints" jdbcType="INTEGER"/>
<result column="TASKNAME" property="taskname" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
ID AS id,
OCPICTUREID AS ocpictureid,
PICTURERESULT AS pictureresult,
PICTURECOMPARE AS picturecompare,
DEPTID AS deptid,
TENANTID AS tenantid,
PACKAGEID AS packageid,
PICTUREID AS pictureid,
CATEGORY AS category,
CATEGORYID AS categoryid,
SPECIFICATION AS specification,
BUESSINESSNO AS buessinessno,
STATES AS states,
PROCESSINSTANCEID AS processinstanceid,
PROCESSDEFINITIONID AS processdefinitionid,
DEPLOYMENTID AS deploymentid,
ASSIGNEENAME AS assigneename,
ASSIGNEE AS assignee,
UPDATEUSER AS updateuser,
UPDATETIME AS updatetime,
FILEANNEX AS fileannex,
GUIDANG AS guidang,
CREATEUSER AS createuser,
CREATEUSERNAME AS createusername,
CREATEDATE AS createdate,
USERID AS userid,
USERNAME AS username,
FROMTASKID AS fromtaskid,
FROMTASKNAME AS fromtaskname,
FROMUSERID AS fromuserid,
FROMPROJECTID AS fromprojectid,
FROMPLANID AS fromplanid,
FROMUPTIME AS fromuptime,
FROMSOURCEID AS fromsourceid,
HAVEPOINTS AS havepoints,
TASKNAME AS taskname
</sql>
<resultMap id="BaseResultMap" type="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture">
<id column="ID" property="id" jdbcType="BIGINT"/>
<result column="OCPICTUREID" property="ocpictureid" jdbcType="LONGVARCHAR"/>
<result column="PICTURERESULT" property="pictureresult" jdbcType="LONGVARCHAR"/>
<result column="PICTURECOMPARE" property="picturecompare" jdbcType="LONGVARCHAR"/>
<result column="DEPTID" property="deptid" jdbcType="VARCHAR"/>
<result column="TENANTID" property="tenantid" jdbcType="BIGINT"/>
<result column="PACKAGEID" property="packageid" jdbcType="BIGINT"/>
<result column="PICTUREID" property="pictureid" jdbcType="BIGINT"/>
<result column="CATEGORY" property="category" jdbcType="VARCHAR"/>
<result column="CATEGORYID" property="categoryid" jdbcType="BIGINT"/>
<result column="SPECIFICATION" property="specification" jdbcType="VARCHAR"/>
<result column="BUESSINESSNO" property="buessinessno" jdbcType="VARCHAR"/>
<result column="STATES" property="states" jdbcType="INTEGER"/>
<result column="PROCESSINSTANCEID" property="processinstanceid" jdbcType="VARCHAR"/>
<result column="PROCESSDEFINITIONID" property="processdefinitionid" jdbcType="VARCHAR"/>
<result column="DEPLOYMENTID" property="deploymentid" jdbcType="VARCHAR"/>
<result column="ASSIGNEENAME" property="assigneename" jdbcType="VARCHAR"/>
<result column="ASSIGNEE" property="assignee" jdbcType="VARCHAR"/>
<result column="UPDATEUSER" property="updateuser" jdbcType="VARCHAR"/>
<result column="UPDATETIME" property="updatetime" jdbcType="BIGINT"/>
<result column="FILEANNEX" property="fileannex" jdbcType="VARCHAR"/>
<result column="GUIDANG" property="guidang" jdbcType="INTEGER"/>
<result column="CREATEUSER" property="createuser" jdbcType="VARCHAR"/>
<result column="CREATEUSERNAME" property="createusername" jdbcType="VARCHAR"/>
<result column="CREATEDATE" property="createdate" jdbcType="BIGINT"/>
<result column="USERID" property="userid" jdbcType="BIGINT"/>
<result column="USERNAME" property="username" jdbcType="VARCHAR"/>
<result column="FROMTASKID" property="fromtaskid" jdbcType="VARCHAR"/>
<result column="FROMTASKNAME" property="fromtaskname" jdbcType="VARCHAR"/>
<result column="FROMUSERID" property="fromuserid" jdbcType="VARCHAR"/>
<result column="FROMPROJECTID" property="fromprojectid" jdbcType="VARCHAR"/>
<result column="FROMPLANID" property="fromplanid" jdbcType="VARCHAR"/>
<result column="FROMUPTIME" property="fromuptime" jdbcType="BIGINT"/>
<result column="FROMSOURCEID" property="fromsourceid" jdbcType="VARCHAR"/>
<result column="HAVEPOINTS" property="havepoints" jdbcType="INTEGER"/>
<result column="TASKNAME" property="taskname" jdbcType="VARCHAR"/>
</resultMap>
<resultMap id="PictureResultMap" type="cn.jyjz.xiaoyao.ocr.vo.PictureDetailVo">
<result column="picture_id" property="pictureId"/>
<result column="taskChildId" property="taskChildId"/>
<result column="taskname" property="taskName"/>
<result column="STATES" property="states"/>
<result column="similarity_score" property="similarityScore"/>
<result column="location" property="location"/>
<result column="work_status" property="workStatus"/>
<result column="finishtime" property="finishTime"/>
<result column="field1" property="field1"/>
<result column="field2" property="field2"/>
<result column="field3" property="field3"/>
<result column="field4" property="field4"/>
<result column="field5" property="field5"/>
<result column="field6" property="field6"/>
<result column="field7" property="field7"/>
<result column="field8" property="field8"/>
<result column="field9" property="field9"/>
<result column="field10" property="field10"/>
<result column="field11" property="field11"/>
<result column="field12" property="field12"/>
<result column="field13" property="field13"/>
<result column="field14" property="field14"/>
<result column="field15" property="field15"/>
<result column="field16" property="field16"/>
<result column="field17" property="field17"/>
<result column="imgUrl" property="imgUrl"/>
<association property="pictureInfo" javaType="cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo">
<id column="id" property="id"/>
<result column="picture_id" property="pictureId"/>
<result column="img_size" property="imgSize"/>
<result column="img_format" property="imgFormat"/>
<result column="img_measure" property="imgMeasure"/>
<result column="upload_time" property="uploadTime"/>
<result column="create_time" property="createTime"/>
<result column="img_space" property="imgSpace"/>
<result column="tag_time" property="tagTime"/>
<result column="source" property="source"/>
</association>
<collection property="userapproveList" ofType="cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove">
<id column="id" property="id"/>
<result column="userid" property="userid"/>
<result column="formid" property="formid"/>
<result column="taskname" property="taskname"/>
<result column="statshis" property="statshis"/>
<result column="commenthis" property="commenthis"/>
<result column="taskindex" property="taskindex"/>
<result column="taskno" property="taskno"/>
<result column="username" property="username"/>
<result column="createdate" property="createdate"/>
<result column="taskcomment" property="taskcomment"/>
</collection>
</resultMap>
<sql id="Base_Column_List">
ID AS id,
OCPICTUREID AS ocpictureid,
PICTURERESULT AS pictureresult,
PICTURECOMPARE AS picturecompare,
DEPTID AS deptid,
TENANTID AS tenantid,
PACKAGEID AS packageid,
PICTUREID AS pictureid,
CATEGORY AS category,
CATEGORYID AS categoryid,
SPECIFICATION AS specification,
BUESSINESSNO AS buessinessno,
STATES AS states,
PROCESSINSTANCEID AS processinstanceid,
PROCESSDEFINITIONID AS processdefinitionid,
DEPLOYMENTID AS deploymentid,
ASSIGNEENAME AS assigneename,
ASSIGNEE AS assignee,
UPDATEUSER AS updateuser,
UPDATETIME AS updatetime,
FILEANNEX AS fileannex,
GUIDANG AS guidang,
CREATEUSER AS createuser,
CREATEUSERNAME AS createusername,
CREATEDATE AS createdate,
USERID AS userid,
USERNAME AS username,
FROMTASKID AS fromtaskid,
FROMTASKNAME AS fromtaskname,
FROMUSERID AS fromuserid,
FROMPROJECTID AS fromprojectid,
FROMPLANID AS fromplanid,
FROMUPTIME AS fromuptime,
FROMSOURCEID AS fromsourceid,
HAVEPOINTS AS havepoints,
TASKNAME AS taskname
</sql>
<sql id="Base_Where">
<where>
<trim prefixOverrides="and|or">
<if test="id != null"> and ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend}</if>
<if test="ocpictureid != null"> and OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}</if>
<if test="pictureresult != null"> and PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend}</if>
<if test="picturecompare != null"> and PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend}</if>
<if test="deptid != null"> and DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend}</if>
<if test="tenantid != null"> and TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend}</if>
<if test="packageid != null"> and PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend}</if>
<if test="pictureid != null"> and PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend}</if>
<if test="category != null"> and CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend}</if>
<if test="categoryid != null"> and CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend}</if>
<if test="specification != null"> and SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend}</if>
<if test="buessinessno != null"> and BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend}</if>
<if test="states != null"> and STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend}</if>
<if test="processinstanceid != null"> and PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend}</if>
<if test="processdefinitionid != null"> and PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend}</if>
<if test="deploymentid != null"> and DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend}</if>
<if test="assigneename != null"> and ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend}</if>
<if test="assignee != null"> and ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend}</if>
<if test="updateuser != null"> and UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend}</if>
<if test="updatetime != null"> and UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend}</if>
<if test="fileannex != null"> and FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend}</if>
<if test="guidang != null"> and GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend}</if>
<if test="createuser != null"> and CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend}</if>
<if test="createusername != null"> and CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend}</if>
<if test="createdate != null"> and CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend}</if>
<if test="username != null"> and USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend}</if>
<if test="fromtaskid != null"> and FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend}</if>
<if test="fromtaskname != null"> and FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend}</if>
<if test="fromuserid != null"> and FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend}</if>
<if test="fromprojectid != null"> and FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend}</if>
<if test="fromplanid != null"> and FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend}</if>
<if test="fromuptime != null"> and FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend}</if>
<if test="fromsourceid != null"> and FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend}</if>
<if test="havepoints != null"> and HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend}</if>
<if test="taskname != null"> and TASKNAME ${taskname.dataOp} ${taskname.likestar}#{taskname.value}${taskname.likeend}</if>
<if test="userid != null"> and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend}</if>
</trim>
</where>
<if test="page != null">
<if test="page.sortname != null"> order by ${page.sortname} ${page.sortorder}</if>
limit ${page.start}, ${page.Pagesize}
</if>
</sql>
<sql id="Base_Where_union">
<where>
<trim prefixOverrides="and|or">
<if test="id != null"> and tcp.ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend}</if>
<if test="ocpictureid != null"> and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}</if>
<if test="pictureresult != null"> and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend}</if>
<if test="picturecompare != null"> and tcp.PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend}</if>
<if test="deptid != null"> and tcp.DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend}</if>
<if test="tenantid != null"> and tcp.TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend}</if>
<if test="packageid != null"> and tcp.PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend}</if>
<if test="pictureid != null"> and tcp.PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend}</if>
<if test="category != null"> and tcp.CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend}</if>
<if test="categoryid != null"> and tcp.CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend}</if>
<if test="specification != null"> and tcp.SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend}</if>
<if test="buessinessno != null"> and tcp.BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend}</if>
<!-- <if test="states != null"> and tcp.STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend}</if>-->
<if test="processinstanceid != null"> and tcp.PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend}</if>
<if test="processdefinitionid != null"> and tcp.PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend}</if>
<if test="deploymentid != null"> and tcp.DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend}</if>
<if test="assigneename != null"> and tcp.ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend}</if>
<if test="assignee != null"> and tcp.ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend}</if>
<if test="updateuser != null"> and tcp.UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend}</if>
<if test="updatetime != null"> and tcp.UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend}</if>
<if test="fileannex != null"> and tcp.FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend}</if>
<if test="guidang != null"> and tcp.GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend}</if>
<if test="createuser != null"> and tcp.CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend}</if>
<if test="createusername != null"> and tcp.CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend}</if>
<if test="createdate != null"> and tcp.CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend}</if>
<if test="createdateStart != null"> and tcp.CREATEDATE ${createdateStart.dataOp} ${createdateStart.likestar}#{createdateStart.value}${createdateStart.likeend}</if>
<if test="createdateEnd != null"> and tcp.CREATEDATE ${createdateEnd.dataOp} ${createdateEnd.likestar}#{createdateEnd.value}${createdateEnd.likeend}</if>
<if test="username != null"> and tcp.USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend}</if>
<if test="fromtaskid != null"> and tcp.FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend}</if>
<if test="fromtaskname != null"> and tcp.FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend}</if>
<!-- <if test="fromuserid != null"> and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend}</if>-->
<!-- <if test="fromprojectid != null"> and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend}</if>-->
<!-- <if test="fromplanid != null"> and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend}</if>-->
<if test="fromuptime != null"> and tcp.FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend}</if>
<if test="fromuserid != null"> and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}
<!-- #{fromuserid.value}-->
<if test="fromuserid.value instanceof java.util.List">
<foreach item="item" collection="fromuserid.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!fromuserid.value instanceof java.util.List">
#{fromuserid.value}
</if>
${fromuserid.likeend}
</if>
<if test="fromprojectid != null"> and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}
<!-- #{fromuserid.value}-->
<if test="fromprojectid.value instanceof java.util.List">
<foreach item="item" collection="fromprojectid.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!fromprojectid.value instanceof java.util.List">
#{fromprojectid.value}
</if>
${fromprojectid.likeend}
</if>
<if test="fromplanid != null"> and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}
<!-- #{fromuserid.value}-->
<if test="fromplanid.value instanceof java.util.List">
<foreach item="item" collection="fromplanid.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!fromplanid.value instanceof java.util.List">
#{fromplanid.value}
</if>
${fromplanid.likeend}
</if>
<if test="states != null"> and tcp.STATES ${states.dataOp} ${states.likestar}
<!-- #{fromuserid.value}-->
<if test="states.value instanceof java.util.List">
<foreach item="item" collection="states.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!states.value instanceof java.util.List">
#{states.value}
</if>
${states.likeend}
</if>
<if test="fromsourceid != null"> and tcp.FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}
<!-- #{fromuserid.value}-->
<if test="fromsourceid.value instanceof java.util.List">
<foreach item="item" collection="fromsourceid.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!fromsourceid.value instanceof java.util.List">
#{fromsourceid.value}
</if>
${fromsourceid.likeend}
</if>
<!-- <if test="fromuserid.value instanceof java.util.List"> and tcp.FROMUSERID-->
<!-- in-->
<!-- <foreach item="item" collection="fromuserid.value" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<if test="havepoints != null"> and tcp.HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend}</if>
<if test="taskname != null"> and tcp.TASKNAME ${taskname.dataOp} ${taskname.likestar}#{taskname.value}${taskname.likeend}</if>
<if test="userid != null"> and tcp.USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend}</if>
</trim>
</where>
</sql>
<select id="listFinal" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture" parameterType="java.util.Map">
select tcp.*,pic.field11 reporttime,pic.similarity_score similarityscore from (
select
tc.*
from ocr_taskchild_picture tc,OA_USERFINAL_T uf
<sql id="Base_Where">
<where>
<trim prefixOverrides="and|or">
<if test="id != null">
and ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend}
</if>
<if test="ocpictureid != null">
and OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}
</if>
<if test="pictureresult != null">
and PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend}
</if>
<if test="picturecompare != null">
and PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend}
</if>
<if test="deptid != null">
and DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend}
</if>
<if test="tenantid != null">
and TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend}
</if>
<if test="packageid != null">
and PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend}
</if>
<if test="pictureid != null">
and PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend}
</if>
<if test="category != null">
and CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend}
</if>
<if test="categoryid != null">
and CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend}
</if>
<if test="specification != null">
and SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend}
</if>
<if test="buessinessno != null">
and BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend}
</if>
<if test="states != null">
and STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend}
</if>
<if test="processinstanceid != null">
and PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend}
</if>
<if test="processdefinitionid != null">
and PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend}
</if>
<if test="deploymentid != null">
and DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend}
</if>
<if test="assigneename != null">
and ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend}
</if>
<if test="assignee != null">
and ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend}
</if>
<if test="updateuser != null">
and UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend}
</if>
<if test="updatetime != null">
and UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend}
</if>
<if test="fileannex != null">
and FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend}
</if>
<if test="guidang != null">
and GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend}
</if>
<if test="createuser != null">
and CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend}
</if>
<if test="createusername != null">
and CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend}
</if>
<if test="createdate != null">
and CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend}
</if>
<if test="username != null">
and USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend}
</if>
<if test="fromtaskid != null">
and FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend}
</if>
<if test="fromtaskname != null">
and FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend}
</if>
<if test="fromuserid != null">
and FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend}
</if>
<if test="fromprojectid != null">
and FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend}
</if>
<if test="fromplanid != null">
and FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend}
</if>
<if test="fromuptime != null">
and FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend}
</if>
<if test="fromsourceid != null">
and FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend}
</if>
<if test="havepoints != null">
and HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend}
</if>
<if test="taskname != null">
and TASKNAME ${taskname.dataOp} ${taskname.likestar}#{taskname.value}${taskname.likeend}
</if>
<if test="userid != null">
and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend}
</if>
</trim>
</where>
<if test="page != null">
<if test="page.sortname != null">
order by ${page.sortname} ${page.sortorder}
</if>
limit ${page.start}, ${page.Pagesize}
</if>
</sql>
<sql id="Base_Where_union">
<where>
<trim prefixOverrides="and|or">
<if test="id != null">
and tcp.ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend}
</if>
<if test="ocpictureid != null">
and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend}
</if>
<if test="pictureresult != null">
and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend}
</if>
<if test="picturecompare != null">
and tcp.PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend}
</if>
<if test="deptid != null">
and tcp.DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend}
</if>
<if test="tenantid != null">
and tcp.TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend}
</if>
<if test="packageid != null">
and tcp.PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend}
</if>
<if test="pictureid != null">
and tcp.PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend}
</if>
<if test="category != null">
and tcp.CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend}
</if>
<if test="categoryid != null">
and tcp.CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend}
</if>
<if test="specification != null">
and tcp.SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend}
</if>
<if test="buessinessno != null">
and tcp.BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend}
</if>
<!-- <if test="states != null"> and tcp.STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend}</if>-->
<if test="processinstanceid != null">
and tcp.PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend}
</if>
<if test="processdefinitionid != null">
and tcp.PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend}
</if>
<if test="deploymentid != null">
and tcp.DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend}
</if>
<if test="assigneename != null">
and tcp.ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend}
</if>
<if test="assignee != null">
and tcp.ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend}
</if>
<if test="updateuser != null">
and tcp.UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend}
</if>
<if test="updatetime != null">
and tcp.UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend}
</if>
<if test="fileannex != null">
and tcp.FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend}
</if>
<if test="guidang != null">
and tcp.GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend}
</if>
<if test="createuser != null">
and tcp.CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend}
</if>
<if test="createusername != null">
and tcp.CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend}
</if>
<if test="createdate != null">
and tcp.CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend}
</if>
<if test="createdateStart != null">
and tcp.CREATEDATE ${createdateStart.dataOp} ${createdateStart.likestar}#{createdateStart.value}${createdateStart.likeend}
</if>
<if test="createdateEnd != null">
and tcp.CREATEDATE ${createdateEnd.dataOp} ${createdateEnd.likestar}#{createdateEnd.value}${createdateEnd.likeend}
</if>
<if test="username != null">
and tcp.USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend}
</if>
<if test="fromtaskid != null">
and tcp.FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend}
</if>
<if test="fromtaskname != null">
and tcp.FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend}
</if>
<!-- <if test="fromuserid != null"> and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend}</if>-->
<!-- <if test="fromprojectid != null"> and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend}</if>-->
<!-- <if test="fromplanid != null"> and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend}</if>-->
<if test="fromuptime != null">
and tcp.FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend}
</if>
<if test="fromuserid != null">
and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}
<!-- #{fromuserid.value}-->
<if test="fromuserid.value instanceof java.util.List">
<foreach item="item" collection="fromuserid.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!fromuserid.value instanceof java.util.List">
#{fromuserid.value}
</if>
${fromuserid.likeend}
</if>
<if test="fromprojectid != null">
and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}
<!-- #{fromuserid.value}-->
<if test="fromprojectid.value instanceof java.util.List">
<foreach item="item" collection="fromprojectid.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!fromprojectid.value instanceof java.util.List">
#{fromprojectid.value}
</if>
${fromprojectid.likeend}
</if>
<if test="fromplanid != null">
and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}
<!-- #{fromuserid.value}-->
<if test="fromplanid.value instanceof java.util.List">
<foreach item="item" collection="fromplanid.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!fromplanid.value instanceof java.util.List">
#{fromplanid.value}
</if>
${fromplanid.likeend}
</if>
<if test="states != null">
and tcp.STATES ${states.dataOp} ${states.likestar}
<!-- #{fromuserid.value}-->
<if test="states.value instanceof java.util.List">
<foreach item="item" collection="states.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!states.value instanceof java.util.List">
#{states.value}
</if>
${states.likeend}
</if>
<if test="fromsourceid != null">
and tcp.FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}
<!-- #{fromuserid.value}-->
<if test="fromsourceid.value instanceof java.util.List">
<foreach item="item" collection="fromsourceid.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!fromsourceid.value instanceof java.util.List">
#{fromsourceid.value}
</if>
${fromsourceid.likeend}
</if>
<!-- <if test="fromuserid.value instanceof java.util.List"> and tcp.FROMUSERID-->
<!-- in-->
<!-- <foreach item="item" collection="fromuserid.value" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<if test="havepoints != null">
and tcp.HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend}
</if>
<if test="taskname != null">
and tcp.TASKNAME ${taskname.dataOp} ${taskname.likestar}#{taskname.value}${taskname.likeend}
</if>
<if test="userid != null">
and tcp.USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend}
</if>
</trim>
</where>
</sql>
<select id="listFinal" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture"
parameterType="java.util.Map">
select tcp.*, pic.field11 reporttime, pic.similarity_score similarityscore from (
select tc.*
from ocr_taskchild_picture tc,
OA_USERFINAL_T uf
where tc.ID = uf.FORMID
<if test="thisLoginUserid != null">
and uf.USERID ${thisLoginUserid.dataOp}
${thisLoginUserid.likestar}#{thisLoginUserid.value}${thisLoginUserid.likeend}
and uf.USERID ${thisLoginUserid.dataOp} ${thisLoginUserid.likestar}#{thisLoginUserid.value}${thisLoginUserid.likeend}
</if>
UNION
select
tc.*
tc.*
from ocr_taskchild_picture tc
where tc.STATES = 5
) as tcp left join ocr_picture pic
on tcp.PICTUREID = pic.ID
) as tcp
left join ocr_picture pic
on tcp.PICTUREID = pic.ID
<include refid="Base_Where_union">
</include>
<if test="fromuptimeStart != null">
@ -265,35 +466,50 @@
limit ${page.start}, ${page.Pagesize}
</if>
</select>
<select id="listFinalCount" resultType="java.lang.Long" parameterType="java.util.Map">
select count(tcp.ID) from (
select
tc.*
from ocr_taskchild_picture tc,OA_USERFINAL_T uf
where tc.ID = uf.FORMID
<if test="thisLoginUserid != null"> and uf.USERID ${thisLoginUserid.dataOp} ${thisLoginUserid.likestar}#{thisLoginUserid.value}${thisLoginUserid.likeend}</if>
UNION
select
tc.*
from ocr_taskchild_picture tc
where tc.STATES = 5
) as tcp
<include refid="Base_Where_union"></include>
</select>
<select id="listFinalCount" resultType="java.lang.Long" parameterType="java.util.Map">
select count(tcp.ID) from (
select tc.*
from ocr_taskchild_picture tc,
OA_USERFINAL_T uf
where tc.ID = uf.FORMID
<if test="thisLoginUserid != null">
and uf.USERID ${thisLoginUserid.dataOp} ${thisLoginUserid.likestar}#{thisLoginUserid.value}${thisLoginUserid.likeend}
</if>
UNION
select
tc.*
from ocr_taskchild_picture tc
where tc.STATES = 5
) as tcp
<include refid="Base_Where_union">
</include>
</select>
<select id="listmytask" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro" parameterType="java.util.Map">
<select id="listmytask" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPictureAppro"
parameterType="java.util.Map">
select tcp.* from (
select
tc.*,uf.COMMENTHIS,uf.TASKNAME as TASKNAMEHIS,uf.STATSHIS,uf.TASKINDEX,uf.TASKNO
select tc.*,
uf.COMMENTHIS,
uf.TASKNAME as TASKNAMEHIS,
uf.STATSHIS,
uf.TASKINDEX,
uf.TASKNO
from ocr_taskchild_picture tc
LEFT JOIN OA_USERAPPROVE_T uf ON tc.ID = uf.ID
where tc.ASSIGNEE = #{searchassignee} and tc.TENANTID=#{searchtenantid}
and tc.STATES=2
LEFT JOIN OA_USERAPPROVE_T uf ON tc.ID = uf.ID
where tc.ASSIGNEE = #{searchassignee}
and tc.TENANTID = #{searchtenantid}
and tc.STATES = 2
UNION
select
tc.*,uf.COMMENTHIS,uf.TASKNAME as TASKNAMEHIS,uf.STATSHIS,uf.TASKINDEX,uf.TASKNO
from ocr_taskchild_picture tc,OA_USERAPPROVE_T uf
where tc.ID = uf.FORMID and tc.TENANTID=#{searchtenantid}
select tc.*,
uf.COMMENTHIS,
uf.TASKNAME as TASKNAMEHIS,
uf.STATSHIS,
uf.TASKINDEX,
uf.TASKNO
from ocr_taskchild_picture tc,
OA_USERAPPROVE_T uf
where tc.ID = uf.FORMID
and tc.TENANTID = #{searchtenantid}
<if test="thisLoginUserid != null">
and uf.USERID = #{thisLoginUserid}
</if>
@ -308,18 +524,19 @@
limit ${page.start}, ${page.Pagesize}
</if>
</select>
<select id="listmytaskCount" resultType="java.lang.Long" parameterType="java.util.Map">
<select id="listmytaskCount" resultType="java.lang.Long" parameterType="java.util.Map">
select count(tcp.ID) from (
select
tc.*
select tc.*
from ocr_taskchild_picture tc
where tc.ASSIGNEE = #{searchassignee} and tc.TENANTID=#{searchtenantid}
and tc.STATES=2
where tc.ASSIGNEE = #{searchassignee}
and tc.TENANTID = #{searchtenantid}
and tc.STATES = 2
UNION
select
tc.*
from ocr_taskchild_picture tc,OA_USERAPPROVE_T uf
where tc.ID = uf.FORMID and tc.TENANTID=#{searchtenantid}
select tc.*
from ocr_taskchild_picture tc,
OA_USERAPPROVE_T uf
where tc.ID = uf.FORMID
and tc.TENANTID = #{searchtenantid}
<if test="thisLoginUserid != null">
and uf.USERID = #{thisLoginUserid}
</if>
@ -329,17 +546,105 @@
</select>
<select id="selectocpicture" resultType="String">
SELECT OCPICTUREID
FROM ocr_taskchild_picture
WHERE TENANTID = #{tenantid}
AND PACKAGEID = #{packageid}
AND ID = #{id}
</select>
<select id="selectocpicture" resultType="String">
SELECT
OCPICTUREID
FROM
ocr_taskchild_picture
WHERE
TENANTID = #{tenantid}
AND PACKAGEID = #{packageid}
AND ID = #{id}
</select>
<select id="getPictureHistoryList" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture">
SELECT t2.*,t1.imgUrl,
ifnull(t3.STATSHIS, 1) historyStates
FROM ocr_picture t1
LEFT JOIN ocr_taskchild_picture t2
on t1.ID = t2.PICTUREID
LEFT JOIN oa_userapprove_t t3 on t2.ID = t3.FORMID and t3.TASKNAME = '${taskname}'
where t1.ID in
<foreach collection="pictureIds" open="(" close=")" item="item" separator="," index="index">
#{item}
</foreach>
</select>
<select id="getPictureDetail" resultMap="PictureResultMap">
SELECT t1.ID,
t1.imgUrl,
t1.taskName,
t1.work_status,
t1.field1,
t1.field2,
t1.field3,
t1.field4,
t1.field5,
t1.field6,
t1.field7,
t1.field8,
t1.field9,
t1.field10,
t1.field11,
t1.field12,
t1.field13,
t1.field14,
t1.field15,
t1.field16,
t1.field17,
t1.similarity_score,
t1.location,
t2.id,
t2.picture_id,
t2.img_size,
t2.img_format,
t2.img_measure,
t2.upload_time,
t2.create_time,
t2.img_space,
t2.tag_time,
t2.source,
t3.STATES,
t3.PROCESSINSTANCEID as processInstanceId,
t3.PROCESSDEFINITIONID as processDefinitionId,
t3.CREATEDATE,
t3.USERID,
t3.USERNAME,
t3.TASKNAME,
t3.FINISHTIME,
t3.ID as taskChildId,
t4.ID,
t4.USERID,
t4.FORMID,
t4.TASKNAME,
t4.STATSHIS,
t4.COMMENTHIS,
t4.TASKINDEX,
t4.TASKNO,
t4.USERNAME,
t4.CREATEDATE,
t4.TASKCOMMENT
FROM ocr_picture t1
LEFT JOIN ocr_picture_info t2 on t1.ID = t2.picture_id
LEFT JOIN ocr_taskchild_picture t3 on t1.ID = t3.PICTUREID
LEFT JOIN oa_userapprove_t t4 on t4.FORMID = t3.ID
where t1.ID = #{pictureId}
</select>
<select id="getPackageSimilarityList" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture">
SELECT t3.*,t2.imgUrl,
t1.max_similarity similarityscore,
ifnull(t4.STATSHIS, 1) historyStates
FROM ocr_check_duplicate_result t1
LEFT JOIN ocr_picture t2 ON t1.picture_id = t2.ID
LEFT JOIN ocr_taskchild_picture t3 ON t2.ID = t3.PICTUREID
LEFT JOIN oa_userapprove_t t4 ON t3.ID = t4.FORMID
WHERE t1.check_duplicate_id = #{checkDuplicateId}
<if test="pictureId != null and pictureId != ''">
and t1.picture_id != #{pictureId}
</if>
<if test="oderName == 'similarityScore'">
order by t1.max_similarity ${oderType}
</if>
<if test="oderName == 'createdate'">
order by t2.createdate ${oderType}
</if>
</select>
</mapper>

Loading…
Cancel
Save