Commit 3bfac417 authored by zhouleilei's avatar zhouleilei

获取方案号 不从海信获取,从试图中获取;修改获取环图逻辑

parent e210a233
...@@ -92,6 +92,18 @@ public class DiagnoController { ...@@ -92,6 +92,18 @@ public class DiagnoController {
return JsonViewObject.newInstance().success(phaseOptTimeList); return JsonViewObject.newInstance().success(phaseOptTimeList);
} }
@ApiOperation(value = "方案优化对比", notes = "方案优化对比", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/schemeComparison",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SchemeOptVO.PhaseOptTime.class),
})
public JsonViewObject schemeComparison(@RequestBody CrossIdAndSchemeIdDTO crossIdAndSchemeIdDTO) {
List<SchemeOptVO.PhaseOptTime> phaseOptTimeList = diagnoService.schemeComparison(crossIdAndSchemeIdDTO);
return JsonViewObject.newInstance().success(phaseOptTimeList);
}
@ApiOperation(value = "下发手动干预", notes = "下发手动干预", response = JsonViewObject.class, @ApiOperation(value = "下发手动干预", notes = "下发手动干预", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/sendManual", @PostMapping(value = "/sendManual",
......
...@@ -25,6 +25,7 @@ public interface DiagnoService { ...@@ -25,6 +25,7 @@ public interface DiagnoService {
SchemeOptVO querySchemeOpt(CrossIdAndSchemeIdBO bo); SchemeOptVO querySchemeOpt(CrossIdAndSchemeIdBO bo);
List<SchemeOptVO.PhaseOptTime> queryOptTime(CrossIdAndSchemeIdDTO crossIdAndSchemeIdDTO); List<SchemeOptVO.PhaseOptTime> queryOptTime(CrossIdAndSchemeIdDTO crossIdAndSchemeIdDTO);
List<SchemeOptVO.PhaseOptTime> schemeComparison(CrossIdAndSchemeIdDTO crossIdAndSchemeIdDTO);
void sendManual(SendManualDTO sendManualDTO) throws Exception; void sendManual(SendManualDTO sendManualDTO) throws Exception;
......
...@@ -40,6 +40,7 @@ import org.springframework.stereotype.Service; ...@@ -40,6 +40,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -211,6 +212,27 @@ public class DiagnoServiceImpl implements DiagnoService { ...@@ -211,6 +212,27 @@ public class DiagnoServiceImpl implements DiagnoService {
@Override @Override
public List<SchemeOptVO.PhaseOptTime> queryOptTime(CrossIdAndSchemeIdDTO crossIdAndSchemeIdDTO) { public List<SchemeOptVO.PhaseOptTime> queryOptTime(CrossIdAndSchemeIdDTO crossIdAndSchemeIdDTO) {
String crossId = crossIdAndSchemeIdDTO.getCrossId();
Integer schemeId = crossIdAndSchemeIdDTO.getSchemeId();
List<SchemeOptVO.PhaseOptTime> phaseOptTimeList = new ArrayList<>();
// 选择数据批次时间最大的记录
List<CrossSchemeOptLogPO> maxList = crossSchemeOptLogMapper.selectMaxByCrossId(crossId);
for (CrossSchemeOptLogPO crossSchemeOptLogPO : maxList) {
SchemeOptVO.PhaseOptTime phaseOptTime = new SchemeOptVO.PhaseOptTime();
String phaseNo = crossSchemeOptLogPO.getPhaseNo();
phaseOptTime.setPhaseNo(phaseNo);
Integer oriGreenTime = crossSchemeOptLogPO.getOriGreenTime();
phaseOptTime.setOriGreenTime(oriGreenTime);
Integer optGreenTime = getNewGreenTime(crossId, schemeId, phaseNo);
phaseOptTime.setOptGreenTime(optGreenTime);
phaseOptTime.setOptTime(optGreenTime - oriGreenTime);
phaseOptTimeList.add(phaseOptTime);
}
return phaseOptTimeList;
}
@Override
public List<SchemeOptVO.PhaseOptTime> schemeComparison(CrossIdAndSchemeIdDTO crossIdAndSchemeIdDTO) {
String crossId = crossIdAndSchemeIdDTO.getCrossId(); String crossId = crossIdAndSchemeIdDTO.getCrossId();
Integer schemeId = crossIdAndSchemeIdDTO.getSchemeId(); Integer schemeId = crossIdAndSchemeIdDTO.getSchemeId();
List<SchemeOptVO.PhaseOptTime> phaseOptTimeList = new ArrayList<>(); List<SchemeOptVO.PhaseOptTime> phaseOptTimeList = new ArrayList<>();
...@@ -218,10 +240,22 @@ public class DiagnoServiceImpl implements DiagnoService { ...@@ -218,10 +240,22 @@ public class DiagnoServiceImpl implements DiagnoService {
crossSchemeRingsDTO.setCrossId(crossId); crossSchemeRingsDTO.setCrossId(crossId);
crossSchemeRingsDTO.setPattern(String.valueOf(schemeId)); crossSchemeRingsDTO.setPattern(String.valueOf(schemeId));
//查询当前路口运行的方案
LocalDate now = LocalDate.now();
int week = now.getDayOfWeek().getValue();
if (week == 7) {
//表中周日用0表示
week = 0;
}
//通过路口号和方案号查询方案id //通过路口号和方案号查询方案id
Integer integer = baseCrossSchemeMapper.selectIdByCrossIdAndSchemeNo(crossId, String.valueOf(schemeId)); BaseCrossSchemePO baseCrossSchemePO = baseCrossSchemeMapper.selectByCrossIdAndWeek(crossId,week);
List<CrossPhasePO> phasePOList = baseCrossPhaseMapper.selectByCrossIdAndSchemeId(crossId, integer); if (ObjectUtils.isEmpty(baseCrossSchemePO)){
if (ObjectUtils.isEmpty(phasePOList) || ObjectUtils.isEmpty(integer)) { return phaseOptTimeList;
}
Integer schemeNo = Integer.valueOf(baseCrossSchemePO.getSchemeNo());
schemeNo = (schemeNo+2)/3;
List<CrossPhasePO> phasePOList = baseCrossPhaseMapper.selectByCrossIdAndSchemeId(crossId, schemeNo);
if (ObjectUtils.isEmpty(phasePOList) || ObjectUtils.isEmpty(schemeNo)) {
return phaseOptTimeList; return phaseOptTimeList;
} }
JsonViewObject jsonViewObject = utcFeignClients.schemeOptLog(crossSchemeRingsDTO); JsonViewObject jsonViewObject = utcFeignClients.schemeOptLog(crossSchemeRingsDTO);
......
...@@ -42,6 +42,7 @@ public class CrossRunSchemeCache implements CommandLineRunner { ...@@ -42,6 +42,7 @@ public class CrossRunSchemeCache implements CommandLineRunner {
@Override @Override
public void run(String... args) throws Exception { public void run(String... args) throws Exception {
init(); init();
System.out.println(currentRunSchemeNoCache);
} }
public void init() throws Exception { public void init() throws Exception {
......
...@@ -35,7 +35,6 @@ import javax.annotation.Resource; ...@@ -35,7 +35,6 @@ import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
/** /**
* @author duanruiming * @author duanruiming
...@@ -240,7 +239,7 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -240,7 +239,7 @@ public class ControlCommandServiceImpl implements ControlCommandService {
@Override @Override
public JsonViewObject recoverSchedule(String code) throws Exception { public JsonViewObject recoverSchedule(String code) throws Exception {
log.info("接收到恢复固定配时,code:{}",code); log.info("接收到恢复固定配时,code:{}", code);
CrossInfoPOExt crossInfoPOExt = crossInfoMapper.selectById(code); CrossInfoPOExt crossInfoPOExt = crossInfoMapper.selectById(code);
//组装document //组装document
Document document = OperationBaseDom.generateBaseDoc(); Document document = OperationBaseDom.generateBaseDoc();
...@@ -317,8 +316,8 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -317,8 +316,8 @@ public class ControlCommandServiceImpl implements ControlCommandService {
messageContent.addElement(HttpConstants.CYCLE).setText(tempSchemeSendVO.getCycle()); messageContent.addElement(HttpConstants.CYCLE).setText(tempSchemeSendVO.getCycle());
messageContent.addElement(HttpConstants.OFFSET).setText(tempSchemeSendVO.getOffset()); messageContent.addElement(HttpConstants.OFFSET).setText(tempSchemeSendVO.getOffset());
messageContent.addElement(HttpConstants.TYPE).setText(tempSchemeSendVO.getType()); messageContent.addElement(HttpConstants.TYPE).setText(tempSchemeSendVO.getType());
tempSchemeSendVO.setSplit(tempSchemeSendVO.getSplit().replaceAll(" ",",")); //卫博传的是空格
messageContent.addElement(HttpConstants.SPLIT).setText(tempSchemeSendVO.getSplit()); messageContent.addElement(HttpConstants.SPLIT).setText(tempSchemeSendVO.getSplit().replaceAll(" ", ","));
//给海信发送http请求 //给海信发送http请求
String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML()); String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML());
...@@ -350,17 +349,17 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -350,17 +349,17 @@ public class ControlCommandServiceImpl implements ControlCommandService {
if (HttpConstants.RESULT_1.equals(result)) { if (HttpConstants.RESULT_1.equals(result)) {
//指令下发成功 //指令下发成功
jsonViewObject.success("临时方案 - 指令下发成功"); jsonViewObject.success("临时方案 - 指令下发成功");
log.info("临时方案下发成功,tempSchemeSendVO:{}",JSONObject.toJSONString(tempSchemeSendVO)); log.info("临时方案下发成功,tempSchemeSendVO:{}", JSONObject.toJSONString(tempSchemeSendVO));
} else if (HttpConstants.RESULT_0.equals(result)) { } else if (HttpConstants.RESULT_0.equals(result)) {
log.error("临时方案下发失败,tempSchemeSendVO:{}",JSONObject.toJSONString(tempSchemeSendVO)); log.error("临时方案下发失败,tempSchemeSendVO:{}", JSONObject.toJSONString(tempSchemeSendVO));
//指令下发失败 //指令下发失败
jsonViewObject.fail("临时方案 - 指令下发失败"); jsonViewObject.fail("临时方案 - 指令下发失败");
} else if (HttpConstants.RESULT_2.equals(result)) { } else if (HttpConstants.RESULT_2.equals(result)) {
log.info("临时方案指令执行成功,tempSchemeSendVO:{}",JSONObject.toJSONString(tempSchemeSendVO)); log.info("临时方案指令执行成功,tempSchemeSendVO:{}", JSONObject.toJSONString(tempSchemeSendVO));
//指令执行成功 //指令执行成功
jsonViewObject.success("临时方案 - 指令执行成功"); jsonViewObject.success("临时方案 - 指令执行成功");
} else { } else {
log.error("临时方案指令执行失败,tempSchemeSendVO:{}",JSONObject.toJSONString(tempSchemeSendVO)); log.error("临时方案指令执行失败,tempSchemeSendVO:{}", JSONObject.toJSONString(tempSchemeSendVO));
//指令执行失败 //指令执行失败
jsonViewObject.fail("临时方案 - 指令执行失败"); jsonViewObject.fail("临时方案 - 指令执行失败");
} }
...@@ -417,17 +416,10 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -417,17 +416,10 @@ public class ControlCommandServiceImpl implements ControlCommandService {
//方案环图请求 //方案环图请求
CrossSchemeRings crossSchemeRings = staticInfoService.crossSchemeRings(crossSchemeRingsDTO); CrossSchemeRings crossSchemeRings = staticInfoService.crossSchemeRings(crossSchemeRingsDTO);
long currentTimeMillis = System.currentTimeMillis(); long currentTimeMillis = System.currentTimeMillis();
if (Optional.ofNullable(crossSchemeRings).isPresent() || result == 2) { if (ObjectUtil.isNotEmpty(crossSchemeRings) && result == 1) {
//环数 //环数
int ringCount = Integer.parseInt(crossSchemeRings.getRingCount()); int ringCount = Integer.parseInt(crossSchemeRings.getRingCount());
//周期长度
String cycleLen = crossSchemeRings.getCycleLen();
JSONObject cycleJSONObject = crossSchemeRings.getCycleList(); JSONObject cycleJSONObject = crossSchemeRings.getCycleList();
//相位差
String offset = crossSchemeRings.getOffset();
int cycle = Integer.valueOf(cycleLen);
//方案号
int schemeNo = (Integer.valueOf(crossSchemeRings.getPattern()) + 2) / 3;
List<CrossSchemeRings.Phase> phaseList = crossSchemeRings.getPhaseList(); List<CrossSchemeRings.Phase> phaseList = crossSchemeRings.getPhaseList();
CrossSchemeRings.Phase phase = phaseList.get(0); CrossSchemeRings.Phase phase = phaseList.get(0);
//红灯黄灯时间给默认值0 //红灯黄灯时间给默认值0
...@@ -435,12 +427,12 @@ public class ControlCommandServiceImpl implements ControlCommandService { ...@@ -435,12 +427,12 @@ public class ControlCommandServiceImpl implements ControlCommandService {
phase.setYellowTime(getDefaultPhaseTime()); phase.setYellowTime(getDefaultPhaseTime());
//绿灯时间为神思绿信比时间 //绿灯时间为神思绿信比时间
phase.setGreenTime(greenTime); phase.setGreenTime(greenTime);
//封装环和环上相位数据
Map<Integer, List<RingPhaseDTO>> ringPhasesMap = staticInfoServiceImpl.getRingPhasesMap(ringCount, cycleJSONObject, phase);
//环封装阶段
List<StagePhaseDTO> stagePhaseDTOList = null; List<StagePhaseDTO> stagePhaseDTOList = null;
try { try {
stagePhaseDTOList = staticInfoServiceImpl.stagePhaseList(cycle, ringCount, ringPhasesMap); //封装环和环上相位数据
Map<Integer, List<RingPhaseDTO>> ringPhasesMap = staticInfoServiceImpl.getRingPhasesMap(ringCount, cycleJSONObject, phase);
//环封装阶段
stagePhaseDTOList = staticInfoServiceImpl.stagePhaseList(Integer.valueOf(tempSchemeSendVO.getCycle()), ringCount, ringPhasesMap);
} catch (Exception e) { } catch (Exception e) {
CrossSchemeStageOptLogPO crossSchemeStageOptLogPO = new CrossSchemeStageOptLogPO(); CrossSchemeStageOptLogPO crossSchemeStageOptLogPO = new CrossSchemeStageOptLogPO();
crossSchemeStageOptLogPO.setCrossId(crossId); crossSchemeStageOptLogPO.setCrossId(crossId);
......
package net.wanji.utc.hisense.service.impl; package net.wanji.utc.hisense.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -8,10 +9,12 @@ import lombok.extern.slf4j.Slf4j; ...@@ -8,10 +9,12 @@ import lombok.extern.slf4j.Slf4j;
import net.wanji.common.utils.tool.ScheduleUtil; import net.wanji.common.utils.tool.ScheduleUtil;
import net.wanji.common.utils.tool.StringUtils; import net.wanji.common.utils.tool.StringUtils;
import net.wanji.databus.dao.entity.*; import net.wanji.databus.dao.entity.*;
import net.wanji.databus.dao.mapper.BaseCrossSchemeMapper;
import net.wanji.databus.dao.mapper.CrossInfoMapper; import net.wanji.databus.dao.mapper.CrossInfoMapper;
import net.wanji.databus.dao.mapper.CrossSchemeStageOptLogMapper; import net.wanji.databus.dao.mapper.CrossSchemeStageOptLogMapper;
import net.wanji.databus.dao.mapper.ManufacturerInfoMapper; import net.wanji.databus.dao.mapper.ManufacturerInfoMapper;
import net.wanji.databus.dto.*; import net.wanji.databus.dto.*;
import net.wanji.databus.po.CoordinationStatus;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.CrossInfoPOExt; import net.wanji.databus.po.CrossInfoPOExt;
import net.wanji.databus.vo.PlanSectionVO; import net.wanji.databus.vo.PlanSectionVO;
...@@ -22,7 +25,6 @@ import net.wanji.utc.hisense.common.constants.HttpConstants; ...@@ -22,7 +25,6 @@ import net.wanji.utc.hisense.common.constants.HttpConstants;
import net.wanji.utc.hisense.mapper.*; import net.wanji.utc.hisense.mapper.*;
import net.wanji.utc.hisense.pojo.dto.RingPhaseDTO; import net.wanji.utc.hisense.pojo.dto.RingPhaseDTO;
import net.wanji.utc.hisense.pojo.dto.StagePhaseDTO; import net.wanji.utc.hisense.pojo.dto.StagePhaseDTO;
import net.wanji.databus.po.CoordinationStatus;
import net.wanji.utc.hisense.pojo.result.CrossSchemeRings; import net.wanji.utc.hisense.pojo.result.CrossSchemeRings;
import net.wanji.utc.hisense.pojo.view.*; import net.wanji.utc.hisense.pojo.view.*;
import net.wanji.utc.hisense.service.StaticInfoService; import net.wanji.utc.hisense.service.StaticInfoService;
...@@ -38,6 +40,7 @@ import org.springframework.stereotype.Service; ...@@ -38,6 +40,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -71,6 +74,8 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -71,6 +74,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
private VNtcipPatternMapper vNtcipPatternMapper; private VNtcipPatternMapper vNtcipPatternMapper;
@Resource @Resource
private CrossSchemeStageOptLogMapper crossSchemeStageOptLogMapper; private CrossSchemeStageOptLogMapper crossSchemeStageOptLogMapper;
@Resource
private BaseCrossSchemeMapper baseCrossSchemeMapper;
@Override @Override
public List<CrossInfoPO> crossBasicInfo(CrossInfoDTO crossInfoDTO) throws Exception { public List<CrossInfoPO> crossBasicInfo(CrossInfoDTO crossInfoDTO) throws Exception {
...@@ -676,6 +681,45 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -676,6 +681,45 @@ public class StaticInfoServiceImpl implements StaticInfoService {
@Override @Override
public CoordinationStatus crossPlan(String crossId) throws Exception { public CoordinationStatus crossPlan(String crossId) throws Exception {
CoordinationStatus coordinationStatus = null;
int schemeId = 0;
//查询当前路口运行的方案
LocalDate now = LocalDate.now();
int week = now.getDayOfWeek().getValue();
if (week == 7) {
//表中周日用0表示
week = 0;
}
BaseCrossSchemePO baseCrossSchemePO = baseCrossSchemeMapper.selectByCrossIdAndWeek(crossId, week);
if (ObjectUtil.isNotEmpty(baseCrossSchemePO)) {
coordinationStatus = new CoordinationStatus();
//从缓存中拿路口信息
CrossInfoPO crossInfoPO = CrossInfoCache.getCrossInfoCache().get(crossId);
if (ObjectUtil.isNotNull(crossInfoPO)) {
coordinationStatus.setSpot(crossInfoPO.getCode());
//海信的方案号
int schemeNo = Integer.valueOf(baseCrossSchemePO.getSchemeNo()) * 3 - 2;
if (schemeNo == 253) {
//黃闪
schemeNo = 255;
}
coordinationStatus.setCoordPatternStatus(String.valueOf(schemeNo));
coordinationStatus.setCoordCycleStatus(String.valueOf(baseCrossSchemePO.getCycle()));
}
} else {
coordinationStatus = crossPlanHisense(crossId);
}
return coordinationStatus;
}
/**
* @return net.wanji.databus.po.CoordinationStatus
* @Description 直接获取海信的私有协议
* @Param [crossId]
**/
public CoordinationStatus crossPlanHisense(String crossId) throws Exception {
CrossInfoPOExt crossInfoPOExt = crossInfoMapper.selectById(crossId); CrossInfoPOExt crossInfoPOExt = crossInfoMapper.selectById(crossId);
//组装document //组装document
Document document = OperationBaseDom.generateBaseDoc(); Document document = OperationBaseDom.generateBaseDoc();
...@@ -723,7 +767,21 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -723,7 +767,21 @@ public class StaticInfoServiceImpl implements StaticInfoService {
element.addElement(HttpConstants.MESSAGETYPE).setText(HttpConstants.MESSAGETYPE_30); element.addElement(HttpConstants.MESSAGETYPE).setText(HttpConstants.MESSAGETYPE_30);
Element messageContent = (Element) document.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_MESSAGECONTENT); Element messageContent = (Element) document.selectSingleNode(HttpConstants.SYSTEMSCRIPTION_MESSAGECONTENT);
messageContent.addElement(HttpConstants.SPOT).setText(crossInfoPOExt.getCode()); messageContent.addElement(HttpConstants.SPOT).setText(crossInfoPOExt.getCode());
messageContent.addElement(HttpConstants.PATTERN).setText(crossSchemeRingsDTO.getPattern()); //获取当前运行的方案号
CoordinationStatus coordinationStatus = crossPlan(crossSchemeRingsDTO.getCrossId());
if (ObjectUtil.isEmpty(coordinationStatus)) {
//获取方案号失败
log.error("请求方案环图前,获取当前运行方案号失败,crossId:{}",crossSchemeRingsDTO.getCrossId());
return null;
}else if ("255".equals(coordinationStatus.getCoordPatternStatus())){
//黃闪
CrossSchemeRings crossSchemeRings = new CrossSchemeRings();
crossSchemeRings.setSpot(crossSchemeRingsDTO.getCrossId());
crossSchemeRings.setPattern(coordinationStatus.getCoordPatternStatus());
return crossSchemeRings;
}
messageContent.addElement(HttpConstants.PATTERN).setText(coordinationStatus.getCoordPatternStatus());
//给海信发送http请求 //给海信发送http请求
String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML()); String post = OkHttpClientUtil.xmlPost(hisenseUrl, document.asXML());
if (StringUtils.isBlank(post)) { if (StringUtils.isBlank(post)) {
......
...@@ -60,4 +60,5 @@ public interface BaseCrossSchemeMapper { ...@@ -60,4 +60,5 @@ public interface BaseCrossSchemeMapper {
BaseCrossSchemePO selectByCrossIdAndSchemeId(String crossId, Integer schemeId); BaseCrossSchemePO selectByCrossIdAndSchemeId(String crossId, Integer schemeId);
List<CrossSchemeInfoPO> selectSchemeInfoByCrossIdAndSchemeId(String crossId, Integer schemeId); List<CrossSchemeInfoPO> selectSchemeInfoByCrossIdAndSchemeId(String crossId, Integer schemeId);
BaseCrossSchemePO selectByCrossIdAndWeek(@Param("crossId") String crossId,@Param("week") int week);
} }
...@@ -25,7 +25,6 @@ public class CrossSchemeRingsDTO { ...@@ -25,7 +25,6 @@ public class CrossSchemeRingsDTO {
private String crossId; private String crossId;
@ApiModelProperty(value = "方案号") @ApiModelProperty(value = "方案号")
@NotNull(message = "pattern 不能为空")
private String pattern; private String pattern;
} }
...@@ -187,37 +187,53 @@ ...@@ -187,37 +187,53 @@
</select> </select>
<select id="selectSchemeInfoByCrossIdAndSchemeId" resultType="net.wanji.databus.po.CrossSchemeInfoPO"> <select id="selectSchemeInfoByCrossIdAndSchemeId" resultType="net.wanji.databus.po.CrossSchemeInfoPO">
SELECT SELECT
sche.id AS schemeId, sche.id AS schemeId,
sche.cross_id AS crossId, sche.cross_id AS crossId,
sche.scheme_no AS schemeNo, sche.scheme_no AS schemeNo,
phase.phase_no AS phaseNo, phase.phase_no AS phaseNo,
phase.phase_time AS phaseTime, phase.phase_time AS phaseTime,
phase.id AS phaseId, phase.id AS phaseId,
phase.green_time AS greenTime, phase.green_time AS greenTime,
phase.yellow_time AS yellowTime, phase.yellow_time AS yellowTime,
phase.red_time AS redTime, phase.red_time AS redTime,
pl.lights_id AS lightsId, pl.lights_id AS lightsId,
light.dir, light.dir,
ll.lane_id AS landId, ll.lane_id AS landId,
lane.turn, lane.turn,
lane.category AS laneType lane.category AS laneType
FROM FROM
t_base_cross_scheme sche t_base_cross_scheme sche
LEFT JOIN t_base_cross_phase phase ON sche.cross_id = phase.cross_id LEFT JOIN t_base_cross_phase phase ON sche.cross_id = phase.cross_id
AND sche.id = phase.plan_id AND sche.id = phase.plan_id
LEFT JOIN t_base_cross_phase_lights pl ON pl.cross_id = phase.cross_id LEFT JOIN t_base_cross_phase_lights pl ON pl.cross_id = phase.cross_id
AND pl.phase_id = phase.id AND pl.phase_id = phase.id
LEFT JOIN t_base_cross_lights light ON light.cross_id = phase.cross_id LEFT JOIN t_base_cross_lights light ON light.cross_id = phase.cross_id
AND light.id = pl.lights_id AND light.id = pl.lights_id
LEFT JOIN t_base_cross_lane_lights ll ON ll.cross_id = light.cross_id LEFT JOIN t_base_cross_lane_lights ll ON ll.cross_id = light.cross_id
AND ll.lights_id = light.id AND ll.lights_id = light.id
LEFT JOIN t_base_lane_info lane ON lane.cross_id = ll.cross_id LEFT JOIN t_base_lane_info lane ON lane.cross_id = ll.cross_id
AND lane.id = ll.lane_id AND lane.id = ll.lane_id
WHERE WHERE
sche.cross_id = #{crossId} sche.cross_id = #{crossId}
AND sche.scheme_no = #{schemeId} AND sche.scheme_no = #{schemeId}
ORDER BY ORDER BY
phaseNo ASC phaseNo ASC
</select>
<select id="selectByCrossIdAndWeek" resultType="net.wanji.databus.dao.entity.BaseCrossSchemePO">
SELECT
scheme.id AS id,scheme.scheme_no AS schemeNo,scheme.name AS name,scheme.cross_id AS crossId,scheme.cycle AS cycle,scheme.coord_phase AS coordPhase,scheme.offset AS offset,scheme.source AS source,scheme.is_deleted AS isDeleted,scheme.status AS status,scheme.gmt_create AS gmtCreate,scheme.gmt_modified AS gmtModified
FROM
t_cross_schedules schedules
LEFT JOIN t_cross_section section ON section.cross_id = schedules.cross_id
AND schedules.plan_id = section.plan_id
LEFT JOIN t_cross_scheme scheme ON scheme.cross_id = section.cross_id
AND section.scheme_id = scheme.id
WHERE
schedules.cross_id = #{crossId}
AND schedules.`week` = #{week}
AND DATE_FORMAT( NOW(), '%H:%i' ) BETWEEN DATE_FORMAT( CAST( section.start_time AS TIME ), '%H:%i' )
AND DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' )
</select> </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