ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
New file @@ -0,0 +1,40 @@ package com.ruoyi.integration.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.util.List; /** * 充电桩服务降级处理 * * @author ruoyi */ @Component public class UploadRealTimeMonitoringDataFallbackFactory implements FallbackFactory<UploadRealTimeMonitoringDataClient> { private static final Logger log = LoggerFactory.getLogger(UploadRealTimeMonitoringDataFallbackFactory.class); @Override public UploadRealTimeMonitoringDataClient create(Throwable throwable) { log.error("调用充电桩实时监测数据失败:{}", throwable.getMessage()); return new UploadRealTimeMonitoringDataClient() { @Override public R<UploadRealTimeMonitoringData> chargingOrderInfo(String orderId) { return R.fail("查询充电桩实时监测数据失败:" + throwable.getMessage()); } @Override public R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(String code) { return R.fail("根据订单编号获取所有监测数据失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
New file @@ -0,0 +1,35 @@ package com.ruoyi.integration.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.factory.UploadRealTimeMonitoringDataFallbackFactory; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; /** * @author zhibing.pu * @Date 2024/8/26 18:20 */ @FeignClient(contextId = "UploadRealTimeMonitoringDataClient", value = ServiceNameConstants.INTEGRATION_SERVICE, fallbackFactory = UploadRealTimeMonitoringDataFallbackFactory.class) public interface UploadRealTimeMonitoringDataClient { /** * 通过订单编号获取充电桩实时监测数据 * @param orderId * @return */ @PostMapping("/uploadRealTimeMonitoringData/getOrderInfoByCode") R<UploadRealTimeMonitoringData> chargingOrderInfo(String orderId); /** * 根据订单编号获取所有监测数据 * @param code * @return */ @PostMapping("/uploadRealTimeMonitoringData/getDataByOrderCode") R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(@RequestParam("code") String code); } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/AcquisitionBillingMode.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "acquisition_billing_mode") //指定要对应的文档名(表名) @Accessors(chain = true) public class AcquisitionBillingMode { public class AcquisitionBillingMode extends BaseModel { private String charging_pile_code;// 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/AcquisitionBillingModeReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "acquisition_billing_mode_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class AcquisitionBillingModeReply { public class AcquisitionBillingModeReply extends BaseModel { private String charging_pile_code;// 桩编码 private String billing_model_code;// "计费模型编号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java
New file @@ -0,0 +1,15 @@ package com.ruoyi.integration.api.model; import lombok.Data; import java.util.Date; /** * @author zhibing.pu * @Date 2024/8/26 19:05 */ @Data public class BaseModel { private Date create_time = new Date(); } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BillingModeVerify.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "billing_mode_verify") //指定要对应的文档名(表名) @Accessors(chain = true) public class BillingModeVerify { public class BillingModeVerify extends BaseModel { private String charging_pile_code;// 桩编码 private String billing_model_code;// "计费模型编号,首次连接到平台时置零 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BillingModeVerifyReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "billing_mode_verify_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class BillingModeVerifyReply { public class BillingModeVerifyReply extends BaseModel { private String charging_pile_code; // 桩编 private String billing_model_code; // 计费模型编 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BmsAbort.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "bms_abort") //指定要对应的文档名(表名) @Accessors(chain = true) public class BmsAbort { public class BmsAbort extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BmsDemandAndChargerExportation.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "bms_demand_and_charger_exportation") //指定要对应的文档名(表名) @Accessors(chain = true) public class BmsDemandAndChargerExportation { public class BmsDemandAndChargerExportation extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BmsInformation.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "bms_information") //指定要对应的文档名(表名) @Accessors(chain = true) public class BmsInformation { public class BmsInformation extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingHandshake.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "charging_handshake") //指定要对应的文档名(表名) @Accessors(chain = true) public class ChargingHandshake { public class ChargingHandshake extends BaseModel { private String transaction_serial_number;// 交易流水号 private String charging_pile_code;// 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingPileReturnsGroundLockData.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "charging_pile_returns_ground_lock_data") //指定要对应的文档名(表名) @Accessors(chain = true) public class ChargingPileReturnsGroundLockData { public class ChargingPileReturnsGroundLockData extends BaseModel { private String charging_pile_code; //桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingPileStartsCharging.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "charging_pile_starts_charging") //指定要对应的文档名(表名) @Accessors(chain = true) public class ChargingPileStartsCharging { public class ChargingPileStartsCharging extends BaseModel { private String charging_pile_code; // 桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ClearOfflineCard.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "clear_offline_card") //指定要对应的文档名(表名) @Accessors(chain = true) public class ClearOfflineCard { public class ClearOfflineCard extends BaseModel { private String charging_pile_code; //桩编码 private Integer physical_card_number; // 清除离线卡的个数,最大 24 个 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ClearOfflineCardReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "clear_offline_card_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class ClearOfflineCardReply { public class ClearOfflineCardReply extends BaseModel { private String charging_pile_code; //桩编码 private String physical_card1; // 第 1 个卡物理卡号,离线卡物理卡号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ConfirmTransactionRecord.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "confirm_transaction_record") //指定要对应的文档名(表名) @Accessors(chain = true) public class ConfirmTransactionRecord { public class ConfirmTransactionRecord extends BaseModel { private String transaction_serial_number;// 桩编码 private Integer confirm_result;// 确认结果(0:上传成功,1:非法账单) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/EndCharge.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "end_charge") //指定要对应的文档名(表名) @Accessors(chain = true) public class EndCharge { public class EndCharge extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ErrorMessage.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "error_message") //指定要对应的文档名(表名) @Accessors(chain = true) public class ErrorMessage { public class ErrorMessage extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/GroundLockRealTimeData.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "ground_lock_real_time_data") //指定要对应的文档名(表名) @Accessors(chain = true) public class GroundLockRealTimeData { public class GroundLockRealTimeData extends BaseModel { private String charging_pile_code; //桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/MotorAbort.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "motor_abort") //指定要对应的文档名(表名) @Accessors(chain = true) public class MotorAbort { public class MotorAbort extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Online.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "online") //指定要对应的文档名(表名) @Accessors(chain = true) public class Online { public class Online extends BaseModel { private String charging_pile_code;// 充电桩编号 private Integer charging_pile_type;// 充电桩类型(0 表示直流桩,1 表示交流桩) private Integer charging_gun_number;// 充电枪数量 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/OnlineReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "online_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class OnlineReply { public class OnlineReply extends BaseModel { private String charging_pile_code;// 桩编码 private Integer online_result;// 登陆结果(0:成功,1:失败) } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/OpenOrCloseGroundLock.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "open_or_close_ground_lock") //指定要对应的文档名(表名) @Accessors(chain = true) public class OpenOrCloseGroundLock { public class OpenOrCloseGroundLock extends BaseModel { private String charging_pile_code; //桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ParameterSetting.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "parameter_setting") //指定要对应的文档名(表名) @Accessors(chain = true) public class ParameterSetting { public class ParameterSetting extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "ping") //指定要对应的文档名(表名) @Accessors(chain = true) public class Ping { public class Ping extends BaseModel { private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformConfirmationCharging.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "platform_confirmation_charging") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformConfirmationCharging { public class PlatformConfirmationCharging extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformRemoteUpdate.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_remote_update") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformRemoteUpdate { public class PlatformRemoteUpdate extends BaseModel { private String charging_pile_code; //桩编码 private Integer charging_pile_type; // 桩型号(1:直流,2:交流) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformRemoteUpdateReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_remote_update_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformRemoteUpdateReply { public class PlatformRemoteUpdateReply extends BaseModel { private String charging_pile_code; //桩编码 private Integer escalation_state; // 升级状态(0:成功,1:编码错误,2:程序与桩型号不符,3:下载更新文件超时) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformRestart.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_restart") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformRestart { public class PlatformRestart extends BaseModel { private String charging_pile_code; //桩编码 private Integer operate; // 执行控制 (1:立即执行,2:空闲执行) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformRestartReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_restart_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformRestartReply { public class PlatformRestartReply extends BaseModel { private String charging_pile_code; //桩编码 private Integer set_result; // 设置结果(0:失败,1:成功) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStartCharging.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "platform_start_charging") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformStartCharging { public class PlatformStartCharging extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStartChargingReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "platform_start_charging_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformStartChargingReply { public class PlatformStartChargingReply extends BaseModel { private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStopCharging.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "platform_stop_charging") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformStopCharging { public class PlatformStopCharging extends BaseModel { private String charging_pile_code; // 桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/PlatformStopChargingReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "platform_stop_charging_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class PlatformStopChargingReply { public class PlatformStopChargingReply extends BaseModel { private String charging_pile_code; // 桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "pong") //指定要对应的文档名(表名) @Accessors(chain = true) public class Pong { public class Pong extends BaseModel { private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/QueryOfflineCard.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "query_offline_card") //指定要对应的文档名(表名) @Accessors(chain = true) public class QueryOfflineCard { public class QueryOfflineCard extends BaseModel { private String charging_pile_code; //桩编码 private Integer physical_card_number; //桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/QueryOfflineCardReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "query_offline_card_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class QueryOfflineCardReply { public class QueryOfflineCardReply extends BaseModel { private String charging_pile_code; //桩编码 private String physical_card1; // 第 1 个卡物理卡号,离线卡物理卡号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ReadRealTimeMonitoringData.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "read_real_time_monitoring_data") //指定要对应的文档名(表名) @Accessors(chain = true) public class ReadRealTimeMonitoringData { public class ReadRealTimeMonitoringData extends BaseModel { private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/SetupBillingModel.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "setup_billing_model") //指定要对应的文档名(表名) @Accessors(chain = true) public class SetupBillingModel { public class SetupBillingModel extends BaseModel { private String charging_pile_code; //桩编码 private String billing_model_code; // 计费模型编号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/SetupBillingModelReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "setup_billing_model_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class SetupBillingModelReply { public class SetupBillingModelReply extends BaseModel { private String charging_pile_code; //桩编码 private String set_result; //设置结果(0:失败,1:成功) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/SynchronizeOfflineCard.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "synchronize_offline_card") //指定要对应的文档名(表名) @Accessors(chain = true) public class SynchronizeOfflineCard { public class SynchronizeOfflineCard extends BaseModel { private String charging_pile_code; //桩编码 private Integer card_number; // 下发卡个数 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/SynchronizeOfflineCardReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "synchronize_offline_card_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class SynchronizeOfflineCardReply { public class SynchronizeOfflineCardReply extends BaseModel { private String charging_pile_code; //桩编码 private Integer save_result; // 保存结果(0:失败,1:成功) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/TimingSetting.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "timing_setting") //指定要对应的文档名(表名) @Accessors(chain = true) public class TimingSetting { public class TimingSetting extends BaseModel { private String charging_pile_code; //桩编码 private String current_time; //当前时间 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/TimingSettingReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "timing_setting_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class TimingSettingReply { public class TimingSettingReply extends BaseModel { private String charging_pile_code; //桩编码 private String current_time; //当前时间 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/TransactionRecord.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "transaction_record") //指定要对应的文档名(表名) @Accessors(chain = true) public class TransactionRecord { public class TransactionRecord extends BaseModel { private String transaction_serial_number;// 交易流水号 private String charging_pile_code;// 桩编码 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UpdateBalance.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "update_balance") //指定要对应的文档名(表名) @Accessors(chain = true) public class UpdateBalance { public class UpdateBalance extends BaseModel { private String charging_pile_code;// 桩编码 private String charging_gun_code;// 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UpdateBalanceReply.java
@@ -13,7 +13,7 @@ @Data @Document(collection = "update_balance_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class UpdateBalanceReply { public class UpdateBalanceReply extends BaseModel { private String charging_pile_code; //桩编码 private String physical_card_number; //物理卡号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
@@ -2,6 +2,7 @@ import lombok.Data; import lombok.experimental.Accessors; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import java.math.BigDecimal; @@ -13,8 +14,9 @@ @Data @Document(collection = "upload_real_time_monitoring_data") //指定要对应的文档名(表名) @Accessors(chain = true) public class UploadRealTimeMonitoringData { public class UploadRealTimeMonitoringData extends BaseModel { @Id private String transaction_serial_number; // 交易流水号 private String charging_pile_code; // 桩编码 private String charging_gun_code; // 抢号 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/WorkingParameterSetting.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "working_parameter_setting") //指定要对应的文档名(表名) @Accessors(chain = true) public class WorkingParameterSetting { public class WorkingParameterSetting extends BaseModel { private String charging_pile_code; //桩编码 private Integer allow_work;// 是否允许工作(0:表示允许正常工作,1:表示停止使用,锁定充电桩) ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/WorkingParameterSettingReply.java
@@ -11,7 +11,7 @@ @Data @Document(collection = "working_parameter_setting_reply") //指定要对应的文档名(表名) @Accessors(chain = true) public class WorkingParameterSettingReply { public class WorkingParameterSettingReply extends BaseModel { private String charging_pile_code; //桩编码 private Integer set_result; //设置结果(0:失败,1:成功) ruoyi-api/ruoyi-api-integration/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1 +1,2 @@ com.ruoyi.integration.api.factory.IntegrationFallbackFactory com.ruoyi.integration.api.factory.UploadRealTimeMonitoringDataFallbackFactory ruoyi-service/ruoyi-chargingPile/pom.xml
@@ -131,6 +131,10 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-order</artifactId> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-integration</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -27,6 +27,8 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.model.TChargingOrder; @@ -81,6 +83,9 @@ @Resource private AppUserCarClient appUserCarClient; @Resource private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; @@ -404,7 +409,7 @@ }else{ siteIds.add(query.getSiteId()); } // todo 待完善 if(null != query.getStatus() && 0 < query.getStatus().size()){ if(query.getStatus().contains(3)){ query.getStatus().add(6); @@ -427,8 +432,58 @@ TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(appUserCarId)).getData().get(0); gunMonitoring.setLicensePlate(tAppUserCar.getLicensePlate()); } UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData(); gunMonitoring.setChargingRatio(BigDecimal.valueOf(data.getSoc())); gunMonitoring.setElectricQuantity(data.getCharging_degree().toString()); gunMonitoring.setSoc(data.getSoc().toString()); gunMonitoring.setElectricCurrent(data.getOutput_current().toString()); gunMonitoring.setVoltage(data.getOutput_voltage().toString()); switch (data.getHardware_fault()){ case 1: gunMonitoring.setFaultCause("急停按钮动作故障"); break; case 2: gunMonitoring.setFaultCause("无可用整流模块"); break; case 3: gunMonitoring.setFaultCause("出风口温度过高"); break; case 4: gunMonitoring.setFaultCause("交流防雷故障"); break; case 5: gunMonitoring.setFaultCause("交直流模块 DC20 通信中断"); break; case 6: gunMonitoring.setFaultCause("绝缘检测模块 FC08 通信中断"); break; case 7: gunMonitoring.setFaultCause("电度表通信中断"); break; case 8: gunMonitoring.setFaultCause("读卡器通信中断"); break; case 9: gunMonitoring.setFaultCause("RC10 通信中断"); break; case 10: gunMonitoring.setFaultCause("风扇调速板故障"); break; case 11: gunMonitoring.setFaultCause("直流熔断器故障"); break; case 12: gunMonitoring.setFaultCause("高压接触器故障"); break; case 13: gunMonitoring.setFaultCause("门打开"); break; } } } return pageInfo.setRecords(chargingGunMonitoring); } } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/ChargingOrderController.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
New file @@ -0,0 +1,58 @@ package com.ruoyi.integration.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * 前端控制器 * </p> * * @author xiaochen * @since 2024-08-07 */ @RestController @RequestMapping("/uploadRealTimeMonitoringData") public class UploadRealTimeMonitoringDataController { @Resource private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService; /** * 远程调用 通过订单流水号 查询订单详情 * @param orderId * @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(dataByOrderCode.size() - 1); return R.ok(uploadRealTimeMonitoringData); } return R.ok(); } /** * 根据订单编号获取所有监测数据 * @param code * @return */ @PostMapping(value = "/getDataByOrderCode") public R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(@RequestParam("code") String code){ List<UploadRealTimeMonitoringData> list = uploadRealTimeMonitoringDataService.getDataByOrderCode(code); return R.ok(list); } } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
@@ -4,5 +4,15 @@ import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.mongodb.base.BaseService; import java.util.List; public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> { /** * 根据订单号查询监控数据 * @param code * @return */ List<UploadRealTimeMonitoringData> getDataByOrderCode(String code); } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
@@ -1,11 +1,15 @@ package com.ruoyi.integration.mongodb.service.impl; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.iotda.constant.IotConstant; import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; 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; @@ -32,4 +36,21 @@ 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("create_time")) , UploadRealTimeMonitoringData.class); return uploadRealTimeMonitoringData; } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java
@@ -51,9 +51,9 @@ @ApiModelProperty("阶段费用明细") private List<TChargingOrderAccountingStrategy> stageCost; @ApiModelProperty("电流电压曲线") private Map<String, Object> currentAndVoltage; private List<Map<String, Object>> currentAndVoltage; @ApiModelProperty("功率曲线") private Map<String, Object> power; private List<Map<String, Object>> power; @ApiModelProperty("是否可申诉(0=否,1=是)") private Integer actionable; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -21,6 +21,8 @@ import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; import com.ruoyi.order.api.query.ChargingOrderQuery; @@ -47,6 +49,7 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; /** * <p> @@ -91,6 +94,13 @@ @Resource private RedisService redisService; @Resource private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; /** * 获取小程序充电记录列表数据 @@ -164,11 +174,39 @@ .orderByAsc(TChargingOrderAccountingStrategy::getStartTime) ); myChargingOrderInfo.setStageCost(stageCost); // todo 待完善 //再MongoDB中获取数据 myChargingOrderInfo.setCurrentAndVoltage(null); //再MongoDB中获取数据 myChargingOrderInfo.setPower(null); List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData(); if(null != dataList){ //在MongoDB中获取数据 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); List<String> time = dataList.stream().map(s -> sdf.format(s.getCreate_time())).collect(Collectors.toList()); List<BigDecimal> outputVoltage = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_voltage).collect(Collectors.toList()); List<BigDecimal> outputCurrent = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_current).collect(Collectors.toList()); List<Map<String, Object>> currentAndVoltage = new ArrayList<>(); for (int i = 0; i < time.size(); i++) { Map<String, Object> map = new HashMap<>(); map.put("time", time.get(i)); //电流 map.put("electricity", outputCurrent.get(i)); //电压 map.put("voltage", outputVoltage.get(i)); currentAndVoltage.add(map); } myChargingOrderInfo.setCurrentAndVoltage(currentAndVoltage); //在MongoDB中获取数据 List<Integer> soc = dataList.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList()); List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000))).collect(Collectors.toList()); List<Map<String, Object>> power = new ArrayList<>(); for (int i = 0; i < time.size(); i++) { Map<String, Object> map = new HashMap<>(); map.put("time", time.get(i)); //soc map.put("soc", soc.get(i)); //电压 map.put("power", po.get(i)); power.add(map); } myChargingOrderInfo.setPower(power); } myChargingOrderInfo.setActionable(myChargingOrderInfo.getEndTime() + 604800000L > System.currentTimeMillis() ? 0 : 1); return myChargingOrderInfo; }