From dfd423f90894d24081e7d7da08d09498898ee9c2 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 17 二月 2025 14:16:31 +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 | 7 + ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java | 2 ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 3 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java | 119 +++++++++++++++-------- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java | 2 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SystemConfigurationClientFallbackFactory.java | 21 ++++ ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java | 2 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 2 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java | 6 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SystemConfigurationClient.java | 23 ++++ ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java | 2 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java | 2 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java | 1 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java | 9 + ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java | 8 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java | 16 +++ ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 12 ++ 19 files changed, 184 insertions(+), 58 deletions(-) diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java index 2ded94a..79ee4b4 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java @@ -50,6 +50,7 @@ */ @PostMapping("/t-charging-gun/getChargingGunById/{id}") R<TChargingGun> getChargingGunById(@PathVariable("id") Integer id); + /** * 通过枪id获取站点、桩、枪的名称VO diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java index 977ca77..91cd74b 100644 --- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java @@ -18,7 +18,7 @@ return new TCECClient() { @Override - public R pushChargingGunStatus(Integer id, Integer status) { + public R pushChargingGunStatus(String getFullNumber, Integer status) { return R.fail("接口状态变化后推送给第三方失败:" + cause.getMessage()); } diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java index 9c3535b..3e3becc 100644 --- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java @@ -24,7 +24,7 @@ * @return */ @PostMapping("/evcs/v1.0/pushChargingGunStatus") - R pushChargingGunStatus(@RequestParam("id") Integer id, @RequestParam("status") Integer status); + R pushChargingGunStatus(@RequestParam("fullNumber") String fullNumber, @RequestParam("status") Integer status); diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java index d2b4e9e..584d5a4 100644 --- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java @@ -13,6 +13,8 @@ @Document(collection = "ping") //指定要对应的文档名(表名) @Accessors(chain = true) public class Ping extends BaseModel { + @Id + private String id; private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 private Integer charging_gun_status;// 抢状态(0:正常,1:故障) diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java index 2978938..9282616 100644 --- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java +++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java @@ -13,6 +13,8 @@ @Document(collection = "pong") //指定要对应的文档名(表名) @Accessors(chain = true) public class Pong extends BaseModel { + @Id + private String id; private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 private Integer charging_gun_status;// 心跳应答(0) diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SystemConfigurationClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SystemConfigurationClientFallbackFactory.java new file mode 100644 index 0000000..2c2af15 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SystemConfigurationClientFallbackFactory.java @@ -0,0 +1,21 @@ +package com.ruoyi.other.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.feignClient.SystemConfigurationClient; +import org.springframework.cloud.openfeign.FallbackFactory; + +/** + * @author zhibing.pu + * @Date 2025/2/17 9:46 + */ +public class SystemConfigurationClientFallbackFactory implements FallbackFactory<SystemConfigurationClient> { + @Override + public SystemConfigurationClient create(Throwable cause) { + return new SystemConfigurationClient() { + @Override + public R<String> getServerPhone() { + return R.fail("获取客服电话失败:" + cause.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SystemConfigurationClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SystemConfigurationClient.java new file mode 100644 index 0000000..c5ecec2 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SystemConfigurationClient.java @@ -0,0 +1,23 @@ +package com.ruoyi.other.api.feignClient; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.factory.SystemConfigurationClientFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @Date 2025/2/17 9:45 + */ +@FeignClient(contextId = "SystemConfigurationClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = SystemConfigurationClientFallbackFactory.class) +public interface SystemConfigurationClient { + + + /** + * 获取客服电话 + * @return + */ + @PostMapping(value = "/t-system-configuration/getServerPhone") + R<String> getServerPhone(); +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 9d2a866..2f67b78 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -9,4 +9,5 @@ com.ruoyi.other.api.factory.InvoiceTypeFallbackFactory com.ruoyi.other.api.factory.WebSocketFallbackFactory com.ruoyi.other.api.factory.UserTagFallbackFactory -com.ruoyi.other.api.factory.OperatorFallbackFactory \ No newline at end of file +com.ruoyi.other.api.factory.OperatorFallbackFactory +com.ruoyi.other.api.factory.SystemConfigurationClientFallbackFactory \ No newline at end of file diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java index 6fa0fb2..9fc876b 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java @@ -264,7 +264,7 @@ tChargingGun1.setStatus(2); chargingGunService.updateById(tChargingGun1); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(tChargingGun.getId(), tChargingGun1.getStatus()); + tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus()); if(chargingPile.getStatus() != 1){ TChargingPile chargingPile1 = new TChargingPile(); @@ -287,7 +287,7 @@ tChargingGun1.setStatus(7); chargingGunService.updateById(tChargingGun1); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(tChargingGun.getId(), tChargingGun1.getStatus()); + tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus()); //桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常 List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0)); @@ -332,14 +332,14 @@ chargingGunService.updateById(tChargingGun1); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(tChargingGun.getId(), tChargingGun1.getStatus()); + tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus()); }else{ TChargingGun tChargingGun1 = new TChargingGun(); tChargingGun1.setId(tChargingGun.getId()); tChargingGun1.setStatus(3); chargingGunService.updateById(tChargingGun1); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(tChargingGun.getId(), tChargingGun1.getStatus()); + tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus()); } List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingGunId, tChargingGun.getId()) 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 c6efb12..8cf1e79 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 @@ -699,7 +699,7 @@ chargingGun1.setStatus(1); chargingGunService.updateById(chargingGun1); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(chargingGun1.getId(), chargingGun1.getStatus()); + tcecClient.pushChargingGunStatus(chargingGun1.getFullNumber(), chargingGun1.getStatus()); //桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常 TChargingPile chargingPile = this.getById(chargingGun.getChargingPileId()); 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 f5278a4..070eb77 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 @@ -86,6 +86,9 @@ query.setLicensePlate(order.getPlate()); query.setStatus(1); TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData(); + if(null == parkingRecord){ + return; + } TParkingLot parkingLot = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData(); LocalDateTime parse = LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ISO_DATE_TIME); parse = parse.plusHours(8); diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java index f931203..d93bf73 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java @@ -8,10 +8,12 @@ import com.ruoyi.common.core.dto.ChargingPercentProvinceDto; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.drainage.kuaidian.TCECKDUtil; import com.ruoyi.integration.drainage.kuaidian.model.*; import com.ruoyi.integration.drainage.model.*; import com.ruoyi.integration.drainage.model.enu.*; +import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.model.AddTripartitePlatformOrder; @@ -20,6 +22,7 @@ import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; import com.ruoyi.other.api.domain.Operator; import com.ruoyi.other.api.feignClient.OperatorClient; +import com.ruoyi.other.api.feignClient.SystemConfigurationClient; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; @@ -66,6 +69,9 @@ private ChargingOrderAccountingStrategyClient chargingOrderAccountingStrategyClient; @Resource + private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService; + + @Resource private TokenUtil tokenUtil; @Resource @@ -73,6 +79,9 @@ @Resource private ParkingRecordClient parkingRecordClient; + + @Resource + private SystemConfigurationClient systemConfigurationClient; @@ -263,7 +272,7 @@ List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData(); List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList()); List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData(); - + String serviceTel = systemConfigurationClient.getServerPhone().getData(); List<StationInfo> StationInfos = new ArrayList<>(); for (Site datum : sites) { StationInfo stationInfo = new StationInfo(); @@ -275,7 +284,7 @@ stationInfo.setAreaCode(datum.getDistrictsCode()); stationInfo.setAddress(datum.getAddress()); stationInfo.setStationTel(datum.getPhone()); - stationInfo.setServiceTel(datum.getServicePhone()); + stationInfo.setServiceTel(serviceTel); switch (datum.getSiteType()){ case 0: stationInfo.setStationType(StationTypeEnum.OTHER.getType()); @@ -410,7 +419,7 @@ List<TChargingGun> collect = chargingGunList.stream().filter(s -> s.getChargingPileId().equals(chargingPileId)).collect(Collectors.toList()); for (TChargingGun chargingGun : collect) { ConnectorInfo connectorInfo = new ConnectorInfo(); - connectorInfo.setConnectorID(chargingGun.getId().toString()); + connectorInfo.setConnectorID(chargingGun.getFullNumber()); connectorInfo.setConnectorName(chargingGun.getName()); switch (chargingGun.getType()){ case 0: @@ -450,9 +459,9 @@ * @return */ @PostMapping("/pushChargingGunStatus") - public R pushChargingGunStatus(@RequestParam("id") Integer id, @RequestParam("status") Integer status){ + public R pushChargingGunStatus(@RequestParam("fullNumber") String fullNumber, @RequestParam("status") Integer status){ ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo(); - connectorStatusInfo.setConnectorID(id.toString()); + connectorStatusInfo.setConnectorID(fullNumber); switch (status){ case 1: connectorStatusInfo.setStatus(0); @@ -526,7 +535,7 @@ List<TChargingGun> collect2 = chargingGunList.stream().filter(s -> s.getSiteId().equals(datum.getId())).collect(Collectors.toList()); for (TChargingGun chargingGun : collect2) { ConnectorStatusInfo info = new ConnectorStatusInfo(); - info.setConnectorID(chargingGun.getId().toString()); + info.setConnectorID(chargingGun.getFullNumber()); switch (chargingGun.getStatus()){ case 1: info.setStatus(0); @@ -622,8 +631,9 @@ List<TChargingOrder> tChargingOrders1 = collect2.get(integer1); BigDecimal reduce2 = tChargingOrders1.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); + TChargingGun chargingGun = chargingGunClient.getChargingGunById(integer1).getData(); ConnectorStatsInfo connectorStatsInfo = new ConnectorStatsInfo(); - connectorStatsInfo.setConnectorID(integer1.toString()); + connectorStatsInfo.setConnectorID(chargingGun.getFullNumber()); connectorStatsInfo.setConnectorElectricity(reduce2); ConnectorStatsInfos.add(connectorStatsInfo); } @@ -665,7 +675,7 @@ log.info("三方平台设备认证请求Data:" + decrypt); QueryEquipAuth queryEquipAuth = JSON.parseObject(decrypt, QueryEquipAuth.class); String connectorID = queryEquipAuth.getConnectorID(); - TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData(); + TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData(); if(null == tChargingGun){ baseResult.setRet(4004); baseResult.setMsg("connectorID 参数无效"); @@ -747,7 +757,7 @@ queryEquipBusinessPolicyResult.setSuccStat(0); queryEquipBusinessPolicyResult.setFailReason(0); String connectorID = queryEquipBusinessPolicy.getConnectorID(); - TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData(); + TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData(); if(null == tChargingGun){ baseResult.setRet(4004); baseResult.setMsg("connectorID 参数无效"); @@ -870,7 +880,7 @@ result.setStartChargeSeq(queryStartCharge.getStartChargeSeq()); result.setConnectorID(queryStartCharge.getConnectorID()); String connectorID = queryStartCharge.getConnectorID(); - TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData(); + TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData(); //设备不存在 if(null == tChargingGun){ baseResult.setRet(4004); @@ -934,6 +944,27 @@ baseResult.setData(encrypt); baseResult.setSig(TCECUtil.ourBuildSign(baseResult)); log.info("三方平台请求开始充电响应参数:" + JacksonUtils.toJson(baseResult)); + + //定义定时任务推送订单状态 + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + Runnable task = new Runnable() { + @Override + public void run() { + try { + TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(result.getStartChargeSeq()).getData(); + if(chargingOrder.getStatus() != 3){ + scheduler.shutdown(); + return; + } + log.info("开始执行三方平台定时推送"); + notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId()); + }catch (Exception e){ + e.printStackTrace(); + } + } + }; + //一分钟执行一次 + scheduler.scheduleAtFixedRate(task, 10, 10, TimeUnit.SECONDS); return baseResult; } @@ -978,22 +1009,6 @@ } }); } - - //定义定时任务推送订单状态 - ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); - Runnable task = new Runnable() { - @Override - public void run() { - TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(result.getStartChargeSeq()).getData(); - if(null == chargingOrder || chargingOrder.getStatus() != 3){ - scheduler.shutdown(); - return; - } - notificationEquipChargeStatus(result.getStartChargeSeq(), operator.getId()); - } - }; - //一分钟执行一次 - scheduler.scheduleAtFixedRate(task, 1, 1, TimeUnit.MINUTES); return R.ok(); } @@ -1067,8 +1082,8 @@ queryEquipChargeStatusResult.setStartChargeSeqStat(4); break; } - queryEquipChargeStatusResult.setConnectorID(chargingOrder.getChargingGunId().toString()); TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); + queryEquipChargeStatusResult.setConnectorID(chargingGun.getFullNumber()); //1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障 switch (chargingGun.getStatus()){ case 1: @@ -1095,19 +1110,29 @@ } queryEquipChargeStatusResult.setCurrentA(chargingOrder.getCurrent()); queryEquipChargeStatusResult.setVoltageA(chargingOrder.getVoltage()); - queryEquipChargeStatusResult.setSoc(chargingOrder.getTotalElectricity()); + UploadRealTimeMonitoringData timeMonitoringData = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode()); + queryEquipChargeStatusResult.setSoc(null == timeMonitoringData ? BigDecimal.ZERO : new BigDecimal(timeMonitoringData.getSoc())); queryEquipChargeStatusResult.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); queryEquipChargeStatusResult.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); queryEquipChargeStatusResult.setTotalPower(chargingOrder.getElectricity()); - queryEquipChargeStatusResult.setElecMoney(chargingOrder.getTotalElectricity()); - queryEquipChargeStatusResult.setSeviceMoney(chargingOrder.getServiceCharge()); - queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge())); + + List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData(); + if(data.size() > 0){ + BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); + queryEquipChargeStatusResult.setElecMoney(totalElectricity); + queryEquipChargeStatusResult.setSeviceMoney(serviceCharge); + queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getPaymentAmount()); + }else{ + queryEquipChargeStatusResult.setElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount())); + queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO); + queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount())); + } //构建充电明细 List<ChargeDetail> chargeDetails = new ArrayList<>(); - List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData(); - LocalDateTime startTime = chargingOrder.getStartTime(); + LocalDateTime startTime = null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getStartTime(); LocalDateTime endTime = null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime(); String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); @@ -1337,14 +1362,26 @@ if(null == chargingOrder){ return null; } - notificationChargeOrderInfo.setConnectorID(chargingOrder.getChargingGunId().toString()); + TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); + notificationChargeOrderInfo.setConnectorID(chargingGun.getFullNumber()); notificationChargeOrderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); notificationChargeOrderInfo.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); notificationChargeOrderInfo.setTotalPower(chargingOrder.getElectricity()); - notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getTotalElectricity()); - notificationChargeOrderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge()); - notificationChargeOrderInfo.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge())); - notificationChargeOrderInfo.setTotalDelayMoney(BigDecimal.ZERO); + + List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData(); + if(data.size() > 0){ + BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); + notificationChargeOrderInfo.setTotalElecMoney(totalElectricity.setScale(2, RoundingMode.HALF_EVEN)); + notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge.setScale(2, RoundingMode.HALF_EVEN)); + notificationChargeOrderInfo.setTotalMoney(chargingOrder.getPaymentAmount()); + }else{ + notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount())); + notificationChargeOrderInfo.setTotalSeviceMoney(BigDecimal.ZERO); + notificationChargeOrderInfo.setTotalMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount())); + } + + TParkingRecord parkingRecord = parkingRecordClient.getParkingRecordByChargingOrderId(chargingOrder.getId()).getData(); if(null != parkingRecord && parkingRecord.getStatus() == 3){ notificationChargeOrderInfo.setTotalDelayMoney(parkingRecord.getPayment()); @@ -1368,9 +1405,8 @@ //构建充电明细 List<ChargeDetail> chargeDetails = new ArrayList<>(); - List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData(); - LocalDateTime startTime = chargingOrder.getStartTime(); + LocalDateTime startTime = null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getStartTime(); LocalDateTime endTime = null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime(); String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); @@ -1536,9 +1572,10 @@ if(null == chargingOrder){ return null; } + TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); OrderInfo orderInfo = new OrderInfo(); orderInfo.setStartChargeSeq(chargingOrder.getStartChargeSeq()); - orderInfo.setConnectorID(chargingOrder.getChargingGunId().toString()); + orderInfo.setConnectorID(chargingGun.getFullNumber()); orderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); orderInfo.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); orderInfo.setTotalPower(chargingOrder.getTotalElectricity()); diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java index baa6451..9489e96 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java @@ -37,6 +37,6 @@ @Override public void delPing() { - mongoTemplate.remove(new Query().addCriteria(Criteria.where("create_time").lt(LocalDateTime.now().minusDays(1)))); + mongoTemplate.remove(new Query().addCriteria(Criteria.where("create_time").lt(LocalDateTime.now().minusDays(1))), Ping.class); } } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java index 834bc06..f3eb7bf 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java @@ -129,7 +129,7 @@ } chargingGunClient.updateChargingGunById(chargingGun); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(chargingGun.getId(), chargingGun.getStatus()); + tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus()); } } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java index de47e18..09ac391 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java @@ -36,9 +36,9 @@ - @Scheduled(cron = "0 0 0 * * ?") + @Scheduled(cron = "0 0 3 * * ?") public void task2() { - pingService.delPing(); - pongService.delPong(); +// pingService.delPing(); +// pongService.delPong(); } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index 3a874fe..2194538 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -764,6 +764,18 @@ /** + * + * @param code + */ + @ResponseBody + @PostMapping(value = "/refund") + public R refund(@RequestParam(value = "code") String code){ + chargingOrderService.refund(code); + return R.ok(); + } + + + /** * 远程启动失败后退款回调 */ @ResponseBody diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java index 9689489..6bce088 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java @@ -100,8 +100,13 @@ * @return */ AjaxResult chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time); - - + + + /** + * 启动失败退款操作 + * @param code + */ + void refund(String code); /** * 获取充电中的详情 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 bc67496..fe484d4 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 @@ -859,7 +859,7 @@ chargingGun.setStatus(4); chargingGunClient.updateChargingGunById(chargingGun); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(chargingGun.getId(), chargingGun.getStatus()); + tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus()); } redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS); this.updateById(order); @@ -2007,6 +2007,9 @@ @GlobalTransactional(rollbackFor = Exception.class) public R endChargeBillingCharge(TransactionRecordMessageVO vo) { TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number())); + if(null == chargingOrder){ + return R.ok(); + } Integer status = chargingOrder.getStatus(); if(status == 5){ return R.ok(); @@ -2358,7 +2361,7 @@ chargingGunClient.updateChargingGunById(chargingGun); //推送状态给三方平台 if(2 == chargingOrder.getOrderSource()){ - tcecClient.pushChargingGunStatus(chargingGun.getId(), chargingGun.getStatus()); + tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus()); } //添加积分 diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java index 8770c49..b40c79e 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java @@ -1,7 +1,9 @@ package com.ruoyi.other.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; @@ -65,6 +67,20 @@ systemConfigurationService.saveOrUpdate(systemConfiguration); return AjaxResult.success(); } + + + /** + * 获取客服电话 + * @return + */ + @PostMapping(value = "/getServerPhone") + public R<String> getServerPhone(){ + TSystemConfiguration one = systemConfigurationService.getOne(new LambdaQueryWrapper<TSystemConfiguration>().eq(TSystemConfiguration::getType, 1)); + if(null != one){ + return R.ok(one.getContent()); + } + return R.ok(); + } } -- Gitblit v1.7.1