Browse Source

Merge branch 'dev' of http://106.13.50.125:13000/yuanqiang/dk_cloud_drone into dev

# Conflicts:
#	dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
pull/7/head
杨威 3 weeks ago
parent
commit
b3daa33494
  1. 11
      dk-api/api-system/src/main/java/org/dromara/system/api/RemoteSubmailConfigService.java
  2. 549
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/ErrorCodeEnum.java
  3. 2
      dk-common/common-mybatis/src/main/resources/common-mybatis.yml
  4. 2
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  5. 36
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java
  6. 59
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java
  7. 57
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessLayerBo.java
  8. 56
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java
  9. 8
      dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java
  10. 16
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessLayerMapper.java
  11. 22
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessLayerService.java
  12. 58
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  13. 47
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java
  14. 11
      dk-modules/business/src/main/resources/mapper/business/BusinessLayerMapper.xml
  15. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java
  16. 4
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java
  17. 2
      dk-modules/system/src/main/java/org/dromara/system/DKSystemApplication.java
  18. 10
      dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java
  19. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/SysUser.java
  20. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java
  21. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
  22. 39
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteSubmailConfigServiceImpl.java
  23. 4
      dk-modules/system/src/main/java/org/dromara/system/service/ISysSubmailConfigService.java
  24. 1
      dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java
  25. 74
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysSubmailConfigServiceImpl.java
  26. 8
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  27. 2
      dk-modules/system/src/main/resources/mapper/system/SysUserMapper.xml
  28. 4
      dk-visual/nacos/src/main/resources/application.properties

11
dk-api/api-system/src/main/java/org/dromara/system/api/RemoteSubmailConfigService.java

@ -3,6 +3,10 @@ package org.dromara.system.api;
import org.dromara.common.core.domain.R;
import org.dromara.system.api.domain.vo.RemoteClientVo;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 客户端服务
*
@ -17,4 +21,11 @@ public interface RemoteSubmailConfigService {
*/
R<String> remoteCmdSend(String code, String multiParam );
/**
* @param code 编码
* @param alertList 预警信息
* @return 客户端对象
*/
void remoteSend(String code,List<Map<String, Object>> alertList);
}

549
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/ErrorCodeEnum.java

