feat: 全量拉取任务开发

pull/163/head
shuliYao 1 year ago
parent 25c48d0576
commit 21daddc72c

@ -16,12 +16,19 @@ import java.util.List;
public interface PrevailCloudApi {
/**
*
*
* @param pictureSourceParameter
* @return
*/
ApiPage<PictureSourceResult> pullPictureSource(PictureSourceParameter pictureSourceParameter) throws Exception;
/**
*
* @param pictureSourceParameter
* @return
*/
ApiPage<PictureSourceResult> 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<PictureSourceResult> getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter);
}

@ -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;
}
}

@ -1,6 +1,7 @@
package cn.jyjz.xiaoyao.ocr.api.entity;
import lombok.Data;
import lombok.ToString;
import java.util.Date;

@ -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<PictureSourceResult> 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<String> 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<String> 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<PictureSourceResult> 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<String, Object> queryParam = BeanUtil.beanToMap(pictureSourceParameter);
Map<String, String> 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<String> resultData = JSONUtil.toBean(responseJsonStr, ResultData.class);
prevailCloudLog.setResponseParam("msg:"+resultData.getMessage()+",status:"+resultData.getStatus());
prevailCloudLog.setStatus(resultData.getStatus());
//定义返回对象
ApiPage<PictureSourceResult> resultApiPage = null;
//解密请求数据
if (resultData.getStatus() == 100) {
//解析基础数据
String data = ApiHelper.decryptResponse(apiConfig.getAccessCode(), resultData);
ApiPage<String> apiPage = JSONUtil.toBean(data, ApiPage.class);
//日志增加拉取数量
prevailCloudLog.setResponseParam(prevailCloudLog.getResponseParam()+",拉取数量:"+apiPage.getTotal());
if(apiPage.getTotal()!=0){
//解析数据结果为List
List<PictureSourceResult> 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<String> 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();
}
}

@ -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<PictureSourceResult> 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<Map<String, Object>> livePhoto = new ArrayList<>();
Map<String, Object> 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<Math.ceil((double)apiPage.getTotal()/pageSize);
pageNo++;
logger.debug("全量拉取中...当前日期:{},页码:{},总数:{}", DateFormatUtils.format(startDate,"yyyy-MM-dd"),pageNo,apiPage.getTotal());
} catch (Exception e) {
logger.error("无量云全量拉取返回错误,error:",e.getMessage());
}
}
//执行下一天数据
startDate = startDate.offsetNew(DateField.DAY_OF_YEAR, 1);
}
//2.执行完毕放开执行锁
pictureSourceAllPullMsg.reset();
}
}

