Commit 19c3f06b0b9555feba546faee93dceb77c12d57b

Authored by 娄高锋
1 parent 14ff74a2

发车到站准点率

src/main/java/com/bsth/controller/BusIntervalController.java
... ... @@ -58,4 +58,9 @@ public class BusIntervalController {
58 58 return busIntervalService.exportWaybillMore(map);
59 59 }
60 60  
  61 + @RequestMapping(value = "/onTime", method = RequestMethod.GET)
  62 + public List<Map<String,Object>> onTime(@RequestParam Map<String, Object> map){
  63 + return busIntervalService.onTime(map);
  64 + }
  65 +
61 66 }
... ...
src/main/java/com/bsth/service/BusIntervalService.java
... ... @@ -21,4 +21,6 @@ public interface BusIntervalService {
21 21 List<Map<String, Object>> correctStatis(Map<String, Object> map);
22 22  
23 23 Map<String, Object> exportWaybillMore(Map<String, Object> map);
  24 +
  25 + List<Map<String, Object>> onTime(Map<String, Object> map);
24 26 }
... ...
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
... ... @@ -2815,4 +2815,224 @@ public class BusIntervalServiceImpl implements BusIntervalService {
2815 2815 return map;
2816 2816 }
2817 2817  
  2818 + @Override
  2819 + public List<Map<String, Object>> onTime(Map<String, Object> map) {
  2820 + // TODO Auto-generated method stub
  2821 + String startDate = map.get("startDate").toString().trim();
  2822 + String endDate = map.get("endDate").toString().trim();
  2823 + String line = map.get("line").toString().trim();
  2824 + String company = map.get("gs").toString().trim();
  2825 + String subCompany = map.get("fgs").toString().trim();
  2826 +
  2827 + String sql = "select id, cl_zbh, fcsj, fcsj_actual, j_gh, j_name, lp_name, qdz_name, " +
  2828 + "schedule_date_str, xl_name, zdsj, zdsj_actual, fgs_name, gs_name, xl_dir, xl_bm " +
  2829 + "from bsth_c_s_sp_info_real where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'";
  2830 +
  2831 + if(line.length() != 0)
  2832 + sql += " and xl_bm = '"+line+"'";
  2833 + if(company.length() != 0)
  2834 + sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'";
  2835 +
  2836 + sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' and cc_service = 0";
  2837 +
  2838 + System.out.println(sql);
  2839 + List<ScheduleRealInfo> list = jdbcTemplate.query(sql,
  2840 + new RowMapper<ScheduleRealInfo>(){
  2841 + @Override
  2842 + public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
  2843 + ScheduleRealInfo schedule = new ScheduleRealInfo();
  2844 + schedule.setId(rs.getLong("id"));
  2845 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
  2846 + schedule.setXlDir(rs.getString("xl_dir"));
  2847 + schedule.setXlBm(rs.getString("xl_bm"));
  2848 + schedule.setXlName(rs.getString("xl_name"));
  2849 + schedule.setLpName(rs.getString("lp_name"));
  2850 + schedule.setFcsj(rs.getString("fcsj"));
  2851 + schedule.setFcsjActual(rs.getString("fcsj_actual"));
  2852 + schedule.setZdsj(rs.getString("zdsj"));
  2853 + schedule.setZdsjActual(rs.getString("zdsj_actual"));
  2854 + schedule.setQdzName(rs.getString("qdz_name"));
  2855 + schedule.setGsName(rs.getString("gs_name"));
  2856 + schedule.setFgsName(rs.getString("fgs_name"));
  2857 + schedule.setClZbh(rs.getString("cl_zbh"));
  2858 + schedule.setjGh(rs.getString("j_gh"));
  2859 + schedule.setjName(rs.getString("j_name"));
  2860 + return schedule;
  2861 + }});
  2862 +
  2863 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  2864 + Map<String, Map<String, List<ScheduleRealInfo>>> sches = new HashMap<String, Map<String, List<ScheduleRealInfo>>>();
  2865 + Map<String, List<List<Map<String, Object>>>> keyMap = new HashMap<String, List<List<Map<String, Object>>>>();
  2866 +
  2867 + for(ScheduleRealInfo s : list){
  2868 + String xl = s.getXlName();
  2869 + String dateStr = s.getScheduleDateStr();
  2870 + if(!sches.containsKey(xl)){
  2871 + sches.put(xl, new HashMap<String, List<ScheduleRealInfo>>());
  2872 + keyMap.put(xl, new ArrayList<List<Map<String, Object>>>());
  2873 + }
  2874 + if(!sches.get(xl).containsKey(dateStr)){
  2875 + sches.get(xl).put(dateStr, new ArrayList<ScheduleRealInfo>());
  2876 + }
  2877 + sches.get(xl).get(dateStr).add(s);
  2878 + }
  2879 + for(String xl : sches.keySet()){
  2880 + Map<String, List<ScheduleRealInfo>> sche1 = sches.get(xl);
  2881 + Set<String> dateSet = sche1.keySet();
  2882 + Map<Long, String> timeTemp = new HashMap<Long, String>();
  2883 + for(String date : dateSet){
  2884 + try {
  2885 + Date parse = sdf.parse(date);
  2886 + timeTemp.put(parse.getTime(), date);
  2887 + } catch (ParseException e) {
  2888 + // TODO Auto-generated catch block
  2889 + e.printStackTrace();
  2890 + }
  2891 + }
  2892 + List<Long> timeList = new ArrayList<Long>(timeTemp.keySet());
  2893 + Collections.sort(timeList);
  2894 +
  2895 + List<List<Map<String, Object>>> lists = new ArrayList<List<Map<String, Object>>>();
  2896 + Map<Long, ScheduleRealInfo> keyTemp = new HashMap<Long, ScheduleRealInfo>();
  2897 + for(Long time : timeList){
  2898 + List<Long> keyList = new ArrayList<Long>();
  2899 + String date = timeTemp.get(time);
  2900 + List<ScheduleRealInfo> sche2 = sche1.get(date);
  2901 + for(ScheduleRealInfo s : sche2){
  2902 + if(s.getFcsj()!=null && s.getFcsj().trim().length() > 0
  2903 + && s.getFcsj().contains(":")){
  2904 + String[] split = s.getFcsj().split(":");
  2905 + Long key = Long.valueOf(s.getXlDir())*1500 + Long.valueOf(split[0])*60 + Long.valueOf(split[1]);
  2906 + while(keyTemp.containsKey(key)){
  2907 + ++key;
  2908 + }
  2909 + keyList.add(key);
  2910 + keyTemp.put(key, s);
  2911 + }
  2912 + }
  2913 + Collections.sort(keyList);
  2914 + List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
  2915 + for(Long l : keyList){
  2916 + ScheduleRealInfo s = keyTemp.get(l);
  2917 + Map<String, Object> temp = new HashMap<String, Object>();
  2918 + temp.put("gs", s.getGsName());
  2919 + temp.put("fgs", s.getFgsName());
  2920 + temp.put("date", date);
  2921 + temp.put("xlbm", s.getXlBm());
  2922 + temp.put("line", s.getXlName());
  2923 + temp.put("clzbh", s.getClZbh());
  2924 + temp.put("jsy", s.getjGh() + "/" + s.getjName());
  2925 + temp.put("lp", s.getLpName());
  2926 + temp.put("zd", s.getQdzName());
  2927 + temp.put("fcsj", s.getFcsj()!=null?s.getFcsj():"");
  2928 + temp.put("fcsjA", s.getFcsjActual()!=null?s.getFcsjActual():"烂班");
  2929 + temp.put("zdsj", s.getZdsj()!=null?s.getZdsj():"");
  2930 + temp.put("zdsjA", s.getZdsjActual()!=null?s.getZdsjActual():"烂班");
  2931 + if(s.getFcsj() != null && s.getFcsjActual()!=null){
  2932 + String[] split1 = s.getFcsj().split(":");
  2933 + String[] split2 = s.getFcsjActual().split(":");
  2934 + long fcsj = Long.valueOf(split1[0])*60 + Long.valueOf(split1[1]);
  2935 + long fcsjA = Long.valueOf(split2[0])*60 + Long.valueOf(split2[1]);
  2936 + if(fcsj > 23*60 && fcsjA < 60)
  2937 + fcsjA += 1440;
  2938 + if(fcsjA - fcsj >= 3 || fcsjA - fcsj <= 1){
  2939 + temp.put("fcsjzd", "准点");
  2940 + } else {
  2941 + temp.put("fcsjzd", "不准点");
  2942 + temp.put("fcsjflag", 1);
  2943 + }
  2944 + }
  2945 + if(s.getZdsj() != null && s.getZdsjActual()!=null){
  2946 + String[] split1 = s.getZdsj().split(":");
  2947 + String[] split2 = s.getZdsjActual().split(":");
  2948 + long zdsj = Long.valueOf(split1[0])*60 + Long.valueOf(split1[1]);
  2949 + long zdsjA = Long.valueOf(split2[0])*60 + Long.valueOf(split2[1]);
  2950 + if(zdsj > 23*60 && zdsjA < 60)
  2951 + zdsjA += 1440;
  2952 + if(zdsjA - zdsj >= 3 || zdsjA - zdsj <= 1){
  2953 + temp.put("zdsjzd", "准点");
  2954 + } else {
  2955 + temp.put("zdsjzd", "不准点");
  2956 + temp.put("zdsjflag", 1);
  2957 + }
  2958 + }
  2959 + tempList.add(temp);
  2960 + }
  2961 + lists.add(tempList);
  2962 + }
  2963 + keyMap.put(xl, lists);
  2964 + }
  2965 +
  2966 + if(!map.containsKey("flag")){
  2967 + for(String xl : keyMap.keySet()){
  2968 + List<List<Map<String, Object>>> list1 = keyMap.get(xl);
  2969 + if(list1.size() == 0 || list1.get(0).size() == 0)
  2970 + continue;
  2971 + Map<String, Object> tempMap = new HashMap<String, Object>();
  2972 + int bcs = 0, fczd = 0, zdzd = 0;
  2973 + for(List<Map<String, Object>> list2 : list1){
  2974 + for(Map<String, Object> m : list2){
  2975 + bcs++;
  2976 + if(!m.containsKey("fcsjflag"))
  2977 + fczd++;
  2978 + if(!m.containsKey("zdsjflag"))
  2979 + zdzd++;
  2980 + }
  2981 + }
  2982 + tempMap.put("gs", list1.get(0).get(0).get("gs"));
  2983 + tempMap.put("fgs", list1.get(0).get(0).get("fgs"));
  2984 + tempMap.put("line", list1.get(0).get(0).get("line"));
  2985 + tempMap.put("date", list1.get(0).get(0).get("date"));
  2986 + tempMap.put("xlbm", list1.get(0).get(0).get("xlbm"));
  2987 + tempMap.put("bcs", bcs);
  2988 + tempMap.put("fczd", fczd);
  2989 + tempMap.put("zdzd", zdzd);
  2990 + tempMap.put("fczdl", (bcs>0?df.format((double)fczd/bcs*100):0)+"%");
  2991 + tempMap.put("zdzdl", (bcs>0?df.format((double)zdzd/bcs*100):0)+"%");
  2992 + resList.add(tempMap);
  2993 + }
  2994 + } else if(map.get("flag").toString().trim().equals("1")) {
  2995 + for(String xl : keyMap.keySet()){
  2996 + List<List<Map<String, Object>>> list1 = keyMap.get(xl);
  2997 + if(list1.size() == 0 || list1.get(0).size() == 0)
  2998 + continue;
  2999 + for(List<Map<String, Object>> list2 : list1){
  3000 + Map<String, Object> tempMap = new HashMap<String, Object>();
  3001 + int bcs = 0, fczd = 0, zdzd = 0;
  3002 + for(Map<String, Object> m : list2){
  3003 + bcs++;
  3004 + if(!m.containsKey("fcsjflag"))
  3005 + fczd++;
  3006 + if(!m.containsKey("zdsjflag"))
  3007 + zdzd++;
  3008 + }
  3009 + tempMap.put("gs", list2.get(0).get("gs"));
  3010 + tempMap.put("fgs", list2.get(0).get("fgs"));
  3011 + tempMap.put("line", list2.get(0).get("line"));
  3012 + tempMap.put("date", list2.get(0).get("date"));
  3013 + tempMap.put("xl_date", list2.get(0).get("date") + "_" + list2.get(0).get("xlbm") + "_" + list2.get(0).get("line"));
  3014 + tempMap.put("bcs", bcs);
  3015 + tempMap.put("fczd", fczd);
  3016 + tempMap.put("zdzd", zdzd);
  3017 + tempMap.put("fczdl", (bcs>0?df.format((double)fczd/bcs*100):0)+"%");
  3018 + tempMap.put("zdzdl", (bcs>0?df.format((double)zdzd/bcs*100):0)+"%");
  3019 + resList.add(tempMap);
  3020 + }
  3021 + }
  3022 + } else if(map.get("flag").toString().trim().equals("2")) {
  3023 + for(String xl : keyMap.keySet()){
  3024 + List<List<Map<String, Object>>> list1 = keyMap.get(xl);
  3025 + if(list1.size() == 0 || list1.get(0).size() == 0)
  3026 + continue;
  3027 + for(List<Map<String, Object>> list2 : list1){
  3028 + for(Map<String, Object> m : list2){
  3029 + resList.add(m);
  3030 + }
  3031 + }
  3032 + }
  3033 + }
  3034 +
  3035 + return resList;
  3036 + }
  3037 +
