Commit 60d9da6bada4ceae9e34e8100e30f4d42997970b
Merge branch 'minhang' of 192.168.168.201:panzhaov5/bsth_control into
minhang
Showing
72 changed files
with
1374 additions
and
796 deletions
src/main/java/com/bsth/controller/realcontrol/RealChartsController.java
| @@ -3,6 +3,7 @@ package com.bsth.controller.realcontrol; | @@ -3,6 +3,7 @@ package com.bsth.controller.realcontrol; | ||
| 3 | import com.bsth.service.realcontrol.RealChartsService; | 3 | import com.bsth.service.realcontrol.RealChartsService; |
| 4 | import com.bsth.service.realcontrol.dto.CarOutRate; | 4 | import com.bsth.service.realcontrol.dto.CarOutRate; |
| 5 | import com.bsth.service.realcontrol.dto.DeviceOnlineRate; | 5 | import com.bsth.service.realcontrol.dto.DeviceOnlineRate; |
| 6 | +import com.bsth.service.realcontrol.dto.ScheduleExecRate; | ||
| 6 | import com.bsth.service.realcontrol.dto.StratEndPunctualityRate; | 7 | import com.bsth.service.realcontrol.dto.StratEndPunctualityRate; |
| 7 | import org.springframework.beans.factory.annotation.Autowired; | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| 8 | import org.springframework.web.bind.annotation.RequestMapping; | 9 | import org.springframework.web.bind.annotation.RequestMapping; |
| @@ -32,13 +33,18 @@ public class RealChartsController { | @@ -32,13 +33,18 @@ public class RealChartsController { | ||
| 32 | return realChartsService.carOutRate(month, idx); | 33 | return realChartsService.carOutRate(month, idx); |
| 33 | } | 34 | } |
| 34 | 35 | ||
| 35 | - @RequestMapping("stratEndPunctualityRate") | 36 | +/* @RequestMapping("stratEndPunctualityRate") |
| 36 | public List<StratEndPunctualityRate> stratEndPunctualityRate(@RequestParam String idx, @RequestParam String month){ | 37 | public List<StratEndPunctualityRate> stratEndPunctualityRate(@RequestParam String idx, @RequestParam String month){ |
| 37 | return realChartsService.stratEndPunctualityRate(month, idx); | 38 | return realChartsService.stratEndPunctualityRate(month, idx); |
| 38 | - } | 39 | + }*/ |
| 39 | 40 | ||
| 40 | @RequestMapping("sePunctualityRateLine") | 41 | @RequestMapping("sePunctualityRateLine") |
| 41 | public List<StratEndPunctualityRate> sePunctualityRateLine(@RequestParam String idx, @RequestParam String month){ | 42 | public List<StratEndPunctualityRate> sePunctualityRateLine(@RequestParam String idx, @RequestParam String month){ |
| 42 | return realChartsService.sePunctualityRateLine(month, idx); | 43 | return realChartsService.sePunctualityRateLine(month, idx); |
| 43 | } | 44 | } |
| 45 | + | ||
| 46 | + @RequestMapping("scheduleExecRates") | ||
| 47 | + public List<ScheduleExecRate> scheduleExecRates(@RequestParam String idx, @RequestParam String date){ | ||
| 48 | + return realChartsService.scheduleExecRates(date, idx); | ||
| 49 | + } | ||
| 44 | } | 50 | } |
src/main/java/com/bsth/controller/schedule/TTInfoDetailController.java
| @@ -116,6 +116,7 @@ public class TTInfoDetailController extends BaseController<TTInfoDetail, Long> { | @@ -116,6 +116,7 @@ public class TTInfoDetailController extends BaseController<TTInfoDetail, Long> { | ||
| 116 | if (sheet.getRows() == 0 || sheet.getColumns() == 0) { // 工作区是否为空 | 116 | if (sheet.getRows() == 0 || sheet.getColumns() == 0) { // 工作区是否为空 |
| 117 | rtn.put("status", ResponseCode.ERROR); | 117 | rtn.put("status", ResponseCode.ERROR); |
| 118 | rtn.put("msg", String.format("%s 工作区没有数据!", sheetname)); | 118 | rtn.put("msg", String.format("%s 工作区没有数据!", sheetname)); |
| 119 | + return rtn; | ||
| 119 | } else { | 120 | } else { |
| 120 | if (sheet.getRows() <= 1 || sheet.getColumns() <= 1) { | 121 | if (sheet.getRows() <= 1 || sheet.getColumns() <= 1) { |
| 121 | rtn.put("status", ResponseCode.ERROR); | 122 | rtn.put("status", ResponseCode.ERROR); |
| @@ -147,11 +148,11 @@ public class TTInfoDetailController extends BaseController<TTInfoDetail, Long> { | @@ -147,11 +148,11 @@ public class TTInfoDetailController extends BaseController<TTInfoDetail, Long> { | ||
| 147 | List<StationRoute> stationRouteList = (List<StationRoute>) stationRouteService.list(p1); | 148 | List<StationRoute> stationRouteList = (List<StationRoute>) stationRouteService.list(p1); |
| 148 | if (CollectionUtils.isEmpty(stationRouteList)) { | 149 | if (CollectionUtils.isEmpty(stationRouteList)) { |
| 149 | rtn.put("status", ResponseCode.ERROR); | 150 | rtn.put("status", ResponseCode.ERROR); |
| 150 | - rtn.put("msg", String.format("第1行,第%d列数据在%s站点路由中不是起点站", i + 1, linename)); | 151 | + rtn.put("msg", String.format("第1行,第%d列数据%s在%s站点路由中不是起点站", i + 1, cell_con.trim(), linename)); |
| 151 | return rtn; | 152 | return rtn; |
| 152 | } else if (stationRouteList.size() > 1) { | 153 | } else if (stationRouteList.size() > 1) { |
| 153 | rtn.put("status", ResponseCode.ERROR); | 154 | rtn.put("status", ResponseCode.ERROR); |
| 154 | - rtn.put("msg", String.format("第1行,第%d列数据在%s站点路由中上下行都是起点站", i + 1, linename)); | 155 | + rtn.put("msg", String.format("第1行,第%d列数据%s在%s站点路由中上下行都是起点站", i + 1, cell_con.trim(), linename)); |
| 155 | return rtn; | 156 | return rtn; |
| 156 | } | 157 | } |
| 157 | } | 158 | } |
| @@ -363,6 +364,7 @@ public class TTInfoDetailController extends BaseController<TTInfoDetail, Long> { | @@ -363,6 +364,7 @@ public class TTInfoDetailController extends BaseController<TTInfoDetail, Long> { | ||
| 363 | 364 | ||
| 364 | ttInfoDetailService.fileDataImport( | 365 | ttInfoDetailService.fileDataImport( |
| 365 | new File(filename + "_temp.xls"), | 366 | new File(filename + "_temp.xls"), |
| 367 | + (String) form.get("sheetname"), | ||
| 366 | (String) form.get("xlname"), | 368 | (String) form.get("xlname"), |
| 367 | (String) form.get("ttname"), | 369 | (String) form.get("ttname"), |
| 368 | tccname | 370 | tccname |
src/main/java/com/bsth/data/arrival/ArrivalData_GPS.java
| @@ -50,8 +50,8 @@ public class ArrivalData_GPS implements CommandLineRunner{ | @@ -50,8 +50,8 @@ public class ArrivalData_GPS implements CommandLineRunner{ | ||
| 50 | 50 | ||
| 51 | @Override | 51 | @Override |
| 52 | public void run(String... arg0) throws Exception { | 52 | public void run(String... arg0) throws Exception { |
| 53 | - logger.info("ArrivalData_GPS,50,10 @11-11"); | ||
| 54 | - //Application.mainServices.scheduleWithFixedDelay(dataLoaderThread, 50, 10, TimeUnit.SECONDS); | 53 | + logger.info("ArrivalData_GPS,30,10"); |
| 54 | + //Application.mainServices.scheduleWithFixedDelay(dataLoaderThread, 40, 10, TimeUnit.SECONDS); | ||
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | @Component | 57 | @Component |
src/main/java/com/bsth/data/schedule/SchAttrCalculator.java
| @@ -51,7 +51,7 @@ public class SchAttrCalculator { | @@ -51,7 +51,7 @@ public class SchAttrCalculator { | ||
| 51 | 51 | ||
| 52 | 52 | ||
| 53 | if(sch.getFcsj().compareTo(conf.getStartOpt()) < 0){ | 53 | if(sch.getFcsj().compareTo(conf.getStartOpt()) < 0){ |
| 54 | - sch.setFcsjAll(sch.getFcsjT() + DAY_TIME); | 54 | + sch.setFcsjAll(fmtyyyyMMddHHmm.parseMillis(sch.getScheduleDateStr()+sch.getFcsj()) + DAY_TIME); |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | sch.setRealExecDate(fmtyyyyMMdd.print(sch.getFcsjT())); | 57 | sch.setRealExecDate(fmtyyyyMMdd.print(sch.getFcsjT())); |
src/main/java/com/bsth/entity/schedule/SchedulePlan.java
| @@ -32,12 +32,22 @@ public class SchedulePlan { | @@ -32,12 +32,22 @@ public class SchedulePlan { | ||
| 32 | @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) | 32 | @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) |
| 33 | private Line xl; | 33 | private Line xl; |
| 34 | /** 关联的时刻表/模版 */ | 34 | /** 关联的时刻表/模版 */ |
| 35 | + // TODO:这个字段之后就不用了 | ||
| 35 | @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) | 36 | @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) |
| 36 | private TTInfo ttInfo; | 37 | private TTInfo ttInfo; |
| 37 | /** TODO:关联的排班规则(这里暂时改成可以不关联规则,直接生成排班) */ | 38 | /** TODO:关联的排班规则(这里暂时改成可以不关联规则,直接生成排班) */ |
| 38 | @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) | 39 | @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) |
| 39 | private ScheduleRule1 scheduleRule1; | 40 | private ScheduleRule1 scheduleRule1; |
| 40 | 41 | ||
| 42 | + // TODO: 新字段,测试完后删除旧的字段 | ||
| 43 | + | ||
| 44 | + /** 使用的时刻表名字列表(用逗号连接) */ | ||
| 45 | + private String ttInfoNames; | ||
| 46 | + /** 使用的时刻表id列表(用逗号连接) */ | ||
| 47 | + private String ttInfoId; | ||
| 48 | + /** 使用的规则1列表(用逗号连接) */ | ||
| 49 | + private String rule1Ids; | ||
| 50 | + | ||
| 41 | /** 排班计划的开始时间 */ | 51 | /** 排班计划的开始时间 */ |
| 42 | @Column(nullable = false) | 52 | @Column(nullable = false) |
| 43 | private Date scheduleFromTime; | 53 | private Date scheduleFromTime; |
| @@ -150,4 +160,28 @@ public class SchedulePlan { | @@ -150,4 +160,28 @@ public class SchedulePlan { | ||
| 150 | public void setUpdateDate(Date updateDate) { | 160 | public void setUpdateDate(Date updateDate) { |
| 151 | this.updateDate = updateDate; | 161 | this.updateDate = updateDate; |
| 152 | } | 162 | } |
| 163 | + | ||
| 164 | + public String getTtInfoNames() { | ||
| 165 | + return ttInfoNames; | ||
| 166 | + } | ||
| 167 | + | ||
| 168 | + public void setTtInfoNames(String ttInfoNames) { | ||
| 169 | + this.ttInfoNames = ttInfoNames; | ||
| 170 | + } | ||
| 171 | + | ||
| 172 | + public String getTtInfoId() { | ||
| 173 | + return ttInfoId; | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + public void setTtInfoId(String ttInfoId) { | ||
| 177 | + this.ttInfoId = ttInfoId; | ||
| 178 | + } | ||
| 179 | + | ||
| 180 | + public String getRule1Ids() { | ||
| 181 | + return rule1Ids; | ||
| 182 | + } | ||
| 183 | + | ||
| 184 | + public void setRule1Ids(String rule1Ids) { | ||
| 185 | + this.rule1Ids = rule1Ids; | ||
| 186 | + } | ||
| 153 | } | 187 | } |
src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
| @@ -121,6 +121,13 @@ public class SchedulePlanInfo { | @@ -121,6 +121,13 @@ public class SchedulePlanInfo { | ||
| 121 | @Column(nullable = false) | 121 | @Column(nullable = false) |
| 122 | private String bcType; | 122 | private String bcType; |
| 123 | 123 | ||
| 124 | + // 重要的新增字段 | ||
| 125 | + /** 关联的时刻表id */ | ||
| 126 | + private Long ttInfo; | ||
| 127 | + /** 关联的时刻表名字 */ | ||
| 128 | + private String ttInfoName; | ||
| 129 | + | ||
| 130 | + | ||
| 124 | /** 创建人 */ | 131 | /** 创建人 */ |
| 125 | @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) | 132 | @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) |
| 126 | private SysUser createBy; | 133 | private SysUser createBy; |
| @@ -233,6 +240,11 @@ public class SchedulePlanInfo { | @@ -233,6 +240,11 @@ public class SchedulePlanInfo { | ||
| 233 | this.jhlc = ttInfoDetail.getJhlc(); // 计划里程 | 240 | this.jhlc = ttInfoDetail.getJhlc(); // 计划里程 |
| 234 | this.bcsj = ttInfoDetail.getBcsj(); // 班次时间 | 241 | this.bcsj = ttInfoDetail.getBcsj(); // 班次时间 |
| 235 | 242 | ||
| 243 | + // 使用的时刻表id | ||
| 244 | + this.ttInfo = ttInfoDetail.getTtinfo().getId(); | ||
| 245 | + // 使用的时刻表名字 | ||
| 246 | + this.ttInfoName = ttInfoDetail.getTtinfo().getName(); | ||
| 247 | + | ||
| 236 | } | 248 | } |
| 237 | 249 | ||
| 238 | 250 | ||
| @@ -555,4 +567,20 @@ public class SchedulePlanInfo { | @@ -555,4 +567,20 @@ public class SchedulePlanInfo { | ||
| 555 | public void setSchedulePlan(SchedulePlan schedulePlan) { | 567 | public void setSchedulePlan(SchedulePlan schedulePlan) { |
| 556 | this.schedulePlan = schedulePlan; | 568 | this.schedulePlan = schedulePlan; |
| 557 | } | 569 | } |
| 570 | + | ||
| 571 | + public Long getTtInfo() { | ||
| 572 | + return ttInfo; | ||
| 573 | + } | ||
| 574 | + | ||
| 575 | + public void setTtInfo(Long ttInfo) { | ||
| 576 | + this.ttInfo = ttInfo; | ||
| 577 | + } | ||
| 578 | + | ||
| 579 | + public String getTtInfoName() { | ||
| 580 | + return ttInfoName; | ||
| 581 | + } | ||
| 582 | + | ||
| 583 | + public void setTtInfoName(String ttInfoName) { | ||
| 584 | + this.ttInfoName = ttInfoName; | ||
| 585 | + } | ||
| 558 | } | 586 | } |
src/main/java/com/bsth/entity/search/PredicatesBuilder.java
| 1 | package com.bsth.entity.search; | 1 | package com.bsth.entity.search; |
| 2 | 2 | ||
| 3 | +import org.joda.time.DateTime; | ||
| 4 | + | ||
| 3 | import javax.persistence.criteria.CriteriaBuilder; | 5 | import javax.persistence.criteria.CriteriaBuilder; |
| 4 | import javax.persistence.criteria.Path; | 6 | import javax.persistence.criteria.Path; |
| 5 | import javax.persistence.criteria.Predicate; | 7 | import javax.persistence.criteria.Predicate; |
| @@ -27,7 +29,29 @@ public class PredicatesBuilder { | @@ -27,7 +29,29 @@ public class PredicatesBuilder { | ||
| 27 | } | 29 | } |
| 28 | 30 | ||
| 29 | public static Predicate eq(CriteriaBuilder cb,Path<?> expression, Object object){ | 31 | public static Predicate eq(CriteriaBuilder cb,Path<?> expression, Object object){ |
| 30 | - return cb.equal(expression, object); | 32 | + Class<?> leftType = expression.getJavaType(); |
| 33 | + Class<?> rightType = object.getClass(); | ||
| 34 | + | ||
| 35 | + if (Number.class.isAssignableFrom(leftType) && | ||
| 36 | + (Number.class.isAssignableFrom(rightType) || String.class.isAssignableFrom(rightType))) { // Number == Number/String | ||
| 37 | + return cb.equal(expression, object); | ||
| 38 | + } else if (String.class.isAssignableFrom(leftType) && | ||
| 39 | + (String.class.isAssignableFrom(rightType) || Number.class.isAssignableFrom(rightType))) { // String == String/Number | ||
| 40 | + return cb.equal(expression, object); | ||
| 41 | + } else if (Boolean.class.isAssignableFrom(leftType) && | ||
| 42 | + Boolean.class.isAssignableFrom(rightType)) { | ||
| 43 | + return cb.equal(expression, object); | ||
| 44 | + } else if (Date.class.isAssignableFrom(leftType) && | ||
| 45 | + Date.class.isAssignableFrom(rightType)) { // Date == Date | ||
| 46 | + return cb.equal(expression, object); | ||
| 47 | + } else if (Date.class.isAssignableFrom(leftType) && | ||
| 48 | + String.class.isAssignableFrom(rightType)) { // Date == String | ||
| 49 | + DateTime dateTime = new DateTime(object); | ||
| 50 | + return cb.equal(expression, dateTime.toDate()); | ||
| 51 | + } else { | ||
| 52 | + throw new RuntimeException("eq 不支持类型组合:" + expression.getJavaType() + "==" + object.getClass()); | ||
| 53 | + } | ||
| 54 | + | ||
| 31 | } | 55 | } |
| 32 | 56 | ||
| 33 | public static Predicate ne(CriteriaBuilder cb,Path<?> expression, Object object){ | 57 | public static Predicate ne(CriteriaBuilder cb,Path<?> expression, Object object){ |
| @@ -47,15 +71,19 @@ public class PredicatesBuilder { | @@ -47,15 +71,19 @@ public class PredicatesBuilder { | ||
| 47 | Class<?> leftType = expression.getJavaType(); | 71 | Class<?> leftType = expression.getJavaType(); |
| 48 | Class<?> rightType = object.getClass(); | 72 | Class<?> rightType = object.getClass(); |
| 49 | 73 | ||
| 50 | - if (leftType.isAssignableFrom(Number.class) && | ||
| 51 | - rightType.isAssignableFrom(Number.class)) { // 判定是否是Number类型的子类 | 74 | + if (Number.class.isAssignableFrom(leftType) && |
| 75 | + (Number.class.isAssignableFrom(rightType) || String.class.isAssignableFrom(rightType))) { // Number >= Number/String | ||
| 52 | return cb.ge((Path<Number>) expression, (Number) object); | 76 | return cb.ge((Path<Number>) expression, (Number) object); |
| 53 | - } else if (leftType.isAssignableFrom(String.class) && | ||
| 54 | - rightType.isAssignableFrom(String.class)) { // 判定是否是String类型的子类 | 77 | + } else if (String.class.isAssignableFrom(leftType) && |
| 78 | + (String.class.isAssignableFrom(rightType) || Number.class.isAssignableFrom(rightType))) { // String >= String/Number | ||
| 55 | return cb.greaterThanOrEqualTo((Path<String>) expression, (String) object); | 79 | return cb.greaterThanOrEqualTo((Path<String>) expression, (String) object); |
| 56 | - } else if (leftType.isAssignableFrom(Date.class) && | ||
| 57 | - rightType.isAssignableFrom(Date.class)) { // 判定是否是Date类型的子类 | 80 | + } else if (Date.class.isAssignableFrom(leftType) && |
| 81 | + Date.class.isAssignableFrom(rightType)) { // Date >= Date | ||
| 58 | return cb.greaterThanOrEqualTo((Path<Date>) expression, (Date) object); | 82 | return cb.greaterThanOrEqualTo((Path<Date>) expression, (Date) object); |
| 83 | + } else if (Date.class.isAssignableFrom(leftType) && | ||
| 84 | + String.class.isAssignableFrom(rightType)) { // Date >= String | ||
| 85 | + DateTime dateTime = new DateTime(object); | ||
| 86 | + return cb.greaterThanOrEqualTo((Path<Date>) expression, dateTime.toDate()); | ||
| 59 | } else { | 87 | } else { |
| 60 | throw new RuntimeException("ge 不支持类型组合:" + expression.getJavaType() + ">=" + object.getClass()); | 88 | throw new RuntimeException("ge 不支持类型组合:" + expression.getJavaType() + ">=" + object.getClass()); |
| 61 | } | 89 | } |
| @@ -74,17 +102,22 @@ public class PredicatesBuilder { | @@ -74,17 +102,22 @@ public class PredicatesBuilder { | ||
| 74 | Class<?> leftType = expression.getJavaType(); | 102 | Class<?> leftType = expression.getJavaType(); |
| 75 | Class<?> rightType = object.getClass(); | 103 | Class<?> rightType = object.getClass(); |
| 76 | 104 | ||
| 77 | - if (leftType.isAssignableFrom(Number.class) && | ||
| 78 | - rightType.isAssignableFrom(Number.class)) { // 判定是否是Number类型的子类 | 105 | + |
| 106 | + if (Number.class.isAssignableFrom(leftType) && | ||
| 107 | + (Number.class.isAssignableFrom(rightType) || String.class.isAssignableFrom(rightType))) { // Number <= Number/String | ||
| 79 | return cb.le((Path<Number>) expression, (Number) object); | 108 | return cb.le((Path<Number>) expression, (Number) object); |
| 80 | - } else if (leftType.isAssignableFrom(String.class) && | ||
| 81 | - rightType.isAssignableFrom(String.class)) { // 判定是否是String类型的子类 | 109 | + } else if (String.class.isAssignableFrom(leftType) && |
| 110 | + (String.class.isAssignableFrom(rightType) || Number.class.isAssignableFrom(rightType))) { // String <= String/Number | ||
| 82 | return cb.lessThanOrEqualTo((Path<String>) expression, (String) object); | 111 | return cb.lessThanOrEqualTo((Path<String>) expression, (String) object); |
| 83 | - } else if (leftType.isAssignableFrom(Date.class) && | ||
| 84 | - rightType.isAssignableFrom(Date.class)) { // 判定是否是Date类型的子类 | 112 | + } else if (Date.class.isAssignableFrom(leftType) && |
| 113 | + Date.class.isAssignableFrom(rightType)) { // Date <= Date | ||
| 85 | return cb.lessThanOrEqualTo((Path<Date>) expression, (Date) object); | 114 | return cb.lessThanOrEqualTo((Path<Date>) expression, (Date) object); |
| 115 | + } else if (Date.class.isAssignableFrom(leftType) && | ||
| 116 | + String.class.isAssignableFrom(rightType)) { // Date <= String | ||
| 117 | + DateTime dateTime = new DateTime(object); | ||
| 118 | + return cb.lessThanOrEqualTo((Path<Date>) expression, dateTime.toDate()); | ||
| 86 | } else { | 119 | } else { |
| 87 | - throw new RuntimeException("ge 不支持类型组合:" + expression.getJavaType() + ">=" + object.getClass()); | 120 | + throw new RuntimeException("le 不支持类型组合:" + expression.getJavaType() + "<=" + object.getClass()); |
| 88 | } | 121 | } |
| 89 | } | 122 | } |
| 90 | 123 |
src/main/java/com/bsth/service/realcontrol/RealChartsService.java
| @@ -2,6 +2,7 @@ package com.bsth.service.realcontrol; | @@ -2,6 +2,7 @@ package com.bsth.service.realcontrol; | ||
| 2 | 2 | ||
| 3 | import com.bsth.service.realcontrol.dto.CarOutRate; | 3 | import com.bsth.service.realcontrol.dto.CarOutRate; |
| 4 | import com.bsth.service.realcontrol.dto.DeviceOnlineRate; | 4 | import com.bsth.service.realcontrol.dto.DeviceOnlineRate; |
| 5 | +import com.bsth.service.realcontrol.dto.ScheduleExecRate; | ||
| 5 | import com.bsth.service.realcontrol.dto.StratEndPunctualityRate; | 6 | import com.bsth.service.realcontrol.dto.StratEndPunctualityRate; |
| 6 | 7 | ||
| 7 | import java.util.List; | 8 | import java.util.List; |
| @@ -15,7 +16,9 @@ public interface RealChartsService { | @@ -15,7 +16,9 @@ public interface RealChartsService { | ||
| 15 | 16 | ||
| 16 | List<CarOutRate> carOutRate(String month, String idx); | 17 | List<CarOutRate> carOutRate(String month, String idx); |
| 17 | 18 | ||
| 18 | - List<StratEndPunctualityRate> stratEndPunctualityRate(String month, String idx); | 19 | + /*List<StratEndPunctualityRate> stratEndPunctualityRate(String month, String idx);*/ |
| 19 | 20 | ||
| 20 | List<StratEndPunctualityRate> sePunctualityRateLine(String month, String idx); | 21 | List<StratEndPunctualityRate> sePunctualityRateLine(String month, String idx); |
| 22 | + | ||
| 23 | + List<ScheduleExecRate> scheduleExecRates(String date, String idx); | ||
| 21 | } | 24 | } |
src/main/java/com/bsth/service/realcontrol/dto/ScheduleExecRate.java
0 → 100644
| 1 | +package com.bsth.service.realcontrol.dto; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * 班次执行率DTO | ||
| 5 | + * Created by panzhao on 2016/11/14. | ||
| 6 | + */ | ||
| 7 | +public class ScheduleExecRate { | ||
| 8 | + | ||
| 9 | + private long id; | ||
| 10 | + private String dfsj; | ||
| 11 | + private String fcsjActual; | ||
| 12 | + private String zdsj; | ||
| 13 | + private String zdsjActual; | ||
| 14 | + private int status; | ||
| 15 | + private String lineCode; | ||
| 16 | + | ||
| 17 | + public long getId() { | ||
| 18 | + return id; | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public void setId(long id) { | ||
| 22 | + this.id = id; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public String getDfsj() { | ||
| 26 | + return dfsj; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + public void setDfsj(String dfsj) { | ||
| 30 | + this.dfsj = dfsj; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public String getFcsjActual() { | ||
| 34 | + return fcsjActual; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public void setFcsjActual(String fcsjActual) { | ||
| 38 | + this.fcsjActual = fcsjActual; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public String getZdsj() { | ||
| 42 | + return zdsj; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + public void setZdsj(String zdsj) { | ||
| 46 | + this.zdsj = zdsj; | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + public String getZdsjActual() { | ||
| 50 | + return zdsjActual; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + public void setZdsjActual(String zdsjActual) { | ||
| 54 | + this.zdsjActual = zdsjActual; | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + public int getStatus() { | ||
| 58 | + return status; | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + public void setStatus(int status) { | ||
| 62 | + this.status = status; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + public String getLineCode() { | ||
| 66 | + return lineCode; | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + public void setLineCode(String lineCode) { | ||
| 70 | + this.lineCode = lineCode; | ||
| 71 | + } | ||
| 72 | +} |
src/main/java/com/bsth/service/realcontrol/dto/StratEndPunctualityRate.java
| @@ -10,17 +10,17 @@ public class StratEndPunctualityRate { | @@ -10,17 +10,17 @@ public class StratEndPunctualityRate { | ||
| 10 | 10 | ||
| 11 | private String lineCode; | 11 | private String lineCode; |
| 12 | 12 | ||
| 13 | - private String nbbm; | ||
| 14 | - | ||
| 15 | //首班时间 06:00/06:01 | 13 | //首班时间 06:00/06:01 |
| 16 | private String startTime; | 14 | private String startTime; |
| 17 | 15 | ||
| 18 | //末班时间 20:30/20:31 | 16 | //末班时间 20:30/20:31 |
| 19 | private String endTime; | 17 | private String endTime; |
| 20 | 18 | ||
| 21 | - //末班真实执行日期 | ||
| 22 | - private String etRealExecDate; | 19 | + //上下行 |
| 20 | + private int updown; | ||
| 23 | 21 | ||
| 22 | + //真实执行日期 | ||
| 23 | + private String etRealExecDate; | ||
| 24 | 24 | ||
| 25 | public String getDateStr() { | 25 | public String getDateStr() { |
| 26 | return dateStr; | 26 | return dateStr; |
| @@ -38,14 +38,6 @@ public class StratEndPunctualityRate { | @@ -38,14 +38,6 @@ public class StratEndPunctualityRate { | ||
| 38 | this.lineCode = lineCode; | 38 | this.lineCode = lineCode; |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | - public String getNbbm() { | ||
| 42 | - return nbbm; | ||
| 43 | - } | ||
| 44 | - | ||
| 45 | - public void setNbbm(String nbbm) { | ||
| 46 | - this.nbbm = nbbm; | ||
| 47 | - } | ||
| 48 | - | ||
| 49 | public String getStartTime() { | 41 | public String getStartTime() { |
| 50 | return startTime; | 42 | return startTime; |
| 51 | } | 43 | } |
| @@ -62,6 +54,14 @@ public class StratEndPunctualityRate { | @@ -62,6 +54,14 @@ public class StratEndPunctualityRate { | ||
| 62 | this.endTime = endTime; | 54 | this.endTime = endTime; |
| 63 | } | 55 | } |
| 64 | 56 | ||
| 57 | + public int getUpdown() { | ||
| 58 | + return updown; | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + public void setUpdown(int updown) { | ||
| 62 | + this.updown = updown; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | public String getEtRealExecDate() { | 65 | public String getEtRealExecDate() { |
| 66 | return etRealExecDate; | 66 | return etRealExecDate; |
| 67 | } | 67 | } |
src/main/java/com/bsth/service/realcontrol/impl/RealChartsServiceImpl.java
| @@ -4,10 +4,7 @@ import com.bsth.data.BasicData; | @@ -4,10 +4,7 @@ import com.bsth.data.BasicData; | ||
| 4 | import com.bsth.data.LineConfigData; | 4 | import com.bsth.data.LineConfigData; |
| 5 | import com.bsth.entity.realcontrol.LineConfig; | 5 | import com.bsth.entity.realcontrol.LineConfig; |
| 6 | import com.bsth.service.realcontrol.RealChartsService; | 6 | import com.bsth.service.realcontrol.RealChartsService; |
| 7 | -import com.bsth.service.realcontrol.dto.CarOutRate; | ||
| 8 | -import com.bsth.service.realcontrol.dto.DeviceOnlineRate; | ||
| 9 | -import com.bsth.service.realcontrol.dto.RealOnline; | ||
| 10 | -import com.bsth.service.realcontrol.dto.StratEndPunctualityRate; | 7 | +import com.bsth.service.realcontrol.dto.*; |
| 11 | import com.bsth.util.db.DBUtils_MS; | 8 | import com.bsth.util.db.DBUtils_MS; |
| 12 | import com.google.common.base.Splitter; | 9 | import com.google.common.base.Splitter; |
| 13 | import org.apache.commons.lang3.StringUtils; | 10 | import org.apache.commons.lang3.StringUtils; |
| @@ -37,7 +34,8 @@ public class RealChartsServiceImpl implements RealChartsService { | @@ -37,7 +34,8 @@ public class RealChartsServiceImpl implements RealChartsService { | ||
| 37 | LineConfigData lineConfigData; | 34 | LineConfigData lineConfigData; |
| 38 | 35 | ||
| 39 | 36 | ||
| 40 | - private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"); | 37 | + private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd") |
| 38 | + ,fmtyyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm"); | ||
| 41 | 39 | ||
| 42 | private final static long DAY_TIME = 1000 * 60 * 60 * 24L; | 40 | private final static long DAY_TIME = 1000 * 60 * 60 * 24L; |
| 43 | /** | 41 | /** |
| @@ -164,7 +162,7 @@ public class RealChartsServiceImpl implements RealChartsService { | @@ -164,7 +162,7 @@ public class RealChartsServiceImpl implements RealChartsService { | ||
| 164 | * @param idx | 162 | * @param idx |
| 165 | * @return | 163 | * @return |
| 166 | */ | 164 | */ |
| 167 | - @Override | 165 | +/* @Override |
| 168 | public List<StratEndPunctualityRate> stratEndPunctualityRate(String month, String idx) { | 166 | public List<StratEndPunctualityRate> stratEndPunctualityRate(String month, String idx) { |
| 169 | List<String> idArray = Splitter.on(",").splitToList(idx); | 167 | List<String> idArray = Splitter.on(",").splitToList(idx); |
| 170 | //拼接in语句 | 168 | //拼接in语句 |
| @@ -208,7 +206,7 @@ public class RealChartsServiceImpl implements RealChartsService { | @@ -208,7 +206,7 @@ public class RealChartsServiceImpl implements RealChartsService { | ||
| 208 | } | 206 | } |
| 209 | }); | 207 | }); |
| 210 | return list; | 208 | return list; |
| 211 | - } | 209 | + }*/ |
| 212 | 210 | ||
| 213 | @Override | 211 | @Override |
| 214 | public List<StratEndPunctualityRate> sePunctualityRateLine(String month, String idx) { | 212 | public List<StratEndPunctualityRate> sePunctualityRateLine(String month, String idx) { |
| @@ -220,10 +218,7 @@ public class RealChartsServiceImpl implements RealChartsService { | @@ -220,10 +218,7 @@ public class RealChartsServiceImpl implements RealChartsService { | ||
| 220 | } | 218 | } |
| 221 | inStr = " (" + inStr.substring(1) + ")"; | 219 | inStr = " (" + inStr.substring(1) + ")"; |
| 222 | 220 | ||
| 223 | - String sql = "select SCHEDULE_DATE_STR,XL_BM, min(sj) as STARTDATE, max(sj) as ENDDATE " + | ||
| 224 | - "from (select SCHEDULE_DATE_STR,dfsj, concat_ws('/',dfsj, fcsj_actual) as sj,XL_BM from bsth_c_s_sp_info_real " + | ||
| 225 | - "where schedule_date_str like :month and bc_type='normal' and dfsj is not null and xl_bm in "+inStr+") t group by SCHEDULE_DATE_STR,XL_BM"; | ||
| 226 | - | 221 | + String sql = "select min(DFSJ) as STARTDATE,max(DFSJ) as ENDDATE,SCHEDULE_DATE_STR,XL_BM,XL_DIR,REAL_EXEC_DATE from (SELECT SCHEDULE_DATE_STR,concat_ws('_',concat_ws('/', dfsj, fcsj_actual),fcno) AS DFSJ,XL_BM,XL_DIR,REAL_EXEC_DATE FROM bsth_c_s_sp_info_real WHERE schedule_date_str LIKE :month AND bc_type = 'normal' AND dfsj IS NOT NULL AND xl_bm IN "+inStr+") t group by SCHEDULE_DATE_STR,XL_BM,XL_DIR,REAL_EXEC_DATE"; |
| 227 | MapSqlParameterSource parameters = new MapSqlParameterSource(); | 222 | MapSqlParameterSource parameters = new MapSqlParameterSource(); |
| 228 | parameters.addValue("month", month+"-%"); | 223 | parameters.addValue("month", month+"-%"); |
| 229 | 224 | ||
| @@ -235,10 +230,11 @@ public class RealChartsServiceImpl implements RealChartsService { | @@ -235,10 +230,11 @@ public class RealChartsServiceImpl implements RealChartsService { | ||
| 235 | obj.setDateStr(rs.getString("SCHEDULE_DATE_STR")); | 230 | obj.setDateStr(rs.getString("SCHEDULE_DATE_STR")); |
| 236 | obj.setStartTime(rs.getString("STARTDATE")); | 231 | obj.setStartTime(rs.getString("STARTDATE")); |
| 237 | obj.setEndTime(rs.getString("ENDDATE")); | 232 | obj.setEndTime(rs.getString("ENDDATE")); |
| 238 | - obj.setEtRealExecDate(obj.getDateStr()); | 233 | + obj.setUpdown(rs.getInt("XL_DIR")); |
| 234 | + obj.setEtRealExecDate(rs.getString("REAL_EXEC_DATE")); | ||
| 239 | 235 | ||
| 240 | - if(obj.getEndTime().length() == 11){ | ||
| 241 | - //末班真实执行日期 | 236 | + if(obj.getEndTime().length() >= 11){ |
| 237 | + //末班真实执行日期,末班可能跨过12点。 | ||
| 242 | LineConfig conf =lineConfigData.get(obj.getLineCode()); | 238 | LineConfig conf =lineConfigData.get(obj.getLineCode()); |
| 243 | String fcsjActual=obj.getEndTime().split("/")[1]; | 239 | String fcsjActual=obj.getEndTime().split("/")[1]; |
| 244 | 240 | ||
| @@ -247,7 +243,40 @@ public class RealChartsServiceImpl implements RealChartsService { | @@ -247,7 +243,40 @@ public class RealChartsServiceImpl implements RealChartsService { | ||
| 247 | obj.setEtRealExecDate(fmtyyyyMMdd.print(fmtyyyyMMdd.parseMillis(obj.getEtRealExecDate()) + DAY_TIME)); | 243 | obj.setEtRealExecDate(fmtyyyyMMdd.print(fmtyyyyMMdd.parseMillis(obj.getEtRealExecDate()) + DAY_TIME)); |
| 248 | } | 244 | } |
| 249 | } | 245 | } |
| 246 | + return obj; | ||
| 247 | + } | ||
| 248 | + }); | ||
| 249 | + return list; | ||
| 250 | + } | ||
| 251 | + | ||
| 252 | + @Override | ||
| 253 | + public List<ScheduleExecRate> scheduleExecRates(String date, String idx) { | ||
| 254 | + List<String> idArray = Splitter.on(",").splitToList(idx); | ||
| 255 | + //拼接in语句 | ||
| 256 | + String inStr = ""; | ||
| 257 | + for (String code : idArray) { | ||
| 258 | + inStr += (",'" + code+"'"); | ||
| 259 | + } | ||
| 260 | + inStr = " (" + inStr.substring(1) + ")"; | ||
| 250 | 261 | ||
| 262 | + String sql = "SELECT ID,DFSJ,FCSJ_ACTUAL,ZDSJ,ZDSJ_ACTUAL,`STATUS`,XL_BM FROM bsth_c_s_sp_info_real WHERE schedule_date_str=:date AND concat_ws('', real_exec_date, dfsj)<:cdate and xl_bm in "+inStr+" ORDER BY dfsj"; | ||
| 263 | + | ||
| 264 | + MapSqlParameterSource parameters = new MapSqlParameterSource(); | ||
| 265 | + parameters.addValue("date", date); | ||
| 266 | + parameters.addValue("cdate", fmtyyyyMMddHHmm.print(new Date().getTime())); | ||
| 267 | + | ||
| 268 | + | ||
| 269 | + List<ScheduleExecRate> list = jdbcTemplate.query(sql, parameters, new RowMapper<ScheduleExecRate>() { | ||
| 270 | + @Override | ||
| 271 | + public ScheduleExecRate mapRow(ResultSet rs, int rowNum) throws SQLException { | ||
| 272 | + ScheduleExecRate obj = new ScheduleExecRate(); | ||
| 273 | + obj.setId(rs.getLong("ID")); | ||
| 274 | + obj.setDfsj(rs.getString("DFSJ")); | ||
| 275 | + obj.setFcsjActual(rs.getString("FCSJ_ACTUAL")); | ||
| 276 | + obj.setZdsj(rs.getString("ZDSJ")); | ||
| 277 | + obj.setZdsjActual(rs.getString("ZDSJ_ACTUAL")); | ||
| 278 | + obj.setStatus(rs.getInt("STATUS")); | ||
| 279 | + obj.setLineCode(rs.getString("XL_BM")); | ||
| 251 | return obj; | 280 | return obj; |
| 252 | } | 281 | } |
| 253 | }); | 282 | }); |
src/main/java/com/bsth/service/schedule/SchedulePlanServiceImpl.java
| @@ -12,6 +12,7 @@ import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output; | @@ -12,6 +12,7 @@ import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output; | ||
| 12 | import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input; | 12 | import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input; |
| 13 | import com.bsth.service.schedule.rules.strategy.IStrategy; | 13 | import com.bsth.service.schedule.rules.strategy.IStrategy; |
| 14 | import com.google.common.collect.Multimap; | 14 | import com.google.common.collect.Multimap; |
| 15 | +import org.apache.commons.lang3.StringUtils; | ||
| 15 | import org.joda.time.DateTime; | 16 | import org.joda.time.DateTime; |
| 16 | import org.kie.api.KieBase; | 17 | import org.kie.api.KieBase; |
| 17 | import org.kie.api.runtime.KieSession; | 18 | import org.kie.api.runtime.KieSession; |
| @@ -65,6 +66,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long> | @@ -65,6 +66,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long> | ||
| 65 | KieSession session = kieBase.newKieSession(); | 66 | KieSession session = kieBase.newKieSession(); |
| 66 | // 设置gloable对象,在drl中通过别名使用 | 67 | // 设置gloable对象,在drl中通过别名使用 |
| 67 | session.setGlobal("scheduleResult", scheduleResults_output); | 68 | session.setGlobal("scheduleResult", scheduleResults_output); |
| 69 | + | ||
| 68 | // 载入数据 | 70 | // 载入数据 |
| 69 | session.insert(scheduleCalcuParam_input); | 71 | session.insert(scheduleCalcuParam_input); |
| 70 | for (ScheduleRule_input scheduleRule_input : scheduleRule_inputs) { | 72 | for (ScheduleRule_input scheduleRule_input : scheduleRule_inputs) { |
| @@ -92,6 +94,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long> | @@ -92,6 +94,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long> | ||
| 92 | Map<Long, EmployeeConfigInfo> employeeConfigMaps = strategy.getEmployeeConfigMaps(xl.getId()); // 人员配置对应的人员信息 | 94 | Map<Long, EmployeeConfigInfo> employeeConfigMaps = strategy.getEmployeeConfigMaps(xl.getId()); // 人员配置对应的人员信息 |
| 93 | 95 | ||
| 94 | // 3-2、循环规则输出 | 96 | // 3-2、循环规则输出 |
| 97 | + Map<Long, String> ttInfoMap = new HashMap<>(); // 时刻表映射,id和名字 | ||
| 95 | List<SchedulePlanInfo> schedulePlanInfos = new ArrayList<>(); | 98 | List<SchedulePlanInfo> schedulePlanInfos = new ArrayList<>(); |
| 96 | for (ScheduleResult_output scheduleResult_output : scheduleResults_output.getResults()) { | 99 | for (ScheduleResult_output scheduleResult_output : scheduleResults_output.getResults()) { |
| 97 | // 车辆配置对应的车辆 | 100 | // 车辆配置对应的车辆 |
| @@ -114,9 +117,13 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long> | @@ -114,9 +117,13 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long> | ||
| 114 | employeeConfigInfoList, | 117 | employeeConfigInfoList, |
| 115 | schedulePlan); | 118 | schedulePlan); |
| 116 | schedulePlanInfos.add(schedulePlanInfo); | 119 | schedulePlanInfos.add(schedulePlanInfo); |
| 120 | + ttInfoMap.put(ttInfoDetail.getTtinfo().getId(), ttInfoDetail.getTtinfo().getName()); | ||
| 117 | } | 121 | } |
| 118 | } | 122 | } |
| 119 | 123 | ||
| 124 | + schedulePlan.setTtInfoId(StringUtils.join(ttInfoMap.keySet(), ",")); | ||
| 125 | + schedulePlan.setTtInfoNames(StringUtils.join(ttInfoMap.values(), ",")); | ||
| 126 | + | ||
| 120 | // 3-2、保存生成的排班和明细 | 127 | // 3-2、保存生成的排班和明细 |
| 121 | schedulePlan.getSchedulePlanInfoList().addAll(schedulePlanInfos); // 关联的排班明细信息 | 128 | schedulePlan.getSchedulePlanInfoList().addAll(schedulePlanInfos); // 关联的排班明细信息 |
| 122 | return super.save(schedulePlan); | 129 | return super.save(schedulePlan); |
src/main/java/com/bsth/service/schedule/TTInfoDetailService.java
| @@ -136,7 +136,7 @@ public interface TTInfoDetailService extends BaseService<TTInfoDetail, Long> { | @@ -136,7 +136,7 @@ public interface TTInfoDetailService extends BaseService<TTInfoDetail, Long> { | ||
| 136 | String ttinfoname, | 136 | String ttinfoname, |
| 137 | String tccname) throws Exception; | 137 | String tccname) throws Exception; |
| 138 | 138 | ||
| 139 | - void fileDataImport(File file, String xlmc, String ttinfoname, String tccname) throws Exception; | 139 | + void fileDataImport(File file, String sheetname, String xlmc, String ttinfoname, String tccname) throws Exception; |
| 140 | 140 | ||
| 141 | 141 | ||
| 142 | } | 142 | } |
src/main/java/com/bsth/service/schedule/TTInfoDetailServiceImpl.java
| @@ -114,6 +114,7 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl<TTInfoDetail, Long> | @@ -114,6 +114,7 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl<TTInfoDetail, Long> | ||
| 114 | return editInfo; | 114 | return editInfo; |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | + @Override | ||
| 117 | /** | 118 | /** |
| 118 | * 上传并导入数据,和DataImportExportService的同名方法有差别。 | 119 | * 上传并导入数据,和DataImportExportService的同名方法有差别。 |
| 119 | * @param datafile form上传文件 | 120 | * @param datafile form上传文件 |
| @@ -128,12 +129,12 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl<TTInfoDetail, Long> | @@ -128,12 +129,12 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl<TTInfoDetail, Long> | ||
| 128 | String tccname) throws Exception { | 129 | String tccname) throws Exception { |
| 129 | // 上传数据文件 | 130 | // 上传数据文件 |
| 130 | File uploadFile = dataImportExportService.uploadFile(datafile); | 131 | File uploadFile = dataImportExportService.uploadFile(datafile); |
| 131 | - fileDataImport(uploadFile, xlmc, ttinfoname, tccname); | 132 | + fileDataImport(uploadFile, "工作表1", xlmc, ttinfoname, tccname); |
| 132 | 133 | ||
| 133 | } | 134 | } |
| 134 | 135 | ||
| 135 | @Override | 136 | @Override |
| 136 | - public void fileDataImport(File uploadFile, String xlmc, String ttinfoname, String tccname) throws Exception { | 137 | + public void fileDataImport(File uploadFile, String sheetname, String xlmc, String ttinfoname, String tccname) throws Exception { |
| 137 | // 1、上传数据文件 | 138 | // 1、上传数据文件 |
| 138 | System.out.println("线路名称:" + xlmc); | 139 | System.out.println("线路名称:" + xlmc); |
| 139 | System.out.println("时刻表名称:" + ttinfoname); | 140 | System.out.println("时刻表名称:" + ttinfoname); |
| @@ -162,6 +163,7 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl<TTInfoDetail, Long> | @@ -162,6 +163,7 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl<TTInfoDetail, Long> | ||
| 162 | // 2.3、设定命名参数,用于指定数据文件,注意每个ktr必须都有以下指定的命名参数 | 163 | // 2.3、设定命名参数,用于指定数据文件,注意每个ktr必须都有以下指定的命名参数 |
| 163 | trans.setParameterValue("injectktrfile", ktrFile2.getAbsolutePath()); // 注入元数据的ktr文件 | 164 | trans.setParameterValue("injectktrfile", ktrFile2.getAbsolutePath()); // 注入元数据的ktr文件 |
| 164 | trans.setParameterValue("filepath", uploadFile.getAbsolutePath()); // 指定导入数据文件的位置 | 165 | trans.setParameterValue("filepath", uploadFile.getAbsolutePath()); // 指定导入数据文件的位置 |
| 166 | + trans.setParameterValue("sheetname", sheetname); // sheet工作区的名字 | ||
| 165 | trans.setParameterValue("erroroutputdir", dataToolsProperties.getTransErrordir()); // ktr转换错误输出目录 | 167 | trans.setParameterValue("erroroutputdir", dataToolsProperties.getTransErrordir()); // ktr转换错误输出目录 |
| 166 | trans.setParameterValue("xlname", xlmc); // 线路名称 | 168 | trans.setParameterValue("xlname", xlmc); // 线路名称 |
| 167 | trans.setParameterValue("ttinfoname", ttinfoname); // 时刻表名称 | 169 | trans.setParameterValue("ttinfoname", ttinfoname); // 时刻表名称 |
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategyImpl.java
| @@ -21,6 +21,7 @@ import org.slf4j.Logger; | @@ -21,6 +21,7 @@ import org.slf4j.Logger; | ||
| 21 | import org.slf4j.LoggerFactory; | 21 | import org.slf4j.LoggerFactory; |
| 22 | import org.springframework.beans.factory.annotation.Autowired; | 22 | import org.springframework.beans.factory.annotation.Autowired; |
| 23 | import org.springframework.stereotype.Service; | 23 | import org.springframework.stereotype.Service; |
| 24 | +import org.springframework.util.CollectionUtils; | ||
| 24 | 25 | ||
| 25 | import java.util.*; | 26 | import java.util.*; |
| 26 | 27 | ||
| @@ -50,8 +51,14 @@ public class IStrategyImpl implements IStrategy { | @@ -50,8 +51,14 @@ public class IStrategyImpl implements IStrategy { | ||
| 50 | 51 | ||
| 51 | @Override | 52 | @Override |
| 52 | public Line getLine(Integer xlId) { | 53 | public Line getLine(Integer xlId) { |
| 53 | - Line xl = lineService.findById(xlId); // 查找线路具体信息 | ||
| 54 | - return xl; | 54 | + Map<String, Object> param = new HashMap<>(); |
| 55 | + param.put("id_eq", xlId); | ||
| 56 | + param.put("destroy_eq", 0); // 未撤销 | ||
| 57 | + List<Line> lines = (List<Line>) lineService.list(param); | ||
| 58 | + if (CollectionUtils.isEmpty(lines)) { | ||
| 59 | + throw new RuntimeException("线路找不到,可能已经撤销!"); | ||
| 60 | + } | ||
| 61 | + return lines.get(0); | ||
| 55 | } | 62 | } |
| 56 | 63 | ||
| 57 | @Override | 64 | @Override |
src/main/resources/application-prod.properties
| @@ -6,7 +6,7 @@ spring.jpa.hibernate.ddl-auto= update | @@ -6,7 +6,7 @@ spring.jpa.hibernate.ddl-auto= update | ||
| 6 | spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy | 6 | spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy |
| 7 | #DATABASE | 7 | #DATABASE |
| 8 | spring.jpa.database= MYSQL | 8 | spring.jpa.database= MYSQL |
| 9 | -spring.jpa.show-sql= true | 9 | +spring.jpa.show-sql= false |
| 10 | spring.datasource.driver-class-name= com.mysql.jdbc.Driver | 10 | spring.datasource.driver-class-name= com.mysql.jdbc.Driver |
| 11 | spring.datasource.url= jdbc:mysql://192.168.168.171:3306/control?useUnicode=true&characterEncoding=utf-8&useSSL=false | 11 | spring.datasource.url= jdbc:mysql://192.168.168.171:3306/control?useUnicode=true&characterEncoding=utf-8&useSSL=false |
| 12 | spring.datasource.username= root | 12 | spring.datasource.username= root |
src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr
| @@ -554,6 +554,78 @@ | @@ -554,6 +554,78 @@ | ||
| 554 | </step> | 554 | </step> |
| 555 | 555 | ||
| 556 | <step> | 556 | <step> |
| 557 | + <name>匹配出场班次里程时间</name> | ||
| 558 | + <type>ScriptValueMod</type> | ||
| 559 | + <description/> | ||
| 560 | + <distribute>Y</distribute> | ||
| 561 | + <custom_distribution/> | ||
| 562 | + <copies>1</copies> | ||
| 563 | + <partitioning> | ||
| 564 | + <method>none</method> | ||
| 565 | + <schema_name/> | ||
| 566 | + </partitioning> | ||
| 567 | + <compatible>N</compatible> | ||
| 568 | + <optimizationLevel>9</optimizationLevel> | ||
| 569 | + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> | ||
| 570 | + <jsScript_name>Script 1</jsScript_name> | ||
| 571 | + <jsScript_script>//Script here

var out_mileage; // 出场计划里程
var out_time; // 出场计划时间

if (sxx == 0) { // 上行
 out_mileage = up_out_mileage;
 out_time = up_out_timer;
} else { // sxx == 1 下行
 out_mileage = down_out_mileage;
 out_time = down_out_timer;
}



</jsScript_script> | ||
| 572 | + </jsScript> </jsScripts> <fields> <field> <name>out_mileage</name> | ||
| 573 | + <rename>out_mileage</rename> | ||
| 574 | + <type>String</type> | ||
| 575 | + <length>-1</length> | ||
| 576 | + <precision>-1</precision> | ||
| 577 | + <replace>N</replace> | ||
| 578 | + </field> <field> <name>out_time</name> | ||
| 579 | + <rename>out_time</rename> | ||
| 580 | + <type>String</type> | ||
| 581 | + <length>-1</length> | ||
| 582 | + <precision>-1</precision> | ||
| 583 | + <replace>N</replace> | ||
| 584 | + </field> </fields> <cluster_schema/> | ||
| 585 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 586 | + <xloc>336</xloc> | ||
| 587 | + <yloc>862</yloc> | ||
| 588 | + <draw>Y</draw> | ||
| 589 | + </GUI> | ||
| 590 | + </step> | ||
| 591 | + | ||
| 592 | + <step> | ||
| 593 | + <name>匹配进场班次里程时间</name> | ||
| 594 | + <type>ScriptValueMod</type> | ||
| 595 | + <description/> | ||
| 596 | + <distribute>Y</distribute> | ||
| 597 | + <custom_distribution/> | ||
| 598 | + <copies>1</copies> | ||
| 599 | + <partitioning> | ||
| 600 | + <method>none</method> | ||
| 601 | + <schema_name/> | ||
| 602 | + </partitioning> | ||
| 603 | + <compatible>N</compatible> | ||
| 604 | + <optimizationLevel>9</optimizationLevel> | ||
| 605 | + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> | ||
| 606 | + <jsScript_name>Script 1</jsScript_name> | ||
| 607 | + <jsScript_script>//Script here

var parade_mileage; // 进场计划里程
var parade_time; // 进场计划时间

if (sxx2 == 0) { // 上行
 parade_mileage = up_in_mileage;
 parade_time = up_in_timer;
} else { // sxx == 1 下行
 parade_mileage = down_in_mileage;
 parade_time = down_in_timer;
}



</jsScript_script> | ||
| 608 | + </jsScript> </jsScripts> <fields> <field> <name>parade_mileage</name> | ||
| 609 | + <rename>parade_mileage</rename> | ||
| 610 | + <type>String</type> | ||
| 611 | + <length>-1</length> | ||
| 612 | + <precision>-1</precision> | ||
| 613 | + <replace>N</replace> | ||
| 614 | + </field> <field> <name>parade_time</name> | ||
| 615 | + <rename>parade_time</rename> | ||
| 616 | + <type>String</type> | ||
| 617 | + <length>-1</length> | ||
| 618 | + <precision>-1</precision> | ||
| 619 | + <replace>N</replace> | ||
| 620 | + </field> </fields> <cluster_schema/> | ||
| 621 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 622 | + <xloc>726</xloc> | ||
| 623 | + <yloc>1005</yloc> | ||
| 624 | + <draw>Y</draw> | ||
| 625 | + </GUI> | ||
| 626 | + </step> | ||
| 627 | + | ||
| 628 | + <step> | ||
| 557 | <name>增加时刻表名字,线路名字,停车场名字</name> | 629 | <name>增加时刻表名字,线路名字,停车场名字</name> |
| 558 | <type>DataGrid</type> | 630 | <type>DataGrid</type> |
| 559 | <description/> | 631 | <description/> |
| @@ -1115,7 +1187,7 @@ | @@ -1115,7 +1187,7 @@ | ||
| 1115 | </fields> | 1187 | </fields> |
| 1116 | <sheets> | 1188 | <sheets> |
| 1117 | <sheet> | 1189 | <sheet> |
| 1118 | - <name>工作表1</name> | 1190 | + <name/> |
| 1119 | <startrow>0</startrow> | 1191 | <startrow>0</startrow> |
| 1120 | <startcol>0</startcol> | 1192 | <startcol>0</startcol> |
| 1121 | </sheet> | 1193 | </sheet> |
| @@ -1843,6 +1915,66 @@ | @@ -1843,6 +1915,66 @@ | ||
| 1843 | </step> | 1915 | </step> |
| 1844 | 1916 | ||
| 1845 | <step> | 1917 | <step> |
| 1918 | + <name>查找进场起点站关联确定上下行</name> | ||
| 1919 | + <type>DBLookup</type> | ||
| 1920 | + <description/> | ||
| 1921 | + <distribute>Y</distribute> | ||
| 1922 | + <custom_distribution/> | ||
| 1923 | + <copies>1</copies> | ||
| 1924 | + <partitioning> | ||
| 1925 | + <method>none</method> | ||
| 1926 | + <schema_name/> | ||
| 1927 | + </partitioning> | ||
| 1928 | + <connection>bus_control_variable</connection> | ||
| 1929 | + <cache>N</cache> | ||
| 1930 | + <cache_load_all>N</cache_load_all> | ||
| 1931 | + <cache_size>0</cache_size> | ||
| 1932 | + <lookup> | ||
| 1933 | + <schema/> | ||
| 1934 | + <table>bsth_c_stationroute</table> | ||
| 1935 | + <orderby/> | ||
| 1936 | + <fail_on_multiple>N</fail_on_multiple> | ||
| 1937 | + <eat_row_on_failure>N</eat_row_on_failure> | ||
| 1938 | + <key> | ||
| 1939 | + <name>xlid</name> | ||
| 1940 | + <field>line</field> | ||
| 1941 | + <condition>=</condition> | ||
| 1942 | + <name2/> | ||
| 1943 | + </key> | ||
| 1944 | + <key> | ||
| 1945 | + <name>zdzname_calcu</name> | ||
| 1946 | + <field>station_name</field> | ||
| 1947 | + <condition>=</condition> | ||
| 1948 | + <name2/> | ||
| 1949 | + </key> | ||
| 1950 | + <key> | ||
| 1951 | + <name>startZdtype_calcu</name> | ||
| 1952 | + <field>station_mark</field> | ||
| 1953 | + <condition>=</condition> | ||
| 1954 | + <name2/> | ||
| 1955 | + </key> | ||
| 1956 | + <value> | ||
| 1957 | + <name>directions</name> | ||
| 1958 | + <rename>sxx2</rename> | ||
| 1959 | + <default/> | ||
| 1960 | + <type>Integer</type> | ||
| 1961 | + </value> | ||
| 1962 | + <value> | ||
| 1963 | + <name>station</name> | ||
| 1964 | + <rename>qdzid</rename> | ||
| 1965 | + <default/> | ||
| 1966 | + <type>Integer</type> | ||
| 1967 | + </value> | ||
| 1968 | + </lookup> | ||
| 1969 | + <cluster_schema/> | ||
| 1970 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 1971 | + <xloc>551</xloc> | ||
| 1972 | + <yloc>782</yloc> | ||
| 1973 | + <draw>Y</draw> | ||
| 1974 | + </GUI> | ||
| 1975 | + </step> | ||
| 1976 | + | ||
| 1977 | + <step> | ||
| 1846 | <name>正常班次_处理数据</name> | 1978 | <name>正常班次_处理数据</name> |
| 1847 | <type>ScriptValueMod</type> | 1979 | <type>ScriptValueMod</type> |
| 1848 | <description/> | 1980 | <description/> |
| @@ -2201,6 +2333,106 @@ | @@ -2201,6 +2333,106 @@ | ||
| 2201 | </step> | 2333 | </step> |
| 2202 | 2334 | ||
| 2203 | <step> | 2335 | <step> |
| 2336 | + <name>类型修正 2</name> | ||
| 2337 | + <type>SelectValues</type> | ||
| 2338 | + <description/> | ||
| 2339 | + <distribute>Y</distribute> | ||
| 2340 | + <custom_distribution/> | ||
| 2341 | + <copies>1</copies> | ||
| 2342 | + <partitioning> | ||
| 2343 | + <method>none</method> | ||
| 2344 | + <schema_name/> | ||
| 2345 | + </partitioning> | ||
| 2346 | + <fields> <select_unspecified>N</select_unspecified> | ||
| 2347 | + <meta> <name>out_mileage</name> | ||
| 2348 | + <rename>out_mileage</rename> | ||
| 2349 | + <type>Number</type> | ||
| 2350 | + <length>-2</length> | ||
| 2351 | + <precision>-2</precision> | ||
| 2352 | + <conversion_mask/> | ||
| 2353 | + <date_format_lenient>false</date_format_lenient> | ||
| 2354 | + <date_format_locale/> | ||
| 2355 | + <date_format_timezone/> | ||
| 2356 | + <lenient_string_to_number>false</lenient_string_to_number> | ||
| 2357 | + <encoding/> | ||
| 2358 | + <decimal_symbol/> | ||
| 2359 | + <grouping_symbol/> | ||
| 2360 | + <currency_symbol/> | ||
| 2361 | + <storage_type/> | ||
| 2362 | + </meta> <meta> <name>out_time</name> | ||
| 2363 | + <rename>out_time</rename> | ||
| 2364 | + <type>Integer</type> | ||
| 2365 | + <length>-2</length> | ||
| 2366 | + <precision>-2</precision> | ||
| 2367 | + <conversion_mask/> | ||
| 2368 | + <date_format_lenient>false</date_format_lenient> | ||
| 2369 | + <date_format_locale/> | ||
| 2370 | + <date_format_timezone/> | ||
| 2371 | + <lenient_string_to_number>false</lenient_string_to_number> | ||
| 2372 | + <encoding/> | ||
| 2373 | + <decimal_symbol/> | ||
| 2374 | + <grouping_symbol/> | ||
| 2375 | + <currency_symbol/> | ||
| 2376 | + <storage_type/> | ||
| 2377 | + </meta> </fields> <cluster_schema/> | ||
| 2378 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 2379 | + <xloc>338</xloc> | ||
| 2380 | + <yloc>949</yloc> | ||
| 2381 | + <draw>Y</draw> | ||
| 2382 | + </GUI> | ||
| 2383 | + </step> | ||
| 2384 | + | ||
| 2385 | + <step> | ||
| 2386 | + <name>类型修正 3</name> | ||
| 2387 | + <type>SelectValues</type> | ||
| 2388 | + <description/> | ||
| 2389 | + <distribute>Y</distribute> | ||
| 2390 | + <custom_distribution/> | ||
| 2391 | + <copies>1</copies> | ||
| 2392 | + <partitioning> | ||
| 2393 | + <method>none</method> | ||
| 2394 | + <schema_name/> | ||
| 2395 | + </partitioning> | ||
| 2396 | + <fields> <select_unspecified>N</select_unspecified> | ||
| 2397 | + <meta> <name>parade_mileage</name> | ||
| 2398 | + <rename>parade_mileage</rename> | ||
| 2399 | + <type>Number</type> | ||
| 2400 | + <length>-2</length> | ||
| 2401 | + <precision>-2</precision> | ||
| 2402 | + <conversion_mask/> | ||
| 2403 | + <date_format_lenient>false</date_format_lenient> | ||
| 2404 | + <date_format_locale/> | ||
| 2405 | + <date_format_timezone/> | ||
| 2406 | + <lenient_string_to_number>false</lenient_string_to_number> | ||
| 2407 | + <encoding/> | ||
| 2408 | + <decimal_symbol/> | ||
| 2409 | + <grouping_symbol/> | ||
| 2410 | + <currency_symbol/> | ||
| 2411 | + <storage_type/> | ||
| 2412 | + </meta> <meta> <name>parade_time</name> | ||
| 2413 | + <rename>parade_time</rename> | ||
| 2414 | + <type>Integer</type> | ||
| 2415 | + <length>-2</length> | ||
| 2416 | + <precision>-2</precision> | ||
| 2417 | + <conversion_mask/> | ||
| 2418 | + <date_format_lenient>false</date_format_lenient> | ||
| 2419 | + <date_format_locale/> | ||
| 2420 | + <date_format_timezone/> | ||
| 2421 | + <lenient_string_to_number>false</lenient_string_to_number> | ||
| 2422 | + <encoding/> | ||
| 2423 | + <decimal_symbol/> | ||
| 2424 | + <grouping_symbol/> | ||
| 2425 | + <currency_symbol/> | ||
| 2426 | + <storage_type/> | ||
| 2427 | + </meta> </fields> <cluster_schema/> | ||
| 2428 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 2429 | + <xloc>875</xloc> | ||
| 2430 | + <yloc>1001</yloc> | ||
| 2431 | + <draw>Y</draw> | ||
| 2432 | + </GUI> | ||
| 2433 | + </step> | ||
| 2434 | + | ||
| 2435 | + <step> | ||
| 2204 | <name>计算班次类型</name> | 2436 | <name>计算班次类型</name> |
| 2205 | <type>ValueMapper</type> | 2437 | <type>ValueMapper</type> |
| 2206 | <description/> | 2438 | <description/> |
| @@ -2353,242 +2585,10 @@ | @@ -2353,242 +2585,10 @@ | ||
| 2353 | </GUI> | 2585 | </GUI> |
| 2354 | </step> | 2586 | </step> |
| 2355 | 2587 | ||
| 2356 | - <step> | ||
| 2357 | - <name>查找进场起点站关联确定上下行</name> | ||
| 2358 | - <type>DBLookup</type> | ||
| 2359 | - <description/> | ||
| 2360 | - <distribute>Y</distribute> | ||
| 2361 | - <custom_distribution/> | ||
| 2362 | - <copies>1</copies> | ||
| 2363 | - <partitioning> | ||
| 2364 | - <method>none</method> | ||
| 2365 | - <schema_name/> | ||
| 2366 | - </partitioning> | ||
| 2367 | - <connection>bus_control_variable</connection> | ||
| 2368 | - <cache>N</cache> | ||
| 2369 | - <cache_load_all>N</cache_load_all> | ||
| 2370 | - <cache_size>0</cache_size> | ||
| 2371 | - <lookup> | ||
| 2372 | - <schema/> | ||
| 2373 | - <table>bsth_c_stationroute</table> | ||
| 2374 | - <orderby/> | ||
| 2375 | - <fail_on_multiple>N</fail_on_multiple> | ||
| 2376 | - <eat_row_on_failure>N</eat_row_on_failure> | ||
| 2377 | - <key> | ||
| 2378 | - <name>xlid</name> | ||
| 2379 | - <field>line</field> | ||
| 2380 | - <condition>=</condition> | ||
| 2381 | - <name2/> | ||
| 2382 | - </key> | ||
| 2383 | - <key> | ||
| 2384 | - <name>zdzname_calcu</name> | ||
| 2385 | - <field>station_name</field> | ||
| 2386 | - <condition>=</condition> | ||
| 2387 | - <name2/> | ||
| 2388 | - </key> | ||
| 2389 | - <key> | ||
| 2390 | - <name>startZdtype_calcu</name> | ||
| 2391 | - <field>station_mark</field> | ||
| 2392 | - <condition>=</condition> | ||
| 2393 | - <name2/> | ||
| 2394 | - </key> | ||
| 2395 | - <value> | ||
| 2396 | - <name>directions</name> | ||
| 2397 | - <rename>sxx2</rename> | ||
| 2398 | - <default/> | ||
| 2399 | - <type>Integer</type> | ||
| 2400 | - </value> | ||
| 2401 | - <value> | ||
| 2402 | - <name>station</name> | ||
| 2403 | - <rename>qdzid</rename> | ||
| 2404 | - <default/> | ||
| 2405 | - <type>Integer</type> | ||
| 2406 | - </value> | ||
| 2407 | - </lookup> | ||
| 2408 | - <cluster_schema/> | ||
| 2409 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 2410 | - <xloc>551</xloc> | ||
| 2411 | - <yloc>782</yloc> | ||
| 2412 | - <draw>Y</draw> | ||
| 2413 | - </GUI> | ||
| 2414 | - </step> | ||
| 2415 | - | ||
| 2416 | - <step> | ||
| 2417 | - <name>匹配出场班次里程时间</name> | ||
| 2418 | - <type>ScriptValueMod</type> | ||
| 2419 | - <description/> | ||
| 2420 | - <distribute>Y</distribute> | ||
| 2421 | - <custom_distribution/> | ||
| 2422 | - <copies>1</copies> | ||
| 2423 | - <partitioning> | ||
| 2424 | - <method>none</method> | ||
| 2425 | - <schema_name/> | ||
| 2426 | - </partitioning> | ||
| 2427 | - <compatible>N</compatible> | ||
| 2428 | - <optimizationLevel>9</optimizationLevel> | ||
| 2429 | - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> | ||
| 2430 | - <jsScript_name>Script 1</jsScript_name> | ||
| 2431 | - <jsScript_script>//Script here

var out_mileage; // 出场计划里程
var out_time; // 出场计划时间

if (sxx == 0) { // 上行
 out_mileage = up_out_mileage;
 out_time = up_out_timer;
} else { // sxx == 1 下行
 out_mileage = down_out_mileage;
 out_time = down_out_timer;
}



</jsScript_script> | ||
| 2432 | - </jsScript> </jsScripts> <fields> <field> <name>out_mileage</name> | ||
| 2433 | - <rename>out_mileage</rename> | ||
| 2434 | - <type>String</type> | ||
| 2435 | - <length>-1</length> | ||
| 2436 | - <precision>-1</precision> | ||
| 2437 | - <replace>N</replace> | ||
| 2438 | - </field> <field> <name>out_time</name> | ||
| 2439 | - <rename>out_time</rename> | ||
| 2440 | - <type>String</type> | ||
| 2441 | - <length>-1</length> | ||
| 2442 | - <precision>-1</precision> | ||
| 2443 | - <replace>N</replace> | ||
| 2444 | - </field> </fields> <cluster_schema/> | ||
| 2445 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 2446 | - <xloc>336</xloc> | ||
| 2447 | - <yloc>862</yloc> | ||
| 2448 | - <draw>Y</draw> | ||
| 2449 | - </GUI> | ||
| 2450 | - </step> | ||
| 2451 | - | ||
| 2452 | - <step> | ||
| 2453 | - <name>类型修正 2</name> | ||
| 2454 | - <type>SelectValues</type> | ||
| 2455 | - <description/> | ||
| 2456 | - <distribute>Y</distribute> | ||
| 2457 | - <custom_distribution/> | ||
| 2458 | - <copies>1</copies> | ||
| 2459 | - <partitioning> | ||
| 2460 | - <method>none</method> | ||
| 2461 | - <schema_name/> | ||
| 2462 | - </partitioning> | ||
| 2463 | - <fields> <select_unspecified>N</select_unspecified> | ||
| 2464 | - <meta> <name>out_mileage</name> | ||
| 2465 | - <rename>out_mileage</rename> | ||
| 2466 | - <type>Number</type> | ||
| 2467 | - <length>-2</length> | ||
| 2468 | - <precision>-2</precision> | ||
| 2469 | - <conversion_mask/> | ||
| 2470 | - <date_format_lenient>false</date_format_lenient> | ||
| 2471 | - <date_format_locale/> | ||
| 2472 | - <date_format_timezone/> | ||
| 2473 | - <lenient_string_to_number>false</lenient_string_to_number> | ||
| 2474 | - <encoding/> | ||
| 2475 | - <decimal_symbol/> | ||
| 2476 | - <grouping_symbol/> | ||
| 2477 | - <currency_symbol/> | ||
| 2478 | - <storage_type/> | ||
| 2479 | - </meta> <meta> <name>out_time</name> | ||
| 2480 | - <rename>out_time</rename> | ||
| 2481 | - <type>Integer</type> | ||
| 2482 | - <length>-2</length> | ||
| 2483 | - <precision>-2</precision> | ||
| 2484 | - <conversion_mask/> | ||
| 2485 | - <date_format_lenient>false</date_format_lenient> | ||
| 2486 | - <date_format_locale/> | ||
| 2487 | - <date_format_timezone/> | ||
| 2488 | - <lenient_string_to_number>false</lenient_string_to_number> | ||
| 2489 | - <encoding/> | ||
| 2490 | - <decimal_symbol/> | ||
| 2491 | - <grouping_symbol/> | ||
| 2492 | - <currency_symbol/> | ||
| 2493 | - <storage_type/> | ||
| 2494 | - </meta> </fields> <cluster_schema/> | ||
| 2495 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 2496 | - <xloc>338</xloc> | ||
| 2497 | - <yloc>949</yloc> | ||
| 2498 | - <draw>Y</draw> | ||
| 2499 | - </GUI> | ||
| 2500 | - </step> | ||
| 2501 | - | ||
| 2502 | - <step> | ||
| 2503 | - <name>匹配进场班次里程时间</name> | ||
| 2504 | - <type>ScriptValueMod</type> | ||
| 2505 | - <description/> | ||
| 2506 | - <distribute>Y</distribute> | ||
| 2507 | - <custom_distribution/> | ||
| 2508 | - <copies>1</copies> | ||
| 2509 | - <partitioning> | ||
| 2510 | - <method>none</method> | ||
| 2511 | - <schema_name/> | ||
| 2512 | - </partitioning> | ||
| 2513 | - <compatible>N</compatible> | ||
| 2514 | - <optimizationLevel>9</optimizationLevel> | ||
| 2515 | - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> | ||
| 2516 | - <jsScript_name>Script 1</jsScript_name> | ||
| 2517 | - <jsScript_script>//Script here

var parade_mileage; // 进场计划里程
var parade_time; // 进场计划时间

if (sxx2 == 0) { // 上行
 parade_mileage = up_in_mileage;
 parade_time = up_in_timer;
} else { // sxx == 1 下行
 parade_mileage = down_in_mileage;
 parade_time = down_in_timer;
}



</jsScript_script> | ||
| 2518 | - </jsScript> </jsScripts> <fields> <field> <name>parade_mileage</name> | ||
| 2519 | - <rename>parade_mileage</rename> | ||
| 2520 | - <type>String</type> | ||
| 2521 | - <length>-1</length> | ||
| 2522 | - <precision>-1</precision> | ||
| 2523 | - <replace>N</replace> | ||
| 2524 | - </field> <field> <name>parade_time</name> | ||
| 2525 | - <rename>parade_time</rename> | ||
| 2526 | - <type>String</type> | ||
| 2527 | - <length>-1</length> | ||
| 2528 | - <precision>-1</precision> | ||
| 2529 | - <replace>N</replace> | ||
| 2530 | - </field> </fields> <cluster_schema/> | ||
| 2531 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 2532 | - <xloc>726</xloc> | ||
| 2533 | - <yloc>1005</yloc> | ||
| 2534 | - <draw>Y</draw> | ||
| 2535 | - </GUI> | ||
| 2536 | - </step> | ||
| 2537 | - | ||
| 2538 | - <step> | ||
| 2539 | - <name>类型修正 3</name> | ||
| 2540 | - <type>SelectValues</type> | ||
| 2541 | - <description/> | ||
| 2542 | - <distribute>Y</distribute> | ||
| 2543 | - <custom_distribution/> | ||
| 2544 | - <copies>1</copies> | ||
| 2545 | - <partitioning> | ||
| 2546 | - <method>none</method> | ||
| 2547 | - <schema_name/> | ||
| 2548 | - </partitioning> | ||
| 2549 | - <fields> <select_unspecified>N</select_unspecified> | ||
| 2550 | - <meta> <name>parade_mileage</name> | ||
| 2551 | - <rename>parade_mileage</rename> | ||
| 2552 | - <type>Number</type> | ||
| 2553 | - <length>-2</length> | ||
| 2554 | - <precision>-2</precision> | ||
| 2555 | - <conversion_mask/> | ||
| 2556 | - <date_format_lenient>false</date_format_lenient> | ||
| 2557 | - <date_format_locale/> | ||
| 2558 | - <date_format_timezone/> | ||
| 2559 | - <lenient_string_to_number>false</lenient_string_to_number> | ||
| 2560 | - <encoding/> | ||
| 2561 | - <decimal_symbol/> | ||
| 2562 | - <grouping_symbol/> | ||
| 2563 | - <currency_symbol/> | ||
| 2564 | - <storage_type/> | ||
| 2565 | - </meta> <meta> <name>parade_time</name> | ||
| 2566 | - <rename>parade_time</rename> | ||
| 2567 | - <type>Integer</type> | ||
| 2568 | - <length>-2</length> | ||
| 2569 | - <precision>-2</precision> | ||
| 2570 | - <conversion_mask/> | ||
| 2571 | - <date_format_lenient>false</date_format_lenient> | ||
| 2572 | - <date_format_locale/> | ||
| 2573 | - <date_format_timezone/> | ||
| 2574 | - <lenient_string_to_number>false</lenient_string_to_number> | ||
| 2575 | - <encoding/> | ||
| 2576 | - <decimal_symbol/> | ||
| 2577 | - <grouping_symbol/> | ||
| 2578 | - <currency_symbol/> | ||
| 2579 | - <storage_type/> | ||
| 2580 | - </meta> </fields> <cluster_schema/> | ||
| 2581 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | ||
| 2582 | - <xloc>875</xloc> | ||
| 2583 | - <yloc>1001</yloc> | ||
| 2584 | - <draw>Y</draw> | ||
| 2585 | - </GUI> | ||
| 2586 | - </step> | ||
| 2587 | - | ||
| 2588 | <step_error_handling> | 2588 | <step_error_handling> |
| 2589 | </step_error_handling> | 2589 | </step_error_handling> |
| 2590 | <slave-step-copy-partition-distribution> | 2590 | <slave-step-copy-partition-distribution> |
| 2591 | </slave-step-copy-partition-distribution> | 2591 | </slave-step-copy-partition-distribution> |
| 2592 | <slave_transformation>N</slave_transformation> | 2592 | <slave_transformation>N</slave_transformation> |
| 2593 | 2593 | ||
| 2594 | -</transformation> | ||
| 2595 | \ No newline at end of file | 2594 | \ No newline at end of file |
| 2595 | +</transformation> |
src/main/resources/datatools/ktrs/ttinfodetailMetaData.ktr
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
| 11 | <parameters> | 11 | <parameters> |
| 12 | <parameter> | 12 | <parameter> |
| 13 | <name>erroroutputdir</name> | 13 | <name>erroroutputdir</name> |
| 14 | - <default_value>/Users/xu/resource/project/bsth_control_u_d_files/erroroutput</default_value> | 14 | + <default_value>/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/erroroutput</default_value> |
| 15 | <description>ktr step配置的错误输出目录</description> | 15 | <description>ktr step配置的错误输出目录</description> |
| 16 | </parameter> | 16 | </parameter> |
| 17 | <parameter> | 17 | <parameter> |
| @@ -21,12 +21,12 @@ | @@ -21,12 +21,12 @@ | ||
| 21 | </parameter> | 21 | </parameter> |
| 22 | <parameter> | 22 | <parameter> |
| 23 | <name>filepath</name> | 23 | <name>filepath</name> |
| 24 | - <default_value>/Users/xu/resource/project/bsth_control_etl/闵行公交/闵行26路时刻表160630时刻表.xls</default_value> | 24 | + <default_value>/Users/xu/resource/project_code/bsth_project/bsth_control_etl/闵行公交/闵行26路时刻表160630时刻表.xls</default_value> |
| 25 | <description>待处理导入的excel文件</description> | 25 | <description>待处理导入的excel文件</description> |
| 26 | </parameter> | 26 | </parameter> |
| 27 | <parameter> | 27 | <parameter> |
| 28 | <name>injectktrfile</name> | 28 | <name>injectktrfile</name> |
| 29 | - <default_value>/Users/xu/resource/project/bsth_control/src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr</default_value> | 29 | + <default_value>/Users/xu/resource/project_code/bsth_project/bsth_control/src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr</default_value> |
| 30 | <description>注入元数据的ktr文件</description> | 30 | <description>注入元数据的ktr文件</description> |
| 31 | </parameter> | 31 | </parameter> |
| 32 | <parameter> | 32 | <parameter> |
| @@ -35,6 +35,11 @@ | @@ -35,6 +35,11 @@ | ||
| 35 | <description>数据范式化字段名,以逗号连接</description> | 35 | <description>数据范式化字段名,以逗号连接</description> |
| 36 | </parameter> | 36 | </parameter> |
| 37 | <parameter> | 37 | <parameter> |
| 38 | + <name>sheetname</name> | ||
| 39 | + <default_value>工作表1</default_value> | ||
| 40 | + <description/> | ||
| 41 | + </parameter> | ||
| 42 | + <parameter> | ||
| 38 | <name>tccname</name> | 43 | <name>tccname</name> |
| 39 | <default_value>东川路地铁站停车场</default_value> | 44 | <default_value>东川路地铁站停车场</default_value> |
| 40 | <description>停车场名字</description> | 45 | <description>停车场名字</description> |
| @@ -338,6 +343,56 @@ | @@ -338,6 +343,56 @@ | ||
| 338 | <target_detail>Y</target_detail> | 343 | <target_detail>Y</target_detail> |
| 339 | <source_step>获取excel文件名</source_step> | 344 | <source_step>获取excel文件名</source_step> |
| 340 | <source_field>filepath_</source_field> | 345 | <source_field>filepath_</source_field> |
| 346 | + </mapping> <mapping> <target_step_name>行转列</target_step_name> | ||
| 347 | + <target_attribute_key>NAME</target_attribute_key> | ||
| 348 | + <target_detail>Y</target_detail> | ||
| 349 | + <source_step>列拆分为多行 2</source_step> | ||
| 350 | + <source_field>fieldName</source_field> | ||
| 351 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | ||
| 352 | + <target_attribute_key>NAME</target_attribute_key> | ||
| 353 | + <target_detail>Y</target_detail> | ||
| 354 | + <source_step>增加excel字段其他元数据</source_step> | ||
| 355 | + <source_field>fieldname</source_field> | ||
| 356 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | ||
| 357 | + <target_attribute_key>SHEET_NAME</target_attribute_key> | ||
| 358 | + <target_detail>Y</target_detail> | ||
| 359 | + <source_step>获取excel文件名</source_step> | ||
| 360 | + <source_field>sheetname_</source_field> | ||
| 361 | + </mapping> <mapping> <target_step_name>增加时刻表名字,线路名字,停车场名字</target_step_name> | ||
| 362 | + <target_attribute_key>NAME</target_attribute_key> | ||
| 363 | + <target_detail>Y</target_detail> | ||
| 364 | + <source_step>合并增加常量数据metadata</source_step> | ||
| 365 | + <source_field>col_name</source_field> | ||
| 366 | + </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | ||
| 367 | + <target_attribute_key>NAME</target_attribute_key> | ||
| 368 | + <target_detail>Y</target_detail> | ||
| 369 | + <source_step>列拆分为多行</source_step> | ||
| 370 | + <source_field>fieldName</source_field> | ||
| 371 | + </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | ||
| 372 | + <target_attribute_key>TRIM_TYPE</target_attribute_key> | ||
| 373 | + <target_detail>Y</target_detail> | ||
| 374 | + <source_step>列拆分为多行</source_step> | ||
| 375 | + <source_field>trim_type</source_field> | ||
| 376 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | ||
| 377 | + <target_attribute_key>REPEAT</target_attribute_key> | ||
| 378 | + <target_detail>Y</target_detail> | ||
| 379 | + <source_step>增加excel字段其他元数据</source_step> | ||
| 380 | + <source_field>repeat</source_field> | ||
| 381 | + </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | ||
| 382 | + <target_attribute_key>NORMALISED</target_attribute_key> | ||
| 383 | + <target_detail>Y</target_detail> | ||
| 384 | + <source_step>增加normalize元数据</source_step> | ||
| 385 | + <source_field>valuefield</source_field> | ||
| 386 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | ||
| 387 | + <target_attribute_key>FORMAT</target_attribute_key> | ||
| 388 | + <target_detail>Y</target_detail> | ||
| 389 | + <source_step>增加excel字段其他元数据</source_step> | ||
| 390 | + <source_field>format</source_field> | ||
| 391 | + </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | ||
| 392 | + <target_attribute_key>VALUE</target_attribute_key> | ||
| 393 | + <target_detail>Y</target_detail> | ||
| 394 | + <source_step>增加normalize元数据</source_step> | ||
| 395 | + <source_field>nfieldname</source_field> | ||
| 341 | </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | 396 | </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> |
| 342 | <target_attribute_key>PRECISION</target_attribute_key> | 397 | <target_attribute_key>PRECISION</target_attribute_key> |
| 343 | <target_detail>Y</target_detail> | 398 | <target_detail>Y</target_detail> |
| @@ -363,16 +418,6 @@ | @@ -363,16 +418,6 @@ | ||
| 363 | <target_detail>Y</target_detail> | 418 | <target_detail>Y</target_detail> |
| 364 | <source_step>合并增加常量数据metadata</source_step> | 419 | <source_step>合并增加常量数据metadata</source_step> |
| 365 | <source_field>col_type</source_field> | 420 | <source_field>col_type</source_field> |
| 366 | - </mapping> <mapping> <target_step_name>行转列</target_step_name> | ||
| 367 | - <target_attribute_key>NAME</target_attribute_key> | ||
| 368 | - <target_detail>Y</target_detail> | ||
| 369 | - <source_step>列拆分为多行 2</source_step> | ||
| 370 | - <source_field>fieldName</source_field> | ||
| 371 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | ||
| 372 | - <target_attribute_key>NAME</target_attribute_key> | ||
| 373 | - <target_detail>Y</target_detail> | ||
| 374 | - <source_step>增加excel字段其他元数据</source_step> | ||
| 375 | - <source_field>fieldname</source_field> | ||
| 376 | </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | 421 | </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> |
| 377 | <target_attribute_key>NAME</target_attribute_key> | 422 | <target_attribute_key>NAME</target_attribute_key> |
| 378 | <target_detail>Y</target_detail> | 423 | <target_detail>Y</target_detail> |
| @@ -383,56 +428,21 @@ | @@ -383,56 +428,21 @@ | ||
| 383 | <target_detail>Y</target_detail> | 428 | <target_detail>Y</target_detail> |
| 384 | <source_step>增加excel字段其他元数据</source_step> | 429 | <source_step>增加excel字段其他元数据</source_step> |
| 385 | <source_field>length</source_field> | 430 | <source_field>length</source_field> |
| 386 | - </mapping> <mapping> <target_step_name>增加时刻表名字,线路名字,停车场名字</target_step_name> | ||
| 387 | - <target_attribute_key>NAME</target_attribute_key> | ||
| 388 | - <target_detail>Y</target_detail> | ||
| 389 | - <source_step>合并增加常量数据metadata</source_step> | ||
| 390 | - <source_field>col_name</source_field> | ||
| 391 | </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | 431 | </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> |
| 392 | <target_attribute_key>TYPE</target_attribute_key> | 432 | <target_attribute_key>TYPE</target_attribute_key> |
| 393 | <target_detail>Y</target_detail> | 433 | <target_detail>Y</target_detail> |
| 394 | <source_step>增加excel字段其他元数据</source_step> | 434 | <source_step>增加excel字段其他元数据</source_step> |
| 395 | <source_field>fieldtype</source_field> | 435 | <source_field>fieldtype</source_field> |
| 396 | - </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | ||
| 397 | - <target_attribute_key>NAME</target_attribute_key> | ||
| 398 | - <target_detail>Y</target_detail> | ||
| 399 | - <source_step>列拆分为多行</source_step> | ||
| 400 | - <source_field>fieldName</source_field> | ||
| 401 | </mapping> <mapping> <target_step_name>行转列</target_step_name> | 436 | </mapping> <mapping> <target_step_name>行转列</target_step_name> |
| 402 | <target_attribute_key>VALUE</target_attribute_key> | 437 | <target_attribute_key>VALUE</target_attribute_key> |
| 403 | <target_detail>Y</target_detail> | 438 | <target_detail>Y</target_detail> |
| 404 | <source_step>列拆分为多行 2</source_step> | 439 | <source_step>列拆分为多行 2</source_step> |
| 405 | <source_field>fieldName</source_field> | 440 | <source_field>fieldName</source_field> |
| 406 | - </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | ||
| 407 | - <target_attribute_key>TRIM_TYPE</target_attribute_key> | ||
| 408 | - <target_detail>Y</target_detail> | ||
| 409 | - <source_step>列拆分为多行</source_step> | ||
| 410 | - <source_field>trim_type</source_field> | ||
| 411 | </mapping> <mapping> <target_step_name>行转列</target_step_name> | 441 | </mapping> <mapping> <target_step_name>行转列</target_step_name> |
| 412 | <target_attribute_key>NORMALISED</target_attribute_key> | 442 | <target_attribute_key>NORMALISED</target_attribute_key> |
| 413 | <target_detail>Y</target_detail> | 443 | <target_detail>Y</target_detail> |
| 414 | <source_step>列拆分为多行 2</source_step> | 444 | <source_step>列拆分为多行 2</source_step> |
| 415 | <source_field>value</source_field> | 445 | <source_field>value</source_field> |
| 416 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | ||
| 417 | - <target_attribute_key>REPEAT</target_attribute_key> | ||
| 418 | - <target_detail>Y</target_detail> | ||
| 419 | - <source_step>增加excel字段其他元数据</source_step> | ||
| 420 | - <source_field>repeat</source_field> | ||
| 421 | - </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | ||
| 422 | - <target_attribute_key>NORMALISED</target_attribute_key> | ||
| 423 | - <target_detail>Y</target_detail> | ||
| 424 | - <source_step>增加normalize元数据</source_step> | ||
| 425 | - <source_field>valuefield</source_field> | ||
| 426 | - </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | ||
| 427 | - <target_attribute_key>VALUE</target_attribute_key> | ||
| 428 | - <target_detail>Y</target_detail> | ||
| 429 | - <source_step>增加normalize元数据</source_step> | ||
| 430 | - <source_field>nfieldname</source_field> | ||
| 431 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | ||
| 432 | - <target_attribute_key>FORMAT</target_attribute_key> | ||
| 433 | - <target_detail>Y</target_detail> | ||
| 434 | - <source_step>增加excel字段其他元数据</source_step> | ||
| 435 | - <source_field>format</source_field> | ||
| 436 | </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | 446 | </mapping> <mapping> <target_step_name>Excel输入</target_step_name> |
| 437 | <target_attribute_key>PRECISION</target_attribute_key> | 447 | <target_attribute_key>PRECISION</target_attribute_key> |
| 438 | <target_detail>Y</target_detail> | 448 | <target_detail>Y</target_detail> |
| @@ -1002,10 +1012,22 @@ | @@ -1002,10 +1012,22 @@ | ||
| 1002 | <precision>-1</precision> | 1012 | <precision>-1</precision> |
| 1003 | <trim_type>none</trim_type> | 1013 | <trim_type>none</trim_type> |
| 1004 | </field> | 1014 | </field> |
| 1015 | + <field> | ||
| 1016 | + <name>sheetname_</name> | ||
| 1017 | + <variable>${sheetname}</variable> | ||
| 1018 | + <type>String</type> | ||
| 1019 | + <format/> | ||
| 1020 | + <currency/> | ||
| 1021 | + <decimal/> | ||
| 1022 | + <group/> | ||
| 1023 | + <length>-1</length> | ||
| 1024 | + <precision>-1</precision> | ||
| 1025 | + <trim_type>none</trim_type> | ||
| 1026 | + </field> | ||
| 1005 | </fields> | 1027 | </fields> |
| 1006 | <cluster_schema/> | 1028 | <cluster_schema/> |
| 1007 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | 1029 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 1008 | - <xloc>73</xloc> | 1030 | + <xloc>120</xloc> |
| 1009 | <yloc>62</yloc> | 1031 | <yloc>62</yloc> |
| 1010 | <draw>Y</draw> | 1032 | <draw>Y</draw> |
| 1011 | </GUI> | 1033 | </GUI> |
src/main/resources/ms-jdbc.properties
| @@ -6,4 +6,4 @@ ms.mysql.password= 123456 | @@ -6,4 +6,4 @@ ms.mysql.password= 123456 | ||
| 6 | #ms.mysql.driver= com.mysql.jdbc.Driver | 6 | #ms.mysql.driver= com.mysql.jdbc.Driver |
| 7 | #ms.mysql.url= jdbc:mysql://192.168.168.171:3306/ms?useUnicode=true&characterEncoding=utf-8 | 7 | #ms.mysql.url= jdbc:mysql://192.168.168.171:3306/ms?useUnicode=true&characterEncoding=utf-8 |
| 8 | #ms.mysql.username= root | 8 | #ms.mysql.username= root |
| 9 | -#ms.mysql.password= root2jsp | 9 | +#ms.mysql.password= root2jsp |
| 10 | \ No newline at end of file | 10 | \ No newline at end of file |
src/main/resources/static/pages/control/lineallot/allot.html
| @@ -163,8 +163,8 @@ | @@ -163,8 +163,8 @@ | ||
| 163 | <a href="javascript:;" class="btn btn-lg blue gotoControl red" data-status=1> | 163 | <a href="javascript:;" class="btn btn-lg blue gotoControl red" data-status=1> |
| 164 | <i class="fa fa-power-off"></i> 主调模式 </a> | 164 | <i class="fa fa-power-off"></i> 主调模式 </a> |
| 165 | 165 | ||
| 166 | - <!-- <a href="javascript:;" id="monitor" class="btn btn-lg grey gotoControl" data-status=0> | ||
| 167 | - <i class="fa fa-tv"></i> 监控模式 </a> --> | 166 | + <a href="javascript:;" id="monitor" class="btn btn-lg grey gotoControl" data-status=0> |
| 167 | + <i class="fa fa-tv"></i> 监控模式 </a> | ||
| 168 | | 168 | |
| 169 | <a href="javascript:;" id="resetBtn" style="left: 120px;color: #3598DC;"> | 169 | <a href="javascript:;" id="resetBtn" style="left: 120px;color: #3598DC;"> |
| 170 | <i class="fa fa-history"></i> 重置</a> | 170 | <i class="fa fa-history"></i> 重置</a> |
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/list.html
| @@ -4,9 +4,9 @@ | @@ -4,9 +4,9 @@ | ||
| 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> | 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> |
| 5 | <thead> | 5 | <thead> |
| 6 | <tr role="row" class="heading"> | 6 | <tr role="row" class="heading"> |
| 7 | - <th style="width: 5%;">序号</th> | ||
| 8 | - <th >车辆编号</th> | ||
| 9 | - <th >内部编号</th> | 7 | + <th style="width: 50px;">序号</th> |
| 8 | + <th style="width: 130px;">车辆编号</th> | ||
| 9 | + <th style="width: 130px;">内部编号</th> | ||
| 10 | <th >设备编号</th> | 10 | <th >设备编号</th> |
| 11 | <th >车牌号</th> | 11 | <th >车牌号</th> |
| 12 | <th style="width: 15%;">所在公司</th> | 12 | <th style="width: 15%;">所在公司</th> |
| @@ -17,16 +17,14 @@ | @@ -17,16 +17,14 @@ | ||
| 17 | <tr role="row" class="filter"> | 17 | <tr role="row" class="filter"> |
| 18 | <td></td> | 18 | <td></td> |
| 19 | <td> | 19 | <td> |
| 20 | - <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().carCode_like"/> | 20 | + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().carCode_like" placeholder="输入车辆编号..."/> |
| 21 | </td> | 21 | </td> |
| 22 | <td> | 22 | <td> |
| 23 | - <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().insideCode_like"/> | 23 | + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().insideCode_like" placeholder="输入内部编号..."/> |
| 24 | </td> | 24 | </td> |
| 25 | <td> | 25 | <td> |
| 26 | - <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().equipmentCode_like"/> | ||
| 27 | </td> | 26 | </td> |
| 28 | <td> | 27 | <td> |
| 29 | - <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().carPlate_like"/> | ||
| 30 | </td> | 28 | </td> |
| 31 | <td> | 29 | <td> |
| 32 | <div> | 30 | <div> |
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/edit.html
| @@ -42,7 +42,7 @@ | @@ -42,7 +42,7 @@ | ||
| 42 | cmaps="{'xl': 'id', 'xlName': 'name', 'xlBm': 'lineCode'}" | 42 | cmaps="{'xl': 'id', 'xlName': 'name', 'xlBm': 'lineCode'}" |
| 43 | dcname="xl" | 43 | dcname="xl" |
| 44 | icname="id" | 44 | icname="id" |
| 45 | - dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}" | 45 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 46 | iterobjname="item" | 46 | iterobjname="item" |
| 47 | iterobjexp="item.name" | 47 | iterobjexp="item.name" |
| 48 | searchph="请输拼音..." | 48 | searchph="请输拼音..." |
| @@ -147,7 +147,7 @@ | @@ -147,7 +147,7 @@ | ||
| 147 | ng-model="ctrl.deviceInfoForSave.qyrq" readonly | 147 | ng-model="ctrl.deviceInfoForSave.qyrq" readonly |
| 148 | remote-Validation | 148 | remote-Validation |
| 149 | remotevtype="cde1" | 149 | remotevtype="cde1" |
| 150 | - remotevparam="{{ {'qyrq': ctrl.deviceInfoForSave.qyrq} | json}}"/> | 150 | + remotevparam="{{ {'qyrq': ctrl.deviceInfoForSave.qyrq, 'xl': ctrl.deviceInfoForSave.xl, 'cl': ctrl.deviceInfoForSave.cl} | json}}"/> |
| 151 | <span class="input-group-btn"> | 151 | <span class="input-group-btn"> |
| 152 | <button type="button" class="btn btn-default" ng-click="ctrl.qyrq_open()"> | 152 | <button type="button" class="btn btn-default" ng-click="ctrl.qyrq_open()"> |
| 153 | <i class="glyphicon glyphicon-calendar"></i> | 153 | <i class="glyphicon glyphicon-calendar"></i> |
| @@ -159,6 +159,9 @@ | @@ -159,6 +159,9 @@ | ||
| 159 | <div class="alert alert-danger well-sm" ng-show="myForm.qyrq.$error.required"> | 159 | <div class="alert alert-danger well-sm" ng-show="myForm.qyrq.$error.required"> |
| 160 | 启用日期必须选择 | 160 | 启用日期必须选择 |
| 161 | </div> | 161 | </div> |
| 162 | + <div class="alert alert-danger well-sm" ng-show="myForm.qyrq.$error.remote"> | ||
| 163 | + 启用日期必须比历史的启用日期大 | ||
| 164 | + </div> | ||
| 162 | </div> | 165 | </div> |
| 163 | 166 | ||
| 164 | <!-- 其他form-group --> | 167 | <!-- 其他form-group --> |
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/form.html
| @@ -42,7 +42,7 @@ | @@ -42,7 +42,7 @@ | ||
| 42 | cmaps="{'xl': 'id', 'xlName': 'name', 'xlBm': 'lineCode'}" | 42 | cmaps="{'xl': 'id', 'xlName': 'name', 'xlBm': 'lineCode'}" |
| 43 | dcname="xl" | 43 | dcname="xl" |
| 44 | icname="id" | 44 | icname="id" |
| 45 | - dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}" | 45 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 46 | iterobjname="item" | 46 | iterobjname="item" |
| 47 | iterobjexp="item.name" | 47 | iterobjexp="item.name" |
| 48 | searchph="请输拼音..." | 48 | searchph="请输拼音..." |
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/index.html
| @@ -32,21 +32,21 @@ | @@ -32,21 +32,21 @@ | ||
| 32 | 添加设备信息 | 32 | 添加设备信息 |
| 33 | </a> | 33 | </a> |
| 34 | 34 | ||
| 35 | - <div class="btn-group"> | ||
| 36 | - <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown"> | ||
| 37 | - <i class="fa fa-share"></i> | ||
| 38 | - <span>数据工具</span> | ||
| 39 | - <i class="fa fa-angle-down"></i> | ||
| 40 | - </a> | ||
| 41 | - <ul class="dropdown-menu pull-right"> | ||
| 42 | - <li> | ||
| 43 | - <a href="javascript:" class="tool-action"> | ||
| 44 | - <i class="fa fa-file-excel-o"></i> | ||
| 45 | - 导出excel | ||
| 46 | - </a> | ||
| 47 | - </li> | ||
| 48 | - </ul> | ||
| 49 | - </div> | 35 | + <!--<div class="btn-group">--> |
| 36 | + <!--<a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">--> | ||
| 37 | + <!--<i class="fa fa-share"></i>--> | ||
| 38 | + <!--<span>数据工具</span>--> | ||
| 39 | + <!--<i class="fa fa-angle-down"></i>--> | ||
| 40 | + <!--</a>--> | ||
| 41 | + <!--<ul class="dropdown-menu pull-right">--> | ||
| 42 | + <!--<li>--> | ||
| 43 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 44 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 45 | + <!--导出excel--> | ||
| 46 | + <!--</a>--> | ||
| 47 | + <!--</li>--> | ||
| 48 | + <!--</ul>--> | ||
| 49 | + <!--</div>--> | ||
| 50 | </div> | 50 | </div> |
| 51 | </div> | 51 | </div> |
| 52 | 52 |
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/list.html
| @@ -4,9 +4,9 @@ | @@ -4,9 +4,9 @@ | ||
| 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> | 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> |
| 5 | <thead> | 5 | <thead> |
| 6 | <tr role="row" class="heading"> | 6 | <tr role="row" class="heading"> |
| 7 | - <th style="width: 5%;">序号</th> | ||
| 8 | - <th >姓名</th> | ||
| 9 | - <th >工号</th> | 7 | + <th style="width: 50px;">序号</th> |
| 8 | + <th style="width: 130px;">姓名</th> | ||
| 9 | + <th style="width: 130px;">工号</th> | ||
| 10 | <th style="width: 5%;">性别</th> | 10 | <th style="width: 5%;">性别</th> |
| 11 | <th style="width: 15%;">所在公司</th> | 11 | <th style="width: 15%;">所在公司</th> |
| 12 | <th >分公司</th> | 12 | <th >分公司</th> |
| @@ -17,10 +17,10 @@ | @@ -17,10 +17,10 @@ | ||
| 17 | <td> | 17 | <td> |
| 18 | </td> | 18 | </td> |
| 19 | <td> | 19 | <td> |
| 20 | - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().personnelName_like"/> | 20 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().personnelName_like" placeholder="输入姓名..."/> |
| 21 | </td> | 21 | </td> |
| 22 | <td> | 22 | <td> |
| 23 | - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jobCode_like"/> | 23 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jobCode_like" placeholder="输入工号..."/> |
| 24 | </td> | 24 | </td> |
| 25 | <td> | 25 | <td> |
| 26 | </td> | 26 | </td> |
src/main/resources/static/pages/scheduleApp/module/common/main.js
| @@ -63,27 +63,60 @@ ScheduleApp.factory('requestNotificationChannel', ['$rootScope', function($rootS | @@ -63,27 +63,60 @@ ScheduleApp.factory('requestNotificationChannel', ['$rootScope', function($rootS | ||
| 63 | }]); | 63 | }]); |
| 64 | 64 | ||
| 65 | // http 拦截器 | 65 | // http 拦截器 |
| 66 | -ScheduleApp.factory('myInterceptor', ['requestNotificationChannel', function(requestNotificationChannel) { | ||
| 67 | - return { | ||
| 68 | - request: function(config) { | ||
| 69 | - requestNotificationChannel.requestStarted(); | ||
| 70 | - return config; | ||
| 71 | - }, | ||
| 72 | - requestError: function(rejection) { | ||
| 73 | - requestNotificationChannel.requestEnded(); | ||
| 74 | - return rejection; | ||
| 75 | - }, | ||
| 76 | - response: function(response) { | ||
| 77 | - requestNotificationChannel.requestEnded(); | ||
| 78 | - return response; | ||
| 79 | - }, | ||
| 80 | - responseError: function(rejection) { | ||
| 81 | - requestNotificationChannel.requestEnded(); | ||
| 82 | - return rejection; | ||
| 83 | - } | ||
| 84 | - }; | 66 | +ScheduleApp.factory( |
| 67 | + 'myInterceptor', | ||
| 68 | + [ | ||
| 69 | + 'requestNotificationChannel', | ||
| 70 | + '$q', | ||
| 71 | + function(requestNotificationChannel, $q) { | ||
| 72 | + return { | ||
| 73 | + request: function(config) { | ||
| 74 | + requestNotificationChannel.requestStarted(); | ||
| 75 | + return config; | ||
| 76 | + }, | ||
| 77 | + requestError: function(rejection) { | ||
| 78 | + requestNotificationChannel.requestEnded(); | ||
| 79 | + alert("服务端无响应"); | ||
| 80 | + return rejection; | ||
| 81 | + }, | ||
| 82 | + response: function(response) { | ||
| 83 | + requestNotificationChannel.requestEnded(); | ||
| 85 | 84 | ||
| 86 | -}]); | 85 | + return response; |
| 86 | + }, | ||
| 87 | + responseError: function(rejection) { | ||
| 88 | + requestNotificationChannel.requestEnded(); | ||
| 89 | + | ||
| 90 | + // 处理错误,springboot会包装返回的错误数据 | ||
| 91 | + // 如:{"timestamp":1478674739246,"status":500,"error":"Internal Server Error","exception":"java.lang.ClassCastException","message":"java.lang.String cannot be cast to java.lang.Long","path":"/tidc/importfile"} | ||
| 92 | + | ||
| 93 | + var status = rejection.status; | ||
| 94 | + var path = rejection.data.path; | ||
| 95 | + var message = rejection.data.message; | ||
| 96 | + var output = []; | ||
| 97 | + output.push("状态编码:" + status); | ||
| 98 | + output.push("访问路径:" + path); | ||
| 99 | + output.push("错误消息:" + message); | ||
| 100 | + if (status) { | ||
| 101 | + if (status == 500) { | ||
| 102 | + alert("服务端错误:" + "\n" + output.join("\n")); | ||
| 103 | + } else if (status == 407) { | ||
| 104 | + alert("请重新登录:" + "\n" + output.join("\n")); | ||
| 105 | + } else if (status == -1) { | ||
| 106 | + alert("貌似服务端连接不上"); | ||
| 107 | + } else { | ||
| 108 | + alert("其他错误:" + "\n" + output.join("\n")); | ||
| 109 | + } | ||
| 110 | + } else { | ||
| 111 | + alert("我擦,后台返回连个状态码都没返回,见鬼了!"); | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + return $q.reject(rejection); | ||
| 115 | + } | ||
| 116 | + }; | ||
| 117 | + } | ||
| 118 | + ] | ||
| 119 | +); | ||
| 87 | 120 | ||
| 88 | ScheduleApp.config(['$httpProvider', function($httpProvider) { | 121 | ScheduleApp.config(['$httpProvider', function($httpProvider) { |
| 89 | $httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"; | 122 | $httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"; |
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
| @@ -416,7 +416,7 @@ angular.module('ScheduleApp').factory('SchedulePlanManageService_g', ['$resource | @@ -416,7 +416,7 @@ angular.module('ScheduleApp').factory('SchedulePlanManageService_g', ['$resource | ||
| 416 | return { | 416 | return { |
| 417 | rest : $resource( | 417 | rest : $resource( |
| 418 | '/spc/:id', | 418 | '/spc/:id', |
| 419 | - {order: 'createDate', direction: 'DESC', id: '@id_route'}, | 419 | + {order: 'xl.id,createDate', direction: 'DESC,DESC', id: '@id_route'}, |
| 420 | { | 420 | { |
| 421 | list: { | 421 | list: { |
| 422 | method: 'GET', | 422 | method: 'GET', |
| @@ -452,7 +452,7 @@ angular.module('ScheduleApp').factory('SchedulePlanInfoManageService_g', ['$reso | @@ -452,7 +452,7 @@ angular.module('ScheduleApp').factory('SchedulePlanInfoManageService_g', ['$reso | ||
| 452 | return { | 452 | return { |
| 453 | rest : $resource( | 453 | rest : $resource( |
| 454 | '/spic/:id', | 454 | '/spic/:id', |
| 455 | - {order: 'scheduleDate,lp,fcno', direction: 'ASC', id: '@id_route'}, | 455 | + {order: 'scheduleDate,lp,fcno', direction: 'ASC,ASC,ASC', id: '@id_route'}, |
| 456 | { | 456 | { |
| 457 | list: { | 457 | list: { |
| 458 | method: 'GET', | 458 | method: 'GET', |
src/main/resources/static/pages/scheduleApp/module/core/busConfig/edit.html
| @@ -43,17 +43,18 @@ | @@ -43,17 +43,18 @@ | ||
| 43 | <div class="form-group has-success has-feedback"> | 43 | <div class="form-group has-success has-feedback"> |
| 44 | <label class="col-md-2 control-label">线路*:</label> | 44 | <label class="col-md-2 control-label">线路*:</label> |
| 45 | <div class="col-md-3"> | 45 | <div class="col-md-3"> |
| 46 | - <sa-Select3 model="ctrl.busConfigForSave" | ||
| 47 | - name="xl" | ||
| 48 | - placeholder="请输拼音..." | ||
| 49 | - dcvalue="{{ctrl.busConfigForSave.xl.id}}" | 46 | + <sa-Select5 name="xl" |
| 47 | + model="ctrl.busConfigForSave" | ||
| 48 | + cmaps="{'xl.id': 'id'}" | ||
| 50 | dcname="xl.id" | 49 | dcname="xl.id" |
| 51 | icname="id" | 50 | icname="id" |
| 52 | - icnames="name" | ||
| 53 | - datatype="xl" | ||
| 54 | - mlp="true" | 51 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | + iterobjname="item" | ||
| 53 | + iterobjexp="item.name" | ||
| 54 | + searchph="请输拼音..." | ||
| 55 | + searchexp="this.name" | ||
| 55 | required > | 56 | required > |
| 56 | - </sa-Select3> | 57 | + </sa-Select5> |
| 57 | </div> | 58 | </div> |
| 58 | <!-- 隐藏块,显示验证信息 --> | 59 | <!-- 隐藏块,显示验证信息 --> |
| 59 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> | 60 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> |
src/main/resources/static/pages/scheduleApp/module/core/busConfig/form.html
| @@ -43,19 +43,18 @@ | @@ -43,19 +43,18 @@ | ||
| 43 | <div class="form-group has-success has-feedback"> | 43 | <div class="form-group has-success has-feedback"> |
| 44 | <label class="col-md-2 control-label">线路*:</label> | 44 | <label class="col-md-2 control-label">线路*:</label> |
| 45 | <div class="col-md-3"> | 45 | <div class="col-md-3"> |
| 46 | - <sa-Select3 model="ctrl.busConfigForSave" | ||
| 47 | - name="xl" | ||
| 48 | - placeholder="请输拼音..." | ||
| 49 | - dcvalue="{{ctrl.busConfigForSave.xl.id}}" | 46 | + <sa-Select5 name="xl" |
| 47 | + model="ctrl.busConfigForSave" | ||
| 48 | + cmaps="{'xl.id': 'id'}" | ||
| 50 | dcname="xl.id" | 49 | dcname="xl.id" |
| 51 | icname="id" | 50 | icname="id" |
| 52 | - dcname2="xl.company" | ||
| 53 | - icname2="company" | ||
| 54 | - icnames="name" | ||
| 55 | - datatype="xl" | ||
| 56 | - mlp="true" | 51 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | + iterobjname="item" | ||
| 53 | + iterobjexp="item.name" | ||
| 54 | + searchph="请输拼音..." | ||
| 55 | + searchexp="this.name" | ||
| 57 | required > | 56 | required > |
| 58 | - </sa-Select3> | 57 | + </sa-Select5> |
| 59 | </div> | 58 | </div> |
| 60 | <!-- 隐藏块,显示验证信息 --> | 59 | <!-- 隐藏块,显示验证信息 --> |
| 61 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> | 60 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> |
src/main/resources/static/pages/scheduleApp/module/core/busConfig/index.html
| @@ -45,19 +45,19 @@ | @@ -45,19 +45,19 @@ | ||
| 45 | 导入excel | 45 | 导入excel |
| 46 | </a> | 46 | </a> |
| 47 | </li> | 47 | </li> |
| 48 | - <li> | ||
| 49 | - <a href="javascript:" class="tool-action"> | ||
| 50 | - <i class="fa fa-file-excel-o"></i> | ||
| 51 | - 导出excel | ||
| 52 | - </a> | ||
| 53 | - </li> | ||
| 54 | - <li class="divider"></li> | ||
| 55 | - <li> | ||
| 56 | - <a href="javascript:" class="tool-action"> | ||
| 57 | - <i class="fa fa-download"></i> | ||
| 58 | - excel模版 | ||
| 59 | - </a> | ||
| 60 | - </li> | 48 | + <!--<li>--> |
| 49 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 50 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 51 | + <!--导出excel--> | ||
| 52 | + <!--</a>--> | ||
| 53 | + <!--</li>--> | ||
| 54 | + <!--<li class="divider"></li>--> | ||
| 55 | + <!--<li>--> | ||
| 56 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 57 | + <!--<i class="fa fa-download"></i>--> | ||
| 58 | + <!--excel模版--> | ||
| 59 | + <!--</a>--> | ||
| 60 | + <!--</li>--> | ||
| 61 | </ul> | 61 | </ul> |
| 62 | </div> | 62 | </div> |
| 63 | </div> | 63 | </div> |
src/main/resources/static/pages/scheduleApp/module/core/busConfig/list.html
| @@ -4,11 +4,11 @@ | @@ -4,11 +4,11 @@ | ||
| 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> | 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> |
| 5 | <thead> | 5 | <thead> |
| 6 | <tr role="row" class="heading"> | 6 | <tr role="row" class="heading"> |
| 7 | - <th style="width: 5%;">序号</th> | ||
| 8 | - <th style="width: 15%;">线路</th> | ||
| 9 | - <th >内部编号</th> | ||
| 10 | - <th >启用日期</th> | ||
| 11 | - <th >终止日期</th> | 7 | + <th style="width: 50px;">序号</th> |
| 8 | + <th style="width: 150px;">线路</th> | ||
| 9 | + <th style="width: 150px;">内部编号</th> | ||
| 10 | + <th style="width: 150px;">启用日期</th> | ||
| 11 | + <th style="width: 150px;">终止日期</th> | ||
| 12 | <th >停车点</th> | 12 | <th >停车点</th> |
| 13 | <th style="width: 21%">操作</th> | 13 | <th style="width: 21%">操作</th> |
| 14 | </tr> | 14 | </tr> |
| @@ -58,10 +58,10 @@ | @@ -58,10 +58,10 @@ | ||
| 58 | <span ng-bind="info.cl.insideCode"></span> | 58 | <span ng-bind="info.cl.insideCode"></span> |
| 59 | </td> | 59 | </td> |
| 60 | <td> | 60 | <td> |
| 61 | - <span ng-bind="info.qyrq | date: 'yyyy-MM-dd HH:mm:ss'"></span> | 61 | + <span ng-bind="info.qyrq | date: 'yyyy-MM-dd'"></span> |
| 62 | </td> | 62 | </td> |
| 63 | <td> | 63 | <td> |
| 64 | - <span ng-bind="info.zzrq | date: 'yyyy-MM-dd HH:mm:ss'"></span> | 64 | + <span ng-bind="info.zzrq | date: 'yyyy-MM-dd'"></span> |
| 65 | </td> | 65 | </td> |
| 66 | <td> | 66 | <td> |
| 67 | <span ng-bind="info.tcd"></span> | 67 | <span ng-bind="info.tcd"></span> |
src/main/resources/static/pages/scheduleApp/module/core/employeeConfig/edit.html
| @@ -43,17 +43,18 @@ | @@ -43,17 +43,18 @@ | ||
| 43 | <div class="form-group has-success has-feedback"> | 43 | <div class="form-group has-success has-feedback"> |
| 44 | <label class="col-md-2 control-label">线路*:</label> | 44 | <label class="col-md-2 control-label">线路*:</label> |
| 45 | <div class="col-md-3"> | 45 | <div class="col-md-3"> |
| 46 | - <sa-Select3 model="ctrl.employeeConfigForSave" | ||
| 47 | - name="xl" | ||
| 48 | - placeholder="请输拼音..." | ||
| 49 | - dcvalue="{{ctrl.employeeConfigForSave.xl.id}}" | 46 | + <sa-Select5 name="xl" |
| 47 | + model="ctrl.employeeConfigForSave" | ||
| 48 | + cmaps="{'xl.id' : 'id'}" | ||
| 50 | dcname="xl.id" | 49 | dcname="xl.id" |
| 51 | icname="id" | 50 | icname="id" |
| 52 | - icnames="name" | ||
| 53 | - datatype="xl" | ||
| 54 | - mlp="true" | 51 | + dsparams="{{ {type: 'ajax', param:{'type': 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | + iterobjname="item" | ||
| 53 | + iterobjexp="item.name" | ||
| 54 | + searchph="请输拼音..." | ||
| 55 | + searchexp="this.name" | ||
| 55 | required > | 56 | required > |
| 56 | - </sa-Select3> | 57 | + </sa-Select5> |
| 57 | </div> | 58 | </div> |
| 58 | <!-- 隐藏块,显示验证信息 --> | 59 | <!-- 隐藏块,显示验证信息 --> |
| 59 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> | 60 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> |
| @@ -76,19 +77,18 @@ | @@ -76,19 +77,18 @@ | ||
| 76 | <div class="form-group has-success has-feedback"> | 77 | <div class="form-group has-success has-feedback"> |
| 77 | <label class="col-md-2 control-label">驾驶员*:</label> | 78 | <label class="col-md-2 control-label">驾驶员*:</label> |
| 78 | <div class="col-md-3"> | 79 | <div class="col-md-3"> |
| 79 | - <sa-Select3 model="ctrl.employeeConfigForSave" | ||
| 80 | - name="jsy" | ||
| 81 | - placeholder="请输拼音..." | ||
| 82 | - dcvalue="{{ctrl.employeeConfigForSave.jsy.id}}" | 80 | + <sa-Select5 name="jsy" |
| 81 | + model="ctrl.employeeConfigForSave" | ||
| 82 | + cmaps="{'jsy.id' : 'id'}" | ||
| 83 | dcname="jsy.id" | 83 | dcname="jsy.id" |
| 84 | icname="id" | 84 | icname="id" |
| 85 | - icnames="personnelName" | ||
| 86 | - datatype="ry" | ||
| 87 | - dataassociate="true" | ||
| 88 | - dataparam="{{ {'companyCode_eq': ctrl.employeeConfigForSave.xl.company} | json }}" | ||
| 89 | - mlp="true" | 85 | + dsparams="{{ {type: 'ajax', param:{'type': 'all'}, atype:'ry' } | json }}" |
| 86 | + iterobjname="item" | ||
| 87 | + iterobjexp="item.personnelName + '<' + item.jobCode + '>'" | ||
| 88 | + searchph="请输拼音..." | ||
| 89 | + searchexp="this.personnelName + '<' + this.jobCode + '>'" | ||
| 90 | required > | 90 | required > |
| 91 | - </sa-Select3> | 91 | + </sa-Select5> |
| 92 | </div> | 92 | </div> |
| 93 | <!-- 隐藏块,显示验证信息 --> | 93 | <!-- 隐藏块,显示验证信息 --> |
| 94 | <div class="alert alert-danger well-sm" ng-show="myForm.jsy.$error.required"> | 94 | <div class="alert alert-danger well-sm" ng-show="myForm.jsy.$error.required"> |
| @@ -99,18 +99,18 @@ | @@ -99,18 +99,18 @@ | ||
| 99 | <div class="form-group"> | 99 | <div class="form-group"> |
| 100 | <label class="col-md-2 control-label">售票员:</label> | 100 | <label class="col-md-2 control-label">售票员:</label> |
| 101 | <div class="col-md-3"> | 101 | <div class="col-md-3"> |
| 102 | - <sa-Select3 model="ctrl.employeeConfigForSave" | ||
| 103 | - name="spy" | ||
| 104 | - placeholder="请输拼音..." | ||
| 105 | - dcvalue="{{ctrl.employeeConfigForSave.spy.id}}" | 102 | + <sa-Select5 name="spy" |
| 103 | + model="ctrl.employeeConfigForSave" | ||
| 104 | + cmaps="{'spy.id' : 'id'}" | ||
| 106 | dcname="spy.id" | 105 | dcname="spy.id" |
| 107 | icname="id" | 106 | icname="id" |
| 108 | - icnames="personnelName" | ||
| 109 | - datatype="ry" | ||
| 110 | - dataassociate="true" | ||
| 111 | - dataparam="{{ {'companyCode_eq': ctrl.employeeConfigForSave.xl.company} | json }}" | ||
| 112 | - mlp="true" > | ||
| 113 | - </sa-Select3> | 107 | + dsparams="{{ {type: 'ajax', param:{'type': 'all'}, atype:'ry' } | json }}" |
| 108 | + iterobjname="item" | ||
| 109 | + iterobjexp="item.personnelName + '<' + item.jobCode + '>'" | ||
| 110 | + searchph="请输拼音..." | ||
| 111 | + searchexp="this.personnelName + '<' + this.jobCode + '>'" | ||
| 112 | + > | ||
| 113 | + </sa-Select5> | ||
| 114 | </div> | 114 | </div> |
| 115 | </div> | 115 | </div> |
| 116 | 116 |
src/main/resources/static/pages/scheduleApp/module/core/employeeConfig/employeeConfig.js
| @@ -279,6 +279,10 @@ angular.module('ScheduleApp').controller('EmployeeConfigFormCtrl', ['EmployeeCon | @@ -279,6 +279,10 @@ angular.module('ScheduleApp').controller('EmployeeConfigFormCtrl', ['EmployeeCon | ||
| 279 | self.employeeConfigForSave[key] = result[key]; | 279 | self.employeeConfigForSave[key] = result[key]; |
| 280 | } | 280 | } |
| 281 | 281 | ||
| 282 | + if (!self.employeeConfigForSave.spy) { | ||
| 283 | + self.employeeConfigForSave.spy = {}; | ||
| 284 | + } | ||
| 285 | + | ||
| 282 | }, | 286 | }, |
| 283 | function(result) { | 287 | function(result) { |
| 284 | alert("出错啦!"); | 288 | alert("出错啦!"); |
src/main/resources/static/pages/scheduleApp/module/core/employeeConfig/form.html
| @@ -43,19 +43,18 @@ | @@ -43,19 +43,18 @@ | ||
| 43 | <div class="form-group has-success has-feedback"> | 43 | <div class="form-group has-success has-feedback"> |
| 44 | <label class="col-md-2 control-label">线路*:</label> | 44 | <label class="col-md-2 control-label">线路*:</label> |
| 45 | <div class="col-md-3"> | 45 | <div class="col-md-3"> |
| 46 | - <sa-Select3 model="ctrl.employeeConfigForSave" | ||
| 47 | - name="xl" | ||
| 48 | - placeholder="请输拼音..." | ||
| 49 | - dcvalue="{{ctrl.employeeConfigForSave.xl.id}}" | 46 | + <sa-Select5 name="xl" |
| 47 | + model="ctrl.employeeConfigForSave" | ||
| 48 | + cmaps="{'xl.id' : 'id'}" | ||
| 50 | dcname="xl.id" | 49 | dcname="xl.id" |
| 51 | icname="id" | 50 | icname="id" |
| 52 | - dcname2="xl.company" | ||
| 53 | - icname2="company" | ||
| 54 | - icnames="name" | ||
| 55 | - datatype="xl" | ||
| 56 | - mlp="true" | 51 | + dsparams="{{ {type: 'ajax', param:{'type': 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | + iterobjname="item" | ||
| 53 | + iterobjexp="item.name" | ||
| 54 | + searchph="请输拼音..." | ||
| 55 | + searchexp="this.name" | ||
| 57 | required > | 56 | required > |
| 58 | - </sa-Select3> | 57 | + </sa-Select5> |
| 59 | </div> | 58 | </div> |
| 60 | <!-- 隐藏块,显示验证信息 --> | 59 | <!-- 隐藏块,显示验证信息 --> |
| 61 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> | 60 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> |
| @@ -78,19 +77,18 @@ | @@ -78,19 +77,18 @@ | ||
| 78 | <div class="form-group has-success has-feedback"> | 77 | <div class="form-group has-success has-feedback"> |
| 79 | <label class="col-md-2 control-label">驾驶员*:</label> | 78 | <label class="col-md-2 control-label">驾驶员*:</label> |
| 80 | <div class="col-md-3"> | 79 | <div class="col-md-3"> |
| 81 | - <sa-Select3 model="ctrl.employeeConfigForSave" | ||
| 82 | - name="jsy" | ||
| 83 | - placeholder="请输拼音..." | ||
| 84 | - dcvalue="{{ctrl.employeeConfigForSave.jsy.id}}" | 80 | + <sa-Select5 name="jsy" |
| 81 | + model="ctrl.employeeConfigForSave" | ||
| 82 | + cmaps="{'jsy.id' : 'id'}" | ||
| 85 | dcname="jsy.id" | 83 | dcname="jsy.id" |
| 86 | icname="id" | 84 | icname="id" |
| 87 | - icnames="personnelName" | ||
| 88 | - datatype="ry" | ||
| 89 | - dataassociate="true" | ||
| 90 | - dataparam="{{ {'companyCode_eq': ctrl.employeeConfigForSave.xl.company} | json }}" | ||
| 91 | - mlp="true" | 85 | + dsparams="{{ {type: 'ajax', param:{'type': 'all'}, atype:'ry' } | json }}" |
| 86 | + iterobjname="item" | ||
| 87 | + iterobjexp="item.personnelName + '<' + item.jobCode + '>'" | ||
| 88 | + searchph="请输拼音..." | ||
| 89 | + searchexp="this.personnelName + '<' + this.jobCode + '>'" | ||
| 92 | required > | 90 | required > |
| 93 | - </sa-Select3> | 91 | + </sa-Select5> |
| 94 | </div> | 92 | </div> |
| 95 | <!-- 隐藏块,显示验证信息 --> | 93 | <!-- 隐藏块,显示验证信息 --> |
| 96 | <div class="alert alert-danger well-sm" ng-show="myForm.jsy.$error.required"> | 94 | <div class="alert alert-danger well-sm" ng-show="myForm.jsy.$error.required"> |
| @@ -101,18 +99,18 @@ | @@ -101,18 +99,18 @@ | ||
| 101 | <div class="form-group"> | 99 | <div class="form-group"> |
| 102 | <label class="col-md-2 control-label">售票员:</label> | 100 | <label class="col-md-2 control-label">售票员:</label> |
| 103 | <div class="col-md-3"> | 101 | <div class="col-md-3"> |
| 104 | - <sa-Select3 model="ctrl.employeeConfigForSave" | ||
| 105 | - name="spy" | ||
| 106 | - placeholder="请输拼音..." | ||
| 107 | - dcvalue="{{ctrl.employeeConfigForSave.spy.id}}" | 102 | + <sa-Select5 name="spy" |
| 103 | + model="ctrl.employeeConfigForSave" | ||
| 104 | + cmaps="{'spy.id' : 'id'}" | ||
| 108 | dcname="spy.id" | 105 | dcname="spy.id" |
| 109 | icname="id" | 106 | icname="id" |
| 110 | - icnames="personnelName" | ||
| 111 | - datatype="ry" | ||
| 112 | - dataassociate="true" | ||
| 113 | - dataparam="{{ {'companyCode_eq': ctrl.employeeConfigForSave.xl.company} | json }}" | ||
| 114 | - mlp="true" > | ||
| 115 | - </sa-Select3> | 107 | + dsparams="{{ {type: 'ajax', param:{'type': 'all'}, atype:'ry' } | json }}" |
| 108 | + iterobjname="item" | ||
| 109 | + iterobjexp="item.personnelName + '<' + item.jobCode + '>'" | ||
| 110 | + searchph="请输拼音..." | ||
| 111 | + searchexp="this.personnelName + '<' + this.jobCode + '>'" | ||
| 112 | + > | ||
| 113 | + </sa-Select5> | ||
| 116 | </div> | 114 | </div> |
| 117 | </div> | 115 | </div> |
| 118 | 116 |
src/main/resources/static/pages/scheduleApp/module/core/employeeConfig/index.html
| @@ -45,19 +45,19 @@ | @@ -45,19 +45,19 @@ | ||
| 45 | 导入excel | 45 | 导入excel |
| 46 | </a> | 46 | </a> |
| 47 | </li> | 47 | </li> |
| 48 | - <li> | ||
| 49 | - <a href="javascript:" class="tool-action"> | ||
| 50 | - <i class="fa fa-file-excel-o"></i> | ||
| 51 | - 导出excel | ||
| 52 | - </a> | ||
| 53 | - </li> | ||
| 54 | - <li class="divider"></li> | ||
| 55 | - <li> | ||
| 56 | - <a href="javascript:" class="tool-action"> | ||
| 57 | - <i class="fa fa-download"></i> | ||
| 58 | - excel模版 | ||
| 59 | - </a> | ||
| 60 | - </li> | 48 | + <!--<li>--> |
| 49 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 50 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 51 | + <!--导出excel--> | ||
| 52 | + <!--</a>--> | ||
| 53 | + <!--</li>--> | ||
| 54 | + <!--<li class="divider"></li>--> | ||
| 55 | + <!--<li>--> | ||
| 56 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 57 | + <!--<i class="fa fa-download"></i>--> | ||
| 58 | + <!--excel模版--> | ||
| 59 | + <!--</a>--> | ||
| 60 | + <!--</li>--> | ||
| 61 | </ul> | 61 | </ul> |
| 62 | </div> | 62 | </div> |
| 63 | </div> | 63 | </div> |
src/main/resources/static/pages/scheduleApp/module/core/employeeConfig/list.html
| @@ -4,9 +4,9 @@ | @@ -4,9 +4,9 @@ | ||
| 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> | 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> |
| 5 | <thead> | 5 | <thead> |
| 6 | <tr role="row" class="heading"> | 6 | <tr role="row" class="heading"> |
| 7 | - <th style="width: 5%;">序号</th> | ||
| 8 | - <th style="width: 15%;">线路</th> | ||
| 9 | - <th style="width: 10%;">搭班编码</th> | 7 | + <th style="width: 50px;">序号</th> |
| 8 | + <th style="width: 150px;">线路</th> | ||
| 9 | + <th style="width: 80px;">搭班编码</th> | ||
| 10 | <th >驾驶员工号</th> | 10 | <th >驾驶员工号</th> |
| 11 | <th style="width: 15%;">驾驶员</th> | 11 | <th style="width: 15%;">驾驶员</th> |
| 12 | <th >售票员工号</th> | 12 | <th >售票员工号</th> |
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/index.html
| @@ -45,19 +45,19 @@ | @@ -45,19 +45,19 @@ | ||
| 45 | 导入excel | 45 | 导入excel |
| 46 | </a> | 46 | </a> |
| 47 | </li> | 47 | </li> |
| 48 | - <li> | ||
| 49 | - <a href="javascript:" class="tool-action"> | ||
| 50 | - <i class="fa fa-file-excel-o"></i> | ||
| 51 | - 导出excel | ||
| 52 | - </a> | ||
| 53 | - </li> | ||
| 54 | - <li class="divider"></li> | ||
| 55 | - <li> | ||
| 56 | - <a href="javascript:" class="tool-action"> | ||
| 57 | - <i class="fa fa-download"></i> | ||
| 58 | - excel模版 | ||
| 59 | - </a> | ||
| 60 | - </li> | 48 | + <!--<li>--> |
| 49 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 50 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 51 | + <!--导出excel--> | ||
| 52 | + <!--</a>--> | ||
| 53 | + <!--</li>--> | ||
| 54 | + <!--<li class="divider"></li>--> | ||
| 55 | + <!--<li>--> | ||
| 56 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 57 | + <!--<i class="fa fa-download"></i>--> | ||
| 58 | + <!--excel模版--> | ||
| 59 | + <!--</a>--> | ||
| 60 | + <!--</li>--> | ||
| 61 | </ul> | 61 | </ul> |
| 62 | </div> | 62 | </div> |
| 63 | </div> | 63 | </div> |
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/list.html
| @@ -60,7 +60,7 @@ | @@ -60,7 +60,7 @@ | ||
| 60 | <td> | 60 | <td> |
| 61 | <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> | 61 | <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> |
| 62 | <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> | 62 | <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> |
| 63 | - <a ui-sref="guideboardManage_detail({id : info.id})" class="btn default blue-stripe btn-sm"> 详细 </a> | 63 | + <a ui-sref="guideboardManage_detail({id : info.id})" class="btn btn-info btn-sm"> 详细 </a> |
| 64 | <!--<a ui-sref="#" class="btn default blue-stripe btn-sm"> 修改 </a>--> | 64 | <!--<a ui-sref="#" class="btn default blue-stripe btn-sm"> 修改 </a>--> |
| 65 | </td> | 65 | </td> |
| 66 | </tr> | 66 | </tr> |
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/edit.html
| @@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
| 48 | cmaps="{'rerunXl.id' : 'id'}" | 48 | cmaps="{'rerunXl.id' : 'id'}" |
| 49 | dcname="rerunXl.id" | 49 | dcname="rerunXl.id" |
| 50 | icname="id" | 50 | icname="id" |
| 51 | - dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}" | 51 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | iterobjname="item" | 52 | iterobjname="item" |
| 53 | iterobjexp="item.name" | 53 | iterobjexp="item.name" |
| 54 | searchph="请输拼音..." | 54 | searchph="请输拼音..." |
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/form.html
| @@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
| 48 | cmaps="{'rerunXl.id' : 'id'}" | 48 | cmaps="{'rerunXl.id' : 'id'}" |
| 49 | dcname="rerunXl.id" | 49 | dcname="rerunXl.id" |
| 50 | icname="id" | 50 | icname="id" |
| 51 | - dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}" | 51 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | iterobjname="item" | 52 | iterobjname="item" |
| 53 | iterobjexp="item.name" | 53 | iterobjexp="item.name" |
| 54 | searchph="请输拼音..." | 54 | searchph="请输拼音..." |
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/index.html
| @@ -32,34 +32,34 @@ | @@ -32,34 +32,34 @@ | ||
| 32 | 添加套跑 | 32 | 添加套跑 |
| 33 | </a> | 33 | </a> |
| 34 | 34 | ||
| 35 | - <div class="btn-group"> | ||
| 36 | - <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown"> | ||
| 37 | - <i class="fa fa-share"></i> | ||
| 38 | - <span>数据工具</span> | ||
| 39 | - <i class="fa fa-angle-down"></i> | ||
| 40 | - </a> | ||
| 41 | - <ul class="dropdown-menu pull-right"> | ||
| 42 | - <li> | ||
| 43 | - <a href="javascript:" class="tool-action"> | ||
| 44 | - <i class="fa fa-file-excel-o"></i> | ||
| 45 | - 导入excel | ||
| 46 | - </a> | ||
| 47 | - </li> | ||
| 48 | - <li> | ||
| 49 | - <a href="javascript:" class="tool-action"> | ||
| 50 | - <i class="fa fa-file-excel-o"></i> | ||
| 51 | - 导出excel | ||
| 52 | - </a> | ||
| 53 | - </li> | ||
| 54 | - <li class="divider"></li> | ||
| 55 | - <li> | ||
| 56 | - <a href="javascript:" class="tool-action"> | ||
| 57 | - <i class="fa fa-refresh"></i> | ||
| 58 | - 刷行数据 | ||
| 59 | - </a> | ||
| 60 | - </li> | ||
| 61 | - </ul> | ||
| 62 | - </div> | 35 | + <!--<div class="btn-group">--> |
| 36 | + <!--<a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">--> | ||
| 37 | + <!--<i class="fa fa-share"></i>--> | ||
| 38 | + <!--<span>数据工具</span>--> | ||
| 39 | + <!--<i class="fa fa-angle-down"></i>--> | ||
| 40 | + <!--</a>--> | ||
| 41 | + <!--<ul class="dropdown-menu pull-right">--> | ||
| 42 | + <!--<li>--> | ||
| 43 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 44 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 45 | + <!--导入excel--> | ||
| 46 | + <!--</a>--> | ||
| 47 | + <!--</li>--> | ||
| 48 | + <!--<li>--> | ||
| 49 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 50 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 51 | + <!--导出excel--> | ||
| 52 | + <!--</a>--> | ||
| 53 | + <!--</li>--> | ||
| 54 | + <!--<li class="divider"></li>--> | ||
| 55 | + <!--<li>--> | ||
| 56 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 57 | + <!--<i class="fa fa-refresh"></i>--> | ||
| 58 | + <!--刷行数据--> | ||
| 59 | + <!--</a>--> | ||
| 60 | + <!--</li>--> | ||
| 61 | + <!--</ul>--> | ||
| 62 | + <!--</div>--> | ||
| 63 | </div> | 63 | </div> |
| 64 | </div> | 64 | </div> |
| 65 | 65 |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/index_info.html
| @@ -34,35 +34,35 @@ | @@ -34,35 +34,35 @@ | ||
| 34 | <span ng-bind="etime | date: 'yyyy-MM-dd ' + '排班明细列表'"></span> | 34 | <span ng-bind="etime | date: 'yyyy-MM-dd ' + '排班明细列表'"></span> |
| 35 | </span> | 35 | </span> |
| 36 | </div> | 36 | </div> |
| 37 | - <div class="actions"> | ||
| 38 | - <a href="javascirpt:" class="btn btn-circle blue" > | ||
| 39 | - <i class="fa fa-plus"></i> | ||
| 40 | - 添加 | ||
| 41 | - </a> | 37 | + <!--<div class="actions">--> |
| 38 | + <!--<a href="javascirpt:" class="btn btn-circle blue" >--> | ||
| 39 | + <!--<i class="fa fa-plus"></i>--> | ||
| 40 | + <!--添加--> | ||
| 41 | + <!--</a>--> | ||
| 42 | 42 | ||
| 43 | - <div class="btn-group"> | ||
| 44 | - <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown"> | ||
| 45 | - <i class="fa fa-share"></i> | ||
| 46 | - <span>数据工具</span> | ||
| 47 | - <i class="fa fa-angle-down"></i> | ||
| 48 | - </a> | ||
| 49 | - <ul class="dropdown-menu pull-right"> | ||
| 50 | - <li> | ||
| 51 | - <a href="javascript:" class="tool-action"> | ||
| 52 | - <i class="fa fa-file-excel-o"></i> | ||
| 53 | - 导出excel | ||
| 54 | - </a> | ||
| 55 | - </li> | ||
| 56 | - <li class="divider"></li> | ||
| 57 | - <li> | ||
| 58 | - <a href="javascript:" class="tool-action"> | ||
| 59 | - <i class="fa fa-refresh"></i> | ||
| 60 | - 刷行数据 | ||
| 61 | - </a> | ||
| 62 | - </li> | ||
| 63 | - </ul> | ||
| 64 | - </div> | ||
| 65 | - </div> | 43 | + <!--<div class="btn-group">--> |
| 44 | + <!--<a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">--> | ||
| 45 | + <!--<i class="fa fa-share"></i>--> | ||
| 46 | + <!--<span>数据工具</span>--> | ||
| 47 | + <!--<i class="fa fa-angle-down"></i>--> | ||
| 48 | + <!--</a>--> | ||
| 49 | + <!--<ul class="dropdown-menu pull-right">--> | ||
| 50 | + <!--<li>--> | ||
| 51 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 52 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 53 | + <!--导出excel--> | ||
| 54 | + <!--</a>--> | ||
| 55 | + <!--</li>--> | ||
| 56 | + <!--<li class="divider"></li>--> | ||
| 57 | + <!--<li>--> | ||
| 58 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 59 | + <!--<i class="fa fa-refresh"></i>--> | ||
| 60 | + <!--刷行数据--> | ||
| 61 | + <!--</a>--> | ||
| 62 | + <!--</li>--> | ||
| 63 | + <!--</ul>--> | ||
| 64 | + <!--</div>--> | ||
| 65 | + <!--</div>--> | ||
| 66 | </div> | 66 | </div> |
| 67 | 67 | ||
| 68 | <div class="portlet-body"> | 68 | <div class="portlet-body"> |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/index_report.html
| @@ -26,30 +26,30 @@ | @@ -26,30 +26,30 @@ | ||
| 26 | <i class="fa fa-database font-dark"></i> | 26 | <i class="fa fa-database font-dark"></i> |
| 27 | <span class="caption-subject bold uppercase">排班计划</span> | 27 | <span class="caption-subject bold uppercase">排班计划</span> |
| 28 | </div> | 28 | </div> |
| 29 | - <div class="actions"> | ||
| 30 | - <div class="btn-group"> | ||
| 31 | - <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown"> | ||
| 32 | - <i class="fa fa-share"></i> | ||
| 33 | - <span>数据工具</span> | ||
| 34 | - <i class="fa fa-angle-down"></i> | ||
| 35 | - </a> | ||
| 36 | - <ul class="dropdown-menu pull-right"> | ||
| 37 | - <li> | ||
| 38 | - <a href="javascript:" class="tool-action"> | ||
| 39 | - <i class="fa fa-file-excel-o"></i> | ||
| 40 | - 导出excel | ||
| 41 | - </a> | ||
| 42 | - </li> | ||
| 43 | - <li class="divider"></li> | ||
| 44 | - <li> | ||
| 45 | - <a href="javascript:" class="tool-action"> | ||
| 46 | - <i class="fa fa-refresh"></i> | ||
| 47 | - 刷行数据 | ||
| 48 | - </a> | ||
| 49 | - </li> | ||
| 50 | - </ul> | ||
| 51 | - </div> | ||
| 52 | - </div> | 29 | + <!--<div class="actions">--> |
| 30 | + <!--<div class="btn-group">--> | ||
| 31 | + <!--<a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">--> | ||
| 32 | + <!--<i class="fa fa-share"></i>--> | ||
| 33 | + <!--<span>数据工具</span>--> | ||
| 34 | + <!--<i class="fa fa-angle-down"></i>--> | ||
| 35 | + <!--</a>--> | ||
| 36 | + <!--<ul class="dropdown-menu pull-right">--> | ||
| 37 | + <!--<li>--> | ||
| 38 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 39 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 40 | + <!--导出excel--> | ||
| 41 | + <!--</a>--> | ||
| 42 | + <!--</li>--> | ||
| 43 | + <!--<li class="divider"></li>--> | ||
| 44 | + <!--<li>--> | ||
| 45 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 46 | + <!--<i class="fa fa-refresh"></i>--> | ||
| 47 | + <!--刷行数据--> | ||
| 48 | + <!--</a>--> | ||
| 49 | + <!--</li>--> | ||
| 50 | + <!--</ul>--> | ||
| 51 | + <!--</div>--> | ||
| 52 | + <!--</div>--> | ||
| 53 | </div> | 53 | </div> |
| 54 | 54 | ||
| 55 | <div class="portlet-body"> | 55 | <div class="portlet-body"> |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/list.html
| @@ -4,13 +4,13 @@ | @@ -4,13 +4,13 @@ | ||
| 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> | 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> |
| 5 | <thead> | 5 | <thead> |
| 6 | <tr role="row" class="heading"> | 6 | <tr role="row" class="heading"> |
| 7 | - <th style="width: 5%;">序号</th> | ||
| 8 | - <th style="width: 15%;">线路</th> | ||
| 9 | - <th style="width: 20%;">时刻表</th> | ||
| 10 | - <th>排班开始时间</th> | ||
| 11 | - <th>排班结束时间</th> | ||
| 12 | - <th>修改时间</th> | ||
| 13 | - <th style="width: 21%">操作</th> | 7 | + <th style="width: 50px;">序号</th> |
| 8 | + <th style="width: 150px;">线路</th> | ||
| 9 | + <th style="width: 100%;">关联时刻表</th> | ||
| 10 | + <th style="width: 150px;">排班开始日期</th> | ||
| 11 | + <th style="width: 150px;">排班结束日期</th> | ||
| 12 | + <th style="width: 180px;">排班操作时间</th> | ||
| 13 | + <th style="width: 180px;">操作</th> | ||
| 14 | </tr> | 14 | </tr> |
| 15 | <tr role="row" class="filter"> | 15 | <tr role="row" class="filter"> |
| 16 | <td></td> | 16 | <td></td> |
| @@ -25,9 +25,37 @@ | @@ -25,9 +25,37 @@ | ||
| 25 | datatype="xl"> | 25 | datatype="xl"> |
| 26 | </sa-Select3> | 26 | </sa-Select3> |
| 27 | </td> | 27 | </td> |
| 28 | - <td></td> | ||
| 29 | - <td></td> | ||
| 30 | - <td></td> | 28 | + <td> |
| 29 | + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().name_like" placeholder="输入时刻表名称..."/> | ||
| 30 | + </td> | ||
| 31 | + <td> | ||
| 32 | + <div class="input-group"> | ||
| 33 | + <input type="text" class="form-control input-sm" | ||
| 34 | + name="scheduleFromTime" placeholder="选择日期..." | ||
| 35 | + uib-datepicker-popup="yyyy-MM-dd" | ||
| 36 | + is-open="ctrl.scheduleFromTime" | ||
| 37 | + ng-model="ctrl.searchCondition()['scheduleFromTime_ge']" readonly/> | ||
| 38 | + <span class="input-group-btn"> | ||
| 39 | + <button type="button" class="btn btn-default btn-sm" ng-click="ctrl.scheduleFromTime_open()"> | ||
| 40 | + <i class="glyphicon glyphicon-calendar"></i> | ||
| 41 | + </button> | ||
| 42 | + </span> | ||
| 43 | + </div> | ||
| 44 | + </td> | ||
| 45 | + <td> | ||
| 46 | + <div class="input-group"> | ||
| 47 | + <input type="text" class="form-control input-sm" | ||
| 48 | + name="scheduleToTime" placeholder="选择日期..." | ||
| 49 | + uib-datepicker-popup="yyyy-MM-dd" | ||
| 50 | + is-open="ctrl.scheduleToTime" | ||
| 51 | + ng-model="ctrl.searchCondition()['scheduleToTime_le']" readonly/> | ||
| 52 | + <span class="input-group-btn"> | ||
| 53 | + <button type="button" class="btn btn-default btn-sm" ng-click="ctrl.scheduleToTime_open()"> | ||
| 54 | + <i class="glyphicon glyphicon-calendar"></i> | ||
| 55 | + </button> | ||
| 56 | + </span> | ||
| 57 | + </div> | ||
| 58 | + </td> | ||
| 31 | <td></td> | 59 | <td></td> |
| 32 | <td> | 60 | <td> |
| 33 | <button class="btn btn-sm green btn-outline filter-submit margin-bottom" | 61 | <button class="btn btn-sm green btn-outline filter-submit margin-bottom" |
| @@ -50,7 +78,7 @@ | @@ -50,7 +78,7 @@ | ||
| 50 | <span ng-bind="info.xl.name"></span> | 78 | <span ng-bind="info.xl.name"></span> |
| 51 | </td> | 79 | </td> |
| 52 | <td> | 80 | <td> |
| 53 | - <span ng-bind="info.ttInfo.name"></span> | 81 | + <span ng-bind="info.ttInfoNames"></span> |
| 54 | </td> | 82 | </td> |
| 55 | <td> | 83 | <td> |
| 56 | <span ng-bind="info.scheduleFromTime | date: 'yyyy-MM-dd '"></span> | 84 | <span ng-bind="info.scheduleFromTime | date: 'yyyy-MM-dd '"></span> |
| @@ -64,10 +92,10 @@ | @@ -64,10 +92,10 @@ | ||
| 64 | <td> | 92 | <td> |
| 65 | <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> | 93 | <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> |
| 66 | <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> | 94 | <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> |
| 67 | - <a ui-sref="schedulePlanInfoManage({spid : info.id, xlname : info.xl.name, ttname : info.ttInfo.name, stime : info.scheduleFromTime, etime : info.scheduleToTime})" | ||
| 68 | - class="btn default blue-stripe btn-sm"> 排班明细 </a> | 95 | + <a ui-sref="schedulePlanInfoManage({spid : info.id, xlname : info.xl.name, ttname : info.ttInfoNames, stime : info.scheduleFromTime, etime : info.scheduleToTime})" |
| 96 | + class="btn btn-info btn-sm"> 明细 </a> | ||
| 69 | <a ng-click="ctrl.deletePlan(info.id)" | 97 | <a ng-click="ctrl.deletePlan(info.id)" |
| 70 | - class="btn default blue-stripe btn-sm"> 删除 </a> | 98 | + class="btn btn-danger btn-sm"> 删除 </a> |
| 71 | </td> | 99 | </td> |
| 72 | </tr> | 100 | </tr> |
| 73 | </tbody> | 101 | </tbody> |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/list_info.html
| @@ -4,28 +4,37 @@ | @@ -4,28 +4,37 @@ | ||
| 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> | 4 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> |
| 5 | <thead> | 5 | <thead> |
| 6 | <tr role="row" class="heading"> | 6 | <tr role="row" class="heading"> |
| 7 | - <th style="width: 40pt;">序号</th> | ||
| 8 | - <th>线路</th> | ||
| 9 | - <th style="width: 80pt;">日期</th> | ||
| 10 | - <th>路牌</th> | ||
| 11 | - <th>车辆</th> | ||
| 12 | - <th>备注</th> | ||
| 13 | - <th>报道时间</th> | ||
| 14 | - <th>出场时间</th> | ||
| 15 | - <th>驾驶员</th> | ||
| 16 | - <th>工号</th> | ||
| 17 | - <th>售票员</th> | ||
| 18 | - <th>工号</th> | ||
| 19 | - <th>班次类型</th> | ||
| 20 | - <th>发车时间</th> | 7 | + <th style="width: 50px;">序号</th> |
| 8 | + <th style="width: 100px;">线路</th> | ||
| 9 | + <th style="width: 150px;">日期</th> | ||
| 10 | + <th style="width: 60px;">路牌</th> | ||
| 11 | + <th style="width: 150px;">车辆</th> | ||
| 12 | + <th style="width: 150px;">驾驶员(工号)</th> | ||
| 13 | + <th style="width: 150px;">售票员(工号)</th> | ||
| 14 | + <th style="width: 80px;">班次类型</th> | ||
| 15 | + <th style="width: 80px;">发车时间</th> | ||
| 16 | + <th style="width: 100%">时刻表</th> | ||
| 21 | 17 | ||
| 22 | <!-- TODO:还有其他的 --> | 18 | <!-- TODO:还有其他的 --> |
| 23 | 19 | ||
| 24 | - <th style="width: 115pt;">操作</th> | ||
| 25 | </tr> | 20 | </tr> |
| 26 | <tr role="row" class="filter"> | 21 | <tr role="row" class="filter"> |
| 27 | <td></td> | 22 | <td></td> |
| 28 | <td></td> | 23 | <td></td> |
| 24 | + <td> | ||
| 25 | + <div class="input-group"> | ||
| 26 | + <input type="text" class="form-control input-sm" | ||
| 27 | + name="scheduleDate" placeholder="选择日期..." | ||
| 28 | + uib-datepicker-popup="yyyy-MM-dd" | ||
| 29 | + is-open="ctrl.scheduleDate" | ||
| 30 | + ng-model="ctrl.searchCondition()['scheduleDate_eq']" readonly/> | ||
| 31 | + <span class="input-group-btn"> | ||
| 32 | + <button type="button" class="btn btn-default btn-sm" ng-click="ctrl.scheduleDate_open()"> | ||
| 33 | + <i class="glyphicon glyphicon-calendar"></i> | ||
| 34 | + </button> | ||
| 35 | + </span> | ||
| 36 | + </div> | ||
| 37 | + </td> | ||
| 29 | <td></td> | 38 | <td></td> |
| 30 | <td></td> | 39 | <td></td> |
| 31 | <td></td> | 40 | <td></td> |
| @@ -33,21 +42,6 @@ | @@ -33,21 +42,6 @@ | ||
| 33 | <td></td> | 42 | <td></td> |
| 34 | <td></td> | 43 | <td></td> |
| 35 | <td></td> | 44 | <td></td> |
| 36 | - <td></td> | ||
| 37 | - <td></td> | ||
| 38 | - <td></td> | ||
| 39 | - <td></td> | ||
| 40 | - <td></td> | ||
| 41 | - | ||
| 42 | - <td> | ||
| 43 | - <button class="btn btn-sm green btn-outline filter-submit margin-bottom" | ||
| 44 | - ng-click="ctrl.pageChanaged()"> | ||
| 45 | - <i class="fa fa-search"></i> 搜索</button> | ||
| 46 | - | ||
| 47 | - <button class="btn btn-sm red btn-outline filter-cancel" | ||
| 48 | - ng-click="ctrl.resetSearchCondition()"> | ||
| 49 | - <i class="fa fa-times"></i> 重置</button> | ||
| 50 | - </td> | ||
| 51 | 45 | ||
| 52 | </tr> | 46 | </tr> |
| 53 | </thead> | 47 | </thead> |
| @@ -69,24 +63,12 @@ | @@ -69,24 +63,12 @@ | ||
| 69 | <td> | 63 | <td> |
| 70 | <span ng-bind="info.clZbh"></span> | 64 | <span ng-bind="info.clZbh"></span> |
| 71 | </td> | 65 | </td> |
| 72 | - <td></td> | ||
| 73 | <td> | 66 | <td> |
| 74 | - <span ng-bind="info.bdTime"></span> | ||
| 75 | - </td> | ||
| 76 | - <td> | ||
| 77 | - <span ng-bind="info.ccTime"></span> | ||
| 78 | - </td> | ||
| 79 | - <td> | ||
| 80 | - <span ng-bind="info.jName"></span> | ||
| 81 | - </td> | ||
| 82 | - <td> | ||
| 83 | - <span ng-bind="info.jGh"></span> | ||
| 84 | - </td> | ||
| 85 | - <td> | ||
| 86 | - <span ng-bind="info.sName"></span> | 67 | + <span>{{info.jName ? info.jName + '(' + info.jGh + ')' : ''}}</span> |
| 68 | + | ||
| 87 | </td> | 69 | </td> |
| 88 | <td> | 70 | <td> |
| 89 | - <span ng-bind="info.sGh"></span> | 71 | + <span>{{info.sGh ? info.sName + '(' + info.sGh + ')' : ''}}</span> |
| 90 | </td> | 72 | </td> |
| 91 | <td> | 73 | <td> |
| 92 | <span ng-bind="info.bcType | dict:'ScheduleType':'未知' "></span> | 74 | <span ng-bind="info.bcType | dict:'ScheduleType':'未知' "></span> |
| @@ -94,13 +76,10 @@ | @@ -94,13 +76,10 @@ | ||
| 94 | <td> | 76 | <td> |
| 95 | <span ng-bind="info.fcsj"></span> | 77 | <span ng-bind="info.fcsj"></span> |
| 96 | </td> | 78 | </td> |
| 97 | - | ||
| 98 | <td> | 79 | <td> |
| 99 | - <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> | ||
| 100 | - <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> | ||
| 101 | - <a ui-sref="#" class="btn default blue-stripe btn-sm"> 详细 </a> | ||
| 102 | - <a ui-sref="#" class="btn default blue-stripe btn-sm"> 修改 </a> | 80 | + <abbr title="info.ttInfoName">{{info.ttInfoName}}</abbr> |
| 103 | </td> | 81 | </td> |
| 82 | + | ||
| 104 | </tr> | 83 | </tr> |
| 105 | </tbody> | 84 | </tbody> |
| 106 | 85 |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/schedulePlanInfoManage.js
| @@ -75,6 +75,12 @@ angular.module('ScheduleApp').controller('SchedulePlanInfoManageListCtrl', ['Sch | @@ -75,6 +75,12 @@ angular.module('ScheduleApp').controller('SchedulePlanInfoManageListCtrl', ['Sch | ||
| 75 | infos: [] | 75 | infos: [] |
| 76 | }; | 76 | }; |
| 77 | 77 | ||
| 78 | + // 日期 日期控件开关 | ||
| 79 | + self.scheduleDate = false; | ||
| 80 | + self.scheduleDate_open = function() { | ||
| 81 | + self.scheduleDate = true; | ||
| 82 | + }; | ||
| 83 | + | ||
| 78 | var spid = $scope.spid; | 84 | var spid = $scope.spid; |
| 79 | 85 | ||
| 80 | // 初始创建的时候,获取一次列表数据 | 86 | // 初始创建的时候,获取一次列表数据 |
| @@ -118,6 +124,18 @@ angular.module('ScheduleApp').controller('SchedulePlanInfoManageListCtrl', ['Sch | @@ -118,6 +124,18 @@ angular.module('ScheduleApp').controller('SchedulePlanInfoManageListCtrl', ['Sch | ||
| 118 | return schedulePlanInfoManageService.resetSearchCondition(); | 124 | return schedulePlanInfoManageService.resetSearchCondition(); |
| 119 | }; | 125 | }; |
| 120 | 126 | ||
| 127 | + $scope.$watch( | ||
| 128 | + function() { | ||
| 129 | + return self.searchCondition()['scheduleDate_eq']; | ||
| 130 | + }, | ||
| 131 | + function(newValue, oldValue) { | ||
| 132 | + if (newValue == undefined && oldValue == undefined) { | ||
| 133 | + | ||
| 134 | + } else { | ||
| 135 | + self.pageChanaged(); | ||
| 136 | + } | ||
| 137 | + }); | ||
| 138 | + | ||
| 121 | }]); | 139 | }]); |
| 122 | 140 | ||
| 123 | 141 |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/schedulePlanManage.js
| @@ -78,6 +78,16 @@ angular.module('ScheduleApp').controller('SchedulePlanManageListCtrl', ['Schedul | @@ -78,6 +78,16 @@ angular.module('ScheduleApp').controller('SchedulePlanManageListCtrl', ['Schedul | ||
| 78 | infos: [] | 78 | infos: [] |
| 79 | }; | 79 | }; |
| 80 | 80 | ||
| 81 | + // 日期 日期控件开关 | ||
| 82 | + self.scheduleFromTime = false; | ||
| 83 | + self.scheduleFromTime_open = function() { | ||
| 84 | + self.scheduleFromTime = true; | ||
| 85 | + }; | ||
| 86 | + self.scheduleToTime = false; | ||
| 87 | + self.scheduleToTime_open = function() { | ||
| 88 | + self.scheduleToTime = true; | ||
| 89 | + }; | ||
| 90 | + | ||
| 81 | // 初始创建的时候,获取一次列表数据 | 91 | // 初始创建的时候,获取一次列表数据 |
| 82 | schedulePlanManageService.getPage().then( | 92 | schedulePlanManageService.getPage().then( |
| 83 | function(result) { | 93 | function(result) { |
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/edit.html
| @@ -43,17 +43,18 @@ | @@ -43,17 +43,18 @@ | ||
| 43 | <div class="form-group has-success has-feedback"> | 43 | <div class="form-group has-success has-feedback"> |
| 44 | <label class="col-md-2 control-label">线路*:</label> | 44 | <label class="col-md-2 control-label">线路*:</label> |
| 45 | <div class="col-md-3"> | 45 | <div class="col-md-3"> |
| 46 | - <sa-Select3 model="ctrl.scheduleRuleManageForSave" | ||
| 47 | - name="xl" | ||
| 48 | - placeholder="请输拼音..." | ||
| 49 | - dcvalue="{{ctrl.scheduleRuleManageForSave.xl.id}}" | 46 | + <sa-Select5 name="xl" |
| 47 | + model="ctrl.scheduleRuleManageForSave" | ||
| 48 | + cmaps="{'xl.id' : 'id'}" | ||
| 50 | dcname="xl.id" | 49 | dcname="xl.id" |
| 51 | icname="id" | 50 | icname="id" |
| 52 | - icnames="name" | ||
| 53 | - datatype="xl" | ||
| 54 | - mlp="true" | 51 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | + iterobjname="item" | ||
| 53 | + iterobjexp="item.name" | ||
| 54 | + searchph="请输拼音..." | ||
| 55 | + searchexp="this.name" | ||
| 55 | required > | 56 | required > |
| 56 | - </sa-Select3> | 57 | + </sa-Select5> |
| 57 | </div> | 58 | </div> |
| 58 | <!-- 隐藏块,显示验证信息 --> | 59 | <!-- 隐藏块,显示验证信息 --> |
| 59 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> | 60 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> |
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/form.html
| @@ -43,17 +43,18 @@ | @@ -43,17 +43,18 @@ | ||
| 43 | <div class="form-group has-success has-feedback"> | 43 | <div class="form-group has-success has-feedback"> |
| 44 | <label class="col-md-2 control-label">线路*:</label> | 44 | <label class="col-md-2 control-label">线路*:</label> |
| 45 | <div class="col-md-3"> | 45 | <div class="col-md-3"> |
| 46 | - <sa-Select3 model="ctrl.scheduleRuleManageForSave" | ||
| 47 | - name="xl" | ||
| 48 | - placeholder="请输拼音..." | ||
| 49 | - dcvalue="{{ctrl.scheduleRuleManageForSave.xl.id}}" | 46 | + <sa-Select5 name="xl" |
| 47 | + model="ctrl.scheduleRuleManageForSave" | ||
| 48 | + cmaps="{'xl.id' : 'id'}" | ||
| 50 | dcname="xl.id" | 49 | dcname="xl.id" |
| 51 | icname="id" | 50 | icname="id" |
| 52 | - icnames="name" | ||
| 53 | - datatype="xl" | ||
| 54 | - mlp="true" | 51 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | + iterobjname="item" | ||
| 53 | + iterobjexp="item.name" | ||
| 54 | + searchph="请输拼音..." | ||
| 55 | + searchexp="this.name" | ||
| 55 | required > | 56 | required > |
| 56 | - </sa-Select3> | 57 | + </sa-Select5> |
| 57 | </div> | 58 | </div> |
| 58 | <!-- 隐藏块,显示验证信息 --> | 59 | <!-- 隐藏块,显示验证信息 --> |
| 59 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> | 60 | <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> |
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/index.html
| @@ -32,34 +32,34 @@ | @@ -32,34 +32,34 @@ | ||
| 32 | 添加规则 | 32 | 添加规则 |
| 33 | </a> | 33 | </a> |
| 34 | 34 | ||
| 35 | - <div class="btn-group"> | ||
| 36 | - <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown"> | ||
| 37 | - <i class="fa fa-share"></i> | ||
| 38 | - <span>数据工具</span> | ||
| 39 | - <i class="fa fa-angle-down"></i> | ||
| 40 | - </a> | ||
| 41 | - <ul class="dropdown-menu pull-right"> | ||
| 42 | - <li> | ||
| 43 | - <a href="javascript:" class="tool-action"> | ||
| 44 | - <i class="fa fa-file-excel-o"></i> | ||
| 45 | - 规则类型 | ||
| 46 | - </a> | ||
| 47 | - </li> | ||
| 48 | - <li> | ||
| 49 | - <a href="javascript:" class="tool-action"> | ||
| 50 | - <i class="fa fa-file-excel-o"></i> | ||
| 51 | - 导出excel | ||
| 52 | - </a> | ||
| 53 | - </li> | ||
| 54 | - <li class="divider"></li> | ||
| 55 | - <li> | ||
| 56 | - <a href="javascript:" class="tool-action"> | ||
| 57 | - <i class="fa fa-refresh"></i> | ||
| 58 | - 刷行数据 | ||
| 59 | - </a> | ||
| 60 | - </li> | ||
| 61 | - </ul> | ||
| 62 | - </div> | 35 | + <!--<div class="btn-group">--> |
| 36 | + <!--<a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">--> | ||
| 37 | + <!--<i class="fa fa-share"></i>--> | ||
| 38 | + <!--<span>数据工具</span>--> | ||
| 39 | + <!--<i class="fa fa-angle-down"></i>--> | ||
| 40 | + <!--</a>--> | ||
| 41 | + <!--<ul class="dropdown-menu pull-right">--> | ||
| 42 | + <!--<li>--> | ||
| 43 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 44 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 45 | + <!--规则类型--> | ||
| 46 | + <!--</a>--> | ||
| 47 | + <!--</li>--> | ||
| 48 | + <!--<li>--> | ||
| 49 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 50 | + <!--<i class="fa fa-file-excel-o"></i>--> | ||
| 51 | + <!--导出excel--> | ||
| 52 | + <!--</a>--> | ||
| 53 | + <!--</li>--> | ||
| 54 | + <!--<li class="divider"></li>--> | ||
| 55 | + <!--<li>--> | ||
| 56 | + <!--<a href="javascript:" class="tool-action">--> | ||
| 57 | + <!--<i class="fa fa-refresh"></i>--> | ||
| 58 | + <!--刷行数据--> | ||
| 59 | + <!--</a>--> | ||
| 60 | + <!--</li>--> | ||
| 61 | + <!--</ul>--> | ||
| 62 | + <!--</div>--> | ||
| 63 | </div> | 63 | </div> |
| 64 | </div> | 64 | </div> |
| 65 | 65 |
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/list.html
| @@ -83,9 +83,9 @@ | @@ -83,9 +83,9 @@ | ||
| 83 | <td> | 83 | <td> |
| 84 | <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> | 84 | <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> |
| 85 | <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> | 85 | <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> |
| 86 | - <a ui-sref="scheduleRuleManage_detail({id : info.id})" class="btn default blue-stripe btn-sm"> 详细 </a> | ||
| 87 | - <a ui-sref="scheduleRuleManage_edit({id : info.id})" class="btn default blue-stripe btn-sm"> 修改 </a> | ||
| 88 | - <a ng-click="ctrl.deleteRule(info.id)" class="btn default blue-stripe btn-sm"> 删除 </a> | 86 | + <a ui-sref="scheduleRuleManage_detail({id : info.id})" class="btn btn-info btn-sm"> 详细 </a> |
| 87 | + <a ui-sref="scheduleRuleManage_edit({id : info.id})" class="btn btn-info btn-sm"> 修改 </a> | ||
| 88 | + <a ng-click="ctrl.deleteRule(info.id)" class="btn btn-danger btn-sm"> 删除 </a> | ||
| 89 | </td> | 89 | </td> |
| 90 | </tr> | 90 | </tr> |
| 91 | </tbody> | 91 | </tbody> |
src/main/resources/static/pages/scheduleApp/module/core/ttInfoDetailManage/edit-detail.html
| 1 | <div ng-controller="TimeTableDetailManageFormCtrl_old as ctrl"> | 1 | <div ng-controller="TimeTableDetailManageFormCtrl_old as ctrl"> |
| 2 | <div class="page-head"> | 2 | <div class="page-head"> |
| 3 | <div class="page-title"> | 3 | <div class="page-title"> |
| 4 | - <h1>修改班次信息2</h1> | 4 | + <h1>修改班次信息</h1> |
| 5 | </div> | 5 | </div> |
| 6 | </div> | 6 | </div> |
| 7 | 7 |
src/main/resources/static/pages/scheduleApp/module/core/ttInfoDetailManage/edit.html
src/main/resources/static/pages/scheduleApp/module/core/ttInfoDetailManage/form.html
| 1 | <div class="page-head"> | 1 | <div class="page-head"> |
| 2 | <div class="page-title"> | 2 | <div class="page-title"> |
| 3 | - <h1>时刻表管理2</h1> | 3 | + <h1>时刻表管理</h1> |
| 4 | </div> | 4 | </div> |
| 5 | </div> | 5 | </div> |
| 6 | 6 | ||
| @@ -89,7 +89,7 @@ | @@ -89,7 +89,7 @@ | ||
| 89 | ng-disabled="!item.isUploading"> | 89 | ng-disabled="!item.isUploading"> |
| 90 | <span class="glyphicon glyphicon-ban-circle"></span> 取消 | 90 | <span class="glyphicon glyphicon-ban-circle"></span> 取消 |
| 91 | </button> | 91 | </button> |
| 92 | - <button type="button" class="btn btn-danger btn-xs" ng-click="item.remove()"> | 92 | + <button type="button" class="btn btn-danger btn-xs" ng-click="ctrl.removeItem(item)"> |
| 93 | <span class="glyphicon glyphicon-trash"></span> 删除 | 93 | <span class="glyphicon glyphicon-trash"></span> 删除 |
| 94 | </button> | 94 | </button> |
| 95 | </td> | 95 | </td> |
src/main/resources/static/pages/scheduleApp/module/core/ttInfoDetailManage/main.js
| @@ -61,6 +61,11 @@ angular.module('ScheduleApp').controller( | @@ -61,6 +61,11 @@ angular.module('ScheduleApp').controller( | ||
| 61 | self.clearInputFile = function() { | 61 | self.clearInputFile = function() { |
| 62 | angular.element("input[type='file']").val(null); | 62 | angular.element("input[type='file']").val(null); |
| 63 | }; | 63 | }; |
| 64 | + self.removeItem = function(item) { | ||
| 65 | + item.remove(); | ||
| 66 | + self.ttInfoDetailManageForForm.sheetname = undefined; | ||
| 67 | + self.sheetnames = []; | ||
| 68 | + }; | ||
| 64 | 69 | ||
| 65 | // 上传文件组件 | 70 | // 上传文件组件 |
| 66 | self.uploader = new FileUploader({ | 71 | self.uploader = new FileUploader({ |
| @@ -79,6 +84,8 @@ angular.module('ScheduleApp').controller( | @@ -79,6 +84,8 @@ angular.module('ScheduleApp').controller( | ||
| 79 | console.log(self.uploader.queue.length); | 84 | console.log(self.uploader.queue.length); |
| 80 | if (self.uploader.queue.length > 1) | 85 | if (self.uploader.queue.length > 1) |
| 81 | self.uploader.removeFromQueue(0); | 86 | self.uploader.removeFromQueue(0); |
| 87 | + self.ttInfoDetailManageForForm.sheetname = undefined; | ||
| 88 | + self.sheetnames = []; | ||
| 82 | }; | 89 | }; |
| 83 | self.uploader.onSuccessItem = function(fileItem, response, status, headers) | 90 | self.uploader.onSuccessItem = function(fileItem, response, status, headers) |
| 84 | { | 91 | { |
| @@ -109,7 +116,7 @@ angular.module('ScheduleApp').controller( | @@ -109,7 +116,7 @@ angular.module('ScheduleApp').controller( | ||
| 109 | 116 | ||
| 110 | // TODO:edit操作暂时使用旧版本的js文件 | 117 | // TODO:edit操作暂时使用旧版本的js文件 |
| 111 | 118 | ||
| 112 | - // {"timestamp":1478674739246,"status":500,"error":"Internal Server Error","exception":"java.lang.ClassCastException","message":"java.lang.String cannot be cast to java.lang.Long","path":"/tidc/importfile"} | 119 | + |
| 113 | } | 120 | } |
| 114 | ] | 121 | ] |
| 115 | ); | 122 | ); |
| 116 | \ No newline at end of file | 123 | \ No newline at end of file |
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/detail.html
| 1 | <div class="page-head"> | 1 | <div class="page-head"> |
| 2 | <div class="page-title"> | 2 | <div class="page-title"> |
| 3 | - <h1>时刻表管理2</h1> | 3 | + <h1>时刻表管理</h1> |
| 4 | </div> | 4 | </div> |
| 5 | </div> | 5 | </div> |
| 6 | 6 | ||
| @@ -175,4 +175,5 @@ | @@ -175,4 +175,5 @@ | ||
| 175 | </div> | 175 | </div> |
| 176 | 176 | ||
| 177 | 177 | ||
| 178 | +>>>>>>> PSM-12 | ||
| 178 | </div> | 179 | </div> |
| 179 | \ No newline at end of file | 180 | \ No newline at end of file |
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/edit.html
| 1 | <div class="page-head"> | 1 | <div class="page-head"> |
| 2 | <div class="page-title"> | 2 | <div class="page-title"> |
| 3 | - <h1>时刻表管理2</h1> | 3 | + <h1>时刻表管理</h1> |
| 4 | </div> | 4 | </div> |
| 5 | </div> | 5 | </div> |
| 6 | 6 | ||
| @@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
| 48 | cmaps="{'xl.id' : 'id'}" | 48 | cmaps="{'xl.id' : 'id'}" |
| 49 | dcname="xl.id" | 49 | dcname="xl.id" |
| 50 | icname="id" | 50 | icname="id" |
| 51 | - dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}" | 51 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | iterobjname="item" | 52 | iterobjname="item" |
| 53 | iterobjexp="item.name" | 53 | iterobjexp="item.name" |
| 54 | searchph="请输拼音..." | 54 | searchph="请输拼音..." |
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/form.html
| 1 | <div class="page-head"> | 1 | <div class="page-head"> |
| 2 | <div class="page-title"> | 2 | <div class="page-title"> |
| 3 | - <h1>时刻表管理2</h1> | 3 | + <h1>时刻表管理</h1> |
| 4 | </div> | 4 | </div> |
| 5 | </div> | 5 | </div> |
| 6 | 6 | ||
| @@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
| 48 | cmaps="{'xl.id' : 'id'}" | 48 | cmaps="{'xl.id' : 'id'}" |
| 49 | dcname="xl.id" | 49 | dcname="xl.id" |
| 50 | icname="id" | 50 | icname="id" |
| 51 | - dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}" | 51 | + dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" |
| 52 | iterobjname="item" | 52 | iterobjname="item" |
| 53 | iterobjexp="item.name" | 53 | iterobjexp="item.name" |
| 54 | searchph="请输拼音..." | 54 | searchph="请输拼音..." |
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/index.html
src/main/resources/static/real_control_v2/css/main.css
src/main/resources/static/real_control_v2/css/north.css
| 1 | .north { | 1 | .north { |
| 2 | - background: linear-gradient(to right, #082F4A, #125688, #0a3f64); | 2 | + background: linear-gradient(to right ,#595959, #7b7b7b,#595959); |
| 3 | height: 120px; | 3 | height: 120px; |
| 4 | position: relative; | 4 | position: relative; |
| 5 | + transition: all .3s ease; | ||
| 6 | +} | ||
| 7 | + | ||
| 8 | +.north.main { | ||
| 9 | + background: linear-gradient(to right, #082F4A, #125688, #0a3f64); | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +.north.scok-colse { | ||
| 13 | + background: linear-gradient(to right, #924040, #ce6262, #924040) !important; | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +.north.scok-colse:before { | ||
| 17 | + content: "长连接被断开,你将无法收到服务器推送的发车、到站信息。请刷新页面以重建连接!"; | ||
| 18 | + position: absolute; | ||
| 19 | + padding: 5px 10px 5px 14px; | ||
| 20 | + background: #414141; | ||
| 21 | + color: #f9f9f9; | ||
| 22 | + border-radius: 20px 0 0 20px; | ||
| 23 | + z-index: 5; | ||
| 24 | + left: 270px; | ||
| 25 | + box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12); | ||
| 26 | + border: 1px solid #caaaaa; | ||
| 27 | + font-size: 13px; | ||
| 5 | } | 28 | } |
| 6 | 29 | ||
| 7 | .north .north-logo { | 30 | .north .north-logo { |
src/main/resources/static/real_control_v2/fragments/line_schedule/sch_table.html
| @@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
| 13 | <div class="uk-autocomplete sch-search-autocom"> | 13 | <div class="uk-autocomplete sch-search-autocom"> |
| 14 | <div class="uk-form-icon"> | 14 | <div class="uk-form-icon"> |
| 15 | <i class="uk-icon-search"></i> | 15 | <i class="uk-icon-search"></i> |
| 16 | - <input type="text" placeholder="search"> | 16 | + <input type="text" placeholder="搜索"> |
| 17 | <i class="cancel uk-icon-times-circle" data-uk-tooltip="{pos:'right'}" title="取消过滤"></i> | 17 | <i class="cancel uk-icon-times-circle" data-uk-tooltip="{pos:'right'}" title="取消过滤"></i> |
| 18 | </div> | 18 | </div> |
| 19 | </div> | 19 | </div> |
| @@ -111,8 +111,8 @@ | @@ -111,8 +111,8 @@ | ||
| 111 | </dd> | 111 | </dd> |
| 112 | </script> | 112 | </script> |
| 113 | 113 | ||
| 114 | - <script id="line-schedule-sfsj-temp" type="text/html"> | ||
| 115 | - <dd class=" | 114 | +<script id="line-schedule-sfsj-temp" type="text/html"> |
| 115 | +<dd class=" | ||
| 116 | {{if status==-1}} | 116 | {{if status==-1}} |
| 117 | tl-qrlb | 117 | tl-qrlb |
| 118 | {{else if status==2}} | 118 | {{else if status==2}} |
src/main/resources/static/real_control_v2/fragments/north/nav/charts/s_e_punctuality_rate_line.html
| @@ -61,56 +61,46 @@ | @@ -61,56 +61,46 @@ | ||
| 61 | //实发准点率 -dfsj 待发时间戳(秒),sfsj 实发时间戳(秒) | 61 | //实发准点率 -dfsj 待发时间戳(秒),sfsj 实发时间戳(秒) |
| 62 | function calcPunctuality(dfsj, sfsj){ | 62 | function calcPunctuality(dfsj, sfsj){ |
| 63 | var diff=(dfsj-sfsj)/60; | 63 | var diff=(dfsj-sfsj)/60; |
| 64 | - var rs=0; | ||
| 65 | if(diff > 0){ | 64 | if(diff > 0){ |
| 66 | if(diff <= 1) | 65 | if(diff <= 1) |
| 67 | - rs=1; | ||
| 68 | - else | ||
| 69 | - rs=(10 - (diff - 1)) / 10; | 66 | + return true; |
| 70 | } | 67 | } |
| 71 | else{ | 68 | else{ |
| 72 | - if(Math.abs(diff) < 3) | ||
| 73 | - rs=1; | ||
| 74 | - else | ||
| 75 | - rs=(10 - (Math.abs(diff) - 3)) / 10; | 69 | + if(Math.abs(diff) <= 3) |
| 70 | + return true; | ||
| 76 | } | 71 | } |
| 77 | 72 | ||
| 78 | - return rs<0?0:rs; | 73 | + return false; |
| 79 | } | 74 | } |
| 80 | 75 | ||
| 81 | //计算准点率 | 76 | //计算准点率 |
| 82 | function calcPunctualityRate(data){ | 77 | function calcPunctualityRate(data){ |
| 83 | - var line2Reate={}, seff, eeff, fs="YYYY-MM-DDHH:mm"; | 78 | + var line2Reate={}, eff, fs="YYYY-MM-DDHH:mm"; |
| 84 | for(var lineCode in data){ | 79 | for(var lineCode in data){ |
| 85 | - seff=0; | ||
| 86 | - eeff=0; | 80 | + eff=0; |
| 87 | $.each(data[lineCode], function(){ | 81 | $.each(data[lineCode], function(){ |
| 88 | //首班时间 | 82 | //首班时间 |
| 89 | - if(this.startTime.length == 11){ | 83 | + if(this.startTime.length >= 11){ |
| 90 | var arr=this.startTime.split('/'); | 84 | var arr=this.startTime.split('/'); |
| 91 | - var sDfsj=moment(this.etRealExecDate+arr[0], fs).format('X'), | ||
| 92 | - sSfsj=moment(this.etRealExecDate+arr[1], fs).format('X'); | 85 | + var dfsj=moment(this.etRealExecDate+arr[0], fs).format('X'), |
| 86 | + sfsj=moment(this.etRealExecDate+arr[1], fs).format('X'); | ||
| 93 | 87 | ||
| 94 | - seff=calcPunctuality(sDfsj, sSfsj); | 88 | + if(calcPunctuality(dfsj, sfsj)) |
| 89 | + eff+=25; | ||
| 95 | } | 90 | } |
| 96 | - else | ||
| 97 | - this.s_isPunctuality=-1; | 91 | + |
| 98 | //末班时间 | 92 | //末班时间 |
| 99 | - if(this.endTime.length == 11){ | 93 | + if(this.endTime.length >= 11){ |
| 100 | var arr=this.endTime.split('/'); | 94 | var arr=this.endTime.split('/'); |
| 101 | - var eDfsj=moment(this.etRealExecDate+arr[0], fs).format('X'), | ||
| 102 | - eSfsj=moment(this.etRealExecDate+arr[1], fs).format('X'); | 95 | + var dfsj=moment(this.etRealExecDate+arr[0], fs).format('X'), |
| 96 | + sfsj=moment(this.etRealExecDate+arr[1], fs).format('X'); | ||
| 103 | 97 | ||
| 104 | - eeff=calcPunctuality(eDfsj, eSfsj); | 98 | + if(calcPunctuality(dfsj, sfsj)) |
| 99 | + eff+=25; | ||
| 105 | } | 100 | } |
| 106 | - else | ||
| 107 | - this.e_isPunctuality=-1; | ||
| 108 | }); | 101 | }); |
| 109 | 102 | ||
| 110 | - line2Reate[lineCode]={ | ||
| 111 | - seff: (seff*100).toFixed(2), | ||
| 112 | - eeff: (eeff*100).toFixed(2) | ||
| 113 | - }; | 103 | + line2Reate[lineCode]={eff: eff}; |
| 114 | } | 104 | } |
| 115 | 105 | ||
| 116 | return line2Reate; | 106 | return line2Reate; |
| @@ -165,26 +155,17 @@ | @@ -165,26 +155,17 @@ | ||
| 165 | //lineCode再次分组,计算准点率 | 155 | //lineCode再次分组,计算准点率 |
| 166 | var line2Reate=calcPunctualityRate(gb_common.groupBy(groupList[date],'lineCode')); | 156 | var line2Reate=calcPunctualityRate(gb_common.groupBy(groupList[date],'lineCode')); |
| 167 | 157 | ||
| 168 | - sData=[], eData=[]; | 158 | + sData=[]; |
| 169 | //subData=[]; | 159 | //subData=[]; |
| 170 | $.each(lineCodeArr, function(i, code){ | 160 | $.each(lineCodeArr, function(i, code){ |
| 171 | sData.push({ | 161 | sData.push({ |
| 172 | - value: line2Reate[code]?line2Reate[code].seff:0, | ||
| 173 | - date:date, | ||
| 174 | - lineCode: code | ||
| 175 | - }); | ||
| 176 | - | ||
| 177 | - eData.push({ | ||
| 178 | - value: line2Reate[code]?line2Reate[code].eeff:0, | 162 | + value: line2Reate[code]?line2Reate[code].eff:0, |
| 179 | date:date, | 163 | date:date, |
| 180 | lineCode: code | 164 | lineCode: code |
| 181 | }); | 165 | }); |
| 182 | }); | 166 | }); |
| 183 | 167 | ||
| 184 | data.push({ | 168 | data.push({ |
| 185 | - legend: { | ||
| 186 | - data: ['首班', '末班'] | ||
| 187 | - }, | ||
| 188 | grid: {x: 30, x2: 5, height: 390, y: 94, y2: 50}, | 169 | grid: {x: 30, x2: 5, height: 390, y: 94, y2: 50}, |
| 189 | tooltip: { | 170 | tooltip: { |
| 190 | 'trigger': 'axis', | 171 | 'trigger': 'axis', |
| @@ -206,21 +187,16 @@ | @@ -206,21 +187,16 @@ | ||
| 206 | }, | 187 | }, |
| 207 | title: { | 188 | title: { |
| 208 | text: date + '首末班次准点率', | 189 | text: date + '首末班次准点率', |
| 209 | - subtext: '线路首末班发车数据(快1慢3准点,差值每分钟降10点)' | 190 | + subtext: '线路上下行首末班,4个班次,每个班次25%(快1慢3准点)' |
| 210 | }, | 191 | }, |
| 211 | - text: date + '发车率', | ||
| 212 | series: [{ | 192 | series: [{ |
| 213 | - name: '首班', | 193 | + name: '准点率', |
| 214 | type: 'bar', | 194 | type: 'bar', |
| 215 | data: sData | 195 | data: sData |
| 216 | - }, | ||
| 217 | - { | ||
| 218 | - name: '末班', | ||
| 219 | - type: 'bar', | ||
| 220 | - data: eData | ||
| 221 | - }] | 196 | + }] |
| 222 | }); | 197 | }); |
| 223 | } | 198 | } |
| 199 | + console.log(data); | ||
| 224 | 200 | ||
| 225 | $('.load-panel', modal).hide(); | 201 | $('.load-panel', modal).hide(); |
| 226 | $('#countBtn', modal).removeAttr('disabled'); | 202 | $('#countBtn', modal).removeAttr('disabled'); |
src/main/resources/static/real_control_v2/fragments/north/nav/charts/sch_exec_rate.html
0 → 100644
| 1 | +<div class="uk-modal" id="sch-exec-rate-modal"> | ||
| 2 | + <div class="uk-modal-dialog" style="width: 1200px;"> | ||
| 3 | + <a href="" class="uk-modal-close uk-close"></a> | ||
| 4 | + <div class="uk-modal-header"> | ||
| 5 | + <h2>班次执行率</h2></div> | ||
| 6 | + | ||
| 7 | + <div class="uk-panel uk-panel-box uk-panel-box-primary" style="margin-bottom: 10px;"> | ||
| 8 | + <form class="uk-form search-form"> | ||
| 9 | + <fieldset data-uk-margin> | ||
| 10 | + <div class="uk-form-icon"> | ||
| 11 | + <i class="uk-icon-calendar"></i> | ||
| 12 | + <input type="date" id="dateInput"> | ||
| 13 | + </div> | ||
| 14 | + <button class="uk-button" id="countBtn">统计</button> | ||
| 15 | + </fieldset> | ||
| 16 | + </form> | ||
| 17 | + </div> | ||
| 18 | + | ||
| 19 | + <div class="chart-wrap" style="height: 570px;"> | ||
| 20 | + | ||
| 21 | + </div> | ||
| 22 | + | ||
| 23 | + <div class="load-panel"> | ||
| 24 | + <i class="uk-icon-spinner uk-icon-spin"></i> | ||
| 25 | + 正在汇总数据 | ||
| 26 | + </div> | ||
| 27 | + </div> | ||
| 28 | + | ||
| 29 | + <script> | ||
| 30 | + (function () { | ||
| 31 | + | ||
| 32 | + var modal = '#sch-exec-rate-modal'; | ||
| 33 | + var chartObj; | ||
| 34 | + | ||
| 35 | + var option = { | ||
| 36 | + color: ['#3398DB'], | ||
| 37 | + tooltip: { | ||
| 38 | + trigger: 'axis', | ||
| 39 | + axisPointer: { | ||
| 40 | + type: 'shadow' | ||
| 41 | + } | ||
| 42 | + }, | ||
| 43 | + grid: { | ||
| 44 | + left: '3%', | ||
| 45 | + right: '4%', | ||
| 46 | + bottom: '3%', | ||
| 47 | + containLabel: true | ||
| 48 | + }, | ||
| 49 | + xAxis: [ | ||
| 50 | + { | ||
| 51 | + type: 'category', | ||
| 52 | + axisTick: { | ||
| 53 | + alignWithLabel: true | ||
| 54 | + } | ||
| 55 | + } | ||
| 56 | + ], | ||
| 57 | + yAxis: [ | ||
| 58 | + { | ||
| 59 | + type: 'value', | ||
| 60 | + min: 0, | ||
| 61 | + max: 100, | ||
| 62 | + name: '执行率' | ||
| 63 | + } | ||
| 64 | + ], | ||
| 65 | + series: [ | ||
| 66 | + { | ||
| 67 | + name: '班次执行率', | ||
| 68 | + type: 'bar', | ||
| 69 | + barWidth: '60%' | ||
| 70 | + } | ||
| 71 | + ] | ||
| 72 | + }; | ||
| 73 | + | ||
| 74 | + | ||
| 75 | + $(modal).on('init', function (e, data) { | ||
| 76 | + //默认当天 | ||
| 77 | + var m = moment().format('YYYY-MM-DD'); | ||
| 78 | + $('#dateInput', modal).val(m); | ||
| 79 | + | ||
| 80 | + chartObj = echarts.init($('.chart-wrap', modal)[0]); | ||
| 81 | + chartObj.on('click', chartObjClickHandler); | ||
| 82 | + renderChart(); | ||
| 83 | + | ||
| 84 | + }); | ||
| 85 | + | ||
| 86 | + | ||
| 87 | + $('#countBtn', modal).on('click', function () { | ||
| 88 | + try { | ||
| 89 | + renderChart(); | ||
| 90 | + } catch (e) { | ||
| 91 | + console.log(e); | ||
| 92 | + } | ||
| 93 | + return false; | ||
| 94 | + }); | ||
| 95 | + | ||
| 96 | + //计算执行率 | ||
| 97 | + function calcSchExecRate(list) { | ||
| 98 | + if (!list) | ||
| 99 | + return 0; | ||
| 100 | + var eff = 0; | ||
| 101 | + $.each(list, function () { | ||
| 102 | + if (this.status >= 1) | ||
| 103 | + eff++; | ||
| 104 | + }); | ||
| 105 | + return (eff / list.length * 100).toFixed(2); | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + var renderData; | ||
| 109 | + | ||
| 110 | + function renderChart() { | ||
| 111 | + //xAxis data | ||
| 112 | + var xAxisData = [], lineCodeArr = []; | ||
| 113 | + $.each(gb_data_basic.activeLines, function () { | ||
| 114 | + xAxisData.push(this.name); | ||
| 115 | + lineCodeArr.push(this.lineCode); | ||
| 116 | + }); | ||
| 117 | + option.xAxis[0].data = xAxisData; | ||
| 118 | + | ||
| 119 | + $.get('/realCharts/scheduleExecRates', { | ||
| 120 | + idx: gb_data_basic.line_idx, | ||
| 121 | + date: $('#dateInput', modal).val() | ||
| 122 | + }, function (rs) { | ||
| 123 | + //console.log(rs); | ||
| 124 | + //按线路分组 | ||
| 125 | + var groupData = gb_common.groupBy(rs, 'lineCode'); | ||
| 126 | + | ||
| 127 | + renderData = groupData; | ||
| 128 | + var data = []; | ||
| 129 | + | ||
| 130 | + for (var i = 0, code; code = lineCodeArr[i++];) { | ||
| 131 | + //计算执行率 | ||
| 132 | + var eff = calcSchExecRate(groupData[code]); | ||
| 133 | + data.push({value: eff, lineCode: code}); | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + option.series[0].data = data; | ||
| 137 | + chartObj.setOption(option); | ||
| 138 | + }); | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | + function chartObjClickHandler(obj) { | ||
| 142 | + if (obj.componentType != 'series' || obj.componentSubType != 'bar') | ||
| 143 | + return; | ||
| 144 | + | ||
| 145 | + var list = renderData[obj.data.lineCode]; | ||
| 146 | + list = list.filter(function (obj) { | ||
| 147 | + if(obj.status<1) | ||
| 148 | + return 1; | ||
| 149 | + else | ||
| 150 | + return 0; | ||
| 151 | + }); | ||
| 152 | + | ||
| 153 | + $.get('/real_control_v2/fragments/north/nav/charts/sch_exec_rate_detail.html', function (htmlStr) { | ||
| 154 | + $(document.body).append(htmlStr); | ||
| 155 | + var detailModal = '#sch-exec-rate-detail-modal'; | ||
| 156 | + var elem = UIkit.modal(detailModal, {bgclose: true, modal: false}).show(); | ||
| 157 | + $(detailModal).trigger('init', {list: list}); | ||
| 158 | + }) | ||
| 159 | + } | ||
| 160 | + })(); | ||
| 161 | + </script> | ||
| 162 | +</div> |
src/main/resources/static/real_control_v2/fragments/north/nav/charts/sch_exec_rate_detail.html
0 → 100644
| 1 | +<div class="uk-modal" id="sch-exec-rate-detail-modal"> | ||
| 2 | + <div class="uk-modal-dialog" style="width: 350px;"> | ||
| 3 | + <a href="" class="uk-modal-close uk-close"></a> | ||
| 4 | + <div style="margin:5px 0 -18px;"> | ||
| 5 | + <table class="ct-fixed-table uk-table uk-table-hover"> | ||
| 6 | + <thead> | ||
| 7 | + <tr> | ||
| 8 | + <th style="width: 40%;">线路</th> | ||
| 9 | + <th style="width: 30%;">待发</th> | ||
| 10 | + <th style="width: 30%;">状态</th> | ||
| 11 | + </tr> | ||
| 12 | + </thead> | ||
| 13 | + <tbody> | ||
| 14 | + </tbody> | ||
| 15 | + </table> | ||
| 16 | + </div> | ||
| 17 | + </div> | ||
| 18 | + | ||
| 19 | + <script id="sch-exec-rate-detail-table-temp" type="text/html"> | ||
| 20 | + {{each list as obj i}} | ||
| 21 | + <tr> | ||
| 22 | + <td>{{obj.lineName}}</td> | ||
| 23 | + <td>{{obj.dfsj}}</td> | ||
| 24 | + <td> | ||
| 25 | + {{if obj.status==-1}} | ||
| 26 | + <span style="color: red;">烂班</span> | ||
| 27 | + {{else if obj.status==1}} | ||
| 28 | + 正在执行 | ||
| 29 | + {{else if obj.status==2}} | ||
| 30 | + 已执行 | ||
| 31 | + {{/if}} | ||
| 32 | + </td> | ||
| 33 | + </tr> | ||
| 34 | + {{/each}} | ||
| 35 | + </script> | ||
| 36 | + | ||
| 37 | + <script> | ||
| 38 | + (function() { | ||
| 39 | + var modal = '#sch-exec-rate-detail-modal'; | ||
| 40 | + | ||
| 41 | + $(modal).on('init', function(e, data) { | ||
| 42 | + var code2Name = gb_data_basic.lineCode2NameAll(); | ||
| 43 | + $.each(data.list, function(){ | ||
| 44 | + this.lineName=code2Name[this.lineCode]; | ||
| 45 | + }); | ||
| 46 | + | ||
| 47 | + var tbodys=template('sch-exec-rate-detail-table-temp', {list: data.list}); | ||
| 48 | + $('table tbody', modal).html(tbodys); | ||
| 49 | + }); | ||
| 50 | + })(); | ||
| 51 | + </script> | ||
| 52 | +</div> |
src/main/resources/static/real_control_v2/fragments/north/nav/charts/strat_end_punctuality_rate_dateil.html
| @@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
| 7 | <tr> | 7 | <tr> |
| 8 | <th style="width: 14%;">日期</th> | 8 | <th style="width: 14%;">日期</th> |
| 9 | <th style="width: 14%;">线路</th> | 9 | <th style="width: 14%;">线路</th> |
| 10 | - <th style="width: 14%;">车辆</th> | 10 | + <th style="width: 14%;">上下行</th> |
| 11 | <th style="width: 23%;">首班</th> | 11 | <th style="width: 23%;">首班</th> |
| 12 | <th style="width: 23%;">末班</th> | 12 | <th style="width: 23%;">末班</th> |
| 13 | </tr> | 13 | </tr> |
| @@ -23,7 +23,13 @@ | @@ -23,7 +23,13 @@ | ||
| 23 | <tr> | 23 | <tr> |
| 24 | <td>{{obj.dateStr}}</td> | 24 | <td>{{obj.dateStr}}</td> |
| 25 | <td>{{obj.lineName}}</td> | 25 | <td>{{obj.lineName}}</td> |
| 26 | - <td>{{obj.nbbm}}</td> | 26 | + <td> |
| 27 | + {{if obj.updown==0}} | ||
| 28 | + 上行 | ||
| 29 | + {{else if obj.updown==1}} | ||
| 30 | + 下行 | ||
| 31 | + {{/if}} | ||
| 32 | + </td> | ||
| 27 | <td> | 33 | <td> |
| 28 | {{obj.startTime}} | 34 | {{obj.startTime}} |
| 29 | </td> | 35 | </td> |
| @@ -44,15 +50,13 @@ | @@ -44,15 +50,13 @@ | ||
| 44 | var code2Name = gb_data_basic.lineCode2NameAll(); | 50 | var code2Name = gb_data_basic.lineCode2NameAll(); |
| 45 | $.each(data.list, function(){ | 51 | $.each(data.list, function(){ |
| 46 | this.lineName=code2Name[this.lineCode]; | 52 | this.lineName=code2Name[this.lineCode]; |
| 53 | + if(this.startTime.indexOf('_')) | ||
| 54 | + this.startTime=this.startTime.split('_')[0]; | ||
| 55 | + if(this.endTime.indexOf('_')) | ||
| 56 | + this.endTime=this.endTime.split('_')[0]; | ||
| 47 | }); | 57 | }); |
| 48 | 58 | ||
| 49 | - /*data.list.sort(function(a, b){ | ||
| 50 | - if(!a.firstOut) | ||
| 51 | - return -1; | ||
| 52 | - if(!b.firstOut) | ||
| 53 | - return 1; | ||
| 54 | - return a.firstOut.localeCompare(b.firstOut); | ||
| 55 | - });*/ | 59 | + |
| 56 | 60 | ||
| 57 | var tbodys=template('s-e-punctuality-rate-dateil-table-temp', {list: data.list}); | 61 | var tbodys=template('s-e-punctuality-rate-dateil-table-temp', {list: data.list}); |
| 58 | $('table tbody', modal).html(tbodys); | 62 | $('table tbody', modal).html(tbodys); |
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch_maintain.html
| @@ -87,7 +87,12 @@ | @@ -87,7 +87,12 @@ | ||
| 87 | {{if sch.cTasks.length > 0}} | 87 | {{if sch.cTasks.length > 0}} |
| 88 | <span class="uk-badge uk-badge-notification">{{sch.cTasks.length}}</span> | 88 | <span class="uk-badge uk-badge-notification">{{sch.cTasks.length}}</span> |
| 89 | {{/if}}</dd> | 89 | {{/if}}</dd> |
| 90 | - <dd>{{sch.dfsj}}</dd> | 90 | + <dd> |
| 91 | + {{sch.dfsj}} | ||
| 92 | + {{if sch.status==-1}} | ||
| 93 | + <span class="uk-badge uk-badge-danger">烂班</span> | ||
| 94 | + {{/if}} | ||
| 95 | + </dd> | ||
| 91 | <dd>{{sch.fcsjActual}}</dd> | 96 | <dd>{{sch.fcsjActual}}</dd> |
| 92 | <dd>{{sch.zdsjActual}}</dd> | 97 | <dd>{{sch.zdsjActual}}</dd> |
| 93 | <dd title="{{sch.remarks}}">{{sch.remarks}}</dd> | 98 | <dd title="{{sch.remarks}}">{{sch.remarks}}</dd> |
| @@ -274,4 +279,4 @@ | @@ -274,4 +279,4 @@ | ||
| 274 | }); | 279 | }); |
| 275 | })(); | 280 | })(); |
| 276 | </script> | 281 | </script> |
| 277 | -</div> | 282 | +</div> |
| 278 | \ No newline at end of file | 283 | \ No newline at end of file |
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
| @@ -195,7 +195,7 @@ var gb_schedule_table = (function() { | @@ -195,7 +195,7 @@ var gb_schedule_table = (function() { | ||
| 195 | }).on('mouseup', function() { | 195 | }).on('mouseup', function() { |
| 196 | drag_strat = null; | 196 | drag_strat = null; |
| 197 | }).on('mouseover', seq_nos, function() { | 197 | }).on('mouseover', seq_nos, function() { |
| 198 | - if (drag_strat) { | 198 | + if (drag_strat != null) { |
| 199 | var e = parseInt($(this).text()), | 199 | var e = parseInt($(this).text()), |
| 200 | dls = $(this).parents('.ct_table_body').find('dl'); | 200 | dls = $(this).parents('.ct_table_body').find('dl'); |
| 201 | 201 | ||
| @@ -276,6 +276,8 @@ var gb_schedule_table = (function() { | @@ -276,6 +276,8 @@ var gb_schedule_table = (function() { | ||
| 276 | cont.animate({ | 276 | cont.animate({ |
| 277 | scrollTop: dl.offset().top - cont.offset().top + cont.scrollTop() - diff | 277 | scrollTop: dl.offset().top - cont.offset().top + cont.scrollTop() - diff |
| 278 | }, 500); | 278 | }, 500); |
| 279 | + | ||
| 280 | + return dl; | ||
| 279 | } | 281 | } |
| 280 | 282 | ||
| 281 | var reset_drag_active_all = function(dd) { | 283 | var reset_drag_active_all = function(dd) { |
| @@ -322,6 +324,8 @@ var gb_schedule_table = (function() { | @@ -322,6 +324,8 @@ var gb_schedule_table = (function() { | ||
| 322 | insertSchedule: insertSchedule, | 324 | insertSchedule: insertSchedule, |
| 323 | schedule_sort: schedule_sort, | 325 | schedule_sort: schedule_sort, |
| 324 | calc_yfwf_num: calc_yfwf_num, | 326 | calc_yfwf_num: calc_yfwf_num, |
| 325 | - car_yfwf_map: function(lineCode){return car_yfwf_map[lineCode];} | 327 | + car_yfwf_map: function(lineCode){return car_yfwf_map[lineCode];}, |
| 328 | + scroToDl: scroToDl, | ||
| 329 | + reset_drag_active_all: reset_drag_active_all | ||
| 326 | }; | 330 | }; |
| 327 | })(); | 331 | })(); |
src/main/resources/static/real_control_v2/js/main.js
| 1 | +//主调和监控模式 | ||
| 2 | +var operationMode = window.localStorage.getItem('operationMode'); | ||
| 3 | +if(operationMode == 0){ | ||
| 4 | + $('body>.north').addClass('monitor'); | ||
| 5 | + $(document).on('ajaxSend', interceptPOST); | ||
| 6 | +} | ||
| 7 | +else | ||
| 8 | + $('body>.north').addClass('main'); | ||
| 9 | + | ||
| 10 | +//拦截POST请求 | ||
| 11 | +function interceptPOST(e, xhr, t){ | ||
| 12 | + if(t && (t.method == 'POST' || t.type == 'POST')){ | ||
| 13 | + console.log(e, xhr, t); | ||
| 14 | + xhr.abort(); | ||
| 15 | + notify_err('监控模式!'); | ||
| 16 | + } | ||
| 17 | +} | ||
| 18 | + | ||
| 1 | /* main js */ | 19 | /* main js */ |
| 2 | var gb_main_ep = new EventProxy(), | 20 | var gb_main_ep = new EventProxy(), |
| 3 | res_load_ep = EventProxy.create('load_data_basic', 'load_tab', 'load_home_layout', 'load_home_line_panel', function() { | 21 | res_load_ep = EventProxy.create('load_data_basic', 'load_tab', 'load_home_layout', 'load_home_line_panel', function() { |
| @@ -159,4 +177,4 @@ var open_modal = function(pageUrl, data, opt) { | @@ -159,4 +177,4 @@ var open_modal = function(pageUrl, data, opt) { | ||
| 159 | if (data) | 177 | if (data) |
| 160 | $(id).trigger('init', data); | 178 | $(id).trigger('init', data); |
| 161 | }); | 179 | }); |
| 162 | -} | 180 | +}; |
src/main/resources/static/real_control_v2/js/north/toolbar.js
| @@ -65,6 +65,9 @@ var gb_northToolbar = (function() { | @@ -65,6 +65,9 @@ var gb_northToolbar = (function() { | ||
| 65 | }, | 65 | }, |
| 66 | history_sch_maintain: function () { | 66 | history_sch_maintain: function () { |
| 67 | open_modal('/real_control_v2/fragments/north/nav/history_sch_maintain.html', {}, {center: false,bgclose: false}); | 67 | open_modal('/real_control_v2/fragments/north/nav/history_sch_maintain.html', {}, {center: false,bgclose: false}); |
| 68 | + }, | ||
| 69 | + sch_exec_rate: function () { | ||
| 70 | + open_modal('/real_control_v2/fragments/north/nav/charts/sch_exec_rate.html', {}, modal_opts); | ||
| 68 | } | 71 | } |
| 69 | } | 72 | } |
| 70 | })(); | 73 | })(); |
src/main/resources/static/real_control_v2/js/websocket/sch_websocket.js
| @@ -33,10 +33,9 @@ var gb_sch_websocket = (function () { | @@ -33,10 +33,9 @@ var gb_sch_websocket = (function () { | ||
| 33 | 33 | ||
| 34 | //断开 | 34 | //断开 |
| 35 | schSock.onclose = function (e) { | 35 | schSock.onclose = function (e) { |
| 36 | - alert('和服务器连接断开....'); | ||
| 37 | - console.log('和服务器连接断开....'); | ||
| 38 | - regListen(); | ||
| 39 | - | 36 | + //alert('和服务器连接断开, code:' + e.code); |
| 37 | + console.log('和服务器连接断开....', e); | ||
| 38 | + $('body>.north').addClass('scok-colse'); | ||
| 40 | }; | 39 | }; |
| 41 | 40 | ||
| 42 | 41 | ||
| @@ -175,7 +174,13 @@ var gb_sch_websocket = (function () { | @@ -175,7 +174,13 @@ var gb_sch_websocket = (function () { | ||
| 175 | 174 | ||
| 176 | //42消息点击 | 175 | //42消息点击 |
| 177 | $(document).on('click', '.sys-mailbox .sys-note-42', function () { | 176 | $(document).on('click', '.sys-mailbox .sys-note-42', function () { |
| 178 | - alert($(this).data('id')); | 177 | + var lineCode=$(this).parents('li.line_schedule').data('id') |
| 178 | + ,id=$(this).data('id'); | ||
| 179 | + var sch = gb_schedule_table.findScheduleByLine(lineCode)[id]; | ||
| 180 | + var dl = gb_schedule_table.scroToDl(sch); | ||
| 181 | + //高亮 | ||
| 182 | + gb_schedule_table.reset_drag_active_all(dl); | ||
| 183 | + dl.addClass('relevance-active intimity'); | ||
| 179 | }); | 184 | }); |
| 180 | 185 | ||
| 181 | //80同意 | 186 | //80同意 |
src/test/java/com/bsth/service/schedule/rules/DroolsRulesTest.java
| @@ -58,7 +58,7 @@ public class DroolsRulesTest { | @@ -58,7 +58,7 @@ public class DroolsRulesTest { | ||
| 58 | session.dispose(); | 58 | session.dispose(); |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | - @Test | 61 | +// @Test |
| 62 | public void ttinfoDrlTest() throws Exception { | 62 | public void ttinfoDrlTest() throws Exception { |
| 63 | logger.info("------------ttinfoDrlTest 测试---------------"); | 63 | logger.info("------------ttinfoDrlTest 测试---------------"); |
| 64 | 64 | ||
| @@ -133,7 +133,7 @@ public class DroolsRulesTest { | @@ -133,7 +133,7 @@ public class DroolsRulesTest { | ||
| 133 | 133 | ||
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | -// @Test | 136 | + @Test |
| 137 | public void shiftloopDrlTest() throws Exception { | 137 | public void shiftloopDrlTest() throws Exception { |
| 138 | // 1、创建session,内部配置的是stateful | 138 | // 1、创建session,内部配置的是stateful |
| 139 | KieSession session = kieBase.newKieSession(); | 139 | KieSession session = kieBase.newKieSession(); |