⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 base_inc.java

📁 定制增长量分析模型。根据数据的增长量进行预测
💻 JAVA
字号:
package com.strongit.bi.mbs.model;



/**
 * 
 */


import java.math.BigDecimal;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

/**
 * <p>定基增长量模型</p>
 * <p>Description:定基增长量模型的算法(发展性分析)</p>
 * 
 *
 */
public class Base_Inc {
	public String stat(String xmlString) {
		
		Document requestDoc = null;
		try {
			requestDoc = DocumentHelper.parseText(xmlString);
		} catch (DocumentException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		List<Element> dataList=requestDoc.selectNodes("/Submodel/Data/RowData/ColumnData");
		double[] originData=new double[dataList.size()];
        //获取原始数据
		for(int i=0;i<dataList.size();i++)
		{
			if(dataList.get(i).getText()!=null&&!"".equals(dataList.get(i).getText()))
			{
				originData[i]=Double.valueOf(dataList.get(i).getText()).doubleValue();
			}
		}
		
        //获取时间段长度
		Element timespanElement=(Element)requestDoc.selectSingleNode("/Submodel/Common/Timespan");
		int timespan=0;
		if(timespanElement.getText()!=null&&!"".equals(timespanElement.getText()))
			timespan=Integer.valueOf(timespanElement.getText()).intValue();
        //获取预测时间长度
		Element fcstTimespanElement=(Element)requestDoc.selectSingleNode("/Submodel/Common/FcstTimespan");
		int fcstTimespan=0;
		if(fcstTimespanElement.getText()!=null&&!"".equals(fcstTimespanElement.getText()))
			fcstTimespan=Integer.valueOf(fcstTimespanElement.getText()).intValue();
		
	    double[] baseIncArray  = new double[timespan+fcstTimespan];
	    try{
	      for (int m = 1; m < timespan; m++) {
	    	baseIncArray[0] = 0;
	        BigDecimal c = new BigDecimal(originData[m] - originData[0]);//定基求差
	        baseIncArray[m] = c.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
	      }
	    }
	    catch (Exception he) {
	      he.printStackTrace();
	      }
//	  添加应用该模型后的时序结果
	    Element resultDatas=requestDoc.getRootElement().element("ResultDatas");
	    Element timeResultData=resultDatas.addElement("ResultData").addAttribute("view","TimeSeries");
	    Element timeResultRow=timeResultData.addElement("RowData").addAttribute("label", "定基增长量");
	    for(int i=0;i<baseIncArray.length;i++)
	    {
	    	timeResultRow.addElement("ColumnData").setText(String.valueOf(baseIncArray[i]));
	    }
	    

		
		
		//double[] origin_data, String[] parameter_array,int amount_parameter, int timespan, int fcst_timespan, double[][] variable_index=null;
//	    if(String.valueOf(timespan)==null||timespan<0){
//	      timespan=1;
//	    }
//	    if(String.valueOf(fcst_timespan)==null||fcst_timespan<0){
//	      fcst_timespan=0;
//	    }
//	    double[] base_inc_array  = new double[timespan+fcst_timespan];
//	    try{
//	      for (int m = 1; m < timespan; m++) {
//	        base_inc_array[0] = 0;
//	        BigDecimal c = new BigDecimal(origin_data[m] - origin_data[0]);//定基求差
//	        base_inc_array[m] = c.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//	      }
//	    }
//	    catch (Exception he) {
//	      he.printStackTrace();
//	      }
	    //return base_inc_array;
		return requestDoc.asXML();
	  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -