📄 indexdataaction.java
字号:
package com.srit.gcz.action;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.srit.gcz.bean.IndexData;
import com.srit.gcz.bean.IndexDimMember;
import com.srit.gcz.bean.IndexFrequency;
import com.srit.gcz.bean.IndexIndexs;
import com.srit.gcz.bean.IndexStat;
import com.srit.gcz.service.IndexDataService;
import com.srit.gcz.service.IndexDimMemberService;
import com.srit.gcz.service.IndexDimService;
import com.srit.gcz.service.IndexFrequencyService;
import com.srit.gcz.service.IndexIndexsService;
import com.srit.gcz.service.IndexStatService;
import com.srit.gcz.util.JsonReturn;
import com.srit.gcz.util.SysFuncUtils;
/**
* 指标数据
* @Company 国研科技
* @author 陈鹏昊
* @date 2009-3-24
* @version 1.0
* @since 1.0
*/
public class IndexDataAction extends BaseAction{
// serialVersionUID
private static final long serialVersionUID = -2688842932926490481L;
// Spring注入
private IndexIndexsService indexIndexsService;
private IndexDataService indexDataService;
private IndexDimService indexDimService;
private IndexDimMemberService indexDimMemberService;
private IndexFrequencyService indexFrequencyService;
private IndexStatService indexStatService;
// 传入的查询参数对象
private IndexData bean = new IndexData();
// 录入数据
private List<IndexData> beans = null;
// 开始年份
private int sYear = -1;
// 结束年份
private int eYear = -1;
// 维度
private String dimSel = null;
// 地区维度下拉框,目前默认选择他,而无需选择维度
private String subDimSel = null;
// 统计属性
private String statSel = null;
// 统计频度
private String frquencySel = null;
// 指标选择
private String indexSel = null;
// 传入ID串
private String IDs = null;
// Json返回对象
private JsonReturn jr = new JsonReturn();
// 数据标题
private String[] viewCols = null;
// 数据展示
private Map<String, Map<String, IndexData>> viewData = null;
public String save(){
indexDataService.save(beans);
return enterPage();
}
public String createTable(){
// 根据频度 查找频度对应表 按顺序获取频度对应的子类 包括名称,数量
List<String> sorts = indexFrequencyService.getFrequencySort(bean.getFrequencyId());
int sortLength = sorts.size();
String[] years = SysFuncUtils.inputBlankYear(sYear, eYear);
// 根据用户输入的年份区间,按2007,2008的顺序,以及频度对应的子类 合并为2008年1月 2008年第一季度的形式 一个数组
int arrLength = sortLength * years.length;
String[] viewCols = new String[arrLength];
int i = 0;
for(int j = 0;j < years.length;j++){
String tempY = years[j];
for(int k = 0;k < sortLength;k++){
String tempArr = sorts.get(k);
viewCols[i] = tempY+ "年" + tempArr;
i++;
}
}
// 获取指标对应的数据,以map形式存储key为"2008年1月" value则为IndexData
String[] indexID = this.IDs.split(",");
Map<String, Map<String, IndexData>> viewData = new HashMap<String, Map<String, IndexData>>();
for(int m = 0; m < indexID.length;m++){
String indexName = indexIndexsService.getIndexIndexsByID(Integer.parseInt(indexID[m])).getIndexName();
Map<String, IndexData> datas = indexDataService.getIndexDatasReMap(Integer.parseInt(indexID[m]), bean.getFrequencyId(), bean.getAreAid(), bean.getStatId(), sYear+"", eYear+"");
for(int j = 0;j < years.length;j++){
String tempY = years[j];
for(int k = 0;k < sortLength;k++){
String tempArr = sorts.get(k);
if(datas.get(tempY+ "年" + tempArr) == null){
IndexData blank = new IndexData();
blank.setId(0);
blank.setAreAid(bean.getAreAid());
blank.setIndexId(Integer.parseInt(indexID[m]));
blank.setFrequencyId(bean.getFrequencyId());
blank.setStatId(bean.getStatId());
blank.setDataArr(-1);
blank.setFrequencyAtt(tempArr);
blank.setYear(tempY);
blank.setIndexValue(0.0);
blank.setUuid(SysFuncUtils.getUUID());
datas.put(tempY+ "年" + tempArr, blank);
}
}
}
viewData.put(indexName, datas);
}
this.viewCols = viewCols;
this.viewData = viewData;
return IFRAME;
}
public String getIntersectionInfo(){
getDefaultInfo();
/*if(this.getDimSel().length() == 0){
jr.setSuccess(false);
jr.setError("所选指标不包含相同的维度项");
return ALLJSON;
}*/
if(this.getStatSel().length() == 0){
jr.setSuccess(false);
jr.setError("所选指标不包含相同的统计属性");
return ALLJSON;
}
if(this.getFrquencySel().length() == 0){
jr.setSuccess(false);
jr.setError("所选指标不包含相同的统计频度");
return ALLJSON;
}
jr.setSuccess(true);
return ALLJSON;
}
public String enterPage(){
List<IndexIndexs> indexs = indexIndexsService.getAllIndexIndexs();
StringBuffer indexsStr = new StringBuffer();
if(indexs != null){
for(IndexIndexs temp : indexs){
indexsStr.append("<option value=\""+temp.getId()+"\">"+temp.getIndexName()+"</option>");
}
}
indexSel = indexsStr.toString();
// 默认显示地区
List<IndexDimMember> subDims = indexDimMemberService.getIndexDimMembersByDimID(1);
StringBuffer subdimStr = new StringBuffer();
if(subDims != null){
for(IndexDimMember temp : subDims){
subdimStr.append("<option value=\""+temp.getId()+"\">"+temp.getMemberName()+"</option>");
}
}
subDimSel = subdimStr.toString();
return SUCCESS;
}
private void getDefaultInfo(){
//List<IndexDim> dims = indexDimService.getIntersectionDims(this.IDs);
List<IndexStat> stats = indexStatService.getIntersectionStats(this.IDs);
List<IndexFrequency> frequencys = indexFrequencyService.getIntersectionFrequencys(this.IDs);
//StringBuffer dimStr = new StringBuffer();
StringBuffer stateStr = new StringBuffer();
StringBuffer frequencyStr = new StringBuffer();
/*for(IndexDim temp : dims){
dimStr.append("<option value=\""+temp.getId()+"\">"+temp.getName()+"</option>");
}*/
if(stats != null){
for(IndexStat temp : stats){
stateStr.append("<option value=\""+temp.getId()+"\">"+temp.getName()+"</option>");
}
}
if(frequencys != null){
for(IndexFrequency temp : frequencys){
frequencyStr.append("<option value=\""+temp.getId()+"\">"+temp.getName()+"</option>");
}
}
// 维度
//dimSel = dimStr.toString();
// 统计属性
statSel = stateStr.toString();
// 统计频度
frquencySel = frequencyStr.toString();
}
public List<IndexData> getBeans() {
return beans;
}
public void setBeans(List<IndexData> beans) {
this.beans = beans;
}
public int getSYear() {
return sYear;
}
public void setSYear(int year) {
sYear = year;
}
public int getEYear() {
return eYear;
}
public void setEYear(int year) {
eYear = year;
}
public IndexData getBean() {
return bean;
}
public void setBean(IndexData bean) {
this.bean = bean;
}
public JsonReturn getJr() {
return jr;
}
public void setJr(JsonReturn jr) {
this.jr = jr;
}
public String getIDs() {
return IDs;
}
public void setIDs(String ds) {
IDs = ds;
}
public String getDimSel() {
return dimSel;
}
public void setDimSel(String dimSel) {
this.dimSel = dimSel;
}
public String getStatSel() {
return statSel;
}
public void setStatSel(String statSel) {
this.statSel = statSel;
}
public String getFrquencySel() {
return frquencySel;
}
public String[] getViewCols() {
return viewCols;
}
public void setViewCols(String[] viewCols) {
this.viewCols = viewCols;
}
public Map<String, Map<String, IndexData>> getViewData() {
return viewData;
}
public void setViewData(Map<String, Map<String, IndexData>> viewData) {
this.viewData = viewData;
}
public void setIndexIndexsService(IndexIndexsService indexIndexsService) {
this.indexIndexsService = indexIndexsService;
}
public void setFrquencySel(String frquencySel) {
this.frquencySel = frquencySel;
}
public void setIndexDimService(IndexDimService indexDimService) {
this.indexDimService = indexDimService;
}
public void setIndexFrequencyService(IndexFrequencyService indexFrequencyService) {
this.indexFrequencyService = indexFrequencyService;
}
public String getIndexSel() {
return indexSel;
}
public void setIndexSel(String indexSel) {
this.indexSel = indexSel;
}
public String getSubDimSel() {
return subDimSel;
}
public void setSubDimSel(String subDimSel) {
this.subDimSel = subDimSel;
}
public void setIndexDimMemberService(IndexDimMemberService indexDimMemberService) {
this.indexDimMemberService = indexDimMemberService;
}
public void setIndexStatService(IndexStatService indexStatService) {
this.indexStatService = indexStatService;
}
public void setIndexDataService(IndexDataService indexDataService) {
this.indexDataService = indexDataService;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -