From 147e5bbbcb2d8112622322d4b6d16e2e8fe8621e Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Wed, 29 May 2024 18:01:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/xmgl/call/HikvisionCall.java | 70 +++++++++++++------ .../car/service/impl/CarInfoServiceImpl.java | 56 +++++++-------- 2 files changed, 74 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index afbdae558..3032c722d 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -982,45 +982,71 @@ public class HikvisionCall { } private void sendNoticeAndSetStatusForCarInfo(String title, String rs, CarInfo carInfo, Integer type, Integer operate) { - boolean callSuc = HikvisionUtil.isSuccess(rs); - sendNoticeAndSetStatusForCarInfo(title, rs, carInfo, type, operate, callSuc); + sendNoticeAndSetStatusForCarInfo(title, rs, carInfo, type, operate, null); } - public void sendNoticeAndSetStatusForCarInfo(String title, String rs, CarInfo carInfo, Integer type, Integer operate, boolean callSuc) { + public void sendNoticeAndSetStatusForCarInfo(String title, String rs, CarInfo carInfo, Integer type, Integer operate, Boolean success) { String msg; - boolean success = false; - if (callSuc) { - msg = "同步成功,车牌号码:" + carInfo.getCarNumber(); - title += "成功"; - success = true; - } else { + if (success == null) { + boolean callSuc = HikvisionUtil.isSuccess(rs); + success = false; JSONObject jo = JSONObject.parseObject(rs); String code = jo.getString("code"); - if (Objects.equals(code, "0x00072202")) { - msg = "同步成功,车牌号码:" + carInfo.getCarNumber(); - title += "成功"; - success = true; - } else if (Objects.equals(code, "0x02e33900")) { - String msg1 = jo.getString("msg"); - if (Objects.equals(msg1, "reservation record not existed or overdued!")) { + if (callSuc) { + JSONObject dataJo = jo.getJSONObject("data"); + Optional fOp = Optional.ofNullable(dataJo).map(o -> o.getJSONArray("failures")); + if (fOp.isPresent() && fOp.get().size() != 0) { + if ("0x00052102".equals(fOp.get().getJSONObject(0).getString("code"))) { + msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆绑定的人员在isc不存在"; + title += "失败"; + } else { + msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常"; + title += "失败"; + } + } else { msg = "同步成功,车牌号码:" + carInfo.getCarNumber(); title += "成功"; success = true; + } + } else { + if (Objects.equals(code, "0x00072202")) { + msg = "同步成功,车牌号码:" + carInfo.getCarNumber(); + title += "成功"; + success = true; + } else if (Objects.equals(code, "0x02e33900")) { + String msg1 = jo.getString("msg"); + if (Objects.equals(msg1, "reservation record not existed or overdued!")) { + msg = "同步成功,车牌号码:" + carInfo.getCarNumber(); + title += "成功"; + success = true; + } else if (Objects.equals(msg1, "Car reservation failed! The plateNo has reserved in the parking!")) { + msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆预约记录已存在"; + title += "失败"; + } else { + msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常"; + title += "失败"; + } + } else if (Objects.equals(code, "0x02e33400")) { + msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆属于黑名单内不能下发预约车"; + title += "失败"; + } else if (Objects.equals(code, "0x00072003")) { + msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车牌格式不正确!"; + title += "失败"; } else { msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常"; title += "失败"; } - } else if (Objects.equals(code, "0x02e33400")) { - msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆属于黑名单内不能下发预约车"; - title += "失败"; - } else if (Objects.equals(code, "0x00072003")) { - msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车牌格式不正确!"; - title += "失败"; + } + } else { + if (success) { + msg = "同步成功,车牌号码:" + carInfo.getCarNumber(); + title += "成功"; } else { msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常"; title += "失败"; } } + if (success) { updateSuccessStatusByNow(carInfo.getProjectSn(), carInfo.getId(), type, operate, ThreadLocalUtil.getNotNull().getDate("now"), null); } else { diff --git a/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java index 5d0e01fbe..c47b0d1b7 100644 --- a/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java @@ -84,7 +84,8 @@ public class CarInfoServiceImpl extends ServiceImpl impl @Override @DistributedLock(keyPrefix = "car_info:", key = "#c.carNumber", tryLok = true, lockTime = 0) public void addCarInfo(CarInfo c) { - checkTime(c); + c.setCarNumber(c.getCarNumber().toUpperCase(Locale.ROOT)); + validTime(c); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(CarInfo::getProjectSn, c.getProjectSn()) .eq(CarInfo::getCarNumber, c.getCarNumber()); @@ -99,22 +100,19 @@ public class CarInfoServiceImpl extends ServiceImpl impl if (project == null) { return; } - carInfoMapper.update(null, new LambdaUpdateWrapper() - .set(CarInfo::getIsBlack, c.getIsBlack()) - .eq(CarInfo::getId, old.getId()) - ); - old.setIsBlack(c.getIsBlack()); + CarInfo updateCar = new CarInfo(); + BeanUtil.copyProperties(c, updateCar); + updateCar.setId(old.getId()); + updateCar.setReserveStartTime(old.getReserveStartTime()); + updateCar.setReserveEndTime(old.getReserveEndTime()); + carInfoMapper.updateById(updateCar); if (c.getIsBlack() == 1) { asyncHikvision.deleteCarInfoForHikvision(old, true); } else { - if (old.getIsBlack() == 1) { - deleteOrUpdateCar(project, old, true); + if (old.getIsBlack() == 0 && DateUtil.compare(old.getReserveStartTime(), now) < 0 && DateUtil.compare(old.getReserveEndTime(), now) > 0) { + log.info("车辆在有效期内,不需要更新,车牌号:{}", c.getCarNumber()); } else { - if (DateUtil.compare(old.getReserveStartTime(), now) < 0 && DateUtil.compare(old.getReserveEndTime(), now) > 0) { - log.info("车辆在有效期内,不需要更新,车牌号:{}", c.getCarNumber()); - } else { - deleteOrUpdateCar(project, old, false); - } + deleteOrUpdateCar(project, old, true); } } } else { @@ -125,7 +123,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl } } - private void checkTime(CarInfo c) { + private void validTime(CarInfo c) { if (isReservationType(c) && DateUtil.compare(c.getReserveEndTime(), new Date()) < 0) { throw new OpenAlertException("预约时间已过期"); } @@ -167,7 +165,10 @@ public class CarInfoServiceImpl extends ServiceImpl impl if (notEqTime || mustUpdate) { car.setReserveEndTime(fit.getReserveEndTime()); car.setReserveStartTime(fit.getReserveStartTime()); - this.editCarInfo(car); + CarInfo insertCar = new CarInfo(); + BeanUtil.copyProperties(fit, insertCar); + insertCar.setId(car.getId()); + this.editCarInfo(insertCar); } } else { deleteCar(car); @@ -176,7 +177,8 @@ public class CarInfoServiceImpl extends ServiceImpl impl @Override public void editCarInfo(CarInfo carInfo) { - checkTime(carInfo); + carInfo.setCarNumber(carInfo.getCarNumber().toUpperCase(Locale.ROOT)); + validTime(carInfo); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(CarInfo::getProjectSn, carInfo.getProjectSn()) .eq(CarInfo::getCarNumber, carInfo.getCarNumber()) @@ -196,20 +198,14 @@ public class CarInfoServiceImpl extends ServiceImpl impl .eq(CarInfo::getId, carInfo.getId())); if (isReservationType(old)) { - boolean notEqTime = DateUtil.compare(carInfo.getReserveStartTime(), old.getReserveStartTime()) != 0 || DateUtil.compare(carInfo.getReserveEndTime(), old.getReserveEndTime()) != 0; - if (notEqTime) { - CarInfoApprovalFlow flow = new CarInfoApprovalFlow(); - BeanUtil.copyProperties(carInfo, flow); - carInfoApprovalFlowMapper.update(null, new LambdaUpdateWrapper() - .set(CarInfoApprovalFlow::getReserveStartTime, carInfo.getReserveStartTime()) - .set(CarInfoApprovalFlow::getReserveEndTime, carInfo.getReserveEndTime()) - .set(CarInfoApprovalFlow::getCarNumber, carInfo.getCarNumber()) - .eq(CarInfoApprovalFlow::getReserveStartTime, old.getReserveStartTime()) - .eq(CarInfoApprovalFlow::getReserveEndTime, old.getReserveEndTime()) - .eq(CarInfoApprovalFlow::getCarNumber, old.getCarNumber()) - .eq(CarInfoApprovalFlow::getProjectSn, old.getProjectSn()) - ); - } + CarInfoApprovalFlow flow = new CarInfoApprovalFlow(); + BeanUtil.copyProperties(carInfo, flow); + carInfoApprovalFlowMapper.update(flow, new LambdaUpdateWrapper() + .eq(CarInfoApprovalFlow::getReserveStartTime, old.getReserveStartTime()) + .eq(CarInfoApprovalFlow::getReserveEndTime, old.getReserveEndTime()) + .eq(CarInfoApprovalFlow::getCarNumber, old.getCarNumber()) + .eq(CarInfoApprovalFlow::getProjectSn, old.getProjectSn()) + ); } //同步海康