2021与蓝度共同重构项目,服务端
liuhaonan
2022-08-12 a49a6a80a76b2642232b887dd646a255cf5eaa4e
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -2,7 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.sandu.common.domain.CommonPage;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
@@ -21,17 +21,15 @@
import com.sandu.ximon.admin.param.C3ChargingAddParam;
import com.sandu.ximon.admin.param.C3ChargingParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.ListPagingUtils;
import com.sandu.ximon.admin.utils.LogUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.C3ChargingBo;
import com.sandu.ximon.dao.domain.C3mCharging;
import com.sandu.ximon.dao.domain.C3mChargingCharge;
import com.sandu.ximon.dao.domain.C3mOrder;
import com.sandu.ximon.dao.domain.PoleBinding;
import com.sandu.ximon.dao.enums.OrderStatus;
import com.sandu.ximon.dao.domain.*;
import com.sandu.ximon.dao.enums.OrderByEnums;
import com.sandu.ximon.dao.enums.OrderStatus;
import com.sandu.ximon.dao.mapper.C3mChargingMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -74,7 +72,7 @@
    }
    /**
     * 保存上报C3充电设备心跳数据
     * 保存上报C3充电设备
     *
     * @return 是否成功
     */
@@ -175,10 +173,7 @@
     *
     * @return
     */
    public List<C3ChargingBo> getC3ChargingListByKeyword(BaseConditionVO baseConditionVO, C3ChargingParam c3ChargingParam) {
        if (baseConditionVO != null) {
            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        }
    public Map getC3ChargingListByKeyword(BaseConditionVO baseConditionVO, C3ChargingParam c3ChargingParam, Integer order, Integer seq) {
        if (c3ChargingParam == null) {
            c3ChargingParam = new C3ChargingParam();
        }
@@ -187,26 +182,118 @@
        if (c3ChargingParam.getKeyword() != null) {
            c3ChargingParam.setKeyword(c3ChargingParam.getKeyword().trim());
        }
        //排序字段
        String orderByResult = "t1.c3_id";
        //正序、倒叙
        String orderBySeq = OrderByEnums.ASC.getCode();
        if (order != null) {
            switch (order) {
                case 1:
                    orderByResult = OrderByEnums.CHARGE_POLE_CREATE_TIME.getCode();
                    break;
                default:
            }
        }
        if (seq != null) {
            switch (seq) {
                case 1:
                    orderBySeq = " ASC";
                    break;
                case 2:
                    orderBySeq = " DESC";
                    break;
                default:
                    break;
            }
        }
        //排序方式
        String orderBy = orderByResult + " " + orderBySeq;
        List<C3ChargingBo> c3ChargingBoList;
        if (SecurityUtils.getClientId() == null) {
            c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), null);
            c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), null, orderBy);
        } else {
            c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), SecurityUtils.getUserId());
            c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), SecurityUtils.getUserId(), orderBy);
        }
        //在线数量
        int onlineNumber = 0;
        //离线数量
        int offlineNumber = 0;
        //故障数量
        int faultNumber = 0;
        //等待接入数量
        int waitConnectNumber = 0;
        for (C3ChargingBo one : c3ChargingBoList) {
            String s = RedisUtils.getBean().get(C3mRedisConstant.C3_STATUS.getCode() + one.getC3Mac());
            if (s != null) {
                try {
                    A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage beatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class);
                    one.setStatusBit((Integer.valueOf(beatDataPackage.getStatusBit())));
                    switch (Integer.valueOf(beatDataPackage.getStatusBit())) {
                        //1.空闲
                        case 1:
                            onlineNumber = onlineNumber + 1;
                            break;
                        //2.充电中
                        case 2:
                            onlineNumber = onlineNumber + 1;
                            break;
                        //3.充电中断,等待服务器确认
                        case 3:
                            onlineNumber = onlineNumber + 1;
                            break;
                        //4.充电结束,等待服务器确认
                        case 4:
                            onlineNumber = onlineNumber + 1;
                            break;
                        //5.有故障
                        case 5:
                            faultNumber = faultNumber + 1;
                            break;
                        //6.与充电桩对接中
                        case 6:
                            waitConnectNumber = waitConnectNumber + 1;
                            break;
                        default:
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    offlineNumber = offlineNumber + 1;
                }
            } else {
                one.setStatusBit(0);
                offlineNumber = offlineNumber + 1;
            }
        }
        Map map = new LinkedHashMap();
        CommonPage commonPage = ListPagingUtils.pages(c3ChargingBoList, baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        map.put("pageNum", commonPage.getPageNum());
        map.put("pageSize", commonPage.getPageSize());
        map.put("totalPage", commonPage.getTotalPage());
        map.put("total", commonPage.getTotal());
        map.put("list", commonPage.getList());
        map.put("onlineNumber", onlineNumber);
        map.put("offlineNumber", offlineNumber);
        map.put("faultNumber", faultNumber);
        map.put("waitConnectNumber", waitConnectNumber);
        return map;
    }
    /**
     * 首页统计充电桩列表数据
     *
     * @return
     */
    public List<C3ChargingBo> getC3ChargingList() {
        List<C3ChargingBo> c3ChargingBoList;
        if (SecurityUtils.getClientId() == null) {
            c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(null, null, "c3_id  ASC");
        } else {
            c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(null, SecurityUtils.getUserId(), "c3_id  ASC");
        }
        return c3ChargingBoList;
    }
@@ -249,6 +336,9 @@
            chargingDto.setDeviceTemperature(beatDataPackage.getDeviceTemperature());
            //灯杆ID
            chargingDto.setPoleId(pole.getId());
            //费率
            BigDecimal bigDecimal = SpringContextHolder.getBean(C3mChargingChargeService.class).getchargeDecimalByC3id(one.getC3Id());
            chargingDto.setRate(bigDecimal);
        }
        return chargingDto;
@@ -745,13 +835,13 @@
        A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), setAddressReqInnerFrame);
        System.out.println(a5Frame + "            -----a5Frame");
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(c3mCharging.getPoleDevicesCode(), a5Frame);
        StoreOperationRecordsUtils.storeInnerFrameData(c3Mac, "C3帧-设置地址", a5Frame, commonFrame);
        System.out.println(commonFrame + "            -----commonFrame");
        //保存操作日志
        String content = "旧C3Mac地址:" + c3Mac + ";新C3Mac地址:" + address;
        StoreOperationRecordsUtils.storeOperationData(null, null, "C3帧-设置地址", content);
        A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload());
        if (operationReportInnerFrame.isValidate()) {
@@ -765,6 +855,7 @@
        } else {
            throw new BusinessException("数据校验错误,请重新请求");
        }
    }
    /**