Commit a0025f73 authored by hanbing's avatar hanbing

方案管理-方案配置,更新方案基础信息表

parent 3680ea33
......@@ -15,6 +15,8 @@ import java.util.List;
public class SaveSchemeConfigDTO {
@ApiModelProperty(value = "路口ID", required = true)
private String crossId;
@ApiModelProperty(value = "配时方式 1阶段式 2环式", required = true)
private Integer timeType;
private List<PhaseScheme> phaseSchemeList; // 相位方案列表
private List<TimeScheme> timeSchemeList; // 配时方案列表
......@@ -39,6 +41,8 @@ public class SaveSchemeConfigDTO {
private List<Lane> laneList; // 车道列表
@Data
public static class Lane {
@ApiModelProperty(value = "车道序号,从左车道开始编号11、12、13...", required = true)
private Integer sort;
@ApiModelProperty(value = "车道方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北", required = true)
private Integer dir;
@ApiModelProperty(value = "车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头", required = true)
......@@ -72,7 +76,7 @@ public class SaveSchemeConfigDTO {
private Integer sort;
@ApiModelProperty(value = "相位号", required = true)
private String phaseNo;
private List<PhaseScheme.Ring.Phase.Lane> laneList; // 车道列表
private List<Lane> laneList; // 车道列表
@Data
public static class Lane {
@ApiModelProperty(value = "车道方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北", required = true)
......
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import org.springframework.stereotype.Repository;
/**
......@@ -10,4 +11,5 @@ import org.springframework.stereotype.Repository;
@Repository
public interface CrossPhaseMapper {
Integer selectIdByCrossIdAndPhaseNo(@Param("crossId") String crossId, @Param("coordPhaseNo") String coordPhaseNo);
}
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossSchemePO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 方案基础信息;(t_base_cross_scheme)表数据库访问层
* @author : hanbing
......@@ -10,4 +14,7 @@ import org.springframework.stereotype.Repository;
@Repository
public interface CrossSchemeMapper {
void deleteByCrossId(@Param("crossId") String crossId);
void insertBatch(@Param("entities") List<CrossSchemePO> entities);
}
......@@ -15,6 +15,7 @@ import net.wanji.web.vo.specialService.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
......@@ -84,12 +85,14 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
}
@Override
@Transactional
public void deleteSpecialService(Integer id) {
specialServiceMapper.deleteSpecialService(id);
specialServiceCrossMapper.deleteCrossBySpecialServiceId(id);
}
@Override
@Transactional
public void addCross(AddCrossInVO addCrossInVO) throws RuntimeException{
Integer specialServiceId = addCrossInVO.getSpecialServiceId();
String endCrossid = addCrossInVO.getCrossId();
......@@ -179,6 +182,7 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
}
@Override
@Transactional
public void updateCross(UpdateCrossInVO updateCrossInVO) {
Integer specialServiceId = updateCrossInVO.getSpecialServiceId();
String crossId = updateCrossInVO.getCrossId();
......@@ -200,6 +204,7 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
}
@Override
@Transactional
public void deleteCross(DeleteCrossInVO deleteCrossInVO) {
String crossId = deleteCrossInVO.getCrossId();
Integer specialServiceId = deleteCrossInVO.getSpecialServiceId();
......
......@@ -18,6 +18,7 @@ import net.wanji.web.po.scheme.CrossLightsPO;
import net.wanji.web.po.scheme.LaneInfoPO;
import net.wanji.web.service.scheme.CrossConfigService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Comparator;
......@@ -85,6 +86,7 @@ public class CrossConfigServiceImpl implements CrossConfigService {
}
@Override
@Transactional
public void saveLaneInfo(SaveLaneInfoDTO saveLaneInfoDTO) {
List<LedConfigListElement> ledConfigList = saveLaneInfoDTO.getLedConfigList();
if (ledConfigList == null || ledConfigList.size() == 0) {
......
......@@ -4,6 +4,7 @@ import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.SaveLightsInfoDTO;
import net.wanji.web.service.scheme.LightsConfigService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author Kent HAN
......@@ -11,6 +12,7 @@ import org.springframework.stereotype.Service;
*/
@Service
public class LightsConfigServiceImpl implements LightsConfigService {
@Transactional
@Override
public void saveLightsInfo(SaveLightsInfoDTO saveLightsInfoDTO) {
......
package net.wanji.web.service.scheme.impl;
import net.wanji.web.dto.SaveSchemeConfigDTO;
import net.wanji.web.mapper.scheme.CrossPhaseMapper;
import net.wanji.web.mapper.scheme.CrossSchemeMapper;
import net.wanji.web.po.scheme.CrossSchemePO;
import net.wanji.web.service.scheme.SchemeConfigService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @author Kent HAN
......@@ -10,8 +18,59 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SchemeConfigServiceImpl implements SchemeConfigService {
private final CrossSchemeMapper crossSchemeMapper;
private final CrossPhaseMapper crossPhaseMapper;
public SchemeConfigServiceImpl(CrossSchemeMapper crossSchemeMapper, CrossPhaseMapper crossPhaseMapper) {
this.crossSchemeMapper = crossSchemeMapper;
this.crossPhaseMapper = crossPhaseMapper;
}
@Override
@Transactional
public void saveSchemeConfig(SaveSchemeConfigDTO saveSchemeConfigDTO) {
Integer timeType = saveSchemeConfigDTO.getTimeType();
if (timeType == 2) { //环式
handleRingTime(saveSchemeConfigDTO);
} else if (timeType == 1) { //阶段式
// TODO: 2023/1/6 处理阶段式
}
}
private void handleRingTime(SaveSchemeConfigDTO saveSchemeConfigDTO) {
// 更新方案基础信息表
updateCrossScheme(saveSchemeConfigDTO);
// 更新相位基础表
}
private void updateCrossScheme(SaveSchemeConfigDTO saveSchemeConfigDTO) {
String crossId = saveSchemeConfigDTO.getCrossId();
crossSchemeMapper.deleteByCrossId(crossId);
List<SaveSchemeConfigDTO.PhaseScheme> phaseSchemeList = saveSchemeConfigDTO.getPhaseSchemeList();
List<CrossSchemePO> crossSchemePOList = new ArrayList<>();
for (SaveSchemeConfigDTO.PhaseScheme phaseScheme : phaseSchemeList) {
CrossSchemePO crossSchemePO = new CrossSchemePO();
String schemeNo = phaseScheme.getSchemeNo();// 方案号
crossSchemePO.setSchemeNo(schemeNo);
String name = phaseScheme.getName(); // 方案名称
crossSchemePO.setName(name);
crossSchemePO.setCrossId(crossId);
// 获取方案周期、协调相位ID、相位差
List<SaveSchemeConfigDTO.TimeScheme> timeSchemeList = saveSchemeConfigDTO.getTimeSchemeList();
for (SaveSchemeConfigDTO.TimeScheme timeScheme : timeSchemeList) {
String schemeNoInTime = timeScheme.getSchemeNo();
if (Objects.equals(schemeNo, schemeNoInTime)) {
crossSchemePO.setCycle(timeScheme.getCycle());
String coordPhaseNo = timeScheme.getCoordPhaseNo();
Integer coordPhaseId = crossPhaseMapper.selectIdByCrossIdAndPhaseNo(crossId, coordPhaseNo);
crossSchemePO.setCoordPhase(coordPhaseId);
crossSchemePO.setOffset(timeScheme.getOffset());
}
}
crossSchemePO.setSource(2); // 来自平台
crossSchemePO.setIsDeleted(0);
crossSchemePOList.add(crossSchemePO);
}
crossSchemeMapper.insertBatch(crossSchemePOList);
}
}
......@@ -24,5 +24,10 @@
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<select id="selectIdByCrossIdAndPhaseNo" resultType="java.lang.Integer">
select id from t_base_cross_phase
where cross_id = #{crossId} and phase_no = #{coordPhaseNo}
</select>
</mapper>
......@@ -17,5 +17,18 @@
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into t_base_cross_scheme(scheme_no,name,cross_id,cycle,coord_phase,offset,source,is_deleted)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.schemeNo},#{entity.name},#{entity.crossId},#{entity.cycle},#{entity.coordPhase},#{entity.offset},#{entity.source},#{entity.isDeleted})
</foreach>
</insert>
<delete id="deleteByCrossId">
delete from t_base_cross_scheme
where cross_id = #{crossId}
</delete>
</mapper>
......@@ -19,6 +19,7 @@ import net.wanji.utc.util.ListUtil;
import net.wanji.utc.util.RedisUtil;
import net.wanji.utc.vo.LightsStatusVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
......@@ -37,6 +38,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
private final SignalStatusLogMapper signalStatusLogMapper;
@Override
@Transactional
public List<SignalStatusLogPO> runningStatusAlarm() {
List<SignalStatusLogPO> resList = new ArrayList<>();
BasicEnum.ManufacturerEnum[] manufacturerEnums = BasicEnum.ManufacturerEnum.values();
......@@ -70,6 +72,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
}
@Override
@Transactional
public List<LightsStatusVO> lightStatus() {
List<LightsStatusVO> resList = new ArrayList<>();
BasicEnum.ManufacturerEnum[] manufacturerEnums = BasicEnum.ManufacturerEnum.values();
......
......@@ -12,6 +12,7 @@ import net.wanji.utc.dto.SchemePhaseLightsDTO;
import net.wanji.utc.vo.PlanSectionVO;
import net.wanji.utc.vo.SchemePhaseLightsVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
......@@ -38,6 +39,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
private final CrossSchedulesMapper crossSchedulesMapper;
@Override
@Transactional
public List<CrossInfoPO> crossBasicInfo(CrossInfoDTO crossInfoDTO) throws Exception {
List<CrossInfoPO> crossInfoPOList = new ArrayList<>();
if (Objects.equals(BasicEnum.ManufacturerEnum.HK.getCode(), crossInfoDTO.getManufacturerCode())) {
......@@ -72,6 +74,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
}
@Override
@Transactional
public void schemePhaseLights(SchemePhaseLightsDTO schemePhaseLightsDTO) throws Exception {
String crossId = schemePhaseLightsDTO.getCrossId();
// 获取厂商ID和信号机ID
......@@ -90,6 +93,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
}
@Override
@Transactional
public void planSection(PlanSectionDTO planSectionDTO) throws Exception {
String crossId = planSectionDTO.getCrossId();
// 获取厂商ID和信号机ID
......@@ -109,6 +113,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
}
@Override
@Transactional
public void crossSchedules(CrossSchedulesDTO crossSchedulesDTO) throws Exception {
String manufacturerCode = crossSchedulesDTO.getManufacturerCode();
List<String> crossIdList = crossSchedulesDTO.getCrossIdList();
......
......@@ -19,6 +19,7 @@ import net.wanji.utc.dto.systemadmin.DeleteByStringIdListDTO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
......@@ -66,6 +67,7 @@ public class CrossInfoServiceImpl implements CrossInfoService {
}
@Override
@Transactional
public void insertOrUpdate(CrossInfoInsertOrUpdateDTO inVO) {
CrossInfoPO crossInfoPO = new CrossInfoPO();
BeanUtils.copyProperties(inVO, crossInfoPO);
......@@ -108,6 +110,7 @@ public class CrossInfoServiceImpl implements CrossInfoService {
}
@Override
@Transactional
public void delete(DeleteByStringIdListDTO inVO) {
List<String> ids = inVO.getIds();
crossInfoMapper.deleteBatch(ids);
......
......@@ -15,6 +15,7 @@ import net.wanji.utc.vo.systemadmin.ManufacturerApiInfoVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
......@@ -72,6 +73,7 @@ public class ManufacturerApiInfoServiceImpl implements ManufacturerApiInfoServic
}
@Override
@Transactional
public void insertOrUpdate(ManufacturerApiInfoInsertOrUpdateDTO inVO) {
ManufacturerApiInfoPO manufacturerApiInfoPO = new ManufacturerApiInfoPO();
BeanUtils.copyProperties(inVO, manufacturerApiInfoPO);
......@@ -93,6 +95,7 @@ public class ManufacturerApiInfoServiceImpl implements ManufacturerApiInfoServic
}
@Override
@Transactional
public void delete(DeleteByIntegerIdListDTO inVO) {
List<Integer> ids = inVO.getIds();
manufacturerApiInfoMapper.deleteBatch(ids);
......
......@@ -11,6 +11,7 @@ import net.wanji.utc.dto.systemadmin.ManufacturerListDTO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
......@@ -37,6 +38,7 @@ public class ManufacturerServiceImpl implements ManufacturerService {
}
@Override
@Transactional
public void insertOrUpdate(ManufacturerInsertOrUpdateDTO inVO) {
Integer id = inVO.getId();
ManufacturerInfoPO manufacturerInfoPO = new ManufacturerInfoPO();
......@@ -51,6 +53,7 @@ public class ManufacturerServiceImpl implements ManufacturerService {
}
@Override
@Transactional
public void delete(DeleteByIntegerIdListDTO inVO) {
List<Integer> ids = inVO.getIds();
manufacturerInfoMapper.deleteBatch(ids);
......
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