ReportManage.java 2.21 KB
package com.sitech.jmx.manage;

import com.sitech.base.Config;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import com.sitech.ismp.messageObject.PerformanceObject;
import com.sitech.util.DateFormater;
import com.sitech.util.mq.DataTunnel;
import com.sitech.util.mq.TunnelFactory;

import java.util.Date;
import java.util.Vector;

/**
 * Created with IntelliJ IDEA.
 * User: linxc
 * Date: 14-1-10
 * Time: 上午11:43
 * To change this template use File | Settings | File Templates.
 */
public class ReportManage {

    public static void reportKPI(Vector<TblATO_KPIDETAIL> kpis){
        for(TblATO_KPIDETAIL kpi : kpis){
            reportKPI(kpi);
        };
    }

    public static void reportKPI(TblATO_KPIDETAIL kpi) {
        PerformanceObject kpidetail = new PerformanceObject();
        kpidetail.setUnitId(kpi.UNIT_ID);
        kpidetail.setKpiId(kpi.KPI_ID);
        kpidetail.setKpiValue(kpi.KPI_VALUE);
        kpidetail.setCllTime(kpi.CLL_TIME == null? new Date() : kpi.CLL_TIME);
        kpidetail.setCllTimeStr(kpi.CLL_TIME_STR == null ? DateFormater.datetimeToString(new Date()) : kpi.CLL_TIME_STR);
        kpidetail.setExtUnitId(getExtUnitId(kpi.UNIT_ID));

        reportKPI(kpidetail);
    }

    public static void reportKPI(PerformanceObject kpi){
        TunnelFactory.getTunnel(Config.Q_PERFORMANCE).writeData(kpi);
    }

    /**
     * 获得扩展UNIT_ID,如:10-10-20:deviceId
     * @throws
     * @since Ver 1.1
     */
    public static String getExtUnitId(String unitId){
        String extUnitId = "";
        if (unitId.startsWith("10")) {
            String[] elem = unitId.split(":");
            if(elem.length >=2){
                String[] kbp = elem[0].split("-");
                if (kbp.length >= 3) {
                    extUnitId = kbp[0] + "-" + kbp[1] + "-" + kbp[2];
                }else{
                    extUnitId = elem[0];
                }

                String deviceId = elem[1].split("-")[0];

                extUnitId += ":" + deviceId;
            } else {
                extUnitId = "n/r";
            }
        }else{
            // 业务类的EXT_UNIT_ID
            String[] elem = unitId.split(":");
            extUnitId = elem[0];
        }
        return extUnitId;
    }
}