echart动态加载多个柱形图

前台

service层

@Service("hosdeptStatusService")
@Transactional
public class HosdeptServiceImpl implements HosdeptStatusService {

    @Autowired
    private HosdeptStatusDAO hosdeptStatisDAO;
    
    
    /**
     * 原生sql实现
     */
    @Autowired
    private BaseDAO baseDao;

    @Override
    public List<Map<String, String>> queryNumAndDate(String orgCode) {
        String sql="select DEPT_NAME,BUSY_DATE,ORG_CODE,O_NUM from (select DEPT_NAME,BUSY_DATE,ORG_CODE,O_NUM from PHP_MOBILE_HOS_DEPT_STATUS order by BUSY_DATE) where rownum<=7"
                + "  and t.ORG_CODE='"+ orgCode + "'"+" order by rownum DESC";
        List<Map<String, String>> list = new ArrayList<Map<String, String>>(); 
        List<Map<String, Object>> mapList = baseDao.mapQueryBySql(sql);
        for (Map<String, Object> map : mapList){
            Map<String, String> mp=new HashMap<String, String>();
            mp.put("deptName", map.get("DEPT_NAME").toString());
            mp.put("busyDate", map.get("BUSY_DATE").toString());
            mp.put("oNum", map.get("O_NUM").toString());
            list.add(mp);
        }
        return list;
    }

    @Override
    public List<Map<String, String>> oldPeopVis(String orgCode) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Response queryDeptStaicData(String orgCode) {
        String sql="SELECT t.DEPT_NAME  FROM PHP_MOBILE_HOS_DEPT_STATUS t   where " +" t.ORG_CODE='"+ orgCode + "'" + "  and t.DEPT_NAME is not null  GROUP BY t.DEPT_NAME"; 
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
        //获得医院的所有科室
        List<Map<String, Object>> deptNameList = baseDao.mapQueryBySql(sql);
        
        for (Map<String, Object> map : deptNameList){
            Map<String, String> data = new HashMap<String, String>();
            //循环获得科室名称
            Object DEPT_NAME = map.get("DEPT_NAME");
            if(DEPT_NAME != null && !"".equals(DEPT_NAME) && !"null".equals(DEPT_NAME)) {
                StringBuffer dateStr = new StringBuffer();//时间
                StringBuffer oNumStr = new StringBuffer();//门诊量
                
                
                
                String sql1="select DEPT_NAME,BUSY_DATE,ORG_CODE,O_NUM from (select DEPT_NAME,BUSY_DATE,ORG_CODE,O_NUM from PHP_MOBILE_HOS_DEPT_STATUS order by BUSY_DATE) where rownum<=7"
                        + "  and DEPT_NAME='"+ DEPT_NAME + "'"+" order by rownum DESC";
                
                //通过部门名称获取时间和门诊量
                List<Map<String, Object>> dateAndNumList = baseDao.mapQueryBySql(sql1);
                if(dateAndNumList != null) {
                    for (Map<String, Object> map1 : dateAndNumList){
                        dateStr.append(map1.get("BUSY_DATE").toString()).append(",");
                        oNumStr.append(map1.get("O_NUM").toString()).append(",");
                    }
                    String as1 = dateStr.toString();
                    String as2 = oNumStr.toString();
                    data.put("BUSY_DATE", as1.substring(0,as1.length() - 1));
                    data.put("O_NUM", as2.substring(0,as2.length() - 1));
                    data.put("DEPT_NAME", DEPT_NAME.toString());
                }
                
                list.add(data);
            }else {
                return new FailedResponse("科室名称为空");
            }
        }
        if(list.size() > 0) {
            return new ObjectResponse<List<Map<String, String>>>(list);
        }else {
            return new FailedResponse("没有取到医院下的科室数据");
        }
    }


    
    
    
    @Override
    public Response queryHositoryInfo(String orgCode) {
        String sql="SELECT t.ORGANNAME,t.ADDRESS,t.TEL FROM hc_gy_sys.SYS_ORGANIZATION t WHERE "
                +" t.ORGANCODE='"+ orgCode + "'" ; 
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
                //通过医院ID获取医详情信息
                List<Map<String, Object>> dateAndNumList = baseDao.mapQueryBySql(sql);
                if (dateAndNumList!=null) {
                    for (Map<String, Object> map : dateAndNumList){
                        Map<String, String> mp=new HashMap<String, String>();
                        Object ORGANNAME = map.get("ORGANNAME");
                        Object ADDRESS = map.get("ADDRESS");
                        Object TEL = map.get("TEL");
                        if(ORGANNAME != null && !"".equals(ORGANNAME) && !"null".equals(ORGANNAME)) {
                            mp.put("organName", ORGANNAME.toString());
                        }
                        
                        if(ADDRESS != null && !"".equals(ADDRESS) && !"null".equals(ADDRESS)) {
                            mp.put("address", ADDRESS.toString());    
                        }
                        
                        if(TEL != null && !"".equals(TEL) && !"null".equals(TEL)) {
                            mp.put("tel", TEL.toString());
                        }
                        list.add(mp);
                    }
                }else {
             return new FailedResponse("没有取到医院数据");
                }
        if(list.size() > 0) {
            return new ObjectResponse<List<Map<String, String>>>(list);
        }else {
            return new FailedResponse("没有取到医院数据");
        }
    }

}

 

 

扫描二维码关注公众号,回复: 3569946 查看本文章

 

 

 

 

baseDao

@SuppressWarnings("unchecked")
    @Override
    public List<Map<String, Object>> mapQueryBySql(String sql) {
        List<Map<String, Object>> list = null;
        Session session = null;
        try {
            session = sessionFactory.openSession();
            list = session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (session != null && session.isOpen()) {
                session.close();
                session = null;
            }
        }
        return list;
    }

 

 

