diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPackagetaskController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPackagetaskController.java index 0db1aa5d..20113f18 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPackagetaskController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPackagetaskController.java @@ -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> queryPageList(OcrPackagetask ocrPackagetask, + public ResultVo>> 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 page = new Page(pageNo, pageSize); IPage pageList = ocrPackagetaskService.page(page, queryWrapper); - List ocrPackagetaskVoList = new ArrayList<>(); + List> ocrPackagetaskVoList = new ArrayList<>(); for (OcrPackagetask one : pageList.getRecords()) { + Map 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 jsonMap = mapper.readValue(one.getJson(), new TypeReference>() {}); + resultMap.putAll(jsonMap); + } catch (IOException e) { + e.printStackTrace(); + } + } + ocrPackagetaskVoList.add(resultMap); } - IPage newPageList = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal()); + IPage> newPageList = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal()); newPageList.setRecords(ocrPackagetaskVoList); return ResultVoUtil.success(newPageList); } - + + public static Map convertObjectToMap(Object obj) { + Map 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 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 2b88a860..d06a2c89 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 @@ -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 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 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 pageList = ocrPictureService.listPage(queryWrapper); + if (null != pageList && !pageList.isEmpty()) { + return ocrPictureService.createPackageTask(pageList, tenantId, userToken, search_month, req, buessinessno, paraMap); } else { return ResultVoUtil.error("没有查重数据。"); } } + /** * 分页列表查询 * diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrField.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrField.java index 095393b8..e4835c47 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrField.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrField.java @@ -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; } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrPackagetask.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrPackagetask.java index faf31ccb..caff65b7 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrPackagetask.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrPackagetask.java @@ -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 diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPackagetaskService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPackagetaskService.java index 9836b6c8..258649ab 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPackagetaskService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPackagetaskService.java @@ -18,5 +18,5 @@ public interface OcrPackagetaskService extends BaseService { * @param sysUser 当前登录用户 * @return */ - OcrPackagetask create(String name, String tenantId, UserToken sysUser); + OcrPackagetask create(String name, String tenantId, UserToken sysUser, String jsonStr); } 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 c6cf9398..a4fec8cb 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 @@ -98,7 +98,7 @@ public interface OcrPictureService extends BaseService { */ int savePictures(List ocrPictureList); - ResultVo createPackageTask(List pageList, String tenantId, UserToken userToken, String searchMonth, HttpServletRequest req, String buessinessno); + ResultVo createPackageTask(List pageList, String tenantId, UserToken userToken, String searchMonth, HttpServletRequest req, String buessinessno, Map paramMap); Map getOcrPictureClassifyAndHash(String img); diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrFieldServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrFieldServiceImpl.java index d0548385..96696698 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrFieldServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrFieldServiceImpl.java @@ -36,6 +36,7 @@ public class OcrFieldServiceImpl extends BaseServiceImpl ocrFieldList = this.list(queryWrapper); if(ocrFieldList.size()>0){ for (OcrField ocrField : ocrFieldList) { @@ -61,6 +62,7 @@ public class OcrFieldServiceImpl extends BaseServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(OcrField::getDel, 0); + queryWrapper.orderByAsc(OcrField::getSort); List ocrFieldList = this.list(queryWrapper); if(ocrFieldList.size()>0){ for (OcrField ocrField : ocrFieldList) { diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPackagetaskServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPackagetaskServiceImpl.java index b3c6a3d3..f3267091 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPackagetaskServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPackagetaskServiceImpl.java @@ -19,12 +19,13 @@ import java.util.List; public class OcrPackagetaskServiceImpl extends BaseServiceImpl 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; } } 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 1e88e7a8..9672d790 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 @@ -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 ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno) { + public ResultVo createPackageTask(List ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno, Map paramMap) { //图片错误信息 StringBuffer error = new StringBuffer(); //项目错误信息 @@ -293,9 +295,18 @@ public class OcrPictureServiceImpl extends BaseServiceImpl json; + @Schema(description = "生成时间") private String genTime = "2023-01-01"; @Schema(description = "提报人")