Commit f06e1baf347e50c75c65a033c6c73b2083067bbc

Authored by ljq
1 parent 63d137b2

指令问题修复与大客流报表展现

src/main/java/com/bsth/controller/zndd/DKlController.java 0 → 100644
  1 +package com.bsth.controller.zndd;
  2 +
  3 +
  4 +import com.bsth.controller.BaseController;
  5 +import com.bsth.entity.DKLInfo;
  6 +import com.bsth.service.DKLInfoService;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.web.bind.annotation.PathVariable;
  9 +import org.springframework.web.bind.annotation.RequestMapping;
  10 +import org.springframework.web.bind.annotation.RequestMethod;
  11 +import org.springframework.web.bind.annotation.RestController;
  12 +
  13 +@RestController
  14 +@RequestMapping("dkl_logger")
  15 +public class DKlController extends BaseController<DKLInfo, Integer> {
  16 +
  17 + @Autowired
  18 + DKLInfoService DKLInfoService;
  19 +
  20 + @RequestMapping(value = "updatedkl/{id}", method = RequestMethod.POST)
  21 + public int updatedkl(@PathVariable("id") Integer id){
  22 + return DKLInfoService.updatedkl(id);
  23 + }
  24 +}
... ...
src/main/java/com/bsth/data/directive/DayOfDirectives.java
... ... @@ -2,6 +2,7 @@ package com.bsth.data.directive;
2 2  
3 3 import com.alibaba.fastjson.JSONObject;
4 4 import com.bsth.data.LineConfigData;
  5 +import com.bsth.data.schedule.DayOfSchedule;
