diff --git a/xhpc-modules/xhpc-log/.gitignore b/xhpc-modules/xhpc-log/.gitignore
new file mode 100644
index 00000000..54283dd4
--- /dev/null
+++ b/xhpc-modules/xhpc-log/.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-log/pom.xml b/xhpc-modules/xhpc-log/pom.xml
new file mode 100644
index 00000000..01edd8a5
--- /dev/null
+++ b/xhpc-modules/xhpc-log/pom.xml
@@ -0,0 +1,132 @@
+
+
+
+ com.ruoyi
+ xhpc-modules
+ 3.0.0
+
+ 4.0.0
+
+ xhpc-log
+
+
+ 日志服务
+
+
+ 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
+
+
+
+ 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-log/src/main/java/com/xhpc/log/XhpcLogApplication.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/XhpcLogApplication.java
new file mode 100644
index 00000000..cbb90fdd
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/XhpcLogApplication.java
@@ -0,0 +1,22 @@
+package com.xhpc.log;
+
+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.cloud.client.discovery.EnableDiscoveryClient;
+
+
+@EnableCustomConfig
+@SpringBootApplication
+@EnableRyFeignClients
+@EnableDiscoveryClient
+@MapperScan("com.xhpc.log.mapper")
+public class XhpcLogApplication {
+
+ public static void main(String[] args) {
+
+ SpringApplication.run(XhpcLogApplication.class, args);
+ }
+}
diff --git a/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/OrderLogController.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/OrderLogController.java
new file mode 100644
index 00000000..a4f84ec0
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/OrderLogController.java
@@ -0,0 +1,38 @@
+package com.xhpc.log.controller;
+
+import com.xhpc.common.core.web.controller.BaseController;
+import com.xhpc.common.core.web.page.TableDataInfo;
+import com.xhpc.log.service.OrderLogService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 订单报文日志
+ */
+@RestController
+@RequestMapping("/log/order/")
+public class OrderLogController extends BaseController {
+
+ @Resource
+ OrderLogService orderLogService;
+
+ @GetMapping("/getPage")
+ public TableDataInfo getOrderPage(){
+ startPage();
+
+ return getDataTable(orderLogService.getOrderPage());
+ }
+
+
+ @GetMapping("/order/{orderId}")
+ public TableDataInfo getOrderDetailPage(@PathVariable("orderId") String orderId){
+ startPage();
+ return getDataTable(orderLogService.getOrderDetailPage(orderId));
+ }
+
+}
diff --git a/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/PileLogController.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/PileLogController.java
new file mode 100644
index 00000000..d7a955dc
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/PileLogController.java
@@ -0,0 +1,39 @@
+package com.xhpc.log.controller;
+
+
+import com.xhpc.common.core.web.controller.BaseController;
+import com.xhpc.common.core.web.page.TableDataInfo;
+import com.xhpc.log.service.PileLogService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 桩运行日志
+ */
+@RestController
+@RequestMapping("/log/pile")
+public class PileLogController extends BaseController {
+
+ @Resource
+ PileLogService pileLogService;
+
+
+ @GetMapping("/getPage")
+ public TableDataInfo getPilePage() {
+ startPage();
+ return getDataTable(pileLogService.getPilePage());
+ }
+
+
+ @GetMapping("/pile/{pileId}")
+ public TableDataInfo getPileDetailPage(@PathVariable("pileId") Long pileId) {
+ startPage();
+ return getDataTable(pileLogService.getPileRunLogPage(pileId));
+ }
+
+}
diff --git a/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/StationLogController.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/StationLogController.java
new file mode 100644
index 00000000..d7df3d68
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/StationLogController.java
@@ -0,0 +1,45 @@
+package com.xhpc.log.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.common.core.web.page.TableDataInfo;
+import com.xhpc.log.service.PileLogService;
+import com.xhpc.log.service.StationLogService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/log/station")
+public class StationLogController extends BaseController {
+
+
+ @Resource
+ StationLogService stationLogService;
+
+ @GetMapping("/getPage")
+ public TableDataInfo getPilePage() {
+ startPage();
+ Long operatorId = SecurityUtils.getUserId();
+ int type = 1;
+ return getDataTable(stationLogService.getStationPage(operatorId, type));
+ }
+
+
+ @GetMapping("/pile/{pileId}")
+ public TableDataInfo getPileDetailPage(@PathVariable("pileId") Long pileId) {
+ startPage();
+ return getDataTable(stationLogService.getStationRatePage(pileId));
+ }
+
+
+ @GetMapping("/rate/{rateId}")
+ public AjaxResult getRateInfo(@PathVariable("rateId") Integer rateId) {
+ return AjaxResult.success(stationLogService.getRateInfo(rateId));
+ }
+}
diff --git a/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/SystemLogController.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/SystemLogController.java
new file mode 100644
index 00000000..761a201b
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/controller/SystemLogController.java
@@ -0,0 +1,30 @@
+package com.xhpc.log.controller;
+
+
+import com.xhpc.common.core.web.controller.BaseController;
+import com.xhpc.common.core.web.page.TableDataInfo;
+import com.xhpc.log.service.SystemLogService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * 系统操作日志
+ */
+@RestController
+@RequestMapping("/log/system")
+public class SystemLogController extends BaseController {
+
+
+ @Resource
+ SystemLogService systemLogService;
+
+
+ @GetMapping("/getPage")
+ public TableDataInfo getPage(){
+ startPage();
+ return getDataTable(systemLogService.getPage(null));
+ }
+}
diff --git a/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/domain/XhpcChargeOrderDomain.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/domain/XhpcChargeOrderDomain.java
new file mode 100644
index 00000000..2279e246
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/domain/XhpcChargeOrderDomain.java
@@ -0,0 +1,170 @@
+package com.xhpc.log.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-log/src/main/java/com/xhpc/log/domain/XhpcHistoryOrderDomain.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/domain/XhpcHistoryOrderDomain.java
new file mode 100644
index 00000000..9840e54d
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/domain/XhpcHistoryOrderDomain.java
@@ -0,0 +1,250 @@
+package com.xhpc.log.domain;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 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-log/src/main/java/com/xhpc/log/domain/XhpcMessageDomain.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/domain/XhpcMessageDomain.java
new file mode 100644
index 00000000..1f097d60
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/domain/XhpcMessageDomain.java
@@ -0,0 +1,54 @@
+package com.xhpc.log.domain;
+
+import com.xhpc.common.core.web.domain.BaseEntity;
+
+/**
+ * program: ruoyi
+ * User: HongYun
+ * Date:2021-09-13 15
+ */
+public class XhpcMessageDomain extends BaseEntity {
+
+ private Long messageId;
+ private String chargeOrderNo;
+ private String content;
+ private Integer status;
+
+ public Long getMessageId() {
+
+ return messageId;
+ }
+
+ public void setMessageId(Long messageId) {
+
+ this.messageId = messageId;
+ }
+
+ public String getChargeOrderNo() {
+
+ return chargeOrderNo;
+ }
+
+ public void setChargeOrderNo(String chargeOrderNo) {
+
+ this.chargeOrderNo = chargeOrderNo;
+ }
+
+ public String getContent() {
+
+ return content;
+ }
+
+ public void setContent(String content) {
+
+ this.content = content;
+ }
+
+ public Integer getStatus() {
+ return status;
+ }
+
+ public void setStatus(Integer status) {
+ this.status = status;
+ }
+}
diff --git a/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/mapper/SysOperLogMapper.java b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/mapper/SysOperLogMapper.java
new file mode 100644
index 00000000..271095f5
--- /dev/null
+++ b/xhpc-modules/xhpc-log/src/main/java/com/xhpc/log/mapper/SysOperLogMapper.java
@@ -0,0 +1,18 @@
+package com.xhpc.log.mapper;
+
+import com.xhpc.system.api.domain.SysOperLog;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 操作日志 数据层
+ *
+ * @author ruoyi
+ */
+public interface SysOperLogMapper {
+
+ List