Commit b9852bb3 authored by hanbing's avatar hanbing

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

parent d346379f
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossAccompanyPhasePO; import net.wanji.web.po.scheme.CrossAccompanyPhasePO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
......
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossDirInfoPO; import net.wanji.web.po.scheme.CrossDirInfoPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
......
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossLaneLightsPO; import net.wanji.web.po.scheme.CrossLaneLightsPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
......
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossLightsPO; import net.wanji.web.po.scheme.CrossLightsPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
......
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossPhaseLightsPO; import net.wanji.web.po.scheme.CrossPhaseLightsPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
......
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossPhasePO; import net.wanji.web.po.scheme.CrossPhasePO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
......
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossPlanPO; import net.wanji.web.po.scheme.CrossPlanPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
...@@ -13,7 +13,10 @@ import org.springframework.stereotype.Repository; ...@@ -13,7 +13,10 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface CrossPlanMapper { public interface CrossPlanMapper {
void insertOne(@Param("crossPlanPO") CrossPlanPO crossPlanPO); void insertOne(CrossPlanPO crossPlanPO);
void deleteByCrossId(@Param("crossId") String crossId); void deleteByCrossId(@Param("crossId") String crossId);
CrossPlanPO selectByCrossIdAndName(@Param("crossId") String crossId,
@Param("planName") String planName);
} }
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import net.wanji.web.po.scheme.CrossSchedulesPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
...@@ -11,4 +13,7 @@ import org.springframework.stereotype.Repository; ...@@ -11,4 +13,7 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface CrossSchedulesMapper { public interface CrossSchedulesMapper {
void deleteByCrossId(@Param("crossId") String crossId);
void insertOne(CrossSchedulesPO crossSchedulesPO);
} }
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
...@@ -11,4 +13,7 @@ import org.springframework.stereotype.Repository; ...@@ -11,4 +13,7 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface CrossSchedulesPlanMapper { public interface CrossSchedulesPlanMapper {
void deleteByCrossId(@Param("crossId") String crossId);
void insertOne(CrossSchedulesPlanPO crossSchedulesPlanPO);
} }
package net.wanji.web.mapper.scheme; package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossSectionPO; import net.wanji.web.po.scheme.CrossSectionPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
...@@ -13,7 +13,7 @@ import org.springframework.stereotype.Repository; ...@@ -13,7 +13,7 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface CrossSectionMapper { public interface CrossSectionMapper {
void insertOne(@Param("crossSectionPO") CrossSectionPO crossSectionPO); void insertOne(CrossSectionPO crossSectionPO);
void deleteByCrossId(@Param("crossId") String crossId); void deleteByCrossId(@Param("crossId") String crossId);
} }
package net.wanji.web.mapper.scheme; 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 org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
......
...@@ -3,9 +3,13 @@ package net.wanji.web.service.scheme.impl; ...@@ -3,9 +3,13 @@ package net.wanji.web.service.scheme.impl;
import net.wanji.web.common.exception.WeekException; import net.wanji.web.common.exception.WeekException;
import net.wanji.web.dto.RunningPlanDTO; import net.wanji.web.dto.RunningPlanDTO;
import net.wanji.web.mapper.scheme.CrossPlanMapper; 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.CrossSchemeMapper;
import net.wanji.web.mapper.scheme.CrossSectionMapper; import net.wanji.web.mapper.scheme.CrossSectionMapper;
import net.wanji.web.po.scheme.CrossPlanPO; 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.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;
...@@ -24,11 +28,17 @@ public class RunningPlanServiceImpl implements RunningPlanService { ...@@ -24,11 +28,17 @@ public class RunningPlanServiceImpl implements RunningPlanService {
private final CrossPlanMapper crossPlanMapper; private final CrossPlanMapper crossPlanMapper;
private final CrossSchemeMapper crossSchemeMapper; private final CrossSchemeMapper crossSchemeMapper;
private final CrossSectionMapper crossSectionMapper; 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.crossPlanMapper = crossPlanMapper;
this.crossSchemeMapper = crossSchemeMapper; this.crossSchemeMapper = crossSchemeMapper;
this.crossSectionMapper = crossSectionMapper; this.crossSectionMapper = crossSectionMapper;
this.crossSchedulesMapper = crossSchedulesMapper;
this.crossSchedulesPlanMapper = crossSchedulesPlanMapper;
} }
@Override @Override
...@@ -36,18 +46,57 @@ public class RunningPlanServiceImpl implements RunningPlanService { ...@@ -36,18 +46,57 @@ public class RunningPlanServiceImpl implements RunningPlanService {
public void saveRunningPlan(RunningPlanDTO runningPlanDTO) { public void saveRunningPlan(RunningPlanDTO runningPlanDTO) {
String crossId = runningPlanDTO.getCrossId(); 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(); List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = runningPlanDTO.getSchedulesPlanList();
for (RunningPlanDTO.SchedulesPlanListElement schedulesPlan : schedulesPlanList) { 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(); List<Integer> week = schedulesPlan.getWeek();
Date specialDate = schedulesPlan.getSpecialDate(); CrossSchedulesPlanPO crossSchedulesPlanPO = new CrossSchedulesPlanPO();
if (week != null && week.size() > 0 && specialDate != null) { crossSchedulesPlanPO.setCrossId(crossId);
throw new WeekException("不能同时有星期选择和日期选择"); 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));
} }
} }
// 清空之前计划 crossSchedulesPlanMapper.insertOne(crossSchedulesPlanPO);
crossPlanMapper.deleteByCrossId(crossId); }
crossSectionMapper.deleteByCrossId(crossId);
// 保存计划数据 private void saveCrossPlan(RunningPlanDTO runningPlanDTO, String crossId) {
List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = runningPlanDTO.getDailyPlanList(); List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = runningPlanDTO.getDailyPlanList();
for (RunningPlanDTO.DailyPlanListElement dailyPlan : dailyPlanList) { for (RunningPlanDTO.DailyPlanListElement dailyPlan : dailyPlanList) {
// 更新计划表获取计划ID // 更新计划表获取计划ID
...@@ -62,6 +111,12 @@ public class RunningPlanServiceImpl implements RunningPlanService { ...@@ -62,6 +111,12 @@ public class RunningPlanServiceImpl implements RunningPlanService {
CrossSchemePO crossSchemePO = crossSchemeMapper.selectByCrossIdAndSchemeName(crossId, schemeName); CrossSchemePO crossSchemePO = crossSchemeMapper.selectByCrossIdAndSchemeName(crossId, schemeName);
Integer schemeId = crossSchemePO.getId(); 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(); CrossSectionPO crossSectionPO = new CrossSectionPO();
String startTime = dailyPlan.getStartTime(); String startTime = dailyPlan.getStartTime();
String endTime = dailyPlan.getEndTime(); String endTime = dailyPlan.getEndTime();
...@@ -77,9 +132,14 @@ public class RunningPlanServiceImpl implements RunningPlanService { ...@@ -77,9 +132,14 @@ public class RunningPlanServiceImpl implements RunningPlanService {
crossSectionMapper.insertOne(crossSectionPO); crossSectionMapper.insertOne(crossSectionPO);
} }
// 保存调度数据 private static void checkSpecialDate(RunningPlanDTO runningPlanDTO) {
// 更新调度表获取调度ID List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = runningPlanDTO.getSchedulesPlanList();
// 根据路口ID和计划名获取计划ID 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 @@ ...@@ -19,8 +19,15 @@
<delete id="deleteByCrossId"> <delete id="deleteByCrossId">
DELETE FROM t_base_cross_plan DELETE FROM t_base_cross_plan
WHERE cross_id = #{corssId} WHERE cross_id = #{crossId}
</delete> </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> </mapper>
...@@ -13,5 +13,15 @@ ...@@ -13,5 +13,15 @@
<result property="gmtModified" column="gmt_modified"/> <result property="gmtModified" column="gmt_modified"/>
</resultMap> </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> </mapper>
...@@ -14,5 +14,15 @@ ...@@ -14,5 +14,15 @@
<result property="gmtModified" column="gmt_modified"/> <result property="gmtModified" column="gmt_modified"/>
</resultMap> </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> </mapper>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<delete id="deleteByCrossId"> <delete id="deleteByCrossId">
DELETE FROM t_base_cross_section DELETE FROM t_base_cross_section
WHERE cross_id = #{corssId} WHERE cross_id = #{crossId}
</delete> </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