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());
String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl();
if (StringUtils.isNotBlank(fieldAcquisitionUrl)) {
ArrayList<HashMap<String, String>> faceList = new ArrayList<>(); ArrayList<HashMap<String, String>> faceList = new ArrayList<>();
HashMap<String, String> faceMap = new HashMap<>(); HashMap<String, String> faceMap = new HashMap<>();
faceMap.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl()))); faceMap.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + fieldAcquisitionUrl)));
faceList.add(faceMap); faceList.add(faceMap);
jsonBody.put("faces", faceList); jsonBody.put("faces", faceList);
String body = jsonBody.toJSONString(); }
return body; 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,7 +316,7 @@ 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();
@ -303,7 +324,8 @@ public class HikvisionCall {
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,6 +52,7 @@ 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();
if (!isRetry) {
HikvisionRequestRetry entity = new HikvisionRequestRetry(); HikvisionRequestRetry entity = new HikvisionRequestRetry();
entity.setUrl(host + path); entity.setUrl(host + path);
entity.setHost(host); entity.setHost(host);
@ -61,6 +66,7 @@ public class HikvisionUtil {
entity.setAppSecret(appSecret); entity.setAppSecret(appSecret);
hikvisionRequestRetryMapper.insert(entity); hikvisionRequestRetryMapper.insert(entity);
} }
}
return responseStr; return responseStr;
} }