pull/1/head
wujinhui 1 year ago
parent 42ba770547
commit 44f576e4d6

@ -1,9 +1,7 @@
package cn.jyjz.xiaoyao.ocr.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -29,7 +27,9 @@ import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService;
import cn.jyjz.xiaoyao.ocr.vo.OcrPackagetaskVo;
import cn.jyjz.xiaoyao.upload.upload.UploadSpringUtil;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@ -40,7 +40,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Field;
import cn.jyjz.xiaoyao.admin.service.UserService;
import cn.jyjz.xiaoyao.common.base.service.UserTokenService;
import cn.jyjz.xiaoyao.common.base.controller.BaseController;
@ -90,7 +90,7 @@ public class OcrPackagetaskController extends BaseController{
@ApiImplicitParam(paramType = "header", name = "X-Tenant-Id", value = "租户主键,用户登录时的信息“tenantList”中获得。", dataType = "String", required = true)
})
@GetMapping(value = "/list")
public ResultVo<IPage<OcrPackagetaskVo>> queryPageList(OcrPackagetask ocrPackagetask,
public ResultVo<IPage<Map<String, Object>>> queryPageList(OcrPackagetask ocrPackagetask,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest request) {
@ -113,8 +113,9 @@ public class OcrPackagetaskController extends BaseController{
Page<OcrPackagetask> page = new Page<OcrPackagetask>(pageNo, pageSize);
IPage<OcrPackagetask> pageList = ocrPackagetaskService.page(page, queryWrapper);
List<OcrPackagetaskVo> ocrPackagetaskVoList = new ArrayList<>();
List<Map<String, Object>> ocrPackagetaskVoList = new ArrayList<>();
for (OcrPackagetask one : pageList.getRecords()) {
Map<String, Object> resultMap = new HashMap<>();
OcrPackagetaskVo ocrPackagetaskVo = new OcrPackagetaskVo();
ocrPackagetaskVo.setId(one.getId().toString());
ocrPackagetaskVo.setCreateBy(one.getCreateBy());
@ -126,15 +127,40 @@ public class OcrPackagetaskController extends BaseController{
ocrPackagetaskVo.setPictureno(one.getPictureno());
ocrPackagetaskVo.setSimilaritys(one.getSimilaritys());
ocrPackagetaskVo.setSearchtimes(one.getSearchtimes());
ocrPackagetaskVoList.add(ocrPackagetaskVo);
ObjectMapper ocrMapper = new ObjectMapper();
resultMap = ocrMapper.convertValue(ocrPackagetaskVo, Map.class);
if(StringUtils.isNotBlank(one.getJson())){
ObjectMapper mapper = new ObjectMapper();
try {
Map<String, Object> jsonMap = mapper.readValue(one.getJson(), new TypeReference<Map<String, Object>>() {});
resultMap.putAll(jsonMap);
} catch (IOException e) {
e.printStackTrace();
}
}
ocrPackagetaskVoList.add(resultMap);
}
IPage<OcrPackagetaskVo> newPageList = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal());
IPage<Map<String, Object>> newPageList = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal());
newPageList.setRecords(ocrPackagetaskVoList);
return ResultVoUtil.success(newPageList);
}
public static Map<String, Object> convertObjectToMap(Object obj) {
Map<String, Object> result = new HashMap<>();
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true); // 允许访问私有字段
try {
result.put(field.getName(), field.get(obj));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return result;
}
/**
*form
*mail.zhangyong@gmail.com

@ -121,12 +121,11 @@ public class OcrPictureController extends BaseController {
@ApiImplicitParam(paramType = "path", name = "search_month", value = "搜索时间21,一周内22两周内1进一个月2:进两个月3近三个月、6近六个月、9近九个月、12近12个月", required = true),
@ApiImplicitParam(paramType = "path", name = "search_history", value = "是否查询历史记录0不查询1查询", required = true)
})
@GetMapping(value = "/createorder")
public ResultVo createorder(OcrPicture ocrPicture,
HttpServletRequest req) {
@GetMapping(value = "/checkHeavy")
public ResultVo checkHeavy(OcrPicture ocrPicture, HttpServletRequest req) {
//获取当前登录人
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(req));
//UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(req));
//租户主键,由前端页面传送
String tenantId = req.getHeader("X-Tenant-Id");
@ -140,7 +139,7 @@ public class OcrPictureController extends BaseController {
String search_history = req.getParameter("search_history");
//任务包名称
String buessinessno = req.getParameter("buessinessno");
//String buessinessno = req.getParameter("buessinessno");
//搜索时间段
// String search_month = req.getParameter("search_month");
@ -176,14 +175,70 @@ public class OcrPictureController extends BaseController {
if (null != pageList && !pageList.isEmpty()) {
if (pageList.size() == 1) {
return ResultVoUtil.error("查重数据至少要有两条。");
} else {
return ocrPictureService.createPackageTask(pageList, tenantId, userToken, search_month, req, buessinessno);
}
}
return ResultVoUtil.error("没有查重数据。");
}
/**
*
* @param req
* @return
*/
@ApiOperation(value = "生成任务包", notes = "生成任务包")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "X-Tenant-Id", value = "租户主键,用户登录时的信息“tenantList”中获得。", dataType = "String", required = true),
@ApiImplicitParam(paramType = "path", name = "search_month", value = "搜索时间21,一周内22两周内1进一个月2:进两个月3近三个月、6近六个月、9近九个月、12近12个月", required = true)
})
@GetMapping(value = "/createorder")
public ResultVo createorder(OcrPicture ocrPicture, HttpServletRequest req) {
//获取当前登录人
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(req));
//租户主键,由前端页面传送
String tenantId = req.getHeader("X-Tenant-Id");
if (StringUtils.isBlank(tenantId)) {
return ResultVoUtil.error("租户主键不能为空");
}
QueryWrapper<OcrPicture> queryWrapper = new QueryWrapper<>();
//任务包名称
String buessinessno = req.getParameter("buessinessno");
String search_month = req.getParameter("search_month");
if (StringUtils.isNotBlank(search_month) && Integer.parseInt(search_month) <= 12 && Integer.parseInt(search_month) > 0) {
queryWrapper.le("create_time", DataUtil.afterDateByMonth(Integer.parseInt(search_month)));
}
//根据参数枚举获取检索参数并映射为数据库的字段的key-v map
Map<String, Object> paraMap = new HashMap<>();
for (SearchConfigEnum config : SearchConfigEnum.values()) {
String searchvalue = req.getParameter(config.getId());
if (StringUtils.isNotBlank(searchvalue)) {
paraMap.put(config.getMeaning(), searchvalue);
}
}
//调用查询参数解析方法解析为queryWrapper
queryWrapper = SearchParaFormatting.searchParaParse(queryWrapper, paraMap);
queryWrapper.eq("tenant_id", tenantId);
List<OcrPicture> pageList = ocrPictureService.listPage(queryWrapper);
if (null != pageList && !pageList.isEmpty()) {
return ocrPictureService.createPackageTask(pageList, tenantId, userToken, search_month, req, buessinessno, paraMap);
} else {
return ResultVoUtil.error("没有查重数据。");
}
}
/**
*
*

@ -68,4 +68,8 @@ public class OcrField implements Serializable {
@Schema(description = "是否删除0未删除1:已删除")
@TableField(value="del")
private Integer del;
@Schema(description = "字段排序")
@TableField(value="sort")
private Integer sort;
}

@ -82,6 +82,10 @@ public class OcrPackagetask implements BaseDto,java.io.Serializable {
@TableField(value="searchtimes")
private String searchtimes;
@Schema(description = "保存任务包时左侧查询条件")
@TableField(value="json")
private String json;
//保存当前登录用户的数据权限范围的搜索条件
@TableField(exist = false)
@ -101,7 +105,9 @@ public class OcrPackagetask implements BaseDto,java.io.Serializable {
new SimpleEntry<>("packagename","packagename"),
new SimpleEntry<>("pictureno","pictureno"),
new SimpleEntry<>("similaritys","similaritys"),
new SimpleEntry<>("searchtimes","searchtimes")
new SimpleEntry<>("searchtimes","searchtimes"),
new SimpleEntry<>("json","json")
)
.collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue));
@Override

@ -18,5 +18,5 @@ public interface OcrPackagetaskService extends BaseService<OcrPackagetask> {
* @param sysUser
* @return
*/
OcrPackagetask create(String name, String tenantId, UserToken sysUser);
OcrPackagetask create(String name, String tenantId, UserToken sysUser, String jsonStr);
}

