diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java index 65fb3a45..1fcb3956 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java @@ -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)); + } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcStatisticsServiceMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcStatisticsServiceMapper.java index 667f8066..28d637e2 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcStatisticsServiceMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcStatisticsServiceMapper.java @@ -221,5 +221,5 @@ public interface XhpcStatisticsServiceMapper { List> 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> 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); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcStatisticsService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcStatisticsService.java index da6a8e31..57c3fa41 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcStatisticsService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcStatisticsService.java @@ -307,4 +307,9 @@ public interface IXhpcStatisticsService { */ List> getEmptyOrder(Long chargingStationId,String startTime,String endTime); + /** + * 异常订单量列表统计 + */ + List> getWorkHistoryOrderList(Long operatorId,Long chargingStationId,Long chargingPileId,Long terminalId,String stopReason,String startTime,String endTime,Integer type); + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java index 04e456ca..13d1a696 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java @@ -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> 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 =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 averageOrder(Integer status,Integer type,Long logOperatorId,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId,String conditionBeginOfDay,String conditionEndOfDay) { List> dateOrder = xhpcStatisticsServiceMapper.getDateOrderCount(type,status,logOperatorId,operatorId,chargingStationId,chargingPileId,tenantId,conditionBeginOfDay,conditionEndOfDay); diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml index cb297574..477ce607 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml @@ -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 - +