diff --git a/evcs-modules/evcs-common/pom.xml b/evcs-modules/evcs-common/pom.xml
new file mode 100644
index 00000000..e055a93b
--- /dev/null
+++ b/evcs-modules/evcs-common/pom.xml
@@ -0,0 +1,93 @@
+
+
+ com.xhpc
+ evcs-modules
+ 1.0
+
+
+ 4.0.0
+ evcs-common
+
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+ org.springframework.data
+ spring-data-commons
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.springframework
+ spring-web
+ 5.3.8
+
+
+ org.springframework
+ spring-webmvc
+ 5.3.8
+
+
+
+ com.jayway.jsonpath
+ json-path
+
+
+ javax.servlet
+ javax.servlet-api
+
+
+ joda-time
+ joda-time
+ 2.9.9
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ 2.12.3
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.12.3
+
+
+ com.alibaba
+ fastjson
+ 1.2.76
+
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+
+
+
+ org.springframework.data
+ spring-data-jpa
+ 2.5.1
+
+
+ com.ruoyi
+ xhpc-common
+ 3.0.0
+ compile
+
+
+
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/AuthSecretToken.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/AuthSecretToken.java
new file mode 100644
index 00000000..c8004f21
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/AuthSecretToken.java
@@ -0,0 +1,69 @@
+package com.xhpc.evcs.domain;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+@Getter
+@Setter
+@Entity
+@Table(name = "ET_AUTH_SEC_TOKEN")
+public class AuthSecretToken {
+
+ public final static String SECRET_TOKEN_TYPE_IN = "IN";
+ public final static String SECRET_TOKEN_TYPE_OUT = "OUT";
+
+ @Id
+ @GeneratedValue()
+ private Integer id;
+
+ private String operatorId;
+
+ private String operatorId3irdpty;
+
+ private String urlPrefix;
+
+ private String secretTokenType;
+
+ private String operatorSecret;
+
+ private String sigSecret;
+
+ private String dataSecret;
+
+ private String dataSecretIV;
+
+ private String token;
+
+ private Date tokenExpiry;
+
+ private boolean encrypt;
+
+ private Long lastPushOrder;
+
+ public AuthSecretToken() {
+
+ }
+
+ public AuthSecretToken(String operatorId, String secretTokenType) {
+
+ this.operatorId = operatorId;
+ this.secretTokenType = secretTokenType;
+ }
+
+ public Long getLastPushOrder() {
+
+ return lastPushOrder == null ? 0 : lastPushOrder;
+ }
+
+ public void setLastPushOrder(Long lastPushOrder) {
+
+ this.lastPushOrder = lastPushOrder;
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CDChargeOrderInfo4Bonus.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CDChargeOrderInfo4Bonus.java
new file mode 100644
index 00000000..4678505f
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CDChargeOrderInfo4Bonus.java
@@ -0,0 +1,159 @@
+package com.xhpc.evcs.domain;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.xhpc.evcs.dto.ChargeDetails;
+import com.xhpc.evcs.utils.DateUtil;
+import com.xhpc.order.domain.XhpcHistoryOrder;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+
+//@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "ConnectorID",
+ "StartTime",
+ "EndTime",
+ "ChargeModel",
+ "TotalPower",
+ "TotalElecMoney",
+ "TotalSeviceMoney",
+ "TotalMoney",
+ "StopReason",
+ "SumPeriod",
+ "ChargeDetails",
+ "UserName",
+ "StationID",
+ "EquipmentID",
+ "ConnectorPower",
+ "ChargeLast",
+ "MeterValueStart",
+ "MeterValueEnd"
+})
+@Data
+public class CDChargeOrderInfo4Bonus {
+
+ @Id
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonProperty("ConnectorID")
+ private String connectorID;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("ChargeModel")
+ private Integer chargeModel;
+ @JsonProperty("ChargeLast")
+ private Integer chargeLast;
+ @JsonProperty("EndTime")
+ private String endTime;
+ @JsonProperty("UserName")
+ private String userName;
+ @JsonProperty("StationID")
+ private String stationId;
+ @JsonProperty("EquipmentID")
+ private String equipmentId;
+ @JsonProperty("TotalPower")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double totalPower = 0.0;
+ @JsonProperty("MeterValueStart")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double meterValueStart = 0.0;
+ @JsonProperty("MeterValueEnd")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double meterValueEnd = 0.0;
+ @JsonProperty("TotalElecMoney")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double totalElecMoney = 0.0;
+ @JsonProperty("TotalSeviceMoney")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double totalSeviceMoney = 0.0;
+ @JsonProperty("ConnectorPower")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double connectorPower = 0.0;
+ @JsonProperty("TotalMoney")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double totalMoney = 0.0;
+ @JsonProperty("StopReason")
+ private Integer stopReason;
+ @JsonProperty("SumPeriod")
+ private Integer sumPeriod;
+ @JsonProperty("ChargeDetails")
+ private ChargeDetails[] chargeDetails;
+
+ public CDChargeOrderInfo4Bonus(XhpcHistoryOrder xhpcHistoryOrder, EtOrderMapping etOrderMapping) {
+
+ this.startChargeSeq = etOrderMapping.getEvcsOrderNo();
+ this.connectorID = xhpcHistoryOrder.getSerialNumber().substring(0, 16);
+ this.endTime = DateUtil.date2String(xhpcHistoryOrder.getCreateTime(), DateUtil.DATE_FORMAT_DATE_TIME);
+ this.startTime = DateUtil.date2String(xhpcHistoryOrder.getStartTime(), DateUtil.DATE_FORMAT_DATE_TIME);
+ this.chargeModel = xhpcHistoryOrder.getChargeModelEvcs();
+ this.totalPower = xhpcHistoryOrder.getTotalPower();
+ this.totalElecMoney = xhpcHistoryOrder.getTotalPrice().doubleValue();
+ this.totalSeviceMoney = xhpcHistoryOrder.getServicePriceTotal().doubleValue();
+ this.totalMoney = xhpcHistoryOrder.getTotalPrice().doubleValue();
+ this.stopReason = xhpcHistoryOrder.getStopReasonEvcs();
+ this.sumPeriod = xhpcHistoryOrder.getXhpcStatisticsTimeIntervalList().size();
+ this.chargeDetails = translate(xhpcHistoryOrder.getXhpcStatisticsTimeIntervalList());
+ this.userName = xhpcHistoryOrder.getUserNameEvcs();
+ this.stationId = xhpcHistoryOrder.getChargingStationId().toString();
+ this.equipmentId = xhpcHistoryOrder.getSerialNumber().substring(0, 14);
+ this.connectorPower = xhpcHistoryOrder.getConnectorPowerEvcs();
+ Date starttime = xhpcHistoryOrder.getStartTime();
+ Date endtime = xhpcHistoryOrder.getCreateTime();
+ int cl = 0;
+ if (starttime != null && endtime != null) {
+ cl = Math.toIntExact((endtime.getTime() - starttime.getTime()) / 1000);
+ }
+ this.chargeLast = cl;
+ this.meterValueStart = xhpcHistoryOrder.getMeterValueStartEvcs();
+ this.meterValueEnd = xhpcHistoryOrder.getMeterValueEndEvcs();
+ }
+
+ private ChargeDetails[] translate(List xhpcStatisticsTimeIntervalList) {
+
+ List details = new LinkedList<>();
+ for (XhpcStatisticsTimeInterval statistics : xhpcStatisticsTimeIntervalList) {
+ details.add(new ChargeDetails(statistics));
+ }
+ ChargeDetails[] a = new ChargeDetails[details.size()];
+ return details.toArray(a);
+ }
+
+ public CDChargeOrderInfo4Bonus() {
+
+ super();
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this)
+ .append("startChargeSeq", startChargeSeq)
+ .append("connectorID", connectorID)
+ .append("startTime", startTime)
+ .append("chargeModel", chargeModel)
+ .append("chargeLast", chargeLast)
+ .append("endTime", endTime)
+ .append("userName", userName)
+ .append("stationId", stationId)
+ .append("equipmentId", equipmentId)
+ .append("totalPower", totalPower)
+ .append("meterValueStart", meterValueStart)
+ .append("meterValueEnd", meterValueEnd)
+ .append("totalElecMoney", totalElecMoney)
+ .append("totalSeviceMoney", totalSeviceMoney)
+ .append("connectorPower", connectorPower)
+ .append("totalMoney", totalMoney)
+ .append("stopReason", stopReason)
+ .append("sumPeriod", sumPeriod)
+ .append("chargeDetails", chargeDetails)
+ .toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/ChargeOrderInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/ChargeOrderInfo.java
new file mode 100644
index 00000000..96b9d5f2
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/ChargeOrderInfo.java
@@ -0,0 +1,234 @@
+package com.xhpc.evcs.domain;
+
+import com.fasterxml.jackson.annotation.*;
+import com.xhpc.evcs.dto.ChargeDetails;
+import com.xhpc.order.domain.XhpcHistoryOrder;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import javax.persistence.*;
+import java.util.HashMap;
+import java.util.Map;
+
+//@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "ConnectorID",
+ "StartTime",
+ "EndTime",
+ "TotalPower",
+ "TotalElecMoney",
+ "TotalSeviceMoney",
+ "TotalMoney",
+ "StopReason",
+ "SumPeriod"
+})
+@Entity
+@Setter
+@Getter
+@Table(name = "ET_CHARGE_ORDER_INFO")
+public class ChargeOrderInfo {
+
+ @Id
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonIgnore
+ private Integer startChargeSeqStat;
+ @JsonIgnore
+ private Integer failReason;
+ @JsonIgnore
+ private String identCode;
+ @JsonIgnore
+ @Column(updatable = false)
+ private String infraOperatorId;
+ @JsonIgnore
+ @Column(updatable = false)
+ private String billerOperatorId;//biller
+ @JsonProperty("ConnectorID")
+ private String connectorID;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("ChargeModel")
+ private Integer chargeModel;
+ @JsonProperty("Vin")
+ private String vin;
+ @JsonProperty("EndTime")
+ private String endTime;
+ @JsonProperty("TotalPower")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double totalPower = 0.0;
+ @JsonProperty("TotalElecMoney")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double totalElecMoney = 0.0;
+ @JsonProperty("TotalSeviceMoney")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double totalSeviceMoney = 0.0;
+ @JsonProperty("TotalMoney")
+ @Column(columnDefinition = "Decimal(10,2)")
+ private Double totalMoney = 0.0;
+ @JsonProperty("StopReason")
+ private Integer stopReason;
+ @JsonProperty("SumPeriod")
+ private Integer sumPeriod;
+ @JsonProperty("ChargeDetails")
+ private ChargeDetails[] chargeDetails;
+ @JsonIgnore
+ @Transient
+ private Map additionalProperties = new HashMap();
+
+ public ChargeOrderInfo(XhpcHistoryOrder xhpcHistoryOrder) {
+// this.connectorID = xhpcHistoryOrder.getTerminalId()
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+ public ChargeOrderInfo setStartChargeSeqAndReturn(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ return this;
+ }
+
+ @JsonProperty("ConnectorID")
+ public String getConnectorID() {
+
+ return connectorID;
+ }
+
+ @JsonProperty("ConnectorID")
+ public void setConnectorID(String connectorID) {
+
+ this.connectorID = connectorID;
+ }
+
+ @JsonProperty("StartTime")
+ public String getStartTime() {
+
+ return startTime;
+ }
+
+ @JsonProperty("StartTime")
+ public void setStartTime(String startTime) {
+
+ this.startTime = startTime;
+ }
+
+ @JsonProperty("EndTime")
+ public String getEndTime() {
+
+ return endTime;
+ }
+
+ @JsonProperty("EndTime")
+ public void setEndTime(String endTime) {
+
+ this.endTime = endTime;
+ }
+
+ @JsonProperty("TotalPower")
+ public Double getTotalPower() {
+
+ return totalPower;
+ }
+
+ @JsonProperty("TotalPower")
+ public void setTotalPower(Double totalPower) {
+
+ this.totalPower = totalPower;
+ }
+
+ @JsonProperty("TotalElecMoney")
+ public Double getTotalElecMoney() {
+
+ return totalElecMoney;
+ }
+
+ @JsonProperty("TotalElecMoney")
+ public void setTotalElecMoney(Double totalElecMoney) {
+
+ this.totalElecMoney = totalElecMoney;
+ }
+
+ @JsonProperty("TotalSeviceMoney")
+ public Double getTotalSeviceMoney() {
+
+ return totalSeviceMoney;
+ }
+
+ @JsonProperty("TotalSeviceMoney")
+ public void setTotalSeviceMoney(Double totalSeviceMoney) {
+
+ this.totalSeviceMoney = totalSeviceMoney;
+ }
+
+ @JsonProperty("TotalMoney")
+ public Double getTotalMoney() {
+
+ return totalMoney;
+ }
+
+ @JsonProperty("TotalMoney")
+ public void setTotalMoney(Double totalMoney) {
+
+ this.totalMoney = totalMoney;
+ }
+
+ @JsonProperty("StopReason")
+ public Integer getStopReason() {
+
+ return stopReason;
+ }
+
+ @JsonProperty("StopReason")
+ public void setStopReason(Integer stopReason) {
+
+ this.stopReason = stopReason;
+ }
+
+ @JsonProperty("SumPeriod")
+ public Integer getSumPeriod() {
+
+ return sumPeriod;
+ }
+
+ @JsonProperty("SumPeriod")
+ public void setSumPeriod(Integer sumPeriod) {
+
+ this.sumPeriod = sumPeriod;
+ }
+
+ @JsonAnyGetter
+ @Transient
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ @Transient
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("startChargeSeq", startChargeSeq).append("connectorID", connectorID).append(
+ "startTime", startTime).append("endTime", endTime).append("totalPower", totalPower).append("totalElecMoney",
+ totalElecMoney).append("totalSeviceMoney", totalSeviceMoney).append("totalMoney", totalMoney).append(
+ "stopReason", stopReason).append("sumPeriod", sumPeriod).append("additionalProperties",
+ additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CommonOperatorInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CommonOperatorInfo.java
new file mode 100644
index 00000000..ffc1f809
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CommonOperatorInfo.java
@@ -0,0 +1,32 @@
+package com.xhpc.evcs.domain;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+@Getter
+@Setter
+@Entity(name = "ET_COMMON_OPERATOR_INFO")
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class CommonOperatorInfo {
+
+ @Id
+ @JsonProperty("OperatorID")
+ String operatorId;
+ @JsonProperty("OperatorName")
+ String operatorName;
+ @JsonProperty("OperatorTel1")
+ String operatorTel1;
+ @JsonProperty("OperatorTel2")
+ String operatorTel2;
+ @JsonProperty("OperatorRegAddress")
+ String operatorRegAddress;
+ @JsonProperty("OperatorNote")
+ String operatorNote;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CommonStationInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CommonStationInfo.java
new file mode 100644
index 00000000..eaa6bce9
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/CommonStationInfo.java
@@ -0,0 +1,32 @@
+package com.xhpc.evcs.domain;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Getter
+@Setter
+@Entity
+@Table(name = "ET_COMMON_STATION_INFO")
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class CommonStationInfo {
+
+ @Id
+ @JsonProperty("StationID")
+ String stationId;
+ @JsonProperty("OperatorID")
+ String operatorId;
+ @JsonProperty("EquipmentOwnerID")
+ String equipmentOwnerId;
+ @JsonProperty("StationName")
+ String stationName;
+ @JsonProperty("CountryCode")
+ String countryCode;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/ConnectorStatusInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/ConnectorStatusInfo.java
new file mode 100644
index 00000000..b74d6e33
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/ConnectorStatusInfo.java
@@ -0,0 +1,85 @@
+package com.xhpc.evcs.domain;
+
+import com.fasterxml.jackson.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+
+@JsonPropertyOrder({
+ "ConnectorID",
+ "Status"
+})
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+@Entity
+@Getter
+@Setter
+@Table(name = "ET_CONNECTOR_STATUS_INFO")
+public class ConnectorStatusInfo {
+
+ final static int OFF_LINE = 0;//离网
+ final static int FREE = 1;//空闲
+ final static int CONNECTED = 2;//占用(未充电)
+ final static int CHARGING = 3;//占用(充电中)
+ final static int BOOKED = 4;//占用(预约锁定)
+ final static int ERROR = 255;//故障
+
+ @Id
+ @JsonProperty("ConnectorID")
+ private String connectorID;
+ @JsonProperty("OperatorID")
+ private String operatorID;
+ @JsonProperty("Status")
+ private Integer status;
+ @Transient
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this)
+ .append("connectorID", connectorID)
+ .append("operatorID", operatorID)
+ .append("status", status)
+ .append("additionalProperties", additionalProperties)
+ .toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ ConnectorStatusInfo that = (ConnectorStatusInfo) o;
+ return connectorID.equals(that.connectorID) && operatorID.equals(that.operatorID);
+ }
+
+ @Override
+ public int hashCode() {
+
+ return Objects.hash(connectorID, operatorID);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/EtOrderMapping.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/EtOrderMapping.java
new file mode 100644
index 00000000..034118b0
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/EtOrderMapping.java
@@ -0,0 +1,52 @@
+package com.xhpc.evcs.domain;
+
+import com.xhpc.common.core.web.domain.BaseEntity;
+
+import javax.persistence.*;
+
+@Table(name = "et_order_mapping")
+@Entity
+public class EtOrderMapping extends BaseEntity {
+
+ @Id
+ @Column(name = "id", nullable = false)
+ @GeneratedValue
+ private Long id;
+
+ @Column(name = "xh_order_no", nullable = false, length = 50)
+ private String xhOrderNo;
+
+ @Column(name = "evcs_order_no", nullable = false, length = 50)
+ private String evcsOrderNo;
+
+ public String getEvcsOrderNo() {
+
+ return evcsOrderNo;
+ }
+
+ public void setEvcsOrderNo(String evcsOrderNo) {
+
+ this.evcsOrderNo = evcsOrderNo;
+ }
+
+ public String getXhOrderNo() {
+
+ return xhOrderNo;
+ }
+
+ public void setXhOrderNo(String xhOrderNo) {
+
+ this.xhOrderNo = xhOrderNo;
+ }
+
+ public Long getId() {
+
+ return id;
+ }
+
+ public void setId(Long id) {
+
+ this.id = id;
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/OperatorInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/OperatorInfo.java
new file mode 100644
index 00000000..85da20d9
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/OperatorInfo.java
@@ -0,0 +1,24 @@
+package com.xhpc.evcs.domain;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+@Entity
+@Table(name = "ET_OPERATOR_INFO")
+public class OperatorInfo extends CommonOperatorInfo {
+
+ @JsonIgnore()
+ @JsonProperty("Key")
+ private String opKey;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/StationInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/StationInfo.java
new file mode 100644
index 00000000..570dbe92
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/StationInfo.java
@@ -0,0 +1,116 @@
+package com.xhpc.evcs.domain;
+
+import com.fasterxml.jackson.annotation.*;
+import com.xhpc.evcs.dto.EquipmentInfo;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StationID",
+ "OperatorID",
+ "EquipmentOwnerID",
+ "StationName",
+ "CountryCode",
+ "AreaCode",
+ "Address",
+ "ServiceTel",
+ "StationType",
+ "StationStatus",
+ "ParkNums",
+ "StationLng",
+ "StationLat",
+ "Construction",
+ "BusineHours",
+ "ElectricityFee",
+ "ServiceFee",
+ "Payment",
+ "SupportOrder",
+ "EquipmentInfos"
+})
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+@Entity
+@Table(name = "ET_STATION_INFO")
+public class StationInfo extends CommonStationInfo {
+
+ @Transient
+ @JsonProperty("AreaCode")
+ public String areaCode;
+ @Transient
+ @JsonProperty("Address")
+ public String address;
+ @Transient
+ @JsonProperty("ServiceTel")
+ public String serviceTel;
+ @Transient
+ @JsonProperty("StationType")
+ public Long stationType;
+ @Transient
+ @JsonProperty("StationStatus")
+ public Long stationStatus;
+ @Transient
+ @JsonProperty("ParkNums")
+ public Long parkNums;
+ @Transient
+ @JsonProperty("StationLng")
+ public Double stationLng;
+ @Transient
+ @JsonProperty("StationLat")
+ public Double stationLat;
+ @Transient
+ @JsonProperty("Construction")
+ public Long construction;
+ @Transient
+ @JsonProperty("BusineHours")
+ public String busineHours;
+ @Transient
+ @JsonProperty("ElectricityFee")
+ public String electricityFee;
+ @Transient
+ @JsonProperty("ServiceFee")
+ public String serviceFee;
+ @Transient
+ @JsonProperty("Payment")
+ public String payment;
+ @Transient
+ @JsonProperty("SupportOrder")
+ public Long supportOrder;
+ @Transient
+ @JsonProperty("EquipmentInfos")
+ public List equipmentInfos = null;
+ @Transient
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("stationID", getStationId()).append("operatorID", getOperatorId()).append(
+ "equipmentOwnerID", getEquipmentOwnerId()).append("stationName", getStationName()).append("countryCode",
+ getCountryCode()).append("areaCode", areaCode).append("address", address).append("serviceTel", serviceTel).append("stationType", stationType).append("stationStatus", stationStatus).append("parkNums", parkNums).append("stationLng", stationLng).append("stationLat", stationLat).append("construction", construction).append("busineHours", busineHours).append("electricityFee", electricityFee).append("serviceFee", serviceFee).append("payment", payment).append("supportOrder", supportOrder).append("equipmentInfos", equipmentInfos).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/XhpcChargingPile.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/XhpcChargingPile.java
new file mode 100644
index 00000000..2876998a
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/XhpcChargingPile.java
@@ -0,0 +1,364 @@
+package com.xhpc.evcs.domain;
+
+import com.xhpc.common.core.web.domain.BaseEntity;
+
+import javax.persistence.*;
+
+@Table(name = "xhpc_charging_pile")
+@Entity
+public class XhpcChargingPile extends BaseEntity {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "charging_pile_id", nullable = false)
+ private Long id;
+
+ @Column(name = "charging_station_id")
+ private Long chargingStationId;
+
+ @Column(name = "name", length = 30)
+ private String name;
+
+ @Column(name = "national_standard", length = 50)
+ private String nationalStandard;
+
+ @Column(name = "power")
+ private Double power;
+
+ @Column(name = "auxiliary_power_supply")
+ private Double auxiliaryPowerSupply;
+
+ @Column(name = "input_voltage")
+ private Double inputVoltage;
+
+ @Column(name = "max_voltage")
+ private Double maxVoltage;
+
+ @Column(name = "min_voltage")
+ private Double minVoltage;
+
+ @Column(name = "max_electric_current")
+ private Double maxElectricCurrent;
+
+ @Column(name = "min_electric_current")
+ private Double minElectricCurrent;
+
+ @Column(name = "serial_number", length = 30)
+ private String serialNumber;
+
+ @Column(name = "type")
+ private Integer type;
+
+ @Column(name = "program_version", length = 20)
+ private String programVersion;
+
+ @Column(name = "network_link_type", length = 20)
+ private String networkLinkType;
+
+ @Column(name = "gun_number")
+ private Integer gunNumber;
+
+ @Column(name = "communication_protocol_version", length = 20)
+ private String communicationProtocolVersion;
+
+ @Column(name = "communication_operator", length = 20)
+ private String communicationOperator;
+
+ @Column(name = "sim_card", length = 30)
+ private String simCard;
+
+ @Column(name = "status")
+ private Integer status;
+
+ @Column(name = "del_flag")
+ private Integer delFlag;
+
+ @Column(name = "rate_model_id")
+ private Long rateModelId;
+
+ @Column(name = "brand_model")
+ private String brandModel;
+
+ @Column(name = "production_date", length = 10)
+ private String productionDate;
+
+ @Column(name = "manufacture_name", length = 30)
+ private String manufactureName;
+
+ @Column(name = "connector_type")
+ private Integer connectorType;
+
+ @Column(name = "current")
+ private Integer current;
+
+ public Integer getCurrent() {
+
+ return current;
+ }
+
+ public void setCurrent(Integer current) {
+
+ this.current = current;
+ }
+
+ public Integer getConnectorType() {
+
+ return connectorType;
+ }
+
+ public void setConnectorType(Integer connectorType) {
+
+ this.connectorType = connectorType;
+ }
+
+ public String getManufactureName() {
+
+ return manufactureName;
+ }
+
+ public void setManufactureName(String manufactureName) {
+
+ this.manufactureName = manufactureName;
+ }
+
+ public String getProductionDate() {
+
+ return productionDate;
+ }
+
+ public void setProductionDate(String productionDate) {
+
+ this.productionDate = productionDate;
+ }
+
+ public String getBrandModel() {
+
+ return brandModel;
+ }
+
+ public void setBrandModel(String brandModel) {
+
+ this.brandModel = brandModel;
+ }
+
+ public Long getRateModelId() {
+
+ return rateModelId;
+ }
+
+ public void setRateModelId(Long rateModelId) {
+
+ this.rateModelId = rateModelId;
+ }
+
+ public Integer getDelFlag() {
+
+ return delFlag;
+ }
+
+ public void setDelFlag(Integer delFlag) {
+
+ this.delFlag = delFlag;
+ }
+
+ public Integer getStatus() {
+
+ return status;
+ }
+
+ public void setStatus(Integer status) {
+
+ this.status = status;
+ }
+
+ public String getSimCard() {
+
+ return simCard;
+ }
+
+ public void setSimCard(String simCard) {
+
+ this.simCard = simCard;
+ }
+
+ public String getCommunicationOperator() {
+
+ return communicationOperator;
+ }
+
+ public void setCommunicationOperator(String communicationOperator) {
+
+ this.communicationOperator = communicationOperator;
+ }
+
+ public String getCommunicationProtocolVersion() {
+
+ return communicationProtocolVersion;
+ }
+
+ public void setCommunicationProtocolVersion(String communicationProtocolVersion) {
+
+ this.communicationProtocolVersion = communicationProtocolVersion;
+ }
+
+ public Integer getGunNumber() {
+
+ return gunNumber;
+ }
+
+ public void setGunNumber(Integer gunNumber) {
+
+ this.gunNumber = gunNumber;
+ }
+
+ public String getNetworkLinkType() {
+
+ return networkLinkType;
+ }
+
+ public void setNetworkLinkType(String networkLinkType) {
+
+ this.networkLinkType = networkLinkType;
+ }
+
+ public String getProgramVersion() {
+
+ return programVersion;
+ }
+
+ public void setProgramVersion(String programVersion) {
+
+ this.programVersion = programVersion;
+ }
+
+ public Integer getType() {
+
+ return type;
+ }
+
+ public void setType(Integer type) {
+
+ this.type = type;
+ }
+
+ public String getSerialNumber() {
+
+ return serialNumber;
+ }
+
+ public void setSerialNumber(String serialNumber) {
+
+ this.serialNumber = serialNumber;
+ }
+
+ public Double getMinElectricCurrent() {
+
+ return minElectricCurrent;
+ }
+
+ public void setMinElectricCurrent(Double minElectricCurrent) {
+
+ this.minElectricCurrent = minElectricCurrent;
+ }
+
+ public Double getMaxElectricCurrent() {
+
+ return maxElectricCurrent;
+ }
+
+ public void setMaxElectricCurrent(Double maxElectricCurrent) {
+
+ this.maxElectricCurrent = maxElectricCurrent;
+ }
+
+ public Double getMinVoltage() {
+
+ return minVoltage;
+ }
+
+ public void setMinVoltage(Double minVoltage) {
+
+ this.minVoltage = minVoltage;
+ }
+
+ public Double getMaxVoltage() {
+
+ return maxVoltage;
+ }
+
+ public void setMaxVoltage(Double maxVoltage) {
+
+ this.maxVoltage = maxVoltage;
+ }
+
+ public Double getInputVoltage() {
+
+ return inputVoltage;
+ }
+
+ public void setInputVoltage(Double inputVoltage) {
+
+ this.inputVoltage = inputVoltage;
+ }
+
+ public Double getAuxiliaryPowerSupply() {
+
+ return auxiliaryPowerSupply;
+ }
+
+ public void setAuxiliaryPowerSupply(Double auxiliaryPowerSupply) {
+
+ this.auxiliaryPowerSupply = auxiliaryPowerSupply;
+ }
+
+ public Double getPower() {
+
+ return power;
+ }
+
+ public void setPower(Double power) {
+
+ this.power = power;
+ }
+
+ public String getNationalStandard() {
+
+ return nationalStandard;
+ }
+
+ public void setNationalStandard(String nationalStandard) {
+
+ this.nationalStandard = nationalStandard;
+ }
+
+ public String getName() {
+
+ return name;
+ }
+
+ public void setName(String name) {
+
+ this.name = name;
+ }
+
+ public Long getChargingStationId() {
+
+ return chargingStationId;
+ }
+
+ public void setChargingStationId(Long chargingStationId) {
+
+ this.chargingStationId = chargingStationId;
+ }
+
+ public Long getId() {
+
+ return id;
+ }
+
+ public void setId(Long id) {
+
+ this.id = id;
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/XhpcChargingStation.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/XhpcChargingStation.java
new file mode 100644
index 00000000..722ed706
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/domain/XhpcChargingStation.java
@@ -0,0 +1,316 @@
+package com.xhpc.evcs.domain;
+
+import com.xhpc.common.core.web.domain.BaseEntity;
+
+import javax.persistence.*;
+
+@Table(name = "xhpc_charging_station")
+@Entity
+public class XhpcChargingStation extends BaseEntity {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "charging_station_id", nullable = false)
+ private Long id;
+
+ @Column(name = "name", length = 30)
+ private String name;
+
+ @Column(name = "operator_id")
+ private Long operatorId;
+
+ @Column(name = "type")
+ private Integer type;
+
+ @Lob
+ @Column(name = "construction_site")
+ private String constructionSite;
+
+ @Lob
+ @Column(name = "service_facilities")
+ private String serviceFacilities;
+
+ @Lob
+ @Column(name = "periphery_facilities")
+ private String peripheryFacilities;
+
+ @Column(name = "area_code")
+ private Integer areaCode;
+
+ @Column(name = "address", length = 50)
+ private String address;
+
+ @Column(name = "detailed_address", length = 50)
+ private String detailedAddress;
+
+ @Column(name = "longitude", length = 30)
+ private String longitude;
+
+ @Column(name = "latitude", length = 30)
+ private String latitude;
+
+ @Column(name = "parking_instructions")
+ private String parkingInstructions;
+
+ @Column(name = "serial_number", length = 50)
+ private String serialNumber;
+
+ @Column(name = "client_visible", length = 50)
+ private String clientVisible;
+
+ @Column(name = "status")
+ private Integer status;
+
+ @Column(name = "del_flag")
+ private Integer delFlag;
+
+ @Column(name = "rate_model_id")
+ private Long rateModelId;
+
+ @Column(name = "business_instructions")
+ private String businessInstructions;
+
+ @Column(name = "reminder_instructions")
+ private String reminderInstructions;
+
+ @Column(name = "img_id", length = 500)
+ private String imgId;
+
+ @Lob
+ @Column(name = "station_type")
+ private String stationType;
+
+ @Column(name = "operator_id_evcs", length = 20)
+ private String operatorIdEvcs;
+
+ public String getOperatorIdEvcs() {
+
+ return operatorIdEvcs;
+ }
+
+ public void setOperatorIdEvcs(String operatorIdEvcs) {
+
+ this.operatorIdEvcs = operatorIdEvcs;
+ }
+
+ public String getStationType() {
+
+ return stationType;
+ }
+
+ public void setStationType(String stationType) {
+
+ this.stationType = stationType;
+ }
+
+ public String getImgId() {
+
+ return imgId;
+ }
+
+ public void setImgId(String imgId) {
+
+ this.imgId = imgId;
+ }
+
+ public String getReminderInstructions() {
+
+ return reminderInstructions;
+ }
+
+ public void setReminderInstructions(String reminderInstructions) {
+
+ this.reminderInstructions = reminderInstructions;
+ }
+
+ public String getBusinessInstructions() {
+
+ return businessInstructions;
+ }
+
+ public void setBusinessInstructions(String businessInstructions) {
+
+ this.businessInstructions = businessInstructions;
+ }
+
+ public Long getRateModelId() {
+
+ return rateModelId;
+ }
+
+ public void setRateModelId(Long rateModelId) {
+
+ this.rateModelId = rateModelId;
+ }
+
+ public Integer getDelFlag() {
+
+ return delFlag;
+ }
+
+ public void setDelFlag(Integer delFlag) {
+
+ this.delFlag = delFlag;
+ }
+
+ public Integer getStatus() {
+
+ return status;
+ }
+
+ public void setStatus(Integer status) {
+
+ this.status = status;
+ }
+
+ public String getClientVisible() {
+
+ return clientVisible;
+ }
+
+ public void setClientVisible(String clientVisible) {
+
+ this.clientVisible = clientVisible;
+ }
+
+ public String getSerialNumber() {
+
+ return serialNumber;
+ }
+
+ public void setSerialNumber(String serialNumber) {
+
+ this.serialNumber = serialNumber;
+ }
+
+ public String getParkingInstructions() {
+
+ return parkingInstructions;
+ }
+
+ public void setParkingInstructions(String parkingInstructions) {
+
+ this.parkingInstructions = parkingInstructions;
+ }
+
+ public String getLatitude() {
+
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+
+ this.longitude = longitude;
+ }
+
+ public String getDetailedAddress() {
+
+ return detailedAddress;
+ }
+
+ public void setDetailedAddress(String detailedAddress) {
+
+ this.detailedAddress = detailedAddress;
+ }
+
+ public String getAddress() {
+
+ return address;
+ }
+
+ public void setAddress(String address) {
+
+ this.address = address;
+ }
+
+ public Integer getAreaCode() {
+
+ return areaCode;
+ }
+
+ public void setAreaCode(Integer areaCode) {
+
+ this.areaCode = areaCode;
+ }
+
+ public String getPeripheryFacilities() {
+
+ return peripheryFacilities;
+ }
+
+ public void setPeripheryFacilities(String peripheryFacilities) {
+
+ this.peripheryFacilities = peripheryFacilities;
+ }
+
+ public String getServiceFacilities() {
+
+ return serviceFacilities;
+ }
+
+ public void setServiceFacilities(String serviceFacilities) {
+
+ this.serviceFacilities = serviceFacilities;
+ }
+
+ public String getConstructionSite() {
+
+ return constructionSite;
+ }
+
+ public void setConstructionSite(String constructionSite) {
+
+ this.constructionSite = constructionSite;
+ }
+
+ public Integer getType() {
+
+ return type;
+ }
+
+ public void setType(Integer type) {
+
+ this.type = type;
+ }
+
+ public Long getOperatorId() {
+
+ return operatorId;
+ }
+
+ public void setOperatorId(Long operatorId) {
+
+ this.operatorId = operatorId;
+ }
+
+ public String getName() {
+
+ return name;
+ }
+
+ public void setName(String name) {
+
+ this.name = name;
+ }
+
+ public Long getId() {
+
+ return id;
+ }
+
+ public void setId(Long id) {
+
+ this.id = id;
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDConnectorStatusInfo4BonusRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDConnectorStatusInfo4BonusRequest.java
new file mode 100644
index 00000000..80607fc9
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDConnectorStatusInfo4BonusRequest.java
@@ -0,0 +1,21 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.xhpc.evcs.domain.ConnectorStatusInfo;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+
+@Setter
+@Getter
+@Data
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class CDConnectorStatusInfo4BonusRequest {
+
+ @JsonProperty("ConnectorStatusInfo")
+ private ConnectorStatusInfo connectorStatusInfo;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDEquipChargeStatusCDInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDEquipChargeStatusCDInfo.java
new file mode 100644
index 00000000..4d228bdd
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDEquipChargeStatusCDInfo.java
@@ -0,0 +1,77 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "StartChargeSeqStat",
+ "ConnectorID",
+ "ConnectorStatus",
+ "CurrentA",
+ "CurrentB",
+ "CurrentC",
+ "VoltageA",
+ "VoltageB",
+ "VoltageC",
+ "Soc",
+ "StartTime",
+ "EndTime",
+ "ChargeModel",
+ "TotalPower",
+ "ElecMoney",
+ "SeviceMoney",
+ "TotalMoney",
+ "SumPeriod",
+ "ChargeDetails"
+})
+public class CDEquipChargeStatusCDInfo {
+
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonProperty("StartChargeSeqStat")
+ private Integer startChargeSeqStat = 4;
+ @JsonProperty("ConnectorID")
+ private String connectorID;
+ @JsonProperty("ConnectorStatus")
+ private Integer connectorStatus = 1;
+ @JsonProperty("CurrentA")
+ private Double currentA = 15.0;
+ @JsonProperty("CurrentB")
+ private Double currentB = 15.0;
+ @JsonProperty("CurrentC")
+ private Double currentC = 15.0;
+ @JsonProperty("VoltageA")
+ private Double voltageA = 220.0;
+ @JsonProperty("VoltageB")
+ private Double voltageB = 220.0;
+ @JsonProperty("VoltageC")
+ private Double voltageC = 220.0;
+ @JsonProperty("Soc")
+ private Double soc = 0.0;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("EndTime")
+ private String endTime;
+ @JsonProperty("ChargeModel")
+ private Integer chargeModel = 0;
+ @JsonProperty("TotalPower")
+ private Double totalPower = 0.0;
+ @JsonProperty("ElecMoney")
+ private Double elecMoney = 0.0;
+ @JsonProperty("SeviceMoney")
+ private Double seviceMoney = 0.0;
+ @JsonProperty("TotalMoney")
+ private Double totalMoney = 0.0;
+ @JsonProperty("SumPeriod")
+ private Integer sumPeriod = 0;
+ @JsonProperty("ChargeDetails")
+ private com.xhpc.evcs.dto.ChargeDetails[] chargeDetails;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDEquipmentChargeStatusResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDEquipmentChargeStatusResponse.java
new file mode 100644
index 00000000..83e39167
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CDEquipmentChargeStatusResponse.java
@@ -0,0 +1,42 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "SuccStat"
+})
+public class CDEquipmentChargeStatusResponse {
+
+ @JsonProperty("SuccStat")
+ private Integer succStat;
+
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+
+ public Integer getSuccStat() {
+
+ return succStat;
+ }
+
+ public void setSuccStat(Integer succStat) {
+
+ this.succStat = succStat;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeDetails.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeDetails.java
new file mode 100644
index 00000000..44a8833a
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeDetails.java
@@ -0,0 +1,51 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.xhpc.evcs.domain.XhpcStatisticsTimeInterval;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ChargeDetails {
+
+ @JsonProperty("DetailStartTime")
+ private String detailStartTime;
+
+ @JsonProperty("DetailEndTime")
+ private String detailEndTime;
+
+ @JsonProperty("ElecPrice")
+ private Double elecPrice = 0.0;
+
+ @JsonProperty("SevicePrice")
+ private Double sevicePrice = 0.0;
+
+ @JsonProperty("DetailPower")
+ private Double detailPower = 0.0;
+
+ @JsonProperty("DetailElecMoney")
+ private Double detailElecMoney = 0.0;
+
+ @JsonProperty("DetailSeviceMoney")
+ private Double detailSeviceMoney = 0.0;
+
+ public ChargeDetails(XhpcStatisticsTimeInterval statistics) {
+
+ this.detailElecMoney = statistics.getPowerPrice().doubleValue();
+ this.detailSeviceMoney = statistics.getServicePrice().doubleValue();
+ this.elecPrice = statistics.getElecPriceEvcs().doubleValue();
+ this.sevicePrice = statistics.getServicePriceEvcs().doubleValue();
+ this.detailPower = statistics.getChargingDegree().doubleValue();
+ this.detailStartTime = statistics.getStartTimeEvcs();
+ this.detailEndTime = statistics.getEndTimeEvcs();
+ }
+
+ public ChargeDetails() {
+
+ super();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeInfoByBillerOperatorIdRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeInfoByBillerOperatorIdRequest.java
new file mode 100644
index 00000000..d1b2cafa
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeInfoByBillerOperatorIdRequest.java
@@ -0,0 +1,22 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class ChargeInfoByBillerOperatorIdRequest {
+
+ @JsonProperty("BillerOperatorId")
+ String billerOperatorId;
+
+ //当该属性 为 0 时表示查询所有订单信息 当该属性为 1 时表示根据billerOperatorId查询(四九订单)
+ //当该属性为 2 时表示查询四九订单信息 这时数据库字段billerOperatorId值为null
+ @JsonProperty("QueryType")
+ Integer queryType = 0;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeInfoRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeInfoRequest.java
new file mode 100644
index 00000000..248e29b3
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeInfoRequest.java
@@ -0,0 +1,17 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class ChargeInfoRequest {
+
+ @JsonProperty("StartChargeSeq")
+ String startChargeSeq;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrder.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrder.java
new file mode 100644
index 00000000..f2709216
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrder.java
@@ -0,0 +1,83 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "TotalPower",
+ "TotalMoney",
+ "StartChargeSeq"
+})
+public class ChargeOrder {
+
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonProperty("TotalPower")
+ private Integer totalPower;
+ @JsonProperty("TotalMoney")
+ private Integer totalMoney;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+ @JsonProperty("TotalPower")
+ public Integer getTotalPower() {
+
+ return totalPower;
+ }
+
+ @JsonProperty("TotalPower")
+ public void setTotalPower(Integer totalPower) {
+
+ this.totalPower = totalPower;
+ }
+
+ @JsonProperty("TotalMoney")
+ public Integer getTotalMoney() {
+
+ return totalMoney;
+ }
+
+ @JsonProperty("TotalMoney")
+ public void setTotalMoney(Integer totalMoney) {
+
+ this.totalMoney = totalMoney;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("startChargeSeq", startChargeSeq).append("totalPower", totalPower).append(
+ "totalMoney", totalMoney).append("startChargeSeq", startChargeSeq).append("additionalProperties",
+ additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrderInfoResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrderInfoResponse.java
new file mode 100644
index 00000000..e08acc21
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeOrderInfoResponse.java
@@ -0,0 +1,81 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "ConnectorID",
+ "ConfirmResult"
+})
+public class ChargeOrderInfoResponse {
+
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonProperty("ConnectorID")
+ private String connectorID;
+ @JsonProperty("ConfirmResult")
+ private Integer confirmResult;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+ @JsonProperty("ConnectorID")
+ public String getConnectorID() {
+
+ return connectorID;
+ }
+
+ @JsonProperty("ConnectorID")
+ public void setConnectorID(String connectorID) {
+
+ this.connectorID = connectorID;
+ }
+
+ @JsonProperty("ConfirmResult")
+ public Integer getConfirmResult() {
+
+ return confirmResult;
+ }
+
+ @JsonProperty("ConfirmResult")
+ public void setConfirmResult(Integer confirmResult) {
+
+ this.confirmResult = confirmResult;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("startChargeSeq", startChargeSeq).append("connectorID", connectorID).append(
+ "confirmResult", confirmResult).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeRequest.java
new file mode 100644
index 00000000..1d449d0f
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeRequest.java
@@ -0,0 +1,21 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class ChargeRequest {
+
+ @JsonProperty("StartChargeSeq")
+ String startChargeSeq;
+ @JsonProperty("ConnectorID")
+ String connectorId;
+ @JsonProperty("QRCode")
+ String QRCode;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResponse.java
new file mode 100644
index 00000000..aca284e7
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResponse.java
@@ -0,0 +1,122 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "SuccStat",
+ "FailReason",
+ "ConnectorID",
+ "StartChargeSeqStat",
+ "StartChargeSeq"
+})
+public class ChargeResponse {
+
+ @JsonProperty("SuccStat")
+ private Integer succStat;
+
+ //0 无;
+ //1 此设备不存在
+ //2 此设备离线:
+ //其它 自定义
+ @JsonProperty("FailReason")
+ private Integer failReason;
+ @JsonProperty("ConnectorID")
+ private String connectorID;
+
+ //1 启动中
+ //2 充电中
+ //3 停止中
+ //4 已结束
+ //其它值 未知
+ @JsonProperty("StartChargeSeqStat")
+ private Integer startChargeSeqStat;
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("SuccStat")
+ public Integer getSuccStat() {
+
+ return succStat;
+ }
+
+ @JsonProperty("SuccStat")
+ public void setSuccStat(Integer succStat) {
+
+ this.succStat = succStat;
+ }
+
+ @JsonProperty("FailReason")
+ public Integer getFailReason() {
+
+ return failReason;
+ }
+
+ @JsonProperty("FailReason")
+ public void setFailReason(Integer failReason) {
+
+ this.failReason = failReason;
+ }
+
+ @JsonProperty("ConnectorID")
+ public String getConnectorID() {
+
+ return connectorID;
+ }
+
+ @JsonProperty("ConnectorID")
+ public void setConnectorID(String connectorID) {
+
+ this.connectorID = connectorID;
+ }
+
+ @JsonProperty("StartChargeSeqStat")
+ public Integer getStartChargeSeqStat() {
+
+ return startChargeSeqStat;
+ }
+
+ @JsonProperty("StartChargeSeqStat")
+ public void setStartChargeSeqStat(Integer startChargeSeqStat) {
+
+ this.startChargeSeqStat = startChargeSeqStat;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("succStat", succStat).append("failReason", failReason).append("connectorID",
+ connectorID).append("startChargeSeqStat", startChargeSeqStat).append("startChargeSeq", startChargeSeq).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResultRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResultRequest.java
new file mode 100644
index 00000000..752b8483
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResultRequest.java
@@ -0,0 +1,25 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@lombok.Data
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+/**
+ * 推送停止充电请求数据dto类
+ */
+public class ChargeResultRequest {
+
+ @JsonProperty("StartChargeSeq")
+ String startChargeSeq;
+ @JsonProperty("StartChargeSeqStat")
+ String startChargeSeqStat;
+ @JsonProperty("ConnectorID")
+ String connectorID;
+ @JsonProperty("SuccStat")
+ Integer succStat;
+ @JsonProperty("FailReason")
+ Integer failReason;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResultResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResultResponse.java
new file mode 100644
index 00000000..56aea212
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeResultResponse.java
@@ -0,0 +1,21 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@lombok.Data
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+/**
+ * 推送停止充电结果返回数据dto类
+ */
+public class ChargeResultResponse {
+
+ @JsonProperty("StartChargeSeq")
+ String startChargeSeq;
+ @JsonProperty("SuccStat")
+ Integer succStat;
+ @JsonProperty("FailReason")
+ Integer failReason;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeStatusRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeStatusRequest.java
new file mode 100644
index 00000000..be143e11
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ChargeStatusRequest.java
@@ -0,0 +1,17 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class ChargeStatusRequest {
+
+ @JsonProperty("StartChargeSeq")
+ String startChargeSeq;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CheckChargeOrderRequestData.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CheckChargeOrderRequestData.java
new file mode 100644
index 00000000..8ddf0688
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CheckChargeOrderRequestData.java
@@ -0,0 +1,144 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "CheckOrderSeq",
+ "StartTime",
+ "EndTime",
+ "OrderCount",
+ "TotalOrderPower",
+ "TotalOrderMoney",
+ "ChargeOrders"
+})
+public class CheckChargeOrderRequestData {
+
+ @JsonProperty("CheckOrderSeq")
+ private String checkOrderSeq;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("EndTime")
+ private String endTime;
+ @JsonProperty("OrderCount")
+ private Integer orderCount;
+ @JsonProperty("TotalOrderPower")
+ private Integer totalOrderPower;
+ @JsonProperty("TotalOrderMoney")
+ private Integer totalOrderMoney;
+ @JsonProperty("ChargeOrders")
+ private List chargeOrders = null;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("CheckOrderSeq")
+ public String getCheckOrderSeq() {
+
+ return checkOrderSeq;
+ }
+
+ @JsonProperty("CheckOrderSeq")
+ public void setCheckOrderSeq(String checkOrderSeq) {
+
+ this.checkOrderSeq = checkOrderSeq;
+ }
+
+ @JsonProperty("StartTime")
+ public String getStartTime() {
+
+ return startTime;
+ }
+
+ @JsonProperty("StartTime")
+ public void setStartTime(String startTime) {
+
+ this.startTime = startTime;
+ }
+
+ @JsonProperty("EndTime")
+ public String getEndTime() {
+
+ return endTime;
+ }
+
+ @JsonProperty("EndTime")
+ public void setEndTime(String endTime) {
+
+ this.endTime = endTime;
+ }
+
+ @JsonProperty("OrderCount")
+ public Integer getOrderCount() {
+
+ return orderCount;
+ }
+
+ @JsonProperty("OrderCount")
+ public void setOrderCount(Integer orderCount) {
+
+ this.orderCount = orderCount;
+ }
+
+ @JsonProperty("TotalOrderPower")
+ public Integer getTotalOrderPower() {
+
+ return totalOrderPower;
+ }
+
+ @JsonProperty("TotalOrderPower")
+ public void setTotalOrderPower(Integer totalOrderPower) {
+
+ this.totalOrderPower = totalOrderPower;
+ }
+
+ @JsonProperty("TotalOrderMoney")
+ public Integer getTotalOrderMoney() {
+
+ return totalOrderMoney;
+ }
+
+ @JsonProperty("TotalOrderMoney")
+ public void setTotalOrderMoney(Integer totalOrderMoney) {
+
+ this.totalOrderMoney = totalOrderMoney;
+ }
+
+ @JsonProperty("ChargeOrders")
+ public List getChargeOrders() {
+
+ return chargeOrders;
+ }
+
+ @JsonProperty("ChargeOrders")
+ public void setChargeOrders(List chargeOrders) {
+
+ this.chargeOrders = chargeOrders;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("checkOrderSeq", checkOrderSeq).append("startTime", startTime).append(
+ "endTime", endTime).append("orderCount", orderCount).append("totalOrderPower", totalOrderPower).append(
+ "totalOrderMoney", totalOrderMoney).append("chargeOrders", chargeOrders).append("additionalProperties"
+ , additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CheckChargeOrderResponseData.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CheckChargeOrderResponseData.java
new file mode 100644
index 00000000..04a198fc
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CheckChargeOrderResponseData.java
@@ -0,0 +1,142 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "CheckOrderSeq",
+ "StartTime",
+ "EndTime",
+ "TotalDisputeOrder",
+ "TotalDisputePower",
+ "TotalDisputeMoney",
+ "DisputeOrders"
+})
+public class CheckChargeOrderResponseData {
+
+ @JsonProperty("CheckOrderSeq")
+ private String checkOrderSeq;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("EndTime")
+ private String endTime;
+ @JsonProperty("TotalDisputeOrder")
+ private Integer totalDisputeOrder;
+ @JsonProperty("TotalDisputePower")
+ private Double totalDisputePower;
+ @JsonProperty("TotalDisputeMoney")
+ private Double totalDisputeMoney;
+ @JsonProperty("DisputeOrders")
+ private DisputeOrder[] disputeOrders = null;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("CheckOrderSeq")
+ public String getCheckOrderSeq() {
+
+ return checkOrderSeq;
+ }
+
+ @JsonProperty("CheckOrderSeq")
+ public void setCheckOrderSeq(String checkOrderSeq) {
+
+ this.checkOrderSeq = checkOrderSeq;
+ }
+
+ @JsonProperty("StartTime")
+ public String getStartTime() {
+
+ return startTime;
+ }
+
+ @JsonProperty("StartTime")
+ public void setStartTime(String startTime) {
+
+ this.startTime = startTime;
+ }
+
+ @JsonProperty("EndTime")
+ public String getEndTime() {
+
+ return endTime;
+ }
+
+ @JsonProperty("EndTime")
+ public void setEndTime(String endTime) {
+
+ this.endTime = endTime;
+ }
+
+ @JsonProperty("TotalDisputeOrder")
+ public Integer getTotalDisputeOrder() {
+
+ return totalDisputeOrder;
+ }
+
+ @JsonProperty("TotalDisputeOrder")
+ public void setTotalDisputeOrder(Integer totalDisputeOrder) {
+
+ this.totalDisputeOrder = totalDisputeOrder;
+ }
+
+ @JsonProperty("TotalDisputePower")
+ public Double getTotalDisputePower() {
+
+ return totalDisputePower;
+ }
+
+ @JsonProperty("TotalDisputePower")
+ public void setTotalDisputePower(Double totalDisputePower) {
+
+ this.totalDisputePower = totalDisputePower;
+ }
+
+ @JsonProperty("TotalDisputeMoney")
+ public Double getTotalDisputeMoney() {
+
+ return totalDisputeMoney;
+ }
+
+ @JsonProperty("TotalDisputeMoney")
+ public void setTotalDisputeMoney(Double totalDisputeMoney) {
+
+ this.totalDisputeMoney = totalDisputeMoney;
+ }
+
+ @JsonProperty("DisputeOrders")
+ public DisputeOrder[] getDisputeOrders() {
+
+ return disputeOrders;
+ }
+
+ @JsonProperty("DisputeOrders")
+ public void setDisputeOrders(DisputeOrder[] disputeOrders) {
+
+ this.disputeOrders = disputeOrders;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("checkOrderSeq", checkOrderSeq).append("startTime", startTime).append(
+ "endTime", endTime).append("totalDisputeOrder", totalDisputeOrder).append("totalDisputePower",
+ totalDisputePower).append("totalDisputeMoney", totalDisputeMoney).append("disputeOrders", disputeOrders).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CommonRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CommonRequest.java
new file mode 100644
index 00000000..938743fb
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CommonRequest.java
@@ -0,0 +1,60 @@
+package com.xhpc.evcs.dto;
+
+
+import com.fasterxml.jackson.annotation.*;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.xhpc.evcs.utils.JSONUtil;
+import lombok.Data;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+@Data
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class CommonRequest {
+
+ @JsonProperty("OperatorID")
+ String operatorId;
+ @JsonProperty("Data")
+ String data;
+ @JsonProperty("TimeStamp")
+ String timeStamp;
+ @JsonProperty("Seq")
+ String seq;
+ @JsonProperty("Sig")
+ String sig;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+
+ public T anyDataType(Class clz, String key) throws IOException {
+
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode jsonNode = mapper.readTree(data);
+ jsonNode = jsonNode.path(key);
+ return JSONUtil.readParams(jsonNode.toString(), clz);
+ }
+
+ public T anyDataType(Class clz) throws IOException {
+
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode jsonNode = mapper.readTree(data);
+ return JSONUtil.readParams(jsonNode.toString(), clz);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CommonResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CommonResponse.java
new file mode 100644
index 00000000..6f2cc899
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/CommonResponse.java
@@ -0,0 +1,69 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonRawValue;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.xhpc.evcs.utils.JSONUtil;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.io.IOException;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class CommonResponse {
+
+ public static final int SUCCESS = 0;
+ @Id
+ @GeneratedValue
+ @JsonIgnore()
+ @JsonProperty("Id")
+ Long id;
+ @JsonProperty("Ret")
+ String ret;
+ @JsonProperty("Data")
+ @JsonRawValue
+ Object data;
+ @JsonProperty("Msg")
+ String msg = "";
+ @JsonProperty("Sig")
+ String sig;
+
+ public Object anyDataTypeList(Class clz, String key) throws IOException {
+
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode jsonNode = mapper.readTree((String) data);
+ jsonNode = jsonNode.path(key);
+ return JSONUtil.readParamsList(jsonNode.toString(), clz);
+ }
+
+ public Object anyDataTypeList(Class clz) throws IOException {
+
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode jsonNode = mapper.readTree((String) data);
+ return JSONUtil.readParamsList(jsonNode.toString(), clz);
+ }
+
+ public Object anyDataType(Class clz, String key) throws IOException {
+
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode jsonNode = mapper.readTree((String) data);
+ jsonNode = jsonNode.path(key);
+ return JSONUtil.readParams(jsonNode.toString(), clz);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("Data", this.data).append("Msg", this.msg).append("Ret", this.ret).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ConnectorInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ConnectorInfo.java
new file mode 100644
index 00000000..bb63277a
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ConnectorInfo.java
@@ -0,0 +1,63 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "NationalStandard",
+ "ConnectorID",
+ "ConnectorName",
+ "ConnectorType",
+ "VoltageUpperLimits",
+ "VoltageLowerLimits",
+ "Current",
+ "Power"
+})
+@Setter
+@Getter
+public class ConnectorInfo {
+
+ @JsonProperty("NationalStandard")
+ public Integer nationalStandard;
+ @JsonProperty("ConnectorID")
+ public String connectorID;
+ @JsonProperty("ConnectorName")
+ public String connectorName;
+ @JsonProperty("ConnectorType")
+ public Integer connectorType;
+ @JsonProperty("VoltageUpperLimits")
+ public Integer voltageUpperLimits;
+ @JsonProperty("VoltageLowerLimits")
+ public Integer voltageLowerLimits;
+ @JsonProperty("Current")
+ public Integer current;
+ @JsonProperty("Power")
+ public Double power;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("nationalStandard", nationalStandard).append("connectorID", connectorID).append("connectorName", connectorName).append("connectorType", connectorType).append("voltageUpperLimits", voltageUpperLimits).append("voltageLowerLimits", voltageLowerLimits).append("current", current).append("power", power).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ConnectorStatsInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ConnectorStatsInfo.java
new file mode 100644
index 00000000..566704a0
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/ConnectorStatsInfo.java
@@ -0,0 +1,58 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "ConnectorID",
+ "ConnectorElectricity"
+})
+public class ConnectorStatsInfo {
+
+ @JsonProperty("ConnectorID")
+ private String connectorID;
+ @JsonProperty("ConnectorElectricity")
+ private Double connectorElectricity;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("ConnectorID")
+ public String getConnectorID() {
+
+ return connectorID;
+ }
+
+ @JsonProperty("ConnectorID")
+ public void setConnectorID(String connectorID) {
+
+ this.connectorID = connectorID;
+ }
+
+ @JsonProperty("ConnectorElectricity")
+ public Double getConnectorElectricity() {
+
+ return connectorElectricity;
+ }
+
+ @JsonProperty("ConnectorElectricity")
+ public void setConnectorElectricity(Double connectorElectricity) {
+
+ this.connectorElectricity = connectorElectricity;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/DTOJsonHelper.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/DTOJsonHelper.java
new file mode 100644
index 00000000..075c4037
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/DTOJsonHelper.java
@@ -0,0 +1,104 @@
+package com.xhpc.evcs.dto;
+
+import com.xhpc.evcs.domain.AuthSecretToken;
+import com.xhpc.evcs.encryption.Aes128Cbc;
+import com.xhpc.evcs.http.ServerInternalException;
+import com.xhpc.evcs.utils.JSONUtil;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+@Slf4j
+public class DTOJsonHelper {
+
+ public static T parseResponseData(String responseBody, Class clz, String jsonListKey) {
+
+ if (responseBody != null) {
+ try {
+ CommonResponse commonResponse = JSONUtil.readParams(responseBody, CommonResponse.class);
+ return (T) commonResponse.anyDataType(clz, jsonListKey);
+ } catch (Exception e) {
+ String msg = e.getMessage();
+ log.error(msg);
+ throw new ServerInternalException(msg);
+ }
+ }
+ return null;
+ }
+
+ public static T parseResponseData(String responseBody, Class clz, AuthSecretToken authSecretToken) {
+
+ if (responseBody != null) {
+ try {
+ CommonResponse commonResponse = JSONUtil.readParams(responseBody, CommonResponse.class);
+ String data = (String) commonResponse.getData();
+ if (authSecretToken != null) {
+ data = Aes128Cbc.decryptString(data, authSecretToken.getDataSecret(), authSecretToken.getDataSecretIV());
+ }
+ if (!data.isEmpty()) {
+ return JSONUtil.readParams(data, clz);
+ } else {
+ log.error(commonResponse.getMsg());
+ return null;
+ }
+ } catch (Exception e) {
+ String msg = e.getMessage();
+ log.error(msg);
+ throw new ServerInternalException(msg);
+ }
+ }
+ return null;
+ }
+
+ public static T parseResponseData(String responseBody, Class clz) {
+
+ if (responseBody != null) {
+ try {
+ CommonResponse commonResponse = JSONUtil.readParams(responseBody, CommonResponse.class);
+ String data = (String) commonResponse.getData();
+ if (!data.isEmpty()) {
+ return JSONUtil.readParams(data, clz);
+ } else {
+ log.error(commonResponse.getMsg());
+ return null;
+ }
+ } catch (Exception e) {
+ String msg = e.getMessage();
+ log.error(msg);
+ throw new ServerInternalException(msg);
+ }
+ }
+ return null;
+ }
+
+ public static List parseResponseDataAsList(String responseBody, Class clz, String jsonListKey) {
+
+ if (responseBody != null) {
+ try {
+ CommonResponse commonResponse = JSONUtil.readParams(responseBody, CommonResponse.class);
+ return (List) commonResponse.anyDataTypeList(clz, jsonListKey);
+ } catch (Exception e) {
+ String msg = e.getMessage();
+ log.error(msg);
+ throw new ServerInternalException(msg);
+ }
+ }
+ return null;
+ }
+
+ public static List parseResponseDataAsList(String responseBody, Class clz) {
+
+ if (responseBody != null) {
+ try {
+ CommonResponse commonResponse = JSONUtil.readParams(responseBody, CommonResponse.class);
+ return (List) commonResponse.anyDataTypeList(clz);
+ } catch (Exception e) {
+ String msg = e.getMessage();
+ log.error(msg);
+ throw new ServerInternalException(msg);
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/DisputeOrder.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/DisputeOrder.java
new file mode 100644
index 00000000..ab409272
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/DisputeOrder.java
@@ -0,0 +1,97 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "TotalPower ",
+ "TotalMoney",
+ "DisputeReason"
+})
+public class DisputeOrder {
+
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonProperty("TotalPower ")
+ private Double totalPower;
+ @JsonProperty("TotalMoney")
+ private Double totalMoney;
+ @JsonProperty("DisputeReason")
+ private Integer disputeReason;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+ @JsonProperty("TotalPower")
+ public Double getTotalPower() {
+
+ return totalPower;
+ }
+
+ @JsonProperty("TotalPower")
+ public void setTotalPower(Double totalPower) {
+
+ this.totalPower = totalPower;
+ }
+
+ @JsonProperty("TotalMoney")
+ public Double getTotalMoney() {
+
+ return totalMoney;
+ }
+
+ @JsonProperty("TotalMoney")
+ public void setTotalMoney(Double totalMoney) {
+
+ this.totalMoney = totalMoney;
+ }
+
+ @JsonProperty("DisputeReason")
+ public Integer getDisputeReason() {
+
+ return disputeReason;
+ }
+
+ @JsonProperty("DisputeReason")
+ public void setDisputeReason(Integer disputeReason) {
+
+ this.disputeReason = disputeReason;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("startChargeSeq", startChargeSeq).append("totalPower", totalPower).append(
+ "totalMoney", totalMoney).append("disputeReason", disputeReason).append("additionalProperties",
+ additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipAuthRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipAuthRequest.java
new file mode 100644
index 00000000..c9756eb0
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipAuthRequest.java
@@ -0,0 +1,19 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class EquipAuthRequest {
+
+ @JsonProperty("EquipAuthSeq")
+ String equipAuthSeq;
+ @JsonProperty("ConnectorID")
+ String connectorId;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipBizRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipBizRequest.java
new file mode 100644
index 00000000..9a458817
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipBizRequest.java
@@ -0,0 +1,19 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class EquipBizRequest {
+
+ @JsonProperty("EquipBizSeq")
+ String equipBizSeq;
+ @JsonProperty("ConnectorID")
+ String connectorId;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipChargeStatusResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipChargeStatusResponse.java
new file mode 100644
index 00000000..e5dfe1fe
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipChargeStatusResponse.java
@@ -0,0 +1,261 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeqStat",
+ "ConnectorStatus",
+ "CurrentA",
+ "CurrentB",
+ "CurrentC",
+ "VoltageA",
+ "VoltageB",
+ "VoltageC",
+ "Soc",
+ "TotalPower",
+ "ElecMoney",
+ "SeviceMoney",
+ "TotalMoney",
+ "SumPeriod",
+ "StartTime"
+})
+public class EquipChargeStatusResponse {
+
+ @JsonProperty("StartChargeSeqStat")
+ private Integer startChargeSeqStat;
+ @JsonProperty("ConnectorStatus")
+ private Integer connectorStatus;
+ @JsonProperty("CurrentA")
+ private Double currentA;
+ @JsonProperty("CurrentB")
+ private Double currentB;
+ @JsonProperty("CurrentC")
+ private Double currentC;
+ @JsonProperty("VoltageA")
+ private Double voltageA;
+ @JsonProperty("VoltageB")
+ private Double voltageB;
+ @JsonProperty("VoltageC")
+ private Double voltageC;
+ @JsonProperty("Soc")
+ private Double soc;
+ @JsonProperty("TotalPower")
+ private Double totalPower;
+ @JsonProperty("ElecMoney")
+ private Double elecMoney;
+ @JsonProperty("SeviceMoney")
+ private Double seviceMoney;
+ @JsonProperty("TotalMoney")
+ private Double totalMoney;
+ @JsonProperty("SumPeriod")
+ private Integer sumPeriod;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StartTime")
+ public String getStartTime() {
+
+ return startTime;
+ }
+
+ @JsonProperty("StartTime")
+ public void setStartTime(String startTime) {
+
+ this.startTime = startTime;
+ }
+
+ @JsonProperty("StartChargeSeqStat")
+ public Integer getStartChargeSeqStat() {
+
+ return startChargeSeqStat;
+ }
+
+ @JsonProperty("StartChargeSeqStat")
+ public void setStartChargeSeqStat(Integer startChargeSeqStat) {
+
+ this.startChargeSeqStat = startChargeSeqStat;
+ }
+
+ @JsonProperty("ConnectorStatus")
+ public Integer getConnectorStatus() {
+
+ return connectorStatus;
+ }
+
+ @JsonProperty("ConnectorStatus")
+ public void setConnectorStatus(Integer connectorStatus) {
+
+ this.connectorStatus = connectorStatus;
+ }
+
+ @JsonProperty("CurrentA")
+ public Double getCurrentA() {
+
+ return currentA;
+ }
+
+ @JsonProperty("CurrentA")
+ public void setCurrentA(Double currentA) {
+
+ this.currentA = currentA;
+ }
+
+ @JsonProperty("CurrentB")
+ public Double getCurrentB() {
+
+ return currentB;
+ }
+
+ @JsonProperty("CurrentB")
+ public void setCurrentB(Double currentB) {
+
+ this.currentB = currentB;
+ }
+
+ @JsonProperty("CurrentC")
+ public Double getCurrentC() {
+
+ return currentC;
+ }
+
+ @JsonProperty("CurrentC")
+ public void setCurrentC(Double currentC) {
+
+ this.currentC = currentC;
+ }
+
+ @JsonProperty("VoltageA")
+ public Double getVoltageA() {
+
+ return voltageA;
+ }
+
+ @JsonProperty("VoltageA")
+ public void setVoltageA(Double voltageA) {
+
+ this.voltageA = voltageA;
+ }
+
+ @JsonProperty("VoltageB")
+ public Double getVoltageB() {
+
+ return voltageB;
+ }
+
+ @JsonProperty("VoltageB")
+ public void setVoltageB(Double voltageB) {
+
+ this.voltageB = voltageB;
+ }
+
+ @JsonProperty("VoltageC")
+ public Double getVoltageC() {
+
+ return voltageC;
+ }
+
+ @JsonProperty("VoltageC")
+ public void setVoltageC(Double voltageC) {
+
+ this.voltageC = voltageC;
+ }
+
+ @JsonProperty("Soc")
+ public Double getSoc() {
+
+ return soc;
+ }
+
+ @JsonProperty("Soc")
+ public void setSoc(Double soc) {
+
+ this.soc = soc;
+ }
+
+ @JsonProperty("TotalPower")
+ public Double getTotalPower() {
+
+ return totalPower;
+ }
+
+ @JsonProperty("TotalPower")
+ public void setTotalPower(Double totalPower) {
+
+ this.totalPower = totalPower;
+ }
+
+ @JsonProperty("ElecMoney")
+ public Double getElecMoney() {
+
+ return elecMoney;
+ }
+
+ @JsonProperty("ElecMoney")
+ public void setElecMoney(Double elecMoney) {
+
+ this.elecMoney = elecMoney;
+ }
+
+ @JsonProperty("SeviceMoney")
+ public Double getSeviceMoney() {
+
+ return seviceMoney;
+ }
+
+ @JsonProperty("SeviceMoney")
+ public void setSeviceMoney(Double seviceMoney) {
+
+ this.seviceMoney = seviceMoney;
+ }
+
+ @JsonProperty("TotalMoney")
+ public Double getTotalMoney() {
+
+ return totalMoney;
+ }
+
+ @JsonProperty("TotalMoney")
+ public void setTotalMoney(Double totalMoney) {
+
+ this.totalMoney = totalMoney;
+ }
+
+ @JsonProperty("SumPeriod")
+ public Integer getSumPeriod() {
+
+ return sumPeriod;
+ }
+
+ @JsonProperty("SumPeriod")
+ public void setSumPeriod(Integer sumPeriod) {
+
+ this.sumPeriod = sumPeriod;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("startChargeSeqStat", startChargeSeqStat).append("connectorStatus",
+ connectorStatus).append("currentA", currentA).append("currentB", currentB).append("currentC", currentC).append("voltageA", voltageA).append("voltageB", voltageB).append("voltageC", voltageC).append("soc", soc).append("totalPower", totalPower).append("elecMoney", elecMoney).append("seviceMoney", seviceMoney).append("totalMoney", totalMoney).append("sumPeriod", sumPeriod).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipmentInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipmentInfo.java
new file mode 100644
index 00000000..af7c88d0
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipmentInfo.java
@@ -0,0 +1,64 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "EquipmentID",
+ "ManufacturerID",
+ "EquipmentType",
+ "Power",
+ "ConnectorInfos",
+ "EquipmentLng",
+ "EquipmentLat"
+})
+@Getter
+@Setter
+public class EquipmentInfo {
+
+ @JsonProperty("EquipmentID")
+ public String equipmentID;
+ @JsonProperty("ManufacturerID")
+ public String manufacturerID;
+ @JsonProperty("EquipmentType")
+ public Integer equipmentType;
+ @JsonProperty("Power")
+ public Double power;
+ @JsonProperty("ConnectorInfos")
+ public List connectorInfos = null;
+ @JsonProperty("EquipmentLng")
+ public Double equipmentLng;
+ @JsonProperty("EquipmentLat")
+ public Double equipmentLat;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("equipmentID", equipmentID).append("manufacturerID", manufacturerID).append(
+ "equipmentType", equipmentType).append("power", power).append("connectorInfos", connectorInfos).append(
+ "equipmentLng", equipmentLng).append("equipmentLat", equipmentLat).append("additionalProperties",
+ additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipmentStatsInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipmentStatsInfo.java
new file mode 100644
index 00000000..0cb66d06
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EquipmentStatsInfo.java
@@ -0,0 +1,74 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "EquipmentID",
+ "EquipmentElectricity",
+ "ConnectorStatsInfos"
+})
+public class EquipmentStatsInfo {
+
+ @JsonProperty("EquipmentID")
+ private String equipmentID;
+ @JsonProperty("EquipmentElectricity")
+ private Double equipmentElectricity;
+ @JsonProperty("ConnectorStatsInfos")
+ private List connectorStatsInfos = null;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("EquipmentID")
+ public String getEquipmentID() {
+
+ return equipmentID;
+ }
+
+ @JsonProperty("EquipmentID")
+ public void setEquipmentID(String equipmentID) {
+
+ this.equipmentID = equipmentID;
+ }
+
+ @JsonProperty("EquipmentElectricity")
+ public Double getEquipmentElectricity() {
+
+ return equipmentElectricity;
+ }
+
+ @JsonProperty("EquipmentElectricity")
+ public void setEquipmentElectricity(Double equipmentElectricity) {
+
+ this.equipmentElectricity = equipmentElectricity;
+ }
+
+ @JsonProperty("ConnectorStatsInfos")
+ public List getConnectorStatsInfos() {
+
+ return connectorStatsInfos;
+ }
+
+ @JsonProperty("ConnectorStatsInfos")
+ public void setConnectorStatsInfos(List connectorStatsInfos) {
+
+ this.connectorStatsInfos = connectorStatsInfos;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EvShareQueryChargeInfosPagingRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EvShareQueryChargeInfosPagingRequest.java
new file mode 100644
index 00000000..14a4a0ae
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EvShareQueryChargeInfosPagingRequest.java
@@ -0,0 +1,32 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class EvShareQueryChargeInfosPagingRequest {
+
+ @JsonProperty("BillerOperatorId")
+ String billerOperatorId;
+
+ //当该属性 为 0 时表示查询所有订单信息 当该属性为 1 时表示根据billerOperatorId查询(四九订单)
+ //当该属性为 2 时表示查询四九订单信息 这时数据库字段billerOperatorId值为null
+ @JsonProperty("QueryType")
+ Integer queryType = 0;
+
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("EndTime")
+ private String endTime;
+
+ @JsonProperty("Page")
+ private Integer page;
+ @JsonProperty("PageSize")
+ private Integer pageSize;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EvShareQueryChargeInfosRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EvShareQueryChargeInfosRequest.java
new file mode 100644
index 00000000..8dc25010
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/EvShareQueryChargeInfosRequest.java
@@ -0,0 +1,27 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class EvShareQueryChargeInfosRequest {
+
+ @JsonProperty("BillerOperatorId")
+ String billerOperatorId;
+
+ //当该属性 为 0 时表示查询所有订单信息 当该属性为 1 时表示根据billerOperatorId查询(四九订单)
+ //当该属性为 2 时表示查询四九订单信息 这时数据库字段billerOperatorId值为null
+ @JsonProperty("QueryType")
+ Integer queryType = 0;
+
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("EndTime")
+ private String endTime;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationEquipChargeStatusData.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationEquipChargeStatusData.java
new file mode 100644
index 00000000..fba730e3
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationEquipChargeStatusData.java
@@ -0,0 +1,20 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class NotificationEquipChargeStatusData {
+
+ @JsonProperty("StartChargeSeq")
+ String startChargeSeq;
+
+ @JsonProperty("SuccStat")
+ Integer succStat;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStartChargeResultRequestData.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStartChargeResultRequestData.java
new file mode 100644
index 00000000..81d5499e
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStartChargeResultRequestData.java
@@ -0,0 +1,97 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "StartChargeSeqStat",
+ "ConnectorID",
+ "StartTime",
+ "IdentCode"
+})
+public class NotificationStartChargeResultRequestData {
+
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonProperty("StartChargeSeqStat")
+ private Integer startChargeSeqStat;
+ @JsonProperty("ConnectorID")
+ private String connectorId;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("IdentCode")
+ private String identCode;
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+ @JsonProperty("StartTime")
+ public String getStartTime() {
+
+ return startTime;
+ }
+
+ @JsonProperty("StartTime")
+ public void setStartTime(String startTime) {
+
+ this.startTime = startTime;
+ }
+
+ @JsonProperty("EndTime")
+ public Integer getStartChargeSeqStat() {
+
+ return startChargeSeqStat;
+ }
+
+ @JsonProperty("EndTime")
+ public void setStartChargeSeqStat(Integer startChargeSeqStat) {
+
+ this.startChargeSeqStat = startChargeSeqStat;
+ }
+
+ @JsonProperty("ConnectorID")
+ public String getConnectorId() {
+
+ return connectorId;
+ }
+
+ @JsonProperty("ConnectorID")
+ public void setConnectorId(String connectorId) {
+
+ this.connectorId = connectorId;
+ }
+
+ @JsonProperty("IdentCode")
+ public String getIdentCode() {
+
+ return identCode;
+ }
+
+ @JsonProperty("IdentCode")
+ public void setIdentCode(String identCode) {
+
+ this.identCode = identCode;
+ }
+
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("startChargeSeq", startChargeSeq).append("startTime", startTime).append(
+ "startChargeSeqStat", startChargeSeqStat).append("connectorId", connectorId).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStartStopChargeResultResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStartStopChargeResultResponse.java
new file mode 100644
index 00000000..07ab3a2b
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStartStopChargeResultResponse.java
@@ -0,0 +1,81 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "SuccStat",
+ "FailReason",
+ "StartChargeSeq"
+})
+public class NotificationStartStopChargeResultResponse {
+
+ @JsonProperty("SuccStat")
+ private Integer succStat;
+ @JsonProperty("FailReason")
+ private Integer failReason;
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("SuccStat")
+ public Integer getSuccStat() {
+
+ return succStat;
+ }
+
+ @JsonProperty("SuccStat")
+ public void setSuccStat(Integer succStat) {
+
+ this.succStat = succStat;
+ }
+
+ @JsonProperty("FailReason")
+ public Integer getFailReason() {
+
+ return failReason;
+ }
+
+ @JsonProperty("FailReason")
+ public void setFailReason(Integer failReason) {
+
+ this.failReason = failReason;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("succStat", succStat).append("failReason", failReason).append("startChargeSeq"
+ , startChargeSeq).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStopChargeResultRequestData.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStopChargeResultRequestData.java
new file mode 100644
index 00000000..79f067ec
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/NotificationStopChargeResultRequestData.java
@@ -0,0 +1,113 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartChargeSeq",
+ "StartChargeSeqStat",
+ "ConnectorID",
+ "SuccStat",
+ "FailReason"
+})
+public class NotificationStopChargeResultRequestData {
+
+ @JsonProperty("StartChargeSeq")
+ private String startChargeSeq;
+ @JsonProperty("StartChargeSeqStat")
+ private Integer startChargeSeqStat;
+ @JsonProperty("ConnectorID")
+ private String connectorId;
+ @JsonProperty("SuccStat")
+ private Integer succStat;
+ @JsonProperty("FailReason")
+ private Integer failReason;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StartChargeSeq")
+ public String getStartChargeSeq() {
+
+ return startChargeSeq;
+ }
+
+ @JsonProperty("StartChargeSeq")
+ public void setStartChargeSeq(String startChargeSeq) {
+
+ this.startChargeSeq = startChargeSeq;
+ }
+
+ @JsonProperty("SuccStat")
+ public Integer getSuccStat() {
+
+ return succStat;
+ }
+
+ @JsonProperty("SuccStat")
+ public void setSuccStat(Integer succStat) {
+
+ this.succStat = succStat;
+ }
+
+ @JsonProperty("StartChargeSeqStat")
+ public Integer getStartChargeSeqStat() {
+
+ return startChargeSeqStat;
+ }
+
+ @JsonProperty("StartChargeSeqStat")
+ public void setStartChargeSeqStat(Integer startChargeSeqStat) {
+
+ this.startChargeSeqStat = startChargeSeqStat;
+ }
+
+ @JsonProperty("ConnectorID")
+ public String getConnectorId() {
+
+ return connectorId;
+ }
+
+ @JsonProperty("ConnectorID")
+ public void setConnectorId(String connectorId) {
+
+ this.connectorId = connectorId;
+ }
+
+ @JsonProperty("FailReason")
+ public Integer getFailReason() {
+
+ return failReason;
+ }
+
+ @JsonProperty("FailReason")
+ public void setFailReason(Integer failReason) {
+
+ this.failReason = failReason;
+ }
+
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("startChargeSeq", startChargeSeq).append("succStat", succStat).append(
+ "startChargeSeqStat", startChargeSeqStat).append("connectorId", connectorId).append("additionalProperties",
+ additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/OrderInfoPageResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/OrderInfoPageResponse.java
new file mode 100644
index 00000000..3835eab8
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/OrderInfoPageResponse.java
@@ -0,0 +1,26 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class OrderInfoPageResponse {
+
+ @JsonProperty("PageCount")
+ Integer PageCount;
+ @JsonProperty("ItemSize")
+ Integer ItemSize;
+ @JsonProperty(value = "PageNo", defaultValue = "1") //CAUTION: PageNo must not wrote as PageNon or anything else
+ Integer PageNo = 1;
+ @JsonProperty(value = "PageSize", defaultValue = "10")
+ Integer PageSize = 10;
+
+ @JsonProperty("Data")
+ String data;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/OrderSumInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/OrderSumInfo.java
new file mode 100644
index 00000000..ed6d9c2b
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/OrderSumInfo.java
@@ -0,0 +1,40 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class OrderSumInfo {
+
+ @JsonProperty("AllElectric")
+ BigDecimal allElectric;
+
+ @JsonProperty("AllElectricMoney")
+ BigDecimal allElectricMoney;
+
+ @JsonProperty("AllServiceMoney")
+ BigDecimal allServiceMoney;
+
+ @JsonProperty("AllMoney")
+ BigDecimal allMoney;
+
+ public OrderSumInfo(BigDecimal allElectric, BigDecimal allElectricMoney, BigDecimal allServiceMoney, BigDecimal allMoney) {
+
+ this.allElectric = allElectric;
+ this.allElectricMoney = allElectricMoney;
+ this.allServiceMoney = allServiceMoney;
+ this.allMoney = allMoney;
+ }
+
+ public OrderSumInfo() {
+
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageRequest.java
new file mode 100644
index 00000000..6b9f3eec
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageRequest.java
@@ -0,0 +1,21 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class PageRequest {
+
+ @JsonProperty("LastQueryTime")
+ String lastQueryTime;
+ @JsonProperty(value = "PageNo", defaultValue = "1") //CAUTION: PageNo must not wrote as PageNon or anything else
+ Integer pageNo = 1;
+ @JsonProperty(value = "PageSize", defaultValue = "10")
+ Integer pageSize = 10;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageResponse.java
new file mode 100644
index 00000000..10677b40
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageResponse.java
@@ -0,0 +1,23 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class PageResponse {
+
+ @JsonProperty("PageCount")
+ Integer PageCount;
+ @JsonProperty("ItemSize")
+ Integer ItemSize;
+ @JsonProperty(value = "PageNo", defaultValue = "1") //CAUTION: PageNo must not wrote as PageNon or anything else
+ Integer PageNo = 1;
+ @JsonProperty(value = "PageSize", defaultValue = "10")
+ Integer PageSize = 10;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageStationsInfoResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageStationsInfoResponse.java
new file mode 100644
index 00000000..a01a042c
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PageStationsInfoResponse.java
@@ -0,0 +1,27 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.xhpc.evcs.domain.StationInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class PageStationsInfoResponse {
+
+ @JsonProperty("PageCount")
+ Integer PageCount;
+ @JsonProperty("ItemSize")
+ Integer ItemSize;
+ @JsonProperty(value = "PageNo", defaultValue = "1") //CAUTION: PageNo must not wrote as PageNon or anything else
+ Integer PageNo = 1;
+ @JsonProperty("StationInfos")
+ List stationInfos = new ArrayList<>();
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PoleStatusInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PoleStatusInfo.java
new file mode 100644
index 00000000..4abb8351
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/PoleStatusInfo.java
@@ -0,0 +1,21 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class PoleStatusInfo {
+
+ @JsonProperty("PoleNo")
+ private String poleNo;
+ //0正常 1故障 2占用
+ @JsonProperty("Status")
+ private Integer status;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/QueryOrderInfoRequestData.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/QueryOrderInfoRequestData.java
new file mode 100644
index 00000000..69a21eae
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/QueryOrderInfoRequestData.java
@@ -0,0 +1,66 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StartTime",
+ "EndTime"
+})
+public class QueryOrderInfoRequestData {
+
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("EndTime")
+ private String endTime;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StartTime")
+ public String getStartTime() {
+
+ return startTime;
+ }
+
+ @JsonProperty("StartTime")
+ public void setStartTime(String startTime) {
+
+ this.startTime = startTime;
+ }
+
+ @JsonProperty("EndTime")
+ public String getEndTime() {
+
+ return endTime;
+ }
+
+ @JsonProperty("EndTime")
+ public void setEndTime(String endTime) {
+
+ this.endTime = endTime;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("startTime", startTime).append("endTime", endTime).append(
+ "additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/QueryTokenResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/QueryTokenResponse.java
new file mode 100644
index 00000000..db6d8a56
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/QueryTokenResponse.java
@@ -0,0 +1,25 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class QueryTokenResponse {
+
+ @JsonProperty("OperatorID")
+ String operatorId;
+ @JsonProperty("SuccStat")
+ Integer succStat;
+ @JsonProperty("AccessToken")
+ String accessToken;
+ @JsonProperty("TokenAvailableTime")
+ Integer tokenAvailableTime;
+ @JsonProperty("FailReason")
+ Integer failReason;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsInfo.java
new file mode 100644
index 00000000..3e83fae6
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsInfo.java
@@ -0,0 +1,104 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StationID",
+ "StartTime",
+ "EndTime",
+ "StationElectricity",
+ "EquipmentStatsInfos"
+})
+public class StationStatsInfo {
+
+ @JsonProperty("StationID")
+ private String stationID;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("EndTime")
+ private String endTime;
+ @JsonProperty("StationElectricity")
+ private Double stationElectricity;
+ @JsonProperty("EquipmentStatsInfos")
+ private List equipmentStatsInfos = null;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StationID")
+ public String getStationID() {
+
+ return stationID;
+ }
+
+ @JsonProperty("StationID")
+ public void setStationID(String stationID) {
+
+ this.stationID = stationID;
+ }
+
+ @JsonProperty("StartTime")
+ public String getStartTime() {
+
+ return startTime;
+ }
+
+ @JsonProperty("StartTime")
+ public void setStartTime(String startTime) {
+
+ this.startTime = startTime;
+ }
+
+ @JsonProperty("EndTime")
+ public String getEndTime() {
+
+ return endTime;
+ }
+
+ @JsonProperty("EndTime")
+ public void setEndTime(String endTime) {
+
+ this.endTime = endTime;
+ }
+
+ @JsonProperty("StationElectricity")
+ public Double getStationElectricity() {
+
+ return stationElectricity;
+ }
+
+ @JsonProperty("StationElectricity")
+ public void setStationElectricity(Double stationElectricity) {
+
+ this.stationElectricity = stationElectricity;
+ }
+
+ @JsonProperty("EquipmentStatsInfos")
+ public List getEquipmentStatsInfos() {
+
+ return equipmentStatsInfos;
+ }
+
+ @JsonProperty("EquipmentStatsInfos")
+ public void setEquipmentStatsInfos(List equipmentStatsInfos) {
+
+ this.equipmentStatsInfos = equipmentStatsInfos;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsRequest.java
new file mode 100644
index 00000000..8abb4246
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsRequest.java
@@ -0,0 +1,37 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StationID",
+ "StartTime",
+ "EndTime"
+})
+public class StationStatsRequest {
+
+ @JsonProperty("StationID")
+ private Integer stationID;
+ @JsonProperty("StartTime")
+ private String startTime;
+ @JsonProperty("EndTime")
+ private String endTime;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsWrapper.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsWrapper.java
new file mode 100644
index 00000000..8ac8e44c
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatsWrapper.java
@@ -0,0 +1,43 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StationStatsInfo"
+})
+public class StationStatsWrapper {
+
+ @JsonProperty("StationStats")
+ private StationStatsInfo stationStatsInfo;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StationStats")
+ public StationStatsInfo getStationStatsInfo() {
+
+ return stationStatsInfo;
+ }
+
+ @JsonProperty("StationStats")
+ public void setStationStatsInfo(StationStatsInfo stationStatsInfo) {
+
+ this.stationStatsInfo = stationStatsInfo;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusInfo.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusInfo.java
new file mode 100644
index 00000000..622907e9
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusInfo.java
@@ -0,0 +1,67 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import com.xhpc.evcs.domain.ConnectorStatusInfo;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "StationID",
+ "ConnectorStatusInfos"
+})
+public class StationStatusInfo {
+
+ @JsonProperty("StationID")
+ private String stationID;
+ @JsonProperty("ConnectorStatusInfos")
+ private List connectorStatusInfos = null;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("StationID")
+ public String getStationID() {
+
+ return stationID;
+ }
+
+ @JsonProperty("StationID")
+ public void setStationID(String stationID) {
+
+ this.stationID = stationID;
+ }
+
+ @JsonProperty("ConnectorStatusInfos")
+ public List getConnectorStatusInfos() {
+
+ return connectorStatusInfos;
+ }
+
+ @JsonProperty("ConnectorStatusInfos")
+ public void setConnectorStatusInfos(List connectorStatusInfos) {
+
+ this.connectorStatusInfos = connectorStatusInfos;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("stationID", stationID).append("connectorStatusInfos", connectorStatusInfos).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusInfoWrapper.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusInfoWrapper.java
new file mode 100644
index 00000000..fb8e3800
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusInfoWrapper.java
@@ -0,0 +1,67 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "Total",
+ "StationStatusInfos"
+})
+public class StationStatusInfoWrapper {
+
+ @JsonProperty("Total")
+ private Integer total;
+ @JsonProperty("StationStatusInfos")
+ private List stationStatusInfos = null;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("Total")
+ public Integer getTotal() {
+
+ return total;
+ }
+
+ @JsonProperty("Total")
+ public void setTotal(Integer total) {
+
+ this.total = total;
+ }
+
+ @JsonProperty("StationStatusInfos")
+ public List getStationStatusInfos() {
+
+ return stationStatusInfos;
+ }
+
+ @JsonProperty("StationStatusInfos")
+ public void setStationStatusInfos(List stationStatusInfos) {
+
+ this.stationStatusInfos = stationStatusInfos;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("total", total).append("stationStatusInfos", stationStatusInfos).append(
+ "additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusRequest.java
new file mode 100644
index 00000000..fbc37f72
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationStatusRequest.java
@@ -0,0 +1,17 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+public class StationStatusRequest {
+
+ @JsonProperty("StationIDs")
+ String[] stationIds;
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/Status.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/Status.java
new file mode 100644
index 00000000..57509c8e
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/Status.java
@@ -0,0 +1,59 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "Status"
+})
+public class Status {
+
+ @JsonProperty("Status")
+ private Integer status;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ public Status() {
+
+ }
+
+ public Status(Integer status) {
+
+ this.status = status;
+ }
+
+ @JsonProperty("Status")
+ public Integer getStatus() {
+
+ return status;
+ }
+
+ @JsonProperty("Status")
+ public void setStatus(Integer status) {
+
+ this.status = status;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("status", status).append("additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/TokenRequest.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/TokenRequest.java
new file mode 100644
index 00000000..07b5ae8c
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/TokenRequest.java
@@ -0,0 +1,66 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "OperatorID",
+ "OperatorSecret"
+})
+public class TokenRequest {
+
+ @JsonProperty("OperatorID")
+ private String operatorID;
+ @JsonProperty("OperatorSecret")
+ private String operatorSecret;
+ @JsonIgnore
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("OperatorID")
+ public String getOperatorId() {
+
+ return operatorID;
+ }
+
+ @JsonProperty("OperatorID")
+ public void setOperatorId(String operatorID) {
+
+ this.operatorID = operatorID;
+ }
+
+ @JsonProperty("OperatorSecret")
+ public String getOperatorSecret() {
+
+ return operatorSecret;
+ }
+
+ @JsonProperty("OperatorSecret")
+ public void setOperatorSecret(String operatorSecret) {
+
+ this.operatorSecret = operatorSecret;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperty(String name, Object value) {
+
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("operatorID", operatorID).append("operatorSecret", operatorSecret).append(
+ "additionalProperties", additionalProperties).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/TokenResponse.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/TokenResponse.java
new file mode 100644
index 00000000..2c07439b
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/TokenResponse.java
@@ -0,0 +1,41 @@
+package com.xhpc.evcs.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+@Getter
+@Setter
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
+ setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
+@JsonPropertyOrder({
+ "FailReason",
+ "OperatorID",
+ "SuccStat",
+ "AccessToken",
+ "TokenAvailableTime"
+})
+public class TokenResponse {
+
+ @JsonProperty("FailReason")
+ Integer failReason;
+ @JsonProperty("OperatorID")
+ String operatorId;
+ @JsonProperty("SuccStat")
+ Integer succStat;
+ @JsonProperty("AccessToken")
+ String accessToken;
+ @JsonProperty("TokenAvailableTime")
+ Integer tokenAvailableTime;
+
+ @Override
+ public String toString() {
+
+ return new ToStringBuilder(this).append("failReason", failReason).append("operatorID", operatorId).append("succStat",
+ succStat).append("accessToken", accessToken).append("tokenAvailableTime", tokenAvailableTime).toString();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/Aes128Cbc.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/Aes128Cbc.java
new file mode 100644
index 00000000..5212d00b
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/Aes128Cbc.java
@@ -0,0 +1,89 @@
+package com.xhpc.evcs.encryption;
+
+import javax.crypto.*;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+import java.util.Base64;
+
+public class Aes128Cbc {
+
+ private static int AES_128 = 128;
+
+ public static String encrypt(String msg, String dataSecret, String dataSecretIV) throws NoSuchAlgorithmException,
+ IllegalBlockSizeException, InvalidKeyException, BadPaddingException,
+ InvalidAlgorithmParameterException, NoSuchPaddingException {
+
+ KeyGenerator keyGenerator = KeyGenerator.getInstance(CryptoMngr.ALGORITHM);
+ keyGenerator.init(AES_128);
+ byte[] ds = (dataSecret).getBytes(StandardCharsets.UTF_8);
+ ds = Arrays.copyOf(ds, 16);
+ SecretKey key = new SecretKeySpec(ds, "AES");
+ byte[] dsiv = (dataSecretIV).getBytes(StandardCharsets.UTF_8);
+ dsiv = Arrays.copyOf(dsiv, 16);
+ SecretKey IV = new SecretKeySpec(dsiv, "AES");
+ byte[] cipherText = CryptoMngr.encrypt(key.getEncoded(), IV.getEncoded(), msg.getBytes());
+ return Base64.getEncoder().encodeToString(cipherText);
+ }
+
+ public static byte[] decryptBytes(String encryptedMsg, String dataSecret, String dataSecretIV) throws NoSuchAlgorithmException, IllegalBlockSizeException, InvalidKeyException, BadPaddingException, InvalidAlgorithmParameterException, NoSuchPaddingException {
+
+ if (encryptedMsg.startsWith("{") || encryptedMsg.startsWith("[")) {
+ throw new IllegalArgumentException("不是合法的加密字符串");
+ }
+ KeyGenerator keyGenerator = KeyGenerator.getInstance(CryptoMngr.ALGORITHM);
+ keyGenerator.init(AES_128);
+ byte[] ds = (dataSecret).getBytes(StandardCharsets.UTF_8);
+ ds = Arrays.copyOf(ds, 16);
+ SecretKey key = new SecretKeySpec(ds, "AES");
+ byte[] dsiv = (dataSecretIV).getBytes(StandardCharsets.UTF_8);
+ dsiv = Arrays.copyOf(dsiv, 16);
+ SecretKey IV = new SecretKeySpec(dsiv, "AES");
+ byte[] cipherText = Base64.getDecoder().decode(encryptedMsg.getBytes());
+ byte[] decryptedBytes = CryptoMngr.decrypt(key.getEncoded(), IV.getEncoded(), cipherText);
+ return decryptedBytes;
+ }
+
+ public static String decryptString(String encryptedMsg, String dataSecret, String dataSecretIV) throws NoSuchAlgorithmException,
+ IllegalBlockSizeException, InvalidKeyException, BadPaddingException,
+ InvalidAlgorithmParameterException, NoSuchPaddingException {
+
+ if (encryptedMsg == null || encryptedMsg.length() == 0) return "";
+ byte[] decryptedBytes = decryptBytes(encryptedMsg, dataSecret, dataSecretIV);
+ return new String(decryptedBytes);
+ }
+
+ public static void main(String[] args) throws BadPaddingException, InvalidAlgorithmParameterException,
+ NoSuchAlgorithmException, IllegalBlockSizeException, UnsupportedEncodingException, NoSuchPaddingException,
+ InvalidKeyException {
+
+ System.out.println(encrypt("{\"PageNo\": \"1\", \"PageSize\": 49}", "8LpncubmWiPCzY3V", "av6A8QdnRaVRMXu6"));
+ System.out.println(decryptString("ywyEEd5aKPJOTraAY/gXB/bA+UNprpYnSaOhfF5lKc/Zcv" +
+ "/BRasig4KSPJD7UmrH2vjLVIWXPw42EbLgV9bXr5SzUSVAT28ief2nk6hpWnT8Dcvhn3W4bj7UdEY" +
+ "/AdONVXWuq2MZQocGYEVNvWcSD0OVCJ04fNTwPR4hs1xI/QDg9/hqYdQbvWt3go/y" +
+ "+M9wxd4vq8m44RPQ5zjW3vxFxc4oMg2t0oTdk6W5AzJzAGWhU/4xIv+8gLeh6/blpW/VBUK82+4tcdG2JSJv/DcaDM0" +
+ "/7C1LsCYY17o6gGd1mFVDSZhYcaOmOska+h+eyTKL4i8oHpT6uf+hFDRVBUC1OTjDeiL9NyIxcwd" +
+ "/MMfAaF04wHOHrYMavL5wcBUZWwtU1QSLWXkUy7muJNYvVg4dmw92nNKaJtxgFycXVGkSP3Nc6y" +
+ "/sAzYkTz9Wfn4RLVOkpyYJMOo1Tz93/OFEKQFPnjzSRQAVYiuPzuySKjXdcDY8AfqmDqYuVZ2FhH0iVU6FiSsK4" +
+ "+al0hnLOcnftqYtYSd7ir2coP6XtNejOByqFPrShMp4rPQLvDpFibV87clFMwWOGBiB0eFRvRbOSntDYN7PBpFHHJXRkNi3VCMiJ" +
+ "+Y=",
+ "8LpncubmWiPCzY3V"
+ , "av6A8QdnRaVRMXu6"));
+ System.out.println(decryptString("ywyEEd5aKPJOTraAY" +
+ "/gXB5Sz0CiZyWlVKyOoQDHvSZBdtC1aYGzpgAmLAQ7P2f0ArSSVx6xoF8sz2JyXKD00XiHuA4oc1hJnT1mRRetryz8bxmj6m" +
+ "/ClMebuBmtotiKxJqIZr5tayh/hizhcX2L8UUUDmKfp4Q1de1P/swB2VPC8suvrw2Y04r2I2MtF+7mHj1DdDn" +
+ "/DIStLJMLV9tx7xTu2K5fWS1E2ZUv33dVKRcA9qQGFmrI1IFLZyhIFcomv78nzXDg9U6/HRK3/JvtWxm9b6eDO" +
+ "/a5rUwpe1gKPFsVK/MvAXAxU8dmyIzxzC3fLQB1KFcG8XUWrejpakVwh5tKxKhmofWFXlja7FSC" +
+ "/vVdHjL5pOiBAOoxtmBDVPVrua2+/Nz5q9neXdA3olEamKYVCtFSWgSptFjhQb8pGAzSTxwuA+e4fJ5RqeAc+Ka0aHycpvtG" +
+ "/oZZN8+9xhWcnGWj0R8/xsXzFdXOnJ6/DI9SgKOUAzb/AGfHPeJJMibEru+nKrjuo3cNfyue6n6V2hu0Juxr" +
+ "/iLg2zRLVB54wL4Lvy3pi+9ULHzI7SBgKyF6bxxoeuS4YfmaVK+fhseqWNtxk" +
+ "/d8XJu93CqDUoxH5c1IEw16gQ1h9DMhVug2Cg8JbSkIGeFHhCvicOxIuUS2Uc2YgoUTbY0podXkJToBKByGJq7BjNdk49uhFlnHNMO4UZ5LzinsJZxxxdWtUIpqUvTf8a1x210u/IT3BYHQj+K+NeDfbzb2ga6Qdj3+CLL21",
+ "8LpncubmWiPCzY3V"
+ , "av6A8QdnRaVRMXu6"));
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/CryptoMngr.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/CryptoMngr.java
new file mode 100644
index 00000000..08d9eef5
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/CryptoMngr.java
@@ -0,0 +1,41 @@
+package com.xhpc.evcs.encryption;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+public class CryptoMngr {
+
+ public static String ALGORITHM = "AES";
+ private static String AES_CBS_PADDING = "AES/CBC/PKCS5Padding";
+
+ public static byte[] encrypt(final byte[] key, final byte[] IV, final byte[] message) throws NoSuchPaddingException,
+ InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException,
+ InvalidAlgorithmParameterException {
+
+ return CryptoMngr.encryptDecrypt(Cipher.ENCRYPT_MODE, key, IV, message);
+ }
+
+ public static byte[] decrypt(final byte[] key, final byte[] IV, final byte[] message) throws NoSuchPaddingException,
+ InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException,
+ InvalidAlgorithmParameterException {
+
+ return CryptoMngr.encryptDecrypt(Cipher.DECRYPT_MODE, key, IV, message);
+ }
+
+ private static byte[] encryptDecrypt(final int mode, final byte[] key, final byte[] IV, final byte[] message) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
+
+ final Cipher cipher = Cipher.getInstance(AES_CBS_PADDING);
+ final SecretKeySpec keySpec = new SecretKeySpec(key, ALGORITHM);
+ final IvParameterSpec ivSpec = new IvParameterSpec(IV);
+ cipher.init(mode, keySpec, ivSpec);
+ return cipher.doFinal(message);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/EvcsConst.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/EvcsConst.java
new file mode 100644
index 00000000..aef7ddc0
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/EvcsConst.java
@@ -0,0 +1,8 @@
+package com.xhpc.evcs.encryption;
+
+public class EvcsConst {
+
+ public static final String RET_SUCC = "0";//请求成功
+ public static final String RET_FAIl = "1";//请求成功
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/HMAC.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/HMAC.java
new file mode 100644
index 00000000..808920ae
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/HMAC.java
@@ -0,0 +1,57 @@
+package com.xhpc.evcs.encryption;
+
+import lombok.extern.slf4j.Slf4j;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+@Slf4j
+public class HMAC {
+
+ public static void main(String[] args) throws Exception {
+
+ System.out.println(hmacDigest("7pogCkwDx5hTmTIimBzlVfl9Qg7RJql+/wqhg2ZvjH2h+ZIGE5wePtN" +
+ "+8TIWseHCPwFZIuw02rY3cV8Q9vgbZMCIdH0CD8SOEdFG7N/2+nfF5liwqUwfM/qKICuiKUQJ9coaOt0lAP85jnQqBITCUDywEau1pO" +
+ "/viFHACpx2OnzyVolyrHc8KjrHSe3VdrHh6lsvDaCamzb79dN96WHTSxuXSuFmDNbJqUvPE0pUicRyc7YYj77OjAaxqeqEO9Sq2Nkf5cG6vfl+UZyKXM5r0YdLrDq8VBLfZn88tJf7D7HQtbtff3XDSrjrK5FSGAp56mlYkQ60+Ia2X0CvJeKa9XyJ14GM/9qaOslOC64F2p4=", "wAeYIVQUwd0iGZsV", "HmacMD5"/*"HmacSHA1"*/));
+ }
+
+ public static String hmacDigest(String operatorID, String data, String timestamp, String seq, String keyString) {
+
+ return hmacDigest(operatorID + data + timestamp + seq, keyString, "HmacMD5");
+ }
+
+ public static String hmacDigest(String msg, String keyString) {
+
+ return hmacDigest(msg, keyString, "HmacMD5");
+ }
+
+ public static String hmacDigest(String msg, String keyString, String algo) {
+
+ String digest = null;
+ try {
+ SecretKeySpec key = new SecretKeySpec(keyString.getBytes(StandardCharsets.UTF_8), algo);
+ Mac mac = Mac.getInstance(algo);
+ mac.init(key);
+
+ byte[] bytes = mac.doFinal(msg.getBytes(StandardCharsets.US_ASCII));
+
+ StringBuffer hash = new StringBuffer();
+ for (int i = 0; i < bytes.length; i++) {
+ String hex = Integer.toHexString(0xFF & bytes[i]);
+ if (hex.length() == 1) {
+ hash.append('0');
+ }
+ hash.append(hex);
+ }
+ digest = hash.toString().toUpperCase();
+ } catch (InvalidKeyException | NoSuchAlgorithmException e) {
+ e.printStackTrace();//todo remove pod
+ log.error(e.getMessage());
+ }
+ return digest;
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/Seq.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/Seq.java
new file mode 100644
index 00000000..b1b2ab26
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/Seq.java
@@ -0,0 +1,30 @@
+package com.xhpc.evcs.encryption;
+
+import org.joda.time.DateTime;
+
+import java.util.Calendar;
+
+public class Seq {
+
+ private static Integer seq = null;
+
+ public synchronized static String getNextNIncrease() {
+
+ Calendar calendar = Calendar.getInstance();
+ DateTime dateTime = new DateTime(calendar);
+ int millisOfSecond = dateTime.getMillisOfSecond();
+ String seqStr;
+ if (seq == null || millisOfSecond == 0) {//第一次获取和新秒重记
+ seq = millisOfSecond;
+ seqStr = String.format("%04d", seq);
+ } else {
+ seq++;
+ seqStr = String.format("%04d", seq);
+ if (seq == 9999) {
+ seq = null; //满9999重记
+ }
+ }
+ return seqStr;
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/AesCBC.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/AesCBC.java
new file mode 100644
index 00000000..78a121e8
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/AesCBC.java
@@ -0,0 +1,102 @@
+package com.xhpc.evcs.encryption.cdgov;
+
+import org.springframework.util.Base64Utils;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * AES 是一种可逆加密算法,对用户的敏感信息加密处理
+ * 对原始数据进行AES加密后,在进行Base64编码转化;
+ * 正确
+ * AES128 位加密,加密模式采用 CBC
+ */
+public class AesCBC {
+ /*已确认
+ * 加密用的Key 可以用26个字母和数字组成
+ * 此处使用AES-128-CBC加密模式,key需要为16位。
+ */
+
+ private static AesCBC instance = null;
+
+ //private static
+ private AesCBC() {
+
+ }
+
+ public static AesCBC getInstance() {
+
+ if (instance == null)
+ instance = new AesCBC();
+ return instance;
+ }
+
+ // 加密
+ public String encrypt(String sSrc, String encodingFormat, String sKey, String ivParameter) throws Exception {
+
+ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+ byte[] raw = sKey.getBytes();
+ SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+ IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());//使用CBC模式,需要一个向量iv,可增加加密算法的强度
+ cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
+ byte[] encrypted = cipher.doFinal(sSrc.getBytes(encodingFormat));
+ return new String(Base64Utils.encode(encrypted), StandardCharsets.UTF_8);
+// return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码。
+ }
+
+ // 解密
+ public String decrypt(String sSrc, String encodingFormat, String sKey, String ivParameter) throws Exception {
+
+ try {
+ byte[] raw = sKey.getBytes("ASCII");
+ SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+ IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
+ cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
+ byte[] encrypted1 = Base64Utils.decodeFromString(sSrc);//new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密
+ byte[] original = cipher.doFinal(encrypted1);
+ String originalString = new String(original, encodingFormat);
+ return originalString;
+ } catch (Exception ex) {
+ return null;
+ }
+ }
+
+ public static String decrypt(String cSrc) {
+
+ String decrypt = null;
+ try {
+ decrypt = getInstance().decrypt(cSrc, "utf-8", PlatformConfig.sKey, PlatformConfig.ivParameter);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return decrypt;
+ }
+
+ public static String encrypt(String cSrc) throws Exception {
+
+ String encrypt = getInstance().encrypt(cSrc, "utf-8", PlatformConfig.sKey, PlatformConfig.ivParameter);
+ return encrypt.replaceAll("\r", "").replaceAll("\n", "");
+ }
+
+ public static void main(String[] args) throws Exception {
+ // 需要加密的字串
+ String cSrc = "{\"total\":1,\"stationStatusInfo\":{\"operationID\":\"123456789\",\"stationID\":\"111111111111111\"," +
+ "\"con\n" +
+ "nectorStatusInfos\":{\"connectorID\":1,\"equipmentID\":\"10000000000000000000001\",\"status\":4, " +
+ "\"currentA\":0,\"currentB\":0,\"currentC\":0,\"voltageA\":0,\"voltageB\":0,\"voltageC\":0,\"soc\":10,}}}";
+ System.out.println("加密前的字串是:" + cSrc);
+ // 加密
+ String enString = AesCBC.getInstance().encrypt(cSrc, "utf-8", PlatformConfig.sKey, PlatformConfig.ivParameter);
+ System.out.println("加密后的字串是:" + enString);
+
+ System.out.println("1jdzWuniG6UMtoa3T6uNLA==".equals(enString));
+
+ // 解密
+ String DeString = AesCBC.getInstance().decrypt(enString, "utf-8", PlatformConfig.sKey, PlatformConfig.ivParameter);
+ System.out.println("解密后的字串是:" + DeString);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/HMacMD5.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/HMacMD5.java
new file mode 100644
index 00000000..e860b824
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/HMacMD5.java
@@ -0,0 +1,169 @@
+package com.xhpc.evcs.encryption.cdgov;
+
+//import com.company.project.platform.config.PlatformConfig;
+
+import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+public class HMacMD5 {
+
+ public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
+
+ String key = "v3i46R8Rsh1CEstf";
+ String OperatorID = "123456789";
+ String Time = "20160729142400";
+ String seq = "0001";
+ String data = "123456789il7B0BSEjFdzpyKzfOFpvg/Se1CP802RItKYFPfSLRxJ3jf0bVl9hvYOEktPAYW2nd7S8MBcyHYy\n" +
+ "acHKbISq5iTmDzG+ivnR+SZJv3USNTYVMz9rCQVSxd0cLlqsJauko79NnwQJbzDTyLooYoIwz7\n" +
+ "5qBOH2/xOMirpeEqRJrF/EQjWekJmGk9RtboXePu2rka+Xm51syBPhiXJAq0GfbfaFu9tNqs/e2Vjj\n" +
+ "a/ltE1M0lqvxfXQ6da6HrThsm5id4ClZFIi0acRfrsPLRixS/IQYtksxghvJwbqOsbIsITail9Ayy4tKcoge\n" +
+ "EZiOO+4Ed264NSKmk7l3wKwJLAFjCFogBx8GE3OBz4pqcAn/ydA=201607291424000001\n" +
+ "9CF107B283E6C9DB44D1CC810476B498";
+ System.out.println(data);
+ String hmacMd5Str = HMacMD5.getHmacMd5Str(key, data);
+ System.out.println(new String(hmacMd5Str));
+
+ }
+
+ /**
+ * 计算参数的md5信息
+ *
+ * @param str 待处理的字节数组
+ * @return md5摘要信息
+ * @throws NoSuchAlgorithmException
+ */
+ private static byte[] md5(byte[] str)
+ throws NoSuchAlgorithmException {
+
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(str);
+ return md.digest();
+ }
+
+ /**
+ * 将待加密数据data,通过密钥key,使用hmac-md5算法进行加密,然后返回加密结果。
+ * 参照rfc2104 HMAC算法介绍实现。
+ *
+ * @param key 密钥
+ * @param data 待加密数据
+ * @return 加密结果
+ * @throws NoSuchAlgorithmException
+ * @author 尹星
+ */
+ public static byte[] getHmacMd5Bytes(byte[] key, byte[] data) throws NoSuchAlgorithmException {
+ /* HmacMd5 calculation formula: H(K XOR opad, H(K XOR ipad, text))
+ * HmacMd5 计算公式:H(K XOR opad, H(K XOR ipad, text))
+ * H代表hash算法,本类中使用MD5算法,K代表密钥,text代表要加密的数据
+ * ipad为0x36,opad为0x5C。
+ */
+ int length = 64;
+ byte[] ipad = new byte[length];
+ byte[] opad = new byte[length];
+ for (int i = 0; i < 64; i++) {
+ ipad[i] = 0x36;
+ opad[i] = 0x5C;
+ }
+ byte[] actualKey = key; //Actual key.
+ byte[] keyArr = new byte[length]; //Key bytes of 64 bytes length
+ /*If key's length is longer than 64,then use hash to digest it and use the result as actual key.
+ * 如果密钥长度,大于64字节,就使用哈希算法,计算其摘要,作为真正的密钥。
+ */
+ if (key.length > length) {
+ actualKey = md5(key);
+ }
+ for (int i = 0; i < actualKey.length; i++) {
+ keyArr[i] = actualKey[i];
+ }
+
+ /*append zeros to K
+ * 如果密钥长度不足64字节,就使用0x00补齐到64字节。
+ */
+ if (actualKey.length < length) {
+ for (int i = actualKey.length; i < keyArr.length; i++)
+ keyArr[i] = 0x00;
+ }
+
+ /*calc K XOR ipad
+ * 使用密钥和ipad进行异或运算。
+ */
+ byte[] kIpadXorResult = new byte[length];
+ for (int i = 0; i < length; i++) {
+ kIpadXorResult[i] = (byte) (keyArr[i] ^ ipad[i]);
+ }
+
+ /*append "text" to the end of "K XOR ipad"
+ * 将待加密数据追加到K XOR ipad计算结果后面。
+ */
+ byte[] firstAppendResult = new byte[kIpadXorResult.length + data.length];
+ for (int i = 0; i < kIpadXorResult.length; i++) {
+ firstAppendResult[i] = kIpadXorResult[i];
+ }
+ for (int i = 0; i < data.length; i++) {
+ firstAppendResult[i + keyArr.length] = data[i];
+ }
+
+ /*calc H(K XOR ipad, text)
+ * 使用哈希算法计算上面结果的摘要。
+ */
+ byte[] firstHashResult = md5(firstAppendResult);
+
+ /*calc K XOR opad
+ * 使用密钥和opad进行异或运算。
+ */
+ byte[] kOpadXorResult = new byte[length];
+ for (int i = 0; i < length; i++) {
+ kOpadXorResult[i] = (byte) (keyArr[i] ^ opad[i]);
+ }
+
+ /*append "H(K XOR ipad, text)" to the end of "K XOR opad"
+ * 将H(K XOR ipad, text)结果追加到K XOR opad结果后面
+ */
+ byte[] secondAppendResult = new byte[kOpadXorResult.length + firstHashResult.length];
+ for (int i = 0; i < kOpadXorResult.length; i++) {
+ secondAppendResult[i] = kOpadXorResult[i];
+ }
+ for (int i = 0; i < firstHashResult.length; i++) {
+ secondAppendResult[i + keyArr.length] = firstHashResult[i];
+ }
+
+ /*H(K XOR opad, H(K XOR ipad, text))
+ * 对上面的数据进行哈希运算。
+ */
+ byte[] hmacMd5Bytes = md5(secondAppendResult);
+
+ return hmacMd5Bytes;
+
+ }
+
+ // public static String getHmacMd5Str(String data){
+// String hmacMd5Str = getHmacMd5Str(PlatformConfig.SigSecret, data);
+// return hmacMd5Str;
+// }
+ public static String getHmacMd5Str(String key, String data) {
+
+ data = data.replaceAll("\n", "").replaceAll("\r", "");
+ String result = "";
+ try {
+ byte[] keyByte = key.getBytes("UTF-8");
+ byte[] dataByte = data.getBytes("UTF-8");
+ byte[] hmacMd5Byte = getHmacMd5Bytes(keyByte, dataByte);
+ StringBuffer md5StrBuff = new StringBuffer();
+ for (int i = 0; i < hmacMd5Byte.length; i++) {
+ if (Integer.toHexString(0xFF & hmacMd5Byte[i]).length() == 1) {
+
+ md5StrBuff.append("0").append(Integer.toHexString(0xFF & hmacMd5Byte[i]));
+ } else {
+ md5StrBuff.append(Integer.toHexString(0xFF & hmacMd5Byte[i]));
+ }
+ }
+ result = md5StrBuff.toString().toUpperCase();
+
+ } catch (Exception e) {
+
+ }
+ return result;
+
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/PlatformConfig.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/PlatformConfig.java
new file mode 100644
index 00000000..87f33ba1
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/encryption/cdgov/PlatformConfig.java
@@ -0,0 +1,21 @@
+package com.xhpc.evcs.encryption.cdgov;
+
+/**
+ * @Author lides
+ * @Description
+ * @Date 18-9-15 17:10
+ **/
+public class PlatformConfig {
+
+ public static final String OperatorID = "734810352";
+ //签名秘钥
+ public static final String SigSecret = "v3i46R8Rsh1CEstf";
+ //秘钥:申请认证使用
+ public static final String OperatorSecret = "Rf5xaS6j7Or2hSBe";
+ //消息秘钥,对数据加秘用
+ public static String sKey = "cPgZQTrkglOuYh2J";
+ //初始化向量
+ public static String ivParameter = "cPgZQTrkglOuYh2J";
+ public static final String notificationUrl = "http://cdhlht.evxian.com:9000/evcs/20160701/";
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/DelegatingServletInputStream.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/DelegatingServletInputStream.java
new file mode 100644
index 00000000..a61ef295
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/DelegatingServletInputStream.java
@@ -0,0 +1,75 @@
+package com.xhpc.evcs.http;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class DelegatingServletInputStream extends ServletInputStream {
+
+ private final InputStream sourceStream;
+
+ private boolean finished = false;
+
+
+ /**
+ * Create a DelegatingServletInputStream for the given source stream.
+ *
+ * @param sourceStream the source stream (never {@code null})
+ */
+ public DelegatingServletInputStream(InputStream sourceStream) {
+
+ this.sourceStream = sourceStream;
+ }
+
+ /**
+ * Return the underlying source stream (never {@code null}).
+ */
+ public final InputStream getSourceStream() {
+
+ return this.sourceStream;
+ }
+
+
+ @Override
+ public int read() throws IOException {
+
+ int data = this.sourceStream.read();
+ if (data == -1) {
+ this.finished = true;
+ }
+ return data;
+ }
+
+ @Override
+ public int available() throws IOException {
+
+ return this.sourceStream.available();
+ }
+
+ @Override
+ public void close() throws IOException {
+
+ super.close();
+ this.sourceStream.close();
+ }
+
+ @Override
+ public boolean isFinished() {
+
+ return this.finished;
+ }
+
+ @Override
+ public boolean isReady() {
+
+ return true;
+ }
+
+ @Override
+ public void setReadListener(ReadListener readListener) {
+
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/ForbiddenException.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/ForbiddenException.java
new file mode 100644
index 00000000..3a3ab9f5
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/ForbiddenException.java
@@ -0,0 +1,14 @@
+package com.xhpc.evcs.http;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "Credential is vacant or invalid.")
+public class ForbiddenException extends RuntimeException {
+
+ public ForbiddenException(String message) {
+
+ super(message);
+ }
+
+}
diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/GlobalExceptionController.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/GlobalExceptionController.java
new file mode 100644
index 00000000..c5a2d7f3
--- /dev/null
+++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/http/GlobalExceptionController.java
@@ -0,0 +1,41 @@
+package com.xhpc.evcs.http;
+
+import com.xhpc.evcs.dto.CommonResponse;
+import com.xhpc.evcs.encryption.EvcsConst;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.MissingServletRequestParameterException;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.context.request.WebRequest;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
+
+@ControllerAdvice
+@Slf4j
+public class GlobalExceptionController extends ResponseEntityExceptionHandler {
+
+ @ExceptionHandler(Throwable.class)
+ public @ResponseBody
+ CommonResponse handleAllException(Throwable e) {
+
+ CommonResponse commonResponse = new CommonResponse();
+ commonResponse.setRet(EvcsConst.RET_FAIl);
+ commonResponse.setMsg(e.getMessage());
+ logger.error(e.getMessage());
+ return commonResponse;
+ }
+
+ @Override
+ protected ResponseEntity