Pu Zhibing
4 天以前 c05a14bba4b86d83918d7cdc01635785bf5694c2
拆分mongodb查询服务
4个文件已删除
17个文件已修改
30个文件已添加
16424 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/ChargingHandshakeFallbackFactory.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/IntegrationFallbackFactory.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/ChargingHandshakeClient.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/IntegrationClient.java 14859 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/base/BaseService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/BmsDemandAndChargerExportationService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/ChargingHandshakeService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/PlatformStartChargingReplyService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/PlatformStopChargingReplyService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/SecurityDetectionService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/TransactionRecordService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/UploadRealTimeMonitoringDataService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/ChargingHandshakeServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/PlatformStartChargingReplyServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/PlatformStopChargingReplyServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/SecurityDetectionServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/TransactionRecordServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/pom.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/pom.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/base/BaseService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/BmsDemandAndChargerExportationService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/ChargingHandshakeService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/PlatformStartChargingReplyService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/PlatformStopChargingReplyService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/SecurityDetectionService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/TransactionRecordService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/UploadRealTimeMonitoringDataService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/ChargingHandshakeServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/PlatformStartChargingReplyServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/PlatformStopChargingReplyServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/SecurityDetectionServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/TransactionRecordServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java
File was deleted
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/ChargingHandshakeFallbackFactory.java
File was deleted
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/IntegrationFallbackFactory.java
@@ -24,106 +24,6 @@
        return new IntegrationClient() {
            @Override
            public R<String> onlineReply(OnlineReply onlineReply) {
                return R.fail("登录认证应答调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> pong(Pong pong) {
                return R.fail("心跳包应答调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> billingModeVerifyReply(BillingModeVerifyReply billingModeVerifyReply) {
                return R.fail("计费模型验证请求应答调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> acquisitionBillingModeReply(AcquisitionBillingModeReply acquisitionBillingModeReply) {
                return R.fail("计费模型验证请求应答调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> readRealTimeMonitoringData(ReadRealTimeMonitoringData readRealTimeMonitoringData) {
                return R.fail("读取实时监测数据调用失败:" + throwable.getMessage());
            }
//            @Override
//            public R<String> endCharge(EndCharge endCharge) {
//                return R.fail("充电结束调用失败:" + throwable.getMessage());
//            }
            @Override
            public R<String> platformConfirmationCharging(PlatformConfirmationCharging platformConfirmationCharging) {
                return R.fail("运营平台确认启动充电调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> platformStartCharging(PlatformStartCharging platformStartCharging) {
                return R.fail("运营平台远程控制启机调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> platformStopCharging(PlatformStopCharging platformStopCharging) {
                return R.fail("运营平台远程停机调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> confirmTransactionRecord(ConfirmTransactionRecord confirmTransactionRecord) {
                return R.fail("交易记录确认调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> updateBalance(UpdateBalance updateBalance) {
                return R.fail("远程账户余额更新调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> synchronizeOfflineCard(SynchronizeOfflineCard synchronizeOfflineCard) {
                return R.fail("离线卡数据同步调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> clearOfflineCard(ClearOfflineCard clearOfflineCard) {
                return R.fail("离线卡数据清除调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> queryOfflineCard(QueryOfflineCard queryOfflineCard) {
                return R.fail("离线卡数据查询调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> workingParameterSetting(WorkingParameterSetting workingParameterSetting) {
                return R.fail("充电桩工作参数设置调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> timingSetting(TimingSetting timingSetting) {
                return R.fail("对时设置调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> setupBillingModel(SetupBillingModel setupBillingModel) {
                return R.fail("计费模型设置调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> openOrCloseGroundLock(OpenOrCloseGroundLock openOrCloseGroundLock) {
                return R.fail("遥控地锁升锁与降锁命令 (下行)调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> platformRestart(PlatformRestart platformRestart) {
                return R.fail("远程重启调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> platformRemoteUpdate(PlatformRemoteUpdate platformRemoteUpdate) {
                return R.fail("远程更新调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> setupBillingModel1(String deviceId, String json) {
                return R.fail("远程更新硬件:" + throwable.getMessage());
            }
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java
@@ -1,9 +1,6 @@
package com.ruoyi.integration.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.integration.api.feignClient.ChargingHandshakeClient;
import com.ruoyi.integration.api.feignClient.SendMessageClient;
import com.ruoyi.integration.api.model.ChargingHandshake;
import com.ruoyi.integration.api.model.PlatformStartCharging;
import com.ruoyi.integration.api.model.PlatformStopCharging;
import com.ruoyi.integration.api.model.QrCodeDelivery;
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java
File was deleted
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/ChargingHandshakeClient.java
File was deleted
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/IntegrationClient.java
Diff too large
ruoyi-api/ruoyi-api-integration/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,12 +1,10 @@
com.ruoyi.integration.api.factory.IntegrationFallbackFactory
com.ruoyi.integration.api.factory.UploadRealTimeMonitoringDataFallbackFactory
com.ruoyi.integration.api.factory.ChargingHandshakeFallbackFactory
com.ruoyi.integration.api.factory.SendMessageFallbackFactory
com.ruoyi.integration.api.factory.PlatformStartChargingReplyFallbackFactory
com.ruoyi.integration.api.factory.PlatformStopChargingReplyFallbackFactory
com.ruoyi.integration.api.factory.SwitchwayGateFallbackFactory
com.ruoyi.integration.api.factory.IotInterfaceFallbackFactory
com.ruoyi.integration.api.factory.SecurityDetectionFallbackFactory
com.ruoyi.integration.api.factory.BmsDemandAndChargerExportationFallbackFactory
com.ruoyi.integration.api.factory.TCECClientFallbackFactory
com.ruoyi.integration.api.factory.TransactionRecordClientFallbackFactory
ruoyi-service/ruoyi-chargingPile/pom.xml
@@ -153,6 +153,11 @@
            <artifactId>javase</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!--mongodb-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
    </dependencies>
    <build>
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
@@ -178,7 +178,7 @@
        TAccountingStrategy accountingStrategy = accountingStrategyService.getById(site.getAccountingStrategyId());
        TAccountingStrategyDetail one = accountingStrategyDetailService.getOne(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
                .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId())
                .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and end_time"));
                .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and (if(end_time = '00:00', '23:59', end_time))"));
        return R.ok(dto.getStrategyDetailId().equals(one.getId()));
    }
    
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -11,6 +11,7 @@
import com.ruoyi.chargingPile.api.model.Partner;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.util.mongodb.service.UploadRealTimeMonitoringDataService;
import com.ruoyi.common.core.utils.WebUtils;
import com.ruoyi.common.core.web.domain.BasePojo;
import com.ruoyi.common.core.web.page.PageInfo;
@@ -425,7 +426,7 @@
    @Resource
    private OtherClient otherClient;
    @Resource
    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
    private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService;
    @ApiOperation(value = "下载", tags = {"管理后台-结算表记录"})
    @PutMapping("/downloadSettlement")
    @Log(title = "【结算表记录】下载结算表", businessType = BusinessType.EXPORT)
@@ -559,7 +560,7 @@
            settlementExportVO.setAverageServiceChargeReal("");
            settlementExportVO.setAverageServiceCharge("");
            // 获取充电时间
            UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
            UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode());
            if (data5!=null){
                if (data5.getCumulative_charging_time()!=null){
                    settlementExportVO.setChargingSecond(data5.getCumulative_charging_time()+"");
@@ -568,7 +569,7 @@
            }
            // 获取开始SOC 结束soc
            if (chargingOrder.getCode()!=null){
                List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
                List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode());
                if (data6!=null && !data6.isEmpty()){
                    int min = 100;
                    int max = 0;
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -19,6 +19,7 @@
import com.ruoyi.chargingPile.dto.GetChargingGunMonitoring;
import com.ruoyi.chargingPile.mapper.TChargingPileMapper;
import com.ruoyi.chargingPile.service.*;
import com.ruoyi.chargingPile.util.mongodb.service.UploadRealTimeMonitoringDataService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -96,7 +97,7 @@
    private AppUserCarClient appUserCarClient;
    
    @Resource
    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
    private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService;
    @Resource
    private SysUserRoleClient sysUserRoleClient;
@@ -406,7 +407,7 @@
                        // 查询正在充电的单子的实时记录
                        TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(chargingGun.getId()).getData();
                        if(Objects.nonNull(chargingOrder)){
                            UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
                            UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode());
                            if(null != uploadRealTimeMonitoringData){
                                chargingGun.setSoc(uploadRealTimeMonitoringData.getSoc());
                            }else{
@@ -636,7 +637,7 @@
                        gunMonitoring.setLicensePlate(chargingOrder.getPlateNum());
                    }
                    UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
                    UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode());
                    gunMonitoring.setChargingRatio(BigDecimal.valueOf(data.getSoc()));
                    gunMonitoring.setElectricQuantity(data.getCharging_degree().toString());
                    gunMonitoring.setSoc(data.getSoc().toString());
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/base/BaseService.java
New file
@@ -0,0 +1,28 @@
package com.ruoyi.chargingPile.util.mongodb.base;
import java.util.List;
public interface BaseService<T> {
    /**
     * 添加
     * @param t 实体类
     * @return 添加结果 1=成功 0=失败
     */
    int create(T t);
    /**
     * 根据id查询
     * @param id 实体id
     * @return 实体对象
     */
    T findById(String id);
    /**
     * 查询列表
     * @return 实体列表
     */
    List<T> findAll();
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/BmsDemandAndChargerExportationService.java
New file
@@ -0,0 +1,20 @@
package com.ruoyi.chargingPile.util.mongodb.service;
import com.ruoyi.chargingPile.util.mongodb.base.BaseService;
import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
import java.util.List;
public interface BmsDemandAndChargerExportationService extends BaseService<BmsDemandAndChargerExportation> {
    /**
     * 获取bms数据
     * @param orderCode
     * @return
     */
    List<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(String orderCode);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/ChargingHandshakeService.java
New file
@@ -0,0 +1,13 @@
package com.ruoyi.chargingPile.util.mongodb.service;
import com.ruoyi.chargingPile.util.mongodb.base.BaseService;
import com.ruoyi.integration.api.model.ChargingHandshake;
public interface ChargingHandshakeService extends BaseService<ChargingHandshake> {
    ChargingHandshake getDataByOrderCode(String code);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/PlatformStartChargingReplyService.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.chargingPile.util.mongodb.service;
import com.ruoyi.chargingPile.util.mongodb.base.BaseService;
import com.ruoyi.integration.api.model.PlatformStartChargingReply;
import java.util.List;
public interface PlatformStartChargingReplyService extends BaseService<PlatformStartChargingReply> {
    /**
     * 根据订单编号查询远程启机应答数据
     * @param code
     * @return
     */
    List<PlatformStartChargingReply> getPlatformStartChargingReply(String code);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/PlatformStopChargingReplyService.java
New file
@@ -0,0 +1,15 @@
package com.ruoyi.chargingPile.util.mongodb.service;
import com.ruoyi.chargingPile.util.mongodb.base.BaseService;
import com.ruoyi.integration.api.model.PlatformStopChargingReply;
import com.ruoyi.integration.api.vo.GetPlatformStopChargingReply;
public interface PlatformStopChargingReplyService extends BaseService<PlatformStopChargingReply> {
    /**
     * 根据枪编号获取停机应答
     * @return
     */
    PlatformStopChargingReply getPlatformStopChargingReply(GetPlatformStopChargingReply query);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/SecurityDetectionService.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.chargingPile.util.mongodb.service;
import com.ruoyi.chargingPile.util.mongodb.base.BaseService;
import com.ruoyi.integration.api.model.SecurityDetection;
/**
 */
public interface SecurityDetectionService extends BaseService<SecurityDetection> {
    /**
     * 根据业务流水号查询数据
     * @param transactionSerialNumber
     * @return
     */
    SecurityDetection getSecurityDetection(String transactionSerialNumber);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/TransactionRecordService.java
New file
@@ -0,0 +1,14 @@
package com.ruoyi.chargingPile.util.mongodb.service;
import com.ruoyi.chargingPile.util.mongodb.base.BaseService;
import com.ruoyi.integration.api.model.TransactionRecord;
public interface TransactionRecordService extends BaseService<TransactionRecord> {
    /**
     * 根据订单流水号查询数据
     * @param code
     * @return
     */
    TransactionRecord findOne(String code);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/UploadRealTimeMonitoringDataService.java
New file
@@ -0,0 +1,31 @@
package com.ruoyi.chargingPile.util.mongodb.service;
import com.ruoyi.chargingPile.util.mongodb.base.BaseService;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
import java.text.ParseException;
import java.util.List;
public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> {
    /**
     * 根据订单号查询监控数据
     * @param code
     * @return
     */
    List<UploadRealTimeMonitoringData> getDataByOrderCode(String code);
    UploadRealTimeMonitoringPageData getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) throws ParseException;
    /**
     * 查询订单最新一条数据
     * @param transaction_serial_number
     * @return
     */
    UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number);
    void delete(String id);
    void updateById(String id);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java
New file
@@ -0,0 +1,48 @@
package com.ruoyi.chargingPile.util.mongodb.service.impl;
import com.ruoyi.chargingPile.util.mongodb.service.BmsDemandAndChargerExportationService;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
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;
@Service
public class BmsDemandAndChargerExportationServiceImpl implements BmsDemandAndChargerExportationService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(BmsDemandAndChargerExportation bmsDemandAndChargerExportation) {
        mongoTemplate.save(bmsDemandAndChargerExportation);
        return 1;
    }
    @Override
    public BmsDemandAndChargerExportation findById(String id) {
        return mongoTemplate.findById(id, BmsDemandAndChargerExportation.class);
    }
    @Override
    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;
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/ChargingHandshakeServiceImpl.java
New file
@@ -0,0 +1,39 @@
package com.ruoyi.chargingPile.util.mongodb.service.impl;
import com.ruoyi.chargingPile.util.mongodb.service.ChargingHandshakeService;
import com.ruoyi.integration.api.model.ChargingHandshake;
import org.springframework.beans.factory.annotation.Autowired;
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;
@Service
public class ChargingHandshakeServiceImpl implements ChargingHandshakeService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(ChargingHandshake chargingHandshake) {
        mongoTemplate.save(chargingHandshake);
        return 1;
    }
    @Override
    public ChargingHandshake findById(String id) {
        return mongoTemplate.findById(id, ChargingHandshake.class);
    }
    @Override
    public List<ChargingHandshake> findAll() {
        return mongoTemplate.findAll(ChargingHandshake.class);
    }
    @Override
    public ChargingHandshake getDataByOrderCode(String code) {
        List<ChargingHandshake> charging_gun_code = mongoTemplate.find(new Query().addCriteria(Criteria.where("transaction_serial_number").is(code)), ChargingHandshake.class);
        return charging_gun_code.size() > 0 ? charging_gun_code.get(0) : null;
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/PlatformStartChargingReplyServiceImpl.java
New file
@@ -0,0 +1,47 @@
package com.ruoyi.chargingPile.util.mongodb.service.impl;
import com.ruoyi.chargingPile.util.mongodb.service.PlatformStartChargingReplyService;
import com.ruoyi.integration.api.model.PlatformStartChargingReply;
import org.springframework.beans.factory.annotation.Autowired;
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;
@Service
public class PlatformStartChargingReplyServiceImpl implements PlatformStartChargingReplyService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(PlatformStartChargingReply platformStartChargingReply) {
        mongoTemplate.save(platformStartChargingReply);
        return 1;
    }
    @Override
    public PlatformStartChargingReply findById(String id) {
        return mongoTemplate.findById(id, PlatformStartChargingReply.class);
    }
    @Override
    public List<PlatformStartChargingReply> findAll() {
        return mongoTemplate.findAll(PlatformStartChargingReply.class);
    }
    /**
     * 根据订单编号查询远程启机应答数据
     * @param code
     * @return
     */
    @Override
    public List<PlatformStartChargingReply> getPlatformStartChargingReply(String code) {
        Query query = new Query();
        query.addCriteria(Criteria.where("transaction_serial_number").is(code));
        List<PlatformStartChargingReply> platformStartChargingReplies = mongoTemplate.find(query, PlatformStartChargingReply.class);
        return platformStartChargingReplies;
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/PlatformStopChargingReplyServiceImpl.java
New file
@@ -0,0 +1,48 @@
package com.ruoyi.chargingPile.util.mongodb.service.impl;
import com.ruoyi.chargingPile.util.mongodb.service.PlatformStopChargingReplyService;
import com.ruoyi.integration.api.model.PlatformStopChargingReply;
import com.ruoyi.integration.api.vo.GetPlatformStopChargingReply;
import org.springframework.beans.factory.annotation.Autowired;
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.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class PlatformStopChargingReplyServiceImpl implements PlatformStopChargingReplyService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(PlatformStopChargingReply platformStopChargingReply) {
        mongoTemplate.save(platformStopChargingReply);
        return 1;
    }
    @Override
    public PlatformStopChargingReply findById(String id) {
        return mongoTemplate.findById(id, PlatformStopChargingReply.class);
    }
    @Override
    public List<PlatformStopChargingReply> findAll() {
        return mongoTemplate.findAll(PlatformStopChargingReply.class);
    }
    /**
     * 根据枪编号获取
     * @return
     */
    @Override
    public PlatformStopChargingReply getPlatformStopChargingReply(GetPlatformStopChargingReply query) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        List<PlatformStopChargingReply> platformStopChargingReplies = mongoTemplate.find(new Query().addCriteria(Criteria.where("charging_pile_code").is(query.getCharging_pile_code())
                .and("charging_gun_code").is(query.getCharging_gun_code()).and("create_time").lte(sdf.format(new Date())).gte(query.getEnd_time())), PlatformStopChargingReply.class);
        return platformStopChargingReplies.size() > 0 ? platformStopChargingReplies.get(0) : null;
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/SecurityDetectionServiceImpl.java
New file
@@ -0,0 +1,49 @@
package com.ruoyi.chargingPile.util.mongodb.service.impl;
import com.ruoyi.chargingPile.util.mongodb.service.SecurityDetectionService;
import com.ruoyi.integration.api.model.SecurityDetection;
import org.springframework.beans.factory.annotation.Autowired;
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;
/**
 * 心跳包应答实现类
 **/
@Service
public class SecurityDetectionServiceImpl implements SecurityDetectionService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(SecurityDetection securityDetection) {
        mongoTemplate.save(securityDetection);
        return 1;
    }
    @Override
    public SecurityDetection findById(String id) {
        return mongoTemplate.findById(id, SecurityDetection.class);
    }
    @Override
    public List<SecurityDetection> findAll() {
        return mongoTemplate.findAll(SecurityDetection.class);
    }
    /**
     * 根据业务流水号查询数据
     * @param transactionSerialNumber
     * @return
     */
    @Override
    public SecurityDetection getSecurityDetection(String transactionSerialNumber) {
        List<SecurityDetection> securityDetectionList = mongoTemplate.find(new Query().addCriteria(Criteria.where("transaction_serial_number")
                .is(transactionSerialNumber)), SecurityDetection.class);
        return securityDetectionList.size() > 0 ? securityDetectionList.get(0) : null;
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/TransactionRecordServiceImpl.java
New file
@@ -0,0 +1,51 @@
package com.ruoyi.chargingPile.util.mongodb.service.impl;
import com.ruoyi.chargingPile.util.mongodb.service.TransactionRecordService;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.model.TransactionRecord;
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;
@Service
public class TransactionRecordServiceImpl implements TransactionRecordService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(TransactionRecord transactionRecord) {
        mongoTemplate.save(transactionRecord);
        return 1;
    }
    @Override
    public TransactionRecord findById(String id) {
        return mongoTemplate.findById(id, TransactionRecord.class);
    }
    @Override
    public List<TransactionRecord> findAll() {
        return mongoTemplate.findAll(TransactionRecord.class);
    }
    /**
     * 根据订单流水号查询数据
     * @param code
     * @return
     */
    @Override
    public TransactionRecord findOne(String code) {
        Query query = new Query();
        if(StringUtils.isNotEmpty(code)){
            query.addCriteria(Criteria.where("transaction_serial_number").is(code));
        }
        List<TransactionRecord> transactionRecords = mongoTemplate.find(
                query.with(Sort.by(Sort.Order.desc("create_time")))
                , TransactionRecord.class);
        return transactionRecords.size() > 0 ? transactionRecords.get(0) : null;
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
New file
@@ -0,0 +1,174 @@
package com.ruoyi.chargingPile.util.mongodb.service.impl;
import com.ruoyi.chargingPile.util.mongodb.service.UploadRealTimeMonitoringDataService;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class UploadRealTimeMonitoringDataServiceImpl implements UploadRealTimeMonitoringDataService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(UploadRealTimeMonitoringData uploadRealTimeMonitoringData) {
        mongoTemplate.save(uploadRealTimeMonitoringData);
        return 1;
    }
    @Override
    public UploadRealTimeMonitoringData findById(String id) {
        return mongoTemplate.findById(id, UploadRealTimeMonitoringData.class);
    }
    @Override
    public List<UploadRealTimeMonitoringData> findAll() {
        return mongoTemplate.findAll(UploadRealTimeMonitoringData.class);
    }
    /**
     * 根据订单号查询监控数据
     * @param code
     * @return
     */
    @Override
    public List<UploadRealTimeMonitoringData> getDataByOrderCode(String code) {
        Query query = new Query();
        if(StringUtils.isNotEmpty(code)){
            query.addCriteria(Criteria.where("transaction_serial_number").is(code));
        }
        List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
                query.with(Sort.by(Sort.Order.desc("create_time")))
                , UploadRealTimeMonitoringData.class);
        return uploadRealTimeMonitoringData;
    }
    @Override
    public UploadRealTimeMonitoringPageData getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) throws ParseException {
        Query query = new Query();
//        if (!values.isEmpty()){
//            query.addCriteria(Criteria.where("transaction_serial_number").in(values));
//        }
        if (mongoChargingOrderQuery.getCode() != null && !mongoChargingOrderQuery.getCode().isEmpty()) {
            query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(),"i")); // "i" 表示不区分大小写
        }
        if (mongoChargingOrderQuery.getOrderType() !=null){
            query.addCriteria(Criteria.where("orderType").is(mongoChargingOrderQuery.getOrderType()));
        }
        if (mongoChargingOrderQuery.getSiteId() != null){
            query.addCriteria(Criteria.where("siteId").is(mongoChargingOrderQuery.getSiteId()));
        }
        if (!mongoChargingOrderQuery.getSiteIds().isEmpty()){
            query.addCriteria(Criteria.where("siteId").in(mongoChargingOrderQuery.getSiteIds()));
        }
        if (mongoChargingOrderQuery.getChargingPileCode() != null && !mongoChargingOrderQuery.getChargingPileCode().isEmpty()) {
            query.addCriteria(Criteria.where("charging_pile_code").is(mongoChargingOrderQuery.getChargingPileCode()));
        }
        if (mongoChargingOrderQuery.getChargingGunCode() != null && !mongoChargingOrderQuery.getChargingGunCode().isEmpty()){
            query.addCriteria(Criteria.where("charging_gun_code").is(mongoChargingOrderQuery.getChargingGunCode()));
        }
        if (mongoChargingOrderQuery.getStatus() != null){
            query.addCriteria(Criteria.where("status").is(mongoChargingOrderQuery.getStatus()));
        }
        if (mongoChargingOrderQuery.getCreateTime() != null) {
            String[] split = mongoChargingOrderQuery.getCreateTime().split(" - ");
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date start = dateFormat.parse(split[0]);
            Date end = dateFormat.parse(split[1]);
            query.addCriteria(Criteria.where("create_time").gte(start).lt(end));
        }
        if (mongoChargingOrderQuery.getLastTime() != null && mongoChargingOrderQuery.getLastTime() != null) {
            String[] split = mongoChargingOrderQuery.getLastTime().split(" - ");
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date start = dateFormat.parse(split[0]);
            Date end = dateFormat.parse(split[1]);
            query.addCriteria(Criteria.where("last_time").gte(start).lt(end));
        }
        long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class);
        // 创建带有排序的 Pageable 对象
        Pageable pageable = PageRequest.of(
                mongoChargingOrderQuery.getPageCurr()-1,
                mongoChargingOrderQuery.getPageSize(),
                Sort.by(Sort.Direction.DESC, "create_time")
        );
        // 设置分页和排序
        query.with(pageable);
        // 执行查询并获取 Page 对象
        List<UploadRealTimeMonitoringData> page = mongoTemplate.find(query, UploadRealTimeMonitoringData.class,"upload_real_time_monitoring_data");
        // 设置分页
//        Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageSize()*(mongoChargingOrderQuery.getPageCurr()-1), mongoChargingOrderQuery.getPageSize());
//        query.with(pageable);
//        query.with(Sort.by(Sort.Direction.DESC,"create_time"));
        List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
                query
                , UploadRealTimeMonitoringData.class);
        UploadRealTimeMonitoringPageData uploadRealTimeMonitoringPageData = new UploadRealTimeMonitoringPageData();
        uploadRealTimeMonitoringPageData.setCount(totalElements);
        uploadRealTimeMonitoringPageData.setRecords(page);
        return uploadRealTimeMonitoringPageData;
    }
    @Override
    public UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number) {
        Query query = new Query();
        if (StringUtils.isNotEmpty(transaction_serial_number)){
            query.addCriteria(Criteria.where("transaction_serial_number").is(transaction_serial_number));
        }
        // 按照 createdAt 字段降序排序
        query.with(Sort.by(Sort.Direction.DESC, "create_time"));
        // 限制结果只返回一条记录
        query.limit(1);
        return mongoTemplate.findOne(query, UploadRealTimeMonitoringData.class);
    }
    @Override
    public void delete(String id) {
        UploadRealTimeMonitoringData byId = findById(id.toString());
        mongoTemplate.remove(byId);
    }
    @Override
    public void updateById(String id) {
        // 创建查询条件
        Query query = new Query(Criteria.where("_id").is(id));
        // 创建更新对象
        Update update = new Update().set("last_time", new Date());
        // 执行更新操作
        mongoTemplate.updateFirst(query, update, UploadRealTimeMonitoringData.class);
    }
}
ruoyi-service/ruoyi-integration/pom.xml
@@ -115,32 +115,6 @@
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--rocketmq-->
<!--        <dependency>-->
<!--            <groupId>com.alibaba.cloud</groupId>-->
<!--            <artifactId>spring-cloud-starter-stream-rocketmq</artifactId>-->
<!--            <version>2.2.2.RELEASE</version>-->
<!--            <exclusions>-->
<!--                <exclusion>-->
<!--                    <groupId>org.apache.rocketmq</groupId>-->
<!--                    <artifactId>rocketmq-client</artifactId>-->
<!--                </exclusion>-->
<!--                <exclusion>-->
<!--                    <groupId>org.apache.rocketmq</groupId>-->
<!--                    <artifactId>rocketmq-acl</artifactId>-->
<!--                </exclusion>-->
<!--            </exclusions>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>org.apache.rocketmq</groupId>-->
<!--            <artifactId>rocketmq-client</artifactId>-->
<!--            <version>4.7.1</version>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>org.apache.rocketmq</groupId>-->
<!--            <artifactId>rocketmq-acl</artifactId>-->
<!--            <version>4.7.1</version>-->
<!--        </dependency>-->
    
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
@@ -32,13 +32,9 @@
     * @return
     */
    @PostMapping(value = "/getOrderInfoByCode")
    public R<UploadRealTimeMonitoringData> chargingOrderInfo(@RequestParam("orderId") String orderId){
        List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(orderId);
        if(dataByOrderCode.size() > 0){
            UploadRealTimeMonitoringData uploadRealTimeMonitoringData = dataByOrderCode.get(0);
            return R.ok(uploadRealTimeMonitoringData);
        }
        return R.ok();
    public R<UploadRealTimeMonitoringData> getOrderInfoByCode(@RequestParam("orderId") String orderId){
        UploadRealTimeMonitoringData dataByOrderCode = uploadRealTimeMonitoringDataService.getLastDataById(orderId);
        return R.ok(dataByOrderCode);
    }
    /**
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -84,7 +84,7 @@
            if(!"}".equals(substring)){
                content1 = content1.substring(0, content1.length() - 1) + "}";
            }
            System.out.println("content1:"+content1);
            log.info("content1:"+content1);
            content = JSON.parseObject(content1);
        }
        JSONObject header = jsonObject.getJSONObject("notify_data").getJSONObject("header");
ruoyi-service/ruoyi-order/pom.xml
@@ -150,7 +150,11 @@
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--mongodb-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-spring-boot-starter</artifactId>
@@ -162,7 +166,6 @@
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <build>
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -57,6 +57,7 @@
import com.ruoyi.order.dto.*;
import com.ruoyi.order.service.*;
import com.ruoyi.order.util.PreviousSixMonths;
import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService;
import com.ruoyi.order.vo.EndOfChargePageInfo;
import com.ruoyi.order.vo.WatchChargingOrderVo;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
@@ -148,7 +149,7 @@
    @Resource
    private TOrderInvoiceService invoiceService;
    @Resource
    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
    private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService;
    @Resource
    private PartnerClient partnerClient;
    @Resource
@@ -1243,7 +1244,7 @@
    @GetMapping(value = "/watch/deletes")
    @ApiOperation(value = "监控订单-删除", tags = {"管理后台-订单管理"})
    public R watchChargingOrder(@RequestParam String id) {
        uploadRealTimeMonitoringDataClient.delete(id);
        uploadRealTimeMonitoringDataService.delete(id);
        return R.ok();
    }
    
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -21,7 +21,6 @@
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.ChargingHandshakeClient;
import com.ruoyi.integration.api.feignClient.PlatformStartChargingReplyClient;
import com.ruoyi.integration.api.feignClient.SendMessageClient;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
@@ -50,6 +49,9 @@
import com.ruoyi.order.service.TChargingOrderService;
import com.ruoyi.order.service.TOrderEvaluateService;
import com.ruoyi.order.service.*;
import com.ruoyi.order.util.mongodb.service.PlatformStartChargingReplyService;
import com.ruoyi.order.util.mongodb.service.TransactionRecordService;
import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService;
import com.ruoyi.order.vo.EndOfChargePageInfo;
import com.ruoyi.other.api.domain.*;
import com.ruoyi.order.vo.ChargingOrderListInfoVO;
@@ -140,7 +142,7 @@
    private RedisService redisService;
    
    @Resource
    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
    private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService;
    
    @Resource
    private TCECClient tcecClient;
@@ -161,7 +163,7 @@
    private AccountingStrategyClient accountingStrategyClient;
    @Resource
    private PlatformStartChargingReplyClient platformStartChargingReplyClient;
    private PlatformStartChargingReplyService platformStartChargingReplyService;
    @Resource
    private TChargingOrderRefundService chargingOrderRefundService;
@@ -196,9 +198,6 @@
    @Resource
    private SecurityDetectionClient securityDetectionClient;
    
    @Resource
    private BmsDemandAndChargerExportationClient bmsDemandAndChargerExportationClient;
    //计数器
    private Map<String, Integer> counter_map = new HashMap<>();
    
@@ -209,7 +208,7 @@
    private OperatorClient operatorClient;
    
    @Resource
    private TransactionRecordClient transactionRecordClient;
    private TransactionRecordService transactionRecordService;
    
    @Resource
    private ITChargingOrderSummaryDataService chargingOrderSummaryDataService;
@@ -286,8 +285,12 @@
        }else{
            myChargingOrderInfo.setLicensePlate(chargingOrder.getPlateNum());
        }
        if(null != chargingOrder.getStartTime()){
        myChargingOrderInfo.setStartTime(chargingOrder.getStartTime().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond() * 1000);
        }
        if(null != chargingOrder.getEndTime()){
        myChargingOrderInfo.setEndTime(chargingOrder.getEndTime().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond() * 1000);
        }
        myChargingOrderInfo.setOrderAmount(chargingOrder.getOrderAmount());
        myChargingOrderInfo.setPaymentAmount(chargingOrder.getPaymentAmount());
        myChargingOrderInfo.setRechargeAmount(chargingOrder.getRechargeAmount());
@@ -299,7 +302,7 @@
                        .orderByAsc(TChargingOrderAccountingStrategy::getStartTime)
        );
        myChargingOrderInfo.setStageCost(stageCost);
        List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
        List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode());
        if(null != dataList){
            //在MongoDB中获取数据
            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
@@ -385,7 +388,6 @@
     * @return
     */
    @Override
    @GlobalTransactional(rollbackFor = Exception.class)
    public AjaxResult paymentChargingOrder(AddChargingOrder addChargingOrder) {
        Long userId = tokenService.getLoginUserApplet().getUserId();
        TAppUser appUser = appUserClient.getUserById(userId).getData();
@@ -572,7 +574,6 @@
     * @return
     */
    @Override
    @GlobalTransactional(rollbackFor = Exception.class)
    public AjaxResult chargingOrderCallback(Integer paymentType, String out_trade_no, String transaction_id, String attach) {
        TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, out_trade_no));
        if(chargingOrder.getRechargePaymentStatus() == 2){
@@ -725,7 +726,7 @@
        }
        String code = chargingOrder.getCode();
        String key = "AQJC_" + chargingOrder.getChargingGunId();
        List<PlatformStartChargingReply> data = platformStartChargingReplyClient.getPlatformStartChargingReply(code).getData();
        List<PlatformStartChargingReply> data = platformStartChargingReplyService.getPlatformStartChargingReply(code);
        log.info(code + ":-------------------开始检查调起充电结果-------------------" + data.toString());
        if(data.size() != 0){
            PlatformStartChargingReply platformStartChargingReply = data.get(1);
@@ -1095,7 +1096,7 @@
        chargingDetails.setCode(one.getCode());
        chargingDetails.setStatus(one.getStatus());
        chargingDetails.setChargingCost(one.getResidualAmount());
        UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(one.getCode()).getData();
        UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(one.getCode());
        if(null != data){
            chargingDetails.setChargeCurrent(data.getOutput_current());
            chargingDetails.setChargeVoltage(data.getOutput_voltage());
@@ -1124,7 +1125,6 @@
     * @return
     */
    @Override
    @GlobalTransactional(rollbackFor = Exception.class)
    public AjaxResult stopCharging(String id) {
        TChargingOrder order = this.getById(id);
        Integer status = order.getStatus();
@@ -1736,7 +1736,7 @@
            }
            // 获取开始SOC 结束soc
            if (chargingOrderListVO.getCode()!=null){
                List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData();
                List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode());
            if (data6!=null && !data6.isEmpty()){
                int min = 100;
@@ -2045,7 +2045,7 @@
        // 获取开始SOC 结束soc
        if (chargingOrder.getCode()!=null){
            List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
            List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode());
            if (data6!=null){
                for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
                    if (uploadRealTimeMonitoringData.getOutput_current()!=null&&
@@ -2154,7 +2154,6 @@
     * @param orderCode
     */
    @Override
    @GlobalTransactional(rollbackFor = Exception.class)
    public void endCharge(String orderCode, Integer endMode) {
        TChargingOrder order = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, orderCode));
        TChargingOrder chargingOrder = new TChargingOrder();
@@ -2179,7 +2178,6 @@
     * @param vo
     */
    @Override
    @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){
@@ -2396,7 +2394,7 @@
        TChargingOrder order = new TChargingOrder();
        order.setId(chargingOrder.getId());
        order.setAppUserId(chargingOrder.getAppUserId());
        UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
        UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode());
        if(null != uploadRealTimeMonitoringData && null == chargingOrder.getEndMode()){
            Integer soc = uploadRealTimeMonitoringData.getSoc();
            if(soc >= 98){
@@ -3990,7 +3988,7 @@
                .ne(TChargingOrder::getElectricity, 0).in(TChargingOrder::getStatus, Arrays.asList(4, 5)));
        List<Map<String, Object>> mapList = new ArrayList<>();
        for (TChargingOrder order : list) {
            TransactionRecord transactionRecord = transactionRecordClient.findTransactionRecord(order.getCode()).getData();
            TransactionRecord transactionRecord = transactionRecordService.findOne(order.getCode());
            Map<String, Object> map = new HashMap<>();
            map.put("order", order);
            map.put("transactionRecord", transactionRecord);
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
@@ -325,7 +325,6 @@
     * @return
     */
    @Override
    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
    public AjaxResult addOrderEvaluate(OrderEvaluateVo query) {
        TOrderEvaluate orderEvaluate = this.getOne(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderId, query.getOrderId())
                .eq(TOrderEvaluate::getOrderType, query.getOrderType()).eq(TOrderEvaluate::getDelFlag, 0));
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -95,7 +95,6 @@
     * @return
     */
    @Override
    @GlobalTransactional(rollbackFor = Exception.class)
    public AjaxResult addOrderInvoice(AddOrderInvoice addOrderInvoice) {
        Long userId = tokenService.getLoginUserApplet().getUserId();
        String orders = addOrderInvoice.getOrders();
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -485,7 +485,6 @@
     * @return
     */
    @Override
    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
    public AjaxResult cancelShoppingOrderWxRefund(String out_refund_no, String refund_id, String refund_status, String success_time) {
        TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, out_refund_no));
        one.setRefundStatus(2);
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/base/BaseService.java
New file
@@ -0,0 +1,28 @@
package com.ruoyi.order.util.mongodb.base;
import java.util.List;
public interface BaseService<T> {
    /**
     * 添加
     * @param t 实体类
     * @return 添加结果 1=成功 0=失败
     */
    int create(T t);
    /**
     * 根据id查询
     * @param id 实体id
     * @return 实体对象
     */
    T findById(String id);
    /**
     * 查询列表
     * @return 实体列表
     */
    List<T> findAll();
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/BmsDemandAndChargerExportationService.java
New file
@@ -0,0 +1,20 @@
package com.ruoyi.order.util.mongodb.service;
import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
import com.ruoyi.order.util.mongodb.base.BaseService;
import java.util.List;
public interface BmsDemandAndChargerExportationService extends BaseService<BmsDemandAndChargerExportation> {
    /**
     * 获取bms数据
     * @param orderCode
     * @return
     */
    List<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(String orderCode);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/ChargingHandshakeService.java
New file
@@ -0,0 +1,13 @@
package com.ruoyi.order.util.mongodb.service;
import com.ruoyi.integration.api.model.ChargingHandshake;
import com.ruoyi.order.util.mongodb.base.BaseService;
public interface ChargingHandshakeService extends BaseService<ChargingHandshake> {
    ChargingHandshake getDataByOrderCode(String code);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/PlatformStartChargingReplyService.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.order.util.mongodb.service;
import com.ruoyi.integration.api.model.PlatformStartChargingReply;
import com.ruoyi.order.util.mongodb.base.BaseService;
import java.util.List;
public interface PlatformStartChargingReplyService extends BaseService<PlatformStartChargingReply> {
    /**
     * 根据订单编号查询远程启机应答数据
     * @param code
     * @return
     */
    List<PlatformStartChargingReply> getPlatformStartChargingReply(String code);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/PlatformStopChargingReplyService.java
New file
@@ -0,0 +1,15 @@
package com.ruoyi.order.util.mongodb.service;
import com.ruoyi.integration.api.model.PlatformStopChargingReply;
import com.ruoyi.integration.api.vo.GetPlatformStopChargingReply;
import com.ruoyi.order.util.mongodb.base.BaseService;
public interface PlatformStopChargingReplyService extends BaseService<PlatformStopChargingReply> {
    /**
     * 根据枪编号获取停机应答
     * @return
     */
    PlatformStopChargingReply getPlatformStopChargingReply(GetPlatformStopChargingReply query);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/SecurityDetectionService.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.order.util.mongodb.service;
import com.ruoyi.integration.api.model.SecurityDetection;
import com.ruoyi.order.util.mongodb.base.BaseService;
/**
 */
public interface SecurityDetectionService extends BaseService<SecurityDetection> {
    /**
     * 根据业务流水号查询数据
     * @param transactionSerialNumber
     * @return
     */
    SecurityDetection getSecurityDetection(String transactionSerialNumber);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/TransactionRecordService.java
New file
@@ -0,0 +1,14 @@
package com.ruoyi.order.util.mongodb.service;
import com.ruoyi.integration.api.model.TransactionRecord;
import com.ruoyi.order.util.mongodb.base.BaseService;
public interface TransactionRecordService extends BaseService<TransactionRecord> {
    /**
     * 根据订单流水号查询数据
     * @param code
     * @return
     */
    TransactionRecord findOne(String code);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/UploadRealTimeMonitoringDataService.java
New file
@@ -0,0 +1,31 @@
package com.ruoyi.order.util.mongodb.service;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
import com.ruoyi.order.util.mongodb.base.BaseService;
import java.text.ParseException;
import java.util.List;
public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> {
    /**
     * 根据订单号查询监控数据
     * @param code
     * @return
     */
    List<UploadRealTimeMonitoringData> getDataByOrderCode(String code);
    UploadRealTimeMonitoringPageData getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) throws ParseException;
    /**
     * 查询订单最新一条数据
     * @param transaction_serial_number
     * @return
     */
    UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number);
    void delete(String id);
    void updateById(String id);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java
New file
@@ -0,0 +1,49 @@
package com.ruoyi.order.util.mongodb.service.impl;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
import com.ruoyi.order.util.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.time.LocalDateTime;
import java.util.List;
@Service
public class BmsDemandAndChargerExportationServiceImpl implements BmsDemandAndChargerExportationService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(BmsDemandAndChargerExportation bmsDemandAndChargerExportation) {
        mongoTemplate.save(bmsDemandAndChargerExportation);
        return 1;
    }
    @Override
    public BmsDemandAndChargerExportation findById(String id) {
        return mongoTemplate.findById(id, BmsDemandAndChargerExportation.class);
    }
    @Override
    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;
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/ChargingHandshakeServiceImpl.java
New file
@@ -0,0 +1,39 @@
package com.ruoyi.order.util.mongodb.service.impl;
import com.ruoyi.integration.api.model.ChargingHandshake;
import com.ruoyi.order.util.mongodb.service.ChargingHandshakeService;
import org.springframework.beans.factory.annotation.Autowired;
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;
@Service
public class ChargingHandshakeServiceImpl implements ChargingHandshakeService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(ChargingHandshake chargingHandshake) {
        mongoTemplate.save(chargingHandshake);
        return 1;
    }
    @Override
    public ChargingHandshake findById(String id) {
        return mongoTemplate.findById(id, ChargingHandshake.class);
    }
    @Override
    public List<ChargingHandshake> findAll() {
        return mongoTemplate.findAll(ChargingHandshake.class);
    }
    @Override
    public ChargingHandshake getDataByOrderCode(String code) {
        List<ChargingHandshake> charging_gun_code = mongoTemplate.find(new Query().addCriteria(Criteria.where("transaction_serial_number").is(code)), ChargingHandshake.class);
        return charging_gun_code.size() > 0 ? charging_gun_code.get(0) : null;
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/PlatformStartChargingReplyServiceImpl.java
New file
@@ -0,0 +1,47 @@
package com.ruoyi.order.util.mongodb.service.impl;
import com.ruoyi.integration.api.model.PlatformStartChargingReply;
import com.ruoyi.order.util.mongodb.service.PlatformStartChargingReplyService;
import org.springframework.beans.factory.annotation.Autowired;
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;
@Service
public class PlatformStartChargingReplyServiceImpl implements PlatformStartChargingReplyService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(PlatformStartChargingReply platformStartChargingReply) {
        mongoTemplate.save(platformStartChargingReply);
        return 1;
    }
    @Override
    public PlatformStartChargingReply findById(String id) {
        return mongoTemplate.findById(id, PlatformStartChargingReply.class);
    }
    @Override
    public List<PlatformStartChargingReply> findAll() {
        return mongoTemplate.findAll(PlatformStartChargingReply.class);
    }
    /**
     * 根据订单编号查询远程启机应答数据
     * @param code
     * @return
     */
    @Override
    public List<PlatformStartChargingReply> getPlatformStartChargingReply(String code) {
        Query query = new Query();
        query.addCriteria(Criteria.where("transaction_serial_number").is(code));
        List<PlatformStartChargingReply> platformStartChargingReplies = mongoTemplate.find(query, PlatformStartChargingReply.class);
        return platformStartChargingReplies;
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/PlatformStopChargingReplyServiceImpl.java
New file
@@ -0,0 +1,48 @@
package com.ruoyi.order.util.mongodb.service.impl;
import com.ruoyi.integration.api.model.PlatformStopChargingReply;
import com.ruoyi.integration.api.vo.GetPlatformStopChargingReply;
import com.ruoyi.order.util.mongodb.service.PlatformStopChargingReplyService;
import org.springframework.beans.factory.annotation.Autowired;
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.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class PlatformStopChargingReplyServiceImpl implements PlatformStopChargingReplyService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(PlatformStopChargingReply platformStopChargingReply) {
        mongoTemplate.save(platformStopChargingReply);
        return 1;
    }
    @Override
    public PlatformStopChargingReply findById(String id) {
        return mongoTemplate.findById(id, PlatformStopChargingReply.class);
    }
    @Override
    public List<PlatformStopChargingReply> findAll() {
        return mongoTemplate.findAll(PlatformStopChargingReply.class);
    }
    /**
     * 根据枪编号获取
     * @return
     */
    @Override
    public PlatformStopChargingReply getPlatformStopChargingReply(GetPlatformStopChargingReply query) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        List<PlatformStopChargingReply> platformStopChargingReplies = mongoTemplate.find(new Query().addCriteria(Criteria.where("charging_pile_code").is(query.getCharging_pile_code())
                .and("charging_gun_code").is(query.getCharging_gun_code()).and("create_time").lte(sdf.format(new Date())).gte(query.getEnd_time())), PlatformStopChargingReply.class);
        return platformStopChargingReplies.size() > 0 ? platformStopChargingReplies.get(0) : null;
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/SecurityDetectionServiceImpl.java
New file
@@ -0,0 +1,49 @@
package com.ruoyi.order.util.mongodb.service.impl;
import com.ruoyi.integration.api.model.SecurityDetection;
import com.ruoyi.order.util.mongodb.service.SecurityDetectionService;
import org.springframework.beans.factory.annotation.Autowired;
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;
/**
 * 心跳包应答实现类
 **/
@Service
public class SecurityDetectionServiceImpl implements SecurityDetectionService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(SecurityDetection securityDetection) {
        mongoTemplate.save(securityDetection);
        return 1;
    }
    @Override
    public SecurityDetection findById(String id) {
        return mongoTemplate.findById(id, SecurityDetection.class);
    }
    @Override
    public List<SecurityDetection> findAll() {
        return mongoTemplate.findAll(SecurityDetection.class);
    }
    /**
     * 根据业务流水号查询数据
     * @param transactionSerialNumber
     * @return
     */
    @Override
    public SecurityDetection getSecurityDetection(String transactionSerialNumber) {
        List<SecurityDetection> securityDetectionList = mongoTemplate.find(new Query().addCriteria(Criteria.where("transaction_serial_number")
                .is(transactionSerialNumber)), SecurityDetection.class);
        return securityDetectionList.size() > 0 ? securityDetectionList.get(0) : null;
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/TransactionRecordServiceImpl.java
New file
@@ -0,0 +1,51 @@
package com.ruoyi.order.util.mongodb.service.impl;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.model.TransactionRecord;
import com.ruoyi.order.util.mongodb.service.TransactionRecordService;
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;
@Service
public class TransactionRecordServiceImpl implements TransactionRecordService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(TransactionRecord transactionRecord) {
        mongoTemplate.save(transactionRecord);
        return 1;
    }
    @Override
    public TransactionRecord findById(String id) {
        return mongoTemplate.findById(id, TransactionRecord.class);
    }
    @Override
    public List<TransactionRecord> findAll() {
        return mongoTemplate.findAll(TransactionRecord.class);
    }
    /**
     * 根据订单流水号查询数据
     * @param code
     * @return
     */
    @Override
    public TransactionRecord findOne(String code) {
        Query query = new Query();
        if(StringUtils.isNotEmpty(code)){
            query.addCriteria(Criteria.where("transaction_serial_number").is(code));
        }
        List<TransactionRecord> transactionRecords = mongoTemplate.find(
                query.with(Sort.by(Sort.Order.desc("create_time")))
                , TransactionRecord.class);
        return transactionRecords.size() > 0 ? transactionRecords.get(0) : null;
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
New file
@@ -0,0 +1,174 @@
package com.ruoyi.order.util.mongodb.service.impl;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class UploadRealTimeMonitoringDataServiceImpl implements UploadRealTimeMonitoringDataService {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Override
    public int create(UploadRealTimeMonitoringData uploadRealTimeMonitoringData) {
        mongoTemplate.save(uploadRealTimeMonitoringData);
        return 1;
    }
    @Override
    public UploadRealTimeMonitoringData findById(String id) {
        return mongoTemplate.findById(id, UploadRealTimeMonitoringData.class);
    }
    @Override
    public List<UploadRealTimeMonitoringData> findAll() {
        return mongoTemplate.findAll(UploadRealTimeMonitoringData.class);
    }
    /**
     * 根据订单号查询监控数据
     * @param code
     * @return
     */
    @Override
    public List<UploadRealTimeMonitoringData> getDataByOrderCode(String code) {
        Query query = new Query();
        if(StringUtils.isNotEmpty(code)){
            query.addCriteria(Criteria.where("transaction_serial_number").is(code));
        }
        List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
                query.with(Sort.by(Sort.Order.desc("create_time")))
                , UploadRealTimeMonitoringData.class);
        return uploadRealTimeMonitoringData;
    }
    @Override
    public UploadRealTimeMonitoringPageData getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) throws ParseException {
        Query query = new Query();
//        if (!values.isEmpty()){
//            query.addCriteria(Criteria.where("transaction_serial_number").in(values));
//        }
        if (mongoChargingOrderQuery.getCode() != null && !mongoChargingOrderQuery.getCode().isEmpty()) {
            query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(),"i")); // "i" 表示不区分大小写
        }
        if (mongoChargingOrderQuery.getOrderType() !=null){
            query.addCriteria(Criteria.where("orderType").is(mongoChargingOrderQuery.getOrderType()));
        }
        if (mongoChargingOrderQuery.getSiteId() != null){
            query.addCriteria(Criteria.where("siteId").is(mongoChargingOrderQuery.getSiteId()));
        }
        if (!mongoChargingOrderQuery.getSiteIds().isEmpty()){
            query.addCriteria(Criteria.where("siteId").in(mongoChargingOrderQuery.getSiteIds()));
        }
        if (mongoChargingOrderQuery.getChargingPileCode() != null && !mongoChargingOrderQuery.getChargingPileCode().isEmpty()) {
            query.addCriteria(Criteria.where("charging_pile_code").is(mongoChargingOrderQuery.getChargingPileCode()));
        }
        if (mongoChargingOrderQuery.getChargingGunCode() != null && !mongoChargingOrderQuery.getChargingGunCode().isEmpty()){
            query.addCriteria(Criteria.where("charging_gun_code").is(mongoChargingOrderQuery.getChargingGunCode()));
        }
        if (mongoChargingOrderQuery.getStatus() != null){
            query.addCriteria(Criteria.where("status").is(mongoChargingOrderQuery.getStatus()));
        }
        if (mongoChargingOrderQuery.getCreateTime() != null) {
            String[] split = mongoChargingOrderQuery.getCreateTime().split(" - ");
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date start = dateFormat.parse(split[0]);
            Date end = dateFormat.parse(split[1]);
            query.addCriteria(Criteria.where("create_time").gte(start).lt(end));
        }
        if (mongoChargingOrderQuery.getLastTime() != null && mongoChargingOrderQuery.getLastTime() != null) {
            String[] split = mongoChargingOrderQuery.getLastTime().split(" - ");
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date start = dateFormat.parse(split[0]);
            Date end = dateFormat.parse(split[1]);
            query.addCriteria(Criteria.where("last_time").gte(start).lt(end));
        }
        long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class);
        // 创建带有排序的 Pageable 对象
        Pageable pageable = PageRequest.of(
                mongoChargingOrderQuery.getPageCurr()-1,
                mongoChargingOrderQuery.getPageSize(),
                Sort.by(Sort.Direction.DESC, "create_time")
        );
        // 设置分页和排序
        query.with(pageable);
        // 执行查询并获取 Page 对象
        List<UploadRealTimeMonitoringData> page = mongoTemplate.find(query, UploadRealTimeMonitoringData.class,"upload_real_time_monitoring_data");
        // 设置分页
//        Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageSize()*(mongoChargingOrderQuery.getPageCurr()-1), mongoChargingOrderQuery.getPageSize());
//        query.with(pageable);
//        query.with(Sort.by(Sort.Direction.DESC,"create_time"));
        List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
                query
                , UploadRealTimeMonitoringData.class);
        UploadRealTimeMonitoringPageData uploadRealTimeMonitoringPageData = new UploadRealTimeMonitoringPageData();
        uploadRealTimeMonitoringPageData.setCount(totalElements);
        uploadRealTimeMonitoringPageData.setRecords(page);
        return uploadRealTimeMonitoringPageData;
    }
    @Override
    public UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number) {
        Query query = new Query();
        if (StringUtils.isNotEmpty(transaction_serial_number)){
            query.addCriteria(Criteria.where("transaction_serial_number").is(transaction_serial_number));
        }
        // 按照 createdAt 字段降序排序
        query.with(Sort.by(Sort.Direction.DESC, "create_time"));
        // 限制结果只返回一条记录
        query.limit(1);
        return mongoTemplate.findOne(query, UploadRealTimeMonitoringData.class);
    }
    @Override
    public void delete(String id) {
        UploadRealTimeMonitoringData byId = findById(id.toString());
        mongoTemplate.remove(byId);
    }
    @Override
    public void updateById(String id) {
        // 创建查询条件
        Query query = new Query(Criteria.where("_id").is(id));
        // 创建更新对象
        Update update = new Update().set("last_time", new Date());
        // 执行更新操作
        mongoTemplate.updateFirst(query, update, UploadRealTimeMonitoringData.class);
    }
}