diff --git a/src/com/engine/recruit/service/impl/ResumeRecognitionServiceImpl.java b/src/com/engine/recruit/service/impl/ResumeRecognitionServiceImpl.java index feb62f8..f7164a6 100644 --- a/src/com/engine/recruit/service/impl/ResumeRecognitionServiceImpl.java +++ b/src/com/engine/recruit/service/impl/ResumeRecognitionServiceImpl.java @@ -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 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 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);