diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java index a5d71914..a7696c48 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java @@ -1,5 +1,6 @@ package com.xhpc.order.controller; +import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; @@ -87,7 +88,7 @@ public class XhpcHistoryOrderController extends BaseController { * 终端统计 */ @GetMapping("/test3") - //@Scheduled(cron = "0 0/8 * * * ?") + @Scheduled(cron = "0 0/8 * * * ?") public void test3(){ logger.info(">>>>>>>>>>>>>>>>>>>>>>>终端统计定时任务>>>>>>>>>>>>>>>>>>>>>"); logger.info(">>>>>>>>>>>>>>>>>>>>>>>终端统计定时任务>>>>>>>>>>>>>>>>>>>>>"); @@ -98,7 +99,7 @@ public class XhpcHistoryOrderController extends BaseController { * 场站统计 */ @GetMapping("/test2") - //@Scheduled(cron = "0 0/7 * * * ?") + @Scheduled(cron = "0 0/7 * * * ?") public void test2(){ logger.info(">>>>>>>>>>>>>>>>>>>>>>>场站统计定时任务>>>>>>>>>>>>>>>>>>>>>"); logger.info(">>>>>>>>>>>>>>>>>>>>>>>场站统计定时任务>>>>>>>>>>>>>>>>>>>>>"); @@ -110,7 +111,7 @@ public class XhpcHistoryOrderController extends BaseController { * 日期统计 */ @GetMapping("/test1") - //@Scheduled(cron = "0 0/6 * * * ?") + @Scheduled(cron = "0 0/6 * * * ?") public void test1(){ logger.info(">>>>>>>>>>>>>>>>>>>>>>>日期统计定时任务>>>>>>>>>>>>>>>>>>>>>"); logger.info(">>>>>>>>>>>>>>>>>>>>>>>日期统计定时任务>>>>>>>>>>>>>>>>>>>>>"); @@ -178,21 +179,200 @@ public class XhpcHistoryOrderController extends BaseController { xhpcHistoryOrderService.updateXhpcHistoryOrder(xhpc.getHistoryOrderId(),type + 1); }else{ //跨天 - Date updateTime2= DateUtil.endOfDay(startTime); - BigDecimal time5 = new BigDecimal((updateTime2.getTime()-startTime.getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN); - addStation(xhpc, time5,type,DateUtil.formatTime(startTime),"23:59:59",divide); - DateTime tomorrow = DateUtil.offsetDay(startTime,1); Date startTime3 =DateUtil.beginOfDay(tomorrow); - BigDecimal tim = new BigDecimal(DateUtil.between(DateUtil.beginOfDay(tomorrow), DateUtil.endOfDay(endTime), DateUnit.MINUTE)/ 60).setScale(2, BigDecimal.ROUND_DOWN); - //明天 - addStation(xhpc, tim,type, DateUtil.formatTime(startTime3), DateUtil.formatTime(endTime),divide); + + Map map =addStatisticsStation(new HashMap(),xhpc, DateUtil.formatTime(startTime), "23:59:59",divide,1,1); + + addStatisticsStation(map,xhpc, DateUtil.formatTime(startTime3), DateUtil.formatTime(endTime),divide,2,1); + } } } } + private Map addStatisticsStation(Map map1, XhpcChargeHistoryOrder xhpc, String startTime, String endTime, BigDecimal divide,int number,int type) { + + //总金额 + BigDecimal totalPrice =new BigDecimal(0); + //总电费 + BigDecimal powerPriceTotal =new BigDecimal(0); + //总服务费 + BigDecimal servicePriceTotal =new BigDecimal(0); + //实收电费 + BigDecimal actPowerPrice =new BigDecimal(0); + //实收服务费 + BigDecimal actServicePrice =new BigDecimal(0); + //总充电电量 + BigDecimal chargingDegree =new BigDecimal(0); + //电站活动抵扣--抵扣的总金额 + BigDecimal promotionDiscount =new BigDecimal(0); + //实际价格-用户支付的钱 + BigDecimal actPrice =new BigDecimal(0); + if(number ==2){ + totalPrice =map1.get("totalPrice"); + powerPriceTotal =map1.get("powerPriceTotal"); + servicePriceTotal =map1.get("servicePriceTotal"); + actPowerPrice =map1.get("actPowerPrice"); + actServicePrice =map1.get("actServicePrice"); + chargingDegree =map1.get("chargingDegree"); + promotionDiscount =map1.get("promotionDiscount"); + actPrice =map1.get("actPrice"); + }else{ + totalPrice = xhpc.getTotalPrice(); + powerPriceTotal =xhpc.getPowerPriceTotal(); + servicePriceTotal =xhpc.getServicePriceTotal(); + actPowerPrice =xhpc.getActPowerPrice(); + actServicePrice =xhpc.getActServicePrice(); + chargingDegree =xhpc.getChargingDegree(); + promotionDiscount = xhpc.getPromotionDiscount(); + actPrice = xhpc.getActPrice(); + } + + //叠加总电费 + BigDecimal powerPriceTotal1 =new BigDecimal(0); + //叠加总服务费 + BigDecimal servicePriceTotal1 =new BigDecimal(0); + + + //时长 + BigDecimal timeInterval = new BigDecimal(0); + //时长 + BigDecimal chargingDegree2 = new BigDecimal(0); + + + List> reatTimeList = xhpcHistoryOrderService.getReatTimeList(startTime, endTime, xhpc.getRateModelId()); + for (int i = 0; i map = reatTimeList.get(i); + BigDecimal powerFee =new BigDecimal(map.get("powerFee").toString()); + BigDecimal serviceFee =new BigDecimal(map.get("serviceFee").toString()); + timeInterval =timeInterval.add(new BigDecimal((DateUtil.parse(map.get("endTime").toString()).getTime()-DateUtil.parse(map.get("startTime").toString()).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN)); + powerPriceTotal1 = powerPriceTotal1.add(powerFee.multiply(divide).setScale(2, BigDecimal.ROUND_DOWN)); + servicePriceTotal1 = servicePriceTotal1.add(serviceFee.multiply(divide).setScale(2, BigDecimal.ROUND_DOWN)); + chargingDegree2 =chargingDegree2.add(timeInterval.multiply(divide).setScale(2,BigDecimal.ROUND_DOWN)); + } + XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); + xhpcSt.setChargingDegree(chargingDegree2); + xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_DOWN)); + xhpcSt.setChargingNumber(1); + xhpcSt.setPowerPrice(powerPriceTotal1); + xhpcSt.setServicePrice(servicePriceTotal1); + xhpcSt.setActPowerPrice(powerPriceTotal1); + xhpcSt.setActServicePrice(servicePriceTotal1); + xhpcSt.setTotalPrice(powerPriceTotal1.add(servicePriceTotal1)); + BigDecimal actPrice2 =powerPriceTotal1.add(servicePriceTotal1); + BigDecimal promotion =new BigDecimal(2); + xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(promotion,2, BigDecimal.ROUND_DOWN)); + xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); + xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); + xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); + xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(promotion,2, BigDecimal.ROUND_DOWN)); + xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); + xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); + if(number==1){ + BigDecimal internetCommission = xhpcSt.getInternetCommission(); + if(internetCommission.compareTo(new BigDecimal(0))!=0){ + actPrice2 = actPrice2.subtract(internetCommission); + }else{ + actPrice2 =actPrice2.subtract(xhpcSt.getInternetSvcCommission()); + } + actPrice2 = actPrice2.subtract(xhpcSt.getPromotionDiscount()); + xhpcSt.setActPrice(actPrice2); + //总金额 + BigDecimal totalPrice1 = xhpcSt.getTotalPrice(); + if(totalPrice.compareTo(totalPrice1)==1){ + totalPrice=totalPrice.subtract(totalPrice1); + }else{ + xhpcSt.setTotalPrice(totalPrice); + } + //总电费 + BigDecimal powerPrice1 = xhpcSt.getPowerPrice(); + if(powerPriceTotal.compareTo(powerPrice1)==1){ + powerPriceTotal=powerPriceTotal.subtract(powerPrice1); + }else{ + xhpcSt.setPowerPrice(powerPriceTotal); + } + //总服务费 + BigDecimal servicePrice1 = xhpcSt.getServicePrice(); + if(servicePriceTotal.compareTo(servicePrice1)==1){ + servicePriceTotal=servicePriceTotal.subtract(servicePrice1); + }else{ + xhpcSt.setServicePrice(servicePriceTotal); + } + //实收电费 + BigDecimal actPowerPrice1 = xhpcSt.getActPowerPrice(); + if(actPowerPrice.compareTo(actPowerPrice1)==1){ + actPowerPrice=actPowerPrice.subtract(actPowerPrice1); + }else{ + xhpcSt.setActPowerPrice(actPowerPrice); + } + //实收服务费 + BigDecimal actServicePrice1 = xhpcSt.getActServicePrice(); + if(actServicePrice.compareTo(actServicePrice1)==1){ + actServicePrice=actServicePrice.subtract(actServicePrice1); + }else{ + xhpcSt.setActServicePrice(actServicePrice); + } + //总充电电量 + BigDecimal chargingDegree1 = xhpcSt.getChargingDegree(); + if(chargingDegree.compareTo(chargingDegree1)==1){ + chargingDegree=chargingDegree.subtract(chargingDegree1); + }else{ + xhpcSt.setChargingDegree(chargingDegree); + } + + //实际价格-用户支付的钱 + BigDecimal actPrice1 = xhpcSt.getActPrice(); + if(actPrice.compareTo(actPrice1)==1){ + actPrice=actPrice.subtract(actPrice1); + }else{ + xhpcSt.setActPrice(actPrice); + } + }else{ + xhpcSt.setPowerPrice(powerPriceTotal); + xhpcSt.setServicePrice(servicePriceTotal); + xhpcSt.setTotalPrice(totalPrice); + xhpcSt.setPromotionDiscount(promotionDiscount); + xhpcSt.setActPrice(actPrice); + xhpcSt.setActPowerPrice(actPowerPrice); + xhpcSt.setActServicePrice(actServicePrice); + xhpcSt.setChargingDegree(chargingDegree); + } + + if(xhpc.getSource()==1){ + xhpcSt.setInternetUserId(xhpc.getUserId()); + } + xhpcSt.setOperatorId(xhpc.getOperatorId()); + xhpcSt.setChargingStationId(xhpc.getChargingStationId()); + xhpcSt.setCreateTime(Calendar.getInstance().getTime()); + xhpcSt.setTerminalId(xhpc.getTerminalId()); + xhpcSt.setHistoryOrderId(xhpc.getHistoryOrderId()); + xhpcSt.setChargingPileId(xhpc.getChargingPileId()); + xhpcSt.setType(type); + if(number==1){ + xhpcSt.setCreateTime(xhpc.getCreateTime()); + }else{ + xhpcSt.setCreateTime(DateUtil.offset(xhpc.getCreateTime(), DateField.DAY_OF_MONTH, 1)); + } + xhpcStatisticsService.addStatisticsStation(xhpcSt); + + //修改历史订单表状态 + xhpcHistoryOrderService.updateXhpcHistoryOrder(xhpc.getHistoryOrderId(),type + 1); + + Map map2 =new HashMap<>(); + map2.put("totalPrice",totalPrice); + map2.put("powerPriceTotal",powerPriceTotal); + map2.put("servicePriceTotal",servicePriceTotal); + map2.put("actPowerPrice",actPowerPrice); + map2.put("actServicePrice",actServicePrice); + map2.put("chargingDegree",chargingDegree); + map2.put("promotionDiscount",promotionDiscount); + map2.put("actPrice",actPrice); + return map2; + + } + /** * 小时统计 */ @@ -272,6 +452,7 @@ public class XhpcHistoryOrderController extends BaseController { xhpcSt.setServicePriceEvcs(new BigDecimal(map.get("serviceFee").toString())); 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.getCreateTime()); xhpcStatisticsService.addStatisticsTime(xhpcSt); //修改历史订单表状态 xhpcHistoryOrderService.updateXhpcHistoryOrder(xhpc.getHistoryOrderId(),1); @@ -322,7 +503,6 @@ public class XhpcHistoryOrderController extends BaseController { //总共时段 endHour+1-startHour String yyyyMMdd = DateUtil.format(startTime, "yyyy-MM-dd"); - //总金额 BigDecimal totalPrice =new BigDecimal(0); //总电费 @@ -383,16 +563,18 @@ public class XhpcHistoryOrderController extends BaseController { Map map =getReatTimeList(srt,endt,rateModelId); powerFee =new BigDecimal(map.get("powerFee").toString()); serviceFee =new BigDecimal(map.get("serviceFee").toString()); + timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN); } else { srt = end + ":00:00"; endt = DateUtil.formatTime(endTime); Map map =getReatTimeList(srt,endt,rateModelId); powerFee =new BigDecimal(map.get("powerFee").toString()); serviceFee =new BigDecimal(map.get("serviceFee").toString()); + timeInterval =new BigDecimal((DateUtil.parse(endt).getTime()-DateUtil.parse(srt).getTime())).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN); } XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval(); xhpcSt.setStatus(i+1); - xhpcSt.setChargingTime(timeInterval); + xhpcSt.setChargingTime(timeInterval.divide(new BigDecimal(60),2,BigDecimal.ROUND_DOWN)); //电量 BigDecimal decimal1 = timeInterval.multiply(decimal).setScale(2, BigDecimal.ROUND_DOWN); xhpcSt.setChargingDegree(decimal1); @@ -522,7 +704,11 @@ public class XhpcHistoryOrderController extends BaseController { xhpcSt.setOperatorId(xhpc.getOperatorId()); xhpcSt.setChargingStationId(xhpc.getChargingStationId()); xhpcSt.setDelFlag(0); - xhpcSt.setCreateTime(Calendar.getInstance().getTime()); + if(type!=3){ + xhpcSt.setCreateTime(xhpc.getCreateTime()); + }else{ + xhpcSt.setCreateTime(DateUtil.offset(xhpc.getCreateTime(), DateField.DAY_OF_MONTH, 1)); + } xhpcSt.setTerminalId(xhpc.getTerminalId()); xhpcSt.setHistoryOrderId(xhpc.getHistoryOrderId()); xhpcSt.setStartTimeEvcs(yyyyMMdd+" "+srt); @@ -583,13 +769,6 @@ public class XhpcHistoryOrderController extends BaseController { chargeOrderService.updateStatus(); } - - - - - - - public void add(int number,int type){ //获取500条待统计历史订单 List list = xhpcHistoryOrderService.getStatistisList(number,type); @@ -624,246 +803,24 @@ public class XhpcHistoryOrderController extends BaseController { xhpcSt.setHistoryOrderId(xhpc.getHistoryOrderId()); xhpcSt.setChargingPileId(xhpc.getChargingPileId()); xhpcSt.setType(type); + xhpcSt.setCreateTime(xhpc.getCreateTime()); xhpcStatisticsService.addStatisticsStation(xhpcSt); - //修改历史订单表状态 xhpcHistoryOrderService.updateXhpcHistoryOrder(xhpc.getHistoryOrderId(),type+1); } } } - private void addStation(XhpcChargeHistoryOrder xhpc,BigDecimal chargingTime,int type,String startTime,String endTime,BigDecimal divide) { - - BigDecimal chargingDegree1 =new BigDecimal(0); - BigDecimal powerPrice1 =new BigDecimal(0); - BigDecimal servicePrice1 =new BigDecimal(0); - List> reatTimeList = xhpcHistoryOrderService.getReatTimeList(startTime, endTime, xhpc.getRateModelId()); - if(reatTimeList !=null && reatTimeList.size()>0){ - for (int i = 0; i objectMap = reatTimeList.get(i); - BigDecimal powerPrice =new BigDecimal(objectMap.get("powerFee").toString()); - BigDecimal servicePrice =new BigDecimal(objectMap.get("serviceFee").toString()); - String startTime1 = objectMap.get("startTime").toString(); - String endTime1 = objectMap.get("endTime").toString(); - if("00:00:00".equals(endTime1)){ - endTime1="23:59:59"; - } - //总度数 - BigDecimal chargingDegree2 = new BigDecimal((DateUtil.parse(endTime1).getTime() - DateUtil.parse(startTime1).getTime())/60000).multiply(divide).setScale(2, BigDecimal.ROUND_DOWN); - chargingDegree1 =chargingDegree1.add(chargingDegree2); - powerPrice1 =powerPrice1.add(powerPrice.multiply(chargingDegree2).setScale(2, BigDecimal.ROUND_DOWN)); - servicePrice1 =servicePrice1.add(servicePrice.multiply(chargingDegree2).setScale(2, BigDecimal.ROUND_DOWN)); - } - } - - XhpcStatisticsStation xhpcSt =new XhpcStatisticsStation(); - xhpcSt.setChargingDegree(chargingDegree1); - xhpcSt.setChargingTime(chargingTime); - xhpcSt.setChargingNumber(1); - xhpcSt.setPowerPrice(powerPrice1); - xhpcSt.setServicePrice(servicePrice1); - xhpcSt.setTotalPrice(powerPrice1.add(servicePrice1)); - BigDecimal promotion =new BigDecimal(2); - xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(promotion,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setActPrice(xhpcSt.getTotalPrice().subtract(xhpcSt.getPromotionDiscount())); - xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(promotion,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(promotion,2, BigDecimal.ROUND_DOWN)); - - //抽成费用 - BigDecimal money = xhpcSt.getPlatformCommission().add(xhpcSt.getPlatformSvcCommisssion()) - .add(xhpcSt.getInternetCommission()).add(xhpcSt.getInternetSvcCommission()) - .add(xhpcSt.getOperationCommission()).add(xhpcSt.getOperationSvcCommission()); - xhpcSt.setActPowerPrice(powerPrice1.subtract(money)); - xhpcSt.setActServicePrice(servicePrice1.subtract(money)); - if(xhpc.getSource()==1){ - xhpcSt.setInternetUserId(xhpc.getUserId()); - } - xhpcSt.setOperatorId(xhpc.getOperatorId()); - xhpcSt.setChargingStationId(xhpc.getChargingStationId()); - xhpcSt.setCreateTime(Calendar.getInstance().getTime()); - xhpcSt.setTerminalId(xhpc.getTerminalId()); - xhpcSt.setHistoryOrderId(xhpc.getHistoryOrderId()); - xhpcSt.setChargingPileId(xhpc.getChargingPileId()); - xhpcSt.setType(type); - xhpcSt.setCreateTime(xhpc.getCreateTime()); - xhpcStatisticsService.addStatisticsStation(xhpcSt); - - //修改历史订单表状态 - xhpcHistoryOrderService.updateXhpcHistoryOrder(xhpc.getHistoryOrderId(),type + 1); - } - - private void addStatisTime(XhpcChargeHistoryOrder xhpc, Date startTime, Date endTime, Long rateModelId, Long operatorId, Long chargingStationId, Long terminalId, Long historyOrderId, int startHour, int endHour,String yyyyMMdd,BigDecimal multiply) { - - BigDecimal number = new BigDecimal(endHour + 1 - startHour); - for (int i = startHour; i < endHour + 1; i++) { - String end = String.format("%02d", i); - //获取费率 - if (i == startHour) { - //开始时间、结束时间 - addStatis(xhpc, rateModelId, operatorId, chargingStationId, terminalId, historyOrderId, i, number, DateUtil.formatTime(startTime), end + ":59:59",yyyyMMdd,multiply); - } else if (i != endHour) { - addStatis(xhpc, rateModelId, operatorId, chargingStationId, terminalId, historyOrderId, i, number, end + ":00:00", end + ":59:59",yyyyMMdd,multiply); - } else { - addStatis(xhpc, rateModelId, operatorId, chargingStationId, terminalId, historyOrderId, i, number, end + ":00:00", DateUtil.formatTime(endTime),yyyyMMdd,multiply); - } - } - } - - private void addInterval(XhpcChargeHistoryOrder xhpc, Date startTime, Date endTime, Long rateModelId, Long operatorId, Long chargingStationId, Long terminalId, Long historyOrderId, int startHour, int endHour,String yyyyMMdd,BigDecimal multiply) { - Date data = Calendar.getInstance().getTime(); - if(endHour==startHour){ - //没有跨时段 - XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval(); - xhpcSt.setStatus(endHour+1); - xhpcSt.setChargingDegree(xhpc.getChargingDegree()); - xhpcSt.setChargingTime(new BigDecimal(xhpc.getChargingTimeNumber()/3600).setScale(2, BigDecimal.ROUND_DOWN)); - xhpcSt.setChargingNumber(1); - BigDecimal number = new BigDecimal(2); - xhpcSt.setPowerPrice(xhpc.getActPowerPrice().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setServicePrice(xhpc.getActServicePrice().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setTotalPrice(xhpc.getTotalPrice().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setActPrice(xhpc.getActPrice().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setActPowerPrice(xhpc.getActPowerPrice().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setActServicePrice(xhpc.getActServicePrice().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(number,2,BigDecimal.ROUND_DOWN)); - xhpcSt.setOperatorId(operatorId); - xhpcSt.setChargingStationId(chargingStationId); - xhpcSt.setCreateTime(data); - xhpcSt.setTerminalId(terminalId); - xhpcSt.setHistoryOrderId(historyOrderId); - if(xhpc.getSource()==1){ - xhpcSt.setInternetUserId(xhpc.getUserId()); - } - List> reatTimeList = xhpcHistoryOrderService.getReatTimeList(DateUtil.formatTime(startTime), DateUtil.formatTime(endTime), rateModelId); - Map map = reatTimeList.get(0); - xhpcSt.setElecPriceEvcs(new BigDecimal(map.get("powerFee").toString())); - xhpcSt.setServicePriceEvcs(new BigDecimal(map.get("serviceFee").toString())); - xhpcSt.setStartTimeEvcs(DateUtil.format(startTime, "yyyy-MM-dd HH:mm:ss")); - xhpcSt.setEndTimeEvcs(DateUtil.format(endTime, "yyyy-MM-dd HH:mm:ss")); - xhpcStatisticsService.addStatisticsTime(xhpcSt); - //修改状态 - //修改历史订单表状态 - xhpcHistoryOrderService.updateXhpcHistoryOrder(xhpc.getHistoryOrderId(),1); - }else{ - //跨时段 - //总共时段 endHour+1-startHour - addStatisTime(xhpc, startTime, endTime, rateModelId, operatorId, chargingStationId, terminalId, historyOrderId, startHour, endHour,yyyyMMdd,multiply); - } - } - - private void addStatis(XhpcChargeHistoryOrder xhpc, Long rateModelId, Long operatorId, Long chargingStationId, Long terminalId, Long historyOrderId, int status, BigDecimal number, String start, String end,String yyyyMMdd,BigDecimal multiply) { - List> reatTimeList = xhpcHistoryOrderService.getReatTimeList(start, end, rateModelId); - if (reatTimeList != null && reatTimeList.size() > 0) { - if (reatTimeList.size() == 1) { - addSte(xhpc, operatorId, chargingStationId, terminalId, historyOrderId, status, number, reatTimeList, -1, 1,start,end,yyyyMMdd,multiply); - } else { - for (int j = 0; j < reatTimeList.size(); j++) { - addSte(xhpc, operatorId, chargingStationId, terminalId, historyOrderId, status, number, reatTimeList, j, 2,start,end,yyyyMMdd,multiply); - } - } - } - } - - private void addSte(XhpcChargeHistoryOrder xhpc, Long operatorId, Long chargingStationId, Long terminalId, Long historyOrderId, int status, BigDecimal number, List> reatTimeList, int j, int type, String start, String end,String yyyyMMdd,BigDecimal multiply) { - Date data = Calendar.getInstance().getTime(); - Map map =new HashMap<>(); - if(j==-1){ - map = reatTimeList.get(0); - }else{ - map = reatTimeList.get(j); - } - BigDecimal size = new BigDecimal(reatTimeList.size()); - XhpcStatisticsTimeInterval xhpcSt = new XhpcStatisticsTimeInterval(); - long time3 =0L; - long time4 =0L; - if(j==-1){ - time3 = DateUtil.parse(end).getTime(); - time4 = DateUtil.parse(start).getTime(); - xhpcSt.setStartTimeEvcs(yyyyMMdd+" "+start); - xhpcSt.setEndTimeEvcs(yyyyMMdd+" "+end); - }else if(j==0){ - time3 = DateUtil.parse(map.get("endTime").toString()).getTime(); - time4 = DateUtil.parse(start).getTime(); - xhpcSt.setStartTimeEvcs(yyyyMMdd+" "+start); - xhpcSt.setEndTimeEvcs(yyyyMMdd+" "+map.get("endTime").toString()); - }else if(j!=reatTimeList.size()){ - time3 = DateUtil.parse(map.get("endTime").toString()).getTime(); - time4 = DateUtil.parse(map.get("startTime").toString()).getTime(); - xhpcSt.setStartTimeEvcs(yyyyMMdd+" "+map.get("startTime").toString()); - xhpcSt.setEndTimeEvcs(yyyyMMdd+" "+map.get("endTime").toString()); - }else{ - time3 = DateUtil.parse(end).getTime(); - time4 = DateUtil.parse(map.get("startTime").toString()).getTime(); - xhpcSt.setStartTimeEvcs(yyyyMMdd+" "+map.get("startTime").toString()); - xhpcSt.setEndTimeEvcs(yyyyMMdd+" "+end); - } - BigDecimal time5 = new BigDecimal((time3-time4)).divide(new BigDecimal(60000),2, BigDecimal.ROUND_DOWN); - //每分钟多少度电 - BigDecimal decimal = multiply.multiply(time5).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal powerFee =new BigDecimal(map.get("powerFee").toString()); - BigDecimal serviceFee =new BigDecimal(map.get("serviceFee").toString()); - xhpcSt.setElecPriceEvcs(powerFee); - xhpcSt.setServicePriceEvcs(serviceFee); - xhpcSt.setStatus(status+1); - xhpcSt.setChargingDegree(decimal); - xhpcSt.setChargingTime(time5); - xhpcSt.setChargingNumber(1); - BigDecimal powerFee1 = powerFee.multiply(decimal).setScale(2, BigDecimal.ROUND_DOWN); - BigDecimal serviceFee1 = serviceFee.multiply(decimal).setScale(2, BigDecimal.ROUND_DOWN); - xhpcSt.setPowerPrice(powerFee1); - xhpcSt.setServicePrice(serviceFee1); - xhpcSt.setTotalPrice(powerFee1.add(serviceFee1)); - if(type==1){ - xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(number,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setActPrice(powerFee1.add(serviceFee1).subtract(xhpcSt.getPromotionDiscount())); - xhpcSt.setActPowerPrice(xhpc.getActPowerPrice().divide(number,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setActServicePrice(xhpc.getActServicePrice().divide(number,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(number,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(number,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(number,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(number,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(number,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(number,2, BigDecimal.ROUND_DOWN)); - }else{ - xhpcSt.setPromotionDiscount(xhpc.getPromotionDiscount().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setActPrice(powerFee1.add(serviceFee1).subtract(xhpcSt.getPromotionDiscount())); - xhpcSt.setActPowerPrice(xhpc.getActPowerPrice().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setActServicePrice(xhpc.getActServicePrice().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetCommission(xhpc.getInternetCommission().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setInternetSvcCommission(xhpc.getInternetSvcCommission().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformCommission(xhpc.getPlatformCommission().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setPlatformSvcCommisssion(xhpc.getPlatformSvcCommisssion().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationCommission(xhpc.getOperationCommission().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - xhpcSt.setOperationSvcCommission(xhpc.getOperationSvcCommission().divide(number,2, BigDecimal.ROUND_DOWN).divide(size,2, BigDecimal.ROUND_DOWN)); - } - xhpcSt.setOperatorId(operatorId); - xhpcSt.setChargingStationId(chargingStationId); - xhpcSt.setCreateTime(data); - xhpcSt.setTerminalId(terminalId); - xhpcSt.setHistoryOrderId(historyOrderId); - if(xhpc.getSource()==1){ - xhpcSt.setInternetUserId(xhpc.getUserId()); - } - - xhpcStatisticsService.addStatisticsTime(xhpcSt); - //修改状态 - //修改历史订单表状态 - xhpcHistoryOrderService.updateXhpcHistoryOrder(xhpc.getHistoryOrderId(),1); - } - public static void main(String[] args) { + String dateStr = "2017-03-01 20:33:23"; + Date date = DateUtil.parse(dateStr); + String dateStr1 = "2017-03-01 22:33:23"; + Date date1 = DateUtil.parse(dateStr1); + + System.out.println(date1.getTime()-date.getTime()); + } } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java index ef20586e..dfb9cde9 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java @@ -91,6 +91,18 @@ public class XhpcAppUserController extends BaseController { return AjaxResult.success(); } + /** + * 统计 + * @param phone + * @return + */ + @GetMapping("/userSum") + public AjaxResult userSum(String phone) { + return AjaxResult.success(iXhpcAppUserUserService.userSum(phone)); + } + + + /** * 以下为小程序接口 */ diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java index c68a1759..1c8117ff 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java @@ -54,6 +54,9 @@ public interface XhpcAppUserMapper { */ public List> selectAppUserList(@Param("phone") String phone); + + public Map userSum(@Param("phone") String phone); + /** * 手机号查询C端用户信息 * diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java index 9d542665..94101f78 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java @@ -39,6 +39,8 @@ public interface IXhpcAppUserUserService { */ public List> selectAppUserList(String phone); + + public Map userSum(String phone); /** * 禁用/启用C端用户 * diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java index fb919528..04e84d0d 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java @@ -82,6 +82,12 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { return xhpcAppUserMapper.selectAppUserList(phone); } + @Override + public Map userSum(String phone) { + + return xhpcAppUserMapper.userSum(phone); + } + /** * 禁用/启用C端用户 * diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml index 7528d9d0..e7421b10 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml @@ -197,6 +197,22 @@ ORDER BY xau.create_time DESC + + + +