From a8996df2df6a108be7db1cdb42cee31e12d59245 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 01 十一月 2024 17:23:54 +0800 Subject: [PATCH] 合并代码 --- ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java | 27 ++++++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java | 14 +++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 39 +++++---- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java | 17 ++++ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java | 16 +++- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java | 12 +++ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/BmsDemandAndChargerExportationController.java | 46 +++++++++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java | 2 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java | 37 +++++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 2 10 files changed, 190 insertions(+), 22 deletions(-) diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java new file mode 100644 index 0000000..e723828 --- /dev/null +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java @@ -0,0 +1,37 @@ +package com.ruoyi.integration.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.dto.MongoChargingOrderQuery; +import com.ruoyi.integration.api.feignClient.BmsDemandAndChargerExportationClient; +import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; +import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; +import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; +import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 充电桩服务降级处理 + * + * @author ruoyi + */ +@Component +public class BmsDemandAndChargerExportationFallbackFactory implements org.springframework.cloud.openfeign.FallbackFactory<BmsDemandAndChargerExportationClient> +{ + private static final Logger log = LoggerFactory.getLogger(BmsDemandAndChargerExportationFallbackFactory.class); + + @Override + public BmsDemandAndChargerExportationClient create(Throwable throwable) { + log.error("调用充电桩实时监测数据失败:{}", throwable.getMessage()); + return new BmsDemandAndChargerExportationClient() { + + @Override + public R<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(String orderCode) { + return R.fail("获取充电中bms数据失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java new file mode 100644 index 0000000..9130248 --- /dev/null +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java @@ -0,0 +1,27 @@ +package com.ruoyi.integration.api.feignClient; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.integration.api.factory.BmsDemandAndChargerExportationFallbackFactory; +import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @author zhibing.pu + * @Date 2024/11/1 16:06 + */ +@FeignClient(contextId = "BmsDemandAndChargerExportationClient", value = ServiceNameConstants.INTEGRATION_SERVICE, fallbackFactory = BmsDemandAndChargerExportationFallbackFactory.class) +public interface BmsDemandAndChargerExportationClient { + + + /** + * 获取充电中bms数据 + * @param orderCode + * @return + */ + @PostMapping("/bmsDemandAndChargerExportation/getBmsDemandAndChargerExportation") + R<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(@RequestParam("orderCode") String orderCode); + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java index f270637..a1ef53b 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java @@ -70,7 +70,11 @@ @ApiModelProperty(value = "站点名称") @TableField(exist = false) private List<String> siteNames; - + + @TableField(exist = false) + private Long number; + + public SysRole() { @@ -203,6 +207,14 @@ this.siteNames = siteNames; } + public Long getNumber() { + return number; + } + + public void setNumber(Long number) { + this.number = number; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index 4c2f434..ebe7214 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -112,6 +112,8 @@ List<String> collect = sites.stream().map(Site::getName).collect(Collectors.toList()); record.setSiteNames(collect); } + long count = sysUserRoleService.count(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getRoleId, record.getRoleId())); + record.setNumber(count); } return AjaxResult.success(page); } 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 f7019e4..6095b18 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 @@ -517,7 +517,7 @@ if(status == 5 || status == 6){ gunMonitoring.setStatus(3); } - if(status == 4){ + if(status == 4 || status == 7){ Integer id = gunMonitoring.getId(); TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(id).getData(); if(null != chargingOrder){ diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java index 1a3c63c..42bb861 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java @@ -53,7 +53,9 @@ TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData(); parkingRecord.setName(data.getName()); parkingRecord.setParkingLotId(data.getId()); - parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEnterDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + LocalDateTime parse = LocalDateTime.parse(order.getEnterDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSSZ")); + parse.plusDays(8); + parkingRecord.setInParkingTime(parse); parkingRecord.setStatus(1); parkingRecord.setCreateTime(LocalDateTime.now()); parkingRecord.setSerialnumber(order.getId()); @@ -70,7 +72,9 @@ query.setLicensePlate(order.getPlate()); query.setStatus(1); TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData(); - parkingRecord.setOutParkingTime(LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + LocalDateTime parse = LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSSZ")); + parse.plusDays(8); + parkingRecord.setOutParkingTime(parse); parkingRecord.setParkingDuration(Integer.valueOf(order.getLongTime())); parkingRecord.setOrderAmount(new BigDecimal(order.getReceivable())); parkingRecord.setPayment(new BigDecimal(order.getPayment())); @@ -104,7 +108,9 @@ TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData(); parkingRecord.setName(data.getName()); parkingRecord.setParkingLotId(data.getId()); - parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEntertime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + LocalDateTime parse = LocalDateTime.parse(order.getEntertime(), DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSSZ")); + parse.plusDays(8); + parkingRecord.setInParkingTime(parse); parkingRecord.setStatus(1); parkingRecord.setCreateTime(LocalDateTime.now()); parkingRecord.setSerialnumber(order.getId()); @@ -121,7 +127,9 @@ query.setLicensePlate(order.getPlatenumber()); query.setStatus(1); TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData(); - parkingRecord.setOutParkingTime(LocalDateTime.parse(order.getLeavetime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + LocalDateTime parse = LocalDateTime.parse(order.getLeavetime(), DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSSZ")); + parse.plusDays(8); + parkingRecord.setOutParkingTime(parse); parkingRecord.setParkingDuration(Integer.valueOf(order.getLongTime())); parkingRecord.setOrderAmount(new BigDecimal(order.getMoney())); parkingRecord.setPayment(new BigDecimal(order.getMoney())); diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/BmsDemandAndChargerExportationController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/BmsDemandAndChargerExportationController.java new file mode 100644 index 0000000..2018927 --- /dev/null +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/BmsDemandAndChargerExportationController.java @@ -0,0 +1,46 @@ +package com.ruoyi.integration.controller; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; +import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; +import com.ruoyi.integration.mongodb.service.BmsDemandAndChargerExportationService; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2024/11/1 15:52 + */ +@RestController +@RequestMapping("/bmsDemandAndChargerExportation") +public class BmsDemandAndChargerExportationController { + + @Resource + private BmsDemandAndChargerExportationService bmsDemandAndChargerExportationService; + + /** + * 获取充电中bms数据 + * @param orderCode + * @return + */ + @PostMapping("/getBmsDemandAndChargerExportation") + public R<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(@RequestParam("orderCode") String orderCode){ + List<BmsDemandAndChargerExportation> bmsDemandAndChargerExportation = bmsDemandAndChargerExportationService.getBmsDemandAndChargerExportation(orderCode); + if(bmsDemandAndChargerExportation.size() > 0){ + BmsDemandAndChargerExportation uploadRealTimeMonitoringData = bmsDemandAndChargerExportation.get(0); + return R.ok(uploadRealTimeMonitoringData); + } + return R.ok(); + } + + +} diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java index 34e3749..96d429e 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java @@ -2,6 +2,18 @@ import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; import com.ruoyi.integration.mongodb.base.BaseService; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; public interface BmsDemandAndChargerExportationService extends BaseService<BmsDemandAndChargerExportation> { + + + /** + * 获取bms数据 + * @param orderCode + * @return + */ + List<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(String orderCode); + } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java index c8a9b50..fb6f731 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java @@ -1,10 +1,14 @@ package com.ruoyi.integration.mongodb.service.impl; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.integration.iotda.constant.IotConstant; import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation; import com.ruoyi.integration.mongodb.service.BmsDemandAndChargerExportationService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import java.util.List; @@ -28,4 +32,17 @@ public List<BmsDemandAndChargerExportation> findAll() { return mongoTemplate.findAll(BmsDemandAndChargerExportation.class); } + + + @Override + public List<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(String orderCode) { + Query query = new Query(); + if(StringUtils.isNotEmpty(orderCode)){ + query.addCriteria(Criteria.where("transaction_serial_number").is(orderCode)); + } + List<BmsDemandAndChargerExportation> uploadRealTimeMonitoringData = mongoTemplate.find( + query.with(Sort.by(Sort.Order.desc("create_time"))) + , BmsDemandAndChargerExportation.class); + return uploadRealTimeMonitoringData; + } } 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 33bd961..e1ec2a8 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 @@ -187,6 +187,9 @@ @Resource private SecurityDetectionClient securityDetectionClient; + + @Resource + private BmsDemandAndChargerExportationClient bmsDemandAndChargerExportationClient; //计数器 private Map<String, Integer> counter_map = new HashMap<>(); @@ -1108,7 +1111,7 @@ appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); appUserIntegralChange.setCreateTime(LocalDateTime.now()); appUserIntegralChange.setOrderCode(chargingOrder.getCode()); - appUserIntegralChange.setExtension(chargingOrder.getId().toString()); + appUserIntegralChange.setExtension(appUser.getId().toString()); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); appUser1.setPoints(appUser1.getPoints() + num1); @@ -1734,6 +1737,10 @@ chargingOrder.setChargingCapacity(query.getCharging_degree()); chargingOrder.setElectricity(query.getCharging_degree()); chargingOrder.setTotalElectricity(new BigDecimal(100 - query.getSoc())); + BmsDemandAndChargerExportation data = bmsDemandAndChargerExportationClient.getBmsDemandAndChargerExportation(chargingOrder.getCode()).getData(); + if(null != data){ + chargingOrder.setNeedElec(data.getBms_current_requirements()); + } this.updateById(chargingOrder); } } @@ -1899,16 +1906,16 @@ serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN); } chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge); - chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc); - chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge); - chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice); - chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount); + chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc.setScale(2, RoundingMode.DOWN)); + chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge.setScale(2, RoundingMode.DOWN)); + chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice.setScale(2, RoundingMode.DOWN)); + chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount.setScale(2, RoundingMode.DOWN)); chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now()); chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy); - periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc); - periodServicePrice_total = periodServicePrice_total.add(originalServicePrice); - total = total.add(electrovalenc.add(originalServicePrice)); + periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc.setScale(2, RoundingMode.DOWN)); + periodServicePrice_total = periodServicePrice_total.add(originalServicePrice.setScale(2, RoundingMode.DOWN)); + total = total.add(electrovalenc.add(originalServicePrice.setScale(2, RoundingMode.DOWN))); } @@ -1958,13 +1965,13 @@ if(null == chargingOrder.getEndMode()){ order.setEndMode(1); } - order.setResidualAmount(rechargeAmount.subtract(total)); + order.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.DOWN)); order.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS"))); order.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS"))); order.setStatus(5); - order.setOrderAmount(orderAmount); - order.setVipDiscountAmount(discountAmount); - order.setElectrovalence(periodElectricPrice_total); + order.setOrderAmount(orderAmount.setScale(2, RoundingMode.DOWN)); + order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.DOWN)); + order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.DOWN)); order.setChargingCapacity(vo.getTotal_electricity()); order.setElectricity(vo.getTotal_electricity()); @@ -2030,8 +2037,8 @@ } order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.DOWN)); - order.setPaymentAmount(payAmount); - order.setRefundAmount(refundAmount); + order.setPaymentAmount(payAmount.setScale(2, RoundingMode.DOWN)); + order.setRefundAmount(refundAmount.setScale(2, RoundingMode.DOWN)); order.setRefundStatus(1); this.updateById(order); chargingOrder = this.getById(order.getId()); @@ -2045,8 +2052,8 @@ BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice(); BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(reduce, new MathContext(4, RoundingMode.HALF_EVEN))); periodServicePrice = periodServicePrice.subtract(multiply); - chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice); - chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply); + chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice.setScale(2, RoundingMode.DOWN)); + chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply.setScale(2, RoundingMode.DOWN)); } chargingOrderAccountingStrategyService.updateBatchById(list); } -- Gitblit v1.7.1