Commit b9852bb3 authored by hanbing's avatar hanbing

方案管理-运行计划,保存运行计划

parent d346379f
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossAccompanyPhasePO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
......
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossDirInfoPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
......
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossLaneLightsPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
......
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossLightsPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
......
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossPhaseLightsPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
......
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossPhasePO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
......
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossPlanPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
......@@ -13,7 +13,10 @@ import org.springframework.stereotype.Repository;
@Repository
public interface CrossPlanMapper {
void insertOne(@Param("crossPlanPO") CrossPlanPO crossPlanPO);
void insertOne(CrossPlanPO crossPlanPO);
void deleteByCrossId(@Param("crossId") String crossId);
CrossPlanPO selectByCrossIdAndName(@Param("crossId") String crossId,
@Param("planName") String planName);
}
package net.wanji.web.mapper.scheme;
import net.wanji.web.po.scheme.CrossSchedulesPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
......@@ -11,4 +13,7 @@ import org.springframework.stereotype.Repository;
@Repository
public interface CrossSchedulesMapper {
void deleteByCrossId(@Param("crossId") String crossId);
void insertOne(CrossSchedulesPO crossSchedulesPO);
}
package net.wanji.web.mapper.scheme;
import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
......@@ -11,4 +13,7 @@ import org.springframework.stereotype.Repository;
@Repository
public interface CrossSchedulesPlanMapper {
void deleteByCrossId(@Param("crossId") String crossId);
void insertOne(CrossSchedulesPlanPO crossSchedulesPlanPO);
}
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossSectionPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
......@@ -13,7 +13,7 @@ import org.springframework.stereotype.Repository;
@Repository
public interface CrossSectionMapper {
void insertOne(@Param("crossSectionPO") CrossSectionPO crossSectionPO);
void insertOne(CrossSectionPO crossSectionPO);
void deleteByCrossId(@Param("crossId") String crossId);
}
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
......
......@@ -3,9 +3,13 @@ package net.wanji.web.service.scheme.impl;
import net.wanji.web.common.exception.WeekException;
import net.wanji.web.dto.RunningPlanDTO;
import net.wanji.web.mapper.scheme.CrossPlanMapper;
import net.wanji.web.mapper.scheme.CrossSchedulesMapper;
import net.wanji.web.mapper.scheme.CrossSchedulesPlanMapper;
import net.wanji.web.mapper.scheme.CrossSchemeMapper;
import net.wanji.web.mapper.scheme.CrossSectionMapper;
import net.wanji.web.po.scheme.CrossPlanPO;
import net.wanji.web.po.scheme.CrossSchedulesPO;
import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import net.wanji.web.po.scheme.CrossSchemePO;
import net.wanji.web.po.scheme.CrossSectionPO;
import net.wanji.web.service.scheme.RunningPlanService;
......@@ -24,11 +28,17 @@ public class RunningPlanServiceImpl implements RunningPlanService {
private final CrossPlanMapper crossPlanMapper;
private final CrossSchemeMapper crossSchemeMapper;
private final CrossSectionMapper crossSectionMapper;
private final CrossSchedulesMapper crossSchedulesMapper;
private final CrossSchedulesPlanMapper crossSchedulesPlanMapper;
public RunningPlanServiceImpl(CrossPlanMapper crossPlanMapper, CrossSchemeMapper crossSchemeMapper, CrossSectionMapper crossSectionMapper) {
public RunningPlanServiceImpl(CrossPlanMapper crossPlanMapper, CrossSchemeMapper crossSchemeMapper,
CrossSectionMapper crossSectionMapper, CrossSchedulesMapper crossSchedulesMapper,
CrossSchedulesPlanMapper crossSchedulesPlanMapper) {
this.crossPlanMapper = crossPlanMapper;
this.crossSchemeMapper = crossSchemeMapper;
this.crossSectionMapper = crossSectionMapper;
this.crossSchedulesMapper = crossSchedulesMapper;
this.crossSchedulesPlanMapper = crossSchedulesPlanMapper;
}
@Override
......@@ -36,18 +46,57 @@ public class RunningPlanServiceImpl implements RunningPlanService {
public void saveRunningPlan(RunningPlanDTO runningPlanDTO) {
String crossId = runningPlanDTO.getCrossId();
// 验证特殊日期
checkSpecialDate(runningPlanDTO);
// 清空之前计划
crossPlanMapper.deleteByCrossId(crossId);
crossSectionMapper.deleteByCrossId(crossId);
crossSchedulesMapper.deleteByCrossId(crossId);
crossSchedulesPlanMapper.deleteByCrossId(crossId);
// 保存计划数据
saveCrossPlan(runningPlanDTO, crossId);
// 保存调度数据
saveCrossSchedules(runningPlanDTO, crossId);
}
private void saveCrossSchedules(RunningPlanDTO runningPlanDTO, String crossId) {
List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = runningPlanDTO.getSchedulesPlanList();
for (RunningPlanDTO.SchedulesPlanListElement schedulesPlan : schedulesPlanList) {
// 更新调度表获取调度ID
CrossSchedulesPO crossSchedulesPO = new CrossSchedulesPO();
crossSchedulesPO.setScheduleNo(schedulesPlan.getScheduleNo());
crossSchedulesPO.setName(schedulesPlan.getName());
crossSchedulesPO.setStatus(0); // 新增调度状态为未执行
crossSchedulesPO.setCrossId(crossId);
crossSchedulesMapper.insertOne(crossSchedulesPO);
Integer crossSchedulesId = crossSchedulesPO.getId();
// 根据路口ID和计划名获取计划ID
String planName = schedulesPlan.getPlanName();
CrossPlanPO crossPlanPO = crossPlanMapper.selectByCrossIdAndName(crossId, planName);
Integer planId = crossPlanPO.getId();
// 更新调度计划关系表
updateCrossSchedulesPlan(crossId, schedulesPlan, crossSchedulesId, planId);
}
}
private void updateCrossSchedulesPlan(String crossId, RunningPlanDTO.SchedulesPlanListElement schedulesPlan,
Integer crossSchedulesId, Integer planId) {
List<Integer> week = schedulesPlan.getWeek();
Date specialDate = schedulesPlan.getSpecialDate();
if (week != null && week.size() > 0 && specialDate != null) {
throw new WeekException("不能同时有星期选择和日期选择");
CrossSchedulesPlanPO crossSchedulesPlanPO = new CrossSchedulesPlanPO();
crossSchedulesPlanPO.setCrossId(crossId);
crossSchedulesPlanPO.setSchedulesId(crossSchedulesId);
crossSchedulesPlanPO.setPlanId(planId);
if (week == null || week.size() == 0) {
crossSchedulesPlanPO.setSpecialDate(schedulesPlan.getSpecialDate());
} else {
for (Integer day : week) {
crossSchedulesPlanPO.setWeek(day);
crossSchedulesPlanPO.setSpecialDate(new Date(0));
}
}
// 清空之前计划
crossPlanMapper.deleteByCrossId(crossId);
crossSectionMapper.deleteByCrossId(crossId);
// 保存计划数据
crossSchedulesPlanMapper.insertOne(crossSchedulesPlanPO);
}
private void saveCrossPlan(RunningPlanDTO runningPlanDTO, String crossId) {
List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = runningPlanDTO.getDailyPlanList();
for (RunningPlanDTO.DailyPlanListElement dailyPlan : dailyPlanList) {
// 更新计划表获取计划ID
......@@ -62,6 +111,12 @@ public class RunningPlanServiceImpl implements RunningPlanService {
CrossSchemePO crossSchemePO = crossSchemeMapper.selectByCrossIdAndSchemeName(crossId, schemeName);
Integer schemeId = crossSchemePO.getId();
// 更新时段表
updateCrossSection(crossId, dailyPlan, crossPlanId, schemeId);
}
}
private void updateCrossSection(String crossId, RunningPlanDTO.DailyPlanListElement dailyPlan,
Integer crossPlanId, Integer schemeId) {
CrossSectionPO crossSectionPO = new CrossSectionPO();
String startTime = dailyPlan.getStartTime();
String endTime = dailyPlan.getEndTime();
......@@ -77,9 +132,14 @@ public class RunningPlanServiceImpl implements RunningPlanService {
crossSectionMapper.insertOne(crossSectionPO);
}
// 保存调度数据
// 更新调度表获取调度ID
// 根据路口ID和计划名获取计划ID
// 更新调度计划关系表
private static void checkSpecialDate(RunningPlanDTO runningPlanDTO) {
List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = runningPlanDTO.getSchedulesPlanList();
for (RunningPlanDTO.SchedulesPlanListElement schedulesPlan : schedulesPlanList) {
List<Integer> week = schedulesPlan.getWeek();
Date specialDate = schedulesPlan.getSpecialDate();
if (week != null && week.size() > 0 && specialDate != null) {
throw new WeekException("不能同时有星期选择和日期选择");
}
}
}
}
......@@ -19,8 +19,15 @@
<delete id="deleteByCrossId">
DELETE FROM t_base_cross_plan
WHERE cross_id = #{corssId}
WHERE cross_id = #{crossId}
</delete>
<select id="selectByCrossIdAndName" resultMap="BaseResultMap">
select
id,plan_no,name,cross_id,gmt_create,gmt_modified
from t_base_cross_plan
where cross_id = #{crossId} and name = #{planName}
</select>
</mapper>
......@@ -13,5 +13,15 @@
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_base_cross_schedules(schedule_no,name,status,cross_id)
values (#{scheduleNo},#{name},#{status},#{crossId})
</insert>
<delete id="deleteByCrossId">
DELETE FROM t_base_cross_schedules
WHERE cross_id = #{crossId}
</delete>
</mapper>
......@@ -14,5 +14,15 @@
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_base_cross_schedules_plan(cross_id,schedules_id,plan_id,week,special_date)
values (#{crossId},#{schedulesId},#{planId},#{week},#{specialDate})
</insert>
<delete id="deleteByCrossId">
DELETE FROM t_base_cross_schedules_plan
WHERE cross_id = #{crossId}
</delete>
</mapper>
......@@ -23,7 +23,7 @@
<delete id="deleteByCrossId">
DELETE FROM t_base_cross_section
WHERE cross_id = #{corssId}
WHERE cross_id = #{crossId}
</delete>
......
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