Commit 73ea71bccb9723a0566f7eb242af5eb2bc9b8ea1

Authored by 娄高锋
1 parent 89f37220

调度日报添加各种空驶公里列;统计日报标红逻辑改为以总公里计算且以日期划分;

src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -175,6 +175,10 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI
175 175 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
176 176 @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and s.scheduleDateStr = ?2 and s.bcType not in ('in','out','ldks') order by s.xlBm,s.realExecDate,s.fcsj")
177 177 List<ScheduleRealInfo> scheduleByDateAndLine2(String line,String date);
  178 +
  179 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  180 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and s.scheduleDateStr = ?2 order by s.xlBm,s.realExecDate,s.fcsj")
  181 + List<ScheduleRealInfo> scheduleByDateAndLine2_all(String line,String date);
178 182  
179 183 //按月统计
180 184 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -2708,10 +2708,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2708 2708 public List<Map<String, Object>> statisticsDaily(String line, String date,
2709 2709 String xlName, String type) {
2710 2710 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>();
2711   - List<ScheduleRealInfo> list_s = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);
  2711 + List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine2_all(line, date);
2712 2712 List<ScheduleRealInfo> lists = new ArrayList<ScheduleRealInfo>();
2713   - for (int i = 0; i < list_s.size(); i++) {
2714   - ScheduleRealInfo s = list_s.get(i);
  2713 + for (int i = 0; i < list.size(); i++) {
  2714 + ScheduleRealInfo s = list.get(i);
2715 2715 Set<ChildTaskPlan> cts = s.getcTasks();
2716 2716 if (cts != null && cts.size() > 0) {
2717 2717 lists.add(s);
... ... @@ -2723,33 +2723,48 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2723 2723 }
2724 2724 Map<String, Object> map = new HashMap<String, Object>();
2725 2725 map.put("xlName", xlName);
2726   - double jhlc = culateService.culateJhgl(list_s);
  2726 + double jhlc = culateService.culateJhgl(list);
  2727 + double jhkslc = culateService.culateJhJccgl(list); // //计划进出场公里(计划空驶公里)
  2728 + double sjgl = Arith.add(culateService.culateSjgl(lists), culateService.culateLjgl(lists));
  2729 + double sjjccgl = culateService.culateJccgl(lists);
  2730 + double sjksgl = culateService.culateKsgl(lists);
  2731 + double zksgl = Arith.add(sjjccgl, sjksgl);
2727 2732 map.put("jhlc", jhlc);
2728   - map.put("sjgl", Arith.add(culateService.culateSjgl(lists), culateService.culateLjgl(lists)));
2729   - double lbgl = culateService.culateLbgl(list_s);
  2733 + map.put("jhkslc", jhkslc);
  2734 + map.put("jhzlc", Arith.add(jhlc, jhkslc));
  2735 + map.put("sjgl", sjgl);
  2736 + map.put("sjksgl", zksgl);
  2737 + map.put("sjzgl", Arith.add(sjgl, zksgl));
  2738 + double lbgl = culateService.culateLbgl(list);
  2739 + double lbksgl = culateService.culateLbksgl(list);
2730 2740 map.put("ssgl", lbgl);
2731   - map.put("ssgl_lz", culateService.culateCJLC(list_s, "路阻"));
2732   - map.put("ssgl_dm", culateService.culateCJLC(list_s, "吊慢"));
2733   - map.put("ssgl_gz", culateService.culateCJLC(list_s, "故障"));
2734   - map.put("ssgl_jf", culateService.culateCJLC(list_s, "纠纷"));
2735   - map.put("ssgl_zs", culateService.culateCJLC(list_s, "肇事"));
2736   - map.put("ssgl_qr", culateService.culateCJLC(list_s, "缺人"));
2737   - map.put("ssgl_qc", culateService.culateCJLC(list_s, "缺车"));
2738   - map.put("ssgl_kx", culateService.culateCJLC(list_s, "客稀"));
2739   - map.put("ssgl_qh", culateService.culateCJLC(list_s, "气候"));
2740   - map.put("ssgl_yw", culateService.culateCJLC(list_s, "援外"));
2741   - map.put("ssgl_ljpm", culateService.culateCJLC(list_s, "路救抛锚"));
2742   - double ssgl_pc = culateService.culateCJLC(list_s, "配车");
2743   - double ssgl_by = culateService.culateCJLC(list_s, "保养");
2744   - double ssgl_cj = culateService.culateCJLC(list_s, "抽减");
2745   - double ssgl_qt = culateService.culateCJLC(list_s, "其他");
  2741 + map.put("ssksgl", lbksgl); // 202508根据工单需求添加“少驶空驶公里”
  2742 + map.put("ssgl_lz", culateService.culateCJLC(list, "路阻"));
  2743 + map.put("ssgl_dm", culateService.culateCJLC(list, "吊慢"));
  2744 + map.put("ssgl_gz", culateService.culateCJLC(list, "故障"));
  2745 + map.put("ssgl_jf", culateService.culateCJLC(list, "纠纷"));
  2746 + map.put("ssgl_zs", culateService.culateCJLC(list, "肇事"));
  2747 + map.put("ssgl_qr", culateService.culateCJLC(list, "缺人"));
  2748 + map.put("ssgl_qc", culateService.culateCJLC(list, "缺车"));
  2749 + map.put("ssgl_kx", culateService.culateCJLC(list, "客稀"));
  2750 + map.put("ssgl_qh", culateService.culateCJLC(list, "气候"));
  2751 + map.put("ssgl_yw", culateService.culateCJLC(list, "援外"));
  2752 + map.put("ssgl_ljpm", culateService.culateCJLC(list, "路救抛锚"));
  2753 + double ssgl_pc = culateService.culateCJLC(list, "配车");
  2754 + double ssgl_by = culateService.culateCJLC(list, "保养");
  2755 + double ssgl_cj = culateService.culateCJLC(list, "抽减");
  2756 + double ssgl_qt = culateService.culateCJLC(list, "其他");
2746 2757 map.put("ssgl_other", Arith.add(Arith.add(ssgl_pc, ssgl_by), Arith.add(ssgl_cj, ssgl_qt)));
2747   - map.put("ssbc", culateService.culateLbbc(list_s));
  2758 + map.put("ssbc", culateService.culateLbbc(list));
2748 2759 double ljgl = culateService.culateLjgl(lists);
  2760 + double ljks=culateService.culateLjksgl(lists);
  2761 + double zrwJcc = culateService.culateZrwJccLc(lists, "all"); // 子任务进出场
  2762 + double zrwKfks = culateService.culateZrwKfks(lists); // 子任务空放空驶
2749 2763 map.put("ljgl", ljgl);
2750   - map.put("jhbc", culateService.culateJhbc(list_s, ""));
2751   - map.put("jhbc_m", culateService.culateJhbc(list_s, "zgf"));
2752   - map.put("jhbc_a", culateService.culateJhbc(list_s, "wgf"));
  2764 + map.put("ljks", Arith.add(Arith.add(ljks, zrwJcc), zrwKfks)); // 202508根据工单需求添加“临加空驶”中而外算上子任务进出场公里。
  2765 + map.put("jhbc", culateService.culateJhbc(list, ""));
  2766 + map.put("jhbc_m", culateService.culateJhbc(list, "zgf"));
  2767 + map.put("jhbc_a", culateService.culateJhbc(list, "wgf"));
2753 2768 map.put("sjbc", culateService.culateSjbc(lists, ""));
2754 2769 map.put("sjbc_m", culateService.culateSjbc(lists, "zgf"));
2755 2770 map.put("sjbc_a", culateService.culateSjbc(lists, "wgf"));
... ... @@ -2770,7 +2785,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2770 2785 map.put("djg_a", c.getDjgWgf());
2771 2786 map.put("djg_time", c.getDjgTime());
2772 2787 }else{
2773   - Map<String, Object> m = culateService.culateDjg(list_s, line);
  2788 + Map<String, Object> m = culateService.culateDjg(list, line);
2774 2789 map.put("djg", m.get("djgcsq"));
2775 2790 map.put("djg_m", m.get("djgcsz"));
2776 2791 map.put("djg_a", m.get("djgcsw"));
... ... @@ -2781,11 +2796,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2781 2796 lMap.add(map);
2782 2797  
2783 2798 if (date.length() == 10) {
2784   - List<DutyEmployee> list = dutyEmployeeService.getDutyEmployee(line, date + "00:01", date + "23:59");
  2799 + List<DutyEmployee> listDuty = dutyEmployeeService.getDutyEmployee(line, date + "00:01", date + "23:59");
2785 2800 String dbdp = "";
2786 2801 try {
2787   - for (int i = 0; i < list.size(); i++) {
2788   - DutyEmployee t = list.get(i);
  2802 + for (int i = 0; i < listDuty.size(); i++) {
  2803 + DutyEmployee t = listDuty.get(i);
2789 2804 if (dbdp.indexOf(t.getuName()) == -1) {
2790 2805 if (!(dbdp.length() > 0)) {
2791 2806 dbdp = t.getuName();
... ... @@ -2910,9 +2925,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2910 2925 }
2911 2926 double jhyygl = culateService.culateJhgl(list);//计划营运公里
2912 2927 double jhjcclc = culateService.culateJhJccgl(list);//计划进出场公里(计划空驶公里)
  2928 + double jhzlc = Arith.add(jhyygl, jhjcclc);
2913 2929 map.put("jhlc", jhyygl);
2914 2930 map.put("jcclc", jhjcclc);
2915   - map.put("jhzlc", Arith.add(jhyygl, jhjcclc));
  2931 + map.put("jhzlc", jhzlc);
2916 2932 double ljks=culateService.culateLjksgl(lists);
2917 2933 double zrwJcc = culateService.culateZrwJccLc(lists, "all"); // 子任务进出场
2918 2934 double zrwKfks = culateService.culateZrwKfks(lists); // 子任务空放空驶
... ... @@ -2924,17 +2940,24 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2924 2940 double sjjccgl = culateService.culateJccgl(lists);
2925 2941 double sjksgl = culateService.culateKsgl(lists);
2926 2942 double zksgl = Arith.add(sjjccgl, sjksgl);
2927   - map.put("sjzgl", Arith.add(zyygl, zksgl));
  2943 + double sjzgl = Arith.add(zyygl, zksgl);
2928 2944 map.put("sjgl", zyygl);
2929 2945 map.put("sjksgl", zksgl);
  2946 + map.put("sjzgl", sjzgl);
2930 2947 double ssgl = culateService.culateLbgl(list);
2931 2948 double ssksgl = culateService.culateLbksgl(list);
2932 2949 map.put("ssgl", ssgl);
2933 2950 map.put("ssksgl", ssksgl); // 202508根据工单需求添加“少驶空驶公里”
2934 2951  
2935   - //计划+临加-少驶=实驶
2936   - double jl = Arith.sub(Arith.add(jhyygl, ljgl), ssgl);
2937   - if (jl == zyygl) {
  2952 +// //计划+临加-少驶=实驶
  2953 +// double jl = Arith.sub(Arith.add(jhyygl, ljgl), ssgl);
  2954 +// if (jl == zyygl) {
  2955 +// map.put("zt", 0);
  2956 +// } else {
  2957 +// map.put("zt", 1);
  2958 +// }
  2959 + double jl = Arith.sub(Arith.sub(Arith.add(Arith.add(jhzlc, ljgl), ljks), ssgl), ssksgl); // 202508工单需求,以总公里和日期计算是否标红。
  2960 + if (jl == sjzgl) {
2938 2961 map.put("zt", 0);
2939 2962 } else {
2940 2963 map.put("zt", 1);
... ... @@ -3306,9 +3329,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3306 3329 map.put("gsName", "");
3307 3330 double jhyygl = culateService.culateJhgl(list);//计划营运公里
3308 3331 double jhjcclc = culateService.culateJhJccgl(list);//计划进出场公里(计划空驶公里)
  3332 + double jhzlc = Arith.add(jhyygl, jhjcclc);
3309 3333 map.put("jhlc", jhyygl);
3310 3334 map.put("jcclc", jhjcclc);
3311   - map.put("jhzlc", Arith.add(jhyygl, jhjcclc));
  3335 + map.put("jhzlc", jhzlc);
3312 3336  
3313 3337 double ljgl = culateService.culateLjgl(list_s);
3314 3338 double sjyygl = culateService.culateSjgl(list_s);
... ... @@ -3320,17 +3344,25 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3320 3344 double sjjccgl = culateService.culateJccgl(list_s);
3321 3345 double sjksgl = culateService.culateKsgl(list_s);
3322 3346 double zksgl = Arith.add(sjjccgl, sjksgl);
3323   - map.put("sjzgl", Arith.add(zyygl, zksgl));
  3347 + double sjzgl = Arith.add(zyygl, zksgl);
3324 3348 map.put("sjgl", zyygl);
3325 3349 map.put("sjksgl", zksgl);
  3350 + map.put("sjzgl", sjzgl);
3326 3351  
3327 3352 double ssgl = culateService.culateLbgl(list);
3328 3353 double ssksgl = culateService.culateLbksgl(list);
3329 3354 map.put("ssgl", ssgl);
3330 3355 map.put("ssksgl", ssksgl); // 202508根据工单需求添加“少驶空驶公里”
3331   - //计划+临加-少驶=实驶
3332   - double jl = Arith.sub(Arith.add(jhyygl, ljgl), ssgl);
3333   - if (jl == zyygl) {
  3356 +// //计划营运+临加营运-少驶营运=实驶营运
  3357 +// double jl = Arith.sub(Arith.add(jhyygl, ljgl), ssgl);
  3358 +// if (jl == zyygl) {
  3359 +// map.put("zt", 0);
  3360 +// } else {
  3361 +// map.put("zt", 1);
  3362 +// }
  3363 + //计划总公里+临加总公里-少驶总公里=实驶总公里
  3364 + double jl = Arith.sub(Arith.sub(Arith.add(Arith.add(jhzlc, ljgl), ljks), ssgl), ssksgl); // 202508工单需求,以总公里和日期计算是否标红。
  3365 + if (jl == sjzgl) {
3334 3366 map.put("zt", 0);
3335 3367 } else {
3336 3368 map.put("zt", 1);
... ... @@ -3401,6 +3433,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3401 3433 }
3402 3434 lMap.add(map);
3403 3435  
  3436 + for(Map<String, Object> m : lMap){
  3437 + m.put("startDate", date);
  3438 + m.put("endDate", date2);
  3439 + }
  3440 +
3404 3441 if (type != null && type.length() != 0 && type.equals("export")) {
3405 3442 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
3406 3443 sdfSimple = new SimpleDateFormat("yyyyMMdd");
... ...
src/main/resources/static/pages/forms/mould/scheduleDaily.xls
No preview for this file type
src/main/resources/static/pages/forms/statement/scheduleDaily.html
... ... @@ -66,21 +66,21 @@
66 66 <table class="table table-bordered table-hover table-checkable" id="forms">
67 67 <thead>
68 68 <tr>
69   - <th colspan="41"><label id="xlmc"></label>线路调度日报</th>
  69 + <th colspan="45"><label id="xlmc"></label>线路调度日报</th>
70 70 </tr>
71 71 <tr>
72 72 <td rowspan="3"><span>路线</span></td>
73   - <td colspan="17">全日营运里程(公里)</td>
  73 + <td colspan="21">全日营运里程(公里)</td>
74 74 <td colspan="15">全日营运班次</td>
75 75 <td colspan="9">大间隔情况</td>
76 76 </tr>
77 77 <tr>
78   - <td rowspan="2"><span >计划</span></td>
79   - <td rowspan="2"><span >实驶</span></td>
80   - <td rowspan="2"><span>少驶公里</span></td>
  78 + <td colspan="2"><span>计划公里</span></td>
  79 + <td colspan="2"><span>实驶公里</span></td>
  80 + <td colspan="2"><span>少驶公里</span></td>
81 81 <td rowspan="2"><span>少驶班次</span></td>
82 82 <td colspan="12">少驶原因(公里)</td>
83   - <td rowspan="2"><span >临加公里</span></td>
  83 + <td colspan="2"><span >临加公里</span></td>
84 84 <td colspan="3">计划班次</td>
85 85 <td colspan="3">实际班次</td>
86 86 <td colspan="3">临加班次</td>
... ... @@ -91,6 +91,12 @@
91 91 <td colspan="5" rowspan="2">原因</td>
92 92 </tr>
93 93 <tr>
  94 + <td><span>营运</span></td>
  95 + <td><span>空驶</span></td>
  96 + <td><span>营运</span></td>
  97 + <td><span>空驶</span></td>
  98 + <td><span>营运</span></td>
  99 + <td><span>空驶</span></td>
94 100 <td><span>路阻</span></td>
95 101 <td><span>吊慢</span></td>
96 102 <td><span>故障</span></td>
... ... @@ -103,6 +109,8 @@
103 109 <td><span>援外</span></td>
104 110 <td><span>路救抛锚</span></td>
105 111 <td><span>其他</span></td>
  112 + <td><span>营运</span></td>
  113 + <td><span>空驶</span></td>
106 114 <td><span>全日</span></td>
107 115 <td><span>早高峰</span></td>
108 116 <td><span>晚高峰</span></td>
... ... @@ -530,8 +538,11 @@
530 538 <tr >
531 539 <td>{{obj.xlName}}</td>
532 540 <td>{{obj.jhlc}}</td>
  541 + <td>{{obj.jhkslc}}</td>
533 542 <td>{{obj.sjgl}}</td>
  543 + <td>{{obj.sjksgl}}</td>
534 544 <td>{{obj.ssgl}}</td>
  545 + <td>{{obj.ssksgl}}</td>
535 546 <td>{{obj.ssbc}}</td>
536 547 <td>{{obj.ssgl_lz}}</td>
537 548 <td>{{obj.ssgl_dm}}</td>
... ... @@ -546,6 +557,7 @@
546 557 <td>{{obj.ssgl_ljpm}}</td>
547 558 <td>{{obj.ssgl_other}}</td>
548 559 <td>{{obj.ljgl}}</td>
  560 + <td>{{obj.ljks}}</td>
549 561 <td>{{obj.jhbc}}</td>
550 562 <td>{{obj.jhbc_m}}</td>
551 563 <td>{{obj.jhbc_a}}</td>
... ... @@ -570,7 +582,7 @@
570 582 {{/each}}
571 583 {{if list.length == 0}}
572 584 <tr>
573   - <td colspan="41"><h6 class="muted">没有找到相关数据</h6></td>
  585 + <td colspan="45"><h6 class="muted">没有找到相关数据</h6></td>
574 586 </tr>
575 587 {{/if}}
576 588 </script>
... ...
src/main/resources/static/pages/forms/statement/statisticsDaily.html
... ... @@ -328,6 +328,14 @@
328 328 params['type'] = "query";
329 329 var i = layer.load(2);
330 330 $get('/realSchedule/statisticsDailyTj',params,function(result){
  331 +
  332 + $.each(result, function(i, e){
  333 + console.log(e);
  334 + if(e && e.startDate && e.startDate >= '2025-09-20'){
  335 + e.zt = 0; // 要求从更新后开始的数据才标红。
  336 + }
  337 + });
  338 +
331 339 // 把数据填充到模版中
332 340 var tbodyHtml = template('statisticsDaily',{list:result});
333 341 // 把渲染好的模版html文本追加到表格中
... ...