@ -53,6 +53,31 @@ public class ApiConfig {
*/
private String defaultPictureImg;
/**
*
*/
private String pictureSourceUrl = "/pangu/jingwei/ocr/query/pb/task/pageList";
/**
*
*/
private String pictureSourceAllUrl = "/pangu/jingwei/ocr/query/pb/task/all/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";
/**
*
* @return

@ -8,12 +8,27 @@ package cn.jyjz.xiaoyao.ocr.common;
*/
public class PrevailCloudConstant {
/**
*
*/
public static Integer PULL_PICTURE_SOURCE = 0;
/**
*
*/
public static Integer SEND_FLOW_RESULT = 1;
/**
*
*/
public static Integer PULL_ACCOUNT_INFO = 2;
/**
*
*/
public static Integer PULL_PICTURE_SOURCE_All = 4;
}

@ -7,8 +7,10 @@ import cn.jyjz.xiaoyao.admin.dataDao.DepartmentMybatisDao;
import cn.jyjz.xiaoyao.admin.dataobject.Department;
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.thread.PullAllPictureSourceThread;
import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig;
import cn.jyjz.xiaoyao.ocr.api.utils.ApiPage;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
@ -16,6 +18,7 @@ import cn.jyjz.xiaoyao.ocr.service.OcrPrevailCloudLogService;
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Maps;
import lombok.extern.flogger.Flogger;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
@ -23,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import sun.nio.ch.ThreadPool;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -32,9 +36,10 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.*;
/**
* TODO
* api
*
* @author hugh(shuli.yao) 1397940314@qq.com
* @version 1.0
@ -60,6 +65,24 @@ public class PrevailCloudApiController {
@Resource
private OcrPrevailCloudLogService ocrPrevailCloudLogService;
/**
* 线
*/
private ExecutorService pictureSourceAllPool = new ThreadPoolExecutor(
1,
1,
3,
TimeUnit.SECONDS,
new LinkedBlockingDeque<>(),
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 "执行开始";
}
/**

@ -21,9 +21,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
*
*/
public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPicture> {
public List<OcrTaskchildPicture> listAll(String tenantId, String createUser, QueryWrapper queryWrapper);
/**
*
* @param taskids
@ -46,7 +46,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @return
*/
public List<OcrTaskchildPicture> markpoint(String packageid);
/**
*
* @param formid
@ -55,7 +55,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
public List<String> validateApprove(List<String> formid);
public boolean validateBoole(String[] formid);
/**
*
* @param formid
@ -63,7 +63,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @return
*/
public List<String> validateAssignee(List<String> formid,UserToken userToken);
/**
*
* @param fromid
@ -84,7 +84,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @return
*/
public ResultVo trueorfalse(String childpictureid, String packageid, String iztrueorfalse, String judgeid, String judgedesc);
public ResultVo clearmark(String tenantId,String childpictureid, String packageid);
/**
@ -93,14 +93,14 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @return
*/
public boolean pass(String childpictureid,OcrTaskchildPicture ocrTaskchildPicture);
/**
*
* @param id
* @return
*/
public boolean closeOrder(String id);
/**
*
* @param ocrPicture
@ -117,28 +117,28 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @return
*/
public List<OcrTaskchildPicture> listFinal(Map<String, Object> query);
/**
* \
* @param taskchildid
* @return
*/
public OcrPicture findOcrPictureByTaskchildid(String taskchildid);
/**
*
* @param query
* @return
*/
Long listFinalCount(Map<String, Object> query);
/**
*
* @param query
* @return
*/
public List<OcrTaskchildPictureAppro> listmytask(Map<String, Object> query);
public Long listmytaskCount(Map<String, Object> query);
List<OcrTaskChildPictureVo> getPictureHistoryList(List<String> pictureIds, String taskname,String taskNode);
@ -152,4 +152,11 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
Boolean sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture, FlowApprove flowApprove) throws Exception;
List<OcrTaskChildPictureVo> getDubiousfileList(List<String> pictureIds, String userNodeType);
/**
* picture
* @param picture
* @return
*/
boolean createTaskOldPicture(OcrPicture picture);
}

@ -27,6 +27,7 @@ public class OcrFrontConfServiceImpl extends BaseServiceImpl<OcrFrontConfMapper,
OcrFrontConf frontConf = this.getOne(wrapper);
if (frontConf != null){
//基本配置
apiConfig.setInterfaceDomain(frontConf.getWlyInterfaceDomain());
apiConfig.setAccessKey(frontConf.getWlyAccessKey());
apiConfig.setAccessCode(frontConf.getWlyAccessCode());
@ -34,6 +35,13 @@ public class OcrFrontConfServiceImpl extends BaseServiceImpl<OcrFrontConfMapper,
apiConfig.setReadTimeout(frontConf.getWlyReadTimeout());
apiConfig.setLocalImagePath(frontConf.getWlyLocalImagePath());
apiConfig.setDefaultPictureImg(frontConf.getDefaultPictureImg());
//接口地址
apiConfig.setPictureSourceUrl(frontConf.getPictureSourceUrl());
apiConfig.setPictureSourceAllUrl(frontConf.getPictureSourceAllUrl());
apiConfig.setProjectSourceUrl(frontConf.getProjectSourceUrl());
apiConfig.setSendResultUrl(frontConf.getSendResultUrl());
apiConfig.setTenantSourceUrl(frontConf.getTenantSourceUrl());
}
}
}

@ -774,6 +774,16 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
synchronized (lock) {
// 同步的代码块
saveBatch = this.saveOrUpdateBatch(ocrPictureList);
//通过与不通过的任务需要直接创建任务。
for (OcrPicture picture : ocrPictureList) {
if("8".equals(picture.getTaskstatus()) || "9".equals(picture.getTaskstatus())){
boolean taskSaveResult= ocrTaskchildPictureService.createTaskOldPicture(picture);
if(!taskSaveResult){
log.error("旧数据创建任务失败,任务id:{}",picture.getTaskId());
}
}
}
}
//3.添加图片信息

