Commit ca26b13f authored by zhouleilei's avatar zhouleilei

解决灯组id重复问题

parent db0f71e3
......@@ -23,10 +23,7 @@ import net.wanji.utc.hisense.pojo.dto.RingPhaseDTO;
import net.wanji.utc.hisense.pojo.dto.StagePhaseDTO;
import net.wanji.utc.hisense.pojo.result.CoordinationStatus;
import net.wanji.utc.hisense.pojo.result.CrossSchemeRings;
import net.wanji.utc.hisense.pojo.view.VIntersectionView;
import net.wanji.utc.hisense.pojo.view.VNtcipChannelPhaseDTO;
import net.wanji.utc.hisense.pojo.view.VNtcipTimeBaseDayplanDTO;
import net.wanji.utc.hisense.pojo.view.VNtcipTimeBaseScheduleView;
import net.wanji.utc.hisense.pojo.view.*;
import net.wanji.utc.hisense.service.StaticInfoService;
import net.wanji.utc.hisense.util.CommonUtils;
import net.wanji.utc.hisense.util.OkHttpClientUtil;
......@@ -109,12 +106,70 @@ public class StaticInfoServiceImpl implements StaticInfoService {
List<CrossPhaseLightsPO> crossPhaseLightsPOList = new ArrayList<>();
List<CrossSchemePO> crossSchemeList = new ArrayList<>();
//查询该路口的所有方案
//TODO
// LambdaQueryWrapper<VIntersectionView> queryWrapper = new LambdaQueryWrapper<>();
// List<VIntersectionView> vIntersectionEntities = vIntersectionMapper.selectList(queryWrapper);
// vNtcipPatternMapper.selectList(null);
//从缓存中拿路口信息
CrossInfoPO crossInfoPO = CrossInfoCache.getCrossInfoCache().get(crossId);
LambdaQueryWrapper<VNtcipPatternView> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(VNtcipPatternView::getCIntsID, crossInfoPO.getCode());
List<VNtcipPatternView> vNtcipPatternViews = vNtcipPatternMapper.selectList(queryWrapper);
for (VNtcipPatternView vNtcipPatternView : vNtcipPatternViews) {
CrossSchemeRingsDTO crossSchemeRingsDTO = new CrossSchemeRingsDTO();
crossSchemeRingsDTO.setCrossId(crossId);
crossSchemeRingsDTO.setPattern(vNtcipPatternView.getNPatternNumber()+"");
//查询方案环图请求
CrossSchemeRings crossSchemeRings = crossSchemeRings(crossSchemeRingsDTO);
if (Optional.ofNullable(crossSchemeRings).isPresent()) {
//环数
int ringCount = Integer.parseInt(crossSchemeRings.getRingCount());
//周期长度
String cycleLen = crossSchemeRings.getCycleLen();
JSONObject cycleJSONObject = crossSchemeRings.getCycleList();
//相位差
String offset = crossSchemeRings.getOffset();
int cycle = Integer.valueOf(cycleLen);
CrossSchemePO crossSchemePO = new CrossSchemePO();
//方案号
int schemeNo = (Integer.valueOf(crossSchemeRings.getPattern()) + 2) / 3;
crossSchemePO.setSchemeNo(schemeNo + "");
crossSchemePO.setName("海信方案:" + schemeNo);
crossSchemePO.setCrossId(crossId);
crossSchemePO.setCycle(cycle);
//协调相位id先默认给1
crossSchemePO.setCoordPhase(1);
crossSchemePO.setOffset(Integer.valueOf(offset));
//来源默认信号机
crossSchemePO.setSource(1);
//默认给0
crossSchemePO.setIsDeleted(0);
//默认给0
crossSchemePO.setStatus(0);
crossSchemePO.setGmtCreate(null);
crossSchemePO.setGmtModified(null);
crossSchemeList.add(crossSchemePO);
List<CrossSchemeRings.Phase> phaseList = crossSchemeRings.getPhaseList();
CrossSchemeRings.Phase phase = phaseList.get(0);
//16 个相位的红灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String[] redTime = phase.getRedTime().split(" ");
//16 个相位的绿灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String[] greenTime = phase.getGreenTime().split(" ");
//16 个相位的黄灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String[] yellowTime = phase.getYellowTime().split(" ");
//16 个相位的最小绿时间(单位秒),中间用空格隔开,不存在的相位置 0。
String[] minGTime = phase.getMinGTime().split(" ");
//16 个相位的最大绿时间(单位秒),中间用空格隔开,不存在的相位置 0。
String[] maxGTime = phase.getMaxGTime().split(" ");
//封装环和环上相位数据
Map<Integer, List<RingPhaseDTO>> ringPhasesMap = getRingPhasesMap(ringCount, cycleJSONObject, redTime, greenTime, yellowTime, minGTime, maxGTime);
//16 个相位的放行方向,每个相位由 8 字节整型值存储(最多支持 7 个放行方向),每个字节表示一个放行方向,
String[] channelDim = phase.getChannelDim().split(" ");
//数据处理
getStagesByRings(cycle, ringCount, crossId, schemeNo, ringPhasesMap, crossLightsList, crossPhaseList, crossPhaseLightsPOList, channelDim);
}
}
//查询当前运行的方案
CoordinationStatus coordinationStatus = crossPlan(crossId);
/* CoordinationStatus coordinationStatus = crossPlan(crossId);
if (Optional.ofNullable(coordinationStatus).isPresent()) {
CrossSchemeRingsDTO crossSchemeRingsDTO = new CrossSchemeRingsDTO();
crossSchemeRingsDTO.setCrossId(crossId);
......@@ -170,7 +225,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
//数据处理
getStagesByRings(cycle, ringCount, crossId, schemeNo, ringPhasesMap, crossLightsList, crossPhaseList, crossPhaseLightsPOList, channelDim);
}
}
}*/
phaseLightsVO.setCrossPhaseLightsPOList(crossPhaseLightsPOList);
phaseLightsVO.setCrossLightsList(crossLightsList);
phaseLightsVO.setCrossSchemeList(crossSchemeList);
......@@ -429,8 +484,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
//灯组
CrossLightsPO crossLightsPO = new CrossLightsPO();
lightNum.getAndIncrement();
crossLightsPO.setLightsNo(lightNum.get() + "");
crossLightsPO.setName("灯组" + lightNum.get());
crossLightsPO.setLightsNo(schemeNo+ ""+lightNum.get() );
crossLightsPO.setName("灯组" + schemeNo+lightNum.get());
//默认0
crossLightsPO.setType(0);
if (wjPerson != 0) {
......@@ -448,7 +503,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
//灯组与相位关系
CrossPhaseLightsPO crossPhaseLightsPO = new CrossPhaseLightsPO();
crossPhaseLightsPO.setLightsId(lightNum.get());
crossPhaseLightsPO.setLightsId(Integer.valueOf(schemeNo+""+lightNum.get()));
crossPhaseLightsPO.setPhaseId(phaseNum.get());
crossPhaseLightsPO.setCrossId(crossId);
crossPhaseLightsPO.setGmtCreate(null);
......
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