diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 70947d710..4c7b748a1 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -595,11 +595,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic .build(); logDto.setLog_level(4); luceneExecuteLogService.deviceExecuteLog(logDto); - try { - manipulatorAgvStationDeviceDriver.writing(3); - } catch (Exception e) { - e.printStackTrace(); - } + } else { log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", manipulatorAgvStationDeviceDriver.getDeviceCode(), manipulatorAgvStationDeviceDriver.getAction(), ikey); LuceneLogDto logDto = LuceneLogDto.builder() @@ -1156,7 +1152,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //收卷锟行架 if (linkDevice.getDeviceDriver() instanceof RollUpRollerManipulatorDeviceDriver) { rollUpRollerManipulatorDeviceDriver = (RollUpRollerManipulatorDeviceDriver) linkDevice.getDeviceDriver(); - if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && rollUpRollerManipulatorDeviceDriver.getMode() != 3 && rollUpRollerManipulatorDeviceDriver.getError() == 0 && rollUpRollerManipulatorDeviceDriver.getTask() == 0 && rollUpRollerManipulatorDeviceDriver.getError2() == 0 && manipulatorAgvStationDeviceDriver.getMove() == 1)) { + if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && rollUpRollerManipulatorDeviceDriver.getMode() != 3 && rollUpRollerManipulatorDeviceDriver.getError() == 0 && rollUpRollerManipulatorDeviceDriver.getTask() == 0 && rollUpRollerManipulatorDeviceDriver.getError2() == 0 && manipulatorAgvStationDeviceDriver.getMove() == 0)) { // 查询缓存架点位状态 JSONObject param = new JSONObject(); param.put("device_code", device_code); @@ -1278,31 +1274,14 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic String start_device_code2 = inst.getStart_device_code2(); String next_device_code2 = inst.getNext_device_code2(); //AGV取完收卷辊请求离开 - if (ObjectUtil.isNotEmpty(start_device_code) && StrUtil.equals(device_code, next_device_code2)) { + if (ObjectUtil.isNotEmpty(start_device_code) && (StrUtil.equals(device_code, start_device_code) || StrUtil.equals(device_code, start_device_code2))) { if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); try { - manipulatorAgvStationDeviceDriver.writing(7); + manipulatorAgvStationDeviceDriver.writing(3); } catch (Exception e) { e.printStackTrace(); } - if (manipulatorAgvStationDeviceDriver.getAction() == 1) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("agvphase:" + phase + "反馈:" + data) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - } else { - message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "mode信号:" + manipulatorAgvStationDeviceDriver.getMode() + "光电信号:" + manipulatorAgvStationDeviceDriver.getMove() + ",指令号:" + ikey + "不满足取货条件"; - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(manipulatorAgvStationDeviceDriver.getDeviceCode()) - .content(manipulatorAgvStationDeviceDriver.getDevice_code() + "动作信号不为1") - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java index 30884866e..a6e131456 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -1061,15 +1061,15 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i String move = ""; String action = ""; String walk_y = ""; - if (this.getMode() == 0) { - mode = LangProcess.msg("universal_off-line"); - } else if (this.getMode() == 1) { - mode = LangProcess.msg("universal_stand-alone"); - } else if (this.getMode() == 2) { - mode = LangProcess.msg("universal_standby"); - } else if (this.getMode() == 3) { - mode = LangProcess.msg("universal_operation"); - } + if (this.getMode() == 0) { + mode = LangProcess.msg("universal_off-line"); + } else if (this.getMode() == 1) { + mode = LangProcess.msg("universal_stand-alone"); + } else if (this.getMode() == 2) { + mode = LangProcess.msg("universal_standby"); + } else if (this.getMode() == 3) { + mode = LangProcess.msg("universal_operation"); + } if (this.getMove() == 0) { move = LangProcess.msg("universal_no"); @@ -1132,7 +1132,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i this.requireSucess = true; } if (HXDJ4Device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { - manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) HXDJ4Device.getDeviceDriver(); if (StrUtil.equals(requireActionSucess, "0")) { manipulatorAgvStationDeviceDriver.setOvenGantryTask(false); } else if (StrUtil.equals(requireActionSucess, "1")) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pipe_core_rack_manipulator/PipeCoreRackManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pipe_core_rack_manipulator/PipeCoreRackManipulatorDeviceDriver.java index 8b85b30d6..7318d3f69 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pipe_core_rack_manipulator/PipeCoreRackManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pipe_core_rack_manipulator/PipeCoreRackManipulatorDeviceDriver.java @@ -21,6 +21,8 @@ import org.nl.acs.device_driver.FeedLmsRealFailed; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.device_driver.two_conveyor.hongxiang_device.HongXiangConveyorDeviceDriver; +import org.nl.acs.device_driver.two_conveyor.pipe_core_rack_cachebit.PipeCoreRackCachebitDeviceDriver; import org.nl.acs.enums.PointErrorTypeEnum; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; @@ -540,6 +542,7 @@ public class PipeCoreRackManipulatorDeviceDriver extends AbstractOpcDeviceDriver if (ObjectUtil.isEmpty(putDeviceCodeList)) { putDeviceCodeList = this.getExtraDeviceCodes("put_device_code"); } + PipeCoreRackCachebitDeviceDriver pipeCoreRackCachebitDeviceDriver; //找终点为入库输送线工位任务类型为行架的任务 for (int i = 0; i < getDeviceCodeList.size(); i++) { String startDeviceCode = getDeviceCodeList.get(i); @@ -569,6 +572,14 @@ public class PipeCoreRackManipulatorDeviceDriver extends AbstractOpcDeviceDriver throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); } + if (nextDevice.getDeviceDriver() instanceof PipeCoreRackCachebitDeviceDriver) { + pipeCoreRackCachebitDeviceDriver = (PipeCoreRackCachebitDeviceDriver) nextDevice.getDeviceDriver(); + if (pipeCoreRackCachebitDeviceDriver.getMode() == 1 ) { + notCreateInstMessage = "缓存位已经放满 move "+ pipeCoreRackCachebitDeviceDriver.getMove(); + return false; + } + } + Map map1 = new HashMap<>(); Map map2 = new HashMap<>(); Map map3 = new HashMap<>(); @@ -587,6 +598,7 @@ public class PipeCoreRackManipulatorDeviceDriver extends AbstractOpcDeviceDriver } } else { TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { String start_device_code = taskDto.getStart_device_code(); String next_device_code = taskDto.getNext_device_code(); @@ -605,6 +617,14 @@ public class PipeCoreRackManipulatorDeviceDriver extends AbstractOpcDeviceDriver throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); } + if (nextDevice.getDeviceDriver() instanceof PipeCoreRackCachebitDeviceDriver) { + pipeCoreRackCachebitDeviceDriver = (PipeCoreRackCachebitDeviceDriver) nextDevice.getDeviceDriver(); + if (pipeCoreRackCachebitDeviceDriver.getMode() == 1 ) { + notCreateInstMessage = "缓存位已经放满 move "+ pipeCoreRackCachebitDeviceDriver.getMove(); + return false; + } + } + String interactionJson = taskDto.getInteraction_json(); InteractionJsonDTO interactionJsonDTO = null; if (StrUtil.isNotEmpty(interactionJson)) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/roll_up_roller_manipulator/RollUpRollerManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/roll_up_roller_manipulator/RollUpRollerManipulatorDeviceDriver.java index c011565c4..a277ee6b3 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/roll_up_roller_manipulator/RollUpRollerManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/roll_up_roller_manipulator/RollUpRollerManipulatorDeviceDriver.java @@ -539,8 +539,8 @@ public class RollUpRollerManipulatorDeviceDriver extends AbstractOpcDeviceDriver if (startDevice.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) startDevice.getDeviceDriver(); - if (manipulatorAgvStationDeviceDriver.getMove() != 0) { - notCreateInstMessage = "手动创建指令未下发电气信号原因->放货位-收卷锟对接位:" + manipulatorAgvStationDeviceDriver.getMove() + "有货,无法下发指令!任务号:" + instruction.getInstruction_code(); + if (manipulatorAgvStationDeviceDriver.getMove() == 0) { + notCreateInstMessage = "手动创建指令未下发电气信号原因->放货位-收卷锟对接位:" + manipulatorAgvStationDeviceDriver.getMove() + "无货,无法下发指令!任务号:" + instruction.getInstruction_code(); return false; } } @@ -611,8 +611,8 @@ public class RollUpRollerManipulatorDeviceDriver extends AbstractOpcDeviceDriver if (startDevice.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) startDevice.getDeviceDriver(); - if (manipulatorAgvStationDeviceDriver.getMove() != 0) { - notCreateInstMessage = "手动创建指令未下发电气信号原因->放货位-收卷锟对接位:" + manipulatorAgvStationDeviceDriver.getMove() + "有货,无法下发指令!" ; + if (manipulatorAgvStationDeviceDriver.getMove() == 0) { + notCreateInstMessage = "手动创建指令未下发电气信号原因->放货位-收卷锟对接位:" + manipulatorAgvStationDeviceDriver.getMove() + "无货,无法下发指令!" ; return false; } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index d31d97df6..c6552451e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -1716,14 +1716,14 @@ public class TaskServiceImpl extends CommonServiceImpl impleme JSONArray ja = new JSONArray(); ja.add(feed_jo); //TODO 有需要根据上位系统反馈的信息再做进一步处理 - CompletableFuture.runAsync(() -> { - acstowmsService.feedTaskStatus(ja); - // 异步更新任务状态 - try { - } catch (Exception e) { - e.printStackTrace(); - } - }); + acstowmsService.feedTaskStatus(ja); +// CompletableFuture.runAsync(() -> { +// // 异步更新任务状态 +// try { +// } catch (Exception e) { +// e.printStackTrace(); +// } +// }); } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/controller/OtherPdaController.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/controller/OtherPdaController.java index d01b87c14..e4e948259 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/controller/OtherPdaController.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/controller/OtherPdaController.java @@ -35,6 +35,13 @@ public class OtherPdaController { public ResponseEntity resumeMoveWasteFoilV2(@RequestBody JSONObject param) { return new ResponseEntity<>(otherPdaService.resumeMoveWasteFoilV2(param), HttpStatus.OK); } + + @PostMapping("/resumeAutoMoveWasteFoil") + @Log("继续自动巡航搬运废箔") + public ResponseEntity resumeAutoMoveWasteFoil(@RequestBody JSONObject param) { + return new ResponseEntity<>(otherPdaService.resumeAutoMoveWasteFoil(param), HttpStatus.OK); + } + @PostMapping("/startMoveWasteFoil") @Log("开始搬运废箔信息") public ResponseEntity startMoveWasteFoil(@RequestBody JSONObject param) { diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/OtherPdaService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/OtherPdaService.java index 3aaf067d0..4cac131fb 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/OtherPdaService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/OtherPdaService.java @@ -63,4 +63,6 @@ public interface OtherPdaService { * @return / */ JSONObject callAgvToSamplingVerify(JSONObject param); + + JSONObject resumeAutoMoveWasteFoil(JSONObject param); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java index 332819d7a..7702f7212 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.st.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; @@ -30,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.stream.Collectors; /** * @Author: lyd @@ -92,26 +94,17 @@ public class OtherPdaServiceImpl implements OtherPdaService { String flag = param.getString("flag"); // 判断是否能够搬运 String pointCode = param.getString("point_code"); - // 校验是否二次创建任务 - SchBaseTask schBaseTasks = taskService.getTaskByPointCodeX(pointCode, null, null, null); - if (ObjectUtil.isNotEmpty(schBaseTasks)) { - throw new BadRequestException("点位[" + pointCode + "]已经存在任务!"); - } - // 查找执行中的任务 - SchBaseTask task = taskService.getOne(new LambdaQueryWrapper() - .eq(SchBaseTask::getPoint_code2, pointCode) - .lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())); - if (ObjectUtil.isEmpty(task)) { - throw new BadRequestException("点位[" + pointCode + "]上一个任务不存在!"); - } + SchBaseTask task = checkTask(pointCode); + JSONObject upTaskRequestObj = JSONObject.parseObject(task.getRequest_param()); // 获取下一条的任务 List waitTask = taskService.getTaskByConfigAndStatus(task.getConfig_code(), TaskStatus.SURE_END.getCode()); + // 结束或者没有任务后回废料起点 if (waitTask.size() == 0 || "2".equals(flag)) { // 最后一条任务, 创建去终点的任务 // 获取一个废箔位置 List fbPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-FB", - "2", null, null, null); + "1", "1", null, null); if (CollectionUtil.isEmpty(fbPoints)) { throw new BadRequestException("找不到废箔点位,请稍后再试!"); } @@ -140,8 +133,60 @@ public class OtherPdaServiceImpl implements OtherPdaService { taskService.updateById(nextTask); } // 通知ACS完成上一个任务 + // 通知ACS完成上一个任务 JSONArray acs = new JSONArray(); + JSONObject result = new JSONObject(); JSONObject acsParam = new JSONObject(); + noticeAcs(acsParam, task, pointCode, acs, result); + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject resumeAutoMoveWasteFoil(JSONObject param) { + // 判断是否能够搬运 + String pointCode = param.getString("point_code"); + // 校验是否二次创建任务 + SchBaseTask task = checkTask(pointCode); + List fbPoints = pointService.getAllBusinessTaskPoint("A1", "A1-FB", + "2", "1", null, null); + if (CollectionUtil.isEmpty(fbPoints)) { + throw new BadRequestException("找不到废箔点位,请稍后再试!"); + } + JSONObject upTaskRequestObj = JSONObject.parseObject(task.getRequest_param()); + + // 自动巡航过滤下一个废箔点位 + List pointCodeCurrent = fbPoints.stream().filter(point -> point.getPoint_code().equals(pointCode)).collect(Collectors.toList()); + if (CollUtil.isEmpty(pointCodeCurrent)) { + throw new BadRequestException("自动巡航废箔任务执行异常,当前点位不存在"); + } + List fbPointsFilter = fbPoints.stream() + .filter(point -> point.getSort()!= null) + .filter(point -> point.getSort().equals(pointCodeCurrent.get(0).getSort() + 1)).collect(Collectors.toList()); + if (CollUtil.isEmpty(fbPointsFilter)) { + throw new BadRequestException("自动巡航废箔任务执行异常,已到达最后一个点位"); + } + JSONObject taskParam = new JSONObject(); + taskParam.put("point_code1", pointCode); + taskParam.put("point_code2", fbPointsFilter.get(0).getPoint_code()); + taskParam.put("config_code", "SendWasteFoilAGVTask"); + taskParam.put("create_mode", GeneralDefinition.PDA_CREATION); + taskParam.put("remark", "自动巡航"); + taskParam.put("up_task_code", task.getTask_code()); + taskParam.put("index_task", upTaskRequestObj.getInteger("index_task") + 1); + taskParam.put("carNo", task.getCar_no()); + taskParam.put("task_status", TaskStatus.START_AND_POINT.getCode()); + sendWasteFoilAGVTask.createTask(taskParam); + + // 通知ACS完成上一个任务 + JSONArray acs = new JSONArray(); + JSONObject result = new JSONObject(); + JSONObject acsParam = new JSONObject(); + noticeAcs(acsParam, task, pointCode, acs, result); + return result; + } + + private void noticeAcs(JSONObject acsParam, SchBaseTask task, String pointCode, JSONArray acs, JSONObject result) { acsParam.put("task_code", task.getTask_code()); acsParam.put("device_code", pointCode); acsParam.put("product_area", "A1"); @@ -150,10 +195,23 @@ public class OtherPdaServiceImpl implements OtherPdaService { acs.add(acsParam); JSONObject jsonObject = wmsToAcsService.updateTask(acs); log.info("通知ACS完成上一个任务的反馈 - {}", jsonObject); - JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); result.put("message", "废箔继续搬运请求成功!"); - return result; + } + + private SchBaseTask checkTask(String pointCode) { + SchBaseTask schBaseTasks = taskService.getTaskByPointCodeX(pointCode, null, null, null); + if (ObjectUtil.isNotEmpty(schBaseTasks)) { + throw new BadRequestException("点位[" + pointCode + "]已经存在任务!"); + } + // 查找执行中的任务 + SchBaseTask task = taskService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code2, pointCode) + .lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("点位[" + pointCode + "]上一个任务不存在!"); + } + return task; } @Override diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoMoveWasteFoilAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoMoveWasteFoilAGVTask.java new file mode 100644 index 000000000..8dc07e0fe --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoMoveWasteFoilAGVTask.java @@ -0,0 +1,55 @@ +package org.nl.wms.quartz; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.pda.st.service.OtherPdaService; +import org.nl.wms.pda.st.service.impl.OtherPdaServiceImpl; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task_manage.TaskStatus; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 自动巡航废箔任务,起点到第一个生箔位 + * @Author: lyd + * @Date: 2024/8/27 + */ +@Slf4j +@Component +public class AutoMoveWasteFoilAGVTask { + + @Autowired + private OtherPdaService otherPdaService; + + @Autowired + private ISchBasePointService pointService; + public void run() { + log.info("自动巡航废箔任务开始执行..."); + + JSONObject jsonObject = new JSONObject(); + List fbPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-FB", + "2", "1", null, null); + // 筛选一号位 + List fbPointsFilter = fbPoints.stream() + .filter(point -> point.getSort()!= null) + .filter(point -> point.getSort() .equals(1)).collect(Collectors.toList()); + if (CollUtil.isEmpty(fbPointsFilter)) { + log.info("自动巡航废箔任务执行异常,无废箔位"); + return; + } + jsonObject.put("point_code", fbPointsFilter.get(0).getPoint_code()); + otherPdaService.startMoveWasteFoilV2(jsonObject); + + } +} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java index 741e9b621..77be7afca 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java @@ -124,4 +124,7 @@ public interface ISchBasePointService extends IService { * @return */ List getGxPointNotLock(); + + List getAllBusinessTaskPoint(String area, String region, String pointType, + String pointStatus, String vehicleType, String vehicleCode); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java index 1329038fb..dab0eaba0 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java @@ -38,6 +38,9 @@ public interface SchBasePointMapper extends BaseMapper { List getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus, String vehicleType, String vehicleCode); + List getAllBusinessTaskPoint(String area, String region, String pointType, String pointStatus, + String vehicleType, String vehicleCode); + /** * 获取收卷没任务、生箔机指定的收卷的点位 * @param code / diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml index cf04b8c99..7ba9af300 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml @@ -66,6 +66,31 @@ OR t.point_code4 = p.point_code)) ORDER BY p.update_time + + +