feat:增加航线限高

This commit is contained in:
gyb 2026-03-02 09:53:48 +08:00
parent ba86a0d011
commit 081261e750
8 changed files with 79 additions and 6 deletions

View File

@ -62,6 +62,8 @@ public class AirlineAreaControllerConvert extends BaseConvert<AirlineAreaDTO, Ai
vo.setAreaArea(dto.getAreaArea());
vo.setAreaPerimeter(dto.getAreaPerimeter());
vo.setRadius(dto.getRadius());
vo.setMinHeight(dto.getMinHeight());
vo.setMaxHeight(dto.getMaxHeight());
vo.setRemark(dto.getRemark());
// 将字符串转换为 List<PointInfo>
@ -97,6 +99,8 @@ public class AirlineAreaControllerConvert extends BaseConvert<AirlineAreaDTO, Ai
dto.setAreaArea(vo.getAreaArea());
dto.setAreaPerimeter(vo.getAreaPerimeter());
dto.setRadius(vo.getRadius());
dto.setMinHeight(vo.getMinHeight());
dto.setMaxHeight(vo.getMaxHeight());
dto.setRemark(vo.getRemark());
// List<PointInfo> 转换为字符串

View File

@ -56,6 +56,8 @@ public class AirlineAreaDomainConvert extends BaseConvert<AirlineAreaEntity, Air
model.setAreaArea(entity.getAreaArea());
model.setAreaPerimeter(entity.getAreaPerimeter());
model.setRadius(entity.getRadius());
model.setMinHeight(entity.getMinHeight());
model.setMaxHeight(entity.getMaxHeight());
model.setRemark(entity.getRemark());
model.setCreateBy(entity.getCreateBy());
model.setCreateTime(entity.getCreateTime());
@ -79,6 +81,8 @@ public class AirlineAreaDomainConvert extends BaseConvert<AirlineAreaEntity, Air
entity.setAreaArea(model.getAreaArea());
entity.setAreaPerimeter(model.getAreaPerimeter());
entity.setRadius(model.getRadius());
entity.setMinHeight(model.getMinHeight());
entity.setMaxHeight(model.getMaxHeight());
entity.setRemark(model.getRemark());
entity.setCreateBy(model.getCreateBy());
entity.setCreateTime(model.getCreateTime());

View File

