update 预约充电

This commit is contained in:
Guoqs
2024-07-30 11:00:56 +08:00
parent 49a1a62371
commit 6e4dc76269

View File

@@ -137,18 +137,18 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
@Override
public void activateReserved(PileReservationDTO dto) {
// 查询其他生效中的预约
List<PileReservationInfo> infoList = pileReservationInfoMapper.findByMemberIdAndPileSnAndStatus(dto.getMemberId(), dto.getPileSn(), "1");
if (CollectionUtils.isNotEmpty(infoList)) {
throw new BusinessException(ReturnCodeEnum.CODE_RESERVATION_ALREADY_EXISTS_ERROR);
}
// List<PileReservationInfo> 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<MemberPlateNumberVO> plateNumberVOList = memberPlateNumberRelationService.selectMemberPlateNumberRelation(pileReservationInfo.getMemberId());
List<String> 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);
}
/**