后台js使用:

app.hospital.dept.busy = {
    orgCode:"",
    open : function(orgCode){
        debugger;
        app.hospital.dept.busy.orgCode = orgCode;
        if(typeof(navigator.connection) != "undefined" && typeof(Connection) != "undefined"){
            if(navigator.connection.type == Connection.NONE) {
                app.alert('网络连接不稳定,请检查网络后刷新重试。', '网络异常');
            } else {
                app.viewMain.router.load({url: 'pages/guide/deptBusy.html'});
            }
        }else{
            app.viewMain.router.load({url: 'pages/guide/deptBusy.html'});
        }
    },
    init : function() {
        debugger;
        //alert(app.hospital.dept.busy.orgCode);
        
        app.api.hospital.queryDeptStaicData({
            data : {orgCode : app.hospital.dept.busy.orgCode},
            success : function(result) {
                debugger;
                if (result.responseCode == "0") {
                    app.alert(result.responseMsg, '错误');
                } else {
                    var datasTemp = result.datas;
                    for(var i=0; i<datasTemp.length; i++){
                        var id = "deptEchartsDiv_"+i;
                        var template = j$("#deptEchartsDivTemplate").clone();
                        var div = j$(template.html());
                        div.attr("id",id);
                        j$("#deptEchartsShowDiv").append(div);
                        
                        var bd = datasTemp[i].BUSY_DATE;
                        var onum = datasTemp[i].O_NUM;
                        var dn = datasTemp[i].DEPT_NAME;
                        app.hospital.dept.busy.createEcharts(id,dn,bd.split(","),onum.split(",")); 
                    }
                }
            },
            error : app.api.error 
        });
        
        /*app.api.hospital.queryHositoryInfo({
            data : {orgCode : app.hospital.dept.busy.orgCode},
            success : function(result) {
                debugger;
                if (result.responseCode == "0") {
                    app.alert(result.responseMsg, '错误');
                } else {
                    var datasTemp = result.datas;
                    //alert(datasTemp);
                    var template = $('#tmpl-hospital-introduction-list').html();
                    $('#hospital-introduction-list').html($m.tmpl(template, datasTemp));
                    
                }
            },
            error : app.api.error 
        });*/
        
    }, 
    createEcharts : function(id,name,bd,onum){
        var myChart = echarts.init(document.getElementById(id));
        var option = {
            title: {
                text: name
            },
            legend: {
                data:['科室']
            },
            grid: { // 控制图的大小,调整下面这些值就可以,
                x: 40,
                x2: 100,
                y2: 150,// y2可以控制 X轴跟Zoom控件之间的间隔,避免以为倾斜后造成 label重叠到zoom上
            },
            xAxis: {
                data: bd,
                axisLabel:{
                     /*interval:0,//横轴信息全部显示
                     rotate:-30,//-30度角倾斜显示*/
                    formatter:function(val){
                        return val.split("").join("\n");
                    }
            }
            },
            series: [{
                name: '门诊量', 
                type: 'bar',
                data: onum
            }]
        };
        myChart.setOption(option);
    }
};

 

// 增加医院标注
            app.hospital.busy.map.addMarker({
                longitude : hdata[i].coord.longitude,
                latitude : hdata[i].coord.latitude,
                //iconUrl : 'images/icon/hospital/' + hdata[i].busyLevel + '.png',
                markerOffset : {
                    x: width,
                    y: -30
                },
                html : '<div class="map-window hospital-busy-marker">'+
                            '<div><img src="images/icon/hospital/' + hdata[i].busyLevel + '.png" /></div>'+
                            '<div><span class = "busy-level-img-background-'+hdata[i].busyLevel+'" > '+hdata[i].name+' </span></div>'+
                        '</div>',
                content : '<div class="map-window map-busy">' + '<div class="hospital-name" >' + hdata[i].name
                        + '</div>' + departmentStr + '<div class="busy-title" >繁忙程度</div>'
                        + '<div class="busy-level-img busy-level-img-background-' + hdata[i].busyLevel + '" >'
                        + hdata[i].busyDisply + '</div>' + treatmentStr + '<div onclick="app.hospital.dept.busy.open(\''+hdata[i].orgCode+'\');">查看详情</div></div>'
            });

        }
    }

前台页面

<div data-page="page-hospital-dept-busy" class="page navbar-fixed">
    <div class="navbar">
        <div class="navbar-inner">
            <div class="left">
                <a href="#" class="back link icon-only">
                    <i class="icon icon-back color-white"></i>
                </a>
            </div>
            <div class="center">医院热度详情</div>
            <div class="right">
                
            </div>
        </div>
    </div>
    <div class="page-content bg-white">
       <div class="list-block media-list" id="hospital-introduction-list"> 
       </div>
         <script type="text/html" id="tmpl-hospital-introduction-list">
        <!--% for (var i=0; i <o.length; i++) { %-->
        <ul>
                <li>
                    <div class="item-inner" >
                    <div class="item-title">{%=o[i].organName%}</div>
                      <div class="item-title">{%=o[i].address%}</div>
                      <div class="item-title">{%=o[i].tel%}</div>
                    </div>
                </li>
         </ul>
        <!--% } %-->
      </script>
    </div>
        
    <div class="page-content bg-white" id="deptEchartsShowDiv">
         
    </div>
    <div id="deptEchartsDivTemplate">
        <div style="width: 100%;height:400px;"></div>
    </div>
</div>        

 


 

猜你喜欢

转载自blog.csdn.net/weixin_40151334/article/details/83038224