"玩转“列表展示

1.需求分析
先看看需求给功能做的列表展示页
这里写图片描述
看到这个就知道是要做一个列表展示的集合,里面包含各个环节的附件跟公文(有的还是单个的)。看到这个需求有点懵逼啊,对本身公司的项目环境不是很熟悉。然而这里的统计却是整个项目里面的流程都包括进来了,最重要的一点是:每个人做的功能有差异,附件ID的值并不是固定的。这里设计了一张表就是为了把所以环节跟各个阶段的东西串联起来。但是在写SQL的时候发现,列的合并并不好处理,而且大标题的列在结果中也不好展示。我表示对着这个SQL愣是看了三天还是找不到解决的办法(因为前台必须要求传后台传入前台的值为listXml)。
2.需求功能的实现
由于在写SQL的时候确实没有什么好的办法,所以只能够硬着头皮先往下写吧(准备到后面返回去改的)!SQL用了6到7个临时表,然后在组装到一起。把记录查出来之后,发现附件跟公文这两个并没有什么实际联系为什么要放一起展示?终于忍不住去问上级了,我把我写的SQL查的数据给他看。然后跟他说明了我现在遇到的问题,领导的回答是跟需求沟通。然后就跟需求沟通,没想到需求并没有理我。我就直接休息不干,这个需求本身就很难做。后面领导问做完了没?我就知道要往后面做了。把那个放一边,按照自己能够实现的来吧。后台拼接第二列数据(包括红色*号的标记)

    //循环拼凑第二列
    List lists=new ArrayList();

    String filetitle = MapUtils.getString(inputData, "FILETITLE", "").toUpperCase().trim();
    String docfrom = MapUtils.getString(inputData, "DOCFROM", "");
    String phasename = MapUtils.getString(inputData, "PHASENAME", "");
    if(filetitle=="" && docfrom=="" && phasename==""){
        String pageType = MapUtils.getString(inputData, "PAGETYPE", "");
        HashMap mapd=new HashMap();
        mapd.put("JIEDUAN", "<B>需求及工作量管理</B>");
        mapd.put("IDM", UUID.randomUUID().toString());
        lists.add(mapd);
    }
    for(int i=0;i<list.size();i++){
        HashMap map=(HashMap) list.get(i);
        String biaoZhi=MapUtils.getString(map, "BITIAN", "");
        //必填标记
        if("1".equals(biaoZhi)){
            map.put("JDNAME", MapUtils.getString(map, "JDNAME", "")+"<span class='bitian'>*</span>");
        }
        String a=map.get("BO_ID").toString().substring(0,5);
        String c="";
        c=dao.findId(a);
        if(i<list.size()-1){
        HashMap map1=(HashMap) list.get(i+1);

        String b=map1.get("BO_ID").toString().substring(0,5);
        String a1=map.get("BO_ID").toString().substring(0,3);
        String b1=map1.get("BO_ID").toString().substring(0,3);
        int e=Integer.valueOf(map.get("SEQ").toString());

        String d="";
        map.put("IDM", UUID.randomUUID().toString());
        lists.add(map);
            if(!a.equals(b) && !a1.equals(b1)){
                    //加两级
                c=dao.findId(b1);
                HashMap mapd1=new HashMap();
                mapd1.clear();
                mapd1.put("IDM", UUID.randomUUID().toString());
                mapd1.put("JIEDUAN", "<B>"+c+"</B>");
                lists.add(mapd1);
            }

        } else {
            lists.add(map);
        }
    }

前台展示第一列:这里写图片描述
3.实现功能过程中遇到的问题
写SQL的问题:500多行的SQL,想想我都不想写第二遍;
第一列图片的展示:没有引用原功能的样式导致图片加载
列表合并:由于自己在拼接的过程中产生重复的数据导致合并列表的时候使得隔壁列也合并了。一句话总结:自己技术太菜,踩的坑不够多(后台踩前端的坑。。。)。
这里写图片描述出来;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章