@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. Linux服务器搬迁记(一)

    更换服务器必过之坑(一):文件转移 Linux服务器一般通过ssh进行远程操作,为了避免各种权限问题导致转移不成功,我一般直接使用root账户.这次却是行不通了.ssh进行文件传输,默认禁止用root ...

  2. Linux从零单排(二):setuptools、pip、anaconda2的环境配置

    为了更方便的使用Python的类库,需要进行相应的配置 (一)setuptools的配置 1.setuptools的下载 命令行输入wget https://pypi.python.org/packa ...

  3. vi(Visual Editor)常用的命令

    任何用户最常做的事要数创建和编辑文件,包括文档.报告和文字,vi(Visual Editor)是一个有效而相对简单的全荧幕编辑,使用vi,只要记著少量基本指令,就可以开始起步,再学习其他更复 杂的指令 ...

  4. JMeter学习-028-JMeter默认jmx脚本分发目录(路径)定制

    我们在分布式执行参数化脚本时,为尽可能多的利用Slave资源,尽可能将参数文件配置为相对路径,以更好的去适配Slave环境.与此同时,每台Slave的服务jmeter -s 启动的路径可能不尽相同,同 ...

  5. Smokeping安装教程

    Smokeping安装教程 #Smokeping2.6.8安装教程 #2016.3.6 改编v1.0 #Linux运维技术交流 347163978   环境 CentOS release 6.4 (F ...

  6. XSLT简介

    什么是? http://www.w3school.com.cn/xsl/xsl_intro.asp XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言. XPath ...

  7. 解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题

    最新的jenkins打开jenkins robot framework报告会提示如下 Verify that you have JavaScript enabled in your browser.  ...

  8. 新上市Lighthouse专用芯片TS3633规格介绍

    背景介绍 Valve 有远大的愿景.它决心要把 SteamVR 追踪系统推向世界,从虚拟现实里的空间定位,到机器人领域,Valve 想为各种环境下的跟踪应用提供支持. 上个月,Valve 方面宣布会把 ...

  9. 模拟jQuery简单封装ajax

    /*模拟jQuery的写法 (简单写法)*/ var $={}; /*ajax*/ $.ajax = function (options) { /* * 请求 * 1.请求接口 type get po ...

  10. hduoj 1251 统计难题

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory ...