diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/ThirdPartyNotificationController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/ThirdPartyNotificationController.java index ee20da2b4..adde4d372 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/ThirdPartyNotificationController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/ThirdPartyNotificationController.java @@ -93,6 +93,25 @@ public class ThirdPartyNotificationController extends BaseController { return result; } + /** + * 站点功率信息推送 + */ + @PostMapping("/notificationStationPowerInfo") + public AjaxResult notificationStationPowerInfo(@RequestBody NotificationDTO dto) { + AjaxResult result; + try { + notificationService.notificationStationPowerInfo(dto); + result = AjaxResult.success(); + } catch (BusinessException e) { + logger.error("站点功率信息推送失败", e); + result = AjaxResult.error(e.getMessage()); + } catch (Exception e) { + logger.error("站点功率信息推送失败", e); + result = AjaxResult.error(); + } + return result; + } + /** * 站点费率变化推送 */ diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/common/NotificationService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/common/NotificationService.java index d57f12a2c..0a495b9d1 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/common/NotificationService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/common/NotificationService.java @@ -1,5 +1,6 @@ package com.jsowell.thirdparty.common; +import com.google.common.collect.Lists; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.StringUtils; @@ -116,15 +117,19 @@ public class NotificationService { // 如果dto中的platformType不为空,并且不等于secretInfoVO.getPlatformType(),continue continue; } + // 根据平台类型获取Service + ThirdPartyPlatformService platformService = ThirdPartyPlatformFactory.getInvokeStrategy(secretInfoVO.getPlatformType()); try { - // 根据平台类型获取Service - ThirdPartyPlatformService platformService = ThirdPartyPlatformFactory.getInvokeStrategy(secretInfoVO.getPlatformType()); platformService.notificationConnectorChargeStatus(orderCode, secretInfoVO); - platformService.notificationEquipChargeStatus(orderCode); } catch (Exception e) { logger.error("设备充电中状态变化推送error:", e); } + try { + platformService.notificationEquipChargeStatus(orderCode); + }catch (Exception e){ + logger.error("notification_equip_charge_status error", e); + } } } @@ -160,6 +165,34 @@ public class NotificationService { } } + /** + * 站点功率信息推送 + * notification_orderInfo/notification_charge_order_info + */ + public void notificationStationPowerInfo(NotificationDTO dto) { + String stationId = dto.getStationId(); + String platformType = dto.getPlatformType(); + // 通过stationId 查询该站点需要对接的平台配置 + List secretInfoVOS = thirdpartySecretInfoService.queryStationToPlatformList(stationId); + if (CollectionUtils.isEmpty(secretInfoVOS)) { + return; + } + // 调用相应平台的处理方法 + for (ThirdPartySecretInfoVO secretInfoVO : secretInfoVOS) { + if (StringUtils.isNotBlank(platformType) && !StringUtils.equals(platformType, secretInfoVO.getPlatformType())) { + // 如果dto中的platformType不为空,并且不等于secretInfoVO.getPlatformType(),continue + continue; + } + try { + // 根据平台类型获取Service + ThirdPartyPlatformService platformService = ThirdPartyPlatformFactory.getInvokeStrategy(secretInfoVO.getPlatformType()); + platformService.notificationPowerInfo(Lists.newArrayList(stationId)); + } catch (Exception e) { + logger.error("站点功率信息推送error", e); + } + } + } + /** * 站点费率变化推送 * notification_stationFee diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java index f6c562908..1e5b0aa89 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java @@ -255,7 +255,7 @@ public class LianLianServiceImpl implements LianLianService { String dataSecret = "9JttBXhmrmmGWwi4"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO huawei: zd4NrLWJ38XCTaqP E6gnWuz0QzBW75CR 正式:NHsBDtTanA60vTIu pJahbxk8wG79CMDB String dataSecretIV = "9NCXVbujUCveCkGu"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR huawei: RJJecvNTJ48SGMG7 SXejaSUx5yud8UHm 正式:2uyE2Cgu4nVf6egc y259VRq7h8RyFXmT String signSecret = "sRjCDeokckFGpYpA"; // sRjCDeokckFGpYpA - String dataString = "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"; + String dataString = "Pi/OEE08aBpwYAMkbF46Kkj5MOvkm2tE7YjPFKPVOlDy+C5sfYwuUiXjASPMR2qEgPTa/W6w5qGf+a5UASebzc1sA+g5fJdepbGhj5T6Ni6uG6djrAdAnUCsMv2lDV4j8K+HhZapLoc1tr7Uo+8zuqP5p7HLFn8fg5AVJbKl0ZTd1EklLA53auoLMM8rDsbF1KpJzhlrZY/eG/NqcV4JWQV7F1drlIoE2ZTLbrvZbMum8LtkWu4Pk52Kn8v5NAy9GcmPLY3AH0LIajjAJRGXG5WltCGM9Hkfb8hAo83qrxRnSrJThEbfs85aI/0rbZzF7EMTRdOanIKHXpms9+hYwQ1hyIlkibdCmd4GQW6wnymko7rpVzOUjNU94iWa/RTEkhvWKGccOy5g435d90GfeOjBrmQ6hHWl2pnAESKqcVKArPXziQTafPtYsdVkm4IHihuARzCOiyKYgKXwNz5ebCO9Kfu37Sx9iCPIG2MwFkubVASElBceIwJqsQHWB8iO0sJ/etXuwaxngTCcNgR+vCGyVD13tcWgwn6EBXmAIpU="; // 解密data byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupConnectorStatusInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupConnectorStatusInfo.java index ac55b40c4..093b2dcff 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupConnectorStatusInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupConnectorStatusInfo.java @@ -104,12 +104,12 @@ public class SupConnectorStatusInfo { * 描述: 最近一次状态变化的时间,格式“yyyy-MM-ddHH:mm:ss” */ @JSONField(name = "LastChangeTime") - private String lastChangeTime = DateUtils.getDateTime(); + private String lastChangeTime; /** * 状态更新时间 * 本次状态变化的时间,格式“yyyy-MM-dd HH:mm:ss” */ @JSONField(name = "UpdateTime") - private String UpdateTime = DateUtils.getDateTime(); + private String updateTime; } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ZheJiangPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ZheJiangPlatformServiceImpl.java index f5e52757b..92fde80b9 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ZheJiangPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ZheJiangPlatformServiceImpl.java @@ -416,11 +416,10 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { // 调用联联平台接口 String url = urlAddress + "supervise_notification_station_info"; - String jsonStr = JSON.toJSONString(info); JSONObject data = new JSONObject(); - data.put("StationInfo", jsonStr); + data.put("SupStationInfo", info); - String jsonString = JSON.toJSONString(data); + String jsonString = JSON.toJSONString(info); // 获取令牌 String token = getToken(urlAddress, operatorId, operatorSecret, dataSecretIv, signSecret, dataSecret); @@ -446,20 +445,20 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { } SupConnectorStatusInfo info = SupConnectorStatusInfo.builder() - .operatorID(Constants.JSOWELL_OPERATORID) + .operatorID(Constants.OPERATORID_JIANG_SU) .equipmentOwnerID(MerchantUtils.getOperatorID(merchantInfoVO.getOrganizationCode())) .stationID(connectorInfo.getStationId()) .equipmentID(connectorInfo.getPileSn()) .connectorID(pileConnectorCode) - .equipmentClassification(Constants.ONE) .status(Integer.parseInt(status)) .statusDesc(PileConnectorDataBaseStatusEnum.getStatusDescription(status)) .parkStatus(Constants.zero) .lockStatus(Constants.zero) + .updateTime(DateUtils.getDateTime()) .build(); // 调用联联平台接口 - String operatorId = secretInfoVO.getTheirOperatorId(); + String operatorId = Constants.OPERATORID_JIANG_SU; String operatorSecret = secretInfoVO.getTheirOperatorSecret(); String signSecret = secretInfoVO.getTheirSigSecret(); String dataSecret = secretInfoVO.getTheirDataSecret(); @@ -547,11 +546,13 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); // 查询枪口状态 PileConnectorInfoVO info = pileConnectorInfoService.getPileConnectorInfoByConnectorCode(orderInfo.getPileConnectorCode()); - + BigDecimal current = info.getCurrent() == null ? BigDecimal.ZERO : info.getCurrent(); + BigDecimal voltage = info.getVoltage() == null ? BigDecimal.ZERO : info.getVoltage(); + String soc = info.getSOC() == null ? Constants.ZERO : info.getSOC(); // 查询相关配置信息 ThirdPartySecretInfoVO zheJiangPlatformSecretInfo = getZheJiangPlatformSecretInfo(); - String operatorId = zheJiangPlatformSecretInfo.getTheirOperatorId(); + String operatorId = zheJiangPlatformSecretInfo.getOurOperatorId(); String operatorSecret = zheJiangPlatformSecretInfo.getTheirOperatorSecret(); String signSecret = zheJiangPlatformSecretInfo.getTheirSigSecret(); String dataSecret = zheJiangPlatformSecretInfo.getTheirDataSecret(); @@ -569,15 +570,15 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { .orderStatus(2) .pushTimeStamp(dateTime) .connectorStatus(info.getStatus()) // 3-充电中 - .currentA(info.getCurrent().setScale(1, BigDecimal.ROUND_HALF_UP)) - .voltageA(info.getVoltage().setScale(1, BigDecimal.ROUND_HALF_UP)) - .soc(new BigDecimal(info.getSOC())) + .currentA(current.setScale(1, BigDecimal.ROUND_HALF_UP)) + .voltageA(voltage.setScale(1, BigDecimal.ROUND_HALF_UP)) + .soc(new BigDecimal(soc)) .startTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, orderInfo.getChargeStartTime())) .endTime(dateTime) .totalPower(info.getChargingDegree()) .eventTime(dateTime) - .chargeVoltage(info.getVoltage().setScale(1, BigDecimal.ROUND_HALF_UP)) - .chargeCurrent(info.getCurrent().setScale(1, BigDecimal.ROUND_HALF_UP)) + .chargeVoltage(voltage.setScale(1, BigDecimal.ROUND_HALF_UP)) + .chargeCurrent(current.setScale(1, BigDecimal.ROUND_HALF_UP)) .build(); // 查询运营商信息 @@ -588,7 +589,7 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { supEquipChargeStatusInfo.setEquipmentOwnerID(equipmentOwnerId); } - String url = urlAddress + BusinessInformationExchangeEnum.NOTIFICATION_EQUIP_CHARGE_STATUS.getValue(); + String url = urlAddress + "supervise_notification_equip_charge_status"; // 调用平台接口 String jsonString = JSON.toJSONString(supEquipChargeStatusInfo); @@ -603,21 +604,19 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { * supervise_notification_charge_order_info */ @Override - public String notificationChargeOrderInfo(String orderCode) { + public String notificationChargeOrderInfo(String orderCode, ThirdPartySecretInfoVO secretInfoVO) { // 根据订单号查询出信息 OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); if (orderBasicInfo == null) { return null; } - ThirdPartySecretInfoVO ningXiaSecretInfo = getZheJiangPlatformSecretInfo(); - - String operatorId = ningXiaSecretInfo.getOurOperatorId(); - String operatorSecret = ningXiaSecretInfo.getTheirOperatorSecret(); - String signSecret = ningXiaSecretInfo.getTheirSigSecret(); - String dataSecret = ningXiaSecretInfo.getTheirDataSecret(); - String dataSecretIv = ningXiaSecretInfo.getTheirDataSecretIv(); - String urlAddress = ningXiaSecretInfo.getTheirUrlPrefix(); + String operatorId = Constants.OPERATORID_JIANG_SU; + String operatorSecret = secretInfoVO.getTheirOperatorSecret(); + String signSecret = secretInfoVO.getTheirSigSecret(); + String dataSecret = secretInfoVO.getTheirDataSecret(); + String dataSecretIv = secretInfoVO.getTheirDataSecretIv(); + String urlAddress = secretInfoVO.getTheirUrlPrefix(); // 根据订单号查询订单详情 OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode); @@ -635,7 +634,13 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { if (MerchantUtils.isXiXiaoMerchant(orderBasicInfo.getMerchantId())) { equipmentOwnerID = Constants.OPERATORID_XI_XIAO; } else { - equipmentOwnerID = Constants.OPERATORID_LIANLIAN; + PileMerchantInfoVO pileMerchantInfoVO = pileMerchantInfoService.queryMerchantInfoByStationId(orderInfo.getStationID()); + String organizationCode = pileMerchantInfoVO.getOrganizationCode(); + if (StringUtils.isNotBlank(organizationCode) && organizationCode.length() == 18) { + equipmentOwnerID = ThirdPartyPlatformUtils.extractEquipmentOwnerID(pileMerchantInfoVO.getOrganizationCode()); + }else { + equipmentOwnerID = Constants.OPERATORID_JIANG_SU; + } } orderInfo.setEquipmentOwnerID(equipmentOwnerID); @@ -654,7 +659,7 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { // 调用联联平台接口 JSONObject json = new JSONObject(); json.put("ChargeOrderInfo", orderInfo); - String jsonString = JSON.toJSONString(json); + String jsonString = JSON.toJSONString(orderInfo); String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret); return result; } @@ -755,23 +760,25 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { List supStationPowerInfoList = new ArrayList<>(); stationIds.forEach(stationId -> { PileStationVO stationInfo = pileStationInfoService.getStationInfo(stationId); - String dateTimeNow = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS); + PileMerchantInfoVO pileMerchantInfoVO = pileMerchantInfoService.queryMerchantInfoByStationId(stationId); + String dateTimeNow = DateUtils.getDateTime(); SupStationPowerInfo supStationPowerInfo = new SupStationPowerInfo(); // 根据站点id查询桩列表 List pileList = pileBasicInfoService.getPileListByStationId(stationId); SupStationPowerInfo.EquipmentPowerInfo equipmentPowerInfo = null; List equipmentPowerInfoList = new ArrayList<>(); BigDecimal stationInstantPower = BigDecimal.ZERO; - supStationPowerInfo.setOperatorId(Constants.OPERATORID_LIANLIAN); - supStationPowerInfo.setEquipmentOwnerID(stationInfo.getMerchantId()); + supStationPowerInfo.setOperatorId(Constants.OPERATORID_JIANG_SU); + String equipmentOwnerID = ThirdPartyPlatformUtils.extractEquipmentOwnerID(pileMerchantInfoVO.getOrganizationCode()); + supStationPowerInfo.setEquipmentOwnerID(equipmentOwnerID); supStationPowerInfo.setStationId(stationId); - supStationPowerInfo.setStationClassification(1); + // supStationPowerInfo.setStationClassification(1); supStationPowerInfo.setDataTime(dateTimeNow); for (PileBasicInfo pileBasicInfo : pileList) { equipmentPowerInfo = new SupStationPowerInfo.EquipmentPowerInfo(); equipmentPowerInfo.setEquipmentID(pileBasicInfo.getSn()); - equipmentPowerInfo.setEquipmentClassification(1); + // equipmentPowerInfo.setEquipmentClassification(1); equipmentPowerInfo.setDataTime(dateTimeNow); // 根据桩sn查询枪口列表 @@ -793,7 +800,7 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { connectorPowerInfo = new SupStationPowerInfo.EquipmentPowerInfo.ConnectorPowerInfo(); connectorPowerInfo.setConnectorID(connectorInfo.getPileConnectorCode()); - connectorPowerInfo.setEquipmentClassification(1); + // connectorPowerInfo.setEquipmentClassification(1); connectorPowerInfo.setDataTime(dateTimeNow); connectorPowerInfo.setConnectorRealTimePower(instantPower); @@ -813,14 +820,14 @@ public class ZheJiangPlatformServiceImpl implements ThirdPartyPlatformService { supStationPowerInfoList.add(supStationPowerInfo); }); // 发送请求 - ThirdPartySecretInfoVO ningXiaSecretInfo = getZheJiangPlatformSecretInfo(); + ThirdPartySecretInfoVO zheJiangPlatformSecretInfo = getZheJiangPlatformSecretInfo(); - String operatorId = ningXiaSecretInfo.getOurOperatorId(); - String operatorSecret = ningXiaSecretInfo.getTheirOperatorSecret(); - String signSecret = ningXiaSecretInfo.getTheirSigSecret(); - String dataSecret = ningXiaSecretInfo.getTheirDataSecret(); - String dataSecretIv = ningXiaSecretInfo.getTheirDataSecretIv(); - String urlAddress = ningXiaSecretInfo.getTheirUrlPrefix(); + String operatorId = zheJiangPlatformSecretInfo.getOurOperatorId(); + String operatorSecret = zheJiangPlatformSecretInfo.getTheirOperatorSecret(); + String signSecret = zheJiangPlatformSecretInfo.getTheirSigSecret(); + String dataSecret = zheJiangPlatformSecretInfo.getTheirDataSecret(); + String dataSecretIv = zheJiangPlatformSecretInfo.getTheirDataSecretIv(); + String urlAddress = zheJiangPlatformSecretInfo.getTheirUrlPrefix(); String url = urlAddress + "supervise_notification_realtime_power_info"; // 获取令牌 String token = getToken(urlAddress, operatorId, operatorSecret, dataSecretIv, signSecret, dataSecret); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/util/HttpRequestUtil.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/util/HttpRequestUtil.java index 9d5e52455..77e82d23c 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/util/HttpRequestUtil.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/util/HttpRequestUtil.java @@ -165,7 +165,7 @@ public class HttpRequestUtil { // log.info("联联平台发送请求 返回数据map:{}", JSON.toJSONString(map)); - int ret = (int) map.get("Ret"); + int ret = Integer.parseInt(String.valueOf(map.get("Ret"))); String resultMsg = (String) map.get("Msg"); if (ret != 0) { // 表示请求有异常