diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java index 63c900f4..52816585 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java @@ -16,12 +16,19 @@ import java.util.List; public interface PrevailCloudApi { /** - * 根据参数调用 + * 根据参数拉取,某个业务主体的任务数据 * @param pictureSourceParameter * @return */ ApiPage pullPictureSource(PictureSourceParameter pictureSourceParameter) throws Exception; + /** + * 根据参数,拉取某个业务主体,全量业务数据 + * @param pictureSourceParameter + * @return + */ + ApiPage pullPictureSourceAll(PictureSourceParameter pictureSourceParameter) throws Exception; + Boolean sendFlowTaskResult(String formId, String data, Long pictureId, String remark) throws Exception; /** @@ -39,4 +46,5 @@ public interface PrevailCloudApi { List getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter); + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/entity/PictureSourceAllPullMsg.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/entity/PictureSourceAllPullMsg.java new file mode 100644 index 00000000..b8d1de83 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/entity/PictureSourceAllPullMsg.java @@ -0,0 +1,102 @@ +package cn.jyjz.xiaoyao.ocr.api.entity; + +import cn.hutool.core.date.DateTime; +import lombok.Data; +import org.apache.commons.lang.time.DateFormatUtils; + +/** + * 全量拉取时异步线程,回写对象 + * 包含执行情况 + * 拉取数量 + * + * @author hugh(shuli.yao) 1397940314@qq.com + * @version 1.0 + * @date 2024/5/17 15:56 + */ +@Data +public class PictureSourceAllPullMsg { + + /** + * 租户id + */ + private Long tenantNo; + + /** + * 业务主体id + */ + private Long accountNo; + + /** + * 当前执行页码 + */ + private Integer page = 0; + + /** + * 当前拉取日期 + */ + private String timeStr; + + + /** + * 当前日期任务总数 + */ + private Integer timeTaskCount = 0; + + /** + * 已拉取任务总数 + */ + private Integer pullTaskCount = 0; + + /** + * 拉取开始日期 + */ + private DateTime beginDateTime; + + /** + * 拉取截止日期 + */ + private DateTime endDateTime; + + + /** + * 执行锁,防止重复执行全量拉取任务。 + */ + private boolean lock = false; + + /** + * 获取执行消息 + * @return + */ + public String getMsg() { + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append("任务执行中..."); + stringBuffer.append(", 租户:"+this.tenantNo); + stringBuffer.append(", 业务主体:"+this.accountNo); + stringBuffer.append(", 开始时间:"+DateFormatUtils.format(this.beginDateTime,"yyyy-MM-dd")); + stringBuffer.append(", 结束时间:"+DateFormatUtils.format(this.endDateTime,"yyyy-MM-dd")); + stringBuffer.append(", 已拉取任务数:"+this.pullTaskCount); + stringBuffer.append(", 当前拉取时间:"+this.timeStr); + stringBuffer.append(", 页码:"+this.page+" 每页200条"); + stringBuffer.append(", 当前拉取时间任务总数: "+this.timeTaskCount); + return stringBuffer.toString(); + } + + + /** + * 重置参数 + * @return + */ + public boolean reset(){ + this.tenantNo = null; + this.accountNo = null; + this.beginDateTime = null; + this.endDateTime = null; + this.pullTaskCount = null; + this.timeStr = null; + this.page = null; + this.timeTaskCount = null; + this.lock = false; + return true; + } + +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/entity/PictureSourceParameter.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/entity/PictureSourceParameter.java index f3749b0b..7882d02f 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/entity/PictureSourceParameter.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/entity/PictureSourceParameter.java @@ -1,6 +1,7 @@ package cn.jyjz.xiaoyao.ocr.api.entity; import lombok.Data; +import lombok.ToString; import java.util.Date; diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java index 886d07c2..8b6086da 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java @@ -58,27 +58,6 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { @Resource private OcrPrevailCloudLogService prevailCloudLogService; - /** - * 拉取图片信息 - */ - private String pictureSourceUrl = "/pangu/jingwei/ocr/query/pb/task/pageList"; - - /** - * 拉取图片信息 - */ - private String sendResultUrl = "/pangu/jingwei/thirdclient/command/pb/approval/result"; - - /** - * 拉取项目信息 - */ - private String projectSourceUrl = "/pangu/jingwei/ocr/query/pb/project/pageList"; - - /** - * 拉取租户信息 - */ - private String tenantSourceUrl = "/pangu/jingwei/ocr/query/pb/tenant/info"; - - @Override public ApiPage pullPictureSource(PictureSourceParameter pictureSourceParameter) throws Exception { //1.检查api配置是否正常 @@ -106,18 +85,16 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { RequestData requestData = ApiHelper.buildRequest(tenantNo, apiConfig.getAccessKey(), apiConfig.getAccessCode(), json); //组装请求参数 - String url = apiConfig.getInterfaceDomain() + pictureSourceUrl; + String url = apiConfig.getInterfaceDomain() + apiConfig.getPictureSourceUrl(); String requestBodyJson = JSONObject.toJSONString(requestData); -// String requestBodyJson = "{\"accessKey\":\"7390F0221A1A73D8E13F8C8BB96F33B0\",\"data\":\"gzUtN5Mt24_fbDDMK3wLop8Tgu68xLCVy3Wzp9BcXnkxnCiPg_D2TNEXnQ68-Y-GhGYYcD7Iwg8juZTx1m5v4NkDvKvEwdvjQvZnMDTRYbqtHrwgVLAvUGotIMTckDY67yo2Ku52vWedjYpzzDseHwiIGVcIl-u1CljEbyjLzJzIf6oXfD7qKjOYnxKjfjp11k0IlvsPdS-mgNXTHcBei5jOFrYmZrE2y4v9bI5n1QE\",\"signature\":\"0bmIbhhybDcGeyX4ao5gSPZQeaY8G2JRh3nRt7NC7qw\",\"tenantCode\":\"1673196576094806016\",\"timestamp\":1711971774448}"; //入参 System.out.println("入参数据:" + requestBodyJson); HttpParamers httpParamers = new HttpParamers(HttpMethod.POST); httpParamers.setJsonParamer(requestBodyJson); //发起请求 String responseJsonStr = HttpClient.doPost(url, httpParamers, null, apiConfig.getConnectTimeout(), apiConfig.getReadTimeout()); - System.out.println(responseJsonStr); ResultData resultData = JSONUtil.toBean(responseJsonStr, ResultData.class); - prevailCloudLog.setResponseParam(responseJsonStr); + prevailCloudLog.setResponseParam("msg:"+resultData.getMessage()+",status:"+resultData.getStatus()); prevailCloudLog.setStatus(resultData.getStatus()); //解密请求数据 @@ -125,7 +102,10 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { //解析基础数据 String data = ApiHelper.decryptResponse(apiConfig.getAccessCode(), resultData); ApiPage apiPage = JSONUtil.toBean(data, ApiPage.class); + //日志增加拉取数量 + prevailCloudLog.setResponseParam(prevailCloudLog.getResponseParam()+",拉取数量:"+apiPage.getTotal()); if(apiPage.getTotal()==0){ + prevailCloudLogService.save(prevailCloudLog); return null; } //解析数据结果为List @@ -135,6 +115,7 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { resultApiPage.setPageSize(apiPage.getPageSize()); resultApiPage.setTotal(apiPage.getTotal()); resultApiPage.setRecords(listResult); + prevailCloudLogService.save(prevailCloudLog); return resultApiPage; } else { logger.debug("请求图片接口数据失败,参数:{},返回值:{}", json, responseJsonStr); @@ -143,6 +124,67 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { return null; } + @Override + public ApiPage pullPictureSourceAll(PictureSourceParameter pictureSourceParameter) throws Exception { + //1.检查api配置是否正常 + if (!apiConfig.checkConfig()) { + throw new Exception("api config 配置错误!"); + } + + OcrPrevailCloudLog prevailCloudLog = new OcrPrevailCloudLog(); + prevailCloudLog.setType(PrevailCloudConstant.PULL_PICTURE_SOURCE_All); + prevailCloudLog.setRequestParam(JSONUtil.toJsonStr(pictureSourceParameter)); + + //2.对象转map + Map queryParam = BeanUtil.beanToMap(pictureSourceParameter); + Map queryParamStr = new HashMap<>(); + //map值转string 注意对日期类型进行操作,加密包要求值全部为string + for (String key : queryParam.keySet()) { + if (queryParam.get(key) != null) { + queryParamStr.put(key, queryParam.get(key).toString()); + } + } + + //加密请求参数 + String tenantNo = pictureSourceParameter.getTenantNo().toString(); + String json = JSONObject.toJSONString(queryParam); + RequestData requestData = ApiHelper.buildRequest(tenantNo, apiConfig.getAccessKey(), apiConfig.getAccessCode(), json); + //组装请求参数 + String url = apiConfig.getInterfaceDomain() + apiConfig.getPictureSourceAllUrl(); + String requestBodyJson = JSONObject.toJSONString(requestData); + //入参 + HttpParamers httpParamers = new HttpParamers(HttpMethod.POST); + httpParamers.setJsonParamer(requestBodyJson); + //发起请求 + String responseJsonStr = HttpClient.doPost(url, httpParamers, null, apiConfig.getConnectTimeout(), apiConfig.getReadTimeout()); + ResultData resultData = JSONUtil.toBean(responseJsonStr, ResultData.class); + prevailCloudLog.setResponseParam("msg:"+resultData.getMessage()+",status:"+resultData.getStatus()); + prevailCloudLog.setStatus(resultData.getStatus()); + //定义返回对象 + ApiPage resultApiPage = null; + //解密请求数据 + if (resultData.getStatus() == 100) { + //解析基础数据 + String data = ApiHelper.decryptResponse(apiConfig.getAccessCode(), resultData); + ApiPage apiPage = JSONUtil.toBean(data, ApiPage.class); + //日志增加拉取数量 + prevailCloudLog.setResponseParam(prevailCloudLog.getResponseParam()+",拉取数量:"+apiPage.getTotal()); + if(apiPage.getTotal()!=0){ + //解析数据结果为List + List listResult = JSONUtil.toList(JSONObject.toJSONString(apiPage.getRecords()), PictureSourceResult.class); + resultApiPage = new ApiPage<>(); + resultApiPage.setPageNo(apiPage.getPageNo()); + resultApiPage.setPageSize(apiPage.getPageSize()); + resultApiPage.setTotal(apiPage.getTotal()); + resultApiPage.setRecords(listResult); + } + } else { + logger.error("请求图片接口数据失败,参数:{},返回值:{}", json, responseJsonStr); + } + prevailCloudLogService.save(prevailCloudLog); + return resultApiPage; + } + @Override public Boolean sendFlowTaskResult(String formId, String data, Long pictureId, String remark) throws Exception { OcrPrevailCloudLog prevailCloudLog = new OcrPrevailCloudLog(); @@ -153,7 +195,7 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { prevailCloudLog.setPictureId(pictureId); ResultData stringResultData = ApiHelper.buildResponse(apiConfig.getAccessCode(), data); // RequestData requestData = ApiHelper.buildRequest(tenantId, apiConfig.getAccessKey(), apiConfig.getAccessCode(),data);//组装请求参数 - String url = apiConfig.getInterfaceDomain() + sendResultUrl; + String url = apiConfig.getInterfaceDomain() + apiConfig.getSendResultUrl(); String requestBodyJson = JSONObject.toJSONString(stringResultData); //入参 System.out.println("入参数据:" + requestBodyJson); @@ -180,7 +222,7 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { queryParam.put("tenantNo", tenantNo); String json = JSONObject.toJSONString(queryParam); RequestData requestData = ApiHelper.buildRequest(tenantNo + "", apiConfig.getAccessKey(), apiConfig.getAccessCode(), json); - String url = apiConfig.getInterfaceDomain() + tenantSourceUrl; + String url = apiConfig.getInterfaceDomain() + apiConfig.getTenantSourceUrl(); String requestBodyJson = JSONObject.toJSONString(requestData); //入参 HttpParamers httpParamers = new HttpParamers(HttpMethod.POST); @@ -292,4 +334,6 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { return apiPage == null ? Lists.newArrayList() : apiPage.getRecords(); } + + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/thread/PullAllPictureSourceThread.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/thread/PullAllPictureSourceThread.java new file mode 100644 index 00000000..34ff582a --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/thread/PullAllPictureSourceThread.java @@ -0,0 +1,180 @@ +package cn.jyjz.xiaoyao.ocr.api.thread; + +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.jyjz.xiaoyao.common.base.util.DateUtils; +import cn.jyjz.xiaoyao.common.base.util.SpringUtils; +import cn.jyjz.xiaoyao.common.base.util.StringUtils; +import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; +import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceAllPullMsg; +import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter; +import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult; +import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig; +import cn.jyjz.xiaoyao.ocr.api.utils.ApiPage; +import cn.jyjz.xiaoyao.ocr.service.OcrPictureService; +import cn.jyjz.xiaoyao.ocr.service.OcrPrevailCloudLogService; +import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; +import cn.jyjz.xiaoyao.ocr.util.DataUtil; +import org.apache.commons.lang.time.DateFormatUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.time.Instant; +import java.util.*; + +/** + * 拉取无量云全量任务数据线程 + * + * @author hugh(shuli.yao) 1397940314@qq.com + * @version 1.0 + * @date 2024/5/17 16:56 + */ +public class PullAllPictureSourceThread implements Runnable{ + + protected Logger logger = LoggerFactory.getLogger(getClass()); + /** + * 租户id + */ + private Long tenantNo; + /** + * 业务主体id + */ + private Long accountNo; + /** + * 开始时间 + */ + private DateTime startDate; + /** + * 结束时间 + */ + private DateTime endDate; + /** + * 执行记录对象 + */ + private PictureSourceAllPullMsg pictureSourceAllPullMsg; + + /** + * api + */ + private PrevailCloudApi prevailCloudApi; + + /** + * api配置类 + */ + private ApiConfig apiConfig; + + /** + * 初始化方法 + * @param tenantNo + * @param accountNo + * @param startDate + * @param endDate + * @param pictureSourceAllPullMsg + */ + public PullAllPictureSourceThread(Long tenantNo, Long accountNo, + DateTime startDate, DateTime endDate, + PictureSourceAllPullMsg pictureSourceAllPullMsg, + PrevailCloudApi prevailCloudApi, + ApiConfig apiConfig) { + this.tenantNo = tenantNo; + this.accountNo = accountNo; + this.startDate = startDate; + this.endDate = endDate; + this.pictureSourceAllPullMsg = pictureSourceAllPullMsg; + this.prevailCloudApi = prevailCloudApi; + this.apiConfig = apiConfig; + } + + @Override + public void run() { + OcrPictureService ocrPictureService = SpringUtils.getBean("ocrPictureService"); + OcrPrevailCloudLogService ocrPrevailCloudLogService = SpringUtils.getBean("ocrPrevailCloudLogService"); + + //记录执行参数 + pictureSourceAllPullMsg.setBeginDateTime(startDate); + pictureSourceAllPullMsg.setEndDateTime(endDate); + pictureSourceAllPullMsg.setLock(true); + pictureSourceAllPullMsg.setAccountNo(accountNo); + pictureSourceAllPullMsg.setTenantNo(tenantNo); + //组装固定查询参数 + PictureSourceParameter pictureSourceParameter = new PictureSourceParameter(); + pictureSourceParameter.setTenantNo(tenantNo); + pictureSourceParameter.setAccountNo(accountNo); + + //1.循环执行 + while(startDate.isBefore(endDate) || startDate.compareTo(endDate) == 0) { + //初始化页码 + Integer pageNo = 1; + Integer pageSize = 200; + boolean hasNextPage = true; + + //从开始时间,依次递增一天拉取 + Instant startInstant = startDate.toInstant(); + Instant endInstant = startDate.offsetNew(DateField.DAY_OF_YEAR, 1).toInstant(); + pictureSourceParameter.setStartTime(Date.from(startInstant)); + pictureSourceParameter.setEndTime(Date.from(endInstant)); + //记录当前拉取日期 + pictureSourceAllPullMsg.setTimeStr(DateFormatUtils.format(startDate,"yyyy-MM-dd")); + while (hasNextPage) { + //组装分页参数 + pictureSourceParameter.setPageNo(pageNo); + pictureSourceParameter.setPageSize(pageSize); + //记录当前页码 + pictureSourceAllPullMsg.setPage(pageNo); + + try { + //调用无量云api,全量查询方法 + ApiPage apiPage = prevailCloudApi.pullPictureSourceAll(pictureSourceParameter); + if(apiPage==null){ + logger.error("批量拉取无量云数据错误,参数:"+pictureSourceParameter); + break; + } + if(apiPage.getRecords()==null || apiPage.getTotal()==0 || apiPage.getTotal()==null){ + break; + } + //记录执行日志,总拉取任务数,当前时间区间内任务数 + pictureSourceAllPullMsg.setPullTaskCount(pictureSourceAllPullMsg.getPullTaskCount()+apiPage.getRecords().size()); + pictureSourceAllPullMsg.setTimeTaskCount(apiPage.getTotal()); + //将结果加入队列中。 + for (PictureSourceResult pictureSourceResult : apiPage.getRecords()) { + int retryCount = 0; + boolean addedToQueue = false; + //如果不存在图片默认一个默认图片,方便走测试。 + if (pictureSourceResult.getLivePhoto() == null) { + List> livePhoto = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("imgUrl", StringUtils.isEmpty(apiConfig.getDefaultPictureImg()) ? "http://47.93.59.251/api/image/default.png" : apiConfig.getDefaultPictureImg()); + map.put("imgName", "default.png"); + livePhoto.add(map); + pictureSourceResult.setLivePhoto(livePhoto); + } + // 将数据放入队列,最多重试5次 + while (!addedToQueue && retryCount < 5) { + pictureSourceResult.setRequestParam(pictureSourceParameter); + addedToQueue = TaskQueue.pictureDisposePushData(pictureSourceResult, ocrPictureService, ocrPrevailCloudLogService); + if (!addedToQueue) { + Thread.sleep(60000); + retryCount++; + } + } + } + //翻页 + hasNextPage = pageNo(), + Executors.defaultThreadFactory(), + new ThreadPoolExecutor.DiscardOldestPolicy()); + + + /** + * 全量拉取,存储执行数据静态对象。 + */ + private static PictureSourceAllPullMsg pictureSourceAllPullMsg = new PictureSourceAllPullMsg(); + /** * 拉取无量云全量任务数据,根据业务主体 * @param request @@ -67,8 +90,21 @@ public class PrevailCloudApiController { */ @GetMapping("pullPictureAllByAccountNo") public String pullPictureAllByAccountNo(HttpServletRequest request){ + + //检查是否已有全量拉取在执行 + if(pictureSourceAllPullMsg.isLock()){ + return pictureSourceAllPullMsg.getMsg(); + } + + //1.定义参数 String beginStr = request.getParameter("beginStr"); + if(StringUtils.isBlank(beginStr)){ + return "开始时间不能为空"; + } String endStr = request.getParameter("endStr"); + if(StringUtils.isBlank(endStr)){ + return "结束时间不能为空"; + } String tenantNoStr = request.getParameter("tenantNo"); if(StringUtils.isBlank(tenantNoStr)){ return "租户不能为空"; @@ -77,7 +113,20 @@ public class PrevailCloudApiController { if(StringUtils.isBlank(accountNoStr)){ return "业务主体不能为空"; } - return ""; + Long tenantNo = Long.parseLong(tenantNoStr); + Long accountNo = Long.parseLong(accountNoStr); + + + //2.格式化参数 + DateTime startDate = DateUtil.parse(beginStr + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); + DateTime endDate = DateUtil.parse(endStr + " 23:59:59", "yyyy-MM-dd HH:mm:ss"); + + //3.调用线程 + pictureSourceAllPool.execute( + new PullAllPictureSourceThread(tenantNo,accountNo,startDate + ,endDate,pictureSourceAllPullMsg,prevailCloudApi,apiConfig) + ); + return "执行开始"; } /** 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 bd22b9ad..270fb6e0 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 @@ -21,9 +21,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; * 业务层 */ public interface OcrTaskchildPictureService extends BaseService { - + public List listAll(String tenantId, String createUser, QueryWrapper queryWrapper); - + /** * 批量标记当前任务相似度为百分之百 * @param taskids 任务主键 @@ -46,7 +46,7 @@ public interface OcrTaskchildPictureService extends BaseService markpoint(String packageid); - + /** * 判断任务是否已经审批 * @param formid 任务主键 @@ -55,7 +55,7 @@ public interface OcrTaskchildPictureService extends BaseService validateApprove(List formid); public boolean validateBoole(String[] formid); - + /** * 判断当前用户是否可以审批 * @param formid 任务主键 @@ -63,7 +63,7 @@ public interface OcrTaskchildPictureService extends BaseService validateAssignee(List formid,UserToken userToken); - + /** * 根据主键,查询图片详情 * @param fromid 任务主键 @@ -84,7 +84,7 @@ public interface OcrTaskchildPictureService extends BaseService listFinal(Map query); - + /** * 根据任务\工单主键查询图片对象 * @param taskchildid * @return */ public OcrPicture findOcrPictureByTaskchildid(String taskchildid); - + /** * 查询所有业务表数量 * @param query * @return */ Long listFinalCount(Map query); - + /** * 查询所有业务表集合 * @param query * @return */ public List listmytask(Map query); - + public Long listmytaskCount(Map query); List getPictureHistoryList(List pictureIds, String taskname,String taskNode); @@ -152,4 +152,11 @@ public interface OcrTaskchildPictureService extends BaseService getDubiousfileList(List pictureIds, String userNodeType); + + /** + * 根据picture创建任务,针对无量云已经审核过的历史数据 + * @param picture + * @return + */ + boolean createTaskOldPicture(OcrPicture picture); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrFrontConfServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrFrontConfServiceImpl.java index 992b82c9..4e79d5b1 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrFrontConfServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrFrontConfServiceImpl.java @@ -27,6 +27,7 @@ public class OcrFrontConfServiceImpl extends BaseServiceImpl implements OcrPrevailCloudLogService { } 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 2f453d84..47996215 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 @@ -789,6 +789,43 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl