update vin启动充电

This commit is contained in:
Guoqs
2025-07-09 01:39:56 +08:00
parent bf8563400f
commit 52da55277d
4 changed files with 109 additions and 5 deletions

View File

@@ -360,6 +360,9 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
log.info("充电桩主动申请充电逻辑, param:{}", JSON.toJSONString(confirmStartChargingData));
Map<String, String> resultMap = new HashMap<>();
// 生成订单DTO
GenerateOrderDTO dto = new GenerateOrderDTO();
String pileSn = confirmStartChargingData.getPileSn();
String connectorCode = confirmStartChargingData.getConnectorCode();
@@ -371,10 +374,12 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
String startMode = confirmStartChargingData.getStartMode();
if (StringUtils.equals("01", startMode)) {
String physicsCard = confirmStartChargingData.getPhysicsCard();
dto.setLogicCard(physicsCard);
memberWalletVO = memberBasicInfoService.queryMemberInfoByCardCode(physicsCard, pileBasicInfo.getMerchantId() + "", pileBasicInfo.getStationId() + "");
log.info("根据卡号:{},查询会员信息:{}", physicsCard, JSON.toJSONString(memberWalletVO));
} else if (StringUtils.equals("03", startMode)) {
String vinCode = confirmStartChargingData.getVinCode();
dto.setVinCode(vinCode);
memberWalletVO = memberBasicInfoService.queryByVinCode(vinCode, pileBasicInfo.getMerchantId() + "", pileBasicInfo.getStationId() + "");
log.info("根据vin码:{},查询会员信息:{}", vinCode, JSON.toJSONString(memberWalletVO));
}
@@ -423,7 +428,7 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
resultMap.put("accountBalance", accountBalance);
// 异步创建订单
GenerateOrderDTO dto = new GenerateOrderDTO();
// GenerateOrderDTO dto = new GenerateOrderDTO();
dto.setPileSn(pileSn);
dto.setConnectorCode(connectorCode);
dto.setTransactionCode(transactionCode);
@@ -431,10 +436,11 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
dto.setPayMode(payMode);
dto.setStartMode(StringUtils.equals("01", startMode) ? "2" : "5");
dto.setMemberId(memberWalletVO.getMemberId());
dto.setMerchantId(pileBasicInfo.getMerchantId() + "");
CompletableFuture.runAsync(() -> {
try {
Map<String, Object> map = orderBasicInfoService.generateOrderByCard(dto);
Map<String, Object> map = orderBasicInfoService.generateOrderByCardV2(dto);
} catch (Exception e) {
throw new RuntimeException(e);
}

View File

@@ -41,6 +41,10 @@ public class GenerateOrderDTO extends BasicPileDTO{
*/
private String startMode;
private String vinCode;
private String logicCard;
/**
* 支付方式 1-余额支付3-白名单支付4-微信支付5-支付宝支付
*/
@@ -127,4 +131,9 @@ public class GenerateOrderDTO extends BasicPileDTO{
* 启动时soc
*/
private String startSoc;
/**
* 运营商id
*/
private String merchantId;
}

View File

@@ -345,6 +345,8 @@ public interface OrderBasicInfoService{
Map<String, Object> generateOrderByCard(GenerateOrderDTO dto) throws Exception;
Map<String, Object> generateOrderByCardV2(GenerateOrderDTO dto) throws Exception;
/**
* 联联平台 获取累计数据用
* @param dto
@@ -577,4 +579,6 @@ public interface OrderBasicInfoService{
Map<String, Object> verifyMergeChargeOrder(VerifyMergeChargeOrderDTO dto) throws Exception;
List<OrderBasicInfo> getOrderBasicInfoByTimeInterval(List<String> stationIds, String startTime, String endTime);
}

View File

@@ -3513,6 +3513,82 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
return map;
}
/**
* 生成订单 返回交易流水号
*
* @param dto
* @return
*/
@Override
public Map<String, Object> generateOrderByCardV2(GenerateOrderDTO dto) throws Exception {
logger.info("充电桩主动申请启动充电生成订单 param:{}", JSON.toJSONString(dto));
BigDecimal accountBalance = dto.getChargeAmount();
String payMode = dto.getPayMode();
// 判断当前用户是否为平台测试员
// PlatformTesterVO platformTesterVO = memberBasicInfoService.selectPlatformTesterStatus(dto.getMemberId());
// PileBasicInfo pileBasicInfo = pileBasicInfoService.selectPileBasicInfoBySN(dto.getPileSn());
// PileStationWhitelist pileStationWhitelist = pileStationWhitelistService.queryWhitelistByMemberId(String.valueOf(pileBasicInfo.getStationId()), dto.getMemberId());
// 运营商id
String merchantId = dto.getMerchantId();
dto.setChargeAmount(accountBalance);
dto.setPayMode(payMode);
/*
生成订单
*/
OrderBasicInfo basicInfo = generateOrder(dto);
if (basicInfo == null) {
return null;
}
if (StringUtils.equals(StartModeEnum.AUTH_CARD.getValue(), dto.getStartMode())) {
// 将卡状态改为启动锁定
PileAuthCard pileAuthCard = PileAuthCard.builder()
.id(dto.getPileAuthCardInfo().getId())
.logicCard(dto.getPileAuthCardInfo().getLogicCard())
.status("2")
.build();
pileAuthCardService.updatePileAuthCard(pileAuthCard);
} else if (StringUtils.equals(StartModeEnum.VIN_CODE.getValue(), dto.getStartMode())) {
// 将vin码改成启动锁定 2023.11.4 站点白名单和测试员不需要锁定
if (!StringUtils.equals(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue(), dto.getPayMode())) {
dto.getMemberPlateNumberRelation().setVinStatus("2");
}
}
// 组装结果集
Map<String, Object> map = Maps.newHashMap();
map.put("orderCode", basicInfo.getOrderCode());
map.put("transactionCode", basicInfo.getTransactionCode());
map.put("accountBalance", accountBalance);
logger.info("生成订单 result:{}", JSON.toJSONString(map));
// 支付订单
PayOrderDTO payOrderDTO = PayOrderDTO.builder()
.orderCode(basicInfo.getOrderCode())
.payAmount(accountBalance)
.payMode(dto.getPayMode())
.memberId(dto.getMemberId())
.startMode(dto.getStartMode())
.build();
String mode = pileMerchantInfoService.getDelayModeByMerchantId(merchantId);
// 获取处理逻辑
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
orderLogic.payOrder(payOrderDTO); // 充电桩主动申请启动充电生成订单 使用支付
/*
推送小程序启动充电消息
通过memberId查询openId
*/
if (StringUtils.isNotBlank(dto.getMemberId())) {
wxAppletRemoteService.startChargingSendMsg(dto.getMemberId(), basicInfo.getOrderCode());
}
return map;
}
/**
* 联联平台 获取累计数据用
*
@@ -4684,7 +4760,12 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
}
if (StringUtils.equals(dto.getStartMode(), StartModeEnum.AUTH_CARD.getValue())) {
// 鉴权卡启动
orderBasicInfo.setLogicCard(dto.getPileAuthCardInfo().getLogicCard());
if (dto.getPileAuthCardInfo() != null) {
orderBasicInfo.setLogicCard(dto.getPileAuthCardInfo().getLogicCard());
}
if (StringUtils.isNotBlank(dto.getLogicCard())) {
orderBasicInfo.setLogicCard(dto.getLogicCard());
}
}
if (StringUtils.equals(dto.getStartMode(), StartModeEnum.VIN_CODE.getValue())) {
// vin启动
@@ -4697,10 +4778,13 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
orderBasicInfo.setPlateNumber(memberPlateNumberRelation.getLicensePlateNumber());
}
}
if (StringUtils.isNotBlank(dto.getStartSoc())) {
orderBasicInfo.setStartSoc(dto.getStartSoc());
if (StringUtils.isNotBlank(dto.getVinCode())) {
orderBasicInfo.setVinCode(dto.getVinCode());
}
}
if (StringUtils.isNotBlank(dto.getStartSoc())) {
orderBasicInfo.setStartSoc(dto.getStartSoc());
}
/**
* 预约时间
@@ -4753,6 +4837,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
.orderDetail(orderDetail)
.build();
pileTransactionService.doCreateOrder(createOrderTransactionDTO);
logger.info("订单保存成功-orderCode:{}, transactionCode:{}", orderCode, transactionCode);
return orderBasicInfo;
}