"玩轉“列表展示

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,想想我都不想寫第二遍;
第一列圖片的展示:沒有引用原功能的樣式導致圖片加載
列表合併:由於自己在拼接的過程中產生重複的數據導致合併列表的時候使得隔壁列也合併了。一句話總結:自己技術太菜,踩的坑不夠多(後臺踩前端的坑。。。)。
這裏寫圖片描述出來;

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