火力规则:最终版json实体解析定义
This commit is contained in:
@@ -39,4 +39,16 @@ public class Task {
|
||||
|
||||
//防区经纬高
|
||||
private List<Coordinate> defZoneLocation;
|
||||
|
||||
//阵型类型:TRIANGLE/DIAMOND/LINE/COLUMN/WEDGE
|
||||
private String formationType;
|
||||
|
||||
//阵型基础间距(米)
|
||||
private Integer formationSpacingMeters;
|
||||
|
||||
//主僚标准距离(米)
|
||||
private Integer mainWingDistanceMeters;
|
||||
|
||||
//阵型朝向(0~359)
|
||||
private Integer formationHeadingDeg;
|
||||
}
|
||||
|
||||
@@ -30,4 +30,13 @@ public class Weapon {
|
||||
|
||||
//目标id
|
||||
private String targetId;
|
||||
|
||||
//编队角色:MAIN=主机,WING=僚机
|
||||
private String formationRole;
|
||||
|
||||
//僚机相对主机距离(米)
|
||||
private Integer wingRelativeDistanceMeters;
|
||||
|
||||
//僚机相对主机方位角(度)
|
||||
private Integer wingRelativeBearingDeg;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 装备组件参数项
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleComponentParamDTO {
|
||||
|
||||
/**
|
||||
* 参数唯一标识
|
||||
*/
|
||||
private String uuid;
|
||||
|
||||
/**
|
||||
* 属性默认值
|
||||
*/
|
||||
private String attDefaultValue;
|
||||
|
||||
/**
|
||||
* 属性说明
|
||||
*/
|
||||
private String attExplain;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Integer number;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 经纬高坐标点
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleCoordinateDTO {
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Double longitude;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Double latitude;
|
||||
|
||||
/**
|
||||
* 高程(米)
|
||||
*/
|
||||
private Double height;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputArithmeticRefDTO {
|
||||
|
||||
private String id;
|
||||
|
||||
private String name;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 火力规则输入根文档,与 {@code 火力规则输入-无注释.json} 顶层字段对应。
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputDTO {
|
||||
|
||||
/**
|
||||
* 来源场景文件名
|
||||
*/
|
||||
private String sourceFile;
|
||||
|
||||
/**
|
||||
* 蓝方任务列表
|
||||
*/
|
||||
private List<FireRuleTaskInputDTO> tasks;
|
||||
|
||||
/**
|
||||
* 红方侧异构条目列表(武器、场景任务节点、装备、指挥所、防区等)
|
||||
*/
|
||||
private List<FireRuleInputRedWeaponElementDTO> redWeapons;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputDeviceRefDTO {
|
||||
|
||||
private String id;
|
||||
|
||||
private String name;
|
||||
|
||||
private String refId;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputLauncherConfigurationDTO {
|
||||
|
||||
private String classifyName;
|
||||
|
||||
private Integer isMount;
|
||||
|
||||
private FireRuleInputMountedWeaponRefDTO mountedWeapon;
|
||||
|
||||
private Integer number;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputMountedWeaponRefDTO {
|
||||
|
||||
@JsonProperty("_id")
|
||||
private String id;
|
||||
|
||||
private String name;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 防区圆形条目中 isWing 为对象时的样式字段
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedCircleStyleDTO {
|
||||
|
||||
private String outlineWidth;
|
||||
|
||||
private String lineType;
|
||||
|
||||
private String outlineColor;
|
||||
|
||||
private String color;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedCommSlotDTO {
|
||||
|
||||
@JsonProperty("ObjectHandle")
|
||||
private String objectHandle;
|
||||
|
||||
private FireRuleInputArithmeticRefDTO arithmetic;
|
||||
|
||||
private FireRuleInputDeviceRefDTO device;
|
||||
|
||||
private String deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private Boolean employLabel;
|
||||
|
||||
private String facilityName;
|
||||
|
||||
private String soleId;
|
||||
|
||||
private Map<String, Object> twiceModified;
|
||||
|
||||
private List<Object> zLists;
|
||||
|
||||
@JsonProperty("ParentPlat")
|
||||
private String parentPlat;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* redWeapons 条目中 isLead:可能是长机编队参数,也可能是圆形防区参数(字段并集)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedLeadPayloadDTO {
|
||||
|
||||
private String leader;
|
||||
|
||||
private String side;
|
||||
|
||||
private String supportType;
|
||||
|
||||
private List<FireRuleInputRedLeadPositionDTO> positions;
|
||||
|
||||
private String drawName;
|
||||
|
||||
private String airspaceType;
|
||||
|
||||
private String selectLonLat;
|
||||
|
||||
private String radius;
|
||||
|
||||
private String height;
|
||||
|
||||
private String extrudedHeight;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 长机/圆形等结构中的坐标点(示例中可能为数值或占位字符串)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedLeadPositionDTO {
|
||||
|
||||
private String longitude;
|
||||
|
||||
private String latitude;
|
||||
|
||||
private String height;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedMotorizedSlotDTO {
|
||||
|
||||
@JsonProperty("ObjectHandle")
|
||||
private String objectHandle;
|
||||
|
||||
private FireRuleInputArithmeticRefDTO arithmetic;
|
||||
|
||||
private FireRuleInputDeviceRefDTO device;
|
||||
|
||||
private String deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private String soleId;
|
||||
|
||||
@JsonProperty("ParentPlat")
|
||||
private String parentPlat;
|
||||
|
||||
private Map<String, Object> twiceModified;
|
||||
|
||||
private List<Object> zLists;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedPlatformSlotDTO {
|
||||
|
||||
@JsonProperty("ObjectHandle")
|
||||
private String objectHandle;
|
||||
|
||||
private FireRuleInputArithmeticRefDTO arithmetic;
|
||||
|
||||
private FireRuleInputDeviceRefDTO device;
|
||||
|
||||
private String deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private Boolean employLabel;
|
||||
|
||||
private String facilityName;
|
||||
|
||||
private String soleId;
|
||||
|
||||
private Map<String, Object> twiceModified;
|
||||
|
||||
private List<Object> zLists;
|
||||
|
||||
@JsonProperty("TrackParamId")
|
||||
private String trackParamId;
|
||||
|
||||
private List<Double> positions;
|
||||
|
||||
@JsonProperty("ParentPlat")
|
||||
private String parentPlat;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedSubComponentsDTO {
|
||||
|
||||
private List<FireRuleInputRedCommSlotDTO> communication;
|
||||
|
||||
@JsonProperty("motorized_assembly")
|
||||
private List<FireRuleInputRedMotorizedSlotDTO> motorizedAssembly;
|
||||
|
||||
private List<FireRuleInputRedPlatformSlotDTO> platform;
|
||||
|
||||
private List<FireRuleInputRedWeaponSlotDTO> weapon;
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 输入 JSON 中 {@code redWeapons} 数组元素并集:武器摘要、红方装备、营指挥所、防区圆形等形态共用此类。
|
||||
* <p>
|
||||
* {@code isWing} 在 JSON 中可能为僚机数组或圆形样式对象,故使用 {@link Object} 承接;可结合
|
||||
* {@link FireRuleInputRedWingItemDTO}、{@link FireRuleInputRedCircleStyleDTO} 在业务层转型。
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedWeaponElementDTO {
|
||||
|
||||
private String name;
|
||||
|
||||
@JsonProperty("Name")
|
||||
private String displayName;
|
||||
|
||||
private String id;
|
||||
|
||||
@JsonProperty("EquipmentID")
|
||||
private String equipmentId;
|
||||
|
||||
private List<FireRuleWeaponComponentDTO> components;
|
||||
|
||||
private Object number;
|
||||
|
||||
private String successTargetRad;
|
||||
|
||||
private FireRuleInputRedLeadPayloadDTO isLead;
|
||||
|
||||
private Object isWing;
|
||||
|
||||
/**
|
||||
* 装备类条目中为 {@code equipment} 等
|
||||
*/
|
||||
private String groupType;
|
||||
|
||||
@JsonProperty("SupportType")
|
||||
private String supportType;
|
||||
|
||||
@JsonProperty("TroopsDetail")
|
||||
private Map<String, Object> troopsDetail;
|
||||
|
||||
@JsonProperty("Platform_type")
|
||||
private String platformType;
|
||||
|
||||
private Boolean isStrikeTarget;
|
||||
|
||||
private Boolean isReconTarget;
|
||||
|
||||
private Boolean isInterferenceTarget;
|
||||
|
||||
private Boolean isDefendImportantPlace;
|
||||
|
||||
@JsonProperty("OwnerForceSide")
|
||||
private String ownerForceSide;
|
||||
|
||||
@JsonProperty("PlatID")
|
||||
private String platId;
|
||||
|
||||
@JsonProperty("SubComponents")
|
||||
private FireRuleInputRedSubComponentsDTO subComponents;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedWeaponSlotDTO {
|
||||
|
||||
@JsonProperty("ObjectHandle")
|
||||
private String objectHandle;
|
||||
|
||||
private FireRuleInputArithmeticRefDTO arithmetic;
|
||||
|
||||
private String codedQueue;
|
||||
|
||||
private FireRuleInputLauncherConfigurationDTO configuration;
|
||||
|
||||
private FireRuleInputDeviceRefDTO device;
|
||||
|
||||
private String deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private Boolean employLabel;
|
||||
|
||||
private String facilityName;
|
||||
|
||||
private String serialNumber;
|
||||
|
||||
private String soleId;
|
||||
|
||||
private Map<String, Object> twiceModified;
|
||||
|
||||
private List<Object> zLists;
|
||||
|
||||
@JsonProperty("ParentPlat")
|
||||
private String parentPlat;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleInputRedWingItemDTO {
|
||||
|
||||
private String name;
|
||||
|
||||
private String distance;
|
||||
|
||||
private String angle;
|
||||
|
||||
private String alt;
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 单条火力规则任务输入(蓝方多任务时为列表中的一项)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleTaskInputDTO {
|
||||
|
||||
/**
|
||||
* 任务唯一标识
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
private String drawName;
|
||||
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
private String dataType;
|
||||
|
||||
/**
|
||||
* 任务所属阵营
|
||||
*/
|
||||
private String side;
|
||||
|
||||
/**
|
||||
* 航迹所属实体或阵营标识
|
||||
*/
|
||||
private String trackPointsId;
|
||||
|
||||
/**
|
||||
* 任务航迹点列表
|
||||
*/
|
||||
private List<FireRuleTrackPointDTO> trackPoints;
|
||||
|
||||
/**
|
||||
* 任务武器配置列表
|
||||
*/
|
||||
private List<FireRuleTaskWeaponDTO> taskWeapons;
|
||||
|
||||
/**
|
||||
* 任务目标 id
|
||||
*/
|
||||
private String targetId;
|
||||
|
||||
/**
|
||||
* 作战区经纬高坐标列表
|
||||
*/
|
||||
private List<FireRuleCoordinateDTO> warZoneLocation;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务挂载的武器配置
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleTaskWeaponDTO {
|
||||
|
||||
/**
|
||||
* 装备 id(武器唯一标识)
|
||||
*/
|
||||
private String equipmentId;
|
||||
|
||||
/**
|
||||
* 装备名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 装备类型
|
||||
*/
|
||||
private String supportType;
|
||||
|
||||
/**
|
||||
* 装备组件列表
|
||||
*/
|
||||
private List<FireRuleWeaponComponentDTO> components;
|
||||
|
||||
/**
|
||||
* 装备部署位置
|
||||
*/
|
||||
private FireRuleCoordinateDTO coordinate;
|
||||
|
||||
/**
|
||||
* 武器数量;对应 JSON 键 {@code number}。{@code _comment_number} 为注释键,不映射。
|
||||
* 可为数值或业务文案(如「最大载弹量」)。
|
||||
*/
|
||||
private Object number;
|
||||
|
||||
/**
|
||||
* 该武器打击目标 id
|
||||
*/
|
||||
private String targetId;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 任务航迹点
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleTrackPointDTO {
|
||||
|
||||
/**
|
||||
* 航迹点序号
|
||||
*/
|
||||
private Integer index;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Double longitude;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Double latitude;
|
||||
|
||||
/**
|
||||
* 高度
|
||||
*/
|
||||
private Double height;
|
||||
|
||||
/**
|
||||
* 速度
|
||||
*/
|
||||
private Double speed;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务武器下的设备组件
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleWeaponComponentDTO {
|
||||
|
||||
/**
|
||||
* 设备 id
|
||||
*/
|
||||
private String deviceId;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
private String deviceName;
|
||||
|
||||
/**
|
||||
* 组件参数列表
|
||||
*/
|
||||
private List<FireRuleComponentParamDTO> componentParams;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
/**
|
||||
* 火力规则输入侧 DTO,与 {@code resources/json/火力规则输入-无注释.json} 对齐。
|
||||
* <p>
|
||||
* {@code redWeapons} 数组元素为并集类型 {@link com.solution.rule.domain.ultimately.dto.FireRuleInputRedWeaponElementDTO},
|
||||
* 常见形态包括:武器摘要、红方装备(含子组件)、营指挥所、防区圆形等。
|
||||
*/
|
||||
package com.solution.rule.domain.ultimately.dto;
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 算法引用(id / 名称)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleArithmeticRefVO {
|
||||
|
||||
/**
|
||||
* 算法 id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 算法名称
|
||||
*/
|
||||
private String name;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 装备组件参数项
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleComponentParamVO {
|
||||
|
||||
/**
|
||||
* 参数唯一标识
|
||||
*/
|
||||
private String uuid;
|
||||
|
||||
/**
|
||||
* 属性默认值
|
||||
*/
|
||||
private String attDefaultValue;
|
||||
|
||||
/**
|
||||
* 属性说明
|
||||
*/
|
||||
private String attExplain;
|
||||
|
||||
/**
|
||||
* 数量或序号
|
||||
*/
|
||||
private Integer number;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 经纬高坐标点
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleCoordinateVO {
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Double longitude;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Double latitude;
|
||||
|
||||
/**
|
||||
* 高程(米)
|
||||
*/
|
||||
private Double height;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 巡航航线偏移量项(上下 / 前后 / 左右 三选一与取值)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleCruiseRouteOffsetItemVO {
|
||||
|
||||
@JsonProperty("UpOrDown")
|
||||
private Boolean upOrDown;
|
||||
|
||||
@JsonProperty("BeforeOrAfter")
|
||||
private Boolean beforeOrAfter;
|
||||
|
||||
@JsonProperty("LeftOrRight")
|
||||
private Boolean leftOrRight;
|
||||
|
||||
/**
|
||||
* 偏移数值
|
||||
*/
|
||||
private Number value;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 设备引用
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleDeviceRefVO {
|
||||
|
||||
/**
|
||||
* 设备 id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 引用 id
|
||||
*/
|
||||
private String refId;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务载荷中的单次执行块(含目标列表与类型)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleExecuteBlockVO {
|
||||
|
||||
private List<FireRuleExecuteTargetItemVO> targetList;
|
||||
|
||||
/**
|
||||
* 执行类型,如 assault
|
||||
*/
|
||||
private String type;
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 打击执行块中单个目标条目
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleExecuteTargetItemVO {
|
||||
|
||||
@JsonProperty("ID")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 阵列位置 id
|
||||
*/
|
||||
private Integer arrayPositionId;
|
||||
|
||||
/**
|
||||
* 阵列位置 id 备份
|
||||
*/
|
||||
private String arrayPositionIdBak;
|
||||
|
||||
/**
|
||||
* 到达时间配置
|
||||
*/
|
||||
@JsonProperty("at_time")
|
||||
private FireRuleTargetAttTimeVO atTime;
|
||||
|
||||
@JsonProperty("times_interval")
|
||||
private Integer timesInterval;
|
||||
|
||||
private String attackType;
|
||||
|
||||
private String boost;
|
||||
|
||||
private String bootTime;
|
||||
|
||||
private String companion;
|
||||
|
||||
private String cruiseRouteId;
|
||||
|
||||
private List<FireRuleCruiseRouteOffsetItemVO> cruiseRouteOffset;
|
||||
|
||||
private String fireType;
|
||||
|
||||
private List<Object> strategy;
|
||||
|
||||
private String targetId;
|
||||
|
||||
private String weaponId;
|
||||
|
||||
private String weaponRelease;
|
||||
|
||||
private String weaponType;
|
||||
|
||||
private Integer weaponUseCount;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 发射架配置块
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleLauncherConfigurationVO {
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
private String classifyName;
|
||||
|
||||
/**
|
||||
* 是否挂载
|
||||
*/
|
||||
private Integer isMount;
|
||||
|
||||
/**
|
||||
* 已挂载武器
|
||||
*/
|
||||
private FireRuleMountedWeaponRefVO mountedWeapon;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Integer number;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 任务载荷中的挂载/任务清单项
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleMissionListItemVO {
|
||||
|
||||
private String label;
|
||||
|
||||
/**
|
||||
* 发射器类型,如 sam
|
||||
*/
|
||||
private String launcherType;
|
||||
|
||||
private Integer number;
|
||||
|
||||
private String value;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 挂载武器简要信息
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleMountedWeaponRefVO {
|
||||
|
||||
/**
|
||||
* 武器文档 id
|
||||
*/
|
||||
@JsonProperty("_id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 武器名称
|
||||
*/
|
||||
private String name;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 火力规则输出根文档(与 {@code 火力规则输出.json} 字段一一对应)。
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleOutputVO {
|
||||
|
||||
/**
|
||||
* 来源场景文件名
|
||||
*/
|
||||
private String sourceFile;
|
||||
|
||||
/**
|
||||
* 火力规则任务列表(可含防区等输出字段)
|
||||
*/
|
||||
private List<FireRuleTaskInputVO> fireRuleInputs;
|
||||
|
||||
/**
|
||||
* 场景任务节点列表
|
||||
*/
|
||||
@JsonProperty("Tasks")
|
||||
private List<FireRuleSceneTaskNodeVO> tasks;
|
||||
|
||||
/**
|
||||
* 编组列表
|
||||
*/
|
||||
@JsonProperty("Groups")
|
||||
private List<FireRuleSceneGroupNodeVO> groups;
|
||||
|
||||
/**
|
||||
* 红方装备列表
|
||||
*/
|
||||
private List<FireRuleRedWeaponEquipmentVO> redWeapons;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 红方装备子组件:通信类数组元素
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleRedCommunicationSlotVO {
|
||||
|
||||
@JsonProperty("ObjectHandle")
|
||||
private String objectHandle;
|
||||
|
||||
private FireRuleArithmeticRefVO arithmetic;
|
||||
|
||||
private FireRuleDeviceRefVO device;
|
||||
|
||||
private String deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private Boolean employLabel;
|
||||
|
||||
private String facilityName;
|
||||
|
||||
private String soleId;
|
||||
|
||||
private Map<String, Object> twiceModified;
|
||||
|
||||
private List<Object> zLists;
|
||||
|
||||
@JsonProperty("ParentPlat")
|
||||
private String parentPlat;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 红方装备子组件:机动组件数组元素
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleRedMotorizedSlotVO {
|
||||
|
||||
@JsonProperty("ObjectHandle")
|
||||
private String objectHandle;
|
||||
|
||||
private FireRuleArithmeticRefVO arithmetic;
|
||||
|
||||
private FireRuleDeviceRefVO device;
|
||||
|
||||
private String deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private String soleId;
|
||||
|
||||
@JsonProperty("ParentPlat")
|
||||
private String parentPlat;
|
||||
|
||||
private Map<String, Object> twiceModified;
|
||||
|
||||
private List<Object> zLists;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 红方装备子组件:平台数组元素
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleRedPlatformSlotVO {
|
||||
|
||||
@JsonProperty("ObjectHandle")
|
||||
private String objectHandle;
|
||||
|
||||
private FireRuleArithmeticRefVO arithmetic;
|
||||
|
||||
private FireRuleDeviceRefVO device;
|
||||
|
||||
private String deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private Boolean employLabel;
|
||||
|
||||
private String facilityName;
|
||||
|
||||
private String soleId;
|
||||
|
||||
private Map<String, Object> twiceModified;
|
||||
|
||||
private List<Object> zLists;
|
||||
|
||||
@JsonProperty("TrackParamId")
|
||||
private String trackParamId;
|
||||
|
||||
private List<Double> positions;
|
||||
|
||||
@JsonProperty("ParentPlat")
|
||||
private String parentPlat;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 红方装备子组件分组(按 communication / motorized_assembly / platform / weapon)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleRedSubComponentsVO {
|
||||
|
||||
private List<FireRuleRedCommunicationSlotVO> communication;
|
||||
|
||||
@JsonProperty("motorized_assembly")
|
||||
private List<FireRuleRedMotorizedSlotVO> motorizedAssembly;
|
||||
|
||||
private List<FireRuleRedPlatformSlotVO> platform;
|
||||
|
||||
private List<FireRuleRedWeaponSlotVO> weapon;
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 火力规则输出中 redWeapons 数组的单项(红方装备/平台)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleRedWeaponEquipmentVO {
|
||||
|
||||
@JsonProperty("SupportType")
|
||||
private String supportType;
|
||||
|
||||
@JsonProperty("TroopsDetail")
|
||||
private Map<String, Object> troopsDetail;
|
||||
|
||||
@JsonProperty("Platform_type")
|
||||
private String platformType;
|
||||
|
||||
private Boolean isStrikeTarget;
|
||||
|
||||
private Boolean isReconTarget;
|
||||
|
||||
private Boolean isInterferenceTarget;
|
||||
|
||||
private Boolean isDefendImportantPlace;
|
||||
|
||||
private String groupType;
|
||||
|
||||
@JsonProperty("EquipmentID")
|
||||
private String equipmentId;
|
||||
|
||||
@JsonProperty("Name")
|
||||
private String name;
|
||||
|
||||
@JsonProperty("OwnerForceSide")
|
||||
private String ownerForceSide;
|
||||
|
||||
@JsonProperty("PlatID")
|
||||
private String platId;
|
||||
|
||||
@JsonProperty("SubComponents")
|
||||
private FireRuleRedSubComponentsVO subComponents;
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 红方装备子组件:武器 / 发射架子项
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleRedWeaponSlotVO {
|
||||
|
||||
@JsonProperty("ObjectHandle")
|
||||
private String objectHandle;
|
||||
|
||||
private FireRuleArithmeticRefVO arithmetic;
|
||||
|
||||
private String codedQueue;
|
||||
|
||||
private FireRuleLauncherConfigurationVO configuration;
|
||||
|
||||
private FireRuleDeviceRefVO device;
|
||||
|
||||
private String deviceId;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private Boolean employLabel;
|
||||
|
||||
private String facilityName;
|
||||
|
||||
private String serialNumber;
|
||||
|
||||
private String soleId;
|
||||
|
||||
private Map<String, Object> twiceModified;
|
||||
|
||||
private List<Object> zLists;
|
||||
|
||||
@JsonProperty("ParentPlat")
|
||||
private String parentPlat;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 火力规则输出中 Groups 数组的单项
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleSceneGroupNodeVO {
|
||||
|
||||
private Number allAngle;
|
||||
|
||||
private String drawName;
|
||||
|
||||
private List<Object> editPermission;
|
||||
|
||||
private String groupType;
|
||||
|
||||
private String id;
|
||||
|
||||
private String idKey;
|
||||
|
||||
private Boolean isSelected;
|
||||
|
||||
private Boolean isShow;
|
||||
|
||||
private String leader;
|
||||
|
||||
private String name;
|
||||
|
||||
private String parentId;
|
||||
|
||||
private List<String> permission;
|
||||
|
||||
private Boolean show;
|
||||
|
||||
private Long sort;
|
||||
|
||||
private List<FireRuleWingmanDataVO> wingmanData;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 火力规则输出中 Tasks 数组的单项(场景树任务节点)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleSceneTaskNodeVO {
|
||||
|
||||
private String color;
|
||||
|
||||
private String dataType;
|
||||
|
||||
private String drawName;
|
||||
|
||||
private String groupType;
|
||||
|
||||
private String id;
|
||||
|
||||
private String idKey;
|
||||
|
||||
private Boolean isSelected;
|
||||
|
||||
private String name;
|
||||
|
||||
private String parentId;
|
||||
|
||||
private List<String> permission;
|
||||
|
||||
private Boolean show;
|
||||
|
||||
private String side;
|
||||
|
||||
private Long sort;
|
||||
|
||||
private FireRuleSceneTaskPayloadVO task;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 场景任务节点中的内层 task 对象
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleSceneTaskPayloadVO {
|
||||
|
||||
@JsonProperty("at_time")
|
||||
private String atTime;
|
||||
|
||||
private String attackId;
|
||||
|
||||
private String color;
|
||||
|
||||
private String departureAirport;
|
||||
|
||||
private List<FireRuleExecuteBlockVO> execute;
|
||||
|
||||
private String landAirport;
|
||||
|
||||
private List<FireRuleMissionListItemVO> missionList;
|
||||
|
||||
private String name;
|
||||
|
||||
private String side;
|
||||
|
||||
private String sideId;
|
||||
|
||||
private Integer speed;
|
||||
|
||||
private String type;
|
||||
|
||||
private String weaponId;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 目标项中的到达时间开关与取值
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleTargetAttTimeVO {
|
||||
|
||||
/**
|
||||
* 时间上限是否为真
|
||||
*/
|
||||
private Boolean timeUp;
|
||||
|
||||
/**
|
||||
* 时间值
|
||||
*/
|
||||
private Number value;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 单条火力规则任务输出(相对输入增加防区坐标)
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleTaskInputVO {
|
||||
|
||||
/**
|
||||
* 任务唯一标识
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
private String drawName;
|
||||
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
private String dataType;
|
||||
|
||||
/**
|
||||
* 任务所属阵营
|
||||
*/
|
||||
private String side;
|
||||
|
||||
/**
|
||||
* 航迹所属实体或阵营标识
|
||||
*/
|
||||
private String trackPointsId;
|
||||
|
||||
/**
|
||||
* 任务航迹点列表
|
||||
*/
|
||||
private List<FireRuleTrackPointVO> trackPoints;
|
||||
|
||||
/**
|
||||
* 任务武器配置列表
|
||||
*/
|
||||
private List<FireRuleTaskWeaponVO> taskWeapons;
|
||||
|
||||
/**
|
||||
* 任务目标 id
|
||||
*/
|
||||
private String targetId;
|
||||
|
||||
/**
|
||||
* 作战区经纬高坐标列表
|
||||
*/
|
||||
private List<FireRuleCoordinateVO> warZoneLocation;
|
||||
|
||||
/**
|
||||
* 防区经纬高坐标列表
|
||||
*/
|
||||
private List<FireRuleCoordinateVO> defZoneLocation;
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务挂载的武器配置
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleTaskWeaponVO {
|
||||
|
||||
/**
|
||||
* 装备 id(武器唯一标识)
|
||||
*/
|
||||
private String equipmentId;
|
||||
|
||||
/**
|
||||
* 装备名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 装备类型编码
|
||||
*/
|
||||
private String supportType;
|
||||
|
||||
/**
|
||||
* 装备组件列表
|
||||
*/
|
||||
private List<FireRuleWeaponComponentVO> components;
|
||||
|
||||
/**
|
||||
* 装备部署位置
|
||||
*/
|
||||
private FireRuleCoordinateVO coordinate;
|
||||
|
||||
/**
|
||||
* 武器数量;可为数值或业务文案(如「最大载弹量」)
|
||||
*/
|
||||
private Object number;
|
||||
|
||||
/**
|
||||
* 该武器打击目标 id
|
||||
*/
|
||||
private String targetId;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 任务航迹点
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleTrackPointVO {
|
||||
|
||||
/**
|
||||
* 航迹点序号
|
||||
*/
|
||||
private Integer index;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Double longitude;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Double latitude;
|
||||
|
||||
/**
|
||||
* 高度
|
||||
*/
|
||||
private Double height;
|
||||
|
||||
/**
|
||||
* 速度
|
||||
*/
|
||||
private Double speed;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务武器下的设备组件
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleWeaponComponentVO {
|
||||
|
||||
/**
|
||||
* 设备 id
|
||||
*/
|
||||
private String deviceId;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
private String deviceName;
|
||||
|
||||
/**
|
||||
* 组件参数列表
|
||||
*/
|
||||
private List<FireRuleComponentParamVO> componentParams;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.solution.rule.domain.ultimately.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 编组中的僚机相对参数
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class FireRuleWingmanDataVO {
|
||||
|
||||
private Integer alt;
|
||||
|
||||
private String angle;
|
||||
|
||||
private Integer distance;
|
||||
|
||||
private Integer key;
|
||||
|
||||
private String name;
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import com.solution.rule.domain.FireRuleExecuteDTO;
|
||||
import com.solution.rule.domain.Platform;
|
||||
import com.solution.rule.domain.PlatformComponent;
|
||||
import com.solution.rule.domain.simplerulepojo.Task;
|
||||
import com.solution.rule.domain.ultimately.dto.FireRuleInputDTO;
|
||||
import com.solution.rule.domain.ultimately.vo.FireRuleOutputVO;
|
||||
import com.solution.rule.domain.vo.PlatformComponentNamesVO;
|
||||
import com.solution.rule.domain.vo.PlatformWeaponAggregateVO;
|
||||
|
||||
@@ -58,4 +60,11 @@ public interface FireRuleService {
|
||||
* @return
|
||||
*/
|
||||
Task executeTask(Task task);
|
||||
|
||||
/**
|
||||
* 火力规则
|
||||
* @param task
|
||||
* @return
|
||||
*/
|
||||
FireRuleOutputVO rule(FireRuleInputDTO task);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,10 @@ import com.solution.rule.domain.*;
|
||||
import com.solution.rule.domain.dto.WeaponModelDTO;
|
||||
import com.solution.rule.domain.simplerulepojo.Task;
|
||||
import com.solution.rule.domain.simplerulepojo.Weapon;
|
||||
import com.solution.rule.domain.simplerulepojo.fact.FactTask;
|
||||
import com.solution.rule.domain.ultimately.dto.FireRuleInputDTO;
|
||||
import com.solution.rule.domain.ultimately.dto.FireRuleTaskInputDTO;
|
||||
import com.solution.rule.domain.ultimately.vo.FireRuleOutputVO;
|
||||
import com.solution.rule.domain.vo.ComponentCountVO;
|
||||
import com.solution.rule.domain.vo.PlatformComponentNamesVO;
|
||||
import com.solution.rule.domain.vo.PlatformWeaponAggregateVO;
|
||||
@@ -19,13 +23,11 @@ import com.solution.rule.simpstrategy.FireRuleStrategyFactory;
|
||||
import com.solution.rule.strategy.SceneStrategy;
|
||||
import com.solution.rule.strategy.SceneStrategyFactory;
|
||||
import org.kie.api.KieBase;
|
||||
import org.kie.api.runtime.KieSession;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@@ -186,6 +188,32 @@ public class FireRuleServiceImpl implements FireRuleService {
|
||||
return task;
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行任务
|
||||
* @param task
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public FireRuleOutputVO rule(FireRuleInputDTO task) {
|
||||
if(ObjectUtil.isEmpty(task)){
|
||||
throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION);
|
||||
}
|
||||
List<FireRuleTaskInputDTO> tasks = task.getTasks();
|
||||
if(CollUtil.isEmpty( tasks)){
|
||||
throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION);
|
||||
}
|
||||
KieSession kieSession = kieBase.newKieSession();
|
||||
Map<String, Object> globalParams = new HashMap<>();
|
||||
kieSession.setGlobal("globalParams", globalParams);
|
||||
for (FireRuleTaskInputDTO fireRuleTaskInputDTO : tasks) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
FireRuleOutputVO FireRuleOutputVO = new FireRuleOutputVO();
|
||||
return FireRuleOutputVO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有组件以及数量
|
||||
* @return
|
||||
|
||||
Reference in New Issue
Block a user