8 changed files with 927 additions and 0 deletions
@ -0,0 +1,128 @@ |
|||
package org.dromara.sample.wayline.controller; |
|||
|
|||
import java.util.List; |
|||
import java.util.Optional; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.common.sdk.common.HttpResultResponse; |
|||
import org.dromara.sample.wayline.model.dto.WaylineJobDTO; |
|||
import org.dromara.sample.wayline.service.IWaylineJobService; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.sample.wayline.domain.vo.WaylineJobAtmosphereVo; |
|||
import org.dromara.sample.wayline.domain.bo.WaylineJobAtmosphereBo; |
|||
import org.dromara.sample.wayline.service.IWaylineJobAtmosphereService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 无人机任务-空气质量 |
|||
* 前端访问路由地址为:/sample/WaylineJobAtmosphere |
|||
* |
|||
* @author szs |
|||
* @date 2025-06-16 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/WaylineJobAtmosphere") |
|||
public class WaylineJobAtmosphereController extends BaseController { |
|||
|
|||
private final IWaylineJobAtmosphereService waylineJobAtmosphereService; |
|||
private final IWaylineJobService waylineJobService; |
|||
|
|||
/** |
|||
* 查询无人机任务-空气质量列表 |
|||
*/ |
|||
@SaCheckPermission("sample:WaylineJobAtmosphere:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<WaylineJobAtmosphereVo> list(WaylineJobAtmosphereBo bo, PageQuery pageQuery) { |
|||
return waylineJobAtmosphereService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
@GetMapping("/list/demo") |
|||
public List<WaylineJobAtmosphereVo> demoList(WaylineJobAtmosphereBo bo, PageQuery pageQuery) { |
|||
List<WaylineJobAtmosphereVo> demoList= waylineJobAtmosphereService.demoList(bo); |
|||
return demoList; |
|||
} |
|||
|
|||
/** |
|||
* 导出无人机任务-空气质量列表 |
|||
*/ |
|||
@SaCheckPermission("sample:WaylineJobAtmosphere:export") |
|||
@Log(title = "无人机任务-空气质量", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(WaylineJobAtmosphereBo bo, HttpServletResponse response) { |
|||
List<WaylineJobAtmosphereVo> list = waylineJobAtmosphereService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "无人机任务-空气质量", WaylineJobAtmosphereVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取无人机任务-空气质量详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("sample:WaylineJobAtmosphere:query") |
|||
@GetMapping("/{id}") |
|||
public R<WaylineJobAtmosphereVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable Long id) { |
|||
return R.ok(waylineJobAtmosphereService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增无人机任务-空气质量 |
|||
*/ |
|||
@SaCheckPermission("sample:WaylineJobAtmosphere:add") |
|||
@Log(title = "无人机任务-空气质量", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WaylineJobAtmosphereBo bo) { |
|||
|
|||
// Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobInternalId(objectMap.get("jobId").toString());
|
|||
// map.put("jobId",objectMap.get("jobId"));
|
|||
// if (!waylineJobDTO.isEmpty()){
|
|||
// map.put("jobName",waylineJobDTO.get().getJobName());
|
|||
// }else {
|
|||
// map.put("jobName",null);
|
|||
// }
|
|||
|
|||
// waylineJobService.getJobByDockSn("");
|
|||
|
|||
return toAjax(waylineJobAtmosphereService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改无人机任务-空气质量 |
|||
*/ |
|||
@SaCheckPermission("sample:WaylineJobAtmosphere:edit") |
|||
@Log(title = "无人机任务-空气质量", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WaylineJobAtmosphereBo bo) { |
|||
return toAjax(waylineJobAtmosphereService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除无人机任务-空气质量 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("sample:WaylineJobAtmosphere:remove") |
|||
@Log(title = "无人机任务-空气质量", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable Long[] ids) { |
|||
return toAjax(waylineJobAtmosphereService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,127 @@ |
|||
package org.dromara.sample.wayline.domain; |
|||
|
|||
import cn.hutool.json.JSONObject; |
|||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.NoArgsConstructor; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 无人机任务-空气质量对象 wayline_job_atmosphere |
|||
* |
|||
* @author szs |
|||
* @date 2025-06-16 |
|||
*/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
@TableName("wayline_job_atmosphere") |
|||
public class WaylineJobAtmosphere implements Serializable { |
|||
|
|||
@TableId(value = "id", type = IdType.AUTO) |
|||
private Long id; |
|||
|
|||
@TableField("wayline_job_id") |
|||
private Long waylineJobId; //无人机任务ID
|
|||
|
|||
@TableField("job_id") |
|||
private String jobId; //任务UUID
|
|||
|
|||
@TableField("name") |
|||
private String name;//任务名称
|
|||
|
|||
@TableField("file_id") |
|||
private String fileId; //航线id 对应wayline_id 字段
|
|||
|
|||
@TableField("wayline_name") |
|||
private String waylineName;//航线名称
|
|||
|
|||
@TableField("dock_sn") |
|||
private String dockSn; //机场sn
|
|||
|
|||
@TableField("drone_sn") |
|||
private String droneSn;//无人机sn
|
|||
|
|||
@TableField("workspace_id") |
|||
private String workspaceId;//工作区id
|
|||
|
|||
@TableField("task_type") |
|||
private Long taskType;//任务类型
|
|||
|
|||
@TableField("begin_time") |
|||
private Date beginTime;//计划的开始时间
|
|||
|
|||
@TableField("end_time") |
|||
private Date endTime; //计划的结束时间
|
|||
|
|||
@TableField("serial") |
|||
private String serial; //负载设备序列号
|
|||
|
|||
@TableField("sequence") |
|||
private Long sequence;//数据序列号
|
|||
|
|||
@TableField("sate_num") |
|||
private Long sateNum; //卫星数量
|
|||
|
|||
@TableField("hdop") |
|||
private Long hdop; //水平精度因子
|
|||
|
|||
@TableField("utc_time_str") |
|||
private String utcTimeStr; //UTC时间
|
|||
|
|||
@TableField("latitude") |
|||
private Float latitude; //纬度
|
|||
|
|||
@TableField("longitude") |
|||
private Float longitude;//经度
|
|||
|
|||
@TableField("altitude") |
|||
private Float altitude;//海拔高度
|
|||
|
|||
@TableField("temperature") |
|||
private Float temperature; //温度
|
|||
|
|||
@TableField("humidity") |
|||
private Float humidity;//湿度
|
|||
|
|||
@TableField("pressure") |
|||
private Float pressure;//气压
|
|||
|
|||
// @TableField(value = "air_data", typeHandler = JacksonTypeHandler.class)
|
|||
@TableField("air_data") |
|||
private String airData;//空气质量数据
|
|||
|
|||
@TableField("error_code") |
|||
private Long errorCode;//错误码
|
|||
|
|||
@TableField("status") |
|||
private Long status;//状态 1:待处理;2: 进行中;3:成功;4: 取消;5:失败
|
|||
|
|||
@TableField("parent_id") |
|||
private String parentId; //父级ID
|
|||
|
|||
@TableField("job_type") |
|||
private Long jobType;//任务类型 1:手动任务,2:自动任务,3:指令飞行,4:工单飞行
|
|||
|
|||
@TableField("pro_id") |
|||
private Long proId; //proID
|
|||
|
|||
|
|||
@TableField(value = "create_time", fill = FieldFill.INSERT) |
|||
private Date createTime; |
|||
|
|||
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) |
|||
private Date updateTime; |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,178 @@ |
|||
package org.dromara.sample.wayline.domain.bo; |
|||
|
|||
import cn.hutool.json.JSONObject; |
|||
import org.dromara.sample.wayline.domain.WaylineJobAtmosphere; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 无人机任务-空气质量业务对象 wayline_job_atmosphere |
|||
* |
|||
* @author szs |
|||
* @date 2025-06-16 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = WaylineJobAtmosphere.class, reverseConvertGenerate = false) |
|||
public class WaylineJobAtmosphereBo extends BaseEntity { |
|||
|
|||
/** |
|||
* ID |
|||
*/ |
|||
private Long id; |
|||
|
|||
/** |
|||
* 无人机任务ID |
|||
*/ |
|||
// @NotNull(message = "无人机任务ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long waylineJobId; |
|||
|
|||
/** |
|||
* 任务UUID |
|||
*/ |
|||
// @NotBlank(message = "任务UUID不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String jobId; |
|||
|
|||
/** |
|||
* 任务名称 |
|||
*/ |
|||
// @NotBlank(message = "任务名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String name; |
|||
|
|||
/** |
|||
* 航线id 对应wayline_id 字段 |
|||
*/ |
|||
// @NotBlank(message = "航线id 对应wayline_id 字段不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String fileId; |
|||
|
|||
/** |
|||
* 航线名称 |
|||
*/ |
|||
private String waylineName; |
|||
|
|||
/** |
|||
* 机场sn |
|||
*/ |
|||
// @NotBlank(message = "机场sn不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String dockSn; |
|||
|
|||
/** |
|||
* 无人机sn |
|||
*/ |
|||
private String droneSn; |
|||
|
|||
/** |
|||
* 工作区id |
|||
*/ |
|||
// @NotBlank(message = "工作区id不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String workspaceId; |
|||
|
|||
/** |
|||
* 任务类型 |
|||
*/ |
|||
private Long taskType; |
|||
|
|||
/** |
|||
* 计划的开始时间 |
|||
*/ |
|||
private Date beginTime; |
|||
|
|||
/** |
|||
* 计划的结束时间 |
|||
*/ |
|||
private Date endTime; |
|||
|
|||
/** |
|||
* 负载设备序列号 |
|||
*/ |
|||
// @NotBlank(message = "负载设备序列号不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String serial; |
|||
|
|||
/** |
|||
* 数据序列号 |
|||
*/ |
|||
private Long sequence; |
|||
|
|||
/** |
|||
* 卫星数量 |
|||
*/ |
|||
private Long sateNum; |
|||
|
|||
/** |
|||
* 水平精度因子 |
|||
*/ |
|||
private Long hdop; |
|||
|
|||
/** |
|||
* UTC时间 |
|||
*/ |
|||
private String utcTimeStr; |
|||
|
|||
/** |
|||
* 纬度 |
|||
*/ |
|||
private Float latitude; |
|||
|
|||
/** |
|||
* 经度 |
|||
*/ |
|||
private Float longitude; |
|||
|
|||
/** |
|||
* 海拔高度 |
|||
*/ |
|||
private Float altitude; |
|||
|
|||
/** |
|||
* 温度 |
|||
*/ |
|||
private Float temperature; |
|||
|
|||
/** |
|||
* 湿度 |
|||
*/ |
|||
private Float humidity; |
|||
|
|||
/** |
|||
* 气压 |
|||
*/ |
|||
private Float pressure; |
|||
|
|||
/** |
|||
* 空气质量数据 |
|||
*/ |
|||
private String airData; |
|||
|
|||
/** |
|||
* 错误码 |
|||
*/ |
|||
private Long errorCode; |
|||
|
|||
/** |
|||
* 1:待处理;2: 进行中;3:成功;4: 取消;5:失败 |
|||
*/ |
|||
private Long status; |
|||
|
|||
/** |
|||
* 父级ID |
|||
*/ |
|||
private String parentId; |
|||
|
|||
/** |
|||
* 1:手动任务,2:自动任务,3:指令飞行,4:工单飞行 |
|||
*/ |
|||
private Long jobType; |
|||
|
|||
/** |
|||
* proID |
|||
*/ |
|||
private Long proId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,210 @@ |
|||
package org.dromara.sample.wayline.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
|
|||
import cn.hutool.json.JSONObject; |
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import org.dromara.sample.wayline.domain.WaylineJobAtmosphere; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Map; |
|||
|
|||
|
|||
/** |
|||
* 无人机任务-空气质量视图对象 wayline_job_atmosphere |
|||
* |
|||
* @author szs |
|||
* @date 2025-06-16 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = WaylineJobAtmosphere.class) |
|||
public class WaylineJobAtmosphereVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* ID |
|||
*/ |
|||
@ExcelProperty(value = "ID") |
|||
private Long id; |
|||
|
|||
/** |
|||
* 无人机任务ID |
|||
*/ |
|||
@ExcelProperty(value = "无人机任务ID") |
|||
private Long waylineJobId; |
|||
|
|||
/** |
|||
* 任务UUID |
|||
*/ |
|||
@ExcelProperty(value = "任务UUID") |
|||
private String jobId; |
|||
|
|||
/** |
|||
* 任务名称 |
|||
*/ |
|||
@ExcelProperty(value = "任务名称") |
|||
private String name; |
|||
|
|||
/** |
|||
* 航线id 对应wayline_id 字段 |
|||
*/ |
|||
@ExcelProperty(value = "航线id 对应wayline_id 字段") |
|||
private String fileId; |
|||
|
|||
/** |
|||
* 航线名称 |
|||
*/ |
|||
@ExcelProperty(value = "航线名称") |
|||
private String waylineName; |
|||
|
|||
/** |
|||
* 机场sn |
|||
*/ |
|||
@ExcelProperty(value = "机场sn") |
|||
private String dockSn; |
|||
|
|||
/** |
|||
* 无人机sn |
|||
*/ |
|||
@ExcelProperty(value = "无人机sn") |
|||
private String droneSn; |
|||
|
|||
/** |
|||
* 工作区id |
|||
*/ |
|||
@ExcelProperty(value = "工作区id") |
|||
private String workspaceId; |
|||
|
|||
/** |
|||
* 任务类型 |
|||
*/ |
|||
@ExcelProperty(value = "任务类型") |
|||
private Long taskType; |
|||
|
|||
/** |
|||
* 计划的开始时间 |
|||
*/ |
|||
@ExcelProperty(value = "计划的开始时间") |
|||
private Date beginTime; |
|||
|
|||
/** |
|||
* 计划的结束时间 |
|||
*/ |
|||
@ExcelProperty(value = "计划的结束时间") |
|||
private Date endTime; |
|||
|
|||
/** |
|||
* 负载设备序列号 |
|||
*/ |
|||
@ExcelProperty(value = "负载设备序列号") |
|||
private String serial; |
|||
|
|||
/** |
|||
* 数据序列号 |
|||
*/ |
|||
@ExcelProperty(value = "数据序列号") |
|||
private Long sequence; |
|||
|
|||
/** |
|||
* 卫星数量 |
|||
*/ |
|||
@ExcelProperty(value = "卫星数量") |
|||
private Long sateNum; |
|||
|
|||
/** |
|||
* 水平精度因子 |
|||
*/ |
|||
@ExcelProperty(value = "水平精度因子") |
|||
private Long hdop; |
|||
|
|||
/** |
|||
* UTC时间 |
|||
*/ |
|||
@ExcelProperty(value = "UTC时间") |
|||
private String utcTimeStr; |
|||
|
|||
/** |
|||
* 纬度 |
|||
*/ |
|||
@ExcelProperty(value = "纬度") |
|||
private Float latitude; |
|||
|
|||
/** |
|||
* 经度 |
|||
*/ |
|||
@ExcelProperty(value = "经度") |
|||
private Float longitude; |
|||
|
|||
/** |
|||
* 海拔高度 |
|||
*/ |
|||
@ExcelProperty(value = "海拔高度") |
|||
private Float altitude; |
|||
|
|||
/** |
|||
* 温度 |
|||
*/ |
|||
@ExcelProperty(value = "温度") |
|||
private Float temperature; |
|||
|
|||
/** |
|||
* 湿度 |
|||
*/ |
|||
@ExcelProperty(value = "湿度") |
|||
private Float humidity; |
|||
|
|||
/** |
|||
* 气压 |
|||
*/ |
|||
@ExcelProperty(value = "气压") |
|||
private Float pressure; |
|||
|
|||
/** |
|||
* 空气质量数据 |
|||
*/ |
|||
@ExcelProperty(value = "空气质量数据") |
|||
// @JsonProperty("air_data") //无效
|
|||
private String airData; |
|||
|
|||
private JSONObject airDataJson; |
|||
|
|||
/** |
|||
* 错误码 |
|||
*/ |
|||
@ExcelProperty(value = "错误码") |
|||
private Long errorCode; |
|||
|
|||
/** |
|||
* 1:待处理;2: 进行中;3:成功;4: 取消;5:失败 |
|||
*/ |
|||
@ExcelProperty(value = "1:待处理;2: 进行中;3:成功;4: 取消;5:失败") |
|||
private Long status; |
|||
|
|||
/** |
|||
* 父级ID |
|||
*/ |
|||
@ExcelProperty(value = "父级ID") |
|||
private String parentId; |
|||
|
|||
/** |
|||
* 1:手动任务,2:自动任务,3:指令飞行,4:工单飞行 |
|||
*/ |
|||
@ExcelProperty(value = "1:手动任务,2:自动任务,3:指令飞行,4:工单飞行") |
|||
private Long jobType; |
|||
|
|||
/** |
|||
* proID |
|||
*/ |
|||
@ExcelProperty(value = "proID") |
|||
private Long proId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.sample.wayline.mapper; |
|||
|
|||
import org.dromara.sample.wayline.domain.WaylineJobAtmosphere; |
|||
import org.dromara.sample.wayline.domain.vo.WaylineJobAtmosphereVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 无人机任务-空气质量Mapper接口 |
|||
* |
|||
* @author szs |
|||
* @date 2025-06-16 |
|||
*/ |
|||
public interface WaylineJobAtmosphereMapper extends BaseMapperPlus<WaylineJobAtmosphere, WaylineJobAtmosphereVo> { |
|||
|
|||
} |
@ -0,0 +1,74 @@ |
|||
package org.dromara.sample.wayline.service; |
|||
|
|||
import cn.hutool.json.JSONObject; |
|||
import org.dromara.sample.wayline.domain.vo.WaylineJobAtmosphereVo; |
|||
import org.dromara.sample.wayline.domain.bo.WaylineJobAtmosphereBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.sample.wayline.model.dto.WaylineJobDTO; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 无人机任务-空气质量Service接口 |
|||
* |
|||
* @author szs |
|||
* @date 2025-06-16 |
|||
*/ |
|||
public interface IWaylineJobAtmosphereService { |
|||
|
|||
/** |
|||
* 查询无人机任务-空气质量 |
|||
* |
|||
* @param id 主键 |
|||
* @return 无人机任务-空气质量 |
|||
*/ |
|||
WaylineJobAtmosphereVo queryById(Long id); |
|||
|
|||
/** |
|||
* 分页查询无人机任务-空气质量列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 无人机任务-空气质量分页列表 |
|||
*/ |
|||
TableDataInfo<WaylineJobAtmosphereVo> queryPageList(WaylineJobAtmosphereBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的无人机任务-空气质量列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 无人机任务-空气质量列表 |
|||
*/ |
|||
List<WaylineJobAtmosphereVo> queryList(WaylineJobAtmosphereBo bo); |
|||
|
|||
/** |
|||
* 新增无人机任务-空气质量 |
|||
* |
|||
* @param bo 无人机任务-空气质量 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(WaylineJobAtmosphereBo bo); |
|||
|
|||
/** |
|||
* 修改无人机任务-空气质量 |
|||
* |
|||
* @param bo 无人机任务-空气质量 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(WaylineJobAtmosphereBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除无人机任务-空气质量信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); |
|||
|
|||
void handleAdd(WaylineJobDTO waylineJobDTO, JSONObject json); |
|||
|
|||
List<WaylineJobAtmosphereVo> demoList(WaylineJobAtmosphereBo bo); |
|||
} |
@ -0,0 +1,188 @@ |
|||
package org.dromara.sample.wayline.service.impl; |
|||
|
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import cn.hutool.json.JSONObject; |
|||
import cn.hutool.json.JSONUtil; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.sample.wayline.model.dto.WaylineJobDTO; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.sample.wayline.domain.bo.WaylineJobAtmosphereBo; |
|||
import org.dromara.sample.wayline.domain.vo.WaylineJobAtmosphereVo; |
|||
import org.dromara.sample.wayline.domain.WaylineJobAtmosphere; |
|||
import org.dromara.sample.wayline.mapper.WaylineJobAtmosphereMapper; |
|||
import org.dromara.sample.wayline.service.IWaylineJobAtmosphereService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 无人机任务-空气质量Service业务层处理 |
|||
* |
|||
* @author szs |
|||
* @date 2025-06-16 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class WaylineJobAtmosphereServiceImpl implements IWaylineJobAtmosphereService { |
|||
|
|||
private final WaylineJobAtmosphereMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询无人机任务-空气质量 |
|||
* |
|||
* @param id 主键 |
|||
* @return 无人机任务-空气质量 |
|||
*/ |
|||
@Override |
|||
public WaylineJobAtmosphereVo queryById(Long id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询无人机任务-空气质量列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 无人机任务-空气质量分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<WaylineJobAtmosphereVo> queryPageList(WaylineJobAtmosphereBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<WaylineJobAtmosphere> lqw = buildQueryWrapper(bo); |
|||
Page<WaylineJobAtmosphereVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
|
|||
//转换airData让前台处理
|
|||
for (WaylineJobAtmosphereVo record : result.getRecords()) { |
|||
if(ObjectUtil.isNotEmpty(record.getAirData())){ |
|||
record.setAirDataJson(JSONUtil.parseObj(record.getAirData())); |
|||
} |
|||
} |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的无人机任务-空气质量列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 无人机任务-空气质量列表 |
|||
*/ |
|||
@Override |
|||
public List<WaylineJobAtmosphereVo> queryList(WaylineJobAtmosphereBo bo) { |
|||
LambdaQueryWrapper<WaylineJobAtmosphere> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<WaylineJobAtmosphere> buildQueryWrapper(WaylineJobAtmosphereBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<WaylineJobAtmosphere> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(bo.getWaylineJobId() != null, WaylineJobAtmosphere::getWaylineJobId, bo.getWaylineJobId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getJobId()), WaylineJobAtmosphere::getJobId, bo.getJobId()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getName()), WaylineJobAtmosphere::getName, bo.getName()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), WaylineJobAtmosphere::getFileId, bo.getFileId()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getWaylineName()), WaylineJobAtmosphere::getWaylineName, bo.getWaylineName()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getDockSn()), WaylineJobAtmosphere::getDockSn, bo.getDockSn()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getDroneSn()), WaylineJobAtmosphere::getDroneSn, bo.getDroneSn()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getWorkspaceId()), WaylineJobAtmosphere::getWorkspaceId, bo.getWorkspaceId()); |
|||
lqw.eq(bo.getTaskType() != null, WaylineJobAtmosphere::getTaskType, bo.getTaskType()); |
|||
lqw.eq(bo.getBeginTime() != null, WaylineJobAtmosphere::getBeginTime, bo.getBeginTime()); |
|||
lqw.eq(bo.getEndTime() != null, WaylineJobAtmosphere::getEndTime, bo.getEndTime()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSerial()), WaylineJobAtmosphere::getSerial, bo.getSerial()); |
|||
lqw.eq(bo.getSequence() != null, WaylineJobAtmosphere::getSequence, bo.getSequence()); |
|||
lqw.eq(bo.getSateNum() != null, WaylineJobAtmosphere::getSateNum, bo.getSateNum()); |
|||
lqw.eq(bo.getHdop() != null, WaylineJobAtmosphere::getHdop, bo.getHdop()); |
|||
lqw.eq(bo.getUtcTimeStr() != null, WaylineJobAtmosphere::getUtcTimeStr, bo.getUtcTimeStr()); |
|||
lqw.eq(bo.getLatitude() != null, WaylineJobAtmosphere::getLatitude, bo.getLatitude()); |
|||
lqw.eq(bo.getLongitude() != null, WaylineJobAtmosphere::getLongitude, bo.getLongitude()); |
|||
lqw.eq(bo.getAltitude() != null, WaylineJobAtmosphere::getAltitude, bo.getAltitude()); |
|||
lqw.eq(bo.getTemperature() != null, WaylineJobAtmosphere::getTemperature, bo.getTemperature()); |
|||
lqw.eq(bo.getHumidity() != null, WaylineJobAtmosphere::getHumidity, bo.getHumidity()); |
|||
lqw.eq(bo.getPressure() != null, WaylineJobAtmosphere::getPressure, bo.getPressure()); |
|||
// lqw.eq(JSONUtil.isTypeJSONObject(bo.getAirData().toString()), WaylineJobAtmosphere::getAirData, bo.getAirData());
|
|||
lqw.eq(bo.getErrorCode() != null, WaylineJobAtmosphere::getErrorCode, bo.getErrorCode()); |
|||
lqw.eq(bo.getStatus() != null, WaylineJobAtmosphere::getStatus, bo.getStatus()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getParentId()), WaylineJobAtmosphere::getParentId, bo.getParentId()); |
|||
lqw.eq(bo.getJobType() != null, WaylineJobAtmosphere::getJobType, bo.getJobType()); |
|||
lqw.eq(bo.getProId() != null, WaylineJobAtmosphere::getProId, bo.getProId()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增无人机任务-空气质量 |
|||
* |
|||
* @param bo 无人机任务-空气质量 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(WaylineJobAtmosphereBo bo) { |
|||
WaylineJobAtmosphere add = MapstructUtils.convert(bo, WaylineJobAtmosphere.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改无人机任务-空气质量 |
|||
* |
|||
* @param bo 无人机任务-空气质量 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(WaylineJobAtmosphereBo bo) { |
|||
WaylineJobAtmosphere update = MapstructUtils.convert(bo, WaylineJobAtmosphere.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(WaylineJobAtmosphere entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除无人机任务-空气质量信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteByIds(ids) > 0; |
|||
} |
|||
|
|||
@Override |
|||
public void handleAdd(WaylineJobDTO waylineJobDTO, JSONObject json) { |
|||
System.out.println(waylineJobDTO); |
|||
System.out.println(json); |
|||
} |
|||
|
|||
@Override |
|||
public List<WaylineJobAtmosphereVo> demoList(WaylineJobAtmosphereBo bo) { |
|||
LambdaQueryWrapper<WaylineJobAtmosphere> wrapper = new LambdaQueryWrapper<>(); |
|||
wrapper.gt(WaylineJobAtmosphere::getId, 1240); |
|||
wrapper.lt(WaylineJobAtmosphere::getId, 2495); |
|||
List<WaylineJobAtmosphereVo> waylineJobAtmosphereVos = baseMapper.selectVoList(wrapper); |
|||
//转换airData让前台处理
|
|||
for (WaylineJobAtmosphereVo record : waylineJobAtmosphereVos) { |
|||
if(ObjectUtil.isNotEmpty(record.getAirData())){ |
|||
record.setAirDataJson(JSONUtil.parseObj(record.getAirData())); |
|||
} |
|||
} |
|||
return waylineJobAtmosphereVos; |
|||
} |
|||
} |
@ -0,0 +1,7 @@ |
|||
<?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.sample.wayline.mapper.WaylineJobAtmosphereMapper"> |
|||
|
|||
</mapper> |
Loading…
Reference in new issue