Commit f2ca883eef8e08c9f95d5061e6d5dcade648f4ef
Merge branch 'pudong_test' of 192.168.168.201:panzhaov5/bsth_control into pudong_test
Showing
9 changed files
with
549 additions
and
56 deletions
src/main/java/com/bsth/controller/calc/CalcIntervalController.java
| 1 | package com.bsth.controller.calc; | 1 | package com.bsth.controller.calc; |
| 2 | 2 | ||
| 3 | +import java.util.ArrayList; | ||
| 3 | import java.util.List; | 4 | import java.util.List; |
| 4 | import java.util.Map; | 5 | import java.util.Map; |
| 5 | 6 | ||
| @@ -31,7 +32,18 @@ public class CalcIntervalController extends BaseController<CalcInterval,Integer | @@ -31,7 +32,18 @@ public class CalcIntervalController extends BaseController<CalcInterval,Integer | ||
| 31 | 32 | ||
| 32 | @RequestMapping(value="/interval") | 33 | @RequestMapping(value="/interval") |
| 33 | public List<Map<String,Object>> interval(@RequestParam Map<String, Object> map){ | 34 | public List<Map<String,Object>> interval(@RequestParam Map<String, Object> map){ |
| 34 | - List<Map<String,Object>> list=calcIntervalService.interval(map); | 35 | + List<Map<String,Object>> list=new ArrayList<Map<String,Object>>(); |
| 36 | + if(map.get("status")==null){ | ||
| 37 | + list=calcIntervalService.interval(map); | ||
| 38 | + }else{ | ||
| 39 | + list=calcIntervalService.intervalDetail(map); | ||
| 40 | + } | ||
| 41 | + return list; | ||
| 42 | + } | ||
| 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); | ||
| 35 | return list; | 47 | return list; |
| 36 | } | 48 | } |
| 37 | 49 |
src/main/java/com/bsth/repository/calc/CalcIntervalRepository.java
| @@ -25,7 +25,7 @@ public interface CalcIntervalRepository extends BaseRepository<CalcInterval, Int | @@ -25,7 +25,7 @@ public interface CalcIntervalRepository extends BaseRepository<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 | List<CalcInterval> selectByDateAndLine(String line,String date,String date2,String level); | 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
| @@ -13,5 +13,11 @@ public interface CalcIntervalService extends BaseService<CalcInterval,Integer> { | @@ -13,5 +13,11 @@ public interface CalcIntervalService extends BaseService<CalcInterval,Integer> { | ||
| 13 | 13 | ||
| 14 | List<Map<String,Object>> countList(Map<String, Object> map); | 14 | List<Map<String,Object>> countList(Map<String, Object> map); |
| 15 | List<Map<String,Object>> listInterval(Map<String, Object> map); | 15 | List<Map<String,Object>> listInterval(Map<String, Object> map); |
| 16 | + //根据排班表查询 | ||
| 16 | List<Map<String,Object>> interval(Map<String, Object> map); | 17 | List<Map<String,Object>> interval(Map<String, Object> map); |
| 18 | + //根据预统计表查询 | ||
| 19 | + List<Map<String,Object>> intervalDetail(Map<String, Object> map); | ||
| 20 | + //大间隔统计表(大间隔发生次数统计表) | ||
| 21 | + List<Map<String,Object>> sumInterval(Map<String, Object> map); | ||
| 22 | + | ||
| 17 | } | 23 | } |
src/main/java/com/bsth/service/calc/impl/CalcIntervalServiceImpl.java
| 1 | package com.bsth.service.calc.impl; | 1 | package com.bsth.service.calc.impl; |
| 2 | 2 | ||
| 3 | +import java.math.BigDecimal; | ||
| 3 | import java.sql.ResultSet; | 4 | import java.sql.ResultSet; |
| 4 | import java.sql.SQLException; | 5 | import java.sql.SQLException; |
| 5 | import java.text.DecimalFormat; | 6 | import java.text.DecimalFormat; |
| @@ -31,10 +32,13 @@ import com.bsth.entity.sheet.Sheet; | @@ -31,10 +32,13 @@ import com.bsth.entity.sheet.Sheet; | ||
| 31 | import com.bsth.repository.LineRepository; | 32 | import com.bsth.repository.LineRepository; |
| 32 | import com.bsth.repository.calc.CalcIntervalRepository; | 33 | import com.bsth.repository.calc.CalcIntervalRepository; |
| 33 | import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; | 34 | import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; |
| 35 | +import com.bsth.service.LineService; | ||
| 34 | import com.bsth.service.calc.CalcIntervalService; | 36 | import com.bsth.service.calc.CalcIntervalService; |
| 35 | import com.bsth.service.impl.BaseServiceImpl; | 37 | import com.bsth.service.impl.BaseServiceImpl; |
| 38 | +import com.bsth.util.Arith; | ||
| 36 | import com.bsth.util.ComparableReal; | 39 | import com.bsth.util.ComparableReal; |
| 37 | import com.bsth.util.ReportUtils; | 40 | import com.bsth.util.ReportUtils; |
| 41 | +import com.mysql.fabric.xmlrpc.base.Array; | ||
| 38 | 42 | ||
| 39 | @Service | 43 | @Service |
| 40 | public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Integer> implements CalcIntervalService { | 44 | public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Integer> implements CalcIntervalService { |
| @@ -51,6 +55,8 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -51,6 +55,8 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 51 | LineRepository lineRepository; | 55 | LineRepository lineRepository; |
| 52 | @Autowired | 56 | @Autowired |
| 53 | JdbcTemplate jdbcTemplate; | 57 | JdbcTemplate jdbcTemplate; |
| 58 | + @Autowired | ||
| 59 | + LineService lineService; | ||
| 54 | @Override | 60 | @Override |
| 55 | public List<Map<String, Object>> countList(Map<String, Object> map) { | 61 | public List<Map<String, Object>> countList(Map<String, Object> map) { |
| 56 | // TODO Auto-generated method stub | 62 | // TODO Auto-generated method stub |
| @@ -62,9 +68,10 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -62,9 +68,10 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 62 | String fgs=map.get("fgs").toString().trim(); | 68 | String fgs=map.get("fgs").toString().trim(); |
| 63 | String sDate=map.get("date").toString(); | 69 | String sDate=map.get("date").toString(); |
| 64 | String eDate=map.get("endDate").toString(); | 70 | String eDate=map.get("endDate").toString(); |
| 71 | + String nature=map.get("nature").toString(); | ||
| 65 | 72 | ||
| 66 | //D级线路显示发车准点率 | 73 | //D级线路显示发车准点率 |
| 67 | - if(level.equals("D")){ | 74 | + if(level.equals("D") && false){ //新的计算规则D级也显示大间隔 |
| 68 | String sql1=" select xl_bm,gsbm,fgsbm,xl_name from bsth_c_calc_interval where date >='"+sDate+"' and date <= '"+eDate+"' and `level`='D'"; | 75 | String sql1=" select xl_bm,gsbm,fgsbm,xl_name from bsth_c_calc_interval where date >='"+sDate+"' and date <= '"+eDate+"' and `level`='D'"; |
| 69 | if(line.equals("")){ | 76 | if(line.equals("")){ |
| 70 | if(fgs.equals("")){ | 77 | if(fgs.equals("")){ |
| @@ -124,10 +131,13 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -124,10 +131,13 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 124 | }); | 131 | }); |
| 125 | }else{ | 132 | }else{ |
| 126 | //统计信息中需要查询所有班次 | 133 | //统计信息中需要查询所有班次 |
| 127 | -// 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' "; | ||
| 128 | 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," | 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," |
| 129 | - + "SUM(djg_dg) as djgDg,SUM(djg_zgf) as djgZgf,SUM(djg_wgf) as djgWgf,MAX(djg_time) as djgTime " | ||
| 130 | - + "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 <> '' "; | ||
| 131 | if(line.equals("")){ | 141 | if(line.equals("")){ |
| 132 | if(fgs.equals("")){ | 142 | if(fgs.equals("")){ |
| 133 | sql +=" and gsbm = '"+gs+"'"; | 143 | sql +=" and gsbm = '"+gs+"'"; |
| @@ -164,22 +174,46 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -164,22 +174,46 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 164 | m.put("djgZgf", rs.getString("djgZgf")); | 174 | m.put("djgZgf", rs.getString("djgZgf")); |
| 165 | m.put("djgWgf", rs.getString("djgWgf")); | 175 | m.put("djgWgf", rs.getString("djgWgf")); |
| 166 | m.put("djgDg", rs.getString("djgDg")); | 176 | m.put("djgDg", rs.getString("djgDg")); |
| 167 | - 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 | + } | ||
| 168 | return m; | 182 | return m; |
| 169 | } | 183 | } |
| 170 | }); | 184 | }); |
| 171 | } | 185 | } |
| 172 | 186 | ||
| 187 | + //根据线路类型确定是否营运 | ||
| 188 | + Map<String, Boolean> lineMap=lineService.lineNature(); | ||
| 189 | + List<Map<String, Object>> listAll=new ArrayList<Map<String, Object>>(); | ||
| 190 | + for (int i = 0; i < list.size(); i++) { | ||
| 191 | + Map<String, Object> m=list.get(i); | ||
| 192 | + if (nature.equals("0")) { | ||
| 193 | + listAll.add(m); | ||
| 194 | + }else if(nature.equals("1")){ | ||
| 195 | + if(lineMap.get(m.get("xlBm").toString())){ | ||
| 196 | + listAll.add(m); | ||
| 197 | + } | ||
| 198 | + }else{ | ||
| 199 | + if(!lineMap.get(m.get("xlBm").toString())){ | ||
| 200 | + listAll.add(m); | ||
| 201 | + } | ||
| 202 | + } | ||
| 203 | + } | ||
| 204 | + | ||
| 173 | if(map.get("type").equals("export")){ | 205 | if(map.get("type").equals("export")){ |
| 174 | String lineName=""; | 206 | String lineName=""; |
| 175 | - if(line.equals("")){ | ||
| 176 | - if(fgs.equals("")){ | ||
| 177 | - lineName=list.get(0).get("gs").toString(); | ||
| 178 | - }else{ | ||
| 179 | - lineName=list.get(0).get("fgs").toString(); | 207 | + if(listAll.size()>0){ |
| 208 | + if(line.equals("")){ | ||
| 209 | + if(fgs.equals("")){ | ||
| 210 | + lineName=listAll.get(0).get("gs").toString(); | ||
| 211 | + }else{ | ||
| 212 | + lineName=listAll.get(0).get("fgs").toString(); | ||
| 213 | + } | ||
| 214 | + }else{ | ||
| 215 | + lineName=listAll.get(0).get("xlName").toString(); | ||
| 180 | } | 216 | } |
| 181 | - }else{ | ||
| 182 | - lineName=list.get(0).get("xlName").toString(); | ||
| 183 | } | 217 | } |
| 184 | List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); | 218 | List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); |
| 185 | Map<String, Object> m = new HashMap<String, Object>(); | 219 | Map<String, Object> m = new HashMap<String, Object>(); |
| @@ -193,21 +227,21 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -193,21 +227,21 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 193 | dateTime = sDate.replaceAll("-", "")+"-"+ | 227 | dateTime = sDate.replaceAll("-", "")+"-"+ |
| 194 | eDate.replaceAll("-", ""); | 228 | eDate.replaceAll("-", ""); |
| 195 | } | 229 | } |
| 196 | - listI.add(list.iterator()); | 230 | + listI.add(listAll.iterator()); |
| 197 | String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | 231 | String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; |
| 198 | String xls=""; | 232 | String xls=""; |
| 199 | String xlsName=""; | 233 | String xlsName=""; |
| 200 | - if(level.equals("D")){ | ||
| 201 | - m.put("date", sDate); | ||
| 202 | - m.put("endDate", eDate); | ||
| 203 | - xls="calcSheetList.xls"; | ||
| 204 | - xlsName="发车到站准点率.xls"; | ||
| 205 | - }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{ | ||
| 206 | m.put("sDate", sDate); | 240 | m.put("sDate", sDate); |
| 207 | m.put("eDate", eDate); | 241 | m.put("eDate", eDate); |
| 208 | xls="calcIntervalCount.xls"; | 242 | xls="calcIntervalCount.xls"; |
| 209 | - xlsName="大间隔汇总表.xls"; | ||
| 210 | - } | 243 | + xlsName="大间隔情况表.xls"; |
| 244 | +// } | ||
| 211 | 245 | ||
| 212 | ee.excelReplace(listI, new Object[]{m}, path + "mould/" + ""+xls, | 246 | ee.excelReplace(listI, new Object[]{m}, path + "mould/" + ""+xls, |
| 213 | path + "export/"+dateTime+"-"+lineName+"-"+xlsName); | 247 | path + "export/"+dateTime+"-"+lineName+"-"+xlsName); |
| @@ -216,7 +250,7 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -216,7 +250,7 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 216 | e.printStackTrace(); | 250 | e.printStackTrace(); |
| 217 | } | 251 | } |
| 218 | } | 252 | } |
| 219 | - return list; | 253 | + return listAll; |
| 220 | } | 254 | } |
| 221 | @Override | 255 | @Override |
| 222 | public List<Map<String, Object>> listInterval(Map<String, Object> map) { | 256 | public List<Map<String, Object>> listInterval(Map<String, Object> map) { |
| @@ -230,7 +264,8 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -230,7 +264,8 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 230 | List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>(); | 264 | List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>(); |
| 231 | for (int i = 0; i < listAll.size(); i++) { | 265 | for (int i = 0; i < listAll.size(); i++) { |
| 232 | CalcInterval t=listAll.get(i); | 266 | CalcInterval t=listAll.get(i); |
| 233 | - 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){ | ||
| 234 | Map<String, Object> m=new HashMap<>(); | 269 | Map<String, Object> m=new HashMap<>(); |
| 235 | m.put("gs", t.getGsname()); | 270 | m.put("gs", t.getGsname()); |
| 236 | m.put("fgs", t.getFgsname()); | 271 | m.put("fgs", t.getFgsname()); |
| @@ -607,6 +642,49 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -607,6 +642,49 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 607 | return list; | 642 | return list; |
| 608 | } | 643 | } |
| 609 | 644 | ||
| 645 | + @Override | ||
| 646 | + public List<Map<String, Object>> intervalDetail(Map<String, Object> map) { | ||
| 647 | + // TODO Auto-generated method stub | ||
| 648 | + String line=map.get("line").toString(); | ||
| 649 | + String date=map.get("date").toString(); | ||
| 650 | + String sql="select * from bsth_c_calc_interval_detail where line_code='"+line+"' and " | ||
| 651 | + + " date ='"+date+"'"; | ||
| 652 | + | ||
| 653 | + List<Map<String, Object>> list=jdbcTemplate.query(sql, | ||
| 654 | + new RowMapper<Map<String,Object>>(){ | ||
| 655 | + @Override | ||
| 656 | + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { | ||
| 657 | + Map<String, Object> m=new HashMap<String,Object>(); | ||
| 658 | + m.put("xlName", rs.getString("line_name")); | ||
| 659 | + m.put("level", rs.getString("level")); | ||
| 660 | + m.put("jhfc1", rs.getString("jhfc1")); | ||
| 661 | + m.put("sjfc1", rs.getString("sjfc1")); | ||
| 662 | + m.put("jhfc2", rs.getString("jhfc2")); | ||
| 663 | + m.put("sjfc2", rs.getString("sjfc2")); | ||
| 664 | + m.put("subTime", rs.getString("sub_time")); | ||
| 665 | + m.put("date", rs.getString("date")); | ||
| 666 | + m.put("station", rs.getString("station")); | ||
| 667 | + | ||
| 668 | + return m; | ||
| 669 | + } | ||
| 670 | + }); | ||
| 671 | + if(map.get("type").toString().equals("export")){ | ||
| 672 | + List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); | ||
| 673 | + Map<String, Object> m = new HashMap<String, Object>(); | ||
| 674 | + m.put("date", date); | ||
| 675 | + ReportUtils ee = new ReportUtils(); | ||
| 676 | + try { | ||
| 677 | + listI.add(list.iterator()); | ||
| 678 | + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; | ||
| 679 | + ee.excelReplace(listI, new Object[]{m}, path + "mould/" + "interval.xls", | ||
| 680 | + path + "export/"+date+"大间隔详细.xls"); | ||
| 681 | + } catch (Exception e) { | ||
| 682 | + // TODO: handle exception | ||
| 683 | + e.printStackTrace(); | ||
| 684 | + } | ||
| 685 | + } | ||
| 686 | + return list; | ||
| 687 | + } | ||
| 610 | 688 | ||
| 611 | private Long minFcsjs(int id){ | 689 | private Long minFcsjs(int id){ |
| 612 | String minfcsj="02:00"; | 690 | String minfcsj="02:00"; |
| @@ -620,6 +698,154 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | @@ -620,6 +698,154 @@ public class CalcIntervalServiceImpl extends BaseServiceImpl<CalcInterval,Intege | ||
| 620 | Long minSj=Long.parseLong(minSjs[0])*60+Long.parseLong(minSjs[1]); | 698 | Long minSj=Long.parseLong(minSjs[0])*60+Long.parseLong(minSjs[1]); |
| 621 | return minSj; | 699 | return minSj; |
| 622 | } | 700 | } |
| 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 | + | ||
| 623 | } | 849 | } |
| 624 | 850 | ||
| 625 | class ComparableJhfc implements Comparator<ScheduleRealInfo>{ | 851 | class ComparableJhfc implements Comparator<ScheduleRealInfo>{ |
src/main/resources/static/pages/forms/mould/calcIntervalCount.xls
No preview for this file type
src/main/resources/static/pages/forms/mould/calcIntervalList1.xls
No preview for this file type
src/main/resources/static/pages/report/sheet/intervalCount.html
| @@ -31,7 +31,7 @@ | @@ -31,7 +31,7 @@ | ||
| 31 | <span class="item-label" style="width: 80px;">公司: </span> | 31 | <span class="item-label" style="width: 80px;">公司: </span> |
| 32 | <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select> | 32 | <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select> |
| 33 | </div> | 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 | <span class="item-label" style="width: 80px;">分公司: </span> | 35 | <span class="item-label" style="width: 80px;">分公司: </span> |
| 36 | <select class="form-control" name="subCompany" id="fgsdm" style="width: 180px;"></select> | 36 | <select class="form-control" name="subCompany" id="fgsdm" style="width: 180px;"></select> |
| 37 | </div> | 37 | </div> |
| @@ -39,21 +39,35 @@ | @@ -39,21 +39,35 @@ | ||
| 39 | <span class="item-label" style="width: 80px;">线路: </span> | 39 | <span class="item-label" style="width: 80px;">线路: </span> |
| 40 | <select class="form-control" name="line" id="line" style="width: 180px;"></select> | 40 | <select class="form-control" name="line" id="line" style="width: 180px;"></select> |
| 41 | </div> | 41 | </div> |
| 42 | + <div style="display: inline-block;margin-left: 18px;"> | ||
| 43 | + <span class="item-label" style="width: 80px;">线路性质: </span> | ||
| 44 | + <select | ||
| 45 | + class="form-control" name="nature" id="nature" | ||
| 46 | + style="width: 180px;"> | ||
| 47 | + <option value="0">全部线路</option> | ||
| 48 | + <option value="1" selected="selected">营运线路</option> | ||
| 49 | + <option value="2">非营运线路</option> | ||
| 50 | + </select> | ||
| 51 | + </div> | ||
| 42 | <div style="margin-top: 10px"> | 52 | <div style="margin-top: 10px"> |
| 43 | </div> | 53 | </div> |
| 44 | <div style="display: inline-block;margin-left: 33px;"> | 54 | <div style="display: inline-block;margin-left: 33px;"> |
| 45 | <span class="item-label" style="width: 80px;">等级: </span> | 55 | <span class="item-label" style="width: 80px;">等级: </span> |
| 46 | <select class="form-control" style="width: 180px;" id=levelType> | 56 | <select class="form-control" style="width: 180px;" id=levelType> |
| 47 | - <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> | ||
| 48 | <option value="D">D级线路</option> | 61 | <option value="D">D级线路</option> |
| 62 | + <option value="E">E级线路</option> | ||
| 49 | </select> | 63 | </select> |
| 50 | </div> | 64 | </div> |
| 51 | <div style="display: inline-block;"> | 65 | <div style="display: inline-block;"> |
| 52 | - <span class="item-label" style="width: 80px;margin-left: 24px;">开始时间: </span> | 66 | + <span class="item-label" style="width: 80px;margin-left: 14px;">开始时间: </span> |
| 53 | <input class="form-control" type="text" id="date" style="width: 180px;"/> | 67 | <input class="form-control" type="text" id="date" style="width: 180px;"/> |
| 54 | </div> | 68 | </div> |
| 55 | <div style="display: inline-block;"> | 69 | <div style="display: inline-block;"> |
| 56 | - <span class="item-label" style="width: 80px;margin-left: 24px;">结束时间: </span> | 70 | + <span class="item-label" style="width: 80px;margin-left: 14px;">结束时间: </span> |
| 57 | <input class="form-control" type="text" id="endDate" style="width: 180px;"/> | 71 | <input class="form-control" type="text" id="endDate" style="width: 180px;"/> |
| 58 | </div> | 72 | </div> |
| 59 | 73 | ||
| @@ -106,7 +120,6 @@ | @@ -106,7 +120,6 @@ | ||
| 106 | </tbody> | 120 | </tbody> |
| 107 | </table> | 121 | </table> |
| 108 | 122 | ||
| 109 | - | ||
| 110 | </div> | 123 | </div> |
| 111 | 124 | ||
| 112 | <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> | 125 | <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> |
| @@ -126,7 +139,7 @@ | @@ -126,7 +139,7 @@ | ||
| 126 | <td>低谷次数</td> | 139 | <td>低谷次数</td> |
| 127 | <td>全日班次数</td> | 140 | <td>全日班次数</td> |
| 128 | <td>万班次发生率</td> | 141 | <td>万班次发生率</td> |
| 129 | - <td>最大间隔</td> | 142 | + <td>最大间隔时间</td> |
| 130 | <td>查看</td> | 143 | <td>查看</td> |
| 131 | </tr> | 144 | </tr> |
| 132 | </thead> | 145 | </thead> |
| @@ -255,10 +268,13 @@ | @@ -255,10 +268,13 @@ | ||
| 255 | if($("#line").val() == " "){ | 268 | if($("#line").val() == " "){ |
| 256 | $("#gsdm").attr("disabled", false); | 269 | $("#gsdm").attr("disabled", false); |
| 257 | $("#fgsdm").attr("disabled", false); | 270 | $("#fgsdm").attr("disabled", false); |
| 271 | + $("#levelType").val('A'); | ||
| 258 | } else { | 272 | } else { |
| 259 | var temp = tempData[$("#line").val()].split(":"); | 273 | var temp = tempData[$("#line").val()].split(":"); |
| 260 | $("#gsdm").val(temp[0]); | 274 | $("#gsdm").val(temp[0]); |
| 261 | updateCompany(); | 275 | updateCompany(); |
| 276 | + $("#nature").val(0); | ||
| 277 | + $("#levelType").val(''); | ||
| 262 | $("#fgsdm").val(temp[1]); | 278 | $("#fgsdm").val(temp[1]); |
| 263 | $("#gsdm").attr("disabled", true); | 279 | $("#gsdm").attr("disabled", true); |
| 264 | $("#fgsdm").attr("disabled", true); | 280 | $("#fgsdm").attr("disabled", true); |
| @@ -275,21 +291,22 @@ | @@ -275,21 +291,22 @@ | ||
| 275 | var fgs=$('#fgsdm').val(); | 291 | var fgs=$('#fgsdm').val(); |
| 276 | var gs=$('#gsdm').val(); | 292 | var gs=$('#gsdm').val(); |
| 277 | var levelType=$('#levelType').val(); | 293 | var levelType=$('#levelType').val(); |
| 294 | + var nature=$("#nature").val(); | ||
| 278 | var i = layer.load(2); | 295 | var i = layer.load(2); |
| 279 | - $get('/calcInterval/countList',{line:line,date:date,endDate:endDate,gs:gs,fgs:fgs,levelType:levelType,type:'query'},function(result){ | ||
| 280 | - if(levelType=="D"){ | ||
| 281 | - var intervalList_d = template('intervalList_d',{list:result}); | ||
| 282 | - $('#forms_d tbody').html(intervalList_d); | ||
| 283 | - $('.btn-intervalList_d').on('click', showSheetList); | ||
| 284 | - $("#forms").hide(); | ||
| 285 | - $("#forms_d").show(); | ||
| 286 | - }else{ | 296 | + $get('/calcInterval/countList',{line:line,date:date,endDate:endDate,gs:gs,fgs:fgs,levelType:levelType,nature:nature,type:'query'},function(result){ |
| 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{ | ||
| 287 | var intervalList = template('intervalList',{list:result}); | 304 | var intervalList = template('intervalList',{list:result}); |
| 288 | $('#forms tbody').html(intervalList); | 305 | $('#forms tbody').html(intervalList); |
| 289 | $('.btn-intervalList').on('click', showIntervalList); | 306 | $('.btn-intervalList').on('click', showIntervalList); |
| 290 | $("#forms_d").hide(); | 307 | $("#forms_d").hide(); |
| 291 | $("#forms").show(); | 308 | $("#forms").show(); |
| 292 | - } | 309 | +// } |
| 293 | $("#forms_d_1").hide(); | 310 | $("#forms_d_1").hide(); |
| 294 | $("#forms_1").hide(); | 311 | $("#forms_1").hide(); |
| 295 | $("#export_1").hide(); | 312 | $("#export_1").hide(); |
| @@ -396,6 +413,7 @@ | @@ -396,6 +413,7 @@ | ||
| 396 | var fgs=$('#fgsdm').val(); | 413 | var fgs=$('#fgsdm').val(); |
| 397 | var gs=$('#gsdm').val(); | 414 | var gs=$('#gsdm').val(); |
| 398 | var levelType=$('#levelType').val(); | 415 | var levelType=$('#levelType').val(); |
| 416 | + var nature=$('#nature').val(); | ||
| 399 | var lineName = $('#line option:selected').text(); | 417 | var lineName = $('#line option:selected').text(); |
| 400 | if(lineName == "全部线路") | 418 | if(lineName == "全部线路") |
| 401 | lineName = $('#fgsdm option:selected').text(); | 419 | lineName = $('#fgsdm option:selected').text(); |
| @@ -403,7 +421,7 @@ | @@ -403,7 +421,7 @@ | ||
| 403 | lineName = $('#gsdm option:selected').text(); | 421 | lineName = $('#gsdm option:selected').text(); |
| 404 | 422 | ||
| 405 | var i = layer.load(2); | 423 | var i = layer.load(2); |
| 406 | - $get('/calcInterval/countList',{line:line,date:date,endDate:endDate,gs:gs,fgs:fgs,levelType:levelType,type:"export",lineName:lineName},function(result){ | 424 | + $get('/calcInterval/countList',{line:line,date:date,endDate:endDate,gs:gs,fgs:fgs,levelType:levelType,nature:nature,type:"export",lineName:lineName},function(result){ |
| 407 | var dateTime = ""; | 425 | var dateTime = ""; |
| 408 | if(date == endDate){ | 426 | if(date == endDate){ |
| 409 | dateTime = moment(date).format("YYYYMMDD"); | 427 | dateTime = moment(date).format("YYYYMMDD"); |
| @@ -411,13 +429,13 @@ | @@ -411,13 +429,13 @@ | ||
| 411 | dateTime = moment(date).format("YYYYMMDD")+"-"+ | 429 | dateTime = moment(date).format("YYYYMMDD")+"-"+ |
| 412 | moment(endDate).format("YYYYMMDD"); | 430 | moment(endDate).format("YYYYMMDD"); |
| 413 | } | 431 | } |
| 414 | - if(levelType=="D"){ | ||
| 415 | - window.open("/downloadFile/download?fileName=" | ||
| 416 | - +dateTime+"-"+lineName+"-发车到站准点率"); | ||
| 417 | - }else{ | 432 | +// if(levelType=="D"){ |
| 433 | +// window.open("/downloadFile/download?fileName=" | ||
| 434 | +// +dateTime+"-"+lineName+"-发车到站准点率"); | ||
| 435 | +// }else{ | ||
| 418 | window.open("/downloadFile/download?fileName=" | 436 | window.open("/downloadFile/download?fileName=" |
| 419 | - +dateTime+"-"+lineName+"-大间隔汇总表"); | ||
| 420 | - } | 437 | + +dateTime+"-"+lineName+"-大间情况表"); |
| 438 | +// } | ||
| 421 | 439 | ||
| 422 | layer.close(i); | 440 | layer.close(i); |
| 423 | }); | 441 | }); |
| @@ -428,18 +446,19 @@ | @@ -428,18 +446,19 @@ | ||
| 428 | var date = $("#date").val(); | 446 | var date = $("#date").val(); |
| 429 | var endDate = $("#endDate").val(); | 447 | var endDate = $("#endDate").val(); |
| 430 | var levelType=$("#levelType").val(); | 448 | var levelType=$("#levelType").val(); |
| 431 | - 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{ | ||
| 432 | var i = layer.load(2); | 456 | var i = layer.load(2); |
| 433 | - $get('/calcSheet/calcListSheet',{line:id,date:date,endDate:endDate,type:'export'},function(result){ | ||
| 434 | - window.open("/downloadFile/download?fileName=发车到站准点率"+moment(date).format("YYYYMMDD")+"-"+moment(endDate).format("YYYYMMDD")); | ||
| 435 | - layer.close(i); | ||
| 436 | - }); | ||
| 437 | - }else{ | ||
| 438 | $get('/calcInterval/listInterval',{line:id,date:date,endDate:endDate,type:'export'},function(result){ | 457 | $get('/calcInterval/listInterval',{line:id,date:date,endDate:endDate,type:'export'},function(result){ |
| 439 | window.open("/downloadFile/download?fileName=大间距汇总表"+moment(date).format("YYYYMMDD")+"-"+moment(endDate).format("YYYYMMDD")); | 458 | window.open("/downloadFile/download?fileName=大间距汇总表"+moment(date).format("YYYYMMDD")+"-"+moment(endDate).format("YYYYMMDD")); |
| 440 | layer.close(i); | 459 | layer.close(i); |
| 441 | }); | 460 | }); |
| 442 | - } | 461 | +// } |
| 443 | 462 | ||
| 444 | }) | 463 | }) |
| 445 | 464 |
src/main/resources/static/pages/report/sheet/intervalList.html
| @@ -63,7 +63,7 @@ | @@ -63,7 +63,7 @@ | ||
| 63 | no=id.split(",")[0]; | 63 | no=id.split(",")[0]; |
| 64 | dates = id.split(",")[1]; | 64 | dates = id.split(",")[1]; |
| 65 | var i = layer.load(2); | 65 | var i = layer.load(2); |
| 66 | - $get('/calcInterval/interval',{line:no,date:dates,type:'query'},function(result){ | 66 | + $get('/calcInterval/interval',{line:no,date:dates,status:"detail",type:'query'},function(result){ |
| 67 | layer.close(i); | 67 | layer.close(i); |
| 68 | var calcIntervalList_2 = template('calcIntervalList_2',{list:result}); | 68 | var calcIntervalList_2 = template('calcIntervalList_2',{list:result}); |
| 69 | $('#forms_2 tbody').html(calcIntervalList_2); | 69 | $('#forms_2 tbody').html(calcIntervalList_2); |
| @@ -71,7 +71,7 @@ | @@ -71,7 +71,7 @@ | ||
| 71 | }) | 71 | }) |
| 72 | $("#exportList").on('click',function(){ | 72 | $("#exportList").on('click',function(){ |
| 73 | var i = layer.load(2); | 73 | var i = layer.load(2); |
| 74 | - $get('/calcInterval/interval',{line:no,date:dates,type:'export'},function(result){ | 74 | + $get('/calcInterval/interval',{line:no,date:dates,status:"detail",type:'export'},function(result){ |
| 75 | window.open("/downloadFile/download?fileName="+dates+"大间隔详细"); | 75 | window.open("/downloadFile/download?fileName="+dates+"大间隔详细"); |
| 76 | layer.close(i); | 76 | layer.close(i); |
| 77 | }); | 77 | }); |
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 | + |