From b2738da3832b84beb0bc657b4a6bcf0c7ca152b0 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 17 一月 2025 18:32:49 +0800 Subject: [PATCH] 修改出账期 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 50 +++++++++++++++++++------ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 19 ++++++--- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java | 18 ++++++--- ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 7 ++- ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml | 2 5 files changed, 67 insertions(+), 29 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java index 58883a0..574c936 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java @@ -172,12 +172,18 @@ 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); + if (chargingOrderListVO.getCreateTime()!=null){ + String s1 = DateUtils.localDateTimeToString(chargingOrderListVO.getCreateTime()); + tChargingOrderExport.setCreateTime(s1); + } + if (chargingOrderListVO.getStartTime()!=null){ + String s2 = DateUtils.localDateTimeToString(chargingOrderListVO.getStartTime()); + tChargingOrderExport.setStartTime(s2); + } + if (chargingOrderListVO.getEndTime()!=null){ + String s3 = DateUtils.localDateTimeToString(chargingOrderListVO.getEndTime()); + tChargingOrderExport.setEndTime(s3); + } tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+""); tChargingOrderExport.setType("充电订单"); tChargingOrderExport.setChargingType("单桩双充"); 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 c5eed9e..a20b110 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 @@ -199,7 +199,7 @@ // 获取该月份的最后一天 LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() - .between("create_time", firstDayOfMonth, lastDayOfMonth) + .between("pay_time", firstDayOfMonth.atTime(0, 0, 0), lastDayOfMonth.atTime(23, 59, 59)) .eq("status", 5) .eq("recharge_payment_status", 2); if (chargingBillListVO.getType() == 2) { @@ -505,6 +505,7 @@ return chargingBillVO; } + @Override public ChargingBillVO chargingBillList(ChargingListQuery dto) { if (dto.getState()!=null){ @@ -639,7 +640,7 @@ // 获取该月份的最后一天 LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() - .between("create_time", firstDayOfMonth, lastDayOfMonth) + .between("pay_time", firstDayOfMonth.atTime(0, 0, 0), lastDayOfMonth.atTime(23, 59, 59)) .eq("status", 5) .eq("recharge_payment_status", 2); if (chargingBillListVO.getType() == 2) { @@ -930,11 +931,15 @@ } public static void main(String[] args) { - int i = 8 % 20; - System.err.println(i); - LocalDateTime now = LocalDateTime.now(); - // 将时间转化为字符串 只保留年月日 格式为yyyy-MM-dd - String format = now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd")); + LocalDateTime localDateTime = LocalDateTime.now().minusMonths(1); + // 获取 LocalDate 对象 + LocalDate date = localDateTime.toLocalDate(); +// // 获取该月份的第一天 + LocalDate firstDayOfMonth = date.withDayOfMonth(1); + // 获取该月份的最后一天 + LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); + System.err.println(firstDayOfMonth); + System.err.println(lastDayOfMonth); } } 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 d7e1276..30f0176 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 @@ -1259,7 +1259,17 @@ BigDecimal commissionMoney = new BigDecimal("0"); BigDecimal refundMoney = new BigDecimal("0"); BigDecimal paymentMoney = new BigDecimal("0"); + List<String> collect2 = list.stream().map(TChargingOrder::getCode).collect(Collectors.toList()); + StringBuilder stringBuilder2 = new StringBuilder(); + List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData2 = new ArrayList<>(); + for (String s : collect2) { + stringBuilder2.append(s).append(","); + } + if (stringBuilder2.length()>0){ + StringBuilder ids = stringBuilder2.deleteCharAt(stringBuilder2.length() - 1); + uploadRealTimeMonitoringData2 = uploadRealTimeMonitoringDataClient.getOrderInfoByCodes(ids.toString()).getData(); + } for (ChargingOrderVO chargingOrderVO : list) { if (roleType == 2){ for (Integer siteId : siteIds) { @@ -1286,7 +1296,8 @@ // 充电订单 明细记录 List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() .eq("charging_order_id", chargingOrderVO.getId())); - UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData(); + UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringData2.stream().filter(e -> e.getTransaction_serial_number().equals(chargingOrderVO.getCode())) + .findFirst().orElse(null); if (data5!=null && data5.getCumulative_charging_time()!=null){ long l = data5.getCumulative_charging_time() * 60L; chargingOrderVO.setChargingSecond(l); @@ -1310,16 +1321,26 @@ } } + List<String> collect = list1.stream().map(TChargingOrder::getCode).collect(Collectors.toList()); + StringBuilder stringBuilder = new StringBuilder(); + List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = new ArrayList<>(); + for (String s : collect) { + stringBuilder.append(s).append(","); + } + if (stringBuilder.length()>0){ + StringBuilder ids = stringBuilder.deleteCharAt(stringBuilder.length() - 1); + uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.getOrderInfoByCodes(ids.toString()).getData(); + + } + for (ChargingOrderVO chargingOrderVO : list1) { paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0")); commissionMoney = commissionMoney.add(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0")); if (chargingOrderVO.getChargingCapacity()!=null){ total = total.add(chargingOrderVO.getElectricity()!=null?chargingOrderVO.getElectricity():new BigDecimal("0")); } - // 充电订单 明细记录 - List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() - .eq("charging_order_id", chargingOrderVO.getId())); - UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData(); + UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringData.stream().filter(e -> e.getTransaction_serial_number().equals(chargingOrderVO.getCode())) + .findFirst().orElse(null); if (data5!=null && data5.getCumulative_charging_time()!=null){ long l = data5.getCumulative_charging_time() * 60L; chargingOrderVO.setChargingSecond(l); @@ -1499,6 +1520,9 @@ dto.setSiteIds(siteIds); PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); + List<Integer> siteIdsList = list.stream().map(ChargingOrderListVO::getSiteId).collect(Collectors.toList()); + if (siteIdsList.isEmpty())siteIdsList.add(-1); + List<Site> sites = siteClient.getSiteByIds(siteIdsList).getData(); for (ChargingOrderListVO chargingOrderListVO : list) { if (roleType==2){ @@ -1515,9 +1539,9 @@ chargingOrderListVO.setUid(chargingOrderListVO.getId()+""); List<Integer> integers = new ArrayList<>(); integers.add(chargingOrderListVO.getSiteId()); - List<Site> data = siteClient.getSiteByIds(integers).getData(); - if (!data.isEmpty()) { - chargingOrderListVO.setSiteName(data.get(0).getName()); + Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null); + if (site!=null){ + chargingOrderListVO.setSiteName(site.getName()); } if (chargingOrderListVO.getChargingGunId()!=null && chargingOrderListVO.getChargingPileId()!=null){ TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData(); @@ -1568,7 +1592,6 @@ } } chargingOrderListVO.setPhone(data3.getPhone()); - } } List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery() @@ -1642,14 +1665,17 @@ BigDecimal feng = new BigDecimal("0"); BigDecimal ping = new BigDecimal("0"); BigDecimal gu = new BigDecimal("0"); + List<Long> collect = list1.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList()); + List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.lambdaQuery() + .in(TChargingOrderAccountingStrategy::getChargingOrderId,collect).list(); for (ChargingOrderListVO chargingOrderListVO : list1) { if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity()); if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount()); if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence()); if (chargingOrderListVO.getServiceCharge()!=null)serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge()); - List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery() - .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrderListVO.getId()).list(); + List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId())) + .collect(Collectors.toList()); for (TChargingOrderAccountingStrategy temp : list2) { switch (temp.getType()){ case 1: @@ -3126,7 +3152,7 @@ .eq("recharge_payment_status",2); switch (dto.getType()){ case 1: - eq.between("start_time", localDateTime, localDateTime1); + eq.between("pay_time", localDateTime, localDateTime1); break; case 2: eq.between("end_time", localDateTime, localDateTime1); diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml index cd121be..3f47083 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml @@ -38,7 +38,7 @@ and t1.status = #{req.state} </if> <if test="startTime1 != null and startTime1!=''"> - and (t1.bill_time between #{startTime1} and #{startTime2} + and (t1.bill_time between #{startTime1} and #{startTime2}) </if> <if test="req.uid != null "> and t1.id = #{req.uid} diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml index 6ed6f33..eea5c84 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml @@ -111,7 +111,7 @@ and t1.charging_gun_id = #{req.gunId} </if> <if test="startTime1 != null and startTime1!=''"> - and (t1.start_time between #{startTime1} and #{startTime2}) + and (t1.pay_time between #{startTime1} and #{startTime2}) </if> <if test="endTime1 != null and endTime1!=''"> and (t1.end_time between #{endTime1} and #{endTime2}) @@ -870,7 +870,8 @@ </select> <select id="chargingList" resultType="com.ruoyi.order.api.vo.ChargingOrderListVO"> - select t1.* ,t1.current as chargingCapacity,t1.payment_amount as paymentAmount,t1.electricity as chargingCapacity from t_charging_order t1 + select t1.*, + t1.current as chargingCapacity,t1.payment_amount as paymentAmount,t1.electricity as chargingCapacity from t_charging_order t1 where 1=1 <if test="null != req.code and req.code!=''"> and t1.code LIKE CONCAT('%',#{req.code},'%') @@ -906,7 +907,7 @@ and t1.site_id = #{req.siteId} </if> <if test="startTime1 != null and startTime1!=''"> - and (t1.start_time between #{startTime1} and #{startTime2}) + and (t1.pay_time between #{startTime1} and #{startTime2}) </if> <if test="endTime1 != null and endTime1!=''"> and (t1.end_time between #{endTime1} and #{endTime2}) -- Gitblit v1.7.1