update 预约充电

This commit is contained in:
Guoqs
2024-08-24 14:30:29 +08:00
parent ffd78762eb
commit f0c2869590

View File

@@ -412,6 +412,18 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
return 0;
}
// 是否发指令 false:不发指令 true:发指令, 默认不发指令
boolean sendFlag = false;
if (StringUtils.equals(pileReservationInfo.getStatus(), "1")) {
sendFlag = true;
}
// 发指令结果 false:失败 true:成功, 默认失败
boolean sendResult = false;
// 是否更新数据库 false:不更新 true:更新, 默认更新
boolean updateFlag = true;
// 操作 0x01:启动 0x02:取消 0x03:修改
String operation = "03";
if (StringUtils.isNotBlank(dto.getStartTime())) {
@@ -431,47 +443,55 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
if (StringUtils.equals(dto.getStatus(), Constants.ZERO)) {
// 停用
operation = "02";
sendFlag = true;
} else if (StringUtils.equals(dto.getStatus(), Constants.ONE)) {
// 启用
operation = "01";
sendFlag = true;
}
}
pileReservationInfo.setUpdateBy(dto.getMemberId());
/*
发送指令, 收到回复更新数据库
发送指令
*/
// 查询会员的绑定vin列表 2024年7月30日11点04分 以当前请求会员的VIN为准
List<MemberPlateNumberVO> plateNumberVOList = memberPlateNumberRelationService.selectMemberPlateNumberRelation(dto.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++;
if (sendFlag) {
// 查询会员的绑定vin列表 2024年7月30日11点04分 以当前请求会员的VIN为准
List<MemberPlateNumberVO> plateNumberVOList = memberPlateNumberRelationService.selectMemberPlateNumberRelation(dto.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();
String result = pileRemoteService.reservationCharging(command);
sendResult = StringUtils.equals(result, Constants.ONE);
}
// 如果 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();
String result = pileRemoteService.reservationCharging(command);
if (StringUtils.equals(result, Constants.ONE)) {
log.info("修改预约充电信息, updateFlag:{}, sendFlag:{}, sendResult:{}", updateFlag, sendFlag, sendResult);
// 更新数据库, 一般情况下是都更新的, 只有在发送指令并发送失败的情况下才不更新
if (updateFlag && (sendFlag == sendResult)) {
return this.insertOrUpdateSelective(pileReservationInfo);
}
return 0;