Commit bd498804df8913a3a9b8dacdee38d410ed9710d3
1 parent
c13b5e5b
20223-10-09 初步完成考试框架
Showing
19 changed files
with
551 additions
and
456 deletions
README.md
| 1 | -公交调度系统BS版 0.1 | ||
| 2 | -====== | ||
| 3 | ----------- | ||
| 4 | -## 目录 | ||
| 5 | ---------- | ||
| 6 | - * [字典表](#字典表) | ||
| 7 | - * [动态jpa查询实现](#动态jpa查询实现) | ||
| 8 | - * [车载 gps 相关数据](#gps) | ||
| 9 | - * [实时gps数据接口 http](#实时gps接口) | ||
| 10 | - * [进出站数据表结构](#进站数据) | ||
| 11 | - * [异常警报表结构](#异常警报) | ||
| 12 | - * [大间隔](#大间隔) | ||
| 13 | - * [超速](#超速) | ||
| 14 | - * [越界](#越界) | ||
| 15 | - * [越站](#越站) | ||
| 16 | - * [聚集](#聚集) | ||
| 17 | - * [掉线](#掉线) | ||
| 18 | - * [调度消息下发接口HTTP](#调度消息下发接口) | ||
| 19 | - * [调度消息上传接口HTTP](#调度消息上传接口) | ||
| 20 | - * [车辆历史GPS数据](#车辆历史GPS) | ||
| 21 | - | ||
| 22 | ----------- | ||
| 23 | - | ||
| 24 | -## 字典表 | ||
| 25 | ----------- | ||
| 26 | -字典操作全部由前端负责,主要有2种。 | ||
| 27 | - | ||
| 28 | -1、转换字典代码。 | ||
| 29 | - 当pjax的`pjax:success`事件被触发(片段加载完成) | ||
| 30 | - 扫描容器内所有有 `$(".nt-dictionary")` 元素进行字典转换 | ||
| 31 | -``` html | ||
| 32 | ---dom标签为span div p h1 h2 h3 h4 h5 h6 等等文本元素时,如下写法,text为要转换的代码 | ||
| 33 | -<span class="nt-dictionary" data-group="ScheduleType">out</span> | ||
| 34 | ---to | ||
| 35 | -<span>出场</span> | ||
| 36 | - | ||
| 37 | -<!- dom标签为input时,如下 data-code为要转换的代码 --> | ||
| 38 | -<input class="nt-dictionary" data-group="ScheduleType" data-code="out"> | ||
| 39 | ---to | ||
| 40 | -<input value="出场"> | ||
| 41 | - | ||
| 42 | -<!- dom标签为select时 如下 data-code为要选中的项 --> | ||
| 43 | -<select class="nt-dictionary" data-group="ScheduleType" data-code="out"></select> | ||
| 44 | ---to | ||
| 45 | -<select> | ||
| 46 | - <option value="normal">正常班次</option> | ||
| 47 | - <option value="out" selected>出场</option> | ||
| 48 | - <option value="in">进场</option> | ||
| 49 | - <option value="oil">加油</option> | ||
| 50 | - <option value="temp">临加</option> | ||
| 51 | - <option value="region">区间</option> | ||
| 52 | - <option value="venting">放空</option> | ||
| 53 | - <option value="major">放大站</option> | ||
| 54 | -</select> | ||
| 55 | -``` | ||
| 56 | -*原标签的class 除nt-dictionary 外,其余均会被保留* | ||
| 57 | - | ||
| 58 | -2、dictionary.js提供如下方法自行使用 | ||
| 59 | -| 方法名 | 参数|返回| | ||
| 60 | -| ---- | ---- | ---- | ---- | | ||
| 61 | -| groups (获取所有字典组) | 无| | {LineTrend: 线路走向, ScheduleType: 班次类型} | | ||
| 62 | -| getByGroup (获取字典组下的字典)| (group) |{0: 上行, 1: 下行}| | ||
| 63 | -| transformCode (转换字典代码)| (group, code) | 上行 | | ||
| 64 | - | ||
| 65 | -## 动态jpa查询实现 | ||
| 66 | ----------- | ||
| 67 | -*参考调度系统枚举com.bsth.entity.search.SearchOperator* | ||
| 68 | - | ||
| 69 | - | ||
| 70 | -## gps | ||
| 71 | ----------- | ||
| 72 | -### 实时gps接口 | ||
| 73 | - | ||
| 74 | -所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/) | ||
| 75 | -根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901) | ||
| 76 | - | ||
| 77 | -<span style="color: red">Response</span>: | ||
| 78 | -```json | ||
| 79 | -{ | ||
| 80 | - "data":[ | ||
| 81 | - { | ||
| 82 | - "companyCode":5, | ||
| 83 | - "lineId":10329, | ||
| 84 | - "deviceId":"05B01901", | ||
| 85 | - "carparkNo":"00000000", | ||
| 86 | - "stopNo":"7C890002", | ||
| 87 | - "lon":121.549866, | ||
| 88 | - "lat":31.238798, | ||
| 89 | - "timestamp":1397104499000, | ||
| 90 | - "speed":42.0, | ||
| 91 | - "direction":245.9, | ||
| 92 | - "state":0, | ||
| 93 | - "upDown":0 | ||
| 94 | - }] | ||
| 95 | -} | ||
| 96 | -``` | ||
| 97 | - | ||
| 98 | -| -- | --|--| | ||
| 99 | -| ---- | ---- | ---- | | ||
| 100 | -| companyCode | int | 公司代码 | | ||
| 101 | -| lineId | int | 线路编码 | | ||
| 102 | -| deviceId | String | 设备编号 | | ||
| 103 | -| carparkNo | String | 停车场编码 | | ||
| 104 | -| stopNo | String | 站点编码 | | ||
| 105 | -| lon | float | 经度 | | ||
| 106 | -| lat | float | 纬度 | | ||
| 107 | -| timestamp | long | 时间戳 | | ||
| 108 | -| speed | float | 速度| | ||
| 109 | -| direction | float | 方向(角度) | | ||
| 110 | -| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) | | ||
| 111 | -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)| | ||
| 112 | - | ||
| 113 | - | ||
| 114 | -### 进站数据 | ||
| 115 | ----------- | ||
| 116 | -表名: | ||
| 117 | - | ||
| 118 | -| .. | .. | .. | | ||
| 119 | -| ---- | ---- | ---- | | ||
| 120 | -| id | int | 主键 | | ||
| 121 | -| deviceId | String | 设备号 | | ||
| 122 | -| lineId | int | 线路编码 | | ||
| 123 | -| stopNo | long | 站点编码 | | ||
| 124 | -| timestamp | long | 时间戳 | | ||
| 125 | -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) | | ||
| 126 | -| createDate | Date | 创建时间 | | ||
| 127 | - | ||
| 128 | - | ||
| 129 | -### 异常警报 | ||
| 130 | ----------- | ||
| 131 | - | ||
| 132 | -### 大间隔 | ||
| 133 | ----------- | ||
| 134 | -表名: | ||
| 135 | - | ||
| 136 | -| .. | .. | .. | | ||
| 137 | -| ---- | ---- | ---- | | ||
| 138 | -| id | int | 主键 | | ||
| 139 | -| line | int | 线路编码 | | ||
| 140 | -| station | String | 站点编码 | | ||
| 141 | -| cVehicle | String | 当前车辆编码 | | ||
| 142 | -| lastVehicle | String | 上一个车辆编码 | | ||
| 143 | -| interval | long | 间隔时间(秒) | | ||
| 144 | -| timestamp | long | 时间戳 | | ||
| 145 | -| createDate | Date | 创建时间 | | ||
| 146 | - | ||
| 147 | -### 超速 | ||
| 148 | ----------- | ||
| 149 | -表名: | ||
| 150 | - | ||
| 151 | -| .. | .. | .. | | ||
| 152 | -| ---- | ---- | ---- | | ||
| 153 | -| id | int | 主键 | | ||
| 154 | -| vehicle | String | 车辆编码 | | ||
| 155 | -| line | int | 线路编码 | | ||
| 156 | -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) | | ||
| 157 | -| lon | float | 经度 | | ||
| 158 | -| lat | float | 纬度| | ||
| 159 | -| speed | float | 速度 | | ||
| 160 | -| timestamp | long | 时间戳 | | ||
| 161 | -| createDate | Date | 时间 | | ||
| 162 | - | ||
| 163 | -### 越界 | ||
| 164 | ----------- | ||
| 165 | -表名: | ||
| 166 | - | ||
| 167 | -| .. | .. | .. | | ||
| 168 | -| ---- | ---- | ---- | | ||
| 169 | -| id | int | 主键 | | ||
| 170 | -| vehicle | String | 车辆编码 | | ||
| 171 | -| line | int | 线路编码 | | ||
| 172 | -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) | | ||
| 173 | -| lon | float | 经度 | | ||
| 174 | -| lat | float | 纬度| | ||
| 175 | -| location | String | 越界位置(由线调页面进行初始转换)意思是该字段默认为空,页面第一次查看时会写入值| | ||
| 176 | -| timestamp | long | 时间戳 | | ||
| 177 | -| createDate | Date | 时间 | | ||
| 178 | - | ||
| 179 | - | ||
| 180 | -### 越站 | ||
| 181 | ----------- | ||
| 182 | -表名: | ||
| 183 | - | ||
| 184 | -| .. | .. | .. | | ||
| 185 | -| ---- | ---- | ---- | | ||
| 186 | -| id | int | 主键 | | ||
| 187 | -| line | int | 线路编码 | | ||
| 188 | -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) | | ||
| 189 | -| station | String | 站点编码 | | ||
| 190 | -| vehicle | String | 车辆编码 | | ||
| 191 | -| inData | Date | 进站时间 | | ||
| 192 | -| outDate | Date | 出站时间 | | ||
| 193 | - | ||
| 194 | - | ||
| 195 | -### 聚集 | ||
| 196 | ----------- | ||
| 197 | -表名: | ||
| 198 | - | ||
| 199 | -| .. | .. | .. | | ||
| 200 | -| ---- | ---- | ---- | | ||
| 201 | -| id | int | 主键 | | ||
| 202 | -| line | int | 线路编码 | | ||
| 203 | -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) | | ||
| 204 | -| stations | String | 站点(多个用 , 号分隔。应该是连续站点) | | ||
| 205 | -| vehicles | String | 车辆编码(多个用 , 号分隔) | | ||
| 206 | -| timestamp | long | 时间戳 | | ||
| 207 | -| createDate | Date | 时间 | | ||
| 208 | - | ||
| 209 | - | ||
| 210 | -### 掉线 | ||
| 211 | ----------- | ||
| 212 | -表名: | ||
| 213 | - | ||
| 214 | -| .. | .. | .. | | ||
| 215 | -| ---- | ---- | ---- | | ||
| 216 | -| id | int | 主键 | | ||
| 217 | -| line | int | 线路编码 | | ||
| 218 | -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) | | ||
| 219 | -| vehicle | String | 车辆编码 | | ||
| 220 | -| lon | float | 经度 | | ||
| 221 | -| lat | float | 纬度| | ||
| 222 | -| timestamp | long | 时间戳 | | ||
| 223 | -| createDate | Date | 时间 | | ||
| 224 | - | ||
| 225 | - | ||
| 226 | -### 调度消息下发接口 | ||
| 227 | ----------- | ||
| 228 | -[http://192.168.168.192:8080/transport_server/message](http://192.168.168.192:8080/transport_server/message/) | ||
| 229 | - | ||
| 230 | -<span style="color: red">Request</span>: | ||
| 231 | -```json | ||
| 232 | -{ | ||
| 233 | - "deviceId":12345, | ||
| 234 | - "timestamp":44324, | ||
| 235 | - "operCode":0x60, | ||
| 236 | - "data":{ | ||
| 237 | - "companyCode":22, | ||
| 238 | - "deviceId":"029L2222", | ||
| 239 | - "timestamp":134326, | ||
| 240 | - "instructType":00, | ||
| 241 | - "dispatchInstruct":0x00, | ||
| 242 | - "msgId":12345, | ||
| 243 | - "alarmTime":201606012000, | ||
| 244 | - "serviceState":00000000, | ||
| 245 | - "txtContent":"你好" | ||
| 246 | - } | ||
| 247 | -} | ||
| 248 | -``` | ||
| 249 | -| .. | .. | .. | | ||
| 250 | -| ---- | ---- | ---- | | ||
| 251 | -| deviceId | string | 设备编号 | | ||
| 252 | -| timestamp | long | 时间戳(ms) | | ||
| 253 | -| operCode | short | 一级协议 | | ||
| 254 | -| data.companyCode | short | 公司代码 | | ||
| 255 | -| data.deviceId | string | 设备编号 | | ||
| 256 | -| data.timestamp | long | 时间戳 | | ||
| 257 | -| data.instructType | short | 保留 默认0 | | ||
| 258 | -| data.dispatchInstruct | short | 调度指令 调度指令。0X00表示信息短语,0X01表示取消上次指令+调度指令(闹钟有效),0x02表示为调度指令(闹钟有效); 0x03表示运营状态指令(闹钟无效);0x04表示其他指令。| | ||
| 259 | -| data.msgId | long | 同上 | | ||
| 260 | -| data.alarmTime | long | 闹钟 MMddhhmm| | ||
| 261 | -| data.serviceState | long | 多状态字节 先由车载发起车辆故障、事故报告、扣证、纠纷、加油等审请,经调度确认后,下发调度指令与运营状态。当调度指令为0X00终端需要提示信息。当调度指令为0x01和0x02,终端需要收到后提示信息。并且必须在闹钟结束后进行终端相关状态更新。在闹钟时间前120秒开始提示。当调度指令为0x03,收到后进行终端相关状态更新,终端不需要提示信息。当调度指令为0x04,暂不需要提示信息。| | ||
| 262 | -| data.txtContent | string | 下发的消息文本 | | ||
| 263 | -```json | ||
| 264 | -{ | ||
| 265 | - "deviceId":12345, | ||
| 266 | - "timestamp":44324, | ||
| 267 | - "operCode":0x64, | ||
| 268 | - "data":{ | ||
| 269 | - "cityCode":22, | ||
| 270 | - "deviceId":"029L2222", | ||
| 271 | - "lineId":"134326" | ||
| 272 | - } | ||
| 273 | -} | ||
| 274 | -``` | ||
| 275 | -| .. | .. | .. | | ||
| 276 | -| ---- | ---- | ---- | | ||
| 277 | -| deviceId | string | 设备编号 | | ||
| 278 | -| timestamp | long | 时间戳(ms) | | ||
| 279 | -| operCode | short | 一级协议 | | ||
| 280 | -| data.cityCode | short | 城市区号 | | ||
| 281 | -| data.deviceId | string | 设备编号 | | ||
| 282 | -| data.lineId | string | 线路编号 6位 不足6位前面补0 如编号890 用000890表示 | | ||
| 283 | - | ||
| 284 | -```json | ||
| 285 | -{ | ||
| 286 | - "deviceId":12345, | ||
| 287 | - "timestamp":44324, | ||
| 288 | - "operCode":0xC0, | ||
| 289 | - "data":{ | ||
| 290 | - "operCode":0x86, | ||
| 291 | - "requestAck":0x06 | ||
| 292 | - } | ||
| 293 | -} | ||
| 294 | -``` | ||
| 295 | -| .. | .. | .. | | ||
| 296 | -| ---- | ---- | ---- | | ||
| 297 | -| deviceId | string | 设备编号 | | ||
| 298 | -| timestamp | long | 时间戳(ms) | | ||
| 299 | -| operCode | short | 一级协议 | | ||
| 300 | -| data.operCode | short | 二级协议 | | ||
| 301 | -| data.requestAck | short | 请求应答字 0x06同意 0x15不同意| | ||
| 302 | - | ||
| 303 | -```json | ||
| 304 | -{ | ||
| 305 | - "deviceId":12345, | ||
| 306 | - "timestamp":44324, | ||
| 307 | - "operCode":0xC0, | ||
| 308 | - "data":{ | ||
| 309 | - "operCode":0xa3, | ||
| 310 | - "deviceId":12345, | ||
| 311 | - "ipAddress":222.66.0.204, | ||
| 312 | - "port":8899, | ||
| 313 | - "reportMode":0, | ||
| 314 | - "interval":0, | ||
| 315 | - "distance":0, | ||
| 316 | - "speedingThreshold":0, | ||
| 317 | - "alarmThreshold":0, | ||
| 318 | - "posIpAddress":0, | ||
| 319 | - "posPort":0, | ||
| 320 | - "delay":0, | ||
| 321 | - "speedThreshold1":0, | ||
| 322 | - "speedThreshold2":0, | ||
| 323 | - "contrast":0, | ||
| 324 | - "brightness":0, | ||
| 325 | - "saturation":0 | ||
| 326 | - } | ||
| 327 | -} | ||
| 328 | -``` | ||
| 329 | -| .. | .. | .. | | ||
| 330 | -| ---- | ---- | ---- | | ||
| 331 | -| deviceId | string | 设备编号 | | ||
| 332 | -| timestamp | long | 时间戳(ms) | | ||
| 333 | -| operCode | short | 一级协议 | | ||
| 334 | -| data.operCode | short | 二级协议 | | ||
| 335 | -| data.deviceId | string | 设备编号| | ||
| 336 | -| data.ipAddress | string | 网关IP地址| | ||
| 337 | -| data.port | string | 网关端口| | ||
| 338 | -| data.reportMode | short | 定时定距上报模式| | ||
| 339 | -| data.interval | int | 定时上报时间间隔| | ||
| 340 | -| data.distance | string | 定距上报距离间隔| | ||
| 341 | -| data.speedingThreshold | short | 非线路状态超速阀门| | ||
| 342 | -| data.alarmThreshold | short | 预警阀门| | ||
| 343 | -| data.posIpAddress | string | pos机IP地址| | ||
| 344 | -| data.posPort | string | pos机端口| | ||
| 345 | -| data.delay | int | 延迟机关时间| | ||
| 346 | -| data.deviceId | short | 中门视频切换到码表界面速度阀门 默认45| | ||
| 347 | -| data.deviceId | short | 码表界面切换到中门视频速度阀门 默认35| | ||
| 348 | -| data.deviceId | short | 对比度| | ||
| 349 | -| data.deviceId | short | 亮度| | ||
| 350 | -| data.deviceId | short | 饱和度| | ||
| 351 | - | ||
| 352 | -```json | ||
| 353 | -{ | ||
| 354 | - "deviceId":12345, | ||
| 355 | - "timestamp":44324, | ||
| 356 | - "operCode":0xC0, | ||
| 357 | - "data":{ | ||
| 358 | - "operCode":0xa4 | ||
| 359 | - } | ||
| 360 | -} | ||
| 361 | -``` | ||
| 362 | -| .. | .. | .. | | ||
| 363 | -| ---- | ---- | ---- | | ||
| 364 | -| deviceId | string | 设备编号 | | ||
| 365 | -| timestamp | long | 时间戳(ms) | | ||
| 366 | -| operCode | short | 一级协议 | | ||
| 367 | -| data.operCode | short | 二级协议 | | ||
| 368 | - | ||
| 369 | -```json | ||
| 370 | -{ | ||
| 371 | - "deviceId":12345, | ||
| 372 | - "timestamp":44324, | ||
| 373 | - "operCode":0xC0, | ||
| 374 | - "data":{ | ||
| 375 | - "operCode":0xa5 | ||
| 376 | - "programVersion":2 | ||
| 377 | - } | ||
| 378 | -} | ||
| 379 | -``` | ||
| 380 | -| .. | .. | .. | | ||
| 381 | -| ---- | ---- | ---- | | ||
| 382 | -| deviceId | string | 设备编号 | | ||
| 383 | -| timestamp | long | 时间戳(ms) | | ||
| 384 | -| operCode | short | 一级协议 | | ||
| 385 | -| data.operCode | short | 二级协议 | | ||
| 386 | -| data.programVersion | short | 程序版本 | | ||
| 387 | - | ||
| 388 | -<span style="color: red">Response</span>: | ||
| 389 | -```json | ||
| 390 | -{ | ||
| 391 | - "errCode":0 | ||
| 392 | -} | ||
| 393 | -``` | ||
| 394 | - | ||
| 395 | -### 调度消息上传接口 | ||
| 396 | ----------- | ||
| 397 | -上行POST地址:[http://192.168.168.120:9088/control/upstream](http://192.168.168.120:9088/control/upstream) | ||
| 398 | -<span style="color: red">Request</span>: | ||
| 399 | -```json | ||
| 400 | -{ | ||
| 401 | - "deviceId":12345, | ||
| 402 | - "timestamp":44324, | ||
| 403 | - "status":0, | ||
| 404 | - "operCode":0x80, | ||
| 405 | - "data":{ | ||
| 406 | - "operCode":0x26, | ||
| 407 | - "requestCode":22 | ||
| 408 | - } | ||
| 409 | -} | ||
| 410 | -``` | ||
| 411 | -| .. | .. | .. | | ||
| 412 | -| ---- | ---- | ---- | | ||
| 413 | -| deviceId | string | 设备编号 | | ||
| 414 | -| timestamp | long | 时间戳(ms) | | ||
| 415 | -| status | int | 0x80时无数据 0表示失败 1表示成功或设备确认 2表示驾驶员阅读 | | ||
| 416 | -| operCode | short | 一级协议 消息确认将无数据 | | ||
| 417 | -| data.operCode | short | 二级协议 | | ||
| 418 | -| data.requestCode | short | 请求代码0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警 | | ||
| 419 | -<span style="color: red">Response</span>: | ||
| 420 | -```json | ||
| 421 | -{ | ||
| 422 | - "errCode":0 | ||
| 423 | -} | ||
| 424 | -``` | ||
| 425 | - | ||
| 426 | -### 车辆历史GPS | ||
| 427 | ----------- | ||
| 428 | -表名:BSTH_C_GPS_INFO | ||
| 429 | - | ||
| 430 | -| .. | .. | .. | | ||
| 431 | -| ---- | ---- | ---- | | ||
| 432 | -| cityCode | int | 城市代码 | | ||
| 433 | -| industryCode | int | 行业代码 | | ||
| 434 | -| companyCode | int | 企业代码 | | ||
| 435 | -| lineId | int | 线路编号 | | ||
| 436 | -| deviceId | string | 设备编号 | | ||
| 437 | -| driverNo | int | 驾驶员工号 | | ||
| 438 | -| carparkSerialNo | int | 停车场序列号 | | ||
| 439 | -| carparkNo | string | 停车场编号 | | ||
| 440 | -| stopSerialNo | int | 站点序列号 | | ||
| 441 | -| stopNo | string | 停车场编号 | | ||
| 442 | -| lon | float | 经度 | | ||
| 443 | -| lat | float | 维度 | | ||
| 444 | -| ts | long | 时间戳 | | ||
| 445 | -| speedSensor | float | 发动机速度 | | ||
| 446 | -| speedGps | float | gps速度 | | ||
| 447 | -| direction | float | 角度0-359 | | ||
| 448 | -| inTemp | int | 车内温度 | | ||
| 449 | -| serviceState | long | 设备状态字 | | ||
| 450 | -| daysYear | int | 对应年中的天数 为分区字段 查询一定要用此字段过滤 | | ||
| 451 | - | 1 | +上海交通职业技术学院智慧交通系 2023 |
| 2 | +新型高职建设“公共交通运营调度教学 | ||
| 3 | +资源”项目 | ||
| 452 | \ No newline at end of file | 4 | \ No newline at end of file |
pom.xml
| @@ -402,6 +402,13 @@ | @@ -402,6 +402,13 @@ | ||
| 402 | <version>2.4</version> | 402 | <version>2.4</version> |
| 403 | <classifier>jdk15</classifier> | 403 | <classifier>jdk15</classifier> |
| 404 | </dependency> | 404 | </dependency> |
| 405 | + | ||
| 406 | + | ||
| 407 | + <dependency> | ||
| 408 | + <groupId>org.javassist</groupId> | ||
| 409 | + <artifactId>javassist</artifactId> | ||
| 410 | + <version>3.21.0-GA</version> | ||
| 411 | + </dependency> | ||
| 405 | </dependencies> | 412 | </dependencies> |
| 406 | 413 | ||
| 407 | <dependencyManagement> | 414 | <dependencyManagement> |
src/main/java/com/bsth/controller/subject/SubjectController.java
0 → 100644
| 1 | +package com.bsth.controller.subject; | ||
| 2 | + | ||
| 3 | +import com.bsth.controller.BaseController; | ||
| 4 | +import com.bsth.entity.subject.Subject; | ||
| 5 | +import com.bsth.service.subject.SubjectService; | ||
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 7 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 8 | +import org.springframework.web.bind.annotation.RestController; | ||
| 9 | + | ||
| 10 | +@RestController | ||
| 11 | +@RequestMapping("subject") | ||
| 12 | +public class SubjectController extends BaseController<Subject, Integer> { | ||
| 13 | + | ||
| 14 | + @Autowired | ||
| 15 | + SubjectService subjectService; | ||
| 16 | + | ||
| 17 | +} |
src/main/java/com/bsth/controller/subject/SubjectUserController.java
0 → 100644
| 1 | +package com.bsth.controller.subject; | ||
| 2 | + | ||
| 3 | +import com.bsth.controller.BaseController; | ||
| 4 | +import com.bsth.entity.subject.Subject; | ||
| 5 | +import com.bsth.entity.subject.SubjectUser; | ||
| 6 | +import com.bsth.service.subject.SubjectService; | ||
| 7 | +import com.bsth.service.subject.SubjectUserService; | ||
| 8 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 9 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 10 | +import org.springframework.web.bind.annotation.RequestParam; | ||
| 11 | +import org.springframework.web.bind.annotation.RestController; | ||
| 12 | + | ||
| 13 | +import java.util.List; | ||
| 14 | +import java.util.Map; | ||
| 15 | + | ||
| 16 | +@RestController | ||
| 17 | +@RequestMapping("subjectUser") | ||
| 18 | +public class SubjectUserController extends BaseController<SubjectUser, Integer> { | ||
| 19 | + @Autowired | ||
| 20 | + SubjectUserService subjectUserService; | ||
| 21 | + | ||
| 22 | + //查看题目 | ||
| 23 | + @RequestMapping("/userAll") | ||
| 24 | + public List<SubjectUser> userAll(){ | ||
| 25 | + return subjectUserService.userAll(); | ||
| 26 | + } | ||
| 27 | + //判断用户答题是否正确 | ||
| 28 | + @RequestMapping("/determine") | ||
| 29 | + public String determine(@RequestParam("id") Integer id){ | ||
| 30 | + return subjectUserService.determine(id); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + | ||
| 34 | +} |
src/main/java/com/bsth/entity/subject/Subject.java
0 → 100644
| 1 | +package com.bsth.entity.subject; | ||
| 2 | + | ||
| 3 | +import javax.persistence.*; | ||
| 4 | + | ||
| 5 | +@Entity | ||
| 6 | +@Table(name = "bsth_subject") | ||
| 7 | +public class Subject { | ||
| 8 | + /** 主键Id */ | ||
| 9 | + @Id | ||
| 10 | + @GeneratedValue(strategy = GenerationType.IDENTITY) | ||
| 11 | + private Integer id; | ||
| 12 | + //题目或场景描述 | ||
| 13 | + private String subjectText; | ||
| 14 | + //操作 | ||
| 15 | + private String operateTest; | ||
| 16 | + //待发时间 | ||
| 17 | + private String fcsj; | ||
| 18 | + //考题类型 | ||
| 19 | + private String type; | ||
| 20 | + //上下行 | ||
| 21 | + private String dir; | ||
| 22 | + //应对答案 | ||
| 23 | + private String answer; | ||
| 24 | + | ||
| 25 | + public String getSubjectText() { | ||
| 26 | + return subjectText; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + public void setSubjectText(String subjectText) { | ||
| 30 | + this.subjectText = subjectText; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public String getOperateTest() { | ||
| 34 | + return operateTest; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public void setOperateTest(String operateTest) { | ||
| 38 | + this.operateTest = operateTest; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + | ||
| 42 | + public String getFcsj() { | ||
| 43 | + return fcsj; | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + public void setFcsj(String fcsj) { | ||
| 47 | + this.fcsj = fcsj; | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + public String getType() { | ||
| 51 | + return type; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + public void setType(String type) { | ||
| 55 | + this.type = type; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + public String getDir() { | ||
| 59 | + return dir; | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + public void setDir(String dir) { | ||
| 63 | + this.dir = dir; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + public String getAnswer() { | ||
| 67 | + return answer; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + public void setAnswer(String answer) { | ||
| 71 | + this.answer = answer; | ||
| 72 | + } | ||
| 73 | +} |
src/main/java/com/bsth/entity/subject/SubjectUser.java
0 → 100644
| 1 | +package com.bsth.entity.subject; | ||
| 2 | + | ||
| 3 | +import javax.persistence.*; | ||
| 4 | + | ||
| 5 | +@Entity | ||
| 6 | +@Table(name = "bsth_subject_user") | ||
| 7 | +public class SubjectUser { | ||
| 8 | + /** 主键Id */ | ||
| 9 | + @Id | ||
| 10 | + @GeneratedValue(strategy = GenerationType.IDENTITY) | ||
| 11 | + private Integer id; | ||
| 12 | + | ||
| 13 | + //用户Id | ||
| 14 | + private Integer userId; | ||
| 15 | + //日期 | ||
| 16 | + private String rq; | ||
| 17 | + //对或错 0/1 | ||
| 18 | + private String result; | ||
| 19 | + | ||
| 20 | + //题库id | ||
| 21 | + @ManyToOne | ||
| 22 | + private Subject subjectId; | ||
| 23 | + | ||
| 24 | + public Integer getId() { | ||
| 25 | + return id; | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public void setId(Integer id) { | ||
| 29 | + this.id = id; | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + public Subject getSubjectId() { | ||
| 33 | + return subjectId; | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + public void setSubjectId(Subject subjectId) { | ||
| 37 | + this.subjectId = subjectId; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + public Integer getUserId() { | ||
| 41 | + return userId; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + public void setUserId(Integer userId) { | ||
| 45 | + this.userId = userId; | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + public String getRq() { | ||
| 49 | + return rq; | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + public void setRq(String rq) { | ||
| 53 | + this.rq = rq; | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + public String getResult() { | ||
| 57 | + return result; | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + public void setResult(String result) { | ||
| 61 | + this.result = result; | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + | ||
| 65 | +} |
src/main/java/com/bsth/repository/LineRepository.java
| @@ -40,6 +40,9 @@ public interface LineRepository extends BaseRepository<Line, Integer> { | @@ -40,6 +40,9 @@ public interface LineRepository extends BaseRepository<Line, Integer> { | ||
| 40 | 40 | ||
| 41 | @Query(value = " SELECT l FROM Line l where l.name like ?1") | 41 | @Query(value = " SELECT l FROM Line l where l.name like ?1") |
| 42 | List<Line> findLine(String line); | 42 | List<Line> findLine(String line); |
| 43 | + | ||
| 44 | + @Query(value = " SELECT l FROM Line l where l.name = ?1") | ||
| 45 | + Line findLineName(String lineName); | ||
| 43 | 46 | ||
| 44 | @Query(value = " SELECT l FROM Line l where l.lineCode = ?1") | 47 | @Query(value = " SELECT l FROM Line l where l.lineCode = ?1") |
| 45 | List<Line> findLineByCode(String lineCode); | 48 | List<Line> findLineByCode(String lineCode); |
src/main/java/com/bsth/repository/subject/SubjectRepository.java
0 → 100644
src/main/java/com/bsth/repository/subject/SubjectUserRepository.java
0 → 100644
| 1 | +package com.bsth.repository.subject; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.subject.SubjectUser; | ||
| 4 | +import com.bsth.repository.BaseRepository; | ||
| 5 | +import org.springframework.data.jpa.repository.Modifying; | ||
| 6 | +import org.springframework.data.jpa.repository.Query; | ||
| 7 | +import org.springframework.transaction.annotation.Transactional; | ||
| 8 | + | ||
| 9 | +import java.util.List; | ||
| 10 | + | ||
| 11 | +public interface SubjectUserRepository extends BaseRepository<SubjectUser, Integer> { | ||
| 12 | + | ||
| 13 | + | ||
| 14 | + | ||
| 15 | + @Query(value = "SELECT su FROM SubjectUser su where su.rq =?1 and su.userId =?2") | ||
| 16 | + List<SubjectUser> userAll(String rq, Integer userId); | ||
| 17 | + @Transactional | ||
| 18 | + @Modifying | ||
| 19 | + @Query(value = "update SubjectUser su set su.result =?1 where su.id =?2") | ||
| 20 | + int updates(String rq, Integer userId); | ||
| 21 | +} |
src/main/java/com/bsth/service/subject/SubjectService.java
0 → 100644
src/main/java/com/bsth/service/subject/SubjectUserService.java
0 → 100644
| 1 | +package com.bsth.service.subject; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.subject.SubjectUser; | ||
| 4 | +import com.bsth.service.BaseService; | ||
| 5 | + | ||
| 6 | +import java.util.List; | ||
| 7 | + | ||
| 8 | +public interface SubjectUserService extends BaseService<SubjectUser, Integer> { | ||
| 9 | + | ||
| 10 | + | ||
| 11 | + List<SubjectUser> userAll(); | ||
| 12 | + | ||
| 13 | + String determine(Integer id); | ||
| 14 | +} |
src/main/java/com/bsth/service/subject/impl/SubjectServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.subject.impl; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.subject.Subject; | ||
| 4 | +import com.bsth.service.impl.BaseServiceImpl; | ||
| 5 | +import com.bsth.service.subject.SubjectService; | ||
| 6 | +import org.springframework.stereotype.Service; | ||
| 7 | + | ||
| 8 | +@Service | ||
| 9 | +public class SubjectServiceImpl extends BaseServiceImpl<Subject, Integer> implements SubjectService { | ||
| 10 | +} |
src/main/java/com/bsth/service/subject/impl/SubjectUserServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.subject.impl; | ||
| 2 | + | ||
| 3 | +import com.bsth.data.schedule.DayOfSchedule; | ||
| 4 | +import com.bsth.entity.Line; | ||
| 5 | +import com.bsth.entity.realcontrol.ScheduleRealInfo; | ||
| 6 | +import com.bsth.entity.subject.SubjectUser; | ||
| 7 | +import com.bsth.entity.sys.SysUser; | ||
| 8 | +import com.bsth.repository.LineRepository; | ||
| 9 | +import com.bsth.repository.subject.SubjectUserRepository; | ||
| 10 | +import com.bsth.security.util.SecurityUtils; | ||
| 11 | +import com.bsth.service.impl.BaseServiceImpl; | ||
| 12 | +import com.bsth.service.subject.SubjectUserService; | ||
| 13 | +import com.bsth.util.subject.subEnum; | ||
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 15 | +import org.springframework.stereotype.Service; | ||
| 16 | + | ||
| 17 | +import java.text.SimpleDateFormat; | ||
| 18 | +import java.util.*; | ||
| 19 | + | ||
| 20 | +@Service | ||
| 21 | +public class SubjectUserServiceImpl extends BaseServiceImpl<SubjectUser, Integer> implements SubjectUserService { | ||
| 22 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | ||
| 23 | + | ||
| 24 | + @Autowired | ||
| 25 | + SubjectUserRepository subjectUserRepository; | ||
| 26 | + @Autowired | ||
| 27 | + LineRepository lineRepository; | ||
| 28 | + @Autowired | ||
| 29 | + DayOfSchedule dayOfSchedule; | ||
| 30 | + | ||
| 31 | + public List<SubjectUser> userAll(){ | ||
| 32 | + SysUser user = SecurityUtils.getCurrentUser(); | ||
| 33 | + Integer userId = user.getId(); | ||
| 34 | + | ||
| 35 | + String ksstatus = user.getKsstatus();//判断今天有没有考试 | ||
| 36 | + String rq = sdf.format(new Date()); | ||
| 37 | + List list = subjectUserRepository.userAll(rq,userId); | ||
| 38 | + return list; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + | ||
| 42 | + public String determine(Integer id){ | ||
| 43 | + | ||
| 44 | + //当前题目 | ||
| 45 | + Optional<SubjectUser> subjectUser = subjectUserRepository.findById(id); | ||
| 46 | + SubjectUser sur = subjectUser.isPresent() ? subjectUser.get() : null; | ||
| 47 | + | ||
| 48 | + //线路编号 A线+用户id组成的 | ||
| 49 | + SysUser user = SecurityUtils.getCurrentUser(); | ||
| 50 | + String xlName = "A线-"+user.getUserName(); | ||
| 51 | + Line line = lineRepository.findLineName(xlName); | ||
| 52 | + //缓存查看排班 | ||
| 53 | + List<ScheduleRealInfo> sch = dayOfSchedule.findByLineCode(line.getLineCode()); | ||
| 54 | + | ||
| 55 | + | ||
| 56 | + //答题是否正确 | ||
| 57 | + // String result = result(sur,sch) == true ? "0" : "1"; | ||
| 58 | + | ||
| 59 | + //类型 | ||
| 60 | + String type = sur.getSubjectId().getType(); | ||
| 61 | + //判断答题是否正确 | ||
| 62 | + subEnum sjm = subEnum.valueOf(type); | ||
| 63 | + String result = sjm.run(sur,sch) == true ? "0" : "1"; | ||
| 64 | + | ||
| 65 | + //修改答案 | ||
| 66 | + int status = subjectUserRepository.updates(result,id); | ||
| 67 | + | ||
| 68 | + //List list = subjectUserRepository.userAll(sur.getRq(),sur.getUserId()); | ||
| 69 | + // map.put("result",result); | ||
| 70 | + //map.put("list",list); | ||
| 71 | + if (status == 1){ | ||
| 72 | + return result; | ||
| 73 | + } | ||
| 74 | + return null; | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + | ||
| 78 | + | ||
| 79 | + | ||
| 80 | + | ||
| 81 | +} |
src/main/java/com/bsth/util/subject/subEnum.java
0 → 100644
| 1 | +package com.bsth.util.subject; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.realcontrol.ScheduleRealInfo; | ||
| 4 | +import com.bsth.entity.subject.SubjectUser; | ||
| 5 | + | ||
| 6 | +import java.util.List; | ||
| 7 | +import java.util.stream.Collectors; | ||
| 8 | + | ||
| 9 | +public enum subEnum { | ||
| 10 | + //判断待发 | ||
| 11 | + df{ | ||
| 12 | + @Override | ||
| 13 | + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){ | ||
| 14 | + String sj = sur.getSubjectId().getFcsj();//计划发车时间 | ||
| 15 | + String answer = sur.getSubjectId().getAnswer();//待发是按 | ||
| 16 | + String dir = sur.getSubjectId().getDir();// | ||
| 17 | + //筛选满足条件的情况下 | ||
| 18 | + //List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(dir)).collect(Collectors.toList()); | ||
| 19 | + //判断结果是否合格 | ||
| 20 | + for (ScheduleRealInfo s : sch) { | ||
| 21 | + if (s.getFcsj().equals(sj) && | ||
| 22 | + s.getXlDir().equals(dir) && | ||
| 23 | + s.getDfsj().equals(answer)) { | ||
| 24 | + return true; | ||
| 25 | + } | ||
| 26 | + } | ||
| 27 | + return false; | ||
| 28 | + } | ||
| 29 | + }, | ||
| 30 | + //判断烂班 | ||
| 31 | + lb{ | ||
| 32 | + @Override | ||
| 33 | + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){ | ||
| 34 | + String sj = sur.getSubjectId().getFcsj();//计划发车时间 | ||
| 35 | + String answer = sur.getSubjectId().getAnswer();//答案 | ||
| 36 | + String[] t = answer.split(","); //0 计划里程 1 是否烂班状态 2烂班原因 | ||
| 37 | + String dir = sur.getSubjectId().getDir();// | ||
| 38 | + //筛选满足条件的情况下 | ||
| 39 | + //List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(dir)).collect(Collectors.toList()); | ||
| 40 | + //判断结果是否合格 | ||
| 41 | + for (ScheduleRealInfo s : sch) { | ||
| 42 | + if (s.getDfsj().equals(sj) && | ||
| 43 | + s.getXlDir().equals(dir) && | ||
| 44 | + s.getJhlc() == Double.parseDouble(t[0]) && | ||
| 45 | + s.getStatus() == Integer.parseInt(t[1]) && | ||
| 46 | + s.getRemarks().contains(t[2])) { | ||
| 47 | + return true; | ||
| 48 | + } | ||
| 49 | + } | ||
| 50 | + return false; | ||
| 51 | + } | ||
| 52 | + }, | ||
| 53 | + //判断烂班后撤销烂班 | ||
| 54 | + clb{ | ||
| 55 | + @Override | ||
| 56 | + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){ | ||
| 57 | + String sj = sur.getSubjectId().getFcsj();//计划发车时间 | ||
| 58 | + String answer = sur.getSubjectId().getAnswer();//答案 | ||
| 59 | + String[] t = answer.split(","); //0 是否烂班状态 1是否烂班过 | ||
| 60 | + String dir = sur.getSubjectId().getDir();// | ||
| 61 | + //判断结果是否合格 | ||
| 62 | + for (ScheduleRealInfo s : sch) { | ||
| 63 | + if (s.getDfsj().equals(sj) && | ||
| 64 | + s.getXlDir().equals(dir) && | ||
| 65 | + s.getStatus() == Integer.parseInt(t[0]) && | ||
| 66 | + t[1].equals(s.getAdjustExps())) { | ||
| 67 | + return true; | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | + return false; | ||
| 71 | + } | ||
| 72 | + }, | ||
| 73 | + jgs{ | ||
| 74 | + @Override | ||
| 75 | + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){ | ||
| 76 | + String sj = sur.getSubjectId().getFcsj();//计划发车时间 | ||
| 77 | + String answer = sur.getSubjectId().getAnswer();//答案 | ||
| 78 | + String[] t = answer.split(","); //0 计划里程 | ||
| 79 | + String dir = sur.getSubjectId().getDir();// | ||
| 80 | + //筛选满足条件的情况下 | ||
| 81 | + List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(dir)).collect(Collectors.toList()); | ||
| 82 | + //判断结果是否合格 | ||
| 83 | + for (ScheduleRealInfo s : sch) { | ||
| 84 | + | ||
| 85 | + } | ||
| 86 | + return false; | ||
| 87 | + } | ||
| 88 | + }; | ||
| 89 | + | ||
| 90 | + | ||
| 91 | + | ||
| 92 | + public abstract boolean run(SubjectUser sur, List<ScheduleRealInfo> sch); | ||
| 93 | +} |
src/main/resources/application-dev.properties
| @@ -14,7 +14,7 @@ spring.jpa.show-sql= false | @@ -14,7 +14,7 @@ spring.jpa.show-sql= false | ||
| 14 | 14 | ||
| 15 | #DATABASE | 15 | #DATABASE |
| 16 | spring.datasource.driver-class-name= com.mysql.jdbc.Driver | 16 | spring.datasource.driver-class-name= com.mysql.jdbc.Driver |
| 17 | -spring.datasource.url= jdbc:mysql://127.0.0.1/jp_control?useUnicode=true&characterEncoding=utf-8&useSSL=false | 17 | +spring.datasource.url= jdbc:mysql://127.0.0.1/school_control?useUnicode=true&characterEncoding=utf-8&useSSL=false |
| 18 | #spring.datasource.url= jdbc:mysql://192.168.168.222/control?useUnicode=true&characterEncoding=utf-8&useSSL=false | 18 | #spring.datasource.url= jdbc:mysql://192.168.168.222/control?useUnicode=true&characterEncoding=utf-8&useSSL=false |
| 19 | spring.datasource.username= root | 19 | spring.datasource.username= root |
| 20 | spring.datasource.password= root | 20 | spring.datasource.password= root |
src/main/resources/static/real_control_v2/css/main.css
| @@ -2127,4 +2127,20 @@ g.gps-wrap rect.twinkle[updown="1"] { | @@ -2127,4 +2127,20 @@ g.gps-wrap rect.twinkle[updown="1"] { | ||
| 2127 | stroke: #c94f21; | 2127 | stroke: #c94f21; |
| 2128 | fill: #c94f21; | 2128 | fill: #c94f21; |
| 2129 | } | 2129 | } |
| 2130 | -} | ||
| 2131 | \ No newline at end of file | 2130 | \ No newline at end of file |
| 2131 | +} | ||
| 2132 | +.uk-panels .north-tm{ | ||
| 2133 | + padding-left: 400px; | ||
| 2134 | + font-size: 18px; | ||
| 2135 | + color: white; | ||
| 2136 | +} | ||
| 2137 | +.uk-panels .north-tmx{ | ||
| 2138 | + padding-left: 400px; | ||
| 2139 | + font-size: 18px; | ||
| 2140 | + color: red; | ||
| 2141 | +} | ||
| 2142 | +.uk-panels .north-button{ | ||
| 2143 | + padding-right: 60px; | ||
| 2144 | + color: red; | ||
| 2145 | + position:absolute; | ||
| 2146 | + right:0; | ||
| 2147 | +} |
src/main/resources/static/real_control_v2/js/main.js
| @@ -29,9 +29,15 @@ var gb_main_ep = new EventProxy(), | @@ -29,9 +29,15 @@ var gb_main_ep = new EventProxy(), | ||
| 29 | 29 | ||
| 30 | //line schedule layout | 30 | //line schedule layout |
| 31 | eq.once('line-schedule-layout', function () { | 31 | eq.once('line-schedule-layout', function () { |
| 32 | - gb_line_layout.layout(g_emit('render-sch-table')); | 32 | + gb_line_layout.layout(g_emit('subject')); |
| 33 | }); | 33 | }); |
| 34 | 34 | ||
| 35 | + //考试 | ||
| 36 | + eq.once('subject',function (){ | ||
| 37 | + su_subject.init(); | ||
| 38 | + g_emit('render-sch-table')(); | ||
| 39 | + }) | ||
| 40 | + | ||
| 35 | //render schedule table | 41 | //render schedule table |
| 36 | eq.once('render-sch-table', function () { | 42 | eq.once('render-sch-table', function () { |
| 37 | gb_schedule_table.show(function () { | 43 | gb_schedule_table.show(function () { |
src/main/resources/static/real_control_v2/js/subject/subject.js
0 → 100644
| 1 | +var su_subject = (function () { | ||
| 2 | + | ||
| 3 | + | ||
| 4 | + var $wrap = $('.uk-panels'); | ||
| 5 | + var init =function(cb) { | ||
| 6 | + | ||
| 7 | + ks(); | ||
| 8 | + | ||
| 9 | + | ||
| 10 | + | ||
| 11 | + }; | ||
| 12 | + | ||
| 13 | + function ks(){ | ||
| 14 | + //站点路由 | ||
| 15 | + gb_common.$get('/subjectUser/userAll', '',function (rs) { | ||
| 16 | + if (rs == null || rs.length == 0) { | ||
| 17 | + return //当前没有考题或 | ||
| 18 | + } | ||
| 19 | + debugger | ||
| 20 | + var list = retunhtml(rs); | ||
| 21 | + | ||
| 22 | + $('.north_suject').remove(); | ||
| 23 | + if (list == null) | ||
| 24 | + return; //所有题目已经考完 无考题的情况 | ||
| 25 | + | ||
| 26 | + var htmlStr = template('suject_pop_wrap', list); | ||
| 27 | + $wrap.append(htmlStr); | ||
| 28 | + | ||
| 29 | + //提交按钮 //加载完成才可以 | ||
| 30 | + $('.uk-panels .north-button').on('click', function () { | ||
| 31 | + debugger | ||
| 32 | + var thisall= $('.uk-panels .north-button #submit'); | ||
| 33 | + var id= thisall.data('id'); | ||
| 34 | + //判断答题是否正确 返回参数 返回下一题的情况 | ||
| 35 | + gb_common.$get('/subjectUser/determine', {id: id},function (rs) { | ||
| 36 | + if (rs == 0){ //提示答题正确 | ||
| 37 | + | ||
| 38 | + }else if(rs == 1){ //提示答题失败 | ||
| 39 | + | ||
| 40 | + }else { //系统出错 | ||
| 41 | + | ||
| 42 | + } | ||
| 43 | + ks(); | ||
| 44 | + }); | ||
| 45 | + }); | ||
| 46 | + }) | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + | ||
| 50 | + | ||
| 51 | + function retunhtml(list){ | ||
| 52 | + for (let t in list){ | ||
| 53 | + if(list[t].result == null || list[t].result == ""){ | ||
| 54 | + return list[t]; | ||
| 55 | + } | ||
| 56 | + } | ||
| 57 | + return null; | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + | ||
| 61 | + return { | ||
| 62 | + init: init | ||
| 63 | + }; | ||
| 64 | + | ||
| 65 | +})(); | ||
| 0 | \ No newline at end of file | 66 | \ No newline at end of file |
src/main/resources/static/real_control_v2/main.html
| @@ -62,10 +62,31 @@ | @@ -62,10 +62,31 @@ | ||
| 62 | <div class="uk-width-6-10"> | 62 | <div class="uk-width-6-10"> |
| 63 | <div class="uk-panel uk-width north-toolbar"></div> | 63 | <div class="uk-panel uk-width north-toolbar"></div> |
| 64 | </div> | 64 | </div> |
| 65 | + | ||
| 66 | + <div class="uk-width-10-10"> | ||
| 67 | + <div class="uk-panels"> | ||
| 68 | + </div> | ||
| 69 | + </div> | ||
| 70 | + | ||
| 65 | </div> | 71 | </div> |
| 66 | <div class="north-tabs"></div> | 72 | <div class="north-tabs"></div> |
| 67 | </div> | 73 | </div> |
| 68 | 74 | ||
| 75 | +<!-- #### 考试 start ### --> | ||
| 76 | +<script id="suject_pop_wrap" type="text/html"> | ||
| 77 | + <div class="north_suject"> | ||
| 78 | + <div class="north-tm"> | ||
| 79 | + 场景:{{subjectId.subjectText}} | ||
| 80 | + </div> | ||
| 81 | + <div class="north-tmx"> | ||
| 82 | + 操作: {{subjectId.operateTest}} | ||
| 83 | + </div> | ||
| 84 | + <div class="north-button"> | ||
| 85 | + <button id="submit" class="subject_button" data-id="{{id}}">提交</button> | ||
| 86 | + </div> | ||
| 87 | + </div> | ||
| 88 | +</script> | ||
| 89 | + | ||
| 69 | <div class="main-container"> | 90 | <div class="main-container"> |
| 70 | <div class="load-panel"> | 91 | <div class="load-panel"> |
| 71 | <i class="uk-icon-spinner uk-icon-spin"></i> | 92 | <i class="uk-icon-spinner uk-icon-spin"></i> |
| @@ -223,6 +244,8 @@ | @@ -223,6 +244,8 @@ | ||
| 223 | <script src="/real_control_v2/js/forms/form_embed.js" merge="custom_js"></script> | 244 | <script src="/real_control_v2/js/forms/form_embed.js" merge="custom_js"></script> |
| 224 | <!-- 模态框扩展 --> | 245 | <!-- 模态框扩展 --> |
| 225 | <script src="/real_control_v2/js/modal_extend.js" merge="custom_js"></script> | 246 | <script src="/real_control_v2/js/modal_extend.js" merge="custom_js"></script> |
| 247 | +<!-- 考试js--> | ||
| 248 | +<script src="/real_control_v2/js/subject/subject.js" merge="custom_js"></script> | ||
| 226 | 249 | ||
| 227 | <!-- #### 安全驾驶 start ### --> | 250 | <!-- #### 安全驾驶 start ### --> |
| 228 | <div class="safe_driv_pop_wrap" ></div> | 251 | <div class="safe_driv_pop_wrap" ></div> |
| @@ -240,8 +263,8 @@ | @@ -240,8 +263,8 @@ | ||
| 240 | <!-- #### 安全驾驶 end ### --> | 263 | <!-- #### 安全驾驶 end ### --> |
| 241 | 264 | ||
| 242 | <!-- 打电话 --> | 265 | <!-- 打电话 --> |
| 243 | -<script src="http://114.80.178.12:9003/forward/voip/callCenterJs"></script> | ||
| 244 | -<script src="http://114.80.178.12:9003/forward/voip/phonePluginJs"></script> | 266 | +<!--<script src="http://114.80.178.12:9003/forward/voip/callCenterJs"></script> |
| 267 | +<script src="http://114.80.178.12:9003/forward/voip/phonePluginJs"></script>--> | ||
| 245 | <script src="/real_control_v2/js/safe_driv/call_phone.js" ></script> | 268 | <script src="/real_control_v2/js/safe_driv/call_phone.js" ></script> |
| 246 | 269 | ||
| 247 | <script id="voip_call_info_panel-temp" type="text/html"> | 270 | <script id="voip_call_info_panel-temp" type="text/html"> |