|
|
|
@ -1,14 +1,13 @@
|
|
|
|
package com.da.dangan.controller;
|
|
|
|
package com.da.dangan.controller;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
|
|
|
|
|
import com.da.common.config.RuoYiConfig;
|
|
|
|
import com.da.common.config.RuoYiConfig;
|
|
|
|
import com.da.common.core.controller.BaseController;
|
|
|
|
import com.da.common.core.controller.BaseController;
|
|
|
|
import com.da.common.core.domain.AjaxResult;
|
|
|
|
import com.da.common.core.domain.AjaxResult;
|
|
|
|
import com.da.common.utils.file.FileUploadUtils;
|
|
|
|
import com.da.common.utils.file.FileUploadUtils;
|
|
|
|
import com.da.common.utils.file.FileUtils;
|
|
|
|
import com.da.common.utils.file.FileUtils;
|
|
|
|
import com.da.dangan.domain.*;
|
|
|
|
import com.da.dangan.domain.DaPicturesRecard;
|
|
|
|
import com.da.dangan.domain.vo.*;
|
|
|
|
import com.da.dangan.domain.DaTask;
|
|
|
|
|
|
|
|
import com.da.dangan.domain.vo.PicParams;
|
|
|
|
import com.da.dangan.service.*;
|
|
|
|
import com.da.dangan.service.*;
|
|
|
|
import com.da.dangan.util.CallThirdInterface;
|
|
|
|
import com.da.dangan.util.CallThirdInterface;
|
|
|
|
import com.da.framework.config.ServerConfig;
|
|
|
|
import com.da.framework.config.ServerConfig;
|
|
|
|
@ -28,7 +27,6 @@ import java.util.Date;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.concurrent.Executor;
|
|
|
|
import java.util.concurrent.Executor;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 档案采集Controller
|
|
|
|
* 档案采集Controller
|
|
|
|
@ -121,7 +119,7 @@ public class DangAnCollectController extends BaseController {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 调用ocr识别接口——识别单张/或者正反面图片
|
|
|
|
* 调用ocr识别接口——识别单张/或者正反面图片
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@PostMapping("/recongnize")
|
|
|
|
/*@PostMapping("/recongnize")
|
|
|
|
public AjaxResult recognize(@RequestBody List<DaPicturesRecard> picRecards) {
|
|
|
|
public AjaxResult recognize(@RequestBody List<DaPicturesRecard> picRecards) {
|
|
|
|
String code;
|
|
|
|
String code;
|
|
|
|
String msg="";
|
|
|
|
String msg="";
|
|
|
|
@ -164,21 +162,131 @@ public class DangAnCollectController extends BaseController {
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
}else{
|
|
|
|
return AjaxResult.error("识别图片不能为0");
|
|
|
|
return AjaxResult.error("识别图片不能为空");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
return AjaxResult.error(e.getMessage());
|
|
|
|
return AjaxResult.error(e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return AjaxResult.success("任务接收成功");
|
|
|
|
return AjaxResult.success("任务接收成功");
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 创建识别任务
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*@Transactional
|
|
|
|
|
|
|
|
@PostMapping("/recongnize")
|
|
|
|
|
|
|
|
public AjaxResult recognize(@RequestBody List<DaPicturesRecard> picRecards) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
//获取字典第三方任务最大数量
|
|
|
|
|
|
|
|
Integer maxTask = Integer.parseInt(DictUtils.getDictValue("total_task", "third_task_max"));
|
|
|
|
|
|
|
|
String code;
|
|
|
|
|
|
|
|
String msg = "";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//取所有id的集合 stream()有顺序
|
|
|
|
|
|
|
|
if (picRecards != null && picRecards.size() > 0) {
|
|
|
|
|
|
|
|
List<Long> ids = picRecards.stream().map(DaPicturesRecard::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
String ywType = picRecards.get(0).getYwType();
|
|
|
|
|
|
|
|
Long muId = picRecards.get(0).getMuId();
|
|
|
|
|
|
|
|
String muPath = picRecards.get(0).getMuPath();
|
|
|
|
|
|
|
|
//获取所有的文件
|
|
|
|
|
|
|
|
List<File> files = new ArrayList<>();
|
|
|
|
|
|
|
|
for (DaPicturesRecard picRecard : picRecards) {
|
|
|
|
|
|
|
|
String path = getPath(picRecard.getPicUrl());
|
|
|
|
|
|
|
|
File file = new File(path);
|
|
|
|
|
|
|
|
files.add(file);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//创建任务
|
|
|
|
|
|
|
|
DaTask daTask = new DaTask();
|
|
|
|
|
|
|
|
daTask.setCreateBy(getUsername());
|
|
|
|
|
|
|
|
daTask.setMuId(muId);
|
|
|
|
|
|
|
|
daTask.setMuPath(muPath);
|
|
|
|
|
|
|
|
daTask.setYwType(ywType);
|
|
|
|
|
|
|
|
daTask.setNum(picRecards.size());
|
|
|
|
|
|
|
|
daTask.setStatus("-1");//默认等待状态 接收成功后修改为1
|
|
|
|
|
|
|
|
daTask.setPicIds(StringUtils.join(ids, ","));//逗号分割);
|
|
|
|
|
|
|
|
daTask.setUpdateTime(new Date());//等待队列order by 字段
|
|
|
|
|
|
|
|
daTaskService.insertDaTask(daTask);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//判断识别中的任务数量
|
|
|
|
|
|
|
|
DaTask param = new DaTask();
|
|
|
|
|
|
|
|
param.setStatus("1"); //处理中
|
|
|
|
|
|
|
|
List<DaTask> daTasks = daTaskService.selectDaTaskListByStatus(param);
|
|
|
|
|
|
|
|
if (daTasks != null && daTasks.size() >= maxTask) {//当前识别任务超过10个
|
|
|
|
|
|
|
|
return AjaxResult.success("任务进入等待队列");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
//识别中任务<10,调用第三方接口
|
|
|
|
|
|
|
|
String result = CallThirdInterface.callThirdInterfaceUpload(url1, files, ywType, ids, daTask.getId());
|
|
|
|
|
|
|
|
//! 解析JSON字符串,获取键对应的值
|
|
|
|
|
|
|
|
JSONObject jsonobject = new JSONObject(result);
|
|
|
|
|
|
|
|
code = jsonobject.getStr("code");
|
|
|
|
|
|
|
|
msg = jsonobject.getStr("msg");
|
|
|
|
|
|
|
|
//如果code=0 任务接收失败,code=1成功
|
|
|
|
|
|
|
|
if (code.equals("0")) {
|
|
|
|
|
|
|
|
return AjaxResult.error(msg).put("taskId", daTask.getId());
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
daTask.setStatus("1");
|
|
|
|
|
|
|
|
daTask.setUpdateTime(new Date());//同时设置updateTime 因定时任务判断任务超时使用updatetime
|
|
|
|
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return AjaxResult.success("任务接收成功");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
return AjaxResult.error("识别图片不能为空");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
return AjaxResult.error(e.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 创建识别任务
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@PostMapping("/recongnize")
|
|
|
|
|
|
|
|
public AjaxResult recognize(@RequestBody List<DaPicturesRecard> picRecards) {
|
|
|
|
|
|
|
|
//取所有id的集合 stream()有顺序
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
if (picRecards != null && picRecards.size() > 0) {
|
|
|
|
|
|
|
|
List<Long> ids = picRecards.stream().map(DaPicturesRecard::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
String ywType = picRecards.get(0).getYwType();
|
|
|
|
|
|
|
|
Long muId = picRecards.get(0).getMuId();
|
|
|
|
|
|
|
|
String muPath = picRecards.get(0).getMuPath();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//创建任务
|
|
|
|
|
|
|
|
DaTask daTask = new DaTask();
|
|
|
|
|
|
|
|
daTask.setCreateBy(getUsername());
|
|
|
|
|
|
|
|
daTask.setCreateTime(new Date());
|
|
|
|
|
|
|
|
daTask.setMuId(muId);
|
|
|
|
|
|
|
|
daTask.setMuPath(muPath);
|
|
|
|
|
|
|
|
daTask.setYwType(ywType);
|
|
|
|
|
|
|
|
daTask.setNum(picRecards.size());
|
|
|
|
|
|
|
|
daTask.setStatus("-1");//默认等待状态 接收成功后修改为1
|
|
|
|
|
|
|
|
daTask.setPicIds(StringUtils.join(ids, ","));//逗号分割);
|
|
|
|
|
|
|
|
daTaskService.insertDaTask(daTask);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
return AjaxResult.error("识别图片不能为空");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
return AjaxResult.error(e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return AjaxResult.success("任务创建成功");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 任务重新识别
|
|
|
|
* 任务重新识别
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*@Transactional
|
|
|
|
@PostMapping("/reRecongnize")
|
|
|
|
@PostMapping("/reRecongnize")
|
|
|
|
public AjaxResult reRecongnize(Long taskId) {
|
|
|
|
public AjaxResult reRecongnize(Long taskId) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
//获取字典第三方任务最大数量
|
|
|
|
|
|
|
|
Integer maxTask = Integer.parseInt(DictUtils.getDictValue("total_task", "third_task_max"));
|
|
|
|
DaTask daTask = daTaskService.selectDaTaskById(taskId);
|
|
|
|
DaTask daTask = daTaskService.selectDaTaskById(taskId);
|
|
|
|
|
|
|
|
daTask.setCreateBy(getUsername());//存入操作用户
|
|
|
|
List<Long> ids;
|
|
|
|
List<Long> ids;
|
|
|
|
|
|
|
|
//判断需要上传的图片
|
|
|
|
if (daTask.getSuccessNum() != null && daTask.getSuccessNum() > 0) {
|
|
|
|
if (daTask.getSuccessNum() != null && daTask.getSuccessNum() > 0) {
|
|
|
|
String failIds = daTask.getFailIds();
|
|
|
|
String failIds = daTask.getFailIds();
|
|
|
|
ids = Stream.of(failIds.split(","))
|
|
|
|
ids = Stream.of(failIds.split(","))
|
|
|
|
@ -194,7 +302,6 @@ public class DangAnCollectController extends BaseController {
|
|
|
|
List<DaPicturesRecard> picRecards = daPicturesRecardService.selectDaPicturesRecardByIds(ids.toArray(new Long[ids.size()]));
|
|
|
|
List<DaPicturesRecard> picRecards = daPicturesRecardService.selectDaPicturesRecardByIds(ids.toArray(new Long[ids.size()]));
|
|
|
|
String code;
|
|
|
|
String code;
|
|
|
|
String msg;
|
|
|
|
String msg;
|
|
|
|
try {
|
|
|
|
|
|
|
|
//获取所有的文件
|
|
|
|
//获取所有的文件
|
|
|
|
List<File> files = new ArrayList<>();
|
|
|
|
List<File> files = new ArrayList<>();
|
|
|
|
for (DaPicturesRecard picRecard : picRecards) {
|
|
|
|
for (DaPicturesRecard picRecard : picRecards) {
|
|
|
|
@ -202,6 +309,17 @@ public class DangAnCollectController extends BaseController {
|
|
|
|
File file = new File(path);
|
|
|
|
File file = new File(path);
|
|
|
|
files.add(file);
|
|
|
|
files.add(file);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//判断第三方接口识别中的任务数量
|
|
|
|
|
|
|
|
DaTask param = new DaTask();
|
|
|
|
|
|
|
|
param.setStatus("1"); //处理中
|
|
|
|
|
|
|
|
List<DaTask> daTasks = daTaskService.selectDaTaskListByStatus(param);
|
|
|
|
|
|
|
|
if (daTasks != null && daTasks.size() >= maxTask) {//当前识别任务超过10个
|
|
|
|
|
|
|
|
daTask.setStatus("-1"); //设置状态等待
|
|
|
|
|
|
|
|
daTask.setUpdateTime(new Date());//等待队列order by 字段
|
|
|
|
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
|
|
|
|
return AjaxResult.success("任务进入等待队列");
|
|
|
|
|
|
|
|
} else {//识别中任务<10
|
|
|
|
//调用第三方接口 先清数据
|
|
|
|
//调用第三方接口 先清数据
|
|
|
|
CallThirdInterface.callThirdInterfaceClearByTaskId(url4, taskId);
|
|
|
|
CallThirdInterface.callThirdInterfaceClearByTaskId(url4, taskId);
|
|
|
|
String result = CallThirdInterface.callThirdInterfaceUpload(url1, files, daTask.getYwType(), ids, taskId);
|
|
|
|
String result = CallThirdInterface.callThirdInterfaceUpload(url1, files, daTask.getYwType(), ids, taskId);
|
|
|
|
@ -210,9 +328,8 @@ public class DangAnCollectController extends BaseController {
|
|
|
|
code = jsonobject.getStr("code");
|
|
|
|
code = jsonobject.getStr("code");
|
|
|
|
msg = jsonobject.getStr("msg");
|
|
|
|
msg = jsonobject.getStr("msg");
|
|
|
|
|
|
|
|
|
|
|
|
//记录最后一次识别的操作时间、操作人
|
|
|
|
//记录最后一次识别的操作时间
|
|
|
|
daTask.setUpdateTime(new Date());
|
|
|
|
daTask.setUpdateTime(new Date());
|
|
|
|
daTask.setUpdateBy(getUsername());
|
|
|
|
|
|
|
|
if (code.equals("0")) { //code=0 任务接收失败,code=1成功
|
|
|
|
if (code.equals("0")) { //code=0 任务接收失败,code=1成功
|
|
|
|
daTask.setStatus("0");
|
|
|
|
daTask.setStatus("0");
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
@ -222,311 +339,31 @@ public class DangAnCollectController extends BaseController {
|
|
|
|
daTask.setLastNum(picRecards.size());
|
|
|
|
daTask.setLastNum(picRecards.size());
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
return AjaxResult.error(e.getMessage());
|
|
|
|
return AjaxResult.error(e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return AjaxResult.success("任务接收成功");
|
|
|
|
return AjaxResult.success("任务接收成功");
|
|
|
|
}
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 调用ocr识别接口——旧接口,已弃用
|
|
|
|
* 任务重新识别
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@PostMapping("/recongnize-old")
|
|
|
|
@PostMapping("/reRecongnize")
|
|
|
|
public AjaxResult recognizeOld(@RequestBody List<DaPicturesRecard> picRecards) {
|
|
|
|
public AjaxResult reRecongnize(Long taskId) {
|
|
|
|
String code;
|
|
|
|
|
|
|
|
String msg;
|
|
|
|
|
|
|
|
int success;
|
|
|
|
|
|
|
|
int total;
|
|
|
|
|
|
|
|
List<DaPicturesRecard> failList = new ArrayList<>();
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
//取所有id的集合 stream()有顺序
|
|
|
|
DaTask daTask = daTaskService.selectDaTaskById(taskId);
|
|
|
|
List<Long> ids = picRecards.stream().map(DaPicturesRecard::getId).collect(Collectors.toList());
|
|
|
|
// daTask.setCreateBy(getUsername());//存入操作用户
|
|
|
|
String ywType = picRecards.get(0).getYwType();
|
|
|
|
//修改任务状态
|
|
|
|
Long muId = picRecards.get(0).getMuId();
|
|
|
|
daTask.setStatus("-1");//默认等待状态
|
|
|
|
String muPath = picRecards.get(0).getMuPath();
|
|
|
|
daTaskService.updateDaTask(daTask);
|
|
|
|
// String singleOrDouble = picRecards.get(0).getSingelOrDouble();
|
|
|
|
|
|
|
|
//获取所有的文件
|
|
|
|
|
|
|
|
List<File> files = new ArrayList<>();
|
|
|
|
|
|
|
|
for (DaPicturesRecard picRecard : picRecards) {
|
|
|
|
|
|
|
|
String path = getPath(picRecard.getPicUrl());
|
|
|
|
|
|
|
|
File file = new File(path);
|
|
|
|
|
|
|
|
files.add(file);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// TODO————————多线程循环调用第三方接口
|
|
|
|
|
|
|
|
long start = System.currentTimeMillis();
|
|
|
|
|
|
|
|
/*List<CompletableFuture<String>> futures = new ArrayList<>();
|
|
|
|
|
|
|
|
List<String> results = new ArrayList<>();
|
|
|
|
|
|
|
|
for(File file :files){
|
|
|
|
|
|
|
|
System.out.println("线程执行前----------------"+file.getName());
|
|
|
|
|
|
|
|
futures.add(CompletableFuture.supplyAsync(() ->testAsync(file,picRecards[0].getYwType()) , threadPoolTaskExecutor)); // 用自定义线程池
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 所有请求完成后处理逻辑
|
|
|
|
|
|
|
|
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).thenRun(() -> {
|
|
|
|
|
|
|
|
//join控制线程顺序
|
|
|
|
|
|
|
|
results = futures.stream().map(CompletableFuture::join).collect(Collectors.toList());
|
|
|
|
|
|
|
|
logger.info("线程执行完毕:{}", JSON.toJSONString(results));
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
long end =System.currentTimeMillis();
|
|
|
|
|
|
|
|
logger.info("CompletableFuture耗时--——————————————————》"+ (end-start)+"ms");*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//不使用循环调用接口 直接传递数组 ,在callThirdInterface方法内直接添加了username参数
|
|
|
|
|
|
|
|
String result = CallThirdInterface.callThirdInterfaceUpload(url1, files, ywType, ids,1l);
|
|
|
|
|
|
|
|
long end = System.currentTimeMillis();
|
|
|
|
|
|
|
|
logger.info("CompletableFuture耗时--——————————————————》" + (end - start) + "ms");
|
|
|
|
|
|
|
|
//! 解析JSON字符串,获取键对应的值
|
|
|
|
|
|
|
|
JSONObject jsonobject = new JSONObject(result);
|
|
|
|
|
|
|
|
code = jsonobject.getStr("code");
|
|
|
|
|
|
|
|
msg = jsonobject.getStr("msg");
|
|
|
|
|
|
|
|
success = jsonobject.getInt("success");
|
|
|
|
|
|
|
|
total = jsonobject.getInt("total");
|
|
|
|
|
|
|
|
//失败id
|
|
|
|
|
|
|
|
String failPicid = jsonobject.getStr("failPicid");
|
|
|
|
|
|
|
|
//获取失败的id集合
|
|
|
|
|
|
|
|
List<Long> failIds = JSONArray.parseArray(failPicid, Long.class);
|
|
|
|
|
|
|
|
//并行不带顺序取出失败集合
|
|
|
|
|
|
|
|
failList = picRecards.parallelStream().filter(recard -> failIds.contains(recard.getId())).collect(Collectors.toList());
|
|
|
|
|
|
|
|
//如果code=0 识别失败,直接返回
|
|
|
|
|
|
|
|
if (code.equals("0")) {
|
|
|
|
|
|
|
|
return AjaxResult.error(msg + ", 成功:" + success + " , 总共:" + total);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String datas = jsonobject.getStr("datas");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TODO 数据解析 根据业务类型存储识别后的信息
|
|
|
|
|
|
|
|
/*<option value="option1">常住人口登记表1</option> <option value="option2">常住卡</option>
|
|
|
|
|
|
|
|
<option value="option3">常住人口登记表2</option>
|
|
|
|
|
|
|
|
<option value="option4">出生医学证明</option>
|
|
|
|
|
|
|
|
<option value="option5">迁移证</option>
|
|
|
|
|
|
|
|
<option value="option6">一胎证明</option>
|
|
|
|
|
|
|
|
<option value="option7">转非农业人口批复存根</option>
|
|
|
|
|
|
|
|
<option value="option8">准迁证</option>
|
|
|
|
|
|
|
|
<option value="option9">常住人口登记表3</option>*/
|
|
|
|
|
|
|
|
Long dajlId = null;
|
|
|
|
|
|
|
|
switch (ywType) {
|
|
|
|
|
|
|
|
case "option1":
|
|
|
|
|
|
|
|
//break;
|
|
|
|
|
|
|
|
case "option2":
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
case "option3":
|
|
|
|
|
|
|
|
//break;
|
|
|
|
|
|
|
|
case "option9":
|
|
|
|
|
|
|
|
//获取常住人口信息集合
|
|
|
|
|
|
|
|
List<CzrkDatas> czrkDatas = JSONArray.parseArray(datas, CzrkDatas.class);
|
|
|
|
|
|
|
|
for (CzrkDatas czrkData : czrkDatas) {
|
|
|
|
|
|
|
|
List<Long> picids = czrkData.getPicid();
|
|
|
|
|
|
|
|
String picIds = StringUtils.join(picids, ",");//逗号分割
|
|
|
|
|
|
|
|
List<String> picUrls = picRecards.stream()
|
|
|
|
|
|
|
|
.filter(recard -> picids.contains(recard.getId()))
|
|
|
|
|
|
|
|
.map(DaPicturesRecard::getPicUrl).collect(Collectors.toList());
|
|
|
|
|
|
|
|
String pictures = StringUtils.join(picUrls, ",");//逗号分割
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DaCzrkdj> info = czrkData.getInfo();
|
|
|
|
|
|
|
|
if (info != null && info.size() > 0) {
|
|
|
|
|
|
|
|
for (DaCzrkdj daCzrkdj : info) {
|
|
|
|
|
|
|
|
//判断返回结果是否都是字符串 "无"
|
|
|
|
|
|
|
|
/*if(CallThirdInterface.allFieldsEqualTo(daCzrkdj,"无")){
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
daCzrkdj.setAllPicIds(picIds);
|
|
|
|
|
|
|
|
daCzrkdj.setAllPics(pictures);
|
|
|
|
|
|
|
|
daCzrkdj.setPicIds(picIds);
|
|
|
|
|
|
|
|
daCzrkdj.setPictures(pictures);
|
|
|
|
|
|
|
|
//其他字段存储
|
|
|
|
|
|
|
|
daCzrkdj.setYwType(ywType);
|
|
|
|
|
|
|
|
daCzrkdj.setMuId(muId);
|
|
|
|
|
|
|
|
daCzrkdj.setMuPath(muPath);
|
|
|
|
|
|
|
|
daCzrkdj.setAuditStatus("0");
|
|
|
|
|
|
|
|
daCzrkdj.setErrorCorrect("0");
|
|
|
|
|
|
|
|
//daCzrkdj.setCreateBy();
|
|
|
|
|
|
|
|
daCzrkdjService.insertDaCzrkdj(daCzrkdj);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "option4":
|
|
|
|
|
|
|
|
//获取出生医学证明信息集合
|
|
|
|
|
|
|
|
List<CszmDatas> cszmDatas = JSONArray.parseArray(datas, CszmDatas.class);
|
|
|
|
|
|
|
|
for (CszmDatas cszmData : cszmDatas) {
|
|
|
|
|
|
|
|
List<Long> picids = cszmData.getPicid();
|
|
|
|
|
|
|
|
String picIds = StringUtils.join(picids, ",");//逗号分割
|
|
|
|
|
|
|
|
List<String> picUrls = picRecards.stream()
|
|
|
|
|
|
|
|
.filter(recard -> picids.contains(recard.getId()))
|
|
|
|
|
|
|
|
.map(DaPicturesRecard::getPicUrl).collect(Collectors.toList());
|
|
|
|
|
|
|
|
String pictures = StringUtils.join(picUrls, ",");//逗号分割
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DaBirthDj> info = cszmData.getInfo();
|
|
|
|
|
|
|
|
if (info != null && info.size() > 0) {
|
|
|
|
|
|
|
|
for (DaBirthDj daBirthdj : info) {
|
|
|
|
|
|
|
|
//判断返回结果是否都是字符串 "无"
|
|
|
|
|
|
|
|
/*if(CallThirdInterface.allFieldsEqualTo(daBirthdj,"无")){
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
daBirthdj.setAllPicIds(picIds);
|
|
|
|
|
|
|
|
daBirthdj.setAllPics(pictures);
|
|
|
|
|
|
|
|
daBirthdj.setPicIds(picIds);
|
|
|
|
|
|
|
|
daBirthdj.setPictures(pictures);
|
|
|
|
|
|
|
|
//其他字段存储
|
|
|
|
|
|
|
|
daBirthdj.setYwType(ywType);
|
|
|
|
|
|
|
|
daBirthdj.setMuId(muId);
|
|
|
|
|
|
|
|
daBirthdj.setMuPath(muPath);
|
|
|
|
|
|
|
|
daBirthdj.setAuditStatus("0");
|
|
|
|
|
|
|
|
daBirthdj.setErrorCorrect("0");
|
|
|
|
|
|
|
|
daBirthDjService.insertDaBirthDj(daBirthdj);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "option5":
|
|
|
|
|
|
|
|
//获取迁移证信息集合
|
|
|
|
|
|
|
|
List<QyzDatas> qyzDatas = JSONArray.parseArray(datas, QyzDatas.class);
|
|
|
|
|
|
|
|
for (QyzDatas qyzData : qyzDatas) {
|
|
|
|
|
|
|
|
List<Long> picids = qyzData.getPicid();
|
|
|
|
|
|
|
|
String picIds = StringUtils.join(picids, ",");//逗号分割
|
|
|
|
|
|
|
|
List<String> picUrls = picRecards.stream()
|
|
|
|
|
|
|
|
.filter(recard -> picids.contains(recard.getId()))
|
|
|
|
|
|
|
|
.map(DaPicturesRecard::getPicUrl).collect(Collectors.toList());
|
|
|
|
|
|
|
|
String pictures = StringUtils.join(picUrls, ",");//逗号分割
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DaQyz> info = qyzData.getInfo();
|
|
|
|
|
|
|
|
if (info != null && info.size() > 0) {
|
|
|
|
|
|
|
|
for (DaQyz qyz : info) {
|
|
|
|
|
|
|
|
//判断返回结果是否都是字符串 "无"
|
|
|
|
|
|
|
|
/*if(CallThirdInterface.allFieldsEqualTo(qyz,"无")){
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
qyz.setAllPicIds(picIds);
|
|
|
|
|
|
|
|
qyz.setAllPics(pictures);
|
|
|
|
|
|
|
|
qyz.setPicIds(picIds);
|
|
|
|
|
|
|
|
qyz.setPictures(pictures);
|
|
|
|
|
|
|
|
//其他字段存储
|
|
|
|
|
|
|
|
qyz.setYwType(ywType);
|
|
|
|
|
|
|
|
qyz.setMuId(muId);
|
|
|
|
|
|
|
|
qyz.setMuPath(muPath);
|
|
|
|
|
|
|
|
qyz.setAuditStatus("0");
|
|
|
|
|
|
|
|
qyz.setErrorCorrect("0");
|
|
|
|
|
|
|
|
daQyzService.insertDaQyz(qyz);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "option6":
|
|
|
|
|
|
|
|
//获取一胎证明信息集合
|
|
|
|
|
|
|
|
List<YtzmDatas> ytzmDatas = JSONArray.parseArray(datas, YtzmDatas.class);
|
|
|
|
|
|
|
|
for (YtzmDatas ytzmData : ytzmDatas) {
|
|
|
|
|
|
|
|
List<Long> picids = ytzmData.getPicid();
|
|
|
|
|
|
|
|
String picIds = StringUtils.join(picids, ",");//逗号分割
|
|
|
|
|
|
|
|
List<String> picUrls = picRecards.stream()
|
|
|
|
|
|
|
|
.filter(recard -> picids.contains(recard.getId()))
|
|
|
|
|
|
|
|
.map(DaPicturesRecard::getPicUrl).collect(Collectors.toList());
|
|
|
|
|
|
|
|
String pictures = StringUtils.join(picUrls, ",");//逗号分割
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DaYtzm> info = ytzmData.getInfo();
|
|
|
|
|
|
|
|
if (info != null && info.size() > 0) {
|
|
|
|
|
|
|
|
for (DaYtzm ytzm : info) {
|
|
|
|
|
|
|
|
//判断返回结果是否都是字符串 "无"
|
|
|
|
|
|
|
|
/* if(CallThirdInterface.allFieldsEqualTo(ytzm,"无")){
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
ytzm.setAllPicIds(picIds);
|
|
|
|
|
|
|
|
ytzm.setAllPics(pictures);
|
|
|
|
|
|
|
|
ytzm.setPicIds(picIds);
|
|
|
|
|
|
|
|
ytzm.setPictures(pictures);
|
|
|
|
|
|
|
|
//其他字段存储
|
|
|
|
|
|
|
|
ytzm.setYwType(ywType);
|
|
|
|
|
|
|
|
ytzm.setMuId(muId);
|
|
|
|
|
|
|
|
ytzm.setMuPath(muPath);
|
|
|
|
|
|
|
|
ytzm.setAuditStatus("0");
|
|
|
|
|
|
|
|
ytzm.setErrorCorrect("0");
|
|
|
|
|
|
|
|
daYtzmService.insertDaYtzm(ytzm);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "option7":
|
|
|
|
|
|
|
|
//获取转非农业人口批复存根信息集合
|
|
|
|
|
|
|
|
List<ZfnyDatas> zfnyDatas = JSONArray.parseArray(datas, ZfnyDatas.class);
|
|
|
|
|
|
|
|
for (ZfnyDatas zfnyData : zfnyDatas) {
|
|
|
|
|
|
|
|
List<Long> picids = zfnyData.getPicid();
|
|
|
|
|
|
|
|
String picIds = StringUtils.join(picids, ",");//逗号分割
|
|
|
|
|
|
|
|
List<String> picUrls = picRecards.stream()
|
|
|
|
|
|
|
|
.filter(recard -> picids.contains(recard.getId()))
|
|
|
|
|
|
|
|
.map(DaPicturesRecard::getPicUrl).collect(Collectors.toList());
|
|
|
|
|
|
|
|
String pictures = StringUtils.join(picUrls, ",");//逗号分割
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DaZfnyhkcg> info = zfnyData.getInfo();
|
|
|
|
|
|
|
|
if (info != null && info.size() > 0) {
|
|
|
|
|
|
|
|
for (DaZfnyhkcg zfnyhkcg : info) {
|
|
|
|
|
|
|
|
//判断返回结果是否都是字符串 "无"
|
|
|
|
|
|
|
|
/*if(CallThirdInterface.allFieldsEqualTo(zfnyhkcg,"无")){
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
zfnyhkcg.setAllPicIds(picIds);
|
|
|
|
|
|
|
|
zfnyhkcg.setAllPics(pictures);
|
|
|
|
|
|
|
|
zfnyhkcg.setPicIds(picIds);
|
|
|
|
|
|
|
|
zfnyhkcg.setPictures(pictures);
|
|
|
|
|
|
|
|
//其他字段存储
|
|
|
|
|
|
|
|
zfnyhkcg.setYwType(ywType);
|
|
|
|
|
|
|
|
zfnyhkcg.setMuId(muId);
|
|
|
|
|
|
|
|
zfnyhkcg.setMuPath(muPath);
|
|
|
|
|
|
|
|
zfnyhkcg.setAuditStatus("0");
|
|
|
|
|
|
|
|
zfnyhkcg.setErrorCorrect("0");
|
|
|
|
|
|
|
|
daZfnyhkcgService.insertDaZfnyhkcg(zfnyhkcg);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "option8":
|
|
|
|
|
|
|
|
//获取准迁证信息集合
|
|
|
|
|
|
|
|
List<ZqzDatas> zqzDatas = JSONArray.parseArray(datas, ZqzDatas.class);
|
|
|
|
|
|
|
|
for (ZqzDatas zqzData : zqzDatas) {
|
|
|
|
|
|
|
|
List<Long> picids = zqzData.getPicid();
|
|
|
|
|
|
|
|
String picIds = StringUtils.join(picids, ",");//逗号分割
|
|
|
|
|
|
|
|
List<String> picUrls = picRecards.stream()
|
|
|
|
|
|
|
|
.filter(recard -> picids.contains(recard.getId()))
|
|
|
|
|
|
|
|
.map(DaPicturesRecard::getPicUrl).collect(Collectors.toList());
|
|
|
|
|
|
|
|
String pictures = StringUtils.join(picUrls, ",");//逗号分割
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DaZqz> info = zqzData.getInfo();
|
|
|
|
|
|
|
|
if (info != null && info.size() > 0) {
|
|
|
|
|
|
|
|
for (DaZqz zqz : info) {
|
|
|
|
|
|
|
|
//判断返回结果是否都是字符串 "无"
|
|
|
|
|
|
|
|
/*if(CallThirdInterface.allFieldsEqualTo(zqz,"无")){
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
zqz.setAllPicIds(picIds);
|
|
|
|
|
|
|
|
zqz.setAllPics(pictures);
|
|
|
|
|
|
|
|
zqz.setPicIds(picIds);
|
|
|
|
|
|
|
|
zqz.setPictures(pictures);
|
|
|
|
|
|
|
|
//其他字段存储
|
|
|
|
|
|
|
|
zqz.setYwType(ywType);
|
|
|
|
|
|
|
|
zqz.setMuId(muId);
|
|
|
|
|
|
|
|
zqz.setMuPath(muPath);
|
|
|
|
|
|
|
|
zqz.setAuditStatus("0");
|
|
|
|
|
|
|
|
zqz.setErrorCorrect("0");
|
|
|
|
|
|
|
|
daZqzService.insertDaZqz(zqz);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*//修改图片信息记录表为已识别 .如果有失败数据,剔除失败数据---现在新增合集信息处做图片已识别修改
|
|
|
|
|
|
|
|
if (failList.size() > 0) {
|
|
|
|
|
|
|
|
picRecards.removeAll(failList);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (DaPicturesRecard picRecard : picRecards) {
|
|
|
|
|
|
|
|
picRecard.setRecognize("1");
|
|
|
|
|
|
|
|
daPicturesRecardService.updateDaPicturesRecard(picRecard);
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
return AjaxResult.error(e.getMessage());
|
|
|
|
return AjaxResult.error(e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return AjaxResult.success("成功:" + success + " , 总共:"+total).put("fails", failList);
|
|
|
|
return AjaxResult.success("提交成功");
|
|
|
|
// return AjaxResult.success();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@ -717,18 +554,6 @@ public class DangAnCollectController extends BaseController {
|
|
|
|
}*/
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 图片批量识别处理进度____暂时未用 前端直接调用第三方进度接口
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*@GetMapping("/progress")
|
|
|
|
|
|
|
|
public ResponseEntity<Double> getProgress() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//调用第三方进度条接口
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 返回进度值,例如:0.5代表50%
|
|
|
|
|
|
|
|
return ResponseEntity.ok(0.5);
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 测试第三方接口
|
|
|
|
* 测试第三方接口
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|