Commit 967f9bc8b714703e8ec655b5afb4db72ae4cee7e

Authored by 徐烜
2 parents 6d5adfb7 0dfbfa4b

Merge branch 'pudong' of 192.168.168.201:panzhaov5/bsth_control into pudong

src/main/java/com/bsth/controller/calc/CalcIntervalController.java
... ... @@ -41,5 +41,11 @@ public class CalcIntervalController extends BaseController<CalcInterval,Integer
41 41 return list;
42 42 }
43 43  
  44 + @RequestMapping(value="/sumInterval")
  45 + public List<Map<String,Object>> sumInterval(@RequestParam Map<String, Object> map){
  46 + List<Map<String, Object>> list=calcIntervalService.sumInterval(map);
  47 + return list;
  48 + }
  49 +
44 50  
45 51 }
... ...
src/main/java/com/bsth/repository/calc/CalcIntervalRepository.java
... ... @@ -25,7 +25,7 @@ public interface CalcIntervalRepository extends BaseRepository&lt;CalcInterval, Int
25 25  
26 26  
27 27 //按照时间段统计,单条线路
28   - @Query(value="select DISTINCT c from CalcInterval c where c.xlBm = ?1 and c.date >= ?2 and c.date <=?3 and c.level like %?4% order by c.xlBm")
  28 + @Query(value="select DISTINCT c from CalcInterval c where c.xlBm = ?1 and c.date >= ?2 and c.date <=?3 and c.level like %?4% order by c.xlBm, date")
29 29 List<CalcInterval> selectByDateAndLine(String line,String date,String date2,String level);
30 30  
31 31  
... ...
src/main/java/com/bsth/service/calc/CalcIntervalService.java
... ... @@ -17,5 +17,7 @@ public interface CalcIntervalService extends BaseService&lt;CalcInterval,Integer&gt; {
17 17 List<Map<String,Object>> interval(Map<String, Object> map);
18 18 //根据预统计表查询
19 19 List<Map<String,Object>> intervalDetail(Map<String, Object> map);
  20 + //大间隔统计表(大间隔发生次数统计表)
  21 + List<Map<String,Object>> sumInterval(Map<String, Object> map);
20 22  
21 23 }
... ...
src/main/java/com/bsth/service/calc/impl/CalcIntervalServiceImpl.java
1 1 package com.bsth.service.calc.impl;
2 2  
  3 +import java.math.BigDecimal;
3 4 import java.sql.ResultSet;
4 5 import java.sql.SQLException;
5 6 import java.text.DecimalFormat;
... ... @@ -34,8 +35,10 @@ import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
34 35 import com.bsth.service.LineService;
35 36 import com.bsth.service.calc.CalcIntervalService;
36 37 import com.bsth.service.impl.BaseServiceImpl;
  38 +import com.bsth.util.Arith;
37 39 import com.bsth.util.ComparableReal;
38 40 import com.bsth.util.ReportUtils;
  41 +import com.mysql.fabric.xmlrpc.base.Array;