2818 3038 }
... ...
src/main/resources/static/pages/punctual/list.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" style="margin-left: 20px">
  21 + <button id="exportList">数据导出</button>
  22 + </div>
  23 +</div>
  24 +
  25 +<div class="row" id="sheetList">
  26 + <div class="col-md-12">
  27 + <div class="portlet light porttlet-fit bordered">
  28 + <div class="portlet-body">
  29 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 600px">
  30 + <table class="table table-bordered table-hover table-checkable" id="forms_2">
  31 + <thead>
  32 + <tr>
  33 + <td></td>
  34 +<!-- <td>日期</td> -->
  35 +<!-- <td>线路</td> -->
  36 + <td>站点</td>
  37 + <td>车辆自编号</td>
  38 + <td>驾驶员</td>
  39 + <td>路牌</td>
  40 + <td>计划发车</td>
  41 + <td>实际发车</td>
  42 + <td>计划到站</td>
  43 + <td>实际到站</td>
  44 + <td>是否准点</td>
  45 + </tr>
  46 + </thead>
  47 +
  48 + <tbody>
  49 +
  50 + </tbody>
  51 + </table>
  52 + </div>
  53 + </div>
  54 + </div>
  55 + </div>
  56 +</div>
  57 +<script src="/pages/mforms/singledatas/jquery.table2excel.min.js"></script>
  58 +<script>
  59 + $(function(){
  60 + // 关闭左侧栏
  61 + if (!$('body').hasClass('page-sidebar-closed'))
  62 + $('.menu-toggler.sidebar-toggler').click();
  63 + var no="";
  64 + $("#sheetList").on('init', function (e, id) {
  65 + no=id;
  66 + var date = id.split("_")[0];
  67 + var endDate = date;
  68 + var line = id.split("_")[1];
  69 + var fgs=$('#fgsdm').val();
  70 + var gs=$('#gsdm').val();
  71 + $get('/busInterval/onTime',{line:line,startDate:date,endDate:endDate,gs:gs,fgs:fgs,flag:2},function(result){
  72 + var sheetList_2 = template('sheetList_2',{list:result});
  73 + $('#forms_2 tbody').html(sheetList_2);
  74 + });
  75 + });
  76 + $("#exportList").on('click',function(){
  77 + $("#forms_2").table2excel({
  78 + // 不被导出的表格行的CSS class类
  79 + exclude: ".noExl",
  80 + // 导出的Excel文档的名称,(没看到作用)
  81 + name: "Excel Document Name.xlsx",
  82 + // Excel文件的名称
  83 + filename: "发车到站准点率"
  84 + });
  85 + });
  86 +
  87 + });
  88 +</script>
  89 +<script type="text/html" id="sheetList_2">
  90 + {{each list as obj i}}
  91 + <tr {{if obj.fcsjflag=="1"}}style="color: red" {{/if}}>
  92 + <td>{{i+1}}</td>
  93 + <td>{{obj.zd}}</td>
  94 + <td>{{obj.clzbh}}</td>
  95 + <td>{{obj.jsy}}</td>
  96 + <td>{{obj.lp}}</td>
  97 + <td>{{obj.fcsj}}</td>
  98 + <td>{{obj.fcsjA}}</td>
  99 + <td>{{obj.zdsj}}</td>
  100 + <td>{{obj.zdsjA}}</td>
  101 + <td>
  102 + {{if obj.fcsjflag!="1"}}准点{{else}}不准点{{/if}}
  103 + </td>
  104 + </tr>
  105 + {{/each}}
  106 + {{if list.length == 0}}
  107 + <tr>
  108 + <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>
  109 + </tr>
  110 + {{/if}}
  111 +</script>
