|
|
@ -3,6 +3,7 @@ package org.dromara.sample.manage.service.impl; |
|
|
|
import cn.hutool.core.convert.Convert; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
@ -11,6 +12,7 @@ import org.dromara.common.core.constant.DeviceQrtzConstants; |
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|
|
|
import org.dromara.common.satoken.utils.LoginHelper; |
|
|
|
|
|
|
|
import org.dromara.common.sdk.cloudapi.wayline.*; |
|
|
|
import org.dromara.sample.manage.mapper.IDeviceQrtzDateMapper; |
|
|
|
import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper; |
|
|
|
import org.dromara.sample.manage.mapper.IDeviceQrtzMapper; |
|
|
@ -25,21 +27,23 @@ import org.dromara.sample.manage.service.IDeviceQrtzDateService; |
|
|
|
import org.dromara.sample.manage.service.IDeviceQrtzService; |
|
|
|
|
|
|
|
import org.dromara.sample.wayline.mapper.IWaylineFileMapper; |
|
|
|
import org.dromara.sample.wayline.mapper.IWaylineJobMapper; |
|
|
|
import org.dromara.sample.wayline.model.entity.WaylineFileEntity; |
|
|
|
import org.dromara.sample.wayline.model.param.CreateJobParam; |
|
|
|
import org.dromara.sample.wayline.service.IFlightTaskService; |
|
|
|
import org.dromara.sample.wayline.service.IWaylineJobService; |
|
|
|
import org.dromara.system.api.model.LoginUser; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
|
|
|
|
import java.sql.SQLException; |
|
|
|
import java.text.ParseException; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.LocalTime; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
/** |
|
|
|
* @auther yq |
|
|
@ -57,6 +61,8 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { |
|
|
|
private IDeviceQrtzDateService deviceQrtzDateService; |
|
|
|
@Autowired |
|
|
|
private IWaylineFileMapper waylineFileMapper; |
|
|
|
@Autowired |
|
|
|
private IFlightTaskService flightTaskService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public TableDataInfo<DeviceQrtzEntity> listManageDeviceQrtz(Page page, DeviceQrtzDTO deviceQrtzDTO) { |
|
|
@ -257,17 +263,18 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public DeviceQrtzFileEntity getDeviceQrtzFileEntity(String deviceSn) { |
|
|
|
if(StrUtil.isNotEmpty(deviceSn)){ |
|
|
|
public DeviceQrtzFileEntity getDeviceQrtzFileEntity(DeviceDTO device) { |
|
|
|
if(StrUtil.isNotEmpty(device.getDeviceSn())){ |
|
|
|
// 获取当前日期
|
|
|
|
LocalDate currentDate = LocalDate.now(); |
|
|
|
|
|
|
|
// 定义日期格式
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
|
|
|
DateTimeFormatter formatterS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
|
|
|
// 格式化当前日期
|
|
|
|
String formattedDate = currentDate.format(formatter); |
|
|
|
List<DeviceQrtzFileEntity> qrtzFileEntityList = deviceQrtzFileMapper.selectList(new QueryWrapper<DeviceQrtzFileEntity>().eq("device_sn", deviceSn).eq("exec_date", formattedDate).eq("status", DeviceQrtzConstants.QRTZ_FILE_STATUS_1).orderByAsc("sort")); |
|
|
|
List<DeviceQrtzFileEntity> qrtzFileEntityList = deviceQrtzFileMapper.selectList(new QueryWrapper<DeviceQrtzFileEntity>().eq("device_sn", device.getDeviceSn()).eq("exec_date", formattedDate).eq("status", DeviceQrtzConstants.QRTZ_FILE_STATUS_1).orderByAsc("sort")); |
|
|
|
if(!qrtzFileEntityList.isEmpty()){ |
|
|
|
DeviceQrtzFileEntity deviceQrtzFileEntity = qrtzFileEntityList.get(0); |
|
|
|
List<DeviceQrtzDateEntity> qrtzDateEntityList = deviceQrtzDateMapper.listDeviceQrtzDateByQrtzAndDate(deviceQrtzFileEntity.getQrtzId()); |
|
|
@ -277,8 +284,28 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { |
|
|
|
for (DeviceQrtzDateEntity qrtzDate : qrtzDateEntityList) { |
|
|
|
if (!currentDateTime.isBefore(Convert.toLocalDateTime(qrtzDate.getStartDate())) && !currentDateTime.isAfter(Convert.toLocalDateTime(qrtzDate.getEndDate()))){ |
|
|
|
//获取航线数据发送之类
|
|
|
|
WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId())); |
|
|
|
if(waylineFileEntity == null){//更改为异常,当前航线不存在
|
|
|
|
continue; |
|
|
|
} |
|
|
|
//获取是否是工单航线,是修改状态
|
|
|
|
|
|
|
|
CreateJobParam createJobParam = new CreateJobParam(); |
|
|
|
try { |
|
|
|
createJobParam.setName(deviceQrtzFileEntity.getWaylineName()+""+currentDateTime.format(formatterS)); |
|
|
|
createJobParam.setFileId(deviceQrtzFileEntity.getWaylineId()); |
|
|
|
createJobParam.setDockSn(device.getDeviceSn()); |
|
|
|
createJobParam.setWaylineType(WaylineTypeEnum.find(waylineFileEntity.getTemplateTypes())); |
|
|
|
createJobParam.setTaskType(TaskTypeEnum.IMMEDIATE); |
|
|
|
createJobParam.setJobId(UUID.randomUUID().toString()); |
|
|
|
//createJobParam.setRthAltitude();
|
|
|
|
createJobParam.setMinBatteryCapacity(50); |
|
|
|
createJobParam.setJobType(WaylineJobTypeEnum.WISDOM_TASK); |
|
|
|
createJobParam.setWaylinePrecisionType(WaylinePrecisionTypeEnum.RTK); |
|
|
|
createJobParam.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME); |
|
|
|
flightTaskService.publishFlightTask(device.getWorkspaceId(),createJobParam); |
|
|
|
}catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|