Commit 8fc62e94 authored by duwei's avatar duwei

加注释

parent eb220b3d
...@@ -577,6 +577,12 @@ public class PlanSendServiceImpl implements PlanSendService { ...@@ -577,6 +577,12 @@ public class PlanSendServiceImpl implements PlanSendService {
} }
} }
/**
* 根据给定的路口 ID 和时间,查询该路口在该时间点所应执行的信号控制方案
* (PhaseScheme),并封装成一个 PhaseListByTimeVO 返回。
* @param crossIdAndTimeDTO 路口ID 和时间
* @return
*/
@Override @Override
public PhaseListByTimeVO phaseListByTime(CrossIdAndTimeDTO crossIdAndTimeDTO) { public PhaseListByTimeVO phaseListByTime(CrossIdAndTimeDTO crossIdAndTimeDTO) {
PhaseListByTimeVO phaseListByTimeVO = new PhaseListByTimeVO(); PhaseListByTimeVO phaseListByTimeVO = new PhaseListByTimeVO();
...@@ -585,15 +591,22 @@ public class PlanSendServiceImpl implements PlanSendService { ...@@ -585,15 +591,22 @@ public class PlanSendServiceImpl implements PlanSendService {
String dateStr = sdf.format(datetime); String dateStr = sdf.format(datetime);
CrossIdBO crossIdBO = new CrossIdBO(); CrossIdBO crossIdBO = new CrossIdBO();
crossIdBO.setCrossId(crossId); crossIdBO.setCrossId(crossId);
// 获取所有计划
// 获取该路口的所有运行计划信息
RunningPlanDTO runningPlanDTO = runningPlanServiceImpl.listRunningPlan(crossIdBO); RunningPlanDTO runningPlanDTO = runningPlanServiceImpl.listRunningPlan(crossIdBO);
// 运行计划列表
List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = runningPlanDTO.getSchedulesPlanList(); List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = runningPlanDTO.getSchedulesPlanList();
// 遍历运行计划列表
for (RunningPlanDTO.SchedulesPlanListElement schedulesPlan : schedulesPlanList) { for (RunningPlanDTO.SchedulesPlanListElement schedulesPlan : schedulesPlanList) {
//执行的日计划列表
List<RunningPlanDTO.ExecListElement> execList = schedulesPlan.getExecList(); List<RunningPlanDTO.ExecListElement> execList = schedulesPlan.getExecList();
// 遍历执行日计划列表(每天)
for (RunningPlanDTO.ExecListElement execListElement : execList) { for (RunningPlanDTO.ExecListElement execListElement : execList) {
// 先查询特殊日期,再查询星期 // 先查询特殊日期,再查询星期
List<String> specialDateList = execListElement.getSpecialDateList(); List<String> specialDateList = execListElement.getSpecialDateList();
List<Integer> week = execListElement.getWeek(); List<Integer> week = execListElement.getWeek();
if (CollectionUtil.isNotEmpty(specialDateList)) { if (CollectionUtil.isNotEmpty(specialDateList)) {
for (String specialDate : specialDateList) { for (String specialDate : specialDateList) {
String substring = specialDate.substring(0, 10); String substring = specialDate.substring(0, 10);
...@@ -622,10 +635,16 @@ public class PlanSendServiceImpl implements PlanSendService { ...@@ -622,10 +635,16 @@ public class PlanSendServiceImpl implements PlanSendService {
return phaseListByTimeVO; return phaseListByTimeVO;
} }
/**
* 从一个信号控制方案中提取特定时间点所对应的相位列表(Phase List),
* 并且只取第一个“环(Ring)”中的所有相位信息。最终返回的是一个扁平化的相位列表。
* @param crossIdAndTimeDTO
* @return
*/
@Override @Override
public List<SaveSchemeConfigDTO.PhaseListElement> phaseListByTimeSingleRing(CrossIdAndTimeDTO crossIdAndTimeDTO) { public List<SaveSchemeConfigDTO.PhaseListElement> phaseListByTimeSingleRing(CrossIdAndTimeDTO crossIdAndTimeDTO) {
List<SaveSchemeConfigDTO.PhaseListElement> phaseListByTime = new ArrayList<>(); List<SaveSchemeConfigDTO.PhaseListElement> phaseListByTime = new ArrayList<>();
//1.
PhaseListByTimeVO phaseListByTimeVO = phaseListByTime(crossIdAndTimeDTO); PhaseListByTimeVO phaseListByTimeVO = phaseListByTime(crossIdAndTimeDTO);
SaveSchemeConfigDTO.PhaseScheme phaseScheme = phaseListByTimeVO.getPhaseScheme(); SaveSchemeConfigDTO.PhaseScheme phaseScheme = phaseListByTimeVO.getPhaseScheme();
if (phaseScheme != null) { if (phaseScheme != null) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment