Commit dd852437 authored by duanruiming's avatar duanruiming

Merge remote-tracking branch 'origin/master'

parents c14ad762 8a6fff9f
...@@ -82,7 +82,7 @@ public class SaveSchemeConfigDTO { ...@@ -82,7 +82,7 @@ public class SaveSchemeConfigDTO {
private Integer isGreen; private Integer isGreen;
@ApiModelProperty(value = "是否绿闪 0否 1是", required = true) @ApiModelProperty(value = "是否绿闪 0否 1是", required = true)
private Integer greenFlash; private Integer greenFlash;
@ApiModelProperty(value = "被伴随相位号列表", required = true) @ApiModelProperty(value = "相位号列表", required = true)
List<String> accompanyPhaseNoList; List<String> accompanyPhaseNoList;
private List<DirListElement> dirList; // 方向列表 private List<DirListElement> dirList; // 方向列表
} }
...@@ -98,11 +98,9 @@ public class SaveSchemeConfigDTO { ...@@ -98,11 +98,9 @@ public class SaveSchemeConfigDTO {
@Data @Data
public static class LaneListElement { public static class LaneListElement {
@ApiModelProperty(value = "车道序号,从左车道开始编号11、12、13...", required = true)
private Integer sort;
@ApiModelProperty(value = "车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头", required = true) @ApiModelProperty(value = "车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头", required = true)
private Integer turn; private Integer direction;
@ApiModelProperty(value = "车道类别:1机动车;2非机动车;3公交专用;4可变;5潮汐", required = true) @ApiModelProperty(value = "车道类别:1机动车;2非机动车;3公交专用;4可变;5潮汐", required = true)
private Integer category; private Integer laneType;
} }
} }
\ No newline at end of file
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossAccompanyPhasePO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author Kent HAN
* @date 2023/1/11 17:25
*/
@Repository
public interface CrossAccompanyPhaseMapper {
void deleteByCrossId(@Param("crossId") String crossId);
void insertBatch(@Param("entities") List<CrossAccompanyPhasePO> entities);
}
...@@ -19,9 +19,4 @@ public interface CrossPhaseMapper { ...@@ -19,9 +19,4 @@ public interface CrossPhaseMapper {
void insertOne(CrossPhasePO crossPhasePO); void insertOne(CrossPhasePO crossPhasePO);
void deleteByCrossId(@Param("crossId") String crossId); void deleteByCrossId(@Param("crossId") String crossId);
void updateAccompanyPhaseNo(@Param("coordPhaseNo") String coordPhaseNo,
@Param("phaseNoReal") String phaseNoReal,
@Param("planId") Integer planId,
@Param("crossId") String crossId);
} }
package net.wanji.web.po.scheme;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Kent HAN
* @date 2023/1/11 17:27
*/
@Data
public class CrossAccompanyPhasePO {
/** 主键 */
@ApiModelProperty(name = "主键",notes = "")
private Integer id ;
/** 伴随相位ID */
@ApiModelProperty(name = "伴随相位ID",notes = "")
private Integer phaseId ;
/** 母相位ID */
@ApiModelProperty(name = "母相位ID",notes = "")
private Integer superId ;
/** 路口ID */
@ApiModelProperty(name = "路口ID",notes = "")
private String crossId ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
/** 修改时间 */
@ApiModelProperty(name = "修改时间",notes = "")
private Date gmtModified ;
}
...@@ -5,12 +5,14 @@ import net.wanji.web.common.exception.PhaseNoNotUniqueException; ...@@ -5,12 +5,14 @@ import net.wanji.web.common.exception.PhaseNoNotUniqueException;
import net.wanji.web.dto.LaneIdDTO; import net.wanji.web.dto.LaneIdDTO;
import net.wanji.web.dto.LightIdDTO; import net.wanji.web.dto.LightIdDTO;
import net.wanji.web.dto.SaveSchemeConfigDTO; import net.wanji.web.dto.SaveSchemeConfigDTO;
import net.wanji.web.mapper.scheme.CrossAccompanyPhaseMapper;
import net.wanji.web.mapper.scheme.CrossLaneLightsMapper; import net.wanji.web.mapper.scheme.CrossLaneLightsMapper;
import net.wanji.web.mapper.scheme.CrossLightsMapper; import net.wanji.web.mapper.scheme.CrossLightsMapper;
import net.wanji.web.mapper.scheme.CrossPhaseLightsMapper; import net.wanji.web.mapper.scheme.CrossPhaseLightsMapper;
import net.wanji.web.mapper.scheme.CrossPhaseMapper; import net.wanji.web.mapper.scheme.CrossPhaseMapper;
import net.wanji.web.mapper.scheme.CrossSchemeMapper; import net.wanji.web.mapper.scheme.CrossSchemeMapper;
import net.wanji.web.mapper.scheme.LaneInfoMapper; import net.wanji.web.mapper.scheme.LaneInfoMapper;
import net.wanji.web.po.scheme.CrossAccompanyPhasePO;
import net.wanji.web.po.scheme.CrossLaneLightsPO; import net.wanji.web.po.scheme.CrossLaneLightsPO;
import net.wanji.web.po.scheme.CrossLightsPO; import net.wanji.web.po.scheme.CrossLightsPO;
import net.wanji.web.po.scheme.CrossPhaseLightsPO; import net.wanji.web.po.scheme.CrossPhaseLightsPO;
...@@ -42,16 +44,18 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -42,16 +44,18 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
private final CrossLaneLightsMapper crossLaneLightsMapper; private final CrossLaneLightsMapper crossLaneLightsMapper;
private final CrossPhaseLightsMapper crossPhaseLightsMapper; private final CrossPhaseLightsMapper crossPhaseLightsMapper;
private final CrossLightsMapper crossLightsMapper; private final CrossLightsMapper crossLightsMapper;
private final CrossAccompanyPhaseMapper crossAccompanyPhaseMapper;
public SchemeConfigServiceImpl(CrossSchemeMapper crossSchemeMapper, CrossPhaseMapper crossPhaseMapper, public SchemeConfigServiceImpl(CrossSchemeMapper crossSchemeMapper, CrossPhaseMapper crossPhaseMapper,
LaneInfoMapper laneInfoMapper, CrossLaneLightsMapper crossLaneLightsMapper, LaneInfoMapper laneInfoMapper, CrossLaneLightsMapper crossLaneLightsMapper,
CrossPhaseLightsMapper crossPhaseLightsMapper, CrossLightsMapper crossLightsMapper) { CrossPhaseLightsMapper crossPhaseLightsMapper, CrossLightsMapper crossLightsMapper, CrossAccompanyPhaseMapper crossAccompanyPhaseMapper) {
this.crossSchemeMapper = crossSchemeMapper; this.crossSchemeMapper = crossSchemeMapper;
this.crossPhaseMapper = crossPhaseMapper; this.crossPhaseMapper = crossPhaseMapper;
this.laneInfoMapper = laneInfoMapper; this.laneInfoMapper = laneInfoMapper;
this.crossLaneLightsMapper = crossLaneLightsMapper; this.crossLaneLightsMapper = crossLaneLightsMapper;
this.crossPhaseLightsMapper = crossPhaseLightsMapper; this.crossPhaseLightsMapper = crossPhaseLightsMapper;
this.crossLightsMapper = crossLightsMapper; this.crossLightsMapper = crossLightsMapper;
this.crossAccompanyPhaseMapper = crossAccompanyPhaseMapper;
} }
@Override @Override
...@@ -95,7 +99,7 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -95,7 +99,7 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
private void handleRingTime(SaveSchemeConfigDTO saveSchemeConfigDTO) { private void handleRingTime(SaveSchemeConfigDTO saveSchemeConfigDTO) {
// 更新方案基础信息表 // 更新方案基础信息表
updateCrossScheme(saveSchemeConfigDTO); updateCrossScheme(saveSchemeConfigDTO);
// 更新相位基础表、相位灯组关系表 // 更新相位基础表、相位灯组关系表、伴随相位母相位关系
updateCrossPhase(saveSchemeConfigDTO); updateCrossPhase(saveSchemeConfigDTO);
// 更新协调相位ID // 更新协调相位ID
updateCoordPhase(saveSchemeConfigDTO); updateCoordPhase(saveSchemeConfigDTO);
...@@ -117,11 +121,12 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -117,11 +121,12 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
String crossId = saveSchemeConfigDTO.getCrossId(); String crossId = saveSchemeConfigDTO.getCrossId();
crossPhaseMapper.deleteByCrossId(crossId); crossPhaseMapper.deleteByCrossId(crossId);
crossPhaseLightsMapper.deleteByCrossId(crossId); crossPhaseLightsMapper.deleteByCrossId(crossId);
// 用于限制相位号不能重复 crossAccompanyPhaseMapper.deleteByCrossId(crossId);
Set<String> phaseNoSet = new HashSet<>();
List<SaveSchemeConfigDTO.PhaseScheme> phaseSchemeList = saveSchemeConfigDTO.getPhaseSchemeList(); List<SaveSchemeConfigDTO.PhaseScheme> phaseSchemeList = saveSchemeConfigDTO.getPhaseSchemeList();
for (SaveSchemeConfigDTO.PhaseScheme phaseScheme : phaseSchemeList) { for (SaveSchemeConfigDTO.PhaseScheme phaseScheme : phaseSchemeList) {
// 用于限制相位号不能重复
Set<String> phaseNoSet = new HashSet<>();
String schemeNo = phaseScheme.getSchemeNo(); String schemeNo = phaseScheme.getSchemeNo();
// 获取方案ID // 获取方案ID
Integer schemeId = crossSchemeMapper.selectIdByCrossIdAndSchemeNo(crossId, schemeNo); Integer schemeId = crossSchemeMapper.selectIdByCrossIdAndSchemeNo(crossId, schemeNo);
...@@ -139,7 +144,7 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -139,7 +144,7 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
String phaseNo = phase.getPhaseNo(); String phaseNo = phase.getPhaseNo();
testPhaseNo(phaseNoSet, phaseNo); testPhaseNo(phaseNoSet, phaseNo);
Integer phaseType = phase.getPhaseType(); Integer phaseType = phase.getPhaseType();
if (phaseType != 3) { // 非伴随相位 if (phaseType != 3) { // 实相位或虚相位
phaseNoMap.put(phaseNo, phase); phaseNoMap.put(phaseNo, phase);
Integer yellowFlashTime = phase.getYellowFlashTime(); Integer yellowFlashTime = phase.getYellowFlashTime();
Integer redFlashTime = phase.getRedFlashTime(); Integer redFlashTime = phase.getRedFlashTime();
...@@ -197,10 +202,10 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -197,10 +202,10 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
Integer coordRedTime = 0; Integer coordRedTime = 0;
Integer coordMinGreenTime = 0; Integer coordMinGreenTime = 0;
Integer coordMaxGreenTime = 0; Integer coordMaxGreenTime = 0;
List<String> accompanyPhaseNoList = phase.getAccompanyPhaseNoList(); List<String> superPhaseNoList = phase.getAccompanyPhaseNoList();
if (accompanyPhaseNoList != null) { if (superPhaseNoList != null) {
for (String accompanyPhaseNo : accompanyPhaseNoList) { for (String superPhaseNo : superPhaseNoList) {
SaveSchemeConfigDTO.PhaseListElement phaseListElement = phaseNoMap.get(accompanyPhaseNo); SaveSchemeConfigDTO.PhaseListElement phaseListElement = phaseNoMap.get(superPhaseNo);
// 时长加总 // 时长加总
coordGreenTime += phaseListElement.getGreenTime(); coordGreenTime += phaseListElement.getGreenTime();
coordGreenFlashTime += phaseListElement.getGreenFlashTime(); coordGreenFlashTime += phaseListElement.getGreenFlashTime();
...@@ -210,12 +215,6 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -210,12 +215,6 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
coordRedTime += phaseListElement.getRedTime(); coordRedTime += phaseListElement.getRedTime();
coordMinGreenTime += phaseListElement.getMinGreenTime(); coordMinGreenTime += phaseListElement.getMinGreenTime();
coordMaxGreenTime += phaseListElement.getMaxGreenTime(); coordMaxGreenTime += phaseListElement.getMaxGreenTime();
// 实相位号
String phaseNoReal = phaseListElement.getPhaseNo();
// 更新伴随相位号
Integer planId = crossSchemeMapper.selectIdByCrossIdAndSchemeNo(crossId, schemeNo);
crossPhaseMapper.updateAccompanyPhaseNo(accompanyPhaseNo, phaseNoReal, planId, crossId);
}
} }
crossPhasePO.setGreenTime(coordGreenTime); crossPhasePO.setGreenTime(coordGreenTime);
crossPhasePO.setGreenFlashTime(coordGreenFlashTime); crossPhasePO.setGreenFlashTime(coordGreenFlashTime);
...@@ -227,8 +226,23 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -227,8 +226,23 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
crossPhasePO.setMaxGreenTime(coordMaxGreenTime); crossPhasePO.setMaxGreenTime(coordMaxGreenTime);
crossPhasePO.setPhaseTime(coordGreenTime + coordGreenFlashTime + coordYelloFlashTime crossPhasePO.setPhaseTime(coordGreenTime + coordGreenFlashTime + coordYelloFlashTime
+ coordRedFlashTime + coordYellowTime + coordRedTime); + coordRedFlashTime + coordYellowTime + coordRedTime);
// 插入相位表记录 // 插入相位表记录获取ID
crossPhaseMapper.insertOne(crossPhasePO); crossPhaseMapper.insertOne(crossPhasePO);
Integer accompanyPhaseId = crossPhasePO.getId();
// 更新伴随相位母相位关系表
List<CrossAccompanyPhasePO> crossAccompanyPhasePOList = new ArrayList<>();
for (String superPhaseNo : superPhaseNoList) {
CrossAccompanyPhasePO crossAccompanyPhasePO = new CrossAccompanyPhasePO();
crossAccompanyPhasePO.setCrossId(crossId);
crossAccompanyPhasePO.setPhaseId(accompanyPhaseId);
Integer superPhaseId = crossPhaseMapper.selectIdByCrossIdAndPhaseNo(
crossId, schemeId,superPhaseNo);
crossAccompanyPhasePO.setSuperId(superPhaseId);
crossAccompanyPhasePOList.add(crossAccompanyPhasePO);
}
crossAccompanyPhaseMapper.insertBatch(crossAccompanyPhasePOList);
}
} }
} }
} }
...@@ -300,8 +314,8 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -300,8 +314,8 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
List<SaveSchemeConfigDTO.LaneListElement> laneList = dirListElement.getLaneList(); List<SaveSchemeConfigDTO.LaneListElement> laneList = dirListElement.getLaneList();
for (SaveSchemeConfigDTO.LaneListElement laneListElement : laneList) { for (SaveSchemeConfigDTO.LaneListElement laneListElement : laneList) {
CrossPhaseLightsPO crossPhaseLightsPO = new CrossPhaseLightsPO(); CrossPhaseLightsPO crossPhaseLightsPO = new CrossPhaseLightsPO();
Integer category = laneListElement.getCategory(); Integer category = laneListElement.getLaneType();
Integer turn = laneListElement.getTurn(); Integer turn = laneListElement.getDirection();
// 根据车道获得灯组ID // 根据车道获得灯组ID
String laneId = laneInfoMapper.selectIdByCrossIdDirTurn(crossId, dir, turn, category); String laneId = laneInfoMapper.selectIdByCrossIdDirTurn(crossId, dir, turn, category);
Integer lightsId = crossLaneLightsMapper.selectLightsIdByLaneId(crossId, laneId); Integer lightsId = crossLaneLightsMapper.selectLightsIdByLaneId(crossId, laneId);
......
<?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.web.mapper.scheme.CrossAccompanyPhaseMapper">
<!-- 通用查询映射结果 -->
<resultMap type="net.wanji.web.po.scheme.CrossAccompanyPhasePO" id="BaseResultMap">
<result property="id" column="id" />
<result property="phaseId" column="phase_id"/>
<result property="superId" column="super_id"/>
<result property="crossId" column="cross_id"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into t_base_cross_accompany_phase(phase_id,super_id,cross_id)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.phaseId},#{entity.superId},#{entity.crossId})
</foreach>
</insert>
<delete id="deleteByCrossId">
delete from t_base_cross_accompany_phase
where cross_id = #{crossId}
</delete>
</mapper>
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
<result property="sort" column="sort"/> <result property="sort" column="sort"/>
<result property="crossId" column="cross_id"/> <result property="crossId" column="cross_id"/>
<result property="planId" column="plan_id"/> <result property="planId" column="plan_id"/>
<result property="accompanyPhaseNo" column="accompany_phase_no"/>
<result property="ringNo" column="ring_no"/> <result property="ringNo" column="ring_no"/>
<result property="groupNo" column="group_no"/> <result property="groupNo" column="group_no"/>
<result property="phaseType" column="phase_type"/> <result property="phaseType" column="phase_type"/>
...@@ -28,16 +27,10 @@ ...@@ -28,16 +27,10 @@
</resultMap> </resultMap>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true"> <insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_base_cross_phase(phase_no,name,sort,cross_id,plan_id,accompany_phase_no,ring_no,group_no,phase_type,control_mode,phase_time,green_time,green_flash_time,yellow_flash_time,red_flash_time,ped_flash_time,yellow_time,red_time,min_green_time,max_green_time) insert into t_base_cross_phase(phase_no,name,sort,cross_id,plan_id,ring_no,group_no,phase_type,control_mode,phase_time,green_time,green_flash_time,yellow_flash_time,red_flash_time,ped_flash_time,yellow_time,red_time,min_green_time,max_green_time)
values (#{phaseNo},#{name},#{sort},#{crossId},#{planId},#{accompanyPhaseNo},#{ringNo},#{groupNo},#{phaseType},#{controlMode},#{phaseTime},#{greenTime},#{greenFlashTime},#{yellowFlashTime},#{redFlashTime},#{pedFlashTime},#{yellowTime},#{redTime},#{minGreenTime},#{maxGreenTime}) values (#{phaseNo},#{name},#{sort},#{crossId},#{planId},#{ringNo},#{groupNo},#{phaseType},#{controlMode},#{phaseTime},#{greenTime},#{greenFlashTime},#{yellowFlashTime},#{redFlashTime},#{pedFlashTime},#{yellowTime},#{redTime},#{minGreenTime},#{maxGreenTime})
</insert> </insert>
<update id="updateAccompanyPhaseNo">
update t_base_cross_phase
set coord_phase_no = #{coordPhaseNo}
where cross_id = #{crossId} and plan_id = #{planId} and phase_no = #{phaseNoReal}
</update>
<delete id="deleteByCrossId"> <delete id="deleteByCrossId">
delete from t_base_cross_phase delete from t_base_cross_phase
where cross_id = #{crossId} where cross_id = #{crossId}
......
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