ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
@@ -69,6 +69,11 @@ public R pushChargingGunStatus(Integer id, Integer status) { return R.fail("接口状态变化后推送给第三方失败:" + throwable.getMessage()); } @Override public R<TChargingGun> getChargingGunByFullNumber(String fullNumber) { return R.fail("根据枪唯一码查询信息失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
@@ -86,4 +86,13 @@ */ @PostMapping("/t-charging-gun/pushChargingGunStatus") R pushChargingGunStatus(@RequestParam("id") Integer id, @RequestParam("status") Integer status); /** * 根据枪唯一码查询信息 * @return */ @PostMapping("/t-charging-gun/getChargingGunByFullNumber") R<TChargingGun> getChargingGunByFullNumber(@RequestParam("fullNumber") String fullNumber); } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
@@ -321,5 +321,16 @@ .eq(TChargingGun::getDelFlag, 0)); return R.ok(list); } /** * 根据枪唯一码查询信息 * @return */ @PostMapping("/getChargingGunByFullNumber") public R<TChargingGun> getChargingGunByFullNumber(@RequestParam("fullNumber") String fullNumber){ TChargingGun chargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getDelFlag, 0).eq(TChargingGun::getFullNumber, fullNumber)); return R.ok(chargingGun); } } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -271,7 +271,7 @@ stationInfo.setOperatorID("906171535"); stationInfo.setEquipmentOwnerID("906171535"); stationInfo.setStationName(datum.getName()); stationInfo.setCountryCode(datum.getCountryCode()); stationInfo.setCountryCode(StringUtils.isNotEmpty(datum.getCountryCode()) ? datum.getCountryCode() : "CN"); stationInfo.setAreaCode(datum.getDistrictsCode()); stationInfo.setAddress(datum.getAddress()); stationInfo.setStationTel(datum.getPhone()); @@ -393,6 +393,7 @@ //构建设备接口信息 equipmentInfo.setConnectorInfos(buildConnectorInfos(tChargingPile.getId(), tChargingPile.getCode(), chargingGunList)); equipmentInfo.setPower(tChargingPile.getRatedPower()); equipmentInfos.add(equipmentInfo); } return equipmentInfos; @@ -475,6 +476,9 @@ connectorStatusInfo.setStatus(255); break; } ConnectorStatusInfo connectorStatusInfo1 = new ConnectorStatusInfo(); BeanUtils.copyProperties(connectorStatusInfo, connectorStatusInfo1); connectorStatusInfo.setConnectorStatusInfo(connectorStatusInfo1); List<Operator> operators = operatorClient.getAllOperator().getData(); for (Operator operator : operators) { TCECUtil.notificationStationStatus(operator, connectorStatusInfo); @@ -1422,8 +1426,11 @@ QueryTerminalCode queryTerminalCode = JSON.parseObject(decrypt, QueryTerminalCode.class); String qrCode = queryTerminalCode.getQRCode(); String substring = qrCode.substring(qrCode.indexOf("=") + 1); TChargingGun chargingGun = chargingGunClient.getChargingGunByFullNumber(substring).getData(); QueryTerminalCodeResult queryTerminalCodeResult = new QueryTerminalCodeResult(); queryTerminalCodeResult.setTerminalCode(substring); if(null != chargingGun){ queryTerminalCodeResult.setTerminalCode(chargingGun.getId().toString()); } //参数加密 String jsonString = JacksonUtils.toJson(queryTerminalCodeResult); ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java
@@ -297,7 +297,10 @@ sign = SignUtil.bytesToHexString(hmacMd5); break; case "KuaiDian": sign = SignUtil.hmacSign(model.getData(), key); //进行字符串拼接、计算 String m1 = new StringBuilder(model.getOperatorID()).append(model.getData()).append(model.getTimeStamp()).append(model.getSeq()).toString(); // 打印计算得到的签名Sig sign = SignUtil.hmacSign(m1, key); break; } return sign; @@ -327,7 +330,9 @@ sign = SignUtil.bytesToHexString(hmacMd5); break; case "KuaiDian": sign = SignUtil.hmacSign(model.getData(), key); //进行字符串拼接、计算 String m1 = new StringBuilder(model.getOperatorID()).append(model.getData()).append(model.getTimeStamp()).append(model.getSeq()).toString(); sign = SignUtil.hmacSign(m1, key); break; } return sign; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/OrderInfo.java
@@ -1,5 +1,6 @@ package com.ruoyi.integration.drainage.kuaidian.model; import com.fasterxml.jackson.annotation.JsonProperty; import com.ruoyi.integration.drainage.model.ChargeDetail; import lombok.Data; @@ -19,48 +20,57 @@ * 充电订单号 */ @NotNull private String StartChargeSeq; @JsonProperty("StartChargeSeq") private String startChargeSeq; /** * 充电设备接口编码 */ @NotNull private String ConnectorID; @JsonProperty("ConnectorID") private String connectorID; /** * 开始充电时间 * yyyy-MM-dd HH:mm:ss */ @NotNull private String StartTime; @JsonProperty("StartTime") private String startTime; /** * 结束充电时间 * yyyy-MM-dd HH:mm:ss */ @NotNull private String EndTime; @JsonProperty("EndTime") private String endTime; /** * 累计充电电量 */ @NotNull private BigDecimal TotalPower; @JsonProperty("TotalPower") private BigDecimal totalPower; /** * 总电费 */ @NotNull private BigDecimal TotalElecMoney; @JsonProperty("TotalElecMoney") private BigDecimal totalElecMoney; /** * 总服务费 */ @NotNull private BigDecimal TotalSeviceMoney; @JsonProperty("TotalSeviceMoney") private BigDecimal totalSeviceMoney; /** * 累计总金额 */ @NotNull private BigDecimal TotalMoney; @JsonProperty("TotalMoney") private BigDecimal totalMoney; /** * 车辆识别码 */ @Null @JsonProperty("VIN") private String VIN; /** * 充电结束原因 @@ -72,15 +82,18 @@ * 5`99:自定义 */ @NotNull private Integer StopReason; @JsonProperty("StopReason") private Integer stopReason; /** * 时段数N * 范围0`23 */ @Null private Integer SumPeriod; @JsonProperty("SumPeriod") private Integer sumPeriod; /** * 充电明细信息 */ private List<ChargeDetail> ChargeDetails; @JsonProperty("ChargeDetails") private List<ChargeDetail> chargeDetails; } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfoResult.java
@@ -1,5 +1,6 @@ package com.ruoyi.integration.drainage.kuaidian.model; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @@ -14,5 +15,6 @@ /** * 充电订单账单集合 */ private List<OrderInfo> OrderInfos; @JsonProperty("Orderlnfos") private List<OrderInfo> orderInfos; } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryTerminalCodeResult.java
@@ -1,5 +1,6 @@ package com.ruoyi.integration.drainage.kuaidian.model; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import javax.validation.constraints.NotNull; @@ -15,5 +16,6 @@ * 枪号 */ @NotNull @JsonProperty("TerminalCode") private String TerminalCode; } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatusInfo.java
@@ -49,4 +49,7 @@ @Null @JsonProperty("LookStatus") private Integer lookStatus; @JsonProperty("ConnectorStatusInfo") private ConnectorStatusInfo connectorStatusInfo; } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatusInfo1.java
New file @@ -0,0 +1,54 @@ package com.ruoyi.integration.drainage.model; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import javax.validation.constraints.NotNull; import javax.validation.constraints.Null; /** * 充电设备接口状态 * @author zhibing.pu * @Date 2025/1/21 14:53 */ @Data public class ConnectorStatusInfo1 { /** * 充电设备接口编码 */ @NotNull @JsonProperty("ConnectorID") private String connectorID; /** * 充电设备接口状态 * 0:离网 * 1:空闲 * 2:占用(未充电) * 3:占用(充电中) * 4:占用(预约锁定) * 255:故障 */ @NotNull @JsonProperty("Status") private Integer status; /** * 车位状态 * 0:未知 * 10:空闲 * 50:占用 */ @Null @JsonProperty("ParkStatus") private Integer parkStatus; /** * 地锁状态 * 0:未知 * 10:已解锁 * 50:已上锁 */ @Null @JsonProperty("LookStatus") private Integer lookStatus; private ConnectorStatusInfo1 ConnectorStatusInfo; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1942,7 +1942,7 @@ chargingOrder.setChargingCapacity(query.getCharging_degree()); chargingOrder.setElectricity(query.getCharging_degree()); chargingOrder.setTotalElectricity(new BigDecimal(100 - query.getSoc())); BmsDemandAndChargerExportation data = bmsDemandAndChargerExportationClient.getBmsDemandAndChargerExportation(chargingOrder.getCode()).getData(); BmsDemandAndChargerExportation data = bmsDemandAndChargerExportationClient.getBmsDemandAndChargerExportation(chargingOrder1.getCode()).getData(); if(null != data){ chargingOrder.setNeedElec(data.getBms_current_requirements()); }