ruoyi-api/pom.xml
@@ -16,6 +16,7 @@ <module>ruoyi-api-order</module> <module>ruoyi-api-other</module> <module>ruoyi-api-payment</module> <module>ruoyi-api-jianguan</module> </modules> <artifactId>ruoyi-api</artifactId> ruoyi-api/ruoyi-api-jianguan/pom.xml
New file @@ -0,0 +1,37 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api</artifactId> <version>3.6.2</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ruoyi-api-jianguan</artifactId> <description> ruoyi-api-jianguan监管对接接口模块 </description> <dependencies> <!--mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <!-- RuoYi Common Core--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common-core</artifactId> <exclusions> <exclusion> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </project> ruoyi-api/ruoyi-api-jianguan/src/main/java/com/ruoyi/integration/api/factory/ChargingMessageClientFallbackFactory.java
New file @@ -0,0 +1,28 @@ package com.ruoyi.integration.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.feignClient.ChargingMessageClient; import com.ruoyi.integration.api.vo.ChargingOrderVo; import org.springframework.cloud.openfeign.FallbackFactory; /** * @author zhibing.pu * @Date 2025/7/12 10:17 */ public class ChargingMessageClientFallbackFactory implements FallbackFactory<ChargingMessageClient> { @Override public ChargingMessageClient create(Throwable cause) { return new ChargingMessageClient(){ @Override public R pushOrderInfo(ChargingOrderVo chargingOrder) { return R.fail("推送充电订单信息失败:" + cause.getMessage()); } @Override public R pushOrderStatus(ChargingOrderVo chargingOrder) { return R.fail("推送充电订单状态失败:" + cause.getMessage()); } }; } } ruoyi-api/ruoyi-api-jianguan/src/main/java/com/ruoyi/integration/api/feignClient/ChargingMessageClient.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.ChargingMessageClientFallbackFactory; import com.ruoyi.integration.api.vo.ChargingOrderVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; /** * @author zhibing.pu * @Date 2025/7/12 10:17 */ @FeignClient(contextId = "ChargingMessageClient", value = ServiceNameConstants.JIANGUAN_SERVICE, fallbackFactory = ChargingMessageClientFallbackFactory.class) public interface ChargingMessageClient { /** * 推送充电订单信息 * @param chargingOrder * @return */ @PostMapping("/chargingMessage/pushOrderInfo") R pushOrderInfo(@RequestBody ChargingOrderVo chargingOrder); /** * 推送充电订单状态 * @param chargingOrder * @return */ @PostMapping("/chargingMessage/pushOrderInfo") R pushOrderStatus(@RequestBody ChargingOrderVo chargingOrder); } ruoyi-api/ruoyi-api-jianguan/src/main/java/com/ruoyi/integration/api/vo/ChargingOrderVo.java
New file @@ -0,0 +1,127 @@ package com.ruoyi.integration.api.vo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.web.domain.BasePojo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; /** * @author zhibing.pu * @Date 2025/7/12 10:20 */ @Data public class ChargingOrderVo extends BasePojo { @ApiModelProperty(value = "主键") private Long id; @ApiModelProperty(value = "订单编号") private String code; @ApiModelProperty(value = "订单类型(1=充电订单(小程序),2=充电订单(刷卡))") private Integer orderType; @ApiModelProperty(value = "订单来源(1=自己平台,2=三方平台)") private Integer orderSource; @ApiModelProperty(value = "运营商id") private Integer operatorId; @ApiModelProperty(value = "三方平台名称") private String tripartitePlatformName; @ApiModelProperty(value = "三方平台充电订单号") private String startChargeSeq; @ApiModelProperty(value = "平台或其他第三分名字") private String sourceName; @ApiModelProperty(value = "手续费") private BigDecimal commissionAmount; @ApiModelProperty(value = "分佣") private BigDecimal sharingAmount; @ApiModelProperty(value = "订单分类(1=线上,2=线下)") private Integer orderClassification; @ApiModelProperty(value = "用户id") private Long appUserId; @ApiModelProperty(value = "充电车辆 id") private Long appUserCarId; @ApiModelProperty(value = "充电车辆车牌号") private String plateNum; @ApiModelProperty(value = "站点 id") private Integer siteId; @ApiModelProperty(value = "停车场id") private Integer parkingLotId; @ApiModelProperty(value = "充电桩id") private Integer chargingPileId; @ApiModelProperty(value = "充电枪id") private Integer chargingGunId; @ApiModelProperty(value = "充电总度数") private BigDecimal chargingCapacity; @ApiModelProperty(value = "充电功率") private BigDecimal chargingPower; @ApiModelProperty(value = "充电开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime startTime; @ApiModelProperty(value = "充电结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime endTime; @ApiModelProperty(value = "状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)") private Integer status; @ApiModelProperty(value = "结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)") private Integer endMode; @ApiModelProperty(value = "充值金额") private BigDecimal rechargeAmount; @ApiModelProperty(value = "充值支付方式(1=微信,2=支付宝)") private Integer rechargePaymentType; @ApiModelProperty(value = "充值支付状态(1=待支付,2=已支付)") private Integer rechargePaymentStatus; @ApiModelProperty(value = "充值支付第三方流水号") private String rechargeSerialNumber; @ApiModelProperty(value = "充电金额(传给硬件方的金额)") private BigDecimal chargeAmount; @ApiModelProperty(value = "剩余金额(用于前端展示)") private BigDecimal residualAmount; @ApiModelProperty(value = "订单金额(总金额)") private BigDecimal orderAmount; @ApiModelProperty(value = "优惠券id") private Long appCouponId; @ApiModelProperty(value = "优惠券抵扣金额") private BigDecimal couponDiscountAmount; @ApiModelProperty(value = "会员折扣") private BigDecimal vipDiscount; @ApiModelProperty(value = "会员优惠金额") private BigDecimal vipDiscountAmount; @ApiModelProperty(value = "支付金额(实付)") private BigDecimal paymentAmount; @ApiModelProperty(value = "退款流水号") private String refundCode; @ApiModelProperty(value = "标题") private String title; @ApiModelProperty(value = "退款金额") private BigDecimal refundAmount; @ApiModelProperty(value = "累计服务费") private BigDecimal serviceCharge; @ApiModelProperty(value = "累计电费") private BigDecimal electrovalence; @ApiModelProperty(value = "电流") private BigDecimal current; @ApiModelProperty(value = "电压") private BigDecimal voltage; @ApiModelProperty(value = "电量") private BigDecimal electricity; @ApiModelProperty(value = "功率") private BigDecimal power; @ApiModelProperty(value = "退款状态(1=退款中,2=退款成功)") private Integer refundStatus; @ApiModelProperty(value = "退款第三方流水号") private String refundSerialNumber; @ApiModelProperty(value = "退款成功时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime refundTime; @ApiModelProperty(value = "总电量") @TableField("total_electricity") private BigDecimal totalElectricity; @ApiModelProperty(value = "支付时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime payTime; @ApiModelProperty(value = "实时需求电流") private BigDecimal needElec; } ruoyi-api/ruoyi-api-jianguan/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
New file @@ -0,0 +1 @@ com.ruoyi.integration.api.factory.ChargingMessageClientFallbackFactory ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -326,4 +326,6 @@ @GetMapping("/t-charging-order/getSumDegreeBySiteIds") R<BigDecimal> getSumDegreeBySiteIds(@RequestParam("siteIds") List<Integer> SiteIds); } ruoyi-service/ruoyi-integration/pom.xml
@@ -116,12 +116,6 @@ <scope>test</scope> </dependency> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.3.0</version> </dependency> <!--mongodb--> <dependency> <groupId>org.springframework.boot</groupId> ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/AcquisitionBillingModeMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/AcquisitionBillingModeMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/BaseMessage.java
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/base/BaseMessage.java @@ -1,4 +1,4 @@ package com.ruoyi.integration.rocket.base; package com.ruoyi.integration.iotda.model; import lombok.Data; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/BillingModeVerifyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/BillingModeVerifyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/BmsAbortMessage.java
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BmsAbortMessage.java @@ -1,9 +1,6 @@ package com.ruoyi.integration.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.integration.rocket.base.BaseMessage; import lombok.Data; import lombok.experimental.Accessors; import org.springframework.data.mongodb.core.mapping.Document; /** * 充电阶段BMS中止 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/BmsDemandAndChargerExportationMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/BmsDemandAndChargerExportationMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; import java.math.BigDecimal; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/BmsInformationMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/BmsInformationMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/ChargingHandshakeMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/ChargingHandshakeMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; import java.math.BigDecimal; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/ChargingMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/ChargingMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; @Data ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/ChargingOrderMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/base/ChargingOrderMessage.java @@ -1,4 +1,4 @@ package com.ruoyi.jianguan.rocket.base; package com.ruoyi.integration.iotda.model; import lombok.Data; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/ChargingPileReturnsGroundLockDataMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/ChargingPileReturnsGroundLockDataMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/ChargingPileStartsChargingMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/ChargingPileStartsChargingMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/ClearOfflineCardReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/ClearOfflineCardReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/EndChargeMessage.java
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/EndChargeMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.integration.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.integration.rocket.base.BaseMessage; import lombok.Data; import java.math.BigDecimal; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/ErrorMessageMessage.java
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ErrorMessageMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.integration.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.integration.rocket.base.BaseMessage; import lombok.Data; @Data ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/GroundLockRealTimeDataMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/GroundLockRealTimeDataMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/GunStatusMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/base/GunStatusMessage.java @@ -1,4 +1,4 @@ package com.ruoyi.jianguan.rocket.base; package com.ruoyi.integration.iotda.model; import lombok.Data; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/MotorAbortMessage.java
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/MotorAbortMessage.java @@ -1,9 +1,6 @@ package com.ruoyi.integration.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.integration.rocket.base.BaseMessage; import lombok.Data; import lombok.experimental.Accessors; import org.springframework.data.mongodb.core.mapping.Document; /** * 充电阶段充电机中止 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/OnlineMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/OnlineMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/ParameterSettingMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/ParameterSettingMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; import java.math.BigDecimal; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/PingMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/PingMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/PlatformRemoteUpdateReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/PlatformRemoteUpdateReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/PlatformRestartReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/PlatformRestartReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/PlatformStartChargingReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/PlatformStartChargingReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/PlatformStopChargingReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/PlatformStopChargingReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/QrCodeDeliveryMessage.java
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/QrCodeDeliveryMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.integration.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.integration.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/QrCodeDeliveryReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/QrCodeDeliveryReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/QueryOfflineCardReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/QueryOfflineCardReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/SecurityDetectionMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/SecurityDetectionMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/SetupBillingModelReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/SetupBillingModelReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/SynchronizeOfflineCardReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/SynchronizeOfflineCardReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/TimingSettingMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/TimingSettingMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/TimingSettingReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/TimingSettingReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/TransactionRecordMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/TransactionRecordMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; import java.math.BigDecimal; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/UpdateBalanceReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/UpdateBalanceReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; import java.math.BigDecimal; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/UploadRealTimeMonitoringDataMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/UploadRealTimeMonitoringDataMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; import java.math.BigDecimal; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/model/WorkingParameterSettingReplyMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/WorkingParameterSettingReplyMessage.java @@ -1,6 +1,5 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.integration.iotda.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -12,25 +12,20 @@ import com.ruoyi.integration.api.model.*; import com.ruoyi.integration.iotda.constant.SendTagConstant; import com.ruoyi.integration.iotda.enums.ServiceIdMenu; import com.ruoyi.integration.iotda.model.*; import com.ruoyi.integration.iotda.utils.produce.IotMessageProduce; import com.ruoyi.integration.iotda.utils.tools.CP56Time2aConverter; import com.ruoyi.integration.iotda.utils.tools.MessageUtil; import com.ruoyi.integration.iotda.utils.tools.StrategyUtil; import com.ruoyi.integration.rocket.model.*; import com.ruoyi.integration.rocket.produce.ChargingMessageUtil; import com.ruoyi.integration.rocket.produce.EnhanceProduce; import com.ruoyi.integration.iotda.utils.tools.ChargingMessageUtil; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.producer.SendResult; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.math.BigDecimal; import java.util.*; @@ -44,8 +39,6 @@ @RequestMapping("/iot") public class IotMessageListener { @Autowired private EnhanceProduce enhanceProduce; @Autowired private MessageUtil messageUtil; @Autowired @@ -93,7 +86,6 @@ String productId = header.getString("product_id"); // 产品id String service_id = content.getString("service_id"); log.info("服务id:{}",service_id); SendResult sendResult = null; ChargingMessage chargingMessage = new ChargingMessage(); chargingMessage.setServiceId(service_id); // 设备消息下发 @@ -101,9 +93,6 @@ switch (service_id){ case SendTagConstant.ONLINE: OnlineMessage onlineMessage = JSON.parseObject(content.toJSONString(),OnlineMessage.class); //走rocketmq // sendResult = enhanceProduce.onlineMessage(onlineMessage); //直连 chargingMessage.setOnlineMessage(onlineMessage); chargingMessageUtil.handleMessage(chargingMessage); // 响应硬件 @@ -123,6 +112,7 @@ PingMessage pingMessage = JSON.parseObject(content.toJSONString(),PingMessage.class); //存储缓存中,5分钟有效 redisTemplate.opsForValue().set("ping:" + pingMessage.getCharging_pile_code() + pingMessage.getCharging_gun_code(), pingMessage, 5, TimeUnit.MINUTES); // 响应硬件 Pong pong = new Pong(); pong.setCharging_pile_code(pingMessage.getCharging_pile_code()); @@ -135,36 +125,19 @@ vo1.setPile_code(pingMessage.getCharging_pile_code()); vo1.setStatus(pingMessage.getCharging_gun_status()); chargingPileClient.updateChargingPileStatus(vo1); // 监管平台推送充电设备状态 String gunCode = pingMessage.getCharging_pile_code() + pingMessage.getCharging_gun_code(); ChargingMessage chargingMessage1 = new ChargingMessage(); chargingMessage1.setServiceId(SendTagConstant.GUN_STATUS); GunStatusMessage gunStatusMessage = new GunStatusMessage(); gunStatusMessage.setFullNumber(gunCode); chargingMessage1.setGunStatusMessage(gunStatusMessage); sendResult = enhanceProduce.gunStatusMessage(chargingMessage1); break; case SendTagConstant.END_CHARGE: EndChargeMessage endChargeMessage = JSON.parseObject(content.toJSONString(),EndChargeMessage.class); //走rocketmq // sendResult = enhanceProduce.endChargeMessage(endChargeMessage); //直连 chargingMessage.setEndChargeMessage(endChargeMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.ERROR_MESSAGE: ErrorMessageMessage errorMessageMessage = JSON.parseObject(content.toJSONString(),ErrorMessageMessage.class); //走rocketmq // sendResult = enhanceProduce.errorMessageMessage(errorMessageMessage); //直连 chargingMessage.setErrorMessageMessage(errorMessageMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.BILLING_MODE_VERIFY: BillingModeVerifyMessage billingModeVerifyMessage = JSON.parseObject(content.toJSONString(),BillingModeVerifyMessage.class); //走rocketmq // sendResult = enhanceProduce.billingModeVerifyMessage(billingModeVerifyMessage); //直连 chargingMessage.setBillingModeVerifyMessage(billingModeVerifyMessage); chargingMessageUtil.handleMessage(chargingMessage); // 响应硬件 @@ -193,9 +166,6 @@ break; case SendTagConstant.ACQUISITION_BILLING_MODE: AcquisitionBillingModeMessage acquisitionBillingModeMessage = JSON.parseObject(content.toJSONString(),AcquisitionBillingModeMessage.class); //走rocketmq // sendResult = enhanceProduce.acquisitionBillingModeMessage(acquisitionBillingModeMessage); //直连 chargingMessage.setAcquisitionBillingModeMessage(acquisitionBillingModeMessage); chargingMessageUtil.handleMessage(chargingMessage); // 响应硬件 计费模型请求应答 1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段 @@ -215,65 +185,41 @@ case SendTagConstant.UPLOAD_REAL_TIME_MONITORING_DATA: log.info("充电实时数据上传"); UploadRealTimeMonitoringDataMessage uploadRealTimeMonitoringDataMessage = JSON.parseObject(content.toJSONString(),UploadRealTimeMonitoringDataMessage.class); //走rocketmq // sendResult = enhanceProduce.uploadRealTimeMonitoringDataMessage(uploadRealTimeMonitoringDataMessage); //直连 chargingMessage.setUploadRealTimeMonitoringDataMessage(uploadRealTimeMonitoringDataMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.CHARGING_HANDSHAKE: ChargingHandshakeMessage chargingHandshakeMessage = JSON.parseObject(content.toJSONString(),ChargingHandshakeMessage.class); //走rocketmq // sendResult = enhanceProduce.chargingHandshakeMessage(chargingHandshakeMessage); //直连 chargingMessage.setChargingHandshakeMessage(chargingHandshakeMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.PARAMETER_SETTING: ParameterSettingMessage parameterSettingMessage = JSON.parseObject(content.toJSONString(),ParameterSettingMessage.class); //走rocketmq // sendResult = enhanceProduce.parameterSettingMessage(parameterSettingMessage); //直连 chargingMessage.setParameterSettingMessage(parameterSettingMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.BMS_ABORT: BmsAbortMessage bmsAbortMessage = JSON.parseObject(content.toJSONString(),BmsAbortMessage.class); //走rocketmq // sendResult = enhanceProduce.bmsAbortMessage(bmsAbortMessage); //直连 chargingMessage.setBmsAbortMessage(bmsAbortMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.MOTOR_ABORT: MotorAbortMessage motorAbortMessage = JSON.parseObject(content.toJSONString(),MotorAbortMessage.class); //走rocketmq // sendResult = enhanceProduce.motorAbortMessage(motorAbortMessage); //直连 chargingMessage.setMotorAbortMessage(motorAbortMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.BMS_DEMAND_AND_CHARGER_EXPORTATION: BmsDemandAndChargerExportationMessage bmsDemandAndChargerExportationMessage = JSON.parseObject(content.toJSONString(),BmsDemandAndChargerExportationMessage.class); //走rocketmq // sendResult = enhanceProduce.bmsDemandAndChargerExportationMessage(bmsDemandAndChargerExportationMessage); //直连 chargingMessage.setBmsDemandAndChargerExportationMessage(bmsDemandAndChargerExportationMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.BMS_INFORMATION: BmsInformationMessage bmsInformationMessage = JSON.parseObject(content.toJSONString(),BmsInformationMessage.class); //走rocketmq // sendResult = enhanceProduce.bmsInformationMessage(bmsInformationMessage); //直连 chargingMessage.setBmsInformationMessage(bmsInformationMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.CHARGING_PILE_STARTS_CHARGING: ChargingPileStartsChargingMessage chargingPileStartsChargingMessage = JSON.parseObject(content.toJSONString(),ChargingPileStartsChargingMessage.class); //走rocketmq // sendResult = enhanceProduce.chargingPileStartsChargingMessage(chargingPileStartsChargingMessage); //直连 chargingMessage.setChargingPileStartsChargingMessage(chargingPileStartsChargingMessage); chargingMessageUtil.handleMessage(chargingMessage); // 响应硬件 @@ -288,26 +234,17 @@ break; case SendTagConstant.PLATFORM_START_CHARGING_REPLY: PlatformStartChargingReplyMessage platformStartChargingReplyMessage = JSON.parseObject(content.toJSONString(),PlatformStartChargingReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.platformStartChargingReplyMessage(platformStartChargingReplyMessage); //直连 chargingMessage.setPlatformStartChargingReplyMessage(platformStartChargingReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.PLATFORM_STOP_CHARGING_REPLY: PlatformStopChargingReplyMessage platformStopChargingReplyMessage = JSON.parseObject(content.toJSONString(),PlatformStopChargingReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.platformStopChargingReplyMessage(platformStopChargingReplyMessage); //直连 chargingMessage.setPlatformStopChargingReplyMessage(platformStopChargingReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.TRANSACTION_RECORD: TransactionRecordMessage transactionRecordMessage = JSON.parseObject(content.toJSONString(),TransactionRecordMessage.class); transactionRecordMessage.setResult(content.toJSONString()); //走rocketmq // sendResult = enhanceProduce.transactionRecordMessage(transactionRecordMessage); //直连 chargingMessage.setTransactionRecordMessage(transactionRecordMessage); chargingMessageUtil.handleMessage(chargingMessage); // 响应硬件 @@ -318,41 +255,26 @@ break; case SendTagConstant.UPDATE_BALANCE_REPLY: UpdateBalanceReplyMessage updateBalanceReplyMessage = JSON.parseObject(content.toJSONString(),UpdateBalanceReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.updateBalanceReplyMessage(updateBalanceReplyMessage); //直连 chargingMessage.setUpdateBalanceReplyMessage(updateBalanceReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.SYNCHRONIZE_OFFLINE_CARD_REPLY: SynchronizeOfflineCardReplyMessage synchronizeOfflineCardReplyMessage = JSON.parseObject(content.toJSONString(),SynchronizeOfflineCardReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.synchronizeOfflineCardReplyMessage(synchronizeOfflineCardReplyMessage); //直连 chargingMessage.setSynchronizeOfflineCardReplyMessage(synchronizeOfflineCardReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.CLEAR_OFFLINE_CARD_REPLY: ClearOfflineCardReplyMessage clearOfflineCardReplyMessage = JSON.parseObject(content.toJSONString(),ClearOfflineCardReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.clearOfflineCardReplyMessage(clearOfflineCardReplyMessage); //直连 chargingMessage.setClearOfflineCardReplyMessage(clearOfflineCardReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.WORKING_PARAMETER_SETTING_REPLY: WorkingParameterSettingReplyMessage workingParameterSettingReplyMessage = JSON.parseObject(content.toJSONString(),WorkingParameterSettingReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.workingParameterSettingReplyMessage(workingParameterSettingReplyMessage); //直连 chargingMessage.setWorkingParameterSettingReplyMessage(workingParameterSettingReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.TIMING_SETTING: TimingSettingMessage timingSettingMessage = JSON.parseObject(content.toJSONString(),TimingSettingMessage.class); //走rocketmq // sendResult = enhanceProduce.timingSettingMessage(timingSettingMessage); //直连 chargingMessage.setTimingSettingMessage(timingSettingMessage); chargingMessageUtil.handleMessage(chargingMessage); // 响应硬件 对时设置应答 @@ -363,62 +285,40 @@ break; case SendTagConstant.SETUP_BILLING_MODEL_REPLY: SetupBillingModelReplyMessage setupBillingModelReplyMessage = JSON.parseObject(content.toJSONString(),SetupBillingModelReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.setupBillingModelReplyMessage(setupBillingModelReplyMessage); //直连 chargingMessage.setSetupBillingModelReplyMessage(setupBillingModelReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.GROUND_LOCK_REAL_TIME_DATA: GroundLockRealTimeDataMessage groundLockRealTimeDataMessage = JSON.parseObject(content.toJSONString(),GroundLockRealTimeDataMessage.class); //走rocketmq // sendResult = enhanceProduce.groundLockRealTimeDataMessage(groundLockRealTimeDataMessage); //直连 chargingMessage.setGroundLockRealTimeDataMessage(groundLockRealTimeDataMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.CHARGING_PILE_RETURNS_GROUND_LOCK_DATA: ChargingPileReturnsGroundLockDataMessage chargingPileReturnsGroundLockDataMessage = JSON.parseObject(content.toJSONString(),ChargingPileReturnsGroundLockDataMessage.class); //走rocketmq // sendResult = enhanceProduce.chargingPileReturnsGroundLockDataMessage(chargingPileReturnsGroundLockDataMessage); //直连 chargingMessage.setChargingPileReturnsGroundLockDataMessage(chargingPileReturnsGroundLockDataMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.PLATFORM_RESTART_REPLY: PlatformRestartReplyMessage platformRestartReplyMessage = JSON.parseObject(content.toJSONString(),PlatformRestartReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.platformRestartReplyMessage(platformRestartReplyMessage); //直连 chargingMessage.setPlatformRestartReplyMessage(platformRestartReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.QR_CODE_DELIVERY_REPLY: QrCodeDeliveryReplyMessage qrCodeDeliveryReplyMessage = JSON.parseObject(content.toJSONString(),QrCodeDeliveryReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.qrCodeDeliveryReplyMessage(qrCodeDeliveryReplyMessage); //直连 chargingMessage.setQrCodeDeliveryReplyMessage(qrCodeDeliveryReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; case SendTagConstant.SECURITY_DETECTION: SecurityDetectionMessage securityDetectionMessage = JSON.parseObject(content.toJSONString(),SecurityDetectionMessage.class); //走rocketmq // sendResult = enhanceProduce.securityDetectionMessage(securityDetectionMessage); //直连 chargingMessage.setSecurityDetectionMessage(securityDetectionMessage); chargingMessageUtil.handleMessage(chargingMessage); break; default: PlatformRemoteUpdateReplyMessage platformRemoteUpdateReplyMessage = JSON.parseObject(content.toJSONString(),PlatformRemoteUpdateReplyMessage.class); //走rocketmq // sendResult = enhanceProduce.platformRemoteUpdateReplyMessage(platformRemoteUpdateReplyMessage); //直连 chargingMessage.setPlatformRemoteUpdateReplyMessage(platformRemoteUpdateReplyMessage); chargingMessageUtil.handleMessage(chargingMessage); break; } log.info("rocketmq消息下发结果:{}",sendResult); return AjaxResult.success(); } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/ChargingMessageUtil.java
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageUtil.java @@ -1,17 +1,14 @@ package com.ruoyi.integration.rocket.produce; package com.ruoyi.integration.iotda.utils.tools; import com.alibaba.fastjson.JSONObject; import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.vo.UpdateChargingPileStatusVo; import com.ruoyi.integration.api.model.*; import com.ruoyi.integration.drainage.TCECPushUtil; import com.ruoyi.integration.iotda.constant.SendTagConstant; import com.ruoyi.integration.iotda.model.*; import com.ruoyi.integration.mongodb.service.*; import com.ruoyi.integration.rocket.model.*; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery; @@ -20,7 +17,6 @@ import com.ruoyi.order.api.vo.SecurityDetectionVO; import com.ruoyi.order.api.vo.TransactionRecordMessageVO; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.producer.SendResult; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -30,9 +26,6 @@ import javax.annotation.Resource; import java.math.RoundingMode; import java.util.Objects; import java.util.Set; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -102,24 +95,18 @@ private QrCodeDeliveryReplyService qrCodeDeliveryReplyService; @Autowired private SecurityDetectionService securityDetectionService; @Autowired private TCECPushUtil tcecPushUtil; @Resource private ChargingPileClient chargingPileClient; @Resource private ChargingGunClient chargingGunClient; @Resource private RedisTemplate redisTemplate; @Autowired private EnhanceProduce enhanceProduce; public void handleMessage(com.ruoyi.integration.rocket.model.ChargingMessage message){ public void handleMessage(ChargingMessage message){ log.info("收到的消息内容:{}",message); String serviceId = message.getServiceId(); if(!StringUtils.hasLength(serviceId)){ @@ -149,14 +136,6 @@ vo1.setPile_code(pingMessage.getCharging_pile_code()); vo1.setStatus(pingMessage.getCharging_gun_status()); chargingPileClient.updateChargingPileStatus(vo1); // 监管平台推送充电设备状态 String gunCode = pingMessage.getCharging_pile_code() + pingMessage.getCharging_gun_code(); ChargingMessage chargingMessage = new ChargingMessage(); chargingMessage.setServiceId(SendTagConstant.GUN_STATUS); GunStatusMessage gunStatusMessage = new GunStatusMessage(); gunStatusMessage.setFullNumber(gunCode); chargingMessage.setGunStatusMessage(gunStatusMessage); SendResult sendResult = enhanceProduce.gunStatusMessage(chargingMessage); break; case SendTagConstant.END_CHARGE: EndChargeMessage endChargeMessage = message.getEndChargeMessage(); @@ -167,20 +146,6 @@ endChargeService.create(endCharge); // 业务处理 chargingOrderClient.endCharge(endCharge.getTransaction_serial_number()); // 订单id String transactionSerialNumber = endCharge.getTransaction_serial_number(); ChargingOrderMessage chargingOrderMessage = new ChargingOrderMessage(); chargingOrderMessage.setOrderNumber(transactionSerialNumber); // 推送充电订单信息 ChargingMessage chargingMessage1 = new ChargingMessage(); chargingMessage1.setServiceId(SendTagConstant.ORDER_INFO); chargingMessage1.setOrderMessage(chargingOrderMessage); enhanceProduce.orderInfoMessage(chargingMessage1); // 推送充电订单状态 ChargingMessage chargingMessage2 = new ChargingMessage(); chargingMessage2.setServiceId(SendTagConstant.ORDER_STATUS); chargingMessage2.setOrderMessage(chargingOrderMessage); enhanceProduce.orderStatusMessage(chargingMessage2); break; case SendTagConstant.ERROR_MESSAGE: ErrorMessageMessage errorMessageMessage1 = message.getErrorMessageMessage(); @@ -244,14 +209,6 @@ UploadRealTimeMonitoringDataQuery query = new UploadRealTimeMonitoringDataQuery(); BeanUtils.copyProperties(uploadRealTimeMonitoringData, query); chargingOrderClient.chargeMonitoring(query); // 订单id ChargingOrderMessage chargingOrderMessage3 = new ChargingOrderMessage(); chargingOrderMessage3.setOrderNumber(chargingOrder.getCode()); // 推送充电订单信息 ChargingMessage chargingMessage4 = new ChargingMessage(); chargingMessage4.setServiceId(SendTagConstant.ORDER_STATUS); chargingMessage4.setOrderMessage(chargingOrderMessage3); enhanceProduce.orderInfoMessage(chargingMessage4); } catch (Exception e) { e.printStackTrace(); } @@ -367,13 +324,9 @@ //计算费用 TransactionRecordMessageVO vo = new TransactionRecordMessageVO(); BeanUtils.copyProperties(transactionRecordMessage,vo); int code = chargingOrderClient.endChargeBillingCharge(vo).getCode(); if(200 != code){ //失败后添加到队列中继续处理数据 redisTemplate.opsForSet().add(SendTagConstant.TRANSACTION_RECORD, transactionRecordMessage.getTransaction_serial_number()); } chargingOrderClient.endChargeBillingCharge(vo); // 添加实时上传记录结束记录 // 添加实时上传结束记录 // 查询mogondb上一条数据 UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(transactionRecordMessage.getTransaction_serial_number()); if(Objects.nonNull(data) && data.getStatus() != 5){ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/ErrorMessageMessageService.java
@@ -1,7 +1,7 @@ package com.ruoyi.integration.mongodb.service; import com.ruoyi.integration.mongodb.base.BaseService; import com.ruoyi.integration.rocket.model.ErrorMessageMessage; import com.ruoyi.integration.iotda.model.ErrorMessageMessage; public interface ErrorMessageMessageService extends BaseService<ErrorMessageMessage> { ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/ErrorMessageMessageServiceImpl.java
@@ -1,10 +1,8 @@ package com.ruoyi.integration.mongodb.service.impl; import com.ruoyi.integration.api.model.EndCharge; import com.ruoyi.integration.iotda.constant.IotConstant; import com.ruoyi.integration.mongodb.service.EndChargeService; import com.ruoyi.integration.mongodb.service.ErrorMessageMessageService; import com.ruoyi.integration.rocket.model.ErrorMessageMessage; import com.ruoyi.integration.iotda.model.ErrorMessageMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.stereotype.Service; ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/configuration/EnvironmentIsolationConfig.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/configuration/RocketEnhanceProperties.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/configuration/RocketMQEnhanceAutoConfiguration.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/configuration/RocketMQMessageConverter.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/constant/EnhanceMessageConstant.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BillingModeVerifyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BmsAbortMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BmsDemandAndChargerExportationMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BmsInformationMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ChargingHandshakeMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ChargingPileReturnsGroundLockDataMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ChargingPileStartsChargingMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ClearOfflineCardReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/EndChargeMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ErrorMessageMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/GroundLockRealTimeDataMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/MotorAbortMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/OnlineMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/ParameterSettingMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PingMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PlatformRemoteUpdateReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PlatformRestartReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PlatformStartChargingReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/PlatformStopChargingReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/QrCodeDeliveryReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/QueryOfflineCardReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/SecurityDetectionMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/SetupBillingModelReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/SynchronizeOfflineCardReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TimingSettingMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TransactionRecordMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UpdateBalanceReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/WorkingParameterSettingReplyMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/AcquisitionBillingModeMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BillingModeVerifyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BmsDemandAndChargerExportationMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/BmsInformationMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ChargingHandshakeMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ChargingMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ChargingOrderMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ChargingPileReturnsGroundLockDataMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ChargingPileStartsChargingMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ClearOfflineCardReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/GroundLockRealTimeDataMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/GunStatusMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/OnlineMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/ParameterSettingMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/PingMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/PlatformRemoteUpdateReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/PlatformRestartReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/PlatformStartChargingReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/PlatformStopChargingReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/QrCodeDeliveryReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/QueryOfflineCardReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/SecurityDetectionMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/SetupBillingModelReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/SynchronizeOfflineCardReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TimingSettingMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TimingSettingReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TransactionRecordMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/UpdateBalanceReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/UploadRealTimeMonitoringDataMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/WorkingParameterSettingReplyMessage.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/util/EnhanceMessageHandler.java
File was deleted ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/util/RocketMQEnhanceTemplate.java
File was deleted ruoyi-service/ruoyi-integration/src/test/java/com/ruoyi/integration/RuoYiIntegrationApplicationTests.java
@@ -1,54 +1,7 @@ package com.ruoyi.integration; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.JacksonUtils; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.barrierGate.model.CloudParkingOrder; import com.ruoyi.integration.barrierGate.server.ParkingOrderService; import com.ruoyi.integration.drainage.AESUtil; import com.ruoyi.integration.drainage.TCECSuperviseUtil; import com.ruoyi.integration.drainage.model.*; import com.ruoyi.integration.drainage.util.AesEncryption; import com.ruoyi.integration.drainage.util.HMacMD5Util; import com.ruoyi.integration.drainage.util.SequenceGenerator; import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; import com.ruoyi.order.api.dto.ChargingStatisticeDTO; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.other.api.domain.Operator; import com.ruoyi.other.api.feignClient.OperatorClient; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cglib.core.Local; import org.springframework.messaging.support.MessageBuilder; import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Slf4j @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = RuoYiIntegrationApplication.class) public class RuoYiIntegrationApplicationTests { ruoyi-service/ruoyi-jianguan/pom.xml
@@ -104,38 +104,6 @@ <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--rocketmq--> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.3.0</version> </dependency> <!-- <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>--> <!--mongodb--> <dependency> @@ -165,6 +133,12 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-integration</artifactId> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-jianguan</artifactId> <version>3.6.2</version> <scope>compile</scope> </dependency> </dependencies> ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/controller/ChargingMessageController.java
New file @@ -0,0 +1,255 @@ package com.ruoyi.jianguan.controller; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.vo.ChargingOrderVo; import com.ruoyi.jianguan.model.SupChargeOrderInfo; import com.ruoyi.jianguan.model.SupEquipChargeStatus; import com.ruoyi.jianguan.util.ChuanYiChongSuperviseUtil; import com.ruoyi.jianguan.util.TCECSuperviseUtil; import com.ruoyi.other.api.domain.Operator; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Date; /** * @author zhibing.pu * @Date 2025/7/12 10:07 */ @Slf4j @RestController @RequestMapping("/chargingMessage") public class ChargingMessageController { @Resource private TCECSuperviseUtil tcecSuperviseUtil; private final static String operatorId = "906171535"; @Resource private ChargingGunClient chargingGunClient; @Resource private ChuanYiChongSuperviseUtil chuanYiChongSuperviseUtil; /** * 推送充电订单信息 * @param chargingOrder * @return */ @ResponseBody @RequestMapping("/pushOrderInfo") public R pushOrderInfo(@RequestBody ChargingOrderVo chargingOrder){ SupChargeOrderInfo supChargeOrderInfo = new SupChargeOrderInfo(); supChargeOrderInfo.setOperatorID(operatorId); supChargeOrderInfo.setEquipmentOwnerID(operatorId); supChargeOrderInfo.setStationID(String.valueOf(chargingOrder.getSiteId())); supChargeOrderInfo.setEquipmentID(String.valueOf(chargingOrder.getChargingPileId())); supChargeOrderInfo.setOrderNo(operatorId+chargingOrder.getCode()); TChargingGun chargingGun1 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); supChargeOrderInfo.setConnectorID(chargingGun1.getFullNumber()); supChargeOrderInfo.setEquipmentClassification(1); supChargeOrderInfo.setPushTimeStamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); supChargeOrderInfo.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : ""); supChargeOrderInfo.setEndTime(chargingOrder.getEndTime() != null ? chargingOrder.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : ""); supChargeOrderInfo.setTotalPower(chargingOrder.getElectrovalence()); supChargeOrderInfo.setTotalElecMoney(chargingOrder.getElectrovalence()); supChargeOrderInfo.setTotalServiceMoney(chargingOrder.getServiceCharge()); supChargeOrderInfo.setTotalMoney(chargingOrder.getOrderAmount()); switch (chargingOrder.getEndMode()){ case 0: supChargeOrderInfo.setStopReason(5); supChargeOrderInfo.setStopDesc("异常终止"); break; case 1: supChargeOrderInfo.setStopReason(0); supChargeOrderInfo.setStopDesc("用户手动停止充电"); break; case 2: supChargeOrderInfo.setStopReason(1); supChargeOrderInfo.setStopDesc("客户归属地运营商平台停止充电"); break; case 3: supChargeOrderInfo.setStopReason(1); supChargeOrderInfo.setStopDesc("费用不足中止"); break; } tcecSuperviseUtil.notificationChargeOrderInfo(new Operator(), supChargeOrderInfo); return R.ok(); } /** * 推送充电订单状态 * @param chargingOrder * @return */ @ResponseBody @RequestMapping("/pushOrderStatus") public R pushOrderStatus(@RequestBody ChargingOrderVo chargingOrder){ log.info("推送充电订单状态:{}", chargingOrder); SupEquipChargeStatus supEquipChargeStatus = new SupEquipChargeStatus(); supEquipChargeStatus.setOperatorID(operatorId); supEquipChargeStatus.setEquipmentOwnerID(operatorId); supEquipChargeStatus.setStationID(String.valueOf(chargingOrder.getSiteId())); supEquipChargeStatus.setEquipmentID(String.valueOf(chargingOrder.getChargingPileId())); supEquipChargeStatus.setOrderNo(operatorId+chargingOrder.getCode()); switch (chargingOrder.getStatus()){ case 2: supEquipChargeStatus.setConnectorStatus(1); break; case 3: supEquipChargeStatus.setConnectorStatus(2); break; case 4: supEquipChargeStatus.setConnectorStatus(3); break; case 5: supEquipChargeStatus.setConnectorStatus(4); break; } TChargingGun chargingGun2 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); supEquipChargeStatus.setConnectorID(chargingGun2.getFullNumber()); supEquipChargeStatus.setEquipmentClassification(1); supEquipChargeStatus.setPushTimeStamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); switch (chargingGun2.getStatus()){ case 1: supEquipChargeStatus.setConnectorStatus(0); break; case 2: supEquipChargeStatus.setConnectorStatus(1); break; case 3: supEquipChargeStatus.setConnectorStatus(2); break; case 4: supEquipChargeStatus.setConnectorStatus(3); break; case 5: supEquipChargeStatus.setConnectorStatus(3); break; case 6: supEquipChargeStatus.setConnectorStatus(4); break; case 7: supEquipChargeStatus.setConnectorStatus(255); break; } supEquipChargeStatus.setCurrentA(chargingOrder.getCurrent()); supEquipChargeStatus.setSOC(null != chargingOrder.getTotalElectricity()?chargingOrder.getTotalElectricity():new BigDecimal("1")); supEquipChargeStatus.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : ""); supEquipChargeStatus.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); supEquipChargeStatus.setTotalPower(chargingOrder.getElectrovalence()); tcecSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), supEquipChargeStatus); // 川逸充 if (chargingOrder.getRechargePaymentType()==3){ JSONObject jsonObject = new JSONObject(); jsonObject.put("StartChargeSeq",chargingOrder.getCode()); jsonObject.put("ConnectorID",chargingGun2.getFullNumber()); LocalDateTime startTime = chargingOrder.getStartTime(); //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束) int tempStatus = 0; switch (chargingOrder.getStatus()){ case 1: tempStatus=1; case 2: tempStatus=1; jsonObject.put("StartChargeSeqStat",tempStatus); if (startTime!=null){ jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); }else{ LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject); break; case 3: tempStatus=2; jsonObject.put("StartChargeSeqStat",tempStatus); if (startTime!=null){ jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); }else{ LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject); break; case 4: tempStatus=3; jsonObject.put("StartChargeSeqStat",tempStatus); if (startTime!=null){ jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); }else{ LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject); break; case 5: jsonObject.put("StartChargeSeqStat",4); int temp = 0; //充电枪状态(1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障) switch (chargingGun2.getStatus()){ case 1: temp = 0; break; case 2: temp=1; break; case 3: temp=2; break; case 4: temp=3; break; case 5: temp=4; break; case 6: temp=4; break; case 7: temp = 255; break; } jsonObject.put("ConnectorStatus",temp); jsonObject.put("CurrentA",chargingOrder.getCurrent()); jsonObject.put("VoltageA",chargingOrder.getVoltage()); LocalDateTime startTime2 = chargingOrder.getStartTime(); if (startTime2!=null){ jsonObject.put("StartTime",startTime2.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); }else{ LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("EndTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); jsonObject.put("TotalPower",chargingOrder.getElectricity()); jsonObject.put("TotalMoney",chargingOrder.getOrderAmount()); chuanYiChongSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), jsonObject); break; } } return R.ok(); } } ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/governmentCloud/UploadDataTaskUtil.java
@@ -3,12 +3,10 @@ import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.integration.api.model.*; import com.ruoyi.jianguan.mongodb.service.*; import com.ruoyi.jianguan.mqtt.config.TopicConstants; import com.ruoyi.jianguan.mqtt.util.MqttPushUtil; import com.ruoyi.jianguan.rocket.model.ErrorMessageMessage; import io.netty.util.concurrent.DefaultThreadFactory; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -16,10 +14,8 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.concurrent.*; @@ -40,7 +36,6 @@ * 每天的9点执行的任务 */ @Scheduled(cron = "0 0 10 * * *") // @Scheduled(fixedRate = 60000) public void taskDay(){ try { // 传输mongodb的硬件数据 @@ -105,12 +100,6 @@ }); TimeUnit.MILLISECONDS.sleep(1); // Future<String> future = customthreadPoolExecutor.submit(() -> { // log.info("线程:{},办理业务", Thread.currentThread().getName()); // return "业务办理完成"; // }); // log.info(future.get()); } finally { gracefulShutdown(customthreadPoolExecutor); } ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/model/BaseMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/base/BaseMessage.java @@ -1,4 +1,4 @@ package com.ruoyi.jianguan.rocket.base; package com.ruoyi.jianguan.model; import lombok.Data; ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/model/ErrorMessageMessage.java
File was renamed from ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/ErrorMessageMessage.java @@ -1,6 +1,6 @@ package com.ruoyi.jianguan.rocket.model; package com.ruoyi.jianguan.model; import com.ruoyi.jianguan.rocket.base.BaseMessage; import com.ruoyi.jianguan.model.BaseMessage; import lombok.Data; /** ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mongodb/service/ErrorMessageMessageService.java
@@ -1,8 +1,7 @@ package com.ruoyi.jianguan.mongodb.service; import com.ruoyi.integration.api.model.EndCharge; import com.ruoyi.jianguan.mongodb.base.BaseService; import com.ruoyi.jianguan.rocket.model.ErrorMessageMessage; import com.ruoyi.jianguan.model.ErrorMessageMessage; import java.util.List; import java.util.Date; ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mongodb/service/GroundLockRealTimeDataService.java
@@ -2,7 +2,6 @@ import com.ruoyi.integration.api.model.GroundLockRealTimeData; import com.ruoyi.jianguan.mongodb.base.BaseService; import com.ruoyi.jianguan.rocket.model.ErrorMessageMessage; import java.util.List; import java.util.Date; ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mongodb/service/impl/ErrorMessageMessageServiceImpl.java
@@ -1,10 +1,8 @@ package com.ruoyi.jianguan.mongodb.service.impl; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.integration.api.model.EndCharge; import com.ruoyi.jianguan.constant.IotConstant; import com.ruoyi.jianguan.mongodb.service.ErrorMessageMessageService; import com.ruoyi.jianguan.rocket.model.ErrorMessageMessage; import com.ruoyi.jianguan.model.ErrorMessageMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mongodb/service/impl/GroundLockRealTimeDataServiceImpl.java
@@ -1,10 +1,8 @@ package com.ruoyi.jianguan.mongodb.service.impl; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.integration.api.model.GroundLockRealTimeData; import com.ruoyi.jianguan.constant.IotConstant; import com.ruoyi.jianguan.mongodb.service.GroundLockRealTimeDataService; import com.ruoyi.jianguan.rocket.model.ErrorMessageMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/base/JianGuanMessage.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/configuration/EnvironmentIsolationConfig.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/configuration/RocketEnhanceProperties.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/configuration/RocketMQEnhanceAutoConfiguration.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/configuration/RocketMQMessageConverter.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/constant/EnhanceMessageConstant.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/BmsAbortMessage.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/ChargingOrderMessage.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/EndChargeMessage.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/GunStatusMessage.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/MotorAbortMessage.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/model/QrCodeDeliveryMessage.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/util/EnhanceMessageHandler.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/util/RocketMQEnhanceTemplate.java
File was deleted ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/TaskUtil.java
New file @@ -0,0 +1,288 @@ package com.ruoyi.jianguan.util; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.jianguan.model.ConnectorStatusInfo; import com.ruoyi.jianguan.model.SupEquipChargeStatus; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.vo.TChargingOrderVo; import com.ruoyi.other.api.domain.Operator; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @author zhibing.pu * @Date 2025/7/12 9:10 */ @Slf4j @Component public class TaskUtil { @Resource private ChargingGunClient chargingGunClient; private final static String operatorId = "906171535"; @Resource private TCECSuperviseUtil tcecSuperviseUtil; @Resource private ChargingOrderClient chargingOrderClient; @Resource private RedisTemplate redisTemplate; @Resource private ChuanYiChongSuperviseUtil chuanYiChongSuperviseUtil; /** * 10秒定时推送枪状态 */ @Scheduled(fixedRate = 10000) public void taskPushStatus(){ pushStatus(); } /** * 1分钟定时推送订单状态 */ @Scheduled(fixedRate = 60000) public void taskPushOrderStatus(){ // pushOrderStatus(); } /** * 定时推送订单状态 */ public void pushOrderStatus(){ TChargingOrderVo order = new TChargingOrderVo(); order.setStatusList(new ArrayList<Integer>(){{ add(3); }}); List<TChargingOrder> orders = chargingOrderClient.getChargingOrder(order).getData(); for (TChargingOrder chargingOrder : orders) { log.info("推送充电订单状态:{}", chargingOrder); SupEquipChargeStatus supEquipChargeStatus = new SupEquipChargeStatus(); supEquipChargeStatus.setOperatorID(operatorId); supEquipChargeStatus.setEquipmentOwnerID(operatorId); supEquipChargeStatus.setStationID(String.valueOf(chargingOrder.getSiteId())); supEquipChargeStatus.setEquipmentID(String.valueOf(chargingOrder.getChargingPileId())); supEquipChargeStatus.setOrderNo(operatorId+chargingOrder.getCode()); switch (chargingOrder.getStatus()){ case 2: supEquipChargeStatus.setConnectorStatus(1); break; case 3: supEquipChargeStatus.setConnectorStatus(2); break; case 4: supEquipChargeStatus.setConnectorStatus(3); break; case 5: supEquipChargeStatus.setConnectorStatus(4); break; } TChargingGun chargingGun2 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); supEquipChargeStatus.setConnectorID(chargingGun2.getFullNumber()); supEquipChargeStatus.setEquipmentClassification(1); supEquipChargeStatus.setPushTimeStamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); switch (chargingGun2.getStatus()){ case 1: supEquipChargeStatus.setConnectorStatus(0); break; case 2: supEquipChargeStatus.setConnectorStatus(1); break; case 3: supEquipChargeStatus.setConnectorStatus(2); break; case 4: supEquipChargeStatus.setConnectorStatus(3); break; case 5: supEquipChargeStatus.setConnectorStatus(3); break; case 6: supEquipChargeStatus.setConnectorStatus(4); break; case 7: supEquipChargeStatus.setConnectorStatus(255); break; } supEquipChargeStatus.setCurrentA(chargingOrder.getCurrent()); supEquipChargeStatus.setSOC(null != chargingOrder.getTotalElectricity()?chargingOrder.getTotalElectricity():new BigDecimal("1")); supEquipChargeStatus.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : ""); supEquipChargeStatus.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); supEquipChargeStatus.setTotalPower(chargingOrder.getElectrovalence()); tcecSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), supEquipChargeStatus); // 川逸充 if (chargingOrder.getRechargePaymentType()==3){ JSONObject jsonObject = new JSONObject(); jsonObject.put("StartChargeSeq",chargingOrder.getCode()); jsonObject.put("ConnectorID",chargingGun2.getFullNumber()); LocalDateTime startTime = chargingOrder.getStartTime(); //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束) int tempStatus = 0; switch (chargingOrder.getStatus()){ case 1: tempStatus=1; case 2: tempStatus=1; jsonObject.put("StartChargeSeqStat",tempStatus); if (startTime!=null){ jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); }else{ LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject); break; case 3: tempStatus=2; jsonObject.put("StartChargeSeqStat",tempStatus); if (startTime!=null){ jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); }else{ LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject); break; case 4: tempStatus=3; jsonObject.put("StartChargeSeqStat",tempStatus); if (startTime!=null){ jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); }else{ LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject); break; case 5: jsonObject.put("StartChargeSeqStat",4); int temp = 0; //充电枪状态(1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障) switch (chargingGun2.getStatus()){ case 1: temp = 0; break; case 2: temp=1; break; case 3: temp=2; break; case 4: temp=3; break; case 5: temp=4; break; case 6: temp=4; break; case 7: temp = 255; break; } jsonObject.put("ConnectorStatus",temp); jsonObject.put("CurrentA",chargingOrder.getCurrent()); jsonObject.put("VoltageA",chargingOrder.getVoltage()); LocalDateTime startTime2 = chargingOrder.getStartTime(); if (startTime2!=null){ jsonObject.put("StartTime",startTime2.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); }else{ LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 jsonObject.put("EndTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); jsonObject.put("TotalPower",chargingOrder.getElectricity()); jsonObject.put("TotalMoney",chargingOrder.getOrderAmount()); chuanYiChongSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), jsonObject); break; } } } } /** * 推送枪状态到平台 */ public void pushStatus(){ redisTemplate.keys("ping:*").forEach(key->{ String fullNumber = key.toString().split(":")[1]; log.info("推送枪状态到监管平台:{}",fullNumber); TChargingGun chargingGun = chargingGunClient.getChargingGunByFullNumber(fullNumber).getData(); if (chargingGun!=null){ ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo(); connectorStatusInfo.setOperatorID(operatorId); connectorStatusInfo.setEquipmentOwnerID(operatorId); connectorStatusInfo.setStationID(String.valueOf(chargingGun.getSiteId())); connectorStatusInfo.setEquipmentID(String.valueOf(chargingGun.getChargingPileId())); connectorStatusInfo.setConnectorID(chargingGun.getFullNumber()); if (chargingGun.getEquipmentClassification()!=null){ connectorStatusInfo.setEquipmentClassification(chargingGun.getEquipmentClassification()); }else { connectorStatusInfo.setEquipmentClassification(1); } switch (chargingGun.getStatus()){ case 1: connectorStatusInfo.setStatus(0); break; case 2: connectorStatusInfo.setStatus(1); break; case 3: connectorStatusInfo.setStatus(2); break; case 4: connectorStatusInfo.setStatus(3); break; case 5: connectorStatusInfo.setStatus(3); break; case 6: connectorStatusInfo.setStatus(4); break; case 7: connectorStatusInfo.setStatus(255); break; } connectorStatusInfo.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); tcecSuperviseUtil.notificationStationStatus(new Operator(), connectorStatusInfo); } }); } } ruoyi-service/ruoyi-order/pom.xml
@@ -175,6 +175,12 @@ <artifactId>redisson-spring-boot-starter</artifactId> <version>3.16.8</version> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-jianguan</artifactId> <version>3.6.2</version> <scope>compile</scope> </dependency> </dependencies> <build> ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -32,6 +32,7 @@ import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.api.feignClient.*; import com.ruoyi.integration.api.model.*; import com.ruoyi.integration.api.vo.ChargingOrderVo; import com.ruoyi.integration.api.vo.GetPlatformStopChargingReply; import com.ruoyi.integration.api.vo.StartChargeResult; import com.ruoyi.order.api.dto.SettlementConfirmAdd; @@ -229,6 +230,9 @@ @Autowired private RedissonClient redissonClient; @Resource private ChargingMessageClient chargingMessageClient; @@ -807,24 +811,30 @@ //清除计时器中的无效数据 counter_map.remove(code); TChargingOrder order = new TChargingOrder(); order.setId(id); order.setAppUserId(chargingOrder.getAppUserId()); if(0 == startup_result){ //启动失败 preChargeCheck1.setStartupSuccess(3); preChargeCheck1.setFailureCause(failure_cause); //启动失败后取消订单,退款操作 refund(code); order.setStatus(-1); order.setEndMode(0); chargingOrder.setStatus(-1); chargingOrder.setEndMode(0); }else{ //启动成功 preChargeCheck1.setStartupSuccess(2); order.setStatus(3); order.setStartTime(LocalDateTime.now()); chargingOrder.setStatus(3); chargingOrder.setStartTime(LocalDateTime.now()); } this.updateById(order); this.updateById(chargingOrder); if(chargingOrder.getStatus() == 3){ //推送监管平台订单状态 new Thread(()->{ ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); BeanUtils.copyProperties(chargingOrder, chargingOrderVo); chargingMessageClient.pushOrderStatus(chargingOrderVo); }).start(); } redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS); //推送三方平台订单状态 if(2 == chargingOrder.getOrderSource()){ @@ -928,6 +938,15 @@ } redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS); this.updateById(order); if(3 == order.getStatus()){ //推送监管平台订单状态 new Thread(()->{ ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); BeanUtils.copyProperties(order, chargingOrderVo); chargingMessageClient.pushOrderStatus(chargingOrderVo); }).start(); } //推送三方平台启动充电结果 if(2 == order.getOrderSource()){ StartChargeResult result = new StartChargeResult(); @@ -1245,13 +1264,11 @@ if(!order.getAppUserId().equals(userId)){ return AjaxResult.error("权限不足"); } TChargingOrder chargingOrder = new TChargingOrder(); chargingOrder.setId(Long.valueOf(id)); chargingOrder.setAppUserId(order.getAppUserId()); chargingOrder.setEndTime(LocalDateTime.now()); chargingOrder.setStatus(4); chargingOrder.setEndMode(1); this.updateById(chargingOrder); order.setEndTime(LocalDateTime.now()); order.setStatus(4); order.setEndMode(1); this.updateById(order); String code1 = order.getCode(); TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData(); //异步线程处理停机 @@ -1265,6 +1282,12 @@ sendMessageClient.platformStopCharging(platformStopCharging); log.info(code1 + ":-------------------远程停止充电请求-------------------"); log.info(platformStopCharging.toString()); //推送监管平台订单状态和订单详情 ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); BeanUtils.copyProperties(order, chargingOrderVo); chargingMessageClient.pushOrderInfo(chargingOrderVo); chargingMessageClient.pushOrderStatus(chargingOrderVo); }); //推送三方平台 if(2 == order.getOrderSource()){ @@ -2250,7 +2273,7 @@ } chargingOrder.setChargingCapacity(query.getCharging_degree()); chargingOrder.setElectricity(query.getCharging_degree()); chargingOrder.setTotalElectricity(new BigDecimal(100 - query.getSoc())); chargingOrder.setTotalElectricity(new BigDecimal(query.getSoc())); this.updateById(chargingOrder); } } @@ -4131,7 +4154,6 @@ chargingOrder.setStatus(4); chargingOrder.setEndMode(1); this.updateById(chargingOrder); tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId()); String code1 = order.getCode(); @@ -4147,6 +4169,12 @@ sendMessageClient.platformStopCharging(platformStopCharging); log.info(code1 + ":-------------------远程停止充电请求-------------------"); log.info(platformStopCharging.toString()); //推送监管平台订单状态和订单详情 ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); BeanUtils.copyProperties(chargingOrder, chargingOrderVo); chargingMessageClient.pushOrderInfo(chargingOrderVo); chargingMessageClient.pushOrderStatus(chargingOrderVo); }); return R.ok(); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -8,9 +8,11 @@ import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.integration.api.feignClient.ChargingMessageClient; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.TransactionRecord; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.api.vo.ChargingOrderVo; import com.ruoyi.order.api.model.TChargingBill; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TChargingOrderRefund; @@ -64,6 +66,9 @@ @Resource private TransactionRecordService transactionRecordService; @Resource private ChargingMessageClient chargingMessageClient; private Integer port = null; @@ -127,6 +132,12 @@ R r = chargingOrderService.endChargeBillingCharge(vo); log.info("定时任务执行,充电中的订单处理结果:{}", JSON.toJSONString(r)); } //推送监管平台订单状态和订单详情 ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); BeanUtils.copyProperties(order, chargingOrderVo); chargingMessageClient.pushOrderInfo(chargingOrderVo); chargingMessageClient.pushOrderStatus(chargingOrderVo); } } }