39 42  
40 43 @Service
41 44 public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Integer> implements CalcIntervalService {
... ... @@ -68,7 +71,7 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl&lt;CalcInterval,Intege
68 71 String nature=map.get("nature").toString();
69 72  
70 73 //D级线路显示发车准点率
71   - if(level.equals("D")){
  74 + if(level.equals("D") && false){ //新的计算规则D级也显示大间隔
72 75 String sql1=" select xl_bm,gsbm,fgsbm,xl_name from bsth_c_calc_interval where date >='"+sDate+"' and date <= '"+eDate+"' and `level`='D'";
73 76 if(line.equals("")){
74 77 if(fgs.equals("")){
... ... @@ -128,10 +131,13 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl&lt;CalcInterval,Intege
128 131 });
129 132 }else{
130 133 //统计信息中需要查询所有班次
131   -// and djg_all >0
  134 + //and djg_all >0
  135 +// String sql="select gsbm,fgsbm,xl_bm,xl_name,SUM(bcs) as bcs,MAX(id) as id,SUM(djg_all) as djgAll,SUM(djg_gf) as djgGf,"
  136 +// + "SUM(djg_dg) as djgDg,SUM(djg_zgf) as djgZgf,SUM(djg_wgf) as djgWgf,MAX(djg_time) as djgTime "
  137 +// + "from bsth_c_calc_interval where date>= '"+sDate+"' and date<='"+eDate+"' and level <> 'D' ";
132 138 String sql="select gsbm,fgsbm,xl_bm,xl_name,SUM(bcs) as bcs,MAX(id) as id,SUM(djg_all) as djgAll,SUM(djg_gf) as djgGf,"
133   - + "SUM(djg_dg) as djgDg,SUM(djg_zgf) as djgZgf,SUM(djg_wgf) as djgWgf,MAX(djg_time) as djgTime "
134   - + "from bsth_c_calc_interval where date>= '"+sDate+"' and date<='"+eDate+"' and level <> 'D' ";
  139 + + "SUM(djg_dg) as djgDg,SUM(djg_zgf) as djgZgf,SUM(djg_wgf) as djgWgf,MAX(djg_time) as djgTime "
  140 + + "from bsth_c_calc_interval where date>= '"+sDate+"' and date<='"+eDate+"' and level like '%"+level+"%' and level is not null and level <> '' ";
135 141 if(line.equals("")){
136 142 if(fgs.equals("")){
137 143 sql +=" and gsbm = '"+gs+"'";
... ... @@ -168,7 +174,11 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl&lt;CalcInterval,Intege
168 174 m.put("djgZgf", rs.getString("djgZgf"));
169 175 m.put("djgWgf", rs.getString("djgWgf"));
170 176 m.put("djgDg", rs.getString("djgDg"));
171   - m.put("djgTime", rs.getString("djgTime"));
  177 + if("0".equals(rs.getString("djgTime")) || "0.0".equals(rs.getString("djgTime"))){
  178 + m.put("djgTime", "");
  179 + } else {
  180 + m.put("djgTime", rs.getString("djgTime"));
  181 + }
172 182 return m;
173 183 }
174 184 });
... ... @@ -221,17 +231,17 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl&lt;CalcInterval,Intege
221 231 String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
222 232 String xls="";
223 233 String xlsName="";
224   - if(level.equals("D")){
225   - m.put("date", sDate);
226   - m.put("endDate", eDate);
227   - xls="calcSheetList.xls";
228   - xlsName="发车到站准点率.xls";
229   - }else{
  234 +// if(level.equals("D")){
  235 +// m.put("date", sDate);
  236 +// m.put("endDate", eDate);
  237 +// xls="calcSheetList.xls";
  238 +// xlsName="发车到站准点率.xls";
  239 +// }else{
230 240 m.put("sDate", sDate);
231 241 m.put("eDate", eDate);
232 242 xls="calcIntervalCount.xls";
233   - xlsName="大间隔汇总表.xls";
234   - }
  243 + xlsName="大间隔情况表.xls";
  244 +// }
235 245  
236 246 ee.excelReplace(listI, new Object[]{m}, path + "mould/" + ""+xls,
237 247 path + "export/"+dateTime+"-"+lineName+"-"+xlsName);
... ... @@ -254,7 +264,8 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl&lt;CalcInterval,Intege
254 264 List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
255 265 for (int i = 0; i < listAll.size(); i++) {
256 266 CalcInterval t=listAll.get(i);
257   - if(!t.getLevel().equals("D") && t.getDjgAll()>0){
  267 +// if(!t.getLevel().equals("D") && t.getDjgAll()>0){
  268 + if(t.getDjgAll() != null && t.getDjgAll() > 0){
258 269 Map<String, Object> m=new HashMap<>();
259 270 m.put("gs", t.getGsname());
260 271 m.put("fgs", t.getFgsname());
... ... @@ -688,6 +699,153 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl&lt;CalcInterval,Intege
688 699 return minSj;
689 700 }
690 701  
  702 + public List<Map<String, Object>> sumInterval(Map<String, Object> map) {
  703 + // TODO Auto-generated method stub
  704 + final DecimalFormat df = new DecimalFormat("0.00");
  705 + List<Map<String, Object>> list=new ArrayList<>();
  706 + String gs=map.get("gs").toString().trim();
  707 + String fgs=map.get("fgs").toString().trim();
  708 + String sDate=map.get("date").toString();
  709 + String eDate=map.get("endDate").toString();
  710 +// String nature=map.get("nature").toString();
  711 +
  712 + List<Map<String, Object>> listAll=new ArrayList<Map<String, Object>>();
  713 +
  714 + String sql="select gsbm,fgsbm,level,djg_all,bcs"
  715 + + " from bsth_c_calc_interval where date>= '"+sDate+"' and date<='"+eDate+"'"
  716 + + " and level is not null and level <> '' ";
  717 + if(gs.length() > 0){
  718 + if(fgs.length() > 0){
  719 + sql +=" and gsbm = '"+gs+"' and fgsbm = '"+fgs+"'";
  720 + } else {
  721 + sql +=" and gsbm = '"+gs+"'";
  722 + }
  723 + }
  724 + sql += " order by gsbm,fgsbm,level";
  725 +
  726 + List<Map<String, Object>> countList=jdbcTemplate.query(sql,
  727 + new RowMapper<Map<String,Object>>(){
  728 + @Override
  729 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  730 + Map<String, Object> m=new HashMap<String,Object>();
  731 + m.put("gs", BasicData.businessCodeNameMap.get(rs.getString("gsbm")));
  732 + m.put("fgs", BasicData.businessFgsCodeNameMap.get(rs.getString("fgsbm")+"_"+rs.getString("gsbm")));
  733 + m.put("level", rs.getString("level"));
  734 + m.put("djgAll", rs.getInt("djg_all"));
  735 + m.put("bcs", rs.getInt("bcs"));
  736 + return m;
  737 + }
  738 + });
  739 +
  740 + List<String> keyList = new ArrayList<String>();
  741 + Map<String, Map<String, Object>> keyMap = new HashMap<String, Map<String, Object>>();
  742 + Map<String, Object> sumMap1 = new HashMap<String, Object>();
  743 + Map<String, Object> sumMap2 = new HashMap<String, Object>();
  744 + sumMap1.put("fgs", "合计"); //分公司合计
  745 + sumMap1.put("djgNum", "0");
  746 + sumMap1.put("bcs", "0");
  747 + sumMap2.put("gs", "合计"); //公司合计
  748 + sumMap2.put("djgNum", "0");
  749 + sumMap2.put("bcs", "0");
  750 + for(Map<String, Object> m : countList){
  751 + String gsName = m.get("gs").toString();
  752 + String fgsName = m.get("fgs").toString();
  753 + String level = m.get("level").toString();
  754 + String key = gsName + "^" + fgsName + "/" + level;
  755 + Map<String, Object> temp = new HashMap<String, Object>();
  756 + if(keyList.size() == 0){
  757 + sumMap1.put("gs", gsName);
  758 + }
  759 + if(!(keyMap.containsKey(key))){
  760 + if(keyList.size() > 0 && !(keyList.get(keyList.size() - 1).split("/")[0].equals(key.split("/")[0]))){
  761 + keyList.add(sumMap1.get("gs").toString() + "^合计_" + fgsName);
  762 + keyMap.put(sumMap1.get("gs").toString() + "^合计_" + fgsName, sumMap1);
  763 + sumMap1 = new HashMap<String, Object>();
  764 + sumMap1.put("gs", gsName);
  765 + sumMap1.put("fgs", "合计");
  766 + sumMap1.put("djgNum", "0");
  767 + sumMap1.put("bcs", "0");
  768 + }
  769 + temp.put("gs", gsName);
  770 + temp.put("fgs", fgsName);
  771 + temp.put("level", level);
  772 + temp.put("djgNum", "0");
  773 + temp.put("bcs", "0");
  774 + keyList.add(key);
  775 + keyMap.put(key, temp);
  776 + } else {
  777 + temp = keyMap.get(key);
  778 + }
  779 + if(m.get("djgAll") != null && m.get("djgAll").toString().trim().length() > 0){
  780 + temp.put("djgNum", Arith.add(temp.get("djgNum"), m.get("djgAll")));
  781 + sumMap1.put("djgNum", Arith.add(sumMap1.get("djgNum"), m.get("djgAll")));
  782 + sumMap2.put("djgNum", Arith.add(sumMap2.get("djgNum"), m.get("djgAll")));
  783 + }
  784 + if(m.get("bcs") != null && m.get("bcs").toString().trim().length() > 0){
  785 + temp.put("bcs", Arith.add(temp.get("bcs"), m.get("bcs")));
  786 + sumMap1.put("bcs", Arith.add(sumMap1.get("bcs"), m.get("bcs")));
  787 + sumMap2.put("bcs", Arith.add(sumMap2.get("bcs"), m.get("bcs")));
  788 + }
  789 + }
  790 + keyList.add((sumMap1.get("gs")!=null?sumMap1.get("gs").toString():"") + "^合计_");
  791 + keyMap.put((sumMap1.get("gs")!=null?sumMap1.get("gs").toString():"") + "^合计_", sumMap1);
  792 + keyList.add("合计");
  793 + keyMap.put("合计", sumMap2);
  794 +
  795 + for(String key : keyList){
  796 + Map<String, Object> m = keyMap.get(key);
  797 + double djgAll = new BigDecimal(m.get("djgNum").toString()).doubleValue();
  798 + double bcs = new BigDecimal(m.get("bcs").toString()).doubleValue();
  799 + //万班次发生率 (大间隔次数/全日班次数*10000)
  800 + if(bcs > 0){
  801 + double fsl = djgAll / bcs * 10000;
  802 + m.put("fsl", df.format(fsl));
  803 + } else {
  804 + m.put("fsl", "0.0");
  805 + }
  806 + listAll.add(m);
  807 + }
  808 +
  809 + if(map.get("type").equals("export")){
  810 + String lineName="";
  811 + if(listAll.size()>0){
  812 + if(fgs.equals("")){
  813 + lineName=listAll.get(0).get("gs").toString();
  814 + }else{
  815 + lineName=listAll.get(0).get("fgs").toString();
  816 + }
  817 + }
  818 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  819 + Map<String, Object> m = new HashMap<String, Object>();
  820 +
  821 + ReportUtils ee = new ReportUtils();
  822 + try {
  823 + String dateTime = "";
  824 + if(sDate.equals(eDate)){
  825 + dateTime = sDate.replaceAll("-", "");
  826 + } else {
  827 + dateTime = sDate.replaceAll("-", "")+"-"+
  828 + eDate.replaceAll("-", "");
  829 + }
  830 + listI.add(listAll.iterator());
  831 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  832 + String xls="";
  833 + String xlsName="";
  834 + m.put("sDate", sDate);
  835 + m.put("eDate", eDate);
  836 + xls="calcIntervalCount.xls";
  837 + xlsName="大间隔情况表.xls";
  838 +
  839 + ee.excelReplace(listI, new Object[]{m}, path + "mould/" + ""+xls,
  840 + path + "export/"+dateTime+"-"+lineName+"-"+xlsName);
  841 + } catch (Exception e) {
  842 + // TODO: handle exception
  843 + e.printStackTrace();
  844 + }
  845 + }
  846 + return listAll;
  847 + }
  848 +
691 849 }
692 850  
693 851 class ComparableJhfc implements Comparator<ScheduleRealInfo>{
... ...
src/main/resources/static/pages/report/sheet/intervalCount.html
... ... @@ -31,7 +31,7 @@
31 31 <span class="item-label" style="width: 80px;">公司: </span>
32 32 <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select>
33 33 </div>
34   - <div style="display: inline-block; margin-left: 38px;" id="fgsdmDiv">
  34 + <div style="display: inline-block; margin-left: 28px;" id="fgsdmDiv">
35 35 <span class="item-label" style="width: 80px;">分公司: </span>
36 36 <select class="form-control" name="subCompany" id="fgsdm" style="width: 180px;"></select>
37 37 </div>
... ... @@ -39,7 +39,7 @@
39 39 <span class="item-label" style="width: 80px;">线路: </span>
40 40 <select class="form-control" name="line" id="line" style="width: 180px;"></select>
41 41 </div>
42   - <div style="display: inline-block;margin-left: 42px;">
  42 + <div style="display: inline-block;margin-left: 18px;">
43 43 <span class="item-label" style="width: 80px;">线路性质: </span>
44 44 <select
45 45 class="form-control" name="nature" id="nature"
... ... @@ -54,16 +54,20 @@
54 54 <div style="display: inline-block;margin-left: 33px;">
55 55 <span class="item-label" style="width: 80px;">等级: </span>
56 56 <select class="form-control" style="width: 180px;" id=levelType>
57   - <option value="A,B,C">A,B,C级线路</option>
  57 + <option id="levelTypeAll" value="">全部</option>
  58 + <option value="A" selected="selected">A级线路</option>
  59 + <option value="B">B级线路</option>
  60 + <option value="C">C级线路</option>
58 61 <option value="D">D级线路</option>
  62 + <option value="E">E级线路</option>
59 63 </select>
60 64 </div>
61 65 <div style="display: inline-block;">
62   - <span class="item-label" style="width: 80px;margin-left: 24px;">开始时间: </span>
  66 + <span class="item-label" style="width: 80px;margin-left: 14px;">开始时间: </span>
63 67 <input class="form-control" type="text" id="date" style="width: 180px;"/>
64 68 </div>
65 69 <div style="display: inline-block;">
66   - <span class="item-label" style="width: 80px;margin-left: 24px;">结束时间: </span>
  70 + <span class="item-label" style="width: 80px;margin-left: 14px;">结束时间: </span>
67 71 <input class="form-control" type="text" id="endDate" style="width: 180px;"/>
68 72 </div>
69 73  
... ... @@ -90,7 +94,7 @@
90 94 <td>低谷次数</td>
91 95 <td>全日班次数</td>
92 96 <td>万班次发生率</td>
93   -<!-- <td>最大间隔时间</td> -->
  97 + <td>最大间隔时间</td>
94 98 <td>查看</td>
95 99 </tr>
96 100 </thead>
... ... @@ -116,7 +120,6 @@
116 120 </tbody>
117 121 </table>
118 122  
119   -
120 123 </div>
121 124  
122 125 <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
... ... @@ -136,6 +139,7 @@
136 139 <td>低谷次数</td>
137 140 <td>全日班次数</td>
138 141 <td>万班次发生率</td>
  142 + <td>最大间隔时间</td>
139 143 <td>查看</td>
140 144 </tr>
141 145 </thead>
... ... @@ -264,11 +268,13 @@
264 268 if($("#line").val() == " "){
265 269 $("#gsdm").attr("disabled", false);
266 270 $("#fgsdm").attr("disabled", false);
  271 + $("#levelType").val('A');
267 272 } else {
268 273 var temp = tempData[$("#line").val()].split(":");
269 274 $("#gsdm").val(temp[0]);
270 275 updateCompany();
271 276 $("#nature").val(0);
  277 + $("#levelType").val('');
272 278 $("#fgsdm").val(temp[1]);
273 279 $("#gsdm").attr("disabled", true);
274 280 $("#fgsdm").attr("disabled", true);
... ... @@ -288,19 +294,19 @@
288 294 var nature=$("#nature").val();
289 295 var i = layer.load(2);
290 296 $get('/calcInterval/countList',{line:line,date:date,endDate:endDate,gs:gs,fgs:fgs,levelType:levelType,nature:nature,type:'query'},function(result){
291   - if(levelType=="D"){
292   - var intervalList_d = template('intervalList_d',{list:result});
293   - $('#forms_d tbody').html(intervalList_d);
294   - $('.btn-intervalList_d').on('click', showSheetList);
295   - $("#forms").hide();
296   - $("#forms_d").show();
297   - }else{
  297 +// if(levelType=="D"){
  298 +// var intervalList_d = template('intervalList_d',{list:result});
  299 +// $('#forms_d tbody').html(intervalList_d);
  300 +// $('.btn-intervalList_d').on('click', showSheetList);
  301 +// $("#forms").hide();
  302 +// $("#forms_d").show();
  303 +// }else{
298 304 var intervalList = template('intervalList',{list:result});
299 305 $('#forms tbody').html(intervalList);
300 306 $('.btn-intervalList').on('click', showIntervalList);
301 307 $("#forms_d").hide();
302 308 $("#forms").show();
303   - }
  309 +// }
304 310 $("#forms_d_1").hide();
305 311 $("#forms_1").hide();
306 312 $("#export_1").hide();
... ... @@ -423,13 +429,13 @@
423 429 dateTime = moment(date).format("YYYYMMDD")+"-"+
424 430 moment(endDate).format("YYYYMMDD");
425 431 }
426   - if(levelType=="D"){
  432 +// if(levelType=="D"){
  433 +// window.open("/downloadFile/download?fileName="
  434 +// +dateTime+"-"+lineName+"-发车到站准点率");
  435 +// }else{
427 436 window.open("/downloadFile/download?fileName="
428   - +dateTime+"-"+lineName+"-发车到站准点率");
429   - }else{
430   - window.open("/downloadFile/download?fileName="
431   - +dateTime+"-"+lineName+"-大间隔汇总表");
432   - }
  437 + +dateTime+"-"+lineName+"-大间情况表");
  438 +// }
433 439  
434 440 layer.close(i);
435 441 });
... ... @@ -440,18 +446,19 @@
440 446 var date = $("#date").val();
441 447 var endDate = $("#endDate").val();
442 448 var levelType=$("#levelType").val();
443   - if(levelType=='D'){
  449 +// if(levelType=='D'){
  450 +// var i = layer.load(2);
  451 +// $get('/calcSheet/calcListSheet',{line:id,date:date,endDate:endDate,type:'export'},function(result){
  452 +// window.open("/downloadFile/download?fileName=发车到站准点率"+moment(date).format("YYYYMMDD")+"-"+moment(endDate).format("YYYYMMDD"));
  453 +// layer.close(i);
  454 +// });
  455 +// }else{
444 456 var i = layer.load(2);
445   - $get('/calcSheet/calcListSheet',{line:id,date:date,endDate:endDate,type:'export'},function(result){
446   - window.open("/downloadFile/download?fileName=发车到站准点率"+moment(date).format("YYYYMMDD")+"-"+moment(endDate).format("YYYYMMDD"));
447   - layer.close(i);
448   - });
449   - }else{
450 457 $get('/calcInterval/listInterval',{line:id,date:date,endDate:endDate,type:'export'},function(result){
451 458 window.open("/downloadFile/download?fileName=大间距汇总表"+moment(date).format("YYYYMMDD")+"-"+moment(endDate).format("YYYYMMDD"));
452 459 layer.close(i);
453 460 });
454   - }
  461 +// }
455 462  
456 463 })
457 464  
... ... @@ -470,6 +477,7 @@
470 477 <td>{{obj.djgDg}}</td>
471 478 <td>{{obj.bcs}}</td>
472 479 <td>{{obj.fsl}}</td>
  480 + <td>{{obj.djgTime}}</td>
