ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TSettlementConfirm.java
@@ -101,6 +101,12 @@ @ApiModelProperty(value = "承担金额") @TableField("proportion_money") private BigDecimal proportionMoney; @ApiModelProperty(value = "合作商充电服务费根据合同约定分成比例") @TableField(exist = false) private String proportionPartnerString; @ApiModelProperty(value = "平台充电服务费根据合同约定分成比例") @TableField(exist = false) private String proportionMoneyString; @ApiModelProperty(value = "本期结算电费总金额 (实际电费转账)") @TableField("total_electronic") private BigDecimal totalElectronic; ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -17,6 +17,8 @@ @ApiModelProperty(value = "订单状态") private Integer status; @ApiModelProperty(value = "充值支付方式(1=微信,2=支付宝)") private Integer rechargePaymentType; @ApiModelProperty(value = "充值支付状态(1=待支付,2=已支付)") private Integer rechargePaymentStatus; @ApiModelProperty(value = "电站id") ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -141,7 +141,7 @@ BigDecimal vipMoney = divide1.multiply(vipElectrovalence).setScale(2,BigDecimal.ROUND_HALF_UP); // BigDecimal subtract = divide.subtract(divide1); // 优惠金额 data.setMoney(electrovalence.multiply(divide1).subtract(vipMoney).setScale(2, BigDecimal.ROUND_HALF_UP)); data.setMoney(electrovalence.multiply(divide1).subtract(vipMoney).setScale(2, BigDecimal.ROUND_DOWN)); return AjaxResult.ok(data); } /** ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -92,7 +92,7 @@ @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理", "管理后台-充电桩信息"},value = "查询计费策略明细列表") @GetMapping(value = "/queryAccountingStrategyDetailByStrategyId") public AjaxResult<List<TAccountingStrategyDetailVO>> queryAccountingStrategyDetailByStrategyId(@RequestParam("strategyId") Integer strategyId) { List<TAccountingStrategyDetailVO> list = accountingStrategyDetailService.queryAccountingStrategyDetailByStrategyId(strategyId); List<TAccountingStrategyDetailVO> list = accountingStrategyDetailService.queryMangementAccountingStrategyDetailByStrategyId(strategyId); list.forEach(detail -> { detail.setTotalPrice(detail.getElectrovalence().add(detail.getServiceCharge())); }); @@ -272,8 +272,9 @@ String twoUserName = sysUserClient.getSysUser(accountingStrategy.getTwoUserId()).getData().getNickName(); accountingStrategyVO.setTwoUserName(twoUserName); } if(null != children.getUserId()){ String userName = sysUserClient.getSysUser(children.getUserId()).getData().getNickName(); TAccountingStrategy accountingStrategy1 = accountingStrategyService.getById(id); if(null != accountingStrategy1.getUserId()){ String userName = sysUserClient.getSysUser(accountingStrategy1.getUserId()).getData().getNickName(); accountingStrategyVO.setUserName(userName); } accountingStrategyVO.setAccountingStrategyDetailList(accountingStrategyDetailService.list(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -547,9 +547,18 @@ if (chargingOrder.getCode()!=null){ List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData(); if (data6!=null && !data6.isEmpty()){ // 第一条数据soc为开始 最后一条数据soc为结束soc settlementExportVO.setStartSoc(data6.get(0).getSoc()+"%"); settlementExportVO.setEndSoc(data6.get(data6.size()-1).getSoc()+"%"); int min = 100; int max = 0; for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) { if (uploadRealTimeMonitoringData.getSoc()>max){ max = uploadRealTimeMonitoringData.getSoc(); } if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){ min = uploadRealTimeMonitoringData.getSoc(); } } settlementExportVO.setEndSoc(max+""); settlementExportVO.setStartSoc(min+""); } } settlementExportVO.setIsSoc("否"); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
@@ -203,7 +203,7 @@ List<Map<String, Object>> charMap = new ArrayList<>(); // 生成从 "00:00" 到 "23:00" 的时间数据 // 生成从 "00:00" 到 "23:00" 的时间数据------- for (int hour = 0; hour < 24; hour++) { String time = String.format("%02d:00", hour); Map<String, Object> mapWithTimeValue = findMapWithTimeValue(maps, time); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java
@@ -23,6 +23,12 @@ * @return */ List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId); /** * 查询计费策略明细列表---后台 * @param strategyId * @return */ List<TAccountingStrategyDetailVO> queryMangementAccountingStrategyDetailByStrategyId(Integer strategyId); /** ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
@@ -62,7 +62,7 @@ @Override public List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId) { List<TAccountingStrategyDetailVO> tAccountingStrategyDetailVOS = this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId); Long userId = tokenService.getLoginUser().getUserid(); Long userId = tokenService.getLoginUserApplet().getUserId(); TAppUser appUser = appUserClient.getUserById(userId).getData(); for (TAccountingStrategyDetailVO tAccountingStrategyDetailVO : tAccountingStrategyDetailVOS) { GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); @@ -73,13 +73,20 @@ if(Objects.nonNull(data1)){ String vipJson = data1.getVipJson(); TVip vip = JSON.parseObject(vipJson, TVip.class); tAccountingStrategyDetailVO.setDiscount(vip.getDiscount().divide(new BigDecimal(10))); if(Objects.nonNull(vip) && vip.getType() == 2){ tAccountingStrategyDetailVO.setDiscount(vip.getDiscount().divide(new BigDecimal(10))); } } } return tAccountingStrategyDetailVOS; } @Override public List<TAccountingStrategyDetailVO> queryMangementAccountingStrategyDetailByStrategyId(Integer strategyId) { return this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId); } @Override public List<TAccountingStrategyDetailVO> queryStrategyBySiteIdAndTime(Integer siteId) { Site site = siteService.getById(siteId); TAccountingStrategy accountingStrategy = accountingStrategyMapper.selectById(site.getAccountingStrategyId()); ruoyi-service/ruoyi-chargingPile/src/main/resources/template/运营商名称1-充电桩名称1-结算对账单明细-结算月份1.xlsxBinary files differ
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
@@ -74,7 +74,7 @@ ChargingBillVO res = chargingBillService.chargingBillList1(dto); List<ChargingBillListVO> records = res.getList().getRecords(); accountListVO.setBillCount(records.size()); accountListVO.setTotalAmount(res.getOrderAmount().subtract(res.getRefundAmount()) accountListVO.setTotalAmount(res.getPaymentAmount().subtract(res.getRefundAmount()) .subtract(res.getCommissionAmount()).subtract(res.getSharingAmount())); accountListVO.setPaymentAmount(res.getPaymentAmount()); accountListVO.setRefundAmount(res.getRefundAmount()); @@ -292,7 +292,7 @@ int i =1; for (TChargingOrder tChargingOrder : tChargingOrders) { // 账单信息 paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount()); paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()); // 退款信息 ChargingBillRefundExport chargingBillRefundExport = new ChargingBillRefundExport(); @@ -354,13 +354,11 @@ String name = data1.get(0).getName(); chargingBillExport.setSiteName(name); } } chargingBillExport.setPaymentAmount(paymentAmount); chargingBillExport.setRefundAmount(refundAmount); chargingBillExport.setIncome(paymentAmount.subtract(refundAmount)); chargingBillExports.add(chargingBillExport); // 导出 List<Map<String, Object>> sheetsList = new ArrayList<>(); for (int i1 = 1; i1 <= 3; i1++) { ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -58,6 +58,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; @@ -112,6 +113,8 @@ @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"}) @PutMapping("/export") public void export(@RequestBody ChargingListQuery dto) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ChargingOrderTimeVO res = chargingOrderService.chargingList(dto); List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>(); List<ChargingOrderListVO> exportList = res.getList().getRecords(); @@ -149,10 +152,22 @@ tChargingOrderExport.setOrderClassification("1"); tChargingOrderExport.setStartType("扫码"); tChargingOrderExport.setOne("小程序"); tChargingOrderExport.setTwo("小程序"); tChargingOrderExport.setCreateTime(chargingOrderListVO.getCreateTime()+""); tChargingOrderExport.setStartTime(chargingOrderListVO.getStartTime()+""); tChargingOrderExport.setEndTime(chargingOrderListVO.getEndTime()+""); if (chargingOrderListVO.getRechargePaymentType()!=null){ switch (chargingOrderListVO.getRechargePaymentType()){ case 1: tChargingOrderExport.setTwo("微信小程序"); break; case 2: tChargingOrderExport.setTwo("支付宝小程序"); break; } } String s1 = DateUtils.localDateTimeToString(chargingOrderListVO.getCreateTime()); String s2 = DateUtils.localDateTimeToString(chargingOrderListVO.getStartTime()); String s3 = DateUtils.localDateTimeToString(chargingOrderListVO.getEndTime()); tChargingOrderExport.setCreateTime(s1); tChargingOrderExport.setStartTime(s2); tChargingOrderExport.setEndTime(s3); tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+""); tChargingOrderExport.setType("充电订单"); tChargingOrderExport.setChargingType("单桩双充"); @@ -205,7 +220,6 @@ tChargingOrderExport.setVipType(data1.getName()); } } // tChargingOrderExport.setVipType(); tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否"); if (data3!=null){ tChargingOrderExport.setRealName(data3.getName()); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -104,9 +104,7 @@ BigDecimal refundAmount = new BigDecimal("0"); int orderCount = 0; for (ChargingBillListVO chargingBillListVO : list) { if (chargingBillListVO.getType()==2){ continue; } String temp = ""; String temp1 = ""; switch (chargingBillListVO.getType()){ @@ -314,9 +312,8 @@ chargingBillVO.setPaymentAmount(BigDecimal.ZERO); } chargingBillListVO.setOrderAmount(chargingBillVO.getPaymentAmount().subtract(chargingBillVO.getRefundAmount()==null?BigDecimal.ZERO:chargingBillVO.getRefundAmount())); chargingBillListVO.setPaymentAmount(paymentAmount); chargingBillListVO.setOrderAmount(orderAmount == null?BigDecimal.ZERO:orderAmount.subtract(sharingAmount).subtract(commissionAmount)); chargingBillListVO.setOrderAmount(paymentAmount == null?BigDecimal.ZERO:orderAmount.subtract(sharingAmount).subtract(commissionAmount)); chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:refundAmount); chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence); chargingBillListVO.setServiceCharge(serviceCharge == null?BigDecimal.ZERO:serviceCharge); @@ -324,7 +321,7 @@ chargingBillListVO.setSharingAmount(sharingAmount == null?BigDecimal.ZERO:sharingAmount); chargingBillListVO.setChargingCapacity(chargingCapacity == null?BigDecimal.ZERO:chargingCapacity); chargingBillListVO.setBillMoney(chargingBillListVO.getPaymentAmount().subtract(chargingBillListVO.getRefundAmount()==null?BigDecimal.ZERO:chargingBillListVO.getRefundAmount() .subtract(commissionAmount).subtract(sharingAmount)) .subtract(commissionAmount).subtract(sharingAmount).setScale(2, RoundingMode.HALF_DOWN)) .subtract(chargingBillListVO.getCommissionAmount()==null?BigDecimal.ZERO:chargingBillListVO.getCommissionAmount()) .subtract(chargingBillListVO.getSharingAmount()==null?BigDecimal.ZERO:chargingBillListVO.getSharingAmount())); switch (chargingBillListVO.getType()){ @@ -344,6 +341,9 @@ chargingBillListVO.setChargingSecond(chargingSecond); } for (ChargingBillListVO chargingBillListVO : list1) { if (chargingBillListVO.getType()==2){ continue; } LocalDateTime billTime = chargingBillListVO.getBillTime(); // 将其转化为yyyy-MM格式字符串 chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); @@ -400,7 +400,7 @@ } // 累加平台手续费 if (tChargingOrder.getOrderAmount()!=null){ commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006"))); commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))); } // 累加平台分佣 if (tChargingOrder.getSharingAmount()!=null){ @@ -645,7 +645,7 @@ } // 累加平台手续费 if (tChargingOrder.getOrderAmount()!=null){ commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(BigDecimal.valueOf(0.006))); commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(BigDecimal.valueOf(0.006))); } // 累加平台分佣 if (tChargingOrder.getSharingAmount()!=null){ @@ -664,7 +664,7 @@ String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds); chargingBillVO.setChargingTime(timeString); chargingBillListVO.setPaymentAmount(paymentAmount); chargingBillListVO.setPaymentAmount(orderAmount.subtract(commissionAmount).subtract(sharingAmount).setScale(2,RoundingMode.HALF_DOWN)); chargingBillListVO.setOrderAmount(orderAmount); chargingBillListVO.setElectrovalence(electrovalence); chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN)); @@ -756,8 +756,8 @@ } // 累加平台手续费 if (tChargingOrder.getOrderAmount()!=null){ commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006"))); commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006"))); commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))); commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))); } // 累加平台分佣 if (tChargingOrder.getSharingAmount()!=null){ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1413,7 +1413,7 @@ chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity()); BigDecimal bigDecimal = new BigDecimal("0.006"); if (chargingOrderListVO.getOrderAmount()!=null){ chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getOrderAmount().multiply(bigDecimal)); chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getPaymentAmount().multiply(bigDecimal)); } chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount()); chargingOrderListVO.setUid(chargingOrderListVO.getId()+""); @@ -1441,9 +1441,20 @@ // 获取开始SOC 结束soc if (chargingOrderListVO.getCode()!=null){ List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData(); if (data6!=null && !data6.isEmpty()){ chargingOrderListVO.setEndSoc(data6.get(0).getSoc().toString()); chargingOrderListVO.setStartSoc(data6.get(data6.size()-1).getSoc().toString()); int min = 100; int max = 0; for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) { if (uploadRealTimeMonitoringData.getSoc()>max){ max = uploadRealTimeMonitoringData.getSoc(); } if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){ min = uploadRealTimeMonitoringData.getSoc(); } } chargingOrderListVO.setEndSoc(max+""); chargingOrderListVO.setStartSoc(min+""); } } ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -933,7 +933,7 @@ from t_charging_order where 1=1 AND del_flag = 0 AND recharge_payment_status = 2 AND recharge_payment_status = 2 and status = 5 <if test="siteIds != null and siteIds.size() > 0"> and site_id IN <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">