highcharts3D饼图统计

本文介绍了一个基于Highcharts的生产检修完成情况统计分析系统,通过饼状图展示已完成和未完成的任务数量及其占比,并实现了数据的动态加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要导入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;
    }

 

转载于:https://www.cnblogs.com/Lcy-Sun0419/p/7755650.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值