diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrCheckDuplicateController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrCheckDuplicateController.java index 925c72be..d0dca01f 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrCheckDuplicateController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrCheckDuplicateController.java @@ -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); } - - } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPictureController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPictureController.java index f9cba1e4..d42bf2b5 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPictureController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPictureController.java @@ -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 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"); @@ -385,4 +385,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); + } + + /** + * 方法描述:根据id字符串组删除对象方法,例如1,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)); + } + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskPackageController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskPackageController.java index 1d671a2b..6b40d5d8 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskPackageController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskPackageController.java @@ -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; /** *

@@ -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> result = ocrTaskPackageService.getPackageList(pageNo, pageSize, packageName); + return ResultVoUtil.success(result); + + } + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java index 15f79dcf..ec45cd91 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java @@ -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 collect1=new ArrayList<>(); - for (JSONObject asd:collect){ + List collect1 = new ArrayList<>(); + for (JSONObject asd : collect) { QueryWrapper 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> 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 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 orderType, + @RequestParam(name = "orderName") String orderName, + @RequestParam(name = "checkDuplicateId") String checkDuplicateId, + @RequestParam(name = "pictureId", required = false) String pictureId, + HttpServletRequest req) { + Page result = ocrTaskchildPictureService.getPackageSimilarityList(pageNo, pageSize, orderType, orderName, checkDuplicateId, pictureId); + return ResultVoUtil.success(result); + + } + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrPictureMybatisDao.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrPictureMybatisDao.java index f1a35467..19b05974 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrPictureMybatisDao.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrPictureMybatisDao.java @@ -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 getPackagePictureInfo(@Param("packageId") String packageId, @Param("pictureId") String pictureId); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskPackageMapper.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskPackageMapper.java index 25ae89a6..3fccfb7a 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskPackageMapper.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskPackageMapper.java @@ -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; /** *

@@ -15,4 +20,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface OcrTaskPackageMapper extends BaseMapper { + Page> getPackageList(Page> page, @Param("packageName") String packageName); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskchildPictureMybatisDao.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskchildPictureMybatisDao.java index 6caf5b19..9d5643b6 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskchildPictureMybatisDao.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrTaskchildPictureMybatisDao.java @@ -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 getPictureHistoryList(@Param("pictureIds") List pictureIds, @Param("taskname") String taskname); + + PictureDetailVo getPictureDetail(String pictureId); + + Page getPackageSimilarityList(Page page, @Param("checkDuplicateId") String checkDuplicateId, @Param("pictureId") String pictureId, @Param("oderType") String oderType, @Param("oderName") String oderName); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture.java index 9395fff9..b50fe767 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture.java @@ -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 diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrCheckDuplicateService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrCheckDuplicateService.java index b405c1e8..3b6cce4e 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrCheckDuplicateService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrCheckDuplicateService.java @@ -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 queryByCheckDuplicateNo(String checkDuplicateNo, Long tenantId); + /** + * 查询相似度列表 + * + * @param pageNo + * @param pageSize + * @param pictureId + * @param orderType + * @param orderValue + * @return + */ + IPage queryPageListByCheckNo(String checkDuplicateNo, String tenantId, Integer pageNo, Integer pageSize); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrTaskPackageService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrTaskPackageService.java index 55d66b9c..161eaa9a 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrTaskPackageService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrTaskPackageService.java @@ -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; /** *

@@ -26,4 +25,14 @@ public interface IOcrTaskPackageService extends IService { * @return */ ResultVo saveTaskPackage(OcrTaskPackageDto ocrTaskPackage); + + /** + * 获取任务包列表 + * + * @param pageNo + * @param pageSize + * @param packageName + * @return + */ + Page> getPackageList(Integer pageNo, Integer pageSize, String packageName); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPictureService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPictureService.java index 051a7143..63984ac7 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPictureService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPictureService.java @@ -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 { Map getOcrPictureClassifyAndHash(String img); String getServerUrl(); + + OcrPicture getPackagePictureInfo(String packageId, String pictureId); + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java index 3dfdc20a..fe561b64 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java @@ -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 listmytask(Map query); public Long listmytaskCount(Map query); - + + List getPictureHistoryList(List pictureIds, String taskname); + + PictureDetailVo getPictureDetail(String pictureId, UserToken userToken); + + List getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue); + + Page getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId); + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrCheckDuplicateServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrCheckDuplicateServiceImpl.java index 23c555a8..3f60c2be 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrCheckDuplicateServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrCheckDuplicateServiceImpl.java @@ -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; /** *

diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java index 74191da2..7afe48d8 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java @@ -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 ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno) { //图片错误信息 @@ -335,6 +312,12 @@ public class OcrPictureServiceImpl extends BaseServiceImpl().eq(OcrTaskchildPicture::getPictureid, ocrPicture.getId())); ocrTaskchildPicture.setBuessinessno(buessinessno); diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskPackageServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskPackageServiceImpl.java index 8187af47..576fca32 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskPackageServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskPackageServiceImpl.java @@ -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,41 @@ public class OcrTaskPackageServiceImpl extends ServiceImpl> getPackageList(Integer pageNo, Integer pageSize, String packageName) { + Page> page = new Page<>(pageNo, pageSize); + Page> result = taskPackageMapper.getPackageList(page, packageName); + if(CollectionUtils.isNotEmpty(result.getRecords())){ + List> records = result.getRecords(); + for (Map record : records) { + record.put("id",record.get("id").toString()); + record.put("checkDuplicateId",record.get("checkDuplicateId").toString()); + Object search = record.getOrDefault("search", null); + if(search!=null){ + Map map = JSONObject.parseObject(search.toString(), Map.class); + record.putAll(map); + } + } + } + return result; + } } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java index 9f9f0c86..68581b15 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java @@ -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().eq(OcrTaskchildPicture::getPictureid, ocrPicture.getId())); + if(ObjectUtils.isNotEmpty(one)){ + continue; + } //查询项目对象 if (null == ocrPicture.getCategoryid()) { //TODO 没有对应项目,返回提示信息 @@ -620,4 +621,60 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl query) { return this.ocrtaskchildpicturemybatisdao.listmytaskCount(query); } + + @Override + public List getPictureHistoryList(List pictureIds, String taskname) { + return ocrtaskchildpicturemybatisdao.getPictureHistoryList(pictureIds,taskname); + } + + @Override + public PictureDetailVo getPictureDetail(String pictureId, UserToken userToken) { + PictureDetailVo pictureDetail = ocrtaskchildpicturemybatisdao.getPictureDetail(pictureId); + //查询审批流节点信息 + List 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 first = pictureDetail.getUserapproveList().stream().filter(userapprove -> userapprove.getUserid().toString().equals(userToken.getUserid())).findFirst(); + pictureDetail.setUserapprove(first.orElse(new Userapprove())); + } + return pictureDetail; + } + + @Override + public List getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue) { + OcrPictureDuplicateHis duplicateHis = pictureDuplicateHisService.getOne(new LambdaQueryWrapper().eq(OcrPictureDuplicateHis::getPictureId, pictureId)); + if (ObjectUtils.isNotEmpty(duplicateHis) && org.apache.commons.lang3.StringUtils.isNotBlank(duplicateHis.getCheckDuplicateResultHisJson())) { + OcrTaskchildPicture one = this.getOne(new LambdaQueryWrapper().eq(OcrTaskchildPicture::getPictureid, pictureId)); + JSONObject jsonObject = JSONObject.parseObject(duplicateHis.getCheckDuplicateResultHisJson()); + Set pictureIds = jsonObject.keySet(); + List 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 getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId) { + Page page = new Page<>(pageNo,pageSize); + + return ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page,checkDuplicateId,pictureId,oderType,oderName); + } } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/vo/PictureDetailVo.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/vo/PictureDetailVo.java new file mode 100644 index 00000000..44ea9710 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/vo/PictureDetailVo.java @@ -0,0 +1,111 @@ +package cn.jyjz.xiaoyao.ocr.vo; + +import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove; +import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * ClassName: PictureDetailVo$.java + * Description: + * Author: scl. + * Date: 2024/3/25 18:26 + */ +@Data +public class PictureDetailVo { + //图片id + private String pictureId; + //图片任务id + private String taskChildId; + //任务id + private String taskId; + //任务名称 + private String taskName; + //租户id + private String tenantId; + //最大相似度 + private String similarityScore; + //定位信息 + private String location; + + @ApiModelProperty(value = "是否已经审批,0:未审批,1:审批中,2:已审批") + private Integer workStatus; + + @ApiModelProperty(value = "完成时间") + private Long finishTime; + + @ApiModelProperty(value = "提报人") + private String field1; + + @ApiModelProperty(value = "拜访客户类型") + private String field2; + + @ApiModelProperty(value = "拜访客户名称,终端名称,例如中日友好医院") + private String field3; + + @ApiModelProperty(value = "任务来源") + private String field4; + + @ApiModelProperty(value = "厂商") + private String field5; + + @ApiModelProperty(value = "拜访客户级别") + private String field6; + + @ApiModelProperty(value = "科室名称") + private String field7; + + @ApiModelProperty(value = "拜访小结") + private String field8; + + @ApiModelProperty(value = "产品名称") + private String field9; + + @ApiModelProperty(value = "地区,定位信息,例如北京市朝阳区文苑路10号") + private String field10; + + @ApiModelProperty(value = "拜访日期") + private String field11; + + @ApiModelProperty(value = "定位距离") + private String field12; + + @ApiModelProperty(value = "病历号") + private String field13; + + @ApiModelProperty(value = "是否重复") + private String field14; + + @ApiModelProperty(value = "任务类型") + private String field15; + + @ApiModelProperty(value = "任务状态") + private String field16; + + @ApiModelProperty(value = "拜访项目类别") + private String field17; + + @ApiModelProperty(value = "图片地址") + private String imgUrl; + @ApiModelProperty(value = "任务状态") + private String states; + + @ApiModelProperty(value = "流程实例IdprocessInstanceId") + private String processInstanceId; + + @ApiModelProperty(value = "流程实例processdeFinitionId") + private String processDefinitionId; + + //图片信息 + private OcrPictureInfo pictureInfo; + //本人审查记录 + private Userapprove userapprove; + //历史审查记录 + private List userapproveList; + + +} diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrPictureMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrPictureMapper.xml index 526db577..9d5ea242 100644 --- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrPictureMapper.xml +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrPictureMapper.xml @@ -206,4 +206,15 @@ + diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskPackageMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskPackageMapper.xml new file mode 100644 index 00000000..729b88b4 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskPackageMapper.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml index ea05679b..fb7e658b 100644 --- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml @@ -1,255 +1,456 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + - - - - and ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend} - and OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend} - and PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend} - and PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend} - and DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend} - and TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend} - and PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend} - and PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend} - and CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend} - and CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend} - and SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend} - and BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend} - and STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend} - and PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend} - and PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend} - and DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend} - and ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend} - and ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend} - and UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend} - and UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend} - and FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend} - and GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend} - and CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend} - and CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend} - and CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend} - and USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend} - and FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend} - and FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend} - and FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend} - and FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend} - and FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend} - and FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend} - and FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend} - and HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend} - and TASKNAME ${taskname.dataOp} ${taskname.likestar}#{taskname.value}${taskname.likeend} - and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} - - - - order by ${page.sortname} ${page.sortorder} - limit ${page.start}, ${page.Pagesize} - - - - - - and tcp.ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend} - and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend} - and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend} - and tcp.PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend} - and tcp.DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend} - and tcp.TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend} - and tcp.PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend} - and tcp.PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend} - and tcp.CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend} - and tcp.CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend} - and tcp.SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend} - and tcp.BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend} - - and tcp.PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend} - and tcp.PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend} - and tcp.DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend} - and tcp.ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend} - and tcp.ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend} - and tcp.UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend} - and tcp.UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend} - and tcp.FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend} - and tcp.GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend} - and tcp.CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend} - and tcp.CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend} - and tcp.CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend} - and tcp.CREATEDATE ${createdateStart.dataOp} ${createdateStart.likestar}#{createdateStart.value}${createdateStart.likeend} - and tcp.CREATEDATE ${createdateEnd.dataOp} ${createdateEnd.likestar}#{createdateEnd.value}${createdateEnd.likeend} - and tcp.USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend} - and tcp.FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend} - and tcp.FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend} - - - - and tcp.FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend} - and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar} - - - - #{item} - - - - #{fromuserid.value} - - ${fromuserid.likeend} - - and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar} - - - - #{item} - - - - #{fromprojectid.value} - - ${fromprojectid.likeend} - - and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar} - - - - #{item} - - - - #{fromplanid.value} - - ${fromplanid.likeend} - - and tcp.STATES ${states.dataOp} ${states.likestar} - - - - #{item} - - - - #{states.value} - - ${states.likeend} - - and tcp.FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar} - - - - #{item} - - - - #{fromsourceid.value} - - ${fromsourceid.likeend} - - - - - - - - and tcp.HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend} - and tcp.TASKNAME ${taskname.dataOp} ${taskname.likestar}#{taskname.value}${taskname.likeend} - and tcp.USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} - - - - + 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 - and uf.USERID ${thisLoginUserid.dataOp} - ${thisLoginUserid.likestar}#{thisLoginUserid.value}${thisLoginUserid.likeend} + and uf.USERID ${thisLoginUserid.dataOp} ${thisLoginUserid.likestar}#{thisLoginUserid.value}${thisLoginUserid.likeend} 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 @@ -265,35 +466,50 @@ limit ${page.start}, ${page.Pagesize} - + - 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} and uf.USERID = #{thisLoginUserid} @@ -308,18 +524,19 @@ limit ${page.start}, ${page.Pagesize} - 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} and uf.USERID = #{thisLoginUserid} @@ -329,17 +546,105 @@ + - + + +