Commit cb4412e5 authored by hanbing's avatar hanbing

方案管理-运行计划,查询运行计划列表

parent bc5e0695
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import net.wanji.web.dto.RunningPlanDTO;
import net.wanji.web.po.scheme.CrossPlanPO; import net.wanji.web.po.scheme.CrossPlanPO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* 计划基础信息;(t_base_cross_plan)表数据库访问层 * 计划基础信息;(t_base_cross_plan)表数据库访问层
* *
...@@ -19,4 +22,8 @@ public interface CrossPlanMapper { ...@@ -19,4 +22,8 @@ public interface CrossPlanMapper {
CrossPlanPO selectByCrossIdAndName(@Param("crossId") String crossId, CrossPlanPO selectByCrossIdAndName(@Param("crossId") String crossId,
@Param("planName") String planName); @Param("planName") String planName);
List<RunningPlanDTO.DailyPlanListElement> selectDailyPlanList(@Param("crossId") String crossId);
CrossPlanPO selectById(@Param("planId") Integer planId);
} }
...@@ -4,6 +4,8 @@ import net.wanji.web.po.scheme.CrossSchedulesPO; ...@@ -4,6 +4,8 @@ import net.wanji.web.po.scheme.CrossSchedulesPO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* 调度基础信息;(t_base_cross_schedules)表 * 调度基础信息;(t_base_cross_schedules)表
* *
...@@ -16,4 +18,9 @@ public interface CrossSchedulesMapper { ...@@ -16,4 +18,9 @@ public interface CrossSchedulesMapper {
void deleteByCrossId(@Param("crossId") String crossId); void deleteByCrossId(@Param("crossId") String crossId);
void insertOne(CrossSchedulesPO crossSchedulesPO); void insertOne(CrossSchedulesPO crossSchedulesPO);
List<CrossSchedulesPO> selectByCrossId(@Param("crossId") String crossId);
CrossSchedulesPO selectByCrossIdAndScheduleNo(@Param("crossId") String crossId,
@Param("scheduleNo") String scheduleNo);
} }
...@@ -4,6 +4,8 @@ import net.wanji.web.po.scheme.CrossSchedulesPlanPO; ...@@ -4,6 +4,8 @@ import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* 时间表信息(调度计划关系);(t_base_cross_schedules_plan)表 * 时间表信息(调度计划关系);(t_base_cross_schedules_plan)表
* *
...@@ -16,4 +18,7 @@ public interface CrossSchedulesPlanMapper { ...@@ -16,4 +18,7 @@ public interface CrossSchedulesPlanMapper {
void deleteByCrossId(@Param("crossId") String crossId); void deleteByCrossId(@Param("crossId") String crossId);
void insertOne(CrossSchedulesPlanPO crossSchedulesPlanPO); void insertOne(CrossSchedulesPlanPO crossSchedulesPlanPO);
List<CrossSchedulesPlanPO> selectByCrossIdAndSchedulesId(@Param("crossId") String crossId,
@Param("schedulesId") Integer schedulesId);
} }
...@@ -14,6 +14,7 @@ import net.wanji.web.po.scheme.CrossSchedulesPlanPO; ...@@ -14,6 +14,7 @@ import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import net.wanji.web.po.scheme.CrossSchemePO; import net.wanji.web.po.scheme.CrossSchemePO;
import net.wanji.web.po.scheme.CrossSectionPO; import net.wanji.web.po.scheme.CrossSectionPO;
import net.wanji.web.service.scheme.RunningPlanService; import net.wanji.web.service.scheme.RunningPlanService;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -68,15 +69,51 @@ public class RunningPlanServiceImpl implements RunningPlanService { ...@@ -68,15 +69,51 @@ public class RunningPlanServiceImpl implements RunningPlanService {
// 构造dailyPlanList // 构造dailyPlanList
List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = buildDailyPlanList(crossId); List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = buildDailyPlanList(crossId);
runningPlanDTO.setDailyPlanList(dailyPlanList); runningPlanDTO.setDailyPlanList(dailyPlanList);
// 构造schedulesPlanList // 构造schedulesPlanList
// 构造week列表 List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = buildSchedulesPlanList(crossId);
runningPlanDTO.setSchedulesPlanList(schedulesPlanList);
return runningPlanDTO; return runningPlanDTO;
} }
private List<RunningPlanDTO.SchedulesPlanListElement> buildSchedulesPlanList(String crossId) {
List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = new ArrayList<>();
List<CrossSchedulesPO> crossSchedulesPOList = crossSchedulesMapper.selectByCrossId(crossId);
for (CrossSchedulesPO crossSchedulesPO : crossSchedulesPOList) {
String scheduleNo = crossSchedulesPO.getScheduleNo();
String name = crossSchedulesPO.getName();
// 获取调度ID
CrossSchedulesPO schedulesPO = crossSchedulesMapper.selectByCrossIdAndScheduleNo(crossId, scheduleNo);
Integer schedulesId = schedulesPO.getId();
// 根据路口ID和调度ID查询调度计划关系
List<CrossSchedulesPlanPO> crossSchedulesPlanPOList =
crossSchedulesPlanMapper.selectByCrossIdAndSchedulesId(crossId, schedulesId);
// 构造结果集
RunningPlanDTO.SchedulesPlanListElement schedulesPlan = new RunningPlanDTO.SchedulesPlanListElement();
schedulesPlan.setScheduleNo(scheduleNo);
schedulesPlan.setName(name);
List<Integer> week = new ArrayList<>();
Integer planId = 0;
for (CrossSchedulesPlanPO crossSchedulesPlanPO : crossSchedulesPlanPOList) {
Integer day = crossSchedulesPlanPO.getWeek();
if (day == 0) { // 特殊日期
schedulesPlan.setSpecialDate(crossSchedulesPlanPO.getSpecialDate());
} else {
week.add(day);
}
planId = crossSchedulesPlanPO.getPlanId();
}
schedulesPlan.setWeek(week);
CrossPlanPO crossPlanPO = crossPlanMapper.selectById(planId);
schedulesPlan.setPlanName(crossPlanPO.getName());
schedulesPlanList.add(schedulesPlan);
}
return schedulesPlanList;
}
private List<RunningPlanDTO.DailyPlanListElement> buildDailyPlanList(String crossId) { private List<RunningPlanDTO.DailyPlanListElement> buildDailyPlanList(String crossId) {
List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = new ArrayList<>(); List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = new ArrayList<>();
dailyPlanList = crossPlanMapper.selectDailyPlanList(crossId);
return dailyPlanList; return dailyPlanList;
} }
...@@ -103,19 +140,28 @@ public class RunningPlanServiceImpl implements RunningPlanService { ...@@ -103,19 +140,28 @@ public class RunningPlanServiceImpl implements RunningPlanService {
private void updateCrossSchedulesPlan(String crossId, RunningPlanDTO.SchedulesPlanListElement schedulesPlan, private void updateCrossSchedulesPlan(String crossId, RunningPlanDTO.SchedulesPlanListElement schedulesPlan,
Integer crossSchedulesId, Integer planId) { Integer crossSchedulesId, Integer planId) {
List<Integer> week = schedulesPlan.getWeek(); List<Integer> week = schedulesPlan.getWeek();
CrossSchedulesPlanPO crossSchedulesPlanPO = new CrossSchedulesPlanPO(); if (week == null || week.size() == 0) { // 特殊日期
crossSchedulesPlanPO.setCrossId(crossId); CrossSchedulesPlanPO crossSchedulesPlanPO = initData(crossId, crossSchedulesId, planId);
crossSchedulesPlanPO.setSchedulesId(crossSchedulesId);
crossSchedulesPlanPO.setPlanId(planId);
if (week == null || week.size() == 0) {
crossSchedulesPlanPO.setSpecialDate(schedulesPlan.getSpecialDate()); crossSchedulesPlanPO.setSpecialDate(schedulesPlan.getSpecialDate());
crossSchedulesPlanPO.setWeek(0);
crossSchedulesPlanMapper.insertOne(crossSchedulesPlanPO);
} else { } else {
for (Integer day : week) { for (Integer day : week) {
crossSchedulesPlanPO.setWeek(day); CrossSchedulesPlanPO crossSchedulesPlanPO = initData(crossId, crossSchedulesId, planId);
crossSchedulesPlanPO.setSpecialDate(new Date(0)); crossSchedulesPlanPO.setSpecialDate(new Date(0));
crossSchedulesPlanPO.setWeek(day);
crossSchedulesPlanMapper.insertOne(crossSchedulesPlanPO);
} }
} }
crossSchedulesPlanMapper.insertOne(crossSchedulesPlanPO); }
@NotNull
private static CrossSchedulesPlanPO initData(String crossId, Integer crossSchedulesId, Integer planId) {
CrossSchedulesPlanPO crossSchedulesPlanPO = new CrossSchedulesPlanPO();
crossSchedulesPlanPO.setCrossId(crossId);
crossSchedulesPlanPO.setSchedulesId(crossSchedulesId);
crossSchedulesPlanPO.setPlanId(planId);
return crossSchedulesPlanPO;
} }
private void saveCrossPlan(RunningPlanDTO runningPlanDTO, String crossId) { private void saveCrossPlan(RunningPlanDTO runningPlanDTO, String crossId) {
......
...@@ -29,5 +29,38 @@ ...@@ -29,5 +29,38 @@
where cross_id = #{crossId} and name = #{planName} where cross_id = #{crossId} and name = #{planName}
</select> </select>
<!-- 查询dailyPlanList -->
<resultMap id="dailyPlanList" type="net.wanji.web.dto.RunningPlanDTO$DailyPlanListElement">
<id column="planNo" property="planNo"/>
<result column="name" property="name"/>
<collection property="timeList" ofType="net.wanji.web.dto.RunningPlanDTO$TimeListElement">
<result column="startTime" property="startTime"/>
<result column="endTime" property="endTime"/>
<result column="schemeName" property="schemeName"/>
</collection>
</resultMap>
<select id="selectDailyPlanList" resultMap="dailyPlanList">
SELECT
t1.plan_no as planNo,
t1.name as name,
t2.start_time as startTime,
t2.end_time as endTime,
t3.name as schemeName
FROM t_base_cross_plan t1
JOIN t_base_cross_section t2
ON t1.cross_id = t2.cross_id AND t1.id = t2.plan_id
JOIN t_base_cross_scheme t3
ON t2.cross_id = t3.cross_id AND t2.scheme_id = t3.id
WHERE t1.cross_id = 'c7e7b1f352dd4acab4a60088eb391cca'
</select>
<select id="selectById" resultType="net.wanji.web.po.scheme.CrossPlanPO">
select
id,plan_no,name,cross_id,gmt_create,gmt_modified
from t_base_cross_plan
where id = #{planId}
</select>
</mapper> </mapper>
...@@ -23,5 +23,19 @@ ...@@ -23,5 +23,19 @@
WHERE cross_id = #{crossId} WHERE cross_id = #{crossId}
</delete> </delete>
<select id="selectByCrossId" resultMap="BaseResultMap">
select
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
from t_base_cross_schedules
where cross_id = #{crossId}
</select>
<select id="selectByCrossIdAndScheduleNo" resultType="net.wanji.web.po.scheme.CrossSchedulesPO">
select
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
from t_base_cross_schedules
where cross_id = #{crossId} and schedule_no = #{scheduleNo}
</select>
</mapper> </mapper>
...@@ -24,5 +24,12 @@ ...@@ -24,5 +24,12 @@
WHERE cross_id = #{crossId} WHERE cross_id = #{crossId}
</delete> </delete>
<select id="selectByCrossIdAndSchedulesId" resultType="net.wanji.web.po.scheme.CrossSchedulesPlanPO">
select
id,cross_id,schedules_id,plan_id,week,special_date,gmt_create,gmt_modified
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId}
</select>
</mapper> </mapper>
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