Commit 5e947ca0327d4409fbb6f71db3031feb8d28863a

Authored by 潘钊
1 parent 93dd3f05

update...

src/main/java/com/bsth/controller/realcontrol/LineConfigController.java
... ... @@ -54,8 +54,8 @@ public class LineConfigController extends BaseController<LineConfig, Integer>{
54 54 * @return
55 55 */
56 56 @RequestMapping(value = "/editOutTimeType", method = RequestMethod.POST)
57   - public Map<String, Object> editOutTimeType(@RequestParam String lineCode, @RequestParam int type){
58   - return lineConfigService.editOutTimeType(lineCode, type);
  57 + public Map<String, Object> editOutTimeType(@RequestParam String lineCode, @RequestParam int type,@RequestParam String parkCode,@RequestParam String stationCode){
  58 + return lineConfigService.editOutTimeType(lineCode, type, parkCode, stationCode);
59 59 }
60 60  
61 61 /**
... ...
src/main/java/com/bsth/data/LineConfigData.java
... ... @@ -65,7 +65,7 @@ public class LineConfigData implements CommandLineRunner {
65 65 public long applyOut(ScheduleRealInfo sch, Long timestamp) {
66 66 LineConfig config = lineConfMap.get(sch.getXlBm());
67 67 int diff = sch.getXlDir()=="0"?config.getUpOutDiff():config.getDownOutDiff();
68   - return timestamp - (diff * 60 * 1000);
  68 + return timestamp - (diff * 1000);
69 69 }
70 70  
71 71 /**
... ... @@ -77,7 +77,7 @@ public class LineConfigData implements CommandLineRunner {
77 77 public long applyIn(ScheduleRealInfo sch, Long timestamp){
78 78 LineConfig config = lineConfMap.get(sch.getXlBm());
79 79 int diff = sch.getXlDir()=="0"?config.getUpInDiff():config.getDownInDiff();
80   - return timestamp - (diff * 60 * 1000);
  80 + return timestamp - (diff * 1000);
81 81 }
82 82  
83 83 @Component
... ...
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
... ... @@ -50,6 +50,9 @@ public class LineConfig {
50 50 /** 出站既出场 对应的停车场 */
51 51 private String twinsPark;
52 52  
  53 + /** 出站既出场 对应的起点站 */
  54 + private String twinsStation;
  55 +
53 56 /** 短语模板 , 号分隔多个 */
54 57 private String phraseTemps;
55 58  
... ... @@ -268,4 +271,12 @@ public class LineConfig {
268 271 public void setEnableYjtk(boolean enableYjtk) {
269 272 this.enableYjtk = enableYjtk;
270 273 }
  274 +
  275 + public String getTwinsStation() {
  276 + return twinsStation;
  277 + }
  278 +
  279 + public void setTwinsStation(String twinsStation) {
  280 + this.twinsStation = twinsStation;
  281 + }
271 282 }
... ...
src/main/java/com/bsth/service/realcontrol/LineConfigService.java
... ... @@ -13,7 +13,7 @@ public interface LineConfigService extends BaseService&lt;LineConfig, Integer&gt;{
13 13  
14 14 Map<String, Object> editStartOptTime(String time, String lineCode);
15 15  
16   - Map<String, Object> editOutTimeType(String lineCode, int type);
  16 + Map<String, Object> editOutTimeType(String lineCode, int type, String parkCode, String stationCode);
17 17  
18 18 LineConfig getByLineCode(String lineCode);
19 19  
... ...
src/main/java/com/bsth/service/realcontrol/impl/LineConfigServiceImpl.java
... ... @@ -75,17 +75,20 @@ public class LineConfigServiceImpl extends BaseServiceImpl&lt;LineConfig, Integer&gt;
75 75 }
76 76  
77 77 @Override
78   - public Map<String, Object> editOutTimeType(String lineCode, int type) {
  78 + public Map<String, Object> editOutTimeType(String lineCode, int type, String parkCode, String stationCode) {
79 79 Map<String, Object> rs = new HashMap<>();
80 80 try {
81 81 LineConfig conf = lineConfigData.get(lineCode);
82 82  
83 83 conf.setOutConfig(type);
84   - //conf.setInConfig(type);
  84 + if(type == 2){
  85 + conf.setTwinsPark(parkCode);
  86 + conf.setTwinsStation(stationCode);
  87 + }
85 88 lineConfigData.set(conf);
86 89  
87 90 rs.put("status", ResponseCode.SUCCESS);
88   - rs.put("type", type);
  91 + rs.put("conf", conf);
89 92 } catch (Exception e) {
90 93 rs.put("status", ResponseCode.ERROR);
91 94 rs.put("msg", e.getMessage());
... ...
src/main/resources/static/pages/permission/user/controlAllot.html
... ... @@ -35,7 +35,7 @@
35 35 <div style="border: 1px solid #cccbcb;height: 190px;position: relative;">
36 36 <span style="display: block;margin: 10px;color: grey;">已分配的线路</span>
37 37  
38   - <div class="line-list" style="height: 110px;">
  38 + <div class="line-list" style="height: 110px;overflow: auto;padding: 9px;">
39 39 </div>
40 40  
41 41 <div style="padding-left: 8px;">
... ...
src/main/resources/static/real_control_v2/css/main.css
... ... @@ -899,4 +899,28 @@ option.oil_station_opt{
899 899  
900 900 #oil_station-modal .uk-modal .uk-form.fv-form{
901 901 margin-bottom: 0 !important;
  902 +}
  903 +
  904 +#gb_wait_modal .uk-modal-spinner{
  905 + top: 25px;
  906 + -webkit-transform: translate(-50%,0);
  907 + transform: translate(-50%,0);
  908 +}
  909 +
  910 +#gb_wait_modal .wait-modal-text{
  911 + text-align: center;
  912 + margin-top: 35px;
  913 + font-size: 15px;
  914 + color: #635e5e;
  915 +}
  916 +
  917 +.park-and-station-wrap{
  918 + margin-top: 9px;
  919 + border: 1px solid #3dce69;
  920 + width: 470px;
  921 + padding: 12px;
  922 + border-radius: 5px;
  923 +}
  924 +.park-and-station-wrap select{
  925 + width: auto !important;
902 926 }
903 927 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/line_config/buffer_config.html
... ... @@ -34,7 +34,7 @@
34 34 <i class="uk-icon-pencil edit-icon"></i>
35 35 </div>
36 36 </form>
37   - <a style="font-size: 80%;">编辑电子围栏</a>
  37 + <!--<a style="font-size: 80%;">编辑电子围栏</a>-->
38 38 </div>
39 39 </div>
40 40  
... ... @@ -139,6 +139,11 @@
139 139 function enableYjtkForm() {
140 140 var f = $('form[name=yjtkForm]', wrap);
141 141 $('input', f).removeAttr('disabled');
  142 + //开始时间
  143 + if($('[name=yjtkStart]',f).val() == '')
  144 + $('[name=yjtkStart]',f).val('00:00');
  145 + if($('[name=yjtkEnd]',f).val() == '')
  146 + $('[name=yjtkEnd]',f).val('23:59');
142 147  
143 148 var data = f.serializeJSON();
144 149 data.lineCode = conf.line.lineCode;
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/line_config/line_config.html
... ... @@ -22,10 +22,9 @@
22 22 <li><a data-href="#schedule_reload_time_panel" >班次更新时间</a></li>
23 23 <li><a data-href="#out_time_type_panel" >出场时间类型</a></li>
24 24 <li><a data-href="#in_park_source_panel" >原线路回场</a></li>
25   - <li><a>到站缓冲区设置</a></li>
26   - <li><a>应急停靠</a></li>
27   - <li><a>社会加油站</a></li>
28   - <li><a class="disabled">漂移判定</a></li>
  25 + <li><a data-href="#buffer_inOut_diff_panel">到站缓冲区设置</a></li>
  26 + <li><a data-href="#emergency_stop_panel">应急停靠</a></li>
  27 + <li><a class="disabled">社会加油站</a></li>
29 28 <li><a class="disabled">到离站预测</a></li>
30 29 <li><a class="disabled">挂牌时刻表</a></li>
31 30 </ul>
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/line_config/line_config_entity.html
... ... @@ -40,6 +40,8 @@
40 40 <option {{if outConfig==2}}selected{{/if}} value=2>出站既出场</option>
41 41 </select>
42 42 时间作为进出场班次的实际时间
  43 + <div class="park-and-station-wrap">
  44 + </div>
43 45 <ul class="uk-list">
44 46 <li>
45 47 <small>1、【GPS出场】 使用GPS信号捕获出场时间</small>
... ... @@ -48,7 +50,7 @@
48 50 <small>2、【请求出场】 驾驶员请求出场,调度员同意后,取请求时间作为出场时间。如无请求出场,则捕获GPS时间。</small>
49 51 </li>
50 52 <li>
51   - <small>3、【出站既出场】 忽略出场班次,以头班车的发车时间作为出场时间,场既是站或停车场与起点站距离很近时推荐此项。</small>
  53 + <small>3、【出站既出场】 忽略出场班次,以头班车的发车时间作为出场时间。</small>
52 54 </li>
53 55 </ul>
54 56 </div>
... ... @@ -76,10 +78,26 @@
76 78 </div>
77 79 </div>
78 80 </script>
  81 +
  82 + <script id="park-and-station-temp" type="text/html">
  83 + 场
  84 + <select class="z-depth-input">
  85 + {{each parks as p i}}
  86 + <option value="{{p.code}}" {{if p.code==conf.twinsPark}}selected{{/if}}>{{p.name}}</option>
  87 + {{/each}}
  88 + </select>
  89 + 既是站
  90 + <select class="z-depth-input">
  91 + {{each routes as r i}}
  92 + <option value="{{r.stationCode}}" {{if r.stationCode==conf.twinsStation}}selected{{/if}}>{{r.stationName}}
  93 + </option>
  94 + {{/each}}
  95 + </select>
  96 + </script>
79 97 <script>
80 98 (function () {
81 99  
82   - var wrap = '#line_config_entity_wrap', conf;
  100 + var wrap = '#line_config_entity_wrap', conf, parks, upStationRoutes;
83 101  
84 102 /**
85 103 * 删除实际排班
... ... @@ -87,14 +105,16 @@
87 105 var clearRealSchedule = function (e) {
88 106 e.stopPropagation();
89 107 var lineCode = conf.line.lineCode;
90   - var htmlStr = '<h4 style="color: red;">你确定要删除【' + conf.line.name + '】今日的实际排班?</h4><h5>人车、路牌、待发等相关班次调整信息会被删除。</h5><h5>调度指令和期间与设备的通讯记录被保留</h5><h5>后台日志中的人工操作痕迹被保留</h5>';
  108 + var htmlStr = '<h4 style="color: red;">你确定要删除【' + conf.line.name + '】今日的实际排班?</h4><h5 style="margin-top: 15px;">今日的实际排班会被删除</h5><h5 style="margin-top: 15px;">人车、路牌、待发等相关班次调整信息会被删除。</h5><h5 style="margin-top: 15px;">调度指令和期间与设备的通讯记录被保留</h5><h5 style="margin-top: 15px;">后台日志中的人工操作痕迹被保留</h5>';
91 109 alt_confirm(htmlStr, function () {
  110 + show_wait_modal('正在清除数据...');
92 111 gb_common.$post('/realSchedule/deleteRealSchedule', {lineCode: lineCode}, function () {
93 112 //刷新班次表格
94 113 gb_schedule_table.reLoadAndRefresh(lineCode);
  114 + hide_wait_modal();
95 115 notify_succ('删除班次成功!!!');
96 116 });
97   - }, '确认删除' + conf.line.name + '的实际排班');
  117 + }, '确认删除' + conf.line.name + '的实际排班', true);
98 118  
99 119 return false;
100 120 };
... ... @@ -105,9 +125,11 @@
105 125 var reLoadRealSchedule = function (e) {
106 126 e.stopPropagation();
107 127 var lineCode = conf.line.lineCode;
  128 + show_wait_modal('正在重载数据...');
108 129 gb_common.$post('/realSchedule/reLoadRealSchedule', {lineCode: lineCode}, function () {
109 130 //刷新班次表格
110 131 gb_schedule_table.reLoadAndRefresh(lineCode);
  132 + hide_wait_modal();
111 133 notify_succ('重新载入班次成功');
112 134 });
113 135 return false;
... ... @@ -116,6 +138,18 @@
116 138 $(wrap).on('init', function (e, data) {
117 139 e.stopPropagation();
118 140 conf = data.lineConfig;
  141 + //停车场
  142 + $.get('/basic/parks', function (rs) {
  143 + parks = [];
  144 + for (var code in rs) {
  145 + parks.push({code: code, name: rs[code]});
  146 + }
  147 + renderPSDom();
  148 + });
  149 + //上行站点路由
  150 + upStationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(conf.line.lineCode).sort(function (a, b) {
  151 + return a.stationRouteCode - b.stationRouteCode;
  152 + }), 'directions')[0];
119 153  
120 154 var htmlStr = template('line_config_entity_form-temp', conf);
121 155 $('form', wrap).html(htmlStr);
... ... @@ -135,14 +169,18 @@
135 169  
136 170 //更新排班时间
137 171 var startOptFlag;
  172 +
138 173 function updateStartTime() {
139   - if (startOptFlag || $(this).val()==conf.startOpt)
  174 + if (startOptFlag || $(this).val() == conf.startOpt)
140 175 return;
141 176 startOptFlag = true;
142 177 var that = this;
143 178 setTimeout(function () {
144 179 var timeStr = $(that).val();
145   - gb_common.$post('/lineConfig/editTime', {lineCode: conf.line.lineCode, time: timeStr}, function (rs) {
  180 + gb_common.$post('/lineConfig/editTime', {
  181 + lineCode: conf.line.lineCode,
  182 + time: timeStr
  183 + }, function (rs) {
146 184 notify_succ('班次更新时间调整为 ' + timeStr);
147 185 conf.startOpt = rs.time;
148 186 });
... ... @@ -152,19 +190,53 @@
152 190  
153 191 function updateOutParkType() {
154 192 var type = $(this).val();
155   - gb_common.$post('/lineConfig/editOutTimeType', {lineCode: conf.line.lineCode, type: type}, function () {
  193 + var lineCode = conf.line.lineCode;
  194 +
  195 + var data = {lineCode: lineCode, type: type, parkCode: '', stationCode: ''};
  196 + //出站既是出场
  197 + if (type == 2) {
  198 + //默认关联 线路标准停车场
  199 + data.parkCode = gb_data_basic.getLineInformation(lineCode).carPark;
  200 + //和上行起点站
  201 + data.stationCode = upStationRoutes[0].stationCode;
  202 + }
  203 + gb_common.$post('/lineConfig/editOutTimeType', data, function (rs) {
156 204 notify_succ('调整出场时间类型成功!');
157   - conf.outConfig = type;
  205 + conf = rs.conf;
  206 +
  207 + //渲染场站关联dom
  208 + renderPSDom();
158 209 });
159 210 }
160 211  
161 212 function enableInParkForSource() {
162 213 var enable = $(this).val();
163   - gb_common.$post('/lineConfig/enableInParkForSource', {lineCode: conf.line.lineCode, enable: enable}, function () {
164   - notify_succ((enable==1?'启用':'禁用') + '原线路回场');
  214 + gb_common.$post('/lineConfig/enableInParkForSource', {
  215 + lineCode: conf.line.lineCode,
  216 + enable: enable
  217 + }, function () {
  218 + notify_succ((enable == 1 ? '启用' : '禁用') + '原线路回场');
165 219 conf.inParkForSource = enable;
166 220 });
167 221 }
  222 +
  223 + /**
  224 + * 渲染场既是站dom
  225 + */
  226 + function renderPSDom() {
  227 + var htmlStr = '',
  228 + $panel = $('.park-and-station-wrap', wrap);
  229 + if (conf['outConfig'] == 2) {
  230 + htmlStr = template('park-and-station-temp', {
  231 + parks: parks,
  232 + conf: conf,
  233 + routes: [upStationRoutes[0], upStationRoutes[upStationRoutes.length - 1]]
  234 + });
  235 + $panel.html(htmlStr).show();
  236 + }
  237 + else
  238 + $panel.html('').hide();
  239 + }
168 240 })();
169 241 </script>
170 242 </div>
171 243 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/js/common.js
... ... @@ -91,8 +91,11 @@ var gb_common = (function () {
91 91 return;
92 92 }
93 93  
94   - if (status == 'ERROR')
  94 + if (status == 'ERROR'){
95 95 UIkit.modal.alert(errorHead + (json.msg ? json.msg : '未知异常'), {labels: {Ok: '确定'}});
  96 + //关闭wait窗口
  97 + hide_wait_modal();
  98 + }
96 99 else
97 100 handle && handle(json);
98 101 }
... ... @@ -102,6 +105,8 @@ var gb_common = (function () {
102 105 successHandle(JSON.parse(xhr.responseText), succ);
103 106 } else if (ts == 'error') {
104 107 UIkit.modal.alert(errorHead + xhr.responseText, {labels: {Ok: '确定'}});
  108 + //关闭wait窗口
  109 + hide_wait_modal();
105 110 }
106 111 }
107 112  
... ...
src/main/resources/static/real_control_v2/js/main.js
... ... @@ -62,7 +62,6 @@ var gb_main_ep = new EventProxy(),
62 62 });
63 63  
64 64  
65   -
66 65 $(document).on('click', '.ct-bottom-drawer-close', function () {
67 66 $(this).parents('.ct-bottom-drawer').removeClass('open');
68 67 });
... ... @@ -106,7 +105,7 @@ var notify_err = function (t) {
106 105 });
107 106 };
108 107  
109   -var alt_confirm = function (content, succ, okBtn) {
  108 +var alt_confirm = function (content, succ, okBtn, noCenter) {
110 109 var modalEl = UIkit.modal.confirm(content, function () {
111 110 succ && succ();
112 111 modalEl.hide();
... ... @@ -115,10 +114,31 @@ var alt_confirm = function (content, succ, okBtn) {
115 114 Ok: okBtn,
116 115 Cancel: '取消'
117 116 }
118   - , center: true
  117 + , center: !noCenter
119 118 });
120 119 };
121 120  
  121 +var show_wait_modal = function (text) {
  122 + var modalHtml =
  123 + '<div class="uk-modal" id="gb_wait_modal">' +
  124 + ' <div class="uk-modal-dialog">' +
  125 + ' <div class="uk-modal-spinner"></div>' +
  126 + ' <div class="wait-modal-text">' + text + '</div>' +
  127 + ' </div>' +
  128 + '</div>';
  129 +
  130 + $(document.body).append(modalHtml);
  131 + return UIkit.modal('#gb_wait_modal', {
  132 + bgclose: false,
  133 + modal: false
  134 + }).show();
  135 +};
  136 +
  137 +var hide_wait_modal = function () {
  138 + UIkit.modal('#gb_wait_modal').hide();
  139 +};
  140 +
  141 +
122 142 var isArray = function (obj) {
123 143 return Object.prototype.toString.call(obj) === '[object Array]';
124 144 };
... ...
src/main/resources/static/real_control_v2/mapmonitor/css/real.css
... ... @@ -643,4 +643,10 @@ input[type=checkbox].disabled{
643 643 .uk-button.play-btn[data-type=pause]{
644 644 color: #ff3c3c;
645 645 border: 1px solid #ff3c3c;
  646 +}
  647 +
  648 +#map-playback2-modal .z-depth-viewport{
  649 + padding-top: 15px;
  650 + border-right: 1px solid #d8d7d7;
  651 + box-shadow: 3px 1px 8px 0 rgba(0, 0, 0, 0.12), 1px 0px 8px 0 rgba(0, 0, 0, 0.12);
646 652 }
647 653 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v2/main.html 0 → 100644
  1 +<div class="uk-modal" id="map-playback2-modal">
  2 + <div class="uk-modal-dialog uk-modal-dialog-blank">
  3 + <button class="uk-modal-close uk-close" type="button"></button>
  4 + <div class="uk-grid uk-flex-middle" data-uk-grid-margin>
  5 + <div class="uk-width-medium-1-10 uk-height-viewport z-depth-viewport" >
  6 + </div>
  7 + <div class="uk-width-medium-2-10 uk-height-viewport z-depth-viewport">
  8 + </div>
  9 + <div class="uk-width-medium-7-10 uk-height-viewport">
  10 + </div>
  11 + </div>
  12 + </div>
  13 + <script>
  14 + (function () {
  15 + var modal = '#map-playback2-modal';
  16 + })();
  17 + </script>
  18 +</div>
... ...