@SuppressWarnings({ "rawtypes", "unchecked" })
    public Map<String, Object> getNewStatement(HttpServletRequest request,
            HttpServletResponse response,Long grantId,String type,String operate,String columnJson) throws UnsupportedEncodingException, IOException {
   
        List<Map<String,Object>> lMap=new ArrayList<Map<String,Object>>();
        List<Map<String,Object>> cMap=new ArrayList<Map<String,Object>>();
        
        lMap=grantApplicationPersistence.findBySql(sql.toString(),names, condition1);
        Map <String, Object> colMap=new HashMap<String, Object>();
        Map<String, Object> footer= getCountMap();
        if("1".equals(type)){
            List<List<ColumnVO>> frozenColumnsList =new ArrayList<List<ColumnVO>>();
            List<ColumnVO> frozenColumnsList1= new ArrayList<ColumnVO>();
            // field 字段名  名称  宽度  对齐方式  是否影藏  是否复选框  是否排序  是否冻结列
            frozenColumnsList1.add(new ColumnVO("townCode","列名",80,"right",true,false,true,false,null));
            frozenColumnsList1.add(new ColumnVO("townName","列名",80,"left",false,false,true,true,"linkStyle"));
            frozenColumnsList.add(frozenColumnsList1);
            colMap.put("frozenColumns", frozenColumnsList);
            List<List<ColumnVO>> columnsList =new ArrayList<List<ColumnVO>>();
            List<ColumnVO> columnsList1= new ArrayList<ColumnVO>();
            List<ColumnVO> columnsList2= new ArrayList<ColumnVO>();
            columnsList1.add(new ColumnVO("currentTotalSum","列名",80,"right",2,null));
            columnsList1.add(new ColumnVO("currentTotalMoney","列名",80,"right",2,null,"valueToFixed"));
            columnsList1.add(new ColumnVO("successPerson","列名",80,"right",2,null));
            columnsList1.add(new ColumnVO("successMoney","列名",80,"right",2,null,"valueToFixed"));
            columnsList1.add(new ColumnVO("failPerson","列名",80,"right",2,null,"nonzeroWarning"));
            columnsList1.add(new ColumnVO("failMoney","列名",80,"right",2,null,"nonzeroWarning"));
            columnsList1.add(new ColumnVO("updatePerson","列名",80,"right",2,null));
            for (int j = 0; j < bankList.size(); j++) {
                columnsList1.add(new ColumnVO("",bankList.get(j).get("name").toString(),80,"",null,2));
                columnsList2.add(new ColumnVO("person"+bankList.get(j).get("code"),"列名",80,"right","nonzeroWarning"));
                columnsList2.add(new ColumnVO("money"+bankList.get(j).get("code"),"列名",80,"right","nonzeroWarningFixed"));
                footer.put("person"+bankList.get(j).get("code"), 0);
                footer.put("money"+bankList.get(j).get("code"), 0);
            }
            columnsList.add(columnsList1);
            columnsList.add(columnsList2);
            colMap.put("columns", columnsList);
        }
        Set key=footer.keySet();
        for (Map<String, Object> map : lMap) {
            for (Object object : key) {
                if(!"townCode".equals(object.toString())){
                    if(!"townName".equals(object.toString())){
                        double num=Double.valueOf(Assert.isNotEmpty(footer.get(object.toString()))==true?footer.get(object.toString()).toString():"0");
                        double a= Assert.isNotEmpty(map.get(object))?Double.valueOf(map.get(object).toString()):0;
                        footer.put(object.toString(),num+=a );
                    }else{
                        footer.put(object.toString(),"合计");
                    }
                    
                }
            }
        }
        cMap.add(footer);
        Map <String, Object> mpAll = new HashMap <String, Object>();
        Map <String, Object> mp = new HashMap <String, Object>();
        mp.put("total", lMap.size());
        mp.put("rows", lMap);
        mp.put("footer",cMap);
        if("1".equals(type)){
            mpAll.put("columnsMp",colMap);
            mpAll.put("ta", mp);
            if(Assert.isNotEmpty(operate)){
                List<Map<String,Object>> date= (List<Map<String, Object>>) mp.get("rows");
                List<Map<String,Object>> footerDate= (List<Map<String, Object>>) mp.get("footer");
                for (Map<String, Object> map : footerDate) {
                    date.add(map);
                }
                new WorkbookUtil().exportToCollect(request, response, operate,"表名", columnJson,date);
                return null;
            }
            return mpAll;
        }
        if(Assert.isNotEmpty(operate)){
            List<Map<String,Object>> date= (List<Map<String, Object>>) mp.get("rows");
            List<Map<String,Object>> footerDate= (List<Map<String, Object>>) mp.get("footer");
            for (Map<String, Object> map : footerDate) {
                date.add(map);
            }
            new WorkbookUtil().exportToCollect(request, response, operate,"表名", columnJson,date);
            return null;
        }
        
        return mp;
    }