@ -98,7 +98,7 @@ public interface OcrPictureService extends BaseService<OcrPicture> {
*/
int savePictures(List<OcrPicture> ocrPictureList);
ResultVo createPackageTask(List<OcrPicture> pageList, String tenantId, UserToken userToken, String searchMonth, HttpServletRequest req, String buessinessno);
ResultVo createPackageTask(List<OcrPicture> pageList, String tenantId, UserToken userToken, String searchMonth, HttpServletRequest req, String buessinessno, Map<String, Object> paramMap);
Map<String,String> getOcrPictureClassifyAndHash(String img);

@ -36,6 +36,7 @@ public class OcrFieldServiceImpl extends BaseServiceImpl<OcrFieldMybatisDao, Ocr
// .eq(OcrField::getReviewType, reviewType)); // 检查评审类型// 检查评审类型
queryWrapper.eq(OcrField::getReviewType,reviewType);
queryWrapper.eq(OcrField::getDel, 0);
queryWrapper.orderByAsc(OcrField::getSort);
List<OcrField> ocrFieldList = this.list(queryWrapper);
if(ocrFieldList.size()>0){
for (OcrField ocrField : ocrFieldList) {
@ -61,6 +62,7 @@ public class OcrFieldServiceImpl extends BaseServiceImpl<OcrFieldMybatisDao, Ocr
try {
LambdaQueryWrapper<OcrField> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OcrField::getDel, 0);
queryWrapper.orderByAsc(OcrField::getSort);
List<OcrField> ocrFieldList = this.list(queryWrapper);
if(ocrFieldList.size()>0){
for (OcrField ocrField : ocrFieldList) {

@ -19,12 +19,13 @@ import java.util.List;
public class OcrPackagetaskServiceImpl extends BaseServiceImpl<OcrPackagetaskMybatisDao, OcrPackagetask> implements OcrPackagetaskService {
@Autowired
private OcrPackagetaskMybatisDao ocrpackagetaskmybatisdao;
public OcrPackagetask create(String name, String tenantId, UserToken sysUser){
public OcrPackagetask create(String name, String tenantId, UserToken sysUser,String jsonStr){
OcrPackagetask ocrPackagetask = new OcrPackagetask();
ocrPackagetask.setCreateBy(sysUser.getLoginname());
ocrPackagetask.setCreateTime(System.currentTimeMillis());
ocrPackagetask.setTenantId(Long.parseLong(tenantId));
ocrPackagetask.setPackagename(name);
ocrPackagetask.setJson(jsonStr);
return this.save(ocrPackagetask)?ocrPackagetask:null;
}
}

@ -23,6 +23,8 @@ 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.fasterxml.jackson.core.JsonProcessingException;
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;
@ -119,7 +121,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
//TODO 相似度、图片查询时间未传
//创建任务包
OcrPackagetask ocrPackagetask = this.ocrPackagetaskService.create(buessinessno, tenantId, sysUser);
OcrPackagetask ocrPackagetask = this.ocrPackagetaskService.create(buessinessno, tenantId, sysUser, null);
if (null == ocrPackagetask) {
return ResultVoUtil.error("失败。");
@ -281,7 +283,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
return ResultVoUtil.error("失败。");
}
public ResultVo createPackageTask(List<OcrPicture> ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno) {
public ResultVo createPackageTask(List<OcrPicture> ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno, Map<String, Object> paramMap) {
//图片错误信息
StringBuffer error = new StringBuffer();
//项目错误信息
@ -293,9 +295,18 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
//图片信息不能为空
if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
//生成任务包
// 创建一个Map对象用来存储数据
String jsonStr = null;
//保存任务包时左侧查询条件
ObjectMapper objectMapper = new ObjectMapper();
try {
jsonStr = objectMapper.writeValueAsString(paramMap);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
//String packageName = seqManageService.getSeqNextNo("AI任务包");
//创建任务包
OcrPackagetask ocrPackagetask = this.ocrPackagetaskService.create(buessinessno, tenantId, sysUser);
OcrPackagetask ocrPackagetask = this.ocrPackagetaskService.create(buessinessno, tenantId, sysUser, jsonStr);
if (null == ocrPackagetask) {
return ResultVoUtil.error("失败。");
}

@ -11,6 +11,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Map;
@Data
@ -54,6 +55,9 @@ public class OcrPackagetaskVo implements Serializable {
@Schema(description = "筛选时间,记录筛选的内容")
private String searchtimes;
@Schema(description = "保存任务包时左侧查询条件")
private Map<String, Object> json;
@Schema(description = "生成时间")
private String genTime = "2023-01-01";
@Schema(description = "提报人")

Loading…
Cancel
Save