Commit 5d49c86acf31e9aba47d208f83bd363265d0907b

Authored by 廖磊
2 parents 70c7c00c f7699dc0

Merge branch 'minhang' of

http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
src/main/java/com/bsth/controller/realcontrol/anomalyCheckController.java
... ... @@ -95,4 +95,14 @@ public class anomalyCheckController {
95 95 public void updateCacheBuff(){
96 96 geoCacheData.loadData();
97 97 }
  98 +
  99 + @RequestMapping(value = "/reCalcLpSch")
  100 + public void reCalcLpSch(){
  101 + dayOfSchedule._test_reCalcLpSch();
  102 + }
  103 +
  104 + @RequestMapping(value = "/findSchByLpName")
  105 + public List<ScheduleRealInfo> findSchByLpName(String lpName){
  106 + return dayOfSchedule.getLpScheduleMap().get(lpName);
  107 + }
98 108 }
... ...
src/main/java/com/bsth/data/car_out_info/CarOutInfoHandler.java
... ... @@ -54,27 +54,19 @@ public class CarOutInfoHandler {
54 54 * 全量更新发车信息表
55 55 */
56 56 public void updateAll() {
57   - Set<String> ks = BasicData.lineCode2NameMap.keySet();
58   - for (String lineCode : ks) {
59   - update(lineCode);
60   - }
61   - }
62   -
63   - public void update(String lineCode) {
64   - try {
65   - ArrayListMultimap<String, ScheduleRealInfo> lpScheduleMap = dayOfSchedule.getLpScheduleMap();
66   - List<ScheduleRealInfo> list = new ArrayList<>();
  57 + try{
  58 + //将班次按线路分组
  59 + List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll());
  60 + ArrayListMultimap<String, ScheduleRealInfo> xlMaps = ArrayListMultimap.create();
  61 + for(ScheduleRealInfo sch : all){
  62 + xlMaps.put(sch.getXlBm(), sch);
  63 + }
67 64  
68   - Set<String> ks = lpScheduleMap.keySet();
69   - String prefix = lineCode + "_";
  65 + Set<String> ks = xlMaps.keySet();
70 66 for (String k : ks) {
71   - if (k.startsWith(prefix)) {
72   - list.addAll(lpScheduleMap.get(k));
73   - }
  67 + update(xlMaps.get(k));
74 68 }
75   -
76   - update(list);
77   - } catch (Exception e) {
  69 + }catch (Exception e){
78 70 logger.error("", e);
79 71 }
80 72 }
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
... ... @@ -338,6 +338,9 @@ public class InOutStationSignalHandle extends SignalHandle{
338 338 if(lpNext != null){
339 339 lpNext.setQdzArrDatesj(sch.getZdsjActual());
340 340 }
  341 + else{
  342 + logger.info(sch.getClZbh() + " 到终点,无下一班");
  343 + }
341 344  
342 345 //通知客户端
343 346 sendUtils.sendZdsj(sch, lpNext, doneSum);
... ...
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
... ... @@ -1137,4 +1137,16 @@ public class DayOfSchedule {
1137 1137 public ArrayListMultimap<String, ScheduleRealInfo> getLpScheduleMap() {
1138 1138 return lpScheduleMap;
1139 1139 }
  1140 +
  1141 + /**
  1142 + * 重新全量计算路牌下的班次关联性
  1143 + * 临时性的函数
  1144 + */
  1145 + public void _test_reCalcLpSch() {
  1146 + Map<String ,Collection<ScheduleRealInfo>> map = lpScheduleMap.asMap();
  1147 + Set<String> ks = map.keySet();
  1148 + for(String k : ks){
  1149 + schAttrCalculator.calcQdzTimePlan(new ArrayList<ScheduleRealInfo>(map.get(k)));
  1150 + }
  1151 + }
1140 1152 }
1141 1153 \ No newline at end of file
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -139,19 +139,19 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
139 139  
140 140 //去掉了 xlBm is not null
141 141 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
142   - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.xlDir,s.realExecDate,s.dfsj, (s.lpName+1)")
  142 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.xlDir,s.realExecDate,s.fcsj, lpName")
143 143 List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date);
144 144  
145 145 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
146   - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm =?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by (s.lpName+1), s.realExecDate,s.dfsj")
  146 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm =?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.lpName, s.realExecDate,s.fcsj")
147 147 List<ScheduleRealInfo> scheduleByDateAndLineQp(String line,String date);
148 148  
149 149 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
150   - @Query(value="select DISTINCT s from ScheduleRealInfo s where gsBm like %?1% and fgsBm like %?2% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?3 and s.bcType not in ('in','out','ldks') order by s.xlDir,s.realExecDate,s.dfsj, (s.lpName+1)")
  150 + @Query(value="select DISTINCT s from ScheduleRealInfo s where gsBm like %?1% and fgsBm like %?2% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?3 and s.bcType not in ('in','out','ldks') order by s.xlDir,s.realExecDate,s.fcsj, s.lpName")
151 151 List<ScheduleRealInfo> scheduleByDateAndLineByGs(String gsdm,String fgsdm,String date);
152 152  
153 153 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
154   - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.xlDir,s.realExecDate,s.dfsj, (s.lpName+1)")
  154 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.xlDir,s.realExecDate,s.fcsj, s.lpName")
155 155 List<ScheduleRealInfo> scheduleByDateAndLineQp2(String line,String date);
156 156  
157 157 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
... ...
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
... ... @@ -141,7 +141,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
141 141 long dfsj = Long.valueOf(split0[0]) * 60 + Long.valueOf(split0[1]);
142 142 if(!schedule.getScheduleDateStr().equals(schedule.getRealExecDate())&&dfsj<23*60)
143 143 dfsj += 1440l;
144   - schedule.setDfsj(dfsj/60 + ":" + dfsj%60);
  144 + schedule.setDfsj((dfsj/60>9?"":"0")+dfsj/60+ ":" +(dfsj%60>9?"":"0")+dfsj%60);
145 145 schedule.setDfsjT(dfsj);
146 146 }
147 147 if(schedule.getFcsjActual() != null){
... ... @@ -149,7 +149,7 @@ public class BusIntervalServiceImpl implements BusIntervalService {
149 149 long fcsjA = Long.valueOf(split2[0]) * 60 + Long.valueOf(split2[1]);
150 150 if(!schedule.getScheduleDateStr().equals(schedule.getRealExecDate())&&fcsjA<23*60)
151 151 fcsjA += 1440l;
152   - schedule.setFcsjActual(fcsjA/60 + ":" + fcsjA%60);
  152 + schedule.setFcsjActual((fcsjA/60>9?"":"0")+fcsjA/60+ ":" +(fcsjA%60>9?"":"0")+fcsjA%60);
153 153 schedule.setFcsjActualTime(fcsjA);
154 154 }
155 155 if(schedule.getZdsjActual() != null){
... ... @@ -159,11 +159,11 @@ public class BusIntervalServiceImpl implements BusIntervalService {
159 159 zdsjA += 1440l;
160 160 if(schedule.getFcsjActualTime() != null && zdsjA < schedule.getFcsjActualTime())
161 161 zdsjA += 1440l;
162   - schedule.setZdsjActual(zdsjA/60 + ":" + zdsjA%60);
  162 + schedule.setZdsjActual((zdsjA/60>9?"":"0")+zdsjA/60+ ":" +(zdsjA%60>9?"":"0")+zdsjA%60);
163 163 schedule.setZdsjActualTime(zdsjA);
164 164 }
165   - schedule.setFcsj((fcsj/60<10?"0"+fcsj/60:fcsj/60) + ":" + (fcsj%60<10?"0"+fcsj%60:fcsj%60));
166   - schedule.setZdsj((zdsj/60<10?"0"+zdsj/60:zdsj/60) + ":" + (zdsj%60<10?"0"+zdsj%60:zdsj%60));
  165 + schedule.setFcsj((fcsj/60<10?"0"+fcsj/60:fcsj/60)+ ":" +(fcsj%60<10?"0"+fcsj%60:fcsj%60));
  166 + schedule.setZdsj((zdsj/60<10?"0"+zdsj/60:zdsj/60)+ ":" +(zdsj%60<10?"0"+zdsj%60:zdsj%60));
167 167 schedule.setFcsjT(fcsj);
168 168 schedule.setZdsjT(zdsj);
169 169 return schedule;
... ... @@ -1379,249 +1379,214 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1379 1379 times = "05:00-23:00";
1380 1380 }
1381 1381  
1382   - list = getSchedule(company, subCompany, line, startDate, endDate, model, times, true);
  1382 + list = getSchedule(company, subCompany, line, startDate, endDate, model, times, false);
1383 1383  
1384 1384 String[] date1 = startDate.split("-");
1385 1385 String[] date2 = endDate.split("-");
1386 1386 startDate = date1[0] + "年" + date1[1] + "月" + date1[2] + "日";
1387 1387 endDate = date2[0] + "年" + date2[1] + "月" + date2[2] + "日";
  1388 + String date = startDate + "-" + endDate;
  1389 + if(startDate.equals(endDate)){
  1390 + date = startDate;
  1391 + }
1388 1392  
1389 1393 String[] split = times.split("-");
1390 1394 int startTime = Integer.valueOf(split[0].split(":")[0])*60 + Integer.valueOf(split[0].split(":")[1]);
1391 1395 int endTime = Integer.valueOf(split[1].split(":")[0])*60 + Integer.valueOf(split[1].split(":")[1]);
1392 1396  
1393   - for(ScheduleRealInfo schedule : list){
1394   - if(qdzName.length() != 0 && !qdzName.equals(schedule.getQdzName())){
1395   - continue;
1396   - }
1397   - Long fcsj = schedule.getFcsjT();
1398   - if(!(endTime!=0?fcsj>=startTime&&fcsj<endTime:fcsj>=startTime)){
1399   - continue;
1400   - }
1401   - String key = schedule.getScheduleDateStr() + "/" + schedule.getXlName() + "/" + schedule.getLpName() + "/" + schedule.getFcsj() + "/" + schedule.getQdzName();
  1397 + for(ScheduleRealInfo s : list){
  1398 + String key = s.getScheduleDateStr() + "/" + s.getLpName();
1402 1399 if(!keyMap.containsKey(key))
1403 1400 keyMap.put(key, new ArrayList<ScheduleRealInfo>());
1404   - keyMap.get(key).add(schedule);
  1401 + keyMap.get(key).add(s);
1405 1402 }
  1403 +
1406 1404 for(String key : keyMap.keySet()){
1407   - Map<String, Object> tempMap = new HashMap<String, Object>();
1408   - int jhbc = 0, sjbc = 0, wdfz = 0;
1409   - long jhdf = 0l, sjdf = 0l, wddf1 = 0l, wddf2 = 0l;
1410   - long jhfc = 0l, sjfc = 0l, wdfc1 = 0l, wdfc2 = 0l;
1411   - long jhys = 0l, sjys = 0l, yssjMax = 0l, yssjMin = 0l;
1412   - long jhtz = 0l, sjtz = 0l, tzsjMax = 0l, tzsjMin = 0l;
1413   - String companyName = "", subCompanyName = "";
1414   - for(ScheduleRealInfo schedule : keyMap.get(key)){
1415   - if(schedule.getGsName() != null && companyName.length() == 0)
1416   - companyName = schedule.getGsName();
1417   - if(schedule.getFgsName() != null && subCompanyName.length() == 0)
1418   - subCompanyName = schedule.getFgsName();
1419   - long tzsj = 0l;
1420   - long yssj = 0l;
1421   - jhbc++;
1422   - if(schedule.getDfsj() != null){
1423   - jhtz += schedule.getFcsjT() - schedule.getDfsjT();
  1405 + List<ScheduleRealInfo> list1 = keyMap.get(key);
  1406 + Map<String, List<ScheduleRealInfo>> keyMap_ = new HashMap<String, List<ScheduleRealInfo>>();
  1407 + for(ScheduleRealInfo s : list1){
  1408 + String dateStr = s.getScheduleDateStr();
  1409 + if(!keyMap_.containsKey(dateStr))
  1410 + keyMap_.put(dateStr, new ArrayList<ScheduleRealInfo>());
  1411 + keyMap_.get(dateStr).add(s);
  1412 + }
  1413 +
  1414 + Set<String> keySet1 = keyMap_.keySet();
  1415 + Map<Long, String> Map = new HashMap<Long, String>();
  1416 + for(String key1 : keySet1){
  1417 + Map.put(Long.valueOf(key1.replaceAll("-", "")), key1);
  1418 + }
  1419 + Set<Long> keySet2 = Map.keySet();
  1420 +
  1421 + for(Long l : keySet2){
  1422 + List<ScheduleRealInfo> list2 = keyMap_.get(Map.get(l));
  1423 + List<ScheduleRealInfo> list3 = new ArrayList<ScheduleRealInfo>();
  1424 + List<Long> fcsjs = new ArrayList<Long>();
  1425 + List<Long> zdsjs = new ArrayList<Long>();
  1426 + List<Long> fcsjAs = new ArrayList<Long>();
  1427 + List<Long> zdsjAs = new ArrayList<Long>();
  1428 + Map<Long, ScheduleRealInfo> fcsjMap = new HashMap<Long, ScheduleRealInfo>();
  1429 + Map<Long, ScheduleRealInfo> zdsjMap = new HashMap<Long, ScheduleRealInfo>();
  1430 + Map<Long, ScheduleRealInfo> fcsjAMap = new HashMap<Long, ScheduleRealInfo>();
  1431 + Map<Long, ScheduleRealInfo> zdsjAMap = new HashMap<Long, ScheduleRealInfo>();
  1432 + for(ScheduleRealInfo schedule : list2){
  1433 + if(schedule.getStatus() != -1){
  1434 + if(schedule.getFcsj()!=null&&schedule.getFcsjActual()!=null&&
  1435 + schedule.getZdsj()!=null&&schedule.getZdsjActual()!=null){
  1436 + Long fcsj = schedule.getFcsjT();
  1437 + Long zdsj = schedule.getZdsjT();
  1438 + Long fcsjA = schedule.getFcsjActualTime();
  1439 + Long zdsjA = schedule.getZdsjActualTime();
  1440 + fcsjs.add(fcsj);
  1441 + zdsjs.add(zdsj);
  1442 + fcsjAs.add(fcsjA);
  1443 + zdsjAs.add(zdsjA);
  1444 + fcsjMap.put(fcsj, schedule);
  1445 + zdsjMap.put(zdsj, schedule);
  1446 + fcsjAMap.put(fcsjA, schedule);
  1447 + zdsjAMap.put(zdsjA, schedule);
  1448 + }
  1449 + }
  1450 + }
  1451 + Collections.sort(fcsjs);
  1452 + Collections.sort(zdsjs);
  1453 + Collections.sort(fcsjAs);
  1454 + Collections.sort(zdsjAs);
  1455 + for(int i = 0; i < fcsjs.size(); i++){
  1456 + Long fcsj = fcsjs.get(i);
  1457 + Long zdsj = zdsjs.get(i);
  1458 + Long fcsjA = fcsjAs.get(i);
  1459 + Long zdsjA = zdsjAs.get(i);
  1460 + ScheduleRealInfo s = fcsjMap.get(fcsj);
  1461 + s.setFcsjActual(fcsjAMap.get(fcsjA).getFcsjActual());
  1462 + s.setFcsjActualTime(fcsjAMap.get(fcsjA).getFcsjActualTime());
  1463 + s.setZdsjActual(zdsjAMap.get(zdsjA).getZdsjActual());
  1464 + s.setZdsjActualTime(zdsjAMap.get(zdsjA).getZdsjActualTime());
  1465 + list3.add(s);
1424 1466 }
1425   - jhys += schedule.getZdsjT() - schedule.getFcsjT();
1426 1467  
1427   - if(schedule.getFcsjActual() != null && schedule.getZdsjActual() != null){
1428   - sjbc++;
1429   - sjfc += schedule.getFcsjActualTime();
1430   - yssj += schedule.getZdsjActualTime() - schedule.getFcsjActualTime();
1431   - if(schedule.getFcsjActualTime() - schedule.getFcsjT() < 0){
1432   - wdfc1 += schedule.getFcsjT() - schedule.getFcsjActualTime();
1433   -// kbc++;
1434   - } else if(schedule.getFcsjActualTime() - schedule.getFcsjT() > 0){
1435   - wdfc2 += schedule.getFcsjActualTime() - schedule.getFcsjT();
1436   -// mbc++;
1437   - }
1438   -
1439   - if(schedule.getDfsj() != null){
1440   - sjdf += schedule.getDfsjT();
1441   - tzsj += schedule.getFcsjActualTime() - schedule.getDfsjT();
1442   - if(schedule.getDfsjT() - schedule.getFcsjT() < 0)
1443   - wddf1 += schedule.getFcsjT() - schedule.getDfsjT();
1444   - else
1445   - wddf2 += schedule.getDfsjT() - schedule.getFcsjT();
1446   - } else {
1447   - sjdf += schedule.getFcsjT();
1448   - tzsj += schedule.getFcsjActualTime() - schedule.getFcsjT();
  1468 + for(int i = 0; i < list3.size(); i++){
  1469 + ScheduleRealInfo s = list3.get(i);
  1470 + long fcwd = s.getFcsjActualTime() - s.getFcsjT();
  1471 + long jhys = s.getBcsj();
  1472 + long sjys = s.getZdsjActualTime() - s.getFcsjActualTime();
  1473 + if(i > 0){
  1474 + ScheduleRealInfo s1 = list3.get(i - 1);
  1475 + long ddwd = s1.getZdsjActualTime() - s1.getZdsjT();
  1476 + long jhtz = s.getFcsjT() - s1.getZdsjT();
  1477 + long sjtz = s.getFcsjActualTime() - s1.getZdsjActualTime();
  1478 +
  1479 + if(s.getBcType().equals("normal")){
  1480 + Map<String, Object> tempMap = new HashMap<String, Object>();
  1481 + tempMap.put("dates", date);
  1482 + tempMap.put("line", s.getXlName());
  1483 + tempMap.put("lp", s.getLpName());
  1484 + tempMap.put("station", s.getQdzName());
  1485 + tempMap.put("date", s.getScheduleDateStr());
  1486 + tempMap.put("jhdd", s1.getZdsj());
  1487 + tempMap.put("sjdd", s1.getZdsjActual());
  1488 + tempMap.put("ddwd", ddwd);
  1489 + tempMap.put("jhfc", s.getFcsj());
  1490 + tempMap.put("sjfc", s.getFcsjActual());
  1491 + tempMap.put("fcwd", fcwd);
  1492 + tempMap.put("jhys", jhys);
  1493 + tempMap.put("sjys", sjys);
  1494 + tempMap.put("jhtz", jhtz);
  1495 + tempMap.put("sjtz", sjtz);
  1496 +
  1497 + String key0 = s.getLpName() + "/" + s.getQdzName();
  1498 + if(!keyMap0.containsKey(key0))
  1499 + keyMap0.put(key0, new ArrayList<Map<String, Object>>());
  1500 + keyMap0.get(key0).add(tempMap);
  1501 + }
1449 1502 }
1450 1503 }
1451   -
1452   - sjys += yssj;
1453   - if(yssj > yssjMax || yssjMax == 0l)
1454   - yssjMax = yssj;
1455   - if(yssj < yssjMin || yssjMin == 0l)
1456   - yssjMin = yssj;
1457   -
1458   - sjtz += tzsj;
1459   - if(tzsj > tzsjMax || tzsjMax == 0l)
1460   - tzsjMax = tzsj;
1461   - if(tzsj < tzsjMin || tzsjMin == 0l)
1462   - tzsjMin = tzsj;
1463 1504 }
1464   - String[] keys = key.split("/");
1465   - tempMap.put("date", keys[0]);
1466   - tempMap.put("line", keys[1]);
1467   - tempMap.put("lp", keys[2]);
1468   - tempMap.put("jhdf", keys[3]);
1469   - tempMap.put("jhfc", keys[3]);
1470   - tempMap.put("station", keys[4]);
1471   - tempMap.put("times", times);
1472   - tempMap.put("company", companyName);
1473   - tempMap.put("subCompany", subCompanyName);
1474   - if(startDate.equals(endDate))
1475   - tempMap.put("dates", startDate);
1476   - else
1477   - tempMap.put("dates", startDate + "--" + endDate);
1478   - tempMap.put("jhbc", jhbc);
1479   - tempMap.put("sjbc", sjbc);
1480   - if(sjbc != 0){
1481   - tempMap.put("sjdf", ((sjdf/sjbc)/60<10?"0"+(sjdf/sjbc)/60:(sjdf/sjbc)/60) + ":" + ((sjdf/sjbc)%60<10?"0"+(sjdf/sjbc)%60:(sjdf/sjbc)%60));
1482   - tempMap.put("wddf1", wddf1 / sjbc + "分");
1483   - tempMap.put("wddf2", wddf2 / sjbc + "分");
1484   - tempMap.put("sjfc", ((sjfc/sjbc)/60<10?"0"+(sjfc/sjbc)/60:(sjfc/sjbc)/60) + ":" + ((sjfc/sjbc)%60<10?"0"+(sjfc/sjbc)%60:(sjfc/sjbc)%60));
1485   - tempMap.put("wdfc1", wdfc1 / sjbc + "分");
1486   - tempMap.put("wdfc2", wdfc2 / sjbc + "分");
1487   -// tempMap.put("kbc", df.format((((double) kbc)/sjbc)*100)+"%");
1488   -// tempMap.put("mbc", df.format((((double) mbc)/sjbc)*100)+"%");
1489   - tempMap.put("pjys", sjys / sjbc + "分");
1490   - tempMap.put("pjtz", sjtz / sjbc + "分");
1491   - } else {
1492   - tempMap.put("sjdf", "/");
1493   - tempMap.put("wddf1", "0分");
1494   - tempMap.put("wddf2", "0分");
1495   - tempMap.put("sjfc", "/");
1496   - tempMap.put("wdfc1", "0分");
1497   - tempMap.put("wdfc2", "0分");
1498   -// tempMap.put("kbc", "0%");
1499   -// tempMap.put("mbc", "0%");
1500   - tempMap.put("pjys", "0分");
1501   - tempMap.put("pjtz", "0分");
1502   - }
1503   -// tempMap.put("kbc", kbc);
1504   -// tempMap.put("mbc", mbc);
1505   - if(!tempMap.get("jhfc").toString().equals("/") && !tempMap.get("sjfc").toString().equals("/")){
1506   - String[] temp1 = tempMap.get("jhfc").toString().split(":");
1507   - String[] temp2 = tempMap.get("sjfc").toString().split(":");
1508   - tempMap.put("wdfz", (Integer.valueOf(temp2[0])*60 + Integer.valueOf(temp2[1]))
1509   - - (Integer.valueOf(temp1[0])*60 + Integer.valueOf(temp1[1])));
1510   - }else{
1511   - tempMap.put("wdfz", "/");
1512   - }
1513   - tempMap.put("jhys", jhys);
1514   - tempMap.put("sjys", sjys);
1515   - tempMap.put("yssjMin", yssjMin);
1516   - tempMap.put("yssjMax", yssjMax);
1517   - tempMap.put("jhtz", jhtz);
1518   - tempMap.put("sjtz", sjtz);
1519   - tempMap.put("tzsjMax", tzsjMax);
1520   - tempMap.put("tzsjMin", tzsjMin);
1521   - list0.add(tempMap);
1522 1505 }
1523 1506  
1524   - Collections.sort(list0, new Comparator<Map<String, Object>>() {
1525   -
1526   - public int compare(Map<String, Object> o1, Map<String, Object> o2) {
1527   -
1528   - String[] split1 = o1.get("date").toString().split("-");
1529   - String[] split2 = o2.get("date").toString().split("-");
1530   - Long a = Long.valueOf(split1[0])*10000 + Long.valueOf(split1[1])*100 + Long.valueOf(split1[2]);
1531   - Long b = Long.valueOf(split2[0])*10000 + Long.valueOf(split2[1])*100 + Long.valueOf(split2[2]);
1532   -
1533   - // 升序
1534   - return a.compareTo(b);
1535   - }
1536   - });
1537 1507  
1538   - for(Map<String, Object> m : list0){
1539   - String key = m.get("line").toString() + "/" + m.get("lp").toString() + "/" + m.get("station").toString();
1540   - if(!keyMap0.containsKey(key))
1541   - keyMap0.put(key, new ArrayList<Map<String, Object>>());
1542   - keyMap0.get(key).add(m);
1543   - }
1544   - for(String key : keyMap0.keySet()){
1545   - Map<String, Object> tempMap = new HashMap<String, Object>();
1546   - int jhbc = 0;
1547   - int sjbc = 0;
1548   - int wddf1 = 0;
1549   - int wddf2 = 0;
1550   - int wdfc1 = 0;
1551   - int wdfc2 = 0;
1552   - int ys = 0;
1553   - int tz = 0;
1554   - String companyName = "", subCompanyName = "";
1555   - for(Map<String, Object> m : keyMap0.get(key)){
1556   - if(m.containsKey("company") && companyName.length() == 0)
1557   - companyName = m.get("company").toString();
1558   - if(m.containsKey("subCompany") && subCompanyName.length() == 0)
1559   - subCompanyName = m.get("subCompany").toString();
1560   - jhbc += Integer.valueOf(m.get("jhbc").toString());
1561   - sjbc += Integer.valueOf(m.get("sjbc").toString());
1562   - wddf1 += Integer.valueOf(m.get("wddf1").toString().substring(0, m.get("wddf1").toString().length() - 1));
1563   - wddf2 += Integer.valueOf(m.get("wddf2").toString().substring(0, m.get("wddf2").toString().length() - 1));
1564   - wdfc1 += Integer.valueOf(m.get("wdfc1").toString().substring(0, m.get("wdfc1").toString().length() - 1));
1565   - wdfc2 += Integer.valueOf(m.get("wdfc2").toString().substring(0, m.get("wdfc2").toString().length() - 1));
1566   - ys += Integer.valueOf(m.get("pjys").toString().substring(0, m.get("pjys").toString().length() - 1));
1567   - tz += Integer.valueOf(m.get("pjtz").toString().substring(0, m.get("pjtz").toString().length() - 1));
1568   - }
1569   - if(startDate.equals(endDate))
1570   - tempMap.put("dates", startDate);
1571   - else
1572   - tempMap.put("dates", startDate + "--" + endDate);
1573   - tempMap.put("company", companyName);
1574   - tempMap.put("subCompany", subCompanyName);
1575   - String[] keys = key.split("/");
1576   - tempMap.put("line", keys[0]);
1577   - tempMap.put("lp", keys[1]);
1578   - tempMap.put("station", keys[2]);
1579   - tempMap.put("times", times);
1580   - tempMap.put("jhbc", jhbc);
1581   - tempMap.put("sjbc", sjbc);
1582   - tempMap.put("wddf1", wddf1/keyMap0.get(key).size()+"分");
1583   - tempMap.put("wddf2", wddf2/keyMap0.get(key).size()+"分");
1584   - tempMap.put("wdfc1", wdfc1/keyMap0.get(key).size()+"分");
1585   - tempMap.put("wdfc2", wdfc2/keyMap0.get(key).size()+"分");
1586   - tempMap.put("pjys", ys/keyMap0.get(key).size()+"分");
1587   - tempMap.put("pjtz", tz/keyMap0.get(key).size()+"分");
1588   - tempMap.put("workList", keyMap0.get(key));
1589   -
1590   - String key1 = tempMap.get("line").toString();
1591   - if(!keyMap1.containsKey(key1))
1592   - keyMap1.put(key1, new ArrayList<Map<String, Object>>());
1593   - keyMap1.get(key1).add(tempMap);
1594   - }
1595 1508  
1596   - for(String key : keyMap1.keySet()){
1597   - Collections.sort(keyMap1.get(key), new Comparator<Map<String, Object>>() {
  1509 + if(keyMap0.keySet().size() > 0){
  1510 + Set<String> keySet = keyMap0.keySet();
  1511 + List<String> keyList = new ArrayList<String>();
  1512 + keyList.addAll(keySet);
  1513 + Collections.sort(keyList, new Comparator<String>() {
1598 1514  
1599   - public int compare(Map<String, Object> o1, Map<String, Object> o2) {
  1515 + public int compare(String o1, String o2) {
1600 1516 Long a;
1601 1517 Long b;
1602   - String lp1 = o1.get("lp").toString();
1603   - String lp2 = o2.get("lp").toString();
  1518 + o1 = o1.split("/")[0];
  1519 + o2 = o2.split("/")[0];
1604 1520 String str1 = "";
1605 1521 String str2 = "";
1606   - for(int i = 0; i < lp1.length(); i++){
1607   - str1 += (int)lp1.charAt(i);
  1522 + for(int i = 0; i < o1.length(); i++){
  1523 + str1 += (int)o1.charAt(i);
1608 1524 }
1609   - for(int i = 0; i < lp2.length(); i++){
1610   - str2 += (int)lp2.charAt(i);
  1525 + for(int i = 0; i < o2.length(); i++){
  1526 + str2 += (int)o2.charAt(i);
1611 1527 }
1612 1528  
1613 1529 a = Long.valueOf(str1);
1614 1530 b = Long.valueOf(str2);
1615   -
  1531 +
1616 1532 // 升序
1617 1533 return a.compareTo(b);
1618 1534 }
1619 1535 });
1620 1536  
1621   - resList.addAll(keyMap1.get(key));
  1537 + for(String key : keyList){
  1538 + List<Map<String, Object>> mapList = keyMap0.get(key);
  1539 + Map<String, Object> tempMap = new HashMap<String, Object>();
  1540 + int ddtq_ = 0, ddtqs = 0, ddyw_ = 0, ddyws = 0;
  1541 + int fctq_ = 0, fctqs = 0, fcyw_ = 0, fcyws = 0;
  1542 + int yssj_ = 0, yssjs = 0, tzsj_ = 0, tzsjs = 0;
  1543 + for(Map<String, Object> m : mapList){
  1544 + int ddwd = Integer.valueOf(m.get("ddwd").toString());
  1545 + if(ddwd < 0){
  1546 + ddtq_ += 0 - ddwd;
  1547 + ++ddtqs;
  1548 + } else if(ddwd > 0){
  1549 + ddyw_ += ddwd;
  1550 + ++ddyws;
  1551 + }
  1552 + int fcwd = Integer.valueOf(m.get("fcwd").toString());
  1553 + if(fcwd < 0){
  1554 + fctq_ += 0 - fcwd;
  1555 + ++fctqs;
  1556 + } else if(fcwd > 0){
  1557 + fcyw_ += fcwd;
  1558 + ++fcyws;
  1559 + }
  1560 + int sjys = Integer.valueOf(m.get("sjys").toString());
  1561 + yssj_ += sjys;
  1562 + ++yssjs;
  1563 + int sjtz = Integer.valueOf(m.get("sjtz").toString());
  1564 + tzsj_ += sjtz;
  1565 + ++tzsjs;
  1566 + }
  1567 + tempMap.put("ddwd1", (ddtqs!=0?ddtq_/ddtqs:0) + "分");
  1568 + tempMap.put("ddwd2", (ddyws!=0?ddyw_/ddyws:0) + "分");
  1569 + tempMap.put("wdfc1", (fctqs!=0?fctq_/fctqs:0) + "分");
  1570 + tempMap.put("wdfc2", (fcyws!=0?fcyw_/fcyws:0) + "分");
  1571 + tempMap.put("pjys", (yssjs!=0?yssj_/yssjs:0) + "分");
  1572 + tempMap.put("pjtz", (tzsjs!=0?tzsj_/tzsjs:0) + "分");
  1573 +
  1574 + Map<String, Object> m = mapList.get(0);
  1575 + tempMap.put("dates", date);
  1576 + tempMap.put("times", times);
  1577 + tempMap.put("line", m.get("line"));
  1578 + tempMap.put("lp", m.get("lp"));
  1579 + tempMap.put("station", m.get("station"));
  1580 + tempMap.put("bcs", mapList.size());
  1581 + tempMap.put("workList", mapList);
  1582 + if(qdzName != null && qdzName.trim().length() != 0){
  1583 + if(!tempMap.get("station").equals(qdzName)){
  1584 + continue;
  1585 + }
  1586 + }
  1587 + resList.add(tempMap);
  1588 + }
1622 1589 }
1623   -
1624   -
1625 1590 return resList;
1626 1591 }
1627 1592  
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -2711,6 +2711,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2711 2711 List<ScheduleRealInfo> listInfo = scheduleRealInfoRepository.scheduleByDateAndLineQp(line, date);
2712 2712 for (int i = 0; i < listInfo.size(); i++) {
2713 2713 ScheduleRealInfo t = listInfo.get(i);
  2714 + if(t.getLpName().equals("古4"))
  2715 + System.out.println();
2714 2716 if (!lpName.equals(t.getLpName())) {
2715 2717 zdsjActual = t.getZdsjActual();
2716 2718 zdsj = t.getZdsj();
... ...
src/main/java/com/bsth/service/schedule/impl/TTInfoDetailServiceImpl.java
... ... @@ -192,7 +192,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
192 192 (!"进场".equals(cell_con.trim()))) {
193 193 Map<String, Object> p1 = new HashMap<>();
194 194 p1.put("line.id_eq", lineid);
195   - p1.put("stationName_eq", cell_con.trim());
  195 + p1.put("stationName_like", cell_con.trim() + "%"); // 使用模糊匹配
196 196 p1.put("stationMark_eq", "B");
197 197 p1.put("destroy_eq", 0); // 未撤销
198 198  
... ...
src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr
... ... @@ -828,7 +828,7 @@
828 828 <optimizationLevel>9</optimizationLevel>
829 829 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
830 830 <jsScript_name>Script 1</jsScript_name>
831   - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x53bb;&#x9664;&#x7ad9;&#x70b9;&#x540d;&#x79f0;&#x53f3;&#x4fa7;&#x591a;&#x4f59;&#x7684;&#x6570;&#x5b57;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;&#x28;&#x5c;d&#x2b;&#x24;&#x29;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xff0c;hhmm&#xff0c;hh&#x3a;mm&#xff0c;hh,mm&#xa;var sendtime_calcu&#x3b;&#xa;if &#x28;sendtime.length &#x3d;&#x3d; 5&#x29; &#x7b; &#x2f;&#x2f; &#x6700;&#x957f;&#x683c;&#x5f0f;&#xff0c;&#x5305;&#x62ec;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x7edf;&#x4e00;&#x628a;&#x5206;&#x9694;&#x7b26;&#x66ff;&#x6362;&#x6210;&#x5192;&#x53f7;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;3, 2&#x29;&#x3b;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 4&#x29; &#x7b;&#xa; if &#x28;sendtime.indexOf&#x28;&#x22;&#x3a;&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x5192;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x65e0;&#x9700;&#x4fee;&#x6539;&#xa; sendtime_calcu &#x3d; sendtime&#x3b;&#xa; &#x7d; else if &#x28;sendtime.indexOf&#x28;&#x22;,&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d; else &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 3&#x29; &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;1, 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5168;&#x90e8;&#x4fee;&#x6b63;&#x5b8c;&#x6bd5;&#x540e;&#xff0c;&#x5982;&#x679c;&#x957f;&#x5ea6;&#x4e0d;&#x662f;5&#xff0c;&#x524d;&#x9762;&#x8865;0&#xa;if &#x28;sendtime_calcu.length &#x21;&#x3d; 5&#x29; &#x7b;&#xa; sendtime_calcu &#x3d; &#x22;0&#x22; &#x2b; sendtime_calcu&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x505c;&#x9a76;&#xa;var ists &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script>
  831 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x53bb;&#x9664;&#x7ad9;&#x70b9;&#x540d;&#x79f0;&#x53f3;&#x4fa7;&#x591a;&#x4f59;&#x7684;&#x6570;&#x5b57;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;&#x28;&#x5c;d&#x2b;&#x24;&#x29;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;if &#x28;qdzname &#x21;&#x3d; &#x22;&#x51fa;&#x573a;&#x22; &#x26;&#x26; qdzname &#x21;&#x3d; &#x22;&#x8fdb;&#x573a;&#x22;&#x29; &#x7b;&#xa; qdzname &#x3d; qdzname &#x2b; &#x22;&#x25;&#x22;&#x3b; &#x2f;&#x2f; &#x6a21;&#x7cca;&#x5339;&#x914d;&#x6807;&#x8bc6;&#x7b26;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xff0c;hhmm&#xff0c;hh&#x3a;mm&#xff0c;hh,mm&#xa;var sendtime_calcu&#x3b;&#xa;if &#x28;sendtime.length &#x3d;&#x3d; 5&#x29; &#x7b; &#x2f;&#x2f; &#x6700;&#x957f;&#x683c;&#x5f0f;&#xff0c;&#x5305;&#x62ec;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x7edf;&#x4e00;&#x628a;&#x5206;&#x9694;&#x7b26;&#x66ff;&#x6362;&#x6210;&#x5192;&#x53f7;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;3, 2&#x29;&#x3b;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 4&#x29; &#x7b;&#xa; if &#x28;sendtime.indexOf&#x28;&#x22;&#x3a;&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x5192;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x65e0;&#x9700;&#x4fee;&#x6539;&#xa; sendtime_calcu &#x3d; sendtime&#x3b;&#xa; &#x7d; else if &#x28;sendtime.indexOf&#x28;&#x22;,&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d; else &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 3&#x29; &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;1, 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5168;&#x90e8;&#x4fee;&#x6b63;&#x5b8c;&#x6bd5;&#x540e;&#xff0c;&#x5982;&#x679c;&#x957f;&#x5ea6;&#x4e0d;&#x662f;5&#xff0c;&#x524d;&#x9762;&#x8865;0&#xa;if &#x28;sendtime_calcu.length &#x21;&#x3d; 5&#x29; &#x7b;&#xa; sendtime_calcu &#x3d; &#x22;0&#x22; &#x2b; sendtime_calcu&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x505c;&#x9a76;&#xa;var ists &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script>
832 832 </jsScript> </jsScripts> <fields> <field> <name>qdzname</name>
833 833 <rename>qdzname</rename>
834 834 <type>String</type>
... ... @@ -1076,7 +1076,7 @@
1076 1076 </value>
1077 1077 <value>
1078 1078 <name>qdz_name</name>
1079   - <rename>qdzname</rename>
  1079 + <rename>qdzname_</rename>
1080 1080 <update>Y</update>
1081 1081 </value>
1082 1082 <value>
... ... @@ -1232,7 +1232,7 @@
1232 1232 </value>
1233 1233 <value>
1234 1234 <name>zdz_name</name>
1235   - <rename>zdzname</rename>
  1235 + <rename>zdzname_</rename>
1236 1236 <update>Y</update>
1237 1237 </value>
1238 1238 <value>
... ... @@ -1601,7 +1601,7 @@
1601 1601 <key>
1602 1602 <name>zdzname</name>
1603 1603 <field>station_name</field>
1604   - <condition>&#x3d;</condition>
  1604 + <condition>LIKE</condition>
1605 1605 <name2/>
1606 1606 </key>
1607 1607 <key>
... ... @@ -1634,6 +1634,12 @@
1634 1634 <default/>
1635 1635 <type>String</type>
1636 1636 </value>
  1637 + <value>
  1638 + <name>station_name</name>
  1639 + <rename>zdzname_</rename>
  1640 + <default/>
  1641 + <type>String</type>
  1642 + </value>
1637 1643 </lookup>
1638 1644 <cluster_schema/>
1639 1645 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
... ... @@ -2075,7 +2081,7 @@
2075 2081 <key>
2076 2082 <name>qdzname</name>
2077 2083 <field>station_name</field>
2078   - <condition>&#x3d;</condition>
  2084 + <condition>LIKE</condition>
2079 2085 <name2/>
2080 2086 </key>
2081 2087 <key>
... ... @@ -2108,6 +2114,12 @@
2108 2114 <default/>
2109 2115 <type>String</type>
2110 2116 </value>
  2117 + <value>
  2118 + <name>station_name</name>
  2119 + <rename>qdzname_</rename>
  2120 + <default/>
  2121 + <type>String</type>
  2122 + </value>
2111 2123 </lookup>
2112 2124 <cluster_schema/>
2113 2125 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
... ... @@ -2207,7 +2219,7 @@
2207 2219 <key>
2208 2220 <name>qdzname_calcu</name>
2209 2221 <field>station_name</field>
2210   - <condition>&#x3d;</condition>
  2222 + <condition>LIKE</condition>
2211 2223 <name2/>
2212 2224 </key>
2213 2225 <key>
... ...
src/main/resources/datatools/ktrs/ttinfodetailDataInput2.ktr
... ... @@ -828,7 +828,7 @@
828 828 <optimizationLevel>9</optimizationLevel>
829 829 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
830 830 <jsScript_name>Script 1</jsScript_name>
831   - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x53bb;&#x9664;&#x7ad9;&#x70b9;&#x540d;&#x79f0;&#x53f3;&#x4fa7;&#x591a;&#x4f59;&#x7684;&#x6570;&#x5b57;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;&#x28;&#x5c;d&#x2b;&#x24;&#x29;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xff0c;hhmm&#xff0c;hh&#x3a;mm&#xff0c;hh,mm&#xa;var sendtime_calcu&#x3b;&#xa;if &#x28;sendtime.length &#x3d;&#x3d; 5&#x29; &#x7b; &#x2f;&#x2f; &#x6700;&#x957f;&#x683c;&#x5f0f;&#xff0c;&#x5305;&#x62ec;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x7edf;&#x4e00;&#x628a;&#x5206;&#x9694;&#x7b26;&#x66ff;&#x6362;&#x6210;&#x5192;&#x53f7;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;3, 2&#x29;&#x3b;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 4&#x29; &#x7b;&#xa; if &#x28;sendtime.indexOf&#x28;&#x22;&#x3a;&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x5192;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x65e0;&#x9700;&#x4fee;&#x6539;&#xa; sendtime_calcu &#x3d; sendtime&#x3b;&#xa; &#x7d; else if &#x28;sendtime.indexOf&#x28;&#x22;,&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d; else &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 3&#x29; &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;1, 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5168;&#x90e8;&#x4fee;&#x6b63;&#x5b8c;&#x6bd5;&#x540e;&#xff0c;&#x5982;&#x679c;&#x957f;&#x5ea6;&#x4e0d;&#x662f;5&#xff0c;&#x524d;&#x9762;&#x8865;0&#xa;if &#x28;sendtime_calcu.length &#x21;&#x3d; 5&#x29; &#x7b;&#xa; sendtime_calcu &#x3d; &#x22;0&#x22; &#x2b; sendtime_calcu&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x505c;&#x9a76;&#xa;var ists &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script>
  831 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x53bb;&#x9664;&#x7ad9;&#x70b9;&#x540d;&#x79f0;&#x53f3;&#x4fa7;&#x591a;&#x4f59;&#x7684;&#x6570;&#x5b57;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;&#x28;&#x5c;d&#x2b;&#x24;&#x29;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;if &#x28;qdzname &#x21;&#x3d; &#x22;&#x51fa;&#x573a;&#x22; &#x26;&#x26; qdzname &#x21;&#x3d; &#x22;&#x8fdb;&#x573a;&#x22;&#x29; &#x7b;&#xa; qdzname &#x3d; qdzname &#x2b; &#x22;&#x25;&#x22;&#x3b; &#x2f;&#x2f; &#x6a21;&#x7cca;&#x5339;&#x914d;&#x6807;&#x8bc6;&#x7b26;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xff0c;hhmm&#xff0c;hh&#x3a;mm&#xff0c;hh,mm&#xa;var sendtime_calcu&#x3b;&#xa;if &#x28;sendtime.length &#x3d;&#x3d; 5&#x29; &#x7b; &#x2f;&#x2f; &#x6700;&#x957f;&#x683c;&#x5f0f;&#xff0c;&#x5305;&#x62ec;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x7edf;&#x4e00;&#x628a;&#x5206;&#x9694;&#x7b26;&#x66ff;&#x6362;&#x6210;&#x5192;&#x53f7;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;3, 2&#x29;&#x3b;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 4&#x29; &#x7b;&#xa; if &#x28;sendtime.indexOf&#x28;&#x22;&#x3a;&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x5192;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x65e0;&#x9700;&#x4fee;&#x6539;&#xa; sendtime_calcu &#x3d; sendtime&#x3b;&#xa; &#x7d; else if &#x28;sendtime.indexOf&#x28;&#x22;,&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d; else &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 3&#x29; &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;1, 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5168;&#x90e8;&#x4fee;&#x6b63;&#x5b8c;&#x6bd5;&#x540e;&#xff0c;&#x5982;&#x679c;&#x957f;&#x5ea6;&#x4e0d;&#x662f;5&#xff0c;&#x524d;&#x9762;&#x8865;0&#xa;if &#x28;sendtime_calcu.length &#x21;&#x3d; 5&#x29; &#x7b;&#xa; sendtime_calcu &#x3d; &#x22;0&#x22; &#x2b; sendtime_calcu&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x505c;&#x9a76;&#xa;var ists &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script>
832 832 </jsScript> </jsScripts> <fields> <field> <name>qdzname</name>
833 833 <rename>qdzname</rename>
834 834 <type>String</type>
... ... @@ -1076,7 +1076,7 @@
1076 1076 </value>
1077 1077 <value>
1078 1078 <name>qdz_name</name>
1079   - <rename>qdzname</rename>
  1079 + <rename>qdzname_</rename>
1080 1080 <update>Y</update>
1081 1081 </value>
1082 1082 <value>
... ... @@ -1232,7 +1232,7 @@
1232 1232 </value>
1233 1233 <value>
1234 1234 <name>zdz_name</name>
1235   - <rename>zdzname</rename>
  1235 + <rename>zdzname_</rename>
1236 1236 <update>Y</update>
1237 1237 </value>
1238 1238 <value>
... ... @@ -1601,7 +1601,7 @@
1601 1601 <key>
1602 1602 <name>zdzname</name>
1603 1603 <field>station_name</field>
1604   - <condition>&#x3d;</condition>
  1604 + <condition>LIKE</condition>
1605 1605 <name2/>
1606 1606 </key>
1607 1607 <key>
... ... @@ -1634,6 +1634,12 @@
1634 1634 <default/>
1635 1635 <type>String</type>
1636 1636 </value>
  1637 + <value>
  1638 + <name>station_name</name>
  1639 + <rename>zdzname_</rename>
  1640 + <default/>
  1641 + <type>String</type>
  1642 + </value>
1637 1643 </lookup>
1638 1644 <cluster_schema/>
1639 1645 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
... ... @@ -2075,7 +2081,7 @@
2075 2081 <key>
2076 2082 <name>qdzname</name>
2077 2083 <field>station_name</field>
2078   - <condition>&#x3d;</condition>
  2084 + <condition>LIKE</condition>
2079 2085 <name2/>
2080 2086 </key>
2081 2087 <key>
... ... @@ -2108,6 +2114,12 @@
2108 2114 <default/>
2109 2115 <type>String</type>
2110 2116 </value>
  2117 + <value>
  2118 + <name>station_name</name>
  2119 + <rename>qdzname_</rename>
  2120 + <default/>
  2121 + <type>String</type>
  2122 + </value>
2111 2123 </lookup>
2112 2124 <cluster_schema/>
2113 2125 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
... ... @@ -2207,7 +2219,7 @@
2207 2219 <key>
2208 2220 <name>qdzname_calcu</name>
2209 2221 <field>station_name</field>
2210   - <condition>&#x3d;</condition>
  2222 + <condition>LIKE</condition>
2211 2223 <name2/>
2212 2224 </key>
2213 2225 <key>
... ...
src/main/resources/static/pages/base/timesmodel/add.html
1   -<style>
2   -.form-control:focus {
3   - border-color: #53ced9;
4   -}
5   -.tagsDiv {
6   - border: 1px solid #c2cad8;
7   - margin-left: 15px;
8   - padding: 4px 15px 4px 15px;
9   - width: 50%;
10   -}
  1 +<style>
  2 +.form-control:focus {
  3 + border-color: #53ced9;
  4 +}
  5 +.tagsDiv {
  6 + border: 1px solid #c2cad8;
  7 + margin-left: 15px;
  8 + padding: 4px 15px 4px 15px;
  9 + width: 50%;
  10 +}
11 11 </style>
12 12 <!-- 片段标题 START -->
13 13 <div class="page-head">
... ... @@ -20,6 +20,10 @@
20 20 <ul class="page-breadcrumb breadcrumb">
21 21 <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li>
22 22 <li><span class="active">运营计划管理</span> <i class="fa fa-circle"></i></li>
  23 + <li>
  24 + <a href="/#/ttInfoManage">时刻表管理</a>
  25 + <i class="fa fa-circle"></i>
  26 + </li>
23 27 <li><span class="active">时刻表明细制作建模</span></li>
24 28 </ul>
25 29 <!-- 线路信息导航栏组件 END -->
... ... @@ -32,9 +36,9 @@
32 36 </span>
33 37 </div>
34 38  
35   - <div class="actions">
36   - <div class="btn-group btn-group-devided" data-toggle="buttons">
37   - <a class="btn btn-circle blue openHaveSkb" href="javascript:;" data-pjax><i class="fa fa-check"></i> 打开现有时刻表明细</a>
  39 + <div class="actions">
  40 + <div class="btn-group btn-group-devided" data-toggle="buttons">
  41 + <a class="btn btn-circle blue openHaveSkb" href="javascript:;" data-pjax><i class="fa fa-check"></i> 打开现有时刻表明细</a>
38 42 </div>
39 43 <div class="btn-group btn-group-devided" data-toggle="buttons">
40 44 <a class="btn btn-circle default" href="/pages/base/timesmodel/index.html" style="float: right;padding: 4px 23px;" data-pjax=""><i class="fa fa-reply"></i> 退出</a>
... ... @@ -172,7 +176,7 @@
172 176 </form>
173 177 <!-- END FORM-->
174 178 </div>
175   -</div>
  179 +</div>
176 180 <script src="/pages/base/timesmodel/js/add-form-wizard.js"></script>
177   -<script src="/pages/base/timesmodel/js/add-form-reload.js"></script>
  181 +<script src="/pages/base/timesmodel/js/add-form-reload.js"></script>
178 182 <script src="/pages/base/timesmodel/js/tagsinput.js"></script>
179 183 \ No newline at end of file
... ...
src/main/resources/static/pages/base/timesmodel/gantt.html
... ... @@ -13,6 +13,10 @@
13 13 <ul class="page-breadcrumb breadcrumb">
14 14 <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li>
15 15 <li><span class="active">运营计划管理</span> <i class="fa fa-circle"></i></li>
  16 + <li>
  17 + <a href="/#/ttInfoManage">时刻表管理</a>
  18 + <i class="fa fa-circle"></i>
  19 + </li>
16 20 <li><span class="active">时刻表明细模型</span></li>
17 21 </ul>
18 22 <!-- 线路信息导航栏组件 END -->
... ...
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
... ... @@ -824,10 +824,12 @@ var BaseFun = function() {
824 824 var tempA = baseF.abstractCar(list , markArray , cara , saa , dataMap , map);
825 825 // return {'json':tempA,'bxrcgs':null};
826 826 // 第七步 确定吃饭时间.
827   - baseF.markeEatTime(list , tempA , cara , saa , dataMap ,map);
  827 + if (map.cfdd) { // NEW,没有选择吃饭地点,不设定吃饭班次
  828 + baseF.markeEatTime(list , tempA , cara , saa , dataMap ,map);
  829 + }
828 830 baseF.resizeByPitStopTime(cara , tempA , dataMap);
829 831 baseF.updfcno01(tempA,0);
830   - // return {'json':tempA,'bxrcgs':null};
  832 + //return {'json':tempA,'bxrcgs':null};
831 833 // 确定进出场、早晚例保时间.并返回班次数组集合
832 834 return {'json':baseF.addInOutFieldBc(cara,tempA,dataMap,saa,map),'bxrcgs':null};
833 835 },
... ... @@ -862,22 +864,25 @@ var BaseFun = function() {
862 864 var canCf = new Array(), countTzsj = 0, isLast = new Array();
863 865 for(var b = 0 ; b<bcArray.length;b++) {
864 866 var bcddsj = baseF.getDateTime(bcArray[b].ARRIVALTIME);
865   - if(bcddsj<=jssj) {
  867 + //if(bcddsj<=jssj) {
  868 + // countTzsj += bcArray[b].STOPTIME;
  869 + // canCf.push(bcArray[b]);
  870 + //}
  871 + if(bcddsj>= kssj && bcddsj<=jssj) { // NEW,使用开始时间,结束时间限定可以吃饭的班次
866 872 countTzsj += bcArray[b].STOPTIME;
867 873 canCf.push(bcArray[b]);
868 874 }
869   - /*if(bcddsj>= kssj && bcddsj<=jssj) {
870   - countTzsj += bcArray[b].STOPTIME;
871   - canCf.push(bcArray[b]);
872   - }
873   - if(bcddsj < kssj)
874   - isLast.push(bcArray[b]);*/
  875 + //if(bcddsj < kssj)
  876 + // isLast.push(bcArray[b]);
875 877 }
876 878 if(canCf.length>0) {
877 879 console.log('countTzsj:' + countTzsj + 'length:' + canCf.length);
878 880 var fxDm = baseF.dirDmToIndex(canCf[canCf.length-1].xlDir);
  881 + if (map.cfdd == "allYes") { // NEW,如果选择的吃饭地点是所有,则使用班次的方向作为吃饭班次的方向
  882 + cfddDm = fxDm;
  883 + }
879 884 // console.log(countTzsj , canCf[canCf.length-1].fcsj);
880   - if(cfddDm == fxDm && canCf.length>2) {
  885 + if(canCf.length>2) {
881 886 var tzdx = canCf[canCf.length-2].STOPTIME - dataMap.zwcArr[cfIndex];
882 887 canCf[canCf.length-2].STOPTIME = tzdx >= 0 ? tzdx : 0;
883 888 var obj = baseF.getbcObj(
... ...
src/main/resources/static/pages/forms/statement/lineTimeAnaly.html
... ... @@ -87,14 +87,15 @@
87 87 <table class="table table-bordered table-hover table-checkable" id="forms">
88 88 <thead>
89 89 <tr class="hidden">
90   - <th >公司</th>
  90 +<!-- <th >公司</th> -->
91 91 <th width="30%">日期分段</th>
92   - <th >时段</th>
  92 + <th>时段</th>
93 93 <th width="20%">线路</th>
94   - <th >路牌</th>
  94 + <th>路牌</th>
95 95 <th width="20%">站点</th>
96   - <th >计划发车班次数</th>
97   - <th>实际完成班次数</th>
  96 + <th>班次数</th>
  97 +<!-- <th>计划发车班次数</th> -->
  98 +<!-- <th>实际完成班次数</th> -->
98 99 </tr>
99 100 </thead>
100 101 <tbody>
... ... @@ -120,10 +121,11 @@
120 121 <tr class="hidden">
121 122 <th rowspan="2">日期</th>
122 123 <th colspan="4">到达时间</th>
  124 + <th rowspan="2">误点分钟</th>
123 125 <th colspan="4">发车时间</th>
124 126 <th rowspan="2">误点分钟</th>
125   - <th colspan="5">运送时间</th>
126   - <th colspan="5">停站时间</th>
  127 + <th colspan="3">运送时间</th>
  128 + <th colspan="3">停站时间</th>
127 129 </tr>
128 130 <tr class="hidden">
129 131 <th>计划</th>
... ... @@ -136,13 +138,13 @@
136 138 <th>平均延误</th>
137 139 <th>计划</th>
138 140 <th>实际</th>
139   - <th>最快</th>
140   - <th>最慢</th>
  141 +<!-- <th>最快</th> -->
  142 +<!-- <th>最慢</th> -->
141 143 <th>平均</th>
142 144 <th>计划</th>
143 145 <th>实际</th>
144   - <th>最大</th>
145   - <th>最小</th>
  146 +<!-- <th>最大</th> -->
  147 +<!-- <th>最小</th> -->
146 148 <th>平均</th>
147 149 </tr>
148 150 </thead>
... ... @@ -406,7 +408,7 @@
406 408 }
407 409 });
408 410 $.each(list, function(i, g){
409   - if(g.line == params[3] && g.lp == params[4] &&g.station == params[5]){
  411 + if(g.line == params[2] && g.lp == params[3] &&g.station == params[4]){
410 412 var tbodyHtml = template('list_workList',{list:g});
411 413 $('#works tbody').html(tbodyHtml);
412 414 $("#works_hidden").removeClass("hidden");
... ... @@ -483,14 +485,12 @@
483 485 <script type="text/html" id="list_lineTimeAnaly">
484 486 {{each list as obj i}}
485 487 <tr>
486   - <td>{{obj.company}}</td>
487 488 <td>{{obj.dates}}</td>
488 489 <td>{{obj.times}}</td>
489 490 <td>{{obj.line}}</td>
490 491 <td>{{obj.lp}}</td>
491 492 <td>{{obj.station}}</td>
492   - <td>{{obj.jhbc}}</td>
493   - <td>{{obj.sjbc}}</td>
  493 + <td>{{obj.bcs}}</td>
494 494 </tr>
495 495 {{/each}}
496 496 {{if list.length == 0}}
... ... @@ -503,30 +503,27 @@
503 503 {{each list.workList as obj i}}
504 504 <tr>
505 505 <td>{{obj.date}}</td>
506   - <td>{{obj.jhdf}}</td>
507   - <td>{{obj.sjdf}}</td>
  506 + <td>{{obj.jhdd}}</td>
  507 + <td>{{obj.sjdd}}</td>
508 508 {{if i == 0}}
509   - <td rowspan="{{list.workList.length}}" class="merge">{{list.wddf1}}</td>
510   - <td rowspan="{{list.workList.length}}" class="merge">{{list.wddf2}}</td>
  509 + <td rowspan="{{list.workList.length}}" class="merge">{{list.ddwd1}}</td>
  510 + <td rowspan="{{list.workList.length}}" class="merge">{{list.ddwd2}}</td>
511 511 {{/if}}
  512 + <td class="merge">{{obj.ddwd}}</td>
512 513 <td>{{obj.jhfc}}</td>
513 514 <td>{{obj.sjfc}}</td>
514 515 {{if i == 0}}
515 516 <td rowspan="{{list.workList.length}}" class="merge">{{list.wdfc1}}</td>
516 517 <td rowspan="{{list.workList.length}}" class="merge">{{list.wdfc2}}</td>
517 518 {{/if}}
518   - <td class="merge">{{obj.wdfz}}</td>
  519 + <td class="merge">{{obj.fcwd}}</td>
519 520 <td>{{obj.jhys}}</td>
520 521 <td>{{obj.sjys}}</td>
521   - <td>{{obj.yssjMin}}</td>
522   - <td>{{obj.yssjMax}}</td>
523 522 {{if i == 0}}
524 523 <td rowspan="{{list.workList.length}}" class="merge">{{list.pjys}}</td>
525 524 {{/if}}
526 525 <td>{{obj.jhtz}}</td>
527 526 <td>{{obj.sjtz}}</td>
528   - <td>{{obj.tzsjMax}}</td>
529   - <td>{{obj.tzsjMin}}</td>
530 527 {{if i == 0}}
531 528 <td rowspan="{{list.workList.length}}" class="merge">{{list.pjtz}}</td>
532 529 {{/if}}
... ...
src/main/resources/static/real_control_v2/css/line_schedule.css
... ... @@ -44,6 +44,7 @@
44 44  
45 45 .line_schedule .ct_table {
46 46 padding-top: 36px;
  47 + color: #000;
47 48 }
48 49  
49 50 .line_schedule .ct_table>.ct_table_head {
... ...
src/main/resources/static/real_control_v2/css/north.css
... ... @@ -358,7 +358,7 @@
358 358  
359 359 .op-beijingtime-time{
360 360 padding-left: 0px;
361   - width: 107px;
  361 + width: 109px;
362 362 }
363 363  
364 364 .op-beijingtime-time>span{
... ...