ADD-OCR头像识别

This commit is contained in:
dxfeng 2024-08-01 14:53:47 +08:00
parent b0663aee2f
commit 279260972c
1 changed files with 34 additions and 24 deletions

View File

@ -150,14 +150,19 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
if ("fail".equals(status)) {
throw new CustomizeRunTimeException("调用千里聆接口失败,失败原因:" + resultall.getString("info"));
}
baseBean.writeLog("千里聆OCR解析数据" + resultall);
JSONObject result = resultall.getJSONObject("result");
baseBean.writeLog("千里聆OCR解析数据" + result);
Map<String, Object> dataMap = parseQllJsonToMapV2(result, isCard);
//TODO 解析图片信息
// 解析图片信息
String faceId = resultall.getString("face_id");
if (StringUtils.isNotBlank(faceId)) {
String faceUrl = RecruitConstant.OCR_URL.replace("/resume", "/common/get_image");
// 请求接口
try {
String faceUrl = RecruitConstant.OCR_URL.replace("/resume", "/common/get_image") + "?filename=" + faceId;
// 请求接口
getImageFile(faceUrl, faceId, dataMap);
} catch (Exception e) {
baseBean.writeLog("千里聆OCR简历照片解析失败" + e);
}
}
returnMap.put("data", dataMap);
}
@ -397,28 +402,33 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
}
}
private InputStream getImageFile(String faceUrl, String filename) {
try {
String appId = RecruitConstant.APP_ID;
String appSecret = RecruitConstant.APP_SECRET;
long currentTime = System.currentTimeMillis();
CloseableHttpClient httpClient = HttpClients.createDefault();
/**
* 解析头像
*
* @param faceUrl
* @param filename
* @param dataMap
*/
private void getImageFile(String faceUrl, String filename, Map<String, Object> dataMap) {
String appId = RecruitConstant.APP_ID;
String appSecret = RecruitConstant.APP_SECRET;
long currentTime = System.currentTimeMillis();
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(faceUrl);
httpGet.addHeader("sign", getSign(appId, appSecret, currentTime));
httpGet.addHeader("appId", appId);
httpGet.addHeader("timestamp", String.valueOf(currentTime));
HttpGet httpGet = new HttpGet(faceUrl);
httpGet.addHeader("sign", getSign(appId, appSecret, currentTime));
httpGet.addHeader("appId", appId);
httpGet.addHeader("timestamp", String.valueOf(currentTime));
// 执行请求并获取响应
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
// 检查响应状态
if (response.getStatusLine().getStatusCode() == 200) {
// 获取响应实体
return response.getEntity().getContent();
} else {
throw new CustomizeRunTimeException(String.valueOf(response.getStatusLine().getStatusCode()));
//System.out.println("GET request failed. Response Code: " + response.getStatusLine().getStatusCode());
}
// 执行请求并获取响应
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
// 检查响应状态
if (response.getStatusLine().getStatusCode() == 200) {
// 获取响应实体
InputStream inputStream = response.getEntity().getContent();
int imageFileId = RecruitModeUtil.generateImageFileId(inputStream, filename + ".png");
int docId = RecruitModeUtil.createDocId(Convert.toInt(RecruitConstant.APPLICANTS_RESUMES_CATEGORY), imageFileId, user);
dataMap.put("jlzp", docId);
}
} catch (Exception e) {
throw new CustomizeRunTimeException(e);