充电异常结算订单统计
This commit is contained in:
parent
580541a621
commit
6bb97b1412
@ -417,4 +417,13 @@ public class XhpcStatisticsController extends BaseController {
|
||||
{
|
||||
return AjaxResult.success(xhpcStatisticsService.getEmptyOrder(chargingStationId,startTime,endTime));
|
||||
}
|
||||
|
||||
/**
|
||||
* 异常订单量列表统计
|
||||
* @param type 1 近30天 2上个月 3本月 4.近12月
|
||||
*/
|
||||
@GetMapping("/getWorkHistoryOrderList")
|
||||
public AjaxResult getWorkHistoryOrderList(Long operatorId,Long chargingStationId,Long chargingPileId,Long terminalId,String stopReason,@RequestParam(value = "startTime")String startTime,@RequestParam(value = "endTime")String endTime,Integer type){
|
||||
return AjaxResult.success(xhpcStatisticsService.getWorkHistoryOrderList(operatorId,chargingStationId,chargingPileId,terminalId,stopReason,startTime,endTime,type));
|
||||
}
|
||||
}
|
||||
|
||||
@ -221,5 +221,5 @@ public interface XhpcStatisticsServiceMapper {
|
||||
List<Map<String, Object>> getTerminalEmptyOrder(@Param("chargingStationId")Long chargingStationId,@Param("status") Integer status,@Param("logOperatorId")Long logOperatorId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay);
|
||||
|
||||
|
||||
|
||||
List<Map<String, Object>> getWorkHistoryOrderList(@Param("operatorId")Long operatorId, @Param("chargingStationId")Long chargingStationId,@Param("chargingPileId") Long chargingPileId,@Param("terminalId")Long terminalId, @Param("stopReason")String stopReason,@Param("status") Integer status,@Param("logOperatorId")Long logOperatorId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay);
|
||||
}
|
||||
|
||||
@ -307,4 +307,9 @@ public interface IXhpcStatisticsService {
|
||||
*/
|
||||
List<Map<String, Object>> getEmptyOrder(Long chargingStationId,String startTime,String endTime);
|
||||
|
||||
/**
|
||||
* 异常订单量列表统计
|
||||
*/
|
||||
List<Map<String, Object>> getWorkHistoryOrderList(Long operatorId,Long chargingStationId,Long chargingPileId,Long terminalId,String stopReason,String startTime,String endTime,Integer type);
|
||||
|
||||
}
|
||||
|
||||
@ -1298,6 +1298,107 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 异常订单量列表统计
|
||||
*
|
||||
* @param operatorId
|
||||
* @param chargingStationId
|
||||
* @param chargingPileId
|
||||
* @param stopReason
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
*/
|
||||
@Override
|
||||
public List<Map<String, Object>> getWorkHistoryOrderList(Long operatorId, Long chargingStationId, Long chargingPileId,Long terminalId, String stopReason, String startTime, String endTime,Integer type) {
|
||||
//判断登录用户是系统用户还是运维人员
|
||||
LoginUser loginUser = tokenService.getLoginUser();
|
||||
String tenantId = loginUser.getTenantId();
|
||||
Long logUserId = SecurityUtils.getUserId();
|
||||
SysUser sysUser = loginUser.getSysUser();
|
||||
List<Map<String, Object>> map =new ArrayList<>();
|
||||
//今日订单量
|
||||
//今天时间,格式 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){
|
||||
conditionBeginOfDay = startTime;
|
||||
conditionEndOfDay = endTime;
|
||||
}else if(type ==1){
|
||||
conditionBeginOfDay = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -30));
|
||||
conditionEndOfDay = DateUtil.formatDateTime(endOfDay);
|
||||
}else if(type ==2){
|
||||
//获取前月的第一天
|
||||
Calendar c=Calendar.getInstance();//获取当前日期
|
||||
c.add(Calendar.MONTH, -1);
|
||||
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
||||
c.set(Calendar.HOUR, 0);
|
||||
c.set(Calendar.MINUTE, 0);
|
||||
c.set(Calendar.SECOND, 0);
|
||||
c.set(Calendar.MILLISECOND, 0);
|
||||
conditionBeginOfDay = format.format(c.getTime());
|
||||
//获取前月的最后一天
|
||||
Calendar ca = Calendar.getInstance();
|
||||
ca.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天
|
||||
ca.set(Calendar.HOUR, 23);
|
||||
ca.set(Calendar.MINUTE, 59);
|
||||
ca.set(Calendar.SECOND, 59);
|
||||
ca.set(Calendar.MILLISECOND, 999);
|
||||
conditionEndOfDay = format.format(ca.getTime());
|
||||
}else if(type ==3){
|
||||
//获取当前月第一天:
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.add(Calendar.MONTH, 0);
|
||||
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
||||
c.set(Calendar.HOUR, 0);
|
||||
c.set(Calendar.MINUTE, 0);
|
||||
c.set(Calendar.SECOND, 0);
|
||||
c.set(Calendar.MILLISECOND, 0);
|
||||
conditionBeginOfDay = format.format(c.getTime());
|
||||
//获取当前月最后一天
|
||||
Calendar ca = Calendar.getInstance();
|
||||
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
ca.set(Calendar.HOUR, 23);
|
||||
ca.set(Calendar.MINUTE, 59);
|
||||
ca.set(Calendar.SECOND, 59);
|
||||
ca.set(Calendar.MILLISECOND, 999);
|
||||
conditionEndOfDay = format.format(ca.getTime());
|
||||
}else{
|
||||
Calendar c=Calendar.getInstance();//获取当前日期
|
||||
c.add(Calendar.MONTH, -12);
|
||||
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
||||
c.set(Calendar.HOUR, 0);
|
||||
c.set(Calendar.MINUTE, 0);
|
||||
c.set(Calendar.SECOND, 0);
|
||||
c.set(Calendar.MILLISECOND, 0);
|
||||
conditionBeginOfDay = format.format(c.getTime());
|
||||
conditionEndOfDay = DateUtil.formatDateTime(endOfDay);
|
||||
}
|
||||
if(tenantId !=null && !"".equals(tenantId)){
|
||||
if(UserTypeUtil.SYS_USER_TYPE_FOUR.equals(sysUser.getUserType())){
|
||||
//运维管理人员
|
||||
}else{
|
||||
if(sysUser.getUserId() !=UserTypeUtil.USER_ID){
|
||||
Long logOperatorId = sysUser.getOperatorId();
|
||||
if ("01".equals(sysUser.getUserType())) {
|
||||
//运营商看自己的场站
|
||||
map= xhpcStatisticsServiceMapper.getWorkHistoryOrderList(operatorId,chargingStationId,chargingPileId,terminalId,stopReason,1,logOperatorId,tenantId,conditionBeginOfDay,conditionEndOfDay);
|
||||
}else{
|
||||
//查询赋值的场站
|
||||
map= xhpcStatisticsServiceMapper.getWorkHistoryOrderList(operatorId,chargingStationId,chargingPileId,terminalId,stopReason,2,logUserId,tenantId,conditionBeginOfDay,conditionEndOfDay);
|
||||
}
|
||||
}else{
|
||||
//全部桩
|
||||
map= xhpcStatisticsServiceMapper.getWorkHistoryOrderList(operatorId,chargingStationId,chargingPileId,terminalId,stopReason,0,null,tenantId,conditionBeginOfDay,conditionEndOfDay);
|
||||
}
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
|
||||
@ -1430,7 +1430,7 @@
|
||||
COUNT(xh.history_order_id) totalOrder,
|
||||
xcs.`name` name,
|
||||
IFNULL(ut.empty,0) emptyorder,
|
||||
concat(format(ifnull(empty/COUNT(xh.history_order_id)*100,0), 2),"%") orders
|
||||
concat(format(ifnull(empty/COUNT(xh.history_order_id)*100,0), 2),"%") emptyOrderRate
|
||||
FROM `xhpc_history_order` as xh
|
||||
LEFT JOIN xhpc_charging_station xcs on xcs.charging_station_id =xh.charging_station_id
|
||||
LEFT join (SELECT COUNT(xh.history_order_id) empty,xh.charging_station_id
|
||||
@ -1465,7 +1465,7 @@
|
||||
COUNT(xh.history_order_id) totalOrder,
|
||||
xt.`name` name,
|
||||
IFNULL(ut.empty,0) emptyorder,
|
||||
concat(format(ifnull(empty/COUNT(xh.history_order_id)*100,0), 2),"%") orders
|
||||
concat(format(ifnull(empty/COUNT(xh.history_order_id)*100,0), 2),"%") emptyOrderRate
|
||||
FROM `xhpc_history_order` as xh
|
||||
LEFT JOIN xhpc_charging_station xcs on xcs.charging_station_id =xh.charging_station_id
|
||||
LEFT JOIN xhpc_terminal xt on xt.terminal_id =xh.terminal_id
|
||||
@ -1496,5 +1496,52 @@
|
||||
GROUP BY xh.terminal_id
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getWorkHistoryOrderList" resultType="map">
|
||||
select
|
||||
count(xwho.history_order_id) totalOrder,
|
||||
format(ifnull(empty/COUNT(xh.history_order_id)*100,0), 2) emptyOrderRate
|
||||
FROM `xhpc_history_order` as xh
|
||||
from xhpc_work_history_order xwho
|
||||
LEFT JOIN (select
|
||||
xwho.history_order_id
|
||||
from xhpc_work_history_order xwho
|
||||
where xwho.end_time >=#{beginOfDay} and xwho.end_time <= #{endOfDay} and xwho.total_price=0
|
||||
<if test="operatorId !=null">
|
||||
and xwho.charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{operatorId})
|
||||
</if>
|
||||
<if test="chargingStationId!=null">
|
||||
and xwho.charging_station_id=#{chargingStationId}
|
||||
</if>
|
||||
<if test="chargingPileId !=null">
|
||||
and xwho.terminal_id in (select terminal_id from xhpc_terminal where charging_pile_id=#{chargingPileId})
|
||||
</if>
|
||||
<if test="stopReason !=null and stopReason !=''">
|
||||
and xwho.stop_reason_evcs_name LIKE concat('%',#{stopReason}, '%')
|
||||
</if>
|
||||
<if test="terminalId !=null">
|
||||
and xwho.terminal_id =#{terminalId}
|
||||
</if>
|
||||
<if test="tenantId !=null and '' !=tenantId">
|
||||
and xwho.tenant_id=#{tenantId}
|
||||
</if>) ut on ut.history_order_id = xwho.history_order_id
|
||||
where xwho.end_time >=#{beginOfDay} and xwho.end_time <= #{endOfDay}
|
||||
<if test="operatorId !=null">
|
||||
and xwho.charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{operatorId})
|
||||
</if>
|
||||
<if test="chargingStationId!=null">
|
||||
and xwho.charging_station_id=#{chargingStationId}
|
||||
</if>
|
||||
<if test="chargingPileId !=null">
|
||||
and xwho.terminal_id in (select terminal_id from xhpc_terminal where charging_pile_id=#{chargingPileId})
|
||||
</if>
|
||||
<if test="terminalId !=null">
|
||||
and xwho.terminal_id =#{terminalId}
|
||||
</if>
|
||||
<if test="stopReason !=null and stopReason !=''">
|
||||
and xwho.stop_reason_evcs_name LIKE concat('%',#{stopReason}, '%')
|
||||
</if>
|
||||
<if test="tenantId !=null and '' !=tenantId">
|
||||
and xwho.tenant_id=#{tenantId}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user