2021与蓝度共同重构项目,服务端
liuhaonan
2022-08-12 798400ebc4769a6afec56ebbf8198e87e6c1a683
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java
@@ -1,6 +1,5 @@
package com.sandu.ximon.admin.manager.iot.amqp.processor;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3CommonReportInnerFrame;
@@ -10,24 +9,17 @@
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3mRedisConstant;
import com.sandu.ximon.admin.service.C3ChargingService;
import com.sandu.ximon.admin.service.C3mOrderService;
import com.sandu.ximon.admin.service.PoleBindingService;
import com.sandu.ximon.admin.service.PoleService;
import com.sandu.ximon.admin.service.*;
import com.sandu.ximon.admin.utils.LogUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.vo.C3mOrderVO;
import com.sandu.ximon.dao.domain.C3mCharging;
import com.sandu.ximon.dao.domain.C3mOrder;
import com.sandu.ximon.dao.domain.Pole;
import com.sandu.ximon.dao.domain.PoleBinding;
import com.sandu.ximon.dao.enums.OrderStatus;
import com.sandu.ximon.dao.enums.OrderType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author ZZQ
@@ -126,7 +118,7 @@
                LogUtils.error("{ 充电桩(" + completeRequestFrame.getDestinationAddress() + ")充电结束上报读取心跳包失败,请检查充电桩是否出现故障! }");
                return;
            }
            orderProcess(aPackage.getC3Mac());
            orderProcess(aPackage);
        } else if (C3ChargingEnum.CHARGE_STOP.getCode().equals(functionCode)) {
            log.info("心跳响应——充电中断");
@@ -138,6 +130,16 @@
            A5C3ErrorCodeReportInnerFrame errorCodeRequestFrame = new A5C3ErrorCodeReportInnerFrame().transformFrame(frame.getPayload());
            log.info("C3充电桩上报处理_errorCodeRequestFrame");
            log.info(errorCodeRequestFrame.toString());
            /**
             * 保存C3充电桩故障数据
             */
            if (errorCodeRequestFrame.isValidate() && errorCodeRequestFrame.getErrorMessage() != null) {
                SpringContextHolder.getBean(C3mReportErrorService.class).saveReportError(errorCodeRequestFrame);
            } else {
                System.out.println("数据校验异常!");
            }
        } else if (C3ChargingEnum.StartCharging.getCode().equals(functionCode)) {
            log.info("心跳响应——C3充电桩开始充电");
            A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(frame.getPayload());
@@ -150,10 +152,11 @@
    /**
     * 订单处理
     *
     * @param c3Mac
     * @param aPackage
     */
    private void orderProcess(String c3Mac) {
    private void orderProcess(A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage aPackage) {
        String c3Mac = aPackage.getC3Mac();
        //结束充电 更改订单状态
        C3mOrder lastOrderByC3Mac = SpringContextHolder.getBean(C3mOrderService.class).getLastOrderByC3Mac(c3Mac);
        if (lastOrderByC3Mac != null) {
@@ -169,6 +172,8 @@
            lastOrderByC3Mac.setActualChargingCapacity(0.00);
            //设置订单状态为充电结束
            lastOrderByC3Mac.setChargingStates(1);
            //设置剩余金额
            lastOrderByC3Mac.setSurplusAmount(Double.parseDouble(aPackage.getRemainingAmount()));
            SpringContextHolder.getBean(C3mOrderService.class).updateById(lastOrderByC3Mac);
        }
    }