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 6a695612..f89e74ce 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 @@ -377,4 +377,26 @@ public class XhpcStatisticsController extends BaseController { { 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)); + } + + } 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 a5d75bb0..59cf715c 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 @@ -199,4 +199,15 @@ public interface XhpcStatisticsServiceMapper { List 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> 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> 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); + + } 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 bc7cc1ec..af31720b 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 @@ -284,4 +284,12 @@ public interface IXhpcStatisticsService { * 今日电枪实时状态 */ Map getTodayTerminal(Long operatorId,Long chargingStationId,Long chargingPileId); + + /** + * 今日电枪实时状态 + * + * @param state 1 充电数据 2.创建订单量 + */ + Map getDateOrder(Integer state,Long operatorId,Long chargingStationId,Long chargingPileId,Integer type,String startTime,String endTime); + } 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 ddea4f1b..b7aba475 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 @@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -1065,6 +1066,131 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati return map; } + /** + * 今日电枪实时状态 + * + * @param operatorId + * @param chargingStationId + * @param chargingPileId + * @param type + * @param startTime + * @param endTime + */ + @Override + public Map 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 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); + int dateOrderNUmber = xhpcStatisticsServiceMapper.getDateOrderCountNUmber(type, status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, conditionBeginOfDay, conditionEndOfDay); + Map 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 extracted(Integer status,Integer type,Long logOperatorId,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId,String conditionBeginOfDay,String conditionEndOfDay) { + List> 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 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 map) { List terminal = xhpcStatisticsServiceMapper.getTerminal(status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId); @@ -1234,35 +1360,25 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati return c; } + + + + + public static void main(String[] args) { - DateTime date = DateUtil.date(); - DateTime dateTime = DateUtil.lastWeek(); - - System.out.println("dateTime:"+dateTime); - - - String week = ""; - //一天的开始,结果:2017-03-01 00:00:00 - Date beginOfDay = DateUtil.beginOfDay(date); - Date endOfDay = DateUtil.endOfDay(date); - System.out.println("week00:"+beginOfDay); - System.out.println("week00:"+beginOfDay); - week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -9)); - 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); - - - - - - - - + String firstDay; + String lastDay; + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar cal_1=Calendar.getInstance();//获取当前日期 + cal_1.add(Calendar.MONTH, -12); + cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 + firstDay = format.format(cal_1.getTime()); + System.out.println("-----1------firstDay:"+firstDay); + //获取前月的最后一天 + Calendar cale = Calendar.getInstance(); + cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天 + lastDay = format.format(cale.getTime()); + System.out.println("-----2------lastDay:"+lastDay); } } 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 d938aad6..776e0079 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml @@ -1064,4 +1064,125 @@ and charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{logOperatorId}) + + + + + + + + + +