From 6e4dc76269fcc591256f69e5bf786d8daeeffc8c Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Tue, 30 Jul 2024 11:00:56 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E9=A2=84=E7=BA=A6=E5=85=85=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PileReservationInfoServiceImpl.java | 70 ++++++++++++++++--- 1 file changed, 60 insertions(+), 10 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java index 900e0851c..fc3345ce0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java @@ -137,18 +137,18 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic @Override public void activateReserved(PileReservationDTO dto) { // 查询其他生效中的预约 - List infoList = pileReservationInfoMapper.findByMemberIdAndPileSnAndStatus(dto.getMemberId(), dto.getPileSn(), "1"); - if (CollectionUtils.isNotEmpty(infoList)) { - throw new BusinessException(ReturnCodeEnum.CODE_RESERVATION_ALREADY_EXISTS_ERROR); - } + // List infoList = pileReservationInfoMapper.findByMemberIdAndPileSnAndStatus(dto.getMemberId(), dto.getPileSn(), "1"); + // if (CollectionUtils.isNotEmpty(infoList)) { + // throw new BusinessException(ReturnCodeEnum.CODE_RESERVATION_ALREADY_EXISTS_ERROR); + // } PileReservationInfo pileReservationInfo = pileReservationInfoMapper.selectByPrimaryKey(Integer.parseInt(dto.getReservedId())); if (pileReservationInfo == null) { return; } - if (!StringUtils.equals(dto.getMemberId(), pileReservationInfo.getMemberId())) { - return; - } + // if (!StringUtils.equals(dto.getMemberId(), pileReservationInfo.getMemberId())) { + // return; + // } pileReservationInfo.setStatus(Constants.ONE); // 保存之前,校验时间是否重叠 int i = saveReservation(pileReservationInfo); @@ -197,9 +197,9 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic if (pileReservationInfo == null) { return; } - if (!StringUtils.equals(dto.getMemberId(), pileReservationInfo.getMemberId())) { - return; - } + // if (!StringUtils.equals(dto.getMemberId(), pileReservationInfo.getMemberId())) { + // return; + // } // 校验通过可以修改预约 pileReservationInfo.setStatus(Constants.ZERO); int i = pileReservationInfoMapper.updateByPrimaryKeySelective(pileReservationInfo); @@ -412,20 +412,70 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic if (pileReservationInfo == null) { return; } + + /** + * 操作 + * 0x01:启动 0x02:取消 0x03:修改 + */ + String operation = "03"; + if (StringUtils.isNotBlank(dto.getStartTime())) { pileReservationInfo.setStartTime(Time.valueOf(dto.getStartTime())); + operation = "03"; } if (StringUtils.isNotBlank(dto.getEndTime())) { pileReservationInfo.setEndTime(Time.valueOf(dto.getEndTime())); + operation = "03"; } if (StringUtils.isNotBlank(dto.getStatus())) { pileReservationInfo.setStatus(dto.getStatus()); + if (StringUtils.equals(dto.getStatus(), Constants.ZERO)) { + // 停用 + operation = "02"; + } else if (StringUtils.equals(dto.getStatus(), Constants.ONE)) { + // 启用 + operation = "01"; + } } if (StringUtils.isNotBlank(dto.getVerifyIdentity())) { pileReservationInfo.setVerifyIdentity(dto.getVerifyIdentity()); } pileReservationInfo.setUpdateBy(dto.getMemberId()); this.insertOrUpdateSelective(pileReservationInfo); + + // 查询会员的绑定vin列表 + List plateNumberVOList = memberPlateNumberRelationService.selectMemberPlateNumberRelation(pileReservationInfo.getMemberId()); + List vinCodes = Lists.newArrayList(); + int count = 0; + for (MemberPlateNumberVO vo : plateNumberVOList) { + if (count < 3 && StringUtils.isNotBlank(vo.getVinCode())) { + vinCodes.add(vo.getVinCode()); + count++; + } + } + // 如果 vinCodes 的数量少于 3,用 "0" 补足 + while (vinCodes.size() < 3) { + vinCodes.add(""); + } + + String type = StringUtils.equals(pileReservationInfo.getReservationType(), "single") ? "00" : "01"; + + // 发送指令 + ReservationChargingCommand command = ReservationChargingCommand.builder() + .transactionCode(Constants.ILLEGAL_TRANSACTION_CODE) + .pileSn(pileReservationInfo.getPileSn()) + .connectorCode(pileReservationInfo.getPileConnectorCode().replace(pileReservationInfo.getPileSn(), "")) + .operation(operation) + .reservationType(type) + .verifyIdentity(pileReservationInfo.getVerifyIdentity()) + .vin1(vinCodes.get(0)) + .vin2(vinCodes.get(1)) + .vin3(vinCodes.get(2)) + .reservedStartTime(pileReservationInfo.getStartTime().toLocalTime()) + .reservedEndTime(pileReservationInfo.getEndTime().toLocalTime()) + .amount(Constants.WHITELIST_DEFAULT_AMOUNT) + .build(); + pileRemoteService.reservationCharging(command); } /**