Commit 8a181c1f402cf7ff65bf6f6afe2c0ddcfcb00799

Authored by 廖磊
1 parent 5d956c1b

新报表

src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
... ... @@ -1456,8 +1456,6 @@ public class ReportServiceImpl implements ReportService{
1456 1456 }
1457 1457 //所有班次信息
1458 1458 List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
1459   - //已执行了的班次信息
1460   - List<ScheduleRealInfo> list_s = new ArrayList<ScheduleRealInfo>();
1461 1459  
1462 1460 line =line.trim();
1463 1461 if(line.equals("")){
... ... @@ -1467,17 +1465,7 @@ public class ReportServiceImpl implements ReportService{
1467 1465 //查询单条线路
1468 1466 list = scheduleRealInfoRepository.scheduleByDateAndLineTj2(line, date,date2);
1469 1467 }
1470   - for (int i = 0; i < list.size(); i++) {
1471   - ScheduleRealInfo s=list.get(i);
1472   - Set<ChildTaskPlan> cts = s.getcTasks();
1473   - if(cts != null && cts.size() > 0){
1474   - list_s.add(s);
1475   - }else{
1476   - if(s.getZdsjActual()!=null){
1477   - list_s.add(s);
1478   - }
1479   - }
1480   - }
  1468 +
1481 1469  
1482 1470 String sql="select r.xl_bm"
1483 1471 + " from bsth_c_s_sp_info_real r where"
... ... @@ -1512,16 +1500,19 @@ public class ReportServiceImpl implements ReportService{
1512 1500  
1513 1501 //计算线路的各项公里
1514 1502 if(lists.size()>0){
1515   - Map<String, Object> newMap=staticTj(lists);
  1503 + Map<String, Object> newMap=staticTj(lists,"z");
1516 1504 lMap.add(newMap);
1517 1505 }
1518   -
1519 1506 }
1520   - return null;
  1507 + if(list.size()>0){
  1508 + Map<String, Object> newMap=staticTj(list,"f");
  1509 + lMap.add(newMap);
  1510 + }
  1511 + return lMap;
1521 1512 }
1522 1513  
1523 1514  
1524   - public final Map<String, Object> staticTj(List<ScheduleRealInfo> list){
  1515 + public final Map<String, Object> staticTj(List<ScheduleRealInfo> list,String status){
1525 1516  
1526 1517 List<ScheduleRealInfo> lists=new ArrayList<ScheduleRealInfo>();
1527 1518 for(int i=0;i<list.size();i++){
... ... @@ -1537,29 +1528,46 @@ public class ReportServiceImpl implements ReportService{
1537 1528 }
1538 1529 Map<String, Object> map = new HashMap<String, Object>();
1539 1530 if(list.size()>0){
1540   - map.put("xlName", list.get(0).getXlName());
1541   - map.put("gs", list.get(0).getGsName());
1542   - map.put("fgs", list.get(0).getFgsName());
  1531 + if(status.equals("f")){
  1532 + map.put("xlName","合计");
  1533 + }else{
  1534 + map.put("xlName", list.get(0).getXlName());
  1535 + map.put("gs", list.get(0).getGsName());
  1536 + map.put("fgs", list.get(0).getFgsName());
  1537 + }
  1538 +
1543 1539 double jhyygl=culateService.culateJhgl(list);//计划营运公里
1544 1540 double jhjcclc= culateService.culateJhJccgl(list);//计划进出场公里(计划空驶公里)
1545 1541 map.put("jhlc", jhyygl);
1546 1542 map.put("jcclc", jhjcclc);
1547 1543 map.put("jhzlc", Arith.add(jhyygl, jhjcclc));//计划总里程
1548 1544  
1549   -
  1545 + //计划内外营运
1550 1546 Map<String, Double> culateSjlcMap=culateService.culateSjlcMap(lists);
1551 1547 double jhnlc=culateSjlcMap.get("jhnlc");
1552 1548 double jhwlc=culateSjlcMap.get("jhwlc");
  1549 + map.put("jhnlc", jhnlc);
  1550 + map.put("jhwlc", jhwlc);
  1551 + double zyylc=Arith.add(jhnlc, jhwlc);
1553 1552  
  1553 + //计划内外进出场
1554 1554 Map<String, Double> culateSjJcclcMap=culateService.culateSjJcclcMap(lists);
1555 1555 double jhwjcclc=culateSjJcclcMap.get("jhwlc");
1556 1556 double jhnjcclc=culateSjJcclcMap.get("jhnlc");
  1557 + map.put("jhwjcclc", jhwjcclc);
  1558 + map.put("jhnjcclc", jhnjcclc);
  1559 + double zjcclc=Arith.add(jhwjcclc, jhnjcclc);
1557 1560  
  1561 + //临加公里
1558 1562 Map<String, Double> culateLjMile=culateService.culateLjMile(lists);
1559   - double ljjcc=culateLjMile.get("ljjcc");
1560 1563 double ljyy=culateLjMile.get("ljyy");
  1564 + double ljjcc=culateLjMile.get("ljjcc");
  1565 + map.put("ljyy", ljyy);
  1566 + map.put("ljjcc", ljjcc);
  1567 + double ljlc=Arith.add(ljyy, ljjcc);
1561 1568  
1562   - double lbss=culateService.culateSsMile(list);
  1569 + double lbss=culateService.culateSsMile(list);//烂班少驶
  1570 + map.put("lbss", lbss);
1563 1571 map.put("ssgl_lz", culateService.culateSsMileXx(list, "路阻"));
1564 1572 map.put("ssgl_dm", culateService.culateSsMileXx(list, "吊慢"));
1565 1573 map.put("ssgl_gz", culateService.culateSsMileXx(list, "故障"));
... ... @@ -1575,57 +1583,16 @@ public class ReportServiceImpl implements ReportService{
1575 1583  
1576 1584 double zrwjcclc=culateService.culateZrwJccLc(list, "");
1577 1585  
  1586 + map.put("zrwjcclc", zrwjcclc);
1578 1587  
  1588 + double kfks=culateService.culateKfksLc(lists);
  1589 + map.put("kfks", kfks);
  1590 + double zlc=Arith.add(Arith.add(Arith.add(zrwjcclc, ljlc),
  1591 + Arith.add(zjcclc, zyylc)),kfks);
1579 1592  
1580 1593  
1581   -
1582   -
1583   -
1584   -
1585   - double ljgl= culateService.culateLjgl(lists);
1586   - double sjyygl= culateService.culateSjgl(lists);
1587   - double zyygl= Arith.add(sjyygl,ljgl);
1588   -
1589   - double sjjccgl=culateService.culateJccgl(lists);
1590   - double sjksgl=culateService.culateKsgl(lists);
1591   - double zksgl=Arith.add(sjjccgl, sjksgl);
1592   - map.put("sjzgl", Arith.add(zyygl, zksgl));
1593   - map.put("sjgl",zyygl);
1594   - map.put("sjksgl", zksgl);
1595   -
1596   - map.put("ssgl", culateService.culateLbgl(list));
1597   - map.put("ssgl_lz", culateService.culateCJLC(list, "路阻"));
1598   - map.put("ssgl_dm", culateService.culateCJLC(list, "吊慢"));
1599   - map.put("ssgl_gz", culateService.culateCJLC(list, "故障"));
1600   - map.put("ssgl_jf", culateService.culateCJLC(list, "纠纷"));
1601   - map.put("ssgl_zs", culateService.culateCJLC(list, "肇事"));
1602   - map.put("ssgl_qr", culateService.culateCJLC(list, "缺人"));
1603   - map.put("ssgl_qc", culateService.culateCJLC(list, "缺车"));
1604   - map.put("ssgl_kx", culateService.culateCJLC(list, "客稀"));
1605   - map.put("ssgl_qh", culateService.culateCJLC(list, "气候"));
1606   - map.put("ssgl_yw", culateService.culateCJLC(list, "援外"));
1607   - map.put("ssgl_other", culateService.culateCJLC(list, "其他"));
1608   - map.put("ssbc", culateService.culateLbbc(list));
1609   - map.put("ljgl", ljgl);
1610   - map.put("jhbc", culateService.culateJhbc(list,""));
1611   - map.put("jhbc_m", culateService.culateJhbc(list, "zgf"));
1612   - map.put("jhbc_a", culateService.culateJhbc(list, "wgf"));
1613   - map.put("sjbc", culateService.culateSjbc(lists,""));
1614   - map.put("sjbc_m", culateService.culateSjbc(lists,"zgf"));
1615   - map.put("sjbc_a", culateService.culateSjbc(lists,"wgf"));
1616   - map.put("ljbc", culateService.culateLjbc(lists,""));
1617   - map.put("ljbc_m", culateService.culateLjbc(lists,"zgf"));
1618   - map.put("ljbc_a", culateService.culateLjbc(lists,"wgf"));
1619   - map.put("fzbc", culateService.culateFzbc(lists, ""));
1620   - map.put("fzbc_m", culateService.culateFzbc(lists, "zgf"));
1621   - map.put("fzbc_a", culateService.culateFzbc(lists, "wgf"));
1622   - map.put("dtbc", 0);
1623   - map.put("dtbc_m", 0);
1624   - map.put("dtbc_a", 0);
1625   - map.put("djg", 0);
1626   - map.put("djg_m", 0);
1627   - map.put("djg_a", 0);
1628   - map.put("djg_time", 0);
  1594 + map.put("zlc", zlc);
  1595 +
1629 1596 }
1630 1597 return map;
1631 1598 }
... ...
src/main/resources/static/pages/forms/statement/scheduleAnaly.html
... ... @@ -273,6 +273,7 @@
273 273 params['model'] = model;
274 274 params['company'] = company;
275 275 params['subCompany'] = subCompany;
  276 + params['bcType'] = bcType;
276 277 params['type'] = "export";
277 278 $get('/pcpc/scheduleAnaly', params, function(result){
278 279 window.open("/downloadFile/download?fileName=时刻表分析"+moment(startDate).format("YYYYMMDD")+"-"+moment(endDate).format("YYYYMMDD"));
... ...
src/main/resources/static/pages/report/countMileage/countBus/countBusMileage.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +
  18 + #forms > thead > tr> td >span{
  19 + width: 5px;
  20 + word-wrap: break-word;
  21 + letter-spacing: 20px;
  22 + }
  23 +
  24 + #forms > thead > tr> td >label{
  25 + word-break: keep-all;white-space:nowrap;
  26 + }
  27 +</style>
  28 +
  29 +<div class="page-head">
  30 + <div class="page-title">
  31 + <h1>路单数据统计表</h1>
  32 + </div>
  33 +</div>
  34 +
  35 +<div class="row">
  36 + <div class="col-md-12">
  37 + <div class="portlet light porttlet-fit bordered">
  38 + <div class="portlet-title">
  39 + <form class="form-inline" action="">
  40 + <div style="display: inline-block; " id="gsdmDiv">
  41 + <span class="item-label" style="width: 80px;">公司: </span>
  42 + <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select>
  43 + </div>
  44 + <div style="display: inline-block; margin-left: 29px;" id="fgsdmDiv">
  45 + <span class="item-label" style="width: 80px;">分公司: </span>
  46 + <select class="form-control" name="subCompany" id="fgsdm" style="width: 180px;"></select>
  47 + </div>
  48 + <div style="margin-top: 2px"></div>
  49 + <div style="display: inline-block;">
  50 + <span class="item-label" style="width: 80px;">线路: </span>
  51 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  52 + </div>
  53 + <div style="display: inline-block;margin-left: 15px;">
  54 + <span class="item-label" style="width: 80px;">开始时间: </span>
  55 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  56 + </div>
  57 + <div style="display: inline-block;margin-left: 15px;">
  58 + <span class="item-label" style="width: 80px;">结束时间: </span>
  59 + <input class="form-control" type="text" id="date2" style="width: 180px;"/>
  60 + </div>
  61 + <div class="form-group">
  62 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  63 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  64 + </div>
  65 + </form>
  66 + </div>
  67 + <div class="portlet-body">
  68 + <div class="table-container" id="countLine" style="margin-top: 10px;overflow:auto;min-width: 906px">
  69 + <table class="table table-bordered table-hover table-checkable" id="forms">
  70 + <thead>
  71 + <tr>
  72 + <th colspan="26">路单数据统计表</th>
  73 + </tr>
  74 + <tr>
  75 + <td>序号</td>
  76 + <td>日期</td>
  77 + <td>所属公司</td>
  78 + <td>线路</td>
  79 + <td>车号</td>
  80 + <td>司机职号</td>
  81 + <td>司机姓名</td>
  82 + <td>售票员职号</td>
  83 + <td>售票员姓名</td>
  84 + <td>行驶里程(包括空放)</td>
  85 + <td>计划内营运里程</td>
  86 + <td>临时性多样化调度营运里程</td>
  87 + <td>计划内进出场空驶里程</td>
  88 + <td>计划外进出场空驶里程</td>
  89 + <td>空放空驶</td>
  90 + <td>故障进出场空驶里程</td>
  91 + <td>肇事进出场空驶里程</td>
  92 + <td>纠纷进出场空驶里程</td>
  93 + <td>临加营运公里</td>
  94 + <td>临加进出场空驶</td>
  95 + <td>电耗量</td>
  96 + <td>加电量</td>
  97 + <td>耗油量</td>
  98 + <td>加注量</td>
  99 + <td>非营业用油</td>
  100 + <td>计划总公里</td>
  101 + </tr>
  102 +
  103 + </thead>
  104 + <tbody class="statisticsDaily">
  105 +
  106 + </tbody>
  107 + </table>
  108 + </div>
  109 + </div>
  110 + </div>
  111 + </div>
  112 +</div>
  113 +
  114 +<script>
  115 + $(function(){
  116 + $('#export').attr('disabled', "true");
  117 +
  118 + // 关闭左侧栏
  119 + if (!$('body').hasClass('page-sidebar-closed'))
  120 + $('.menu-toggler.sidebar-toggler').click();
  121 +
  122 + $("#date").datetimepicker({
  123 + format : 'YYYY-MM-DD',
  124 + locale : 'zh-cn'
  125 + });
  126 +
  127 + $("#date2").datetimepicker({
  128 + format : 'YYYY-MM-DD',
  129 + locale : 'zh-cn'
  130 + });
  131 + var d = new Date();
  132 + var year = d.getFullYear();
  133 + var month = d.getMonth() + 1;
  134 + var day = d.getDate();
  135 + if(month < 10)
  136 + month = "0" + month;
  137 + if(day < 10)
  138 + day = "0" + day;
  139 + $("#date").val(year + "-" + month + "-" + day);
  140 +
  141 + $("#date2").val(year + "-" + month + "-" + day);
  142 +
  143 + var fage=false;
  144 + var obj = [];
  145 + var xlList;
  146 + $.get('/report/lineList',function(result){
  147 + xlList=result;
  148 + $.get('/user/companyData', function(result){
  149 + obj = result;
  150 + var options = '';
  151 + for(var i = 0; i < obj.length; i++){
  152 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  153 + }
  154 +
  155 + if(obj.length ==0){
  156 + $("#gsdmDiv").css('display','none');
  157 + }else if(obj.length ==1){
  158 + $("#gsdmDiv").css('display','none');
  159 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  160 + $('#fgsdmDiv').css('display','none');
  161 + }
  162 + $('#gsdm').html(options);
  163 + updateCompany();
  164 + });
  165 + })
  166 + $("#gsdm").on("change",updateCompany);
  167 + function updateCompany(){
  168 + var company = $('#gsdm').val();
  169 + var options = '';
  170 + for(var i = 0; i < obj.length; i++){
  171 + if(obj[i].companyCode == company){
  172 + var children = obj[i].children;
  173 + for(var j = 0; j < children.length; j++){
  174 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  175 + }
  176 + }
  177 + }
  178 + $('#fgsdm').html(options);
  179 + initXl();
  180 + }
  181 + $("#fgsdm").on("change",initXl);
  182 + function initXl(){
  183 + var data=[];
  184 + data.push({id: " ", text: "全部线路"});
  185 + if(fage){
  186 + $("#line").select2("destroy").html('');
  187 + }
  188 + var fgs=$('#fgsdm').val();
  189 + var gs=$('#gsdm').val();
  190 + for(var i=0;i<xlList.length;i++){
  191 + if(gs!=""){
  192 + if(fgs!=""){
  193 + if(xlList[i]["fgsbm"]==fgs && xlList[i]["gsbm"]==gs){
  194 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  195 + }
  196 + }else{
  197 + if(xlList[i]["gsbm"]==gs){
  198 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  199 + }
  200 + }
  201 + }
  202 + }
  203 + initPinYinSelect2('#line',data,'');
  204 + fage=true;
  205 + }
  206 + var line ="";
  207 + var xlName ="";
  208 + var date = "";
  209 + var date2 ="";
  210 + var gsdm="";
  211 + var fgsdm="";
  212 + $("#query").on("click",function(){
  213 + if($("#date").val() == null || $("#date").val().trim().length == 0){
  214 + layer.msg("请选择时间范围!");
  215 + return;
  216 + }
  217 + if($("#date2").val() == null || $("#date2").val().trim().length == 0){
  218 + layer.msg("请选择时间范围!");
  219 + return;
  220 + }
  221 + line = $("#line").val();
  222 + xlName = $("#select2-line-container").html();
  223 + date = $("#date").val();
  224 + date2 =$("#date2").val();
  225 + gsdm =$("#gsdm").val();
  226 + fgsdm=$("#fgsdm").val();
  227 + if(line=="请选择"){
  228 + line="";
  229 + }
  230 + if(date==null || date =="" ||date2==null || date2 ==""){
  231 + layer.msg('请选择时间段.');
  232 + }else{
  233 + var params = {};
  234 + params['gsdm'] = gsdm;
  235 + params['fgsdm'] =fgsdm ;
  236 + params['line'] = line;
  237 + params['date'] = date;
  238 + params['date2'] = date2;
  239 + params['xlName'] = xlName;
  240 + params['type'] = "query";
  241 + $get('/report/countLineMileage',params,function(result){
  242 + // 把数据填充到模版中
  243 + var tbodyHtml = template('statisticsDaily',{list:result});
  244 + // 把渲染好的模版html文本追加到表格中
  245 + $('#forms .statisticsDaily').html(tbodyHtml);
  246 +
  247 + if(result.length == 0)
  248 + $("#export").attr('disabled',"true");
  249 + else
  250 + $("#export").removeAttr("disabled");
  251 + });
  252 + }
  253 +
  254 + });
  255 + $("#countLine").height($(window).height()-280);
  256 + $("#export").on("click",function(){
  257 + var params = {};
  258 + params['gsdm'] = gsdm;
  259 + params['fgsdm'] =fgsdm ;
  260 + params['line'] = line;
  261 + params['date'] = date;
  262 + params['date2'] = date2;
  263 + params['xlName'] = xlName;
  264 + params['type'] = "export";
  265 + $get('/realSchedule/statisticsDailyTj',params,function(result){
  266 + window.open("/downloadFile/download?fileName=统计日报"+moment(date).format("YYYYMMDD"));
  267 + });
  268 + });
  269 +
  270 + });
  271 +</script>
  272 +<script type="text/html" id="statisticsDaily">
  273 + {{each list as obj i}}
  274 + <tr>
  275 + <td>{{obj.xlName}}</td>
  276 + <td>{{obj.jhzlc}}</td>
  277 + <td>{{obj.jhlc}}</td>
  278 + <td>{{obj.jcclc}}</td>
  279 + <td>{{obj.sjzgl}}</td>
  280 + <td>{{obj.sjgl}}</td>
  281 + <td>{{obj.sjksgl}}</td>
  282 + <td>{{obj.ssgl}}</td>
  283 + <td>{{obj.ssbc}}</td>
  284 + <td>{{obj.ssgl_lz}}</td>
  285 + <td>{{obj.ssgl_dm}}</td>
  286 + <td>{{obj.ssgl_gz}}</td>
  287 + <td>{{obj.ssgl_jf}}</td>
  288 + <td>{{obj.ssgl_zs}}</td>
  289 + <td>{{obj.ssgl_qr}}</td>
  290 + <td>{{obj.ssgl_qc}}</td>
  291 + <td>{{obj.ssgl_kx}}</td>
  292 + <td>{{obj.ssgl_qh}}</td>
  293 + <td>{{obj.ssgl_yw}}</td>
  294 + <td>{{obj.ssgl_other}}</td>
  295 + <td>{{obj.ljgl}}</td>
  296 + <td>{{obj.jhbc}}</td>
  297 + <td>{{obj.jhbc_m}}</td>
  298 + <td>{{obj.jhbc_a}}</td>
  299 + <td>{{obj.sjbc}}</td>
  300 + <td>{{obj.sjbc_m}}</td>
  301 + <td>{{obj.sjbc_a}}</td>
  302 + <td>{{obj.ljbc}}</td>
  303 + <td>{{obj.ljbc_m}}</td>
  304 + <td>{{obj.ljbc_a}}</td>
  305 + <td>{{obj.fzbc}}</td>
  306 + <td>{{obj.fzbc_m}}</td>
  307 + <td>{{obj.fzbc_a}}</td>
  308 + <td>{{obj.dtbc}}</td>
  309 + <td>{{obj.dtbc_m}}</td>
  310 + <td>{{obj.dtbc_a}}</td>
  311 + <td>{{obj.djg}}</td>
  312 + <td>{{obj.djg_m}}</td>
  313 + <td>{{obj.djg_a}}</td>
  314 + <td>{{obj.djg_time}}</td>
  315 + <td>&nbsp;</td>
  316 + </tr>
  317 + {{/each}}
  318 + {{if list.length == 0}}
  319 + <tr>
  320 + <td colspan="44"><h6 class="muted">没有找到相关数据</h6></td>
  321 + </tr>
  322 + {{/if}}
  323 +</script>
0 324 \ No newline at end of file
... ...
src/main/resources/static/pages/report/countMileage/countLine/countLineMileage.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +
  18 + #forms > thead > tr> td >span{
  19 + width: 5px;
  20 + word-wrap: break-word;
  21 + letter-spacing: 20px;
  22 + }
  23 +
  24 + #forms > thead > tr> td >label{
  25 + word-break: keep-all;white-space:nowrap;
  26 + }
  27 +</style>
  28 +
  29 +<div class="page-head">
  30 + <div class="page-title">
  31 + <h1>线路公里统计表</h1>
  32 + </div>
  33 +</div>
  34 +
  35 +<div class="row">
  36 + <div class="col-md-12">
  37 + <div class="portlet light porttlet-fit bordered">
  38 + <div class="portlet-title">
  39 + <form class="form-inline" action="">
  40 + <div style="display: inline-block; " id="gsdmDiv">
  41 + <span class="item-label" style="width: 80px;">公司: </span>
  42 + <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select>
  43 + </div>
  44 + <div style="display: inline-block; margin-left: 29px;" id="fgsdmDiv">
  45 + <span class="item-label" style="width: 80px;">分公司: </span>
  46 + <select class="form-control" name="subCompany" id="fgsdm" style="width: 180px;"></select>
  47 + </div>
  48 + <div style="margin-top: 2px"></div>
  49 + <div style="display: inline-block;">
  50 + <span class="item-label" style="width: 80px;">线路: </span>
  51 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  52 + </div>
  53 + <div style="display: inline-block;margin-left: 15px;">
  54 + <span class="item-label" style="width: 80px;">开始时间: </span>
  55 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  56 + </div>
  57 + <div style="display: inline-block;margin-left: 15px;">
  58 + <span class="item-label" style="width: 80px;">结束时间: </span>
  59 + <input class="form-control" type="text" id="date2" style="width: 180px;"/>
  60 + </div>
  61 + <div class="form-group">
  62 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  63 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  64 + </div>
  65 + </form>
  66 + </div>
  67 + <div class="portlet-body">
  68 + <div class="table-container" id="countLine" style="margin-top: 10px;overflow:auto;min-width: 906px">
  69 + <table class="table table-bordered table-hover table-checkable" id="forms">
  70 + <thead>
  71 + <tr>
  72 + <th colspan="28"><label id="datetodate"></label>线路公里统计表</th>
  73 + </tr>
  74 + <tr>
  75 + <td rowspan="2"><span>公司</span></td>
  76 + <td rowspan="2"><span>分公司</span></td>
  77 + <td rowspan="2"><span>路线别</span></td>
  78 + <td rowspan="2"><label>计划</label><label>总公里</label></td>
  79 + <td rowspan="2"><label>计划营</label><label>运公里</label></td>
  80 + <td rowspan="2"><label>计划空</label><label>驶公里</label></td>
  81 + <td rowspan="2"><label>实际</label><label>总公里</label></td>
  82 + <td colspan="2"><label>实际营</label><label>运公里</label></td>
  83 + <td colspan="5"><label>实际空</label><label>驶公里</label></td>
  84 + <td rowspan="2"><label>少驶营</label><label>运里程</label></td>
  85 + <td colspan="11">少驶原因(公里)</td>
  86 + <td colspan="2">临加公里</td>
  87 + </tr>
  88 + <tr>
  89 + <td><label>计划内</label><label>营运</label><label>里程</label></td>
  90 + <td><label>临时性</label><label>多样化</label><label>调度营</label><label>运里程</label></td>
  91 + <td><label>计划内</label><label>进出场</label><label>空驶</label></td>
  92 + <td><label>计划外</label><label>进出场</label><label>空驶</label></td>
  93 + <td><label>故障</label><label>进出场</label><label>空驶</label></td>
  94 + <td><label>肇事</label><label>进出场</label><label>空驶</label></td>
  95 + <td><label>纠纷</label><label>进出场</label><label>空驶</label></td>
  96 + <td><span>路阻</span></td>
  97 + <td><span>吊慢</span></td>
  98 + <td><span>故障</span></td>
  99 + <td><span>纠纷</span></td>
  100 + <td><span>肇事</span></td>
  101 + <td><span>缺人</span></td>
  102 + <td><span>缺车</span></td>
  103 + <td><span>客稀</span></td>
  104 + <td><span>气候</span></td>
  105 + <td><span>援外</span></td>
  106 + <td><span>其他</span></td>
  107 + <td><label>临加营</label><label>运公里</label></td>
  108 + <td><label>临加进出</label><label>场空驶</label></td>
  109 + </tr>
  110 +
  111 + </thead>
  112 + <tbody class="countLine">
  113 +
  114 + </tbody>
  115 + </table>
  116 + </div>
  117 + </div>
  118 + </div>
  119 + </div>
  120 +</div>
  121 +
  122 +<script>
  123 + $(function(){
  124 + $('#export').attr('disabled', "true");
  125 +
  126 + // 关闭左侧栏
  127 + if (!$('body').hasClass('page-sidebar-closed'))
  128 + $('.menu-toggler.sidebar-toggler').click();
  129 +
  130 + $("#date").datetimepicker({
  131 + format : 'YYYY-MM-DD',
  132 + locale : 'zh-cn'
  133 + });
  134 +
  135 + $("#date2").datetimepicker({
  136 + format : 'YYYY-MM-DD',
  137 + locale : 'zh-cn'
  138 + });
  139 + var d = new Date();
  140 + var year = d.getFullYear();
  141 + var month = d.getMonth() + 1;
  142 + var day = d.getDate();
  143 + if(month < 10)
  144 + month = "0" + month;
  145 + if(day < 10)
  146 + day = "0" + day;
  147 + $("#date").val(year + "-" + month + "-" + day);
  148 +
  149 + $("#date2").val(year + "-" + month + "-" + day);
  150 +
  151 + var fage=false;
  152 + var obj = [];
  153 + var xlList;
  154 + $.get('/report/lineList',function(result){
  155 + xlList=result;
  156 + $.get('/user/companyData', function(result){
  157 + obj = result;
  158 + var options = '';
  159 + for(var i = 0; i < obj.length; i++){
  160 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  161 + }
  162 +
  163 + if(obj.length ==0){
  164 + $("#gsdmDiv").css('display','none');
  165 + }else if(obj.length ==1){
  166 + $("#gsdmDiv").css('display','none');
  167 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  168 + $('#fgsdmDiv').css('display','none');
  169 + }
  170 + $('#gsdm').html(options);
  171 + updateCompany();
  172 + });
  173 + })
  174 + $("#gsdm").on("change",updateCompany);
  175 + function updateCompany(){
  176 + var company = $('#gsdm').val();
  177 + var options = '';
  178 + for(var i = 0; i < obj.length; i++){
  179 + if(obj[i].companyCode == company){
  180 + var children = obj[i].children;
  181 + for(var j = 0; j < children.length; j++){
  182 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  183 + }
  184 + }
  185 + }
  186 + $('#fgsdm').html(options);
  187 + initXl();
  188 + }
  189 + $("#fgsdm").on("change",initXl);
  190 + function initXl(){
  191 + var data=[];
  192 + data.push({id: " ", text: "全部线路"});
  193 + if(fage){
  194 + $("#line").select2("destroy").html('');
  195 + }
  196 + var fgs=$('#fgsdm').val();
  197 + var gs=$('#gsdm').val();
  198 + for(var i=0;i<xlList.length;i++){
  199 + if(gs!=""){
  200 + if(fgs!=""){
  201 + if(xlList[i]["fgsbm"]==fgs && xlList[i]["gsbm"]==gs){
  202 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  203 + }
  204 + }else{
  205 + if(xlList[i]["gsbm"]==gs){
  206 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  207 + }
  208 + }
  209 + }
  210 + }
  211 + initPinYinSelect2('#line',data,'');
  212 + fage=true;
  213 + }
  214 + var line ="";
  215 + var xlName ="";
  216 + var date = "";
  217 + var date2 ="";
  218 + var gsdm="";
  219 + var fgsdm="";
  220 + $("#query").on("click",function(){
  221 + $("#countLine").height($(window).height()-280);
  222 + if($("#date").val() == null || $("#date").val().trim().length == 0){
  223 + layer.msg("请选择时间范围!");
  224 + return;
  225 + }
  226 + if($("#date2").val() == null || $("#date2").val().trim().length == 0){
  227 + layer.msg("请选择时间范围!");
  228 + return;
  229 + }
  230 + line = $("#line").val();
  231 + xlName = $("#select2-line-container").html();
  232 + date = $("#date").val();
  233 + date2 =$("#date2").val();
  234 + gsdm =$("#gsdm").val();
  235 + fgsdm=$("#fgsdm").val();
  236 + if(line=="请选择"){
  237 + line="";
  238 + }
  239 + if(date==null || date =="" ||date2==null || date2 ==""){
  240 + layer.msg('请选择时间段.');
  241 + }else{
  242 + var params = {};
  243 + params['gsdm'] = gsdm;
  244 + params['fgsdm'] =fgsdm ;
  245 + params['line'] = line;
  246 + params['date'] = date;
  247 + params['date2'] = date2;
  248 + params['xlName'] = xlName;
  249 + params['type'] = "query";
  250 + $get('/report/countLineMileage',params,function(result){
  251 + $("#datetodate").html(date+"至"+date2);
  252 + // 把数据填充到模版中
  253 + var tbodyHtml = template('countLineList',{list:result});
  254 + // 把渲染好的模版html文本追加到表格中
  255 + $('#forms .countLine').html(tbodyHtml);
  256 +
  257 + if(result.length == 0)
  258 + $("#export").attr('disabled',"true");
  259 + else
  260 + $("#export").removeAttr("disabled");
  261 + });
  262 + }
  263 +
  264 + });
  265 + $("#countLine").height($(window).height()-280);
  266 + $("#export").on("click",function(){
  267 + var params = {};
  268 + params['gsdm'] = gsdm;
  269 + params['fgsdm'] =fgsdm ;
  270 + params['line'] = line;
  271 + params['date'] = date;
  272 + params['date2'] = date2;
  273 + params['xlName'] = xlName;
  274 + params['type'] = "export";
  275 + $get('/realSchedule/countLineMileage',params,function(result){
  276 + window.open("/downloadFile/download?fileName=线路公里统计表");
  277 + });
  278 + });
  279 + });
  280 +</script>
  281 +<script type="text/html" id="countLineList">
  282 + {{each list as obj i}}
  283 + <tr>
  284 + <td>{{obj.gs}}</td>
  285 + <td>{{obj.fgs}}</td>
  286 + <td>{{obj.xlName}}</td>
  287 + <td>{{obj.jhzlc}}</td>
  288 + <td>{{obj.jhlc}}</td>
  289 + <td>{{obj.jcclc}}</td>
  290 + <td>{{obj.zlc}}</td>
  291 + <td>{{obj.jhnlc}}</td>
  292 + <td>{{obj.jhwlc}}</td>
  293 + <td>{{obj.jhnjcclc}}</td>
  294 + <td>{{obj.jhwjcclc}}</td>
  295 + <td>{{obj.zrwjcclc}}</td>
  296 + <td>0</td>
  297 + <td>0</td>
  298 + <td>{{obj.lbss}}</td>
  299 + <td>{{obj.ssgl_lz}}</td>
  300 + <td>{{obj.ssgl_dm}}</td>
  301 + <td>{{obj.ssgl_gz}}</td>
  302 + <td>{{obj.ssgl_jf}}</td>
  303 + <td>{{obj.ssgl_zs}}</td>
  304 + <td>{{obj.ssgl_qr}}</td>
  305 + <td>{{obj.ssgl_qc}}</td>
  306 + <td>{{obj.ssgl_kx}}</td>
  307 + <td>{{obj.ssgl_qh}}</td>
  308 + <td>{{obj.ssgl_yw}}</td>
  309 + <td>{{obj.ssgl_other}}</td>
  310 + <td>{{obj.ljyy}}</td>
  311 + <td>{{obj.ljjcc}}</td>
  312 + </tr>
  313 + {{/each}}
  314 + {{if list.length == 0}}
  315 + <tr>
  316 + <td colspan="28"><h6 class="muted">没有找到相关数据</h6></td>
  317 + </tr>
  318 + {{/if}}
  319 +</script>
0 320 \ No newline at end of file
... ...