473 481 <td>
474 482 <button type="button" class="btn btn-sm blue btn-intervalList"
475 483 data-id="{{obj.xlBm}}">查看</button>
... ... @@ -523,6 +531,7 @@
523 531 <td>{{obj.djgDg}}</td>
524 532 <td>{{obj.bcs}}</td>
525 533 <td>{{obj.fsl}}</td>
  534 + <td>{{obj.djgTime}}</td>
526 535 <td>
527 536 <button type="button" class="btn btn-sm blue btn-intervalList_1"
528 537 data-id="{{obj.xlBm}}" data-date="{{obj.date}}">详细</button>
... ...
src/main/resources/static/pages/report/sheet/intervalSum.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 +</style>
  18 +
  19 +<div class="page-head">
  20 + <div class="page-title">
  21 + <h1>大间隔统计表</h1>
  22 + </div>
  23 +</div>
  24 +
  25 +<div class="row">
  26 + <div class="col-md-12">
  27 + <div class="portlet light porttlet-fit bordered">
  28 + <div class="portlet-title">
  29 + <form class="form-inline" action="">
  30 + <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv">
  31 + <span class="item-label" style="width: 80px;">公司: </span>
  32 + <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select>
  33 + </div>
  34 + <div style="display: inline-block; margin-left: 28px;" id="fgsdmDiv">
  35 + <span class="item-label" style="width: 80px;">分公司: </span>
  36 + <select class="form-control" name="subCompany" id="fgsdm" style="width: 180px;"></select>
  37 + </div>
  38 +<!-- <div style="display: inline-block;margin-left: 18px;"> -->
  39 +<!-- <span class="item-label" style="width: 80px;">线路性质: </span> -->
  40 +<!-- <select -->
  41 +<!-- class="form-control" name="nature" id="nature" -->
  42 +<!-- style="width: 180px;"> -->
  43 +<!-- <option value="0">全部线路</option> -->
  44 +<!-- <option value="1" selected="selected">营运线路</option> -->
  45 +<!-- <option value="2">非营运线路</option> -->
  46 +<!-- </select> -->
  47 +<!-- </div> -->
  48 + <div style="margin-top: 10px">
  49 + </div>
  50 + <div style="display: inline-block;">
  51 + <span class="item-label" style="width: 80px;margin-left: 14px;">开始时间: </span>
  52 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  53 + </div>
  54 + <div style="display: inline-block;">
  55 + <span class="item-label" style="width: 80px;margin-left: 14px;">结束时间: </span>
  56 + <input class="form-control" type="text" id="endDate" style="width: 180px;"/>
  57 + </div>
  58 +
  59 + <div class="form-group">
  60 + <input type="hidden" id="id"/>
  61 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  62 +<!-- <input class="btn btn-default" type="button" id="export" value="导出"/> -->
  63 + </div>
  64 + </form>
  65 + </div>
  66 +
  67 + <div class="portlet-body">
  68 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  69 + <table class="table table-bordered table-hover table-checkable" id="forms_djg_sum">
  70 + <thead>
  71 + <tr>
  72 + <td>公司</td>
  73 + <td>分公司</td>
  74 + <td>线路等级</td>
  75 + <td>发生次数</td>
  76 + <td>班次数</td>
  77 + <td>万班次发生率</td>
  78 + </tr>
  79 + </thead>
  80 + <tbody>
  81 + </tbody>
  82 + </table>
  83 +
  84 + </div>
  85 +
  86 + </div>
  87 + </div>
  88 + </div>
  89 +</div>
  90 +<script src="/pages/mforms/singledatas/jquery.table2excel.min.js"></script>
  91 +<script>
  92 + $(function(){
  93 + // 关闭左侧栏
  94 + if (!$('body').hasClass('page-sidebar-closed'))
  95 + $('.menu-toggler.sidebar-toggler').click();
  96 +
  97 + var d = new Date();
  98 + d.setTime(d.getTime() - 1*1000*60*60*24);
  99 + var year = d.getFullYear();
  100 + var month = d.getMonth() + 1;
  101 + var day = d.getDate();
  102 + if(month < 10)
  103 + month = "0"+month;
  104 + if(day < 10)
  105 + day = "0"+day;
  106 + var dateTime = year + "-" + month + "-" + day;
  107 + $("#date").datetimepicker({
  108 + format : 'YYYY-MM-DD',
  109 + locale : 'zh-cn',
  110 + maxDate : dateTime
  111 + });
  112 + $("#endDate").datetimepicker({
  113 + format : 'YYYY-MM-DD',
  114 + locale : 'zh-cn',
  115 + maxDate : dateTime
  116 + });
  117 + $("#date").val(dateTime);
  118 + $("#endDate").val(dateTime);
  119 +
  120 + var fage=false;
  121 + var obj = [];
  122 + var xlList;
  123 + $.get('/report/lineList',function(result){
  124 + xlList=result;
  125 +
  126 + $.get('/user/companyData', function(result){
  127 + obj = result;
  128 + var options = '';
  129 + for(var i = 0; i < obj.length; i++){
  130 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  131 + }
  132 + if(obj.length == 0){
  133 + $("#gsdmDiv").css('display','none');
  134 + }else if(obj.length == 1){
  135 + $("#gsdmDiv").css('display','none');
  136 + if(obj[0].children.length == 1 || obj[0].children.length == 0)
  137 + $('#fgsdmDiv').css('display','none');
  138 + }
  139 + $('#gsdm').html(options);
  140 +
  141 + updateCompany();
  142 + });
  143 + });
  144 +
  145 + $("#gsdm").on("change",updateCompany);
  146 + function updateCompany(){
  147 + var company = $('#gsdm').val();
  148 + var options = '<option value="">全部分公司</option>';
  149 + for(var i = 0; i < obj.length; i++){
  150 + if(obj[i].companyCode == company){
  151 + var children = obj[i].children;
  152 + for(var j = 0; j < children.length; j++){
  153 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  154 + }
  155 + }
  156 + }
  157 + $('#fgsdm').html(options);
  158 + }
  159 +
  160 +
  161 + $("#export").attr('disabled',"true");
  162 +
  163 + //查询
  164 + $("#query").on('click',function(){
  165 + var date = $("#date").val();
  166 + var endDate = $("#endDate").val();
  167 + var fgs=$('#fgsdm').val();
  168 + var gs=$('#gsdm').val();
  169 +// var nature=$("#nature").val();
  170 + var i = layer.load(2);
  171 + $get('/calcInterval/sumInterval',{date:date,endDate:endDate,gs:gs,fgs:fgs,type:'query'},function(result){
  172 + var intervalList_sum = template('intervalList_sum',{list:result});
  173 + $('#forms_djg_sum tbody').html(intervalList_sum);
  174 +
  175 + layer.close(i);
  176 + if(result.length == 0)
  177 + $("#export").attr('disabled',"true");
  178 + else
  179 + $("#export").removeAttr("disabled");
  180 + });
  181 + });
  182 +
  183 + $("#export").on("click",function(){
  184 + var date = $("#date").val();
  185 + var endDate = $("#endDate").val();
  186 + var fgs=$('#fgsdm').val();
  187 + var gs=$('#gsdm').val();
  188 +// var nature=$('#nature').val();
  189 + var lineName = $('#fgsdm option:selected').text();
  190 + if(lineName=="全部分公司")
  191 + lineName = $('#gsdm option:selected').text();
  192 +
  193 + var i = layer.load(2);
  194 + $get('/calcInterval/countList',{date:date,endDate:endDate,gs:gs,fgs:fgs,nature:nature,type:"export",lineName:lineName},function(result){
  195 + var dateTime = "";
  196 + if(date == endDate){
  197 + dateTime = moment(date).format("YYYYMMDD");
  198 + } else {
  199 + dateTime = moment(date).format("YYYYMMDD")+"-"+
  200 + moment(endDate).format("YYYYMMDD");
  201 + }
  202 + window.open("/downloadFile/download?fileName="
  203 + +dateTime+"-"+lineName+"-大间统计表");
  204 +
  205 + layer.close(i);
  206 + });
  207 + });
  208 +
  209 +
  210 + });
  211 +</script>
  212 +<script type="text/html" id="intervalList_sum">
  213 + {{each list as obj i}}
  214 + <tr>
  215 + <td>{{obj.gs}}</td>
  216 + <td>{{obj.fgs}}</td>
  217 + <td>{{obj.level}}</td>
  218 + <td>{{obj.djgNum}}</td>
  219 + <td>{{obj.bcs}}</td>
  220 + <td>{{obj.fsl}}</td>
  221 + </tr>
  222 + {{/each}}
  223 + {{if list.length == 0}}
  224 + <tr>
  225 + <td colspan="12"><h6 class="muted">没有找到相关数据</h6></td>
  226 + </tr>
  227 + {{/if}}
  228 +</script>
  229 +
  230 +
... ...