时间过滤条件下拉列表扩展

1.2 扩展方法

  在下拉列表中的每一项时间上都是一段连续的时间,那么每段时间一定会有一个开始时间和结束时间, 所以下拉列表中的每一项实际上是有两个时间点组成。这里我们把每个时间点都作为一个系统变量。

1.2.1 实现系统变量

  首先我们需要实现两个系统变量,一个表示开始时间,一个表示结束时间,详情可参考:系统变量          

1.2.1.1 实现系统变量接口

接口返回的是一个Date类型的数据,示例代码:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import org.slf4j.LoggerFactory;

import com.neusoft.saca.dataviz.data.engine.evaluator.SystemVariableSerializable;
import com.neusoft.saca.dataviz.data.util.Context;

/**
 * 去年开始时间
 * 
 * @author ch-zhuo
 * 
 */
public class LastYearStart implements SystemVariableSerializable<Date> {

    /**
     * 
     */
    private static final long serialVersionUID = 4658964762083676796L;

    private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private Calendar calendar = Calendar.getInstance();

    @Override
    public Date getValue(Map<String, Object> params) {
        Long value = (Long) Context.get(Context.CLIENT_TIME);
        if (value == null || value < 0) {
            LoggerFactory.getLogger(getClass()).warn("Client time not acquired, using server time instead.");
            calendar.setTime(new Date());
        } else {
            calendar.setTime(new Date(value));
        }

        calendar.add(Calendar.YEAR, -1);

        int year = calendar.get(Calendar.YEAR);

        try {
            return format.parse(year + "-01-01 00:00:00");
        } catch (ParseException e) {
            LoggerFactory.getLogger(getClass()).error("LastYearStart Error", e);
            return null;
        }
    }
}

1.2.1.2 系统变量配置修改

  除了扩展接口还要修改系统变量的配置文件dataviz-service\WEB-INF\conf\system-variable.yaml, 按照如下格式添加系统变量即可。

- name: 系统变量ID
  caption: 系统变量描述
  className: 获取系统变量值的实现类名称
  dataType: 系统变量数据类型
  1. 其中name和caption的值都不可与其他的系统变量重复,配置之后一经在系统中使用过,就再也不能随意修改。
  2. dataType的值是数字,分别为:1表示字符类型,2表示数值类型,3表示时间类型,11表示字符类型列表。

示例配置如下:

- name: lastYearStart
  caption: 去年开始时间
  className: com.neusoft.saca.dataviz.data.engine.evaluator.timeitem.LastYearStart
  dataType: 3

1.2.2 下拉列表配置

  在实现完系统变量接口和配置之后,需要在下拉列表的配置文件dataviz-service\WEB-INF\conf\time-list-item.yaml中进行添加, 按照如下格式添加即可。

- name: 列表项ID
  caption: 列表项描述
  start: 开始时间的系统变量ID
  end: 结束时间的系统变量ID

示例配置如下:

- name: lastyear
  caption: 去年
  start: lastYearStart
  end: lastYearEnd

results matching ""

    No results matching ""

    results matching ""

      No results matching ""