Commit 31c980a74e1d1914b7aac1bf0d472f81bef3ae46
1 parent
12ab2d8d
首末班准点率增加误点明细在合计汇总的准点率百分比上
Showing
2 changed files
with
142 additions
and
23 deletions
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
| @@ -1485,7 +1485,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | @@ -1485,7 +1485,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | ||
| 1485 | 1485 | ||
| 1486 | try { | 1486 | try { |
| 1487 | String sql = "select a.schedule_date_str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name," | 1487 | String sql = "select a.schedule_date_str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name," |
| 1488 | - + " a.cc_service, b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line" | 1488 | + + " a.cc_service, a.remarks, a.adjust_exps, b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line" |
| 1489 | + " where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'" | 1489 | + " where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'" |
| 1490 | + " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' and bc_type != 'region'"; | 1490 | + " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' and bc_type != 'region'"; |
| 1491 | if(line.length() != 0) | 1491 | if(line.length() != 0) |
| @@ -1512,6 +1512,8 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | @@ -1512,6 +1512,8 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | ||
| 1512 | schedule.setGsName(rs.getString("gs_name")); | 1512 | schedule.setGsName(rs.getString("gs_name")); |
| 1513 | schedule.setFgsName(rs.getString("fgs_name")); | 1513 | schedule.setFgsName(rs.getString("fgs_name")); |
| 1514 | schedule.setCcService(rs.getBoolean("cc_service")); | 1514 | schedule.setCcService(rs.getBoolean("cc_service")); |
| 1515 | + schedule.setRemarks(rs.getString("remarks")!=null?rs.getString("remarks"):""); | ||
| 1516 | + schedule.setAdjustExps(rs.getString("adjust_exps")!=null?rs.getString("adjust_exps"):""); | ||
| 1515 | 1517 | ||
| 1516 | int startOpt = 0; | 1518 | int startOpt = 0; |
| 1517 | if(rs.getString("start_opt") != null && rs.getString("start_opt").trim().length() != 0){ | 1519 | if(rs.getString("start_opt") != null && rs.getString("start_opt").trim().length() != 0){ |
| @@ -1569,6 +1571,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | @@ -1569,6 +1571,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | ||
| 1569 | subCompanyName = s.getFgsName(); | 1571 | subCompanyName = s.getFgsName(); |
| 1570 | } | 1572 | } |
| 1571 | 1573 | ||
| 1574 | + List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>(); | ||
| 1572 | for(String xlName : keyMap.keySet()){ | 1575 | for(String xlName : keyMap.keySet()){ |
| 1573 | List<Map<String, Object>> tempList = new ArrayList<Map<String,Object>>(); | 1576 | List<Map<String, Object>> tempList = new ArrayList<Map<String,Object>>(); |
| 1574 | Map<String, Object> tempMap = new HashMap<String, Object>(); | 1577 | Map<String, Object> tempMap = new HashMap<String, Object>(); |
| @@ -1630,10 +1633,38 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | @@ -1630,10 +1633,38 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | ||
| 1630 | temp.put("sjfcLast0", s4.getFcsjActual()); | 1633 | temp.put("sjfcLast0", s4.getFcsjActual()); |
| 1631 | temp.put("delayLast0", delayLast0>0?"+"+delayLast0:delayLast0); | 1634 | temp.put("delayLast0", delayLast0>0?"+"+delayLast0:delayLast0); |
| 1632 | jhbc += 2; | 1635 | jhbc += 2; |
| 1633 | - if(delayFirst0 <= 1l && delayFirst0 >= -3l) | 1636 | + if(delayFirst0 <= 1l && delayFirst0 >= -3l){ |
| 1634 | sjbc++; | 1637 | sjbc++; |
| 1635 | - if(delayLast0 <= 1l && delayLast0 >= -3l) | 1638 | + } else { |
| 1639 | + Map<String, Object> m = new HashMap<String, Object>(); | ||
| 1640 | + m.put("date", date.substring(5)); | ||
| 1641 | + m.put("line", xlName); | ||
| 1642 | + m.put("firstOrLast", "上行首发"); | ||
| 1643 | + m.put("qdz", s1.getQdzName()); | ||
| 1644 | + m.put("jhfc", s1.getFcsj()); | ||
| 1645 | + m.put("sjfc", s2.getFcsjActual()); | ||
| 1646 | + m.put("delay", delayFirst0>0?"+"+delayFirst0:delayFirst0); | ||
| 1647 | + m.put("remarks1", s1.getRemarks()); | ||
| 1648 | + m.put("remarks2", s2.getRemarks()); | ||
| 1649 | + m.put("remarks", s1.getRemarks() + s2.getRemarks()); | ||
| 1650 | + mapList.add(m); | ||
| 1651 | + } | ||
| 1652 | + if(delayLast0 <= 1l && delayLast0 >= -3l){ | ||
| 1636 | sjbc++; | 1653 | sjbc++; |
| 1654 | + } else { | ||
| 1655 | + Map<String, Object> m = new HashMap<String, Object>(); | ||
| 1656 | + m.put("date", date.substring(5)); | ||
| 1657 | + m.put("line", xlName); | ||
| 1658 | + m.put("firstOrLast", "上行末发"); | ||
| 1659 | + m.put("qdz", s3.getQdzName()); | ||
| 1660 | + m.put("jhfc", s3.getFcsj()); | ||
| 1661 | + m.put("sjfc", s4.getFcsjActual()); | ||
| 1662 | + m.put("delay", delayLast0>0?"+"+delayLast0:delayLast0); | ||
| 1663 | + m.put("remarks1", s3.getRemarks()); | ||
| 1664 | + m.put("remarks2", s4.getRemarks()); | ||
| 1665 | + m.put("remarks", s3.getRemarks() + s4.getRemarks()); | ||
| 1666 | + mapList.add(m); | ||
| 1667 | + } | ||
| 1637 | } else { | 1668 | } else { |
| 1638 | temp.put("qdzFirst0", "--"); | 1669 | temp.put("qdzFirst0", "--"); |
| 1639 | temp.put("jhfcFirst0", "/"); | 1670 | temp.put("jhfcFirst0", "/"); |
| @@ -1662,10 +1693,40 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | @@ -1662,10 +1693,40 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | ||
| 1662 | temp.put("sjfcLast1", s4.getFcsjActual()); | 1693 | temp.put("sjfcLast1", s4.getFcsjActual()); |
| 1663 | temp.put("delayLast1", delayLast1>0?"+"+delayLast1:delayLast1); | 1694 | temp.put("delayLast1", delayLast1>0?"+"+delayLast1:delayLast1); |
| 1664 | jhbc += 2; | 1695 | jhbc += 2; |
| 1665 | - if(delayFirst1 <= 1l && delayFirst1 >= -3l) | 1696 | + if(delayFirst1 <= 1l && delayFirst1 >= -2l){ |
| 1666 | sjbc++; | 1697 | sjbc++; |
| 1667 | - if(delayLast1 <= 1l && delayLast1 >= -3l) | 1698 | + } else { |
| 1699 | + Map<String, Object> m = new HashMap<String, Object>(); | ||
| 1700 | + m.put("date", date.substring(5)); | ||
| 1701 | + m.put("line", xlName); | ||
| 1702 | + m.put("firstOrLast", "下行首发"); | ||
| 1703 | + m.put("qdz", s1.getQdzName()); | ||
| 1704 | + m.put("jhfc", s1.getFcsj()); | ||
| 1705 | + m.put("sjfc", s2.getFcsjActual()); | ||
| 1706 | + m.put("delay", delayFirst1>0?"+"+delayFirst1:delayFirst1); | ||
| 1707 | + m.put("remarks1", s1.getRemarks()); | ||
| 1708 | + m.put("remarks2", s2.getRemarks()); | ||
| 1709 | + m.put("remarks", s1.getRemarks() + s2.getAdjustExps()); | ||
| 1710 | + mapList.add(m); | ||
| 1711 | + } | ||
| 1712 | + | ||
| 1713 | + if(delayLast1 <= 1l && delayLast1 >= -2l){ | ||
| 1668 | sjbc++; | 1714 | sjbc++; |
| 1715 | + } else { | ||
| 1716 | + Map<String, Object> m = new HashMap<String, Object>(); | ||
| 1717 | + m.put("date", date.substring(5)); | ||
| 1718 | + m.put("line", xlName); | ||
| 1719 | + m.put("firstOrLast", "下行末发"); | ||
| 1720 | + m.put("qdz", s3.getQdzName()); | ||
| 1721 | + m.put("jhfc", s3.getFcsj()); | ||
| 1722 | + m.put("sjfc", s4.getFcsjActual()); | ||
| 1723 | + m.put("delay", delayLast1>0?"+"+delayLast1:delayLast1); | ||
| 1724 | + m.put("remarks1", s3.getRemarks()); | ||
| 1725 | + m.put("remarks2", s4.getRemarks()); | ||
| 1726 | + m.put("remarks", s3.getRemarks() + s4.getRemarks()); | ||
| 1727 | + mapList.add(m); | ||
| 1728 | + } | ||
| 1729 | + | ||
| 1669 | } else { | 1730 | } else { |
| 1670 | temp.put("qdzFirst1", "--"); | 1731 | temp.put("qdzFirst1", "--"); |
| 1671 | temp.put("jhfcFirst1", "/"); | 1732 | temp.put("jhfcFirst1", "/"); |
| @@ -1692,14 +1753,20 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | @@ -1692,14 +1753,20 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { | ||
| 1692 | Map<String, Object> tempMap = new HashMap<String, Object>(); | 1753 | Map<String, Object> tempMap = new HashMap<String, Object>(); |
| 1693 | if(resList.size() > 0){ | 1754 | if(resList.size() > 0){ |
| 1694 | tempMap.put("date", "合计汇总"); | 1755 | tempMap.put("date", "合计汇总"); |
| 1695 | - int jhbc = 0, sjbc = 0; | 1756 | + int jhbc = 0, sjbc = 0, i = 0; |
| 1757 | + tempMap.put("jhbc", jhbc); | ||
| 1758 | + tempMap.put("sjbc", sjbc); | ||
| 1696 | for(Map<String, Object> m : resList){ | 1759 | for(Map<String, Object> m : resList){ |
| 1697 | jhbc += Integer.valueOf(m.get("jhbc").toString()); | 1760 | jhbc += Integer.valueOf(m.get("jhbc").toString()); |
| 1698 | sjbc += Integer.valueOf(m.get("sjbc").toString()); | 1761 | sjbc += Integer.valueOf(m.get("sjbc").toString()); |
| 1699 | } | 1762 | } |
| 1700 | - tempMap.put("jhbc", jhbc); | ||
| 1701 | - tempMap.put("sjbc", sjbc); | ||
| 1702 | - tempMap.put("zdl", nf.format((float) sjbc / jhbc *100) + "%"); | 1763 | + tempMap.put("zdl", nf.format((float) sjbc / jhbc * 100) + "%"); |
| 1764 | + for(Map<String, Object> m : mapList){ | ||
| 1765 | + m.put("no", ++i); | ||
| 1766 | + m.put("company", companyName); | ||
| 1767 | + m.put("subCompany", subCompanyName); | ||
| 1768 | + } | ||
| 1769 | + tempMap.put("map", mapList); | ||
| 1703 | if(!type.equals("export")) | 1770 | if(!type.equals("export")) |
| 1704 | resList.add(tempMap); | 1771 | resList.add(tempMap); |
| 1705 | } | 1772 | } |
src/main/resources/static/pages/forms/statement/firstAndLastBus_sum.html
| @@ -110,6 +110,25 @@ | @@ -110,6 +110,25 @@ | ||
| 110 | 110 | ||
| 111 | </tbody> | 111 | </tbody> |
| 112 | </table> | 112 | </table> |
| 113 | + <table class="table table-bordered table-hover table-checkable" id="sumMap"> | ||
| 114 | + <thead> | ||
| 115 | + <tr class="hidden"> | ||
| 116 | + <th style="display: none;"></th> | ||
| 117 | + <th>日期</th> | ||
| 118 | + <th>序号</th> | ||
| 119 | + <th>分公司</th> | ||
| 120 | + <th>线路</th> | ||
| 121 | + <th>首末班次</th> | ||
| 122 | + <th>计发</th> | ||
| 123 | + <th>实发</th> | ||
| 124 | + <th>误差</th> | ||
| 125 | + <th>调度路单备注</th> | ||
| 126 | + </tr> | ||
| 127 | + </thead> | ||
| 128 | + <tbody> | ||
| 129 | + | ||
| 130 | + </tbody> | ||
| 131 | + </table> | ||
| 113 | </div> | 132 | </div> |
| 114 | </div> | 133 | </div> |
| 115 | </div> | 134 | </div> |
| @@ -124,12 +143,9 @@ | @@ -124,12 +143,9 @@ | ||
| 124 | if (!$('body').hasClass('page-sidebar-closed')) | 143 | if (!$('body').hasClass('page-sidebar-closed')) |
| 125 | $('.menu-toggler.sidebar-toggler').click(); | 144 | $('.menu-toggler.sidebar-toggler').click(); |
| 126 | 145 | ||
| 127 | - $("#startDate,#endDate").datetimepicker({ | ||
| 128 | - format : 'YYYY-MM-DD', | ||
| 129 | - locale : 'zh-cn' | ||
| 130 | - }); | ||
| 131 | 146 | ||
| 132 | var d = new Date(); | 147 | var d = new Date(); |
| 148 | + d.setTime(d.getTime() - 1*1000*60*60*24); | ||
| 133 | var year = d.getFullYear(); | 149 | var year = d.getFullYear(); |
| 134 | var month = d.getMonth() + 1; | 150 | var month = d.getMonth() + 1; |
| 135 | var day = d.getDate(); | 151 | var day = d.getDate(); |
| @@ -137,7 +153,13 @@ | @@ -137,7 +153,13 @@ | ||
| 137 | month = "0" + month; | 153 | month = "0" + month; |
| 138 | if(day < 10) | 154 | if(day < 10) |
| 139 | day = "0" + day; | 155 | day = "0" + day; |
| 140 | - $("#startDate,#endDate").val(year + "-" + month + "-" + day); | 156 | + var dateTime = year + "-" + month + "-" + day; |
| 157 | + $("#startDate,#endDate").datetimepicker({ | ||
| 158 | + format : 'YYYY-MM-DD', | ||
| 159 | + locale : 'zh-cn', | ||
| 160 | + maxDate : dateTime | ||
| 161 | + }); | ||
| 162 | + $("#startDate,#endDate").val(dateTime); | ||
| 141 | 163 | ||
| 142 | var fage=false; | 164 | var fage=false; |
| 143 | var xlList; | 165 | var xlList; |
| @@ -218,14 +240,28 @@ | @@ -218,14 +240,28 @@ | ||
| 218 | var list; | 240 | var list; |
| 219 | $("#forms tbody").on("click","a",function(){ | 241 | $("#forms tbody").on("click","a",function(){ |
| 220 | var index = $(this).parent().parent().index(); | 242 | var index = $(this).parent().parent().index(); |
| 221 | - $.each(list, function(i, g){ | ||
| 222 | - if(index == i){ | ||
| 223 | - var tbodyHtml = template('list_maps',{list:g.map}); | ||
| 224 | - $('#map tbody').html(tbodyHtml); | ||
| 225 | - $("#map .hidden").removeClass("hidden"); | ||
| 226 | - $("html,body").animate({scrollTop:$("#map").offset().top},1000); | ||
| 227 | - } | ||
| 228 | - }); | 243 | + if(index < list.length - 1){ |
| 244 | + $.each(list, function(i, g){ | ||
| 245 | + if(index == i){ | ||
| 246 | + var tbodyHtml = template('list_maps',{list:g.map}); | ||
| 247 | + $('#map tbody').html(tbodyHtml); | ||
| 248 | + $("#sumMap tr").addClass("hidden"); | ||
| 249 | + $("#map .hidden").removeClass("hidden"); | ||
| 250 | + $("html,body").animate({scrollTop:$("#map").offset().top},1000); | ||
| 251 | + } | ||
| 252 | + }); | ||
| 253 | + } else { | ||
| 254 | + var tempList = []; | ||
| 255 | + $.each(list, function(i, g){ | ||
| 256 | + if(index == i){ | ||
| 257 | + var tbodyHtml = template('list_sumMaps',{list:g.map}); | ||
| 258 | + $('#sumMap tbody').html(tbodyHtml); | ||
| 259 | + $("#map tr").addClass("hidden"); | ||
| 260 | + $("#sumMap .hidden").removeClass("hidden"); | ||
| 261 | + $("html,body").animate({scrollTop:$("#sumMap").offset().top},1000); | ||
| 262 | + } | ||
| 263 | + }); | ||
| 264 | + } | ||
| 229 | }); | 265 | }); |
| 230 | 266 | ||
| 231 | $("#query").on("click",jsDoQuery); | 267 | $("#query").on("click",jsDoQuery); |
| @@ -260,6 +296,7 @@ | @@ -260,6 +296,7 @@ | ||
| 260 | params['type'] = "query"; | 296 | params['type'] = "query"; |
| 261 | $("#forms .hidden").removeClass("hidden"); | 297 | $("#forms .hidden").removeClass("hidden"); |
| 262 | $("#map tr").addClass("hidden"); | 298 | $("#map tr").addClass("hidden"); |
| 299 | + $("#sumMap tr").addClass("hidden"); | ||
| 263 | $get('/pcpc/firstAndLastBus_sum', params, function(result){ | 300 | $get('/pcpc/firstAndLastBus_sum', params, function(result){ |
| 264 | // 把数据填充到模版中 | 301 | // 把数据填充到模版中 |
| 265 | var tbodyHtml = template('list_firstAndLastBus_sum',{list:result}); | 302 | var tbodyHtml = template('list_firstAndLastBus_sum',{list:result}); |
| @@ -307,7 +344,7 @@ | @@ -307,7 +344,7 @@ | ||
| 307 | <td colspan='4'>{{obj.date}}</td> | 344 | <td colspan='4'>{{obj.date}}</td> |
| 308 | <td>{{obj.jhbc}}</td> | 345 | <td>{{obj.jhbc}}</td> |
| 309 | <td>{{obj.sjbc}}</td> | 346 | <td>{{obj.sjbc}}</td> |
| 310 | - <td>{{obj.zdl}}</td> | 347 | + <td><a id='delay'>{{obj.zdl}}</a></td> |
| 311 | {{/if}} | 348 | {{/if}} |
| 312 | </tr> | 349 | </tr> |
| 313 | {{/each}} | 350 | {{/each}} |
| @@ -368,4 +405,19 @@ | @@ -368,4 +405,19 @@ | ||
| 368 | {{/if}} | 405 | {{/if}} |
| 369 | </tr> | 406 | </tr> |
| 370 | {{/each}} | 407 | {{/each}} |
| 408 | +</script> | ||
| 409 | +<script type="text/html" id="list_sumMaps"> | ||
| 410 | + {{each list as obj i}} | ||
| 411 | + <tr> | ||
| 412 | + <td>{{obj.date}}</td> | ||
| 413 | + <td>{{obj.no}}</td> | ||
| 414 | + <td>{{obj.subCompany}}</td> | ||
| 415 | + <td>{{obj.line}}</td> | ||
| 416 | + <td>{{obj.firstOrLast}}</td> | ||
| 417 | + <td>{{obj.jhfc}}</td> | ||
| 418 | + <td>{{obj.sjfc}}</td> | ||
| 419 | + <td>{{obj.delay}}</td> | ||
| 420 | + <td>{{obj.remarks1}}</td> | ||
| 421 | + </tr> | ||
| 422 | + {{/each}} | ||
| 371 | </script> | 423 | </script> |
| 372 | \ No newline at end of file | 424 | \ No newline at end of file |