diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index 1eb40ceb8..cc9abe351 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -645,7 +645,7 @@ public class HikvisionCall { String svrIndex = null; String platePicUrl = null; WorkerInfo workerInfo = workerInfoMapper.selectById(1765673550491725825L); - getWorkerInfo(workerInfo, project); + getWorkerInfoByPersonId(workerInfo, project); return null; } @@ -768,6 +768,12 @@ public class HikvisionCall { } public void addWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception { +// JSONObject wiJo = getWorkerInfoByCertificateNo(workerInfo, project); +// if (wiJo != null) { +// WorkerInfo deleteWorker = BeanUtil.toBean(workerInfo, WorkerInfo.class); +// deleteWorker.setId(wiJo.getLong("personId")); +// deleteWorkerFromHttp(deleteWorker, project); +// } String rs = doAddWorkerFromHttp(workerInfo, project); sendNoticeForWorker("添加人员到海康isc", rs, workerInfo, 1, 1); } @@ -820,7 +826,7 @@ public class HikvisionCall { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; } - JSONObject wiJo = getWorkerInfo(workerInfo, project); + JSONObject wiJo = getWorkerInfoByPersonId(workerInfo, project); if (wiJo != null) { editWorkerFromHttp(workerInfo, project); @@ -881,8 +887,16 @@ public class HikvisionCall { title += "成功"; setSuccessByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null); } else { - msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:" + rs; - title += "失败"; + JSONObject jo = JSONObject.parseObject(rs); + String code = jo.getString("code"); + if (Objects.equals(code, "0x00072202")) { + msg = "同步成功,车牌号码:" + carInfo.getCarNumber(); + title += "成功"; + setSuccessByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null); + } else { + msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常"; + title += "失败"; + } } noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, "24"); } @@ -1038,7 +1052,7 @@ public class HikvisionCall { * @param workerInfo * @param project */ - private void editWorkerFace(WorkerInfo workerInfo, Project project) throws Exception { + public void editWorkerFace(WorkerInfo workerInfo, Project project) throws Exception { ArrayList workerFaceIds = getWorkerFaceIds(workerInfo, project); if (CollUtil.isNotEmpty(workerFaceIds)) { String workerFaceId = workerFaceIds.get(0); @@ -1086,7 +1100,7 @@ public class HikvisionCall { return rs; } - private void deleteWorkerFace(WorkerInfo workerInfo, Project project) throws Exception { + public void deleteWorkerFace(WorkerInfo workerInfo, Project project) throws Exception { ArrayList workerFaceIds = getWorkerFaceIds(workerInfo, project); if (CollUtil.isNotEmpty(workerFaceIds)) { for (String workerFaceId : workerFaceIds) { @@ -1121,7 +1135,7 @@ public class HikvisionCall { * @return */ private ArrayList getWorkerFaceIds(WorkerInfo workerInfo, Project project) throws Exception { - JSONObject joData = getWorkerInfo(workerInfo, project); + JSONObject joData = getWorkerInfoByPersonId(workerInfo, project); ArrayList ids = new ArrayList<>(); if (joData != null) { JSONArray ppJa = joData.getJSONArray("personPhoto"); @@ -1142,7 +1156,7 @@ public class HikvisionCall { * @param project * @return */ - private JSONObject getWorkerInfo(WorkerInfo workerInfo, Project project) throws Exception { + private JSONObject getWorkerInfoByPersonId(WorkerInfo workerInfo, Project project) throws Exception { final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo"; String host = "https://" + project.getArtemisConfigHost(); @@ -1151,14 +1165,39 @@ public class HikvisionCall { jo.put("paramValue", Arrays.asList(String.valueOf(workerInfo.getId()))); String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); JSONObject joData = HikvisionUtil.getJSONObjectData(rs); - if (joData != null) { - Integer total = joData.getInteger("total"); - if (Objects.equals(total, 1)) { - JSONArray jsonArray = joData.getJSONArray("list"); - for (int i = 0; i < jsonArray.size(); i++) { - JSONObject jsonObject = jsonArray.getJSONObject(i); - return jsonObject; - } + Integer total = joData.getInteger("total"); + if (Objects.equals(total, 1)) { + JSONArray jsonArray = joData.getJSONArray("list"); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + return jsonObject; + } + } + return null; + } + + /** + * 获取单个劳务人员信息,根据人员身份证 + * + * @param workerInfo + * @param project + * @return + */ + private JSONObject getWorkerInfoByCertificateNo(WorkerInfo workerInfo, Project project) throws Exception { + final String ARTEMIS_PATH = "/artemis"; + final String path = ARTEMIS_PATH + "/api/resource/v1/person/condition/personInfo"; + String host = "https://" + project.getArtemisConfigHost(); + JSONObject jo = new JSONObject(); + jo.put("paramName", "certificateNo"); + jo.put("paramValue", Arrays.asList(String.valueOf(workerInfo.getIdCard()))); + String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + JSONObject joData = HikvisionUtil.getJSONObjectData(rs); + Integer total = joData.getInteger("total"); + if (Objects.equals(total, 1)) { + JSONArray jsonArray = joData.getJSONArray("list"); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + return jsonObject; } } return null; diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java index 4f2bd87d0..d0b5b817d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java @@ -226,9 +226,9 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl