Commit b9939f3cd00d1bb71e3575a3cce3d2095851097a

Authored by 徐烜
1 parent b1952d3e

update

src/main/java/com/bsth/service/schedule/SchedulePlanServiceImpl.java
@@ -41,16 +41,9 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long> @@ -41,16 +41,9 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long>
41 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED) 41 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
42 @Override 42 @Override
43 public Map<String, Object> save(SchedulePlan schedulePlan) { 43 public Map<String, Object> save(SchedulePlan schedulePlan) {
44 - // 查询参数  
45 - Map<String, Object> param = new HashMap<>();  
46 -  
47 - // 1、查出指定线路的所有规则  
48 - Line xl = lineService.findById(schedulePlan.getXl().getId()); // 查找线路具体信息  
49 - param.clear();  
50 - param.put("xl.id_eq", xl.getId());  
51 - Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param);  
52 - if (!scheduleRule1FlatIterable.iterator().hasNext())  
53 - throw new RuntimeException("线路:" + xl.getName() + " 没有配置规则!"); 44 + // 1-1、查找线路具体信息
  45 + Line xl = strategy.getLine(schedulePlan.getXl().getId());
  46 + // 1-2、查出指定线路的所有规则
54 TTInfo ttInfo = strategy.getTTInfo(xl.getId()); // 时刻表id 47 TTInfo ttInfo = strategy.getTTInfo(xl.getId()); // 时刻表id
55 schedulePlan.setTtInfo(ttInfo); // 关联的时刻表 48 schedulePlan.setTtInfo(ttInfo); // 关联的时刻表
56 49
@@ -59,7 +52,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt; @@ -59,7 +52,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
59 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input(schedulePlan); 52 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input(schedulePlan);
60 // 每个规则对应的输入参数 53 // 每个规则对应的输入参数
61 List<ScheduleRule_input> scheduleRule_inputs = new ArrayList<>(); 54 List<ScheduleRule_input> scheduleRule_inputs = new ArrayList<>();
62 - Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = scheduleRule1FlatIterable.iterator(); 55 + Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = strategy.getScheduleRule(xl.getId()).iterator();
63 while (scheduleRule1FlatIterator.hasNext()) { 56 while (scheduleRule1FlatIterator.hasNext()) {
64 ScheduleRule1Flat scheduleRule1Flat_temp = scheduleRule1FlatIterator.next(); 57 ScheduleRule1Flat scheduleRule1Flat_temp = scheduleRule1FlatIterator.next();
65 ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat_temp); 58 ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat_temp);
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategy.java
1 package com.bsth.service.schedule.rules.strategy; 1 package com.bsth.service.schedule.rules.strategy;
2 2
  3 +import com.bsth.entity.Line;
3 import com.bsth.entity.schedule.CarConfigInfo; 4 import com.bsth.entity.schedule.CarConfigInfo;
4 import com.bsth.entity.schedule.EmployeeConfigInfo; 5 import com.bsth.entity.schedule.EmployeeConfigInfo;
5 import com.bsth.entity.schedule.TTInfo; 6 import com.bsth.entity.schedule.TTInfo;
6 import com.bsth.entity.schedule.TTInfoDetail; 7 import com.bsth.entity.schedule.TTInfoDetail;
  8 +import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
7 import com.google.common.collect.Multimap; 9 import com.google.common.collect.Multimap;
8 10
9 import java.util.Map; 11 import java.util.Map;
@@ -14,28 +16,42 @@ import java.util.Map; @@ -14,28 +16,42 @@ import java.util.Map;
14 public interface IStrategy { 16 public interface IStrategy {
15 17
16 /** 18 /**
17 - * 查找指定线路下,可用的时刻表; 19 + * 获取线路信息。
  20 + * @param xlId 线路id
  21 + * @return
  22 + */
  23 + Line getLine(Integer xlId);
  24 +
  25 + /**
  26 + * 获取指定线路下,可用的时刻表。
18 * @param xlId 线路id 27 * @param xlId 线路id
19 * @return 时刻表 28 * @return 时刻表
20 */ 29 */
21 TTInfo getTTInfo(Integer xlId); 30 TTInfo getTTInfo(Integer xlId);
22 31
23 /** 32 /**
24 - * 查找指定线路下,路牌与时刻明细对应的Map。 33 + * 获取指定线路下,可用的排班规则。
  34 + * @param xlId
  35 + * @return
  36 + */
  37 + Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId);
  38 +
  39 + /**
  40 + * 获取指定线路下,路牌与时刻明细对应的Map。
25 * @param xlId 线路id 41 * @param xlId 线路id
26 * @return 路牌id为key,时刻明细 Collection<TTInfoDetail> 为value 42 * @return 路牌id为key,时刻明细 Collection<TTInfoDetail> 为value
27 */ 43 */
28 Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId); 44 Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId);
29 45
30 /** 46 /**
31 - * 查找指定线路下,车辆配置与车辆信息对应的Map。 47 + * 获取指定线路下,车辆配置与车辆信息对应的Map。
32 * @param xlId 线路id 48 * @param xlId 线路id
33 * @return 车辆配置id为key,具体车辆配置信息为value。 49 * @return 车辆配置id为key,具体车辆配置信息为value。
34 */ 50 */
35 Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId); 51 Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId);
36 52
37 /** 53 /**
38 - * 查找指定线路下,人员配置与人员对应的Map。 54 + * 获取指定线路下,人员配置与人员对应的Map。
39 * @param xlId 线路id 55 * @param xlId 线路id
40 * @return 人员配置id为key,具体人员配置信息为value。 56 * @return 人员配置id为key,具体人员配置信息为value。
41 */ 57 */
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategyImpl.java
1 package com.bsth.service.schedule.rules.strategy; 1 package com.bsth.service.schedule.rules.strategy;
2 2
  3 +import com.bsth.entity.Line;
3 import com.bsth.entity.schedule.CarConfigInfo; 4 import com.bsth.entity.schedule.CarConfigInfo;
4 import com.bsth.entity.schedule.EmployeeConfigInfo; 5 import com.bsth.entity.schedule.EmployeeConfigInfo;
5 import com.bsth.entity.schedule.TTInfo; 6 import com.bsth.entity.schedule.TTInfo;
6 import com.bsth.entity.schedule.TTInfoDetail; 7 import com.bsth.entity.schedule.TTInfoDetail;
7 -import com.bsth.service.schedule.CarConfigInfoService;  
8 -import com.bsth.service.schedule.EmployeeConfigInfoService;  
9 -import com.bsth.service.schedule.TTInfoDetailService;  
10 -import com.bsth.service.schedule.TTInfoService; 8 +import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  9 +import com.bsth.service.LineService;
  10 +import com.bsth.service.schedule.*;
11 import com.google.common.collect.ArrayListMultimap; 11 import com.google.common.collect.ArrayListMultimap;
12 import com.google.common.collect.Multimap; 12 import com.google.common.collect.Multimap;
13 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,12 +30,22 @@ public class IStrategyImpl implements IStrategy { @@ -30,12 +30,22 @@ public class IStrategyImpl implements IStrategy {
30 private EmployeeConfigInfoService employeeConfigInfoService; 30 private EmployeeConfigInfoService employeeConfigInfoService;
31 @Autowired 31 @Autowired
32 private TTInfoDetailService ttInfoDetailService; 32 private TTInfoDetailService ttInfoDetailService;
  33 + @Autowired
  34 + private LineService lineService;
  35 + @Autowired
  36 + private ScheduleRule1FlatService scheduleRule1FlatService;
  37 +
  38 + @Override
  39 + public Line getLine(Integer xlId) {
  40 + Line xl = lineService.findById(xlId); // 查找线路具体信息
  41 + return xl;
  42 + }
33 43
34 @Override 44 @Override
35 public TTInfo getTTInfo(Integer xlId) { 45 public TTInfo getTTInfo(Integer xlId) {
36 // TODO:本来要使用规则判定到底使用哪张时刻表,这里选用第一张 46 // TODO:本来要使用规则判定到底使用哪张时刻表,这里选用第一张
37 - // 查询参数  
38 - Map<String, Object> param = new HashMap<>(); 47 + Map<String, Object> param = new HashMap<>(); // 查询参数
  48 + param.clear();
39 param.put("xl.id_eq", xlId); // 线路id 49 param.put("xl.id_eq", xlId); // 线路id
40 param.put("isCancel_eq", false); // 没有作废 50 param.put("isCancel_eq", false); // 没有作废
41 param.put("isEnableDisTemplate_eq", true); // 是否启用 51 param.put("isEnableDisTemplate_eq", true); // 是否启用
@@ -47,6 +57,19 @@ public class IStrategyImpl implements IStrategy { @@ -47,6 +57,19 @@ public class IStrategyImpl implements IStrategy {
47 } 57 }
48 58
49 @Override 59 @Override
  60 + public Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId) {
  61 + Map<String, Object> param = new HashMap<>(); // 查询参数
  62 + Line xl = lineService.findById(xlId); // 查找线路具体信息
  63 + param.clear();
  64 + param.put("xl.id_eq", xl.getId());
  65 + Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param);
  66 + if (!scheduleRule1FlatIterable.iterator().hasNext())
  67 + throw new RuntimeException("线路:" + xl.getName() + " 没有配置规则!");
  68 +
  69 + return scheduleRule1FlatIterable;
  70 + }
  71 +
  72 + @Override
50 public Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId) { 73 public Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId) {
51 TTInfo ttInfo = getTTInfo(xlId); 74 TTInfo ttInfo = getTTInfo(xlId);
52 // 查询参数 75 // 查询参数
src/main/resources/static/pages/scheduleApp/module/core/timeTableManage/detail_info.html
@@ -119,21 +119,38 @@ @@ -119,21 +119,38 @@
119 </li> 119 </li>
120 <li class="divider"></li> 120 <li class="divider"></li>
121 <li> 121 <li>
122 - <a href="javascript:" class="tool-action" ng-click="ctrl.changeDirect(cell)"> 122 + <a href="javascript:" class="tool-action" ng-click="ctrl.changeDirect(cell, 0)">
123 <i class="fa fa-file-excel-o"></i> 123 <i class="fa fa-file-excel-o"></i>
124 - 设置反向 124 + 设为上行
  125 + <i class="fa fa-arrow-up" aria-hidden="true"></i>
  126 + </a>
  127 + </li>
  128 + <li>
  129 + <a href="javascript:" class="tool-action" ng-click="ctrl.changeDirect(cell, 1)">
  130 + <i class="fa fa-file-excel-o"></i>
  131 + 设为下行
  132 + <i class="fa fa-arrow-down" aria-hidden="true"></i>
125 </a> 133 </a>
126 </li> 134 </li>
127 <li> 135 <li>
128 <a href="javascript:" class="tool-action" ng-click="ctrl.changeFB(cell, true)"> 136 <a href="javascript:" class="tool-action" ng-click="ctrl.changeFB(cell, true)">
129 <i class="fa fa-file-excel-o"></i> 137 <i class="fa fa-file-excel-o"></i>
130 设置分班 138 设置分班
  139 + <i class="fa fa-adjust" aria-hidden="true"></i>
131 </a> 140 </a>
132 </li> 141 </li>
133 <li> 142 <li>
134 <a href="javascript:" class="tool-action" ng-click="ctrl.changeFB(cell, false)"> 143 <a href="javascript:" class="tool-action" ng-click="ctrl.changeFB(cell, false)">
135 <i class="fa fa-file-excel-o"></i> 144 <i class="fa fa-file-excel-o"></i>
136 取消分班 145 取消分班
  146 + <i class="fa fa-adjust" aria-hidden="true"></i>
  147 + </a>
  148 + </li>
  149 + <li>
  150 + <a href="javascript:" class="tool-action" ng-click="ctrl.changeBCType(cell, 'region')">
  151 + <i class="fa fa-file-excel-o"></i>
  152 + 设为区间
  153 + <i class="fa fa-circle-o-notch" aria-hidden="true"></i>
137 </a> 154 </a>
138 </li> 155 </li>
139 156
src/main/resources/static/pages/scheduleApp/module/core/timeTableManage/timeTableDetailManage.js
@@ -70,13 +70,13 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;TimeTableDetailManageCtrl&#39;, [&#39;TimeTabl @@ -70,13 +70,13 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;TimeTableDetailManageCtrl&#39;, [&#39;TimeTabl
70 * 反向操作。 70 * 反向操作。
71 * @param cell 明细信息 71 * @param cell 明细信息
72 */ 72 */
73 - self.changeDirect = function(detailInfo) { 73 + self.changeDirect = function(detailInfo, xldir) {
74 timeTableDetailManageService.getDetail(detailInfo.ttdid).then( 74 timeTableDetailManageService.getDetail(detailInfo.ttdid).then(
75 function(result) { 75 function(result) {
76 - result.xlDir = result.xlDir == "0" ? "1" : "0"; 76 + result.xlDir = xldir;
77 timeTableDetailManageService.saveDetail(result).then( 77 timeTableDetailManageService.saveDetail(result).then(
78 function(result) { 78 function(result) {
79 - detailInfo.xldir = detailInfo.xldir == "0" ? "1" : "0"; 79 + detailInfo.xldir = xldir;
80 }, 80 },
81 function(result) { 81 function(result) {
82 alert("出错啦!"); 82 alert("出错啦!");
@@ -113,6 +113,30 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;TimeTableDetailManageCtrl&#39;, [&#39;TimeTabl @@ -113,6 +113,30 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;TimeTableDetailManageCtrl&#39;, [&#39;TimeTabl
113 ); 113 );
114 }; 114 };
115 115
  116 + /**
  117 + * 改变便次类型。
  118 + * @param detailInfo 明细信息
  119 + * @param type 班次类型
  120 + */
  121 + self.changeBCType = function(detailInfo, type) {
  122 + timeTableDetailManageService.getDetail(detailInfo.ttdid).then(
  123 + function(result) {
  124 + result.bcType = type;
  125 + timeTableDetailManageService.saveDetail(result).then(
  126 + function(result) {
  127 + detailInfo.bc_type = type;
  128 + },
  129 + function(result) {
  130 + alert("出错啦!");
  131 + }
  132 + );
  133 + },
  134 + function(result) {
  135 + alert("出错啦!");
  136 + }
  137 + );
  138 + };
  139 +
116 }]); 140 }]);
117 141
118 angular.module('ScheduleApp').controller('TimeTableDetailManageFormCtrl', ['TimeTableDetailManageService', '$stateParams', '$state', function(timeTableDetailManageService, $stateParams, $state) { 142 angular.module('ScheduleApp').controller('TimeTableDetailManageFormCtrl', ['TimeTableDetailManageService', '$stateParams', '$state', function(timeTableDetailManageService, $stateParams, $state) {