highcharts3D饼图统计

需要导入js
highcharts-3d.js
highcharts-zh_CN.js
highcharts.js


<
div class="one1"> <div class="two_top"> <span class="schedule">完成情况</span> <div id="number"> (已完成个数:<span id ="finish"></span> 未完成个数:<span id ="unfinish"></span>) </div> </div> <div> <div id="container" style="height: 210px"></div> </div> </div>
//请求饼状图数据
        $.ajax({
            url:  "${basePath}/home/maintenanceStatistic",
            type: "POST",
            async: false,
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                if(data.data.length!=0){
                    $("#unfinish").html(data.data[0][1]);
                    $("#finish").html(data.data[1][1]);
                    if(!(data.data[0][1] == 0 && data.data[1][1] == 0)){
                        showPhoto(data);
                    }
                }
            }, error: function (data) {
                layer.alert("读取失败");
            }
        })
         //饼状图
        function showPhoto(data){
             $('#container').highcharts({
                    chart: {
                        type: 'pie',
                        options3d: {
                            enabled: true,
                            alpha: 55,
                            beta: 0
                        }
                    },
                title: {
                    text:null
                },
                tooltip: {
                    headerFormat: '{series.name}<br>',
                    pointFormat: '{point.name}: <b>{point.percentage:.1f}%</b>'
                },
                plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: 'pointer',
                        depth: 35,
                        dataLabels: {
                            enabled: true,
                            format: '{point.name}'
                        }
                    }
                },
                credits: {
                    enabled: false
                },
                    series: [{
                        type: 'pie',
                        name: '生产检修完成情况统计占比',
                        data: [
                            ['未完成',(data.data[0])[0] ],
                            ['已完成',(data.data[1])[0] ]
                            ]
                        
                    }]
                });

        }
/**
     * 统计分析
     * @param date
     * @return
     */
    @RequestMapping("/maintenanceStatistic")
    @ResponseBody
    public Map<String,Object> maintenanceStatistic(Model model){
        Map<String,Object> map = new HashMap<>();
        List<PmMaintenanceplan_kfq> list = new ArrayList<PmMaintenanceplan_kfq>();
        List<List<Object>> listStr = new ArrayList<List<Object>>();
        //当前用户权限名
        List<String> listShior= activeUser();
        int num = listShior.size();
        if(listShior!=null&&num!=0){
            if(listShior.contains(OVERHAUL_PROCESS)){
                List<Object> listStr1 = new ArrayList<Object>();
                List<Object> listStr2 = new ArrayList<Object>();
                
                list = pmMaintenanceplanService.maintenanceStatistic();
                List<PmMaintenanceplan_kfq> list1 = new ArrayList<PmMaintenanceplan_kfq>();
                List<PmMaintenanceplan_kfq> list2 = new ArrayList<PmMaintenanceplan_kfq>();
                
                int size = list.size();
                for(int i=0;i<size;i++){
                    Date realdeliverytime = list.get(i).getRealdeliverytime();
                    if(realdeliverytime==null||"".equals(realdeliverytime)){
                        list1.add(list.get(i));
                    }else{
                        list2.add(list.get(i));
                    }
                }
                int pct1 = 0;
                int pct2 = 0;
                double size1 = list1.size();
                double size2 = list2.size();
                //转换百分比
                double tempresult1 = size1/size*100;
                double tempresult2 = size2/size*100;
                DecimalFormat df1 = new DecimalFormat("0");
                if(tempresult1 >= 0){
                    pct1=Integer.parseInt( df1.format(tempresult1));
                }
                if(tempresult2 >= 0){
                    pct2=Integer.parseInt( df1.format(tempresult2));
                }
                listStr1.add(pct1);
                listStr1.add(size1);
                listStr2.add(pct2);
                listStr2.add(size2);
                listStr.add(listStr1);
                listStr.add(listStr2);
                map.put("data", listStr);
            }else{
                map.put("data", listStr);
            }
        }else{
            map.put("data", listStr);
        }
        
        
        return map;
    }

 

posted @ 2017-10-30 17:59  Lcy_Sun  阅读(1118)  评论(0编辑  收藏  举报