@ -60,6 +60,16 @@ public class AirlineArea extends ExBaseEntity {
*/
private Double radius;
/**
* 最小高度
*/
private Double minHeight;
/**
* 最大高度
*/
private Double maxHeight;
/**
* 备注
*/
@ -77,6 +87,8 @@ public class AirlineArea extends ExBaseEntity {
.append("areaArea", getAreaArea())
.append("areaPerimeter", getAreaPerimeter())
.append("radius", getRadius())
.append("minHeight", getMinHeight())
.append("maxHeight", getMaxHeight())
.append("remark", getRemark())
.toString();
}

View File

@ -59,6 +59,16 @@ public class AirlineAreaEntity extends ExBaseEntity {
*/
private Double radius;
/**
* 最小高度
*/
private Double minHeight;
/**
* 最大高度
*/
private Double maxHeight;
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
@ -71,6 +81,8 @@ public class AirlineAreaEntity extends ExBaseEntity {
.append("areaArea", getAreaArea())
.append("areaPerimeter", getAreaPerimeter())
.append("radius", getRadius())
.append("minHeight", getMinHeight())
.append("maxHeight", getMaxHeight())
.toString();
}
}

View File

@ -57,6 +57,8 @@ public class AirlineAreaServiceConvert extends BaseConvert<AirlineArea, AirlineA
dto.setAreaArea(model.getAreaArea());
dto.setAreaPerimeter(model.getAreaPerimeter());
dto.setRadius(model.getRadius());
dto.setMinHeight(model.getMinHeight());
dto.setMaxHeight(model.getMaxHeight());
dto.setRemark(model.getRemark());
dto.setCreateBy(model.getCreateBy());
dto.setCreateTime(model.getCreateTime());
@ -85,6 +87,8 @@ public class AirlineAreaServiceConvert extends BaseConvert<AirlineArea, AirlineA
model.setAreaArea(dto.getAreaArea());
model.setAreaPerimeter(dto.getAreaPerimeter());
model.setRadius(dto.getRadius());
model.setMinHeight(dto.getMinHeight());
model.setMaxHeight(dto.getMaxHeight());
model.setRemark(dto.getRemark());
model.setCreateBy(dto.getCreateBy());
model.setCreateTime(dto.getCreateTime());

View File

@ -59,6 +59,16 @@ public class AirlineAreaDTO extends BaseEntity {
*/
private Double radius;
/**
* 最小高度
*/
private Double minHeight;
/**
* 最大高度
*/
private Double maxHeight;
/**
* 备注
*/
@ -76,6 +86,8 @@ public class AirlineAreaDTO extends BaseEntity {
.append("areaArea", getAreaArea())
.append("areaPerimeter", getAreaPerimeter())
.append("radius", getRadius())
.append("minHeight", getMinHeight())
.append("maxHeight", getMaxHeight())
.append("remark", getRemark())
.toString();
}

View File

@ -9,6 +9,8 @@ CREATE TABLE IF NOT EXISTS airline_area (
area_area DOUBLE DEFAULT NULL COMMENT '面积',
area_perimeter DOUBLE DEFAULT NULL COMMENT '周长',
radius DOUBLE DEFAULT NULL COMMENT '半径',
min_height DOUBLE DEFAULT 0 COMMENT '最小高度',
max_height DOUBLE DEFAULT 2000 COMMENT '最大高度',
create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
create_time DATETIME COMMENT '创建时间',
update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
@ -49,3 +51,22 @@ CREATE TABLE IF NOT EXISTS airline_area_group_info (
INDEX idx_group_id (group_id),
INDEX idx_area_id (area_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='空域分组明细表';
-- 创建空域时间规则表
CREATE TABLE IF NOT EXISTS airline_area_time_rule (
id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
area_id BIGINT(20) NOT NULL COMMENT '空域ID',
restrict_type INT(11) DEFAULT 0 COMMENT '限制类型0是永久 1单次2自定义',
date_range JSON COMMENT '日期范围',
time_range JSON COMMENT '时间范围',
granularity INT(11) DEFAULT 0 COMMENT '重复粒度值0,1,2:日,周,月 restrictType=0时生效',
repet_frequency INT(11) DEFAULT 1 COMMENT '粒度循环周期整数值每1天、每1周每1个月',
granularity_times JSON COMMENT '重复粒度具体时间 granularity = 0时该值为空不生效granularity = 1时granularityTimes最多7个值1,2,3,4,5,6,7分别周一周二。。。周日granularity = 2时granularityTimes最多12个值1,2,3,4,5,6,7。。12分别是1月2月.。。12月',
create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
create_time DATETIME COMMENT '创建时间',
update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
update_time DATETIME COMMENT '更新时间',
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (id),
INDEX idx_area_id (area_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='空域时间规则表';

View File

@ -14,6 +14,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="areaArea" column="area_area" />
<result property="areaPerimeter" column="area_perimeter" />
<result property="radius" column="radius" />
<result property="minHeight" column="min_height" />
<result property="maxHeight" column="max_height" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
@ -23,8 +25,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 插入空域 -->
<insert id="insertArea" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaEntity" useGeneratedKeys="true" keyProperty="id">
insert into airline_area (name, area_type, status, points, shape, area_area, area_perimeter, radius, create_by, create_time, update_by, update_time, remark)
values (#{name}, #{areaType}, #{status}, #{points}, #{shape}, #{areaArea}, #{areaPerimeter}, #{radius}, #{createBy}, now(), #{updateBy}, now(), #{remark})
insert into airline_area (name, area_type, status, points, shape, area_area, area_perimeter, radius, min_height, max_height, create_by, create_time, update_by, update_time, remark)
values (#{name}, #{areaType}, #{status}, #{points}, #{shape}, #{areaArea}, #{areaPerimeter}, #{radius}, #{minHeight}, #{maxHeight}, #{createBy}, now(), #{updateBy}, now(), #{remark})
</insert>
<!-- 更新空域 -->
@ -38,6 +40,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
area_area = #{areaArea},
area_perimeter = #{areaPerimeter},
radius = #{radius},
min_height = #{minHeight},
max_height = #{maxHeight},
update_by = #{updateBy},
update_time = now(),
remark = #{remark}
@ -55,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 查询空域列表 -->
<select id="selectAreaList" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaEntity" resultMap="AirlineAreaResult">
select id, name, area_type, status, points, shape, area_area, area_perimeter, radius, create_by, create_time, update_by, update_time, remark
select id, name, area_type, status, points, shape, area_area, area_perimeter, radius, min_height, max_height, create_by, create_time, update_by, update_time, remark
from airline_area
<where>
<if test="name != null and name != ''">
@ -72,14 +76,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 根据ID查询空域 -->
<select id="selectAreaById" parameterType="java.lang.Long" resultMap="AirlineAreaResult">
select id, name, area_type, status, points, shape, area_area, area_perimeter, radius, create_by, create_time, update_by, update_time, remark
select id, name, area_type, status, points, shape, area_area, area_perimeter, radius, min_height, max_height, create_by, create_time, update_by, update_time, remark
from airline_area
where id = #{id}
</select>
<!-- 根据ID列表查询空域 -->
<select id="selectAreaListByIds" parameterType="java.util.List" resultMap="AirlineAreaResult">
select id, name, area_type, status, points, shape, area_area, area_perimeter, radius, create_by, create_time, update_by, update_time, remark
select id, name, area_type, status, points, shape, area_area, area_perimeter, radius, min_height, max_height, create_by, create_time, update_by, update_time, remark
from airline_area
where id in
<foreach item="id" collection="list" open="(" separator="," close=")">
@ -89,7 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 根据用户ID查询空域列表 -->
<select id="selectAreaListByUserId" parameterType="com.ruoyi.airline.mapper.entity.AirlineAreaEntity" resultMap="AirlineAreaResult">
select distinct aa.id, aa.name, aa.area_type, aa.status, aa.points, aa.shape, aa.area_area, aa.area_perimeter, aa.radius, aa.create_by, aa.create_time, aa.update_by, aa.update_time, aa.remark
select distinct aa.id, aa.name, aa.area_type, aa.status, aa.points, aa.shape, aa.area_area, aa.area_perimeter, aa.radius, aa.min_height, aa.max_height, aa.create_by, aa.create_time, aa.update_by, aa.update_time, aa.remark
from airline_area aa
left join airline_area_group_info aagi on aa.id = aagi.area_id
left join airline_area_group aag on aagi.group_id = aag.group_id