diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java index c99d426..deaafc6 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java @@ -154,12 +154,7 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { @Override public Boolean add( DeviceQrtzDTO deviceQrtzDTO) { - if(!CollectionUtils.isEmpty(deviceQrtzDTO.getDeviceQrtzDates())){ - deviceQrtzDTO.getDeviceQrtzDates().forEach(e->{ - e.setQrtzId(deviceQrtzDTO.getId()); - deviceQrtzDateMapper.insert(e); - }); - } + DeviceQrtzEntity entity = new DeviceQrtzEntity(); entity.setDeviceSn(deviceQrtzDTO.getDeviceSn()); entity.setName(deviceQrtzDTO.getName()); @@ -169,7 +164,14 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { entity.setNickName(loginUser.getNickname()); entity.setCreateDept(loginUser.getDeptId()); entity.setDeptName(loginUser.getDeptName()); - return deviceQrtzMapper.insert(entity)>0; + int insert = deviceQrtzMapper.insert(entity); + if(!CollectionUtils.isEmpty(deviceQrtzDTO.getDeviceQrtzDates())){ + deviceQrtzDTO.getDeviceQrtzDates().forEach(e->{ + e.setQrtzId(entity.getId()); + deviceQrtzDateMapper.insert(e); + }); + } + return insert>0; } @Override @@ -190,7 +192,7 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { int sort=1; Long qrtzId = Convert.toLong(map.get("qrtzId")); String deviceSn = Convert.toStr(map.get("deviceSn")); - Date execDate = Convert.toDate(map.get("execDate")); + Date execDate = Convert.toDate(map.get("execDate"),new Date()); String waylineIdStr = Convert.toStr(map.get("waylineIdStr")); List selectList = deviceQrtzFileMapper.selectList(new QueryWrapper() .eq("qrtz_id", qrtzId).eq("exec_date",execDate).orderByDesc("sort")); @@ -282,7 +284,6 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { if (RedisOpsUtils.checkExist(device.getDeviceSn())) { return; } - RedisOpsUtils.setWithExpire(device.getDeviceSn(), device, 180); List qrtzEntityList = deviceQrtzMapper.selectList(new LambdaQueryWrapper().eq(DeviceQrtzEntity::getDeviceSn, device.getDeviceSn()).eq(DeviceQrtzEntity::getStatus, DeviceQrtzConstants.QRTZ_STATUS_1)); if(!qrtzEntityList.isEmpty()){ // 获取当前日期 @@ -292,57 +293,64 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { DateTimeFormatter formatterS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 格式化当前日期 String formattedDate = currentDate.format(formatter); - List qrtzFileEntityList = deviceQrtzFileMapper.selectList(new QueryWrapper().eq("device_sn", qrtzEntityList.get(0).getDeviceSn()).eq("exec_date", formattedDate).eq("qrtz_id",qrtzEntityList.get(0).getId()).eq("status", DeviceQrtzConstants.QRTZ_FILE_STATUS_1).orderByAsc("sort")); - if (!qrtzFileEntityList.isEmpty()) { - DeviceQrtzFileEntity deviceQrtzFileEntity = qrtzFileEntityList.get(0); - List qrtzDateEntityList = deviceQrtzDateMapper.listDeviceQrtzDateByQrtzAndDate(deviceQrtzFileEntity.getQrtzId()); - if (!qrtzDateEntityList.isEmpty()) { - // 获取当前日期和时间 + for (DeviceQrtzEntity deviceQrtzEntity : qrtzEntityList) { + List qrtzDateEntityList = deviceQrtzDateMapper.listDeviceQrtzDateByQrtzAndDate(deviceQrtzEntity.getId()); + //判断下是否有时间 + if(!qrtzDateEntityList.isEmpty()){ + //遍历,当前时间是否在范围内 for (DeviceQrtzDateEntity qrtzDate : qrtzDateEntityList) { + //在里面执行航线,进行无人机飞行 if (!currentDate.isBefore(Convert.toLocalDateTime(qrtzDate.getStartDate())) && !currentDate.isAfter(Convert.toLocalDateTime(qrtzDate.getEndDate()))) { - //获取航线数据发送之类 - WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId())); - if (waylineFileEntity == null) { - //更改为异常,当前航线不存在 - deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); - deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); - continue; - } - //获取是否是工单航线,是修改状态 - remoteBusinessTaskFeign.updateTaskStatus(deviceQrtzFileEntity.getWaylineId(), BusinessConstants.TASK_STATUS_2, null, null); - CreateJobParam createJobParam = new CreateJobParam(); - try { - createJobParam.setName(deviceQrtzFileEntity.getWaylineName() + "" + currentDate.format(formatterS)); - createJobParam.setWaylineName(deviceQrtzFileEntity.getWaylineName()); - createJobParam.setFileId(deviceQrtzFileEntity.getWaylineId()); - createJobParam.setDockSn(device.getDeviceSn()); - createJobParam.setWaylineType(WaylineTypeEnum.find(Integer.parseInt(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); - createJobParam.setRthAltitude(120); - HttpResultResponse httpResultResponse = flightTaskService.publishFlightTask(device.getWorkspaceId(), createJobParam, deviceQrtzFileEntity.getNickName()); - if(httpResultResponse.getCode() == 0){ - deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_2); - deviceQrtzFileEntity.setFlightDate(new Date()); + List qrtzFileEntityList = deviceQrtzFileMapper.selectList(new QueryWrapper().eq("device_sn",deviceQrtzEntity.getDeviceSn()).eq("exec_date", formattedDate).eq("qrtz_id",deviceQrtzEntity.getId()).eq("status", DeviceQrtzConstants.QRTZ_FILE_STATUS_1).orderByAsc("sort")); + if(!qrtzFileEntityList.isEmpty()){ + DeviceQrtzFileEntity deviceQrtzFileEntity = qrtzFileEntityList.get(0); + //获取航线数据发送之类 + WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId())); + if (waylineFileEntity == null) { + //更改为异常,当前航线不存在 + deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); continue; } - deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); - deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); - } catch (Exception e) { - e.printStackTrace(); + //获取是否是工单航线,是修改状态 + remoteBusinessTaskFeign.updateTaskStatus(deviceQrtzFileEntity.getWaylineId(), BusinessConstants.TASK_STATUS_2, null, null); + CreateJobParam createJobParam = new CreateJobParam(); + try { + createJobParam.setName(deviceQrtzFileEntity.getWaylineName() + "" + currentDate.format(formatterS)); + createJobParam.setWaylineName(deviceQrtzFileEntity.getWaylineName()); + createJobParam.setFileId(deviceQrtzFileEntity.getWaylineId()); + createJobParam.setDockSn(device.getDeviceSn()); + createJobParam.setWaylineType(WaylineTypeEnum.find(Integer.parseInt(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); + createJobParam.setRthAltitude(120); + HttpResultResponse httpResultResponse = flightTaskService.publishFlightTask(device.getWorkspaceId(), createJobParam, deviceQrtzFileEntity.getNickName()); + if(httpResultResponse.getCode() == 0){ + deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_2); + deviceQrtzFileEntity.setFlightDate(new Date()); + deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); + continue; + } + deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); + deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); + RedisOpsUtils.setWithExpire(device.getDeviceSn(), device, 180); + return; + } catch (Exception e) { + e.printStackTrace(); + } } + } } - } } + }