bug修复

This commit is contained in:
guo 2024-03-06 13:44:50 +08:00
parent af10a1fa0f
commit 3e0eca85bf
2 changed files with 58 additions and 31 deletions

View File

@ -239,13 +239,15 @@ public class HikvisionCall {
jsonBody.put("certificateType", "111"); jsonBody.put("certificateType", "111");
jsonBody.put("certificateNo", workerInfo.getIdCard()); jsonBody.put("certificateNo", workerInfo.getIdCard());
jsonBody.put("jobNo", workerInfo.getPersonSn()); jsonBody.put("jobNo", workerInfo.getPersonSn());
ArrayList<HashMap<String, String>> faceList = new ArrayList<>(); String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl();
HashMap<String, String> faceMap = new HashMap<>(); if (StringUtils.isNotBlank(fieldAcquisitionUrl)) {
faceMap.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl()))); ArrayList<HashMap<String, String>> faceList = new ArrayList<>();
faceList.add(faceMap); HashMap<String, String> faceMap = new HashMap<>();
jsonBody.put("faces", faceList); faceMap.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + fieldAcquisitionUrl)));
String body = jsonBody.toJSONString(); faceList.add(faceMap);
return body; jsonBody.put("faces", faceList);
}
return jsonBody.toJSONString();
} }
private String getOrgIndexCode(WorkerInfo workerInfo) { private String getOrgIndexCode(WorkerInfo workerInfo) {
@ -286,6 +288,25 @@ public class HikvisionCall {
} }
} }
/**
* 添加人脸
*
* @param workerInfo
* @param project
*/
private void addWorkerFace(WorkerInfo workerInfo, Project project) {
String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl();
if (StringUtils.isNotBlank(fieldAcquisitionUrl)) {
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/add";
String host = "https://" + project.getArtemisConfigHost();
JSONObject jo = new JSONObject();
jo.put("personId", String.valueOf(workerInfo.getId()));
jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + fieldAcquisitionUrl)));
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
}
/** /**
* 编辑人脸 * 编辑人脸
* *
@ -295,15 +316,16 @@ public class HikvisionCall {
private void editWorkerFace(WorkerInfo workerInfo, Project project) { private void editWorkerFace(WorkerInfo workerInfo, Project project) {
ArrayList<String> workerFaceIds = getWorkerFaceIds(workerInfo, project); ArrayList<String> workerFaceIds = getWorkerFaceIds(workerInfo, project);
if (CollUtil.isNotEmpty(workerFaceIds)) { if (CollUtil.isNotEmpty(workerFaceIds)) {
for (String workerFaceId : workerFaceIds) { String workerFaceId = workerFaceIds.get(0);
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/update"; final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/update";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
jo.put("faceId", workerFaceId); jo.put("faceId", workerFaceId);
jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl()))); jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl())));
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
} } else {
addWorkerFace(workerInfo, project);
} }
} }
@ -317,6 +339,8 @@ public class HikvisionCall {
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return; return;
} }
deleteWorkerFace(workerInfo, project);
final String ARTEMIS_PATH = "/artemis"; final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete"; final String path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete";
String host = "https://" + project.getArtemisConfigHost(); String host = "https://" + project.getArtemisConfigHost();
@ -324,9 +348,6 @@ public class HikvisionCall {
jsonBody.put("personIds", Arrays.asList(workerInfo.getId())); jsonBody.put("personIds", Arrays.asList(workerInfo.getId()));
String body = jsonBody.toJSONString(); String body = jsonBody.toJSONString();
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
deleteWorkerFace(workerInfo, project);
} }
private void deleteWorkerFace(WorkerInfo workerInfo, Project project) { private void deleteWorkerFace(WorkerInfo workerInfo, Project project) {

View File

@ -32,6 +32,10 @@ public class HikvisionUtil {
} }
public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) { public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) {
return doPost(host, path, body, querys, appKey, appSecret, false);
}
public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret, boolean isRetry) {
log.info("HikvisionUtil#doPost.url:{}", host + path); log.info("HikvisionUtil#doPost.url:{}", host + path);
log.info("HikvisionUtil#doPost.body:{}", body); log.info("HikvisionUtil#doPost.body:{}", body);
String responseStr = null; String responseStr = null;
@ -48,18 +52,20 @@ public class HikvisionUtil {
log.info("HikvisionUtil#doPost.getResponseResult:{}", responseStr); log.info("HikvisionUtil#doPost.getResponseResult:{}", responseStr);
} catch (Exception var10) { } catch (Exception var10) {
var10.printStackTrace(); var10.printStackTrace();
HikvisionRequestRetry entity = new HikvisionRequestRetry(); if (!isRetry) {
entity.setUrl(host + path); HikvisionRequestRetry entity = new HikvisionRequestRetry();
entity.setHost(host); entity.setUrl(host + path);
entity.setPath(path); entity.setHost(host);
entity.setMethod(2); entity.setPath(path);
entity.setParam(JSON.toJSONString(querys)); entity.setMethod(2);
entity.setBody(body); entity.setParam(JSON.toJSONString(querys));
entity.setLastResult(null); entity.setBody(body);
entity.setRequestNum(1); entity.setLastResult(null);
entity.setAppKey(appKey); entity.setRequestNum(1);
entity.setAppSecret(appSecret); entity.setAppKey(appKey);
hikvisionRequestRetryMapper.insert(entity); entity.setAppSecret(appSecret);
hikvisionRequestRetryMapper.insert(entity);
}
} }
return responseStr; return responseStr;
} }