Commit effcf158 authored by hanbing's avatar hanbing

[add] 路口管理,区域列表

parent dba9312e
......@@ -11,6 +11,7 @@ import net.wanji.web.bo.PolygonBO;
import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.service.impl.CrossManageServiceImpl;
import net.wanji.web.vo.CrossIdAndNameVO;
import net.wanji.web.vo.ListAreaVO;
import net.wanji.web.vo.SelectCrossesByStartEndVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -84,4 +85,14 @@ public class CrossManageController {
return JsonViewObject.newInstance().success();
}
@ApiOperation(value = "区域列表", notes = "区域列表", produces = MediaType.APPLICATION_JSON)
@PostMapping(value = "/listArea", produces = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = ListAreaVO.class),
})
public JsonViewObject listArea() {
ListAreaVO listAreaVO = crossManageService.listArea();
return JsonViewObject.newInstance().success(listAreaVO);
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import net.wanji.web.bo.AreaIdBO;
import net.wanji.web.bo.PolygonBO;
import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.vo.CrossIdAndNameVO;
import net.wanji.web.vo.ListAreaVO;
import net.wanji.web.vo.SelectCrossesByStartEndVO;
import java.util.List;
......@@ -22,4 +23,6 @@ public interface CrossManageService {
SelectCrossesByStartEndVO selectCrossesByStartEnd(SpecialServiceRouteBO specialServiceRouteBO);
void deleteArea(AreaIdBO areaIdBO);
ListAreaVO listArea();
}
......@@ -15,6 +15,7 @@ import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.mapper.TBaseAreaCrossMapper;
import net.wanji.web.service.CrossManageService;
import net.wanji.web.vo.CrossIdAndNameVO;
import net.wanji.web.vo.ListAreaVO;
import net.wanji.web.vo.SelectCrossesByStartEndVO;
import net.wanji.web.vo.specialService.RouteElementVO;
import org.locationtech.jts.geom.Geometry;
......@@ -171,4 +172,70 @@ public class CrossManageServiceImpl implements CrossManageService {
// 删除区域基础信息
baseAreaInfoMapper.deleteById(areaId);
}
@Override
public ListAreaVO listArea() {
ListAreaVO listAreaVO = new ListAreaVO();
listAreaVO.setParentPoliceList(buildParentPoliceList());
listAreaVO.setRoadList(buildRoadList());
listAreaVO.setSubAreaList(buildSubAreaList());
return listAreaVO;
}
private List<ListAreaVO.AreaIdAndNameVO> buildSubAreaList() {
List<ListAreaVO.AreaIdAndNameVO> res = new ArrayList<>();
Integer type = 5;
return handleAreaIdAndNameVOList(res, type);
}
private List<ListAreaVO.AreaIdAndNameVO> buildRoadList() {
List<ListAreaVO.AreaIdAndNameVO> res = new ArrayList<>();
Integer type = 6;
return handleAreaIdAndNameVOList(res, type);
}
private List<ListAreaVO.AreaIdAndNameVO> handleAreaIdAndNameVOList(List<ListAreaVO.AreaIdAndNameVO> res, Integer type) {
List<BaseAreaInfoPO> areaInfoPOList = baseAreaInfoMapper.selectByType(type);
for (BaseAreaInfoPO baseAreaInfoPO : areaInfoPOList) {
ListAreaVO.AreaIdAndNameVO areaIdAndNameVO = new ListAreaVO.AreaIdAndNameVO();
areaIdAndNameVO.setAreaId(baseAreaInfoPO.getId());
areaIdAndNameVO.setAreaName(baseAreaInfoPO.getName());
res.add(areaIdAndNameVO);
}
return res;
}
private List<ListAreaVO.ParentAreaVO> buildParentPoliceList() {
List<ListAreaVO.ParentAreaVO> res = new ArrayList<>();
Integer type = 2;
List<BaseAreaInfoPO> areaInfoPOList = baseAreaInfoMapper.selectParentPolice(type);
for (BaseAreaInfoPO baseAreaInfoPO : areaInfoPOList) {
ListAreaVO.ParentAreaVO parentAreaVO = new ListAreaVO.ParentAreaVO();
Integer areaId = baseAreaInfoPO.getId();
parentAreaVO.setAreaId(areaId);
parentAreaVO.setAreaName(baseAreaInfoPO.getName());
parentAreaVO.setSubAreaList(buildSubPoliceList(areaId));
res.add(parentAreaVO);
}
return res;
}
private List<ListAreaVO.AreaIdAndNameVO> buildSubPoliceList(Integer areaId) {
List<ListAreaVO.AreaIdAndNameVO> res = new ArrayList<>();
List<BaseAreaInfoPO> baseAreaInfoPOList = baseAreaInfoMapper.selectByParentCode(areaId);
for (BaseAreaInfoPO baseAreaInfoPO : baseAreaInfoPOList) {
ListAreaVO.AreaIdAndNameVO areaIdAndNameVO = new ListAreaVO.AreaIdAndNameVO();
areaIdAndNameVO.setAreaId(baseAreaInfoPO.getId());
areaIdAndNameVO.setAreaName(baseAreaInfoPO.getName());
res.add(areaIdAndNameVO);
}
return res;
}
}
package net.wanji.web.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@NoArgsConstructor
@Data
@ApiModel(value = "ListAreaVO", description = "区域列表")
public class ListAreaVO {
@ApiModelProperty(value = "交警大队列表")
private List<ParentAreaVO> parentPoliceList;
@ApiModelProperty(value = "道路列表")
private List<AreaIdAndNameVO> roadList;
@ApiModelProperty(value = "子区列表")
private List<AreaIdAndNameVO> subAreaList;
@NoArgsConstructor
@Data
public static class ParentAreaVO {
@ApiModelProperty(value = "交警大队ID")
private Integer areaId;
@ApiModelProperty(value = "交警大队名称")
private String areaName;
@ApiModelProperty(value = "交警中队列表")
private List<AreaIdAndNameVO> subAreaList;
}
@NoArgsConstructor
@Data
public static class AreaIdAndNameVO {
@ApiModelProperty(value = "区域ID")
private Integer areaId;
@ApiModelProperty(value = "区域名称")
private String areaName;
}
}
......@@ -22,4 +22,10 @@ public interface BaseAreaInfoMapper {
void deleteById(Integer areaId);
List<Integer> selectIdsByParentCode(Integer parentCode);
List<BaseAreaInfoPO> selectParentPolice(Integer type);
List<BaseAreaInfoPO> selectByParentCode(Integer parentCode);
List<BaseAreaInfoPO> selectByType(Integer type);
}
......@@ -3,11 +3,11 @@
<mapper namespace="net.wanji.databus.dao.mapper.BaseAreaInfoMapper">
<sql id="baseColumnList">
code,name,road_name,type,parent_code,location,polylines,remark
id,code,name,road_name,type,parent_code,location,polylines,remark
</sql>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_base_area_info (<include refid="baseColumnList"/>)
insert into t_base_area_info (code,name,road_name,type,parent_code,location,polylines,remark)
values (#{code},#{name},#{roadName},#{type},#{parentCode},#{location},#{polylines},#{remark})
</insert>
......@@ -47,4 +47,22 @@
where parent_code = #{parentCode}
</select>
<select id="selectParentPolice" resultType="net.wanji.databus.po.BaseAreaInfoPO">
select <include refid="baseColumnList"/>
from t_base_area_info
where type = #{type} and parent_code = 0 and code = 0;
</select>
<select id="selectByParentCode" resultType="net.wanji.databus.po.BaseAreaInfoPO">
select <include refid="baseColumnList"/>
from t_base_area_info
where parent_code = #{parentCode}
</select>
<select id="selectByType" resultType="net.wanji.databus.po.BaseAreaInfoPO">
select <include refid="baseColumnList"/>
from t_base_area_info
where type = #{type};
</select>
</mapper>
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