Commit 2606fa8a authored by duanruiming's avatar duanruiming

[update] 同步计划和调度

parent 842f050f
......@@ -11,8 +11,8 @@ import net.wanji.databus.dao.mapper.BaseCrossSchedulesMapper;
import net.wanji.databus.dao.mapper.BaseCrossSchemeMapper;
import net.wanji.databus.dao.mapper.BaseCrossSectionMapper;
import net.wanji.databus.dto.RunningPlanDTO;
import net.wanji.databus.dao.mapper.CrossSchedulesPlanMapper;
import net.wanji.databus.dao.entity.CrossSchedulesPlanPO;
import net.wanji.databus.dao.mapper.BaseCrossSchedulesPlanMapper;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPlanPO;
import net.wanji.web.service.scheme.RunningPlanService;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
......@@ -38,16 +38,16 @@ public class RunningPlanServiceImpl implements RunningPlanService {
private final BaseCrossSchemeMapper baseCrossSchemeMapper;
private final BaseCrossSectionMapper baseCrossSectionMapper;
private final BaseCrossSchedulesMapper baseCrossSchedulesMapper;
private final CrossSchedulesPlanMapper crossSchedulesPlanMapper;
private final BaseCrossSchedulesPlanMapper baseCrossSchedulesPlanMapper;
public RunningPlanServiceImpl(BaseCrossPlanMapper baseCrossPlanMapper, BaseCrossSchemeMapper baseCrossSchemeMapper,
BaseCrossSectionMapper baseCrossSectionMapper, BaseCrossSchedulesMapper baseCrossSchedulesMapper,
CrossSchedulesPlanMapper crossSchedulesPlanMapper) {
BaseCrossSchedulesPlanMapper baseCrossSchedulesPlanMapper) {
this.baseCrossPlanMapper = baseCrossPlanMapper;
this.baseCrossSchemeMapper = baseCrossSchemeMapper;
this.baseCrossSectionMapper = baseCrossSectionMapper;
this.baseCrossSchedulesMapper = baseCrossSchedulesMapper;
this.crossSchedulesPlanMapper = crossSchedulesPlanMapper;
this.baseCrossSchedulesPlanMapper = baseCrossSchedulesPlanMapper;
}
@Override
......@@ -58,7 +58,7 @@ public class RunningPlanServiceImpl implements RunningPlanService {
baseCrossPlanMapper.deleteByCrossId(crossId);
baseCrossSectionMapper.deleteByCrossId(crossId);
baseCrossSchedulesMapper.deleteByCrossId(crossId);
crossSchedulesPlanMapper.deleteByCrossId(crossId);
baseCrossSchedulesPlanMapper.deleteByCrossId(crossId);
// 保存计划数据
saveCrossPlan(runningPlanDTO, crossId);
// 保存调度数据
......@@ -106,20 +106,20 @@ public class RunningPlanServiceImpl implements RunningPlanService {
BaseCrossSchedulesPO schedulesPO = baseCrossSchedulesMapper.selectByCrossIdAndScheduleNo(crossId, scheduleNo);
Integer schedulesId = schedulesPO.getId();
// 根据路口ID、调度ID和计划ID查询调度计划关系
List<CrossSchedulesPlanPO> crossSchedulesPlanPOList =
crossSchedulesPlanMapper.selectByCrossIdAndSchedulesId(crossId, schedulesId);
Map<Integer, List<CrossSchedulesPlanPO>> collectMap = crossSchedulesPlanPOList.stream()
.collect(Collectors.groupingBy(CrossSchedulesPlanPO::getPlanId));
for (Map.Entry<Integer, List<CrossSchedulesPlanPO>> entry : collectMap.entrySet()) {
List<BaseCrossSchedulesPlanPO> baseCrossSchedulesPlanPOList =
baseCrossSchedulesPlanMapper.selectByCrossIdAndSchedulesId(crossId, schedulesId);
Map<Integer, List<BaseCrossSchedulesPlanPO>> collectMap = baseCrossSchedulesPlanPOList.stream()
.collect(Collectors.groupingBy(BaseCrossSchedulesPlanPO::getPlanId));
for (Map.Entry<Integer, List<BaseCrossSchedulesPlanPO>> entry : collectMap.entrySet()) {
RunningPlanDTO.ExecListElement execListElement = new RunningPlanDTO.ExecListElement();
List<Integer> week = new ArrayList<>();
List<String> specialDateList = new ArrayList<>();
Integer planId = entry.getKey();
List<CrossSchedulesPlanPO> secondList = entry.getValue();
for (CrossSchedulesPlanPO crossSchedulesPlanPO : secondList) {
Integer day = crossSchedulesPlanPO.getWeek();
List<BaseCrossSchedulesPlanPO> secondList = entry.getValue();
for (BaseCrossSchedulesPlanPO baseCrossSchedulesPlanPO : secondList) {
Integer day = baseCrossSchedulesPlanPO.getWeek();
if (day == 0) { // 特殊日期
Date specialDate = crossSchedulesPlanPO.getSpecialDate();
Date specialDate = baseCrossSchedulesPlanPO.getSpecialDate();
specialDateList.add(sdf.format(specialDate));
} else {
week.add(day);
......@@ -197,29 +197,29 @@ public class RunningPlanServiceImpl implements RunningPlanService {
List<String> specialDateList = schedulesPlan.getSpecialDateList();
if (CollectionUtil.isNotEmpty(specialDateList)) {
for (String date : specialDateList) {
CrossSchedulesPlanPO crossSchedulesPlanPO = initData(crossId, crossSchedulesId, planId);
crossSchedulesPlanPO.setSpecialDate(sdf.parse(date));
crossSchedulesPlanPO.setWeek(0);
crossSchedulesPlanMapper.insertOne(crossSchedulesPlanPO);
BaseCrossSchedulesPlanPO baseCrossSchedulesPlanPO = initData(crossId, crossSchedulesId, planId);
baseCrossSchedulesPlanPO.setSpecialDate(sdf.parse(date));
baseCrossSchedulesPlanPO.setWeek(0);
baseCrossSchedulesPlanMapper.insertOne(baseCrossSchedulesPlanPO);
}
}
if (CollectionUtil.isNotEmpty(week)) {
for (Integer day : week) {
CrossSchedulesPlanPO crossSchedulesPlanPO = initData(crossId, crossSchedulesId, planId);
crossSchedulesPlanPO.setSpecialDate(new Date(0));
crossSchedulesPlanPO.setWeek(day);
crossSchedulesPlanMapper.insertOne(crossSchedulesPlanPO);
BaseCrossSchedulesPlanPO baseCrossSchedulesPlanPO = initData(crossId, crossSchedulesId, planId);
baseCrossSchedulesPlanPO.setSpecialDate(new Date(0));
baseCrossSchedulesPlanPO.setWeek(day);
baseCrossSchedulesPlanMapper.insertOne(baseCrossSchedulesPlanPO);
}
}
}
@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 static BaseCrossSchedulesPlanPO initData(String crossId, Integer crossSchedulesId, Integer planId) {
BaseCrossSchedulesPlanPO baseCrossSchedulesPlanPO = new BaseCrossSchedulesPlanPO();
baseCrossSchedulesPlanPO.setCrossId(crossId);
baseCrossSchedulesPlanPO.setSchedulesId(crossSchedulesId);
baseCrossSchedulesPlanPO.setPlanId(planId);
return baseCrossSchedulesPlanPO;
}
private void saveCrossPlan(RunningPlanDTO runningPlanDTO, String crossId) {
......
......@@ -58,7 +58,7 @@ public class TrendServiceImpl implements TrendService {
private final GreenwaveRealtimeMapper greenwaveRealtimeMapper;
private final StrategyMapper strategyMapper;
private final BaseCrossSchedulesMapper baseCrossSchedulesMapper;
private final CrossSchedulesPlanMapper crossSchedulesPlanMapper;
private final BaseCrossSchedulesPlanMapper baseCrossSchedulesPlanMapper;
private final BaseCrossSectionMapper baseCrossSectionMapper;
private final BaseCrossSchemeMapper baseCrossSchemeMapper;
private final BaseCrossPhaseMapper baseCrossPhaseMapper;
......@@ -86,7 +86,7 @@ public class TrendServiceImpl implements TrendService {
CrossTurnDataRealtimeMapper crossTurnDataRealtimeMapper,
CrossDirDataHistMapper crossDirDataHistMapper, EventAlarmMapper eventAlarmMapper,
RidInfoMapper ridInfoMapper, BaseCrossDirInfoMapper baseCrossDirInfoMapper,
CrossSchemeOptLogMapper crossSchemeOptLogMapper, GreenwaveCrossMapper greenwaveCrossMapper, CrossDirDataRealtimeMapper crossDirDataRealtimeMapper, GreenwaveHistMapper greenwaveHistMapper, GreenwaveRealtimeMapper greenwaveRealtimeMapper, SceneStrategyIdeaMapper strategyIdeaMapper, StrategyMapper strategyMapper, BaseCrossSchedulesMapper baseCrossSchedulesMapper, CrossSchedulesPlanMapper crossSchedulesPlanMapper, BaseCrossSectionMapper baseCrossSectionMapper, BaseCrossSchemeMapper crossSchemeMapper, BaseCrossSchemeMapper baseCrossSchemeMapper, BaseCrossPhaseMapper baseCrossPhaseMapper, BaseCrossPhaseLightsMapper crossPhaseLightsMapper, BaseCrossLaneLightsMapper baseCrossLaneLightsMapper, CrossBaseLaneInfoMapper crossBaseLaneInfoMapper, CrossTurnDataHistMapper crossTurnDataHistMapper) {
CrossSchemeOptLogMapper crossSchemeOptLogMapper, GreenwaveCrossMapper greenwaveCrossMapper, CrossDirDataRealtimeMapper crossDirDataRealtimeMapper, GreenwaveHistMapper greenwaveHistMapper, GreenwaveRealtimeMapper greenwaveRealtimeMapper, SceneStrategyIdeaMapper strategyIdeaMapper, StrategyMapper strategyMapper, BaseCrossSchedulesMapper baseCrossSchedulesMapper, BaseCrossSchedulesPlanMapper baseCrossSchedulesPlanMapper, BaseCrossSectionMapper baseCrossSectionMapper, BaseCrossSchemeMapper crossSchemeMapper, BaseCrossSchemeMapper baseCrossSchemeMapper, BaseCrossPhaseMapper baseCrossPhaseMapper, BaseCrossPhaseLightsMapper crossPhaseLightsMapper, BaseCrossLaneLightsMapper baseCrossLaneLightsMapper, CrossBaseLaneInfoMapper crossBaseLaneInfoMapper, CrossTurnDataHistMapper crossTurnDataHistMapper) {
this.greenwaveInfoMapper = greenwaveInfoMapper;
this.baseCrossInfoMapper = baseCrossInfoMapper;
this.crossDataRealtimeMapper = crossDataRealtimeMapper;
......@@ -102,7 +102,7 @@ public class TrendServiceImpl implements TrendService {
this.greenwaveRealtimeMapper = greenwaveRealtimeMapper;
this.strategyMapper = strategyMapper;
this.baseCrossSchedulesMapper = baseCrossSchedulesMapper;
this.crossSchedulesPlanMapper = crossSchedulesPlanMapper;
this.baseCrossSchedulesPlanMapper = baseCrossSchedulesPlanMapper;
this.baseCrossSectionMapper = baseCrossSectionMapper;
this.baseCrossSchemeMapper = baseCrossSchemeMapper;
this.baseCrossPhaseMapper = baseCrossPhaseMapper;
......
......@@ -3,36 +3,38 @@ package net.wanji.databus.dao.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author hfx
* @date 2023/1/13 10:31
* @desc 路口调度计划信息
* 时间表信息(调度计划关系);(t_base_cross_schedules_plan)表
*
* @author Kent HAN
* @date 2022/12/28 17:45
*/
@Data
public class BaseCrossSchedulesPlanPO {
/** ID */
@ApiModelProperty(name = "ID",notes = "")
private Integer id ;
/** 路口ID */
@ApiModelProperty(name = "路口ID",notes = "")
private String crossId ;
/** 调度ID */
@ApiModelProperty(name = "调度ID",notes = "")
private Integer schedulesId;
@ApiModelProperty(name = "调度名称",notes = "")
private String schedulesName;
@ApiModelProperty(name = "调度状态:1执行;0未执行",notes = "")
private Integer status;
private Integer schedulesId ;
/** 计划ID */
@ApiModelProperty(name = "计划ID",notes = "")
private Integer planId;
@ApiModelProperty(name = "计划号",notes = "")
private String planNo;
@ApiModelProperty(name = "路口ID",notes = "")
private String crossId;
private Integer planId ;
/** 星期:1周一,2周二,3周三,4周四,5周五,6周六,7周日,0特殊日期 */
@ApiModelProperty(name = "星期:1周一,2周二,3周三,4周四,5周五,6周六,7周日,0特殊日期",notes = "")
private Integer week;
private Integer week = 0 ;
/** 特殊日期 */
@ApiModelProperty(name = "特殊日期",notes = "")
private String specialDate;
}
private Date specialDate ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
/** 修改时间 */
@ApiModelProperty(name = "修改时间",notes = "")
private Date gmtModified ;
}
\ No newline at end of file
package net.wanji.databus.dao.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 时间表信息(调度计划关系);(t_base_cross_schedules_plan)表
*
* @author Kent HAN
* @date 2022/12/28 17:45
*/
@Data
public class CrossSchedulesPlanPO {
/** ID */
@ApiModelProperty(name = "ID",notes = "")
private Integer id ;
/** 路口ID */
@ApiModelProperty(name = "路口ID",notes = "")
private String crossId ;
/** 调度ID */
@ApiModelProperty(name = "调度ID",notes = "")
private Integer schedulesId ;
/** 计划ID */
@ApiModelProperty(name = "计划ID",notes = "")
private Integer planId ;
/** 星期:1周一,2周二,3周三,4周四,5周五,6周六,7周日,0特殊日期 */
@ApiModelProperty(name = "星期:1周一,2周二,3周三,4周四,5周五,6周六,7周日,0特殊日期",notes = "")
private Integer week = 0 ;
/** 特殊日期 */
@ApiModelProperty(name = "特殊日期",notes = "")
private Date specialDate ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
/** 修改时间 */
@ApiModelProperty(name = "修改时间",notes = "")
private Date gmtModified ;
}
\ No newline at end of file
......@@ -28,4 +28,6 @@ public interface BaseCrossPlanMapper {
CrossPlanPO selectById(@Param("planId") Integer planId);
List<CrossPlanPO> selectByCrossId(String crossId);
CrossPlanPO selectByCrossIdAndPlanNo(@Param("crossId") String crossId, @Param("planNo") String planNo);
}
package net.wanji.databus.dao.mapper;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPO;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPlanPO;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPO;
import net.wanji.databus.dao.entity.CrossSchedulesPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......
......@@ -2,7 +2,7 @@ package net.wanji.databus.dao.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import net.wanji.databus.dao.entity.CrossSchedulesPlanPO;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPlanPO;
import java.util.Date;
import java.util.List;
......@@ -14,16 +14,16 @@ import java.util.List;
* @date 2023/1/28 13:16
*/
@Repository
public interface CrossSchedulesPlanMapper {
public interface BaseCrossSchedulesPlanMapper {
void deleteByCrossId(@Param("crossId") String crossId);
void insertOne(CrossSchedulesPlanPO crossSchedulesPlanPO);
void insertOne(BaseCrossSchedulesPlanPO baseCrossSchedulesPlanPO);
List<CrossSchedulesPlanPO> selectByCrossIdAndSchedulesId(@Param("crossId") String crossId,
@Param("schedulesId") Integer schedulesId);
List<BaseCrossSchedulesPlanPO> selectByCrossIdAndSchedulesId(@Param("crossId") String crossId,
@Param("schedulesId") Integer schedulesId);
CrossSchedulesPlanPO selectBySpecialDate(String crossId, Integer schedulesId, Date todayDate);
BaseCrossSchedulesPlanPO selectBySpecialDate(String crossId, Integer schedulesId, Date todayDate);
CrossSchedulesPlanPO selectByWeekday(String crossId, Integer schedulesId, int weekday);
BaseCrossSchedulesPlanPO selectByWeekday(String crossId, Integer schedulesId, int weekday);
}
......@@ -70,5 +70,12 @@
where cross_id = #{crossId}
</select>
<select id="selectByCrossIdAndPlanNo" resultType="net.wanji.databus.dao.entity.CrossPlanPO">
select
id,plan_no,name,cross_id,gmt_create,gmt_modified
from t_base_cross_plan
where cross_id = #{crossId} and plan_no = #{planNo}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.wanji.databus.dao.mapper.CrossSchedulesPlanMapper">
<mapper namespace="net.wanji.databus.dao.mapper.BaseCrossSchedulesPlanMapper">
<!-- 通用查询映射结果 -->
<resultMap type="net.wanji.databus.dao.entity.CrossSchedulesPlanPO" id="BaseResultMap">
<resultMap type="net.wanji.databus.dao.entity.BaseCrossSchedulesPlanPO" id="BaseResultMap">
<result property="id" column="id"/>
<result property="crossId" column="cross_id"/>
<result property="schedulesId" column="schedules_id"/>
......@@ -28,19 +28,19 @@
WHERE cross_id = #{crossId}
</delete>
<select id="selectByCrossIdAndSchedulesId" resultType="net.wanji.databus.dao.entity.CrossSchedulesPlanPO">
<select id="selectByCrossIdAndSchedulesId" resultType="net.wanji.databus.dao.entity.BaseCrossSchedulesPlanPO">
select <include refid="baseColumnList" />
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId}
</select>
<select id="selectBySpecialDate" resultType="net.wanji.databus.dao.entity.CrossSchedulesPlanPO">
<select id="selectBySpecialDate" resultType="net.wanji.databus.dao.entity.BaseCrossSchedulesPlanPO">
select <include refid="baseColumnList" />
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId} and DATE(special_date) = DATE(#{todayDate});
</select>
<select id="selectByWeekday" resultType="net.wanji.databus.dao.entity.CrossSchedulesPlanPO">
<select id="selectByWeekday" resultType="net.wanji.databus.dao.entity.BaseCrossSchedulesPlanPO">
select <include refid="baseColumnList" />
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId} and week = #{weekday};
......
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