timeAnaly.html 11.6 KB
<style type="text/css">
	.table-bordered {
	  border: 1px solid; }
	  .table-bordered > thead > tr > th,
	  .table-bordered > thead > tr > td,
	  .table-bordered > tbody > tr > th,
	  .table-bordered > tbody > tr > td,
	  .table-bordered > tfoot > tr > th,
	  .table-bordered > tfoot > tr > td {
	    border: 1px solid; }
	  .table-bordered > thead > tr > th,
	  .table-bordered > thead > tr > td {
	    border-bottom-width: 2px; }
	 .table > tbody + tbody {
	   border-top: 1px solid; }
	 .merge{
	 	text-align:center;
	 	vertical-align:middle;
	 }
	 #forms > thead > tr > th{
	 	min-width: 80px;
	 }
	 #works > tbody > tr{
	 	background-color: #FFFFFF;
	 }
</style>

<div class="page-head">
	<div class="page-title">
		<h1>线路时刻表分析明细</h1>
	</div>
</div>

<div class="row">
	<div class="col-md-12">
		<div class="portlet light porttlet-fit bordered">
			<div class="portlet-title">
				<form id="history" class="form-inline" action="">
					<div style="display: inline-block; margin-left: 28px;" id="company1">
						<span class="item-label" style="width: 80px;">公司: </span>
						<select class="form-control" name="company" id="company" style="width: 165px;"></select>
					</div>
					<div style="display: inline-block; margin-left: 21px;" id="subCompany1">
						<span class="item-label" style="width: 80px;">分公司: </span>
						<select class="form-control" name="subCompany" id="subCompany" style="width: 165px;"></select>
					</div>
					<div style="display: inline-block;margin-left: 28px;">
						<span class="item-label" style="width: 80px;">日期: </span>
						<input class="form-control" type="text" id="date" style="width: 165px;"/>
					</div>
					<div style="margin-top: 10px"></div>
					<div style="display: inline-block; margin-left: 28px;">
						<span class="item-label" style="width: 80px;">线路: </span>
						<select class="form-control" name="line" id="line" style="width: 165px;"></select>
					</div>
					<div style="display: inline-block; margin-left: 7px">
						<span class="item-label" style="width: 80px;">时刻类型: </span>
						<select class="form-control" name="model" id="model" style="width: 165px;">
							<option value="">请选择...</option>
						</select>
					</div>
					<div class="form-group" style="margin-left: 17px">
						<input class="btn btn-default" type="button" id="query" value="筛选"/>
						<input class="btn btn-default" type="button" id="export" value="导出"/>
					</div>
				</form>
			</div>
			<div class="portlet-body">
				<label>单位:分钟</label>
				<div class="row">
					<div class="table-container" id="countLine" style="margin-top: 10px;overflow:auto;min-width: 906px">
						<table class="table table-bordered table-hover table-checkable" id="forms">
							<thead>
								<tr class="hidden">
									<th colspan="23"><label id="xlName"></label>线路时刻表分析明细</th>
								</tr>
								<tr class="hidden">
									<th>公司</th>
									<th>分公司</th>
									<th>线路</th>
									<th>班型</th>
									<th>路牌</th>
									<th>出场</th>
									<th>上行起始站</th>
									<th>上行终点站</th>
									<th>下行起点站</th>
									<th>下行终点站</th>
									<th>进场</th>
									<th>早高峰运送时间<br/>(6:31-8:30)</th>
									<th>晚高峰运送时间<br/>(16:01-18:00)</th>
									<th>低谷运送时间</th>
									<th>平均运送时间</th>
									<th>早高峰停站时间<br/>(6:31-8:30)</th>
									<th>晚高峰停站时间<br/>(16:01-18:00)</th>
									<th>低谷停站时间</th>
									<th>平均停站时间</th>
									<th>空驶班次/空驶里程</th>
									<th>运营班次/运营里程</th>
									<th title="营运工时:营运班次运送时间总和,不包括停站时间">
										营运工时<br/>(小时.分钟)
									</th>
									<th title="总工时:报道例保时间15分钟+出场到回场总时长,期间有再出场的加10分钟复驶时间">
										总工时<br/>(小时.分钟)
									</th>
								</tr>
							</thead>
							<tbody>
								
							</tbody>
						</table>
					</div>
					<div style="text-align: right;">
						<ul id="pagination" class="pagination"></ul>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>

