diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java index 3097eaf33..75363a3cf 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java @@ -95,6 +95,16 @@ public class AsyncHikvision { hikvisionCall.addCarInfoFromHttp(carInfo); } catch (Exception e) { log.error("海康:", e); + sendNoticeForCar(carInfo, e, "添加"); + } + } + + private void sendNoticeForCar(CarInfo carInfo, Exception e, String action) { + if (SecurityUtils.getUser().getUserId() != null) { + String title = action + "车辆到海康isc失败"; + String type = "24"; + String msg = "同步失败,车牌号:" + carInfo.getCarNumber() + "。失败原因:" + e.getMessage(); + noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, type); } } @@ -104,6 +114,7 @@ public class AsyncHikvision { hikvisionCall.editCarInfoForHikvision(carInfo); } catch (Exception e) { log.error("海康:", e); + sendNoticeForCar(carInfo, e, "编辑"); } } @@ -113,6 +124,7 @@ public class AsyncHikvision { hikvisionCall.deleteCarInfoForHikvision(carInfo); } catch (Exception e) { log.error("海康:", e); + sendNoticeForCar(carInfo, e, "删除"); } } diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index f37c83c5a..0dc056631 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -53,7 +53,7 @@ import java.util.concurrent.CompletableFuture; @RestController @RequestMapping("/xmgl/hikvision") public class HikvisionCall { - private static String FIXED_CAR_GROUP_NAME = "固定车永久通行"; + private static String FIXED_CAR_GROUP_NAME = "业主车辆"; @Value("${upload.image.url.prefix:}") private String imageUrlPrefix; @@ -1248,26 +1248,21 @@ public class HikvisionCall { * @param carInfo * @param project */ - private void deleteReservationCarInfo(CarInfo carInfo, Project project) { - try { - final String ARTEMIS_PATH = "/artemis"; - final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion"; - String host = "https://" + project.getArtemisConfigHost(); - JSONArray reservationCarInfoList = getReservationCarInfoList(carInfo, project); - if (reservationCarInfoList != null) { - for (int i = 0; i < reservationCarInfoList.size(); i++) { - JSONObject jsonObject = reservationCarInfoList.getJSONObject(i); - String reserveOrderNo = jsonObject.getString("reserveOrderNo"); - JSONObject jsonObject1 = new JSONObject(); - jsonObject1.put("reserveOrderNo", reserveOrderNo); - String rs = HikvisionUtil.doPost(host, path, jsonObject1.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); - sendNoticeForCarInfo("取消车位预约到海康isc", rs, carInfo); - } + private void deleteReservationCarInfo(CarInfo carInfo, Project project) throws Exception { + final String ARTEMIS_PATH = "/artemis"; + final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion"; + String host = "https://" + project.getArtemisConfigHost(); + JSONArray reservationCarInfoList = getReservationCarInfoList(carInfo, project); + if (reservationCarInfoList != null) { + for (int i = 0; i < reservationCarInfoList.size(); i++) { + JSONObject jsonObject = reservationCarInfoList.getJSONObject(i); + String reserveOrderNo = jsonObject.getString("reserveOrderNo"); + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("reserveOrderNo", reserveOrderNo); + String rs = HikvisionUtil.doPost(host, path, jsonObject1.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + sendNoticeForCarInfo("取消车位预约到海康isc", rs, carInfo); } - } catch (Exception e) { - log.error("error:", e); } - } /** @@ -1647,17 +1642,13 @@ public class HikvisionCall { * @param project * @param carInfo */ - public void ifReservationCar(Project project, CarInfo carInfo) { - try { - //删除预约车辆 - deleteReservationCarInfo(carInfo, project); + public void ifReservationCar(Project project, CarInfo carInfo) throws Exception { + //删除预约车辆 + deleteReservationCarInfo(carInfo, project); - //临时车辆预约 - if (Objects.equals(carInfo.getCarModuleType(), 2)) { - reservationCarFromHttp(project, carInfo); - } - } catch (Exception e) { - log.error("error:", e); + //临时车辆预约 + if (Objects.equals(carInfo.getCarModuleType(), 2)) { + reservationCarFromHttp(project, carInfo); } } @@ -1666,30 +1657,25 @@ public class HikvisionCall { final String path = ARTEMIS_PATH + "/api/pms/v2/parkingSpace/reservations/addition"; String host = "https://" + project.getArtemisConfigHost(); ParkReservation parkReservation = getParkReservation(project, carInfo); - if (parkReservation != null) { - String rs = HikvisionUtil.doPost(host, path, JSON.toJSONString(parkReservation), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); - sendNoticeForCarInfo("添加预约车辆到海康isc", rs, carInfo); - } + String rs = HikvisionUtil.doPost(host, path, JSON.toJSONString(parkReservation), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + sendNoticeForCarInfo("添加预约车辆到海康isc", rs, carInfo); } private ParkReservation getParkReservation(Project project, CarInfo carInfo) throws Exception { String parkIndexCode = getProjectParkCode(project); - if (StringUtils.isNotBlank(parkIndexCode)) { - WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId()); - ParkReservation parkReservation = new ParkReservation(); - parkReservation.setParkSyscode(parkIndexCode); - parkReservation.setPlateNo(carInfo.getCarNumber()); - if (workerInfo != null) { - parkReservation.setPhoneNo(workerInfo.getPhoneNumber()); - parkReservation.setOwner(workerInfo.getWorkerName()); - } - parkReservation.setAllowTimes(Convert.toLong(carInfo.getEntryAndExitPermit())); - parkReservation.setIsCharge("0"); - parkReservation.setStartTime(DateUtil.format(carInfo.getReserveStartTime(), "yyyy-MM-dd'T'HH:mm:ss") + "+08:00"); - parkReservation.setEndTime(DateUtil.format(carInfo.getReserveEndTime(), "yyyy-MM-dd'T'HH:mm:ss") + "+08:00"); - return parkReservation; + WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId()); + ParkReservation parkReservation = new ParkReservation(); + parkReservation.setParkSyscode(parkIndexCode); + parkReservation.setPlateNo(carInfo.getCarNumber()); + if (workerInfo != null) { + parkReservation.setPhoneNo(workerInfo.getPhoneNumber()); + parkReservation.setOwner(workerInfo.getWorkerName()); } - return null; + parkReservation.setAllowTimes(Convert.toLong(carInfo.getEntryAndExitPermit())); + parkReservation.setIsCharge("0"); + parkReservation.setStartTime(DateUtil.format(carInfo.getReserveStartTime(), "yyyy-MM-dd'T'HH:mm:ss") + "+08:00"); + parkReservation.setEndTime(DateUtil.format(carInfo.getReserveEndTime(), "yyyy-MM-dd'T'HH:mm:ss") + "+08:00"); + return parkReservation; } /** @@ -1709,8 +1695,9 @@ public class HikvisionCall { } //没有一样名字的就取第一个停车场 return parkList.getJSONObject(0).getString("parkIndexCode"); + } else { + throw new OpenAlertException("未查询到停车场信息"); } - return null; } /**