Commit b9939f3cd00d1bb71e3575a3cce3d2095851097a
1 parent
b1952d3e
update
Showing
5 changed files
with
99 additions
and
26 deletions
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<SchedulePlan, Long> | @@ -59,7 +52,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl<SchedulePlan, Long> | ||
| 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('ScheduleApp').controller('TimeTableDetailManageCtrl', ['TimeTabl | @@ -70,13 +70,13 @@ angular.module('ScheduleApp').controller('TimeTableDetailManageCtrl', ['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('ScheduleApp').controller('TimeTableDetailManageCtrl', ['TimeTabl | @@ -113,6 +113,30 @@ angular.module('ScheduleApp').controller('TimeTableDetailManageCtrl', ['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) { |