Commit e2ccbab4 authored by duanruiming's avatar duanruiming

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	signal-control-service/src/main/java/net/wanji/web/service/TBaseCrossInfoService.java
parents 57ebe109 e6d06d07
pipeline {
agent {
label 'jenkinsagent-87'
label 'node59'
}
stages {
stage('检测环境') {
......@@ -13,7 +13,7 @@ pipeline {
}
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'aa123658-f2bd-4079-9735-65b3f31d4d0e', url: 'http://10.100.1.74:56002/signal/traffic-signal-platform.git']]])
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'ae6a8c63-b80d-4b84-ab7e-20592bae46be', url: 'http://10.100.1.59/signal/traffic-signal-platform.git']]])
}
}
stage('编译构建utc模块') {
......@@ -64,22 +64,22 @@ pipeline {
}
stage('拉取utc模块镜像') {
steps {
sh 'docker pull 10.100.1.87:5000/xinkong/signal-utc-service:0.2.1'
sh 'docker pull 10.100.1.59:5000/xinkong/signal-utc-service:0.2.1'
}
}
stage('拉取control模块镜像') {
steps {
sh 'docker pull 10.100.1.87:5000/xinkong/signal-control-service:0.2.1'
sh 'docker pull 10.100.1.59:5000/xinkong/signal-control-service:0.2.1'
}
}
stage('运行utc模块容器') {
steps {
sh 'docker run -p 32000:32000 -p 15115:15115 -itd --name signal-utc-service 10.100.1.87:5000/xinkong/signal-utc-service:0.2.1'
sh 'docker run -p 32000:32000 -p 15115:15115 -itd --name signal-utc-service 10.100.1.59:5000/xinkong/signal-utc-service:0.2.1'
}
}
stage('运行control模块容器') {
steps {
sh 'docker run -p 32001:32001 -p 15116:15116 -itd --name signal-control-service 10.100.1.87:5000/xinkong/signal-control-service:0.2.1'
sh 'docker run -p 32001:32001 -p 15116:15116 -itd --name signal-control-service 10.100.1.59:5000/xinkong/signal-control-service:0.2.1'
}
}
}
......
pipeline {
agent {
label 'node59'
}
stages {
stage('检测环境') {
steps {
sh '''
java -version
mvn -v
git version
docker -v'''
}
}
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'ae6a8c63-b80d-4b84-ab7e-20592bae46be', url: 'http://10.100.1.59/signal/traffic-signal-platform.git']]])
}
}
stage('编译构建control模块') {
steps {
sh 'mvn -pl signal-control-service clean package -Dmaven.test.skip=true jib:build -DsendCredentialsOverHttp=true'
}
}
stage('删除control模块镜像和容器') {
steps {
sh '''
echo \'检查容器是否存在\'
containerid=`docker ps -a|grep signal-control-service|awk \'{print $1}\'`
if [ "$containerid" != "" ];then
echo \'容器存在,删除容器\'
docker rm -f $containerid
fi
echo \'检查镜像是否存在\'
imageid=`docker images|grep signal-control-service|awk \'{print $3}\'`
if [ "$imageid" != "" ];then
echo \'删除镜像\'
docker rmi -f $imageid
fi
'''
}
}
stage('拉取control模块镜像') {
steps {
sh 'docker pull 10.100.1.59:5000/xinkong/signal-control-service:0.2.1'
}
}
stage('运行control模块容器') {
steps {
sh 'docker run -p 32001:32001 -p 15116:15116 -itd --name signal-control-service 10.100.1.59:5000/xinkong/signal-control-service:0.2.1'
}
}
}
}
pipeline {
agent {
label 'jenkinsagent-87'
label 'node59'
}
stages {
stage('检测环境') {
......@@ -13,7 +13,7 @@ pipeline {
}
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'aa123658-f2bd-4079-9735-65b3f31d4d0e', url: 'http://10.100.1.74:56002/signal/traffic-signal-platform.git']]])
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'ae6a8c63-b80d-4b84-ab7e-20592bae46be', url: 'http://10.100.1.59/signal/traffic-signal-platform.git']]])
}
}
stage('编译构建utc模块') {
......@@ -41,12 +41,12 @@ pipeline {
}
stage('拉取utc模块镜像') {
steps {
sh 'docker pull 10.100.1.87:5000/xinkong/signal-utc-service:0.2.1'
sh 'docker pull 10.100.1.59:5000/xinkong/signal-utc-service:0.2.1'
}
}
stage('运行utc模块容器') {
steps {
sh 'docker run -p 32000:32000 -p 15115:15115 -itd --name signal-utc-service 10.100.1.87:5000/xinkong/signal-utc-service:0.2.1'
sh 'docker run -p 32000:32000 -p 15115:15115 -itd --name signal-utc-service 10.100.1.59:5000/xinkong/signal-utc-service:0.2.1'
}
}
}
......
......@@ -214,7 +214,7 @@
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<swaggerInput>http://10.100.1.87:30003/utcsystem/v2/api-docs</swaggerInput>
<swaggerInput>http://10.100.1.59:30003/utcsystem/v2/api-docs</swaggerInput>
<outputDir>src/docs/asciidoc/generated</outputDir>
<config>
<swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
......@@ -246,7 +246,7 @@
<!--from节点用来设置镜像的基础镜像,相当于Docerkfile中的FROM关键字-->
<from>
<!--使用harbor上的openjdk镜像-->
<image>10.100.1.87:5000/xinkong/openjdk:8-alpine3.9</image>
<image>10.100.1.59:5000/xinkong/openjdk:8-alpine3.9</image>
<!--harbor服务器的登录信息-->
<auth>
<username>admin</username>
......@@ -254,7 +254,7 @@
</auth>
</from>
<to>
<image>10.100.1.87:5000/xinkong/${artifactId}:${version}</image>
<image>10.100.1.59:5000/xinkong/${artifactId}:${version}</image>
<auth>
<username>admin</username>
<password>Wanji300552</password>
......
......@@ -6,8 +6,8 @@ import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.web.common.entity.JsonViewObject;
import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.SaveLaneInfoDTO;
import net.wanji.web.service.scheme.impl.CrossConfigServiceImpl;
import net.wanji.web.vo.scheme.CrossDirsVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -29,18 +29,31 @@ public class CrossConfigController {
this.crossConfigServiceImpl = crossConfigServiceImpl;
}
@ApiOperation(value = "获取路口方向列表", notes = "获取路口方向列表", response = JsonViewObject.class,
@ApiOperation(value = "保存渠化配置", notes = "保存渠化配置", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/listCrossDirs",
@PostMapping(value = "/saveLaneInfo",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = CrossDirsVO.class),
@ApiResponse(code = 200, message = "OK", response = JsonViewObject.class),
})
public JsonViewObject listCrossDirs(@RequestBody CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
CrossDirsVO crossDirsVO = crossConfigServiceImpl.listCrossDirs(crossId);
public JsonViewObject saveLaneInfo(@RequestBody SaveLaneInfoDTO saveLaneInfoDTO) {
crossConfigServiceImpl.saveLaneInfo(saveLaneInfoDTO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(crossDirsVO);
return jsonViewObject.success();
}
@ApiOperation(value = "渠化配置列表", notes = "渠化配置列表", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/listLaneInfo",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = JsonViewObject.class),
})
public JsonViewObject listLaneInfo(@RequestBody CrossIdDTO crossIdDTO) {
SaveLaneInfoDTO saveLaneInfoDTO = crossConfigServiceImpl.listLaneInfo(crossIdDTO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(saveLaneInfoDTO);
}
}
......@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 方案管理-路口配置-获取路口方向列表输入参数
*
* @author Kent HAN
* @date 2022/12/20 10:17
*/
......
package net.wanji.web.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@NoArgsConstructor
@Data
public class DirListElement {
/**
* dir : 1
* laneList : [{"direction":1,"name":"01","laneType":1}]
*/
@ApiModelProperty(value = "车道进口方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北", required = true)
private Integer dir;
@ApiModelProperty(value = "是否有行人过街:0否;1是", required = true)
private Integer isPersonCross;
private List<LaneListElement> laneList;
}
\ No newline at end of file
package net.wanji.web.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public class LaneListElement {
/**
* direction : 1
* name : 01
* laneType : 1
*/
@ApiModelProperty(value = "0无方向 箭头 1:直行2:左转,3:右转,4:掉头,5:左直,6:右直,7:左转掉头,8:左直掉头, 9:左直右, 10:左右转 11:左弯 12:右弯", required = true)
private Integer direction;
@ApiModelProperty(value = "车道代码", required = true)
private String name;
@ApiModelProperty(value = "1机动车;2非机动车;3公交专用;4可变;5潮汐", required = true)
private Integer laneType;
}
\ No newline at end of file
package net.wanji.web.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 方案管理-路口配置-保存渠化配置输入参数
*
* @author Kent HAN
* @date 2022/12/20 10:17
*/
@NoArgsConstructor
@Data
public class SaveLaneInfoDTO {
/**
* crossId : c7e7b1f352dd4acab4a60088eb391cca
* dirList : [{"dir":1,"laneList":[{"direction":1,"name":"01","laneType":1}]}]
*/
@ApiModelProperty(value = "路口ID,如:c7e7b1f352dd4acab4a60088eb391cca", required = true)
private String crossId;
private List<DirListElement> dirList;
}
......@@ -4,13 +4,17 @@ import io.lettuce.core.dynamic.annotation.Param;
import net.wanji.web.po.scheme.CrossDirInfoPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author Kent HAN
* @date 2022/12/20 10:32
*/
@Repository
public interface CrossDirInfoMapper {
List<CrossDirInfoPO> listByCrossID(@Param("crossId") String crossId);
void deleteInByDirType(@Param("crossId") String crossId, @Param("dir") Integer dir);
void insertOne(CrossDirInfoPO crossDirInfoPO);
void updateIsPedestrian(@Param("isPersonCross") Integer isPersonCross, @Param("id") String id);
CrossDirInfoPO selectByCrossIdAndDirType(@Param("crossId") String crossId, @Param("dirType") Integer dirType);
}
package net.wanji.web.mapper.scheme;
import io.lettuce.core.dynamic.annotation.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author Kent HAN
* @date 2022/12/20 10:32
*/
@Repository
public interface CrossLaneLightsMapper {
void deleteByLaneIds(@Param("laneIds") List<String> laneIds);
}
package net.wanji.web.mapper.scheme;
import net.wanji.web.po.scheme.LaneInfoPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author Kent HAN
* @date 2022/12/20 10:32
*/
@Repository
public interface LaneInfoMapper {
List<LaneInfoPO> selectByCrossIdAndDir(@Param("crossId") String crossId, @Param("dir") Integer dir);
void deleteByCrossIdAndDir(@Param("crossId") String crossId, @Param("dir") Integer dir);
void insertBatch(@Param("entities") List<LaneInfoPO> laneInfoPOListForInsert);
List<LaneInfoPO> selectBycrossId(@Param("crossId") String crossId);
}
......@@ -26,6 +26,9 @@ public class CrossDirInfoPO {
/** 方向路段长度 */
@ApiModelProperty(name = "方向路段长度",notes = "")
private Double length ;
/** 是否有行人过街:0否;1是 */
@ApiModelProperty(name = "是否有行人过街:0否;1是",notes = "")
private Integer isPedestrian ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
......
package net.wanji.web.po.scheme;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Kent HAN
* @date 2022/12/29 9:17
*/
@Data
public class CrossLaneLightsPO {
/** 主键 */
@ApiModelProperty(name = "主键",notes = "")
private Integer id ;
/** 灯组ID */
@ApiModelProperty(name = "灯组ID",notes = "")
private Integer lightsId ;
/** 车道ID */
@ApiModelProperty(name = "车道ID",notes = "")
private String laneId ;
/** 路口ID */
@ApiModelProperty(name = "路口ID",notes = "")
private String crossId ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
/** 修改时间 */
@ApiModelProperty(name = "修改时间",notes = "")
private Date gmtModified ;
}
package net.wanji.web.po.scheme;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Kent HAN
* @date 2022/12/28 17:45
*/
@Data
public class LaneInfoPO {
/**
* 车道ID(路口ID_方向_序号)
*/
@ApiModelProperty(name = "车道ID(路口ID_方向_序号)", notes = "")
private String id;
/**
* 车道代码
*/
@ApiModelProperty(name = "车道代码", notes = "")
private String code;
/**
* 车道序号;从左车道开始编号11、12、13...
*/
@ApiModelProperty(name = "车道序号", notes = "从左车道开始编号11、12、13...")
private Integer sort;
/**
* 车道方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北
*/
@ApiModelProperty(name = "车道方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北", notes = "")
private Integer dir;
/**
* 车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头
*/
@ApiModelProperty(name = "0无方向 车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头; ", notes = "")
private Integer turn;
/**
* 车道类别:1机动车;2非机动车;3公交专用;4可变;5潮汐
*/
@ApiModelProperty(name = "车道类别:1机动车;2非机动车;3公交专用;4可变;5潮汐", notes = "")
private Integer category;
/**
* 路口ID
*/
@ApiModelProperty(name = "路口ID", notes = "")
private String crossId;
/**
* 路段编号
*/
@ApiModelProperty(name = "路段编号", notes = "")
private String rid;
/**
* 车道长度
*/
@ApiModelProperty(name = "车道长度", notes = "")
private Double length;
/**
* 车道宽度
*/
@ApiModelProperty(name = "车道宽度", notes = "")
private Double width;
/**
* 创建时间
*/
@ApiModelProperty(name = "创建时间", notes = "")
private Date gmtCreate;
/**
* 修改时间
*/
@ApiModelProperty(name = "修改时间", notes = "")
private Date gmtModified;
}
\ No newline at end of file
package net.wanji.web.service.scheme;
import net.wanji.web.vo.scheme.CrossDirsVO;
import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.SaveLaneInfoDTO;
/**
* @author Kent HAN
* @date 2022/12/20 10:26
*/
public interface CrossConfigService {
CrossDirsVO listCrossDirs(String crossId);
void saveLaneInfo(SaveLaneInfoDTO saveLaneInfoDTO);
SaveLaneInfoDTO listLaneInfo(CrossIdDTO crossIdDTO);
}
package net.wanji.web.service.scheme.impl;
import net.wanji.web.common.enums.CrossDirEnum;
import net.wanji.web.common.enums.CrossInOutEnum;
import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.DirListElement;
import net.wanji.web.dto.LaneListElement;
import net.wanji.web.dto.SaveLaneInfoDTO;
import net.wanji.web.mapper.scheme.CrossDirInfoMapper;
import net.wanji.web.mapper.scheme.CrossLaneLightsMapper;
import net.wanji.web.mapper.scheme.LaneInfoMapper;
import net.wanji.web.po.scheme.CrossDirInfoPO;
import net.wanji.web.po.scheme.LaneInfoPO;
import net.wanji.web.service.scheme.CrossConfigService;
import net.wanji.web.vo.scheme.CrossDirsVO;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author Kent HAN
......@@ -18,28 +24,146 @@ import java.util.List;
@Service
public class CrossConfigServiceImpl implements CrossConfigService {
private final CrossDirInfoMapper crossDirInfoMapper;
private final LaneInfoMapper laneInfoMapper;
private final CrossLaneLightsMapper crossLaneLightsMapper;
public CrossConfigServiceImpl(CrossDirInfoMapper crossDirInfoMapper) {
public CrossConfigServiceImpl(CrossDirInfoMapper crossDirInfoMapper, LaneInfoMapper laneInfoMapper, CrossLaneLightsMapper crossLaneLightsMapper) {
this.crossDirInfoMapper = crossDirInfoMapper;
this.laneInfoMapper = laneInfoMapper;
this.crossLaneLightsMapper = crossLaneLightsMapper;
}
@Override
public CrossDirsVO listCrossDirs(String crossId) {
List<CrossDirInfoPO> crossDirInfoPOList = crossDirInfoMapper.listByCrossID(crossId);
CrossDirsVO crossDirsVO = new CrossDirsVO();
crossDirsVO.setCrossId(crossId);
ArrayList<String> dirs = new ArrayList<>();
for (CrossDirInfoPO crossDirInfoPO : crossDirInfoPOList) {
Integer inOutTypeCode = crossDirInfoPO.getInOutType();
if (inOutTypeCode == 1) { // 只取进口
Integer dirTypeCode = crossDirInfoPO.getDirType();
String dirType = CrossDirEnum.getMsgByCode(dirTypeCode);
String inOutType = CrossInOutEnum.getMsgByCode(inOutTypeCode);
String dir = dirType + inOutType;
dirs.add(dir);
public void saveLaneInfo(SaveLaneInfoDTO saveLaneInfoDTO) {
String crossId = saveLaneInfoDTO.getCrossId();
List<DirListElement> dirList = saveLaneInfoDTO.getDirList();
for (DirListElement dirListElement : dirList) {
// 获取数据库中已有数据
Integer dir = dirListElement.getDir();
List<LaneInfoPO> laneInfoPOList = laneInfoMapper.selectByCrossIdAndDir(crossId, dir);
// 按车道代码排序
List<LaneListElement> laneListFromClient = dirListElement.getLaneList();
laneListFromClient.sort((x,y) -> String.CASE_INSENSITIVE_ORDER.compare(x.getName(), y.getName()));
List<LaneListElement> laneListFromDb = buildLaneListFromDb(laneInfoPOList);
laneListFromDb.sort((x,y) -> String.CASE_INSENSITIVE_ORDER.compare(x.getName(), y.getName()));
// 比较入参数据与已有数据
if (!laneListFromClient.equals(laneListFromDb)) {
// 删除车道表数据
laneInfoMapper.deleteByCrossIdAndDir(crossId, dir);
// 删除路口方向表数据
crossDirInfoMapper.deleteInByDirType(crossId, dir);
// 删除灯组-车道关系表数据
List<String> laneIds = getLaneIds(laneInfoPOList);
if (laneIds.size()!=0){
crossLaneLightsMapper.deleteByLaneIds(laneIds);
}
// 插入进口信息
List<LaneInfoPO> laneInfoPOListForInsert = getLaneInfoPOListForInsert(
crossId, dirListElement, dir, laneListFromClient);
laneInfoMapper.insertBatch(laneInfoPOListForInsert);
// 插入路口方向
CrossDirInfoPO crossDirInfoPO = getCrossDirInfoPO(crossId, dirListElement);
crossDirInfoMapper.insertOne(crossDirInfoPO);
}
// 更新是否有行人道
String id = getId(crossId, dirListElement);
crossDirInfoMapper.updateIsPedestrian(dirListElement.getIsPersonCross(), id);
}
crossDirsVO.setCrossDirs(dirs);
return crossDirsVO;
}
@Override
public SaveLaneInfoDTO listLaneInfo(CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
SaveLaneInfoDTO saveLaneInfoDTO = new SaveLaneInfoDTO();
saveLaneInfoDTO.setCrossId(crossId);
saveLaneInfoDTO.setDirList(new ArrayList<>());
List<LaneInfoPO> laneInfoPOList = laneInfoMapper.selectBycrossId(crossId);
Map<Integer, List<LaneInfoPO>> collect = laneInfoPOList.stream()
.collect(Collectors.groupingBy(LaneInfoPO::getDir));
for (Map.Entry<Integer, List<LaneInfoPO>> entry : collect.entrySet()) {
Integer key = entry.getKey();
DirListElement dirListElement = new DirListElement();
dirListElement.setDir(key);
// 获取是否有行人道
CrossDirInfoPO crossDirInfoPO = crossDirInfoMapper.selectByCrossIdAndDirType(crossId, key);
Integer isPedestrian = crossDirInfoPO.getIsPedestrian();
dirListElement.setIsPersonCross(isPedestrian);
// 构造内层List
List<LaneInfoPO> value = entry.getValue();
List<LaneListElement> laneListElementList = new ArrayList<>();
for (LaneInfoPO laneInfoPO : value) {
LaneListElement laneListElement = new LaneListElement();
laneListElement.setDirection(laneInfoPO.getTurn());
laneListElement.setLaneType(laneInfoPO.getCategory());
laneListElement.setName(laneInfoPO.getCode());
laneListElementList.add(laneListElement);
}
dirListElement.setLaneList(laneListElementList);
List<DirListElement> dirList = saveLaneInfoDTO.getDirList();
dirList.add(dirListElement);
}
return saveLaneInfoDTO;
}
private static String getId(String crossId, DirListElement dirListElement) {
CrossDirInfoPO crossDirInfoPO = new CrossDirInfoPO();
Integer dir = dirListElement.getDir();
String id = crossId + dir + 1 + 0;// todo 暂无主辅路序号,赋值0
return id;
}
private static CrossDirInfoPO getCrossDirInfoPO(String crossId, DirListElement dirListElement) {
CrossDirInfoPO crossDirInfoPO = new CrossDirInfoPO();
Integer dir = dirListElement.getDir();
crossDirInfoPO.setId(crossId + "_" + dir + "_" + 1 + "_" + 0); // todo 暂无主辅路序号,赋值0
crossDirInfoPO.setDirType(dir);
crossDirInfoPO.setInOutType(1);
crossDirInfoPO.setCrossId(crossId);
crossDirInfoPO.setLength(0D); // todo 暂无长度,赋值0
crossDirInfoPO.setIsPedestrian(dirListElement.getIsPersonCross());
return crossDirInfoPO;
}
private static List<LaneInfoPO> getLaneInfoPOListForInsert(String crossId, DirListElement dirListElement,
Integer dir, List<LaneListElement> laneListFromClient) {
List<LaneInfoPO> laneInfoPOListForInsert = new ArrayList<>();
for (LaneListElement laneListElement : laneListFromClient) {
LaneInfoPO laneInfoPO = new LaneInfoPO();
// 序号
String name = laneListElement.getName(); // 01
String substring = name.substring(name.length() - 1);// 1
String s = 1 + substring;
int sort = Integer.parseInt(s);
laneInfoPO.setId(crossId + "_" + dirListElement.getDir() + "_" + sort);
laneInfoPO.setCode(name);
laneInfoPO.setSort(sort);
laneInfoPO.setDir(dir);
laneInfoPO.setTurn(laneListElement.getDirection());
laneInfoPO.setCategory(laneListElement.getLaneType());
laneInfoPO.setCrossId(crossId);
laneInfoPOListForInsert.add(laneInfoPO);
}
return laneInfoPOListForInsert;
}
private List<String> getLaneIds(List<LaneInfoPO> laneInfoPOList) {
List<String> laneIds = new ArrayList<>();
for (LaneInfoPO laneInfoPO : laneInfoPOList) {
String id = laneInfoPO.getId();
laneIds.add(id);
}
return laneIds;
}
private List<LaneListElement> buildLaneListFromDb(List<LaneInfoPO> laneInfoPOList) {
List<LaneListElement> laneListElements = new ArrayList<>();
for (LaneInfoPO laneInfoPO : laneInfoPOList) {
LaneListElement laneListElement = new LaneListElement();
laneListElement.setDirection(laneInfoPO.getTurn());
laneListElement.setName(laneInfoPO.getCode());
laneListElement.setLaneType(laneInfoPO.getCategory());
laneListElements.add(laneListElement);
}
return laneListElements;
}
}
......@@ -9,16 +9,31 @@
<result property="inOutType" column="in_out_type"/>
<result property="crossId" column="cross_id"/>
<result property="length" column="length"/>
<result property="isPedestrian" column="is_pedestrian"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<select id="listByCrossID" resultMap="BaseResultMap">
<insert id="insertOne" keyProperty="id">
insert into t_base_cross_dir_info(id,dir_type,in_out_type,cross_id,length,is_pedestrian)
values (#{id},#{dirType},#{inOutType},#{crossId},#{length},#{isPedestrian})
</insert>
<update id="updateIsPedestrian">
update t_base_cross_dir_info
set is_pedestrian = #{isPersonCross}
where id = #{id}
</update>
<delete id="deleteInByDirType">
delete from t_base_cross_dir_info
where cross_id = #{crossId} and in_out_type = 1 and dir_type = #{dir}
</delete>
<select id="selectByCrossIdAndDirType" resultMap="BaseResultMap">
select
id,dir_type,in_out_type,cross_id,length,gmt_create,gmt_modified
id,dir_type,in_out_type,cross_id,length,is_pedestrian,gmt_create,gmt_modified
from t_base_cross_dir_info
where cross_id = #{crossId}
where cross_id = #{crossId} and dir_type = #{dirType}
</select>
</mapper>
<?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.CrossLaneLightsMapper">
<!-- 通用查询映射结果 -->
<resultMap type="net.wanji.web.po.scheme.CrossLaneLightsPO" id="BaseResultMap">
<result property="id" column="id"/>
<result property="lightsId" column="lights_id"/>
<result property="laneId" column="lane_id"/>
<result property="crossId" column="cross_id"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<delete id="deleteByLaneIds">
delete from t_base_cross_lane_lights
where lane_id in
<foreach collection="laneIds" item="laneId" separator="," open="(" close=")">
#{laneId}
</foreach>
</delete>
</mapper>
<?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.LaneInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap type="net.wanji.web.po.scheme.LaneInfoPO" id="BaseResultMap">
<result property="id" column="id"/>
<result property="code" column="code"/>
<result property="sort" column="sort"/>
<result property="dir" column="dir"/>
<result property="turn" column="turn"/>
<result property="category" column="category"/>
<result property="crossId" column="cross_id"/>
<result property="rid" column="rid"/>
<result property="length" column="length"/>
<result property="width" column="width"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<insert id="insertBatch">
insert into t_base_lane_info(id,code,sort,dir,turn,category,cross_id)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.id},#{entity.code},#{entity.sort},#{entity.dir},#{entity.turn},#{entity.category},#{entity.crossId})
</foreach>
</insert>
<delete id="deleteByCrossIdAndDir">
delete from t_base_lane_info
where cross_id = #{crossId} and dir = #{dir}
</delete>
<select id="selectByCrossIdAndDir" resultMap="BaseResultMap">
select
id,code,sort,dir,turn,category,cross_id,rid,length,width,gmt_create,gmt_modified
from t_base_lane_info
where cross_id = #{crossId} and dir = #{dir}
</select>
<select id="selectBycrossId" resultMap="BaseResultMap">
select
id,code,sort,dir,turn,category,cross_id,rid,length,width,gmt_create,gmt_modified
from t_base_lane_info
where cross_id = #{crossId}
</select>
</mapper>
......@@ -223,7 +223,7 @@
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<swaggerInput>http://10.100.1.87:30003/utcsystem/v2/api-docs</swaggerInput>
<swaggerInput>http://10.100.1.59:30003/utcsystem/v2/api-docs</swaggerInput>
<outputDir>src/docs/asciidoc/generated</outputDir>
<config>
<swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
......@@ -255,7 +255,7 @@
<!--from节点用来设置镜像的基础镜像,相当于Docerkfile中的FROM关键字-->
<from>
<!--使用harbor上的openjdk镜像-->
<image>10.100.1.87:5000/xinkong/openjdk:8-alpine3.9</image>
<image>10.100.1.59:5000/xinkong/openjdk:8-alpine3.9</image>
<!--harbor服务器的登录信息-->
<auth>
<username>admin</username>
......@@ -263,7 +263,7 @@
</auth>
</from>
<to>
<image>10.100.1.87:5000/xinkong/${artifactId}:${version}</image>
<image>10.100.1.59:5000/xinkong/${artifactId}:${version}</image>
<auth>
<username>admin</username>
<password>Wanji300552</password>
......
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