From 11291e5cb187703b26f29090c466d5c702e74cf1 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 17 十月 2024 10:03:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 31 +++- ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml | 8 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java | 15 +- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java | 20 +- ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml | 9 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 130 +++++++++++--------- ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml | 7 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java | 15 +- ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml | 51 ++------ ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java | 7 + ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml | 7 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java | 1 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java | 2 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml | 2 14 files changed, 156 insertions(+), 149 deletions(-) diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java index 89c2c9f..58f341b 100644 --- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java @@ -7,6 +7,8 @@ import org.springframework.data.mongodb.core.mapping.Document; import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; /** * 上传实时监测数据 @@ -45,6 +47,11 @@ private BigDecimal period_charging_degree;// @ApiModelProperty("时段充电度数") + private Integer orderType; //1=充电订单(小程序),2=充电订单(刷卡)) + private Integer siteId; + private Integer status; //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)" + private Date startTime; //充电开始时间 + private Date endTime; //充电结束时间 } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java index 9678610..300a830 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java @@ -56,7 +56,7 @@ * @return */ @PostMapping(value = "/t-exchange-order/activityStatistics") - public R<TActivityVO> activityStatistics(@RequestBody TActivityStatisticsQuery dto); + R<TActivityVO> activityStatistics(@RequestBody TActivityStatisticsQuery dto); @PostMapping(value = "/chargingBill/accountBillList") @ApiOperation(value = "列表查询", tags = {"管理后台-账户结算账单"}) R<AccountListVO> accountBillList(@RequestBody ChargingListQuery dto); diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java index f20373b..5d6df4a 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java @@ -1,5 +1,6 @@ package com.ruoyi.order.api.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.ser.Serializers; import com.ruoyi.common.core.web.domain.BasePojo; import com.ruoyi.order.api.model.*; @@ -8,6 +9,7 @@ import lombok.Data; import java.math.BigDecimal; +import java.time.LocalDateTime; @Data @ApiModel(value = "管理后台活动费用统计分页列表", description = "管理后台活动费用统计分页列表") @@ -33,16 +35,17 @@ @ApiModelProperty(value = "实付") private BigDecimal paymentAmount; @ApiModelProperty(value = "消费时间") - private String time; - @ApiModelProperty(value = "消费时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime time; + @ApiModelProperty(value = "总计优惠") private BigDecimal total; - @ApiModelProperty(value = "消费时间") + @ApiModelProperty(value = "优惠券优惠") private BigDecimal coupon; - @ApiModelProperty(value = "消费时间") + @ApiModelProperty(value = "会员抵扣") private BigDecimal discount; - @ApiModelProperty(value = "消费时间") + @ApiModelProperty(value = "会员活动") private BigDecimal vipActivity; - @ApiModelProperty(value = "消费时间") + @ApiModelProperty(value = "赠送会员") private BigDecimal grantVip; } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java index 24ef5be..9f0b476 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java @@ -7,7 +7,6 @@ import lombok.Data; import java.math.BigDecimal; - @Data @ApiModel(value = "TOrderAppealVO对象", description = "订单申诉VO对象") public class TActivityVO { diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml index dbd2ab0..a6d6b80 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml @@ -12,7 +12,6 @@ profiles: # 环境配置 active: dev -# active: prod --- spring: config: @@ -55,7 +54,7 @@ type: nacos nacos: # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP data-id: seata-server.properties @@ -73,7 +72,7 @@ nacos: application: seata-server # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP username: nacos @@ -88,7 +87,7 @@ nacos: discovery: # 开发环境 - server-addr: 192.168.110.169:8848 # nacos注册中心地址 + server-addr: 127.0.0.1:8848 # nacos注册中心地址 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java index 3477646..cddd92b 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java @@ -320,7 +320,7 @@ public ChargeMonitoring chargeMonitoring(Integer siteId) { //获取当前登录账户的站点权限数据 Set<Integer> siteIds = new HashSet<>(); - if(null == siteId){ + if(0 == siteId){ SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); @@ -334,12 +334,20 @@ List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); data.addAll(data1); siteIds = new HashSet<>(data); + }else{ + siteIds = null; } } }else{ siteIds.add(siteId); } - List<Site> sites = siteService.listByIds(siteIds); + List<Site> sites = null; + if(null == siteIds){ + sites = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0)); + siteIds = sites.stream().map(Site::getId).collect(Collectors.toSet()); + }else{ + sites = siteService.listByIds(siteIds); + } List<TChargingGun> total = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getSiteId, siteIds).eq(TChargingGun::getDelFlag, 0)); List<TChargingGun> charging = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getSiteId, siteIds).eq(TChargingGun::getStatus, 4).eq(TChargingGun::getDelFlag, 0)); BigDecimal ratedPower = total.stream().map(TChargingGun::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add); @@ -361,9 +369,9 @@ } List<String> dates = new ArrayList<>(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MMM-dd"); - Calendar calendar = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 6; i >= 0; i--) { + Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - i); dates.add(sdf.format(calendar.getTime())); } @@ -382,7 +390,7 @@ if(list.size() == 0){ value2.add(0D); }else{ - Double datum1 = new BigDecimal(datum).divide(new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24))).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + Double datum1 = new BigDecimal(datum).divide(new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24)), new MathContext(4, RoundingMode.HALF_EVEN)).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); value2.add(datum1); } } @@ -404,7 +412,7 @@ public ChargingGunCountMonitoring getChargingGunCountMonitoring(Integer siteId) { //获取当前登录账户的站点权限数据 Set<Integer> siteIds = new HashSet<>(); - if(null == siteId){ + if(0 == siteId){ SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); @@ -418,6 +426,9 @@ List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); data.addAll(data1); siteIds = new HashSet<>(data); + }else{ + List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0)); + siteIds = list.stream().map(Site::getId).collect(Collectors.toSet()); } } }else{ @@ -452,7 +463,7 @@ public PageInfo<ChargingGunMonitoring> getChargingGunMonitoring(GetChargingGunMonitoring query) { //获取当前登录账户的站点权限数据 Set<Integer> siteIds = new HashSet<>(); - if(null == query.getSiteId()){ + if(0 == query.getSiteId()){ SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); @@ -466,6 +477,9 @@ List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); data.addAll(data1); siteIds = new HashSet<>(data); + }else{ + List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0)); + siteIds = list.stream().map(Site::getId).collect(Collectors.toSet()); } } }else{ @@ -489,62 +503,60 @@ Integer id = gunMonitoring.getId(); //根据订单数据查询车牌号 TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(id).getData(); - Long appUserCarId = chargingOrder.getAppUserCarId(); - if(null != appUserCarId){ + if(null != chargingOrder){ + Long appUserCarId = chargingOrder.getAppUserCarId(); TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(appUserCarId)).getData().get(0); gunMonitoring.setLicensePlate(tAppUserCar.getLicensePlate()); - } - - UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData(); - gunMonitoring.setChargingRatio(BigDecimal.valueOf(data.getSoc())); - gunMonitoring.setElectricQuantity(data.getCharging_degree().toString()); - gunMonitoring.setSoc(data.getSoc().toString()); - gunMonitoring.setElectricCurrent(data.getOutput_current().toString()); - gunMonitoring.setVoltage(data.getOutput_voltage().toString()); - switch (data.getHardware_fault()){ - case 1: - gunMonitoring.setFaultCause("急停按钮动作故障"); - break; - case 2: - gunMonitoring.setFaultCause("无可用整流模块"); - break; - case 3: - gunMonitoring.setFaultCause("出风口温度过高"); - break; - case 4: - gunMonitoring.setFaultCause("交流防雷故障"); - break; - case 5: - gunMonitoring.setFaultCause("交直流模块 DC20 通信中断"); - break; - case 6: - gunMonitoring.setFaultCause("绝缘检测模块 FC08 通信中断"); - break; - case 7: - gunMonitoring.setFaultCause("电度表通信中断"); - break; - case 8: - gunMonitoring.setFaultCause("读卡器通信中断"); - break; - case 9: - gunMonitoring.setFaultCause("RC10 通信中断"); - break; - case 10: - gunMonitoring.setFaultCause("风扇调速板故障"); - break; - case 11: - gunMonitoring.setFaultCause("直流熔断器故障"); - break; - case 12: - gunMonitoring.setFaultCause("高压接触器故障"); - break; - case 13: - gunMonitoring.setFaultCause("门打开"); - break; + + UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData(); + gunMonitoring.setChargingRatio(BigDecimal.valueOf(data.getSoc())); + gunMonitoring.setElectricQuantity(data.getCharging_degree().toString()); + gunMonitoring.setSoc(data.getSoc().toString()); + gunMonitoring.setElectricCurrent(data.getOutput_current().toString()); + gunMonitoring.setVoltage(data.getOutput_voltage().toString()); + switch (data.getHardware_fault()){ + case 1: + gunMonitoring.setFaultCause("急停按钮动作故障"); + break; + case 2: + gunMonitoring.setFaultCause("无可用整流模块"); + break; + case 3: + gunMonitoring.setFaultCause("出风口温度过高"); + break; + case 4: + gunMonitoring.setFaultCause("交流防雷故障"); + break; + case 5: + gunMonitoring.setFaultCause("交直流模块 DC20 通信中断"); + break; + case 6: + gunMonitoring.setFaultCause("绝缘检测模块 FC08 通信中断"); + break; + case 7: + gunMonitoring.setFaultCause("电度表通信中断"); + break; + case 8: + gunMonitoring.setFaultCause("读卡器通信中断"); + break; + case 9: + gunMonitoring.setFaultCause("RC10 通信中断"); + break; + case 10: + gunMonitoring.setFaultCause("风扇调速板故障"); + break; + case 11: + gunMonitoring.setFaultCause("直流熔断器故障"); + break; + case 12: + gunMonitoring.setFaultCause("高压接触器故障"); + break; + case 13: + gunMonitoring.setFaultCause("门打开"); + break; + } } } - - } return pageInfo.setRecords(chargingGunMonitoring); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml index 7c025cd..3f4955b 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml @@ -13,7 +13,6 @@ profiles: # 环境配置 active: dev -# active: prod --- spring: config: @@ -47,7 +46,7 @@ enabled: true application-id: ${spring.application.name} tx-service-group: seata_tx_group #此处配置自定义的seata事务分组名称 - enable-auto-data-source-proxy: false + enable-auto-data-source-proxy: true service: vgroup-mapping: seata_tx_group: default @@ -56,7 +55,7 @@ type: nacos nacos: # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP data-id: seata-server.properties @@ -74,7 +73,7 @@ nacos: application: seata-server # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP username: nacos @@ -89,7 +88,7 @@ nacos: discovery: # 开发环境 - server-addr: 192.168.110.169:8848 # nacos注册中心地址 + server-addr: 127.0.0.1:8848 # nacos注册中心地址 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java index f242070..cff3804 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java @@ -13,8 +13,10 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.Duration; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; import java.util.stream.LongStream; @@ -43,19 +45,20 @@ @Override public List<List<Map<String, Object>>> getTotalElectricQuantity(Integer days, Set<Integer> siteIds) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + DateTimeFormatter sdf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - days); String startTime = sdf.format(calendar.getTime()) + " 00:00:00"; List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getSiteId, siteIds).eq(TChargingOrder::getStatus, 5) - .eq(TChargingOrder::getDelFlag, 0).last(" and end_time between '" + startTime + "' and DATE_FORMAT('%Y-%m-%d %H:%i:%s', now())")); + .eq(TChargingOrder::getDelFlag, 0).last(" and start_time between '" + startTime + "' and DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')")); List<Long> orderId = list.stream().map(TChargingOrder::getId).collect(Collectors.toList()); List<TChargingOrderAccountingStrategy> list1 = this.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().in(TChargingOrderAccountingStrategy::getChargingOrderId, orderId)); List<List<Map<String, Object>>> list2 = new ArrayList<>(); - Calendar nowDateTime = Calendar.getInstance(); for (int i = days; i >= 0; i--) { + Calendar nowDateTime = Calendar.getInstance(); nowDateTime.set(Calendar.DAY_OF_YEAR, nowDateTime.get(Calendar.DAY_OF_YEAR) - i); - List<TChargingOrder> collect = list.stream().filter(s -> sdf.format(s.getEndTime()).equals(sdf.format(nowDateTime.getTime()))).collect(Collectors.toList()); + List<TChargingOrder> collect = list.stream().filter(s -> s.getStartTime().format(sdf1).equals(sdf.format(nowDateTime.getTime()))).collect(Collectors.toList()); List<Long> orderIds = collect.stream().map(TChargingOrder::getId).collect(Collectors.toList()); @@ -105,15 +108,15 @@ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - days); String startTime = sdf.format(calendar.getTime()) + " 00:00:00"; List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getSiteId, siteIds).eq(TChargingOrder::getStatus, 5) - .eq(TChargingOrder::getDelFlag, 0).last(" and end_time between '" + startTime + "' and DATE_FORMAT('%Y-%m-%d %H:%i:%s', now())")); + .eq(TChargingOrder::getDelFlag, 0).last(" and start_time between '" + startTime + "' and DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')")); List<Double> list2 = new ArrayList<>(); - Calendar nowDateTime = Calendar.getInstance(); //遍历获取每天的数值 for (int i = days; i >= 0; i--) { + Calendar nowDateTime = Calendar.getInstance(); nowDateTime.set(Calendar.DAY_OF_YEAR, nowDateTime.get(Calendar.DAY_OF_YEAR) - i); //充电量 - BigDecimal reduce = list.stream().filter(s -> sdf.format(s.getEndTime()).equals(sdf.format(nowDateTime.getTime()))) + BigDecimal reduce = list.stream().filter(s -> s.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")).equals(sdf.format(nowDateTime.getTime()))) .map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); list2.add(reduce.doubleValue()); } 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 6e5e235..e1dfdfd 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 @@ -294,7 +294,7 @@ myChargingOrderInfo.setCurrentAndVoltage(currentAndVoltage); //在MongoDB中获取数据 List<Integer> soc = dataList.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList()); - List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000))).collect(Collectors.toList()); + List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000),2, RoundingMode.HALF_DOWN)).collect(Collectors.toList()); List<Map<String, Object>> power = new ArrayList<>(); for (int i = 0; i < time.size(); i++) { Map<String, Object> map = new HashMap<>(); @@ -2460,9 +2460,13 @@ if (!data1.isEmpty()){ tSettlementConfirm.setSiteName(data1.get(0).getName()); } - meteringElectronic = meteringElectronic.add(tSettlementConfirm.getMeteringElectronic()); - chargingElectronic = chargingElectronic.add(tSettlementConfirm.getChargingElectronic()); - lossElectronic = lossElectronic.add(tSettlementConfirm.getLossElectronic()); + if (tSettlementConfirm.getMeteringElectronic()!=null){ + meteringElectronic = meteringElectronic.add(tSettlementConfirm.getMeteringElectronic()); + chargingElectronic = chargingElectronic.add(tSettlementConfirm.getChargingElectronic()); + } + if (tSettlementConfirm.getLossElectronic()!=null){ + lossElectronic = lossElectronic.add(tSettlementConfirm.getLossElectronic()); + } income = income.add(tSettlementConfirm.getIncome()); venue = venue.add(tSettlementConfirm.getVenue()); metering = metering.add(tSettlementConfirm.getMetering()); @@ -2526,13 +2530,22 @@ settlementConfirm.setIncome(settlementConfirm.getElectrovalence().add(settlementConfirm.getServiceCharge())); if (tSettlementConfirm.getSiteId().equals(settlementConfirm.getSiteId())){ // 电站相同比较收入涨幅跌幅 - BigDecimal subtract = tSettlementConfirm.getIncome().subtract(settlementConfirm.getIncome()).divide(tSettlementConfirm.getIncome()).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100")); - tSettlementConfirm.setIncomePercentage(subtract+"%"); + if (tSettlementConfirm.getIncome().compareTo(BigDecimal.ZERO)>0){ + BigDecimal subtract = tSettlementConfirm.getIncome().subtract(settlementConfirm.getIncome()).divide(tSettlementConfirm.getIncome()).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100")); + tSettlementConfirm.setIncomePercentage(subtract+"%"); + }else { + tSettlementConfirm.setIncomePercentage("100"+"%"); + + } + // 比较总利润 收入合计-成本合计 BigDecimal subtract1 = tSettlementConfirm.getIncome().subtract(tSettlementConfirm.getCost()); BigDecimal subtract2 = settlementConfirm.getIncome().subtract(settlementConfirm.getCost()); - tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%"); - } + BigDecimal bigDecimal1 = subtract1.subtract(subtract2) + .divide(subtract2, 2, RoundingMode.HALF_DOWN) + .multiply(new BigDecimal("100")) + .setScale(2, RoundingMode.HALF_DOWN); + tSettlementConfirm.setTotalPercentage(bigDecimal1+"%"); } beforeCost = beforeCost.add(settlementConfirm.getCost()); beforeIncome = beforeIncome.add(settlementConfirm.getIncome()); @@ -2582,7 +2595,7 @@ if (subtract2.compareTo(new BigDecimal("0")) == 0){ tSettlementConfirm.setTotalPercentage(0+"%"); }else{ - tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%"); + tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2,2, RoundingMode.HALF_DOWN).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%"); } tSettlementConfirm.setElectronicRefund(0); // 查询上次汇报数据 进行比对涨幅跌幅 diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java index 1093912..3680d02 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java @@ -127,15 +127,15 @@ coupon = coupon.add(tActivityStatisticslVO.getCouponDiscountAmount()); stringBuilder.append("优惠券抵扣").append("+"); } - if (tActivityStatisticslVO.getVipDiscountAmount()!=null - && - (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){ + if (tActivityStatisticslVO.getVipDiscountAmount()!=null &&(tActivityStatisticslVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0)){ discount = discount.add(tActivityStatisticslVO.getVipDiscountAmount()); stringBuilder.append("会员抵扣").append("+"); } - stringBuilder.deleteCharAt(stringBuilder.length()-1); - tActivityStatisticslVO.setType(stringBuilder.toString()); - tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime())); + if (stringBuilder.length()>0){ + stringBuilder.deleteCharAt(stringBuilder.length()-1); + tActivityStatisticslVO.setType(stringBuilder.toString()); + } + tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime()); break; case 2: StringBuilder stringBuilder1 = new StringBuilder(); @@ -155,7 +155,7 @@ } stringBuilder1.deleteCharAt(stringBuilder1.length()-1); tActivityStatisticslVO.setType(stringBuilder1.toString()); - tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime())); + tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime()); break; case 3: // 会员订单 优惠金额大于0 @@ -165,19 +165,19 @@ vipActivity = vipActivity.add(tActivityStatisticslVO.getVipDiscountAmount()); } tActivityStatisticslVO.setType("会员活动"); - tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime())); + tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime()); break; case 4: // 赠送会员订单 如果支付金额为0 那么就是后台赠送的会员 if (tActivityStatisticslVO.getPaymentAmount().compareTo(BigDecimal.ZERO)==0){ grantVip = grantVip.add(tActivityStatisticslVO.getOrderAmount()); tActivityStatisticslVO.setType("赠送会员"); - tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime())); + tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime()); }else{ // 赠送 grantVip = grantVip.add(tActivityStatisticslVO.getVipDiscountAmount()); tActivityStatisticslVO.setType("赠送会员"); - tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime())); + tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime()); } break; } diff --git a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml index 6587762..5e2f534 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml +++ b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml @@ -29,7 +29,6 @@ namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb username: nacos password: nacos -# ip: 192.168.110.85 config: # 配置中心地址 server-addr: 192.168.110.169:8848 @@ -57,7 +56,7 @@ type: nacos nacos: # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP data-id: seata-server.properties @@ -75,7 +74,7 @@ nacos: application: seata-server # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP username: nacos @@ -90,7 +89,7 @@ nacos: discovery: # 开发环境 - server-addr: 192.168.110.169:8848 # nacos注册中心地址 + server-addr: 127.0.0.1:8848 # nacos注册中心地址 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 @@ -122,6 +121,7 @@ namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos + ip: 192.168.110.111 config: # 配置中心地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 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 b5dbf43..baad703 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 @@ -6,7 +6,7 @@ <select id="chargingBillList" resultType="com.ruoyi.order.api.vo.ChargingBillListVO"> select t1.* from t_charging_bill t1 where 1=1 - <if test="req.type != null "> + <if test="req.type != null and req.type!=0"> and t1.type = #{req.type} </if> <if test="req.state != null "> diff --git a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml index 6b94607..f26cb9f 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml +++ b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml @@ -29,7 +29,6 @@ namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb username: nacos password: nacos -# ip: 192.168.110.85 config: # 配置中心地址 server-addr: 192.168.110.169:8848 @@ -57,7 +56,7 @@ type: nacos nacos: # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP data-id: seata-server.properties @@ -75,7 +74,7 @@ nacos: application: seata-server # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP username: nacos @@ -90,7 +89,7 @@ nacos: discovery: # 开发环境 - server-addr: 192.168.110.169:8848 # nacos注册中心地址 + server-addr: 127.0.0.1:8848 # nacos注册中心地址 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 diff --git a/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml index 0c4c5ce..2318b12 100644 --- a/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml +++ b/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml @@ -1,7 +1,3 @@ -server: - port: 9500 - tomcat: - basedir: /data/tomcat # Spring spring: application: @@ -13,7 +9,6 @@ profiles: # 环境配置 active: dev -# active: prod --- spring: config: @@ -42,7 +37,10 @@ # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + + --- + seata: enabled: true application-id: ${spring.application.name} @@ -55,57 +53,36 @@ config: type: nacos nacos: - # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP data-id: seata-server.properties username: nacos password: nacos - # 生产环境 -# server-addr: 192.168.0.137:8848,192.168.0.123:8848 -# namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a -# group: DEFAULT_GROUP -# data-id: seata-server.properties -# username: nacos -# password: nacos registry: type: nacos nacos: application: seata-server - # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP username: nacos password: nacos - # 生产环境 -# server-addr: 192.168.0.137:8848,192.168.0.123:8848 -# namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a -# group: DEFAULT_GROUP -# username: nacos -# password: nacos cloud: nacos: discovery: - # 开发环境 - server-addr: 192.168.110.169:8848 # nacos注册中心地址 + server-addr: 127.0.0.1:8848 # nacos注册中心地址 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 username: nacos password: nacos - # 生产环境 -# server-addr: 192.168.0.137:8848,192.168.0.123:8848 -# namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a -# group: DEFAULT_GROUP -# application: seata-server #Nacos 中 Seata 名称 -# username: nacos -# password: nacos sentinel: transport: dashboard: 127.0.0.1:8080 # Sentinel控制台地址 eager: true + + --- spring: config: @@ -115,18 +92,14 @@ nacos: discovery: # 服务注册地址 - server-addr: 192.168.0.137:8848,192.168.0.123:8848 + server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP - namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a - username: nacos - password: nacos + namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2 config: # 配置中心地址 - server-addr: 192.168.0.137:8848,192.168.0.123:8848 - namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a - username: nacos - password: nacos + server-addr: 127.0.0.1:8848 + namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2 group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 -- Gitblit v1.7.1