0 112 \ No newline at end of file
... ...
src/main/resources/static/pages/punctual/onTime.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: 38px;" 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="margin-top: 10px">
  39 + </div>
  40 + <div style="display: inline-block;margin-left: 33px;">
  41 + <span class="item-label" style="width: 80px;">线路: </span>
  42 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  43 + </div>
  44 + <div style="display: inline-block;">
  45 + <span class="item-label" style="width: 80px;margin-left: 24px;">开始时间: </span>
  46 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  47 + </div>
  48 + <div style="display: inline-block;">
  49 + <span class="item-label" style="width: 80px;margin-left: 24px;">结束时间: </span>
  50 + <input class="form-control" type="text" id="endDate" style="width: 180px;"/>
  51 + </div>
  52 +
  53 + <div class="form-group">
  54 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  55 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  56 + </div>
  57 + </form>
  58 + </div>
  59 + <div class="portlet-body">
  60 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  61 + <table class="table table-bordered table-hover table-checkable" id="forms">
  62 + <thead>
  63 + <tr>
  64 + <td>公司</td>
  65 + <td>分公司</td>
  66 + <td>线路</td>
  67 + <td>班次数</td>
  68 + <td>发车准点班次</td>
  69 + <td>到站准点班次</td>
  70 + <td>发车准点率</td>
  71 + <td>到站准点率</td>
  72 + <td>查看</td>
  73 + </tr>
  74 + </thead>
  75 +
  76 + <tbody>
  77 +
  78 + </tbody>
  79 + </table>
  80 +
  81 + <table class="hidden" id="forms_h">
  82 + <thead>
  83 + <tr>
  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 + </tr>
  93 + </thead>
  94 +
  95 + <tbody>
  96 +
  97 + </tbody>
  98 + </table>
  99 + </div>
  100 +
  101 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  102 + <input class="btn btn-default hidden" type="button" id="export_1" value="导出"/>
  103 + <table class="table table-bordered table-hover table-checkable" id="forms_1">
  104 + <thead>
  105 + <tr class="hidden">
  106 + <td>公司</td>
  107 + <td>分公司</td>
  108 + <td>日期</td>
  109 + <td>线路</td>
  110 + <td>班次数</td>
  111 + <td>发车准点班次</td>
  112 + <td>到站准点班次</td>
  113 + <td>发车准点率</td>
  114 + <td>到站准点率</td>
  115 + <td>查看</td>
  116 + </tr>
  117 + </thead>
  118 +
  119 + <tbody>
  120 +
  121 + </tbody>
  122 + </table>
  123 + <table class="hidden" id="forms_1_h">
  124 + <thead>
  125 + <tr >
  126 + <td>公司</td>
  127 + <td>分公司</td>
  128 + <td>日期</td>
  129 + <td>线路</td>
  130 + <td>班次数</td>
  131 + <td>发车准点班次</td>
  132 + <td>到站准点班次</td>
  133 + <td>发车准点率</td>
  134 + <td>到站准点率</td>
  135 + </tr>
  136 + </thead>
  137 +
  138 + <tbody>
  139 +
  140 + </tbody>
  141 + </table>
  142 + </div>
  143 + </div>
  144 + </div>
  145 + </div>
  146 +</div>
  147 +<script src="/pages/mforms/singledatas/jquery.table2excel.min.js"></script>
  148 +<script>
  149 + $(function(){
  150 + // 关闭左侧栏
  151 + if (!$('body').hasClass('page-sidebar-closed'))
  152 + $('.menu-toggler.sidebar-toggler').click();
  153 +
  154 + var d = new Date();
  155 + d.setTime(d.getTime() - 1*1000*60*60*24);
  156 + var year = d.getFullYear();
  157 + var month = d.getMonth() + 1;
  158 + var day = d.getDate();
  159 + if(month < 10)
  160 + month = "0"+month;
  161 + if(day < 10)
  162 + day = "0"+day;
  163 + var dateTime = year + "-" + month + "-" + day;
  164 + $("#date").datetimepicker({
  165 + format : 'YYYY-MM-DD',
  166 + locale : 'zh-cn',
  167 + maxDate : dateTime
  168 + });
  169 + $("#endDate").datetimepicker({
  170 + format : 'YYYY-MM-DD',
  171 + locale : 'zh-cn',
  172 + maxDate : dateTime
  173 + });
  174 + $("#date").val(dateTime);
  175 + $("#endDate").val(dateTime);
  176 +
  177 + var fage=false;
  178 + var obj = [];
  179 + var xlList;
  180 + $.get('/report/lineList',function(result){
  181 + xlList=result;
  182 +
  183 + $.get('/user/companyData', function(result){
  184 + obj = result;
  185 + console.log(obj);
  186 + var options = '';
  187 + for(var i = 0; i < obj.length; i++){
  188 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  189 + }
  190 +
  191 + if(obj.length ==0){
  192 + $("#gsdmDiv").css('display','none');
  193 + }else if(obj.length ==1){
  194 + $("#gsdmDiv").css('display','none');
  195 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  196 + $('#fgsdmDiv').css('display','none');
  197 + }
  198 + $('#gsdm').html(options);
  199 +
  200 + updateCompany();
  201 + });
  202 + });
  203 +
  204 + $("#gsdm").on("change",updateCompany);
  205 + function updateCompany(){
  206 + var company = $('#gsdm').val();
  207 + var options = '';
  208 + for(var i = 0; i < obj.length; i++){
  209 + if(obj[i].companyCode == company){
  210 + var children = obj[i].children;
  211 + for(var j = 0; j < children.length; j++){
  212 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  213 + }
  214 + }
  215 + }
  216 + $('#fgsdm').html(options);
  217 + }
  218 +
  219 + var tempData = {};
  220 + $.get('/report/lineList',function(xlList){
  221 + var data = [];
  222 + data.push({id: " ", text: "全部线路"});
  223 + $.get('/user/companyData', function(result){
  224 + for(var i = 0; i < result.length; i++){
  225 + var companyCode = result[i].companyCode;
  226 + var children = result[i].children;
  227 + for(var j = 0; j < children.length; j++){
  228 + var code = children[j].code;
  229 + for(var k=0;k < xlList.length;k++ ){
  230 + if(xlList[k]["fgsbm"]==code && xlList[k]["gsbm"]==companyCode){
  231 + data.push({id: xlList[k]["xlbm"], text: xlList[k]["xlname"]});
  232 + tempData[xlList[k]["xlbm"]] = companyCode+":"+code;
  233 + }
  234 + }
  235 + }
  236 + }
  237 + initPinYinSelect2('#line',data,'');
  238 +
  239 + });
  240 + });
  241 +
  242 +
  243 + $("#line").on("change", function(){
  244 + if($("#line").val() == " "){
  245 + $("#gsdm").attr("disabled", false);
  246 + $("#fgsdm").attr("disabled", false);
  247 + } else {
  248 + var temp = tempData[$("#line").val()].split(":");
  249 + $("#gsdm").val(temp[0]);
  250 + updateCompany();
  251 + $("#fgsdm").val(temp[1]);
  252 + $("#gsdm").attr("disabled", true);
  253 + $("#fgsdm").attr("disabled", true);
  254 + }
  255 + });
  256 +
  257 +
  258 + //查询
  259 + $("#query").on('click',function(){
  260 + var line = $("#line").val();
  261 + var date = $("#date").val();
  262 + var endDate = $("#endDate").val();
  263 + var fgs=$('#fgsdm').val();
  264 + var gs=$('#gsdm').val();
  265 + var i = layer.load(2);
  266 + $get('/busInterval/onTime',{line:line,startDate:date,endDate:endDate,gs:gs,fgs:fgs},function(result){
  267 + var sheetList = template('sheetList',{list:result});
  268 + $('#forms tbody').html(sheetList);
  269 + $('#forms_h tbody').html(template('sheetList_h',{list:result}));
  270 + $('.btn-sheetList').on('click', showSheetList);
  271 + layer.close(i);
  272 + });
  273 + });
  274 + function showSheetList(){
  275 + var line = $(this).data('id');
  276 + var date = $("#date").val();
  277 + var endDate = $("#endDate").val();
  278 + var fgs=$('#fgsdm').val();
  279 + var gs=$('#gsdm').val();
  280 + var i = layer.load(2);
  281 + $get('/busInterval/onTime',{line:line,startDate:date,endDate:endDate,gs:gs,fgs:fgs,flag:1},function(result){
  282 + var sheetList = template('sheetList_1',{list:result});
  283 + $('#forms_1 tbody').html(sheetList);
  284 + $('#forms_1_h tbody').html(template('sheetList_1_h',{list:result}));
  285 + $("#forms_1 .hidden").removeClass("hidden");
  286 + $('.btn-sheetList_1').on('click', openSheetList);
  287 + $("#export_1").removeClass("hidden");
  288 + $("html,body").animate({scrollTop:$("#forms_1").offset().top},1000);
  289 + layer.close(i);
  290 + });
  291 + }
  292 + function openSheetList(){
  293 + var id = $(this).data('id');
  294 + var date = id.split("_")[0];
  295 + var endDate = date;
  296 + var line = id.split("_")[1];
  297 + var fgs=$('#fgsdm').val();
  298 + var gs=$('#gsdm').val();
  299 + $.get('/pages/punctual/list.html', function (content) {
  300 + layer.open({
  301 + type: 1,
  302 + area: ['800px', '600px'],
  303 + content: content,
  304 + title: '线路准点率详细 - ' + id.split("_")[2] + ' - ' + date,
  305 + shift: 5,
  306 + scrollbar: false,
  307 + success: function () {
  308 + $('#sheetList').trigger('init', id);
  309 + $('#sheetList').unbind();
  310 + }
  311 + });
  312 + });
  313 + }
  314 + $("#export").on("click",function(){
  315 + var date = $("#date").val();
  316 + var endDate = $("#endDate").val();
  317 + $("#forms_h").table2excel({
  318 + // 不被导出的表格行的CSS class类
  319 + exclude: ".noExl",
  320 + // 导出的Excel文档的名称,(没看到作用)
  321 + name: "Excel Document Name.xlsx",
  322 + // Excel文件的名称
  323 + filename: date+"-"+endDate+"发车到站准点率"
  324 + });
  325 + })
  326 +
  327 + $("#export_1").on("click",function(){
  328 + var date = $("#date").val();
  329 + var endDate = $("#endDate").val();
  330 + $("#forms_1_h").table2excel({
  331 + // 不被导出的表格行的CSS class类
  332 + exclude: ".noExl",
  333 + // 导出的Excel文档的名称,(没看到作用)
  334 + name: "Excel Document Name.xlsx",
  335 + // Excel文件的名称
  336 + filename: date+"-"+endDate+"发车到站准点率"
  337 + });
  338 + })
  339 +
  340 + });
  341 +</script>
  342 +<script type="text/html" id="sheetList">
  343 + {{each list as obj i}}
  344 + <tr>
  345 + <td>{{obj.gs}}</td>
  346 + <td>{{obj.fgs}}</td>
  347 + <td>{{obj.line}}</td>
  348 + <td>{{obj.bcs}}</td>
  349 + <td>{{obj.fczd}}</td>
  350 + <td>{{obj.zdzd}}</td>
  351 + <td>{{obj.fczdl}}</td>
  352 + <td>{{obj.zdzdl}}</td>
  353 + <td>
  354 + <button type="button" class="btn btn-sm blue btn-sheetList"
  355 + data-id="{{obj.xlbm}}">查看</button>
  356 + </td>
  357 + </tr>
  358 + {{/each}}
  359 + {{if list.length == 0}}
  360 + <tr>
  361 + <td colspan="9"><h6 class="muted">没有找到相关数据</h6></td>
  362 + </tr>
  363 + {{/if}}
  364 +</script>
  365 +
  366 +<script type="text/html" id="sheetList_h">
  367 + {{each list as obj i}}
  368 + <tr>
  369 + <td>{{obj.gs}}</td>
  370 + <td>{{obj.fgs}}</td>
  371 + <td>{{obj.line}}</td>
  372 + <td>{{obj.bcs}}</td>
  373 + <td>{{obj.fczd}}</td>
  374 + <td>{{obj.zdzd}}</td>
  375 + <td>{{obj.fczdl}}</td>
  376 + <td>{{obj.zdzdl}}</td>
  377 + </tr>
  378 + {{/each}}
  379 + {{if list.length == 0}}
  380 + <tr>
  381 + <td colspan="9"><h6 class="muted">没有找到相关数据</h6></td>
  382 + </tr>
  383 + {{/if}}
  384 +</script>
  385 +
  386 +<script type="text/html" id="sheetList_1">
  387 + {{each list as obj i}}
  388 + <tr>
  389 + <td>{{obj.gs}}</td>
  390 + <td>{{obj.fgs}}</td>
  391 + <td>{{obj.date}}</td>
  392 + <td>{{obj.line}}</td>
  393 + <td>{{obj.bcs}}</td>
  394 + <td>{{obj.fczd}}</td>
  395 + <td>{{obj.zdzd}}</td>
  396 + <td>{{obj.fczdl}}</td>
  397 + <td>{{obj.zdzdl}}</td>
  398 + <td>
  399 + <button type="button" class="btn btn-sm blue btn-sheetList_1"
  400 + data-id="{{obj.xl_date}}">详细</button>
  401 + </td>
  402 + </tr>
  403 + {{/each}}
  404 + {{if list.length == 0}}
  405 + <tr>
  406 + <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>
  407 + </tr>
  408 + {{/if}}
  409 +</script>
  410 +
  411 +
  412 +<script type="text/html" id="sheetList_1_h">
  413 + {{each list as obj i}}
  414 + <tr>
  415 + <td>{{obj.gs}}</td>
  416 + <td>{{obj.fgs}}</td>
  417 + <td>{{obj.date}}</td>
  418 + <td>{{obj.line}}</td>
  419 + <td>{{obj.bcs}}</td>
  420 + <td>{{obj.fczd}}</td>
  421 + <td>{{obj.zdzd}}</td>
  422 + <td>{{obj.fczdl}}</td>
  423 + <td>{{obj.zdzdl}}</td>
  424 + </tr>
  425 + {{/each}}
  426 + {{if list.length == 0}}
  427 + <tr>
  428 + <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>
  429 + </tr>
  430 + {{/if}}
  431 +</script>
