增加电量抽成

This commit is contained in:
yuyang 2021-12-15 15:14:59 +08:00
parent 8f96c7f6f4
commit 72a93a45c4
18 changed files with 145 additions and 48 deletions

View File

@ -191,7 +191,6 @@ public class XhpcChargingStationController extends BaseController {
return AjaxResult.success(xhpcChargingStationService.getXhpcChargingStationMessage(chargingStationId, type));
}
/**
* 编辑电站基本信息
*

View File

@ -209,7 +209,7 @@ public interface XhpcChargingStationMapper {
/**
* 今日充电量今日充电用户今日充电次数
*/
Map<String, Object> getXhpcRateTimeOrderStatistics(@Param("chargingStationId") Long chargingStationId);
Map<String, Object> getXhpcRateTimeOrderStatistics(@Param("chargingStationId") Long chargingStationId,@Param("createTime")String createTime);
/**
* 删除之前的费率

View File

@ -637,10 +637,10 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi
map.put("xhpcRateTimeList", xhpcRateTimeTypeList);
if (type == 2) {
//统计终端充redis获取终端信息
map =getTerminalStatusSum(map, chargingStationId,0);
map =getTerminalStatusSum(map, chargingStationId,1);
map.putAll(xhpcChargingStationMapper.getXhpcRateTimeOrderStatistics(chargingStationId));
Date beginOfDay = DateUtil.beginOfDay(new Date());
map.putAll(xhpcChargingStationMapper.getXhpcRateTimeOrderStatistics(chargingStationId,beginOfDay.toString()));
}
return map;
}

View File

@ -840,16 +840,12 @@
</select>
<select id="getXhpcRateTimeOrderStatistics" resultType="java.util.Map">
select IF(SUM(charging_degree) IS NULL, 0, SUM(charging_degree)) as chargingDegreeSum,
COUNT(real_time_order_id) as realTimeOrderIdCount,
select IF(SUM(total_power) IS NULL, 0, SUM(total_power)) as chargingDegreeSum,
COUNT(history_order_id) as realTimeOrderIdCount,
COUNT(DISTINCT user_id) as userIdCount
from xhpc_real_time_order
where real_time_order_id in (
select max(real_time_order_id)
from xhpc_real_time_order
WHERE to_days(create_time) = to_days(now())
and charging_station_id = #{chargingStationId}
group by charging_order_id)
from xhpc_history_order
where charging_station_id =#{chargingStationId} and create_time &gt;= #{createTime}
</select>
<update id="updateXhpcRate">

View File

@ -94,6 +94,10 @@ public class XhpcHistoryOrder extends BaseEntity {
* 流量方服务费抽成
*/
private BigDecimal internetSvcCommission;
/**
* 流量方电量抽成
*/
private BigDecimal internetDegreeCommission;
/**
* 平台总金额抽成
@ -254,6 +258,11 @@ public class XhpcHistoryOrder extends BaseEntity {
*/
private String chargingMode;
/**
* 充电方式
*/
private Integer source;
public Integer getConfirmResult() {
return confirmResult;
@ -714,4 +723,20 @@ public class XhpcHistoryOrder extends BaseEntity {
public void setChargingMode(String chargingMode) {
this.chargingMode = chargingMode;
}
public BigDecimal getInternetDegreeCommission() {
return internetDegreeCommission;
}
public void setInternetDegreeCommission(BigDecimal internetDegreeCommission) {
this.internetDegreeCommission = internetDegreeCommission;
}
public Integer getSource() {
return source;
}
public void setSource(Integer source) {
this.source = source;
}
}

View File

@ -480,6 +480,7 @@ public class XhpcHistoryOrderController extends BaseController {
}
//时间没有跨天
xhpcSt.setInternetDegreeCommission(xhpc.getInternetDegreeCommission());
xhpcSt.setStartTimeEvcs(DateUtil.format(startTime, "yyyy-MM-dd HH:mm:ss"));
xhpcSt.setEndTimeEvcs(DateUtil.format(endTime, "yyyy-MM-dd HH:mm:ss"));
xhpcSt.setCreateTime(xhpc.getEndTime());
@ -923,7 +924,7 @@ public class XhpcHistoryOrderController extends BaseController {
xhpcSt.setHistoryOrderId(xhpc.getHistoryOrderId());
xhpcSt.setChargingPileId(xhpc.getChargingPileId());
xhpcSt.setCreateTime(xhpc.getEndTime());
xhpcSt.setInternetDegreeCommission(xhpc.getInternetDegreeCommission());
for (int i = type; i <4 ; i++) {
xhpcSt.setType(i);
xhpcStatisticsService.addStatisticsStation(xhpcSt);

View File

@ -225,9 +225,9 @@ public class XhpcStatisticsController extends BaseController {
* @return
*/
@GetMapping("/getSumSourceList")
public TableDataInfo getSumSourceList(String startTime, String endTime, String internetUserIds,@RequestParam("userId") Long userId, @RequestParam("type") Integer type) {
public TableDataInfo getSumSourceList(String startTime, String endTime, String internetUserIds,@RequestParam("userId") Long userId, @RequestParam("type") Integer type, String chargingStationIds) {
startPage();
List<Map<String, Object>> list = xhpcStatisticsService.getSumSourceList(startTime,endTime,internetUserIds,userId, type);
List<Map<String, Object>> list = xhpcStatisticsService.getSumSourceList(startTime,endTime,internetUserIds,userId, type,chargingStationIds);
return getDataTable(list);
}
@ -299,18 +299,12 @@ public class XhpcStatisticsController extends BaseController {
}
/**
* 流量方统计导出
* @param internetUserIds 流量方集合
* @param internetUserId 流量方id
* @param startTime 订单开始时间
* @param endTime 订单结束时间
* @param userId 用户id
* @param type 1 平台 2 运营商 3流量方
* 订单来源统计导出
* @return
*/
@PostMapping("/internetUserInterval/export")
public void internetUserIntervalExport(HttpServletResponse response, String internetUserIds,Long internetUserId,String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type")Integer type) throws IOException {
xhpcStatisticsService.internetUserIntervalExport(response, internetUserIds,internetUserId,startTime,endTime,userId,type);
public void internetUserIntervalExport(HttpServletResponse response, String startTime, String endTime,String internetUserIds, @RequestParam("userId") Long userId, @RequestParam("type")Integer type, String chargingStationIds) throws IOException {
xhpcStatisticsService.getSumSourceListExport(response, startTime,endTime,internetUserIds,userId,type,chargingStationIds);
}

View File

@ -65,6 +65,10 @@ public class XhpcStatisticsStation extends BaseEntity {
* 流量方服务费抽成
*/
private BigDecimal internetSvcCommission;
/**
* 流量方电量抽成
*/
private BigDecimal internetDegreeCommission;
/**
* 平台总金额抽成
*/

View File

@ -69,6 +69,10 @@ public class XhpcStatisticsTimeInterval extends BaseEntity {
* 流量方服务费抽成
*/
private BigDecimal internetSvcCommission;
/**
* 流量方电量抽成
*/
private BigDecimal internetDegreeCommission;
/**
* 平台总金额抽成
*/
@ -415,4 +419,11 @@ public class XhpcStatisticsTimeInterval extends BaseEntity {
this.servicePriceEvcs = servicePriceEvcs;
}
public BigDecimal getInternetDegreeCommission() {
return internetDegreeCommission;
}
public void setInternetDegreeCommission(BigDecimal internetDegreeCommission) {
this.internetDegreeCommission = internetDegreeCommission;
}
}

View File

@ -74,7 +74,10 @@ public class XhpcChargeHistoryOrder {
* 流量方服务费抽成
*/
private BigDecimal internetSvcCommission;
/**
* 流量方抽成
*/
private BigDecimal internetDegreeCommission;
/**
* 平台总金额抽成
*/
@ -754,4 +757,12 @@ public class XhpcChargeHistoryOrder {
public void setChargingMode(String chargingMode) {
this.chargingMode = chargingMode;
}
public BigDecimal getInternetDegreeCommission() {
return internetDegreeCommission;
}
public void setInternetDegreeCommission(BigDecimal internetDegreeCommission) {
this.internetDegreeCommission = internetDegreeCommission;
}
}

View File

@ -153,7 +153,7 @@ public interface XhpcStatisticsServiceMapper {
* @param type 1 平台 2 运营商 3流量方
* @return
*/
List<Map<String,Object>> getSumSourceList(@Param("startTime")String startTime, @Param("endTime")String endTime,@Param("sourceIds")List<String> sourceIds, @Param("userId")Long userId, @Param("type")Integer type);
List<Map<String,Object>> getSumSourceList(@Param("startTime")String startTime, @Param("endTime")String endTime,@Param("sourceIds")List<String> sourceIds, @Param("userId")Long userId, @Param("type")Integer type,@Param("chargingStationIdList")List<String> chargingStationIdList);
/**
* 获取登陆用户信息

View File

@ -3,6 +3,7 @@ package com.xhpc.order.service;
import com.xhpc.common.core.web.domain.AjaxResult;
import com.xhpc.order.domain.XhpcStatisticsStation;
import com.xhpc.order.domain.XhpcStatisticsTimeInterval;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
@ -148,7 +149,7 @@ public interface IXhpcStatisticsService {
* @param type 1 平台 2 运营商 3流量方
* @return
*/
List<Map<String, Object>> getSumSourceList(String startTime, String endTime, String sourceIds,Long userId,Integer type);
List<Map<String, Object>> getSumSourceList(String startTime, String endTime, String sourceIds,Long userId,Integer type, String chargingStationIds);
/**
* 添加时段订单统计
@ -223,16 +224,10 @@ public interface IXhpcStatisticsService {
/**
* 流量方统计导出
* @param internetUserIds 流量方集合
* @param internetUserId 流量方id
* @param startTime 订单开始时间
* @param endTime 订单结束时间
* @param userId 用户id
* @param type 1 平台 2 运营商 3流量方
* 订单来源统计导出
* @return
*/
void internetUserIntervalExport(HttpServletResponse response, String internetUserIds, Long internetUserId, String startTime, String endTime, Long userId, Integer type) throws IOException;
void getSumSourceListExport(HttpServletResponse response, String startTime, String endTime, String sourceIds,Long userId,Integer type, String chargingStationIds) throws IOException;
/**

View File

@ -148,7 +148,7 @@ public class XhpcHistoryOrderServiceImpl implements IXhpcHistoryOrderService {
writer.addHeaderAlias("startTime", "开始充电时间");
writer.addHeaderAlias("endTime", "结束充电时间");
writer.addHeaderAlias("updateTime", "结算时间");
writer.addHeaderAlias("source", "订单来源0C端用户 1流量用户");
writer.addHeaderAlias("sourceName", "订单来源");
// writer.addHeaderAlias("plateNum", "电站名称");
// writer.addHeaderAlias("disputeOrderStatus", "桩编号");

View File

@ -341,6 +341,8 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
BigDecimal internetCommission =new BigDecimal(0);
//流量方服务费抽成
BigDecimal internetSvcCommission =new BigDecimal(0);
//流量方电量抽成
BigDecimal internetDegreeCommission =new BigDecimal(0);
//平台总金额抽成
BigDecimal platformCommission =new BigDecimal(0);
//平台服务费抽成
@ -375,10 +377,16 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
internetCommission = decimal1.add(decimal2);
surplusPowerPrice =surplusPowerPrice.subtract(decimal1);
surplusServicePrice =surplusServicePrice.subtract(decimal2);
}else{
}else if("1".equals(commissionType)){
BigDecimal decimal2 = surplusServicePrice.multiply(commissionRate).setScale(2, BigDecimal.ROUND_DOWN);
internetCommission = decimal2;
internetSvcCommission = decimal2;
surplusServicePrice = surplusServicePrice.subtract(decimal2);
}else{
//电量抽成
BigDecimal chargingDegree = xhpcChargeOrder.getChargingDegree();
internetDegreeCommission = chargingDegree.multiply(new BigDecimal(operatorIdEvcs.get("commissionRate").toString())).setScale(2, BigDecimal.ROUND_DOWN);
//减服务费
surplusServicePrice = surplusServicePrice.subtract(internetDegreeCommission);
}
}
}
@ -510,6 +518,7 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
xhpcHistoryOrder.setActServicePrice(surplusServicePrice.setScale(2, BigDecimal.ROUND_DOWN));
xhpcHistoryOrder.setInternetCommission(internetCommission.setScale(2, BigDecimal.ROUND_DOWN));
xhpcHistoryOrder.setInternetSvcCommission(internetSvcCommission.setScale(2, BigDecimal.ROUND_DOWN));
xhpcHistoryOrder.setInternetDegreeCommission(internetDegreeCommission.setScale(2, BigDecimal.ROUND_DOWN));
xhpcHistoryOrder.setPlatformCommission(platformCommission.setScale(2, BigDecimal.ROUND_DOWN));
xhpcHistoryOrder.setPlatformSvcCommisssion(platformSvcCommission.setScale(2, BigDecimal.ROUND_DOWN));
xhpcHistoryOrder.setOperationCommission(operationCommission.setScale(2, BigDecimal.ROUND_DOWN));
@ -517,6 +526,7 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService {
xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc());
xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc());
xhpcHistoryOrder.setReconciliationStatus(0);
xhpcHistoryOrder.setSource(xhpcChargeOrder.getSource());
Date date = new Date();
xhpcHistoryOrder.setCreateTime(date);
xhpcHistoryOrder.setChargeModelEvcs(3);

View File

@ -413,12 +413,16 @@ public class XhpcStatisticsServiceImpl implements IXhpcStatisticsService {
}
@Override
public List<Map<String, Object>> getSumSourceList(String startTime, String endTime, String sourceIds, Long userId, Integer type) {
public List<Map<String, Object>> getSumSourceList(String startTime, String endTime, String sourceIds, Long userId, Integer type,String chargingStationIds) {
List<String> sourceList =new ArrayList<>();
if(!"".equals(sourceIds) && sourceIds !=null){
sourceList= Arrays.asList(sourceIds.split(","));
}
return xhpcStatisticsServiceMapper.getSumSourceList(startTime, endTime, sourceList, userId, type);
List<String> chargingStationIdList =new ArrayList<>();
if(!"".equals(chargingStationIds) && chargingStationIds !=null){
chargingStationIdList= Arrays.asList(chargingStationIds.split(","));
}
return xhpcStatisticsServiceMapper.getSumSourceList(startTime, endTime, sourceList, userId, type,chargingStationIdList);
}
@Override
@ -660,8 +664,9 @@ public class XhpcStatisticsServiceImpl implements IXhpcStatisticsService {
@Override
public void internetUserIntervalExport(HttpServletResponse response, String internetUserIds, Long internetUserId, String startTime, String endTime, Long userId, Integer type) throws IOException {
List<Map<String, Object>> list = getInternetUserIntervalPage(internetUserIds, internetUserId, startTime, endTime, userId, type);
public void getSumSourceListExport(HttpServletResponse response, String startTime, String endTime, String sourceIds,Long userId,Integer type, String chargingStationIds) throws IOException {
List<Map<String, Object>> list = getSumSourceList(startTime, endTime, sourceIds, userId, type,chargingStationIds);
// 通过工具类创建writer默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter(true);

View File

@ -53,6 +53,8 @@
<result column="total_power" jdbcType="DOUBLE" property="totalPower"/>
<result column="user_name_evcs" jdbcType="VARCHAR" property="userNameEvcs"/>
<result column="phone" jdbcType="VARCHAR" property="phone"/>
<result column="internet_degree_commission" jdbcType="DECIMAL" property="internetDegreeCommission"/>
<result column="source" jdbcType="INTEGER" property="source"/>
</resultMap>
<sql id="Base_Column_List">
history_order_id, charging_station_id, charge_order_id, user_id, terminal_id, serial_number,
@ -213,6 +215,12 @@
<if test="chargingMode != null">
charging_mode,
</if>
<if test="source != null">
source,
</if>
<if test="internetDegreeCommission != null">
internet_degree_commission,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="chargingStationId != null">
@ -359,6 +367,12 @@
<if test="chargingMode != null">
#{chargingMode,jdbcType=VARCHAR},
</if>
<if test="source != null">
#{source},
</if>
<if test="internetDegreeCommission != null">
#{internetDegreeCommission},
</if>
</trim>
</insert>
@ -620,7 +634,12 @@
dispute_order_status as disputeOrderStatus,
inu.phone as internetUserPhone,
inu.name as internetName,
apu.phone as appUserPhone
apu.phone as appUserPhone,
case when co.source=0 then "C端用户"
when co.source=1 then "流量方用户"
when co.source=2 then "社区用户"
else "B端客户!"
end sourceName
from xhpc_history_order as ho
left join xhpc_charging_station as ct on ct.charging_station_id = ho.charging_station_id
left join xhpc_operator as op on op.operator_id = ct.operator_id
@ -758,6 +777,7 @@
ho.service_price_total as servicePriceTotal,
ho.internet_commission as internetCommission,
ho.internet_svc_commission as internetSvcCommission,
ho.internet_degree_commission as internetDegreeCommission,
ho.platform_commission as platformCommission,
ho.platform_svc_commisssion as platformSvcCommisssion,
ho.operation_commission as operationCommission,
@ -810,6 +830,7 @@
ho.act_service_price as actServicePrice,
ho.internet_commission as internetCommission,
ho.internet_svc_commission as internetSvcCommission,
ho.internet_degree_commission as internetDegreeCommission,
ho.platform_commission as platformCommission,
ho.platform_svc_commisssion as platformSvcCommisssion,
ho.operation_commission as operationCommission,

View File

@ -50,6 +50,7 @@
sum(promotion_discount) promotionDiscount,
sum(internet_commission) internetCommission,
sum(internet_svc_commission) internetSvcCommission,
sum(internet_degree_commission) internetDegreeCommission,
sum(platform_commission) platformCommission,
sum(platform_svc_commisssion) platformSvcCommisssion,
sum(operation_commission) operationCommission,
@ -118,6 +119,7 @@
sum(promotion_discount) promotionDiscount,
sum(internet_commission) internetCommission,
sum(internet_svc_commission) internetSvcCommission,
sum(internet_degree_commission) internetDegreeCommission,
sum(platform_commission) platformCommission,
sum(platform_svc_commisssion) platformSvcCommisssion,
sum(operation_commission) operationCommission,
@ -161,6 +163,7 @@
sum(ss.promotion_discount) promotionDiscount,
sum(ss.internet_commission) internetCommission,
sum(ss.internet_svc_commission) internetSvcCommission,
sum(ss.internet_degree_commission) internetDegreeCommission,
sum(ss.platform_commission) platformCommission,
sum(ss.platform_svc_commisssion) platformSvcCommisssion,
sum(ss.operation_commission) operationCommission,
@ -213,6 +216,7 @@
sum(ss.promotion_discount) promotionDiscount,
sum(ss.internet_commission) internetCommission,
sum(ss.internet_svc_commission) internetSvcCommission,
sum(ss.internet_degree_commission) internetDegreeCommission,
sum(ss.platform_commission) platformCommission,
sum(ss.platform_svc_commisssion) platformSvcCommisssion,
sum(ss.operation_commission) operationCommission,
@ -257,6 +261,7 @@
sum(ss.promotion_discount) promotionDiscount,
sum(ss.internet_commission) internetCommission,
sum(ss.internet_svc_commission) internetSvcCommission,
sum(ss.internet_degree_commission) internetDegreeCommission,
sum(ss.platform_commission) platformCommission,
sum(ss.platform_svc_commisssion) platformSvcCommisssion,
sum(ss.operation_commission) operationCommission,
@ -298,6 +303,7 @@
sum(ss.promotion_discount) promotionDiscount,
sum(ss.internet_commission) internetCommission,
sum(ss.internet_svc_commission) internetSvcCommission,
sum(ss.internet_degree_commission) internetDegreeCommission,
sum(ss.platform_commission) platformCommission,
sum(ss.platform_svc_commisssion) platformSvcCommisssion,
sum(ss.operation_commission) operationCommission,
@ -474,7 +480,10 @@
elec_price_evcs,
</if>
<if test="null != servicePriceEvcs ">
service_price_evcs
service_price_evcs,
</if>
<if test="null != internetDegreeCommission ">
internet_degree_commission
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
@ -563,7 +572,10 @@
#{elecPriceEvcs},
</if>
<if test="null != servicePriceEvcs ">
#{servicePriceEvcs}
#{servicePriceEvcs},
</if>
<if test="null != internetDegreeCommission ">
#{internetDegreeCommission}
</if>
</trim>
</insert>
@ -652,6 +664,9 @@
<if test="chargingMode != null">
charging_mode,
</if>
<if test="null != internetDegreeCommission ">
internet_degree_commission
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="null != chargingDegree ">
@ -735,6 +750,9 @@
<if test="chargingMode != null">
#{chargingMode},
</if>
<if test="null != internetDegreeCommission ">
#{internetDegreeCommission},
</if>
</trim>
</insert>
@ -768,6 +786,7 @@
sum(ss.promotion_discount) promotionDiscount,
sum(ss.internet_commission) internetCommission,
sum(ss.internet_svc_commission) internetSvcCommission,
sum(ss.internet_degree_commission) internetDegreeCommission,
sum(ss.platform_commission) platformCommission,
sum(ss.platform_svc_commisssion) platformSvcCommisssion,
sum(ss.operation_commission) operationCommission,
@ -789,6 +808,12 @@
#{sourceId}
</foreach>
</if>
<if test="chargingStationIdList !=null and chargingStationIdList.size()>0">
and ss.charging_station_id in
<foreach collection="chargingStationIdList" open="(" item="chargingStationId" separator="," close=")" >
#{chargingStationId}
</foreach>
</if>
group by ss.charging_mode
</select>
</mapper>

View File

@ -29,12 +29,12 @@ public class XhpcRefundOrder extends BaseEntity {
private Long userId;
/**
* 微信支付订单号
* 微信用户openid
*/
private String openId;
/**
* 支付宝订单编号
* 支付宝用户AlipayId
*/
private String alipayId;