Commit c81af18814a52df8790a265a6f7064bd488be213
Merge branch 'minhang' of http://222.66.0.204:8090//panzhaov5/bsth_control into minhang
Showing
27 changed files
with
310 additions
and
624 deletions
src/main/java/com/bsth/XDApplication.java
| ... | ... | @@ -88,14 +88,14 @@ public class XDApplication implements CommandLineRunner { |
| 88 | 88 | ScheduledExecutorService sexec = Application.mainServices; |
| 89 | 89 | //抓取GPS数据 |
| 90 | 90 | gpsDataLoader.setFlag(-1); |
| 91 | - sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS); | |
| 91 | + //sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS); | |
| 92 | 92 | //实际排班更新线程 |
| 93 | - sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS); | |
| 93 | + //sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS); | |
| 94 | 94 | //实际排班延迟入库线程 |
| 95 | - sexec.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS); | |
| 95 | + //sexec.scheduleWithFixedDelay(schedulePstThread, 60, 15, TimeUnit.SECONDS); | |
| 96 | 96 | |
| 97 | 97 | //线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作) |
| 98 | - sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS); | |
| 98 | + //sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS); | |
| 99 | 99 | } |
| 100 | 100 | |
| 101 | 101 | public void prodInit(){ |
| ... | ... | @@ -110,7 +110,7 @@ public class XDApplication implements CommandLineRunner { |
| 110 | 110 | //实际排班更新线程 |
| 111 | 111 | sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS); |
| 112 | 112 | //实际排班延迟入库线程 |
| 113 | - sexec.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS); | |
| 113 | + sexec.scheduleWithFixedDelay(schedulePstThread, 60, 15, TimeUnit.SECONDS); | |
| 114 | 114 | //检查班次误点 |
| 115 | 115 | sexec.scheduleWithFixedDelay(scheduleLateThread, 60, 30, TimeUnit.SECONDS); |
| 116 | 116 | //调度指令延迟入库 | ... | ... |
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
| ... | ... | @@ -48,8 +48,9 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 48 | 48 | */ |
| 49 | 49 | @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST) |
| 50 | 50 | public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks, |
| 51 | - @RequestParam String dfsj,String bcType) { | |
| 52 | - return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType); | |
| 51 | + @RequestParam String dfsj,String bcType, | |
| 52 | + @RequestParam(defaultValue = "") String opType) { | |
| 53 | + return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType, opType); | |
| 53 | 54 | } |
| 54 | 55 | |
| 55 | 56 | /** | ... | ... |
src/main/java/com/bsth/data/gpsdata/arrival/handlers/ReverseSignalHandle.java
| ... | ... | @@ -38,7 +38,7 @@ public class ReverseSignalHandle extends SignalHandle { |
| 38 | 38 | if (isReverse(gps, prev)) { |
| 39 | 39 | RouteReverse reverse = reverseSearch(prevs, gps); |
| 40 | 40 | |
| 41 | - if (reverse.getCount() >= 3 | |
| 41 | + if (reverse != null && reverse.getCount() >= 3 | |
| 42 | 42 | && reverse.isClose() |
| 43 | 43 | && !GeoCacheData.isEndStation(gps.getLineId(), gps.getUpDown(), reverse.getTurned())) { |
| 44 | 44 | scheduleSignalState.reverseAnalyse(reverse); | ... | ... |
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
| ... | ... | @@ -31,6 +31,7 @@ import org.springframework.stereotype.Component; |
| 31 | 31 | import java.text.ParseException; |
| 32 | 32 | import java.text.SimpleDateFormat; |
| 33 | 33 | import java.util.*; |
| 34 | +import java.util.concurrent.ConcurrentLinkedQueue; | |
| 34 | 35 | |
| 35 | 36 | /** |
| 36 | 37 | * @author PanZhao |
| ... | ... | @@ -59,7 +60,7 @@ public class DayOfSchedule { |
| 59 | 60 | private static Map<String, ScheduleRealInfo> carExecutePlanMap; |
| 60 | 61 | |
| 61 | 62 | // 持久化 |
| 62 | - public static LinkedList<ScheduleRealInfo> pstBuffer; | |
| 63 | + public static ConcurrentLinkedQueue<ScheduleRealInfo> pstBuffer; | |
| 63 | 64 | |
| 64 | 65 | // 排序器 |
| 65 | 66 | private static ScheduleComparator.FCSJ schFCSJComparator; |
| ... | ... | @@ -92,7 +93,7 @@ public class DayOfSchedule { |
| 92 | 93 | lpScheduleMap = ArrayListMultimap.create(); |
| 93 | 94 | |
| 94 | 95 | id2SchedulMap = new HashMap<>(); |
| 95 | - pstBuffer = new LinkedList<>(); | |
| 96 | + pstBuffer = new ConcurrentLinkedQueue<>(); | |
| 96 | 97 | schFCSJComparator = new ScheduleComparator.FCSJ(); |
| 97 | 98 | currSchDateMap = new HashMap<>(); |
| 98 | 99 | carExecutePlanMap = new HashMap<>(); |
| ... | ... | @@ -109,7 +110,7 @@ public class DayOfSchedule { |
| 109 | 110 | private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"), fmtHHmm = DateTimeFormat.forPattern("HH:mm"); |
| 110 | 111 | |
| 111 | 112 | //数据恢复 |
| 112 | - private void dataRecovery() { | |
| 113 | + public void dataRecovery() { | |
| 113 | 114 | GpsDataRecovery.run = true; |
| 114 | 115 | |
| 115 | 116 | Collection<LineConfig> confs = lineConfigs.getAll(); | ... | ... |
src/main/java/com/bsth/data/schedule/edit_logs/SchEditLogger.java
0 → 100644
| 1 | +package com.bsth.data.schedule.edit_logs; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * 班次修正记录 | |
| 5 | + * Created by panzhao on 2017/5/16. | |
| 6 | + */ | |
| 7 | +public class SchEditLogger { | |
| 8 | + | |
| 9 | + /** | |
| 10 | + * 待发调整 | |
| 11 | + */ | |
| 12 | + public static void dftz(Long id, String remarks, String dfsj, String bcType, String opType){ | |
| 13 | + | |
| 14 | + } | |
| 15 | +} | ... | ... |
src/main/java/com/bsth/data/schedule/thread/SchedulePstThread.java
| ... | ... | @@ -10,7 +10,6 @@ import org.springframework.orm.jpa.JpaObjectRetrievalFailureException; |
| 10 | 10 | import org.springframework.stereotype.Component; |
| 11 | 11 | |
| 12 | 12 | import javax.persistence.EntityNotFoundException; |
| 13 | -import java.util.LinkedList; | |
| 14 | 13 | |
| 15 | 14 | /** |
| 16 | 15 | * @author PanZhao |
| ... | ... | @@ -29,11 +28,11 @@ public class SchedulePstThread extends Thread { |
| 29 | 28 | @Override |
| 30 | 29 | public void run() { |
| 31 | 30 | |
| 32 | - LinkedList<ScheduleRealInfo> list = DayOfSchedule.pstBuffer; | |
| 31 | + //LinkedList<ScheduleRealInfo> list = DayOfSchedule.pstBuffer; | |
| 33 | 32 | |
| 34 | 33 | ScheduleRealInfo schedule; |
| 35 | 34 | for (int i = 0; i < 1000; i++) { |
| 36 | - schedule = list.poll(); | |
| 35 | + schedule = DayOfSchedule.pstBuffer.poll(); | |
| 37 | 36 | if (null == schedule) |
| 38 | 37 | break; |
| 39 | 38 | |
| ... | ... | @@ -47,7 +46,7 @@ public class SchedulePstThread extends Thread { |
| 47 | 46 | logger.error("EntityNotFoundException error.... 可忽略"); |
| 48 | 47 | } |
| 49 | 48 | catch (Exception e) { |
| 50 | - logger.error("", e); | |
| 49 | + logger.error("班次入库的时候出现未知异常!!", e); | |
| 51 | 50 | } |
| 52 | 51 | } |
| 53 | 52 | } | ... | ... |
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
| ... | ... | @@ -71,7 +71,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 71 | 71 | sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'"; |
| 72 | 72 | } |
| 73 | 73 | if(normal){ |
| 74 | - sql += " and bc_type != 'in' and bc_type != 'out'"; | |
| 74 | + sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; | |
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | list = jdbcTemplate.query(sql, |
| ... | ... | @@ -158,7 +158,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 158 | 158 | |
| 159 | 159 | if(model.length() != 0){ |
| 160 | 160 | // sql = "select * from bsth_c_s_ttinfo_detail where ttinfo = '"+model+"' and bc_type != 'in' and bc_type != 'out'"; |
| 161 | - sql = "select id from bsth_c_s_sp_info where tt_info = '" + model + "' and bc_type != 'in' and bc_type != 'out'"; | |
| 161 | + sql = "select id from bsth_c_s_sp_info where tt_info = '" + model + "' and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; | |
| 162 | 162 | |
| 163 | 163 | ttList = jdbcTemplate.query(sql, |
| 164 | 164 | new RowMapper<Long>(){ |
| ... | ... | @@ -452,8 +452,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 452 | 452 | if(statu.equals("1")){ |
| 453 | 453 | for(Long time : timeList){ |
| 454 | 454 | Map<String, Object> tempMap = new HashMap<String, Object>(); |
| 455 | - List<Long> fcsjs = timeMap0.get(time); | |
| 456 | - List<Long> fcsjAs = timeMap1.get(time); | |
| 455 | + List<Long> fcsjs = new ArrayList<Long>(); | |
| 456 | + List<Long> fcsjAs = new ArrayList<Long>(); | |
| 457 | + for(Long l : timeMap0.get(time)){ | |
| 458 | + if(l < 90) | |
| 459 | + fcsjs.add(l); | |
| 460 | + } | |
| 461 | + for(Long l : timeMap1.get(time)){ | |
| 462 | + if(l < 90) | |
| 463 | + fcsjAs.add(l); | |
| 464 | + } | |
| 457 | 465 | Collections.sort(fcsjs); |
| 458 | 466 | Collections.sort(fcsjAs); |
| 459 | 467 | String[] split = key.split("/"); |
| ... | ... | @@ -514,8 +522,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 514 | 522 | String[] split = key.split("/"); |
| 515 | 523 | if((long)Long.valueOf(split[0]) == xlBm){ |
| 516 | 524 | Map<String, Object> tempMap = new HashMap<String, Object>(); |
| 517 | - List<Long> fcsjs = temp0.get(key); | |
| 518 | - List<Long> fcsjAs = temp1.get(key); | |
| 525 | + List<Long> fcsjs = new ArrayList<Long>(); | |
| 526 | + List<Long> fcsjAs = new ArrayList<Long>(); | |
| 527 | + for(Long l : temp0.get(key)){ | |
| 528 | + if(l < 90) | |
| 529 | + fcsjs.add(l); | |
| 530 | + } | |
| 531 | + for(Long l : temp1.get(key)){ | |
| 532 | + if(l < 90) | |
| 533 | + fcsjAs.add(l); | |
| 534 | + } | |
| 519 | 535 | Collections.sort(fcsjs); |
| 520 | 536 | Collections.sort(fcsjAs); |
| 521 | 537 | long fcsj = 0l; |
| ... | ... | @@ -613,7 +629,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 613 | 629 | if(sfqr == 1){ |
| 614 | 630 | sql += " and zdsj >= '"+times1+"' and fcsj <= '"+times2+"'"; |
| 615 | 631 | } |
| 616 | - sql += " and bc_type != 'in' and bc_type != 'out' order by fcsj"; | |
| 632 | + sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' order by fcsj"; | |
| 617 | 633 | |
| 618 | 634 | list = jdbcTemplate.query(sql, |
| 619 | 635 | new RowMapper<ScheduleRealInfo>(){ |
| ... | ... | @@ -707,7 +723,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 707 | 723 | }); |
| 708 | 724 | |
| 709 | 725 | if(model.length() != 0){ |
| 710 | - sql = "select id from bsth_c_s_sp_info where tt_info = '" + model + "' and bc_type != 'in' and bc_type != 'out'"; | |
| 726 | + sql = "select id from bsth_c_s_sp_info where tt_info = '" + model + "' and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; | |
| 711 | 727 | |
| 712 | 728 | ttList = jdbcTemplate.query(sql, |
| 713 | 729 | new RowMapper<Long>(){ |
| ... | ... | @@ -896,9 +912,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 896 | 912 | } |
| 897 | 913 | } |
| 898 | 914 | Collections.sort(keyList2); |
| 899 | - for(long l : keyList2){ | |
| 900 | - System.out.println(l); | |
| 901 | - } | |
| 915 | + | |
| 902 | 916 | for(int i = 1; i < keyList2.size(); i++){ |
| 903 | 917 | long fcsj1 = keyList2.get(i - 1); |
| 904 | 918 | long fcsj2 = keyList2.get(i); |
| ... | ... | @@ -911,7 +925,6 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 911 | 925 | sjyysj += fcsj2 - fcsj1; |
| 912 | 926 | } |
| 913 | 927 | sjyysj1 += fcsj2 - fcsj1; |
| 914 | - System.out.println("---"+(fcsj2-fcsj1)+"---"+sjyysj+"---"+sjyysj1); | |
| 915 | 928 | } |
| 916 | 929 | } |
| 917 | 930 | |
| ... | ... | @@ -1722,7 +1735,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 1722 | 1735 | if(company.length() != 0){ |
| 1723 | 1736 | sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'"; |
| 1724 | 1737 | } |
| 1725 | - sql += " and bc_type != 'in' and bc_type != 'out'"; | |
| 1738 | + sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; | |
| 1726 | 1739 | |
| 1727 | 1740 | list = jdbcTemplate.query(sql, |
| 1728 | 1741 | new RowMapper<ScheduleRealInfo>(){ | ... | ... |
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
| ... | ... | @@ -16,6 +16,7 @@ import com.bsth.util.TimeUtils; |
| 16 | 16 | import com.bsth.util.db.DBUtils_MS; |
| 17 | 17 | import com.bsth.webService.trafficManage.geotool.services.InternalPortType; |
| 18 | 18 | import com.bsth.webService.trafficManage.geotool.services.Internal; |
| 19 | +import com.bsth.webService.trafficManage.org.tempuri.Results; | |
| 19 | 20 | import com.bsth.webService.trafficManage.org.tempuri.WebServiceLocator; |
| 20 | 21 | import com.bsth.webService.trafficManage.org.tempuri.WebServiceSoap; |
| 21 | 22 | import org.apache.commons.lang.time.DateUtils; |
| ... | ... | @@ -300,7 +301,9 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 300 | 301 | String date = sdfnyr.format(DateUtils.addDays(new Date(), -1)); |
| 301 | 302 | StringBuffer sf = new StringBuffer(); |
| 302 | 303 | try { |
| 303 | - sf.append("<DLDS>"); | |
| 304 | + int counter = 0; // 计数器 | |
| 305 | + int per = 10; // 每几条线路上传一次路单 | |
| 306 | + | |
| 304 | 307 | List<ScheduleRealInfo> list = scheduleRealInfoRepository.setLD(date); |
| 305 | 308 | List<Map<String,Object>> listGroup = scheduleRealInfoRepository.setLDGroup(date); |
| 306 | 309 | Map<String,Object> map = new HashMap<String,Object>(); |
| ... | ... | @@ -314,6 +317,11 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 314 | 317 | if(line == null || line.getInUse() == null || line.getInUse() == 0){ |
| 315 | 318 | continue; |
| 316 | 319 | } |
| 320 | + if(counter % per == 0){ | |
| 321 | + sf = new StringBuffer(); | |
| 322 | + sf.append("<DLDS>"); | |
| 323 | + } | |
| 324 | + counter ++; | |
| 317 | 325 | sf.append("<DLD>"); |
| 318 | 326 | sf.append("<RQ>"+date+"</RQ>"); |
| 319 | 327 | sf.append("<XLBM>"+BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.get("xlBm")+"")+"</XLBM>"); |
| ... | ... | @@ -322,7 +330,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 322 | 330 | sf.append("<UPDT>"+sdfnyrsfm.format(new Date())+"</UPDT>"); |
| 323 | 331 | sf.append("<LDList>"); |
| 324 | 332 | |
| 325 | - int seqNumber = 0; | |
| 326 | 333 | for(ScheduleRealInfo scheduleRealInfo:list){ |
| 327 | 334 | if((schRealInfo.get("xlBm")+"").equals(scheduleRealInfo.getXlBm()) && (schRealInfo.get("lpName")+"") |
| 328 | 335 | .equals(scheduleRealInfo.getLpName()) |
| ... | ... | @@ -369,17 +376,33 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 369 | 376 | sf.append("</LDList>"); |
| 370 | 377 | sf.append("</DLD>"); |
| 371 | 378 | } |
| 379 | + if(counter % per == per - 1){ | |
| 380 | + counter = 0; | |
| 381 | + sf.append("</DLDS>"); | |
| 382 | + Results results = ssop.setLD(userNameOther, passwordOther, sf.toString()); | |
| 383 | + if(results.isSuccess()){ | |
| 384 | + result = "success"; | |
| 385 | + } | |
| 386 | + logger.info("setLD:"+sf.toString()); | |
| 387 | + logger.info("setLD:"+result); | |
| 388 | + } | |
| 372 | 389 | } |
| 373 | - sf.append("</DLDS>"); | |
| 374 | - if(ssop.setLD(userNameOther, passwordOther, sf.toString()).isSuccess()){ | |
| 375 | - result = "success"; | |
| 390 | + // 每per条线路上传后剩下的数据再上传 | |
| 391 | + if(counter > 0){ | |
| 392 | + sf.append("</DLDS>"); | |
| 393 | + Results results = ssop.setLD(userNameOther, passwordOther, sf.toString()); | |
| 394 | + if(results.isSuccess()){ | |
| 395 | + result = "success"; | |
| 396 | + } | |
| 397 | + logger.info("setLD:"+sf.toString()); | |
| 398 | + logger.info("setLD:"+result); | |
| 376 | 399 | } |
| 400 | + | |
| 377 | 401 | } catch (Exception e) { |
| 378 | 402 | logger.error("setLD:",e); |
| 379 | 403 | e.printStackTrace(); |
| 380 | 404 | }finally{ |
| 381 | - logger.info("setLD:"+sf.toString()); | |
| 382 | - logger.info("setLD:"+result); | |
| 405 | + | |
| 383 | 406 | } |
| 384 | 407 | return result; |
| 385 | 408 | } | ... | ... |
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
| ... | ... | @@ -16,7 +16,7 @@ public interface ScheduleRealInfoService extends BaseService<ScheduleRealInfo, L |
| 16 | 16 | |
| 17 | 17 | Map<String, Collection<ScheduleRealInfo>> findByLines(String lines); |
| 18 | 18 | |
| 19 | - Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType); | |
| 19 | + Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType, String opType); | |
| 20 | 20 | |
| 21 | 21 | Map<String, Object> destroy(String idsStr/*, int spaceAdjust*/, String remarks, String reason/*, int spaceNum*/); |
| 22 | 22 | ... | ... |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| ... | ... | @@ -207,7 +207,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 207 | 207 | private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm"); |
| 208 | 208 | |
| 209 | 209 | @Override |
| 210 | - public Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType) { | |
| 210 | + public Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType, String opType) { | |
| 211 | 211 | Map<String, Object> map = new HashMap<>(); |
| 212 | 212 | try { |
| 213 | 213 | |
| ... | ... | @@ -1155,7 +1155,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 1155 | 1155 | sch = list.get(i); |
| 1156 | 1156 | |
| 1157 | 1157 | //调整待发 |
| 1158 | - outgoAdjust(sch.getId(), null, fmtHHmm.print(st), null); | |
| 1158 | + outgoAdjust(sch.getId(), null, fmtHHmm.print(st), null, "间隔调整"); | |
| 1159 | 1159 | } |
| 1160 | 1160 | |
| 1161 | 1161 | rs.put("status", ResponseCode.SUCCESS); |
| ... | ... | @@ -1325,7 +1325,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 1325 | 1325 | if (StringUtils.isNotEmpty(jhlc)) { |
| 1326 | 1326 | double jhlcNum = Double.parseDouble(jhlc); |
| 1327 | 1327 | //烂班 |
| 1328 | - if(jhlcNum == 0 && sch.getJhlcOrig() != 0) | |
| 1328 | + if(jhlcNum == 0 && sch.getJhlcOrig() != 0 && !sch._isInout()) | |
| 1329 | 1329 | destroy(sch.getId() + "", "", map.get("adjustExps").toString()); |
| 1330 | 1330 | else if(jhlcNum != sch.getJhlc()){ |
| 1331 | 1331 | sch.setJhlc(jhlcNum); |
| ... | ... | @@ -1375,7 +1375,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 1375 | 1375 | schedule = dayOfSchedule.get(id); |
| 1376 | 1376 | |
| 1377 | 1377 | if(schedule != null) |
| 1378 | - outgoAdjust(id, null, dfsj, null); | |
| 1378 | + outgoAdjust(id, null, dfsj, null, "批量调整"); | |
| 1379 | 1379 | } |
| 1380 | 1380 | |
| 1381 | 1381 | rs.put("status", ResponseCode.SUCCESS); |
| ... | ... | @@ -3229,7 +3229,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 3229 | 3229 | if (StringUtils.isEmpty(dc.getOld_dfsj()) || StringUtils.isEmpty(dc.getNew_dfsj())) |
| 3230 | 3230 | continue; |
| 3231 | 3231 | |
| 3232 | - tempMap = outgoAdjust(dc.getSchId(), "", dc.getNew_dfsj(), null); | |
| 3232 | + tempMap = outgoAdjust(dc.getSchId(), "", dc.getNew_dfsj(), null, "批量调整"); | |
| 3233 | 3233 | |
| 3234 | 3234 | if (tempMap.get("status").equals(ResponseCode.SUCCESS)) { |
| 3235 | 3235 | list.addAll((Collection<? extends ScheduleRealInfo>) tempMap.get("ts")); | ... | ... |
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
| ... | ... | @@ -793,260 +793,74 @@ public class ReportServiceImpl implements ReportService{ |
| 793 | 793 | return m; |
| 794 | 794 | } |
| 795 | 795 | }); |
| 796 | - | |
| 797 | - //班次 | |
| 798 | - int sj_0 = 6*60+31,sj_1 = 8*60+30,sj_2 = 16*60+1,sj_3 = 18*60; | |
| 799 | - | |
| 800 | - //顺序 出场--早高峰---中午---晚高峰---进场 | |
| 801 | - //实驶时间时间(分),0为上行,1为下行 | |
| 802 | - int ccsj0=0,ccsj1=0,zgf0=0,zgf1=0,zw0=0,zw1=0,wgf0=0,wgf1=0,jcsj0=0,jcsj1=0; | |
| 803 | - | |
| 804 | - //记录上一个发车时间(方便记录间距) | |
| 805 | - int cfc0=0,cfc1=0,zfc0=0,zfc1=0,zwfc0=0,zwfc1=0,wfc0=0,wfc1=0,jcfc0Z=0,jcfc1Z=0,jcfc0W=0,jcfc1W=0; | |
| 806 | - //车距 (发车时间的间距) i--MIN a--MAX | |
| 807 | - int iC=999,aC=-1,iZg=999,aZg=-1,iZw=999,aZw=-1,iWg=999,aWg=-1,iJcZ=999,aJcZ=-1,iJcW=999,aJcW=-1; | |
| 808 | - int iC1=999,aC1=-1,iZg1=999,aZg1=-1,iZw1=999,aZw1=-1,iWg1=999,aWg1=-1,iJc1Z=999,aJc1Z=-1,iJc1W=999,aJc1W=-1; | |
| 796 | + | |
| 797 | + List<Map<String, Object>> newList=new ArrayList<Map<String,Object>>(); | |
| 798 | + Map<String, List<Map<String, Object>>> keyMap = new HashMap<String, List<Map<String, Object>>>(); | |
| 799 | + Map<String, Map<String, Object>> maps = new HashMap<String, Map<String, Object>>(); | |
| 800 | + keyMap.put("(首)——6:30", new ArrayList<Map<String, Object>>()); | |
| 801 | + keyMap.put("6:31——8:30", new ArrayList<Map<String, Object>>()); | |
| 802 | + keyMap.put("8:31——16:00", new ArrayList<Map<String, Object>>()); | |
| 803 | + keyMap.put("16:01——18:00", new ArrayList<Map<String, Object>>()); | |
| 804 | + keyMap.put("18:01——(末)", new ArrayList<Map<String, Object>>()); | |
| 805 | + for(int i = 0; i < list.size(); i++){ | |
| 806 | + Map<String, Object> ttMap = list.get(i); | |
| 807 | + String fcsj = ttMap.get("fcsj").toString(); | |
| 808 | + String[] split = fcsj.split(":"); | |
| 809 | + int fcsjT = Integer.valueOf(split[0])*60+Integer.valueOf(split[1]); | |
| 810 | + if(fcsjT >= minSj && fcsjT <= 6*60+30){ | |
| 811 | + keyMap.get("(首)——6:30").add(ttMap); | |
| 812 | + } else if(fcsjT > 6*60+30 && fcsjT <= 8*60+30){ | |
| 813 | + keyMap.get("6:31——8:30").add(ttMap); | |
| 814 | + } else if(fcsjT > 8*60+30 && fcsjT <= 16*60){ | |
| 815 | + keyMap.get("8:31——16:00").add(ttMap); | |
| 816 | + } else if(fcsjT > 16*60 && fcsjT <= 18*60){ | |
| 817 | + keyMap.get("16:01——18:00").add(ttMap); | |
| 818 | + } else { | |
| 819 | + keyMap.get("18:01——(末)").add(ttMap); | |
| 820 | + } | |
| 821 | + } | |
| 809 | 822 | |
| 810 | - for(int i=0;i<list.size();i++){ | |
| 811 | - Map<String, Object> ttMap=list.get(i); | |
| 812 | - String xlDir=ttMap.get("dir").toString(); | |
| 813 | - int bcsj=Integer.parseInt(ttMap.get("bcsj").toString()); | |
| 814 | - String fcsj=ttMap.get("fcsj").toString(); | |
| 815 | - String[] fcsjs=fcsj.split(":"); | |
| 816 | - int fcsjNum=Integer.parseInt(fcsjs[0])*60+Integer.parseInt(fcsjs[1]); | |
| 817 | - | |
| 818 | - if(xlDir.equals("0")){ | |
| 819 | - if(fcsjNum>=minSj && fcsjNum<sj_0){ | |
| 820 | - ccsj0 +=bcsj; | |
| 821 | - if(aC<0){ | |
| 822 | - cfc0 =fcsjNum; | |
| 823 | - aC=0; | |
| 824 | - }else{ | |
| 825 | - if(fcsjNum-cfc0<iC){ | |
| 826 | - iC=fcsjNum-cfc0; | |
| 827 | - } | |
| 828 | - if(fcsjNum-cfc0>aC){ | |
| 829 | - aC=fcsjNum-cfc0; | |
| 830 | - } | |
| 831 | - | |
| 832 | - cfc0=fcsjNum; | |
| 833 | - } | |
| 834 | - | |
| 835 | - }else if(fcsjNum>=sj_0 && fcsjNum<=sj_1){ | |
| 836 | - zgf0 +=bcsj; | |
| 837 | - if(aZg<0){ | |
| 838 | - zfc0 =fcsjNum; | |
| 839 | - aZg=0; | |
| 840 | - }else{ | |
| 841 | - if(fcsjNum-zfc0<iZg){ | |
| 842 | - iZg=fcsjNum-zfc0; | |
| 843 | - } | |
| 844 | - | |
| 845 | - if(fcsjNum-zfc0>aZg){ | |
| 846 | - aZg=fcsjNum-zfc0; | |
| 847 | - } | |
| 848 | - | |
| 849 | - zfc0=fcsjNum; | |
| 850 | - } | |
| 851 | - }else if(fcsjNum>sj_1 && fcsjNum<sj_2){ | |
| 852 | - zw0 +=bcsj; | |
| 853 | - if(aZw<0){ | |
| 854 | - zwfc0 =fcsjNum; | |
| 855 | - aZw=0; | |
| 856 | - }else{ | |
| 857 | - if(fcsjNum-zwfc0<iZw){ | |
| 858 | - iZw=fcsjNum-zwfc0; | |
| 859 | - } | |
| 860 | - if(fcsjNum-zwfc0>aZw){ | |
| 861 | - aZw=fcsjNum-zwfc0; | |
| 862 | - } | |
| 863 | - zwfc0=fcsjNum; | |
| 864 | - } | |
| 865 | - | |
| 866 | - }else if(fcsjNum>=sj_2 && fcsjNum<=sj_3){ | |
| 867 | - wgf0 +=bcsj; | |
| 868 | - if(aWg<0){ | |
| 869 | - wfc0=fcsjNum; | |
| 870 | - aWg=0; | |
| 871 | - }else{ | |
| 872 | - if(fcsjNum-wfc0<iWg){ | |
| 873 | - iWg=fcsjNum-wfc0; | |
| 874 | - } | |
| 875 | - if(fcsjNum-wfc0>aWg){ | |
| 876 | - aWg=fcsjNum-wfc0; | |
| 877 | - } | |
| 878 | - wfc0=fcsjNum; | |
| 879 | - } | |
| 880 | - }else if(fcsjNum>sj_3){ | |
| 881 | - jcsj0 +=bcsj; | |
| 882 | - if(aJcW<0){ | |
| 883 | - jcfc0W=fcsjNum; | |
| 884 | - aJcW=0; | |
| 885 | - }else{ | |
| 886 | - if(fcsjNum-jcfc0W<iJcW){ | |
| 887 | - iJcW=fcsjNum-jcfc0W; | |
| 888 | - } | |
| 889 | - if(fcsjNum-jcfc0W>aJcW){ | |
| 890 | - aJcW=fcsjNum-jcfc0W; | |
| 891 | - } | |
| 892 | - jcfc0W=fcsjNum; | |
| 893 | - } | |
| 894 | - }else if(fcsjNum<minSj){ | |
| 895 | - jcsj0 +=bcsj; | |
| 896 | - if(aJcZ<0){ | |
| 897 | - jcfc0Z=fcsjNum; | |
| 898 | - aJcZ=0; | |
| 899 | - }else{ | |
| 900 | - if(fcsjNum-jcfc0Z<iJcZ){ | |
| 901 | - iJcZ=fcsjNum-jcfc0Z; | |
| 902 | - } | |
| 903 | - if(fcsjNum-jcfc0Z>aJcZ){ | |
| 904 | - aJcZ=fcsjNum-jcfc0Z; | |
| 905 | - } | |
| 906 | - jcfc0Z=fcsjNum; | |
| 907 | - } | |
| 823 | + for(String key : keyMap.keySet()){ | |
| 824 | + Map<String, Object> tempMap = new HashMap<String, Object>(); | |
| 825 | + List<Map<String, Object>> list2 = keyMap.get(key); | |
| 826 | + List<Integer> cjs = new ArrayList<Integer>(); | |
| 827 | + int sxsj = 0, xxsj = 0, zcj = 0; | |
| 828 | + int temp = 24*60+1; | |
| 829 | + for(Map<String, Object> m : list2){ | |
| 830 | + String[] split = m.get("fcsj").toString().split(":"); | |
| 831 | + int fcsj = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]); | |
| 832 | + int xlDir = Integer.valueOf(m.get("dir").toString()); | |
| 833 | + int bcsj = Integer.valueOf(m.get("bcsj").toString()); | |
| 834 | + if(xlDir == 0){ | |
| 835 | + sxsj += bcsj; | |
| 836 | + } else { | |
| 837 | + xxsj += bcsj; | |
| 908 | 838 | } |
| 909 | - | |
| 910 | - | |
| 911 | - }else{ | |
| 912 | - if(fcsjNum>=minSj && fcsjNum<sj_0){ | |
| 913 | - ccsj1 +=bcsj; | |
| 914 | - if(aC1<0){ | |
| 915 | - cfc1=fcsjNum; | |
| 916 | - aC1=0; | |
| 917 | - }else{ | |
| 918 | - if(fcsjNum-cfc1<iC1){ | |
| 919 | - iC1=fcsjNum-cfc1; | |
| 920 | - } | |
| 921 | - if(fcsjNum-cfc1>aC1){ | |
| 922 | - aC1=fcsjNum-cfc1; | |
| 923 | - } | |
| 924 | - cfc1=fcsjNum; | |
| 925 | - } | |
| 926 | - }else if(fcsjNum>=sj_0 && fcsjNum<=sj_1){ | |
| 927 | - zgf1 +=bcsj; | |
| 928 | - if(aZg1<0){ | |
| 929 | - zfc1=fcsjNum; | |
| 930 | - aZg1=0; | |
| 931 | - }else{ | |
| 932 | - if(fcsjNum-zfc1<iZg1){ | |
| 933 | - iZg1=fcsjNum-zfc1; | |
| 934 | - } | |
| 935 | - if(fcsjNum-zfc1>aZg1){ | |
| 936 | - aZg1=fcsjNum-zfc1; | |
| 937 | - } | |
| 938 | - | |
| 939 | - zfc1=fcsjNum; | |
| 940 | - } | |
| 941 | - }else if(fcsjNum>sj_1 && fcsjNum<sj_2){ | |
| 942 | - zw1 +=bcsj; | |
| 943 | - if(aZw1<0){ | |
| 944 | - zwfc1=fcsjNum; | |
| 945 | - aZw1=0; | |
| 946 | - }else{ | |
| 947 | - if(fcsjNum-zwfc1<iZw1){ | |
| 948 | - iZw1=fcsjNum-zwfc1; | |
| 949 | - } | |
| 950 | - if(fcsjNum-zwfc1>aZw1){ | |
| 951 | - aZw1=fcsjNum-zwfc1; | |
| 952 | - } | |
| 953 | - zwfc1=fcsjNum; | |
| 954 | - } | |
| 955 | - }else if(fcsjNum>=sj_2 && fcsjNum<=sj_3){ | |
| 956 | - wgf1 +=bcsj; | |
| 957 | - if(aWg1<0){ | |
| 958 | - wfc1=fcsjNum; | |
| 959 | - aWg1=0; | |
| 960 | - }else{ | |
| 961 | - if(fcsjNum-wfc1<iWg1){ | |
| 962 | - iWg1=fcsjNum-wfc1; | |
| 963 | - } | |
| 964 | - if(fcsjNum-wfc1<aWg1){ | |
| 965 | - aWg1=fcsjNum-wfc1; | |
| 966 | - } | |
| 967 | - wfc1=fcsjNum; | |
| 968 | - } | |
| 969 | - }else if(fcsjNum>sj_3){ | |
| 970 | - jcsj1 +=bcsj; | |
| 971 | - if(aJc1W<0){ | |
| 972 | - jcfc1W=fcsjNum; | |
| 973 | - aJc1W=0; | |
| 974 | - }else{ | |
| 975 | - if(fcsjNum-jcfc1W<iJc1W){ | |
| 976 | - aJc1W=fcsjNum-jcfc1W; | |
| 977 | - } | |
| 978 | - if(fcsjNum-jcfc1W>aJc1W){ | |
| 979 | - aJc1W=fcsjNum-jcfc1W; | |
| 980 | - } | |
| 981 | - | |
| 982 | - jcfc1W=fcsjNum; | |
| 983 | - } | |
| 984 | - }else if(fcsjNum<minSj){ | |
| 985 | - jcsj1 +=bcsj; | |
| 986 | - if(aJc1Z<0){ | |
| 987 | - jcfc1Z=fcsjNum; | |
| 988 | - aJc1Z=0; | |
| 989 | - }else{ | |
| 990 | - if(fcsjNum-jcfc1Z<iJc1Z){ | |
| 991 | - aJc1Z=fcsjNum-jcfc1Z; | |
| 992 | - } | |
| 993 | - if(fcsjNum-jcfc1Z>aJc1Z){ | |
| 994 | - aJc1Z=fcsjNum-jcfc1Z; | |
| 995 | - } | |
| 996 | - | |
| 997 | - jcfc1Z=fcsjNum; | |
| 998 | - } | |
| 839 | + if(temp >= fcsj){ | |
| 840 | + temp = fcsj; | |
| 841 | + } else { | |
| 842 | + cjs.add(fcsj - temp); | |
| 843 | + temp = fcsj; | |
| 999 | 844 | } |
| 1000 | 845 | } |
| 1001 | - | |
| 846 | + Collections.sort(cjs); | |
| 847 | + for(int i : cjs){ | |
| 848 | + zcj += i; | |
| 849 | + } | |
| 850 | + tempMap.put("sjd", key); | |
| 851 | + tempMap.put("sxsj", sxsj); | |
| 852 | + tempMap.put("xxsj", xxsj); | |
| 853 | + tempMap.put("fqsj", sxsj + xxsj); | |
| 854 | + tempMap.put("cjqj", cjs.size()>0?cjs.get(0)+"——"+cjs.get(cjs.size()-1):"——"); | |
| 855 | + tempMap.put("pjcj", cjs.size()>0?zcj/(cjs.size()-1):"/"); | |
| 856 | + maps.put(key, tempMap); | |
| 1002 | 857 | } |
| 858 | + newList.add(maps.get("(首)——6:30")); | |
| 859 | + newList.add(maps.get("6:31——8:30")); | |
| 860 | + newList.add(maps.get("8:31——16:00")); | |
| 861 | + newList.add(maps.get("16:01——18:00")); | |
| 862 | + newList.add(maps.get("18:01——(末)")); | |
| 1003 | 863 | |
| 1004 | - | |
| 1005 | - List<Map<String, Object>> newList=new ArrayList<Map<String,Object>>(); | |
| 1006 | - Map<String, Object> newmap1=new HashMap<String,Object>(); | |
| 1007 | - Map<String, Object> newmap2=new HashMap<String,Object>(); | |
| 1008 | - Map<String, Object> newmap3=new HashMap<String,Object>(); | |
| 1009 | - Map<String, Object> newmap4=new HashMap<String,Object>(); | |
| 1010 | - Map<String, Object> newmap5=new HashMap<String,Object>(); | |
| 1011 | - newmap1.put("sjd", "(首)——6:30"); | |
| 1012 | - newmap1.put("sxsj", ccsj0); | |
| 1013 | - newmap1.put("xxsj", ccsj1); | |
| 1014 | - newmap1.put("fqsj", ccsj0+ccsj1); | |
| 1015 | - newmap1.put("cj", (iC-iC1>0?iC1:iC)+"——"+(aC-aC1>0?aC:aC1)); | |
| 1016 | - | |
| 1017 | - newmap2.put("sjd", "6:31——8:30"); | |
| 1018 | - newmap2.put("sxsj", zgf0); | |
| 1019 | - newmap2.put("xxsj", zgf1); | |
| 1020 | - newmap2.put("fqsj", zgf1+zgf0); | |
| 1021 | - newmap2.put("cj", (iZg-iZg1>0?iZg1:iZg)+"——"+(aZg-aZg1>0?aZg:aZg1)); | |
| 1022 | - | |
| 1023 | - newmap3.put("sjd", "8:30——16:00"); | |
| 1024 | - newmap3.put("sxsj", zw0); | |
| 1025 | - newmap3.put("xxsj", zw1); | |
| 1026 | - newmap3.put("fqsj", zw0+zw1); | |
| 1027 | - newmap3.put("cj", (iZw-iZw1>0?iZw1:iZw)+"——"+(aZw-aZw1>0?aZw:aZw1)); | |
| 1028 | - | |
| 1029 | - newmap4.put("sjd", "16:01——18:00"); | |
| 1030 | - newmap4.put("sxsj", wgf0); | |
| 1031 | - newmap4.put("xxsj", wgf1); | |
| 1032 | - newmap4.put("fqsj", wgf0+wgf1); | |
| 1033 | - newmap4.put("cj", (iWg-iWg1>0?iWg1:iWg)+"——"+(aWg-aWg1>0?aWg:aWg1)); | |
| 1034 | - | |
| 1035 | - newmap5.put("sjd", "18:00——(末)"); | |
| 1036 | - newmap5.put("sxsj", jcsj0); | |
| 1037 | - newmap5.put("xxsj", jcsj1); | |
| 1038 | - newmap5.put("fqsj", jcsj0+jcsj1); | |
| 1039 | - int min0=iJcZ-iJcW>0?iJcW:iJcZ; | |
| 1040 | - int max0=aJcZ-aJcW>0?aJcZ:aJcW; | |
| 1041 | - int min1=iJc1Z-iJc1W>0?iJc1W:iJc1Z; | |
| 1042 | - int max1=aJc1Z-aJc1W>0?aJc1Z:aJc1W; | |
| 1043 | - newmap5.put("cj", (min0-min1>0?min1:min0)+"——"+(max0-max1>0?max0:max1)); | |
| 1044 | - | |
| 1045 | - newList.add(newmap1); | |
| 1046 | - newList.add(newmap2); | |
| 1047 | - newList.add(newmap3); | |
| 1048 | - newList.add(newmap4); | |
| 1049 | - newList.add(newmap5); | |
| 1050 | 864 | return newList; |
| 1051 | 865 | } |
| 1052 | 866 | @Override | ... | ... |
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
| ... | ... | @@ -404,7 +404,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 404 | 404 | } |
| 405 | 405 | |
| 406 | 406 | if(!schedule.getBcType().equals("in") && !schedule.getBcType().equals("out") |
| 407 | - && schedule.getFcsjActual() != null){ | |
| 407 | + && !schedule.getBcType().equals("ldks") && schedule.getFcsjActual() != null){ | |
| 408 | 408 | // String clZbh = schedule.getClZbh(); |
| 409 | 409 | String xlDir = schedule.getXlDir(); |
| 410 | 410 | if(!listMap.containsKey(xlDir)) |
| ... | ... | @@ -526,7 +526,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 526 | 526 | // if(company.length() != 0){ |
| 527 | 527 | sql += " and gs_bm like '%"+company+"%' and fgs_bm like '%"+subCompany+"%'"; |
| 528 | 528 | // } |
| 529 | - sql += " and bc_type != 'in' and bc_type != 'out'"; | |
| 529 | + sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; | |
| 530 | 530 | |
| 531 | 531 | list = jdbcTemplate.query(sql, |
| 532 | 532 | new RowMapper<ScheduleRealInfo>(){ |
| ... | ... | @@ -579,7 +579,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 579 | 579 | |
| 580 | 580 | if(model.length() != 0){ |
| 581 | 581 | // sql = "select * from bsth_c_s_ttinfo_detail where ttinfo = '"+model+"' and bc_type != 'in' and bc_type != 'out'"; |
| 582 | - sql = "select id from bsth_c_s_sp_info where tt_info = '" + model + "' and bc_type != 'in' and bc_type != 'out'"; | |
| 582 | + sql = "select id from bsth_c_s_sp_info where tt_info = '" + model + "' and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; | |
| 583 | 583 | |
| 584 | 584 | ttList = jdbcTemplate.query(sql, |
| 585 | 585 | new RowMapper<Long>(){ |
| ... | ... | @@ -807,7 +807,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 807 | 807 | // if(company.length() != 0){ |
| 808 | 808 | sql += " and gs_bm like '%"+company+"%' and fgs_bm like '%"+subCompany+"%'"; |
| 809 | 809 | // } |
| 810 | - sql += " and bc_type != 'in' and bc_type != 'out'"; | |
| 810 | + sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; | |
| 811 | 811 | |
| 812 | 812 | list = jdbcTemplate.query(sql, |
| 813 | 813 | new RowMapper<ScheduleRealInfo>(){ |
| ... | ... | @@ -1174,7 +1174,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 1174 | 1174 | List<ScheduleRealInfo> list = this.getSchedule(company, subCompany, line, date); |
| 1175 | 1175 | |
| 1176 | 1176 | for(ScheduleRealInfo schedule : list){ |
| 1177 | - if(schedule.getBcType().equals("in") || schedule.getBcType().equals("out")) | |
| 1177 | + if(schedule.getBcType().equals("in") || schedule.getBcType().equals("out") || schedule.getBcType().equals("ldks")) | |
| 1178 | 1178 | continue; |
| 1179 | 1179 | if(schedule.getStatus() == -1){ |
| 1180 | 1180 | continue; |
| ... | ... | @@ -1353,7 +1353,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 1353 | 1353 | List<ScheduleRealInfo> list = this.getSchedule(company, subCompany, line, date); |
| 1354 | 1354 | |
| 1355 | 1355 | for(ScheduleRealInfo schedule : list){ |
| 1356 | - if(schedule.getBcType().equals("in") || schedule.getBcType().equals("out")) | |
| 1356 | + if(schedule.getBcType().equals("in") || schedule.getBcType().equals("out") || schedule.getBcType().equals("ldks")) | |
| 1357 | 1357 | continue; |
| 1358 | 1358 | if(schedule.getStatus() == -1){ |
| 1359 | 1359 | continue; | ... | ... |
src/main/resources/static/pages/report/timetable/timetable.html
| ... | ... | @@ -165,13 +165,14 @@ |
| 165 | 165 | <div class="col-md-6" > |
| 166 | 166 | <table class="table table-bordered table-checkable" id="formsTime5"> |
| 167 | 167 | <tr> |
| 168 | - <td colspan="5">全日分组行驶时间(区间除外)</td> | |
| 168 | + <td colspan="6">全日分组行驶时间(区间除外)</td> | |
| 169 | 169 | </tr> |
| 170 | 170 | <tr> |
| 171 | - <td width="25%" rowspan="2" style="text-align:center;vertical-align:middle;">分组 时间</td> | |
| 172 | - <td width="30%" colspan="2" style="text-align:center;vertical-align:middle;">实驶(分)</td> | |
| 171 | + <td width="20%" rowspan="2" style="text-align:center;vertical-align:middle;">分组 时间</td> | |
| 172 | + <td width="25%" colspan="2" style="text-align:center;vertical-align:middle;">计划行驶(分)</td> | |
| 173 | 173 | <td width="20%" rowspan="2" style="text-align:center;vertical-align:middle;">分圈 时间</td> |
| 174 | - <td width="25%" rowspan="2" style="text-align:center;vertical-align:middle;">车距</td> | |
| 174 | + <td width="20%" rowspan="2" style="text-align:center;vertical-align:middle;">车距区间</td> | |
| 175 | + <td width="15%" rowspan="2" style="text-align:center;vertical-align:middle;">平均车距</td> | |
| 175 | 176 | </tr> |
| 176 | 177 | <tr> |
| 177 | 178 | <td>上行</td> |
| ... | ... | @@ -398,12 +399,13 @@ |
| 398 | 399 | <td align="center">{{result.sxsj}}</td> |
| 399 | 400 | <td align="center">{{result.xxsj}}</td> |
| 400 | 401 | <td align="center">{{result.fqsj}}</td> |
| 401 | - <td align="center">{{result.cj}}</td> | |
| 402 | + <td align="center">{{result.cjqj}}</td> | |
| 403 | + <td align="center">{{result.pjcj}}</td> | |
| 402 | 404 | </tr> |
| 403 | 405 | {{/each}} |
| 404 | 406 | {{if list.length == 0}} |
| 405 | 407 | <tr> |
| 406 | - <td colspan="5"><h6 class="muted">没有找到相关数据</h6></td> | |
| 408 | + <td colspan="6"><h6 class="muted">没有找到相关数据</h6></td> | |
| 407 | 409 | </tr> |
| 408 | 410 | {{/if}} |
| 409 | 411 | </script> | ... | ... |
src/main/resources/static/real_control_v2/css/main.css
src/main/resources/static/real_control_v2/fragments/line_schedule/badge_tooltip.html
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/dftz.html
| ... | ... | @@ -115,6 +115,10 @@ |
| 115 | 115 | (function() { |
| 116 | 116 | var modal = '#schedule-dftz-modal' |
| 117 | 117 | ,sch; |
| 118 | + | |
| 119 | + var isInout = function (code) { | |
| 120 | + return code=='out' || code=='in'; | |
| 121 | + }; | |
| 118 | 122 | $(modal).on('init', function(e, data) { |
| 119 | 123 | e.stopPropagation(); |
| 120 | 124 | sch=data.sch; |
| ... | ... | @@ -125,12 +129,12 @@ |
| 125 | 129 | var bctypes=dictionaryUtils.getByGroup('ScheduleType') |
| 126 | 130 | ,opts=''; |
| 127 | 131 | |
| 128 | - if(sch.bcType == 'out' || sch.bcType == 'in'){ | |
| 132 | + if(isInout(sch.bcType)){ | |
| 129 | 133 | $('[name=bcType]', modal).html('<option value="'+sch.bcType+'">'+bctypes[sch.bcType]+'</option>'); |
| 130 | 134 | } |
| 131 | 135 | else{ |
| 132 | 136 | for(var code in bctypes){ |
| 133 | - if(code!='venting' && code!='major' && code != 'normal') | |
| 137 | + if(isInout(code)) | |
| 134 | 138 | continue; |
| 135 | 139 | opts+='<option value="'+code+'">'+bctypes[code]+'</option>'; |
| 136 | 140 | } |
| ... | ... | @@ -166,10 +170,12 @@ |
| 166 | 170 | url='/real_control_v2/fragments/line_schedule/context_menu/bc_type_venting.html'; |
| 167 | 171 | detailModal='#bctype-venting-modal'; |
| 168 | 172 | } |
| 169 | - else{ | |
| 173 | + else if(type=='major'){ | |
| 170 | 174 | detailModal='#bctype-major-modal'; |
| 171 | 175 | url='/real_control_v2/fragments/line_schedule/context_menu/bc_type_major.html'; |
| 172 | 176 | } |
| 177 | + else | |
| 178 | + return; | |
| 173 | 179 | |
| 174 | 180 | $.get(url, function(htmlStr){ |
| 175 | 181 | $(document.body).append(htmlStr); | ... | ... |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
| ... | ... | @@ -99,6 +99,8 @@ |
| 99 | 99 | <span class="uk-badge uk-badge-danger">放站</span> |
| 100 | 100 | {{else if sch.bcType == "region"}} |
| 101 | 101 | <span class="uk-badge">区间</span> |
| 102 | + {{else if sch.bcType == "ldks"}} | |
| 103 | + <span class="uk-badge sch_ldks">空驶</span> | |
| 102 | 104 | {{/if}} |
| 103 | 105 | {{if sch.sflj}} |
| 104 | 106 | <span class="uk-badge uk-badge-danger">临加</span> | ... | ... |
src/main/resources/static/real_control_v2/fragments/line_schedule/sch_table.html
| ... | ... | @@ -74,6 +74,8 @@ |
| 74 | 74 | <span class="uk-badge uk-badge-danger">放站</span> |
| 75 | 75 | {{else if sch.bcType == "region"}} |
| 76 | 76 | <span class="uk-badge sch_region">区间</span> |
| 77 | + {{else if sch.bcType == "ldks"}} | |
| 78 | + <span class="uk-badge sch_ldks">空驶</span> | |
| 77 | 79 | {{/if}} |
| 78 | 80 | {{if sch.sflj}} |
| 79 | 81 | <span class="uk-badge uk-badge-danger">临加</span> |
| ... | ... | @@ -126,6 +128,8 @@ |
| 126 | 128 | <span class="uk-badge uk-badge-danger">放站</span> |
| 127 | 129 | {{else if bcType == "region"}} |
| 128 | 130 | <span class="uk-badge sch_region">区间</span> |
| 131 | + {{else if bcType == "ldks"}} | |
| 132 | + <span class="uk-badge sch_ldks">空驶</span> | |
| 129 | 133 | {{/if}} |
| 130 | 134 | {{if sflj}} |
| 131 | 135 | <span class="uk-badge uk-badge-danger">临加</span> | ... | ... |
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch/edit.html deleted
100644 → 0
| 1 | -<div class="uk-modal ct-form-modal ct_move_modal" id="history-sch-edit-modal"> | |
| 2 | - <div class="uk-modal-dialog" style="width: 900px;"> | |
| 3 | - <a href="" class="uk-modal-close uk-close"></a> | |
| 4 | - <div class="uk-modal-header"> | |
| 5 | - <h2>历史班次编辑</h2></div> | |
| 6 | - <form class="uk-form uk-form-horizontal"> | |
| 7 | - </form> | |
| 8 | - </div> | |
| 9 | - | |
| 10 | - <script id="history-sch-edit-form-temp" type="text/html"> | |
| 11 | - <input type="hidden" name="id" value="{{id}}"/> | |
| 12 | - | |
| 13 | - <div class="uk-grid"> | |
| 14 | - <div class="uk-width-1-3"> | |
| 15 | - <div class="uk-form-row"> | |
| 16 | - <label class="uk-form-label" >班次类型</label> | |
| 17 | - <div class="uk-form-controls"> | |
| 18 | - <select class="form-control nt-dictionary" disabled data-code="{{bcType}}" name="bcType" data-group=ScheduleType></select> | |
| 19 | - </div> | |
| 20 | - </div> | |
| 21 | - </div> | |
| 22 | - <div class="uk-width-1-3"> | |
| 23 | - <div class="uk-form-row"> | |
| 24 | - <label class="uk-form-label" >起点</label> | |
| 25 | - <div class="uk-form-controls"> | |
| 26 | - <input type="text" value="{{qdzName}}" disabled> | |
| 27 | - </div> | |
| 28 | - </div> | |
| 29 | - </div> | |
| 30 | - <div class="uk-width-1-3"> | |
| 31 | - <div class="uk-form-row"> | |
| 32 | - <label class="uk-form-label" >终点</label> | |
| 33 | - <div class="uk-form-controls"> | |
| 34 | - <input type="text" value="{{zdzName}}" disabled> | |
| 35 | - </div> | |
| 36 | - </div> | |
| 37 | - </div> | |
| 38 | - </div> | |
| 39 | - | |
| 40 | - <div class="uk-grid"> | |
| 41 | - <div class="uk-width-1-3"> | |
| 42 | - <div class="uk-form-row"> | |
| 43 | - <label class="uk-form-label" >车辆</label> | |
| 44 | - <div class="uk-form-controls"> | |
| 45 | - <div class="uk-autocomplete uk-form car-autocom"> | |
| 46 | - <input type="text" value="{{clZbh}}" name="clZbh" required> | |
| 47 | - </div> | |
| 48 | - </div> | |
| 49 | - </div> | |
| 50 | - </div> | |
| 51 | - <div class="uk-width-1-3"> | |
| 52 | - <div class="uk-form-row"> | |
| 53 | - <label class="uk-form-label" >驾驶员</label> | |
| 54 | - <div class="uk-form-controls"> | |
| 55 | - <div class="uk-autocomplete uk-form jsy-autocom"> | |
| 56 | - <input type="text" value="{{jGh}}/{{jName}}" name="jsy" required> | |
| 57 | - </div> | |
| 58 | - </div> | |
| 59 | - </div> | |
| 60 | - </div> | |
| 61 | - </div> | |
| 62 | - | |
| 63 | - <div class="uk-grid"> | |
| 64 | - <div class="uk-width-1-3"> | |
| 65 | - <div class="uk-form-row"> | |
| 66 | - <label class="uk-form-label" >计发</label> | |
| 67 | - <div class="uk-form-controls"> | |
| 68 | - <input type="text" value="{{fcsj}}" disabled> | |
| 69 | - </div> | |
| 70 | - </div> | |
| 71 | - </div> | |
| 72 | - <div class="uk-width-1-3"> | |
| 73 | - <div class="uk-form-row"> | |
| 74 | - <label class="uk-form-label" >待发</label> | |
| 75 | - <div class="uk-form-controls"> | |
| 76 | - <input type="text" name="dfsj" value="{{dfsj}}" required> | |
| 77 | - </div> | |
| 78 | - </div> | |
| 79 | - </div> | |
| 80 | - <div class="uk-width-1-3"> | |
| 81 | - <div class="uk-form-row"> | |
| 82 | - <label class="uk-form-label" >实发</label> | |
| 83 | - <div class="uk-form-controls"> | |
| 84 | - <input type="text" name="fcsjActual" value="{{fcsjActual}}" > | |
| 85 | - </div> | |
| 86 | - </div> | |
| 87 | - </div> | |
| 88 | - </div> | |
| 89 | - | |
| 90 | - <div class="uk-grid"> | |
| 91 | - <div class="uk-width-1-3"> | |
| 92 | - <div class="uk-form-row"> | |
| 93 | - <label class="uk-form-label" >计划里程</label> | |
| 94 | - <div class="uk-form-controls"> | |
| 95 | - <input type="text" value="{{jhlc}}" disabled> | |
| 96 | - </div> | |
| 97 | - </div> | |
| 98 | - </div> | |
| 99 | - <div class="uk-width-1-3"> | |
| 100 | - <div class="uk-form-row"> | |
| 101 | - <label class="uk-form-label" >计划终点</label> | |
| 102 | - <div class="uk-form-controls"> | |
| 103 | - <input type="text" value="{{zdsj}}" disabled> | |
| 104 | - </div> | |
| 105 | - </div> | |
| 106 | - </div> | |
| 107 | - <div class="uk-width-1-3"> | |
| 108 | - <div class="uk-form-row"> | |
| 109 | - <label class="uk-form-label" >实际终点</label> | |
| 110 | - <div class="uk-form-controls"> | |
| 111 | - <input type="text" name="zdsjActual" value="{{zdsjActual}}" > | |
| 112 | - </div> | |
| 113 | - </div> | |
| 114 | - </div> | |
| 115 | - </div> | |
| 116 | - | |
| 117 | - <div class="uk-grid"> | |
| 118 | - <div class="uk-width-1-1"> | |
| 119 | - <div class="uk-form-row ct-stacked"> | |
| 120 | - <label class="uk-form-label" >备注</label> | |
| 121 | - <div class="uk-form-controls" style="margin-top: 5px;"> | |
| 122 | - <textarea id="form-s-t" cols="30" rows="5" name="remarks" data-fv-stringlength="true" data-fv-stringlength-max="100" placeholder="备注">{{remarks}}</textarea> | |
| 123 | - </div> | |
| 124 | - </div> | |
| 125 | - </div> | |
| 126 | - </div> | |
| 127 | - <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;"> | |
| 128 | - <button type="button" class="uk-button uk-modal-close">取消</button> | |
| 129 | - <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> 保存</button> | |
| 130 | - </div> | |
| 131 | - </script> | |
| 132 | - | |
| 133 | - <script> | |
| 134 | - (function() { | |
| 135 | - var modal = '#history-sch-edit-modal' | |
| 136 | - ,sch,parentModal; | |
| 137 | - $(modal).on('init', function(e, data) { | |
| 138 | - var id = data.id; | |
| 139 | - parentModal=data.parentModal; | |
| 140 | - | |
| 141 | - $.get('/realSchedule/'+id, function (sch) { | |
| 142 | - var htmlStr = template('history-sch-edit-form-temp', sch); | |
| 143 | - $('form', modal).html(htmlStr); | |
| 144 | - | |
| 145 | - //字典转换 | |
| 146 | - dictionaryUtils.transformDom($('.nt-dictionary', modal)); | |
| 147 | - | |
| 148 | - //----------- Autocomplete -------------- | |
| 149 | - $.get('/basic/cars', function(rs) { | |
| 150 | - //车辆 | |
| 151 | - gb_common.carAutocomplete($('.car-autocom', modal), rs); | |
| 152 | - }); | |
| 153 | - $.get('/basic/all_personnel', function(rs) { | |
| 154 | - //驾驶员 | |
| 155 | - gb_common.personAutocomplete($('.jsy-autocom', modal), rs); | |
| 156 | - //售票员 | |
| 157 | - gb_common.personAutocomplete($('.spy-autocom', modal), rs); | |
| 158 | - }); | |
| 159 | - | |
| 160 | - | |
| 161 | - //submit | |
| 162 | - var f = $('form', modal).formValidation(gb_form_validation_opts); | |
| 163 | - f.on('success.form.fv', function(e) { | |
| 164 | - e.preventDefault(); | |
| 165 | - var data = $(this).serializeJSON(); | |
| 166 | - | |
| 167 | - //拆分驾驶员工号和姓名 | |
| 168 | - data.jGh = data.jsy.split('/')[0]; | |
| 169 | - data.jName = data.jsy.split('/')[1]; | |
| 170 | - delete data.jsy; | |
| 171 | - //拆分售票员工号和姓名 | |
| 172 | - if(data.sGh != null){ | |
| 173 | - data.sGh = data.spy.split('/')[0]; | |
| 174 | - data.sName = data.spy.split('/')[1]; | |
| 175 | - delete data.spy; | |
| 176 | - } | |
| 177 | - | |
| 178 | - gb_common.$post('/realSchedule/history', data, function (rs) { | |
| 179 | - //console.log(rs); | |
| 180 | - UIkit.modal(modal).hide(); | |
| 181 | - $(parentModal).trigger('refresh'); | |
| 182 | - }); | |
| 183 | - }); | |
| 184 | - }); | |
| 185 | - }); | |
| 186 | - })(); | |
| 187 | - </script> | |
| 188 | -</div> |
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch_maintain.html
| ... | ... | @@ -86,6 +86,8 @@ |
| 86 | 86 | <span class="uk-badge uk-badge-danger">放站</span> |
| 87 | 87 | {{else if sch.bcType == "region"}} |
| 88 | 88 | <span class="uk-badge sch_region">区间</span> |
| 89 | + {{else if sch.bcType == "ldks"}} | |
| 90 | + <span class="uk-badge sch_ldks">空驶</span> | |
| 89 | 91 | {{/if}} |
| 90 | 92 | {{if sch.sflj}} |
| 91 | 93 | <span class="uk-badge uk-badge-danger">临加</span> | ... | ... |
src/main/resources/static/real_control_v2/fragments/north/toolbar.html
| ... | ... | @@ -55,7 +55,7 @@ |
| 55 | 55 | </li> |
| 56 | 56 | {{/each}} |
| 57 | 57 | </ul> |
| 58 | - <a class="uk-navbar-brand op-beijingtime-time" title="每次秒数到0与服务器同步一次,睡眠状态唤醒会短暂异常,可鼠标右击横幅任意区域立刻同步!"> | |
| 58 | + <a class="uk-navbar-brand op-beijingtime-time" > | |
| 59 | 59 | <span></span> |
| 60 | 60 | </a> |
| 61 | 61 | <div class="uk-navbar-content uk-navbar-flip uk-hidden-small" style="padding-left: 0;"> | ... | ... |
src/main/resources/static/real_control_v2/js/line_schedule/badge_tooltip.js
| ... | ... | @@ -2,6 +2,36 @@ |
| 2 | 2 | /** badge 悬停 tip 相关 */ |
| 3 | 3 | var gb_schedule_badge_tootip = (function () { |
| 4 | 4 | |
| 5 | + var _opts = { | |
| 6 | + show:{ | |
| 7 | + ready: true, | |
| 8 | + delay: 300 | |
| 9 | + }, | |
| 10 | + position: { | |
| 11 | + viewport: $(window), | |
| 12 | + my: 'center left', | |
| 13 | + at: 'center right' | |
| 14 | + }, | |
| 15 | + hide: { | |
| 16 | + fixed: true, | |
| 17 | + delay: 300 | |
| 18 | + }, | |
| 19 | + events: { | |
| 20 | + hidden: function(event, api) { | |
| 21 | + //destroy dom | |
| 22 | + $(this).qtip('destroy', true); | |
| 23 | + } | |
| 24 | + } | |
| 25 | + }; | |
| 26 | + | |
| 27 | + var getSch = function (e) { | |
| 28 | + var id = $(e).parents('dl').data('id'), | |
| 29 | + lineCode = $(e).parents('li.line_schedule').data('id'), | |
| 30 | + sch = gb_schedule_table.findScheduleByLine(lineCode)[id]; | |
| 31 | + return sch; | |
| 32 | + }; | |
| 33 | + | |
| 34 | + var _badge = '.schedule-wrap .ct_table_body .uk-badge'; | |
| 5 | 35 | var temps; |
| 6 | 36 | //html 模板 |
| 7 | 37 | $.get('/real_control_v2/fragments/line_schedule/badge_tooltip.html', function(dom) { |
| ... | ... | @@ -9,18 +39,13 @@ var gb_schedule_badge_tootip = (function () { |
| 9 | 39 | }); |
| 10 | 40 | |
| 11 | 41 | //子任务 tootip |
| 12 | - $(document).on('mouseenter', '.schedule-wrap .ct_table_body .uk-badge.c_task', function() { | |
| 42 | + $(document).on('mouseenter', _badge + '.c_task', function() { | |
| 13 | 43 | $(this).qtip({ |
| 14 | - show: { | |
| 15 | - ready: true, | |
| 16 | - delay: 300 | |
| 17 | - }, | |
| 44 | + show: _opts.show, | |
| 18 | 45 | content: { |
| 19 | 46 | text: function() { |
| 20 | - var id = $(this).parents('dl').data('id'), | |
| 21 | - lineCode = $(this).parents('li.line_schedule').data('id'), | |
| 22 | - sch = gb_schedule_table.findScheduleByLine(lineCode)[id]; | |
| 23 | - //排序 | |
| 47 | + var sch = getSch(this); | |
| 48 | + //子任务排序 | |
| 24 | 49 | var array = sch.cTasks.sort(function (a, b) { |
| 25 | 50 | var an = (a.mileageType=='service'?1:0)+''+(a.destroy?0:1); |
| 26 | 51 | var bn = (b.mileageType=='service'?1:0)+''+(b.destroy?0:1); |
| ... | ... | @@ -29,134 +54,86 @@ var gb_schedule_badge_tootip = (function () { |
| 29 | 54 | return temps['sch-table-task-tootip-temp']({tasks: array}); |
| 30 | 55 | } |
| 31 | 56 | }, |
| 32 | - position: { | |
| 33 | - viewport: $(window), | |
| 34 | - my: 'center left', | |
| 35 | - at: 'center right' | |
| 36 | - }, | |
| 57 | + position: _opts.position, | |
| 37 | 58 | style: { |
| 38 | 59 | classes: 'qtip-light qtip-rounded qtip-shadow sch-badge-tip' |
| 39 | 60 | }, |
| 40 | - hide: { | |
| 41 | - fixed: true, | |
| 42 | - delay: 300 | |
| 43 | - }, | |
| 44 | - events: { | |
| 45 | - hidden: function(event, api) { | |
| 46 | - //destroy dom | |
| 47 | - $(this).qtip('destroy', true); | |
| 48 | - } | |
| 49 | - } | |
| 61 | + hide: _opts.hide, | |
| 62 | + events: _opts.events | |
| 50 | 63 | }); |
| 51 | 64 | }); |
| 52 | 65 | |
| 53 | 66 | //区间 tootip |
| 54 | - $(document).on('mouseenter', '.schedule-wrap .ct_table_body .uk-badge.sch_region', function() { | |
| 67 | + $(document).on('mouseenter', _badge+'.sch_region', function() { | |
| 55 | 68 | $(this).qtip({ |
| 56 | - show: { | |
| 57 | - ready: true, | |
| 58 | - delay: 300 | |
| 59 | - }, | |
| 69 | + show: _opts.show, | |
| 60 | 70 | content: { |
| 61 | 71 | text: function() { |
| 62 | - var id = $(this).parents('dl').data('id'), | |
| 63 | - lineCode = $(this).parents('li.line_schedule').data('id'), | |
| 64 | - sch = gb_schedule_table.findScheduleByLine(lineCode)[id]; | |
| 65 | - return temps['sch-table-region-tootip-temp'](sch); | |
| 72 | + return temps['sch-table-region-tootip-temp'](getSch(this)); | |
| 66 | 73 | } |
| 67 | 74 | }, |
| 68 | - position: { | |
| 69 | - viewport: $(window), | |
| 70 | - my: 'center left', | |
| 71 | - at: 'center right' | |
| 72 | - }, | |
| 75 | + position: _opts.position, | |
| 73 | 76 | style: { |
| 74 | 77 | classes: 'qtip-youtube sch-badge-tip' |
| 75 | 78 | }, |
| 76 | - hide: { | |
| 77 | - fixed: true, | |
| 78 | - delay: 300 | |
| 79 | - }, | |
| 80 | - events: { | |
| 81 | - hidden: function(event, api) { | |
| 82 | - //destroy dom | |
| 83 | - $(this).qtip('destroy', true); | |
| 84 | - } | |
| 85 | - } | |
| 79 | + hide: _opts.hide, | |
| 80 | + events: _opts.events | |
| 86 | 81 | }); |
| 87 | 82 | }); |
| 88 | 83 | |
| 89 | 84 | |
| 90 | 85 | //出场 tootip |
| 91 | - $(document).on('mouseenter', '.schedule-wrap .ct_table_body .uk-badge.out', function() { | |
| 86 | + $(document).on('mouseenter', _badge+'.out', function() { | |
| 92 | 87 | $(this).qtip({ |
| 93 | - show: { | |
| 94 | - ready: true, | |
| 95 | - delay: 300 | |
| 96 | - }, | |
| 88 | + show: _opts.show, | |
| 97 | 89 | content: { |
| 98 | 90 | text: function() { |
| 99 | - var id = $(this).parents('dl').data('id'), | |
| 100 | - lineCode = $(this).parents('li.line_schedule').data('id'), | |
| 101 | - sch = gb_schedule_table.findScheduleByLine(lineCode)[id]; | |
| 102 | - return temps['sch-table-out-tootip-temp'](sch); | |
| 91 | + return temps['sch-table-out-tootip-temp'](getSch(this)); | |
| 103 | 92 | } |
| 104 | 93 | }, |
| 105 | - position: { | |
| 106 | - viewport: $(window), | |
| 107 | - my: 'center left', | |
| 108 | - at: 'center right' | |
| 109 | - }, | |
| 94 | + position: _opts.position, | |
| 110 | 95 | style: { |
| 111 | 96 | classes: 'qtip-youtube sch-badge-tip' |
| 112 | 97 | }, |
| 113 | - hide: { | |
| 114 | - fixed: true, | |
| 115 | - delay: 300 | |
| 116 | - }, | |
| 117 | - events: { | |
| 118 | - hidden: function(event, api) { | |
| 119 | - //destroy dom | |
| 120 | - $(this).qtip('destroy', true); | |
| 121 | - } | |
| 122 | - } | |
| 98 | + hide: _opts.hide, | |
| 99 | + events: _opts.events | |
| 123 | 100 | }); |
| 124 | 101 | }); |
| 125 | 102 | |
| 126 | 103 | |
| 127 | 104 | //进场 tootip |
| 128 | - $(document).on('mouseenter', '.schedule-wrap .ct_table_body .uk-badge.in', function() { | |
| 105 | + $(document).on('mouseenter', _badge+'.in', function() { | |
| 129 | 106 | $(this).qtip({ |
| 130 | - show: { | |
| 131 | - ready: true, | |
| 132 | - delay: 300 | |
| 133 | - }, | |
| 107 | + show: _opts.show, | |
| 134 | 108 | content: { |
| 135 | 109 | text: function() { |
| 136 | - var id = $(this).parents('dl').data('id'), | |
| 137 | - lineCode = $(this).parents('li.line_schedule').data('id'), | |
| 138 | - sch = gb_schedule_table.findScheduleByLine(lineCode)[id]; | |
| 139 | - return temps['sch-table-in-tootip-temp'](sch); | |
| 110 | + return temps['sch-table-in-tootip-temp'](getSch(this)); | |
| 140 | 111 | } |
| 141 | 112 | }, |
| 142 | - position: { | |
| 143 | - viewport: $(window), | |
| 144 | - my: 'center left', | |
| 145 | - at: 'center right' | |
| 146 | - }, | |
| 113 | + position: _opts.position, | |
| 147 | 114 | style: { |
| 148 | 115 | classes: 'qtip-youtube sch-badge-tip' |
| 149 | 116 | }, |
| 150 | - hide: { | |
| 151 | - fixed: true, | |
| 152 | - delay: 300 | |
| 153 | - }, | |
| 154 | - events: { | |
| 155 | - hidden: function(event, api) { | |
| 156 | - //destroy dom | |
| 157 | - $(this).qtip('destroy', true); | |
| 117 | + hide: _opts.hide, | |
| 118 | + events: _opts.events | |
| 119 | + }); | |
| 120 | + }); | |
| 121 | + | |
| 122 | + //2点间空放 | |
| 123 | + $(document).on('mouseenter', _badge+'.sch_ldks', function() { | |
| 124 | + $(this).qtip({ | |
| 125 | + show: _opts.show, | |
| 126 | + content: { | |
| 127 | + text: function() { | |
| 128 | + return temps['sch-table-ldks-tootip-temp'](getSch(this)); | |
| 158 | 129 | } |
| 159 | - } | |
| 130 | + }, | |
| 131 | + position: _opts.position, | |
| 132 | + style: { | |
| 133 | + classes: 'qtip-shadow qtip-bootstrap sch-badge-tip' | |
| 134 | + }, | |
| 135 | + hide: _opts.hide, | |
| 136 | + events: _opts.events | |
| 160 | 137 | }); |
| 161 | 138 | }); |
| 162 | 139 | })(); |
| 163 | 140 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/js/main.js
src/main/resources/static/real_control_v2/js/minute_timer.js deleted
100644 → 0
| 1 | -/** 时钟 */ | |
| 2 | -var gb_minute_timer = (function () { | |
| 3 | - | |
| 4 | - | |
| 5 | - var getServerTime = function (cb) { | |
| 6 | - function oncallback(jqXHR) { | |
| 7 | - var time = jqXHR && jqXHR.getResponseHeader("Date"); | |
| 8 | - if (time) | |
| 9 | - callback(new Date(time)) | |
| 10 | - } | |
| 11 | - | |
| 12 | - if ("function" == typeof callback) | |
| 13 | - $.ajax({ | |
| 14 | - url: "/real_control_v2/assets/imgs/time.gif", | |
| 15 | - type: "HEAD" | |
| 16 | - }).done(function (data, textStatus, jqXHR) { | |
| 17 | - oncallback(jqXHR) | |
| 18 | - }).fail(function (jqXHR, textStatus, errorThrown) { | |
| 19 | - oncallback(jqXHR) | |
| 20 | - }) | |
| 21 | - }; | |
| 22 | - | |
| 23 | - | |
| 24 | - setTimeout(function () { | |
| 25 | - getServerTime(function () { | |
| 26 | - console.log('cb,,', cb); | |
| 27 | - }); | |
| 28 | - }, 5000); | |
| 29 | - | |
| 30 | -})(); | |
| 31 | 0 | \ No newline at end of file |
src/main/resources/static/real_control_v2/js/north/second_timer.js
| ... | ... | @@ -19,7 +19,7 @@ var gb_second_timer = (function () { |
| 19 | 19 | setTime(); |
| 20 | 20 | |
| 21 | 21 | secondTimer = window.setInterval(function () { |
| 22 | - if(0 == now.getSeconds() || true == contextFlag){ | |
| 22 | + if (0 == now.getSeconds() || true == contextFlag) { | |
| 23 | 23 | minuteTimer(); |
| 24 | 24 | contextFlag = false; |
| 25 | 25 | } |
| ... | ... | @@ -48,7 +48,7 @@ var gb_second_timer = (function () { |
| 48 | 48 | }) |
| 49 | 49 | }; |
| 50 | 50 | |
| 51 | - var timeFormat = function(str) { | |
| 51 | + var timeFormat = function (str) { | |
| 52 | 52 | return ("0" + str).slice(-2) |
| 53 | 53 | }; |
| 54 | 54 | |
| ... | ... | @@ -57,11 +57,41 @@ var gb_second_timer = (function () { |
| 57 | 57 | }; |
| 58 | 58 | |
| 59 | 59 | var minuteTimer = function () { |
| 60 | - getServerTime(function(time) { | |
| 60 | + getServerTime(function (time) { | |
| 61 | 61 | now = time; |
| 62 | 62 | setTime() |
| 63 | 63 | }) |
| 64 | 64 | }; |
| 65 | 65 | |
| 66 | 66 | window.setTimeout(init, 6000); |
| 67 | + | |
| 68 | +/* $(document).on('mouseenter', '.op-beijingtime-time', function () { | |
| 69 | + $(this).qtip({ | |
| 70 | + show: {ready: true, delay: 300}, | |
| 71 | + content: { | |
| 72 | + text: function () { | |
| 73 | + return '<div class="tl-tip-panel">' + | |
| 74 | + '<div style="font-size: 13px;">' + | |
| 75 | + '每次秒数到0与服务器同步一次<br>服务器每10分钟与国家授时中心标准时间同步一次<br>睡眠状态唤醒会短暂异常,可鼠标右击横幅任意区域立刻同步' + | |
| 76 | + '</div>' + | |
| 77 | + '</div>'; | |
| 78 | + } | |
| 79 | + }, | |
| 80 | + position: { | |
| 81 | + viewport: $(window), | |
| 82 | + my: 'top center', | |
| 83 | + at: 'bottom center' | |
| 84 | + }, | |
| 85 | + style: { | |
| 86 | + classes: 'qtip-shadow qtip-tipped sch-badge-tip' | |
| 87 | + }, | |
| 88 | + hide: {fixed: true, delay: 300}, | |
| 89 | + events: { | |
| 90 | + hidden: function(event, api) { | |
| 91 | + //destroy dom | |
| 92 | + $(this).qtip('destroy', true); | |
| 93 | + } | |
| 94 | + } | |
| 95 | + }); | |
| 96 | + });*/ | |
| 67 | 97 | })(); |
| 68 | 98 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/main.html
| ... | ... | @@ -184,8 +184,6 @@ |
| 184 | 184 | <script src="/real_control_v2/js/websocket/sch_websocket.js" merge="custom_js"></script> |
| 185 | 185 | <!-- tts --> |
| 186 | 186 | <script src="/real_control_v2/js/utils/tts.js" merge="custom_js"></script> |
| 187 | -<!-- minute_timer.js --> | |
| 188 | -<script src="/real_control_v2/js/minute_timer.js" merge="custom_js"></script> | |
| 189 | 187 | |
| 190 | 188 | <!-- echart --> |
| 191 | 189 | <script src="/real_control_v2/assets/echarts-3/echarts.js" merge="plugins"></script> | ... | ... |