From 57a134af6fdf55215f4714b6962e13c6499b5788 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 23 十月 2024 14:52:10 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 35 +++- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 250 +++++++++++++++++++++++++++++------ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java | 15 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java | 16 - ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java | 72 +++++++-- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java | 3 6 files changed, 306 insertions(+), 85 deletions(-) diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java index 2a3ecf5..6bbb818 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingBill.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "1未出账2已出账") @TableField("status") private Integer status; + @ApiModelProperty(value = "账单类型 1充电算帐单 2账号结算帐单") + @TableField("billType") + private Integer billType; @ApiModelProperty(value = "1日结2月结") @TableField("orderState") private Integer orderState; diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java index 8626df8..85ec054 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TInviteUserServiceImpl.java @@ -1,9 +1,13 @@ package com.ruoyi.account.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.model.TInviteUser; import com.ruoyi.account.mapper.TInviteUserMapper; import com.ruoyi.account.service.TInviteUserService; +import com.ruoyi.other.api.domain.TIntegralRule; +import com.ruoyi.other.api.feignClient.IntegralRuleClient; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDateTime; @@ -19,12 +23,19 @@ @Service public class TInviteUserServiceImpl extends ServiceImpl<TInviteUserMapper, TInviteUser> implements TInviteUserService { + @Autowired + private IntegralRuleClient integralRuleClient; + @Override public void saveInviteUser(Long appUserId, Long beInvitedAppUserId) { + // 查询邀请用户获得积分配置 + TIntegralRule integralRule = integralRuleClient.getSet().getData(); + JSONObject jsonObject = JSONObject.parseObject(integralRule.getInviteUsersToEarnPoints()); TInviteUser inviteUser = new TInviteUser(); - inviteUser.setAppUserId(appUserId); - inviteUser.setBeInvitedAppUserId(beInvitedAppUserId); + inviteUser.setAppUserId(beInvitedAppUserId); + inviteUser.setBeInvitedAppUserId(appUserId); inviteUser.setCreateTime(LocalDateTime.now()); + inviteUser.setAward(jsonObject.getInteger("num1")); this.save(inviteUser); } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java index d9b3c8d..f10fe03 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java @@ -73,18 +73,12 @@ public R<AccountListVO> accountBillList(@RequestBody ChargingListQuery dto) { AccountListVO accountListVO = new AccountListVO(); ChargingBillVO res = chargingBillService.chargingBillList1(dto); - - ChargingBillVO res1 = chargingBillService.chargingBillList1(dto); - List<ChargingBillListVO> records = res1.getList().getRecords(); + List<ChargingBillListVO> records = res.getList().getRecords(); accountListVO.setBillCount(records.size()); - accountListVO.setTotalAmount( - res1.getPaymentAmount().subtract(res1.getRefundAmount()==null?BigDecimal.ZERO:res1.getRefundAmount()) - .subtract(res1.getCommissionAmount()==null?BigDecimal.ZERO:res1.getCommissionAmount()) - .subtract(res1.getSharingAmount()==null?BigDecimal.ZERO:res1.getSharingAmount())); - accountListVO.setPaymentAmount(res1.getPaymentAmount()); - accountListVO.setRefundAmount(res1.getRefundAmount()); - accountListVO.setCommissionAmount(res1.getCommissionAmount()); - accountListVO.setSharingAmount(res1.getSharingAmount()); + accountListVO.setPaymentAmount(res.getPaymentAmount()); + accountListVO.setRefundAmount(res.getRefundAmount()); + accountListVO.setCommissionAmount(res.getCommissionAmount()); + accountListVO.setSharingAmount(res.getSharingAmount()); accountListVO.setList(res.getList()); return R.ok(accountListVO); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java index f955e49..280cabf 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java @@ -31,6 +31,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.time.temporal.TemporalAdjusters; import java.util.Arrays; import java.util.List; @@ -71,7 +72,10 @@ startTime2 = split[1]; } PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); + PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999); List<ChargingBillListVO> list = this.baseMapper.chargingBillList1(pageInfo,dto,startTime1,startTime2); + List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList1(pageInfo1,dto,startTime1,startTime2); + chargingBillVO.setOrderCount(list1.size()); BigDecimal paymentAmountTotal = new BigDecimal("0"); BigDecimal orderAmountTotal = new BigDecimal("0"); BigDecimal electrovalenceTotal = new BigDecimal("0"); @@ -109,15 +113,20 @@ chargingBillListVO.setUid(chargingBillListVO.getId().toString()); // 根据账单的出账时间 查询上个月的充电订单 - LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); +// LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); + // todo 临时修改为查询昨天的充电订单 + LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1); // 账单周期 chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); // 获取 LocalDate 对象 LocalDate date = localDate.toLocalDate(); - // 获取该月份的第一天 - LocalDate firstDayOfMonth = date.withDayOfMonth(1); - // 获取该月份的最后一天 - LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); +// // 获取该月份的第一天 +// LocalDate firstDayOfMonth = date.withDayOfMonth(1); +// // 获取该月份的最后一天 +// LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); + // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59 + LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); + LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() .between("create_time", firstDayOfMonth, lastDayOfMonth) .eq("status", 5) @@ -228,21 +237,17 @@ // 累加实收金额 支付金额减去退款金额 if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){ paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount()); - paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount()); }else if (tChargingOrder.getPaymentAmount()!=null){ paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()); - paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()); } // 累加订单金额 if (tChargingOrder.getOrderAmount()!=null){ orderAmount = orderAmount.add(tChargingOrder.getOrderAmount()); - orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount()); } // 累加累计电费 if (tChargingOrder.getElectrovalence()!=null){ electrovalence = electrovalence.add(tChargingOrder.getElectrovalence()); - electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); } if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() == 2){ refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); @@ -250,30 +255,20 @@ // 累加累计服务费 if (tChargingOrder.getServiceCharge()!=null){ serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); - serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge()); } // 累加平台手续费 if (tChargingOrder.getCommissionAmount()!=null){ commissionAmount = commissionAmount.add(tChargingOrder.getCommissionAmount()); - commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getCommissionAmount()); } // 累加平台分佣 if (tChargingOrder.getSharingAmount()!=null){ sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); - sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount()); } // 累加充电度数 if (tChargingOrder.getChargingCapacity()!=null){ chargingCapacity = chargingCapacity.add(tChargingOrder.getChargingCapacity()); - chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getChargingCapacity()); } - // 累加优惠金额 - if (tChargingOrder.getCouponDiscountAmount()!=null){ - discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount()); - } - if (tChargingOrder.getVipDiscountAmount()!=null){ - discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount()); - } + } // 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒 int hours = chargingSecond / 3600; @@ -315,6 +310,95 @@ // 充电时间秒 chargingBillListVO.setChargingSecond(chargingSecond); } + for (ChargingBillListVO chargingBillListVO : list1) { + + + + LocalDateTime billTime = chargingBillListVO.getBillTime(); + // 将其转化为yyyy-MM格式字符串 + chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + // 将billTime减去一个月 转化为yyyy-MM格式字符串 + chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); + + chargingBillListVO.setUid(chargingBillListVO.getId().toString()); + // 根据账单的出账时间 查询上个月的充电订单 + LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); + // 账单周期 + chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); + // 获取 LocalDate 对象 + LocalDate date = localDate.toLocalDate(); +// // 获取该月份的第一天 +// LocalDate firstDayOfMonth = date.withDayOfMonth(1); +// // 获取该月份的最后一天 +// LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); + // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59 + LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); + LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); + QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() + .between("create_time", firstDayOfMonth, lastDayOfMonth) + .eq("status", 5) + .eq("recharge_payment_status", 2); + if (chargingBillListVO.getType() == 2) { + eq.eq("site_id", chargingBillListVO.getSiteId()); + } + List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); + int chargingSecond = 0; + BigDecimal paymentAmount = new BigDecimal("0"); + BigDecimal orderAmount = new BigDecimal("0"); + BigDecimal electrovalence = new BigDecimal("0"); + BigDecimal serviceCharge = new BigDecimal("0"); + BigDecimal commissionAmount = new BigDecimal("0"); + BigDecimal sharingAmount = new BigDecimal("0"); + BigDecimal chargingCapacity = new BigDecimal("0"); + orderCount+=tChargingOrders.size(); + chargingBillVO.setCategory(""); + chargingBillVO.setExportList(tChargingOrders); + for (TChargingOrder tChargingOrder : tChargingOrders) { + + // 累加实收金额 支付金额减去退款金额 + if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){ + paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount()); + + }else if (tChargingOrder.getPaymentAmount()!=null){ + paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()); + } + // 累加订单金额 + if (tChargingOrder.getOrderAmount()!=null){ + orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount()); + } + // 累加累计电费 + if (tChargingOrder.getElectrovalence()!=null){ + electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); + } + if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() == 2){ + refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); + } + // 累加累计服务费 + if (tChargingOrder.getServiceCharge()!=null){ + serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge()); + } + // 累加平台手续费 + if (tChargingOrder.getServiceCharge()!=null){ + commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.006"))); + } + // 累加平台分佣 + if (tChargingOrder.getSharingAmount()!=null){ + sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount()); + } + // 累加充电度数 + if (tChargingOrder.getElectricity()!=null){ + + chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getElectricity()); + } + // 累加优惠金额 + if (tChargingOrder.getCouponDiscountAmount()!=null){ + discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount()); + } + if (tChargingOrder.getVipDiscountAmount()!=null){ + discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount()); + } + } + } chargingBillVO.setChargingCapacity(chargingCapacityTotal); chargingBillVO.setPaymentAmount(paymentAmountTotal); chargingBillVO.setOrderAmount(orderAmountTotal); @@ -341,7 +425,9 @@ startTime2 = split[1]; } PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); + PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999); List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2); + List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList1(pageInfo,dto,startTime1,startTime2); BigDecimal paymentAmountTotal = new BigDecimal("0"); BigDecimal orderAmountTotal = new BigDecimal("0"); BigDecimal electrovalenceTotal = new BigDecimal("0"); @@ -379,15 +465,20 @@ chargingBillListVO.setUid(chargingBillListVO.getId().toString()); // 根据账单的出账时间 查询上个月的充电订单 - LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); +// LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); + // todo 临时修改为查询昨天的充电订单 + LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1); // 账单周期 chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); // 获取 LocalDate 对象 LocalDate date = localDate.toLocalDate(); - // 获取该月份的第一天 - LocalDate firstDayOfMonth = date.withDayOfMonth(1); - // 获取该月份的最后一天 - LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); +// // 获取该月份的第一天 +// LocalDate firstDayOfMonth = date.withDayOfMonth(1); +// // 获取该月份的最后一天 +// LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); + // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59 + LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); + LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() .between("create_time", firstDayOfMonth, lastDayOfMonth) .eq("status", 5) @@ -498,21 +589,17 @@ // 累加实收金额 支付金额减去退款金额 if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){ paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount()); - paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount()); }else if (tChargingOrder.getPaymentAmount()!=null){ paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()); - paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()); } // 累加订单金额 if (tChargingOrder.getOrderAmount()!=null){ orderAmount = orderAmount.add(tChargingOrder.getOrderAmount()); - orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount()); } // 累加累计电费 if (tChargingOrder.getElectrovalence()!=null){ electrovalence = electrovalence.add(tChargingOrder.getElectrovalence()); - electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); } if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() !=null && tChargingOrder.getRefundStatus() == 2){ refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); @@ -520,29 +607,18 @@ // 累加累计服务费 if (tChargingOrder.getServiceCharge()!=null){ serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); - serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge()); } // 累加平台手续费 if (tChargingOrder.getCommissionAmount()!=null){ commissionAmount = commissionAmount.add(tChargingOrder.getCommissionAmount()); - commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getCommissionAmount()); } // 累加平台分佣 if (tChargingOrder.getSharingAmount()!=null){ sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); - sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount()); } // 累加充电度数 if (tChargingOrder.getChargingCapacity()!=null){ chargingCapacity = chargingCapacity.add(tChargingOrder.getChargingCapacity()); - chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getChargingCapacity()); - } - // 累加优惠金额 - if (tChargingOrder.getCouponDiscountAmount()!=null){ - discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount()); - } - if (tChargingOrder.getVipDiscountAmount()!=null){ - discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount()); } } // 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒 @@ -576,6 +652,98 @@ // 充电时间秒 chargingBillListVO.setChargingSecond(chargingSecond); } + for (ChargingBillListVO chargingBillListVO : list1) { + LocalDateTime billTime = chargingBillListVO.getBillTime(); + // 将其转化为yyyy-MM格式字符串 + chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + // 将billTime减去一个月 转化为yyyy-MM格式字符串 + chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); + + chargingBillListVO.setUid(chargingBillListVO.getId().toString()); + // 根据账单的出账时间 查询上个月的充电订单 +// LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); + // todo 临时修改为查询昨天的充电订单 + LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1); + // 账单周期 + chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); + // 获取 LocalDate 对象 + LocalDate date = localDate.toLocalDate(); +// // 获取该月份的第一天 +// LocalDate firstDayOfMonth = date.withDayOfMonth(1); +// // 获取该月份的最后一天 +// LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); + // todo 临时修改为查询昨天凌晨00:00:00 到 23:59:59 + LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); + LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); + QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() + .between("create_time", firstDayOfMonth, lastDayOfMonth) + .eq("status", 5) + .eq("recharge_payment_status", 2); + if (chargingBillListVO.getType() == 2) { + eq.eq("site_id", chargingBillListVO.getSiteId()); + } + List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); + int chargingSecond = 0; + BigDecimal paymentAmount = new BigDecimal("0"); + BigDecimal orderAmount = new BigDecimal("0"); + BigDecimal electrovalence = new BigDecimal("0"); + BigDecimal serviceCharge = new BigDecimal("0"); + BigDecimal commissionAmount = new BigDecimal("0"); + BigDecimal sharingAmount = new BigDecimal("0"); + BigDecimal chargingCapacity = new BigDecimal("0"); + orderCount+=tChargingOrders.size(); + for (TChargingOrder tChargingOrder : tChargingOrders) { + // 累加实收金额 支付金额减去退款金额 + if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getPaymentAmount()!=null){ + paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount()); + paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()).subtract(tChargingOrder.getRefundAmount()); + + }else if (tChargingOrder.getPaymentAmount()!=null){ + paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()); + paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()); + } + // 累加订单金额 + if (tChargingOrder.getOrderAmount()!=null){ + orderAmount = orderAmount.add(tChargingOrder.getOrderAmount()); + orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount()); + } + // 累加累计电费 + if (tChargingOrder.getElectrovalence()!=null){ + electrovalence = electrovalence.add(tChargingOrder.getElectrovalence()); + electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); + } + if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() !=null && tChargingOrder.getRefundStatus() == 2){ + refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); + } + // 累加累计服务费 + if (tChargingOrder.getServiceCharge()!=null){ + serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); + serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge()); + } + // 累加平台手续费 + if (tChargingOrder.getCommissionAmount()!=null){ + commissionAmount = commissionAmount.add(tChargingOrder.getCommissionAmount()); + commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getCommissionAmount()); + } + // 累加平台分佣 + if (tChargingOrder.getSharingAmount()!=null){ + sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); + sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount()); + } + // 累加充电度数 + if (tChargingOrder.getElectricity()!=null){ + chargingCapacity = chargingCapacity.add(tChargingOrder.getElectricity()); + chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getElectricity()); + } + // 累加优惠金额 + if (tChargingOrder.getCouponDiscountAmount()!=null){ + discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount()); + } + if (tChargingOrder.getVipDiscountAmount()!=null){ + discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount()); + } + } + } chargingBillVO.setChargingCapacity(chargingCapacityTotal); chargingBillVO.setPaymentAmount(paymentAmountTotal); chargingBillVO.setOrderAmount(orderAmountTotal); @@ -585,8 +753,6 @@ chargingBillVO.setCommissionAmount(commissionAmountTotal); chargingBillVO.setSharingAmount(sharingAmountTotal); chargingBillVO.setDiscount(discountTotal); - - pageInfo.setRecords(list); chargingBillVO.setList(pageInfo); return chargingBillVO; diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index 6703e28..2e5f6b3 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -1073,6 +1073,7 @@ endTime2 = split[1]; } PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); + PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999); if (StringUtils.hasLength(dto.getPhone())){ List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); @@ -1083,6 +1084,7 @@ dto.setUserIds(data); } List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); + List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2); BigDecimal total = new BigDecimal("0"); long time = 0L; BigDecimal income = new BigDecimal("0"); @@ -1100,10 +1102,6 @@ } if (data2!=null && data3!=null){ chargingOrderVO.setTerminalName(data2.getName()+"-"+data3.getName()); - - } - if (chargingOrderVO.getChargingCapacity()!=null){ - total = total.add(chargingOrderVO.getElectricity()); } // 充电订单 明细记录 List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() @@ -1112,14 +1110,6 @@ if (data5!=null){ long l = data5.getCumulative_charging_time() * 60L; chargingOrderVO.setChargingSecond(l); - time+=l; - } - electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence()); - serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()); - - income = income.add(chargingOrderVO.getServiceCharge().add(chargingOrderVO.getElectrovalence())); - if (chargingOrderVO.getRefundAmount()!=null){ - income = income.subtract(chargingOrderVO.getRefundAmount()); } // 充电时段数 int size = chargingOrderId.size(); @@ -1140,6 +1130,27 @@ } } + for (ChargingOrderVO chargingOrderVO : list1) { + if (chargingOrderVO.getChargingCapacity()!=null){ + total = total.add(chargingOrderVO.getElectricity()); + } + // 充电订单 明细记录 + List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() + .eq("charging_order_id", chargingOrderVO.getId())); + UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData(); + if (data5!=null){ + long l = data5.getCumulative_charging_time() * 60L; + chargingOrderVO.setChargingSecond(l); + time+=l; + } + electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence()); + serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()); + + income = income.add(chargingOrderVO.getOrderAmount()); + + + + } tCharingOrderVO.setTotal(total); tCharingOrderVO.setTime(time); tCharingOrderVO.setIncome(income); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java index fdd88a3..e579cea 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java @@ -51,7 +51,6 @@ @Scheduled(cron = "0 0 12 1 * ?") public void taskMonth() { try { - System.err.println("执行定时任务生成账单"); // 获取上个月的开始和结束日期 LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1). withDayOfMonth(2); @@ -71,33 +70,70 @@ tChargingBill.setBillTime(LocalDateTime.now()); tChargingBill.setStatus(1); tChargingBill.setOrderState(2); + tChargingBill.setBillType(1); + System.err.println("定时任务生成充电算帐单:全站"); chargingBillService.save(tChargingBill); - // 每月二号给每个站点生成上月账单 + // 生成一次全站订单 + TChargingBill tChargingBill1 = new TChargingBill(); + // 订单生成规则JSD+20231201(账单所属月份)+1131304205(随机10位数)+001(当月账单序号,每月重置) + Random random1 = new Random(); + String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 + .mapToObj(String::valueOf) + .collect(Collectors.joining()); // 将其连接成一个字符串 + tChargingBill1.setCode("JSD"+string+randomDigits1 ); + tChargingBill1.setType(1); + tChargingBill1.setSiteId(0); + tChargingBill1.setBillTime(LocalDateTime.now()); + tChargingBill1.setStatus(1); + tChargingBill1.setOrderState(2); + tChargingBill1.setBillType(2); + System.err.println("定时任务生成账户结算帐单:全站"); + chargingBillService.save(tChargingBill1); + System.err.println("定时任务生成各个站点结算帐单"); List<Integer> collect = siteClient.getSiteAll().getData().stream().map(Site::getId).collect(Collectors.toList()); + // 充电算帐单 List<TChargingBill> tChargingBills = new ArrayList<>(); + // 账户结算账单 + List<TChargingBill> tChargingBills1 = new ArrayList<>(); for (int i = 0; i < collect.size(); i++) { - TChargingBill tChargingBill1 = new TChargingBill(); - Random random1 = new Random(); - String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 + TChargingBill tChargingBill2 = new TChargingBill(); + Random random2 = new Random(); + String randomDigits2 = random2.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 .mapToObj(String::valueOf) .collect(Collectors.joining()); // 将其连接成一个字符串 - tChargingBill1.setCode("JSD"+string+randomDigits1+(i+1) ); - tChargingBill1.setType(2); - tChargingBill1.setSiteId(collect.get(i)); - tChargingBill1.setBillTime(LocalDateTime.now()); - tChargingBill1.setStatus(1); - tChargingBill1.setOrderState(2); - tChargingBills.add(tChargingBill1); + tChargingBill2.setCode("JSD"+string+randomDigits2+(i+1) ); + tChargingBill2.setType(2); + tChargingBill2.setSiteId(collect.get(i)); + tChargingBill2.setBillTime(LocalDateTime.now()); + tChargingBill2.setBillType(1); + tChargingBill2.setStatus(1); + tChargingBill2.setOrderState(2); + tChargingBills.add(tChargingBill2); + TChargingBill tChargingBill3 = new TChargingBill(); + Random random3 = new Random(); + String randomDigits3 = random3.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 + .mapToObj(String::valueOf) + .collect(Collectors.joining()); // 将其连接成一个字符串 + tChargingBill3.setCode("JSD"+string+randomDigits3+(i+1) ); + tChargingBill3.setType(2); + tChargingBill3.setSiteId(collect.get(i)); + tChargingBill3.setBillTime(LocalDateTime.now()); + tChargingBill3.setBillType(1); + tChargingBill3.setStatus(1); + tChargingBill3.setOrderState(2); + tChargingBills1.add(tChargingBill3); } System.err.println("列表"+tChargingBills); if (!tChargingBills.isEmpty())chargingBillService.saveBatch(tChargingBills); + if (!tChargingBills1.isEmpty())chargingBillService.saveBatch(tChargingBills1); } catch (Exception e) { e.printStackTrace(); } } - // 每个月最后一天23点执行的定时任务 - @Scheduled(cron = "0 0 12 1 * ?") + + // 每天晚上23:59:59执行的定时任务 + @Scheduled(cron = "0 0 23 1 * ?") public void taskLastDay() { try { // 获取上个月的开始和结束日期 @@ -110,10 +146,10 @@ LocalDateTime endDateTime = lastDayOfLastMonth.atTime(23, 59, 59); // 设定到最后一秒 // 构建查询条件 LambdaQueryWrapper<TChargingBill> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.ge(TChargingBill::getBillTime, - Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant())) - .le(TChargingBill::getBillTime, - Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant())); // 使用 le 包括最后一天的记录 +// queryWrapper.ge(TChargingBill::getBillTime, +// Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant())) +// .le(TChargingBill::getBillTime, +// Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant())); // 使用 le 包括最后一天的记录 List<TChargingBill> list = chargingBillService.list(queryWrapper); for (TChargingBill tChargingBill : list) { tChargingBill.setStatus(2); -- Gitblit v1.7.1