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 d981b9b9..0480bc52 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 @@ -292,7 +292,7 @@ public interface IXhpcStatisticsService { /** * 今日电枪实时状态 */ - Map getTodayTerminal(Long operatorId,Long chargingStationId,Long chargingPileId); + List> getTodayTerminal(Long operatorId,Long chargingStationId,Long chargingPileId); /** * 今日电枪实时状态 diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java index ce4669ab..0a2db2b2 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java @@ -476,15 +476,28 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe //activityInternetTime 用户充电时间大于活动时间:快电、恒大不做活动计算 boolean activityInternetTime =true; // activityTime 用户充电开始时间是否活动时间 - boolean activityTime =false; + boolean activityStartTime =false; + // activityTime 用户充电结束时间是否活动时间 + boolean activityEndTime =true; + if(activityStationTime !=null && activityStationTime.size()>0){ XhpcActivityInternetDomainDto activityInternet1 =activityStationTime.get(0); - if(time1-activityInternet1.getStartTime().getTime()>0){ - activityTime =true; + if(activityInternet1.getStartTime().getTime()-time1>0){ + activityStartTime =true; if(xhpcChargeOrder.getUserId()==1L || xhpcChargeOrder.getUserId()==2L){ activityInternetTime =false; } } + int size = activityStationTime.size(); + if(size==1){ + if(time2-activityInternet1.getEndTime().getTime()>0){ + activityEndTime =false; + } + }else{ + if(time2-activityStationTime.get(1).getEndTime().getTime()>0){ + activityEndTime =false; + } + } } if(activityStationTime !=null && activityStationTime.size()>0 && activityStationTime.size()<=2 && activityInternetTime){ judge =true; @@ -502,7 +515,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe if(number==2){ activityInternet1 = activityStationTime.get(0); activityInternet2 = activityStationTime.get(1); - if(activityTime){ + if(activityStartTime){ activityFormulaTime1 = xhpcRealTimeOrderMapper.getActivityFormulaTime(activityInternet1.getActivityId(), "00:00:00", "24:00:00"); activityFormulaTime2 = xhpcRealTimeOrderMapper.getActivityFormulaTime(activityInternet2.getActivityId(), "00:00:00", end); }else{ @@ -512,15 +525,183 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe activityId =activityInternet1.getActivityId()+","+activityInternet2.getActivityId(); }else{ activityInternet1 = activityStationTime.get(0); - if(activityTime){ + if(activityStartTime){ activityFormulaTime1 = xhpcRealTimeOrderMapper.getActivityFormulaTime(activityInternet1.getActivityId(), "00:00:00", end); }else{ activityFormulaTime1 = xhpcRealTimeOrderMapper.getActivityFormulaTime(activityInternet1.getActivityId(), start, end); } activityId =activityInternet1.getActivityId()+""; } - if(activityTime){ + if(activityStartTime){ List> reatTimeList = xhpcHistoryOrderService.getReatTimeList(start, "00:00:00", rateModelId); + if(reatTimeList.size()>0){ + String substring = internetSerialNumber.substring(0, 9); + Map operatorIdEvcs = xhpcRealTimeOrderMapper.getOperatorIdEvcs(substring); + if(operatorIdEvcs !=null){ + if(operatorIdEvcs.get("operatorIdEvcs")!=null && operatorIdEvcs.get("commissionType")!=null && operatorIdEvcs.get("commissionRate")!=null){ + BigDecimal commissionRate = new BigDecimal(operatorIdEvcs.get("commissionRate").toString()).divide(new BigDecimal(100)); + String commissionType = operatorIdEvcs.get("commissionType").toString(); + for (int i = 0; i < reatTimeList.size(); i++) { + Map map = reatTimeList.get(i); + BigDecimal powerFee =new BigDecimal(map.get("powerFee").toString()); + BigDecimal serviceFee =new BigDecimal(map.get("serviceFee").toString()); + String startTime1 =map.get("startTime").toString(); + String endTime1 =map.get("endTime").toString(); + BigDecimal degree =new BigDecimal(0); + if(DateUtil.parse(start).getTime() - DateUtil.parse(startTime1).getTime()>=0){ + if(DateUtil.parse(end).getTime() - DateUtil.parse(endTime1).getTime()>=0){ + degree =new BigDecimal(xhpcRealTimeOrderMapper.getRealTimeOrderTime(chargeOrderId, parse2+" "+start, parse2+" "+endTime1)).setScale(2,BigDecimal.ROUND_HALF_UP); + }else{ + degree =new BigDecimal(xhpcRealTimeOrderMapper.getRealTimeOrderTime(chargeOrderId, parse2+" "+start, parse2+" "+end)).setScale(2,BigDecimal.ROUND_HALF_UP); + } + }else{ + if(DateUtil.parse(end).getTime() - DateUtil.parse(endTime1).getTime()>=0){ + degree =new BigDecimal(xhpcRealTimeOrderMapper.getRealTimeOrderTime(chargeOrderId, parse2+" "+startTime1, parse2+" "+endTime1)).setScale(2,BigDecimal.ROUND_HALF_UP); + }else{ + degree =new BigDecimal(xhpcRealTimeOrderMapper.getRealTimeOrderTime(chargeOrderId, parse2+" "+startTime1, parse2+" "+end)).setScale(2,BigDecimal.ROUND_HALF_UP); + } + } + //挡前服务费 + BigDecimal activityServicePrice1 = serviceFee.multiply(degree); + //活动总服务费 + activityServicePriceTotal = activityServicePriceTotal.add(activityServicePrice1); + //挡前电费 + BigDecimal activityPowerPrice1 = powerFee.multiply(degree); + //活动总电费 + activityPowerPriceTotal = activityPowerPriceTotal.add(activityPowerPrice1); + //活动总金额 + activityTotalPriceTotal = activityTotalPriceTotal.add(activityServicePrice1.add(activityPowerPrice1)); + if(new BigDecimal(0).compareTo(commissionRate)==-1){ + if("0".equals(commissionType) || "1".equals(commissionType)|| "2".equals(commissionType)){ + //流量方的钱 + if("0".equals(commissionType)){ + BigDecimal decimal1 = activityPowerPrice1.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal decimal2 = activityServicePrice1.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_UP); + internetCommission = internetCommission.add(decimal1.add(decimal2)); + activityPowerPrice =activityPowerPrice.add(activityPowerPrice1.subtract(decimal1)); + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(decimal2)); + }else if("1".equals(commissionType)){ + BigDecimal decimal2 = activityServicePrice1.multiply(commissionRate).setScale(2, BigDecimal.ROUND_HALF_UP); + internetSvcCommission = internetSvcCommission.add(decimal2); + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(decimal2)); + activityPowerPrice =activityPowerPrice.add(activityPowerPriceTotal); + }else{ + //电量抽成 + BigDecimal commissionRate1 = degree.multiply(new BigDecimal(operatorIdEvcs.get("commissionRate").toString())).setScale(2, BigDecimal.ROUND_HALF_UP); + internetDegreeCommission = internetDegreeCommission.add(commissionRate1); + //减服务费 + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(internetDegreeCommission)); + activityPowerPrice =activityPowerPrice.add(activityPowerPriceTotal); + } + } + } + chargingDegree = chargingDegree.add(degree); + } + } + } + } + } + + for (int j = 0; j < activityFormulaTime1.size(); j++) { + XhpcActivityFormulaDomainDto activityFormula = activityFormulaTime1.get(j); + //计费类型 + int computeType = activityInternet1.getComputeType(); + BigDecimal activityServicePriceFormula = activityFormula.getServicePrice(); + BigDecimal activityPowerPriceFormula = activityFormula.getPowerPrice(); + //计算公式 + String computeFormula = activityFormula.getComputeFormula(); + BigDecimal degree =new BigDecimal(0); + if (activityFormulaTime2.size()==0 && activityFormulaTime1.size()-1==j && activityEndTime) { + degree = new BigDecimal(totalPower).subtract(chargingDegree).setScale(2, BigDecimal.ROUND_HALF_UP); + }else{ + degree =getRealOrderTime(chargeOrderId, parse2+" "+activityFormula.getStartTime(), parse2+" "+activityFormula.getEndTime()).setScale(2,BigDecimal.ROUND_HALF_UP);; + } + //挡前服务费 + BigDecimal activityServicePrice1 = activityServicePriceFormula.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); + //活动总服务费 + activityServicePriceTotal = activityServicePriceTotal.add(activityServicePrice1).setScale(2, BigDecimal.ROUND_HALF_UP); + //挡前电费 + BigDecimal activityPowerPrice1 = activityPowerPriceFormula.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); + //活动总电费 + activityPowerPriceTotal = activityPowerPriceTotal.add(activityPowerPrice1).setScale(2, BigDecimal.ROUND_HALF_UP); + //活动总金额 + activityTotalPriceTotal = activityTotalPriceTotal.add(activityServicePrice1.add(activityPowerPrice1)); + params.put("T",activityPowerPrice1.add(activityServicePrice1).doubleValue()); + params.put("P",activityPowerPrice1.doubleValue()); + params.put("S",activityServicePrice1.doubleValue()); + params.put("E",degree.doubleValue()); + //支付给流量方的钱 + BigDecimal eval = new BigDecimal(Calc.eval(computeFormula, params)).setScale(2, BigDecimal.ROUND_HALF_UP); + if(computeType==1){ + BigDecimal decimal1 = eval.multiply(new BigDecimal(0.5)).setScale(2, BigDecimal.ROUND_HALF_UP); + internetCommission = internetCommission.add(eval); + activityPowerPrice =activityPowerPrice.add(activityPowerPrice1.subtract(decimal1)); + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(decimal1)); + }else if(computeType==2){ + internetSvcCommission = internetSvcCommission.add(eval); + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(eval)); + activityPowerPrice =activityPowerPrice.add(activityPowerPrice1); + }else{ + //电量抽成 + internetDegreeCommission = internetDegreeCommission.add(eval); + //减服务费 + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(eval)); + activityPowerPrice =activityPowerPrice.add(activityPowerPrice1); + } + chargingDegree = chargingDegree.add(degree); + } + if(activityFormulaTime2.size()>0){ + for (int j = 0; j < activityFormulaTime2.size(); j++) { + //计费类型 + int computeType = activityInternet2.getComputeType(); + XhpcActivityFormulaDomainDto activityFormula = activityFormulaTime1.get(j); + BigDecimal activityServicePriceFormula = activityFormula.getServicePrice(); + BigDecimal activityPowerPriceFormula = activityFormula.getPowerPrice(); + //计算公式 + String computeFormula = activityFormula.getComputeFormula(); + BigDecimal degree =new BigDecimal(0); + if (activityFormulaTime2.size()-1==j && activityEndTime) { + degree = new BigDecimal(totalPower).subtract(chargingDegree).setScale(2, BigDecimal.ROUND_HALF_UP); + }else{ + degree =getRealOrderTime(chargeOrderId, parse2+" "+activityFormula.getStartTime(), parse2+" "+activityFormula.getEndTime()).setScale(2,BigDecimal.ROUND_HALF_UP);; + } + //挡前服务费 + BigDecimal activityServicePrice1 = activityServicePriceFormula.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); + //活动总服务费 + activityServicePriceTotal = activityServicePriceTotal.add(activityServicePrice1).setScale(2, BigDecimal.ROUND_HALF_UP); + //挡前电费 + BigDecimal activityPowerPrice1 = activityPowerPriceFormula.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); + //活动总电费 + activityPowerPriceTotal = activityPowerPriceTotal.add(activityPowerPrice1).setScale(2, BigDecimal.ROUND_HALF_UP); + //活动总金额 + activityTotalPriceTotal = activityTotalPriceTotal.add(activityServicePrice1.add(activityPowerPrice1)); + params.put("T",activityPowerPrice1.add(activityServicePrice1).doubleValue()); + params.put("P",activityPowerPrice1.doubleValue()); + params.put("S",activityServicePrice1.doubleValue()); + params.put("E",degree.doubleValue()); + //支付给流量方的钱 + BigDecimal eval = new BigDecimal(Calc.eval(computeFormula, params)).setScale(2, BigDecimal.ROUND_HALF_UP); + if(computeType==1){ + BigDecimal decimal1 = eval.multiply(new BigDecimal(0.5)).setScale(2, BigDecimal.ROUND_HALF_UP); + internetCommission = internetCommission.add(eval); + activityPowerPrice =activityPowerPrice.add(activityPowerPrice1.subtract(decimal1)); + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(decimal1)); + }else if(computeType==2){ + internetSvcCommission = internetSvcCommission.add(eval); + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(eval)); + activityPowerPrice =activityPowerPrice.add(activityPowerPrice1); + }else{ + //电量抽成 + internetDegreeCommission = internetDegreeCommission.add(eval); + //减服务费 + activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(eval)); + activityPowerPrice =activityPowerPrice.add(activityPowerPrice1); + } + chargingDegree = chargingDegree.add(degree); + } + } + if(!activityEndTime){ + List> reatTimeList = xhpcHistoryOrderService.getReatTimeList("00:00:00", end, rateModelId); if(reatTimeList.size()>0){ String substring = internetSerialNumber.substring(0, 9); Map operatorIdEvcs = xhpcRealTimeOrderMapper.getOperatorIdEvcs(substring); @@ -575,105 +756,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe } } } - - for (int j = 0; j < activityFormulaTime1.size(); j++) { - XhpcActivityFormulaDomainDto activityFormula = activityFormulaTime1.get(j); - //计费类型 - int computeType = activityInternet1.getComputeType(); - BigDecimal activityServicePriceFormula = activityFormula.getServicePrice(); - BigDecimal activityPowerPriceFormula = activityFormula.getPowerPrice(); - //计算公式 - String computeFormula = activityFormula.getComputeFormula(); - BigDecimal degree =new BigDecimal(0); - if (activityFormulaTime2.size()==0 && activityFormulaTime1.size()-1==j) { - degree = new BigDecimal(totalPower).subtract(chargingDegree).setScale(2, BigDecimal.ROUND_HALF_UP); - }else{ - degree =getRealOrderTime(chargeOrderId, parse2+" "+activityFormula.getStartTime(), parse2+" "+activityFormula.getEndTime()); - } - //挡前服务费 - BigDecimal activityServicePrice1 = activityServicePriceFormula.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); - //活动总服务费 - activityServicePriceTotal = activityServicePriceTotal.add(activityServicePrice1).setScale(2, BigDecimal.ROUND_HALF_UP); - //挡前电费 - BigDecimal activityPowerPrice1 = activityPowerPriceFormula.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); - //活动总电费 - activityPowerPriceTotal = activityPowerPriceTotal.add(activityPowerPrice1).setScale(2, BigDecimal.ROUND_HALF_UP); - //活动总金额 - activityTotalPriceTotal = activityTotalPriceTotal.add(activityServicePrice1.add(activityPowerPrice1)); - params.put("T",activityPowerPrice1.add(activityServicePrice1).doubleValue()); - params.put("P",activityPowerPrice1.doubleValue()); - params.put("S",activityServicePrice1.doubleValue()); - params.put("E",degree.doubleValue()); - //支付给流量方的钱 - BigDecimal eval = new BigDecimal(Calc.eval(computeFormula, params)); - if(computeType==1){ - BigDecimal decimal1 = eval.multiply(new BigDecimal(0.5)).setScale(2, BigDecimal.ROUND_HALF_UP); - internetCommission = internetCommission.add(eval); - activityPowerPrice =activityPowerPrice.add(activityPowerPrice1.subtract(decimal1)); - activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(decimal1)); - }else if(computeType==2){ - internetSvcCommission = internetSvcCommission.add(eval); - activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(eval)); - activityPowerPrice =activityPowerPrice.add(activityPowerPrice1); - }else{ - //电量抽成 - internetDegreeCommission = internetDegreeCommission.add(eval); - //减服务费 - activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(eval)); - activityPowerPrice =activityPowerPrice.add(activityPowerPrice1); - } - chargingDegree = chargingDegree.add(degree); - } - if(activityFormulaTime2.size()>0){ - for (int j = 0; j < activityFormulaTime2.size(); j++) { - //计费类型 - int computeType = activityInternet2.getComputeType(); - XhpcActivityFormulaDomainDto activityFormula = activityFormulaTime1.get(j); - BigDecimal activityServicePriceFormula = activityFormula.getServicePrice(); - BigDecimal activityPowerPriceFormula = activityFormula.getPowerPrice(); - //计算公式 - String computeFormula = activityFormula.getComputeFormula(); - BigDecimal degree =new BigDecimal(0); - if (activityFormulaTime2.size()-1==j) { - degree = new BigDecimal(totalPower).subtract(chargingDegree).setScale(2, BigDecimal.ROUND_HALF_UP); - }else{ - degree =getRealOrderTime(chargeOrderId, parse2+" "+activityFormula.getStartTime(), parse2+" "+activityFormula.getEndTime()); - } - //挡前服务费 - BigDecimal activityServicePrice1 = activityServicePriceFormula.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); - //活动总服务费 - activityServicePriceTotal = activityServicePriceTotal.add(activityServicePrice1).setScale(2, BigDecimal.ROUND_HALF_UP); - //挡前电费 - BigDecimal activityPowerPrice1 = activityPowerPriceFormula.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); - //活动总电费 - activityPowerPriceTotal = activityPowerPriceTotal.add(activityPowerPrice1).setScale(2, BigDecimal.ROUND_HALF_UP); - //活动总金额 - activityTotalPriceTotal = activityTotalPriceTotal.add(activityServicePrice1.add(activityPowerPrice1)); - params.put("T",activityPowerPrice1.add(activityServicePrice1).doubleValue()); - params.put("P",activityPowerPrice1.doubleValue()); - params.put("S",activityServicePrice1.doubleValue()); - params.put("E",degree.doubleValue()); - //支付给流量方的钱 - BigDecimal eval = new BigDecimal(Calc.eval(computeFormula, params)); - if(computeType==1){ - BigDecimal decimal1 = eval.multiply(new BigDecimal(0.5)).setScale(2, BigDecimal.ROUND_HALF_UP); - internetCommission = internetCommission.add(eval); - activityPowerPrice =activityPowerPrice.add(activityPowerPrice1.subtract(decimal1)); - activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(decimal1)); - }else if(computeType==2){ - internetSvcCommission = internetSvcCommission.add(eval); - activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(eval)); - activityPowerPrice =activityPowerPrice.add(activityPowerPrice1); - }else{ - //电量抽成 - internetDegreeCommission = internetDegreeCommission.add(eval); - //减服务费 - activityServicePrice =activityServicePrice.add(activityServicePrice1.subtract(eval)); - activityPowerPrice =activityPowerPrice.add(activityPowerPrice1); - } - chargingDegree = chargingDegree.add(degree); - } - } + promotionDiscount = money.subtract(activityTotalPriceTotal); xhpcHistoryOrder.setActivityId(activityId); }else{ if(activityStationTime.size()>2){ @@ -810,10 +893,8 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe } } }else{ - //电量抽成 - BigDecimal chargingDegree = xhpcChargeOrder.getChargingDegree(); //电量的钱 - BigDecimal bigDecimal = chargingDegree.multiply(discountRate).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal bigDecimal = degree.multiply(discountRate).setScale(2, BigDecimal.ROUND_HALF_UP); //当电量的折扣大于服务费时,电量==服务费 if(activityServicePriceTotal.compareTo(bigDecimal)<0){ if(promotionDiscount1.compareTo(activityServicePriceTotal)<0){ @@ -1031,7 +1112,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe xhpcHistoryOrder.setActivityTotalPrice(activityTotalPriceTotal.setScale(2, BigDecimal.ROUND_HALF_UP)); xhpcHistoryOrder.setActivityPowerPriceTotal(activityPowerPriceTotal.setScale(2, BigDecimal.ROUND_HALF_UP)); xhpcHistoryOrder.setActivityServicePriceTotal(activityServicePriceTotal.setScale(2, BigDecimal.ROUND_HALF_UP)); - xhpcHistoryOrder.setActPrice(activityTotalPriceTotal.setScale(2, BigDecimal.ROUND_HALF_UP)); + xhpcHistoryOrder.setActPrice(activityPowerPrice.add(activityServicePrice).setScale(2, BigDecimal.ROUND_HALF_UP)); xhpcHistoryOrder.setActPowerPrice(activityPowerPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); xhpcHistoryOrder.setActServicePrice(activityServicePrice.setScale(2, BigDecimal.ROUND_HALF_UP)); }else{ 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 daa1f8e5..e8f6f926 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 @@ -1085,27 +1085,27 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati * @param chargingPileId */ @Override - public Map getTodayTerminal(Long operatorId, Long chargingStationId, Long chargingPileId) { + public List> getTodayTerminal(Long operatorId, Long chargingStationId, Long chargingPileId) { LoginUser loginUser = tokenService.getLoginUser(); String tenantId = loginUser.getTenantId(); Long logUserId = SecurityUtils.getUserId(); SysUser sysUser = loginUser.getSysUser(); - Map map =new HashMap<>(); + List> map =new ArrayList<>(); if(tenantId !=null && !"".equals(tenantId)){ if(sysUser.getUserId() !=UserTypeUtil.USER_ID){ Long logOperatorId = sysUser.getOperatorId(); if ("01".equals(sysUser.getUserType())) { //运营商看自己的场站 - extracted(1,logOperatorId,operatorId, chargingStationId, chargingPileId, tenantId, map); + return extracted(1,logOperatorId,operatorId, chargingStationId, chargingPileId, tenantId); }else{ //查询赋值的场站 - extracted(2,logUserId,operatorId, chargingStationId, chargingPileId, tenantId, map); + return extracted(2,logUserId,operatorId, chargingStationId, chargingPileId, tenantId); } }else{ //全部桩 - extracted(0,null,operatorId, chargingStationId, chargingPileId, tenantId, map); + return extracted(0,null,operatorId, chargingStationId, chargingPileId, tenantId); } } return map; @@ -1236,7 +1236,7 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati - private void extracted(Integer status,Long logOperatorId,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId, Map map) { + private List> extracted(Integer status,Long logOperatorId,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId) { List terminal = xhpcStatisticsServiceMapper.getTerminal(status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId); int offLine =0;//离线 @@ -1265,11 +1265,43 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati } } } - map.put("offLine",offLine); - map.put("fault",fault); - map.put("freeTime",freeTime); - map.put("charge",charge); - map.put("unknown",unknown); + + List> mapList =new ArrayList<>(); + Map objectMap =new HashMap<>(); + objectMap.put("name","离线"); + objectMap.put("value",offLine); + mapList.add(objectMap); + + List> mapList1 =new ArrayList<>(); + Map objectMap1 =new HashMap<>(); + objectMap1.put("name","故障"); + objectMap1.put("value",fault); + mapList1.add(objectMap1); + mapList.addAll(mapList1); + + List> mapList2 =new ArrayList<>(); + Map objectMap2 =new HashMap<>(); + objectMap2.put("name","空闲"); + objectMap2.put("value",freeTime); + mapList2.add(objectMap2); + mapList.addAll(mapList2); + + List> mapList3 =new ArrayList<>(); + Map objectMap3 =new HashMap<>(); + objectMap3.put("name","充电"); + objectMap3.put("value",charge); + mapList3.add(objectMap3); + mapList.addAll(mapList3); + + List> mapList4 =new ArrayList<>(); + Map objectMap4 =new HashMap<>(); + objectMap4.put("name","未知"); + objectMap4.put("value",unknown); + mapList4.add(objectMap4); + mapList.addAll(mapList4); + + return mapList; + } private void extracted(Integer status,Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId, String beginOfDay, String endOfDay, Map map, Long logOperatorId) {