<script>
	$(function(){
		
		// 关闭左侧栏
		if (!$('body').hasClass('page-sidebar-closed'))
			$('.menu-toggler.sidebar-toggler').click();
		
		$("#countLine").height($(window).height()-280);
		
		var d = new Date();
		var year = d.getFullYear();
		var month = d.getMonth() + 1;
		var day = d.getDate();
		if(month < 10)
			month = "0" + month;
		if(day < 10)
			day = "0" + day;
		var dateTime = year + "-" + month + "-" + day;
		$("#date").datetimepicker({
			format : 'YYYY-MM-DD',
			locale : 'zh-cn',
			maxDate : dateTime
		});
		$("#date").val(dateTime);
		
		var fage=false;
		var xlList;
		var obj = [];
		
		$.get('/report/lineList',function(result){
			xlList=result;
			$.get('/user/companyData', function(result){
				obj = result;
				var options = '';
				for(var i = 0; i < obj.length; i++){
					options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
				}
				
				if(obj.length ==0){
					 $("#company1").css('display','none');
				}else if(obj.length ==1){
					 $("#company1").css('display','none');
					if(obj[0].children.length == 1  || obj[0].children.length ==0)
						$('#subCompany1').css('display','none');
				}
				$('#company').html(options);
				updateCompany();
			});
		})
		$("#company").on("change",updateCompany);
		function updateCompany(){
			var company = $('#company').val();
			var options = '';
			for(var i = 0; i < obj.length; i++){
				if(obj[i].companyCode == company){
					var children = obj[i].children;
					for(var j = 0; j < children.length; j++){
						options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
					}
				}
			}
			$('#subCompany').html(options);
		}
		


		var tempData = {};
		$.get('/report/lineList',function(xlList){
			var data = [];
			$.get('/user/companyData', function(result){
				for(var i = 0; i < result.length; i++){
					var companyCode = result[i].companyCode;
					var children = result[i].children;
					for(var j = 0; j < children.length; j++){
						var code = children[j].code;
						for(var k=0;k < xlList.length;k++ ){
							if(xlList[k]["fgsbm"]==code && xlList[k]["gsbm"]==companyCode){
								data.push({id: xlList[k]["xlbm"], text: xlList[k]["xlname"]});
								tempData[xlList[k]["xlbm"]] = companyCode+":"+code;
							}
						}
					}
				}
				initPinYinSelect2('#line',data,'');
				line = data[0].id;
				updateModel();
			});
		});
		
		$("#line").on("change", function(){
			if($("#line").val() == " "){
				$("#company").attr("disabled", false);
				$("#subCompany").attr("disabled", false);
			} else {
				var temp = tempData[$("#line").val()].split(":");
				$("#company").val(temp[0]);
				updateCompany();
				$("#subCompany").val(temp[1]);
				$("#company").attr("disabled", true);
// 				$("#subCompany").attr("disabled", true);
			}
		});
		
		$("#query").on("click", function (){
			jsDoQuery();
		});

		var line = $("#line").val();
		var date = $("#date").val();
		var model = $("#model").val();
		var company = $("#company").val();
		var subCompany = $("#subCompany").val();
		function jsDoQuery(pagination){
			$("#countLine").height($(window).height()-280);
			if($("#date").val().trim().length == 0){
				layer.msg("请选择日期");
				return;
			}
			var params = {};
			line = $("#line").val();
			date = $("#date").val();
			model = $("#model").val();
			company = $("#company").val();
			subCompany = $("#subCompany").val();
			var lineName = $('#line option:selected').text();
			params['line'] = line;
			params['date'] = date;
			params['model'] = model;
			params['company'] = company;
			params['subCompany'] = subCompany;
			params['type'] = "query";
			var i = layer.load(2);
			$("#forms .hidden").removeClass("hidden");
			$post('/budget/timeAnaly', params, function(result){
				// 把数据填充到模版中
				var tbodyHtml = template('time_analy',{data:result});
				layer.close(i);
				
				// 把渲染好的模版html文本追加到表格中
				$('#forms tbody').html(tbodyHtml);
				
				$("#xlName").html(lineName + "&nbsp;-&nbsp;");
			});

		}
		
		
		$("#export").on("click",function(){
			if($("#date").val().trim().length == 0){
				layer.msg("请选择日期");
				return;
			}
			var params = {};
			line = $("#line").val();
			date = $("#date").val();
			model = $("#model").val();
			company = $("#company").val();
			subCompany = $("#subCompany").val();
			var lineName = $('#line option:selected').text();
			params['line'] = line;
			params['date'] = date;
			params['model'] = model;
			params['company'] = company;
			params['subCompany'] = subCompany;
			params['type'] = "export";
			var i = layer.load(2);
			$post('/budget/timeAnaly', params, function(result){
				window.open("/downloadFile/download?fileName="
						+date+"-"+lineName+"-线路时刻表分析明细");
				layer.close(i);
			});
		});
		
		$("#line").on("change", function(){
			line = $("#line").val();
			if(line == " ")
				line = "";
			updateModel();
		});
		
		$('#date').on("blur", function(){
			date = $("#date").val();
			updateModel();
		});
		
		var flag = 0;
		function updateModel(){
			if(flag == 1)
				return;
			flag = 1;
			var treeData = [];
			var params = {};
			params['line'] = line;
			params['startDate'] = date;
			params['endDate'] = date;
			$get('/pcpc/getModel', params, function(result){
				treeData = createTreeData(result);
				var options = '<option value="">请选择...</option>';
				$.each(treeData, function(i, g){
					options += '<option value="'+g.id+'">'+g.name+'</option>';
				});
				$('#model').html(options)/* .select2() */;
				flag = 0;
			});
		}
		
		/**
		 * 将模块List 转换为树结构
		 * @param arr
		 * @returns {Array}
		 */
		function createTreeData(arr){
			var treeData = [];
			var len = arr.length;
			for(var i = 0; i < len; i ++){
				var pId = arr[i].pId;
				arr[i].text = arr[i].name;
				if(!pId){
					treeData.push(arr[i]);
				}

				for(var j = 0; j < len; j ++){
					if(pId == arr[j].id){
						if(!arr[j].children)
							arr[j].children = [];
						arr[j].children.push(arr[i]);
						break;
					}
				}
			}
			return treeData;
		}
		
	});
	
