From e09b66a6f15ac9271febf90ae6cc6a70b59ea96e Mon Sep 17 00:00:00 2001
From: liyongde <1419499670@qq.com>
Date: Wed, 19 Jul 2023 11:10:30 +0800
Subject: [PATCH] =?UTF-8?q?add:=20=E5=A4=96=E9=83=A8=E6=8E=A5=E5=8F=A3?=
 =?UTF-8?q?=E4=BA=A4=E4=BA=92=E8=AE=B0=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lms/nladmin-system/doc/wms.xls                | Bin 309248 -> 348160 bytes
 .../controller/AcsToWmsController.java        |   4 +-
 .../{ => acs}/service/AcsToWmsService.java    |   4 +-
 .../{ => acs}/service/WmsToAcsService.java    |   2 +-
 .../service/dto/ApplyTaskRequest.java         |   2 +-
 .../{ => acs}/service/dto/BaseRequest.java    |   2 +-
 .../wms/ext/acs/service/dto/BrickInfoDto.java |  42 ++++
 .../{ => acs}/service/dto/GrabRequest.java    |   2 +-
 .../{ => acs}/service/dto/PalletizeDto.java   |   2 +-
 .../service/impl/AcsToWmsServiceImpl.java     |  43 ++--
 .../service/impl/WmsToAcsServiceImpl.java     |   4 +-
 .../service/vo/ApplyTaskResponse.java         |   2 +-
 .../{ => acs}/service/vo/BaseResponse.java    |   2 +-
 .../{ => acs}/service/vo/GrabResponse.java    |   2 +-
 .../{ => acs}/service/vo/StandResponse.java   |   2 +-
 .../SysInteractRecordController.java          |  66 +++++++
 .../service/ISysInteractRecordService.java    |  50 +++++
 .../record/service/dao/SysInteractRecord.java |  52 +++++
 .../dao/mapper/SysInteractRecordMapper.java   |  12 ++
 .../dao/mapper/SysInteractRecordMapper.xml    |   5 +
 .../service/dto/SysInteractRecordDto.java     |  40 ++++
 .../service/dto/SysInteractRecordQuery.java   |  12 ++
 .../impl/SysInteractRecordServiceImpl.java    |  82 ++++++++
 .../sch/task/service/ISchBaseTaskService.java |   3 +-
 .../sch/task_manage/GeneralDefinition.java    |   9 +
 .../src/views/wms/ext/record/index.vue        | 186 ++++++++++++++++++
 .../views/wms/ext/record/sysInteractRecord.js |  27 +++
 27 files changed, 631 insertions(+), 28 deletions(-)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/controller/AcsToWmsController.java (96%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/AcsToWmsService.java (84%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/WmsToAcsService.java (75%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/dto/ApplyTaskRequest.java (92%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/dto/BaseRequest.java (96%)
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/BrickInfoDto.java
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/dto/GrabRequest.java (96%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/dto/PalletizeDto.java (98%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/impl/AcsToWmsServiceImpl.java (91%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/impl/WmsToAcsServiceImpl.java (70%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/vo/ApplyTaskResponse.java (92%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/vo/BaseResponse.java (98%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/vo/GrabResponse.java (57%)
 rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/{ => acs}/service/vo/StandResponse.java (91%)
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/SysInteractRecord.java
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.java
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.xml
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordDto.java
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordQuery.java
 create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java
 create mode 100644 lms/nladmin-ui/src/views/wms/ext/record/index.vue
 create mode 100644 lms/nladmin-ui/src/views/wms/ext/record/sysInteractRecord.js

diff --git a/lms/nladmin-system/doc/wms.xls b/lms/nladmin-system/doc/wms.xls
index 5d5a54fabbcc3f571674c4c12a9297b6fb1bf5f4..dc4148865f9751af1ffcd509348a2577acde5bfb 100644
GIT binary patch
delta 47537
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%0DYQH?xsHn+-`Vtz$CtKYF#`9?LCZh
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

delta 14890
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

diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java
similarity index 96%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java
index 79ff55c..ed45257 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.controller;
+package org.nl.wms.ext.acs.controller;
 
 import cn.dev33.satoken.annotation.SaIgnore;
 import com.alibaba.fastjson.JSONObject;
@@ -6,7 +6,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.common.logging.annotation.Log;
-import org.nl.wms.ext.service.AcsToWmsService;
+import org.nl.wms.ext.acs.service.AcsToWmsService;
 import org.nl.wms.sch.task.service.ISchBaseTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java
similarity index 84%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java
index 72a6005..5fa6edb 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java
@@ -1,7 +1,7 @@
-package org.nl.wms.ext.service;
+package org.nl.wms.ext.acs.service;
 
 import com.alibaba.fastjson.JSONObject;
-import org.nl.wms.ext.service.vo.BaseResponse;
+import org.nl.wms.ext.acs.service.vo.BaseResponse;
 
 /**
  * @Author: lyd
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java
similarity index 75%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java
index 2ce7c26..dab2890 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service;
+package org.nl.wms.ext.acs.service;
 
 /**
  * @Author: lyd
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ApplyTaskRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/ApplyTaskRequest.java
similarity index 92%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ApplyTaskRequest.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/ApplyTaskRequest.java
index 140446c..32bd0d7 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ApplyTaskRequest.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/ApplyTaskRequest.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.dto;
+package org.nl.wms.ext.acs.service.dto;
 
 import lombok.Data;
 
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/BaseRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/BaseRequest.java
similarity index 96%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/BaseRequest.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/BaseRequest.java
index be168aa..4926be6 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/BaseRequest.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/BaseRequest.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.dto;
+package org.nl.wms.ext.acs.service.dto;
 
 import com.alibaba.fastjson.JSONObject;
 import lombok.Data;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/BrickInfoDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/BrickInfoDto.java
new file mode 100644
index 0000000..0f53e78
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/BrickInfoDto.java
@@ -0,0 +1,42 @@
+package org.nl.wms.ext.acs.service.dto;
+
+import lombok.Data;
+
+/**
+ * @Author: lyd
+ * @Description: 砖信息
+ * @Date: 2023/7/18
+ */
+@Data
+public class BrickInfoDto {
+    /** 当前抓取工位 **/
+    private String get_station;
+    /** 当前放置工位 **/
+    private String put_station;
+    /** 是否合格 **/
+    private String is_qualified;
+    /** 激光标刻码 **/
+    private String laser_marking_code;
+    /** 碾次 **/
+    private String grinding_number;
+    /** 高度1 **/
+    private String height1;
+    /** 高度2 **/
+    private String height2;
+    /** 高度3 **/
+    private String height3;
+    /** 高度4 **/
+    private String height4;
+    /** 宽度1 **/
+    private String width1;
+    /** 宽度2 **/
+    private String width2;
+    /** 长度 **/
+    private String len;
+    /** 体积 **/
+    private String volume;
+    /** 平面度 **/
+    private String flatness;
+    /** 缺陷个数 **/
+    private String unqualified_qty;
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/GrabRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/GrabRequest.java
similarity index 96%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/GrabRequest.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/GrabRequest.java
index de9055a..b6d44f8 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/GrabRequest.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/GrabRequest.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.dto;
+package org.nl.wms.ext.acs.service.dto;
 
 
 import lombok.Data;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/PalletizeDto.java
similarity index 98%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/PalletizeDto.java
index 6600787..8d59416 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/PalletizeDto.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.dto;
+package org.nl.wms.ext.acs.service.dto;
 
 import lombok.Data;
 
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
similarity index 91%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
index c1a3888..9da141b 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.impl;
+package org.nl.wms.ext.acs.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
@@ -11,10 +11,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.common.exception.BadRequestException;
 import org.nl.system.service.notice.ISysNoticeService;
-import org.nl.wms.ext.service.AcsToWmsService;
-import org.nl.wms.ext.service.dto.ApplyTaskRequest;
-import org.nl.wms.ext.service.vo.ApplyTaskResponse;
-import org.nl.wms.ext.service.vo.BaseResponse;
+import org.nl.wms.ext.acs.service.dto.ApplyTaskRequest;
+import org.nl.wms.ext.acs.service.vo.BaseResponse;
+import org.nl.wms.ext.acs.service.AcsToWmsService;
+import org.nl.wms.ext.acs.service.vo.ApplyTaskResponse;
+import org.nl.wms.ext.record.service.ISysInteractRecordService;
 import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService;
 import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord;
 import org.nl.wms.pdm.service.IPdmBdWorkorderService;
@@ -26,8 +27,10 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint;
 import org.nl.wms.sch.task.service.ISchBaseTaskService;
 import org.nl.wms.sch.task.service.dao.SchBaseTask;
 import org.nl.wms.sch.task_manage.AbstractTask;
+import org.nl.wms.sch.task_manage.GeneralDefinition;
 import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
 import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
+import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
 import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum;
 import org.nl.wms.sch.task_manage.task.TaskFactory;
 import org.nl.wms.sch.task_manage.task.core.TaskStatus;
@@ -66,16 +69,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
     private TaskUtils taskUtils;
     @Autowired
     private ISysNoticeService noticeService;
+    @Autowired
+    private ISysInteractRecordService interactRecordService;
 
     @Override
     public BaseResponse acsApply(JSONObject param) {
         BaseResponse result = new BaseResponse();
         try {
-            String requestMedthodCode = param.getString("request_medthod_code"); // 获取请求方法名
-            if (ObjectUtil.isEmpty(requestMedthodCode)) {
+            String requestMethodCode = param.getString("request_medthod_code"); // 获取请求方法名
+            if (ObjectUtil.isEmpty(requestMethodCode)) {
                 throw new BadRequestException("请求参数错误");
             }
-            Method method = this.getClass().getMethod(StrUtil.toCamelCase(requestMedthodCode), JSONObject.class);
+            Method method = this.getClass().getMethod(StrUtil.toCamelCase(requestMethodCode), JSONObject.class);
             result = (BaseResponse) method.invoke(this, param);
         } catch (Exception e) {
             String message = ObjectUtil.isEmpty(e.getMessage())
@@ -89,6 +94,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
             noticeService.createNotice("异常信息:" + message, "acsApply: " + param.getString("requestNo"),
                     NoticeTypeEnum.EXCEPTION.getCode());
         }
+        // acs对接记录
+        interactRecordService.saveRecord(param, result, GeneralDefinition.ACS_LMS);
         return result;
     }
 
@@ -265,6 +272,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
         return standResponse;
     }
 
+    /**
+     * 提前要料
+     * @param param
+     * @return
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public BaseResponse pressRequestMaterial(JSONObject param) { // (公共接口进来)只是给我一个下料位(中间位置)
@@ -272,12 +284,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
         // 压机、原材料物料(混碾)、压机工单、叫料时间
         String deviceCode = param.getString("device_code");// 几号压机下料位
         SchBasePoint basePoint = pointService.getById(deviceCode);
+        if (ObjectUtil.isEmpty(basePoint)) {
+            return BaseResponse.responseError(requestNo, "设备号[" + deviceCode + "]不正确!");
+        }
         String parentPointCode = basePoint.getParent_point_code();
         // 获取当前正在生产的工单
         PdmBdWorkorder workOrder = workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
                 .eq(PdmBdWorkorder::getPoint_code, parentPointCode)
                 .eq(PdmBdWorkorder::getWorkorder_status, WorkOrderStatusEnum.PRODUCING.getCode())
                 .eq(PdmBdWorkorder::getIs_delete, false));
+        if (ObjectUtil.isEmpty(workOrder)) {
+            return BaseResponse.responseError(requestNo, "工单不存在!");
+        }
         // 获取原材料物料
         PdmBdRequestMaterialRecord requestMaterialRecord = new PdmBdRequestMaterialRecord();
         requestMaterialRecord.setRecord_id(IdUtil.getSnowflake(1,1).nextIdStr());
@@ -375,7 +393,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
             return BaseResponse.responseError(requestNo, "设备编码不能为空");
         }
         // move
-        String move = param.getString("move") + 1;
+        String move = (param.getInteger("move") + 1) + "";
         // 找到点位
         SchBasePoint schBasePoint = pointService.getById(deviceCode);
         if (ObjectUtil.isEmpty(schBasePoint)) {
@@ -383,11 +401,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
         }
         String pointStatus = ObjectUtil.isNotEmpty(schBasePoint.getPoint_status())
                 ? schBasePoint.getPoint_status()
-                : "1";
-        if ((pointStatus.equals("3") && move.equals("2")) || (pointStatus.equals(move))) { // 不做操作
+                : PointStatusEnum.EMPTY_POINT.getCode();
+        if ((pointStatus.equals(PointStatusEnum.FULL_POINT.getCode())
+                && move.equals(PointStatusEnum.EMPTY_VEHICLE.getCode())) || (pointStatus.equals(move))) { // 不做操作
             return BaseResponse.responseOk(requestNo);
         }
-        schBasePoint.setPoint_status(move.toString());
+        schBasePoint.setPoint_status(move);
         PointUtils.setUpdateByAcs(schBasePoint);
         pointService.updateById(schBasePoint);
         return BaseResponse.responseOk(requestNo);
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java
similarity index 70%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java
index 523fe2a..87d87cb 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java
@@ -1,7 +1,7 @@
-package org.nl.wms.ext.service.impl;
+package org.nl.wms.ext.acs.service.impl;
 
 import lombok.extern.slf4j.Slf4j;
-import org.nl.wms.ext.service.WmsToAcsService;
+import org.nl.wms.ext.acs.service.WmsToAcsService;
 import org.springframework.stereotype.Service;
 
 /**
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/ApplyTaskResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/ApplyTaskResponse.java
similarity index 92%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/ApplyTaskResponse.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/ApplyTaskResponse.java
index e131efb..14e2f6b 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/ApplyTaskResponse.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/ApplyTaskResponse.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.vo;
+package org.nl.wms.ext.acs.service.vo;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.http.HttpStatus;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/BaseResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/BaseResponse.java
similarity index 98%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/BaseResponse.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/BaseResponse.java
index dc06404..71db999 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/BaseResponse.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/BaseResponse.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.vo;
+package org.nl.wms.ext.acs.service.vo;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.http.HttpStatus;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/GrabResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/GrabResponse.java
similarity index 57%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/GrabResponse.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/GrabResponse.java
index 83804fa..b853921 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/GrabResponse.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/GrabResponse.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.vo;
+package org.nl.wms.ext.acs.service.vo;
 
 public class GrabResponse extends BaseResponse {
 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/StandResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/StandResponse.java
similarity index 91%
rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/StandResponse.java
rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/StandResponse.java
index 416fa8c..1bd177b 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/vo/StandResponse.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/vo/StandResponse.java
@@ -1,4 +1,4 @@
-package org.nl.wms.ext.service.vo;
+package org.nl.wms.ext.acs.service.vo;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.http.HttpStatus;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java
new file mode 100644
index 0000000..c1e0931
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java
@@ -0,0 +1,66 @@
+package org.nl.wms.ext.record.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.common.base.TableDataInfo;
+import org.nl.common.domain.query.PageQuery;
+import org.nl.common.logging.annotation.Log;
+import org.nl.wms.ext.record.service.ISysInteractRecordService;
+import org.nl.wms.ext.record.service.dao.SysInteractRecord;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.Set;
+/**
+* @author lyd
+* @date 2023-07-19
+**/
+@Slf4j
+@RestController
+@Api(tags = "外部系统接口记录管理")
+@RequestMapping("/api/sysInteractRecord")
+public class SysInteractRecordController {
+
+    @Autowired
+    private ISysInteractRecordService sysInteractRecordService;
+
+    @GetMapping
+    @Log("查询外部系统接口记录")
+    @ApiOperation("查询外部系统接口记录")
+    //@SaCheckPermission("@el.check('sysInteractRecord:list')")
+    public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
+        return new ResponseEntity<>(TableDataInfo.build(sysInteractRecordService.queryAll(whereJson,page)),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增外部系统接口记录")
+    @ApiOperation("新增外部系统接口记录")
+    //@SaCheckPermission("@el.check('sysInteractRecord:add')")
+    public ResponseEntity<Object> create(@Validated @RequestBody SysInteractRecord entity){
+        sysInteractRecordService.create(entity);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改外部系统接口记录")
+    @ApiOperation("修改外部系统接口记录")
+    //@SaCheckPermission("@el.check('sysInteractRecord:edit')")
+    public ResponseEntity<Object> update(@Validated @RequestBody SysInteractRecord entity){
+        sysInteractRecordService.update(entity);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @Log("删除外部系统接口记录")
+    @ApiOperation("删除外部系统接口记录")
+    //@SaCheckPermission("@el.check('sysInteractRecord:del')")
+    @DeleteMapping
+    public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
+        sysInteractRecordService.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java
new file mode 100644
index 0000000..fcebdf9
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java
@@ -0,0 +1,50 @@
+package org.nl.wms.ext.record.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.nl.common.domain.query.PageQuery;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.nl.wms.ext.acs.service.vo.BaseResponse;
+import org.nl.wms.ext.record.service.dao.SysInteractRecord;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+* @description 服务接口
+* @author lyd
+* @date 2023-07-19
+**/
+public interface ISysInteractRecordService extends IService<SysInteractRecord> {
+
+    /**
+    * 查询数据分页
+    * @param whereJson 条件
+    * @param pageable 分页参数
+    * @return IPage<SysInteractRecord>
+    */
+    IPage<SysInteractRecord> queryAll(Map whereJson, PageQuery pageable);
+
+    /**
+    * 创建
+    * @param entity /
+    */
+    void create(SysInteractRecord entity);
+
+    /**
+    * 编辑
+    * @param entity /
+    */
+    void update(SysInteractRecord entity);
+
+    /**
+    * 多选删除
+    * @param ids /
+    */
+    void deleteAll(Set<String> ids);
+
+    /**
+     * 创建记录
+     */
+    void saveRecord(JSONObject param, BaseResponse response, String direction);
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/SysInteractRecord.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/SysInteractRecord.java
new file mode 100644
index 0000000..9bcb4f7
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/SysInteractRecord.java
@@ -0,0 +1,52 @@
+package org.nl.wms.ext.record.service.dao;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+* @description /
+* @author lyd
+* @date 2023-07-19
+**/
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("sys_interact_record")
+public class SysInteractRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "interact_id", type = IdType.NONE)
+    @ApiModelProperty(value = "对接标识")
+    private String interact_id;
+
+    @ApiModelProperty(value = "对接编码")
+    private String interact_code;
+
+    @ApiModelProperty(value = "响应编码")
+    private int code;
+
+    @ApiModelProperty(value = "响应信息")
+    private String message;
+
+    @ApiModelProperty(value = "请求报文")
+    private String request_param;
+
+    @ApiModelProperty(value = "响应结果")
+    private String response_param;
+
+    @ApiModelProperty(value = "记录时间")
+    private String record_time;
+
+    @ApiModelProperty(value = "方向")
+    private String direction;
+
+    @ApiModelProperty(value = "是否成功")
+    private Boolean is_success;
+
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.java
new file mode 100644
index 0000000..c7d1a0d
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.java
@@ -0,0 +1,12 @@
+package org.nl.wms.ext.record.service.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.nl.wms.ext.record.service.dao.SysInteractRecord;
+
+/**
+* @author lyd
+* @date 2023-07-19
+**/
+public interface SysInteractRecordMapper extends BaseMapper<SysInteractRecord> {
+
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.xml
new file mode 100644
index 0000000..55417d8
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.nl.wms.ext.record.service.dao.mapper.SysInteractRecordMapper">
+
+</mapper>
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordDto.java
new file mode 100644
index 0000000..3939677
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordDto.java
@@ -0,0 +1,40 @@
+package org.nl.wms.ext.record.service.dto;
+
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+* @description /
+* @author lyd
+* @date 2023-07-19
+**/
+@Data
+public class SysInteractRecordDto implements Serializable {
+
+    /** 对接标识 */
+    private String interact_id;
+
+    /** 对接编码 */
+    private String interact_code;
+
+    /** 响应编码 */
+    private String code;
+
+    /** 响应信息 */
+    private String message;
+
+    /** 请求报文 */
+    private String request_param;
+
+    /** 响应结果 */
+    private String response_param;
+
+    /** 记录时间 */
+    private String record_time;
+
+    /** 方向 */
+    private String direction;
+
+    /** 是否成功 */
+    private Boolean is_success;
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordQuery.java
new file mode 100644
index 0000000..3222808
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordQuery.java
@@ -0,0 +1,12 @@
+package org.nl.wms.ext.record.service.dto;
+
+import org.nl.common.domain.query.BaseQuery;
+import org.nl.wms.ext.record.service.dao.SysInteractRecord;
+
+/**
+* @author lyd
+* @date 2023-07-19
+**/
+public class SysInteractRecordQuery extends BaseQuery<SysInteractRecord> {
+
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java
new file mode 100644
index 0000000..4ee8240
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java
@@ -0,0 +1,82 @@
+package org.nl.wms.ext.record.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.http.HttpStatus;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.common.domain.query.PageQuery;
+import org.nl.common.exception.BadRequestException;
+import org.nl.common.utils.SecurityUtils;
+import org.nl.wms.ext.acs.service.vo.BaseResponse;
+import org.nl.wms.ext.record.service.ISysInteractRecordService;
+import org.nl.wms.ext.record.service.dao.mapper.SysInteractRecordMapper;
+import org.nl.wms.ext.record.service.dao.SysInteractRecord;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+* @description 服务实现
+* @author lyd
+* @date 2023-07-19
+**/
+@Slf4j
+@Service
+public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordMapper, SysInteractRecord> implements ISysInteractRecordService {
+
+    @Autowired
+    private SysInteractRecordMapper sysInteractRecordMapper;
+
+    @Override
+    public IPage<SysInteractRecord> queryAll(Map whereJson, PageQuery page){
+        LambdaQueryWrapper<SysInteractRecord> lam = new LambdaQueryWrapper<>();
+        lam.orderByDesc(SysInteractRecord::getRecord_time);
+        IPage<SysInteractRecord> pages = new Page<>(page.getPage() + 1, page.getSize());
+        sysInteractRecordMapper.selectPage(pages, lam);
+        return pages;
+    }
+
+    @Override
+    public void create(SysInteractRecord entity) {
+
+        entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr());
+        sysInteractRecordMapper.insert(entity);
+    }
+
+    @Override
+    public void update(SysInteractRecord entity) {
+        SysInteractRecord dto = sysInteractRecordMapper.selectById(entity.getInteract_id());
+        if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!");
+        sysInteractRecordMapper.updateById(entity);
+    }
+
+    @Override
+    public void deleteAll(Set<String> ids) {
+        // 真删除
+        sysInteractRecordMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void saveRecord(JSONObject param, BaseResponse response, String direction) {
+        SysInteractRecord entity = new SysInteractRecord();
+        entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr());
+        entity.setInteract_code(response.getRequestNo());
+        entity.setCode(response.getCode());
+        entity.setMessage(response.getMessage());
+        entity.setRecord_time(DateUtil.now());
+        entity.setDirection(direction);
+        entity.setRequest_param(JSONObject.toJSONString(param));
+        entity.setResponse_param(JSONObject.toJSONString(response));
+        entity.setIs_success(response.getCode() == HttpStatus.HTTP_OK);
+        sysInteractRecordMapper.insert(entity);
+    }
+
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java
index 92f10f7..89a25e0 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.nl.common.domain.query.PageQuery;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.nl.wms.ext.acs.service.dto.BaseRequest;
 import org.nl.wms.sch.task.service.dao.SchBaseTask;
 import org.nl.wms.sch.task_manage.task.core.TaskStatus;
 
@@ -82,7 +83,7 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
 
     /**
      * 任务申请
-     * @see org.nl.wms.ext.service.dto.BaseRequest
+     * @see BaseRequest
      * @param param /
      */
     void apply(JSONObject param);
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java
index 418b7c7..adb02d0 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java
@@ -33,4 +33,13 @@ public class GeneralDefinition {
     public static final String AUTO_CREATION = "1";
     /**ACS创建**/
     public static final String ACS_CREATION = "2";
+    // 请求方向
+    /**ACS->LMS**/
+    public static final String ACS_LMS = "1";
+    /**LMS->ACS**/
+    public static final String LMS_ACS = "2";
+    /**MES->LMS**/
+    public static final String MES_LMS = "3";
+    /**LMS->MES**/
+    public static final String LMS_LMS = "4";
 }
diff --git a/lms/nladmin-ui/src/views/wms/ext/record/index.vue b/lms/nladmin-ui/src/views/wms/ext/record/index.vue
new file mode 100644
index 0000000..320cdb1
--- /dev/null
+++ b/lms/nladmin-ui/src/views/wms/ext/record/index.vue
@@ -0,0 +1,186 @@
+<template>
+  <div class="app-container">
+    <!--工具栏-->
+    <div class="head-container">
+      <!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
+      <crudOperation :permission="permission" />
+      <!--表单组件-->
+      <el-dialog
+        :close-on-click-modal="false"
+        :before-close="crud.cancelCU"
+        :visible.sync="crud.status.cu > 0"
+        :title="crud.status.title"
+        width="500px"
+      >
+        <el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
+          <el-form-item label="对接编码">
+            <el-input v-model="form.interact_code" style="width: 370px;" disabled/>
+          </el-form-item>
+          <el-form-item label="响应编码">
+            <el-input v-model="form.code" style="width: 370px;" disabled/>
+          </el-form-item>
+          <el-form-item label="响应信息">
+            <el-input v-model="form.message" style="width: 370px;" disabled/>
+          </el-form-item>
+          <el-form-item label="请求报文">
+            <el-input v-model="formattedRequestParam" :rows="7" type="textarea" style="width: 370px;"/>
+          </el-form-item>
+          <el-form-item label="响应结果">
+            <el-input v-model="formattedResponseParam" :rows="7" type="textarea" style="width: 370px;" disabled/>
+          </el-form-item>
+          <el-form-item label="记录时间">
+            <el-input v-model="form.record_time" style="width: 370px;" disabled/>
+          </el-form-item>
+          <el-form-item label="请求方向">
+<!--            <el-input v-model="form.direction" style="width: 370px;" disabled/>-->
+            <el-select
+              disabled
+              v-model="form.direction"
+              size="mini"
+              placeholder="点位状态"
+              class="filter-item"
+              style="width: 370px;"
+              clearable
+            >
+              <el-option
+                v-for="item in dict.interact_direction"
+                :label="item.label"
+                :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="text" @click="crud.cancelCU">取消</el-button>
+          <el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
+        </div>
+      </el-dialog>
+      <!--表格渲染-->
+      <el-table
+        ref="table"
+        v-loading="crud.loading"
+        :data="crud.data"
+        size="mini"
+        style="width: 100%;"
+        @selection-change="crud.selectionChangeHandler"
+      >
+        <el-table-column type="selection" width="55" />
+        <el-table-column
+          prop="interact_code"
+          label="对接编码"
+          :min-width="flexWidth('interact_code',crud.data,'对接编码')"
+        />
+        <el-table-column prop="code" label="响应编码" :min-width="flexWidth('code',crud.data,'响应编码')" />
+        <el-table-column prop="message" label="响应信息" :min-width="flexWidth('message',crud.data,'响应信息')" />
+        <el-table-column
+          prop="request_param"
+          label="请求报文"
+          show-overflow-tooltip
+          :min-width="200"
+        />
+        <el-table-column
+          prop="response_param"
+          label="响应结果"
+          show-overflow-tooltip
+          :min-width="200"
+        />
+        <el-table-column
+          prop="record_time"
+          label="记录时间"
+          :min-width="flexWidth('record_time',crud.data,'记录时间')"
+        />
+        <el-table-column prop="direction" label="方向" :min-width="100">
+          <template slot-scope="scope">
+            {{ dict.label.interact_direction[scope.row.direction] }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="is_success" label="请求状态" :min-width="flexWidth('is_success',crud.data,'是否成功')">
+          <template slot-scope="scope">
+            {{ scope.row.is_success ? '成功' : '失败'}}
+          </template>
+        </el-table-column>
+        <el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
+          <template slot-scope="scope">
+            <udOperation
+              :data="scope.row"
+              :permission="permission"
+            />
+          </template>
+        </el-table-column>
+      </el-table>
+      <!--分页组件-->
+      <pagination />
+    </div>
+  </div>
+</template>
+
+<script>
+import crudSysInteractRecord from './sysInteractRecord'
+import CRUD, { crud, form, header, presenter } from '@crud/crud'
+import rrOperation from '@crud/RR.operation'
+import crudOperation from '@crud/CRUD.operation'
+import udOperation from '@crud/UD.operation'
+import pagination from '@crud/Pagination'
+
+const defaultForm = {
+  interact_id: null,
+  interact_code: null,
+  code: null,
+  message: null,
+  request_param: null,
+  response_param: null,
+  record_time: null,
+  direction: null,
+  is_success: null
+}
+export default {
+  name: 'SysInteractRecord',
+  dicts: ['interact_direction'],
+  components: { pagination, crudOperation, rrOperation, udOperation },
+  mixins: [presenter(), header(), form(defaultForm), crud()],
+  cruds() {
+    return CRUD({
+      title: '外部系统接口记录',
+      url: 'api/sysInteractRecord',
+      idField: 'interact_id',
+      sort: 'interact_id,desc',
+      crudMethod: { ...crudSysInteractRecord }
+    })
+  },
+  data() {
+    return {
+      permission: {},
+      rules: {}
+    }
+  },
+  computed: {
+    formattedRequestParam() {
+      try {
+        const jsonObject = JSON.parse(this.form.request_param) // 解析 JSON 字符串为 JavaScript 对象
+        return JSON.stringify(jsonObject, null, 2) // 使用 null 和 2 来进行格式化
+      } catch (error) {
+        // 错误处理,如果 JSON 解析失败则返回原始字符串
+        return this.form.request_param
+      }
+    }, formattedResponseParam() {
+      try {
+        const jsonObject = JSON.parse(this.form.response_param) // 解析 JSON 字符串为 JavaScript 对象
+        return JSON.stringify(jsonObject, null, 2) // 使用 null 和 2 来进行格式化
+      } catch (error) {
+        // 错误处理,如果 JSON 解析失败则返回原始字符串
+        return this.form.response_param
+      }
+    }
+  },
+  methods: {
+    // 钩子:在获取表格数据之前执行,false 则代表不获取数据
+    [CRUD.HOOK.beforeRefresh]() {
+      return true
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/lms/nladmin-ui/src/views/wms/ext/record/sysInteractRecord.js b/lms/nladmin-ui/src/views/wms/ext/record/sysInteractRecord.js
new file mode 100644
index 0000000..9f6d776
--- /dev/null
+++ b/lms/nladmin-ui/src/views/wms/ext/record/sysInteractRecord.js
@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+export function add(data) {
+  return request({
+    url: 'api/sysInteractRecord',
+    method: 'post',
+    data
+  })
+}
+
+export function del(ids) {
+  return request({
+    url: 'api/sysInteractRecord/',
+    method: 'delete',
+    data: ids
+  })
+}
+
+export function edit(data) {
+  return request({
+    url: 'api/sysInteractRecord',
+    method: 'put',
+    data
+  })
+}
+
+export default { add, edit, del }