Commit 2606fa8a authored by duanruiming's avatar duanruiming

[update] 同步计划和调度

parent 842f050f
......@@ -2,27 +2,26 @@ package net.wanji.web.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dao.entity.*;
import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.dto.CrossSchedulesDTO;
import net.wanji.databus.dto.PlanSectionDTO;
import net.wanji.databus.dto.RunningPlanDTO;
import net.wanji.databus.po.BaseCrossLightsPO;
import net.wanji.databus.vo.*;
import net.wanji.feign.service.UtcFeignClients;
import net.wanji.web.dto.*;
import net.wanji.databus.dao.mapper.CrossSchedulesPlanMapper;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPO;
import net.wanji.databus.dao.entity.CrossSchedulesPlanPO;
import net.wanji.web.service.FeignProxyService;
import net.wanji.web.service.PlanSendService;
import net.wanji.web.service.scheme.impl.RunningPlanServiceImpl;
import net.wanji.web.service.scheme.impl.SchemeConfigServiceImpl;
import net.wanji.web.vo.PhaseListByTimeVO;
import net.wanji.web.vo.SchemePhaseLightsVO;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -40,7 +39,7 @@ import java.util.stream.Collectors;
public class PlanSendServiceImpl implements PlanSendService {
private final UtcFeignClients utcFeignClients;
private final FeignProxyService feignProxyService;
private final CrossSchedulesPlanMapper crossSchedulesPlanMapper;
private final BaseCrossSchedulesPlanMapper baseCrossSchedulesPlanMapper;
private final BaseCrossPlanMapper baseCrossPlanMapper;
private final BaseCrossSchemeMapper baseCrossSchemeMapper;
private final BaseCrossPhaseMapper baseCrossPhaseMapper;
......@@ -58,14 +57,14 @@ public class PlanSendServiceImpl implements PlanSendService {
private Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
public PlanSendServiceImpl(@Qualifier("net.wanji.feign.service.UtcFeignClients") UtcFeignClients utcFeignClients,
CrossSchedulesPlanMapper crossSchedulesPlanMapper, BaseCrossPlanMapper baseCrossPlanMapper,
BaseCrossSchedulesPlanMapper baseCrossSchedulesPlanMapper, BaseCrossPlanMapper baseCrossPlanMapper,
BaseCrossSchemeMapper baseCrossSchemeMapper, BaseCrossPhaseMapper baseCrossPhaseMapper,
BaseCrossLightsMapper baseCrossLightsMapper, BaseCrossPhaseLightsMapper baseCrossPhaseLightsMapper,
RunningPlanServiceImpl runningPlanServiceImpl, SchemeConfigServiceImpl schemeConfigServiceImpl,
BaseCrossSchedulesMapper baseCrossSchedulesMapper, BaseCrossLaneLightsMapper baseCrossLaneLightsMapper,
BaseCrossSectionMapper baseCrossSectionMapper, FeignProxyService feignProxyService) {
this.utcFeignClients = utcFeignClients;
this.crossSchedulesPlanMapper = crossSchedulesPlanMapper;
this.baseCrossSchedulesPlanMapper = baseCrossSchedulesPlanMapper;
this.baseCrossPlanMapper = baseCrossPlanMapper;
this.baseCrossSchemeMapper = baseCrossSchemeMapper;
this.baseCrossPhaseMapper = baseCrossPhaseMapper;
......@@ -174,8 +173,8 @@ public class PlanSendServiceImpl implements PlanSendService {
}
private PlanSendVO getPlanSendVO(String crossId, Integer scheduleId) {
List<CrossSchedulesPlanPO> crossSchedulesPlanPOList =
crossSchedulesPlanMapper.selectByCrossIdAndSchedulesId(crossId, scheduleId);
List<BaseCrossSchedulesPlanPO> crossSchedulesPlanPOList =
baseCrossSchedulesPlanMapper.selectByCrossIdAndSchedulesId(crossId, scheduleId);
Integer planId = crossSchedulesPlanPOList.get(0).getPlanId();
CrossPlanPO crossPlanPO = baseCrossPlanMapper.selectById(planId);
......@@ -236,7 +235,6 @@ public class PlanSendServiceImpl implements PlanSendService {
}
// 更新方案表状态为已执行
baseCrossSchemeMapper.resetStatus(crossId);
baseCrossSchemeMapper.updateStatus(schemeId);
......@@ -353,61 +351,144 @@ public class PlanSendServiceImpl implements PlanSendService {
@Override
@Transactional
public JsonViewObject syncScheme(CrossIdDTO crossIdDTO) {
CrossIdVO crossIdVO = new CrossIdVO();
// CrossIdVO crossIdVO = new CrossIdVO();
String crossId = crossIdDTO.getCrossId();
crossIdVO.setCrossId(crossId);
JsonViewObject jsonViewObject = utcFeignClients.schemePhaseLights(crossIdVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机静态信息获取-方案信息-UTC服务调用异常");
// crossIdVO.setCrossId(crossId);
// JsonViewObject jsonViewObject = utcFeignClients.schemePhaseLights(crossIdVO);
// if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
// return jsonViewObject.fail("信号机静态信息获取-方案信息-UTC服务调用异常");
// }
// Object content = jsonViewObject.getContent();
// if (ObjectUtil.isNotNull(content)) {
// // 信息入库
// String contentStr = gson.toJson(content);
// SchemePhaseLightsVO schemePhaseLightsVO = gson.fromJson(contentStr, SchemePhaseLightsVO.class);
// if (ObjectUtil.isEmpty(schemePhaseLightsVO)) {
// return jsonViewObject.fail("信号机方案对象转换结果为空,未更新数据库");
// }
// List<BaseCrossSchemePO> crossSchemeList = schemePhaseLightsVO.getCrossSchemeList();
// baseCrossSchemeMapper.deleteByCrossId(crossId);
// // 保存旧方案ID
// List<Integer> oldSchemeIds = crossSchemeList.stream().map(BaseCrossSchemePO::getId).collect(Collectors.toList());
// // 保存新方案ID
// baseCrossSchemeMapper.insertBatch(crossSchemeList);
// List<Integer> newSchemeIds = crossSchemeList.stream().map(BaseCrossSchemePO::getId).collect(Collectors.toList());
// // 生成新旧方案ID映射
// Map<Integer, Integer> oldNewSchemeId = new HashMap<>();
// for (int i = 0; i < oldSchemeIds.size(); i++) {
// oldNewSchemeId.put(oldSchemeIds.get(i), newSchemeIds.get(i));
// }
//
// List<CrossPhasePO> crossPhaseList = schemePhaseLightsVO.getCrossPhaseList();
// baseCrossPhaseMapper.deleteByCrossId(crossId);
// // 更新方案ID
// for (CrossPhasePO crossPhasePO : crossPhaseList) {
// // 当前相位未关联方案,方案id为-1
// Integer planId = crossPhasePO.getPlanId();
// if (planId == -1) {
// crossPhasePO.setPlanId(-1);
// } else {
// crossPhasePO.setPlanId(oldNewSchemeId.get(planId));
// }
// }
// baseCrossPhaseMapper.insertBatch(crossPhaseList);
//
// List<BaseCrossLightsPO> crossLightsList = schemePhaseLightsVO.getCrossLightsList();
// // 清理数据库
// baseCrossLightsMapper.deleteByCrossId(crossId);
// // 灯组号去重
// TreeSet<BaseCrossLightsPO> crossLightsSet = distinctLightsNo(crossLightsList);
// // 修改灯组数据内容
// changeLightsType(crossLightsSet);
// baseCrossLightsMapper.insertBatch(crossLightsSet);
//
// baseCrossPhaseLightsMapper.deleteByCrossId(crossId);
// baseCrossLaneLightsMapper.deleteByCrossId(crossId);
//
try {
syncSchedules(crossId);
} catch (Exception e) {
throw new RuntimeException(e);
}
// }
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success();
}
public void syncSchedules(String crossId) throws Exception {
ObjectMapper mapper = new ObjectMapper();
// 计划信息
PlanSectionDTO planSectionDTO = new PlanSectionDTO();
planSectionDTO.setCrossId(crossId);
planSectionDTO.setPlanNo(-1);
JsonViewObject jsonViewObject1 = utcFeignClients.planSection(planSectionDTO);
if (Objects.isNull(jsonViewObject1) || jsonViewObject1.getCode() != 200) {
throw new Exception("信号机静态信息获取-计划信息-UTC服务调用异常");
}
Object content = jsonViewObject.getContent();
if (ObjectUtil.isNotNull(content)) {
// 信息入库
String contentStr = gson.toJson(content);
SchemePhaseLightsVO schemePhaseLightsVO = gson.fromJson(contentStr, SchemePhaseLightsVO.class);
if (ObjectUtil.isEmpty(schemePhaseLightsVO)) {
return jsonViewObject.fail("信号机方案对象转换结果为空,未更新数据库");
PlanSectionVO planSectionVO = mapper.convertValue(jsonViewObject1.getContent(), PlanSectionVO.class);
if (Objects.nonNull(planSectionVO)) {
List<CrossPlanPO> crossPlanPOList = planSectionVO.getCrossPlanPOList();
for (CrossPlanPO crossPlanPO : crossPlanPOList) {
baseCrossPlanMapper.insertOne(crossPlanPO);
}
List<BaseCrossSchemePO> crossSchemeList = schemePhaseLightsVO.getCrossSchemeList();
baseCrossSchemeMapper.deleteByCrossId(crossId);
// 保存旧方案ID
List<Integer> oldSchemeIds = crossSchemeList.stream().map(BaseCrossSchemePO::getId).collect(Collectors.toList());
// 保存新方案ID
baseCrossSchemeMapper.insertBatch(crossSchemeList);
List<Integer> newSchemeIds = crossSchemeList.stream().map(BaseCrossSchemePO::getId).collect(Collectors.toList());
// 生成新旧方案ID映射
Map<Integer, Integer> oldNewSchemeId = new HashMap<>();
for (int i = 0; i < oldSchemeIds.size(); i++) {
oldNewSchemeId.put(oldSchemeIds.get(i), newSchemeIds.get(i));
List<CrossSectionPO> crossSectionPOList = planSectionVO.getCrossSectionPOList();
for (CrossSectionPO crossSectionPO : crossSectionPOList) {
String planNo = null;
for (CrossPlanPO crossPlanPO : crossPlanPOList) {
if (Objects.equals(crossPlanPO.getId(), crossSectionPO.getPlanId())) {
planNo = crossPlanPO.getPlanNo();
}
}
CrossPlanPO crossPlanPO = baseCrossPlanMapper.selectByCrossIdAndPlanNo(crossId, planNo);
crossSectionPO.setPlanId(null);
crossSectionPO.setSchemeId(null);
baseCrossSectionMapper.insertOne(crossSectionPO);
}
}
List<CrossPhasePO> crossPhaseList = schemePhaseLightsVO.getCrossPhaseList();
baseCrossPhaseMapper.deleteByCrossId(crossId);
// 更新方案ID
for (CrossPhasePO crossPhasePO : crossPhaseList) {
// 当前相位未关联方案,方案id为-1
Integer planId = crossPhasePO.getPlanId();
if (planId == -1) {
crossPhasePO.setPlanId(-1);
} else {
crossPhasePO.setPlanId(oldNewSchemeId.get(planId));
}
// 调度信息
CrossSchedulesDTO crossSchedulesDTO = new CrossSchedulesDTO();
crossSchedulesDTO.setCrossIdList(Arrays.asList(crossId));
crossSchedulesDTO.setManufacturerCode("DT");
JsonViewObject jsonViewObject = utcFeignClients.crossSchedules(crossSchedulesDTO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
throw new Exception("信号机静态信息获取-调度信息-UTC服务调用异常");
}
List<CrossSchedulesPO> crossSchedulesPOList = mapper.convertValue(jsonViewObject.getContent(), new TypeReference<List<CrossSchedulesPO>>() {
});
baseCrossSchedulesMapper.deleteByCrossId(crossId);
baseCrossSchedulesPlanMapper.deleteByCrossId(crossId);
Integer tempScheduleNo = null;
HashMap<Integer, List<Integer>> weekMap = new HashMap<>(7);
HashMap<Integer, List<Date>> specialMap = new HashMap<>();
List<Integer> weekList = new ArrayList<>();
List<Date> scpecialList = new ArrayList<>();
for (CrossSchedulesPO crossSchedulesPO : crossSchedulesPOList) {
Integer scheduleNo = crossSchedulesPO.getScheduleNo();
BaseCrossSchedulesPO baseCrossSchedulesPO = new BaseCrossSchedulesPO();
weekList.add(crossSchedulesPO.getWeek());
scpecialList.add(crossSchedulesPO.getSpecialDate());
if (Objects.equals(tempScheduleNo, scheduleNo)) {
continue;
} else {
tempScheduleNo = scheduleNo;
baseCrossSchedulesPO.setScheduleNo(String.valueOf(scheduleNo));
baseCrossSchedulesPO.setCrossId(crossId);
baseCrossSchedulesPO.setStatus(0);
baseCrossSchedulesPO.setName(crossSchedulesPO.getName());
}
baseCrossPhaseMapper.insertBatch(crossPhaseList);
List<BaseCrossLightsPO> crossLightsList = schemePhaseLightsVO.getCrossLightsList();
// 清理数据库
baseCrossLightsMapper.deleteByCrossId(crossId);
// 灯组号去重
TreeSet<BaseCrossLightsPO> crossLightsSet = distinctLightsNo(crossLightsList);
// 修改灯组数据内容
changeLightsType(crossLightsSet);
baseCrossLightsMapper.insertBatch(crossLightsSet);
baseCrossPhaseLightsMapper.deleteByCrossId(crossId);
baseCrossLaneLightsMapper.deleteByCrossId(crossId);
baseCrossSchedulesMapper.insertOne(baseCrossSchedulesPO);
weekMap.put(scheduleNo, weekList);
specialMap.put(scheduleNo, scpecialList);
}
return jsonViewObject.success();
List<BaseCrossSchedulesPO> baseCrossSchedulesPOS = baseCrossSchedulesMapper.selectByCrossId(crossId);
List<CrossPlanPO> crossPlanPOS = baseCrossPlanMapper.selectByCrossId(crossId);
}
private TreeSet<BaseCrossLightsPO> distinctLightsNo(List<BaseCrossLightsPO> crossLightsList) {
......@@ -624,12 +705,12 @@ public class PlanSendServiceImpl implements PlanSendService {
private List<ScheduleSendVO.Schedule> buildSchedules(String crossId, ScheduleIdDTO scheduleIdDTO) {
List<ScheduleSendVO.Schedule> schedules = new ArrayList<>();
Integer scheduleId = scheduleIdDTO.getScheduleId();
List<CrossSchedulesPlanPO> crossSchedulesPlanPOList =
crossSchedulesPlanMapper.selectByCrossIdAndSchedulesId(crossId, scheduleId);
List<BaseCrossSchedulesPlanPO> crossSchedulesPlanPOList =
baseCrossSchedulesPlanMapper.selectByCrossIdAndSchedulesId(crossId, scheduleId);
ScheduleSendVO.Schedule schedule = new ScheduleSendVO.Schedule();
List<ScheduleSendVO.Schedule.Week> weeks = new ArrayList<>();
List<ScheduleSendVO.Schedule.SpecialDay> specialDays = new ArrayList<>();
for (CrossSchedulesPlanPO crossSchedulesPlanPO : crossSchedulesPlanPOList) {
for (BaseCrossSchedulesPlanPO crossSchedulesPlanPO : crossSchedulesPlanPOList) {
Integer planId = crossSchedulesPlanPO.getPlanId();
Integer week = crossSchedulesPlanPO.getWeek();
Date specialDate = crossSchedulesPlanPO.getSpecialDate();
......
......@@ -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