Commit 9f79b7d9 authored by duanruiming's avatar duanruiming

[update] 优化灯组查询

parent 722773ac
......@@ -21,6 +21,7 @@ import net.wanji.utc.dt.netty.NettyClient;
import net.wanji.utc.dt.pojo.dtconvert.*;
import net.wanji.utc.dt.pojo.netty.MessageResultPojo;
import net.wanji.utc.dt.service.controller.StaticInfoService;
import net.wanji.utc.dt.util.CommonUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -67,7 +68,7 @@ public class DTStaticInfoServiceImpl implements StaticInfoService {
SchemePhaseLightsVO schemePhaseLightsVO = new SchemePhaseLightsVO();
List<BaseCrossSchemePO> crossSchemeList = getCrossSchemeList(crossId, schemeInfoPojos);
List<CrossPhasePO> crossPhaseList = getCrossPhaseList(crossId, phaseInfoPojos, phaseStageInfoPojos, schemeInfoPojos);
List<CrossLightsPO> crossLightsList = getCrossLightsList(crossId, crossPhaseList, phaseInfoPojos, lightsInfoPojos);
List<CrossLightsPO> crossLightsList = getCrossLightsList(crossId, phaseInfoPojos, lightsInfoPojos);
List<CrossPhaseLightsPO> crossPhaseLightsPOList = getCrossPhaseLightsList(crossId, crossPhaseList, phaseInfoPojos, phaseStageInfoPojos);
schemePhaseLightsVO.setCrossPhaseLightsPOList(crossPhaseLightsPOList);
schemePhaseLightsVO.setCrossPhaseList(crossPhaseList);
......@@ -99,32 +100,29 @@ public class DTStaticInfoServiceImpl implements StaticInfoService {
return crossPhaseLightsList.stream().distinct().collect(Collectors.toList());
}
private List<CrossLightsPO> getCrossLightsList(String crossId, List<CrossPhasePO> crossPhaseList, List<PhaseInfoPojo> phaseInfoPojos, List<LightsInfoPojo> lightsInfoPojos) {
private List<CrossLightsPO> getCrossLightsList(String crossId, List<PhaseInfoPojo> phaseInfoPojos, List<LightsInfoPojo> lightsInfoPojos) {
List<CrossLightsPO> crossLightsList = new ArrayList<>();
for (CrossPhasePO crossPhasePO : crossPhaseList) {
for (PhaseInfoPojo phaseInfoPojo : phaseInfoPojos) {
if (StringUtils.equals(crossPhasePO.getPhaseNo(), String.valueOf(phaseInfoPojo.getPhaseId()))) {
CrossLightsPO crossLightsPO = new CrossLightsPO();
Integer phaseLightsId = phaseInfoPojo.getLightsId();
for (LightsInfoPojo lightsInfoPojo : lightsInfoPojos) {
Integer lightId = lightsInfoPojo.getLightId();
if (Objects.equals(phaseLightsId, lightId)) {
crossLightsPO.setLightsNo(String.valueOf(lightId));
crossLightsPO.setName(StringUtils.join("灯组", lightId));
Integer turnDir = LightsInfoPojo.getTurnDir(lightId, lightsInfoPojo.getType());
crossLightsPO.setTurn(turnDir);
crossLightsPO.setType(2);
if (turnDir == 20) {
crossLightsPO.setType(3);
}
crossLightsPO.setCrossId(crossId);
Integer dir = LightsInfoPojo.getLightsDir(lightId);
crossLightsPO.setDir(dir);
crossLightsPO.setInOutType(2);
crossLightsList.add(crossLightsPO);
break;
}
for (PhaseInfoPojo phaseInfoPojo : phaseInfoPojos) {
CrossLightsPO crossLightsPO = new CrossLightsPO();
Integer phaseLightsId = phaseInfoPojo.getLightsId();
for (LightsInfoPojo lightsInfoPojo : lightsInfoPojos) {
Integer lightId = lightsInfoPojo.getLightId();
if (Objects.equals(phaseLightsId, lightId)) {
crossLightsPO.setLightsNo(String.valueOf(lightId));
crossLightsPO.setName(StringUtils.join("灯组", lightId));
// Integer turnDir = LightsInfoPojo.getTurnDir(lightId, lightsInfoPojo.getType());
Integer turnDir = CommonUtils.getTurnByLightsId(lightId - 1);
Integer dir = CommonUtils.getDirByLightsId(lightId - 1);
crossLightsPO.setTurn(turnDir);
crossLightsPO.setType(2);
if (turnDir == 20) {
crossLightsPO.setType(3);
}
crossLightsPO.setCrossId(crossId);
crossLightsPO.setDir(dir);
crossLightsPO.setInOutType(2);
crossLightsList.add(crossLightsPO);
break;
}
}
}
......
......@@ -124,10 +124,10 @@ public class CommonUtils {
turn = 1;
}
if (lightId % 4 == 1) {
turn = 6;
turn = 2;
}
if (lightId % 4 == 2) {
turn = 6;
turn = 3;
}
if (lightId % 4 == 3) {
turn = 20;
......
......@@ -69,10 +69,12 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe
});
List<CrossLightsPO> crossLightsList = content.getCrossLightsList();
crossLightsList.forEach(crossLightsPO -> {
crossLightsMapper.deleteOne(crossId, crossLightsPO.getName());
crossLightsMapper.insertOne(crossLightsPO);
});
if (!CollectionUtils.isEmpty(crossLightsList)) {
crossLightsMapper.deleteByCrossId(crossId);
crossLightsList.forEach(crossLightsPO -> {
crossLightsMapper.insertOne(crossLightsPO);
});
}
List<CrossPhaseLightsPO> crossPhaseLightsPOList = content.getCrossPhaseLightsPOList();
if (!CollectionUtils.isEmpty(crossPhaseLightsPOList)) {
crossPhaseLightsMapper.deleteByCrossId(crossPhaseLightsPOList.get(0).getCrossId());
......@@ -125,9 +127,7 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe
if (Objects.nonNull(content)) {
if (!CollectionUtils.isEmpty(content)) {
crossSchedulesMapper.deleteByCrossId(crossId);
content.forEach(crossSchedulesPO -> {
crossSchedulesMapper.insertBatch(content);
});
crossSchedulesMapper.insertBatch(content);
}
}
return Result.success(content);
......
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