首页充电数据、创建订单量

This commit is contained in:
yuyang 2022-03-22 15:15:37 +08:00
parent ae4fee772d
commit 2ce68c04b9
5 changed files with 306 additions and 28 deletions

View File

@ -377,4 +377,26 @@ public class XhpcStatisticsController extends BaseController {
{ {
return AjaxResult.success(xhpcStatisticsService.getTodayTerminal(operatorId,chargingStationId,chargingPileId)); return AjaxResult.success(xhpcStatisticsService.getTodayTerminal(operatorId,chargingStationId,chargingPileId));
} }
/**
* 充电数据
* @param type 1 近30天 2上个月 3本月 4.近12月
*/
@GetMapping("/getDateOrder")
public AjaxResult getDateOrder(Long operatorId,Long chargingStationId,Long chargingPileId,Integer type,String startTime,String endTime)
{
return AjaxResult.success(xhpcStatisticsService.getDateOrder(1,operatorId,chargingStationId,chargingPileId,type,startTime,endTime));
}
/**
* 创建订单量
* @param type 1 近30天 2上个月 3本月 4.近12月
*/
@GetMapping("/getDateOrderCount")
public AjaxResult getDateOrderCount(Long operatorId,Long chargingStationId,Long chargingPileId,Integer type,String startTime,String endTime)
{
return AjaxResult.success(xhpcStatisticsService.getDateOrder(2,operatorId,chargingStationId,chargingPileId,type,startTime,endTime));
}
} }

View File

@ -199,4 +199,15 @@ public interface XhpcStatisticsServiceMapper {
List<String> getTerminal(@Param("status") Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId,@Param("chargingStationId")Long chargingStationId,@Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId); List<String> getTerminal(@Param("status") Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId,@Param("chargingStationId")Long chargingStationId,@Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId);
List<Map<String, Object>> getDateOrder(@Param("type") Integer type,@Param("status") Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId,@Param("chargingStationId")Long chargingStationId,@Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay);
int getDateOrderNUmber(@Param("type") Integer type,@Param("status") Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId,@Param("chargingStationId")Long chargingStationId,@Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay);
List<Map<String, Object>> getDateOrderCount(@Param("type") Integer type,@Param("status") Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId,@Param("chargingStationId")Long chargingStationId,@Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay);
int getDateOrderCountNUmber(@Param("type") Integer type,@Param("status") Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId,@Param("chargingStationId")Long chargingStationId,@Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay);
} }

View File

@ -284,4 +284,12 @@ public interface IXhpcStatisticsService {
* 今日电枪实时状态 * 今日电枪实时状态
*/ */
Map<String, Object> getTodayTerminal(Long operatorId,Long chargingStationId,Long chargingPileId); Map<String, Object> getTodayTerminal(Long operatorId,Long chargingStationId,Long chargingPileId);
/**
* 今日电枪实时状态
*
* @param state 1 充电数据 2.创建订单量
*/
Map<String, Object> getDateOrder(Integer state,Long operatorId,Long chargingStationId,Long chargingPileId,Integer type,String startTime,String endTime);
} }

View File

