private void setInit(HttpServletRequest request) {

      HttpSession session = request.getSession();
      if ("bydate".equals(statType)) {
        beginDate = DateUtil.reFormatTime(request.getParameter("begindate"));
        endDate = DateUtil.reFormatTime(request.getParameter("enddate"));
        session.setAttribute("begindate45d", request.getParameter("begindate"));
        session.setAttribute("enddate45d", request.getParameter("enddate"));
        session.setAttribute("querytype45", "0");
        statTypeShow = GetProperty.getProperties("title.date", servlet.getServletContext());
        dateRange
            .append(GetProperty.getProperties("query.show.date", servlet.getServletContext()))
            .append(beginDate)
            .append("-")
            .append(endDate);
      } else if ("bymonth".equals(statType)) {
        beginDate = DateUtil.getMonth(request.getParameter("begindate"));
        endDate = DateUtil.getMonth(request.getParameter("enddate"));
        session.setAttribute("begindate45m", request.getParameter("begindate"));
        session.setAttribute("enddate45m", request.getParameter("enddate"));
        session.setAttribute("querytype45", "1");
        statTypeShow = GetProperty.getProperties("title.month", this.servlet.getServletContext());
        dateRange
            .append(GetProperty.getProperties("query.show.month", servlet.getServletContext()))
            .append(beginDate)
            .append("-")
            .append(endDate);
      } else if ("byweek".equals(statType)) {
        beginDate = DateUtil.reFormatTime(request.getParameter("begindate"));
        endDate = DateUtil.reFormatTime(request.getParameter("enddate"));
        session.setAttribute("begindate45w", request.getParameter("begindate"));
        session.setAttribute("enddate45w", request.getParameter("enddate"));
        session.setAttribute("querytype45", "2");
        // beginWeek = DateUtilExtend.getWeek(beginDate);
        // endWeek = DateUtilExtend.getWeek(endDate);
        statTypeShow = GetProperty.getProperties("title.week", servlet.getServletContext());
        dateRange
            .append(GetProperty.getProperties("query.show.week", servlet.getServletContext()))
            .append(beginDate)
            .append("-")
            .append(endDate);
      }
    }
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    // 查询条件要参数
    String posId = request.getParameter("posid");
    // 开始日期
    String beginDate = request.getParameter("begindate");
    // 结束日期
    String endDate = request.getParameter("enddate");
    StringBuffer dateRange = new StringBuffer(200);
    String statTypeShow = "";
    // 返回查询结果
    List weekResult = null;
    // 选择的图形显示类型
    String showType = request.getParameter("showType");
    String picType = "";
    // 金额单位
    int dataUnit = 0;
    // Y轴提示信息
    String yLabel = "";
    // 查询类型参数(按日期范围查询或月份查询)
    String statType = request.getParameter("statType");
    if (("".equals(beginDate)) || ("".equals(endDate))) {
      request.setAttribute("errorcont", new ErrorInfo().getErrorTip(statType, beginDate, endDate));
      return mapping.findForward("errortest");
    }
    HttpSession session = request.getSession();
    session.setAttribute("posid", posId);
    if ("bydate".equals(statType)) {
      beginDate = DateUtil.reFormatTime(request.getParameter("begindate"));
      endDate = DateUtil.reFormatTime(request.getParameter("enddate"));
      session.setAttribute("begindate32d", request.getParameter("begindate"));
      session.setAttribute("enddate32d", request.getParameter("enddate"));
      session.setAttribute("querytype32", "0");
      statTypeShow = GetProperty.getProperties("title.date", this.servlet.getServletContext());
      dateRange
          .append(GetProperty.getProperties("query.show.date", this.servlet.getServletContext()))
          .append(beginDate)
          .append("-")
          .append(endDate);
    } else if ("bymonth".equals(statType)) {
      beginDate = DateUtil.getMonth(request.getParameter("begindate"));
      endDate = DateUtil.getMonth(request.getParameter("enddate"));
      session.setAttribute("begindate32m", request.getParameter("begindate"));
      session.setAttribute("enddate32m", request.getParameter("enddate"));
      session.setAttribute("querytype32", "1");
      statTypeShow = GetProperty.getProperties("title.month", this.servlet.getServletContext());
      dateRange
          .append(GetProperty.getProperties("query.show.month", this.servlet.getServletContext()))
          .append(beginDate)
          .append("-")
          .append(endDate);
    } else if ("byweek".equals(statType)) {
      beginDate = DateUtil.reFormatTime(request.getParameter("begindate"));
      endDate = DateUtil.reFormatTime(request.getParameter("enddate"));
      session.setAttribute("begindate32w", request.getParameter("begindate"));
      session.setAttribute("enddate32w", request.getParameter("enddate"));
      session.setAttribute("querytype32", "2");
      // beginWeek = DateUtilExtend.getWeek(beginDate);
      // endWeek = DateUtilExtend.getWeek(endDate);
      statTypeShow = GetProperty.getProperties("title.week", this.servlet.getServletContext());
      dateRange
          .append(GetProperty.getProperties("query.show.week", this.servlet.getServletContext()))
          .append(beginDate)
          .append("-")
          .append(endDate);
    }

    if (DateUtil.getIntervalTime(endDate, beginDate) > Long.valueOf("7862400000").longValue()) {
      request.setAttribute("errorcont", new String("查询日期间隔不能大于两个月,请重新指定查询条件!"));
      return mapping.findForward("errortest");
    }
    // 绘制报表输入参数
    String accType[] = {"POS消费"};
    String xData = "";
    String showColumn = "tradefee";
    String dataType = "float";

    // 自定义图表显示要传入的参数
    // 显示自定义颜色
    boolean showCustColor = true;
    // 显示横坐标文字的旋转方向
    boolean showTextAxis = true;
    // 显示Bar图标上的数字
    boolean showLabel = false;
    // 显示自定义图表背景颜色
    boolean showBackgroundColor = true;
    // 显示轮廓线
    boolean showOutLine = true;
    // 显示网格线
    boolean showGrid = true;

    request.setAttribute("devname", getDevName(posId));
    List result = new TradeSerialDAO().getConsumeStatByPos(posId, beginDate, endDate, statType);
    if (result.isEmpty()) {
      request.setAttribute(
          "errorcont",
          getDevName(posId) + ":" + new ErrorInfo().getErrorTip(statType, beginDate, endDate));
      return mapping.findForward("errortest");
    }

    if (("bydate".equals(statType)) || ("bymonth".equals(statType))) {
      request.setAttribute("result", result);
      yLabel = new GetListResultStat().getYLabelMoney(result, "tradefee", dataType);
      dataUnit = new GetListResultStat().getUnitValue(result, "tradefee", dataType);
      xData = "balance_date";
      request.setAttribute(
          "ConsumeStatByPosChart",
          new DrawBarConfTypeMap(result, accType, xData, dataType, showColumn, dataUnit)
              .getDataProducer());
      showTextAxis = new ErrorInfo().showTextAxis(result);

    } else if ("byweek".equals(statType)) {
      weekResult = new GetListResultStat().getListByWeek(result, beginDate, endDate);
      Collections.sort(weekResult, new SortListByResult("balance_date"));
      yLabel = new GetListResultStat().getYLabelMoney(weekResult, "tradefee", dataType);
      dataUnit = new GetListResultStat().getUnitValue(weekResult, "tradefee", dataType);
      xData = "yearweek";
      request.setAttribute("result", weekResult);
      request.setAttribute(
          "ConsumeStatByPosChart",
          new DrawBarConfTypeMap(weekResult, accType, xData, dataType, showColumn, dataUnit)
              .getDataProducer());
      showTextAxis = new ErrorInfo().showTextAxis(weekResult);
    }
    // 根据要显示的图形类别绘制图形
    if ("line".equals(showType)) {
      picType = GetProperty.getProperties("pic.line", this.servlet.getServletContext());
      showOutLine = false;
    } else if ("bar".equals(showType)) {
      picType = GetProperty.getProperties("pic.bar", this.servlet.getServletContext());
      showOutLine = true;
    } else if ("stack".equals(showType)) {
      picType = GetProperty.getProperties("pic.stack", this.servlet.getServletContext());
      showOutLine = true;
    }

    request.setAttribute("ylabel", yLabel);
    request.setAttribute("pictype", picType);

    request.setAttribute("daterange", dateRange.toString());
    request.setAttribute("stattypeshow", statTypeShow);

    // 自定义图形显示
    request.setAttribute(
        "dataColor",
        new CustomerDrawChart(
                showCustColor, showTextAxis, showLabel, showBackgroundColor, showOutLine, showGrid)
            .getChartPostProcessor());
    return mapping.findForward("consumestatbypos_queryresult");
  }