5 6 import com.bsth.entity.directive.D60;
6 7 import com.bsth.entity.directive.D64;
7 8 import com.bsth.entity.directive.Directive;
... ... @@ -50,6 +51,8 @@ public class DayOfDirectives {
50 51 @Autowired
51 52 LineConfigData lineConfigData;
52 53  
  54 + @Autowired
  55 + DayOfSchedule dayOfSchedule;
53 56 static Logger logger = LoggerFactory.getLogger(DayOfDirectives.class);
54 57  
55 58  
... ... @@ -114,6 +117,8 @@ public class DayOfDirectives {
114 117 if (d60.isDispatch()) {
115 118 // 更新班次状态
116 119 sch.setDirectiveState(res.getStatus() * 100);
  120 + //持久化
  121 + dayOfSchedule.save(sch);
117 122 // 通知页面
118 123 sendUtils.sendDirectiveToPage(sch);
119 124 }
... ...
src/main/java/com/bsth/data/zndd/AutomaticSch.java
... ... @@ -493,7 +493,8 @@ public class AutomaticSch {
493 493 if (i < carList.size() - 1) {
494 494 ScheduleRealInfo src = carList.get(i + 1);
495 495 if (sr.getZdsjActual() != null && src.getFcsjActual() != null && sr.getStatus() != -1 && src.getStatus() != -1) {
496   - if (src.getFcsjActualTime() < sr.getZdsjActualTime()) {
  496 + //发车时间09:00 + 1 < 09:02
  497 + if (DateUtils.getTimesByHHmm(src.getFcsjActual()) < DateUtils.getTimesByHHmm(sr.getZdsjActual())) {
497 498 ts(addStationPeople(src, "FCSJXZD", 0l));
498 499 LogerWait("班次发车时间小于到站时间", src);
499 500 }
... ...
src/main/java/com/bsth/data/zndd/OutEntrance.java
... ... @@ -234,7 +234,7 @@ public class OutEntrance {
234 234 String dir = line.get("dir").toString();
235 235 imgMap.put(lineCode+"_"+dir,img);
236 236 DKLInfo dklInfo =new DKLInfo();
237   - dklInfo.setLineCode(stationCode);
  237 + dklInfo.setLineCode(lineCode);
238 238 String lineName=BasicData.lineCode2NameMap.get(lineCode);
239 239 String stationName=BasicData.stationCode2NameMap.get(lineCode+"_"+dir+"_"+stationCode);
240 240 dklInfo.setLineName(lineName);
... ... @@ -248,6 +248,7 @@ public class OutEntrance {
248 248 continue;
249 249 }
250 250 Map m = new HashMap();
  251 + m.put("dklid",dklInfo.getId());
251 252 m.put("image", img);
252 253 m.put("stationCode", stationCode);
253 254 m.put("lineCode", lineCode);
... ...
src/main/java/com/bsth/entity/DKLInfo.java
... ... @@ -28,6 +28,8 @@ public class DKLInfo {
28 28  
29 29 private String image;
30 30  
  31 + private String status;
  32 +
31 33 // 创建日期
32 34 @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
33 35 private Date createDate;
... ... @@ -105,4 +107,11 @@ public class DKLInfo {
105 107 this.createDate = createDate;
106 108 }
107 109  
  110 + public String getStatus() {
  111 + return status;
  112 + }
  113 +
  114 + public void setStatus(String status) {
  115 + this.status = status;
  116 + }
108 117 }
... ...
src/main/java/com/bsth/repository/DKLInfoRepository.java
1 1 package com.bsth.repository;
2 2  
3 3 import com.bsth.entity.DKLInfo;
  4 +import org.springframework.data.jpa.repository.Modifying;
  5 +import org.springframework.data.jpa.repository.Query;
4 6 import org.springframework.stereotype.Repository;
  7 +import org.springframework.transaction.annotation.Transactional;
5 8  
6 9  
7 10 @Repository
8 11 public interface DKLInfoRepository extends BaseRepository<DKLInfo, Integer> {
  12 +
  13 + @Transactional
  14 + @Modifying
  15 + @Query(value = "UPDATE DKLInfo t set t.status=?2 WHERE t.id = ?1")
  16 + public void update(Integer id, String t);
9 17 }
... ...
src/main/java/com/bsth/service/DKLInfoService.java
... ... @@ -4,4 +4,6 @@ import com.bsth.entity.DKLInfo;
4 4  
5 5  
6 6 public interface DKLInfoService extends BaseService<DKLInfo, Integer> {
  7 +
  8 + public int updatedkl(Integer id);
7 9 }
... ...
src/main/java/com/bsth/service/impl/DKLInfoServiceImpl.java
1 1 package com.bsth.service.impl;
2 2  
3 3 import com.bsth.entity.DKLInfo;
  4 +import com.bsth.repository.DKLInfoRepository;
4 5 import com.bsth.service.DKLInfoService;
  6 +import org.springframework.beans.factory.annotation.Autowired;
5 7 import org.springframework.stereotype.Service;
6 8  
7 9  
8 10 @Service
9 11 public class DKLInfoServiceImpl extends BaseServiceImpl<DKLInfo, Integer> implements DKLInfoService {
  12 +
  13 + @Autowired
  14 + DKLInfoRepository DKLInfoRepository;
  15 + public int updatedkl(Integer id){
  16 +
  17 + DKLInfoRepository.update(id,"1");
  18 + return 0;
  19 +
  20 + }
  21 +
10 22 }
... ...
src/main/resources/static/pages/forms/zndd/logger_dkl.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;">
  42 + <option value="">请选择线路...</option>
  43 + </select>
  44 + </div>
  45 + <!-- <div style="display: inline-block;margin-left: 24px;">
  46 + <span class="item-label" style="width: 80px;">&nbsp;时间: </span>
  47 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  48 + </div>-->
  49 + <div class="form-group">
  50 + <input class="btn btn-default" type="button" id="query" value="筛选"/><!--
  51 + <input class="btn btn-default" type="button" id="export" value="导出"/>-->
  52 + </div>
  53 + </form>
  54 + </div>
  55 + <div class="portlet-body">
  56 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  57 + <table class="table table-bordered table-hover table-checkable" id="forms">
  58 + <thead>
  59 + <tr>
  60 + <th colspan="7">智能调度执行记录</th>
  61 + </tr>
  62 +
  63 + <tr>
  64 + <td>线路名称</td>
  65 + <td>站点名称</td>
  66 + <td>方向</td>
  67 + <td>人数</td>
  68 + <td>生成班次</td>
  69 + <td>发现时间</td>
  70 + </tr>
  71 + </thead>
  72 + <tbody id="tbody">
  73 +
  74 + </tbody>
  75 + </table>
  76 + </div>
  77 + </div>
  78 + </div>
  79 + </div>
  80 +</div>
  81 +
  82 +<script>
  83 + $(function(){
  84 +
  85 + // 关闭左侧栏
  86 + if (!$('body').hasClass('page-sidebar-closed'))
  87 + $('.menu-toggler.sidebar-toggler').click();
  88 +
  89 + $("#date").datetimepicker({
  90 + format : 'YYYY-MM-DD',
  91 + locale : 'zh-cn'
  92 + });
  93 + var fage=false;
  94 + var xlList;
  95 + var obj = [];
  96 +
  97 +
  98 + $.get('/report/lineList',function(result){
  99 + xlList=result;
  100 + $.get('/user/companyData', function(result){
  101 + obj = result;
  102 + var options = '';
  103 + for(var i = 0; i < obj.length; i++){
  104 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  105 + }
  106 +
  107 + if(obj.length ==0){
  108 + $("#gsdmDiv_daily").css('display','none');
  109 + }else if(obj.length ==1){
  110 + $("#gsdmDiv_daily").css('display','none');
  111 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  112 + $('#fgsdmDiv_daily').css('display','none');
  113 + }
  114 + $('#gsdmDaily').html(options);
  115 + updateCompany();
  116 + });
  117 + })
  118 + $("#gsdmDaily").on("change",updateCompany);
  119 + function updateCompany(){
  120 + var company = $('#gsdmDaily').val();
  121 + var options = '';
  122 + for(var i = 0; i < obj.length; i++){
  123 + if(obj[i].companyCode == company){
  124 + var children = obj[i].children;
  125 + for(var j = 0; j < children.length; j++){
  126 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  127 + }
  128 + }
  129 + }
  130 + $('#fgsdmDaily').html(options);
  131 + }
  132 +
  133 + var tempData = {};
  134 + $.get('/report/lineList',function(xlList){
  135 + var data = [];
  136 + data.push({id: " ", text: "全部线路"});
  137 + $.get('/user/companyData', function(result){
  138 + for(var i = 0; i < result.length; i++){
  139 + var companyCode = result[i].companyCode;
  140 + var children = result[i].children;
  141 + for(var j = 0; j < children.length; j++){
  142 + var code = children[j].code;
  143 + for(var k=0;k < xlList.length;k++ ){
  144 + data.push({id: xlList[k]["xlbm"], text: xlList[k]["xlname"]});
  145 + tempData[xlList[k]["xlbm"]] = companyCode+":"+code;
  146 +
  147 + }
  148 + }
  149 + }
  150 + initPinYinSelect2('#line',data,'');
  151 +
  152 + });
  153 + });
  154 +
  155 + $("#line").on("change", function(){
  156 + if($("#line").val() == " "){
  157 + $("#gsdmDaily").attr("disabled", false);
  158 + $("#fgsdmDaily").attr("disabled", false);
  159 + } else {
  160 + var temp = (tempData[$("#line").val()] ? tempData[$("#line").val()] : " : ").split(":");
  161 + $("#gsdmDaily").val(temp[0]);
  162 + updateCompany();
  163 + $("#fgsdmDaily").val(temp[1]);
  164 + $("#gsdmDaily").attr("disabled", true);
  165 + $("#fgsdmDaily").attr("disabled", true);
  166 + }
  167 + });
  168 +
  169 +
  170 + var line;
  171 + var date;
  172 + var gsdmDaily;
  173 + var fgsdmDaily;
  174 + var lineName=$("#select2-line-container").html();
  175 + $("#query").on("click",function(){
  176 + /* if($("#date").val() == null || $("#date").val().trim().length == 0){
  177 + layer.msg("请选择时间");
  178 + return;
  179 + }*/
  180 + line = $("#line").val();
  181 + date = $("#date").val();
  182 + gsdmDaily=$("#gsdmDaily").val();
  183 + fgsdmDaily = $("#fgsdmDaily").val();
  184 + lineName=$("#select2-line-container").html();
  185 + var i = layer.load(2);
  186 + $get('/dkl_logger/all',{lineCode_eq:line,type:'query'},function(result){
  187 + $("#form_line").text(lineName);
  188 + $("#form_date").text(date);
  189 +
  190 + $.each(result, function(i, obj) {
  191 + obj.createDate = moment(obj.createDate).format("YYYY-MM-DD HH:mm:ss");
  192 + });
  193 +
  194 + // 把数据填充到模版中
  195 + var tbodyHtml = template('dailyInfo',{list:result});
  196 + // 把渲染好的模版html文本追加到表格中
  197 + $('#tbody').html(tbodyHtml);
  198 + layer.close(i);
  199 +
  200 + line = $("#line").val();
  201 + startDate = $("#startDate").val();
  202 + endDate = $("#endDate").val();
  203 + $("#sDate").text(startDate);
  204 + $("#eDate").text(endDate);
  205 +
  206 + var total_zgl = 0,total_ks = 0;
  207 + var total_yh = 0,total_bc = 0;
  208 +
  209 + $.each(result, function(i, obj) {
  210 + total_zgl +=Number(obj.zlc*10000);
  211 + total_ks +=Number(obj.jzl1*10000);
  212 + total_yh += Number(obj.yh*10000);
  213 + total_bc += Number(obj.bc);
  214 +
  215 + });
  216 + $("#total_zgl").text((total_zgl/10000).toFixed(3));
  217 + $("#total_ks").text((total_ks/10000).toFixed(3));
  218 + $("#total_yh").text((total_yh/10000).toFixed(2));
  219 + $("#total_bc").text(total_bc.toFixed(0));
  220 +
  221 + var temp = {};
  222 + var today_account = 0;
  223 +
  224 + temp["line"] = $("#line").text();
  225 + $.each(result, function(i, obj) {
  226 + if(moment(obj.schedule_date_str).format("YYYY-MM-DD") == moment(obj.startDate).format("YYYY-MM-DD")){
  227 + today_account++;
  228 + }
  229 + obj.updateDate = moment(obj.startDate).format("YYYY-MM-DD HH:mm:ss");
  230 + });
  231 + })
  232 + });
  233 +
  234 + $("#export").on("click",function(){
  235 + /* if($("#date").val() == null || $("#date").val().trim().length == 0){
  236 + layer.msg("请选择时间");
  237 + return;
  238 + }*/
  239 + line = $("#line").val();
  240 + date = $("#date").val();
  241 + gsdmDaily=$("#gsdmDaily").val();
  242 + fgsdmDaily = $("#fgsdmDaily").val();
  243 + lineName=$("#select2-line-container").html();
  244 + var i = layer.load(2);
  245 + $get('/logZndd/listall',{rq_eq:date,lineCode_eq:line,type:'export'},function(result){
  246 + window.open("/downloadFile/download?fileName="
  247 + +moment(date).format("YYYYMMDD")+"-"+lineName+"-班次日报表");
  248 + layer.close(i);
  249 + });
  250 + });
  251 + });
  252 +</script>
  253 +<script type="text/html" id="dailyInfo">
  254 + {{each list as obj i}}
  255 + <tr>
  256 + <td>{{obj.lineName}}</td>
  257 + <td>{{obj.stationName}}</td>
  258 + <td>
  259 + {{if obj.upDown == '0'}}
  260 + 上行
  261 + {{else if obj.upDown == '1'}}
  262 + 下行
  263 + {{/if}}
  264 + </td>
  265 + <td>{{obj.num}}</td>
  266 + <td>
  267 + {{if obj.status == '1'}}
  268 + 是
  269 + {{else}}
  270 + 否
  271 + {{/if}}
  272 + </td>
  273 +
  274 + <td>{{obj.createDate}}</td>
  275 + </tr>
  276 + {{/each}}
  277 + {{if list.length == 0}}
  278 + <tr>
  279 + <td colspan="7"><h6 class="muted">没有找到相关数据</h6></td>
  280 + </tr>
  281 + {{/if}}
  282 +</script>
0 283 \ No newline at end of file
... ...
src/main/resources/static/pages/permission/authorize_all/user_auth.html
... ... @@ -59,6 +59,7 @@
59 59 <li><label><input class="uk-checkbox" type="checkbox" data-event="form_repairReport"> 维修上报记录</label></li>
60 60 <li><label><input class="uk-checkbox" type="checkbox" data-event="form_loggerr_zndd"> 智能调度日志</label></li>
61 61 <li><label><input class="uk-checkbox" type="checkbox" data-event="form_message_two"> 调度消息分析</label></li>
  62 + <li><label><input class="uk-checkbox" type="checkbox" data-event="form_loggerr_dkl"> 大客流执行日志</label></li>
62 63  
63 64 </ul>
64 65 </div>
... ...
src/main/resources/static/real_control_v2/js/data/json/north_toolbar.json
... ... @@ -146,6 +146,13 @@
146 146 "event": "form_message_two",
147 147 "icon": "uk-icon-table"
148 148 }
  149 + ,
  150 + {
  151 + "id": 2.9,
  152 + "text": "大客流执行记录",
  153 + "event": "form_loggerr_dkl",
  154 + "icon": "uk-icon-table"
  155 + }
149 156 ]
150 157 },
151 158 {
... ...
src/main/resources/static/real_control_v2/js/north/toolbar.js
... ... @@ -291,6 +291,10 @@ var gb_northToolbar = (function () {
291 291 gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/zndd/logger_zndd.html', '智能调度执行记录');
292 292 },
293 293  
  294 + form_loggerr_dkl: function () {
  295 + gb_embed_form_hanlde.open_modal_form_fragment('/pages/forms/zndd/logger_dkl.html', '大客流执行记录');
  296 + },
  297 +
294 298 sch_edit_qjgz: function () {
295 299 open_modal('/real_control_v2/zndd/qjgz/list.html', {}, modal_opts);
296 300 },
... ...
src/main/resources/static/real_control_v2/zndd/type/dkl.html
... ... @@ -476,7 +476,10 @@
476 476 open_modal(folder + '/yanshi.html', {
477 477 }, {center: true, bgclose: false, modal: true});*/
478 478 //添加成功后添加车辆监控消息
479   - gb_common.$post('/logZndd/addMessage', rs, function (ks) {}, err);
  479 + //更新大客流是否加入信息dklid
  480 + $.post('/dkl_logger/updatedkl/'+sch.dklid,function(dklll){})
  481 +
  482 + // gb_common.$post('/logZndd/addMessage', rs, function (ks) {}, err);
480 483  
481 484 }, err);
482 485 //手动提交的时候清除一下,防止二次提交
... ...