diff --git a/ant-design-vue-jeecg/pom.xml b/ant-design-vue-jeecg/pom.xml
index ab63db4..c913a76 100644
--- a/ant-design-vue-jeecg/pom.xml
+++ b/ant-design-vue-jeecg/pom.xml
@@ -46,7 +46,7 @@
                             <goal>install-node-and-npm</goal>
                         </goals>
                         <configuration>
-                            <nodeVersion>v16.19.0</nodeVersion>
+                            <nodeVersion>16.19.0</nodeVersion>
                             <npmVersion>8.19.3</npmVersion>
                         </configuration>
                     </execution>
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue
index d257270..7183764 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue
@@ -18,12 +18,6 @@
       </a-upload>
       <!-- 高级查询区域 -->
       <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </a-dropdown>
     </div>
 
     <!-- table区域-begin -->
@@ -68,25 +62,6 @@
           </a-button>
         </template>
 
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a @click="handleDetail(record)">详情</a>
-              </a-menu-item>
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
       </a-table>
     </div>
 
@@ -165,14 +140,6 @@
             title:'物料总数',
             align:"center",
             dataIndex: 'qty'
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' }
           }
         ],
         url: {
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue b/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
index 764a282..914df6e 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
@@ -74,14 +74,7 @@
           </a-button>
         </template>
 
-        <span slot="action" slot-scope="text, record">
-          <a v-has="'inventoryDetail:edit'" @click="handleEdit(record)">编辑</a>
-          <a-divider type="vertical"/>
 
-          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-            <a v-has="'inventoryDetail:add'">删除</a>
-          </a-popconfirm>
-        </span>
 
       </a-table>
     </div>
@@ -227,15 +220,11 @@ export default {
         {
           title: '更新日期',
           align: "center",
-          dataIndex: 'updateTime'
-        },
-        {
-          title: '操作',
-          dataIndex: 'action',
-          align: "center",
           fixed: "right",
+          dataIndex: 'updateTime',
           width: 147,
           scopedSlots: {customRender: 'action'},
+
         }
       ],
       url: {
diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue
index 00ab63e..fb50adb 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue
@@ -104,7 +104,7 @@
       <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
-        <a-button v-has="'receiptHeader:print'"@click="batchPrint()" type="primary">打印</a-button>
+        <a-button v-has="'receiptHeader:print'" @click="batchPrint()" type="primary">打印</a-button>
       </a-upload>
       <!-- 高级查询区域 -->
 <!--      <j-super-query :fieldList="superFieldList" ref="superQueryModal"-->
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java
index 829c965..e431c94 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java
@@ -7,6 +7,7 @@ import org.jeecg.modules.wms.monitor.operation.entity.OperationLog;
 import org.jeecg.modules.wms.monitor.operation.mapper.OperationLogMapper;
 import org.jeecg.modules.wms.monitor.operation.service.IOperationLogService;
 import org.jeecg.modules.wms.receipt.receiptContainerHeader.entity.ReceiptContainerDetail;
+import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail;
 import org.jeecg.utils.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -44,7 +45,7 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope
                         if (receiptContainerDetail == null || receiptContainerDetail.getUniqueCode() == null) {
                             continue;
                         }
-                        String msg = StrUtil.format("上游单号:{},入库单据号:{},仓库编码:{},托盘编码:{},物料编码:{},入库数量:{}", receiptContainerDetail.getReferCode(),
+                        String msg = StrUtil.format("上游单号:{},入库单据号:{},仓库编码:{},托盘编码:{},物料编码:{},数量:{}", receiptContainerDetail.getReferCode(),
                             receiptContainerDetail.getReceiptCode(), receiptContainerDetail.getWarehouseCode(), receiptContainerDetail.getContainerCode(),
                             receiptContainerDetail.getMaterialCode(), receiptContainerDetail.getQty());
                         OperationLog operationLog = new OperationLog();
@@ -61,16 +62,40 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope
                         operationLogList.add(operationLog);
                     }
                 }
+                if (logDTO.getBizType().equals("入库单追踪")) {
+                    List<ReceiptDetail> receiptDetailList = JSON.parseArray(logDTO.getExtra(), ReceiptDetail.class);
+                    if (CollectionUtils.isEmpty(receiptDetailList)) {
+                        return true;
+                    }
+                    for (ReceiptDetail receiptDetail : receiptDetailList) {
+                        if (receiptDetail == null || receiptDetail.getReceiptCode() == null) {
+                            continue;
+                        }
+                        String msg = StrUtil.format("物料编码:{},数量:{},已收数量:{}", receiptDetail.getMaterialCode(), receiptDetail.getQty(), receiptDetail.getTaskQty());
+                        OperationLog operationLog = new OperationLog();
+                        operationLog.setBizId(receiptDetail.getReceiptCode());
+                        operationLog.setOperationMsg(StringUtils.substring(msg, 0, 1000));
+                        operationLog.setBizType(logDTO.getBizType());
+                        operationLog.setBizTag(logDTO.getTag());
+                        operationLog.setContentException(StringUtils.substring(logDTO.getException(), 0, 1000));
+                        operationLog.setContentReturn(StringUtils.substring(logDTO.getReturnStr(), 0, 1000));
+                        operationLog.setOperationCostTime(logDTO.getExecutionTime());
+                        operationLog.setOperationStatus(logDTO.getSuccess().equals(true) ? 1 : 0);
+                        operationLog.setOperationTime(logDTO.getOperateDate());
+                        operationLog.setOperatorName(logDTO.getOperatorId());
+                        operationLogList.add(operationLog);
+                    }
+                }
             }
             if (!StringUtils.isEmpty(logDTO.getBizId())) {
                 OperationLog operationLog = new OperationLog();
                 operationLog.setBizId(logDTO.getBizId());
+                operationLog.setOperationMsg(StringUtils.substring(logDTO.getMsg(), 0, 1000));
                 operationLog.setBizType(logDTO.getBizType());
                 operationLog.setBizTag(logDTO.getTag());
                 operationLog.setContentException(StringUtils.substring(logDTO.getException(), 0, 1000));
                 operationLog.setContentReturn(StringUtils.substring(logDTO.getReturnStr(), 0, 1000));
                 operationLog.setOperationCostTime(logDTO.getExecutionTime());
-                operationLog.setOperationMsg(StringUtils.substring(logDTO.getMsg(), 0, 1000));
                 operationLog.setOperationStatus(logDTO.getSuccess().equals(true) ? 1 : 0);
                 operationLog.setOperationTime(logDTO.getOperateDate());
                 operationLog.setOperatorName(logDTO.getOperatorId());
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
index 67aecf9..81af760 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
@@ -95,6 +95,7 @@ public class ReceiptContainerDetail implements Serializable {
     @Excel(name = "项目号", width = 15)
     @ApiModelProperty(value = "项目号")
     private String project;
+    @Excel(name = "唯一号", width = 15)
     @ApiModelProperty(value = "唯一号")
     private String uniqueCode;
     /** 备用字段1 */
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java
index 71c442f..32199d6 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.wms.receipt.receiptHeader.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.aliyun.oss.ServiceException;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.wms.config.material.entity.Material;
@@ -9,11 +10,18 @@ import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
 import org.jeecg.modules.wms.receipt.receiptHeader.mapper.ReceiptDetailMapper;
 import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptDetailService;
 import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService;
+import org.jeecg.utils.HuahengJwtUtil;
 import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
 import java.util.List;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import cn.monitor4all.logRecord.annotation.OperationLog;
+import cn.monitor4all.logRecord.context.LogRecordContext;
+
 import org.springframework.beans.factory.annotation.Autowired;
 
 import javax.annotation.Resource;
@@ -42,6 +50,7 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
     }
 
     @Override
+    @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库详情添加'", extra = "#extraJsonString", msg = "''", operatorId = "#username", recordReturnValue = true)
     public Result saveReceiptDetail(ReceiptDetail receiptDetail) {
         ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
         if (receiptHeader == null) {
@@ -79,6 +88,11 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
         if (!success) {
             throw new ServiceException("添加失败, 保存入库单详失败");
         }
+        // 操作日志收集
+        List<ReceiptDetail> receiptDetailList = new ArrayList<ReceiptDetail>();
+        receiptDetailList.add(receiptDetail);
+        LogRecordContext.putVariable("username", HuahengJwtUtil.getCurrentOperator());
+        LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptDetailList));
         return Result.OK("添加成功!");
     }
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java
index 739c4f0..bd39666 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java
@@ -1,17 +1,13 @@
 package org.jeecg.modules.wms.receipt.receiptHeader.service.impl;
 
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
+import com.aliyun.oss.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.wms.config.receiptType.entity.ReceiptType;
 import org.jeecg.modules.wms.config.receiptType.service.IReceiptTypeService;