@ -6,6 +6,6 @@ import cn.jyjz.xiaoyao.ocr.dataobject.OcrPrevailCloudLog;
import cn.jyjz.xiaoyao.ocr.service.OcrPrevailCloudLogService;
import org.springframework.stereotype.Service;
@Service
@Service("ocrPrevailCloudLogService")
public class OcrPrevailCloudLogServiceImpl extends BaseServiceImpl<OcrPrevailCloudLogMapper, OcrPrevailCloudLog> implements OcrPrevailCloudLogService {
}

@ -789,6 +789,43 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
return ocrtaskchildpicturemybatisdao.getDubiousfileList(pictureIds, taskname);
}
@Override
public boolean createTaskOldPicture(OcrPicture picture) {
OcrTaskchildPicture taskchildPicture = new OcrTaskchildPicture();
taskchildPicture.setTenantid(picture.getTenantId());
taskchildPicture.setPictureid(picture.getId());
taskchildPicture.setCategoryid(picture.getCategoryid());
int states = 0;
if("8".equals(picture.getTaskstatus())){
states = 3;
}else if ("9".equals(picture.getTaskstatus())){
states= 5;
}else{
return false;
}
taskchildPicture.setStates(states);
taskchildPicture.setAssignee("admin");
taskchildPicture.setAssigneename("全量拉取");
taskchildPicture.setGuidang(1);
taskchildPicture.setCreateuser("admin");
taskchildPicture.setCreatedate(System.currentTimeMillis());
taskchildPicture.setFromtaskid(picture.getTaskId());
taskchildPicture.setFromtaskname(picture.getTaskname());
taskchildPicture.setFromuserid(picture.getUpuserid());
taskchildPicture.setFromusername(picture.getUpname());
taskchildPicture.setFromuptime(picture.getSubmitDateTimestamp());
taskchildPicture.setFromplanid(picture.getPlanid());
taskchildPicture.setFromprojectid(picture.getProjectid());
taskchildPicture.setFromprojectname(picture.getProjectidname());
taskchildPicture.setFromsourceid(picture.getField4());
taskchildPicture.setFinishtime(System.currentTimeMillis());
taskchildPicture.setIsFinal(1);
taskchildPicture.setTaskNode("finale_judgment");
taskchildPicture.setIsRepeatedNodules(0);
taskchildPicture.setSendResult(0);
return this.save(taskchildPicture);
}
private static ApproveNodeDto getApproveNodeDto(Userapprove userApprove) {
ApproveNodeDto approveNode = new ApproveNodeDto();
approveNode.setApproveRemark(userApprove.getTaskcomment());

@ -88,8 +88,8 @@ public class PictureDisposeTask implements Runnable {
//租户名称
picture.setPicturename(pictureSourceResult.getAccountName());
//租户状态
if (pictureSourceResult.getAccountStatus() != null) {
picture.setPicturestatus(pictureSourceResult.getAccountStatus().toString());
if (pictureSourceResult.getTenantStatus() != null) {
picture.setPicturestatus(pictureSourceResult.getTenantStatus().toString());
}
//项目编号
if (pictureSourceResult.getProjectNo() != null) {
@ -127,8 +127,8 @@ public class PictureDisposeTask implements Runnable {
//任务来源名称
picture.setField4("无量云2.0");
//所属任务状态
if (pictureSourceResult.getTenantStatus() != null) {
picture.setTaskstatus(pictureSourceResult.getTenantStatus().toString());
if (pictureSourceResult.getTaskStatus() != null) {
picture.setTaskstatus(pictureSourceResult.getTaskStatus().toString());
}
//提报人id
picture.setUpuserid(pictureSourceResult.getUserNo().toString());
@ -227,7 +227,6 @@ public class PictureDisposeTask implements Runnable {
//定位距离
if (StringUtils.isNotBlank(pictureSourceResult.getDistance())) {
picture.setField12(pictureSourceResult.getDistance());
}
//设置图片信息
if (map.get("imgName") != null) {

Loading…
Cancel
Save