0 432 \ No newline at end of file
... ...
src/main/resources/static/pages/report/sheet/sheetList.html
... ... @@ -143,27 +143,28 @@
143 143 if (!$('body').hasClass('page-sidebar-closed'))
144 144 $('.menu-toggler.sidebar-toggler').click();
145 145  
146   - $("#date").datetimepicker({
147   - format : 'YYYY-MM-DD',
148   - locale : 'zh-cn'
149   - });
150   - $("#endDate").datetimepicker({
151   - format : 'YYYY-MM-DD',
152   - locale : 'zh-cn'
153   - });
154 146 var d = new Date();
  147 + d.setTime(d.getTime() - 1*1000*60*60*24);
155 148 var year = d.getFullYear();
156 149 var month = d.getMonth() + 1;
157 150 var day = d.getDate();
  151 + if(month < 10)
  152 + month = "0"+month;
158 153 if(day < 10)
159 154 day = "0"+day;
160   - if(month > 9){
161   - $("#date").val(year + "-" + month + "-" + day);
162   - $("#endDate").val(year + "-" + month + "-" + day);
163   - } else {
164   - $("#date").val(year + "-0" + month + "-" + day);
165   - $("#endDate").val(year + "-" + month + "-" + day);
166   - }
  155 + var dateTime = year + "-" + month + "-" + day;
  156 + $("#date").datetimepicker({
  157 + format : 'YYYY-MM-DD',
  158 + locale : 'zh-cn',
  159 + maxDate : dateTime
  160 + });
  161 + $("#endDate").datetimepicker({
  162 + format : 'YYYY-MM-DD',
  163 + locale : 'zh-cn',
  164 + maxDate : dateTime
  165 + });
  166 + $("#date").val(dateTime);
  167 + $("#endDate").val(dateTime);
167 168  
168 169 var fage=false;
169 170 var obj = [];
... ... @@ -205,6 +206,7 @@
205 206 }
206 207 }
207 208 $('#fgsdm').html(options);
  209 + }
208 210  
209 211 var tempData = {};
210 212 $.get('/report/lineList',function(xlList){
... ... @@ -242,7 +244,6 @@
242 244 $("#fgsdm").attr("disabled", true);
243 245 }
244 246 });
245   - }
246 247  
247 248  
248 249  
... ...