2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-08-26 d08aab9abf24fd6319a2d54d9c252745f111f275
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java
@@ -37,6 +37,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
@@ -390,17 +391,17 @@
    /**
     * 充电桩故障情况下,结果故障前正在进行中的订单
     * 充电桩故障情况下,结束故障前正在进行中的订单
     *
     * @param dataPackage
     */
    public void stopCharingOrder(String c3Mac, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage dataPackage) {
        if (c3Mac.isEmpty() || c3Mac == null || dataPackage == null) {
    public void stopCharingOrder(A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage dataPackage) {
        if (dataPackage == null) {
            return;
        }
        //获取正在进行中的订单
        C3mOrder c3mOrder = getOne(Wrappers.lambdaQuery(C3mOrder.class)
                .eq(C3mOrder::getC3Mac, c3Mac).eq(C3mOrder::getChargingStates, 0)
                .eq(C3mOrder::getC3Mac, dataPackage.getC3Mac()).eq(C3mOrder::getChargingStates, 0)
                .eq(C3mOrder::getOrderStatus, OrderStatus.PAYED.getStatus()).last("limit 1"));
        //订单未结束,但是充电桩为空闲状态(即充电桩断电/故障情况)  结束该订单
        if ("1".equals(dataPackage.getStatusBit()) && c3mOrder != null) {
@@ -422,4 +423,37 @@
        }
    }
    /**
     * 刷新充电中订单信息
     *
     * @param aPackage
     */
    public void orderProcess(A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage aPackage) {
        String c3Mac = aPackage.getC3Mac();
        //结束充电 更改订单状态
        C3mOrder lastOrderByC3Mac = SpringContextHolder.getBean(C3mOrderService.class).getLastOrderByC3Mac(c3Mac);
        if (lastOrderByC3Mac != null) {
            //设置订单状态为已完成
            lastOrderByC3Mac.setOrderStatus(OrderStatus.COMPLETE.getStatus());
            BigDecimal actualChargingCapacity = BigDecimal.valueOf(lastOrderByC3Mac.getActualChargingCapacity());
            BigDecimal actualChargingCapacityHide = BigDecimal.valueOf(lastOrderByC3Mac.getActualChargingCapacityHide());
            //设置实际充电电量
            lastOrderByC3Mac.setActualChargingCapacity(actualChargingCapacity.add(actualChargingCapacityHide).doubleValue());
            //设置订单结束时间
            lastOrderByC3Mac.setStopChargingTimestamp(System.currentTimeMillis());
            lastOrderByC3Mac.setActualChargingCapacity(0.00);
            //设置订单状态为充电结束
            lastOrderByC3Mac.setChargingStates(1);
            //设置剩余金额
            lastOrderByC3Mac.setSurplusAmount(Double.parseDouble(aPackage.getRemainingAmount()));
            //设置退款金额
            lastOrderByC3Mac.setRefundAmount(Double.parseDouble(aPackage.getRemainingAmount()));
            //充电时长
            lastOrderByC3Mac.setAlreadyChargingTime(aPackage.getAlreadyChargingTime());
            SpringContextHolder.getBean(C3mOrderService.class).updateById(lastOrderByC3Mac);
        }
    }
}