@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
/** /**
@ -1065,6 +1066,131 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati
return map; return map;
} }
/**
* 今日电枪实时状态
*
* @param operatorId
* @param chargingStationId
* @param chargingPileId
* @param type
* @param startTime
* @param endTime
*/
@Override
public Map<String, Object> getDateOrder(Integer state,Long operatorId, Long chargingStationId, Long chargingPileId, Integer type, String startTime, String endTime) {
//1 近30天 2上个月 3本月 4.近12月
LoginUser loginUser = tokenService.getLoginUser();
String tenantId = loginUser.getTenantId();
Long logUserId = SecurityUtils.getUserId();
SysUser sysUser = loginUser.getSysUser();
//今日订单量
//今天时间格式 yyyy-mm-dd
Date date = new Date();
Date beginOfDay = DateUtil.beginOfDay(date);
Date endOfDay = DateUtil.endOfDay(date);
String conditionBeginOfDay = null;
String conditionEndOfDay = null;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(type==null || type ==1){
conditionBeginOfDay = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -30));
conditionEndOfDay = DateUtil.formatDateTime(endOfDay);
}else if(type ==2){
//获取前月的第一天
Calendar cal_1=Calendar.getInstance();//获取当前日期
cal_1.add(Calendar.MONTH, -1);
cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
conditionBeginOfDay = format.format(cal_1.getTime());
//获取前月的最后一天
Calendar cale = Calendar.getInstance();
cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天
conditionEndOfDay = format.format(cale.getTime());
}else if(type ==3){
//获取当前月第一天
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
conditionBeginOfDay = format.format(c.getTime());
//获取当前月最后一天
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
conditionEndOfDay = format.format(ca.getTime());
}else{
Calendar cal_1=Calendar.getInstance();//获取当前日期
cal_1.add(Calendar.MONTH, -12);
cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
conditionBeginOfDay = format.format(cal_1.getTime());
conditionEndOfDay = DateUtil.formatDateTime(endOfDay);
}
if(state==1){
if(tenantId !=null && !"".equals(tenantId)){
if(sysUser.getUserId() !=UserTypeUtil.USER_ID){
Long logOperatorId = sysUser.getOperatorId();
if ("01".equals(sysUser.getUserType())) {
//运营商看自己的场站
return extracted(1,type,logOperatorId,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay) ;
}else{
//查询赋值的场站
return extracted(2,type,logUserId,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay) ;
}
}else{
//全部桩
return extracted(0,type,null,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay) ;
}
}
return new HashMap<>();
}
if(tenantId !=null && !"".equals(tenantId)){
if(sysUser.getUserId() !=UserTypeUtil.USER_ID){
Long logOperatorId = sysUser.getOperatorId();
if ("01".equals(sysUser.getUserType())) {
//运营商看自己的场站
return averageOrder(1,type,logOperatorId,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay) ;
}else{
//查询赋值的场站
return averageOrder(2,type,logUserId,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay) ;
}
}else{
//全部桩
return averageOrder(0,type,null,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay) ;
}
}
return new HashMap<>();
}
private Map<String, Object> averageOrder(Integer status,Integer type,Long logOperatorId,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId,String conditionBeginOfDay,String conditionEndOfDay) {
List<Map<String, Object>> dateOrder = xhpcStatisticsServiceMapper.getDateOrderCount(type,status,logOperatorId,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay);
int dateOrderNUmber = xhpcStatisticsServiceMapper.getDateOrderCountNUmber(type, status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, conditionBeginOfDay, conditionEndOfDay);
Map<String ,Object> map =new HashMap<>();
if(dateOrder !=null && dateOrder.size()>0 ){
BigDecimal divide = new BigDecimal(dateOrderNUmber).divide(BigDecimal.valueOf(dateOrder.size()), 2, BigDecimal.ROUND_HALF_UP);
map.put("averageOrder",divide);
map.put("list",dateOrder);
}else{
map.put("averageOrder",0);
map.put("list",new ArrayList<>());
}
return map;
}
private Map<String, Object> extracted(Integer status,Integer type,Long logOperatorId,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId,String conditionBeginOfDay,String conditionEndOfDay) {
List<Map<String, Object>> dateOrder = xhpcStatisticsServiceMapper.getDateOrder(type,status,logOperatorId,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay);
int dateOrderNUmber = xhpcStatisticsServiceMapper.getDateOrderNUmber(type, status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, conditionBeginOfDay, conditionEndOfDay);
Map<String ,Object> map =new HashMap<>();
if(dateOrder !=null && dateOrder.size()>0 ){
BigDecimal divide = new BigDecimal(dateOrderNUmber).divide(BigDecimal.valueOf(dateOrder.size()), 2, BigDecimal.ROUND_HALF_UP);
map.put("averagePower",divide);
map.put("list",dateOrder);
}else{
map.put("averagePower",0);
map.put("list",new ArrayList<>());
}
return map;
}
private void extracted(Integer status,Long logOperatorId,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId, Map<String, Object> map) { private void extracted(Integer status,Long logOperatorId,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId, Map<String, Object> map) {
List<String> terminal = xhpcStatisticsServiceMapper.getTerminal(status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId); List<String> terminal = xhpcStatisticsServiceMapper.getTerminal(status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId);
@ -1234,35 +1360,25 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati
return c; return c;
} }
public static void main(String[] args) { public static void main(String[] args) {
DateTime date = DateUtil.date(); String firstDay;
DateTime dateTime = DateUtil.lastWeek(); String lastDay;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("dateTime:"+dateTime); Calendar cal_1=Calendar.getInstance();//获取当前日期
cal_1.add(Calendar.MONTH, -12);
cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String week = ""; firstDay = format.format(cal_1.getTime());
//一天的开始结果2017-03-01 00:00:00 System.out.println("-----1------firstDay:"+firstDay);
Date beginOfDay = DateUtil.beginOfDay(date); //获取前月的最后一天
Date endOfDay = DateUtil.endOfDay(date); Calendar cale = Calendar.getInstance();
System.out.println("week00:"+beginOfDay); cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天
System.out.println("week00:"+beginOfDay); lastDay = format.format(cale.getTime());
week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -9)); System.out.println("-----2------lastDay:"+lastDay);
System.out.println("week11:"+week);
week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -3));
System.out.println("week22:"+week);
week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -2));
System.out.println("week33:"+week);
week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, 4));
System.out.println("week44:"+week);
} }
} }

