From da6a39c10a6eeab13ca2db182e41c9e1df61fb93 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 30 Jan 2026 14:37:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B5=B7=E5=BA=B7=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3-base?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/acs/AcsConfig.java | 4 + .../java/org/nl/acs/agv/hk/HkHttpUtil.java | 131 ++++++++++++ .../org/nl/acs/agv/hk/HkRequestAdapter.java | 20 ++ .../org/nl/acs/agv/hk/HkResponseAdapter.java | 39 ++++ .../org/nl/acs/agv/hk/RequestAdapter.java | 10 + .../org/nl/acs/agv/hk/ResponseAdapter.java | 12 ++ .../org/nl/acs/agv/hk/UnifiedResponse.java | 55 +++++ .../agv/hk/log/OtherToInterfaceLogAspect.java | 109 ++++++++++ .../acs/agv/hk/log/OthersToInterfaceLog.java | 12 ++ .../agv/hk/log/ToOtherInterfaceLogAspect.java | 139 ++++++++++++ .../acs/agv/hk/log/ToOthersInterfaceLog.java | 12 ++ .../nl/acs/agv/hk/rest/AcsToHkController.java | 64 ++++++ .../nl/acs/agv/hk/rest/HkToACSController.java | 41 ++++ .../nl/acs/agv/hk/service/AcsToHkService.java | 111 ++++++++++ .../nl/acs/agv/hk/service/HkToAcsService.java | 27 +++ .../nl/acs/agv/hk/service/data/BaseReq.java | 27 +++ .../nl/acs/agv/hk/service/data/BaseResp.java | 15 ++ .../hk/service/data/BindPodAndBerthReq.java | 24 +++ .../hk/service/data/BindPodAndBerthResp.java | 13 ++ .../acs/agv/hk/service/data/BlockAreaReq.java | 30 +++ .../agv/hk/service/data/BlockAreaResp.java | 13 ++ .../agv/hk/service/data/BoxApplyPassReq.java | 24 +++ .../agv/hk/service/data/BoxApplyPassResp.java | 13 ++ .../agv/hk/service/data/CancelTaskReq.java | 18 ++ .../agv/hk/service/data/CanncelTaskResp.java | 12 ++ .../agv/hk/service/data/ContinueTaskReq.java | 20 ++ .../agv/hk/service/data/ContinueTaskResp.java | 12 ++ .../service/data/GenAgvSchedulingTaskReq.java | 36 ++++ .../data/GenAgvSchedulingTaskResp.java | 13 ++ .../service/data/GenPreScheduleTaskReq.java | 47 +++++ .../service/data/GenPreScheduleTaskResp.java | 13 ++ .../hk/service/data/QueryAgvStatusReq.java | 18 ++ .../hk/service/data/QueryAgvStatusResp.java | 16 ++ .../hk/service/data/QueryTaskStatusReq.java | 22 ++ .../hk/service/data/QueryTaskStatusResp.java | 16 ++ .../agv/hk/service/data/ResumeRobotReq.java | 23 ++ .../agv/hk/service/data/ResumeRobotResp.java | 13 ++ .../acs/agv/hk/service/data/StopRobotReq.java | 23 ++ .../agv/hk/service/data/StopRobotResp.java | 13 ++ .../service/data/dto/QueryAgvStatusDto.java | 28 +++ .../service/data/dto/QueryTaskStatusDto.java | 16 ++ .../hk/service/impl/AcsToHkServiceImpl.java | 94 +++++++++ .../hk/service/impl/HkToAcsServiceImpl.java | 197 ++++++++++++++++++ .../java/org/nl/acs/agv/hk/utils/IpUtil.java | 35 ++++ .../nl/acs/agv/hk/utils/TypeCastingUtil.java | 26 +++ .../java/org/nl/acs/ext/wms/LmsHttpUtil.java | 134 ++++++++++++ .../org/nl/acs/ext/wms/LmsRequestAdapter.java | 20 ++ .../nl/acs/ext/wms/LmsResponseAdapter.java | 31 +++ .../acs/ext/wms/service/AcsToWmsService.java | 38 ++++ .../wms/service/impl/AcsToWmsServiceImpl.java | 35 +++- .../acs/instruction/enums/InstTypeEnum.java | 76 +++++++ .../service/dto/InstructionDto.java | 5 + .../service/lucene/dto/LuceneLogDto.java | 27 +++ 53 files changed, 2019 insertions(+), 3 deletions(-) create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkHttpUtil.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkRequestAdapter.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkResponseAdapter.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/RequestAdapter.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/ResponseAdapter.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/UnifiedResponse.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/OtherToInterfaceLogAspect.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/OthersToInterfaceLog.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/ToOtherInterfaceLogAspect.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/ToOthersInterfaceLog.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/rest/AcsToHkController.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/rest/HkToACSController.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/AcsToHkService.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/HkToAcsService.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BaseReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BaseResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BindPodAndBerthReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BindPodAndBerthResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BlockAreaReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BlockAreaResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BoxApplyPassReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BoxApplyPassResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/CancelTaskReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/CanncelTaskResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ContinueTaskReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ContinueTaskResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenAgvSchedulingTaskReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenAgvSchedulingTaskResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenPreScheduleTaskReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenPreScheduleTaskResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryAgvStatusReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryAgvStatusResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryTaskStatusReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryTaskStatusResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ResumeRobotReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ResumeRobotResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/StopRobotReq.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/StopRobotResp.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/dto/QueryAgvStatusDto.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/dto/QueryTaskStatusDto.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/AcsToHkServiceImpl.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/HkToAcsServiceImpl.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/utils/IpUtil.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/utils/TypeCastingUtil.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsHttpUtil.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsRequestAdapter.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsResponseAdapter.java create mode 100644 acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/enums/InstTypeEnum.java diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java index 9f0445c..6a4c339 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java @@ -63,4 +63,8 @@ public interface AcsConfig { String LOGLEVEL = "log_level"; String ELECTRIC ="electric"; + + String HAS_HK = "has_hk"; + + String HK_URL = "hk_url"; } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkHttpUtil.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkHttpUtil.java new file mode 100644 index 0000000..9f0b5ea --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkHttpUtil.java @@ -0,0 +1,131 @@ +package org.nl.acs.agv.hk; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import org.nl.acs.AcsConfig; +import org.nl.acs.common.base.CommonFinalParam; +import org.nl.acs.agv.hk.log.ToOthersInterfaceLog; +import org.nl.system.service.param.ISysParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/4/22 + */ +@Component +public class HkHttpUtil { + + private static final RequestAdapter REQUEST_ADAPTER = new HkRequestAdapter(); + private static final ResponseAdapter RESPONSE_ADAPTER = new HkResponseAdapter(); + + @Autowired + private ISysParamService paramService; + + @ToOthersInterfaceLog("ACS->HK") + public UnifiedResponse sendPostRequest(String path, W requestParam, Class type) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_HK).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .post(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .body(JSON.toJSONString(requestParam)) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, type); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->HK") + public UnifiedResponse sendPostRequest(String path, W requestParam) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_HK).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .post(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .body(JSON.toJSONString(requestParam)) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, null); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->HK") + public UnifiedResponse sendPostRequest(String path, Class type) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_HK).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .post(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, type); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->HK") + public UnifiedResponse sendPostRequest(String path) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_HK).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .post(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, null); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->HK") + public UnifiedResponse sendGetRequest(String path, Class type) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_HK).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .get(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, type); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->HK") + public UnifiedResponse sendGetRequest(String path) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_HK).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .get(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, null); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkRequestAdapter.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkRequestAdapter.java new file mode 100644 index 0000000..9ce380f --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkRequestAdapter.java @@ -0,0 +1,20 @@ +package org.nl.acs.agv.hk; + +import org.nl.acs.AcsConfig; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.ISysParamService; + + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/4/22 + */ +public class HkRequestAdapter implements RequestAdapter { + @Override + public String getUrl() { + ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class); + return paramService.findByCode(AcsConfig.HK_URL).getValue(); + } + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkResponseAdapter.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkResponseAdapter.java new file mode 100644 index 0000000..fd39f80 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/HkResponseAdapter.java @@ -0,0 +1,39 @@ +package org.nl.acs.agv.hk; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; + +import java.util.Collection; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/4/22 + */ +public class HkResponseAdapter implements ResponseAdapter { + + @Override + public UnifiedResponse adapt(String responseBody, Class type) { + JSONObject resp = JSON.parseObject(responseBody); + boolean isSuccess = resp.getInteger("code") == 0; + String message = resp.getString("message"); + String reqCode = resp.getString("reqCode"); + if (type != null) { + Object dataObject = resp.get("data"); + T data; + if (type == String.class) { + data = type.cast(dataObject.toString()); + } else if (type == Object.class) { + data = type.cast(dataObject); + } else if (type.isArray() || Collection.class.isAssignableFrom(type)) { + data = JSON.parseObject(dataObject.toString(), type); + } else { + data = JSON.parseObject(resp.getString("data"), type); + } + return new UnifiedResponse<>(isSuccess, message, reqCode, data); + } + return new UnifiedResponse<>(isSuccess, message, reqCode); + } + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/RequestAdapter.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/RequestAdapter.java new file mode 100644 index 0000000..cc2bf23 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/RequestAdapter.java @@ -0,0 +1,10 @@ +package org.nl.acs.agv.hk; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/4/22 + */ +public interface RequestAdapter { + String getUrl(); +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/ResponseAdapter.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/ResponseAdapter.java new file mode 100644 index 0000000..a1b1172 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/ResponseAdapter.java @@ -0,0 +1,12 @@ +package org.nl.acs.agv.hk; + + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/4/22 + */ +public interface ResponseAdapter { + public UnifiedResponse adapt(String responseBody, Class type); +} + diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/UnifiedResponse.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/UnifiedResponse.java new file mode 100644 index 0000000..7a2c635 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/UnifiedResponse.java @@ -0,0 +1,55 @@ +package org.nl.acs.agv.hk; + + +public class UnifiedResponse { + private boolean success; + private String message; + private String reqCode; + private T data; + + public UnifiedResponse(boolean success, String message, T data) { + this.success = success; + this.message = message; + this.data = data; + } + + public UnifiedResponse(boolean success, String message, String reqCode, T data) { + this.success = success; + this.message = message; + this.reqCode = reqCode; + this.data = data; + } + + + public UnifiedResponse(boolean success, String message) { + this.success = success; + this.message = message; + } + + public UnifiedResponse(boolean success, String message, String reqCode) { + this.success = success; + this.message = message; + this.reqCode = reqCode; + } + + public boolean isSuccess() { + return this.success; + } + + public String getMessage() { + return this.message; + } + + public String getReqCode() { + return this.reqCode; + } + + public T getData() { + return this.data; + } + + public void setData(T data) { + this.data = data; + } +} + diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/OtherToInterfaceLogAspect.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/OtherToInterfaceLogAspect.java new file mode 100644 index 0000000..05d9d11 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/OtherToInterfaceLogAspect.java @@ -0,0 +1,109 @@ +package org.nl.acs.agv.hk.log; + +import com.alibaba.fastjson.JSON; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.nl.acs.agv.hk.utils.IpUtil; +import org.nl.common.exception.BadRequestException; +import org.nl.system.service.lucene.LuceneExecuteLogService; +import org.nl.system.service.lucene.dto.LuceneLogDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.*; + +import java.lang.reflect.Method; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/7/8 + */ +@Aspect +@Component +public class OtherToInterfaceLogAspect { + + @Autowired + private LuceneExecuteLogService logService; + + @Around("@annotation(org.nl.acs.ext.hk.log.OthersToInterfaceLog)") + public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { + long startTime = System.currentTimeMillis(); + + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + + Class targetClass = joinPoint.getTarget().getClass(); + RequestMapping classRequestMapping = targetClass.getAnnotation(RequestMapping.class); + String classUrlValue = classRequestMapping != null ? String.join(",", classRequestMapping.value()) : "No Class Annotation"; + + String methodUrlValue = ""; + if (method.isAnnotationPresent(GetMapping.class)) { + GetMapping getMapping = method.getAnnotation(GetMapping.class); + methodUrlValue = String.join(",", getMapping.value()); + } else if (method.isAnnotationPresent(PostMapping.class)) { + PostMapping postMapping = method.getAnnotation(PostMapping.class); + methodUrlValue = String.join(",", postMapping.value()); + } else if (method.isAnnotationPresent(PutMapping.class)) { + PutMapping putMapping = method.getAnnotation(PutMapping.class); + methodUrlValue = String.join(",", putMapping.value()); + } else if (method.isAnnotationPresent(DeleteMapping.class)) { + DeleteMapping deleteMapping = method.getAnnotation(DeleteMapping.class); + methodUrlValue = String.join(",", deleteMapping.value()); + } else if (method.isAnnotationPresent(RequestMapping.class)) { + RequestMapping methodRequestMapping = method.getAnnotation(RequestMapping.class); + methodUrlValue = String.join(",", methodRequestMapping.value()); + } + String request_direction = ""; + if (method.isAnnotationPresent(OthersToInterfaceLog.class)) { + OthersToInterfaceLog interfaceLog = method.getAnnotation(OthersToInterfaceLog.class); + request_direction = interfaceLog.value(); + } + + String methodName = joinPoint.getSignature().getName(); + Object[] args = joinPoint.getArgs(); + + LuceneLogDto logDto = + LuceneLogDto.builder() + .logType("接口日志") + .request_url(IpUtil.localIP() + classUrlValue + methodUrlValue) + .request_direction(request_direction) + .request_param(JSON.toJSONString(args)) + .method(methodName) + .content("开始请求") + .build(); + logService.interfaceExecuteLog(logDto); + Object result = null; + try { + result = joinPoint.proceed(); + } catch (Exception e) { + logDto = + LuceneLogDto.builder() + .logType("接口日志") + .request_url(IpUtil.localIP() + classUrlValue + methodUrlValue) + .request_direction(request_direction) + .request_param(JSON.toJSONString(args)) + .method(methodName) + .response_param(e.getMessage()) + .executeTime(System.currentTimeMillis() - startTime) + .content("响应请求") + .build(); + logService.interfaceExecuteLog(logDto); + throw new BadRequestException(e.getMessage()); + } + logDto = + LuceneLogDto.builder() + .logType("接口日志") + .request_url(IpUtil.localIP() + classUrlValue + methodUrlValue) + .request_direction(request_direction) + .request_param(JSON.toJSONString(args)) + .method(methodName) + .response_param(JSON.toJSONString(result)) + .executeTime(System.currentTimeMillis() - startTime) + .content("响应请求") + .build(); + logService.interfaceExecuteLog(logDto); + return result; + } +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/OthersToInterfaceLog.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/OthersToInterfaceLog.java new file mode 100644 index 0000000..8d63564 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/OthersToInterfaceLog.java @@ -0,0 +1,12 @@ +package org.nl.acs.agv.hk.log; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface OthersToInterfaceLog { + String value() default ""; +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/ToOtherInterfaceLogAspect.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/ToOtherInterfaceLogAspect.java new file mode 100644 index 0000000..73aa3f8 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/ToOtherInterfaceLogAspect.java @@ -0,0 +1,139 @@ +package org.nl.acs.agv.hk.log; + +import com.alibaba.fastjson.JSON; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.nl.common.exception.BadRequestException; +import org.nl.system.service.lucene.LuceneExecuteLogService; +import org.nl.system.service.lucene.dto.LuceneLogDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.ReflectionUtils; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/7/8 + */ +@Aspect +@Component +public class ToOtherInterfaceLogAspect { + + private static final ConcurrentMap, Field> fieldCache = new ConcurrentHashMap<>(); + private static final ConcurrentMap, Method> methodCache = new ConcurrentHashMap<>(); + + @Autowired + private LuceneExecuteLogService logService; + + @Around("@annotation(org.nl.acs.ext.hk.log.ToOthersInterfaceLog)") + public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { + long startTime = System.currentTimeMillis(); + + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + + + String request_direction = ""; + if (method.isAnnotationPresent(ToOthersInterfaceLog.class)) { + ToOthersInterfaceLog interfaceLog = method.getAnnotation(ToOthersInterfaceLog.class); + request_direction = interfaceLog.value(); + } + String methodName = joinPoint.getSignature().getName(); + Object[] args = joinPoint.getArgs(); + Object url = ""; + Object requesr_param = ""; + if (args.length > 1) { + url = args[0]; + requesr_param = args[1]; + } + + Class targetClass = joinPoint.getTarget().getClass(); + + Object ipPort = ""; + try { + Field requestAdapterField = fieldCache.computeIfAbsent(targetClass, clazz -> { + try { + Field field = clazz.getDeclaredField("REQUEST_ADAPTER"); + ReflectionUtils.makeAccessible(field); + return field; + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } + }); + + Object requestAdapterObject = requestAdapterField.get(null); + + Method getUrlMethod = methodCache.computeIfAbsent(requestAdapterObject.getClass(), clazz -> { + try { + Method m = clazz.getDeclaredMethod("getUrl"); + ReflectionUtils.makeAccessible(m); + return m; + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + }); + + ipPort = getUrlMethod.invoke(requestAdapterObject); + } catch (Exception e) { + LuceneLogDto logDto = + LuceneLogDto.builder() + .logType("接口日志") + .request_url(ipPort + String.valueOf(url)) + .request_direction(request_direction) + .request_param(JSON.toJSONString(requesr_param)) + .method(methodName) + .content("开始请求,获取url失败," + e.getMessage()) + .build(); + logService.interfaceExecuteLog(logDto); + } + + LuceneLogDto logDto = + LuceneLogDto.builder() + .logType("接口日志") + .request_url(ipPort + String.valueOf(url)) + .request_direction(request_direction) + .request_param(JSON.toJSONString(requesr_param)) + .method(methodName) + .content("开始请求") + .build(); + logService.interfaceExecuteLog(logDto); + Object result = null; + try { + result = joinPoint.proceed(); + } catch (Exception e) { + logDto = + LuceneLogDto.builder() + .logType("接口日志") + .request_url(ipPort + String.valueOf(url)) + .request_direction(request_direction) + .request_param(JSON.toJSONString(requesr_param)) + .method(methodName) + .response_param(e.getMessage()) + .executeTime(System.currentTimeMillis() - startTime) + .content("响应请求") + .build(); + logService.interfaceExecuteLog(logDto); + throw new BadRequestException(e.getMessage()); + } + logDto = + LuceneLogDto.builder() + .logType("接口日志") + .request_url(ipPort + String.valueOf(url)) + .request_direction(request_direction) + .request_param(JSON.toJSONString(requesr_param)) + .method(methodName) + .response_param(JSON.toJSONString(result)) + .executeTime(System.currentTimeMillis() - startTime) + .content("响应请求") + .build(); + logService.interfaceExecuteLog(logDto); + return result; + } +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/ToOthersInterfaceLog.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/ToOthersInterfaceLog.java new file mode 100644 index 0000000..065810c --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/log/ToOthersInterfaceLog.java @@ -0,0 +1,12 @@ +package org.nl.acs.agv.hk.log; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface ToOthersInterfaceLog { + String value() default ""; +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/rest/AcsToHkController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/rest/AcsToHkController.java new file mode 100644 index 0000000..c401127 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/rest/AcsToHkController.java @@ -0,0 +1,64 @@ +package org.nl.acs.agv.hk.rest; + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.agv.hk.service.AcsToHkService; +import org.nl.acs.agv.hk.service.data.BindPodAndBerthReq; +import org.nl.acs.agv.hk.service.data.QueryTaskStatusReq; +import org.nl.acs.agv.hk.service.data.ResumeRobotReq; +import org.nl.acs.agv.hk.service.data.StopRobotReq; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author ludj + * @date 2021-07-21 + **/ +@RestController +@RequiredArgsConstructor +@RequestMapping("/acsToHk") +@Slf4j +public class AcsToHkController { + + @Autowired + private AcsToHkService acsToHkService; + + @SaIgnore + @PostMapping("/queryTaskStatus") + public ResponseEntity agvCallback(@RequestBody JSONObject requestParam) { + QueryTaskStatusReq queryTaskStatusReq = JSONObject.toJavaObject(requestParam, QueryTaskStatusReq.class); + QueryTaskStatusReq req = QueryTaskStatusReq.builder().taskCodes(requestParam.getJSONArray("taskCodes").toJavaList(String.class)).build(); + return new ResponseEntity<>(acsToHkService.queryTaskStatus(queryTaskStatusReq, List.class), HttpStatus.OK); + } + + @SaIgnore + @PostMapping("/stopRobot") + public ResponseEntity stopRobot(@RequestBody JSONObject requestParam) { + StopRobotReq req = StopRobotReq.builder().robotCount(requestParam.getString("robotCount")).robots(requestParam.getJSONArray("robots").toJavaList(String.class)).build(); + return new ResponseEntity<>(acsToHkService.stopRobot(req), HttpStatus.OK); + } + + @SaIgnore + @PostMapping("/resumeRobot") + public ResponseEntity resumeRobot(@RequestBody JSONObject requestParam) { + ResumeRobotReq req = ResumeRobotReq.builder().robotCount(requestParam.getString("robotCount")).robots(requestParam.getJSONArray("robots").toJavaList(String.class)).build(); + return new ResponseEntity<>(acsToHkService.resumeRobot(req), HttpStatus.OK); + } + + @SaIgnore + @PostMapping("/bindPodAndBerth") + public ResponseEntity bindPodAndBerth(@RequestBody JSONObject requestParam) { + BindPodAndBerthReq req = BindPodAndBerthReq.builder().podCode(requestParam.getString("podCode")).positionCode(requestParam.getString("positionCode")).indBind(requestParam.getString("indBind")).build(); + return new ResponseEntity<>(acsToHkService.bindPodAndBerth(req), HttpStatus.OK); + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/rest/HkToACSController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/rest/HkToACSController.java new file mode 100644 index 0000000..6a9c96b --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/rest/HkToACSController.java @@ -0,0 +1,41 @@ +package org.nl.acs.agv.hk.rest; + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.agv.hk.log.OthersToInterfaceLog; +import org.nl.acs.agv.hk.service.HkToAcsService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author wangs + * @date 2021-07-21 + **/ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hkToAcs") +@Slf4j +public class HkToACSController { + + private final HkToAcsService hkToAcsService; + + @SaIgnore + @PostMapping("/agv/agvCallbackService/agvCallback") + @OthersToInterfaceLog("HK->ACS") + public ResponseEntity agvCallback(@RequestBody JSONObject requestParam) { + return new ResponseEntity<>(hkToAcsService.agvCallback(requestParam), HttpStatus.OK); + } + + @SaIgnore + @PostMapping("/agvCallbackService/warnCallback") + @OthersToInterfaceLog("HK->ACS") + public ResponseEntity warnCallback(@RequestBody JSONObject requestParam) { + return new ResponseEntity<>(hkToAcsService.warnCallback(requestParam), HttpStatus.OK); + } +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/AcsToHkService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/AcsToHkService.java new file mode 100644 index 0000000..f1917b9 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/AcsToHkService.java @@ -0,0 +1,111 @@ +package org.nl.acs.agv.hk.service; + + +import org.nl.acs.agv.hk.UnifiedResponse; +import org.nl.acs.agv.hk.service.data.BaseReq; + +/** + * @author onepiece + */ +public interface AcsToHkService { + + /** + * 生成任务单 + * + * @param type 响应类型 + * @param requestParam + * @return + */ + public UnifiedResponse genAgvSchedulingTask(BaseReq requestParam, Class type); + + /** + * 继续执行任务 + * + * @param requestParam + * @return + */ + public UnifiedResponse continueTask(BaseReq requestParam); + + /** + * 取消任务 + * + * @param requestParam + * @return + */ + public UnifiedResponse cancelTask(BaseReq requestParam); + + /** + * 查询任务状态 + * + * @param type 响应类型 + * @param requestParam + * @return + */ + public UnifiedResponse queryTaskStatus(BaseReq requestParam, Class type); + + + /** + * 查询AGV状态 + * + * @param type 响应类型 + * @param requestParam + * @return + */ + public UnifiedResponse queryAgvStatus(BaseReq requestParam, Class type); + + + /** + * 停止AGV + * + * @param requestParam + * @return + */ + public UnifiedResponse stopRobot(BaseReq requestParam); + + /** + * 恢复AGV + * + * @param requestParam + * @return + */ + public UnifiedResponse resumeRobot(BaseReq requestParam); + + + /** + * 区域清空或释放 + * + * @param requestParam + * @return + */ + public UnifiedResponse blockArea(BaseReq requestParam); + + + /** + * 预调度对外接口 + * + * @param type 响应类型 + * @param requestParam + * @return + */ + public UnifiedResponse genPreScheduleTask(BaseReq requestParam, Class type); + + /** + * 料箱取放回调 + * + * @param type 响应类型 + * @param requestParam + * @return + */ + public UnifiedResponse boxApplyPass(BaseReq requestParam, Class type); + + + /** + * 货架与位置绑定、解绑 + * + * @param requestParam + * @return + */ + public UnifiedResponse bindPodAndBerth(BaseReq requestParam); + +} + diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/HkToAcsService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/HkToAcsService.java new file mode 100644 index 0000000..42b63f7 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/HkToAcsService.java @@ -0,0 +1,27 @@ +package org.nl.acs.agv.hk.service; + +import com.alibaba.fastjson.JSONObject; + + +/** + * @author onepiece + */ +public interface HkToAcsService { + + /** + * CTU回调接口处理逻辑 + * + * @param requestParam + * @return + */ + JSONObject agvCallback(JSONObject requestParam); + + + /** + * CTU报警接口处理逻辑 + * + * @param requestParam + * @return + */ + JSONObject warnCallback(JSONObject requestParam); +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BaseReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BaseReq.java new file mode 100644 index 0000000..c48f097 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BaseReq.java @@ -0,0 +1,27 @@ +package org.nl.acs.agv.hk.service.data; + +import cn.hutool.core.date.DateUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.nl.config.IdUtil; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class BaseReq { + @Builder.Default + private String reqCode = IdUtil.getStringId(); + @Builder.Default + private String reqTime = DateUtil.now(); + private String clientCode; + private String tokenCode; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BaseResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BaseResp.java new file mode 100644 index 0000000..87b2ea0 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BaseResp.java @@ -0,0 +1,15 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class BaseResp { + private String reqCode; + private String code; + private String message; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BindPodAndBerthReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BindPodAndBerthReq.java new file mode 100644 index 0000000..6431caf --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BindPodAndBerthReq.java @@ -0,0 +1,24 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class BindPodAndBerthReq extends BaseReq { + private String podCode; + private String positionCode; + private String podDir; + private String characterValue; + private String indBind; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BindPodAndBerthResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BindPodAndBerthResp.java new file mode 100644 index 0000000..1b2741f --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BindPodAndBerthResp.java @@ -0,0 +1,13 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class BindPodAndBerthResp extends BaseResp { + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BlockAreaReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BlockAreaReq.java new file mode 100644 index 0000000..cd69c78 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BlockAreaReq.java @@ -0,0 +1,30 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@SuperBuilder +public class BlockAreaReq extends BaseReq { + /** + * 被封锁或解封的区域编号 + */ + private String matterArea; + + /** + * "1":封锁, + * "0":解封 + */ + private String indBind; + + + private String pause; + private String controlMod; + private String targetArea; + private String noticeThird; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BlockAreaResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BlockAreaResp.java new file mode 100644 index 0000000..d30e51c --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BlockAreaResp.java @@ -0,0 +1,13 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class BlockAreaResp extends BaseResp { + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BoxApplyPassReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BoxApplyPassReq.java new file mode 100644 index 0000000..a0d7c0a --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BoxApplyPassReq.java @@ -0,0 +1,24 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@SuperBuilder +public class BoxApplyPassReq extends BaseReq { + /** + * 指令号 + */ + private String taskCode; + /** + * 1-取申请通过 + *

+ * 2-放申请通过 + */ + private String type; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BoxApplyPassResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BoxApplyPassResp.java new file mode 100644 index 0000000..62fdba8 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/BoxApplyPassResp.java @@ -0,0 +1,13 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class BoxApplyPassResp extends BaseResp { + private String data; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/CancelTaskReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/CancelTaskReq.java new file mode 100644 index 0000000..d07602b --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/CancelTaskReq.java @@ -0,0 +1,18 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@SuperBuilder +public class CancelTaskReq extends BaseReq{ + private String forceCancel; + private String matterArea; + private String agvCode; + private String taskCode; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/CanncelTaskResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/CanncelTaskResp.java new file mode 100644 index 0000000..c4afdf8 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/CanncelTaskResp.java @@ -0,0 +1,12 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class CanncelTaskResp extends BaseResp { +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ContinueTaskReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ContinueTaskReq.java new file mode 100644 index 0000000..0953c66 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ContinueTaskReq.java @@ -0,0 +1,20 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@SuperBuilder +public class ContinueTaskReq extends BaseReq{ + private String wbCode; + private String podCode; + private String agvCode; + private String taskCode; + private String taskSeq; + private Object nextPositionCode; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ContinueTaskResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ContinueTaskResp.java new file mode 100644 index 0000000..a8862a2 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ContinueTaskResp.java @@ -0,0 +1,12 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class ContinueTaskResp extends BaseResp { +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenAgvSchedulingTaskReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenAgvSchedulingTaskReq.java new file mode 100644 index 0000000..10ba6cd --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenAgvSchedulingTaskReq.java @@ -0,0 +1,36 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +import java.util.List; +import java.util.Map; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@SuperBuilder +public class GenAgvSchedulingTaskReq extends BaseReq{ + private String taskTyp; + private String ctnrTyp; + private String ctnrCode; + private String ctnrNum; + private String taskMode; + private String wbCode; + private List> positionCodePath; + private String podCode; + private String podDir; + private String podTyp; + private String materialLot; + private String materialType; + private String priority; + private String taskCode; + private String agvCode; + private String groupId; + private String agvTyp; + private String positionSelStrategy; + private String data; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenAgvSchedulingTaskResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenAgvSchedulingTaskResp.java new file mode 100644 index 0000000..f4ceeb8 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenAgvSchedulingTaskResp.java @@ -0,0 +1,13 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class GenAgvSchedulingTaskResp extends BaseResp { + private String data; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenPreScheduleTaskReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenPreScheduleTaskReq.java new file mode 100644 index 0000000..f51ce25 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenPreScheduleTaskReq.java @@ -0,0 +1,47 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@SuperBuilder +public class GenPreScheduleTaskReq extends BaseReq { + /** + * 任务点位呼叫号 + */ + private String positionCode; + /** + * 预调度时间(s) + * 表示真实任务预计多久后生成,传-1 + * 清空点位全部的预调度任务 + */ + private String nextTask; + /** + * AGV 类型,预调度需要指定车型 + */ + private String agvTyp; + /** + * 优先级 + */ + private String priority; + /** + * 需求空仓位数 + */ + private String useableLayers; + /** + * 缓存料箱数 + */ + private String cacheCount; + /** + * 是否更新,默认为 0 + */ + private BigDecimal update; + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenPreScheduleTaskResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenPreScheduleTaskResp.java new file mode 100644 index 0000000..5c61993 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/GenPreScheduleTaskResp.java @@ -0,0 +1,13 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class GenPreScheduleTaskResp extends BaseResp { + private String data; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryAgvStatusReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryAgvStatusReq.java new file mode 100644 index 0000000..b5692d6 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryAgvStatusReq.java @@ -0,0 +1,18 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@SuperBuilder +public class QueryAgvStatusReq extends BaseReq { + /** + * 地图编号 + */ + private String mapCode; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryAgvStatusResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryAgvStatusResp.java new file mode 100644 index 0000000..3163481 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryAgvStatusResp.java @@ -0,0 +1,16 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import org.nl.acs.agv.hk.service.data.dto.QueryAgvStatusDto; + +import java.util.List; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class QueryAgvStatusResp extends BaseResp { + private List data; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryTaskStatusReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryTaskStatusReq.java new file mode 100644 index 0000000..4b63165 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryTaskStatusReq.java @@ -0,0 +1,22 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class QueryTaskStatusReq extends BaseReq{ + private List taskCodes; + private String agvCode; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryTaskStatusResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryTaskStatusResp.java new file mode 100644 index 0000000..c9595c1 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/QueryTaskStatusResp.java @@ -0,0 +1,16 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; +import org.nl.acs.agv.hk.service.data.dto.QueryTaskStatusDto; + +import java.util.List; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class QueryTaskStatusResp extends BaseResp { + private List data; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ResumeRobotReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ResumeRobotReq.java new file mode 100644 index 0000000..b529684 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ResumeRobotReq.java @@ -0,0 +1,23 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class ResumeRobotReq extends BaseReq { + private String robotCount; + private String mapShortName; + private List robots; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ResumeRobotResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ResumeRobotResp.java new file mode 100644 index 0000000..40194a4 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/ResumeRobotResp.java @@ -0,0 +1,13 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class ResumeRobotResp extends BaseResp { + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/StopRobotReq.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/StopRobotReq.java new file mode 100644 index 0000000..fa651e0 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/StopRobotReq.java @@ -0,0 +1,23 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class StopRobotReq extends BaseReq { + private String robotCount; + private String mapShortName; + private List robots; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/StopRobotResp.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/StopRobotResp.java new file mode 100644 index 0000000..46d041c --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/StopRobotResp.java @@ -0,0 +1,13 @@ +package org.nl.acs.agv.hk.service.data; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/12/28 + */ +@Data +public class StopRobotResp extends BaseResp { + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/dto/QueryAgvStatusDto.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/dto/QueryAgvStatusDto.java new file mode 100644 index 0000000..b974d75 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/dto/QueryAgvStatusDto.java @@ -0,0 +1,28 @@ +package org.nl.acs.agv.hk.service.data.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @Description TODO + * @Author Gengby + * @Date 2025/1/3 + */ +@Data +public class QueryAgvStatusDto { + private String robotCode; + private String robotDir; + private String robotIp; + private String battery; + private String posX; + private String posY; + private String mapCode; + private String speed; + private String status; + private String exclType; + private String stop; + private String podCode; + private String podDir; + private List path; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/dto/QueryTaskStatusDto.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/dto/QueryTaskStatusDto.java new file mode 100644 index 0000000..1a3c2b8 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/data/dto/QueryTaskStatusDto.java @@ -0,0 +1,16 @@ +package org.nl.acs.agv.hk.service.data.dto; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2025/1/3 + */ +@Data +public class QueryTaskStatusDto { + private String taskCode; + private String taskTyp; + private String taskStatus; + private String agvCode; +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/AcsToHkServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/AcsToHkServiceImpl.java new file mode 100644 index 0000000..a638216 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/AcsToHkServiceImpl.java @@ -0,0 +1,94 @@ +package org.nl.acs.agv.hk.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.address.service.AddressService; +import org.nl.acs.address.service.dto.AddressDto; +import org.nl.acs.agv.hk.HkHttpUtil; +import org.nl.acs.agv.hk.UnifiedResponse; +import org.nl.acs.agv.hk.service.AcsToHkService; +import org.nl.acs.agv.hk.service.data.BaseReq; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * @author onepiece + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class AcsToHkServiceImpl implements AcsToHkService { + + @Autowired + private AddressService addressService; + @Autowired + private HkHttpUtil hkHttpUtil; + + @Override + public UnifiedResponse genAgvSchedulingTask(BaseReq requestParam, Class type) { + AddressDto addressDto = addressService.findByCode("genAgvSchedulingTask"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam, type); + } + + @Override + public UnifiedResponse continueTask(BaseReq requestParam) { + AddressDto addressDto = addressService.findByCode("continueTask"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam); + } + + @Override + public UnifiedResponse cancelTask(BaseReq requestParam) { + AddressDto addressDto = addressService.findByCode("cancelTask"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam); + } + + @Override + public UnifiedResponse queryTaskStatus(BaseReq requestParam, Class type) { + AddressDto addressDto = addressService.findByCode("queryTaskStatus"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam, type); + } + + @Override + public UnifiedResponse queryAgvStatus(BaseReq requestParam, Class type) { + AddressDto addressDto = addressService.findByCode("queryAgvStatus"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam, type); + } + + @Override + public UnifiedResponse stopRobot(BaseReq requestParam) { + AddressDto addressDto = addressService.findByCode("stopRobot"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam); + } + + @Override + public UnifiedResponse resumeRobot(BaseReq requestParam) { + AddressDto addressDto = addressService.findByCode("resumeRobot"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam); + } + + @Override + public UnifiedResponse blockArea(BaseReq requestParam) { + AddressDto addressDto = addressService.findByCode("blockArea"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam); + } + + @Override + public UnifiedResponse genPreScheduleTask(BaseReq requestParam, Class type) { + AddressDto addressDto = addressService.findByCode("genPreScheduleTask"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam, type); + } + + @Override + public UnifiedResponse boxApplyPass(BaseReq requestParam, Class type) { + AddressDto addressDto = addressService.findByCode("boxApplyPass"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam, type); + } + + @Override + public UnifiedResponse bindPodAndBerth(BaseReq requestParam) { + AddressDto addressDto = addressService.findByCode("bindPodAndBerth"); + return hkHttpUtil.sendPostRequest(addressDto.getMethods_url(), requestParam); + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/HkToAcsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/HkToAcsServiceImpl.java new file mode 100644 index 0000000..8d078c1 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/service/impl/HkToAcsServiceImpl.java @@ -0,0 +1,197 @@ +package org.nl.acs.agv.hk.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device.domain.Device; +import org.nl.acs.agv.hk.service.AcsToHkService; +import org.nl.acs.agv.hk.service.HkToAcsService; +import org.nl.acs.agv.hk.service.data.GenPreScheduleTaskReq; +import org.nl.acs.ext.wms.service.AcsToWmsService; +import org.nl.acs.instruction.domain.Instruction; +import org.nl.acs.instruction.enums.InstTypeEnum; +import org.nl.acs.instruction.enums.InstructionStatusEnum; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.task.enums.TaskTypeEnum; +import org.nl.acs.task.service.TaskService; +import org.nl.acs.task.service.dto.TaskDto; +import org.nl.system.service.param.ISysParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Optional; + + +/** + * 海康AGV接口 + * + * @author: gengby + * @createDate: 2024/12/28 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class HkToAcsServiceImpl implements HkToAcsService { + + @Autowired + private InstructionService instructionService; + @Autowired + private DeviceAppService deviceAppService; + @Autowired + private AcsToHkService acsToHkService; + @Autowired + private ISysParamService sysParamService; + @Autowired + private AcsToWmsService acsToWmsService; + @Autowired + private TaskService taskService; + + @SneakyThrows + @Override + public JSONObject agvCallback(JSONObject requestParam) { + JSONObject resp = new JSONObject(); + String reqCode = requestParam.getString("reqCode"); + String robotCode = requestParam.getString("robotCode"); + String taskCode = requestParam.getString("taskCode"); + String method = requestParam.getString("method"); + Instruction instruction = instructionService.findByCodeFromCache(taskCode); + if (ObjectUtil.isEmpty(instruction)) { + resp.put("code", "1"); + resp.put("message", "请求失败,指令信息不存在,指令号:" + taskCode); + resp.put("reqCode", reqCode); + return resp; + } + TaskDto taskDto = taskService.findByCodeFromCache(instruction.getTask_code()); + if (ObjectUtil.isEmpty(taskDto)) { + resp.put("code", "1"); + resp.put("message", "请求失败,任务信息不存在,指令号:" + taskCode); + resp.put("reqCode", reqCode); + return resp; + } + String now = DateUtil.now(); + //method 回调1、任务开始start + if (StrUtil.equals(method, "start")) { + //修改指令状态执行中并修改CTU车号 + instruction.setCarno(robotCode); + instruction.setInstruction_status(InstructionStatusEnum.BUSY.getIndex()); + instruction.setExecute_device_code(instruction.getStart_point_code()); + instruction.setUpdate_time(now); + instructionService.update(instruction); + + JSONObject reqParam = new JSONObject(); + reqParam.put("task_id", instruction.getTask_id()); + reqParam.put("task_code", instruction.getTask_code()); + reqParam.put("car_no", robotCode); + acsToWmsService.feedCarNo(reqParam); + } + //method 回调2、任务完成/结束end + else if (StrUtil.equals(method, "end")) { + if (instruction.getInstruction_type().equals(InstTypeEnum.AGV_THREE_TASK.getCode())) { + instruction.setExecute_device_code(instruction.getStart_point_code()); + } + //修改指令状态完成 + instruction.setInstruction_status(InstructionStatusEnum.FINISHED.getIndex()); + instruction.setUpdate_time(now); + instructionService.finish(instruction); + if (StrUtil.equals(instruction.getIs_wait(), "1") && StrUtil.equals(instruction.getInstruction_type(), InstTypeEnum.CTU_OUT_TASK.getCode())) { + String ctuWaitTime = Optional.ofNullable(sysParamService.findByCode("ctuWaitTime").getValue()).map(Object::toString).orElse("3600"); + GenPreScheduleTaskReq gpsReq = GenPreScheduleTaskReq.builder() + .positionCode(instruction.getStart_device_code()) + .nextTask(ctuWaitTime) + .agvTyp("10") + .build(); + acsToHkService.genPreScheduleTask(gpsReq, null); + } + } + //method 回调3、任务取消cancel + else if (StrUtil.equals(method, "cancel")) { + //修改指令状态取消 + instruction.setInstruction_status(InstructionStatusEnum.CANCEL.getIndex()); + instruction.setUpdate_time(now); + instructionService.update(instruction); + } + //method 回调4、取放料箱申请inApply + else if (StrUtil.equals(method, "inApply")) { + Device device = deviceAppService.findDeviceByCode(instruction.getStart_device_code()); + if (ObjectUtil.isEmpty(device)) { + resp.put("code", "1"); + resp.put("message", "请求失败,请求位置编号不存在!"); + resp.put("reqCode", reqCode); + return resp; + } +// StandardWeightSiteDeviceDriver standardWeightSiteDeviceDriver; +// //CTU取货申请 +// //如果请求位置编号与指令起点一致并且是输送线则是取货申请 +// if (device.getDeviceDriver() instanceof StandardWeightSiteDeviceDriver) { +// standardWeightSiteDeviceDriver = (StandardWeightSiteDeviceDriver) device.getDeviceDriver(); +// if (TaskTypeEnum.CTU_TASK.getCode().equals(taskDto.getTask_type())) { +// standardWeightSiteDeviceDriver.setReqCtuTakeRequireSuccess(true); +// standardWeightSiteDeviceDriver.setReqCtuTakeInstCode(taskCode); +// } else { +// standardWeightSiteDeviceDriver.setReqAgvTakeRequireSuccess(true); +// standardWeightSiteDeviceDriver.setReqAgvTakeInstCode(taskCode); +// } +// } + } + //method 回调5、inApplyOk + else if (StrUtil.equals(method, "inApplyOK")) { + //如果是WMS下发的任务,就反馈WMS取货完成 + if (!instruction.getTask_code().startsWith("-")) { + JSONObject reqParam = new JSONObject(); + reqParam.put("task_code", instruction.getTask_code()); + reqParam.put("point_code", instruction.getStart_point_code()); + acsToWmsService.takeFinish(reqParam); + } + } + //method 回调6、放料箱申请outApply + else if (StrUtil.equals(method, "outApply")) { + Device device = deviceAppService.findDeviceByCode(instruction.getNext_device_code()); + if (instruction.getInstruction_type().equals(InstTypeEnum.AGV_THREE_TASK.getCode())) { + device = deviceAppService.findDeviceByCode(instruction.getStart_device_code()); + } + if (ObjectUtil.isEmpty(device)) { + resp.put("code", "1"); + resp.put("message", "请求失败,请求位置编号不存在!"); + resp.put("reqCode", reqCode); + return resp; + } +// StandardWeightSiteDeviceDriver standardWeightSiteDeviceDriver; +// //CTU取货申请 +// //如果请求位置编号与指令起点一致并且是输送线则是取货申请 +// if (device.getDeviceDriver() instanceof StandardWeightSiteDeviceDriver) { +// standardWeightSiteDeviceDriver = (StandardWeightSiteDeviceDriver) device.getDeviceDriver(); +// if (TaskTypeEnum.CTU_TASK.getCode().equals(taskDto.getTask_type())) { +// standardWeightSiteDeviceDriver.setReqCtuTakeRequireSuccess(true); +// standardWeightSiteDeviceDriver.setReqCtuTakeInstCode(taskCode); +// } else { +// standardWeightSiteDeviceDriver.setReqAgvTakeRequireSuccess(true); +// standardWeightSiteDeviceDriver.setReqAgvTakeInstCode(taskCode); +// } +// } + } + resp.put("code", "0"); + resp.put("message", "成功"); + resp.put("reqCode", reqCode); + return resp; + } + + @Override + public JSONObject warnCallback(JSONObject requestParam) { + String reqCode = requestParam.getString("reqCode"); + String reqTime = requestParam.getString("reqTime"); + JSONArray data = requestParam.getJSONArray("data"); + JSONObject resp = new JSONObject(); + resp.put("code", "0"); + resp.put("message", "成功"); + resp.put("reqCode", reqCode); + return resp; + } +} + + diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/utils/IpUtil.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/utils/IpUtil.java new file mode 100644 index 0000000..c6fa940 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/utils/IpUtil.java @@ -0,0 +1,35 @@ +package org.nl.acs.agv.hk.utils; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/6/25 + */ +public class IpUtil { + + public static final String LOCAL_IP = localIP(); + + public static String localIP() { + try { + Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); + while (networkInterfaces.hasMoreElements()) { + NetworkInterface networkInterface = networkInterfaces.nextElement(); + Enumeration inetAddresses = networkInterface.getInetAddresses(); + while (inetAddresses.hasMoreElements()) { + InetAddress inetAddress = inetAddresses.nextElement(); + if (!inetAddress.isLoopbackAddress() && inetAddress instanceof java.net.Inet4Address) { + return inetAddress.getHostAddress(); + } + } + } + } catch (SocketException e) { + e.printStackTrace(); + } + return ""; + } +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/utils/TypeCastingUtil.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/utils/TypeCastingUtil.java new file mode 100644 index 0000000..89dabac --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/hk/utils/TypeCastingUtil.java @@ -0,0 +1,26 @@ +package org.nl.acs.agv.hk.utils; + +import com.alibaba.fastjson.JSONObject; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description TODO + * @Author Gengby + * @Date 2025/1/3 + */ +public class TypeCastingUtil { + + + public static List convertToList(List rawList, Class clazz) { + return rawList.stream() + .filter(item -> item instanceof JSONObject) + .map(item -> { + JSONObject jsonObject = (JSONObject) item; + return clazz.cast(jsonObject.toJavaObject(clazz)); + }) + .collect(Collectors.toList()); + } + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsHttpUtil.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsHttpUtil.java new file mode 100644 index 0000000..dada17d --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsHttpUtil.java @@ -0,0 +1,134 @@ +package org.nl.acs.ext.wms; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import org.nl.acs.AcsConfig; +import org.nl.acs.agv.hk.RequestAdapter; +import org.nl.acs.agv.hk.ResponseAdapter; +import org.nl.acs.agv.hk.UnifiedResponse; +import org.nl.acs.agv.hk.log.ToOthersInterfaceLog; +import org.nl.acs.common.base.CommonFinalParam; +import org.nl.system.service.param.ISysParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/4/22 + */ +@Component +public class LmsHttpUtil { + + private static final RequestAdapter REQUEST_ADAPTER = new LmsRequestAdapter(); + private static final ResponseAdapter RESPONSE_ADAPTER = new LmsResponseAdapter(); + + @Autowired + private ISysParamService paramService; + + @ToOthersInterfaceLog("ACS->WMS") + public UnifiedResponse sendPostRequest(String path, W requestParam, Class type) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .post(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .body(JSON.toJSONString(requestParam)) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, type); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->WMS") + public UnifiedResponse sendPostRequest(String path, W requestParam) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .post(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .body(JSON.toJSONString(requestParam)) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, null); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->WMS") + public UnifiedResponse sendPostRequest(String path, Class type) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .post(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, type); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->WMS") + public UnifiedResponse sendPostRequest(String path) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .post(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, null); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->WMS") + public UnifiedResponse sendGetRequest(String path, Class type) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .get(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, type); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + + @ToOthersInterfaceLog("ACS->WMS") + public UnifiedResponse sendGetRequest(String path) { + if (!StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), CommonFinalParam.ONE)) { + return new UnifiedResponse<>(false, "未开启连接该系统!"); + } + try { + String body = HttpRequest + .get(REQUEST_ADAPTER.getUrl() + path) + .setConnectionTimeout(5000) + .execute() + .body(); + return RESPONSE_ADAPTER.adapt(body, null); + } catch (Exception e) { + return new UnifiedResponse<>(false, e.getMessage()); + } + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsRequestAdapter.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsRequestAdapter.java new file mode 100644 index 0000000..d80b638 --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsRequestAdapter.java @@ -0,0 +1,20 @@ +package org.nl.acs.ext.wms; + + +import org.nl.acs.AcsConfig; +import org.nl.acs.agv.hk.RequestAdapter; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.ISysParamService; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/4/22 + */ +public class LmsRequestAdapter implements RequestAdapter { + @Override + public String getUrl() { + ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class); + return paramService.findByCode(AcsConfig.WMSURL).getValue(); + } +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsResponseAdapter.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsResponseAdapter.java new file mode 100644 index 0000000..987ae5a --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/LmsResponseAdapter.java @@ -0,0 +1,31 @@ +package org.nl.acs.ext.wms; + +import com.alibaba.fastjson.JSONObject; +import org.nl.acs.agv.hk.ResponseAdapter; +import org.nl.acs.agv.hk.UnifiedResponse; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/4/22 + */ +public class LmsResponseAdapter implements ResponseAdapter { + + @Override + public UnifiedResponse adapt(String responseBody, Class type) { + JSONObject jsonResponse = JSONObject.parseObject(responseBody); + boolean isSuccess = jsonResponse.getInteger("status") == 200; + String message = jsonResponse.getString("message"); + if (type != null) { + if (type.isArray()) { + T data = JSONObject.toJavaObject(jsonResponse.getJSONArray("data"), type); + return new UnifiedResponse<>(isSuccess, message, data); + } else { + T data = JSONObject.toJavaObject(jsonResponse.getJSONObject("data"), type); + return new UnifiedResponse<>(isSuccess, message, data); + } + } + return new UnifiedResponse<>(isSuccess, message); + } + +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index 85319c6..3886bb6 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -3,6 +3,7 @@ package org.nl.acs.ext.wms.service; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.nl.acs.agv.hk.UnifiedResponse; import org.nl.acs.ext.wms.data.ApplyGreenFoilButtonRequest; import org.nl.acs.ext.wms.data.ApplyGreenFoilButtonResponse; import org.nl.acs.ext.wms.data.BlankingButtonRequest; @@ -129,4 +130,41 @@ public interface AcsToWmsService { */ BlankingButtonResponse applyBlankButtonTask(BlankingButtonRequest param); + /** + * 反馈车号 + * + * @param request + * @param + * @return + */ + UnifiedResponse feedCarNo(JSONObject request); + + /** + * 反馈重量 + * + * @param request + * @param + * @return + */ + UnifiedResponse feedWeight(JSONObject request, Class type); + + + /** + * 申请放货 + * + * @param request + * @param + * @return + */ + UnifiedResponse applyPass(JSONObject request, Class type); + + /** + * 取货完成 + * + * @param request + * @param + * @return + */ + UnifiedResponse takeFinish(JSONObject request); + } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index be591d5..fab11c4 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -14,7 +14,9 @@ import lombok.extern.slf4j.Slf4j; import org.nl.acs.AcsConfig; import org.nl.acs.address.service.AddressService; import org.nl.acs.address.service.dto.AddressDto; +import org.nl.acs.agv.hk.UnifiedResponse; import org.nl.acs.device.service.DeviceService; +import org.nl.acs.ext.wms.LmsHttpUtil; import org.nl.acs.ext.wms.data.ApplyGreenFoilButtonRequest; import org.nl.acs.ext.wms.data.ApplyGreenFoilButtonResponse; import org.nl.acs.ext.wms.data.BlankingButtonRequest; @@ -59,6 +61,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { public String token; + @Autowired + private LmsHttpUtil lmsHttpUtil; + TLogHutoolhttpInterceptor tLogHutoolhttpInterceptor = new TLogHutoolhttpInterceptor(); private String log_file_type = "log_file_type"; @@ -147,7 +152,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { .header(Header.USER_AGENT, "Hutool http") .header("Authorization", token).body(String.valueOf(data)) .execute(); - LuceneLogDto luceneLogDto = new LuceneLogDto(4,"feedTaskStatus", String.valueOf(result2.getStatus()), + LuceneLogDto luceneLogDto = new LuceneLogDto(4, "feedTaskStatus", String.valueOf(result2.getStatus()), String.valueOf(data), String.valueOf(result2.body()), "ACS向WMS反馈任务状态"); luceneLogService.interfaceExecuteLog(luceneLogDto); } catch (Exception e) { @@ -162,7 +167,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { type = "info"; JSONObject jo = JSONObject.parseObject(result2.body()); log.info("feedbackTaskStatusToWms-----输出参数{}", jo.toString()); - LuceneLogDto luceneLogDto = new LuceneLogDto(4,"feedTaskStatus", String.valueOf(result2.getStatus()), + LuceneLogDto luceneLogDto = new LuceneLogDto(4, "feedTaskStatus", String.valueOf(result2.getStatus()), String.valueOf(data), String.valueOf(result2.body()), "ACS向WMS反馈任务状态"); luceneLogService.interfaceExecuteLog(luceneLogDto); return result2; @@ -243,4 +248,28 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { MDC.remove(log_file_type); } } -} + + @Override + public UnifiedResponse feedCarNo(JSONObject request) { + AddressDto addressDto = addressService.findByCode("feedCarNo"); + return lmsHttpUtil.sendPostRequest(addressDto.getMethods_url(), request); + } + + @Override + public UnifiedResponse feedWeight(JSONObject request, Class type) { + AddressDto addressDto = addressService.findByCode("feedWeight"); + return lmsHttpUtil.sendPostRequest(addressDto.getMethods_url(), request, type); + } + + @Override + public UnifiedResponse applyPass(JSONObject request, Class type) { + AddressDto addressDto = addressService.findByCode("applyPass"); + return lmsHttpUtil.sendPostRequest(addressDto.getMethods_url(), request, type); + } + + @Override + public UnifiedResponse takeFinish(JSONObject request) { + AddressDto addressDto = addressService.findByCode("takeFinish"); + return lmsHttpUtil.sendPostRequest(addressDto.getMethods_url(), request); + } +} \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/enums/InstTypeEnum.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/enums/InstTypeEnum.java new file mode 100644 index 0000000..6f863db --- /dev/null +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/enums/InstTypeEnum.java @@ -0,0 +1,76 @@ +package org.nl.acs.instruction.enums; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author 20220102CG\noblelift + */ +@Getter +@AllArgsConstructor +public enum InstTypeEnum { + + CTU_IN_TASK("A031", "A031", "CTU入库任务"), + CTU_OUT_TASK("A032", "A032", "CTU出库任务"), + CTU_MOVE_TASK("A033", "A033", "CTU移库任务"), + AGV_TWO_TASK("A012", "A012", "AGV两点任务(称重位到库外站点)"), + AGV_TWO2_TASK("A021", "A021", "AGV两点任务(库外站点到库外站点)"), + AGV_TWO3_TASK("A013", "A013", "AGV两点任务(库外站点到称重位)"), + AGV_THREE_TASK("A011", "A011", "AGV三点任务(称重位到库外站点到称重位)"), + OTHER_TASK("8", "8", "其他任务类型"); + + + /** + * 索引 + */ + private String index; + /** + * 编码 + */ + private String code; + /** + * 名字 + */ + private String name; + /** + * 描述 + */ + private String desc; + + /** + * 构造方法 + * + * @param index + * @param code + * @param name + */ + InstTypeEnum(String index, String code, String name) { + this.index = index; + this.code = code; + this.name = name; + + } + + public static JSONArray getList() { + JSONArray arr = new JSONArray(); + JSONObject json = new JSONObject(); + for (InstTypeEnum em : InstTypeEnum.values()) { + json.put("code", em.getCode()); + json.put("name", em.getName()); + arr.add(json); + } + return arr; + } + + public static String getName(String code) { + for (InstTypeEnum c : InstTypeEnum.values()) { + if (c.code == code) { + return c.name; + } + } + return null; + } + +} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/dto/InstructionDto.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/dto/InstructionDto.java index aca8e7e..af0ec43 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/dto/InstructionDto.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/dto/InstructionDto.java @@ -364,4 +364,9 @@ public class InstructionDto implements Serializable { */ private String to_device_code; + /** + * 任务完成是否等待 + */ + private String is_wait; + } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/dto/LuceneLogDto.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/dto/LuceneLogDto.java index f8f604d..80f4963 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/dto/LuceneLogDto.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/dto/LuceneLogDto.java @@ -26,6 +26,33 @@ public class LuceneLogDto { /* 指令编码 */ private String instruct_code; + /** + * 请求路径 + */ + private String request_url; + + + /** + * 请求参数 + */ + private String request_param; + + /** + * 响应参数 + */ + private String response_param; + + + /** + * 请求方向 + */ + private String request_direction; + + /** + * 执行时间 + */ + private long executeTime; + /* 任务标识 */ private String task_id;