From 58663e44df329247b2c57b7fad3a5742f89ddb5c Mon Sep 17 00:00:00 2001 From: tuqiang <437016993@qq.com> Date: Thu, 12 Jun 2025 20:09:52 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E4=BC=98=E5=8C=96=E4=B8=80=E6=A5=BC?= =?UTF-8?q?=E8=AF=BA=E5=AE=9D=E5=8F=96=E8=B4=A7=E5=AE=8C=E6=88=90=E4=BA=A4?= =?UTF-8?q?=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/acs/AcsConfig.java | 5 ++ .../main/java/org/nl/acs/agv/AgvWaitUtil.java | 79 ++++++++++++------- 2 files changed, 54 insertions(+), 30 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java index b57e4dabf..4693b4436 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java @@ -83,6 +83,11 @@ public interface AcsConfig { */ String pgErrorSendLms = "pgErrorSendLms"; + /** + * 是否存在wms系统 + */ + String isSendLms = "isSendLms"; + /** * 是否请求wms系统 */ diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/AgvWaitUtil.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/AgvWaitUtil.java index 00fc9ed8f..3218fac27 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/AgvWaitUtil.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/AgvWaitUtil.java @@ -1,9 +1,12 @@ package org.nl.acs.agv; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.AcsConfig; +import org.nl.acs.common.base.CommonFinalParam; import org.nl.acs.device.domain.Device; import org.nl.acs.device_driver.one_conveyor.box_subvolumes_conveyor.BoxSubvolumesConveyorDeviceDriver; import org.nl.acs.device_driver.two_conveyor.manipulator_agv_station.ManipulatorAgvStationDeviceDriver; @@ -15,12 +18,17 @@ import org.nl.acs.task.enums.ActionTypeEnum; import org.nl.acs.task.enums.AgvActionTypeEnum; import org.nl.acs.task.enums.AgvSystemTypeEnum; import org.nl.common.exception.BadRequestException; +import org.nl.config.SpringContextHolder; import org.nl.config.lucene.service.LuceneExecuteLogService; import org.nl.config.lucene.service.dto.LuceneLogDto; +import org.nl.system.service.param.ISysParamService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import java.util.LinkedHashMap; +import java.util.Map; + /** * @author zhangjiangwei */ @@ -42,6 +50,8 @@ public class AgvWaitUtil { @Autowired private LuceneExecuteLogService luceneExecuteLogService; + @Autowired + ISysParamService paramService; //取货前等待 public JSONObject waitInGet(String startDeviceCode, Instruction inst) { @@ -50,7 +60,7 @@ public class AgvWaitUtil { ManipulatorAgvStationDeviceDriver manipulatorAgvStationDeviceDriver; BoxSubvolumesConveyorDeviceDriver boxSubvolumesConveyorDeviceDriver; //agv诺宝对接位安全信号交互 - if (startDevice.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + if (startDevice.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) startDevice.getDeviceDriver(); if (manipulatorAgvStationDeviceDriver.getTo_command() != 2) { manipulatorAgvStationDeviceDriver.writing(2); @@ -130,15 +140,23 @@ public class AgvWaitUtil { } //诺宝agv调lms更新点位 if (inst.getAgv_system_type().equals(AgvSystemTypeEnum.One_NDC_System_Type.getIndex())) { - if (!AgvActionTypeEnum.ORDINARY.getCode().equals(inst.getAgv_action_type())) { - applyLmsGetOut(inst); - } if (startDevice.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) startDevice.getDeviceDriver(); if (manipulatorAgvStationDeviceDriver.getTo_command() != 3) { manipulatorAgvStationDeviceDriver.writing(3); } - if (manipulatorAgvStationDeviceDriver.getAction() != 0) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + if (manipulatorAgvStationDeviceDriver.getAction() == 0 && manipulatorAgvStationDeviceDriver.getMode() == 2) { + if (StrUtil.equals(paramService.findByCode(AcsConfig.isSendLms).getValue(), CommonFinalParam.ONE)){ + if (!AgvActionTypeEnum.ORDINARY.getCode().equals(inst.getAgv_action_type())) { + applyLmsGetOut(inst); + } + } + } else { LuceneLogDto logDto = LuceneLogDto.builder() .device_code(manipulatorAgvStationDeviceDriver.getDevice_code()) .content("未给agv离开信号原因是:" + manipulatorAgvStationDeviceDriver.getDevice_code() + "动作信号不为0") @@ -154,38 +172,39 @@ public class AgvWaitUtil { JSONObject map = new JSONObject(); map.put("status", 200); map.put("message", "允许离开!"); + log.info("允许仙工AGV取货完成后请求离开,返回参数 - {}", map); log.info("允许仙工AGV取货完成后请求离开,设备号 - {}", startDeviceCode); return map; } private void applyLmsGetOut(Instruction inst) { - JSONObject param = new JSONObject(); - param.put("taskCode", inst.getTask_code()); - param.put("actionType", ActionTypeEnum.IN_FINISHING.getCode().toString()); - LuceneLogDto logDto = LuceneLogDto.builder() + JSONObject param = new JSONObject(); + param.put("taskCode", inst.getTask_code()); + param.put("actionType", ActionTypeEnum.IN_FINISHING.getCode().toString()); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(inst.getCarno()) + .content("诺宝取货完成请求lms:" + inst.getTask_code() + "--" + ActionTypeEnum.IN_FINISHING.getStatus()) + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + String response = acsToWmsService.secondaryAllocationPoint(param); + JSONObject jo = JSON.parseObject(response); + if (jo.getInteger("status") == 200) { + LuceneLogDto logDto2 = LuceneLogDto.builder() .device_code(inst.getCarno()) - .content("诺宝取货完成请求lms:" + inst.getTask_code() + "--" + ActionTypeEnum.IN_FINISHING.getStatus()) + .content("诺宝取货完成请求lms,参数,接口返回:" + jo) .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - String response = acsToWmsService.secondaryAllocationPoint(param); - JSONObject jo = JSON.parseObject(response); - if (jo.getInteger("status") == 200) { - LuceneLogDto logDto2 = LuceneLogDto.builder() - .device_code(inst.getCarno()) - .content("诺宝取货完成请求lms,参数,接口返回:" + jo) - .build(); - logDto2.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto2); - } else { - LuceneLogDto logDto2 = LuceneLogDto.builder() - .device_code(inst.getCarno()) - .content("请求lms追加动诺宝作块失败,返回参数:" + jo) - .build(); - logDto2.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto2); - throw new BadRequestException("追加动诺宝作块返回失败"); - } + logDto2.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto2); + } else { + LuceneLogDto logDto2 = LuceneLogDto.builder() + .device_code(inst.getCarno()) + .content("请求lms追加动诺宝作块失败,返回参数:" + jo) + .build(); + logDto2.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto2); + throw new BadRequestException("追加动诺宝作块返回失败"); + } } //放货前等待