Pu Zhibing
2 天以前 133695076fbde70f807ba85e8b041840f4ce57cf
Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
3个文件已修改
250 ■■■■■ 已修改文件
ruoyi-service/ruoyi-jianguan/pom.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/RuoYiJianGuanApplication.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-jianguan/pom.xml
@@ -106,30 +106,36 @@
        </dependency>
        <!--rocketmq-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
            <version>2.2.2.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.rocketmq</groupId>
                    <artifactId>rocketmq-client</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.rocketmq</groupId>
                    <artifactId>rocketmq-acl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-client</artifactId>
            <version>4.7.1</version>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-acl</artifactId>
            <version>4.7.1</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>
ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/RuoYiJianGuanApplication.java
@@ -5,9 +5,6 @@
import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Sink;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.scheduling.annotation.EnableScheduling;
@@ -20,7 +17,6 @@
@EnableRyFeignClients
@SpringBootApplication
@EnableScheduling//开启定时任务
@EnableBinding({ Source.class, Sink.class })
public class RuoYiJianGuanApplication {
    public static void main(String[] args) {
        SpringApplication.run(RuoYiJianGuanApplication.class, args);
ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java
@@ -23,8 +23,6 @@
import org.apache.rocketmq.spring.annotation.MessageModel;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.BeanUtils;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
@@ -42,10 +40,9 @@
        messageModel = MessageModel.CLUSTERING,
        consumerGroup = "jianguan_message",
        topic = "jianguan_message",
        selectorExpression = "jianguan_message",
        consumeThreadMax = 64 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够
        selectorExpression = "jianguan_message"
)
public class ChargingMessageListener extends EnhanceMessageHandler<JianGuanMessage> implements RocketMQListener<JianGuanMessage> {
public class ChargingMessageListener implements RocketMQListener<JianGuanMessage> {
    @Resource
    private ChargingOrderClient chargingOrderClient;
@@ -66,9 +63,12 @@
    private final static String operatorId = "906171535";
    @StreamListener("input")
    /**
     * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型
     */
    @Override
    protected void handleMessage(JianGuanMessage message) throws Exception {
    public void onMessage(JianGuanMessage message) {
        log.info("rocket收到的消息内容:{}", message);
        String serviceId = message.getServiceId();
        if (!StringUtils.hasLength(serviceId)) {
@@ -219,124 +219,84 @@
                supEquipChargeStatus.setTotalPower(chargingOrder2.getElectrovalence());
                tcecSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), supEquipChargeStatus);
                // 川逸充
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("StartChargeSeq",chargingOrder2.getCode());
                jsonObject.put("ConnectorID",chargingGun2.getFullNumber());
                //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)
                int tempStatus = 0;
                switch (chargingOrder2.getStatus()){
                    case 1:
                        tempStatus=1;
                if (chargingOrder2.getRechargePaymentType()==3){
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("StartChargeSeq",chargingOrder2.getCode());
                    jsonObject.put("ConnectorID",chargingGun2.getFullNumber());
                    //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)
                    int tempStatus = 0;
                    switch (chargingOrder2.getStatus()){
                        case 1:
                            tempStatus=1;
                    case 2:
                        tempStatus=1;
                        jsonObject.put("StartChargeSeqStat",tempStatus);
                        LocalDateTime startTime = chargingOrder2.getStartTime();
                        if (startTime!=null){
                            jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                        }else{
                        case 2:
                            tempStatus=1;
                            jsonObject.put("StartChargeSeqStat",tempStatus);
                            LocalDateTime startTime = chargingOrder2.getStartTime();
                            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:
                        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",chargingOrder2.getCurrent());
                            jsonObject.put("VoltageA",chargingOrder2.getVoltage());
                            LocalDateTime startTime2 = chargingOrder2.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("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                        }
                        chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject);
                        break;
                    case 4:
                    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",chargingOrder2.getCurrent());
                        jsonObject.put("VoltageA",chargingOrder2.getVoltage());
                        LocalDateTime startTime2 = chargingOrder2.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",chargingOrder2.getElectricity());
                        jsonObject.put("TotalMoney",chargingOrder2.getOrderAmount());
                        chuanYiChongSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), jsonObject);
                        break;
                            jsonObject.put("EndTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                            jsonObject.put("TotalPower",chargingOrder2.getElectricity());
                            jsonObject.put("TotalMoney",chargingOrder2.getOrderAmount());
                            chuanYiChongSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), jsonObject);
                            break;
                    }
                }
                break;
        }
    }
    @Override
    protected void handleMaxRetriesExceeded(JianGuanMessage message) {
        // 当超过指定重试次数消息时此处方法会被调用
        // 生产中可以进行回退或其他业务操作
        log.error("消息消费失败,请执行后续处理");
    }
    /**
     * 是否执行重试机制
     */
    @Override
    protected boolean isRetry() {
        return true;
    }
    @Override
    protected boolean throwException() {
        // 是否抛出异常,false搭配retry自行处理异常
        return false;
    }
    /**
     * 若需要处理消息过滤,在父级中进行统一处理,或者在此处实现之后,自行处理
     *
     * @param message 待处理消息
     * @return true: 本次消息被过滤,false:不过滤
     */
    @Override
    protected boolean filter(JianGuanMessage message) {
        // 此处可做消息过滤
        return false;
    }
    /**
     * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型
     */
    @Override
    public void onMessage(JianGuanMessage message) {
        super.dispatchMessage(message);
    }
}