@ -0,0 +1,549 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.common.IErrorInfo;
import org.dromara.common.sdk.mqtt.events.IEventsErrorCode;
import org.dromara.common.sdk.mqtt.services.IServicesErrorCode;
import java.util.Arrays;
/**
* @author sean.zhou
* @version 0.1
* @date 2021/11/25
*/
public enum ErrorCodeEnum implements IServicesErrorCode, IEventsErrorCode, IErrorInfo {
// 设备升级相关 (312xxx)
DEVICE_UPGRADING(312014, "设备升级中,请勿重复操作"),
BUSY_AIRPORT_UPGRADE(312015, "机场:{dock_org_name} 业务繁忙无法进行设备升级,请等待机场处于空闲中后再试"),
UPGRADE_LINK_FAILURE(312016, "升级失败,机场和飞行器图传链路异常,请重启机场和飞行器后重试"),
AIRCRAFT_BOOT_FAILURE(312022, "飞行器开机失败或未连接,请检查飞行器是否在舱内,是否安装电池,机场和飞行器是否已对频"),
PUSH_ROD_CLOSE_FAILURE(312023, "推杆闭合失败无法升级飞行器,请检查急停按钮是否被按下,推杆是否有异物卡住"),
AIRCRAFT_NOT_DETECTED_UPGRADE(312027, "升级失败,机场未检测到飞行器"),
DEVICE_REBOOTED_DURING_UPGRADE(312028, "升级失败,设备升级过程中设备被重启"),
DEVICE_REBOOTING_UPGRADE(312029, "设备重启中无法进行设备升级,请等待设备重启完成后重试"),
ENHANCED_TRANSMISSION_ON(312030, "升级失败,飞行器增强图传开启后无法升级,请关闭飞行器增强图传后重试"),
LOW_BATTERY_UPGRADE(312704, "设备电量过低,请充电至20%以上后重试"),
// 设备操作相关 (314xxx)
OPERATION_NOT_SUPPORTED(314000, "设备当前无法支持该操作,建议检查设备当前工作状态"),
FLIGHT_TASK_FAILED_1(314001, "飞行任务下发失败,请稍后重试"),
FLIGHT_TASK_FAILED_2(314002, "飞行任务下发失败,请稍后重试"),
INCOMPATIBLE_ROUTE_FORMAT(314003, "航线文件格式不兼容,请检查航线文件是否正确"),
FLIGHT_TASK_FAILED_3(314005, "飞行任务下发失败,请稍后重试或重启机场后重试"),
AIRCRAFT_INIT_FAILURE_1(314006, "飞行器初始化失败,请重启机场后重试"),
ROUTE_TRANSFER_FAILURE(314007, "机场传输航线至飞行器失败,请重启机场后重试"),
PREFLIGHT_TIMEOUT(314008, "飞行器起飞前准备超时,请重启机场后重试"),
AIRCRAFT_INIT_FAILURE_2(314009, "飞行器初始化失败,请重启机场后重试"),
ROUTE_EXECUTION_FAILURE(314010, "航线执行失败,请重启机场后重试"),
TASK_RESULT_UNAVAILABLE(314011, "机场系统异常,无法获取飞行任务执行结果"),
PREFLIGHT_FAILURE_1(314012, "飞行器起飞前准备失败,无法执行飞行任务,请重启机场后重试"),
ROUTE_UNAVAILABLE(314013, "飞行任务下发失败,机场无法获取到本次飞行任务的航线,无法执行飞行任务,请稍后重试"),
TASK_EXECUTION_FAILURE_1(314014, "机场系统异常,飞行任务执行失败,请稍后重试"),
PRECISION_ROUTE_TRANSFER_FAILURE(314015, "机场传输精准复拍航线至飞行器失败,无法执行飞行任务,请稍后重试或重启机场后重试"),
ROUTE_PARSE_FAILURE_1(314016, "航线文件解析失败,无法执行飞行任务,请检查航线文件"),
ROUTE_PARSE_FAILURE_2(314017, "航线文件解析失败,请检查航线后再试"),
RTK_ABNORMAL_1(314018, "飞行器 RTK 定位异常,无法执行飞行任务,请稍后重试或重启机场后重试"),
RTK_CONVERGENCE_FAILURE_1(314019, "飞行器 RTK 收敛失败,无法执行飞行任务,请稍后重试或重启机场后重试"),
AIRCRAFT_POSITION_ORIENTATION(314020, "飞行器不在停机坪正中间或飞行器朝向不正确,无法执行飞行任务,请检查飞行器位置和朝向"),
RTK_ABNORMAL_2(314021, "飞行器 RTK 定位异常,无法执行飞行任务,请稍后重试或重启机场后重试"),
APPROACH_DEPARTURE_ROUTE_FAILURE_1(314024, "进离场航线下发失败,请稍后重试或重启机场后重试"),
RTK_CONVERGENCE_TIMEOUT(314025, "RTK收敛超时,用户手动取消任务"),
NETWORK_DISCONNECTED(314200, "任务失败,由于机场网络断开,飞行器已自动返航,请确保机场已连接网络后再试"),
// 机场通信相关 (315xxx)
AIRPORT_COMMUNICATION_FAILURE_1(315000, "机场通信异常,请重启机场后重试"),
AIRPORT_COMMUNICATION_FAILURE_2(315001, "机场通信异常,请远程开启飞机并等待 1min 后,再次下发任务重试"),
AIRPORT_COMMUNICATION_FAILURE_3(315002, "机场通信异常,请重启机场后重试"),
AIRPORT_COMMUNICATION_FAILURE_4(315003, "机场通信异常,请重启机场后重试"),
BOTH_AIRPORTS_BUSY(315004, "任务失败,请等待两个机场都空闲后,再次下发任务重试"),
AIRPORT_COMMUNICATION_FAILURE_5(315005, "机场通信异常,请重启机场后重试"),
AIRPORT_COMMUNICATION_FAILURE_6(315006, "机场通信异常,请重启机场后重试"),
AIRPORT_COMMUNICATION_FAILURE_7(315007, "机场通信异常,请将机场升级到最新版本或重启机场后重试"),
CALIBRATION_MISMATCH(315008, "降落机场和起飞机场标定信息不一致,请确认两个机场均链路通畅且使用了相同的网络信息标定"),
AIRPORT_COMMUNICATION_FAILURE_8(315009, "机场通信异常,请重启机场后重试"),
CANNOT_STOP_TASK_1(315010, "无法停止飞行任务,请稍后重试,如果仍报错请联系大疆售后"),
CANNOT_STOP_TASK_2(315011, "无法停止飞行任务,请稍后重试,如果仍报错请联系大疆售后"),
CANNOT_STOP_TASK_3(315012, "无法停止飞行任务,请稍后重试,如果仍报错请联系大疆售后"),
FLIGHT_TASK_FAILED_4(315013, "飞行任务下发失败,请稍后重试,如果仍报错请联系大疆售后"),
RETURN_POINT_NOT_SUPPORTED(315014, "当前任务类型不支持设置返航点"),
RETURN_POINT_SET_FAILURE(315015, "返航点设置失败,请稍后重试,如果仍报错请联系大疆售后"),
FLIGHT_TASK_FAILED_5(315016, "飞行任务下发失败,请稍后重试,如果仍报错请联系大疆售后"),
FLIGHT_TASK_FAILED_6(315017, "飞行任务下发失败,请稍后重试,如果仍报错请联系大疆售后"),
BOTH_AIRPORTS_BUSY_2(315018, "任务失败,请等待两个机场都空闲后,再次下发任务重试"),
POOR_DEPLOYMENT_LOCATION(315019, "设备部署位置不佳,无法执行蛙跳任务,请选择其它机场再试"),
AIRPORT_SYSTEM_ERROR_1(315050, "机场系统异常,请重启机场后重试"),
TASK_FAILED_1(315051, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
AIRPORT_POSITION_NOT_CONVERGED(315052, "机场位置未收敛,请等待一段时间后重试"),
TASK_FAILED_2(315053, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_3(315054, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_4(315055, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_5(315056, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_6(315057, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_7(315058, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_8(315059, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_9(315060, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_10(315061, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_11(315062, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_12(315063, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_13(315064, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
TASK_FAILED_14(315065, "任务失败,请重启机场并再次下发任务后重试,如果仍报错请联系大疆售后"),
// 飞行器参数配置相关 (316xxx)
AIRCRAFT_PARAM_CONFIG_FAILURE_1(316001, "飞行器参数配置失败,请重启机场后重试"),
AIRCRAFT_PARAM_CONFIG_FAILURE_2(316002, "飞行器参数配置失败,请重启机场后重试"),
AIRCRAFT_PARAM_CONFIG_FAILURE_3(316003, "飞行器参数配置失败,请重启机场后重试"),
AIRCRAFT_PARAM_CONFIG_FAILURE_4(316004, "飞行器参数配置失败,请重启机场后重试"),
RTK_CONVERGENCE_FAILURE_2(316005, "飞行器 RTK 收敛失败,无法执行飞行任务,请重启机场后重试"),
TASK_TIMEOUT_1(316006, "任务超时,飞行器已丢失或降落时机场未开启舱盖或展开推杆,飞行器无法降落回机场,请尽快至机场部署现场检查飞行器状况"),
AIRCRAFT_INIT_FAILURE_3(316007, "飞行器初始化失败,请重启机场后重试"),
CONTROL_AUTHORITY_FAILURE_1(316008, "机场获取飞行器控制权失败,无法执行飞行任务,请确认遥控器未锁定控制权"),
LOW_BATTERY_1(316009, "飞行器电量低于30%,无法执行飞行任务,请充电后重试(建议电量≥50%)"),
AIRCRAFT_NOT_DETECTED_1(316010, "机场未检测到飞行器,无法执行飞行任务,请检查舱内是否有飞行器,机场与飞行器是否已对频,或重启机场后重试"),
LANDING_POSITION_OFFSET(316011, "飞行器降落位置偏移过大,请检查飞行器是否需要现场摆正"),
PREFLIGHT_FAILURE_2(316012, "飞行器起飞前准备失败,无法执行飞行任务,请重启机场后重试"),
PREFLIGHT_FAILURE_3(316013, "飞行器起飞前准备失败,无法执行飞行任务,请重启机场后重试"),
PREFLIGHT_FAILURE_4(316014, "飞行器起飞前准备失败,无法执行飞行任务,请重启机场后重试"),
RTK_POSITION_TOO_FAR(316015, "飞行器 RTK 收敛位置距离机场过远,无法执行飞行任务,请重启机场后重试"),
LANDING_TIMEOUT(316016, "飞行器降落至机场超时,可能是机场与飞行器断连导致,请通过直播查看飞行器是否降落至舱内"),
MEDIA_COUNT_TIMEOUT(316017, "获取飞行器媒体数量超时,可能是机场与飞行器断连导致,请通过直播查看飞行器是否降落至舱内"),
TASK_EXECUTION_TIMEOUT_1(316018, "飞行任务执行超时,可能是机场与飞行器断连导致,请通过直播查看飞行器是否降落至舱内"),
AIRPORT_SYSTEM_ERROR_2(316019, "机场系统错误,无法执行飞行任务,请稍后重试"),
RTK_SOURCE_ERROR(316020, "飞行器使用的 RTK 信号源错误,请稍后重试"),
RTK_SOURCE_CHECK_TIMEOUT(316021, "飞行器 RTK 信号源检查超时,请稍后重试"),
RETURN_COMMAND_FAILURE_1(316022, "飞行器无法执行返航指令,请检查飞行器是否已开机,机场与飞行器是否已断连,请确认无以上问题后重试"),
RETURN_COMMAND_FAILURE_2(316023, "飞行器无法执行返航指令,飞行器已被 B 控接管,请在 B 控操控飞行器,或关闭 B 控后重试"),
RETURN_COMMAND_FAILURE_3(316024, "飞行器执行返航指令失败,请检查飞行器是否已起飞,确认飞行器已起飞后请重试"),
AIRCRAFT_PARAM_CONFIG_FAILURE_5(316025, "飞行器参数配置失败,请稍后重试或重启机场后重试"),
EMERGENCY_BUTTON_PRESSED_1(316026, "机场急停按钮被按下,无法执行飞行任务,请释放急停按钮后重试"),
PARAM_CONFIG_TIMEOUT(316027, "飞行器参数配置超时,请稍后重试或重启机场后重试"),
EMERGENCY_LANDING(316029, "机场急停按钮被按下,飞行器将飞往备降点降落,请立即检查飞行器是否已安全降落并将飞行器放回至机场"),
BATTERY_DATA_TIMEOUT(316032, "获取电池数据超时,请稍后重试或重启飞行器后重试"),
HIGH_BATTERY_CYCLE(316033, "飞行器电池循环次数过高,为保证飞行安全,已自动终止任务,建议更换该电池"),
FIRMWARE_MISMATCH(316034, "无法起飞,飞行器固件版本与机场固件版本不匹配,为保证飞行安全请升级固件后再试"),
APPROACH_DEPARTURE_ROUTE_FAILURE_2(316035, "进离场航线下发失败,请确保设备固件为最新版本后重新下发任务,如果持续报错,请联系大疆售后"),
LOW_BATTERY_LANDING(316050, "飞行器因电量过低在舱外降落,请立即检查飞行器是否已安全降落并将飞行器放回至机场"),
ABNORMAL_LANDING_1(316051, "飞行任务异常,飞行器在舱外降落,请立即检查飞行器是否已安全降落并将飞行器放回至机场"),
ABNORMAL_LANDING_2(316052, "飞行任务异常,飞行器将飞往备降点降落,请立即检查飞行器是否已安全降落并将飞行器放回至机场"),
MANUAL_LANDING(316053, "用户已操控飞行器降落,请立即检查飞行器是否已安全降落并将飞行器放回至机场"),
// 相机相关 (3161xx)
CAMERA_SUMMARY_FAILURE(316100, "获取相机概要信息失败,请重试"),
SINGLE_SHOT_MODE_FAILURE(316101, "设置相机为单拍模式失败,请重试"),
WATERMARK_CLOSE_FAILURE(316102, "关闭相机水印失败,请重试"),
METERING_MODE_FAILURE(316103, "设置测光模式到平均测光失败,请重试"),
LENS_SWITCH_FAILURE(316104, "切换镜头到广角镜头失败,请重试"),
PHOTO_STORAGE_FAILURE(316105, "设置相机存储照片失败,请重试"),
IR_ZOOM_FAILURE(316106, "红外变焦倍数设置失败,请重试"),
PHOTO_SIZE_FAILURE(316107, "照片尺寸设置4k失败,请重试"),
PHOTO_FORMAT_FAILURE(316108, "设置照片存储格式为jpeg格式失败,请重试"),
DISTORTION_CORRECTION_FAILURE(316109, "关闭相机畸变矫正失败,请重试"),
MECHANICAL_SHUTTER_FAILURE(316110, "打开相机机械快门失败,请重试"),
FOCUS_MODE_FAILURE(316111, "设置对焦模式失败,请重试"),
// 媒体文件相关 (317xxx)
MEDIA_COUNT_FAILURE(317001, "获取飞行器媒体文件数量失败,请重启机场后重试"),
STORAGE_FORMAT_FAILURE_1(317002, "飞行器存储格式化失败,飞行器未开机、未连接或未检测到相机,请确认无以上问题后重试,或重启飞行器后重试"),
STORAGE_FORMAT_FAILURE_2(317003, "飞行器存储格式化失败,请重启飞行器后重试"),
AIRPORT_STORAGE_FORMAT_FAILURE(317004, "机场媒体文件格式化失败,请稍后重试或重启机场后重试"),
STOP_RECORDING_FAILURE_1(317005, "飞行器结束录像失败,本次飞行任务的媒体文件可能无法上传"),
CANNOT_FORMAT(317006, "无法格式化,请等待当前飞行器媒体文件下载完成后再试"),
MEDIA_COUNT_FAILURE_2(317007, "获取媒体文件数量失败,请稍后重试,如本架次任务有媒体文件且持续报错可联系大疆售后"),
// 系统运行相关 (319xxx)
AIRPORT_BUSY_1(319001, "机场作业中或设备异常反馈上传日志中,无法执行飞行任务,请等待当前飞行任务或操作执行完成后重试"),
AIRPORT_SYSTEM_ERROR_3(319002, "机场系统运行异常,请重启机场后重试"),
AIRPORT_SYSTEM_ERROR_4(319003, "机场系统运行异常,请重新下发任务"),
TASK_TIMEOUT_2(319004, "飞行任务执行超时,已自动终止本次飞行任务"),
CLOUD_COMMUNICATION_FAILURE(319005, "云端与机场通信异常,无法执行飞行任务"),
CANCEL_TASK_FAILURE(319006, "取消飞行任务失败,飞行任务已经在执行中"),
MODIFY_TASK_FAILURE(319007, "修改飞行任务失败,飞行任务已经在执行中"),
TIME_NOT_SYNCED(319008, "机场时间与云端时间不同步,机场无法执行飞行任务"),
FLIGHT_TASK_FAILED_7(319009, "飞行任务下发失败,请稍后重试或重启机场后重试"),
OLD_FIRMWARE(319010, "机场固件版本过低,无法执行飞行任务,请升级机场固件为最新版本后重试"),
AIRPORT_INITIALIZING(319015, "机场正在初始化中,无法执行飞行任务,请等待机场初始化完成后重试"),
ANOTHER_TASK_RUNNING(319016, "机场正在执行其他飞行任务,无法执行本次飞行任务"),
PROCESSING_MEDIA(319017, "机场正在处理上次飞行任务媒体文件,无法执行本次飞行任务,请稍后重试"),
EXPORTING_LOGS(319018, "机场正在自动导出日志中(设备异常反馈),无法执行飞行任务,请稍后重试"),
PULLING_LOGS(319019, "机场正在拉取日志中(设备异常反馈),无法执行飞行任务,请稍后重试"),
ROUTE_INTERRUPT_FAILURE(319020, "航线中断失败,请稍后重试"),
EXIT_REMOTE_CONTROL_FAILURE(319021, "退出远程控制失败,请稍后重试"),
POINT_FLIGHT_FAILURE_1(319022, "指点飞行失败,请稍后重试"),
POINT_FLIGHT_STOP_FAILURE(319023, "指点飞行停止失败,请稍后重试"),
ONE_KEY_TAKEOFF_FAILURE(319024, "一键起飞失败,请稍后重试"),
AIRPORT_NOT_READY(319025, "机场未准备完成,无法执行云端下发的飞行任务,请稍后重试"),
LOW_BATTERY_2(319026, "飞行器电池电量低于用户设置的任务开始执行的电量,请等待充电完成后再执行飞行任务"),
LOW_STORAGE(319027, "机场或飞行器剩余存储容量过低,无法执行飞行任务,请等待媒体文件上传,机场和飞行器存储容量释放后再执行飞行任务"),
UPDATING_FLIGHT_ZONE(319028, "正在更新自定义飞行区"),
UPDATING_OFFLINE_MAP(319029, "正在更新离线地图"),
NO_CONTROL_AUTHORITY(319030, "操作失败,无飞行器控制权"),
CONTROL_AUTHORITY_ERROR(319031, "控制权异常,请刷新重试"),
POINT_FLIGHT_FAILURE_2(319032, "指点飞行失败,请稍后重试"),
VIRTUAL_JOYSTICK_FAILURE_1(319033, "虚拟摇杆操作失败,请稍后重试"),
VIRTUAL_JOYSTICK_FAILURE_2(319034, "虚拟摇杆操作失败,请稍后重试"),
EMERGENCY_STOP_FAILURE(319035, "急停失败,请稍后重试"),
REMOTE_DEBUGGING(319036, "设备远程调试中,请稍后重试"),
LOCAL_DEBUGGING(319037, "设备本地调试中,请稍后重试"),
DEVICE_UPDATING(319038, "设备正在升级,请稍后重试"),
ROUTE_RESUME_FAILURE(319042, "航线恢复失败,请稍后重试"),
CANCEL_RETURN_FAILURE(319043, "取消返航失败,请稍后重试"),
ROUTE_ENDED(319044, "航线任务已结束,无法恢复"),
EMERGENCY_STOP_SUCCESS(319045, "急停成功,请重新按键操作"),
CANNOT_PAUSE_ROUTE(319046, "无法暂停航线,飞行器尚未进入航线或已退出航线"),
AIRPORT_SYSTEM_ERROR_5(319999, "机场系统运行异常,请重启机场后重试"),
// 航线执行相关 (321xxx-322xxx)
ROUTE_EXECUTION_ERROR(321000, "航线执行异常,请稍后重试或重启机场后重试"),
ROUTE_PARSE_FAILURE_3(321004, "航线文件解析失败,无法执行飞行任务,请检查航线文件"),
MISSING_BREAKPOINT(321005, "航线缺少断点信息,机场无法执行飞行任务"),
TASK_ALREADY_RUNNING(321257, "飞行任务已在执行中,请勿重复执行"),
CANNOT_TERMINATE_TASK(321258, "飞行任务无法终止,请检查飞行器状态"),
TASK_NOT_STARTED_1(321259, "飞行任务未开始执行,无法终止飞行任务"),
TASK_NOT_STARTED_2(321260, "飞行任务未开始执行,无法中断飞行任务"),
EXCEED_HEIGHT_LIMIT(321513, "航线规划高度已超过飞行器限高,机场无法执行飞行任务"),
EXCEED_DISTANCE_LIMIT(321514, "任务失败,起点或终点位于限远区域的缓冲区内或超过了限远距离"),
FLY_ZONE_VIOLATION(321515, "航线穿过限飞区,机场无法执行飞行任务"),
TOO_LOW_ALTITUDE(321516, "飞行器飞行高度过低,飞行任务执行被终止"),
OBSTACLE_AVOIDANCE(321517, "飞行器触发避障,飞行任务执行被终止。为保证飞行安全,请勿用当前航线执行断点续飞任务"),
NEAR_FLY_ZONE(321519, "飞行器接近限飞区或限远距离自动返航,无法完成航线飞行"),
TAKEOFF_FAILURE_1(321523, "飞行器起飞失败,请稍后重试,如果仍报错请联系大疆售后"),
PREFLIGHT_FAILURE_5(321524, "飞行器起飞前准备失败,可能是飞行器无法定位或档位错误导致,请检查飞行器状态"),
CUSTOM_FLY_ZONE_BOUNDARY(321528, "触碰自定义飞行区边界,航线任务已暂停"),
TARGET_IN_NO_FLY_ZONE(321529, "目标点位于禁飞区域或者障碍物内,无法到达,航线任务已暂停,请重新规划后再试"),
TRAJECTORY_PLANNING_FAILURE(321530, "飞行器飞行航线过程中轨迹规划失败,航线任务已暂停"),
APPROACH_DEPARTURE_FAILURE_1(321531, "进离场航线执行失败,请联系大疆售后"),
APPROACH_DEPARTURE_FAILURE_2(321532, "进离场航线执行失败,请联系大疆售后"),
APPROACH_DEPARTURE_FAILURE_3(321533, "进离场航线执行失败,请联系大疆售后"),
POOR_GPS_SIGNAL(321769, "飞行器卫星定位信号差,无法执行飞行任务,请重启机场后重试"),
WRONG_GEAR(321770, "飞行器挡位错误,无法执行飞行任务,请重启机场后重试"),
NO_RETURN_POINT(321771, "飞行器返航点未设置,无法执行飞行任务,请重启机场后重试"),
LOW_BATTERY_3(321772, "飞行器电量低于30%,无法执行飞行任务,请充电后重试(建议电量≥50%)"),
LOW_BATTERY_RETURN(321773, "飞行器执行飞行任务过程中低电量返航,无法完成航线飞行"),
DISCONNECTED_IN_FLIGHT(321775, "飞行器航线飞行过程中失联,无法完成航线飞行"),
RTK_CONVERGENCE_FAILURE_3(321776, "飞行器 RTK 收敛失败,无法执行飞行任务,请重启机场后重试"),
NOT_HOVERING(321777, "飞行器未悬停,无法开始执行飞行任务"),
B_CONTROL_INTERFERENCE(321778, "用户使用 B 控操控飞行器起桨,机场无法执行飞行任务"),
STRONG_WIND_RETURN(321784, "任务过程中遇到大风紧急返航"),
MANUAL_INTERRUPTION(322281, "任务失败,机场执行飞行任务过程被手动打断或异常终止"),
CONTROL_TAKEOVER(322282, "机场执行飞行任务过程中被中断,飞行器被云端用户或遥控器接管"),
USER_TRIGGERED_RETURN(322283, "机场执行飞行任务过程中被用户触发返航,无法完成航线飞行"),
INVALID_BREAKPOINT(322539, "航线的断点信息错误,机场无法执行飞行任务"),
TRAJECTORY_GENERATION_FAILURE(322563, "航线轨迹生成失败,请检查飞行器视觉镜头是否存在脏污或重启飞行器后再试,如果仍报错请联系大疆售后"),
// 日志相关 (324xxx)
LOG_COMPRESS_TIMEOUT(324012, "日志压缩过程超时,所选日志过多,请减少选择的日志后重试"),
LOG_LIST_FAILURE(324013, "设备日志列表获取失败,请稍后重试"),
EMPTY_LOG_LIST(324014, "设备日志列表为空,请刷新页面或重启机场后重试"),
AIRCRAFT_OFFLINE(324015, "飞行器已关机或未连接,无法获取日志列表,请确认飞行器在舱内,通过远程调试将飞行器开机后重试"),
LOW_STORAGE_SPACE(324016, "机场存储空间不足,日志压缩失败,请清理机场存储空间或稍后重试"),
LOG_COMPRESS_FAILURE(324017, "日志压缩失败,无法获取所选飞行器日志,请刷新页面或重启机场后重试"),
LOG_FETCH_FAILURE(324018, "日志文件拉取失败,导致本次设备异常反馈上传失败,请稍后重试或重启机场后重试"),
LOG_UPLOAD_FAILURE(324019, "因机场网络异常,日志上传失败,请稍后重试。如果连续多次出现该问题,请联系代理商或大疆售后进行网络排障"),
LOG_EXPORT_INTERRUPTED(324021, "因机场断电或重启导致日志导出中断,日志导出失败,请稍后重试"),
MEDIA_UPLOAD_ISSUE(324030, "因机场网络异常、飞行器图传链路异常等原因,媒体文件暂时无法上传或文件已上传但云端读取失败"),
// 云端命令相关 (325xxx)
INVALID_CLOUD_COMMAND(325001, "云端下发命令不符合格式要求,设备无法执行"),
COMMAND_RESPONSE_FAILURE(325003, "指令响应失败,请重试"),
COMMAND_TIMEOUT(325004, "设备端命令请求已超时,请重试"),
AIRPORT_UNAVAILABLE(325005, "当前机场无法响应任务,请稍后重试"),
AIRPORT_STARTING(325006, "当前机场启动检查中,请稍后重试"),
AIRPORT_BUSY_2(325007, "当前机场执行作业任务中,请稍后重试"),
PROCESSING_RESULTS(325008, "当前机场处理作业任务结果中,请稍后重试"),
REMOTE_LOG_EXPORT(325009, "当前机场执行远程日志导出中,请稍后重试"),
UPDATING_FLIGHT_ZONE_2(325010, "当前机场更新自定义飞行区中,请稍后重试"),
UPDATING_OFFLINE_MAP_2(325011, "当前机场更新离线地图中,请稍后重试"),
AIRCRAFT_DISCONNECTED(325012, "当前飞机未连接,请稍后重试"),
// DJI蜂窝模块相关 (326xxx)
AIRCRAFT_NO_DONGLE(326002, "飞行器未安装 DJI Cellular 模块"),
AIRCRAFT_DONGLE_NO_SIM(326003, "飞行器 DJI Cellular 模块中未安装 SIM 卡"),
AIRCRAFT_DONGLE_NEED_UPGRADE(326004, "飞行器 DJI Cellular 模块需要强制升级,否则无法使用"),
ENHANCED_TRANSMISSION_FAILURE(326005, "操作失败,增强图传无法建立连接,请检查 4G 信号强度,或咨询运营商查询套餐流量和 APN 设置"),
SDR_SWITCH_FAILURE(326006, "增强图传开关切换失败,请稍后重试"),
WRONG_COMMAND_FORMAT(326007, "命令格式错误"),
DOCK_NO_DONGLE(326008, "机场未安装 DJI Cellular 模块"),
DOCK_DONGLE_NO_SIM(326009, "机场 DJI Cellular 模块中未安装 SIM 卡"),
DOCK_DONGLE_NEED_UPGRADE(326010, "机场 DJI Cellular 模块需要强制升级,否则无法使用"),
ESIM_ACTIVATING(326103, "当前 eSIM 正在激活中,请稍后再试"),
ESIM_SWITCHING(326104, "当前 eSIM 正在切换运营商中,请稍后再试"),
ENHANCED_TRANSMISSION_SWITCHING(326105, "DJI 增强图传模块正在切换模式中,请稍后再试"),
ENHANCED_TRANSMISSION_ERROR(326106, "DJI 增强图传模块异常,请重启设备后再试,如果仍报错请联系大疆售后"),
ACTIVATE_ESIM_OR_INSERT_SIM(326107, "请在设备管理 > 机场 > 设备运维中激活DJI增强图传模块的 eSIM 或插入 SIM 卡后再试"),
// 相机控制相关 (327xxx)
PARAM_SET_FAILURE_1(327000, "参数设置失败,请稍后重试"),
PARAM_SET_FAILURE_2(327001, "参数设置失败,请稍后重试"),
CONTROL_AUTHORITY_FAILURE_2(327002, "获取控制权失败,请稍后重试"),
CONTROL_AUTHORITY_FAILURE_3(327003, "获取控制权失败,请稍后重试"),
VIEW_DRAG_FAILURE(327004, "画面拖动失败,请重试"),
DOUBLE_CLICK_CENTER_FAILURE(327005, "双击画面归中失败"),
TAKE_PHOTO_FAILURE(327006, "拍照失败"),
START_RECORDING_FAILURE(327007, "开始录像失败"),
STOP_RECORDING_FAILURE_2(327008, "停止录像失败"),
CAMERA_MODE_SWITCH_FAILURE(327009, "切换相机模式失败"),
ZOOM_CAMERA_FAILURE(327010, "ZOOM相机变焦失败"),
IR_CAMERA_ZOOM_FAILURE(327011, "IR相机变焦失败"),
CONTROL_AUTHORITY_FAILURE_4(327012, "获取控制权失败,请稍后重试"),
PARAM_SET_FAILURE_3(327013, "参数设置失败,请稍后重试"),
GIMBAL_LIMIT(327014, "云台已达限位"),
LIVE_STREAM_FAILURE(327015, "直播启动失败,建议刷新直播或重新打开设备小窗"),
LOST_CONNECTION_ACTION_FAILURE(327016, "失联动作设置失败,请重试"),
POINT_FLIGHT_HEIGHT_FAILURE(327017, "指点飞行高度设置失败,请重试"),
POINT_FLIGHT_MODE_FAILURE(327018, "指点飞行模式切换失败,请重试"),
CANNOT_LOOK_AT_MARKER(327019, "当前状态无法看向标注点"),
PANORAMA_STOP_TIMEOUT(327020, "全景拍照停止命令超时"),
// 音频相关 (32705x-32707x)
AUDIO_NOT_SUPPORTED(327050, "当前设备状态不支持播放音频"),
AUDIO_DOWNLOAD_FAILURE(327051, "下载音频文件失败"),
SPEAKER_MODE_FAILURE(327052, "喊话器处理模式切换失败"),
AUDIO_UPLOAD_FAILURE_1(327053, "上传音频文件失败"),
AUDIO_PLAY_FAILURE(327054, "播放音频失败"),
WORK_MODE_SET_FAILURE(327055, "设置工作模式失败"),
TEXT_UPLOAD_FAILURE(327056, "上传文本失败"),
STOP_PLAYBACK_FAILURE(327057, "停止播放失败"),
PLAYBACK_MODE_FAILURE(327058, "设置播放模式失败"),
VOLUME_SET_FAILURE(327059, "设置音量失败"),
CONTROL_VALUE_FAILURE(327060, "设置控件值失败"),
TEXT_SEND_FAILURE(327061, "发送文本值失败"),
LANGUAGE_SWITCH_FAILURE(327062, "切换系统语言失败"),
FUNCTION_LIST_FAILURE(327063, "获取设备功能列表失败"),
// 文件操作相关 (327064-327075)
GET_CONFIG_FILE_FAILED(327064, "获取设备配置文件失败"),
GET_IMAGE_FILE_FAILED(327065, "获取设备图片文件失败"),
FILE_COMPRESSION_FAILED(327066, "设备文件压缩失败"),
FILE_UPLOAD_FAILED(327067, "设备文件上传失败"),
AUDIO_UPLOAD_MD5_FAILED(327068, "上传音频文件失败,md5校验失败"),
AUDIO_UPLOAD_FAILED(327069, "上传音频文件失败"),
AUDIO_UPLOAD_ABORTED(327070, "上传音频文件失败,异常终止"),
TTS_UPLOAD_MD5_FAILED(327071, "上传TTS文本失败,md5校验失败"),
TTS_UPLOAD_FAILED(327072, "上传TTS文本失败"),
TTS_UPLOAD_ABORTED(327073, "上传TTS文本失败,异常终止"),
SPEAKER_REPLAY_FAILED(327074, "喊话器重播失败"),
SPEAKER_ENCODING_FAILED(327075, "喊话器编码失败"),
// 全景拍照相关 (327201-327221)
PANORAMA_FAILED(327201, "全景拍照失败"),
PANORAMA_TERMINATED(327202, "全景拍摄终止"),
PANORAMA_NOT_SUPPORTED(327203, "当前设备不支持全景拍照"),
PANORAMA_SYSTEM_BUSY(327204, "系统繁忙,无法全景拍照"),
PANORAMA_REQUEST_FAILED(327205, "请求失败,无法全景拍照"),
PANORAMA_NOT_TAKEOFF(327206, "飞机未起飞,无法开始全景拍摄"),
PANORAMA_CONTROL_FAILED(327207, "控制权获取失败,全景拍摄终止"),
PANORAMA_CAMERA_ERROR(327208, "未知相机错误,无法开始全景拍摄"),
PANORAMA_CAMERA_TIMEOUT(327209, "相机超时,全景拍摄终止"),
PANORAMA_UNABLE(327210, "无法全景拍照"),
PANORAMA_STORAGE_FULL(327211, "存储空间不足,全景拍摄终止"),
PANORAMA_AIRCRAFT_MOVING(327212, "飞机运动中,无法开始全景拍摄"),
PANORAMA_GIMBAL_MOVING(327213, "云台运动中,无法开始全景拍摄"),
PANORAMA_JOYSTICK_OPERATED(327214, "用户操作摇杆,全景拍摄终止"),
PANORAMA_NOFLY_ZONE(327215, "碰到限飞区,全景拍摄终止"),
PANORAMA_DISTANCE_LIMIT(327216, "触发距离限制,全景拍摄终止"),
PANORAMA_GIMBAL_OBSTRUCTED(327217, "云台受阻,全景拍摄终止"),
PANORAMA_SHOOT_FAILED(327218, "拍照失败,全景拍摄终止"),
PANORAMA_STITCH_FAILED(327219, "全景图片拼接失败"),
PANORAMA_CALIBRATION_FAILED(327220, "加载标定参数失败,全景拍摄终止"),
PANORAMA_CAMERA_SETTING_FAILED(327221, "调整相机参数失败,全景拍摄终止"),
// 设备维护相关 (327500)
DEFOGGING_FAILED(327500, "飞行器镜头除雾失败,请稍后重试"),
// 实名登记相关 (328051-328052)
AIRCRAFT_NOT_REGISTERED(328051, "飞机未完成实名登记,请连接遥控器,按照指引完成、实名登记后飞行"),
AIRCRAFT_REGISTRATION_CANCELLED(328052, "飞机实名登记状态已注销,请连接遥控器,按照指引完成实名登记后飞行"),
// 指点飞行相关 (336000-336019)
POINT_FLIGHT_COMMAND_FAILED(336000, "指点飞行命令发送失败,请重试"),
AIRCRAFT_DATA_ABNORMAL(336001, "飞行器数据异常,无法响应指令"),
POOR_GPS_SIGNAL_1(336002, "飞行器GPS信号差"),
POSITIONING_FAILED(336003, "飞行器定位失效,无法响应指令"),
POINT_FLIGHT_PLAN_FAILED(336004, "指点飞行自主规划失败"),
RETURN_POINT_NOT_UPDATED(336005, "飞行器返航点未更新"),
POINT_FLIGHT_DISCONNECTED(336006, "飞行器已失联,已退出指点飞行"),
INSUFFICIENT_BATTERY_FOR_TASK(336017, "飞行器电量不足以完成当前任务"),
PLANNING_MODE_CHANGED(336018, "已切换飞行器规划模式"),
ALTITUDE_ADJUSTED(336019, "指点飞行因限高自动调整飞行高度"),
// 飞行限制相关 (336513-336517)
TARGET_IN_NOFLY_ZONE(336513, "目标点在禁飞区内"),
TARGET_EXCEED_DISTANCE_LIMIT(336514, "目标点超出飞行器限远"),
TARGET_IN_RESTRICTED_ZONE(336515, "目标点在禁飞区内"),
TARGET_EXCEED_HEIGHT_LIMIT(336516, "目标点超出飞行器限高"),
TARGET_BELOW_MIN_HEIGHT(336517, "目标点超出飞行器限低"),
// 飞行控制相关 (337025-337030)
TAKEOFF_FAILED(337025, "飞行器无法起飞"),
INVALID_TARGET_POINT(337026, "目标点异常,请重试"),
INVALID_SPEED_SETTING(337027, "飞行器速度设置异常,请重试"),
AIRCRAFT_VERSION_MISMATCH(337028, "飞行器版本异常,请检查飞行器版本"),
AIRCRAFT_UNRESPONSIVE(337029, "飞行器无法响应当前任务,请稍后重试"),
LOW_DEPARTURE_ALTITUDE(337030, "指令飞行安全离场高过低"),
// 飞行边界相关 (337537-337546)
ENTERED_NOFLY_ZONE(337537, "已触碰禁飞区"),
REACHED_DISTANCE_LIMIT(337538, "已触碰飞行器限远"),
ENTERED_RESTRICTED_ZONE(337539, "已触碰禁飞区"),
REACHED_HEIGHT_LIMIT(337540, "已触碰飞行器限高或限高区"),
BELOW_MIN_HEIGHT(337541, "已触碰飞行器限低"),
TAKEOFF_FAILURE(337542, "飞行器起飞失败,请重试"),
TARGET_MAY_IN_OBSTACLE(337543, "目标点可能在障碍物内,请检查周边环境"),
OBSTACLE_DETECTED(337544, "检测到障碍物,请检查周边环境"),
PLANNING_ERROR(337545, "飞行器规划异常,请重试"),
CUSTOM_FLIGHT_ZONE_BOUNDARY(337546, "已触碰自定义飞行区边界"),
// 机场间飞行相关 (338001-338021)
AIRCRAFT_COMMUNICATION_FAILURE_1(338001, "飞行器通信异常,无法执行飞行任务,请重启飞行器与机场后重试"),
AIRCRAFT_COMMUNICATION_FAILURE_2(338002, "飞行器通信异常,无法执行飞行任务,请重启飞行器与机场后重试"),
AIRCRAFT_COMMUNICATION_FAILURE_3(338003, "飞行器通信异常,无法执行飞行任务,请重启飞行器与机场后重试"),
AIRCRAFT_COMMUNICATION_FAILURE_4(338004, "飞行器通信异常,无法执行飞行任务,请重启飞行器与机场后重试"),
EXCEED_AIRPORT_DISTANCE(338005, "起飞机场与降落机场部署距离超出限制,无法执行飞行任务,请选择两个部署距离不超过 15km 的机场执行任务"),
INVALID_LANDING_AIRPORT(338006, "无法执行飞行任务,请检查降落机场是否已申请解禁证书、是否位于自定义禁飞区或是否位于自定义飞行区外"),
LANDING_AIRPORT_HEIGHT_LIMIT(338007, "目标降落机场部署突破限高区限高,无法执行任务,请申请解禁证书后再试"),
LANDING_AIRPORT_CONFIG_LIMIT(338008, "目标降落机场部署突破飞行器设置的限高,无法执行任务,请调整限高后重试"),
POOR_GPS_SIGNAL_2(338009, "飞行器 GPS 定位信号差,无法执行任务,请重启飞行器后重试"),
POSITIONING_FAILED_2(338010, "飞行器定位失效,无法执行任务,请重启飞行器后重试"),
OUTSIDE_GEO_FENCE(338011, "任务失败,目标机场处于地理鸟笼作业区域外,请重新规划任务后再试"),
AIRCRAFT_DATA_UPDATE_FAILED_1(338017, "飞行器数据更新失败,无法执行任务,请重启飞行器后重试"),
AIRCRAFT_DATA_UPDATE_FAILED_2(338018, "飞行器数据更新失败,无法执行任务,请重启飞行器后重试"),
RETURN_ROUTE_PLANNING(338019, "飞行器到目标机场的返航路线正在规划中,无法执行任务,请重启飞行器后重试"),
NO_VALID_LANDING_PATH(338020, "飞行器无法根据规划的路径到达目标降落机场,无法执行任务,请重新选择降落机场后再试"),
INSUFFICIENT_BATTERY_FOR_LANDING(338021, "飞行器当前电量不足以到达目标降落机场,无法执行任务,请给飞行器充电后重试"),
// 指点飞行退出原因 (338049-338054)
JOYSTICK_OPERATED(338049, "响应遥控器杆量,已退出指点飞行"),
COMMAND_TERMINATED(338050, "响应终止指令,已退出指点飞行"),
LOW_BATTERY_RETURN_1(338051, "飞行器低电量返航,已退出指点飞行"),
LOW_BATTERY_LANDING_2(338052, "飞行器低电量降落,已退出指点飞行"),
MANNED_AIRCRAFT_NEARBY(338053, "附近有载人机,已退出指点飞行"),
HIGHER_PRIORITY_TASK(338054, "响应其他高优先级任务,已退出指点飞行"),
// 通信异常 (338255)
AIRCRAFT_COMMUNICATION_FAILURE_5(338255, "飞行器通信异常,无法执行飞行任务,请重启飞行器与机场后重试"),
// 航线执行异常 (386535)
ROUTE_EXECUTION_ABNORMAL(386535, "航线执行异常,请稍后重试或重启机场后重试"),
// 直播相关 (513002-513099)
LIVE_STREAM_CAMERA_ERROR(513002, "直播失败,相机不存在或相机类型错误"),
LIVE_STREAM_ALREADY_STARTED(513003, "相机已经在直播中,请勿重复开启直播"),
LIVE_STREAM_PARAM_ERROR(513005, "直播失败,直播参数(清晰度)设置错误"),
LIVE_STREAM_START_FAILED(513006, "直播启动失败,请刷新重试"),
LIVE_STREAM_DATA_ERROR(513008, "直播失败,设备端图传数据异常"),
LIVE_STREAM_NETWORK_ERROR(513010, "直播失败,设备无法联网"),
LIVE_STREAM_NOT_STARTED(513011, "操作失败,设备未开启直播"),
LIVE_STREAM_CAMERA_SWITCH(513012, "操作失败,设备已在直播中,不支持切换镜头"),
LIVE_STREAM_PROTOCOL_ERROR(513013, "直播失败,直播使用的视频传输协议不支持"),
LIVE_STREAM_PARAM_INVALID(513014, "直播失败,直播参数错误或者不完整"),
LIVE_STREAM_LAG(513015, "直播异常,网络卡顿, 请刷新后重试"),
LIVE_STREAM_DECODE_FAILED(513016, "直播异常,视频解码失败"),
LIVE_STREAM_PAUSED(513017, "直播已暂停,请等待当前飞行器媒体文件下载完成后再试"),
LIVE_STREAM_GENERAL_ERROR(513099, "直播失败,请稍后重试"),
// 机场操作相关 (514100-514185)
AIRPORT_OPERATION_ERROR(514100, "机场运行异常,请重启机场后重试"),
PUSH_ROD_CLOSE_FAILED(514101, "推杆闭合失败,请检查停机坪上是否存在异物,飞行器方向是否放反,或重启机场后重试"),
PUSH_ROD_OPEN_FAILED(514102, "推杆展开失败,请检查停机坪上是否存在异物,或重启机场后重试"),
LOW_BATTERY_3_1(514103, "飞行器电量低于30%,无法执行飞行任务,请充电后重试(建议电量≥50%)"),
CHARGE_START_FAILED(514104, "飞行器电池开始充电失败,请重启机场后重试"),
CHARGE_STOP_FAILED(514105, "飞行器电池停止充电失败,请重启机场后重试"),
POWER_CONTROL_ERROR(514106, "飞行器电源控制异常,请重启机场后重试"),
COVER_OPEN_FAILED(514107, "舱盖开启失败,请检查舱盖周围是否存在异物,或重启机场后重试"),
COVER_CLOSE_FAILED(514108, "舱盖关闭失败,请检查舱盖周围是否存在异物,或重启机场后重试"),
AIRCRAFT_POWER_ON_FAILED(514109, "飞行器开机失败,请检查飞行器是否在舱和飞机电量是否正常,或重启机场后重试"),
AIRCRAFT_POWER_OFF_FAILED(514110, "飞行器关机失败,请重启机场后重试"),
SLOW_SPIN_PROPELLER_ERROR_1(514111, "飞行器慢转收桨控制异常,请重启机场后重试"),
SLOW_SPIN_PROPELLER_ERROR_2(514112, "飞行器慢转收桨控制异常,请重启机场后重试"),
AIRCRAFT_CONNECTION_FAILED(514113, "机场推杆与飞行器无法连接,请检查飞行器是否在舱内,推杆闭合时是否被卡住,充电连接器是否脏污或损坏"),
POWER_STATUS_FAILED(514114, "获取飞行器电源状态失败,请重启机场后重试"),
AIRPORT_BUSY(514116, "无法执行当前操作,机场正在执行其他控制指令,请稍后重试"),
COVER_NOT_IN_POSITION(514117, "舱盖开启或关闭未到位,请重启机场后重试"),
PUSH_ROD_NOT_IN_POSITION(514118, "推杆展开或闭合未到位,请重启机场后重试"),
AIRCRAFT_DISCONNECTED_1(514120, "机场与飞行器断连,请重启机场后重试或重新对频"),
EMERGENCY_BUTTON_PRESSED(514121, "机场急停按钮被按下,请释放急停按钮"),
CHARGE_STATUS_FAILED(514122, "获取飞行器充电状态失败,请重启机场后重试"),
BATTERY_TOO_LOW(514123, "飞行器电池电量过低无法开机"),
BATTERY_INFO_FAILED(514124, "获取飞行器电池信息失败,无法执行飞行任务,请重启机场后重试"),
BATTERY_FULL(514125, "飞行器电池电量已接近满电状态,无法开始充电,请使用至95%以下再进行充电"),
HEAVY_RAIN(514134, "雨量过大,机场无法执行飞行任务,请稍后重试"),
STRONG_WIND(514135, "风速过大,机场无法执行飞行任务,请稍后重试"),
POWER_SUPPLY_DISCONNECTED(514136, "机场供电断开,机场无法执行飞行任务,请恢复机场供电后重试"),
LOW_TEMPERATURE(514137, "环境温度过低于-20℃ (-4°F),机场无法执行飞行任务,请稍后重试"),
BATTERY_MAINTENANCE(514138, "飞行器电池正在保养中,机场无法执行飞行任务,请等待保养结束后重试"),
BATTERY_MAINTENANCE_NOT_NEEDED_1(514139, "飞行器电池无法执行保养指令,飞行器电池无需保养"),
BATTERY_MAINTENANCE_NOT_NEEDED_2(514140, "飞行器电池无法执行保养指令,飞行器电池无需保养"),
AIRPORT_SYSTEM_ERROR(514141, "机场系统运行异常,请重启机场后重试"),
PREFLIGHT_CONNECTION_FAILED(514142, "飞行器起飞前,机场推杆与飞行器无法连接,请检查飞行器是否在舱内,推杆闭合时是否被卡住,充电连接器是否脏污或损坏"),
PUSH_ROD_NOT_CLOSED(514143, "推杆未闭合或闭合不到位,请稍后重试或重启机场后重试"),
COVER_NOT_CLOSED(514144, "舱盖未关闭或关闭不到位,请稍后重试或重启机场后重试"),
LOCAL_DEBUG_MODE(514145, "机场处于现场调试中,无法执行当前操作或执行飞行任务,请断开遥控器和机场的数据线连接后重试"),
REMOTE_DEBUG_MODE(514146, "机场处于远程调试中,无法执行飞行任务,请退出远程调试后重试"),
DEVICE_UPGRADING_2(514147, "设备升级中,无法进行远程调试或执行飞行任务,请等待升级完成后重试"),
AIRPORT_BUSY_WORKING(514148, "机场已经在作业中,无法进行远程调试或再次执行飞行任务,请等待当前任务执行完成后重试"),
AIRPORT_SYSTEM_ERROR_3_1(514149, "机场系统运行异常,无法执行飞行任务,请重启机场后重试"),
DEVICE_REBOOTING(514150, "设备重启中,无法执行飞行任务,请等待重启完成后重试"),
CANNOT_REBOOT_DURING_UPGRADE(514151, "设备升级中,无法执行设备重启指令,请等待升级完成后重试"),
REMOTE_DEBUG_EXITED(514153, "机场已退出远程调试模式,无法执行当前操作"),
TEMPERATURE_READ_FAILED(514154, "获取内循环出风口温度失败,请稍后再试"),
AIRCRAFT_NOT_IN_DOCK(514156, "飞机不在舱内,请立即检查飞行器是否已安全降落并将飞行器放回至机场"),
WIRELESS_CHARGE_BUSY(514157, "执行开机失败,无线充电线圈业务繁忙,请重启机场后再试"),
RTK_SERVICE_ERROR(514158, "无法起飞,机场 RTK 业务异常,请重启机场后再试"),
LANDING_AIRPORT_OCCUPIED(514159, "任务失败,降落机场检测到飞行器,请确保降落机场没有飞行器后再试"),
AIRCRAFT_CONNECTION_FAILED_2(514162, "飞行器和机场连接失败,请关闭机场舱盖或重启机场后再试"),
BATTERY_MALFUNCTION(514163, "电池功能异常,请确保飞行器电池插入到位或重启飞行器后再试"),
DEVICE_REBOOT_FAILED_1(514164, "设备重启失败,请稍后重试,如果仍报错请联系大疆售后"),
DEVICE_REBOOT_FAILED_2(514165, "设备重启失败,请稍后重试,如果仍报错请联系大疆售后"),
AIRPORT_INITIALIZING_1(514170, "机场系统初始化中,无法执行当前操作或指令,请等待机场系统初始化完成后重试"),
INVALID_CLOUD_COMMAND_1(514171, "云端下发给机场的命令不符合格式要求,机场无法执行"),
AIRCRAFT_POWER_OFF_FAILED_2(514172, "飞行器无法关机,蓝牙连接状态为未连接,请尝试重启飞行器和机场,或去现场重新对频飞行器与机场后再试"),
WEATHER_CONDITION(514173, "由于天气原因(环境温度低于5度并且降雨大于等于中雨),可能导致桨叶结冰影响作业安全,暂无法执行任务"),
CHARGE_FAILED_COVER(514174, "飞行器充电失败,机场舱盖开启或关闭未到位,请关闭舱盖后再试"),
// 空调控制相关 (514180-514185)
AC_STOP_FAILED(514180, "停止空调制冷或停止空调制热失败,请稍后重试"),
AC_COOLING_FAILED(514181, "开启空调制冷失败,请稍后重试"),
AC_HEATING_FAILED(514182, "开启空调制热失败,请稍后重试"),
AC_DEHUMIDIFY_FAILED(514183, "开启空调除湿失败,请稍后重试"),
TOO_COLD_FOR_COOLING(514184, "当前温度低于 0 ℃(32°F),无法开启空调制冷"),
TOO_HOT_FOR_HEATING(514185, "当前温度高于 45 ℃(115°F),无法开启空调制热"),
// 网络相关 (514300-514304)
GATEWAY_ERROR(514300, "网关异常"),
REQUEST_TIMEOUT(514301, "请求超时,连接断开"),
CERTIFICATE_ERROR(514302, "网络证书异常,连接失败"),
NETWORK_ERROR(514303, "网络异常,连接断开"),
REQUEST_REJECTED(514304, "请求被拒,连接失败"),
UNKNOWN(-1, "UNKNOWN"),
;
private final String msg;
private final int code;
ErrorCodeEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
@Override
public String getMessage() {
return this.msg;
}
@Override
public Integer getCode() {
return this.code;
}
/**
* @param code error code
* @return enumeration object
*/
public static ErrorCodeEnum find(int code) {
return Arrays.stream(values()).filter(codeEnum -> codeEnum.code == code).findAny().orElse(UNKNOWN);
}
}

2
dk-common/common-mybatis/src/main/resources/common-mybatis.yml

@ -23,7 +23,7 @@ mybatis-plus:
dbConfig:
# 主键类型
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
idType: ASSIGN_ID
idType: AUTO
# 逻辑已删除值(框架表均使用此值 禁止随意修改)
logicDeleteValue: 2
# 逻辑未删除值

2
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java

@ -157,7 +157,7 @@ public class BusinessAlertController extends BaseController {
/**
* 查询全部预警/待办/已完成/忽略
* 前端视频画框
*/
@Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存")
@PostMapping("/saveAlertList")

36
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java

@ -0,0 +1,36 @@
package org.dromara.business.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.business.service.IBusinessLayerService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Validated
@RequiredArgsConstructor
@RestController
@Tag(name = "图层模块")
@RequestMapping("/layer")
public class BusinessLayerController {
private final IBusinessLayerService businessLayerService;
/**
* 图层模块列表
*/
@SaCheckPermission("business:task:list")
@GetMapping("/list")
public TableDataInfo<BusinessLayerVo> list(BusinessLayerBo bo, PageQuery pageQuery) {
return businessLayerService.queryPageList(bo, pageQuery);
}
}

59
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java

@ -0,0 +1,59 @@
package org.dromara.business.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@EqualsAndHashCode
@TableName("business_layer")
public class BusinessLayer {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
private String layerTypeName;
//租户id
private String tenantId;
//部门id
private Long deptId;
//部门名称
private String deptName;
//备注
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

57
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessLayerBo.java

@ -0,0 +1,57 @@
package org.dromara.business.domain.bo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusinessLayer.class,reverseConvertGenerate = false)
public class BusinessLayerBo {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
@NotNull(message = "图层名称不能为空", groups = { AddGroup.class})
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
@NotNull(message = "图层类型不能为空", groups = { AddGroup.class})
private Integer layerType;
private String tenantId;
@NotNull(message = "部门id不能为空", groups = { AddGroup.class})
private Long deptId;
@NotNull(message = "部门名称不能为空", groups = { AddGroup.class})
private String deptName;
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

56
dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java

@ -0,0 +1,56 @@
package org.dromara.business.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.BusinessTask;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusinessLayer.class)
public class BusinessLayerVo {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
private String layerTypeName;
private String tenantId;
private Long deptId;
private String deptName;
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

8
dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java

@ -1,6 +1,7 @@
package org.dromara.business.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.business.api.RemoteBusinessAlertService;
import org.dromara.business.api.domain.bo.RemoteBusinessAlertBo;
@ -9,6 +10,8 @@ import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.service.IBusinessAlertService;
import org.dromara.business.utils.MinioUntil;
import org.dromara.business.utils.constants.MinIOConstants;
import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.RemoteUserService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -26,7 +29,8 @@ import java.util.stream.Collectors;
public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertService {
private final IBusinessAlertService businessAlertService;
@DubboReference(timeout = 30000)
private RemoteSubmailConfigService remoteSubmailConfigService;
@Override
public Boolean saveBusinessAlert(List<RemoteBusinessAlertVo> alertVoList, String activeProfile) {
@ -84,5 +88,7 @@ public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertServic
}).toList();
businessAlertService.batchUpdateDept(alertVoList);
//短信推送
remoteSubmailConfigService.remoteSend("smsMultixsend", alertList);
}
}

16
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessLayerMapper.java

@ -0,0 +1,16 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.bo.BusinessTaskBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
public interface BusinessLayerMapper extends BaseMapperPlus<BusinessLayer, BusinessLayerVo> {
Page<BusinessLayerVo> queryPageList(@Param("page") Page<?> page, @Param("bo") BusinessLayerBo bo);
}

22
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessLayerService.java

@ -0,0 +1,22 @@
package org.dromara.business.service;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
public interface IBusinessLayerService {
/**
* 分页查询工单预约列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 工单预约分页列表
*/
TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery);
Boolean insert(BusinessLayerBo bo);
Boolean update(BusinessLayerBo bo);
Boolean delete(Long id);
}

58
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -6,6 +6,7 @@ import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -42,6 +43,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.RemoteLabelPostService;
import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo;
import org.dromara.system.api.domain.vo.RemoteUserVo;
@ -85,6 +87,8 @@ import java.util.Base64;
public class BusinessAlertServiceImpl implements IBusinessAlertService {
private final BusinessAlertMapper baseMapper;
@DubboReference(timeout = 30000)
private RemoteSubmailConfigService remoteSubmailConfigService;
@Autowired
private BusinessAlertConstructInfoMapper businessAlertConstructInfoMapper;
@ -151,36 +155,37 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
@Override
public void addBusinessAlertList(List<BusinessAlertVo> alertVoList) {
if (ObjectUtil.isEmpty(alertVoList)) {
throw new ServiceException("预警参数为空!");
}
try {
if(!alertVoList.isEmpty()) {
incrementalCount(alertVoList);
} catch (Exception e) {
log.error(e.getMessage(),e);
}
//用于短信推送
List<Map<String, Object>> noticeList=new ArrayList<>();
List<RemoteStartProcess> remoteStartProcessList = new ArrayList<>();
for (BusinessAlertVo alertVo : alertVoList) {
Map<String,Object>map=new HashMap<>();
alertVo.setBusinessType(2);
alertVo.setHandleType(BusinessStatusEnum.WAITING.getStatus());
BusinessAlert alert = addBusinessAlert(alertVo);
RemoteStartProcess startProcess = new RemoteStartProcess();
startProcess.setBusinessId(String.valueOf(alert.getId()));
startProcess.setFlowCode("alertChz");
map.put("deptId",alertVo.getDeptId());
map.put("deptName",alertVo.getDeptName());
map.put("labelCn",alertVo.getLabelCn());
map.put("labelEn",alertVo.getLabelEn());
map.put("jobName",alertVo.getJobName());
noticeList.add(map);
remoteStartProcessList.add(startProcess);
}
List<RemoteStartProcess> remoteStartProcessList = new ArrayList<>();
for (BusinessAlertVo alertVo : alertVoList) {
alertVo.setBusinessType(2);
BusinessAlert alert = addBusinessAlert(alertVo);
RemoteStartProcess startProcess = new RemoteStartProcess();
startProcess.setBusinessId(String.valueOf(alert.getId()));
//根据标签获取流程code
String flowCode = remoteWorkflowService.getFlowCode(alertVo.getLabelEn());
log.info("flowCode:{}",flowCode);
startProcess.setFlowCode(flowCode);
remoteStartProcessList.add(startProcess);
int startIndex = 0; // 从第 0 条开始
int batchSize = 5; // 每批处理 5 条
boolean flag = BatchProcessorUtil.processBatches(remoteStartProcessList, batchSize, startIndex, batch -> {
//批量新增部门区域数据
remoteWorkflowService.startWorkFlowBatch(batch);
});
remoteSubmailConfigService.remoteSend("smsMultixsend",noticeList);
}
int startIndex = 0; // 从第 0 条开始
int batchSize = 5; // 每批处理 5 条
boolean flag = BatchProcessorUtil.processBatches(remoteStartProcessList, batchSize, startIndex, batch -> {
//批量新增部门区域数据
remoteWorkflowService.startWorkFlowBatch(batch);
});
}
/**
@ -996,6 +1001,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
//更新number
this.baseMapper.batchUpdateCaseNumber(alertVoList);
} catch (Exception e) {
log.error(e.getMessage(),e);
}

47
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java

@ -0,0 +1,47 @@
package org.dromara.business.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.convert.impl.MapConverter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.business.mapper.BusinessLayerMapper;
import org.dromara.business.service.IBusinessLayerService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
@Slf4j
@RequiredArgsConstructor
@Service
public class BusinessLayerServiceImpl implements IBusinessLayerService {
private final BusinessLayerMapper baseMapper;
@Override
public TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery) {
Page<BusinessLayerVo> result = baseMapper.queryPageList(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
@Override
public Boolean insert(BusinessLayerBo bo) {
BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo);
return baseMapper.insert(layerVo)>0;
}
@Override
public Boolean update(BusinessLayerBo bo) {
BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo);
return baseMapper.updateById(layerVo)>0;
}
@Override
public Boolean delete(Long id) {
return baseMapper.deleteById(id)>0;
}
}

11
dk-modules/business/src/main/resources/mapper/business/BusinessLayerMapper.xml

@ -0,0 +1,11 @@
<?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="org.dromara.business.mapper.BusinessLayerMapper">
<select id="queryPageList" resultType="org.dromara.business.domain.vo.BusinessLayerVo">
</select>
</mapper>

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java

@ -58,6 +58,8 @@ public class WaylineJobDTO {
private Integer code;
private String codeName;
private Integer rthAltitude;
private OutOfControlActionEnum outOfControlAction;

4
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java

@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.common.redis.config.RedisConst;
import org.dromara.common.redis.utils.RedisOpsUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.sdk.cloudapi.debug.DebugErrorCodeEnum;
import org.dromara.common.sdk.cloudapi.debug.ErrorCodeEnum;
import org.dromara.common.sdk.cloudapi.device.DockModeCodeEnum;
import org.dromara.common.sdk.cloudapi.device.DroneModeCodeEnum;
import org.dromara.common.sdk.cloudapi.device.OsdDock;
@ -297,6 +299,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
.rthAltitude(entity.getRthAltitude())
.outOfControlAction(OutOfControlActionEnum.find(entity.getOutOfControlAction()))
.mediaCount(entity.getMediaCount())
.codeName(ErrorCodeEnum.find(entity.getErrorCode()==null?-1:entity.getErrorCode()).getMessage())
.breakPoint(entity.getBreakPoint());
@ -337,5 +340,4 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
.uploadedCount(uploadedSize).build());
return builder.build();
}
}

2
dk-modules/system/src/main/java/org/dromara/system/DKSystemApplication.java

@ -4,6 +4,7 @@ import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* 系统模块
@ -12,6 +13,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt
*/
@EnableDubbo
@SpringBootApplication
@EnableAsync
public class DKSystemApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(DKSystemApplication.class);

10
dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java

@ -274,6 +274,16 @@ public class SysUserController extends BaseController {
return toAjax(userService.updateUserStatus(user.getUserId(), user.getStatus()));
}
/**
* 状态修改
*/
@SaCheckPermission("system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/noticeType")
public R<Void> noticeType(@RequestBody SysUserBo user) {
return toAjax(userService.updateUserNoticeType(user.getUserId(), user.getNoticeType()));
}
/**
* 根据用户编号获取授权角色
*

1
dk-modules/system/src/main/java/org/dromara/system/domain/SysUser.java

@ -98,6 +98,7 @@ public class SysUser extends TenantEntity {
*/
private Date loginDate;
private Integer noticeType;
/**
* 备注
*/

1
dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java

@ -108,6 +108,7 @@ public class SysUserBo extends BaseEntity {
*/
private String excludeUserIds;
private Integer noticeType;
/**
* 平台名称
*/

1
dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java

@ -47,6 +47,7 @@ public class SysUserVo implements Serializable {
* 用户账号
*/
private String userName;
private Integer noticeType;
/**
* 用户昵称

39
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteSubmailConfigServiceImpl.java

@ -1,17 +1,27 @@
package org.dromara.system.dubbo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.domain.R;
import org.dromara.system.api.RemoteClientService;
import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.domain.vo.RemoteClientVo;
import org.dromara.system.domain.vo.SysClientVo;
import org.dromara.system.service.ISysClientService;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysSubmailConfigService;
import org.dromara.system.service.ISysUserService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 客户端服务
*
@ -25,6 +35,7 @@ public class RemoteSubmailConfigServiceImpl implements RemoteSubmailConfigServic
private final ISysSubmailConfigService sysSubmailConfigService;
private final ISysUserService userService;
/**
*
@ -36,4 +47,22 @@ public class RemoteSubmailConfigServiceImpl implements RemoteSubmailConfigServic
public R<String> remoteCmdSend(String code, String multiParam) {
return sysSubmailConfigService.cmdSend(code, multiParam);
}
/**
* 根据部门获取部门下的短信推送人员,进行推送
* */
@Override
@Async
public void remoteSend(String code, List<Map<String, Object>> alertList) {
if(!alertList.isEmpty()){
for (Map<String, Object> map : alertList) {
Long deptId = Convert.toLong(map.get("deptId"));
List<SysUserVo> sysUserVos = userService.selectUserListByDept(Convert.toLong(deptId));
Set<String> phones = sysUserVos.stream().filter(u -> u.getNoticeType() == 1 && StrUtil.isNotEmpty(u.getPhonenumber())).map(SysUserVo::getPhonenumber).collect(Collectors.toSet());
sysSubmailConfigService.sendPhone(code,phones, JSON.toJSONString(map));
}
}
}
}

4
dk-modules/system/src/main/java/org/dromara/system/service/ISysSubmailConfigService.java

@ -10,6 +10,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Set;
/**
* 赛邮服务配置Service接口
@ -71,5 +72,8 @@ public interface ISysSubmailConfigService {
R<String> cmdSend(String code, String multiParam);
R<String> sendPhone(String code,Set<String>phones, String multiParam);
String submailSendUtil(SysSubmailConfigBo bo, List<SysSubmailConfigUserVo> configUserVoList);
String submailSendPhone(SysSubmailConfigBo bo, Set<String> phones);
}

1
dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java

@ -169,6 +169,7 @@ public interface ISysUserService {
* @return 结果
*/
int updateUserStatus(Long userId, String status);
int updateUserNoticeType(Long userId, Integer noticeType);
/**
* 修改用户基本信息

74
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysSubmailConfigServiceImpl.java

@ -32,10 +32,7 @@ import org.dromara.system.domain.SysSubmailConfig;
import org.dromara.system.mapper.SysSubmailConfigMapper;
import org.dromara.system.service.ISysSubmailConfigService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -189,6 +186,75 @@ public class SysSubmailConfigServiceImpl implements ISysSubmailConfigService {
return R.ok(result);
}
@Override
public R<String> sendPhone(String code, Set<String> phones, String multiParam) {
//找到生效配置
SysSubmailConfigBo bo = new SysSubmailConfigBo();
bo.setCode(code);
List<SysSubmailConfigVo> sysSubmailConfigVoTempList = this.queryList(bo);
if (sysSubmailConfigVoTempList.size() <= 0) {
return R.fail("暂无有效配置");
}
SysSubmailConfigVo firstConfigVo = sysSubmailConfigVoTempList.get(0);
BeanUtil.copyProperties(firstConfigVo,bo);
bo.setMultiParam(multiParam);
String result = submailSendPhone(bo,phones);
return R.ok(result);
}
public String submailSendPhone(SysSubmailConfigBo bo, Set<String> phones) {
if(!phones.isEmpty()){
String subMailSaveFlag = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("submail.log.save");
HashMap<String, Object> postParam = new HashMap<>();
postParam.put("appid", bo.getAppid());
postParam.put("signature", bo.getSignature());
String phonenumber =String.join(",", phones);;
String result = "";
switch (bo.getCode()){
case "smsSend": //短信发送 to/content
postParam.put("to", phonenumber);
postParam.put("content", bo.getContent());
result = HttpUtil.post(bo.getUrl(), postParam); //JSONUtil.parseObj(result).getStr("status")
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsXsend": //短信模板发送 to/project
postParam.put("to", phonenumber);
postParam.put("project", bo.getProject());
postParam.put("vars", bo.getVars());
result = HttpUtil.post(bo.getUrl(), postParam);
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsMultisend": //短信一对多发送 multi
// postParam.put("to", phonenumber);
// postParam.put("project", bo.getProject());
// postParam.put("vars", bo.getVars());
// result = HttpUtil.post(bo.getUrl(), postParam);
// saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsMultixsend": //短信模板一对多发送 project/multi
postParam.put("to", phonenumber);
postParam.put("project", bo.getProject());
// 拼接multi
JSONArray multiJson = new JSONArray();
for (String phone : phones) {
JSONObject entries = new JSONObject();
entries.set("to",phone);
entries.set("vars", JSONUtil.parseObj(bo.getMultiParam()));
multiJson.add(entries);
}
String multiJsonStr = multiJson.toString();
// postParam.put("multi", multiJson.toString());
postParam.put("multi", multiJsonStr);
result = HttpUtil.post(bo.getUrl(), postParam);
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
}
return result;
}
return null;
}
public String submailSendUtil(SysSubmailConfigBo bo, List<SysSubmailConfigUserVo> configUserVoList) {
String subMailSaveFlag = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("submail.log.save");
HashMap<String, Object> postParam = new HashMap<>();

8
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@ -376,6 +376,14 @@ public class SysUserServiceImpl implements ISysUserService {
.eq(SysUser::getUserId, userId));
}
@Override
public int updateUserNoticeType(Long userId, Integer noticeType) {
return baseMapper.update(null,
new LambdaUpdateWrapper<SysUser>()
.set(SysUser::getNoticeType, noticeType)
.eq(SysUser::getUserId, userId));
}
/**
* 修改用户基本信息
*

2
dk-modules/system/src/main/resources/mapper/system/SysUserMapper.xml

@ -17,7 +17,7 @@
${ew.getSqlSelect}
</if>
<if test="ew.getSqlSelect == null">
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,u.notice_type,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.product_name
</if>
from sys_user u

4
dk-visual/nacos/src/main/resources/application.properties

@ -40,9 +40,9 @@ spring.sql.init.platform=mysql
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://114.235.183.147:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.url.0=jdbc:mysql://127.0.0.1:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=dkcy@yf
db.password.0=123456
### the maximum retry times for push
nacos.config.push.maxRetryTime=50

Loading…
Cancel
Save