</script>
<script type="text/html" id="time_analy">
	{{each data.dataList as obj i}}
		<tr>
			<td>{{obj.gsName}}</td>
			<td>{{obj.fgsName}}</td>
			<td>{{obj.xlName}}</td>
			<td>{{obj.bx}}</td>
			<td>{{obj.lpName}}</td>
			<td>{{obj.outStation}}</td>
			<td>{{obj.qdzName0}}</td>
			<td>{{obj.zdzName0}}</td>
			<td>{{obj.qdzName1}}</td>
			<td>{{obj.zdzName1}}</td>
			<td>{{obj.inStation}}</td>
			<td>{{obj.yssj_z}}</td>
			<td>{{obj.yssj_w}}</td>
			<td>{{obj.yssj_d}}</td>
			<td>{{obj.yssj_average}}</td>
			<td>{{obj.tzsj_z}}</td>
			<td>{{obj.tzsj_w}}</td>
			<td>{{obj.tzsj_d}}</td>
			<td>{{obj.tzsj_average}}</td>
			<td>{{obj.ksbc}}/{{obj.kslc}}</td>
			<td>{{obj.yybc}}/{{obj.yylc}}</td>
			<td>{{obj.yygs}}</td>
			<td>{{obj.zgs}}</td>
		</tr>
	{{/each}}
	<tr><td colspan="2">合计配档数</td><td colspan="21">{{data.ecNum}}</td></tr>
	<tr><td colspan="2">合计配车数</td><td colspan="21">{{data.carNum}}</td></tr>
	{{if data.dataList.length == 0}}
		<tr>
			<td colspan="23"><h6 class="muted">没有找到相关数据</h6></td>
		</tr>
	{{/if}}
</script>