easyui DataGrid 工具类之 后台生成列的更多相关文章

  1. easyui DataGrid 工具类之 WorkbookUtil class

    /** * @Title: WorkbookUtil.java * @Description: excel工具类 * @date 2014年5月29日 上午10:36:42 * @version V1 ...

  2. easyui DataGrid 工具类之 TableUtil class

    import java.lang.reflect.InvocationTargetException;import java.util.ArrayList;import java.util.HashM ...

  3. easyui DataGrid 工具类之 列属性class

    public class ColumnVO { /**     * 列标题文本     */    private String title; /**     * 列字段名称     */    pr ...

  4. easyui DataGrid 工具类之 util js

    var jq;                var tab;                var tabsIndex;                                /**     ...

  5. easyui DataGrid 工具类之 Utils class

    import java.lang.reflect.InvocationTargetException;import java.text.ParseException;import java.text. ...

  6. easyui DataGrid表体单元格跨列rowspan

    最近做项目用到了jquery easyui,其中一组DataGrid做的报表是给客户大领导看的,客户要求报表样式跟他们原有系统的一模一样(如下图1). DataGrid样式好调,只是城市名称单元格跨行 ...

  7. Mybitis根据工具类反射数据库生成映射+整合springboot

    一 反向生成数据库mapper的工具类: 添加依赖 <dependency> <groupId>org.mybatis.generator</groupId> &l ...

  8. EasyUI datagrid : 启用行号、固定列及多级表头后,头部行号位置单元格错位的问题

    症状如图: 上图中,行号列与checkbox 列融合了.解决方法是在datagrid 的 onLoadSuccess 事件中加入如下代码: var opts = $(this).datagrid('o ...

  9. java工具类(三)之生成若干位随机数

    java 生成若干位随机数的问题 在一次编程的过程中偶然碰到一个小问题,就是需要生成一个4位数的随机数,如果是一个不到4位大的数字,前面可以加0来显示.因为要求最后是一个4位的整数,不带小数点.当时就 ...

随机推荐

  1. (转)微信小程序破解IDE

    1.IDE下载 微信web开发者工具,本人是用的windows 10 x64系统,用到以下两个版本的IDE安装工具与一个破解工具包: wechat_web_devtools_0.7.0_x64.exe ...

  2. Altium Designer 生成Gerber文件

  3. JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log

    前面三篇文章分别讲述了 HTTP Mirror Server . Debug PostProcessor 和 Debug Samper 的脚本调试实例.此文主要讲述第四种调试方法,通过 BeanShe ...

  4. Win2008R2+java+tomcat安装

    Win2008R2+java+tomcat安装 准备软件: jdk-7u25-windows-x64.exe apache-tomcat-7.0.42-windows-x64.zip 一.安装java ...

  5. windows环境,idea的Terminal每次输入git命令都要提示输入用户名,密码

    打开本地的这个目录(以上图片所示) 以我本地项目为例: 项目根目录下-->.git-->config文件 找到[remote "origin"]下url,更改其为htt ...

  6. 批量修改一张表格的多个sheet名

    例如这样的函数: Sub aab() For x = 4 To 5 Sheets(x).Name = "10" & Format(x - 3, "00" ...

  7. C++学习笔记 构造&析构 友元 new&delete

    构造&析构函数 构造函数 定义:与类同名,可以有参可以无参,主要功能用于在类的对象创建时定义初始化的状态,无返回值,也不能用void修饰,构造函数不能被直接调用,必须通过new运算符在创建对象 ...

  8. Sublime、Webstorm,还有CLI、Atom,这些开发工具的更新你清楚吗?

    APICloud App开发平台一直在不断升级开发工具库,这一年增加了众多开发工具.目的就是让开发者可以选择使用任何自己喜欢的HTML5开发工具去开发App. 那么2016年到现在,这些开发工具都有了 ...

  9. cursor or set-based

    标题可能和正文不太相符.我主要是记录工作中遇到使用游标的语句改成普通set-based operation,执行时间快了很多. 1.游标语句 declare @startDate dateTime d ...

  10. Windows Server 2008 R2 组策略基本设置

    域控组策略基本设置 标注: 组策略计算配置:系统需要重启才生效                          组策略用户配置:系统注销即可生效 一.              域用户登录桌面后自动 ...