Commit 71e29cfe85be96d5b665ca4816047b6ff63a246e
1 parent
b93c22a4
一件报警加入4中类型、智能调度优化、验收页面的临时加入、语音xx站到xx站新增页面
Showing
31 changed files
with
1385 additions
and
205 deletions
src/main/java/com/bsth/data/pilot80/PilotReport.java
| 1 | 1 | package com.bsth.data.pilot80; |
| 2 | 2 | |
| 3 | +import com.alibaba.fastjson.JSON; | |
| 3 | 4 | import com.alibaba.fastjson.JSONObject; |
| 4 | 5 | import com.bsth.data.BasicData; |
| 5 | 6 | import com.bsth.data.LineConfigData; |
| ... | ... | @@ -23,7 +24,10 @@ import org.slf4j.LoggerFactory; |
| 23 | 24 | import org.springframework.beans.factory.annotation.Autowired; |
| 24 | 25 | import org.springframework.stereotype.Component; |
| 25 | 26 | |
| 26 | -import java.util.*; | |
| 27 | +import java.util.ArrayList; | |
| 28 | +import java.util.Collection; | |
| 29 | +import java.util.Date; | |
| 30 | +import java.util.List; | |
| 27 | 31 | import java.util.concurrent.ConcurrentHashMap; |
| 28 | 32 | |
| 29 | 33 | /** |
| ... | ... | @@ -102,21 +106,11 @@ public class PilotReport { |
| 102 | 106 | } |
| 103 | 107 | break; |
| 104 | 108 | //报警请求 |
| 105 | - case 0x10: | |
| 106 | - try { | |
| 107 | - String url = systemParamService.getValue("url.yjbj")+"dataDockingApi/accident/saveAccident?"; | |
| 108 | - url = url + "accidentTime=" + new Date().getTime() + "&nbbm=" + nbbm; | |
| 109 | - logger.info("url===="+url); | |
| 110 | - String res = HttpClientUtils.get(url).toString(); | |
| 111 | - JSONObject jsonObject = JSONObject.parseObject(res); | |
| 112 | - if ((int) jsonObject.get("code") == 200) { | |
| 113 | - logger.info("报警请求成功"); | |
| 114 | - }else { | |
| 115 | - logger.info("报警请求失败"); | |
| 116 | - } | |
| 117 | - }catch (Exception e){ | |
| 118 | - logger.info("报警请求异常"); | |
| 119 | - } | |
| 109 | + case 0x21: | |
| 110 | + case 0x22: | |
| 111 | + case 0x23: | |
| 112 | + case 0x24: | |
| 113 | + yjbj(nbbm,d80); | |
| 120 | 114 | break; |
| 121 | 115 | } |
| 122 | 116 | |
| ... | ... | @@ -132,6 +126,38 @@ public class PilotReport { |
| 132 | 126 | } |
| 133 | 127 | } |
| 134 | 128 | |
| 129 | + public void yjbj(String nbbm,D80 d80){ | |
| 130 | + try { | |
| 131 | + ScheduleRealInfo sch = null; | |
| 132 | + if (d80.getSchId() == null){ | |
| 133 | + return; | |
| 134 | + } | |
| 135 | + if (d80.getData().getStopNo() != null && !d80.getData().getStopNo().equals("")){ | |
| 136 | + d80.setStationName(BasicData.stationCode2NameMap.get(d80.getData().getStopNo())); | |
| 137 | + } | |
| 138 | + | |
| 139 | + sch = dayOfSchedule.get(d80.getSchId()); | |
| 140 | + Long nextschid = dayOfSchedule.nextByLp(sch).getId(); | |
| 141 | + d80.setNextschId(nextschid); | |
| 142 | + String url = systemParamService.getValue("url.yjbj")+"dataDockingApi/accident/saveAccident?"; | |
| 143 | + url = url + "accidentTime=" + new Date().getTime() + "&nbbm=" + nbbm +"&requestCode=" +d80.getData().getRequestCode() | |
| 144 | + +"&lineName=" +sch.getXlName()+"&jsy=" +sch.getjGh()+"&jsName=" +sch.getjName()+"&lon=" +d80.getData().getLon()+"&lat="+d80.getData().getLat(); | |
| 145 | + | |
| 146 | + logger.info("url===="+url); | |
| 147 | + StringBuilder sb = HttpClientUtils.get(url); | |
| 148 | + | |
| 149 | + | |
| 150 | + JSONObject jsonObject = JSON.parseObject(sb.toString()); | |
| 151 | + if ((int) jsonObject.get("code") == 200) { | |
| 152 | + logger.info("报警请求成功=" + jsonObject.get("msg")); | |
| 153 | + }else { | |
| 154 | + logger.info("报警请求失败="+ jsonObject.get("msg")); | |
| 155 | + } | |
| 156 | + }catch (Exception e){ | |
| 157 | + logger.info("报警请求异常",e); | |
| 158 | + } | |
| 159 | + } | |
| 160 | + | |
| 135 | 161 | public void report(DC0_A4 c0a4) { |
| 136 | 162 | String deviceId = c0a4.getData().getDeviceId(); |
| 137 | 163 | if (StringUtils.isNotEmpty(deviceId)) | ... | ... |
src/main/java/com/bsth/data/zndd/AutomaticSch.java
| ... | ... | @@ -29,8 +29,6 @@ import org.springframework.stereotype.Component; |
| 29 | 29 | import java.text.ParseException; |
| 30 | 30 | import java.text.SimpleDateFormat; |
| 31 | 31 | import java.util.*; |
| 32 | -import java.util.concurrent.ConcurrentHashMap; | |
| 33 | -import java.util.concurrent.ConcurrentMap; | |
| 34 | 32 | import java.util.regex.Matcher; |
| 35 | 33 | import java.util.regex.Pattern; |
| 36 | 34 | |
| ... | ... | @@ -62,20 +60,16 @@ public class AutomaticSch { |
| 62 | 60 | @Autowired |
| 63 | 61 | ZnddYuAnService znddYuAnService; |
| 64 | 62 | |
| 65 | - Queue<Map> queue = new LinkedList<>(); | |
| 66 | - | |
| 67 | 63 | private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm"); |
| 68 | 64 | SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
| 69 | 65 | |
| 70 | 66 | private static Comparator<ScheduleRealInfo> cpm = new ScheduleComparator.DFSJ2(); |
| 71 | 67 | private Map<String,Long> drivreMap =new HashMap<>(); //自动重发map |
| 72 | - // 当日60指令缓存 | |
| 73 | - private ConcurrentMap<Integer, D60> d60Map = new ConcurrentHashMap<>();//d60map | |
| 74 | 68 | |
| 75 | - String urldkl = "http://10.10.200.202:5580/monitor/api/getMonitorInfoByDay?key=1&solt=1111&t=1&dayStr=2024-10-23"; //大间隔接口 | |
| 69 | + String urldkl = "http://10.10.200.202:5580/monitor/api/getMonitorInfoByDay?key=1&solt=1111&t=1&dayStr=2024-12-04"; //大间隔接口 | |
| 76 | 70 | |
| 77 | 71 | //http://10.10.200.201:8083/wxk-prod-api/service-api/lggj/schedule/drByInfo 维修接口 |
| 78 | - | |
| 72 | + String urldkls = "http://10.10.200.140:13089/bsth_passengerflow/klbus/currentInsideNum.do"; //满载接口 | |
| 79 | 73 | private Map<String,Long> SFMAP = new HashMap<>(); |
| 80 | 74 | |
| 81 | 75 | //满载 |
| ... | ... | @@ -84,6 +78,9 @@ public class AutomaticSch { |
| 84 | 78 | |
| 85 | 79 | List<ScheduleRealInfo> sr = dayOfSchedule.findByBcType("W9G-041","normal"); |
| 86 | 80 | ts(addStationPeople(sr.get(5), "MZ", 0L));//第二种 设备未离线 出站时间内未出站 |
| 81 | + | |
| 82 | + String chartStr = JSON.toJSONString(sr.get(5)); | |
| 83 | + logger.info("满载--"+chartStr); | |
| 87 | 84 | } |
| 88 | 85 | catch (Exception e){ |
| 89 | 86 | logger.error("满载------------------",e); |
| ... | ... | @@ -109,10 +106,14 @@ public class AutomaticSch { |
| 109 | 106 | if (k == 0 ){ |
| 110 | 107 | if(lg.getlGType() == 0){ |
| 111 | 108 | ts(ConvertDJK(lg,sch,"FCJG")); |
| 109 | + String chartStr = JSON.toJSONString(sch); | |
| 110 | + logger.info("发车大间隔--"+chartStr); | |
| 112 | 111 | } |
| 113 | 112 | }else { |
| 114 | 113 | if(lg.getlGType() != 0){ |
| 115 | 114 | ts(ConvertDJK(lg,sch,"DJG")); |
| 115 | + String chartStr = JSON.toJSONString(sch); | |
| 116 | + logger.info("行车大间隔--"+chartStr); | |
| 116 | 117 | } |
| 117 | 118 | } |
| 118 | 119 | |
| ... | ... | @@ -122,28 +123,6 @@ public class AutomaticSch { |
| 122 | 123 | logger.error("大间隔推送失败------------------",e); |
| 123 | 124 | } |
| 124 | 125 | } |
| 125 | - //发现大客流 -> 大客流情况 ->处置大客流 | |
| 126 | - public void Dkl(){ | |
| 127 | - //推送 | |
| 128 | - | |
| 129 | - try{ | |
| 130 | - Map m = queue.poll(); | |
| 131 | - if (m != null) { | |
| 132 | - if (Integer.valueOf(m.get("num").toString()) > 15) { | |
| 133 | - //超过10的时候 判断为大客流 | |
| 134 | - ts(ConvertDKL(m)); | |
| 135 | - } | |
| 136 | - } | |
| 137 | - | |
| 138 | - ScheduleRealInfo sr = dayOfSchedule.findByNbbm("W8A-027").get(0); | |
| 139 | - ts(addStationPeople(sr, "DKL", 0L));//大客流 | |
| 140 | - | |
| 141 | - | |
| 142 | - }catch (Exception e){ | |
| 143 | - logger.error("大客流推送失败------------------",e); | |
| 144 | - } | |
| 145 | - | |
| 146 | - } | |
| 147 | 126 | |
| 148 | 127 | //实发未发检测 -- 车辆GPS掉线的情况下,车辆该出站了 |
| 149 | 128 | /** |
| ... | ... | @@ -336,10 +315,9 @@ public class AutomaticSch { |
| 336 | 315 | for (Map m : dzList){ |
| 337 | 316 | if (basicData.nbbmCompanyPlateMap.get(prev.getClZbh()) != null && m.get("terminal").equals(basicData.nbbmCompanyPlateMap.get(prev.getClZbh()).replaceAll("-",""))){ |
| 338 | 317 | sch.setRemark(m.get("sj").toString()); |
| 339 | - Gson gson = new Gson(); | |
| 340 | - String chartStr = gson.toJsonTree(sch).toString(); | |
| 341 | - logger.info("误点--"+chartStr); | |
| 342 | 318 | ts(addStationPeople(sch, "WD", 0L)); |
| 319 | + String chartStr = JSON.toJSONString(sch); | |
| 320 | + logger.info("误点--"+chartStr); | |
| 343 | 321 | } |
| 344 | 322 | } |
| 345 | 323 | } | ... | ... |
src/main/java/com/bsth/data/zndd/OutEntrance.java
| ... | ... | @@ -23,17 +23,12 @@ import org.springframework.dao.DataAccessException; |
| 23 | 23 | import org.springframework.jdbc.core.JdbcTemplate; |
| 24 | 24 | import org.springframework.scheduling.annotation.Scheduled; |
| 25 | 25 | import org.springframework.web.bind.annotation.*; |
| 26 | -import javax.annotation.PostConstruct; | |
| 26 | + | |
| 27 | 27 | import java.io.*; |
| 28 | 28 | import java.nio.file.Files; |
| 29 | 29 | import java.nio.file.Path; |
| 30 | 30 | import java.nio.file.Paths; |
| 31 | 31 | import java.nio.file.StandardCopyOption; |
| 32 | - | |
| 33 | -import java.io.ByteArrayInputStream; | |
| 34 | -import java.io.File; | |
| 35 | -import java.io.FileOutputStream; | |
| 36 | -import java.io.InputStream; | |
| 37 | 32 | import java.text.SimpleDateFormat; |
| 38 | 33 | import java.time.Duration; |
| 39 | 34 | import java.time.LocalDateTime; |
| ... | ... | @@ -60,9 +55,8 @@ public class OutEntrance { |
| 60 | 55 | |
| 61 | 56 | @Value("${dc.imgurl}") |
| 62 | 57 | private String imgurl; //存储图片地址 |
| 63 | - | |
| 64 | - @Value("${dc.profile}") | |
| 65 | - private String profile; //存储图片地址*/ | |
| 58 | + | |
| 59 | + private String profile = "profile"; //存储图片地址*/ | |
| 66 | 60 | |
| 67 | 61 | @Value("${baidu.ak}") |
| 68 | 62 | private String ak; //百度api秘钥*/ | ... | ... |
src/main/java/com/bsth/data/zndd/ZnddThread.java
| ... | ... | @@ -45,11 +45,8 @@ public class ZnddThread extends Thread{ |
| 45 | 45 | static Map<String,List> ZNDDTYPEMAP = new HashMap<>(); //已经推送过的检测 |
| 46 | 46 | |
| 47 | 47 | |
| 48 | - String url = "https://lgapp.bsth.tech:13089/bsth_passengerflow/klbus/currentInsideNum.do"; //车内客流接口 | |
| 49 | 48 | |
| 50 | 49 | |
| 51 | - String urldkl = "http://10.10.200.140:13089/bsth_passengerflow/klbus/currentInsideNum.do"; //大客流接口 | |
| 52 | - | |
| 53 | 50 | private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm"); |
| 54 | 51 | private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"); |
| 55 | 52 | private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
| ... | ... | @@ -64,7 +61,7 @@ public class ZnddThread extends Thread{ |
| 64 | 61 | //automaticSch.mz(); |
| 65 | 62 | //automaticSch.dfTz();//大间隔 |
| 66 | 63 | for (znddStatus zs : znddStatusList) { |
| 67 | - if (zs.getOpenStatus().equals("0")) { | |
| 64 | + if (zs.getOpenStatus() != null && zs.getOpenStatus().equals("0")) { | |
| 68 | 65 | //预案5个 |
| 69 | 66 | if (zs.getType().equals("fcjg")) { |
| 70 | 67 | automaticSch.dfTz(0); |
| ... | ... | @@ -91,11 +88,6 @@ public class ZnddThread extends Thread{ |
| 91 | 88 | automaticSch.dfTz(1); |
| 92 | 89 | logger.info("行车大间隔执行完毕"); |
| 93 | 90 | } |
| 94 | - | |
| 95 | - if (zs.getType().equals("dkl")){ | |
| 96 | - automaticSch.Dkl(); | |
| 97 | - logger.info("大客流执行完毕"); | |
| 98 | - } | |
| 99 | 91 | if (zs.getType().equals("mz")){ |
| 100 | 92 | automaticSch.mz(); |
| 101 | 93 | logger.info("满载执行完毕"); | ... | ... |
src/main/java/com/bsth/entity/directive/D80.java
| ... | ... | @@ -6,6 +6,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; |
| 6 | 6 | import javax.persistence.*; |
| 7 | 7 | import java.util.Date; |
| 8 | 8 | |
| 9 | +import static javax.persistence.FetchType.LAZY; | |
| 10 | + | |
| 9 | 11 | /** |
| 10 | 12 | * |
| 11 | 13 | * @ClassName: D80 |
| ... | ... | @@ -47,7 +49,7 @@ public class D80 { |
| 47 | 49 | /** |
| 48 | 50 | * c0 回复 |
| 49 | 51 | */ |
| 50 | - @OneToOne(cascade = CascadeType.ALL, fetch=FetchType.LAZY) | |
| 52 | + @OneToOne(cascade = CascadeType.ALL, fetch= LAZY) | |
| 51 | 53 | private DC0 c0; |
| 52 | 54 | |
| 53 | 55 | /** 调度员是否确认 */ |
| ... | ... | @@ -78,6 +80,7 @@ public class D80 { |
| 78 | 80 | @JsonIgnore |
| 79 | 81 | private Short requestCode; |
| 80 | 82 | |
| 83 | + | |
| 81 | 84 | public Long getSchId() { |
| 82 | 85 | return schId; |
| 83 | 86 | } |
| ... | ... | @@ -110,6 +113,30 @@ public class D80 { |
| 110 | 113 | this.requestCode = requestCode; |
| 111 | 114 | } |
| 112 | 115 | |
| 116 | + @Transient | |
| 117 | + @JsonIgnore | |
| 118 | + private String stationName; | |
| 119 | + @Transient | |
| 120 | + @JsonIgnore | |
| 121 | + private Long nextschId; | |
| 122 | + | |
| 123 | + public Long getNextschId() { | |
| 124 | + return nextschId; | |
| 125 | + } | |
| 126 | + | |
| 127 | + public void setNextschId(Long nextschId) { | |
| 128 | + this.nextschId = nextschId; | |
| 129 | + } | |
| 130 | + | |
| 131 | + public String getStationName() { | |
| 132 | + return stationName; | |
| 133 | + } | |
| 134 | + | |
| 135 | + public void setStationName(String stationName) { | |
| 136 | + this.stationName = stationName; | |
| 137 | + } | |
| 138 | + | |
| 139 | + | |
| 113 | 140 | @Embeddable |
| 114 | 141 | public static class D80Data { |
| 115 | 142 | |
| ... | ... | @@ -121,6 +148,9 @@ public class D80 { |
| 121 | 148 | /** |
| 122 | 149 | * 请求代码 0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70 |
| 123 | 150 | * 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警 0x10 S0S |
| 151 | + * 0x21 单车有人伤 0x22 单车无人伤 | |
| 152 | + * 0x23 双车有人伤 0x24 双车无人伤 | |
| 153 | + * | |
| 124 | 154 | */ |
| 125 | 155 | private Short requestCode; |
| 126 | 156 | |
| ... | ... | @@ -134,7 +164,48 @@ public class D80 { |
| 134 | 164 | */ |
| 135 | 165 | @Transient |
| 136 | 166 | private String nbbm; |
| 137 | - | |
| 167 | + /** | |
| 168 | + * 经度 | |
| 169 | + */ | |
| 170 | + @Transient | |
| 171 | + @JsonIgnore | |
| 172 | + private Float lon; | |
| 173 | + | |
| 174 | + /** | |
| 175 | + * 纬度 | |
| 176 | + */ | |
| 177 | + @Transient | |
| 178 | + @JsonIgnore | |
| 179 | + private Float lat; | |
| 180 | + @Transient | |
| 181 | + @JsonIgnore | |
| 182 | + private String stopNo; | |
| 183 | + | |
| 184 | + | |
| 185 | + public String getStopNo() { | |
| 186 | + return stopNo; | |
| 187 | + } | |
| 188 | + | |
| 189 | + public void setStopNo(String stopNo) { | |
| 190 | + this.stopNo = stopNo; | |
| 191 | + } | |
| 192 | + | |
| 193 | + public Float getLon() { | |
| 194 | + return lon; | |
| 195 | + } | |
| 196 | + | |
| 197 | + public void setLon(Float lon) { | |
| 198 | + this.lon = lon; | |
| 199 | + } | |
| 200 | + | |
| 201 | + public Float getLat() { | |
| 202 | + return lat; | |
| 203 | + } | |
| 204 | + | |
| 205 | + public void setLat(Float lat) { | |
| 206 | + this.lat = lat; | |
| 207 | + } | |
| 208 | + | |
| 138 | 209 | public Short getOperCode2() { |
| 139 | 210 | return operCode2; |
| 140 | 211 | } | ... | ... |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| 1 | 1 | package com.bsth.service.realcontrol.impl; |
| 2 | 2 | |
| 3 | -import java.io.*; | |
| 4 | -import java.lang.reflect.Field; | |
| 5 | -import java.math.BigDecimal; | |
| 6 | -import java.net.HttpURLConnection; | |
| 7 | -import java.net.MalformedURLException; | |
| 8 | -import java.net.URL; | |
| 9 | -import java.sql.ResultSet; | |
| 10 | -import java.sql.SQLException; | |
| 11 | -import java.text.DecimalFormat; | |
| 12 | -import java.text.ParseException; | |
| 13 | -import java.text.SimpleDateFormat; | |
| 14 | -import java.time.LocalDate; | |
| 15 | -import java.util.ArrayList; | |
| 16 | -import java.util.Calendar; | |
| 17 | -import java.util.Collection; | |
| 18 | -import java.util.Collections; | |
| 19 | -import java.util.Comparator; | |
| 20 | -import java.util.Date; | |
| 21 | -import java.util.GregorianCalendar; | |
| 22 | -import java.util.HashMap; | |
| 23 | -import java.util.HashSet; | |
| 24 | -import java.util.Iterator; | |
| 25 | -import java.util.List; | |
| 26 | -import java.util.Map; | |
| 27 | -import java.util.Queue; | |
| 28 | -import java.util.Set; | |
| 29 | -import java.util.concurrent.*; | |
| 30 | -import java.util.regex.Pattern; | |
| 31 | - | |
| 32 | -import com.bsth.data.SystemParamCache; | |
| 33 | -import com.bsth.data.zndd.OutEntrance; | |
| 34 | -import com.bsth.entity.zndd.LoggerZndd; | |
| 35 | -import com.bsth.repository.zndd.LoggerZnddRepository; | |
| 36 | -import org.apache.commons.io.IOUtils; | |
| 37 | -import org.apache.commons.lang3.StringEscapeUtils; | |
| 38 | -import org.apache.commons.lang3.StringUtils; | |
| 39 | -import org.joda.time.format.DateTimeFormat; | |
| 40 | -import org.joda.time.format.DateTimeFormatter; | |
| 41 | -import org.slf4j.Logger; | |
| 42 | -import org.slf4j.LoggerFactory; | |
| 43 | -import org.springframework.beans.factory.DisposableBean; | |
| 44 | -import org.springframework.beans.factory.InitializingBean; | |
| 45 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 46 | -import org.springframework.jdbc.core.BeanPropertyRowMapper; | |
| 47 | -import org.springframework.jdbc.core.JdbcTemplate; | |
| 48 | -import org.springframework.jdbc.core.RowMapper; | |
| 49 | -import org.springframework.stereotype.Service; | |
| 50 | -import org.springframework.transaction.annotation.Transactional; | |
| 51 | - | |
| 52 | 3 | import com.alibaba.fastjson.JSON; |
| 53 | 4 | import com.alibaba.fastjson.JSONArray; |
| 54 | 5 | import com.alibaba.fastjson.JSONObject; |
| ... | ... | @@ -60,6 +11,7 @@ import com.bsth.controller.realcontrol.dto.LpData; |
| 60 | 11 | import com.bsth.data.BasicData; |
| 61 | 12 | import com.bsth.data.LineConfigData; |
| 62 | 13 | import com.bsth.data.Station2ParkBuffer; |
| 14 | +import com.bsth.data.SystemParamCache; | |
| 63 | 15 | import com.bsth.data.schedule.DayOfSchedule; |
| 64 | 16 | import com.bsth.data.schedule.SchAttrCalculator; |
| 65 | 17 | import com.bsth.data.schedule.ScheduleComparator; |
| ... | ... | @@ -70,6 +22,7 @@ import com.bsth.data.schedule.edit_logs.loggers.FcxxwtLogger; |
| 70 | 22 | import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto; |
| 71 | 23 | import com.bsth.data.schedule.late_adjust.LateAdjustHandle; |
| 72 | 24 | import com.bsth.data.utils.CustomStringUtils; |
| 25 | +import com.bsth.data.zndd.OutEntrance; | |
| 73 | 26 | import com.bsth.entity.CarDevice; |
| 74 | 27 | import com.bsth.entity.Cars; |
| 75 | 28 | import com.bsth.entity.Line; |
| ... | ... | @@ -94,6 +47,7 @@ import com.bsth.entity.schedule.SchedulePlanInfo; |
| 94 | 47 | import com.bsth.entity.sys.Dictionary; |
| 95 | 48 | import com.bsth.entity.sys.DutyEmployee; |
| 96 | 49 | import com.bsth.entity.sys.SysUser; |
| 50 | +import com.bsth.entity.zndd.LoggerZndd; | |
| 97 | 51 | import com.bsth.repository.CarDeviceRepository; |
| 98 | 52 | import com.bsth.repository.CarsRepository; |
| 99 | 53 | import com.bsth.repository.LineRepository; |
| ... | ... | @@ -109,6 +63,7 @@ import com.bsth.repository.realcontrol.SvgAttributeRepository; |
| 109 | 63 | import com.bsth.repository.schedule.CarConfigInfoRepository; |
| 110 | 64 | import com.bsth.repository.schedule.EmployeeConfigInfoRepository; |
| 111 | 65 | import com.bsth.repository.schedule.GuideboardInfoRepository; |
| 66 | +import com.bsth.repository.zndd.LoggerZnddRepository; | |
| 112 | 67 | import com.bsth.security.util.SecurityUtils; |
| 113 | 68 | import com.bsth.service.LineService; |
| 114 | 69 | import com.bsth.service.SectionRouteService; |
| ... | ... | @@ -121,15 +76,7 @@ import com.bsth.service.report.ReportService; |
| 121 | 76 | import com.bsth.service.schedule.SchedulePlanInfoService; |
| 122 | 77 | import com.bsth.service.sys.DictionaryService; |
| 123 | 78 | import com.bsth.service.sys.DutyEmployeeService; |
| 124 | -import com.bsth.util.Arith; | |
| 125 | -import com.bsth.util.ComparableChild; | |
| 126 | -import com.bsth.util.ComparableLp; | |
| 127 | -import com.bsth.util.ComparableReal; | |
| 128 | -import com.bsth.util.DateUtils; | |
| 129 | -import com.bsth.util.ReportRelatedUtils; | |
| 130 | -import com.bsth.util.ReportUtils; | |
| 131 | -import com.bsth.util.TimeUtils; | |
| 132 | -import com.bsth.util.CoordinateConverter; | |
| 79 | +import com.bsth.util.*; | |
| 133 | 80 | import com.bsth.websocket.handler.SendUtils; |
| 134 | 81 | import com.fasterxml.jackson.databind.ObjectMapper; |
| 135 | 82 | import com.github.stuxuhai.jpinyin.PinyinException; |
| ... | ... | @@ -137,6 +84,40 @@ import com.github.stuxuhai.jpinyin.PinyinFormat; |
| 137 | 84 | import com.github.stuxuhai.jpinyin.PinyinHelper; |
| 138 | 85 | import com.google.common.base.Splitter; |
| 139 | 86 | import com.google.common.collect.Lists; |
| 87 | +import org.apache.commons.io.IOUtils; | |
| 88 | +import org.apache.commons.lang3.StringEscapeUtils; | |
| 89 | +import org.apache.commons.lang3.StringUtils; | |
| 90 | +import org.joda.time.format.DateTimeFormat; | |
| 91 | +import org.joda.time.format.DateTimeFormatter; | |
| 92 | +import org.slf4j.Logger; | |
| 93 | +import org.slf4j.LoggerFactory; | |
| 94 | +import org.springframework.beans.factory.DisposableBean; | |
| 95 | +import org.springframework.beans.factory.InitializingBean; | |
| 96 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 97 | +import org.springframework.jdbc.core.BeanPropertyRowMapper; | |
| 98 | +import org.springframework.jdbc.core.JdbcTemplate; | |
| 99 | +import org.springframework.jdbc.core.RowMapper; | |
| 100 | +import org.springframework.stereotype.Service; | |
| 101 | +import org.springframework.transaction.annotation.Transactional; | |
| 102 | + | |
| 103 | +import java.io.ByteArrayOutputStream; | |
| 104 | +import java.io.File; | |
| 105 | +import java.io.IOException; | |
| 106 | +import java.io.InputStream; | |
| 107 | +import java.lang.reflect.Field; | |
| 108 | +import java.math.BigDecimal; | |
| 109 | +import java.net.HttpURLConnection; | |
| 110 | +import java.net.MalformedURLException; | |
| 111 | +import java.net.URL; | |
| 112 | +import java.sql.ResultSet; | |
| 113 | +import java.sql.SQLException; | |
| 114 | +import java.text.DecimalFormat; | |
| 115 | +import java.text.ParseException; | |
| 116 | +import java.text.SimpleDateFormat; | |
| 117 | +import java.time.LocalDate; | |
| 118 | +import java.util.*; | |
| 119 | +import java.util.concurrent.*; | |
| 120 | +import java.util.regex.Pattern; | |
| 140 | 121 | |
| 141 | 122 | @Service |
| 142 | 123 | public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInfo, Long> |
| ... | ... | @@ -2483,6 +2464,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 2483 | 2464 | typeMap.put("0x60", "事故报告"); |
| 2484 | 2465 | typeMap.put("0x11", "扣证纠纷"); |
| 2485 | 2466 | typeMap.put("0x12", "报警"); |
| 2467 | + typeMap.put("0x21", "单车有人伤"); | |
| 2468 | + typeMap.put("0x22", "单车无人伤"); | |
| 2469 | + typeMap.put("0x23", "双车有人伤"); | |
| 2470 | + typeMap.put("0x24", "双车无人伤"); | |
| 2486 | 2471 | for (Map<String, Object> map1 : listMap) { |
| 2487 | 2472 | map1.put("requestText", typeMap.get(map1.get("requestType"))); |
| 2488 | 2473 | } | ... | ... |
src/main/resources/static/pages/control/line/child_pages/deviceReport.html
| ... | ... | @@ -91,7 +91,7 @@ |
| 91 | 91 | ,$car = $('#deviceReportPanel #carSelect') |
| 92 | 92 | ,$table = $('#deviceReportPanel table'); |
| 93 | 93 | |
| 94 | - var reqCodeMap = {0xA1: '请求恢复运营', 0xA2: '申请调档', 0xA3: '出场请求', 0xA5: '进场请求', 0xA7: '加油请求', 0x50: '车辆故障', 0x70: '路阻报告', 0x60: '事故报告', 0x11: '扣证纠纷', 0x12 : '报警'}; | |
| 94 | + var reqCodeMap = {0xA1: '请求恢复运营', 0xA2: '申请调档', 0xA3: '出场请求', 0xA5: '进场请求', 0xA7: '加油请求', 0x50: '车辆故障', 0x70: '路阻报告', 0x60: '事故报告', 0x11: '扣证纠纷', 0x12 : '报警', 0x21: '单车有人伤', 0x22: '单车无人伤', 0x23: '双车有人伤', 0x24: '双车无人伤'}; | |
| 95 | 95 | |
| 96 | 96 | var lineNameMap = JSON.parse(storage.getItem('lineIds')); |
| 97 | 97 | //初始加载数据 | ... | ... |
src/main/resources/static/pages/control/line/index.html
| ... | ... | @@ -281,7 +281,7 @@ $.get('/user/currentUser', function(user){ |
| 281 | 281 | //打个标记 |
| 282 | 282 | storage.setItem('real_control_flag', 1); |
| 283 | 283 | |
| 284 | -var reqCodeMap = {0xA1: '请求恢复运营', 0xA2: '申请调档', 0xA3: '出场请求', 0xA5: '进场请求', 0xA7: '加油请求', 0x50: '车辆故障', 0x70: '路阻报告', 0x60: '事故报告', 0x11: '扣证纠纷', 0x12 : '报警'}; | |
| 284 | +var reqCodeMap = {0xA1: '请求恢复运营', 0xA2: '申请调档', 0xA3: '出场请求', 0xA5: '进场请求', 0xA7: '加油请求', 0x50: '车辆故障', 0x70: '路阻报告', 0x60: '事故报告', 0x11: '扣证纠纷', 0x12 : '报警', 0x21: '单车有人伤', 0x22: '单车无人伤', 0x23: '双车有人伤', 0x24: '双车无人伤'}; | |
| 285 | 285 | |
| 286 | 286 | function _fadeOut($that){ |
| 287 | 287 | $that.fadeOut('normal', function(){ | ... | ... |
src/main/resources/static/pages/forms/statement/account.html
| ... | ... | @@ -21,12 +21,12 @@ |
| 21 | 21 | <h1>驾驶员请求台账</h1> |
| 22 | 22 | </div> |
| 23 | 23 | </div> |
| 24 | - | |
| 25 | -<div class="row"> | |
| 26 | - <div class="col-md-12"> | |
| 27 | - <div class="portlet light porttlet-fit bordered"> | |
| 28 | - <div class="portlet-title"> | |
| 29 | - <form class="form-inline" action=""> | |
| 24 | + | |
| 25 | +<div class="row"> | |
| 26 | + <div class="col-md-12"> | |
| 27 | + <div class="portlet light porttlet-fit bordered"> | |
| 28 | + <div class="portlet-title"> | |
| 29 | + <form class="form-inline" action=""> | |
| 30 | 30 | <div style="display: inline-block;"> |
| 31 | 31 | <span class="item-label" style="width: 80px;">线路: </span> |
| 32 | 32 | <select class="form-control" name="line" id="line" style="width: 180px;"></select> |
| ... | ... | @@ -45,10 +45,10 @@ |
| 45 | 45 | |
| 46 | 46 | <input class="btn btn-default" type="button" id="query" value="筛选"/> |
| 47 | 47 | <input class="btn btn-default" type="button" id="export" value="导出"/> |
| 48 | - </div> | |
| 49 | - </form> | |
| 50 | - </div> | |
| 51 | - <div class="portlet-body"> | |
| 48 | + </div> | |
| 49 | + </form> | |
| 50 | + </div> | |
| 51 | + <div class="portlet-body"> | |
| 52 | 52 | <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> |
| 53 | 53 | <table class="table table-bordered table-hover table-checkable" id="forms"> |
| 54 | 54 | <thead> |
| ... | ... | @@ -65,25 +65,25 @@ |
| 65 | 65 | |
| 66 | 66 | </tbody> |
| 67 | 67 | </table> |
| 68 | - </div> | |
| 69 | - </div> | |
| 70 | - </div> | |
| 71 | - </div> | |
| 72 | -</div> | |
| 73 | - | |
| 74 | -<script> | |
| 68 | + </div> | |
| 69 | + </div> | |
| 70 | + </div> | |
| 71 | + </div> | |
| 72 | +</div> | |
| 73 | + | |
| 74 | +<script> | |
| 75 | 75 | $(function(){ |
| 76 | 76 | $("#export").attr('disabled',"true"); |
| 77 | 77 | |
| 78 | 78 | |
| 79 | - var reqCodeMap = {"0xA1": '请求恢复运营', "0xA2": '申请调档', "0xA3": '出场请求', "0xA5": '进场请求', "0xA7": '加油请求', "0x50": '车辆故障', "0x70": '路阻报告', "0x60": '事故报告', "0x11": '扣证纠纷', "0x12" : '报警'}; | |
| 80 | - // 关闭左侧栏 | |
| 81 | - if (!$('body').hasClass('page-sidebar-closed')) | |
| 79 | + var reqCodeMap = {"0xA1": '请求恢复运营', "0xA2": '申请调档', "0xA3": '出场请求', "0xA5": '进场请求', "0xA7": '加油请求', "0x50": '车辆故障', "0x70": '路阻报告', "0x60": '事故报告', "0x11": '扣证纠纷', "0x12" : '报警', 0x21: '单车有人伤', 0x22: '单车无人伤', 0x23: '双车有人伤', 0x24: '双车无人伤'}; | |
| 80 | + // 关闭左侧栏 | |
| 81 | + if (!$('body').hasClass('page-sidebar-closed')) | |
| 82 | 82 | $('.menu-toggler.sidebar-toggler').click(); |
| 83 | - | |
| 84 | - $("#date").datetimepicker({ | |
| 85 | - format : 'YYYY-MM-DD', | |
| 86 | - locale : 'zh-cn' | |
| 83 | + | |
| 84 | + $("#date").datetimepicker({ | |
| 85 | + format : 'YYYY-MM-DD', | |
| 86 | + locale : 'zh-cn' | |
| 87 | 87 | }); |
| 88 | 88 | |
| 89 | 89 | /* $.get('/basic/lineCode2Name',function(result){ |
| ... | ... | @@ -229,23 +229,23 @@ |
| 229 | 229 | +"-"+xlName+"-驾驶员请求台账"); |
| 230 | 230 | }); |
| 231 | 231 | }); |
| 232 | - | |
| 233 | - }); | |
| 234 | -</script> | |
| 235 | -<script type="text/html" id="list_account"> | |
| 236 | - {{each list as obj i}} | |
| 237 | - <tr> | |
| 232 | + | |
| 233 | + }); | |
| 234 | +</script> | |
| 235 | +<script type="text/html" id="list_account"> | |
| 236 | + {{each list as obj i}} | |
| 237 | + <tr> | |
| 238 | 238 | <td>{{i+1}}</td> |
| 239 | 239 | <td>{{obj.xlName}}</td> |
| 240 | 240 | <td>{{obj.clZbh}}</td> |
| 241 | 241 | <td>{{obj.company}}</td> |
| 242 | 242 | <td>{{obj.requestType}}</td> |
| 243 | - <td>{{obj.requestTime}}</td> | |
| 244 | - </tr> | |
| 243 | + <td>{{obj.requestTime}}</td> | |
| 244 | + </tr> | |
| 245 | 245 | {{/each}} |
| 246 | 246 | {{if list.length == 0}} |
| 247 | 247 | <tr> |
| 248 | 248 | <td colspan="6"><h6 class="muted">没有找到相关数据</h6></td> |
| 249 | 249 | </tr> |
| 250 | - {{/if}} | |
| 250 | + {{/if}} | |
| 251 | 251 | </script> |
| 252 | 252 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/forms/statement/daily_yanshou.html
0 → 100644
| 1 | +<style type="text/css"> | |
| 2 | + .table-bordered { | |
| 3 | + border: 1px solid; } | |
| 4 | + .table-bordered > thead > tr > th, | |
| 5 | + .table-bordered > thead > tr > td, | |
| 6 | + .table-bordered > tbody > tr > th, | |
| 7 | + .table-bordered > tbody > tr > td, | |
| 8 | + .table-bordered > tfoot > tr > th, | |
| 9 | + .table-bordered > tfoot > tr > td { | |
| 10 | + border: 1px solid; } | |
| 11 | + .table-bordered > thead > tr > th, | |
| 12 | + .table-bordered > thead > tr > td { | |
| 13 | + border-bottom-width: 2px; } | |
| 14 | + | |
| 15 | + .table > tbody + tbody { | |
| 16 | + border-top: 1px solid; } | |
| 17 | +</style> | |
| 18 | + | |
| 19 | +<div class="page-head"> | |
| 20 | + <div class="page-title"> | |
| 21 | + <h1>班次日报表</h1> | |
| 22 | + </div> | |
| 23 | +</div> | |
| 24 | + | |
| 25 | +<div class="row"> | |
| 26 | + <div class="col-md-12"> | |
| 27 | + <div class="portlet light porttlet-fit bordered"> | |
| 28 | + <div class="portlet-title"> | |
| 29 | + <form class="form-inline" action=""> | |
| 30 | + <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_daily"> | |
| 31 | + <span class="item-label" style="width: 80px;">公司: </span> | |
| 32 | + <select class="form-control" name="company" id="gsdmDaily" style="width: 180px;"></select> | |
| 33 | + </div> | |
| 34 | + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_daily"> | |
| 35 | + <span class="item-label" style="width: 80px;">分公司: </span> | |
| 36 | + <select class="form-control" name="subCompany" id="fgsdmDaily" style="width: 180px;"></select> | |
| 37 | + </div> | |
| 38 | + <div style="margin-top: 2px"></div> | |
| 39 | + <div style="display: inline-block;margin-left: 33px;"> | |
| 40 | + <span class="item-label" style="width: 80px;">线路: </span> | |
| 41 | + <select class="form-control" name="line" id="line" style="width: 180px;"></select> | |
| 42 | + </div> | |
| 43 | + <div style="display: inline-block;margin-left: 24px;"> | |
| 44 | + <span class="item-label" style="width: 80px;"> 时间: </span> | |
| 45 | + <input class="form-control" type="text" id="date" style="width: 180px;"/> | |
| 46 | + </div> | |
| 47 | + <div class="form-group"> | |
| 48 | + <input class="btn btn-default" type="button" id="query" value="筛选"/> | |
| 49 | + <input class="btn btn-default" type="button" id="export" value="导出"/> | |
| 50 | + </div> | |
| 51 | + </form> | |
| 52 | + </div> | |
| 53 | + <div class="portlet-body"> | |
| 54 | + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> | |
| 55 | + <table class="table table-bordered table-hover table-checkable" id="forms"> | |
| 56 | + <thead> | |
| 57 | + <tr> | |
| 58 | + <th colspan="8">调度班次日报</th> | |
| 59 | + </tr> | |
| 60 | + <tr> | |
| 61 | + <td>路线:</td> | |
| 62 | + <td colspan="2"><span id="form_line"> </span></td> | |
| 63 | + <td>时间:</td> | |
| 64 | + <td colspan="4"><span id="form_date"> </span></td> | |
| 65 | + </tr> | |
| 66 | + <tr> | |
| 67 | + <td>车辆</td> | |
| 68 | + <td>工号</td> | |
| 69 | + <td>姓名</td> | |
| 70 | + <td>总公里</td> | |
| 71 | + <td>空驶公里</td> | |
| 72 | + <td>油耗</td> | |
| 73 | + <td>班次</td> | |
| 74 | + <td>班次(自动)</td> | |
| 75 | + </tr> | |
| 76 | + </thead> | |
| 77 | + <tbody id="tbody"> | |
| 78 | + | |
| 79 | + </tbody> | |
| 80 | + <tr> | |
| 81 | + <td colspan="3">小计</td> | |
| 82 | + <td><span id="total_zgl"> </span></td> | |
| 83 | + <td><span id="total_ks"> </span></td> | |
| 84 | + <td><span id="total_yh"> </span></td> | |
| 85 | + <td><span id="total_bc"> </span></td> | |
| 86 | + </tr> | |
| 87 | + </table> | |
| 88 | + </div> | |
| 89 | + </div> | |
| 90 | + </div> | |
| 91 | + </div> | |
| 92 | +</div> | |
| 93 | + | |
| 94 | +<script> | |
| 95 | + $(function(){ | |
| 96 | + | |
| 97 | + // 关闭左侧栏 | |
| 98 | + if (!$('body').hasClass('page-sidebar-closed')) | |
| 99 | + $('.menu-toggler.sidebar-toggler').click(); | |
| 100 | + | |
| 101 | + $("#date").datetimepicker({ | |
| 102 | + format : 'YYYY-MM-DD', | |
| 103 | + locale : 'zh-cn' | |
| 104 | + }); | |
| 105 | + var fage=false; | |
| 106 | + var xlList; | |
| 107 | + var obj = []; | |
| 108 | + | |
| 109 | + | |
| 110 | + $.get('/report/lineList',function(result){ | |
| 111 | + xlList=result; | |
| 112 | + $.get('/user/companyData', function(result){ | |
| 113 | + obj = result; | |
| 114 | + var options = ''; | |
| 115 | + for(var i = 0; i < obj.length; i++){ | |
| 116 | + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; | |
| 117 | + } | |
| 118 | + | |
| 119 | + if(obj.length ==0){ | |
| 120 | + $("#gsdmDiv_daily").css('display','none'); | |
| 121 | + }else if(obj.length ==1){ | |
| 122 | + $("#gsdmDiv_daily").css('display','none'); | |
| 123 | + if(obj[0].children.length == 1 || obj[0].children.length ==0) | |
| 124 | + $('#fgsdmDiv_daily').css('display','none'); | |
| 125 | + } | |
| 126 | + $('#gsdmDaily').html(options); | |
| 127 | + updateCompany(); | |
| 128 | + }); | |
| 129 | + }) | |
| 130 | + $("#gsdmDaily").on("change",updateCompany); | |
| 131 | + function updateCompany(){ | |
| 132 | + var company = $('#gsdmDaily').val(); | |
| 133 | + var options = ''; | |
| 134 | + for(var i = 0; i < obj.length; i++){ | |
| 135 | + if(obj[i].companyCode == company){ | |
| 136 | + var children = obj[i].children; | |
| 137 | + for(var j = 0; j < children.length; j++){ | |
| 138 | + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>'; | |
| 139 | + } | |
| 140 | + } | |
| 141 | + } | |
| 142 | + $('#fgsdmDaily').html(options); | |
| 143 | + } | |
| 144 | + | |
| 145 | + var tempData = {}; | |
| 146 | + $.get('/report/lineList',function(xlList){ | |
| 147 | + var data = []; | |
| 148 | +// data.push({id: " ", text: "全部线路"}); | |
| 149 | + $.get('/user/companyData', function(result){ | |
| 150 | + for(var i = 0; i < result.length; i++){ | |
| 151 | + var companyCode = result[i].companyCode; | |
| 152 | + var children = result[i].children; | |
| 153 | + for(var j = 0; j < children.length; j++){ | |
| 154 | + var code = children[j].code; | |
| 155 | + for(var k=0;k < xlList.length;k++ ){ | |
| 156 | + if(xlList[k]["fgsbm"]==code && xlList[k]["gsbm"]==companyCode){ | |
| 157 | + data.push({id: xlList[k]["xlbm"], text: xlList[k]["xlname"]}); | |
| 158 | + tempData[xlList[k]["xlbm"]] = companyCode+":"+code; | |
| 159 | + } | |
| 160 | + } | |
| 161 | + } | |
| 162 | + } | |
| 163 | + initPinYinSelect2('#line',data,''); | |
| 164 | + | |
| 165 | + }); | |
| 166 | + }); | |
| 167 | + | |
| 168 | + $("#line").on("change", function(){ | |
| 169 | + if($("#line").val() == " "){ | |
| 170 | + $("#gsdmDaily").attr("disabled", false); | |
| 171 | + $("#fgsdmDaily").attr("disabled", false); | |
| 172 | + } else { | |
| 173 | + var temp = (tempData[$("#line").val()] ? tempData[$("#line").val()] : " : ").split(":"); | |
| 174 | + $("#gsdmDaily").val(temp[0]); | |
| 175 | + updateCompany(); | |
| 176 | + $("#fgsdmDaily").val(temp[1]); | |
| 177 | + $("#gsdmDaily").attr("disabled", true); | |
| 178 | + $("#fgsdmDaily").attr("disabled", true); | |
| 179 | + } | |
| 180 | + }); | |
| 181 | + | |
| 182 | + | |
| 183 | + var line; | |
| 184 | + var date; | |
| 185 | + var gsdmDaily; | |
| 186 | + var fgsdmDaily; | |
| 187 | + var lineName=$("#select2-line-container").html(); | |
| 188 | + $("#query").on("click",function(){ | |
| 189 | + if($("#date").val() == null || $("#date").val().trim().length == 0){ | |
| 190 | + layer.msg("请选择时间"); | |
| 191 | + return; | |
| 192 | + } | |
| 193 | + line = $("#line").val(); | |
| 194 | + date = $("#date").val(); | |
| 195 | + gsdmDaily=$("#gsdmDaily").val(); | |
| 196 | + fgsdmDaily = $("#fgsdmDaily").val(); | |
| 197 | + lineName=$("#select2-line-container").html(); | |
| 198 | + var i = layer.load(2); | |
| 199 | + $get('/mcy_forms/daily',{gsdmDaily:gsdmDaily,fgsdmDaily:fgsdmDaily, line:line,date:date,type:'query'},function(result){ | |
| 200 | + $("#form_line").text(lineName); | |
| 201 | + $("#form_date").text(date); | |
| 202 | + // 把数据填充到模版中 | |
| 203 | + var tbodyHtml = template('dailyInfo',{list:result}); | |
| 204 | + // 把渲染好的模版html文本追加到表格中 | |
| 205 | + $('#tbody').html(tbodyHtml); | |
| 206 | + layer.close(i); | |
| 207 | + | |
| 208 | + line = $("#line").val(); | |
| 209 | + startDate = $("#startDate").val(); | |
| 210 | + endDate = $("#endDate").val(); | |
| 211 | + $("#sDate").text(startDate); | |
| 212 | + $("#eDate").text(endDate); | |
| 213 | + | |
| 214 | + var total_zgl = 0,total_ks = 0; | |
| 215 | + var total_yh = 0,total_bc = 0; | |
| 216 | + | |
| 217 | + $.each(result, function(i, obj) { | |
| 218 | + total_zgl +=Number(obj.zlc*10000); | |
| 219 | + total_ks +=Number(obj.jzl1*10000); | |
| 220 | + total_yh += Number(obj.yh*10000); | |
| 221 | + total_bc += Number(obj.bc); | |
| 222 | + | |
| 223 | + }); | |
| 224 | + $("#total_zgl").text((total_zgl/10000).toFixed(3)); | |
| 225 | + $("#total_ks").text((total_ks/10000).toFixed(3)); | |
| 226 | + $("#total_yh").text((total_yh/10000).toFixed(2)); | |
| 227 | + $("#total_bc").text(total_bc.toFixed(0)); | |
| 228 | + | |
| 229 | + var temp = {}; | |
| 230 | + var today_account = 0; | |
| 231 | + | |
| 232 | + temp["line"] = $("#line").text(); | |
| 233 | + $.each(result, function(i, obj) { | |
| 234 | + if(moment(obj.schedule_date_str).format("YYYY-MM-DD") == moment(obj.startDate).format("YYYY-MM-DD")){ | |
| 235 | + today_account++; | |
| 236 | + } | |
| 237 | + obj.updateDate = moment(obj.startDate).format("YYYY-MM-DD HH:mm:ss"); | |
| 238 | + }); | |
| 239 | + }) | |
| 240 | + }); | |
| 241 | + | |
| 242 | + $("#export").on("click",function(){ | |
| 243 | + if($("#date").val() == null || $("#date").val().trim().length == 0){ | |
| 244 | + layer.msg("请选择时间"); | |
| 245 | + return; | |
| 246 | + } | |
| 247 | + line = $("#line").val(); | |
| 248 | + date = $("#date").val(); | |
| 249 | + gsdmDaily=$("#gsdmDaily").val(); | |
| 250 | + fgsdmDaily = $("#fgsdmDaily").val(); | |
| 251 | + lineName=$("#select2-line-container").html(); | |
| 252 | + var i = layer.load(2); | |
| 253 | + $post('/mcy_export/dailyExport',{gsdmDaily:gsdmDaily,fgsdmDaily:fgsdmDaily,line:line,date:date,type:'export',lineName:lineName},function(result){ | |
| 254 | + window.open("/downloadFile/download?fileName=" | |
| 255 | + +moment(date).format("YYYYMMDD")+"-"+lineName+"-班次日报表"); | |
| 256 | + layer.close(i); | |
| 257 | + }); | |
| 258 | + }); | |
| 259 | +}); | |
| 260 | +</script> | |
| 261 | +<script type="text/html" id="dailyInfo"> | |
| 262 | + {{each list as obj i}} | |
| 263 | + <tr> | |
| 264 | + <td>{{obj.zbh}}</td> | |
| 265 | + <td>{{obj.jgh}}</td> | |
| 266 | + <td>{{obj.jName}}</td> | |
| 267 | + <td>{{obj.zlc}}</td> | |
| 268 | + <td>{{obj.jzl1}}</td> | |
| 269 | + <td>{{obj.yh}}</td> | |
| 270 | + <td>{{obj.bc}}</td> | |
| 271 | + <td> | |
| 272 | + | |
| 273 | + {{if obj.bc > 5}} | |
| 274 | + {{obj.bc % 5}} | |
| 275 | + {{else}} | |
| 276 | + 0 | |
| 277 | + {{/if}} | |
| 278 | + | |
| 279 | + </td> | |
| 280 | + </tr> | |
| 281 | + {{/each}} | |
| 282 | + {{if list.length == 0}} | |
| 283 | + <tr> | |
| 284 | + <td colspan="7"><h6 class="muted">没有找到相关数据</h6></td> | |
| 285 | + </tr> | |
| 286 | + {{/if}} | |
| 287 | +</script> | |
| 0 | 288 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/mforms/linepassengerflows/linepassengerflow.html
| ... | ... | @@ -72,7 +72,7 @@ |
| 72 | 72 | |
| 73 | 73 | <script> |
| 74 | 74 | $(function(){ |
| 75 | - var reqCodeMap = {"0xA1": '请求恢复运营', "0xA2": '申请调档', "0xA3": '出场请求', "0xA5": '进场请求', "0xA7": '加油请求', "0x50": '车辆故障', "0x70": '路阻报告', "0x60": '事故报告', "0x11": '扣证纠纷', "0x12" : '报警'}; | |
| 75 | + var reqCodeMap = {"0xA1": '请求恢复运营', "0xA2": '申请调档', "0xA3": '出场请求', "0xA5": '进场请求', "0xA7": '加油请求', "0x50": '车辆故障', "0x70": '路阻报告', "0x60": '事故报告', "0x11": '扣证纠纷', "0x12" : '报警', 0x21: '单车有人伤', 0x22: '单车无人伤', 0x23: '双车有人伤', 0x24: '双车无人伤'}; | |
| 76 | 76 | // 关闭左侧栏 |
| 77 | 77 | if (!$('body').hasClass('page-sidebar-closed')) |
| 78 | 78 | $('.menu-toggler.sidebar-toggler').click(); | ... | ... |
src/main/resources/static/pages/report/sheet/calcList_yanshou.html
0 → 100644
| 1 | +<style type="text/css"> | |
| 2 | + .table-bordered { | |
| 3 | + border: 1px solid; } | |
| 4 | + .table-bordered > thead > tr > th, | |
| 5 | + .table-bordered > thead > tr > td, | |
| 6 | + .table-bordered > tbody > tr > th, | |
| 7 | + .table-bordered > tbody > tr > td, | |
| 8 | + .table-bordered > tfoot > tr > th, | |
| 9 | + .table-bordered > tfoot > tr > td { | |
| 10 | + border: 1px solid; } | |
| 11 | + .table-bordered > thead > tr > th, | |
| 12 | + .table-bordered > thead > tr > td { | |
| 13 | + border-bottom-width: 2px; } | |
| 14 | + | |
| 15 | + .table > tbody + tbody { | |
| 16 | + border-top: 1px solid; } | |
| 17 | +</style> | |
| 18 | + | |
| 19 | +<div class="page-head"> | |
| 20 | + <div class="page-title" style="margin-left: 20px"> | |
| 21 | + <button id="exportList">数据导出</button> | |
| 22 | + </div> | |
| 23 | +</div> | |
| 24 | + | |
| 25 | +<div class="row" id="calcSheetList"> | |
| 26 | + <div class="col-md-12"> | |
| 27 | + <div class="portlet light porttlet-fit bordered"> | |
| 28 | + <div class="portlet-body"> | |
| 29 | + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 600px"> | |
| 30 | + <table class="table table-bordered table-hover table-checkable" id="forms_2"> | |
| 31 | + <thead> | |
| 32 | + <tr> | |
| 33 | + <td></td> | |
| 34 | + <td>日期</td> | |
| 35 | + <td>线路</td> | |
| 36 | + <td>站点</td> | |
| 37 | + <td>计划时间</td> | |
| 38 | + <td>实际时间</td> | |
| 39 | + <td>是否准点</td> | |
| 40 | + <td>备注</td> | |
| 41 | + </tr> | |
| 42 | + </thead> | |
| 43 | + | |
| 44 | + <tbody> | |
| 45 | + | |
| 46 | + </tbody> | |
| 47 | + </table> | |
| 48 | + </div> | |
| 49 | + </div> | |
| 50 | + </div> | |
| 51 | + </div> | |
| 52 | +</div> | |
| 53 | +<script src="/pages/mforms/singledatas/jquery.table2excel.min.js"></script> | |
| 54 | +<script> | |
| 55 | + $(function(){ | |
| 56 | + // 关闭左侧栏 | |
| 57 | + if (!$('body').hasClass('page-sidebar-closed')) | |
| 58 | + $('.menu-toggler.sidebar-toggler').click(); | |
| 59 | + var no=""; | |
| 60 | + var dates=""; | |
| 61 | + var dir=""; | |
| 62 | + $("#calcSheetList").on('init', function (e, id) { | |
| 63 | + no=id.split(",")[0]; | |
| 64 | + dates = id.split(",")[1]; | |
| 65 | + dir =id.split(",")[2]; | |
| 66 | + var i = layer.load(2); | |
| 67 | + $get('/calcSheet/calcSheet',{line:no,date:dates,dir:dir,type:'query'},function(result){ | |
| 68 | + layer.close(i); | |
| 69 | + var calcSheetList_2 = template('calcSheetList_2',{list:result}); | |
| 70 | + $('#forms_2 tbody').html(calcSheetList_2); | |
| 71 | + }); | |
| 72 | + }) | |
| 73 | + $("#exportList").on('click',function(){ | |
| 74 | + var i = layer.load(2); | |
| 75 | + var name=""; | |
| 76 | + if(dir=="1"){ | |
| 77 | + fileName="发车准点率"+dates; | |
| 78 | + }else{ | |
| 79 | + fileName="到站准点率"+dates; | |
| 80 | + } | |
| 81 | + $get('/calcSheet/calcSheet',{line:no,date:dates,dir:dir,type:'export'},function(result){ | |
| 82 | + window.open("/downloadFile/download?fileName="+fileName); | |
| 83 | + layer.close(i); | |
| 84 | + }); | |
| 85 | + }); | |
| 86 | + | |
| 87 | + | |
| 88 | + }); | |
| 89 | +</script> | |
| 90 | +<script type="text/html" id="calcSheetList_2"> | |
| 91 | + {{each list as obj i}} | |
| 92 | + <tr {{if obj.sfzd!="准点"}}style="color: red" {{/if}}> | |
| 93 | + <td>{{i+1}}</td> | |
| 94 | + <td>{{obj.date}}</td> | |
| 95 | + <td>{{obj.line}}</td> | |
| 96 | + <td>{{obj.zdname}}</td> | |
| 97 | + <td>{{obj.jhsj}}</td> | |
| 98 | + <td>{{obj.sjsj}}</td> | |
| 99 | + <td>{{obj.sfzd}}</td> | |
| 100 | + <td>{{if i == 6}}自动调度{{/if}}</td> | |
| 101 | + </tr> | |
| 102 | + {{/each}} | |
| 103 | + {{if list.length == 0}} | |
| 104 | + <tr> | |
| 105 | + <td colspan="7"><h6 class="muted">没有找到相关数据</h6></td> | |
| 106 | + </tr> | |
| 107 | + {{/if}} | |
| 108 | +</script> | |
| 0 | 109 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/list.html
| ... | ... | @@ -34,7 +34,12 @@ |
| 34 | 34 | <td> |
| 35 | 35 | <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition()['lpName_like']" placeholder="请输入路牌名字..."/> |
| 36 | 36 | </td> |
| 37 | - <td></td> | |
| 37 | + <td> | |
| 38 | + <select class="form-control"> | |
| 39 | + <option>普通路牌</option> | |
| 40 | + <option>特殊路牌</option> | |
| 41 | + </select> | |
| 42 | + </td> | |
| 38 | 43 | <td> |
| 39 | 44 | <label class="checkbox-inline"> |
| 40 | 45 | <input type="checkbox" ng-model="ctrl.searchCondition()['isCancel_eq']"/>已作废 | ... | ... |
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/module.js
| ... | ... | @@ -385,7 +385,7 @@ angular.module('ScheduleApp').controller( |
| 385 | 385 | |
| 386 | 386 | // 当转向到此页面时,就获取明细信息并绑定 |
| 387 | 387 | Gb.get({id: id}, function(result) { |
| 388 | - self.guideboardForDetail = result.data; | |
| 388 | + self.guideboardForDetail = result; | |
| 389 | 389 | self.title = "路牌 " + self.guideboardForDetail.lpName + " 详细信息"; |
| 390 | 390 | }); |
| 391 | 391 | } | ... | ... |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/temp_sch/add_normal_recoder.html
0 → 100644
| 1 | +<!-- 临加班次form --> | |
| 2 | +<script id="add_normal_sch-form-temp" type="text/html"> | |
| 3 | + <form class="uk-form uk-form-horizontal add-sch-form"> | |
| 4 | + <div class="uk-grid"> | |
| 5 | + <div class="uk-width-1-2"> | |
| 6 | + <div class="uk-form-row"> | |
| 7 | + <label class="uk-form-label">班次类型</label> | |
| 8 | + <div class="uk-form-controls"> | |
| 9 | + <select class="form-control nt-dictionary" name="bcType" data-code="{{bcType}}" | |
| 10 | + data-group=ScheduleType></select> | |
| 11 | + </div> | |
| 12 | + </div> | |
| 13 | + </div> | |
| 14 | + <div class="uk-width-1-2"> | |
| 15 | + <div class="uk-form-row"> | |
| 16 | + <label class="uk-form-label">上下行</label> | |
| 17 | + <div class="uk-form-controls"> | |
| 18 | + <select name="xlDir" id="xlDir"> | |
| 19 | + <option value="0">上行</option> | |
| 20 | + <option value="1">下行</option> | |
| 21 | + </select> | |
| 22 | + </div> | |
| 23 | + </div> | |
| 24 | + </div> | |
| 25 | + </div> | |
| 26 | + <div class="uk-grid"> | |
| 27 | + <div class="uk-width-1-2"> | |
| 28 | + <div class="uk-form-row"> | |
| 29 | + <label class="uk-form-label">起点站</label> | |
| 30 | + <div class="uk-form-controls"> | |
| 31 | + <select name="qdzCode" id="qdzCode"> | |
| 32 | + </select> | |
| 33 | + </div> | |
| 34 | + </div> | |
| 35 | + </div> | |
| 36 | + <div class="uk-width-1-2"> | |
| 37 | + <div class="uk-form-row"> | |
| 38 | + <label class="uk-form-label">终点站</label> | |
| 39 | + <div class="uk-form-controls"> | |
| 40 | + <select name="zdzCode" id="zdzCode"> | |
| 41 | + </select> | |
| 42 | + </div> | |
| 43 | + </div> | |
| 44 | + </div> | |
| 45 | + </div> | |
| 46 | + <div class="uk-grid"> | |
| 47 | + <div class="uk-width-1-2"> | |
| 48 | + <div class="uk-form-row"> | |
| 49 | + <label class="uk-form-label">开始时间</label> | |
| 50 | + <div class="uk-form-controls"> | |
| 51 | + <input type="time" value="{{zdsjActual==null?zdsj:zdsjActual}}" name="fcsj" required> | |
| 52 | + </div> | |
| 53 | + </div> | |
| 54 | + </div> | |
| 55 | + <div class="uk-width-1-2"> | |
| 56 | + <div class="uk-form-row"> | |
| 57 | + <label class="uk-form-label">结束时间</label> | |
| 58 | + <div class="uk-form-controls"> | |
| 59 | + <input type="time" name="zdsj" required> | |
| 60 | + </div> | |
| 61 | + </div> | |
| 62 | + </div> | |
| 63 | + </div> | |
| 64 | + <div class="uk-grid"> | |
| 65 | + <div class="uk-width-1-2"> | |
| 66 | + <div class="uk-form-row"> | |
| 67 | + <label class="uk-form-label">车辆</label> | |
| 68 | + <div class="uk-form-controls"> | |
| 69 | + <div class="uk-autocomplete uk-form car-autocom"> | |
| 70 | + <input type="text" value="{{clZbh}}" name="clZbh" required> | |
| 71 | + </div> | |
| 72 | + </div> | |
| 73 | + </div> | |
| 74 | + </div> | |
| 75 | + <div class="uk-width-1-2"> | |
| 76 | + <div class="uk-form-row"> | |
| 77 | + <label class="uk-form-label">里程</label> | |
| 78 | + <div class="uk-form-controls"> | |
| 79 | + <input type="text" name="jhlc" value="{{jhlc}}" max=400 data-fv-lessthan-inclusive="false" | |
| 80 | + required> | |
| 81 | + </div> | |
| 82 | + </div> | |
| 83 | + </div> | |
| 84 | + </div> | |
| 85 | + <div class="uk-grid"> | |
| 86 | + <div class="uk-width-1-2"> | |
| 87 | + <div class="uk-form-row"> | |
| 88 | + <label class="uk-form-label">驾驶员</label> | |
| 89 | + <div class="uk-form-controls"> | |
| 90 | + <div class="uk-autocomplete uk-form jsy-autocom"> | |
| 91 | + <input type="text" value="{{jGh}}/{{jName}}" name="jsy" required> | |
| 92 | + </div> | |
| 93 | + </div> | |
| 94 | + </div> | |
| 95 | + </div> | |
| 96 | + <div class="uk-width-1-2"> | |
| 97 | + <div class="uk-form-row"> | |
| 98 | + <label class="uk-form-label">售票员</label> | |
| 99 | + <div class="uk-form-controls"> | |
| 100 | + <div class="uk-autocomplete uk-form spy-autocom"> | |
| 101 | + <input type="text" name="spy" value="{{sGh}}/{{sName}}"> | |
| 102 | + </div> | |
| 103 | + </div> | |
| 104 | + </div> | |
| 105 | + </div> | |
| 106 | + </div> | |
| 107 | + <div class="uk-grid"> | |
| 108 | + <div class="uk-width-1-1"> | |
| 109 | + <div class="uk-form-row"> | |
| 110 | + <label class="uk-form-label">备注</label> | |
| 111 | + <div class="uk-form-controls"> | |
| 112 | + <div class="uk-autocomplete uk-form remarks-autocom"> | |
| 113 | + <input type="text" name="remarks"> | |
| 114 | + </div> | |
| 115 | + </div> | |
| 116 | + </div> | |
| 117 | + </div> | |
| 118 | + </div> | |
| 119 | + <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;"> | |
| 120 | + <span class="ct_line_lp_badge"></span> | |
| 121 | + <button type="button" class="uk-button uk-modal-close">取消</button> | |
| 122 | + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> 保存 | |
| 123 | + </button> | |
| 124 | + </div> | |
| 125 | + </form> | |
| 126 | +</script> | |
| 127 | +<script> | |
| 128 | + (function () { | |
| 129 | + var wrap = '#schedule-addsch-modal .normalCont', sch, nf, submitFun; | |
| 130 | + | |
| 131 | + $(wrap).on('init', function (e, data) { | |
| 132 | + e.stopPropagation(); | |
| 133 | + sch = data.sch; | |
| 134 | + submitFun = data.submitFun; | |
| 135 | + | |
| 136 | + nf = addForm(); | |
| 137 | + //提交 | |
| 138 | + nf.on('success.form.fv', function (e) { | |
| 139 | + e.preventDefault(); | |
| 140 | + | |
| 141 | + disabled_submit_btn(nf); | |
| 142 | + var data = nf.serializeJSON(); | |
| 143 | + submitFun(data, function (rs) { | |
| 144 | + //前端数据更新 | |
| 145 | + gb_schedule_table.insertSchedule(rs.t, rs.ts); | |
| 146 | + $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: rs.t}); | |
| 147 | + try { | |
| 148 | + if(rs.t.bcType=='in' || rs.t.bcType=='out') | |
| 149 | + gb_data_basic.reload_stat_park_data(); | |
| 150 | + }catch (e){ | |
| 151 | + console.log(e);} | |
| 152 | + UIkit.modal('#schedule-addsch-modal').hide(); | |
| 153 | + //更新路牌公里统计面板 | |
| 154 | + gb_schedule_table.showLpMileageTipBySch(rs.t); | |
| 155 | + }, function () { | |
| 156 | + enable_submit_btn(nf); | |
| 157 | + }); | |
| 158 | + }); | |
| 159 | + $('.ct_line_lp_badge', nf).html(sch.xlName + ', '+sch.lpName); | |
| 160 | + }); | |
| 161 | + | |
| 162 | + function addForm() { | |
| 163 | + var htmlStr = template('add_normal_sch-form-temp', sch); | |
| 164 | + var f = $(htmlStr); | |
| 165 | + $(wrap).append(f); | |
| 166 | + //字典转换 | |
| 167 | + dictionaryUtils.transformDom($('.nt-dictionary', f)); | |
| 168 | + //validation | |
| 169 | + f.formValidation({framework: 'uikit', locale: 'zh_CN'}); | |
| 170 | + //autocomp | |
| 171 | + f.trigger('init-autoCom'); | |
| 172 | + | |
| 173 | + $("#xlDir").val(sch.xlDir); | |
| 174 | + $f('bcType', f).trigger('change'); | |
| 175 | + $("#qdzCode").val(sch.qdzCode); | |
| 176 | + $("#zdzCode").val(sch.zdzCode); | |
| 177 | + $f('zdzCode', f).trigger('change'); | |
| 178 | + return f; | |
| 179 | + } | |
| 180 | + | |
| 181 | + function $f(name, f) { | |
| 182 | + return $('[name=' + name + ']', f); | |
| 183 | + } | |
| 184 | + })(); | |
| 185 | +</script> | |
| 0 | 186 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/temp_sch/main_recorder.html
0 → 100644
| 1 | +<div class="uk-modal ct-form-modal ct_move_modal" id="schedule-addsch-modal"> | |
| 2 | + <div class="uk-modal-dialog" style="width: 800px;"> | |
| 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-grid"> | |
| 8 | + <div class="uk-width-1-4"> | |
| 9 | + <ul data-uk-switcher="{connect:'#tempScheduleContent'}" class="uk-nav uk-nav-side left_tabs_lg"> | |
| 10 | + <li data-handle="normal"><a>1、临加班次</a></li> | |
| 11 | + <li data-handle="toAndFro"><a>2、往返</a></li> | |
| 12 | + <li data-handle="parkToPark"><a>3、场到场</a></li> | |
| 13 | + </ul> | |
| 14 | + </div> | |
| 15 | + <div class="uk-width-3-4"> | |
| 16 | + <ul id="tempScheduleContent" class="uk-switcher"> | |
| 17 | + <li class="normalCont"></li> | |
| 18 | + <li class="toAndFroCont"></li> | |
| 19 | + <li class="parkToParkCont"></li> | |
| 20 | + </ul> | |
| 21 | + </div> | |
| 22 | + </div> | |
| 23 | + </div> | |
| 24 | + | |
| 25 | + <script> | |
| 26 | + (function () { | |
| 27 | + var modal = '#schedule-addsch-modal', | |
| 28 | + sch, stationRoutes, parks, information, carsArray, st_park_data; | |
| 29 | + | |
| 30 | + $(modal).on('init', function (e, data) { | |
| 31 | + e.stopPropagation(); | |
| 32 | + sch = data.sch; | |
| 33 | + //站到场数据 | |
| 34 | + st_park_data = gb_data_basic.get_stat_park_data()[sch.xlBm]; | |
| 35 | + //站点路由 | |
| 36 | + stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) { | |
| 37 | + return a.stationRouteCode - b.stationRouteCode; | |
| 38 | + }), 'directions'); | |
| 39 | + //停车场 | |
| 40 | + parks = gb_data_basic.simpleParksArray(); | |
| 41 | + //线路标准 | |
| 42 | + information = gb_data_basic.getLineInformation(sch.xlBm); | |
| 43 | + //停车场排序,常用的放前面 | |
| 44 | + parks = sort_parks(parks, information, st_park_data); | |
| 45 | + //车辆信息 | |
| 46 | + carsArray = gb_data_basic.carsArray(); | |
| 47 | + | |
| 48 | + var st_doms = gb_schedule_context_menu.get_add_sch_doms(); | |
| 49 | + //normal | |
| 50 | + $('.normalCont', modal).html(st_doms.normal_recoder_dom) | |
| 51 | + .trigger('init', {sch: sch, submitFun: submit_temp_schedule_form}); | |
| 52 | + | |
| 53 | + //to and fro | |
| 54 | + $('.toAndFroCont', modal).html(st_doms.two_way_recoder_dom) | |
| 55 | + .trigger('init', {sch: sch, submitFun: submit_temp_schedule_form, stationRoutes: stationRoutes}); | |
| 56 | + | |
| 57 | + //park to park | |
| 58 | + $('.parkToParkCont', modal).html(st_doms.park_to_park_dom) | |
| 59 | + .trigger('init', {sch: sch, submitFun: submit_temp_schedule_form, parks: parks, carsArray: carsArray}); | |
| 60 | + }); | |
| 61 | + | |
| 62 | + //init-autoCom | |
| 63 | + $(modal).on('init-autoCom', '.add-sch-form', function () { | |
| 64 | + //车辆 | |
| 65 | + if(carsArray) | |
| 66 | + gb_common.carAutocomplete($('.car-autocom', this), carsArray); | |
| 67 | + //驾驶员 | |
| 68 | + gb_common.personAutocomplete($('.jsy-autocom', this)); | |
| 69 | + //售票员 | |
| 70 | + gb_common.personAutocomplete($('.spy-autocom', this)); | |
| 71 | + //备注补全 | |
| 72 | + gb_common.remarksAutocomplete($('.remarks-autocom', this)); | |
| 73 | + }); | |
| 74 | + | |
| 75 | + //班次类型 和 上下行 切换事件 | |
| 76 | + $(modal).on('change', '.add-sch-form [name=bcType],.add-sch-form [name=xlDir]', reCalcInputs_type); | |
| 77 | + //起终点站改变事件 | |
| 78 | + $(modal).on('change', '[name=qdzCode],[name=zdzCode]', reCalcInputs_station); | |
| 79 | + //开始时间和公里改变 | |
| 80 | + $(modal).on('input', '.add-sch-form [name=fcsj],.add-sch-form [name=jhlc]', reCalcEndTime); | |
| 81 | + | |
| 82 | + | |
| 83 | + function reCalcInputs_type() { | |
| 84 | + var f = $(this).parents('.add-sch-form'); | |
| 85 | + var bcType_e = $('[name=bcType]', f) | |
| 86 | + , xlDir_e = $('[name=xlDir]', f); | |
| 87 | + | |
| 88 | + var routes = stationRoutes[xlDir_e.val()] | |
| 89 | + , lastCode = routes[routes.length - 1].stationCode | |
| 90 | + , opts = '', park_opts = ''; | |
| 91 | + //station options | |
| 92 | + $.each(routes, function () { | |
| 93 | + opts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>' | |
| 94 | + }); | |
| 95 | + //park options | |
| 96 | + for(var i=0,p;p=parks[i++];) | |
| 97 | + park_opts += '<option value="' + p.code + '">' + p.name + '</option>'; | |
| 98 | + | |
| 99 | + var qdz = $('[name=qdzCode]', f), zdz = $('[name=zdzCode]', f); | |
| 100 | + //var time, mileage; | |
| 101 | + switch (bcType_e.val()) { | |
| 102 | + case 'out': | |
| 103 | + qdz.html(park_opts).val(information.carPark); | |
| 104 | + zdz.html(opts); | |
| 105 | + break; | |
| 106 | + case 'in': | |
| 107 | + qdz.html(opts); | |
| 108 | + zdz.html(park_opts).val(information.carPark); | |
| 109 | + break; | |
| 110 | + default: | |
| 111 | + qdz.html(opts); | |
| 112 | + zdz.html(opts).val(lastCode); | |
| 113 | + } | |
| 114 | + | |
| 115 | + zdz.trigger('change'); | |
| 116 | + f.trigger('ct_callback'); | |
| 117 | + } | |
| 118 | + | |
| 119 | + function reCalcInputs_station() { | |
| 120 | + var f = $(this).parents('form'), | |
| 121 | + bcType = $('[name=bcType]', f).val(), | |
| 122 | + qdzCode = $('[name=qdzCode]', f).val(), | |
| 123 | + zdzCode =$('[name=zdzCode]', f).val(), | |
| 124 | + startDate = $('[name=fcsj]', f).val(), | |
| 125 | + upDown = $('[name=xlDir]', f).val(), mileage, time; | |
| 126 | + | |
| 127 | + //从站到场里获取数据 | |
| 128 | + var stp = search_st_park(f); | |
| 129 | + if(stp){ | |
| 130 | + mileage=bcType=='in'?stp['mileage1']:stp['mileage2']; | |
| 131 | + time=bcType=='in'?stp['time1']:stp['time2']; | |
| 132 | + } | |
| 133 | + else{ | |
| 134 | + switch (upDown + '_' + bcType) { | |
| 135 | + case '0_out'://上行出场 | |
| 136 | + mileage = information.upOutMileage; | |
| 137 | + time = information.upOutTimer; | |
| 138 | + break; | |
| 139 | + case '1_out'://下行出场 | |
| 140 | + mileage = information.downOutMileage; | |
| 141 | + time = information.downOutTimer; | |
| 142 | + break; | |
| 143 | + case '0_in'://上行进场 | |
| 144 | + mileage = information.upInMileage; | |
| 145 | + time = information.upInTimer; | |
| 146 | + break; | |
| 147 | + case '1_in'://下行进场 | |
| 148 | + mileage = information.downInMileage; | |
| 149 | + time = information.downInTimer; | |
| 150 | + break; | |
| 151 | + default: | |
| 152 | + | |
| 153 | + var qc_time=upDown==0?information.upTravelTime:information.downTravelTime, | |
| 154 | + qc_mileage=upDown==0?information.upMileage:information.downMileage, _type; | |
| 155 | + if(is_normal_sch(f)){ | |
| 156 | + _type='normal'; | |
| 157 | + mileage=qc_mileage; | |
| 158 | + } | |
| 159 | + else{ | |
| 160 | + _type='region'; | |
| 161 | + mileage = calcMileage(stationRoutes[upDown], qdzCode, zdzCode); | |
| 162 | + } | |
| 163 | + | |
| 164 | + time = gb_common.mul(gb_common.accDiv(qc_time, qc_mileage), mileage); | |
| 165 | + if(bcType!='ldks' && bcType!='major' && bcType!='venting') | |
| 166 | + $('[name=bcType]', f).val(_type); | |
| 167 | + } | |
| 168 | + } | |
| 169 | + | |
| 170 | + $('[name=jhlc]', f).val(mileage); | |
| 171 | + var et = moment(startDate, 'HH:mm').add(time, 'minutes'); | |
| 172 | + $f('zdsj', f).val(et.format('HH:mm')); | |
| 173 | + f.trigger('ct_callback'); | |
| 174 | + } | |
| 175 | + | |
| 176 | + | |
| 177 | + function reCalcEndTime() { | |
| 178 | + var f = $(this).parents('.add-sch-form') | |
| 179 | + , startDate = $f('fcsj', f).val()//开始时间 | |
| 180 | + , mileage = $f('jhlc', f).val()//公里 | |
| 181 | + , type2 = $f('bcType', f).val(),//班次类型 | |
| 182 | + upDown = $('[name=xlDir]', f).val(); | |
| 183 | + if (!startDate || !mileage) | |
| 184 | + return; | |
| 185 | + | |
| 186 | + var time; | |
| 187 | + //从站到场里获取数据 | |
| 188 | + var stp = search_st_park(f); | |
| 189 | + if(stp){ | |
| 190 | + time=type2=='in'?stp['time1']:stp['time2']; | |
| 191 | + } | |
| 192 | + else{ | |
| 193 | + if (type2 == 'in') | |
| 194 | + time = upDown == 0 ? information.upInTimer : information.downInTimer; | |
| 195 | + else if (type2 == 'out') | |
| 196 | + time = upDown == 0 ? information.upOutTimer : information.downOutTimer; | |
| 197 | + else{ | |
| 198 | + var qc_time=upDown==0?information.upTravelTime:information.downTravelTime, | |
| 199 | + qc_mileage=upDown==0?information.upMileage:information.downMileage; | |
| 200 | + | |
| 201 | + time = gb_common.mul(gb_common.accDiv(qc_time, qc_mileage), mileage); | |
| 202 | + } | |
| 203 | + } | |
| 204 | + | |
| 205 | + var et = moment(startDate, 'HH:mm').add(time, 'minutes'); | |
| 206 | + $f('zdsj', f).val(et.format('HH:mm')); | |
| 207 | + f.trigger('ct_callback'); | |
| 208 | + } | |
| 209 | + | |
| 210 | + function is_normal_sch(f) { | |
| 211 | + var qdzCode = $('[name=qdzCode]', f).val(), | |
| 212 | + zdzCode =$('[name=zdzCode]', f).val(), | |
| 213 | + upDown = $('[name=xlDir]', f).val(), | |
| 214 | + rts = stationRoutes[upDown]; | |
| 215 | + | |
| 216 | + if(rts[0].stationCode == qdzCode | |
| 217 | + && rts[rts.length - 1].stationCode == zdzCode) | |
| 218 | + return true; | |
| 219 | + else | |
| 220 | + return false; | |
| 221 | + } | |
| 222 | + | |
| 223 | + function isInOut(bcType) { | |
| 224 | + return bcType=='in' || bcType=='out'; | |
| 225 | + } | |
| 226 | + | |
| 227 | + /** | |
| 228 | + * 计算线路上站点间公里 | |
| 229 | + */ | |
| 230 | + function calcMileage(rts, s, e) { | |
| 231 | + var mileage = 0, flag, code; | |
| 232 | + $.each(rts, function () { | |
| 233 | + code = this['stationCode']; | |
| 234 | + if (flag) | |
| 235 | + mileage = gb_common.accAdd(mileage, this.distances); | |
| 236 | + if (code == s) | |
| 237 | + flag = true; | |
| 238 | + if (code == e) | |
| 239 | + return false; | |
| 240 | + }); | |
| 241 | + return mileage; | |
| 242 | + } | |
| 243 | + | |
| 244 | + function search_st_park(f) { | |
| 245 | + if(!st_park_data) | |
| 246 | + return; | |
| 247 | + var stp; | |
| 248 | + var qdSelect=$f('qdzCode', f)[0],zdSelect=$f('zdzCode', f)[0]; | |
| 249 | + | |
| 250 | + if(qdSelect.options.selectedIndex < 0 || zdSelect.options.selectedIndex < 0) | |
| 251 | + return; | |
| 252 | + var qdzName=qdSelect.options[qdSelect.options.selectedIndex].text, | |
| 253 | + zdzName=zdSelect.options[zdSelect.options.selectedIndex].text, | |
| 254 | + type2 = $f('bcType', f).val(); | |
| 255 | + | |
| 256 | + if(!isInOut(type2)) | |
| 257 | + return; | |
| 258 | + | |
| 259 | + $.each(st_park_data, function () { | |
| 260 | + if((type2=='in' && this.stationName==qdzName && this.parkName==zdzName) | |
| 261 | + || (type2=='out' && this.stationName==zdzName && this.parkName==qdzName)){ | |
| 262 | + stp = this; | |
| 263 | + return false; | |
| 264 | + } | |
| 265 | + }); | |
| 266 | + | |
| 267 | + return stp; | |
| 268 | + } | |
| 269 | + | |
| 270 | + /** | |
| 271 | + * 停车场排序 | |
| 272 | + * @param parks 停车场 code 2 name | |
| 273 | + * @param information 线路标准 | |
| 274 | + * @param st_park_data 站到场 | |
| 275 | + */ | |
| 276 | + function sort_parks(parks, information, st_park_data) { | |
| 277 | + var array = [], names=[]; | |
| 278 | + for(var code in parks){ | |
| 279 | + array.push({code: code, name: parks[code]}); | |
| 280 | + } | |
| 281 | + | |
| 282 | + if(st_park_data && st_park_data.length > 0){ | |
| 283 | + $.each(st_park_data, function () { | |
| 284 | + names.push(this.parkName); | |
| 285 | + }); | |
| 286 | + } | |
| 287 | + | |
| 288 | + //debugger | |
| 289 | + array.sort(function (a, b) { | |
| 290 | + if(a.code==information.carPark) | |
| 291 | + return -1; | |
| 292 | + if(b.code==information.carPark) | |
| 293 | + return 1; | |
| 294 | + | |
| 295 | + var ai = names.indexOf(a.name), | |
| 296 | + bi = names.indexOf(b.name); | |
| 297 | + | |
| 298 | + if(ai!=-1 && bi==-1) | |
| 299 | + return -1; | |
| 300 | + else if(ai==-1 && bi!=-1) | |
| 301 | + return 1; | |
| 302 | + else | |
| 303 | + return $.trim(a.name).localeCompare($.trim(b.name), 'zh-CN'); | |
| 304 | + }); | |
| 305 | + return array; | |
| 306 | + } | |
| 307 | + | |
| 308 | + function $f(name, f) { | |
| 309 | + return $('[name=' + name + ']', f); | |
| 310 | + } | |
| 311 | + | |
| 312 | + /** | |
| 313 | + * 提交表单 | |
| 314 | + */ | |
| 315 | + function submit_temp_schedule_form(data, cb, err) { | |
| 316 | + data.xlBm = sch.xlBm; | |
| 317 | + data.xlName = sch.xlName; | |
| 318 | + data.lpName = sch.lpName; | |
| 319 | + //拆分驾驶员工号和姓名 | |
| 320 | + data.jGh = data.jsy.split('/')[0]; | |
| 321 | + data.jName = data.jsy.split('/')[1]; | |
| 322 | + delete data.jsy; | |
| 323 | + //拆分售票员工号和姓名 | |
| 324 | + if (data.spy != '') { | |
| 325 | + data.sGh = data.spy.split('/')[0]; | |
| 326 | + data.sName = data.spy.split('/')[1]; | |
| 327 | + delete data.spy; | |
| 328 | + } | |
| 329 | + | |
| 330 | + //公司信息 | |
| 331 | + var line = gb_data_basic.findLineByCodes([data.xlBm]); | |
| 332 | + if(line && line.length > 0){ | |
| 333 | + line = line[0]; | |
| 334 | + data.gsBm = line.company; | |
| 335 | + data.fgsBm = line.brancheCompany; | |
| 336 | + } | |
| 337 | + | |
| 338 | + gb_common.$post('/realSchedule', data, function (rs) { | |
| 339 | + notify_succ('新增临加班次成功'); | |
| 340 | + cb && cb(rs); | |
| 341 | + }, err); | |
| 342 | + } | |
| 343 | + })(); | |
| 344 | + </script> | |
| 345 | +</div> | |
| 0 | 346 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/fragments/line_schedule/sys_mailbox.html
| ... | ... | @@ -9,6 +9,17 @@ |
| 9 | 9 | <button class="uk-button uk-button-mini reject">不同意</button> |
| 10 | 10 | <a class="edit_link" data-id="{{schId}}" data-line="{{data.lineId}}" >编辑</a> |
| 11 | 11 | </div> |
| 12 | + <div style="display:{{isbj == true?'':'none'}}"> | |
| 13 | + <h6 > 车辆事故最近的站点:{{stationName}}</h6> | |
| 14 | + </div> | |
| 15 | + <div class="uk-button-group" style="display:{{isbj == true?'':'none'}}"> | |
| 16 | + <button class="uk-button uk-button-mini qxbc" data-id="{{schId}}" data-line="{{data.lineId}}" data-nextschid="{{nextschId}}">取消班次</button> | |
| 17 | + <button class="uk-button uk-button-mini hrhc" data-id="{{schId}}" data-line="{{data.lineId}}" data-nextschid="{{nextschId}}">换人换车</button> | |
| 18 | + | |
| 19 | + </div> | |
| 20 | + <div class="uk-button-group" style="display:{{isbj == true?'':'none'}}"> | |
| 21 | + <button class="uk-button uk-button-mini zrw" data-id="{{schId}}" data-line="{{data.lineId}}" data-nextschid="{{nextschId}}">临加子任务</button> | |
| 22 | + </div> | |
| 12 | 23 | </div> |
| 13 | 24 | </div> |
| 14 | 25 | </script> | ... | ... |
src/main/resources/static/real_control_v2/js/common.js
| ... | ... | @@ -20,6 +20,10 @@ var gb_common = (function () { |
| 20 | 20 | 0x11: '扣证纠纷', |
| 21 | 21 | 0x12: '报警', |
| 22 | 22 | 0x10: 'SOS', |
| 23 | + 0x21: '单车有人伤', | |
| 24 | + 0x22: '单车无人伤', | |
| 25 | + 0x23: '双车有人伤', | |
| 26 | + 0x24: '双车无人伤', | |
| 23 | 27 | }; |
| 24 | 28 | |
| 25 | 29 | var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '路救抛锚', '无到', '无出', '掉线', '指令故障', '车辆漂移', '其他']; | ... | ... |
src/main/resources/static/real_control_v2/js/line_schedule/context_menu.js
| ... | ... | @@ -27,6 +27,10 @@ var gb_schedule_context_menu = (function () { |
| 27 | 27 | $.get(folder + '/temp_sch/add_normal.html', function (dom) { |
| 28 | 28 | add_sch_doms.normal_dom=dom; |
| 29 | 29 | }); |
| 30 | + | |
| 31 | + $.get(folder + '/temp_sch/add_normal_recoder.html', function (dom) { | |
| 32 | + add_sch_doms.normal_recoder_dom=dom; | |
| 33 | + }); | |
| 30 | 34 | $.get(folder + '/temp_sch/add_two_way.html', function (dom) { |
| 31 | 35 | add_sch_doms.two_way_dom=dom; |
| 32 | 36 | }); | ... | ... |
src/main/resources/static/real_control_v2/js/websocket/sch_websocket.js
| ... | ... | @@ -86,6 +86,17 @@ var gb_sch_websocket = (function () { |
| 86 | 86 | if (!msg.text) |
| 87 | 87 | msg.text = '(未知的请求码 ' + msg.data.requestCode + ')'; |
| 88 | 88 | |
| 89 | + debugger | |
| 90 | + switch (msg.data.requestCode) { | |
| 91 | + //报警请求 | |
| 92 | + case 0x21: | |
| 93 | + case 0x22: | |
| 94 | + case 0x23: | |
| 95 | + case 0x24: | |
| 96 | + msg.isbj = true; | |
| 97 | + break; | |
| 98 | + } | |
| 99 | + | |
| 89 | 100 | var $item = $(temps['sys-note-80-temp'](msg)); |
| 90 | 101 | findMailBox(msg.data.lineId).prepend($item); |
| 91 | 102 | //tts |
| ... | ... | @@ -380,6 +391,7 @@ var gb_sch_websocket = (function () { |
| 380 | 391 | * 信使 sys-note-80 编辑 |
| 381 | 392 | */ |
| 382 | 393 | $(document).on('click', '.sys-note-80 .edit_link', function () { |
| 394 | + | |
| 383 | 395 | var id = $(this).data('id'), |
| 384 | 396 | lineCode = $(this).data('line'); |
| 385 | 397 | |
| ... | ... | @@ -390,6 +402,58 @@ var gb_sch_websocket = (function () { |
| 390 | 402 | gb_schedule_context_menu.fcxxwt(sch); |
| 391 | 403 | }); |
| 392 | 404 | |
| 405 | + | |
| 406 | + | |
| 407 | + /** | |
| 408 | + * 信使 sys-note-80 取消班次 | |
| 409 | + */ | |
| 410 | + $(document).on('click', '.sys-note-80 .qxbc', function () { | |
| 411 | + debugger | |
| 412 | + var nextschId = $(this).data('nextschid'), | |
| 413 | + lineCode = $(this).data('line'); | |
| 414 | + | |
| 415 | + var sch = gb_schedule_table.findScheduleByLine(lineCode)[nextschId]; | |
| 416 | + if(!sch) | |
| 417 | + return; | |
| 418 | + | |
| 419 | + var confirmBtn = $(this).parent().find('.uk-button-primary'); | |
| 420 | + var fun =gb_schedule_context_menu.jhlb; | |
| 421 | + fun(sch, function () { | |
| 422 | + confirmBtn.trigger('click'); | |
| 423 | + }); | |
| 424 | + }); | |
| 425 | + | |
| 426 | + | |
| 427 | + /** | |
| 428 | + * 信使 sys-note-80 换人换车 | |
| 429 | + */ | |
| 430 | + $(document).on('click', '.sys-note-80 .hrhc', function () { | |
| 431 | + debugger | |
| 432 | + var nextschId = $(this).data('nextschid'), | |
| 433 | + lineCode = $(this).data('line'); | |
| 434 | + var sch = gb_schedule_table.findScheduleByLine(lineCode)[nextschId]; | |
| 435 | + if(!sch) | |
| 436 | + return; | |
| 437 | + | |
| 438 | + gb_schedule_context_menu.tzrc(sch); | |
| 439 | + }); | |
| 440 | + | |
| 441 | + | |
| 442 | + /** | |
| 443 | + * 信使 sys-note-80 子任务 | |
| 444 | + */ | |
| 445 | + $(document).on('click', '.sys-note-80 .zrw', function () { | |
| 446 | + debugger | |
| 447 | + var id = $(this).data('id'), | |
| 448 | + lineCode = $(this).data('line'); | |
| 449 | + | |
| 450 | + var sch = gb_schedule_table.findScheduleByLine(lineCode)[id]; | |
| 451 | + if(!sch) | |
| 452 | + return; | |
| 453 | + | |
| 454 | + gb_schedule_context_menu.lj_zrw(sch); | |
| 455 | + }); | |
| 456 | + | |
| 393 | 457 | return { |
| 394 | 458 | sock: function () { |
| 395 | 459 | return schSock; | ... | ... |
src/main/resources/static/real_control_v2/js/zndd/data_zndd.js
src/main/resources/static/real_control_v2/js/zndd/recorder/recorder.js
| ... | ... | @@ -205,7 +205,7 @@ |
| 205 | 205 | sch.zdzCode = responseText[3]; |
| 206 | 206 | sch.xlDir = responseText[4]; |
| 207 | 207 | sch.zdsjActual = moment(new Date()).format("HH:mm") |
| 208 | - open_modal(folder + '/temp_sch/main.html', { | |
| 208 | + open_modal(folder + '/temp_sch/main_recorder.html', { | |
| 209 | 209 | sch: sch |
| 210 | 210 | }, modal_opts); |
| 211 | 211 | }); | ... | ... |
src/main/resources/static/real_control_v2/main.html
| ... | ... | @@ -320,6 +320,46 @@ |
| 320 | 320 | </div> |
| 321 | 321 | |
| 322 | 322 | </script> |
| 323 | +<script id="sjZ-divs-temp" type="text/html"> | |
| 324 | + | |
| 325 | + <div class="history" style="margin-top:50px;height: 450px;overflow-y: scroll"> | |
| 326 | + <div class="history-date" STYLE="padding-top:10px;"> | |
| 327 | + <ul> | |
| 328 | + <li> | |
| 329 | + <h3>{{rq1}}<span>{{rqStr}}</span></h3> | |
| 330 | + <dl> | |
| 331 | + <dt>检测到异常情况</dt> | |
| 332 | + </dl> | |
| 333 | + </li> | |
| 334 | + </ul> | |
| 335 | + <ul> | |
| 336 | + <li> | |
| 337 | + <h3>{{rq2}}<span>{{rqStr}}</></h3> | |
| 338 | + <dl> | |
| 339 | + <dt>推送到线调页面</dt> | |
| 340 | + </dl> | |
| 341 | + </li> | |
| 342 | + </ul> | |
| 343 | + <ul> | |
| 344 | + <li> | |
| 345 | + <h3>{{rq2}}<span>{{rqStr}}</span></h3> | |
| 346 | + <dl> | |
| 347 | + <dt>生成配置调度工具</dt> | |
| 348 | + </dl> | |
| 349 | + </li> | |
| 350 | + </ul> | |
| 351 | + <ul> | |
| 352 | + <li> | |
| 353 | + <h3>{{rq2}}<span>{{rqStr}}</span></h3> | |
| 354 | + <dl> | |
| 355 | + <dt>生成最佳处置方式</dt> | |
| 356 | + </dl> | |
| 357 | + </li> | |
| 358 | + </ul> | |
| 359 | + </div> | |
| 360 | + </div> | |
| 361 | +</script> | |
| 362 | + | |
| 323 | 363 | <div class="multi_plat_msg_pop_zndd"> |
| 324 | 364 | <!--<div id="timer"></div>--> |
| 325 | 365 | </div> | ... | ... |
src/main/resources/static/real_control_v2/zndd/type/djg1.html
| 1 | 1 | <div class="uk-modal ct-form-modal ct_move_modal" id="schedule-addsch-modal"> |
| 2 | - <div class="uk-modal-dialog" style="width: 1400px;"> | |
| 2 | + <div class="uk-modal-dialog" style="width: 1500px;"> | |
| 3 | 3 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | 4 | <div class="uk-modal-header"> |
| 5 | 5 | <h2>新增临加班次</h2></div> |
| 6 | - <div class="uk-grid uk-width-2-5" style="float: left"> | |
| 6 | + | |
| 7 | + <div class="uk-grid uk-width-1-6" style="float: left"> | |
| 8 | + <div class="uk-width-5-5 sjzlist"> | |
| 9 | + | |
| 10 | + </div> | |
| 11 | + </div> | |
| 12 | + <div class="uk-grid uk-width-2-6" style="float: left"> | |
| 7 | 13 | <div class="uk-width-5-5"> |
| 8 | 14 | <form class="uk-form uk-form-horizontal"> </form> |
| 9 | 15 | <div> |
| ... | ... | @@ -12,7 +18,7 @@ |
| 12 | 18 | </div> |
| 13 | 19 | </div> |
| 14 | 20 | </div> |
| 15 | - <div class="uk-grid uk-width-3-5 lj_1" > | |
| 21 | + <div class="uk-grid uk-width-3-6 lj_1" > | |
| 16 | 22 | <div class="uk-width-1-4"> |
| 17 | 23 | <ul data-uk-switcher="{connect:'#tempScheduleContent'}" class="uk-nav uk-nav-side left_tabs_lg"> |
| 18 | 24 | |
| ... | ... | @@ -31,7 +37,7 @@ |
| 31 | 37 | </div> |
| 32 | 38 | </div> |
| 33 | 39 | |
| 34 | - <div class="uk-grid uk-width-3-5 lj_2" style="display: none; padding-left: 100px"> | |
| 40 | + <div class="uk-grid uk-width-3-6 lj_2" style="display: none; padding-left: 100px"> | |
| 35 | 41 | <div class="uk-width-1-1" id ="tempsdsf"></div> |
| 36 | 42 | |
| 37 | 43 | </div> |
| ... | ... | @@ -51,7 +57,10 @@ |
| 51 | 57 | var formHtml = template('djg-form-temp', sch); |
| 52 | 58 | $('form', modal).html(formHtml); |
| 53 | 59 | //切换 |
| 54 | - | |
| 60 | + sch.rq1 =moment(new Date().getTime() - (60 *1000)).format("HH:mm"); | |
| 61 | + sch.rq2 =moment(new Date()).format("HH:mm") | |
| 62 | + var formHtmls = template('sjZ-divs-temp', sch); | |
| 63 | + $('.sjzlist', modal).html(formHtmls); | |
| 55 | 64 | |
| 56 | 65 | |
| 57 | 66 | ... | ... |
src/main/resources/static/real_control_v2/zndd/type/dkl.html
| ... | ... | @@ -3,7 +3,12 @@ |
| 3 | 3 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | 4 | <div class="uk-modal-header"> |
| 5 | 5 | <h2>新增临加班次<i class="uk-icon-question-circle uk-icon-hover"></i></h2></div> |
| 6 | - <div class="uk-grid uk-width-2-5" style="float: left"> | |
| 6 | + <div class="uk-grid uk-width-1-6" style="float: left"> | |
| 7 | + <div class="uk-width-5-5 sjzlist"> | |
| 8 | + | |
| 9 | + </div> | |
| 10 | + </div> | |
| 11 | + <div class="uk-grid uk-width-2-6" style="float: left"> | |
| 7 | 12 | <div class="uk-width-5-5"> |
| 8 | 13 | <form class="uk-form uk-form-horizontal"> </form> |
| 9 | 14 | <div> |
| ... | ... | @@ -12,7 +17,7 @@ |
| 12 | 17 | </div> |
| 13 | 18 | </div> |
| 14 | 19 | </div> |
| 15 | - <div class="uk-grid uk-width-3-5 lj_1" > | |
| 20 | + <div class="uk-grid uk-width-3-6 lj_1" > | |
| 16 | 21 | <div class="uk-width-1-4"> |
| 17 | 22 | <ul data-uk-switcher="{connect:'#tempScheduleContent'}" class="uk-nav uk-nav-side left_tabs_lg"> |
| 18 | 23 | <li data-handle="toAndFro"><a>1、往返</a></li> |
| ... | ... | @@ -29,7 +34,7 @@ |
| 29 | 34 | </div> |
| 30 | 35 | </div> |
| 31 | 36 | |
| 32 | - <div class="uk-grid uk-width-3-5 lj_2" style="display: none; padding-left: 100px"> | |
| 37 | + <div class="uk-grid uk-width-3-6 lj_2" style="display: none; padding-left: 100px"> | |
| 33 | 38 | <div class="uk-width-1-1" id ="tempsdsf"></div> |
| 34 | 39 | |
| 35 | 40 | </div> |
| ... | ... | @@ -48,9 +53,11 @@ |
| 48 | 53 | |
| 49 | 54 | var formHtml = template('djg-form-temp', sch); |
| 50 | 55 | $('form', modal).html(formHtml); |
| 51 | - //切换 | |
| 52 | - | |
| 53 | 56 | |
| 57 | + sch.rq1 =moment(new Date().getTime() - (60 *1000)).format("HH:mm"); | |
| 58 | + sch.rq2 =moment(new Date()).format("HH:mm") | |
| 59 | + var formHtmls = template('sjZ-divs-temp', sch); | |
| 60 | + $('.sjzlist', modal).html(formHtmls); | |
| 54 | 61 | |
| 55 | 62 | |
| 56 | 63 | ... | ... |
src/main/resources/static/real_control_v2/zndd/type/fcjg.html
| 1 | 1 | <div class="uk-modal ct-form-modal ct_move_modal" id="schedule-addsch-modal"> |
| 2 | - <div class="uk-modal-dialog" style="width: 920px;"> | |
| 2 | + <div class="uk-modal-dialog" style="width: 1020px;"> | |
| 3 | 3 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | 4 | <div class="uk-modal-header"> |
| 5 | 5 | <h2>发车间隔</h2></div> |
| 6 | - <div class="uk-grid uk-width-3-5" style="float: left"> | |
| 6 | + | |
| 7 | + <div class="uk-grid uk-width-1-6" style="float: left"> | |
| 8 | + <div class="uk-width-5-5 sjzlist"> | |
| 9 | + | |
| 10 | + </div> | |
| 11 | + </div> | |
| 12 | + <div class="uk-grid uk-width-3-6" style="float: left"> | |
| 7 | 13 | <div class="uk-width-5-5"> |
| 8 | 14 | <form class="uk-form uk-form-horizontal"> </form> |
| 9 | 15 | <div> |
| ... | ... | @@ -13,13 +19,13 @@ |
| 13 | 19 | </div> |
| 14 | 20 | </div> |
| 15 | 21 | |
| 16 | - <div class="uk-grid uk-width-2-5 lj_2" style="padding-left: 100px"> | |
| 22 | + <div class="uk-grid uk-width-2-6 lj_2" style="padding-left: 100px"> | |
| 17 | 23 | <div class="uk-width-1-1" id ="tempsdsf"></div> |
| 18 | 24 | |
| 19 | 25 | </div> |
| 20 | 26 | |
| 21 | 27 | |
| 22 | - <div class="uk-grid uk-width-2-5 lj_1" style="padding-left: 100px"> | |
| 28 | + <div class="uk-grid uk-width-2-6 lj_1" style="padding-left: 100px"> | |
| 23 | 29 | <div class="uk-width-1-1" id ="tempcjs"></div> |
| 24 | 30 | |
| 25 | 31 | </div> |
| ... | ... | @@ -41,7 +47,10 @@ |
| 41 | 47 | var formHtml = template('djg-form-temp', sch); |
| 42 | 48 | $('form', modal).html(formHtml); |
| 43 | 49 | //切换 |
| 44 | - | |
| 50 | + sch.rq1 =moment(new Date().getTime() - (60 *1000)).format("HH:mm"); | |
| 51 | + sch.rq2 =moment(new Date()).format("HH:mm") | |
| 52 | + var formHtmls = template('sjZ-divs-temp', sch); | |
| 53 | + $('.sjzlist', modal).html(formHtmls); | |
| 45 | 54 | |
| 46 | 55 | |
| 47 | 56 | $.get('/lineConfig/getByLineCode', {lineCode: sch.lineCode}, function (datan) { | ... | ... |
src/main/resources/static/real_control_v2/zndd/type/mz.html
| 1 | 1 | <div class="uk-modal ct-form-modal ct_move_modal" id="schedule-addsch-modal"> |
| 2 | - <div class="uk-modal-dialog" style="width: 1400px;"> | |
| 2 | + <div class="uk-modal-dialog" style="width: 1500px;"> | |
| 3 | 3 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | 4 | <div class="uk-modal-header"> |
| 5 | 5 | <h2>满载</h2></div> |
| 6 | - <div class="uk-grid uk-width-2-5" style="float: left"> | |
| 6 | + | |
| 7 | + <div class="uk-grid uk-width-1-6" style="float: left"> | |
| 8 | + <div class="uk-width-5-5 sjzlist"> | |
| 9 | + | |
| 10 | + </div> | |
| 11 | + </div> | |
| 12 | + | |
| 13 | + <div class="uk-grid uk-width-2-6" style="float: left"> | |
| 7 | 14 | <div class="uk-width-5-5"> |
| 8 | 15 | <form class="uk-form uk-form-horizontal"> </form> |
| 9 | 16 | <div> |
| ... | ... | @@ -12,7 +19,7 @@ |
| 12 | 19 | </div> |
| 13 | 20 | </div> |
| 14 | 21 | </div> |
| 15 | - <div class="uk-grid uk-width-3-5 lj_1" > | |
| 22 | + <div class="uk-grid uk-width-3-6 lj_1" > | |
| 16 | 23 | <div class="uk-width-1-4"> |
| 17 | 24 | <ul data-uk-switcher="{connect:'#tempScheduleContent'}" class="uk-nav uk-nav-side left_tabs_lg"> |
| 18 | 25 | <li data-handle="toAndFro"><a>1、往返</a></li> |
| ... | ... | @@ -53,6 +60,12 @@ |
| 53 | 60 | sch.stopStation = route[route.length - 1]; |
| 54 | 61 | var formHtml = template('djg-form-temp', sch); |
| 55 | 62 | $('form', modal).html(formHtml); |
| 63 | + | |
| 64 | + sch.rq1 =moment(new Date().getTime() - (60 *1000)).format("HH:mm"); | |
| 65 | + sch.rq2 =moment(new Date()).format("HH:mm") | |
| 66 | + var formHtmls = template('sjZ-divs-temp', sch); | |
| 67 | + $('.sjzlist', modal).html(formHtmls); | |
| 68 | + | |
| 56 | 69 | //切换 |
| 57 | 70 | $("#destroySelect").on('change',function(){ |
| 58 | 71 | let fn = $('#destroySelect').val(); |
| ... | ... | @@ -384,7 +397,6 @@ |
| 384 | 397 | })(); |
| 385 | 398 | </script> |
| 386 | 399 | </div> |
| 387 | - | |
| 388 | 400 | <script id="djg-form-temp" type="text/html"> |
| 389 | 401 | <input type="hidden" name="id" value=""/> |
| 390 | 402 | ... | ... |
src/main/resources/static/real_control_v2/zndd/type/sftz_1.html
| ... | ... | @@ -3,7 +3,19 @@ |
| 3 | 3 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | 4 | <div class="uk-modal-header"> |
| 5 | 5 | <h2>实发未发<i class="uk-icon-question-circle uk-icon-hover"></i></h2></div> |
| 6 | - <form class="uk-form uk-form-horizontal"> </form> | |
| 6 | + <div class="uk-grid uk-width-1-5" style="float: left"> | |
| 7 | + <div class="uk-width-5-5 sjzlist"> | |
| 8 | + | |
| 9 | + </div> | |
| 10 | + </div> | |
| 11 | + | |
| 12 | + <div class="uk-grid uk-width-4-5" > | |
| 13 | + <div class="uk-width-5-5"> | |
| 14 | + <form class="uk-form uk-form-horizontal"> </form> | |
| 15 | + </div> | |
| 16 | + | |
| 17 | + </div> | |
| 18 | + | |
| 7 | 19 | </div> |
| 8 | 20 | |
| 9 | 21 | <script> |
| ... | ... | @@ -27,12 +39,13 @@ |
| 27 | 39 | sch.stopStation = route[route.length - 1]; |
| 28 | 40 | var formHtml = template('sftz-form-temp',{sch: sch, reportTypes:reportTypes}); |
| 29 | 41 | $('form', modal).html(formHtml); |
| 30 | - | |
| 31 | - //frequent_phrases.init(modal); | |
| 32 | - | |
| 33 | - | |
| 34 | - | |
| 35 | - | |
| 42 | + | |
| 43 | + sch.rq1 =moment(new Date().getTime() - (60 *1000)).format("HH:mm"); | |
| 44 | + sch.rq2 =moment(new Date()).format("HH:mm") | |
| 45 | + var formHtmls = template('sjZ-divs-temp', sch); | |
| 46 | + $('.sjzlist', modal).html(formHtmls); | |
| 47 | + | |
| 48 | + | |
| 36 | 49 | f.formValidation(gb_form_validation_opts); |
| 37 | 50 | f.on('success.form.fv', function(e) { |
| 38 | 51 | debugger | ... | ... |
src/main/resources/static/real_control_v2/zndd/type/wd.html
| 1 | 1 | <div class="uk-modal ct-form-modal ct_move_modal" id="wd-addsch-modal"> |
| 2 | - <div class="uk-modal-dialog" style="width: 850px;"> | |
| 2 | + <div class="uk-modal-dialog" style="width: 1050px;"> | |
| 3 | 3 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | 4 | <div class="uk-modal-header"> |
| 5 | 5 | <h2>误点<i class="uk-icon-question-circle uk-icon-hover"></i></h2></div> |
| 6 | 6 | |
| 7 | - <div class="uk-grid uk-width-3-5 lj_1" style="float: left"> | |
| 7 | + | |
| 8 | + <div class="uk-grid uk-width-1-6" style="float: left"> | |
| 9 | + <div class="uk-width-5-5 sjzlist"> | |
| 10 | + | |
| 11 | + </div> | |
| 12 | + </div> | |
| 13 | + | |
| 14 | + <div class="uk-grid uk-width-3-6 lj_1" style="float: left"> | |
| 8 | 15 | <form class="uk-form uk-form-horizontal"> </form> |
| 9 | 16 | </div> |
| 10 | 17 | |
| 11 | 18 | |
| 12 | 19 | |
| 13 | - <div class="uk-grid uk-width-2-5 lj_2" style="padding-left: 100px"> | |
| 20 | + <div class="uk-grid uk-width-2-6 lj_2" style="padding-left: 100px"> | |
| 14 | 21 | <div class="uk-width-1-1" id ="tempsdsf"></div> |
| 15 | 22 | |
| 16 | 23 | </div> |
| ... | ... | @@ -36,6 +43,10 @@ |
| 36 | 43 | sch.stopStation = route[route.length - 1]; |
| 37 | 44 | var formHtml = template('wd-form-temp', sch); |
| 38 | 45 | $('form', modal).html(formHtml); |
| 46 | + sch.rq1 =moment(new Date().getTime() - (60 *1000)).format("HH:mm"); | |
| 47 | + sch.rq2 =moment(new Date()).format("HH:mm") | |
| 48 | + var formHtmls = template('sjZ-divs-temp', sch); | |
| 49 | + $('.sjzlist', modal).html(formHtmls); | |
| 39 | 50 | //车辆信息 |
| 40 | 51 | carsArray = gb_data_basic.carsArray(); |
| 41 | 52 | initAutoCom(f); |
| ... | ... | @@ -60,7 +71,7 @@ |
| 60 | 71 | e.preventDefault(); |
| 61 | 72 | var data = $(this).serializeJSON(); |
| 62 | 73 | let fn = $('#destroySelect').val(); |
| 63 | - debugger | |
| 74 | + | |
| 64 | 75 | if (fn == "1"){ |
| 65 | 76 | //调整人员车辆 |
| 66 | 77 | let datas = { | ... | ... |
src/main/resources/static/real_control_v2/zndd/type/ycsf.html
| 1 | 1 | <div class="uk-modal ct-form-modal ct_move_modal" id="ycsf-addsch-modal"> |
| 2 | + | |
| 2 | 3 | <div class="uk-modal-dialog" style="width: 850px;"> |
| 3 | 4 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | 5 | <div class="uk-modal-header"> |
| 5 | 6 | <h2>异常实发<i class="uk-icon-question-circle uk-icon-hover"></i></h2></div> |
| 6 | - <form class="uk-form uk-form-horizontal"> </form> | |
| 7 | + | |
| 8 | + <div class="uk-grid uk-width-1-5" style="float: left"> | |
| 9 | + <div class="uk-width-5-5 sjzlist"> | |
| 10 | + | |
| 11 | + </div> | |
| 12 | + </div> | |
| 13 | + <div class="uk-grid uk-width-4-5" > | |
| 14 | + | |
| 15 | + <div class="uk-width-5-5"> | |
| 16 | + <form class="uk-form uk-form-horizontal"> </form> | |
| 17 | + </div> | |
| 18 | + | |
| 19 | + </div> | |
| 20 | + | |
| 7 | 21 | </div> |
| 8 | 22 | |
| 9 | 23 | <script> |
| ... | ... | @@ -26,13 +40,18 @@ |
| 26 | 40 | sch.stopStation = route[route.length - 1]; |
| 27 | 41 | var formHtml = template('ycsf-form-temp', sch); |
| 28 | 42 | $('form', modal).html(formHtml); |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + sch.rq1 =moment(new Date().getTime() - (60 *1000)).format("HH:mm"); | |
| 47 | + sch.rq2 =moment(new Date()).format("HH:mm") | |
| 48 | + var formHtmls = template('sjZ-divs-temp', sch); | |
| 49 | + $('.sjzlist', modal).html(formHtmls); | |
| 29 | 50 | |
| 30 | 51 | f.formValidation(gb_form_validation_opts); |
| 31 | 52 | f.on('success.form.fv', function(e) { |
| 32 | - debugger | |
| 33 | 53 | e.preventDefault(); |
| 34 | 54 | var data = $(this).serializeJSON(); |
| 35 | - debugger | |
| 36 | 55 | |
| 37 | 56 | gb_common.$post('/realSchedule/revokeRealOutgo_zndd', { |
| 38 | 57 | id: sch.sch.id, | ... | ... |
src/main/resources/static/real_control_v2/zndd/yanshi/static/css/sjz.css
| ... | ... | @@ -50,7 +50,7 @@ |
| 50 | 50 | .history-date ul li { |
| 51 | 51 | background:url(../image/yes.png) no-repeat 180px 0; |
| 52 | 52 | background-size: 15px 15px; |
| 53 | - padding-bottom:50px; | |
| 53 | + padding-bottom:10px; | |
| 54 | 54 | zoom:1; |
| 55 | 55 | } |
| 56 | 56 | .history-date ul li.last { |
| ... | ... | @@ -65,8 +65,8 @@ |
| 65 | 65 | } |
| 66 | 66 | .history-date ul li h3 { |
| 67 | 67 | float:left; |
| 68 | - width:20%; | |
| 69 | - text-align:right; | |
| 68 | + /*width:20%; | |
| 69 | + text-align:right;*/ | |
| 70 | 70 | padding-right:19px; |
| 71 | 71 | color:#c3c3c3; |
| 72 | 72 | font:normal 18px/16px Arial; |
| ... | ... | @@ -77,14 +77,14 @@ |
| 77 | 77 | font-size:12px; |
| 78 | 78 | } |
| 79 | 79 | .history-date ul li dl { |
| 80 | - width: 70%; | |
| 80 | + /*width: 70%;*/ | |
| 81 | 81 | float:left; |
| 82 | - padding-left:41px; | |
| 82 | +/* padding-left:41px;*/ | |
| 83 | 83 | margin-top:-5px; |
| 84 | 84 | font-family:微软雅黑; |
| 85 | 85 | } |
| 86 | 86 | .history-date ul li dl dt { |
| 87 | - font:20px/22px 微软雅黑; | |
| 87 | + /*font:20px/22px 微软雅黑;*/ | |
| 88 | 88 | color:#737373; |
| 89 | 89 | } |
| 90 | 90 | .history-date ul li dl dt span { | ... | ... |