View File

@ -1064,4 +1064,125 @@
and charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{logOperatorId}) and charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{logOperatorId})
</if> </if>
</select> </select>
<select id="getDateOrder" resultType="map">
select
sum(total_power) totalPower,
sum(total_price) totalPrice,
sum(power_price_total) powerPriceTotal,
sum(service_price_total) servicePriceTotal,
<if test="type!=null and type ==4">
date_format(end_time, '%Y-%m') time
</if>
<if test="type !=4">
DATE_FORMAT(end_time, '%Y-%m-%d') time
</if>
from xhpc_history_order
where end_time &gt;=#{beginOfDay} and end_time &lt;= #{endOfDay}
<if test="operatorId !=null and ''!=operatorId">
and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{operatorId})
</if>
<if test="tenantId !=null and tenantId !=''">
and tenant_id = #{tenantId}
</if>
<if test="chargingStationId !=null">
and charging_station_id=#{chargingStationId}
</if>
<if test="chargingPileId !=null">
and charging_pile_id=#{chargingPileId}
</if>
<if test="status==1">
and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{logOperatorId})
</if>
<if test="status==2">
and charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{logOperatorId})
</if>
GROUP BY time
order by end_time
</select>
<select id="getDateOrderNUmber" resultType="int">
select
sum(total_power) totalPower
from xhpc_history_order
where end_time &gt;=#{beginOfDay} and end_time &lt;= #{endOfDay}
<if test="operatorId !=null and ''!=operatorId">
and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{operatorId})
</if>
<if test="tenantId !=null and tenantId !=''">
and tenant_id = #{tenantId}
</if>
<if test="chargingStationId !=null">
and charging_station_id=#{chargingStationId}
</if>
<if test="chargingPileId !=null">
and charging_pile_id=#{chargingPileId}
</if>
<if test="status==1">
and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{logOperatorId})
</if>
<if test="status==2">
and charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{logOperatorId})
</if>
</select>
<select id="getDateOrderCount" resultType="map">
select
count(history_order_id) number,
<if test="type!=null and type ==4">
date_format(end_time, '%Y-%m') time
</if>
<if test="type !=4">
DATE_FORMAT(end_time, '%Y-%m-%d') time
</if>
from xhpc_history_order
where end_time &gt;=#{beginOfDay} and end_time &lt;= #{endOfDay}
<if test="operatorId !=null and ''!=operatorId">
and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{operatorId})
</if>
<if test="tenantId !=null and tenantId !=''">
and tenant_id = #{tenantId}
</if>
<if test="chargingStationId !=null">
and charging_station_id=#{chargingStationId}
</if>
<if test="chargingPileId !=null">
and charging_pile_id=#{chargingPileId}
</if>
<if test="status==1">
and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{logOperatorId})
</if>
<if test="status==2">
and charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{logOperatorId})
</if>
GROUP BY time
order by end_time
</select>
<select id="getDateOrderCountNUmber" resultType="int">
select
count(history_order_id) number
from xhpc_history_order
where end_time &gt;=#{beginOfDay} and end_time &lt;= #{endOfDay}
<if test="operatorId !=null and ''!=operatorId">
and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{operatorId})
</if>
<if test="tenantId !=null and tenantId !=''">
and tenant_id = #{tenantId}
</if>
<if test="chargingStationId !=null">
and charging_station_id=#{chargingStationId}
</if>
<if test="chargingPileId !=null">
and charging_pile_id=#{chargingPileId}
</if>
<if test="status==1">
and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{logOperatorId})
</if>
<if test="status==2">
and charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{logOperatorId})
</if>
</select>
</mapper> </mapper>