diff --git a/xhpc-modules/xhpc-tradebill/.gitignore b/xhpc-modules/xhpc-tradebill/.gitignore
new file mode 100644
index 00000000..54283dd4
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/.gitignore
@@ -0,0 +1,35 @@
+HELP.md
+target/
+.mvn/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea/
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/xhpc-modules/xhpc-tradebill/pom.xml b/xhpc-modules/xhpc-tradebill/pom.xml
new file mode 100644
index 00000000..facfa818
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/pom.xml
@@ -0,0 +1,157 @@
+
+
+
+ com.ruoyi
+ xhpc-modules
+ 3.0.0
+
+ 4.0.0
+
+ xhpc-tradebill
+
+
+ 账单对账服务
+
+
+ 8
+ 8
+
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+
+
+ org.mybatis
+ mybatis
+ 3.5.6
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+
+ com.ruoyi
+ ruoyi-common-datasource
+
+
+
+
+ com.ruoyi
+ ruoyi-common-core
+
+
+
+ com.ruoyi
+ xhpc-common
+ 3.0.0
+ compile
+
+
+
+ javax.websocket
+ javax.websocket-api
+ 1.1
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+
+
+ com.alipay.sdk
+ alipay-sdk-java
+ 4.15.14.ALL
+
+
+
+
+ com.github.binarywang
+ weixin-java-pay
+ 4.2.0
+
+
+
+ org.apache.ant
+ ant
+ 1.10.12
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 3.10.2
+ compile
+
+
+
+
+
+ ${project.artifactId}
+
+
+ src/main/resources
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.4.0
+
+
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/XhpcTradebillApplication.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/XhpcTradebillApplication.java
new file mode 100644
index 00000000..f31c95bb
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/XhpcTradebillApplication.java
@@ -0,0 +1,26 @@
+package com.xhpc.tradebill;
+
+import com.xhpc.common.security.annotation.EnableCustomConfig;
+import com.xhpc.common.security.annotation.EnableRyFeignClients;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+
+@EnableConfigurationProperties
+@ConfigurationPropertiesScan(basePackages = {"com.xhpc.tradebill.config"})
+@EnableCustomConfig
+@SpringBootApplication
+@EnableRyFeignClients
+@EnableDiscoveryClient
+@MapperScan("com.xhpc.tradebill.mapper")
+public class XhpcTradebillApplication {
+
+ public static void main(String[] args) {
+
+ SpringApplication.run(XhpcTradebillApplication.class, args);
+ }
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/AliOSSProperties.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/AliOSSProperties.java
new file mode 100644
index 00000000..8a27c310
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/AliOSSProperties.java
@@ -0,0 +1,24 @@
+package com.xhpc.tradebill.config;
+
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+
+/**
+ * 支付宝支付配置类
+ */
+@Data
+@ConfigurationProperties(prefix = "oss")
+public class AliOSSProperties {
+
+ private boolean enabled;
+ private String name;
+ private boolean tenantMode;
+ private String endpoint;
+ private String accessKey;
+ private String secretKey;
+ private String bucketName;
+ private String region;
+ private String domain;
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/AliPayProperties.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/AliPayProperties.java
new file mode 100644
index 00000000..140b3346
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/AliPayProperties.java
@@ -0,0 +1,23 @@
+package com.xhpc.tradebill.config;
+
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+
+/**
+ * 支付宝支付配置类
+ */
+@Data
+@ConfigurationProperties(prefix = "alibaba.pay")
+public class AliPayProperties {
+
+ private String gatewayDomain;
+ private String serverDomain;
+ private String publicKey;
+ private String privateKey;
+ private String appId;
+ private String certPath;
+ private String publicCertPath;
+ private String rootCertPath;
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/WxPayProperties.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/WxPayProperties.java
new file mode 100644
index 00000000..e61cffd3
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/config/WxPayProperties.java
@@ -0,0 +1,42 @@
+package com.xhpc.tradebill.config;
+
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * 微信支付配置类
+ */
+@Data
+@ConfigurationProperties(prefix = "wx.pay")
+public class WxPayProperties {
+ /**
+ * 设置微信公众号或者小程序等的appid
+ */
+ private String appId;
+
+ /**
+ * 微信支付商户号
+ */
+ private String mchId;
+
+ /**
+ * 微信支付商户密钥
+ */
+ private String mchKey;
+
+ /**
+ * 服务商模式下的子商户公众账号ID,普通模式请不要配置,请在配置文件中将对应项删除
+ */
+ private String subAppId;
+
+ /**
+ * 服务商模式下的子商户号,普通模式请不要配置,最好是请在配置文件中将对应项删除
+ */
+ private String subMchId;
+
+ /**
+ * apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定
+ */
+ private String keyPath;
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/constant/WeixinPayConstant.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/constant/WeixinPayConstant.java
new file mode 100644
index 00000000..295f222f
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/constant/WeixinPayConstant.java
@@ -0,0 +1,42 @@
+package com.xhpc.tradebill.constant;
+
+/**
+ * 微信支付常量
+ */
+public class WeixinPayConstant {
+
+ /**
+ * 返回当日所有订单信息(不含充值退款订单)
+ */
+ public static final String BILL_TYPE_ALL = "ALL";
+
+ /**
+ * 返回当日成功支付的订单(不含充值退款订单)
+ */
+ public static final String BILL_TYPE_SUCCESS = "SUCCESS";
+
+ /**
+ * 返回当日退款订单(不含充值退款订单)
+ */
+ public static final String BILL_TYPE_REFUND = "REFUND";
+
+ /**
+ * 返回格式为.gzip的压缩包账单
+ */
+ public static final String TAR_TYPE_GZIP = "GZIP";
+
+ /**
+ * 基本账户
+ */
+ public static final String ACCOUNT_TYPE_BASIC = "BASIC";
+
+ /**
+ * 运营账户
+ */
+ public static final String ACCOUNT_TYPE_OPERATION = "OPERATION";
+
+ /**
+ * 手续费账户
+ */
+ public static final String ACCOUNT_TYPE_FEES = "FEES";
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/CommonController.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/CommonController.java
new file mode 100644
index 00000000..51505ba7
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/CommonController.java
@@ -0,0 +1,49 @@
+package com.xhpc.tradebill.controller;
+
+
+import com.xhpc.common.core.utils.SecurityUtils;
+import com.xhpc.common.core.web.controller.BaseController;
+import com.xhpc.common.core.web.domain.AjaxResult;
+import com.xhpc.tradebill.domain.XhpcTradebillUploadRecordDomain;
+import com.xhpc.tradebill.service.CommonService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+
+@RestController
+@RequestMapping("/common")
+public class CommonController extends BaseController {
+
+ @Resource
+ CommonService commonService;
+
+ @PostMapping("/oss/upload")
+ public AjaxResult OssUpload(@RequestBody XhpcTradebillUploadRecordDomain domain) throws Exception{
+ return AjaxResult.success(commonService.ossUpload(domain));
+ }
+
+
+ @PostMapping("/file/upload")
+ public AjaxResult fileUpload(MultipartFile file, int type) throws Exception {
+ if (file ==null || type < 1){
+ return AjaxResult.error("文件或者对账类型为空");
+ }
+ return AjaxResult.success(commonService.fileUpload(file, type));
+ }
+
+ @GetMapping("/file/getPage")
+ public AjaxResult getFilePage(int type,
+ String name) throws Exception {
+ startPage();
+ Map parmas = new HashMap<>();
+ parmas.put("type", type);
+ parmas.put("createBy", SecurityUtils.getUserId());
+ parmas.put("name", name);
+
+ return AjaxResult.success(commonService.getFilePage(parmas));
+ }
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/InternetBillController.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/InternetBillController.java
new file mode 100644
index 00000000..8d49f917
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/InternetBillController.java
@@ -0,0 +1,106 @@
+package com.xhpc.tradebill.controller;
+
+
+import com.xhpc.common.core.web.controller.BaseController;
+import com.xhpc.common.core.web.domain.AjaxResult;
+import com.xhpc.common.core.web.page.TableDataInfo;
+import com.xhpc.tradebill.domain.XhpcTradebillInternetCheckRecordDomain;
+import com.xhpc.tradebill.service.InternetBillService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/internet")
+public class InternetBillController extends BaseController {
+
+
+ @Resource
+ InternetBillService internetBillService;
+
+ @GetMapping("/checkList/{uploadId}")
+ public AjaxResult getCheckList(@RequestParam(required = false) Integer uploadId,
+ @RequestParam(required = false) String orderNumber,
+ @RequestParam(required = false) String stationName,
+ @RequestParam(required = false) String internetName,
+ @RequestParam(required = false) Integer status){
+ Map params = new HashMap<>();
+ params.put("uploadId", uploadId);
+ params.put("orderNumber",orderNumber);
+ params.put("stationName", stationName);
+ params.put("internetName", internetName);
+ params.put("status", status);
+ return AjaxResult.success(internetBillService.getInternetCheckList(params));
+ }
+
+
+ @GetMapping("/checkPage")
+ public TableDataInfo getCheckPage(@RequestParam(required = false) Integer uploadId,
+ @RequestParam(required = false) String orderNumber,
+ @RequestParam(required = false) String station,
+ @RequestParam(required = false) String internetName,
+ @RequestParam(required = false) Integer status){
+
+ Map params = new HashMap<>();
+ params.put("uploadId", uploadId);
+ params.put("orderNumber",orderNumber);
+ params.put("stationName", station);
+ params.put("internetName", internetName);
+ params.put("status", status);
+
+ startPage();
+ return getDataTable(internetBillService.getInternetCheckList(params));
+ }
+
+ @GetMapping("/statusTotal")
+ public AjaxResult getStatusTotal(@RequestParam(required = false) Integer uploadId,
+ @RequestParam(required = false) String orderNumber,
+ @RequestParam(required = false) String stationName,
+ @RequestParam(required = false) String internetName,
+ @RequestParam(required = false) Integer status){
+
+ Map params = new HashMap<>();
+ params.put("uploadId", uploadId);
+ params.put("orderNumber",orderNumber);
+ params.put("stationName", stationName);
+ params.put("internetName", internetName);
+ params.put("status", status);
+ return AjaxResult.success(internetBillService.getStatusTotal(params));
+ }
+
+
+ @GetMapping("/checkInfo/{id}")
+ public AjaxResult getCheckInfo(@PathVariable Integer id){
+
+ return AjaxResult.success(internetBillService.getInfoByPk(id));
+ }
+
+
+ @PostMapping("/checkInfo")
+ public AjaxResult updateCheckInfo(@RequestBody XhpcTradebillInternetCheckRecordDomain domain){
+
+ return AjaxResult.success(internetBillService.updateInfoByDomain(domain));
+ }
+
+ @PostMapping("/export")
+ public void export(HttpServletResponse response,
+ @RequestParam(required = false) Integer uploadId,
+ @RequestParam(required = false) String orderNumber,
+ @RequestParam(required = false) String stationName,
+ @RequestParam(required = false) String internetName,
+ @RequestParam(required = false) Integer status) throws Exception {
+
+ Map params = new HashMap<>();
+ params.put("uploadId", uploadId);
+ params.put("orderNumber",orderNumber);
+ params.put("stationName", stationName);
+ params.put("internetName", internetName);
+ params.put("status", status);
+
+ internetBillService.export(response, params);
+ }
+
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/PaymentBillController.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/PaymentBillController.java
new file mode 100644
index 00000000..9a140fb9
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/controller/PaymentBillController.java
@@ -0,0 +1,96 @@
+package com.xhpc.tradebill.controller;
+
+
+import com.xhpc.common.core.web.controller.BaseController;
+import com.xhpc.common.core.web.domain.AjaxResult;
+import com.xhpc.common.core.web.page.TableDataInfo;
+import com.xhpc.tradebill.domain.XhpcTradebillPaymentCheckRecordDomain;
+import com.xhpc.tradebill.service.PaymentBillService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/payment")
+public class PaymentBillController extends BaseController {
+
+ @Resource
+ PaymentBillService paymentBillService;
+
+ @GetMapping("/checkList/{uploadId}")
+ public AjaxResult getCheckList(@RequestParam(required = false) Integer uploadId,
+ @RequestParam(required = false) String orderNumber,
+ @RequestParam(required = false) String userId,
+ @RequestParam(required = false) Integer status){
+ Map params = new HashMap<>();
+ params.put("uploadId", uploadId);
+ params.put("orderNumber",orderNumber);
+ params.put("userId", userId);
+ params.put("status", status);
+ return AjaxResult.success(paymentBillService.getPaymentCheckList(params));
+ }
+
+
+ @GetMapping("/checkPage")
+ public TableDataInfo getCheckPage(@RequestParam(required = false) Integer uploadId,
+ @RequestParam(required = false) String orderNumber,
+ @RequestParam(required = false) String userId,
+ @RequestParam(required = false) Integer status){
+
+ startPage();
+ Map params = new HashMap<>();
+ params.put("uploadId", uploadId);
+ params.put("orderNumber",orderNumber);
+ params.put("userId", userId);
+ params.put("status", status);
+ return getDataTable(paymentBillService.getPaymentCheckList(params));
+ }
+
+
+ @GetMapping("/statusTotal")
+ public AjaxResult getStatusTotal(@RequestParam(required = false) Integer uploadId,
+ @RequestParam(required = false) String orderNumber,
+ @RequestParam(required = false) String userId,
+ @RequestParam(required = false) Integer status){
+
+ Map params = new HashMap<>();
+ params.put("uploadId", uploadId);
+ params.put("orderNumber",orderNumber);
+ params.put("userId", userId);
+ params.put("status", status);
+ return AjaxResult.success(paymentBillService.getStatusTotal(params));
+ }
+
+ @GetMapping("/checkInfo/{id}")
+ public AjaxResult getCheckInfo(@PathVariable Integer id){
+
+ return AjaxResult.success(paymentBillService.getInfoByPk(id));
+ }
+
+
+ @PostMapping("/checkInfo")
+ public AjaxResult updateCheckInfo(@RequestBody XhpcTradebillPaymentCheckRecordDomain domain){
+ return AjaxResult.success(paymentBillService.updateInfoByDomain(domain));
+ }
+
+
+ @PostMapping("/export")
+ public void export(HttpServletResponse response,
+ @RequestParam(required = false) Integer uploadId,
+ @RequestParam(required = false) String orderNumber,
+ @RequestParam(required = false) String userId,
+ @RequestParam(required = false) Integer status) throws Exception {
+
+ Map params = new HashMap<>();
+ params.put("uploadId", uploadId);
+ params.put("orderNumber",orderNumber);
+ params.put("userId", userId);
+ params.put("status", status);
+
+ paymentBillService.export(response, params);
+ }
+
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/EtOrderMappingDomain.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/EtOrderMappingDomain.java
new file mode 100644
index 00000000..a1e3b40c
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/EtOrderMappingDomain.java
@@ -0,0 +1,17 @@
+package com.xhpc.tradebill.domain;
+
+
+import lombok.Data;
+
+import javax.persistence.Table;
+
+@Data
+@Table(name = "et_order_mapping")
+public class EtOrderMappingDomain {
+
+ private Long id;
+
+ private String xhOrderNo;
+
+ private String evcsOrderNo;
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcChargeOrderDomain.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcChargeOrderDomain.java
new file mode 100644
index 00000000..84e6315f
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcChargeOrderDomain.java
@@ -0,0 +1,170 @@
+package com.xhpc.tradebill.domain;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+@Data
+@Table(name="xhpc_charge_order")
+public class XhpcChargeOrderDomain implements Serializable {
+ /**
+ * 充电订单id
+ */
+ private Long chargeOrderId;
+
+ /**
+ * 电站id
+ */
+ private Long chargingStationId;
+
+ /**
+ * 用户id
+ */
+ private Long userId;
+
+ /**
+ * 终端id
+ */
+ private Long terminalId;
+
+ /**
+ * 互联网流水订单号
+ */
+ private String internetSerialNumber;
+
+ /**
+ * 订单编号
+ */
+ private String serialNumber;
+
+ /**
+ * 充电启始soc
+ */
+ private String startSoc;
+
+ /**
+ * 结束soc
+ */
+ private String endSoc;
+
+ /**
+ * 订单来源(0C端用户 1流量用户)
+ */
+ private Integer source;
+
+ /**
+ * 状态(-1准备充电 0开始充电 1自动结算,2异常,3平台结算)
+ */
+ private Integer status;
+
+ /**
+ * 删除标志(0代表存在 1代表删除)
+ */
+ private Integer delFlag;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建者
+ */
+ private String createBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新者
+ */
+ private String updateBy;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 费率模型id
+ */
+ private Long rateModelId;
+
+ /**
+ * 充电方式
+ */
+ private String chargingMode;
+
+ /**
+ * 开始充电时间
+ */
+ private Date startTime;
+
+ /**
+ * 结束充电时间
+ */
+ private Date endTime;
+
+ /**
+ * 充电时长
+ */
+ private String chargingTime;
+
+ /**
+ * 充电度数
+ */
+ private BigDecimal chargingDegree;
+
+ /**
+ * 协议定,停止方式
+ */
+ private Integer type;
+
+ /**
+ * 异常备注
+ */
+ private String erroRemark;
+
+ /**
+ * 总金额
+ */
+ private BigDecimal amountCharged;
+
+ /**
+ * 功率
+ */
+ private String power;
+
+ /**
+ * 充电时长(秒)
+ */
+ private Long chargingTimeNumber;
+
+ /**
+ * 司机唯一标识(手机号)
+ */
+ private String driverId;
+
+ /**
+ * 充电金额
+ */
+ private Integer chargingAmt;
+
+ /**
+ * 车牌
+ */
+ private String plateNum;
+
+ /**
+ * 符合Evcs标准的订单号,并非来自第三方的订单号
+ */
+ private String evcsOrderNo;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcHistoryOrderDomain.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcHistoryOrderDomain.java
new file mode 100644
index 00000000..94af4242
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcHistoryOrderDomain.java
@@ -0,0 +1,249 @@
+package com.xhpc.tradebill.domain;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * xhpc_history_order
+ * @author
+ */
+@Data
+public class XhpcHistoryOrderDomain implements Serializable {
+ /**
+ * 历史订单id
+ */
+ private Long historyOrderId;
+
+ /**
+ * 电站id
+ */
+ private Long chargingStationId;
+
+ /**
+ * 场站名称
+ */
+ private String chargingStationName;
+
+ /**
+ * 充电订单id
+ */
+ private Long chargeOrderId;
+
+ /**
+ * 用户id
+ */
+ private Long userId;
+
+ /**
+ * 终端id
+ */
+ private Long terminalId;
+
+ /**
+ * 订单编号
+ */
+ private String serialNumber;
+
+ /**
+ * 流量方订单号
+ */
+ private String internetSerialNumber;
+
+ /**
+ * 总电费
+ */
+ private BigDecimal powerPriceTotal;
+
+ /**
+ * 总服务费
+ */
+ private BigDecimal servicePriceTotal;
+
+ /**
+ * 订单总价
+ */
+ private BigDecimal totalPrice;
+
+ /**
+ * 电站活动抵扣--抵扣的总金额
+ */
+ private BigDecimal promotionDiscount;
+
+ /**
+ * 实际价格-用户支付的钱
+ */
+ private BigDecimal actPrice;
+
+ /**
+ * 实收电费-运营商电费
+ */
+ private BigDecimal actPowerPrice;
+
+ /**
+ * 实收服务费-运营商服务费
+ */
+ private BigDecimal actServicePrice;
+
+ /**
+ * 流量方总金额抽成
+ */
+ private BigDecimal internetCommission;
+
+ /**
+ * 流量方服务费抽成
+ */
+ private BigDecimal internetSvcCommission;
+
+ /**
+ * 平台总金额抽成
+ */
+ private BigDecimal platformCommission;
+
+ /**
+ * 平台服务费抽成
+ */
+ private BigDecimal platformSvcCommisssion;
+
+ /**
+ * 运维总抽成
+ */
+ private BigDecimal operationCommission;
+
+ /**
+ * 运维服务费抽成
+ */
+ private BigDecimal operationSvcCommission;
+
+ /**
+ * 开始充电soc
+ */
+ private String startSoc;
+
+ /**
+ * 结束时soc
+ */
+ private String endSoc;
+
+ /**
+ * 对账状态(0待确认 1已确认,2待提交,3待审核)
+ */
+ private Integer reconciliationStatus;
+
+ /**
+ * 清分状态(0待清分 1清分在途,2已提现,3待提交,4待审核)
+ */
+ private Integer sortingStatus;
+
+ /**
+ * 1 自动结算 2 平台结算
+ */
+ private Byte type;
+
+ /**
+ * 状态(0正常 1停用)
+ */
+ private Integer status;
+
+ /**
+ * 删除标志(0代表存在 2代表删除)
+ */
+ private Integer delFlag;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建者
+ */
+ private String createBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新者
+ */
+ private String updateBy;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 0未统计 1小时统计 2 其他统计
+ */
+ private Integer state;
+
+ /**
+ * VIN 码
+ */
+ private String vinNormal;
+
+ private String searchValue;
+
+ /**
+ * 运营商在EVCS分配的唯一OperatorID
+ */
+ private String operatorIdEvcs;
+
+ private Integer chargeModelEvcs;
+
+ private Double connectorPowerEvcs;
+
+ private Double meterValueEndEvcs;
+
+ private Double meterValueStartEvcs;
+
+ private String operatorId3rdptyEvcs;
+
+ private Date startTime;
+
+ /**
+ * 结束时间
+ */
+ private Date endTime;
+
+ private Integer stopReasonEvcs;
+
+ private Double totalPower;
+
+ private String userNameEvcs;
+
+ private String phone;
+
+ /**
+ * 互联网订单流水号
+ */
+ private String evcsOrderNo;
+
+ /**
+ * -1:未推送/推送失败 0:成功 1:争议交易 2~99:自定义
+ */
+ private Integer confirmResult;
+
+ private Long rateModelId;
+
+ /**
+ * 充电方式
+ */
+ private String chargingMode;
+
+ /**
+ * 充电度数
+ */
+ private Double chargingDegree;
+
+ /**
+ * 充电时长
+ */
+ private String chargingTime;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcRechargeOrderDomain.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcRechargeOrderDomain.java
new file mode 100644
index 00000000..2a0d8eb4
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcRechargeOrderDomain.java
@@ -0,0 +1,79 @@
+package com.xhpc.tradebill.domain;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * 充值订单实体对象
+ */
+@Data
+@Table(name = "xhpc_recharge_order")
+public class XhpcRechargeOrderDomain {
+
+
+ /**
+ * 充值订单id
+ */
+ private Long rechargeOrderId;
+
+ /**
+ * 用户id
+ */
+ private Long userId;
+
+ /**
+ * 充值订单编号
+ */
+ private String rechargeOrderNumber;
+
+ /**
+ * 微信支付订单号
+ */
+ private String prepayId;
+
+ /**
+ * 支付宝订单编号
+ */
+ private String alipayNumber;
+
+ /**
+ * 充值金额
+ */
+ private BigDecimal amount;
+
+ /**
+ * 充值渠道(1微信 2支付宝 3平台)
+ */
+ private Integer type;
+
+
+ /**
+ * 状态(0待支付 1充值成功,2充值失败)
+ */
+ private Integer status;
+
+ /**
+ * 订单来源(0 C端用户 1 流量方用户 2社区用户 3B端用户)
+ */
+ private Integer source;
+
+ /**
+ * 删除标志(0代表存在 2代表删除)
+ */
+ private Integer delFlag;
+
+
+ private Date updateTime;
+
+ private String updateBy;
+
+
+ private Date createTime;
+
+ private String createBy;
+
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcRefundOrderDomain.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcRefundOrderDomain.java
new file mode 100644
index 00000000..36d727ab
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcRefundOrderDomain.java
@@ -0,0 +1,82 @@
+package com.xhpc.tradebill.domain;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * 退款订单实体对象
+ */
+@Data
+@Table(name = "xhpc_refund_order")
+public class XhpcRefundOrderDomain {
+
+
+ /**
+ * 退款订单id
+ */
+ private Long refundOrderId;
+
+ /**
+ * 退款订单编号
+ */
+ private String refundOrderNumber;
+
+ /**
+ * 用户id
+ */
+ private Long userId;
+
+ /**
+ * 微信支付订单号
+ */
+ private String openId;
+
+ /**
+ * 支付宝订单编号
+ */
+ private String alipayId;
+
+ /**
+ * 充值金额
+ */
+ private BigDecimal amount;
+
+ /**
+ * 退款渠道(1微信 2支付宝 3平台)
+ */
+ private Integer type;
+
+ /**
+ * 审核状态(0审核中 1审核通过,2审核失败)
+ */
+ private Integer examineStatus;
+
+ /**
+ * 订单来源(0 C端用户 1 流量方用户 2社区用户 3B端用户)
+ */
+ private Integer source;
+
+ /**
+ * 状态(0退款中 1退款成功,2退款失败,3取消订单)
+ */
+ private Integer status;
+
+ /**
+ * 删除标志(0代表存在 2代表删除)
+ */
+ private Integer delFlag;
+
+
+ private Date createTime;
+
+ private String createBy;
+
+ private Date updateTime;
+
+ private String updateBy;
+
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillInternetCheckRecordDomain.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillInternetCheckRecordDomain.java
new file mode 100644
index 00000000..cc50d65e
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillInternetCheckRecordDomain.java
@@ -0,0 +1,119 @@
+package com.xhpc.tradebill.domain;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+@Data
+@Table(name="xhpc_tradebill_internet_check_record")
+public class XhpcTradebillInternetCheckRecordDomain implements Serializable {
+
+
+ private Integer id;
+
+ private Date createTime;
+
+ private Long createBy;
+
+ private String createName;
+
+ private Date updateTime;
+
+ private Long updateBy;
+
+ private String updateName;
+
+ private Integer uploadId;
+
+ private Long historyOrderNo;
+
+ private String userId;
+
+ private String internetName;
+
+ private String platformInternetSerialNumber;
+
+ private String platformSerialNumber;
+
+ private String platformChargeStation;
+
+ private String platformStartSoc;
+
+ private String platformEndSoc;
+
+
+ private BigDecimal platformChargingDegree;
+
+
+ private String platformChargingTime;
+
+
+ private Date platformStartTime;
+
+
+ private Date platformEndTime;
+
+
+ private BigDecimal platformOrderAmount;
+
+ private BigDecimal platformPowerAmount;
+
+ private BigDecimal platformServerAmount;
+
+ private BigDecimal platformDiscountAmount;
+
+
+ private BigDecimal platformPayAmount;
+
+
+ private String internetSerialNumber;
+
+
+ private String internetChargeStation;
+
+
+ private String internetStartSoc;
+
+
+ private String internetEndSoc;
+
+
+ private BigDecimal internetChargingDegree;
+
+
+ private String internetChargingTime;
+
+
+ private Date internetStartTime;
+
+
+ private Date internetEndTime;
+
+
+ private BigDecimal internetOrderAmount;
+
+ private BigDecimal internetPowerAmount;
+
+ private BigDecimal internetServerAmount;
+
+ private BigDecimal internetDiscountAmount;
+
+
+ private BigDecimal internetPayAmount;
+
+ private String remark;
+
+
+ private Integer status;
+
+ private String statusName;
+
+
+ private String source;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillPaymentCheckRecordDomain.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillPaymentCheckRecordDomain.java
new file mode 100644
index 00000000..ee5541b9
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillPaymentCheckRecordDomain.java
@@ -0,0 +1,62 @@
+package com.xhpc.tradebill.domain;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+@Data
+@Table(name="xhpc_tradebill_payment_check_record")
+public class XhpcTradebillPaymentCheckRecordDomain implements Serializable {
+
+ private Integer id;
+
+
+ private Date createTime;
+
+ private Long createBy;
+
+ private String createName;
+
+ private Date updateTime;
+
+ private Long updateBy;
+
+ private String updateName;
+
+ private Integer uploadId;
+
+ private Integer orderType;
+
+ private Integer paymentChannel;
+
+ private String platformOrderNumber;
+
+ private String platformPayNumber;
+
+ private String platformUserId;
+
+ private BigDecimal platformAmount;
+
+ private Date platformPayTime;
+
+ private String paymentPayNumber;
+
+ private String paymentUserId;
+
+ private BigDecimal paymentAmount;
+
+ private Date paymentPayTime;
+
+
+ private Integer status;
+
+ private String statusName;
+
+ private String remark;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillUploadRecordDomain.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillUploadRecordDomain.java
new file mode 100644
index 00000000..96e6f219
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/domain/XhpcTradebillUploadRecordDomain.java
@@ -0,0 +1,46 @@
+package com.xhpc.tradebill.domain;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+
+@Data
+@Table(name="xhpc_tradebill_upload_record")
+public class XhpcTradebillUploadRecordDomain implements Serializable {
+
+ private Integer id;
+
+ private Date createTime;
+
+ private Long createBy;
+
+ private Date updateTime;
+
+ private Long updateBy;
+
+ private String source;
+
+ private String fileName;
+
+ private String url;
+
+ private Integer type;
+
+ private Integer status;
+
+ private Integer delFlag;
+
+ private Integer successCount;
+
+ private Integer failCount;
+
+ private Integer uncheckCount;
+
+ private Integer checkedCount;
+
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/EtOrderMappingMapper.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/EtOrderMappingMapper.java
new file mode 100644
index 00000000..2ce49980
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/EtOrderMappingMapper.java
@@ -0,0 +1,15 @@
+package com.xhpc.tradebill.mapper;
+
+
+import com.xhpc.tradebill.domain.EtOrderMappingDomain;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface EtOrderMappingMapper {
+
+
+ EtOrderMappingDomain selectByXhOrderNo(String xhOrderNo);
+
+
+ EtOrderMappingDomain selectByEvcsOrderNo(String evcsOrderNo);
+}
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcChargeOrderMapper.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcChargeOrderMapper.java
new file mode 100644
index 00000000..3c6e4f6f
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcChargeOrderMapper.java
@@ -0,0 +1,8 @@
+package com.xhpc.tradebill.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface XhpcChargeOrderMapper {
+
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcHistoryOrderMapper.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcHistoryOrderMapper.java
new file mode 100644
index 00000000..5c5db393
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcHistoryOrderMapper.java
@@ -0,0 +1,14 @@
+package com.xhpc.tradebill.mapper;
+
+import com.xhpc.tradebill.domain.XhpcHistoryOrderDomain;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface XhpcHistoryOrderMapper {
+
+
+ XhpcHistoryOrderDomain findOneBySerialNumber(String serialNumber);
+
+
+ XhpcHistoryOrderDomain findOneByInternetSerialNumber(String internetSerialNumber);
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcRechargeOrderMapper.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcRechargeOrderMapper.java
new file mode 100644
index 00000000..4de7dcab
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcRechargeOrderMapper.java
@@ -0,0 +1,11 @@
+package com.xhpc.tradebill.mapper;
+
+import com.xhpc.tradebill.domain.XhpcRechargeOrderDomain;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface XhpcRechargeOrderMapper {
+
+ XhpcRechargeOrderDomain findOneByOrderNumber(String orderNumber);
+
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcRefundOrderMapper.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcRefundOrderMapper.java
new file mode 100644
index 00000000..417bf135
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcRefundOrderMapper.java
@@ -0,0 +1,11 @@
+package com.xhpc.tradebill.mapper;
+
+import com.xhpc.tradebill.domain.XhpcRefundOrderDomain;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface XhpcRefundOrderMapper {
+
+ XhpcRefundOrderDomain findByOrderNumber(String orderNumber);
+
+}
\ No newline at end of file
diff --git a/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcTradebillInternetCheckRecordMapper.java b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcTradebillInternetCheckRecordMapper.java
new file mode 100644
index 00000000..c3360614
--- /dev/null
+++ b/xhpc-modules/xhpc-tradebill/src/main/java/com/xhpc/tradebill/mapper/XhpcTradebillInternetCheckRecordMapper.java
@@ -0,0 +1,35 @@
+package com.xhpc.tradebill.mapper;
+
+import com.xhpc.tradebill.domain.XhpcTradebillInternetCheckRecordDomain;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface XhpcTradebillInternetCheckRecordMapper {
+
+ int deleteByPrimaryKey(Integer id);
+
+ int insert(XhpcTradebillInternetCheckRecordDomain record);
+
+ int insertSelective(XhpcTradebillInternetCheckRecordDomain record);
+
+ XhpcTradebillInternetCheckRecordDomain selectByPrimaryKey(Integer id);
+
+ int updateByPrimaryKeySelective(XhpcTradebillInternetCheckRecordDomain record);
+
+ int updateByPrimaryKey(XhpcTradebillInternetCheckRecordDomain record);
+
+ List selectListByParams(@Param("params") Map params);
+
+ List