From 08a628fc58587333f06cd11f10c15108f3200442 Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Sat, 30 Nov 2024 10:20:48 +0800 Subject: [PATCH 01/37] update --- .../jsowell/pile/domain/PileStationInfo.java | 50 +++++++++++ .../publicinfo/BaseStationInfo.java | 8 ++ .../platform/common/SupStationPowerInfo.java | 72 +++++++++++++++- .../platform/domain/SupChargeOrderInfo.java | 41 +++++++++ .../domain/SupEquipChargeStatusInfo.java | 71 ++++++++++++++- .../platform/domain/SupStationInfo.java | 86 +++++++++++++++++++ .../impl/GuiZhouPlatformServiceImpl.java | 7 +- 7 files changed, 329 insertions(+), 6 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileStationInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileStationInfo.java index dcaabe829..d286dc898 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileStationInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileStationInfo.java @@ -1,5 +1,6 @@ package com.jsowell.pile.domain; +import com.alibaba.fastjson2.annotation.JSONField; import com.jsowell.common.annotation.Excel; import com.jsowell.common.core.domain.BaseEntity; import lombok.Data; @@ -8,6 +9,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.math.BigDecimal; +import java.util.List; /** * 充电站信息对象 pile_station_info @@ -336,6 +338,52 @@ public class PileStationInfo extends BaseEntity { @Excel(name = "是否有地锁(0-无;1-有)") private String parkingLockFlag; + /** + *服务车型描述 + */ + @Excel(name = "服务车型描述") + private List swapMatchCars; + + /** + *是否为通用类型 + */ + @Excel(name = "是否为通用类型(1-通用 ; 2-非通用)") + private Integer generalApplicationType; + + /** + *充换电站方位 + * 1:地面-停车场 + * 2:地面-路侧 + * 3:地下停车场 + * 4:立体式停车楼 + */ + @Excel(name = "充换电站方位") + private Integer stationOrientation; + + /** + * 充换电站建筑面积 + */ + @Excel(name = "充换电站建筑面积") + private String stationArea; + + /** + * 充换电站人工值守 + */ + @Excel(name = "是否有充换电站人工值守(0-无 ; 1-有)") + private String havePerson; + + /** + * 周边配套设施 + * 1:卫生间 + * 2:便利店 + * 3:餐厅 + * 4:休息室 + * 5:雨棚 + */ + @Excel(name = "周边配套设施") + private String supportingFacilities; + + /** * 删除标识(0-正常;1-删除) */ @@ -386,6 +434,8 @@ public class PileStationInfo extends BaseEntity { .append("barrierFlag", barrierFlag) .append("parkingLockFlag", parkingLockFlag) .append("delFlag", delFlag) + .append("swapMatchCars", swapMatchCars) + .append("generalApplicationType",generalApplicationType) .toString(); } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/publicinfo/BaseStationInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/publicinfo/BaseStationInfo.java index fca136e8d..3fe6922d1 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/publicinfo/BaseStationInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/publicinfo/BaseStationInfo.java @@ -186,6 +186,14 @@ public class BaseStationInfo { @JSONField(name = "MatchCars") private String matchCars; + /** + * 服务车型描述 + * 描述换电站可服务的车系车型(厂牌型号) + * 注:站点分类为 2 或 3 时,此字段必填,为 1 时非必填。 + */ + @JSONField(name = "SwapMatchCars") + private List swapMatchCars; + /** * 车位楼层及数量描述 N * 车位楼层以及数量信息 diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/common/SupStationPowerInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/common/SupStationPowerInfo.java index 1f63e6d0c..a5aa795cc 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/common/SupStationPowerInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/common/SupStationPowerInfo.java @@ -1,6 +1,7 @@ package com.jsowell.thirdparty.platform.common; import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -67,7 +68,6 @@ public class SupStationPowerInfo { @JSONField(name = "EquipmentPowerInfos") private List equipmentPowerInfos; - @Data public static class EquipmentPowerInfo{ /** @@ -136,4 +136,74 @@ public class SupStationPowerInfo { private BigDecimal connectorRealTimePower; } } + @Data + private static class SupEquipmentPowerInfo{ + + /** + * 充电设备编码 + */ + @JSONField(name = "EquipmentID") + private String equipmentID; + + /** + * 设备分类 + * 1:车辆充电设备 + * 2:换电站内的电池箱充电设备 + */ + @JSONField(name = "EquipmentClassification") + private Integer equipmentClassification; + + /** + * 统计时间 + * 格式:‘yyyy-MM-dd HH:mm:ss’ + */ + @JSONField(name = "DataTime") + private String dataTime; + + /** + * 充电设备实时功率 + * 保留一位小数 + */ + @JSONField(name = "EquipRealTimePower") + private BigDecimal equipRealTimePower; + + /** + * 充电设备接口实时功率列表 + */ + @JSONField(name = "ConnectorPowerInfos") + private List connectorPowerInfos; + + + @Data + private static class SupConnectorPowerInfo{ + /** + * 充电设备接口编码 + */ + @JsonProperty(value = "ConnectorID") + private String connectorID; + + /** + * 设备分类 + * 1:车辆充电设备 + * 2:换电站内的电池箱充电设备 + */ + @JSONField(name = "EquipmentClassification") + private Integer equipmentClassification; + + /** + * 统计时间 + * 格式:‘yyyy-MM-dd HH:mm:ss’ + */ + @JSONField(name = "DataTime") + private String dataTime; + + /** + * 充电设备接口实时功率 + * 保留一位小数 + */ + @JSONField(name = "ConnectorRealTimePower") + private BigDecimal connectorRealTimePower; + } + + } } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupChargeOrderInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupChargeOrderInfo.java index d272a0211..14876967d 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupChargeOrderInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupChargeOrderInfo.java @@ -81,6 +81,47 @@ public class SupChargeOrderInfo { @JSONField(name = "OrderNo") private String orderNo; + /** + * 设备接口分类 + * 1:车辆充电设备接 口 + * 2:换电站内的电池 箱充电设备接口 + */ + @JSONField(name = "EquipmentClassification") + private Integer equipmentClassification; + + /** + * 换电订单编 号 + * 换电订单唯一标识 注:设备接口分类为 2 的,该字段为必填 + */ + @JSONField(name = "SwapOrderID") + private Integer swapOrderID; + + /** + * 充电开始 SOC + */ + @JSONField(name = "StartSOC") + private String startSOC; + + /** + * 充电结束 SOC + */ + @JSONField(name = "EndSOC") + private String endSOC; + + /** + * 电池箱编码 + */ + @JSONField(name = "BatteryPackID") + private String batteryPackID; + + /** + * 是否有调仓 + * 0:否 1:是 + * 注:设备接口分类为 2 时,该字段为必填 项;设备接口分类为 1 时,该字段为非必 填项 + */ + @JSONField(name = "BatteryCabinChange") + private String batteryCabinChange; + /** * 车牌号 * LicensePlate diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipChargeStatusInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipChargeStatusInfo.java index 52b7f05e0..3e454c554 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipChargeStatusInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipChargeStatusInfo.java @@ -52,6 +52,18 @@ public class SupEquipChargeStatusInfo { @JSONField(name = "OrderNo") private String orderNo; + /** + * 车牌号 + */ + @JSONField(name = "LicensePlate") + private String licensePlate; + + /** + * 车牌号 + */ + @JSONField(name = "VIN") + private String vin; + /** * 充电订单状态 * 1、启动中 @@ -110,6 +122,32 @@ public class SupEquipChargeStatusInfo { @JSONField(name = "VoltageA") private BigDecimal voltageA; + /** + * B相电流 + * 小数点后1位 + */ + @JSONField(name = "CurrentB") + private BigDecimal currentB; + + /** + * B相电压 + */ + @JSONField(name = "VoltageB") + private BigDecimal voltageB; + + /** + * C相电流 + * 小数点后1位 + */ + @JSONField(name = "CurrentC") + private BigDecimal currentC; + + /** + * C相电压 + */ + @JSONField(name = "VoltageC") + private BigDecimal voltageC; + /** * 电池剩余电量 * 小数点后1位 @@ -131,11 +169,38 @@ public class SupEquipChargeStatusInfo { /** * 累计充电量 - * 小数点后4位 */ @JSONField(name = "TotalPower") private BigDecimal totalPower; + /** + * 累计电费 + * 小数点后2位 + */ + @JSONField(name = "ElecMoney") + private String elecMoney; + + /** + * 累计服务费 + * 小数点后2位 + */ + @JSONField(name = "ServiceMoney") + private String serviceMoney; + + /** + * 时段数 + * 参数范围:0~ 32 + */ + @JSONField(name = "SumPeriod") + public Integer sumPeriod; + + /** + * 充电明细信息 + * 单时段充电明细信 息,参照公共对象: 充电明细信息 + */ + @JSONField(name = "ChargeDetails") + private List chargeDetails; + /** * 上报时间 */ @@ -162,6 +227,6 @@ public class SupEquipChargeStatusInfo { @JSONField(name = "StartChargeSeqStat") private Integer startChargeSeqStat; - @JSONField(name = "ChargeDetails") - private List chargeDetails; + //@JSONField(name = "ChargeDetails") + //private List chargeDetails; } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java index 0246ddf00..daf9141d0 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java @@ -49,6 +49,16 @@ public class SupStationInfo extends StationInfo { @JSONField(name = "StationClassification") private int stationClassification; + /** + * 通用类型 + * 1:通用(可为 3 种或 3 种以上的车型进行换电) + * 2:非通用 + * 注:站点分类为 2 或 3 时,此字段必填,为 1 时非必填。 + */ + @JSONField(name = "GeneralApplicationType") + private Integer generalApplicationType; + + /** * 7*24小时营业 * 0:否 @@ -99,5 +109,81 @@ public class SupStationInfo extends StationInfo { @JSONField(name = "BuildTime") private String BuildTime; + /** + * 充换电站方位 + * 1:地面-停车场 + * 2:地面-路侧 + * 3:地下停车场 + * 4:立体式停车楼 + */ + @JSONField(name = "StationOrientation") + private String stationOrientation; + + /** + * 充换电站建筑面积 + * 该充电场站建设用 地面积 + */ + @JSONField(name = "StationArea") + private String stationArea; + + /** + * 充换电站人工值守 + * 0:无 + * 1:有 + */ + @JSONField(name = "HavePerson") + private String havePerson; + + /** + * 周边配套设施 + * 1:卫生间 + * 2:便利店 + * 3:餐厅 + * 4:休息室 + * 5:雨棚 + */ + @JSONField(name = "SupportingFacilities") + private String supportingFacilities; + + /** + * 换电设备信息 + * 换电设备信息对象 数组,参照公共对 象:换电设备信息 + */ + @JSONField(name = "SwapEquipmentInfos") + private List swapEquipmentInfos; + private List PolicyInfos; + + @Data + public class SupSwapEquipmentInfo { + /** + * 换电设备编码 + * 换电设备唯一编码,对同一运营商保证唯一 + */ + @JSONField(name = "SwapMechanicalEquipmentID") + private String SwapMechanicalEquipmentID; + + + /** + * 换电设备生 产商组织机 构代码 + * 换电设备生产商组织 机构代码 + */ + @JSONField(name = "SwapManufacturerID") + private String swapManufacturerID; + + /** + * 换电设备生 产商名称 + * 设备生产商名称 + */ + @JSONField(name = "SwapManufacturerName") + private String swapManufacturerName; + + /** + * 换电机械设 备额定功率 + * 换电机械设备额定功 率,单位:kW + */ + @JSONField(name = "MechanicalEquipmentPower") + private String mechanicalEquipmentPower; + + } } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java index 1f901e328..78df7426a 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java @@ -25,7 +25,6 @@ import com.jsowell.pile.dto.QueryOperatorInfoDTO; import com.jsowell.pile.dto.QueryStationInfoDTO; import com.jsowell.pile.service.*; import com.jsowell.pile.thirdparty.CommonParamsDTO; -import com.jsowell.pile.thirdparty.ConnectorInfo; import com.jsowell.pile.thirdparty.EquipmentInfo; import com.jsowell.pile.util.MerchantUtils; import com.jsowell.pile.vo.SupStationStatsVO; @@ -36,7 +35,6 @@ import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO; import com.jsowell.pile.vo.uniapp.customer.BillingPriceVO; import com.jsowell.pile.vo.web.PileConnectorInfoVO; import com.jsowell.pile.vo.web.PileMerchantInfoVO; -import com.jsowell.pile.vo.web.PileModelInfoVO; import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.thirdparty.lianlian.domain.ConnectorChargeStatusInfo; import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo; @@ -249,6 +247,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { stationInfo.setParkFree(Integer.valueOf(pileStationInfo.getParkFree())); stationInfo.setPayment(pileStationInfo.getPayment()); stationInfo.setSupportOrder(Integer.valueOf(pileStationInfo.getSupportOrder())); + // stationInfo.setParkFeeType(pileStationInfo); // 停车收费类型 stationInfo.setBusinessExpandType(Integer.parseInt(pileStationInfo.getAloneApply())); stationInfo.setToiletFlag(Integer.valueOf(pileStationInfo.getToiletFlag())); @@ -303,6 +302,8 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { .countryCode(pileStationInfo.getCountryCode()) .address(pileStationInfo.getAddress()) .serviceTel(pileStationInfo.getStationTel()) + .swapMatchCars(pileStationInfo.getSwapMatchCars()) + .generalApplicationType(pileStationInfo.getGeneralApplicationType()) .stationType(Integer.valueOf(pileStationInfo.getStationType())) .stationStatus(Integer.valueOf(pileStationInfo.getStationStatus())) .parkNums(Integer.valueOf(pileStationInfo.getParkNums())) @@ -318,6 +319,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { .parkFeeType(0) .periodFee(1) // 峰谷分时 0-否;1-是 .equipmentClassification(1) + .businessExpandType(0) .toiletFlag(Integer.valueOf(pileStationInfo.getToiletFlag())) .storeFlag(Integer.valueOf(pileStationInfo.getStoreFlag())) .restaurantFlag(Integer.valueOf(pileStationInfo.getRestaurantFlag())) @@ -365,6 +367,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { List pileList = pileBasicInfoService.getPileListForLianLian(stationId); if (CollectionUtils.isNotEmpty(pileList)) { info.setEquipmentInfos(pileList); // 充电设备信息列表 + info.setEquipmentClassification(0); } // areaCodeCountryside From 22e4d9b64f3c2908d9c3d1f3a284b00d65af478b Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Mon, 2 Dec 2024 09:58:07 +0800 Subject: [PATCH 02/37] update --- .../platform/domain/SupEquipmentInfo.java | 274 ++++++++++++++++++ .../platform/domain/SupStationStatsInfo.java | 95 +++++- .../platform/domain/SupStationStatusInfo.java | 49 ++++ .../platform/domain/SupSwapOrderInfo.java | 106 +++++++ 4 files changed, 520 insertions(+), 4 deletions(-) create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipmentInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupSwapOrderInfo.java diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipmentInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipmentInfo.java new file mode 100644 index 000000000..ad73c04da --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipmentInfo.java @@ -0,0 +1,274 @@ +package com.jsowell.thirdparty.platform.domain; +import com.alibaba.fastjson2.annotation.JSONField; +import com.jsowell.pile.thirdparty.ConnectorInfo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 充电设备信息 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SupEquipmentInfo { + /** + * 设备编码 Y + * 设备唯一编码,对同一对接平台,保证唯一 + */ + @JSONField(name = "EquipmentID") + private String equipmentID; + + /** + * 设备唯一编码 + *设备生产商组织机构代 码 9 位+设备出厂唯一 编码 + */ + @JSONField(name = "EquipmentUniqueNumber") + private String equipmentUniqueNumber; + + /** + * 设备生产商组织机构代码 Y + */ + @JSONField(name = "ManufacturerID") + private String manufacturerID; + + /** + * 设备生产商名称 + */ + @JSONField(name = "ManufacturerName") + private String manufacturerName; + + /** + * 设备型号 N + * 由设备生厂商定义的设备型号 + */ + @JSONField(name = "EquipmentModel") + private String equipmentModel; + + /** + * 设备名称 N + */ + @JSONField(name = "EquipmentName") + private String equipmentName; + + /** + * 设备生产日期 N + * YYYY-MM-DD + */ + @JSONField(name = "ProductionDate") + private String productionDate; + + /** + * 建设时间 Y + * YYYY-MM-DD + */ + @JSONField(name = "ConstructionTime") + private String constructionTime; + + /** + * 设备类型(1-直流设备;2-交流设备;3-交直流一体设备) Y + */ + @JSONField(name = "EquipmentType") + private Integer equipmentType; + + /** + * 设备分类 + * 1:车辆充电设备 2:换电站内的电池箱 充电设备 + */ + @JSONField(name = "EquipmentClassification") + private Integer EquipmentClassification; + + /** + * 设备状态 Y + * 0:未知 + * 1:建设中 + * 5:关闭下线 + * 6:维护中 + * 50:正常使用 + */ + @JSONField(name = "EquipmentStatus") + private Integer equipmentStatus; + + /** + * 额定功率(单位:kW) Y + */ + @JSONField(name = "EquipmentPower") + private BigDecimal equipmentPower; + + /** + * 新国标(0-否;1-是) Y + * 是否新国标 + */ + @JSONField(name = "NewNationalStandard") + private Integer newNationalStandard; + + /** + * 充电设备接口列表 Y + * 该充电设备所有的充电设备接口的信息对象集合 + */ + @JSONField(name = "ConnectorInfos") + private List connectorInfos; + + /** + * 充电设备经度 N + * GCJ-02坐标系 + */ + @JSONField(name = "EquipmentLng") + private BigDecimal equipmentLng; + + /** + * 充电设备纬度 N + * GCJ-02坐标系 + */ + @JSONField(name = "EquipmentLat") + private BigDecimal equipmentLat; + + /** + * 是否支持VIN码识别(0-否;1-是) Y + */ + @JSONField(name = "VinFlag") + private Integer vinFlag; + + /** + * 设备总功率 + */ + @JSONField(name = "Power") + private BigDecimal power; + + @Data + public static class SupConnectorInfo{ + /** + * 充电设备接口编码 Y + * 充电设备接口编码,同一对接平台内唯一 + */ + @JSONField(name = "ConnectorID") + private String connectorID; + + /** + * 设备接口分类 + * 1:车辆充电设备接口 + * 2:换电站内的电池箱 充电设备接口 + */ + @JSONField(name = "EquipmentClassification") + private String equipmentClassification; + + /** + * 充电设备接口名称 N + */ + @JSONField(name = "ConnectorName") + private String connectorName; + + /** + * 充电设备接口类型 Y + * 1:家用插座(模式2) + * 2:交流接口插座(模式3,连接方式B ) + * 3:交流接口插头(带枪线,模式3,连接方式C) + * 4:直流接口枪头(带枪线,模式4) + */ + @JSONField(name = "ConnectorType") + private Integer connectorType; + + /** + * 额定电压上限(单位:V) Y + */ + @JSONField(name = "VoltageUpperLimits") + private Integer voltageUpperLimits; + + /** + * 额定电压下限(单位:V) Y + */ + @JSONField(name = "VoltageLowerLimits") + private Integer voltageLowerLimits; + + /** + *恒功率电压上限 + */ + @JSONField(name = "ConstantVoltageUpperLimits") + private Integer constantVoltageUpperLimits; + + /** + *恒功率电压下限 + */ + @JSONField(name = "ConstantVoltageLowerLimits") + private Integer constantVoltageLowerLimits; + + /** + * 额定电流(单位:A) Y + */ + @JSONField(name = "Current") + private Integer current; + + /** + *恒功率电流上限 + */ + @JSONField(name = "ConstantCurrentUpperLimits") + private Integer ConstantCurrentUpperLimits; + + /** + *恒功率电流下限 + */ + @JSONField(name = "ConstantCurrentLowerLimits") + private Integer ConstantCurrentLowerLimits; + + /** + * 额定功率(单位:kW) Y + */ + @JSONField(name = "Power") + private BigDecimal power; + + /** + * 车位号 N + * 停车场车位编号 + */ + @JSONField(name = "ParkNo") + private String parkNo; + + + /** + * 运营状态 + * 0-未知 + * 1-建设中 + * 5-关闭下线 + * 6-维护中 + * 50-正常使用 + */ + @JSONField(name = "OperateStatus") + private Integer operateStatus; + + /** + * 运营状态 + * 0-未知 + * 1-建设中 + * 5-关闭下线 + * 6-维护中 + * 50-正常使用 + */ + @JSONField(name = "OpreateStatus") + private Integer opreateStatus; + + /** + * 国家标准 + */ + @JSONField(name = "NationalStandard") + private Integer nationalStandard; + + /** + * 辅助电源 + */ + @JSONField(name = "AuxPower") + private Integer auxPower; + + /** + * 运营时间 + */ + @JSONField(name = "OpreateHours") + private String opreateHours; + + } + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatsInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatsInfo.java index 1e47fc5d1..ba84818e1 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatsInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatsInfo.java @@ -104,9 +104,8 @@ public class SupStationStatsInfo { @JSONField(name = "EquipmentStatsInfos") private List equipmentStatsInfos; - @Data - public static class EquipmentStatsInfo{ + public static class EquipmentStatsInfo { /** * 充电设备编码 @@ -153,8 +152,7 @@ public class SupStationStatsInfo { private List connectorStatsInfos; @Data - public static class ConnectorStatsInfo{ - + public static class ConnectorStatsInfo { /** * 充电设备接口编码 * 1:车辆充电设备 @@ -195,6 +193,95 @@ public class SupStationStatsInfo { } + @Data + public static class SupEquipmentStatsInfo { + /** + * 充电设备编码 + */ + @JSONField(name = "EquipmentID") + private String equipmentId; + + /** + * 设备分类 + * 1:车辆充电设备 + * 2:换电站内的电池箱充电设备 + */ + @JSONField(name = "EquipmentClassification") + private Integer equipmentClassification; + + /** + * 充电设备累计电量 + */ + @JSONField(name = "EquipmentElectricity") + private BigDecimal equipmentElectricity; + + /** + * 充电设备累计充电时长 + */ + @JSONField(name = "EquipmentTotalChargeTime") + private Integer equipmentTotalChargeTime; + + /** + * 充电设备累计充电次数 + */ + @JSONField(name = "EquipmentTotalChargeNum") + private Integer equipmentTotalChargeNum; + + /** + * 充电设备累计告警数量 + */ + @JSONField(name = "EquipmentTotalWarningNum") + private Integer equipmentTotalWarningNum; + + /** + * 充电设备接口运行统计信息列表 + */ + @JSONField(name = "ConnectorStatsInfos") + private List connectorStatsInfos; + + + @Data + public static class SupConnectorStatsInfo { + + /** + * 充电设备接口编码 + * 1:车辆充电设备 + * 2:换电站内的电池箱充电设备 + */ + @JSONField(name = "ConnectorID") + private String connectorId; + + /** + * 设备分类 + */ + @JSONField(name = "EquipmentClassification") + private Integer equipmentClassification; + + /** + * 充电设备接口累计电量 + */ + @JSONField(name = "ConnectorElectricity") + private BigDecimal connectorElectricity; + + /** + * 充电设备接口累计充电时长 + */ + @JSONField(name = "ConnectorTotalChargeTime") + private Integer connectorTotalChargeTime; + + /** + * 充电设备接口累计充电次数 + */ + @JSONField(name = "ConnectorTotalChargeNum") + private Integer connectorTotalChargeNum; + + /** + * 充电设备接口累计告警数量 + */ + @JSONField(name = "ConnectorTotalWarningNum") + private Integer connectorTotalWarningNum; + } + } } } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatusInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatusInfo.java index 3eb65bc3d..cac2f6b1f 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatusInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatusInfo.java @@ -3,6 +3,7 @@ package com.jsowell.thirdparty.platform.domain; import com.alibaba.fastjson2.annotation.JSONField; import lombok.*; +import java.math.BigDecimal; import java.util.List; /** @@ -35,6 +36,54 @@ public class SupStationStatusInfo { @JSONField(name = "StationID") private String stationID; + /** + * 站点分类 + * 1:充电站 + * 2:换电站 + * 3:充换电一体站 + */ + @JSONField(name = "StationClassification") + private Integer stationClassification; + + /** + * 统计开始时间 + * 格式“yyyy-MM-dd”, 以 充电结束时间为准 + */ + @JSONField(name = "StartTime") + private String startTime; + + /** + * 统计结束时间 + * 格式“yyyy-MM-dd”, 以 充电结束时间为准 + */ + @JSONField(name = "EndTime") + private String endTime; + + /** + * 充换电站累计用电量 + */ + @JSONField(name = "StationElectricity") + private BigDecimal stationElectricity; + + /** + * 充换电站累计充电时长 + */ + @JSONField(name = "StationTotalChargeTime") + private Integer stationTotalChargeTime; + + /** + * 充换电站累计充电次数 + */ + @JSONField(name = "StationTotalChargeNum") + private Integer stationTotalChargeNum; + + /** + * 充换电站累计告警数量 + */ + @JSONField(name = "StationTotalWarningNum") + private Integer stationTotalWarningNum; + + /** * 名称: 充电设备接口状态列表 * 描述: 充电设备接口状态数组,参照充电设备接口状态信息(SupConnectorStatusInfo) diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupSwapOrderInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupSwapOrderInfo.java new file mode 100644 index 000000000..eeda637a2 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupSwapOrderInfo.java @@ -0,0 +1,106 @@ +package com.jsowell.thirdparty.platform.domain; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +/** + * 充电状态信息 + * + * @author Lemon + * @Date 2024/6/11 14:31:36 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class SupSwapOrderInfo { + /** + * 换电订单编号 + */ + @JSONField(name = "SwapOrderID") + private Integer swapOrderId; + + /** + * 平台运营商ID + */ + @JsonProperty(value = "OperatorID") + private String operatorId; + + /** + * 设备所属方 + * IDEquipmentOwnerID + * 场站属主的组织机构代码 所属方为个人时填写 999999999 + * 是 + * 字符串 + * 9字符 + */ + @JSONField(name = "EquipmentOwnerID") + private String equipmentOwnerID; + + /** + * 充电订单号 + */ + @JSONField(name = "OrderNo") + private String orderNo; + + /** + * 充电订单号 + */ + @JSONField(name = "ChargeType") + private Integer chargeType; + + /** + * 换下电池编 码 + * 电池系统唯一识别 号,车辆换下电池 包编码 + */ + @JSONField(name = "LoadPackVIN") + private String loadPackVIN; + + /** + * 装载电池编 码 + * 电池系统唯一识别 号,装载到车辆电 池包编码 + */ + @JSONField(name = "UploadPackVIN") + private String uploadPackVIN; + + /** + * 换电开始时 间 + * 格式 “yyyy-MM- ddHH: mm : ss” + */ + @JSONField(name = "SwapStartTime") + private String swapStartTime; + + /** + * 换电开结束时 间 + * 格式 “yyyy-MM- ddHH: mm : ss” + */ + @JSONField(name = "SwapEndTime") + private String SwapEndTime; + + /** + * 订单里程 + * 换下电池换电前后 可行驶里程之差 + */ + @JSONField(name = "ApplyMileage") + private Integer ApplyMileage; + + /** + * 换电费用 + * 换电单笔订单总费 用 + */ + @JSONField(name = "SwapMoney") + private Integer swapMoney; + + /** + * 换电电量 + * 换电电量(电池充 满电后再传) + */ + @JSONField(name = "SwapPower") + private Integer swapPower; + +} From 8c371f3cb24eb3e1306618616fdae01026704d29 Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Mon, 2 Dec 2024 10:39:54 +0800 Subject: [PATCH 03/37] update --- .../pile/thirdparty/ConnectorInfo.java | 38 +++ .../pile/thirdparty/EquipmentInfo.java | 26 +- .../publicinfo/BaseStationInfo.java | 7 + .../platform/domain/SupEquipmentInfo.java | 274 ------------------ .../platform/domain/SupStationInfo.java | 40 --- .../platform/domain/SupStationPowerInfo.java | 12 + .../platform/domain/SupStationStatsInfo.java | 102 +------ .../platform/domain/SupStationStatusInfo.java | 49 ---- .../platform/domain/SupSwapOrderInfo.java | 106 ------- 9 files changed, 89 insertions(+), 565 deletions(-) delete mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipmentInfo.java delete mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupSwapOrderInfo.java diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java index 1b021e141..f2250fc0e 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java @@ -23,6 +23,14 @@ public class ConnectorInfo { @JSONField(name = "ConnectorID") private String connectorID; + /** + * 设备接口分类 + * 1:车辆充电设备接口 + * 2:换电站内的电池箱 充电设备接口 + */ + @JSONField(name = "EquipmentClassification") + private String equipmentClassification; + /** * 充电设备接口名称 N */ @@ -51,12 +59,36 @@ public class ConnectorInfo { @JSONField(name = "VoltageLowerLimits") private Integer voltageLowerLimits; + /** + *恒功率电压上限 + */ + @JSONField(name = "ConstantVoltageUpperLimits") + private Integer constantVoltageUpperLimits; + + /** + *恒功率电压下限 + */ + @JSONField(name = "ConstantVoltageLowerLimits") + private Integer constantVoltageLowerLimits; + /** * 额定电流(单位:A) Y */ @JSONField(name = "Current") private Integer current; + /** + *恒功率电流上限 + */ + @JSONField(name = "ConstantCurrentUpperLimits") + private Integer ConstantCurrentUpperLimits; + + /** + *恒功率电流下限 + */ + @JSONField(name = "ConstantCurrentLowerLimits") + private Integer ConstantCurrentLowerLimits; + /** * 额定功率(单位:kW) Y */ @@ -105,4 +137,10 @@ public class ConnectorInfo { @JSONField(name = "AuxPower") private Integer auxPower; + /** + * 运营时间 + */ + @JSONField(name = "OpreateHours") + private String opreateHours; + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java index 35ae8fffa..bfc2e4644 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java @@ -24,6 +24,13 @@ public class EquipmentInfo { @JSONField(name = "EquipmentID") private String equipmentID; + /** + * 设备唯一编码 + *设备生产商组织机构代 码 9 位+设备出厂唯一 编码 + */ + @JSONField(name = "EquipmentUniqueNumber") + private String equipmentUniqueNumber; + /** * 设备生产商组织机构代码 Y */ @@ -54,7 +61,7 @@ public class EquipmentInfo { * YYYY-MM-DD */ @JSONField(name = "ProductionDate") - private String productionDate; + private String productionDate; /** * 建设时间 Y @@ -69,6 +76,13 @@ public class EquipmentInfo { @JSONField(name = "EquipmentType") private Integer equipmentType; + /** + * 设备分类 + * 1:车辆充电设备 2:换电站内的电池箱 充电设备 + */ + @JSONField(name = "EquipmentClassification") + private Integer EquipmentClassification; + /** * 设备状态 Y * 0:未知 @@ -97,20 +111,22 @@ public class EquipmentInfo { * 充电设备接口列表 Y * 该充电设备所有的充电设备接口的信息对象集合 */ - @JSONField(name = "ConnectorInfos") - private List connectorInfos; + @JSONField(name = "SupConnectorInfos") + private List supconnectorInfos; /** * 充电设备经度 N * GCJ-02坐标系 */ - // private BigDecimal EquipmentLng; + @JSONField(name = "EquipmentLng") + private BigDecimal equipmentLng; /** * 充电设备纬度 N * GCJ-02坐标系 */ - // private BigDecimal EquipmentLat; + @JSONField(name = "EquipmentLat") + private BigDecimal equipmentLat; /** * 是否支持VIN码识别(0-否;1-是) Y diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/publicinfo/BaseStationInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/publicinfo/BaseStationInfo.java index 3fe6922d1..6fb6ca9cc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/publicinfo/BaseStationInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/publicinfo/BaseStationInfo.java @@ -264,4 +264,11 @@ public class BaseStationInfo { @JSONField(name = "EquipmentInfos") private List equipmentInfos; + /** + * 充电设备信息列表 Y + * 该充电站所有充电设备信息对象集合 + */ + @JSONField(name = "SupEquipmentInfos") + private List supequipmentInfos; + } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipmentInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipmentInfo.java deleted file mode 100644 index ad73c04da..000000000 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupEquipmentInfo.java +++ /dev/null @@ -1,274 +0,0 @@ -package com.jsowell.thirdparty.platform.domain; -import com.alibaba.fastjson2.annotation.JSONField; -import com.jsowell.pile.thirdparty.ConnectorInfo; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; -import java.util.List; - -/** - * 充电设备信息 - */ -@Builder -@AllArgsConstructor -@NoArgsConstructor -@Data -public class SupEquipmentInfo { - /** - * 设备编码 Y - * 设备唯一编码,对同一对接平台,保证唯一 - */ - @JSONField(name = "EquipmentID") - private String equipmentID; - - /** - * 设备唯一编码 - *设备生产商组织机构代 码 9 位+设备出厂唯一 编码 - */ - @JSONField(name = "EquipmentUniqueNumber") - private String equipmentUniqueNumber; - - /** - * 设备生产商组织机构代码 Y - */ - @JSONField(name = "ManufacturerID") - private String manufacturerID; - - /** - * 设备生产商名称 - */ - @JSONField(name = "ManufacturerName") - private String manufacturerName; - - /** - * 设备型号 N - * 由设备生厂商定义的设备型号 - */ - @JSONField(name = "EquipmentModel") - private String equipmentModel; - - /** - * 设备名称 N - */ - @JSONField(name = "EquipmentName") - private String equipmentName; - - /** - * 设备生产日期 N - * YYYY-MM-DD - */ - @JSONField(name = "ProductionDate") - private String productionDate; - - /** - * 建设时间 Y - * YYYY-MM-DD - */ - @JSONField(name = "ConstructionTime") - private String constructionTime; - - /** - * 设备类型(1-直流设备;2-交流设备;3-交直流一体设备) Y - */ - @JSONField(name = "EquipmentType") - private Integer equipmentType; - - /** - * 设备分类 - * 1:车辆充电设备 2:换电站内的电池箱 充电设备 - */ - @JSONField(name = "EquipmentClassification") - private Integer EquipmentClassification; - - /** - * 设备状态 Y - * 0:未知 - * 1:建设中 - * 5:关闭下线 - * 6:维护中 - * 50:正常使用 - */ - @JSONField(name = "EquipmentStatus") - private Integer equipmentStatus; - - /** - * 额定功率(单位:kW) Y - */ - @JSONField(name = "EquipmentPower") - private BigDecimal equipmentPower; - - /** - * 新国标(0-否;1-是) Y - * 是否新国标 - */ - @JSONField(name = "NewNationalStandard") - private Integer newNationalStandard; - - /** - * 充电设备接口列表 Y - * 该充电设备所有的充电设备接口的信息对象集合 - */ - @JSONField(name = "ConnectorInfos") - private List connectorInfos; - - /** - * 充电设备经度 N - * GCJ-02坐标系 - */ - @JSONField(name = "EquipmentLng") - private BigDecimal equipmentLng; - - /** - * 充电设备纬度 N - * GCJ-02坐标系 - */ - @JSONField(name = "EquipmentLat") - private BigDecimal equipmentLat; - - /** - * 是否支持VIN码识别(0-否;1-是) Y - */ - @JSONField(name = "VinFlag") - private Integer vinFlag; - - /** - * 设备总功率 - */ - @JSONField(name = "Power") - private BigDecimal power; - - @Data - public static class SupConnectorInfo{ - /** - * 充电设备接口编码 Y - * 充电设备接口编码,同一对接平台内唯一 - */ - @JSONField(name = "ConnectorID") - private String connectorID; - - /** - * 设备接口分类 - * 1:车辆充电设备接口 - * 2:换电站内的电池箱 充电设备接口 - */ - @JSONField(name = "EquipmentClassification") - private String equipmentClassification; - - /** - * 充电设备接口名称 N - */ - @JSONField(name = "ConnectorName") - private String connectorName; - - /** - * 充电设备接口类型 Y - * 1:家用插座(模式2) - * 2:交流接口插座(模式3,连接方式B ) - * 3:交流接口插头(带枪线,模式3,连接方式C) - * 4:直流接口枪头(带枪线,模式4) - */ - @JSONField(name = "ConnectorType") - private Integer connectorType; - - /** - * 额定电压上限(单位:V) Y - */ - @JSONField(name = "VoltageUpperLimits") - private Integer voltageUpperLimits; - - /** - * 额定电压下限(单位:V) Y - */ - @JSONField(name = "VoltageLowerLimits") - private Integer voltageLowerLimits; - - /** - *恒功率电压上限 - */ - @JSONField(name = "ConstantVoltageUpperLimits") - private Integer constantVoltageUpperLimits; - - /** - *恒功率电压下限 - */ - @JSONField(name = "ConstantVoltageLowerLimits") - private Integer constantVoltageLowerLimits; - - /** - * 额定电流(单位:A) Y - */ - @JSONField(name = "Current") - private Integer current; - - /** - *恒功率电流上限 - */ - @JSONField(name = "ConstantCurrentUpperLimits") - private Integer ConstantCurrentUpperLimits; - - /** - *恒功率电流下限 - */ - @JSONField(name = "ConstantCurrentLowerLimits") - private Integer ConstantCurrentLowerLimits; - - /** - * 额定功率(单位:kW) Y - */ - @JSONField(name = "Power") - private BigDecimal power; - - /** - * 车位号 N - * 停车场车位编号 - */ - @JSONField(name = "ParkNo") - private String parkNo; - - - /** - * 运营状态 - * 0-未知 - * 1-建设中 - * 5-关闭下线 - * 6-维护中 - * 50-正常使用 - */ - @JSONField(name = "OperateStatus") - private Integer operateStatus; - - /** - * 运营状态 - * 0-未知 - * 1-建设中 - * 5-关闭下线 - * 6-维护中 - * 50-正常使用 - */ - @JSONField(name = "OpreateStatus") - private Integer opreateStatus; - - /** - * 国家标准 - */ - @JSONField(name = "NationalStandard") - private Integer nationalStandard; - - /** - * 辅助电源 - */ - @JSONField(name = "AuxPower") - private Integer auxPower; - - /** - * 运营时间 - */ - @JSONField(name = "OpreateHours") - private String opreateHours; - - } - -} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java index daf9141d0..7b175329f 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java @@ -145,45 +145,5 @@ public class SupStationInfo extends StationInfo { @JSONField(name = "SupportingFacilities") private String supportingFacilities; - /** - * 换电设备信息 - * 换电设备信息对象 数组,参照公共对 象:换电设备信息 - */ - @JSONField(name = "SwapEquipmentInfos") - private List swapEquipmentInfos; - private List PolicyInfos; - - @Data - public class SupSwapEquipmentInfo { - /** - * 换电设备编码 - * 换电设备唯一编码,对同一运营商保证唯一 - */ - @JSONField(name = "SwapMechanicalEquipmentID") - private String SwapMechanicalEquipmentID; - - - /** - * 换电设备生 产商组织机 构代码 - * 换电设备生产商组织 机构代码 - */ - @JSONField(name = "SwapManufacturerID") - private String swapManufacturerID; - - /** - * 换电设备生 产商名称 - * 设备生产商名称 - */ - @JSONField(name = "SwapManufacturerName") - private String swapManufacturerName; - - /** - * 换电机械设 备额定功率 - * 换电机械设备额定功 率,单位:kW - */ - @JSONField(name = "MechanicalEquipmentPower") - private String mechanicalEquipmentPower; - - } } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationPowerInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationPowerInfo.java index f6dde8406..30c9591d1 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationPowerInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationPowerInfo.java @@ -64,6 +64,12 @@ public class SupStationPowerInfo { @JSONField(name = "EquipmentPowerInfos") private List equipmentPowerInfos; + /** + * 充电设备功率信息列表 + */ + @JSONField(name = "SupEquipmentPowerInfos") + private List supequipmentPowerInfos; + @Data public static class EquipmentPowerInfo{ @@ -100,6 +106,12 @@ public class SupStationPowerInfo { @JSONField(name = "ConnectorPowerInfos") private List connectorPowerInfos; + /** + * 充电设备接口功率信息列表 + */ + @JSONField(name = "SupConnectorPowerInfos") + private List supconnectorPowerInfos; + @Data public static class ConnectorPowerInfo{ diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatsInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatsInfo.java index ba84818e1..8ab818b72 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatsInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatsInfo.java @@ -104,6 +104,11 @@ public class SupStationStatsInfo { @JSONField(name = "EquipmentStatsInfos") private List equipmentStatsInfos; + + @JSONField(name = "SupEquipmentStatsInfos") + private List supEquipmentStatsInfos; + + @Data public static class EquipmentStatsInfo { @@ -151,6 +156,12 @@ public class SupStationStatsInfo { @JSONField(name = "ConnectorStatsInfos") private List connectorStatsInfos; + /** + * 充电设备接口运行统计信息列表 + */ + @JSONField(name = "SupConnectorStatsInfos") + private List supconnectorStatsInfos; + @Data public static class ConnectorStatsInfo { /** @@ -192,96 +203,5 @@ public class SupStationStatsInfo { private Integer connectorTotalWarningNum; } - - @Data - public static class SupEquipmentStatsInfo { - - /** - * 充电设备编码 - */ - @JSONField(name = "EquipmentID") - private String equipmentId; - - /** - * 设备分类 - * 1:车辆充电设备 - * 2:换电站内的电池箱充电设备 - */ - @JSONField(name = "EquipmentClassification") - private Integer equipmentClassification; - - /** - * 充电设备累计电量 - */ - @JSONField(name = "EquipmentElectricity") - private BigDecimal equipmentElectricity; - - /** - * 充电设备累计充电时长 - */ - @JSONField(name = "EquipmentTotalChargeTime") - private Integer equipmentTotalChargeTime; - - /** - * 充电设备累计充电次数 - */ - @JSONField(name = "EquipmentTotalChargeNum") - private Integer equipmentTotalChargeNum; - - /** - * 充电设备累计告警数量 - */ - @JSONField(name = "EquipmentTotalWarningNum") - private Integer equipmentTotalWarningNum; - - /** - * 充电设备接口运行统计信息列表 - */ - @JSONField(name = "ConnectorStatsInfos") - private List connectorStatsInfos; - - - @Data - public static class SupConnectorStatsInfo { - - /** - * 充电设备接口编码 - * 1:车辆充电设备 - * 2:换电站内的电池箱充电设备 - */ - @JSONField(name = "ConnectorID") - private String connectorId; - - /** - * 设备分类 - */ - @JSONField(name = "EquipmentClassification") - private Integer equipmentClassification; - - /** - * 充电设备接口累计电量 - */ - @JSONField(name = "ConnectorElectricity") - private BigDecimal connectorElectricity; - - /** - * 充电设备接口累计充电时长 - */ - @JSONField(name = "ConnectorTotalChargeTime") - private Integer connectorTotalChargeTime; - - /** - * 充电设备接口累计充电次数 - */ - @JSONField(name = "ConnectorTotalChargeNum") - private Integer connectorTotalChargeNum; - - /** - * 充电设备接口累计告警数量 - */ - @JSONField(name = "ConnectorTotalWarningNum") - private Integer connectorTotalWarningNum; - } - } } } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatusInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatusInfo.java index cac2f6b1f..3eb65bc3d 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatusInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationStatusInfo.java @@ -3,7 +3,6 @@ package com.jsowell.thirdparty.platform.domain; import com.alibaba.fastjson2.annotation.JSONField; import lombok.*; -import java.math.BigDecimal; import java.util.List; /** @@ -36,54 +35,6 @@ public class SupStationStatusInfo { @JSONField(name = "StationID") private String stationID; - /** - * 站点分类 - * 1:充电站 - * 2:换电站 - * 3:充换电一体站 - */ - @JSONField(name = "StationClassification") - private Integer stationClassification; - - /** - * 统计开始时间 - * 格式“yyyy-MM-dd”, 以 充电结束时间为准 - */ - @JSONField(name = "StartTime") - private String startTime; - - /** - * 统计结束时间 - * 格式“yyyy-MM-dd”, 以 充电结束时间为准 - */ - @JSONField(name = "EndTime") - private String endTime; - - /** - * 充换电站累计用电量 - */ - @JSONField(name = "StationElectricity") - private BigDecimal stationElectricity; - - /** - * 充换电站累计充电时长 - */ - @JSONField(name = "StationTotalChargeTime") - private Integer stationTotalChargeTime; - - /** - * 充换电站累计充电次数 - */ - @JSONField(name = "StationTotalChargeNum") - private Integer stationTotalChargeNum; - - /** - * 充换电站累计告警数量 - */ - @JSONField(name = "StationTotalWarningNum") - private Integer stationTotalWarningNum; - - /** * 名称: 充电设备接口状态列表 * 描述: 充电设备接口状态数组,参照充电设备接口状态信息(SupConnectorStatusInfo) diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupSwapOrderInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupSwapOrderInfo.java deleted file mode 100644 index eeda637a2..000000000 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupSwapOrderInfo.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.jsowell.thirdparty.platform.domain; - -import com.alibaba.fastjson2.annotation.JSONField; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - - -/** - * 充电状态信息 - * - * @author Lemon - * @Date 2024/6/11 14:31:36 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class SupSwapOrderInfo { - /** - * 换电订单编号 - */ - @JSONField(name = "SwapOrderID") - private Integer swapOrderId; - - /** - * 平台运营商ID - */ - @JsonProperty(value = "OperatorID") - private String operatorId; - - /** - * 设备所属方 - * IDEquipmentOwnerID - * 场站属主的组织机构代码 所属方为个人时填写 999999999 - * 是 - * 字符串 - * 9字符 - */ - @JSONField(name = "EquipmentOwnerID") - private String equipmentOwnerID; - - /** - * 充电订单号 - */ - @JSONField(name = "OrderNo") - private String orderNo; - - /** - * 充电订单号 - */ - @JSONField(name = "ChargeType") - private Integer chargeType; - - /** - * 换下电池编 码 - * 电池系统唯一识别 号,车辆换下电池 包编码 - */ - @JSONField(name = "LoadPackVIN") - private String loadPackVIN; - - /** - * 装载电池编 码 - * 电池系统唯一识别 号,装载到车辆电 池包编码 - */ - @JSONField(name = "UploadPackVIN") - private String uploadPackVIN; - - /** - * 换电开始时 间 - * 格式 “yyyy-MM- ddHH: mm : ss” - */ - @JSONField(name = "SwapStartTime") - private String swapStartTime; - - /** - * 换电开结束时 间 - * 格式 “yyyy-MM- ddHH: mm : ss” - */ - @JSONField(name = "SwapEndTime") - private String SwapEndTime; - - /** - * 订单里程 - * 换下电池换电前后 可行驶里程之差 - */ - @JSONField(name = "ApplyMileage") - private Integer ApplyMileage; - - /** - * 换电费用 - * 换电单笔订单总费 用 - */ - @JSONField(name = "SwapMoney") - private Integer swapMoney; - - /** - * 换电电量 - * 换电电量(电池充 满电后再传) - */ - @JSONField(name = "SwapPower") - private Integer swapPower; - -} From abe12c12c0324a5994df700b863761648ef8b6a3 Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Mon, 2 Dec 2024 15:05:52 +0800 Subject: [PATCH 04/37] update --- .../pile/thirdparty/EquipmentInfo.java | 7 + .../lianlian/domain/ConnectorStatusInfo.java | 15 ++ .../platform/domain/SupStationInfo.java | 2 +- .../service/ThirdPartyPlatformService.java | 2 +- .../impl/GuiZhouPlatformServiceImpl.java | 187 ++++++++++-------- 5 files changed, 133 insertions(+), 80 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java index bfc2e4644..f1dc59c3c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/EquipmentInfo.java @@ -114,6 +114,13 @@ public class EquipmentInfo { @JSONField(name = "SupConnectorInfos") private List supconnectorInfos; + /** + * 充电设备接口列表 Y + * 该充电设备所有的充电设备接口的信息对象集合 + */ + @JSONField(name = "ConnectorInfos") + private List connectorInfos; + /** * 充电设备经度 N * GCJ-02坐标系 diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/domain/ConnectorStatusInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/domain/ConnectorStatusInfo.java index 4d337da11..791d6acca 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/domain/ConnectorStatusInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/domain/ConnectorStatusInfo.java @@ -33,6 +33,14 @@ public class ConnectorStatusInfo { @JSONField(name = "Status") private Integer status; + /** + * 设备接口分类 + * 1:车辆充电设备接口 + * 2:换电站内的电池箱 充电设备接口 + */ + @JSONField(name = "EquipmentClassification") + private int equipmentClassification; + /** * 车位状态(0-未知;10-空闲;50-占用) N */ @@ -60,4 +68,11 @@ public class ConnectorStatusInfo { @JSONField(name = "EquipmentID") private String equipmentId; + + /** + * 状态更新时间 + * 本次状态变化的时间,格式“yyyy-MM-dd HH:mm:ss” + */ + @JSONField(name = "UpdateTime") + private String updateTime; } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java index 7b175329f..008752889 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/SupStationInfo.java @@ -30,7 +30,7 @@ public class SupStationInfo extends StationInfo { * 2:换电站内的电池箱充电设备接口 */ @JSONField(name = "EquipmentClassification") - private Integer equipmentClassification; + private String equipmentClassification; /** * 充换电站所在县以下行政区划代码 diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/ThirdPartyPlatformService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/ThirdPartyPlatformService.java index 3c5decb1f..4d9cc7e87 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/ThirdPartyPlatformService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/ThirdPartyPlatformService.java @@ -456,7 +456,7 @@ public interface ThirdPartyPlatformService extends InitializingBean { String response = HttpUtil.post(requestUrl, tokenRequest); LianLianResultVO result = JSON.parseObject(response, LianLianResultVO.class); - // logger.info("获取令牌 result:{}", result); +// logger.info("获取令牌 result:{}", result); if (result.getRet() == 0) { // 解密data diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java index 78df7426a..9aee53ab1 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java @@ -11,7 +11,6 @@ import com.jsowell.common.constant.Constants; import com.jsowell.common.core.domain.ykc.RealTimeMonitorData; import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.enums.lianlian.StationPaymentEnum; -import com.jsowell.common.enums.thirdparty.BusinessInformationExchangeEnum; import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum; import com.jsowell.common.enums.ykc.BillingTimeTypeEnum; import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum; @@ -19,7 +18,6 @@ import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.*; import com.jsowell.pile.domain.*; -import com.jsowell.pile.dto.PushRealTimeInfoDTO; import com.jsowell.pile.dto.QueryConnectorListDTO; import com.jsowell.pile.dto.QueryOperatorInfoDTO; import com.jsowell.pile.dto.QueryStationInfoDTO; @@ -32,10 +30,11 @@ import com.jsowell.pile.vo.ThirdPartySecretInfoVO; import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO; +import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO; import com.jsowell.pile.vo.uniapp.customer.BillingPriceVO; +import com.jsowell.pile.vo.uniapp.customer.OrderVO; import com.jsowell.pile.vo.web.PileConnectorInfoVO; import com.jsowell.pile.vo.web.PileMerchantInfoVO; -import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.thirdparty.lianlian.domain.ConnectorChargeStatusInfo; import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo; import com.jsowell.thirdparty.lianlian.domain.StationStatusInfo; @@ -297,13 +296,18 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { .stationID(stationId) .operatorID(operatorId) .stationName(pileStationInfo.getStationName()) + .equipmentClassification(Constants.ONE) + .periodFee(1) // 峰谷分时 0-否;1-是 + .parkType("255") // 255-参考场地实际收费标准 + .roundTheClock(Constants.ONE) + .electricityType(1) // 用电类型 1-商业用电 + .videoMonitor(0) // 视频监控配套情况 0-无;1-有 .isAloneApply(Integer.valueOf(pileStationInfo.getAloneApply())) .isPublicParkingLot(Integer.valueOf(pileStationInfo.getPublicParking())) .countryCode(pileStationInfo.getCountryCode()) .address(pileStationInfo.getAddress()) .serviceTel(pileStationInfo.getStationTel()) - .swapMatchCars(pileStationInfo.getSwapMatchCars()) - .generalApplicationType(pileStationInfo.getGeneralApplicationType()) + .stationClassification(1) .stationType(Integer.valueOf(pileStationInfo.getStationType())) .stationStatus(Integer.valueOf(pileStationInfo.getStationStatus())) .parkNums(Integer.valueOf(pileStationInfo.getParkNums())) @@ -317,9 +321,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { .parkFree(Integer.valueOf(pileStationInfo.getParkFree())) .supportOrder(Integer.valueOf(pileStationInfo.getSupportOrder())) .parkFeeType(0) - .periodFee(1) // 峰谷分时 0-否;1-是 - .equipmentClassification(1) - .businessExpandType(0) + .toiletFlag(Integer.valueOf(pileStationInfo.getToiletFlag())) .storeFlag(Integer.valueOf(pileStationInfo.getStoreFlag())) .restaurantFlag(Integer.valueOf(pileStationInfo.getRestaurantFlag())) @@ -367,7 +369,6 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { List pileList = pileBasicInfoService.getPileListForLianLian(stationId); if (CollectionUtils.isNotEmpty(pileList)) { info.setEquipmentInfos(pileList); // 充电设备信息列表 - info.setEquipmentClassification(0); } // areaCodeCountryside @@ -477,40 +478,47 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { } /** - * 设备状态变化推送 notification_stationStatus - * 推送充电设备接口状态信息 supervise_notification_station_status - * - * @param dto - * @throws UnsupportedOperationException 未实现异常 + * 推送充电设备接口状态信息 + * supervise_notification_connector_status */ @Override - public String notificationStationStatus(PushRealTimeInfoDTO dto) { - String status = dto.getStatus(); - String pileConnectorCode = dto.getPileConnectorCode(); + public String notificationStationStatus(String stationId, String pileConnectorCode, String status, ThirdPartySecretInfoVO secretInfoVO) { + // 查询充电枪口状态 + PileConnectorInfoVO connectorInfo = pileConnectorInfoService.getPileConnectorInfoByConnectorCode(pileConnectorCode); + if (Objects.isNull(connectorInfo)) { + throw new BusinessException(ReturnCodeEnum.CODE_CONNECTOR_INFO_NULL_ERROR); + } - // 查出该桩所属哪个站点 - // String pileSn = StringUtils.substring(pileConnectorCode, 0, 14); - String pileSn = YKCUtils.getPileSn(pileConnectorCode); - PileStationVO stationVO = pileStationInfoService.getStationInfoByPileSn(pileSn); - // 通过站点id查询相关配置信息 - ThirdPartySecretInfoVO thirdPartySecretInfoVO = getGuiZhouPlatformSecretInfo(); + String merchantId = connectorInfo.getMerchantId(); + MerchantInfoVO merchantInfoVO = pileMerchantInfoService.getMerchantInfoVO(merchantId); + if (Objects.isNull(merchantInfoVO)) { + throw new BusinessException(ReturnCodeEnum.CODE_CONNECTOR_INFO_NULL_ERROR); + } - String operatorId = thirdPartySecretInfoVO.getOurOperatorId(); - String operatorSecret = thirdPartySecretInfoVO.getTheirOperatorSecret(); - String signSecret = thirdPartySecretInfoVO.getTheirSigSecret(); - String dataSecret = thirdPartySecretInfoVO.getTheirDataSecret(); - String dataSecretIv = thirdPartySecretInfoVO.getTheirDataSecretIv(); - String urlAddress = thirdPartySecretInfoVO.getTheirUrlPrefix(); - - String url = urlAddress + BusinessInformationExchangeEnum.NOTIFICATION_STATION_STATUS.getValue(); - ConnectorStatusInfo info = ConnectorStatusInfo.builder() + SupConnectorStatusInfo info = SupConnectorStatusInfo.builder() + .operatorID(Constants.OPERATORID_JIANG_SU) + .equipmentOwnerID(MerchantUtils.getOperatorID(merchantInfoVO.getOrganizationCode())) + .stationID(connectorInfo.getStationId()) + .equipmentID(connectorInfo.getPileSn()) .connectorID(pileConnectorCode) .status(Integer.parseInt(status)) + .statusDesc(PileConnectorDataBaseStatusEnum.getStatusDescription(status)) + .parkStatus(Constants.zero) + .lockStatus(Constants.zero) + .updateTime(DateUtils.getDateTime()) + .equipmentClassification(Constants.ONE) .build(); + // 调用联联平台接口 - JSONObject json = new JSONObject(); - json.put("ConnectorStatusInfo", info); - String jsonString = JSON.toJSONString(json); + 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(); + String url = urlAddress + "supervise_notification_connector_status"; + + String jsonString = JSON.toJSONString(info); // 获取令牌 String token = getToken(urlAddress, operatorId, operatorSecret, dataSecretIv, signSecret, dataSecret); String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret); @@ -589,64 +597,87 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { * supervise_notification_charge_order_info */ @Override - public String notificationChargeOrderInfo(String orderCode, ThirdPartySecretInfoVO secretInfoVO) { - // 根据订单号查询出信息 - OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); - if (orderBasicInfo == null) { - return null; - } + public String notificationChargeOrderInfo(String orderCode) { + // 通过订单号查询订单信息 + OrderVO orderVO = orderBasicInfoService.getChargeOrderInfoByOrderCode(orderCode); + BigDecimal startSoc = orderVO.getStartSoc() == null ? BigDecimal.ZERO : new BigDecimal(orderVO.getStartSoc()); + BigDecimal endSoc = orderVO.getEndSoc() == null ? BigDecimal.ZERO : new BigDecimal(orderVO.getEndSoc()); - 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(); + com.jsowell.thirdparty.platform.common.ChargeOrderInfo chargeOrderInfo = com.jsowell.thirdparty.platform.common.ChargeOrderInfo.builder() + .operatorId(Constants.OPERATORID_JIANG_SU) + // .equipmentId() + .stationId(orderVO.getStationId()) + .equipmentId(orderVO.getPileSn()) + .equipmentClassification(Constants.one) + .connectorId(orderVO.getPileConnectorCode()) + .startChargeSeq(orderVO.getOrderCode()) + .startSoc(startSoc) + .endSoc(endSoc) + .totalMoney(orderVO.getOrderAmount()) + .totalElecMoney(orderVO.getTotalElectricityAmount()) + .totalSeviceMoney(orderVO.getTotalServiceAmount()) + .totalPower(new BigDecimal(orderVO.getTotalPower())) + .startTime(orderVO.getStartTime()) + .endTime(orderVO.getEndTime()) + .paymentAmount(orderVO.getPayAmount()) + .payTime(orderVO.getPayTime()) + // .payWay(orderVO.getPayMode()) + .stopReason(Constants.two) // 2-BMS 停止充电 + .startMeterNum(BigDecimal.ZERO) // 电表起止值(暂时给0) + .endMeterNum(BigDecimal.ZERO) - // 根据订单号查询订单详情 - OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode); - if (orderDetail == null) { - return null; - } - - // 推送地址 - String url = urlAddress + "supervise_notification_charge_order_info"; - - // 拼装成平台所需格式对象 - ChargeOrderInfo orderInfo = transformChargeOrderInfo(orderBasicInfo, orderDetail); - orderInfo.setOperatorID(operatorId); - String equipmentOwnerID; - if (MerchantUtils.isXiXiaoMerchant(orderBasicInfo.getMerchantId())) { - equipmentOwnerID = Constants.OPERATORID_XI_XIAO; + .build(); + // 设备产权所属单位ID + String organizationCode = orderVO.getOrganizationCode(); + if (StringUtils.isNotBlank(organizationCode) && organizationCode.length() == 18) { + String equipmentOwnerId = StringUtils.substring(organizationCode, organizationCode.length() - 10, organizationCode.length() - 1); + chargeOrderInfo.setEquipmentOwnerId(equipmentOwnerId); } else { - 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; - } + chargeOrderInfo.setEquipmentOwnerId(Constants.OPERATORID_JIANG_SU); + } + // 支付方式 + String payMode = orderVO.getPayMode(); + if (StringUtils.equals("4", payMode)) { + // 微信支付 + chargeOrderInfo.setPayWay(2); + } else { + chargeOrderInfo.setPayWay(6); } - orderInfo.setEquipmentOwnerID(equipmentOwnerID); - List billingList = pileBillingTemplateService.queryBillingPrice(orderBasicInfo.getStationId()); - // 先将list按照 尖、峰、平、谷 时段排序 - // List collect = billingList.stream().sorted(Comparator.comparing(BillingPriceVO::getTimeType)).collect(Collectors.toList()); - // 再循环该list,拼装对应的充电价格、费率 - List chargeDetails = transformSupChargeDetails(orderDetail, billingList); - orderInfo.setChargeDetails(chargeDetails); + // 获取推送配置密钥信息 + ThirdPartyStationRelationVO settingInfo = getGuiZhouSettingInfo(); + if (settingInfo == null) { + return null; + } + String operatorId = settingInfo.getOperatorId(); + String operatorSecret = settingInfo.getOperatorSecret(); + String signSecret = settingInfo.getSignSecret(); + String dataSecret = settingInfo.getDataSecret(); + String dataSecretIv = settingInfo.getDataSecretIv(); + String urlAddress = settingInfo.getUrlAddress(); + String url = urlAddress + "notification_charge_order_info"; // 获取令牌 String token = getToken(urlAddress, operatorId, operatorSecret, dataSecretIv, signSecret, dataSecret); if (StringUtils.isBlank(token)) { return null; } - // 调用联联平台接口 - String jsonString = JSON.toJSONString(orderInfo); + // 封装参数 + String jsonString = JSON.toJSONString(chargeOrderInfo); + // 发送请求 String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret); return result; } + // 获取青海平台配置密钥信息 + private ThirdPartyStationRelationVO getGuiZhouSettingInfo() { + // 通过第三方平台类型查询相关配置信息 + ThirdPartyStationRelation relation = new ThirdPartyStationRelation(); + relation.setThirdPartyType(ThirdPlatformTypeEnum.QING_HAI_PLATFORM.getTypeCode()); + ThirdPartyStationRelationVO relationInfo = thirdPartyStationRelationService.selectRelationInfo(relation); + return relationInfo; + } + /** * 推送充电站历史充电订单信息 supervise_notification_charge_order_info_history * From bd7ed0282a1607e2f5630cb358370943f50dc742 Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Mon, 2 Dec 2024 15:37:45 +0800 Subject: [PATCH 05/37] update --- .../impl/GuiZhouPlatformServiceImpl.java | 117 +++++++----------- 1 file changed, 46 insertions(+), 71 deletions(-) diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java index 9aee53ab1..17fae008f 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java @@ -30,9 +30,7 @@ import com.jsowell.pile.vo.ThirdPartySecretInfoVO; import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO; -import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO; import com.jsowell.pile.vo.uniapp.customer.BillingPriceVO; -import com.jsowell.pile.vo.uniapp.customer.OrderVO; import com.jsowell.pile.vo.web.PileConnectorInfoVO; import com.jsowell.pile.vo.web.PileMerchantInfoVO; import com.jsowell.thirdparty.lianlian.domain.ConnectorChargeStatusInfo; @@ -597,87 +595,64 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { * supervise_notification_charge_order_info */ @Override - public String notificationChargeOrderInfo(String orderCode) { - // 通过订单号查询订单信息 - OrderVO orderVO = orderBasicInfoService.getChargeOrderInfoByOrderCode(orderCode); - BigDecimal startSoc = orderVO.getStartSoc() == null ? BigDecimal.ZERO : new BigDecimal(orderVO.getStartSoc()); - BigDecimal endSoc = orderVO.getEndSoc() == null ? BigDecimal.ZERO : new BigDecimal(orderVO.getEndSoc()); - - com.jsowell.thirdparty.platform.common.ChargeOrderInfo chargeOrderInfo = com.jsowell.thirdparty.platform.common.ChargeOrderInfo.builder() - .operatorId(Constants.OPERATORID_JIANG_SU) - // .equipmentId() - .stationId(orderVO.getStationId()) - .equipmentId(orderVO.getPileSn()) - .equipmentClassification(Constants.one) - .connectorId(orderVO.getPileConnectorCode()) - .startChargeSeq(orderVO.getOrderCode()) - .startSoc(startSoc) - .endSoc(endSoc) - .totalMoney(orderVO.getOrderAmount()) - .totalElecMoney(orderVO.getTotalElectricityAmount()) - .totalSeviceMoney(orderVO.getTotalServiceAmount()) - .totalPower(new BigDecimal(orderVO.getTotalPower())) - .startTime(orderVO.getStartTime()) - .endTime(orderVO.getEndTime()) - .paymentAmount(orderVO.getPayAmount()) - .payTime(orderVO.getPayTime()) - // .payWay(orderVO.getPayMode()) - .stopReason(Constants.two) // 2-BMS 停止充电 - .startMeterNum(BigDecimal.ZERO) // 电表起止值(暂时给0) - .endMeterNum(BigDecimal.ZERO) - - .build(); - // 设备产权所属单位ID - String organizationCode = orderVO.getOrganizationCode(); - if (StringUtils.isNotBlank(organizationCode) && organizationCode.length() == 18) { - String equipmentOwnerId = StringUtils.substring(organizationCode, organizationCode.length() - 10, organizationCode.length() - 1); - chargeOrderInfo.setEquipmentOwnerId(equipmentOwnerId); - } else { - chargeOrderInfo.setEquipmentOwnerId(Constants.OPERATORID_JIANG_SU); - } - // 支付方式 - String payMode = orderVO.getPayMode(); - if (StringUtils.equals("4", payMode)) { - // 微信支付 - chargeOrderInfo.setPayWay(2); - } else { - chargeOrderInfo.setPayWay(6); - } - - // 获取推送配置密钥信息 - ThirdPartyStationRelationVO settingInfo = getGuiZhouSettingInfo(); - if (settingInfo == null) { + public String notificationChargeOrderInfo(String orderCode, ThirdPartySecretInfoVO secretInfoVO) { + // 根据订单号查询出信息 + OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + if (orderBasicInfo == null) { return null; } - String operatorId = settingInfo.getOperatorId(); - String operatorSecret = settingInfo.getOperatorSecret(); - String signSecret = settingInfo.getSignSecret(); - String dataSecret = settingInfo.getDataSecret(); - String dataSecretIv = settingInfo.getDataSecretIv(); - String urlAddress = settingInfo.getUrlAddress(); - String url = urlAddress + "notification_charge_order_info"; + 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); + if (orderDetail == null) { + return null; + } + + // 推送地址 + String url = urlAddress + "supervise_notification_charge_order_info"; + + // 拼装成平台所需格式对象 + ChargeOrderInfo orderInfo = transformChargeOrderInfo(orderBasicInfo, orderDetail); + orderInfo.setOperatorID(operatorId); + String equipmentOwnerID; + if (MerchantUtils.isXiXiaoMerchant(orderBasicInfo.getMerchantId())) { + equipmentOwnerID = Constants.OPERATORID_XI_XIAO; + } else { + 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); + + List billingList = pileBillingTemplateService.queryBillingPrice(orderBasicInfo.getStationId()); + // 先将list按照 尖、峰、平、谷 时段排序 + // List collect = billingList.stream().sorted(Comparator.comparing(BillingPriceVO::getTimeType)).collect(Collectors.toList()); + // 再循环该list,拼装对应的充电价格、费率 + List chargeDetails = transformSupChargeDetails(orderDetail, billingList); + orderInfo.setChargeDetails(chargeDetails); + // 获取令牌 String token = getToken(urlAddress, operatorId, operatorSecret, dataSecretIv, signSecret, dataSecret); if (StringUtils.isBlank(token)) { return null; } - // 封装参数 - String jsonString = JSON.toJSONString(chargeOrderInfo); - // 发送请求 + // 调用联联平台接口 + String jsonString = JSON.toJSONString(orderInfo); String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret); return result; } - // 获取青海平台配置密钥信息 - private ThirdPartyStationRelationVO getGuiZhouSettingInfo() { - // 通过第三方平台类型查询相关配置信息 - ThirdPartyStationRelation relation = new ThirdPartyStationRelation(); - relation.setThirdPartyType(ThirdPlatformTypeEnum.QING_HAI_PLATFORM.getTypeCode()); - ThirdPartyStationRelationVO relationInfo = thirdPartyStationRelationService.selectRelationInfo(relation); - return relationInfo; - } - /** * 推送充电站历史充电订单信息 supervise_notification_charge_order_info_history * From 053531e7ffde1fc96ec1a51123e3ba5fb4ed3c32 Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Mon, 2 Dec 2024 18:18:34 +0800 Subject: [PATCH 06/37] update --- .../com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java | 2 ++ .../main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java | 2 +- .../platform/service/impl/GuiZhouPlatformServiceImpl.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index fb50aea81..1d9cdb617 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -1111,6 +1111,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService { String pileSn = pileBasicInfo.getSn(); equipmentInfo.setEquipmentID(pileSn); + equipmentInfo.setEquipmentClassification(1); equipmentInfo.setManufacturerID(Constants.OPERATORID_LIANLIAN); equipmentInfo.setManufacturerName(Constants.MANUFACTURER_NAME); equipmentInfo.setConstructionTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileBasicInfo.getCreateTime())); @@ -1208,6 +1209,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService { connectorInfo.setParkNo(pileConnectorInfo.getParkNo()); } connectorInfo.setVoltageUpperLimits(Integer.valueOf(modelInfo.getRatedVoltage())); + connectorInfo.setEquipmentClassification(1); connectorInfo.setVoltageLowerLimits(Integer.valueOf(modelInfo.getRatedVoltage())); connectorInfo.setCurrent(Integer.valueOf(modelInfo.getRatedCurrent())); connectorInfo.setConnectorName(pileConnectorInfo.getPileConnectorCode()); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java index f2250fc0e..ffef9cd28 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/thirdparty/ConnectorInfo.java @@ -29,7 +29,7 @@ public class ConnectorInfo { * 2:换电站内的电池箱 充电设备接口 */ @JSONField(name = "EquipmentClassification") - private String equipmentClassification; + private Integer equipmentClassification; /** * 充电设备接口名称 N diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java index 17fae008f..c065e445f 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java @@ -294,7 +294,6 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { .stationID(stationId) .operatorID(operatorId) .stationName(pileStationInfo.getStationName()) - .equipmentClassification(Constants.ONE) .periodFee(1) // 峰谷分时 0-否;1-是 .parkType("255") // 255-参考场地实际收费标准 .roundTheClock(Constants.ONE) @@ -373,6 +372,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { GeoCodeInfo geoCode = TermRelationTreeCoordinate.completeGeoCode(pileStationInfo.getAddress()); if (geoCode != null) { String areaCodeCountryside = geoCode.getCounty_code(); + areaCodeCountryside = "123456789101"; info.setAreaCodeCountryside(areaCodeCountryside); } From 22b0d0fe8b2e497ad71cfeb0681b683fa9fd2a35 Mon Sep 17 00:00:00 2001 From: Lemon Date: Thu, 5 Dec 2024 15:16:14 +0800 Subject: [PATCH 07/37] =?UTF-8?q?ordeBasicInfo=E8=A1=A8=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=20=E5=81=9C=E6=AD=A2=E5=8E=9F=E5=9B=A0=E7=A0=81=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/pile/domain/OrderBasicInfo.java | 5 ++ .../mapper/pile/OrderBasicInfoMapper.xml | 54 +++++++++++++++++-- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java index 6e50736b0..d1a05061b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderBasicInfo.java @@ -175,6 +175,11 @@ public class OrderBasicInfo { */ private String endSoc; + /** + * 停止原因码 + */ + private String stopReasonCode; + /** * 异常原因 */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 2e7defa3d..ea684dcfb 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -36,6 +36,7 @@ + @@ -52,7 +53,7 @@ pile_sn, connector_code, pile_connector_code, logic_card, vin_code, start_mode, third_party_type, pay_mode, pay_status, pay_amount, pay_time, plate_number, order_amount, virtual_amount, group_code, discount_amount, settle_amount, remedial_amount, charge_start_time, charge_end_time, - start_type, reserved_start_time, reserved_end_time, start_soc, end_soc, reason, settlement_time, refund_amount, + start_type, reserved_start_time, reserved_end_time, start_soc, end_soc, stop_reason_code, reason, settlement_time, refund_amount, refund_status, create_by, create_time, update_by, update_time, del_flag @@ -72,7 +73,7 @@ start_soc, end_soc, ammeter_total_start, ammeter_total_end, total_used_electricity, sharp_used_electricity, peak_used_electricity, - flat_used_electricity, valley_used_electricity, + flat_used_electricity, valley_used_electricity, stop_reason_code, reason, trade_date, source_type, create_by, create_time, update_by, update_time, del_flag) @@ -85,7 +86,7 @@ #{startSoc,jdbcType=VARCHAR}, #{endSoc,jdbcType=VARCHAR}, #{ammeterTotalStart,jdbcType=VARCHAR}, #{ammeterTotalEnd,jdbcType=VARCHAR}, #{totalUsedElectricity,jdbcType=DECIMAL}, #{sharpUsedElectricity,jdbcType=DECIMAL}, #{peakUsedElectricity,jdbcType=DECIMAL}, - #{flatUsedElectricity,jdbcType=DECIMAL}, #{valleyUsedElectricity,jdbcType=DECIMAL}, + #{flatUsedElectricity,jdbcType=DECIMAL}, #{valleyUsedElectricity,jdbcType=DECIMAL}, #{stopReasonCode,jdbcType=VARCHAR}, #{reason,jdbcType=VARCHAR}, #{tradeDate,jdbcType=TIMESTAMP}, #{sourceType,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=CHAR}) @@ -172,6 +173,9 @@ valley_used_electricity, + + stop_reason_code, + reason, @@ -276,6 +280,9 @@ #{valleyUsedElectricity,jdbcType=DECIMAL}, + + #{stopReasonCode,jdbcType=VARCHAR}, + #{reason,jdbcType=VARCHAR}, @@ -384,6 +391,9 @@ valley_used_electricity = #{valleyUsedElectricity,jdbcType=DECIMAL}, + + stop_reason_code = #{stopReasonCode,jdbcType=VARCHAR}, + reason = #{reason,jdbcType=VARCHAR}, @@ -440,6 +450,7 @@ peak_used_electricity = #{peakUsedElectricity,jdbcType=DECIMAL}, flat_used_electricity = #{flatUsedElectricity,jdbcType=DECIMAL}, valley_used_electricity = #{valleyUsedElectricity,jdbcType=DECIMAL}, + stop_reason_code = #{stopReasonCode,jdbcType=VARCHAR}, reason = #{reason,jdbcType=VARCHAR}, trade_date = #{tradeDate,jdbcType=TIMESTAMP}, source_type = #{sourceType,jdbcType=VARCHAR}, @@ -584,6 +595,11 @@ when id = #{item.id,jdbcType=INTEGER} then #{item.valleyUsedElectricity,jdbcType=DECIMAL} + + + when id = #{item.id,jdbcType=INTEGER} then #{item.stopReasonCode,jdbcType=VARCHAR} + + when id = #{item.id,jdbcType=INTEGER} then #{item.reason,jdbcType=VARCHAR} @@ -816,6 +832,13 @@ + + + + when id = #{item.id,jdbcType=INTEGER} then #{item.stopReasonCode,jdbcType=VARCHAR} + + + @@ -885,7 +908,7 @@ pile_connector_code, logic_card, vin_code, start_mode, plate_number, charge_start_time, charge_end_time, start_type, reservation_start_time, reservation_end_time, start_soc, end_soc, ammeter_total_start, ammeter_total_end, total_used_electricity, sharp_used_electricity, - peak_used_electricity, flat_used_electricity, valley_used_electricity, reason, + peak_used_electricity, flat_used_electricity, valley_used_electricity, stop_reason_code, reason, trade_date, source_type, create_by, create_time, update_by, update_time, del_flag ) values @@ -900,7 +923,7 @@ #{item.endSoc,jdbcType=VARCHAR}, #{item.ammeterTotalStart,jdbcType=VARCHAR}, #{item.ammeterTotalEnd,jdbcType=VARCHAR}, #{item.totalUsedElectricity,jdbcType=DECIMAL}, #{item.sharpUsedElectricity,jdbcType=DECIMAL}, #{item.peakUsedElectricity,jdbcType=DECIMAL}, #{item.flatUsedElectricity,jdbcType=DECIMAL}, - #{item.valleyUsedElectricity,jdbcType=DECIMAL}, #{item.reason,jdbcType=VARCHAR}, + #{item.valleyUsedElectricity,jdbcType=DECIMAL}, #{item.stopReasonCode,jdbcType=VARCHAR}, #{item.reason,jdbcType=VARCHAR}, #{item.tradeDate,jdbcType=TIMESTAMP}, #{item.sourceType,jdbcType=VARCHAR}, #{item.createBy,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateBy,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.delFlag,jdbcType=CHAR}) @@ -939,6 +962,7 @@ peak_used_electricity, flat_used_electricity, valley_used_electricity, + stop_reason_code, reason, trade_date, source_type, @@ -979,6 +1003,7 @@ #{peakUsedElectricity,jdbcType=DECIMAL}, #{flatUsedElectricity,jdbcType=DECIMAL}, #{valleyUsedElectricity,jdbcType=DECIMAL}, + #{stopReasonCode,jdbcType=VARCHAR}, #{reason,jdbcType=VARCHAR}, #{tradeDate,jdbcType=TIMESTAMP}, #{sourceType,jdbcType=VARCHAR}, @@ -1019,6 +1044,7 @@ peak_used_electricity = #{peakUsedElectricity,jdbcType=DECIMAL}, flat_used_electricity = #{flatUsedElectricity,jdbcType=DECIMAL}, valley_used_electricity = #{valleyUsedElectricity,jdbcType=DECIMAL}, + stop_reason_code = #{stopReasonCode,jdbcType=VARCHAR}, reason = #{reason,jdbcType=VARCHAR}, trade_date = #{tradeDate,jdbcType=TIMESTAMP}, source_type = #{sourceType,jdbcType=VARCHAR}, @@ -1114,6 +1140,9 @@ valley_used_electricity, + + stop_reason_code, + reason, @@ -1222,6 +1251,9 @@ #{valleyUsedElectricity,jdbcType=DECIMAL}, + + #{stopReasonCode,jdbcType=VARCHAR}, + #{reason,jdbcType=VARCHAR}, @@ -1330,6 +1362,9 @@ valley_used_electricity = #{valleyUsedElectricity,jdbcType=DECIMAL}, + + stop_reason_code = #{stopReasonCode,jdbcType=VARCHAR}, + reason = #{reason,jdbcType=VARCHAR}, diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java index 83a2f643d..cd32e1d25 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/GuiZhouPlatformServiceImpl.java @@ -43,6 +43,7 @@ import com.jsowell.thirdparty.platform.domain.*; import com.jsowell.thirdparty.platform.factory.ThirdPartyPlatformFactory; import com.jsowell.thirdparty.platform.service.ThirdPartyPlatformService; import com.jsowell.thirdparty.platform.util.Cryptos; +import com.jsowell.thirdparty.platform.util.GBSignUtils; import com.jsowell.thirdparty.platform.util.HttpRequestUtil; import com.jsowell.thirdparty.platform.util.ThirdPartyPlatformUtils; import com.jsowell.thirdparty.service.ThirdpartySecretInfoService; @@ -69,22 +70,31 @@ import java.util.stream.Collectors; public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { private final String thirdPlatformType = ThirdPlatformTypeEnum.GUI_ZHOU_PLATFORM.getTypeCode(); Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired private PileStationInfoService pileStationInfoService; + @Autowired private ThirdPartyStationRelationService thirdPartyStationRelationService; + @Autowired private ThirdpartySecretInfoService thirdpartySecretInfoService; + @Autowired private PileBasicInfoService pileBasicInfoService; + @Autowired private PileMerchantInfoService pileMerchantInfoService; + @Autowired private PileConnectorInfoService pileConnectorInfoService; + @Autowired private OrderBasicInfoService orderBasicInfoService; + @Autowired private PileBillingTemplateService pileBillingTemplateService; + @Autowired private RedisCache redisCache; @@ -149,10 +159,17 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { vo.setFailReason(failReason); vo.setSuccStat(succStat); - Map resultMap = ThirdPartyPlatformUtils.useOurSigSecretGenerateResultMap(vo, thirdPartySecretInfoVO); + Map resultMap = ThirdPartyPlatformUtils.generateResultMap(vo, thirdPartySecretInfoVO); return resultMap; } + public static void main(String[] args) { + String msg = "880B24831B56238914534606391D2902"; + String signSecret = "iz54GKP9oOeCCYSp"; + + String result = Cryptos.aesDecrypt(msg, signSecret); + } + /** * 查询运营商信息 query_operator_info * supervise_query_operator_info @@ -187,7 +204,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { map.put("ItemSize", pageInfo.getTotal()); map.put("OperatorInfos", operatorInfos); - Map resultMap = ThirdPartyPlatformUtils.useOurSigSecretGenerateResultMap(map, thirdPartySecretInfoVO); + Map resultMap = ThirdPartyPlatformUtils.generateResultMap(map, thirdPartySecretInfoVO); return resultMap; } @@ -280,7 +297,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { map.put("PageCount", pageInfo.getPages()); map.put("ItemSize", pageInfo.getTotal()); map.put("StationInfos", resultList); - Map resultMap = ThirdPartyPlatformUtils.useOurSigSecretGenerateResultMap(map, thirdPartySecretInfoVO); + Map resultMap = ThirdPartyPlatformUtils.generateResultMap(map, thirdPartySecretInfoVO); return resultMap; } @@ -426,7 +443,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService { Map map = new LinkedHashMap<>(); map.put("StationStatusInfos", stationStatusInfos); - Map resultMap = ThirdPartyPlatformUtils.useOurSigSecretGenerateResultMap(map, thirdPartySecretInfoVO); + Map resultMap = ThirdPartyPlatformUtils.generateResultMap(map, thirdPartySecretInfoVO); return resultMap; } From ac62831a53293659cb02a9a4d7bada9b8f522601 Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 17 Dec 2024 10:21:47 +0800 Subject: [PATCH 33/37] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E5=AE=81=E6=B3=A2?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E6=89=B9=E9=87=8F=E8=A1=A5=E6=8E=A8=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jsowell/pile/mapper/OrderBasicInfoMapper.java | 3 +++ .../com/jsowell/pile/service/OrderBasicInfoService.java | 7 +++++++ .../pile/service/impl/OrderBasicInfoServiceImpl.java | 5 +++++ .../main/resources/mapper/pile/OrderBasicInfoMapper.xml | 9 +++++++++ .../service/impl/ZhongDianLianPlatformServiceImpl.java | 9 +++++---- 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java index f14c18d07..f093b9ac8 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java @@ -391,4 +391,7 @@ public interface OrderBasicInfoMapper { List getOrderDetailByStationIds(@Param("stationIds") List stationIds, @Param("startTime") String startTime, @Param("endTime") String endTime); List queryOrdersByPileConnectorCodeAndStatus(@Param("pileConnectorCode") String pileConnectorCode, @Param("orderStatus") String orderStatus, @Param("payStatus") String payStatus); + + + List tempGetOrderCodes(QueryOrderDTO dto); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index e28d59e18..5d73cee5d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -499,4 +499,11 @@ public interface OrderBasicInfoService{ * @param orderCode */ List getOrderBillingDetail(String orderCode); + + /** + * 临时接口,根据站点id、订单创建时间区间查询订单编号 + * @param dto + * @return + */ + List tempGetOrderCodes(QueryOrderDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 20c1b30c8..e85174648 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -4192,5 +4192,10 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } return resultList; } + + @Override + public List tempGetOrderCodes(QueryOrderDTO dto) { + return orderBasicInfoMapper.tempGetOrderCodes(dto); + } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 2ee887b49..fce21a633 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -3071,4 +3071,13 @@ limit 20 + \ No newline at end of file diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ZhongDianLianPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ZhongDianLianPlatformServiceImpl.java index b70fcd075..88e870ed1 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ZhongDianLianPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ZhongDianLianPlatformServiceImpl.java @@ -974,12 +974,13 @@ public class ZhongDianLianPlatformServiceImpl implements ThirdPartyPlatformServi ThirdPartySecretInfoVO ningBoSecretInfoVO = getNingBoSecretInfoVO(); // 根据站点id, 开始时间,结束时间查询出所有的订单信息 - List orderListVOS = orderBasicInfoService.selectOrderBasicInfoList(dto); - if (CollectionUtils.isEmpty(orderListVOS)) { + // List orderListVOS = orderBasicInfoService.selectOrderBasicInfoList(dto); + List orderCodes = orderBasicInfoService.tempGetOrderCodes(dto); + if (CollectionUtils.isEmpty(orderCodes)) { return "订单信息为空"; } - List orderCodeList = orderListVOS.stream().map(OrderListVO::getOrderCode).collect(Collectors.toList()); - for (String orderCode : orderCodeList) { + // List orderCodeList = orderListVOS.stream().map(OrderListVO::getOrderCode).collect(Collectors.toList()); + for (String orderCode : orderCodes) { try { String result = notificationChargeOrderInfo(orderCode, ningBoSecretInfoVO); logger.info("订单:{} 推送结果:{}", orderCode, result); From a681a5fe9c2fc7003221cd53d77edd40e67922bf Mon Sep 17 00:00:00 2001 From: Lemon Date: Wed, 18 Dec 2024 11:28:25 +0800 Subject: [PATCH 34/37] =?UTF-8?q?update=20=20=E7=AE=97=E6=B3=95=E5=BA=94?= =?UTF-8?q?=E7=94=A8Service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thirdparty/ChargeAlgorithmController.java | 39 +++++++++++++++ .../service/impl/ChargeAlgorithmService.java | 49 ++++++++++--------- 2 files changed, 65 insertions(+), 23 deletions(-) create mode 100644 jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java diff --git a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java new file mode 100644 index 000000000..3cbdffed8 --- /dev/null +++ b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/ChargeAlgorithmController.java @@ -0,0 +1,39 @@ +package com.jsowell.api.thirdparty; + +import com.jsowell.common.annotation.Anonymous; +import com.jsowell.common.core.controller.BaseController; +import com.jsowell.common.response.RestApiResponse; +import com.jsowell.thirdparty.platform.service.impl.ChargeAlgorithmService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 算法应用Controller + * + * @author Lemon + * @Date 2024/12/17 15:20:36 + */ +@Anonymous +@RestController +@RequestMapping("/chargealgorithm") +public class ChargeAlgorithmController extends BaseController { + + @Autowired + private ChargeAlgorithmService chargeAlgorithmService; + + @GetMapping("/pushOrderInfo/{orderCode}") + public RestApiResponse pushOrderInfo(@PathVariable("orderCode") String orderCode) { + RestApiResponse response = null; + try { + String result = chargeAlgorithmService.pushOrderInfo(orderCode); + response = new RestApiResponse<>(result); + }catch (Exception e) { + logger.error("算法应用推送订单信息 error, ", e); + response = new RestApiResponse<>(e); + } + return response; + } +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java index ea9f1c52a..ec8b93525 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java @@ -6,6 +6,7 @@ import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; import com.jsowell.common.core.domain.ykc.*; import com.jsowell.common.core.redis.RedisCache; +import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.pile.service.OrderBasicInfoService; import com.jsowell.pile.service.PileBasicInfoService; @@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.List; /** @@ -44,24 +46,30 @@ public class ChargeAlgorithmService { * 推送充电订单数据 * @param orderCode */ - public void pushOrderInfo(String orderCode) { + public String pushOrderInfo(String orderCode) { // 根据订单号查询订单信息 OrderVO orderVO = orderBasicInfoService.getChargeOrderInfoByOrderCode(orderCode); if (orderVO == null) { - return; + return "订单信息为空"; } + // 计算充电时长 + long chargingTime = DateUtils.intervalTime(orderVO.getStartTime(), orderVO.getEndTime()); String transactionCode = orderVO.getTransactionCode(); // 获取0x15 String chargingHandshakeKey = CacheConstants.CHARGING_HANDSHAKE_DATA_BY_TRANSACTION_CODE + transactionCode; ChargingHandshakeData chargingHandshakeData = redisCache.getCacheObject(chargingHandshakeKey); + if (chargingHandshakeData == null) { + return "0x15信息为空"; + } // 获取0x17 String redisKey = CacheConstants.PARAMETER_CONFIGURATION_BY_TRANSACTION_CODE + transactionCode; ParameterConfigData parameterConfigData = redisCache.getCacheObject(redisKey); if (parameterConfigData == null) { - return; + return "0x17信息为空"; } + // 获取0x3b缓存信息 String transactionDataKey = CacheConstants.TRANSACTION_RECORD_BY_TRANSACTION_CODE + transactionCode; TransactionRecordsData transactionRecordsData = redisCache.getCacheObject(transactionDataKey); @@ -69,33 +77,33 @@ public class ChargeAlgorithmService { // 获取最后一条0x23 List chargerOutputInfoList = pileBasicInfoService.getBMSDemandAndChargerOutputInfoList(transactionCode); if (CollectionUtils.isEmpty(chargerOutputInfoList)) { - return; + return "0x23信息为空"; } BMSDemandAndChargerOutputData bmsDemandAndChargerOutputData = chargerOutputInfoList.get(0); // 获取最后一条0x13 - List chargingRealTimeDataList = orderBasicInfoService.getChargingRealTimeData(transactionCode); - if (CollectionUtils.isEmpty(chargingRealTimeDataList)) { - return; - } - RealTimeMonitorData realTimeMonitorData = chargingRealTimeDataList.get(0); + // List chargingRealTimeDataList = orderBasicInfoService.getChargingRealTimeData(transactionCode); + // if (CollectionUtils.isEmpty(chargingRealTimeDataList)) { + // return "0x13信息为空"; + // } + // RealTimeMonitorData realTimeMonitorData = chargingRealTimeDataList.get(0); // 获取最后一条0x25 List bmsChargeInfoList = pileBasicInfoService.getBMSChargeInfoList(transactionCode); if (CollectionUtils.isEmpty(bmsChargeInfoList)) { - return; + return "0x25信息为空"; } BMSChargeInfoData bmsChargeInfoData = bmsChargeInfoList.get(0); ChargeAlgorithmData data = ChargeAlgorithmData.builder() .orderCode(orderCode) - .initSoc(Integer.parseInt(orderVO.getStartSoc())) - .currentSoc(Integer.parseInt(orderVO.getEndSoc())) + .initSoc(new BigDecimal(orderVO.getStartSoc()).intValue()) + .currentSoc(new BigDecimal(orderVO.getEndSoc()).intValue()) .alarmCode(Constants.ZERO) .currentServiceFee(String.valueOf(orderVO.getTotalServiceAmount())) .currentTotalFee(String.valueOf(orderVO.getOrderAmount())) .totalCharge(orderVO.getTotalPower()) - .totalChargeTime(Integer.parseInt(orderVO.getChargingTime())) + .totalChargeTime(Math.toIntExact(chargingTime)) .remainChargeTime(Constants.zero) .maxAllowElectricity(parameterConfigData.getBmsMaxCurrent()) .singleMaxAllowVoltage(parameterConfigData.getBmsMaxVoltage()) @@ -118,12 +126,13 @@ public class ChargeAlgorithmService { .singleMinTemp(bmsChargeInfoData.getMinBatteryTemperature()) // 单体最低温度 // .ventTemp() // 出风口温度 // .environmentTemp() // 环境温度 - .gunTemp(realTimeMonitorData.getGunLineCode()) // 充电枪温度 + // .gunTemp(realTimeMonitorData.getGunLineTemperature()) // 充电枪温度 + .gunTemp("0") // 充电枪温度 .doorStatus(Constants.zero) // 舱门状态 .bmsVersion("V1.1") // BMS版本 .measuringChargeVoltage(bmsDemandAndChargerOutputData.getBmsChargingVoltage()) // 车辆测量充电电压 .measuringChargeElectricity(bmsDemandAndChargerOutputData.getBmsChargingCurrent()) // 车辆测量充电电流 - .maxSingleVoltageGroupNum(Integer.parseInt(bmsDemandAndChargerOutputData.getBmsMaxVoltageAndGroup())) // 最高单体电压组号 + .maxSingleVoltageGroupNum(new BigDecimal(bmsDemandAndChargerOutputData.getBmsMaxVoltageAndGroup()).intValue()) // 最高单体电压组号 .maxSingleVoltageNum(Integer.parseInt(bmsChargeInfoData.getBmsMaxVoltageNum())) // 最高单体电压编号 .maxTempPointNum(Integer.parseInt(bmsChargeInfoData.getMaxTemperatureDetectionNum())) // 最高温度点编号 .minTempPointNum(Integer.parseInt(bmsChargeInfoData.getMinTemperatureDetectionNum())) // 最低温度点编号 @@ -134,20 +143,14 @@ public class ChargeAlgorithmService { .build(); - if (StringUtils.isNotBlank(orderVO.getStartSoc())) { - data.setInitSoc(Integer.parseInt(orderVO.getStartSoc())); - } - if (StringUtils.isNotBlank(orderVO.getEndSoc())) { - data.setCurrentSoc(Integer.parseInt(orderVO.getEndSoc())); - } - log.info("发送请求前封装数据 data:{}", JSON.toJSONString(data)); String url = "http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json"; - String clientId = ""; + String clientId = "e488bac5f70b496fa2d82065089e5f81"; // 发送请求 String response = HttpRequest.post(url).header("clientId", clientId).body(JSON.toJSONString(data)).execute().body(); log.info("发送请求收到回复 response:{}", response); + return response; } } From df455c25c07f4651b34c812f96bc10512c1a554e Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Wed, 18 Dec 2024 14:05:18 +0800 Subject: [PATCH 35/37] =?UTF-8?q?=E5=88=86=E8=B4=A6=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/PaymentTestController.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/jsowell-admin/src/test/java/PaymentTestController.java b/jsowell-admin/src/test/java/PaymentTestController.java index c63029ab1..73eba5cae 100644 --- a/jsowell-admin/src/test/java/PaymentTestController.java +++ b/jsowell-admin/src/test/java/PaymentTestController.java @@ -1,4 +1,5 @@ import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -11,11 +12,13 @@ import com.jsowell.adapay.dto.QueryConfirmReverseDTO; import com.jsowell.adapay.dto.QueryPaymentConfirmDTO; import com.jsowell.adapay.operation.PaymentReverseOperation; import com.jsowell.adapay.response.ConfirmReverseResponse; +import com.jsowell.adapay.response.PaymentConfirmResponse; import com.jsowell.adapay.response.PaymentReverseResponse; import com.jsowell.adapay.response.QueryPaymentConfirmDetailResponse; import com.jsowell.adapay.service.AdapayService; import com.jsowell.common.enums.ykc.ScenarioEnum; import com.jsowell.common.util.StringUtils; +import com.jsowell.pile.domain.AdapayMemberAccount; import org.apache.commons.collections4.CollectionUtils; import org.junit.Test; import org.junit.runner.RunWith; @@ -82,6 +85,37 @@ public class PaymentTestController { return list; } + // 需要重新分账的订单信息(针对未分账的订单) + public JSONArray getPaymentList() { + String jsonArrayString = "[" + + "{\"orderCode\":\"C25133803815\", \"settleAmount\":\"42.94\", \"paymentId\":\"002212024071413111510658428550211133440\"}" + + "]"; + return JSONArray.parseArray(jsonArrayString); + } + + /** + * 批量执行分账 + */ + @Test + public void batchCreatePaymentConfirm() { + JSONArray paymentList = getPaymentList(); + // TODO 获取默认结算账户,如需分给对应商户就填写正确的汇付会员id + // AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.getDefault(); + AdapayMemberAccount adapayMemberAccount = new AdapayMemberAccount(); + adapayMemberAccount.setAdapayMemberId("ACM25158725"); + for (int i = 0; i < paymentList.size(); i++) { + JSONObject jsonObject = (JSONObject) paymentList.get(i); + BigDecimal confirmAmt = jsonObject.getBigDecimal("settleAmount"); // 确认金额就是结算金额 + String paymentId = jsonObject.getString("paymentId"); // 支付id + String orderCode = jsonObject.getString("orderCode"); // 订单编号 + + // 延时分账,使用确认交易API + PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId, + adapayMemberAccount, confirmAmt, orderCode, wechatAppId1); + System.out.println(JSON.toJSONString(paymentConfirmResponse)); + } + } + public static void main(String[] args) { List list1 = Lists.newArrayList( "C84866578627", From a0943c8b8fac8d063700adc53787404782df8efc Mon Sep 17 00:00:00 2001 From: "BOOL\\25024" Date: Wed, 18 Dec 2024 14:26:46 +0800 Subject: [PATCH 36/37] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=88=86=E6=B6=A6?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jsowell-ui/src/views/pile/station/detail.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jsowell-ui/src/views/pile/station/detail.vue b/jsowell-ui/src/views/pile/station/detail.vue index b3475503d..a50e56d0e 100644 --- a/jsowell-ui/src/views/pile/station/detail.vue +++ b/jsowell-ui/src/views/pile/station/detail.vue @@ -220,9 +220,9 @@ - + From f0f0482ffdf81103b4191ccb33110d8c476dfef2 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Wed, 18 Dec 2024 15:13:32 +0800 Subject: [PATCH 37/37] =?UTF-8?q?=E5=88=86=E8=B4=A6=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index e85174648..529e8bbeb 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1206,6 +1206,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } List orderCodeList = Lists.newArrayList(StringUtils.split(orderCodes, ",")); List orderBasicInfos = queryOrderList(orderCodeList); + logger.info("运营商id:{}, 日期:{}, 订单号数量:{}, 查询结果数量:{}, orderCodeList:{}", merchantId, orderReport.getTradeDate(), orderCodeList.size(), orderBasicInfos.size(), JSON.toJSONString(orderCodeList)); if (CollectionUtils.isEmpty(orderBasicInfos)) { continue; } @@ -1245,12 +1246,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .subtract(feeAmt); clearingBillDetail.setFeeAmt(feeAmt); clearingBillDetail.setConfirmAmt(confirmAmt); - billDetailList.add(clearingBillDetail); } else { clearingBillDetail.setFeeAmt(BigDecimal.ZERO); clearingBillDetail.setConfirmAmt(BigDecimal.ZERO); - billDetailList.add(clearingBillDetail); } + billDetailList.add(clearingBillDetail); } catch (Exception e) { logger.error("订单交易确认失败:{}", orderBasicInfo.getOrderCode(), e); }