Commit effcf158 authored by hanbing's avatar hanbing

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

parent dba9312e
...@@ -11,6 +11,7 @@ import net.wanji.web.bo.PolygonBO; ...@@ -11,6 +11,7 @@ import net.wanji.web.bo.PolygonBO;
import net.wanji.web.bo.SpecialServiceRouteBO; import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.service.impl.CrossManageServiceImpl; import net.wanji.web.service.impl.CrossManageServiceImpl;
import net.wanji.web.vo.CrossIdAndNameVO; import net.wanji.web.vo.CrossIdAndNameVO;
import net.wanji.web.vo.ListAreaVO;
import net.wanji.web.vo.SelectCrossesByStartEndVO; import net.wanji.web.vo.SelectCrossesByStartEndVO;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -84,4 +85,14 @@ public class CrossManageController { ...@@ -84,4 +85,14 @@ public class CrossManageController {
return JsonViewObject.newInstance().success(); 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; ...@@ -5,6 +5,7 @@ import net.wanji.web.bo.AreaIdBO;
import net.wanji.web.bo.PolygonBO; import net.wanji.web.bo.PolygonBO;
import net.wanji.web.bo.SpecialServiceRouteBO; import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.vo.CrossIdAndNameVO; import net.wanji.web.vo.CrossIdAndNameVO;
import net.wanji.web.vo.ListAreaVO;
import net.wanji.web.vo.SelectCrossesByStartEndVO; import net.wanji.web.vo.SelectCrossesByStartEndVO;
import java.util.List; import java.util.List;
...@@ -22,4 +23,6 @@ public interface CrossManageService { ...@@ -22,4 +23,6 @@ public interface CrossManageService {
SelectCrossesByStartEndVO selectCrossesByStartEnd(SpecialServiceRouteBO specialServiceRouteBO); SelectCrossesByStartEndVO selectCrossesByStartEnd(SpecialServiceRouteBO specialServiceRouteBO);
void deleteArea(AreaIdBO areaIdBO); void deleteArea(AreaIdBO areaIdBO);
ListAreaVO listArea();
} }
...@@ -15,6 +15,7 @@ import net.wanji.web.bo.SpecialServiceRouteBO; ...@@ -15,6 +15,7 @@ import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.mapper.TBaseAreaCrossMapper; import net.wanji.web.mapper.TBaseAreaCrossMapper;
import net.wanji.web.service.CrossManageService; import net.wanji.web.service.CrossManageService;
import net.wanji.web.vo.CrossIdAndNameVO; import net.wanji.web.vo.CrossIdAndNameVO;
import net.wanji.web.vo.ListAreaVO;
import net.wanji.web.vo.SelectCrossesByStartEndVO; import net.wanji.web.vo.SelectCrossesByStartEndVO;
import net.wanji.web.vo.specialService.RouteElementVO; import net.wanji.web.vo.specialService.RouteElementVO;
import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.Geometry;
...@@ -171,4 +172,70 @@ public class CrossManageServiceImpl implements CrossManageService { ...@@ -171,4 +172,70 @@ public class CrossManageServiceImpl implements CrossManageService {
// 删除区域基础信息 // 删除区域基础信息
baseAreaInfoMapper.deleteById(areaId); 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 { ...@@ -22,4 +22,10 @@ public interface BaseAreaInfoMapper {
void deleteById(Integer areaId); void deleteById(Integer areaId);
List<Integer> selectIdsByParentCode(Integer parentCode); List<Integer> selectIdsByParentCode(Integer parentCode);
List<BaseAreaInfoPO> selectParentPolice(Integer type);
List<BaseAreaInfoPO> selectByParentCode(Integer parentCode);
List<BaseAreaInfoPO> selectByType(Integer type);
} }
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
<mapper namespace="net.wanji.databus.dao.mapper.BaseAreaInfoMapper"> <mapper namespace="net.wanji.databus.dao.mapper.BaseAreaInfoMapper">
<sql id="baseColumnList"> <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> </sql>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true"> <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}) values (#{code},#{name},#{roadName},#{type},#{parentCode},#{location},#{polylines},#{remark})
</insert> </insert>
...@@ -47,4 +47,22 @@ ...@@ -47,4 +47,22 @@
where parent_code = #{parentCode} where parent_code = #{parentCode}
</select> </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> </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