+import org.jeecg.modules.wms.config.receiptType.service.impl.ReceiptTypeServiceImpl;
 import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail;
 import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
 import org.jeecg.modules.wms.receipt.receiptHeader.mapper.ReceiptDetailMapper;
@@ -19,16 +15,27 @@ import org.jeecg.modules.wms.receipt.receiptHeader.mapper.ReceiptHeaderMapper;
 import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptDetailService;
 import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService;
 import org.jeecg.modules.wms.receipt.receiptHeaderHistory.service.IReceiptHeaderHistoryService;
+import org.jeecg.utils.HuahengJwtUtil;
 import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import cn.monitor4all.logRecord.annotation.OperationLog;
+import cn.monitor4all.logRecord.context.LogRecordContext;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.aliyun.oss.ServiceException;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Collection;
 
 /**
  * @Description: 入库表主表
@@ -53,18 +60,18 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R
     private IReceiptHeaderHistoryService receiptHeaderHistoryService;
 
     /**
-     * @param  id     入库单主表id
-     * @param  reason 进入历史单据的原因
+     * @param id 入库单主表id
+     * @param reason 进入历史单据的原因
      * @return
      */
     @Override
     @Transactional
-    public boolean delMain(String id, String reason) {
+    public boolean delMain(String id,String reason) {
         ReceiptHeader receiptHeader = getById(id);
         if (receiptHeader.getFirstStatus().intValue() > QuantityConstant.RECEIPT_HEADER_BUILD) {
             throw new ServiceException("不能删除非新建状态单据");
         }
-        receiptHeaderHistoryService.saveById(id, reason);
+        receiptHeaderHistoryService.saveById(id,reason);
         boolean success = receiptDetailMapper.deleteByMainId(id);
 
         if (!success) {
@@ -89,6 +96,8 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R
 
     @Override
     @Transactional
+    @OperationLog(bizId = "#receiptHeader.getCode()", bizType = "'入库单追踪'", tag = "'入库单生成'", 
+    msg = "'上游单号:'+ #receiptHeader.getReferCode() + ',仓库编码:' + #receiptHeader.getWarehouseCode()", operatorId = "#username", recordReturnValue = true)
     public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader) {
         LambdaQueryWrapper<ReceiptType> lambdaQueryWrapper = Wrappers.lambdaQuery();
         lambdaQueryWrapper.eq(ReceiptType::getCode, receiptHeader.getType()).eq(ReceiptType::getWarehouseCode, receiptHeader.getWarehouseCode());
@@ -107,6 +116,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R
         if (!success) {
             return Result.OK("添加失败!");
         }
+        LogRecordContext.putVariable("username", HuahengJwtUtil.getCurrentOperator());
         return Result.OK("添加成功!", receiptHeader);
     }
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentDetail.java
index e388a5b..45aa1ab 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentDetail.java
@@ -107,8 +107,7 @@ public class ShipmentDetail implements Serializable {
     /** 上游行号 */
     @Excel(name = "上游行号", width = 15)
     @ApiModelProperty(value = "上游行号")
-    private String referLineNum;
-    /** 备用字段1 */
+    private String referLineNum;    /** 备用字段1 */
     @Excel(name = "备用字段1", width = 15)
     @ApiModelProperty(value = "备用字段1")
     private String userdef1;
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java
index d1d72a0..efce67e 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java
@@ -115,6 +115,7 @@ public class TaskDetail implements Serializable {
     @Excel(name = "入库的库存详情id", width = 15)
     @ApiModelProperty(value = "入库的库存详情id")
     private Integer toInventoryDetailId;
+    @Excel(name = "唯一号", width = 15)
     @ApiModelProperty(value = "唯一号")
     private String uniqueCode;
     /** 备用字段1 */