diff --git a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
index a95365f..0585314 100644
--- a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
@@ -141,7 +141,10 @@
             <a-divider type="vertical"/></a>
           <a v-if="record.isDoubleIn == 1 && record.exceptionState == 1" v-has="'taskHeader:executeTask'" @click="handleDoubleInTask(record)">修复重入数据
             <a-divider type="vertical"/></a>
-          <a v-if="record.status <= 10" v-has="'taskHeader:cancelTask'" @click="cancelTask(record)" >取消</a>
+<!--          <a v-if="record.status <= 10" v-has="'taskHeader:cancelTask'" @click="cancelTask(record)" >取消</a>-->
+          <a-popconfirm v-if="record.status <= 10" v-has="'taskHeader:cancelTask'" title="确定取消任务吗?" @confirm="() => cancelTask(record)">
+            <a>取消</a>
+          </a-popconfirm>
         </span>
 
       </a-table>
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
index 2a1baa1..973771e 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
@@ -49,10 +49,12 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 
 import cn.monitor4all.logRecord.annotation.OperationLog;
 import cn.monitor4all.logRecord.context.LogRecordContext;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @author 游杰
  */
+@Slf4j
 @Service
 public class WcsServiceImpl implements WcsService {
 
@@ -96,6 +98,7 @@ public class WcsServiceImpl implements WcsService {
         msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()",
         recordReturnValue = true)
     public Result warecellAllocation(WarecellDomain warecellDomain) {
+        log.info("开始分配库位");
         String warehouseCode = warecellDomain.getWarehouseCode();
         String zoneCode = warecellDomain.getZoneCode();
         String height = warecellDomain.getHeight();
@@ -253,6 +256,7 @@ public class WcsServiceImpl implements WcsService {
         LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集
         LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集
         LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集
+        log.info("完成分配库位,任务号:" + taskNo + ", 库位号:" + locationCode);
         return Result.OK(wcsTask);
     }
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
index 23bd121..e0b51ab 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.wms.receipt.receiptContainerHeader.service.impl;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -41,6 +42,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import cn.monitor4all.logRecord.annotation.OperationLog;
 import cn.monitor4all.logRecord.context.LogRecordContext;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @Description: 入库组盘
@@ -48,6 +50,7 @@ import cn.monitor4all.logRecord.context.LogRecordContext;
  * @Date:        2022-11-09
  * @Version:     V1.0
  */
+@Slf4j
 @Service
 public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContainerHeaderMapper, ReceiptContainerHeader> implements IReceiptContainerHeaderService {
 
@@ -107,6 +110,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()",
         condition = "#taskDetailList.size() > 0", recordReturnValue = true)
     public Result<TaskHeader> createReceiptTask(ReceiptContainerHeader receiptContainerHeader, String warehouseCode) {
+        log.info("开始创建入库任务");
         if (!receiptContainerHeader.getWarehouseCode().equals(warehouseCode)) {
             return Result.error("id:" + receiptContainerHeader.getId() + "的入库组盘不能在" + warehouseCode + "仓库操作");
         }
@@ -201,8 +205,10 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
             if (receiptDetail == null) {
                 throw new JeecgBootException("根据id:" + receiptContainerDetail.getReceiptDetailId() + ",没有找到入库单详情");
             }
+            Integer receiptId = receiptDetail.getReceiptId();
             receiptDetail = new ReceiptDetail();
-            receiptDetail.setReceiptId(receiptContainerDetail.getReceiptDetailId());
+            receiptDetail.setId(receiptContainerDetail.getReceiptDetailId());
+            receiptDetail.setReceiptId(receiptId);
             receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_WAIT_SHELF);
             receiptDetailList.add(receiptDetail);
         }
@@ -239,6 +245,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         LogRecordContext.putVariable("extraJsonString1", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集
         LogRecordContext.putVariable("taskDetailList", taskDetailList);// 操作日志收集
         LogRecordContext.putVariable("extraJsonString2", JSON.toJSONString(taskDetailList));// 操作日志收集
+        log.info("完成创建入库任务");
         return Result.OK("生成入库任务成功", taskHeader);
     }
 
@@ -313,6 +320,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
     @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务取消'", extra = "#extraJsonString", msg = "'任务ID:' + #taskHeader.getId()",
         condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true)
     public boolean cancelReceiptTask(TaskHeader taskHeader) {
+        log.info("开始取消入库任务");
         ReceiptContainerHeader receiptContainerHeader = getById(taskHeader.getReceiptContainerHeaderId());
         if (receiptContainerHeader == null) {
             return false;
@@ -339,9 +347,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
             if (receiptDetail == null) {
                 throw new JeecgBootException("取消入库任务时, 没有找到入库单详情" + receiptContainerDetail.getReceiptDetailId());
             }
+            Integer receiptId = receiptDetail.getReceiptId();
             receiptDetail = new ReceiptDetail();
             receiptDetail.setId(receiptContainerDetail.getReceiptDetailId());
             receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
+            receiptDetail.setReceiptId(receiptId);
             receiptDetailList.add(receiptDetail);
         }
         if (receiptDetailList.size() != 0) {
@@ -360,6 +370,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         }
         LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集
         LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集
+        log.info("完成取消入库任务");
         return true;
     }
 
@@ -367,6 +378,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
     @Transactional(rollbackFor = JeecgBootException.class)
     @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情取消组盘'", extra = "#extraJsonString", msg = "''", recordReturnValue = true)
     public Result cancelReceiving(Integer id) {
+        log.info("开始取消入库组盘");
         ReceiptContainerHeader receiptContainerHeader = getById(id);
         if (receiptContainerHeader == null) {
             return Result.error("取消组盘失败,没有找到入库组盘头ID:" + id);
@@ -376,7 +388,6 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
             return Result.error("取消组盘失败,已经生成入库任务");
         }
         List<ReceiptContainerDetail> receiptContainerDetailList = receiptContainerDetailService.getReceiptContainerDetailListByHeaderId(id);
-        List<ReceiptDetail> receiptDetailList = new ArrayList<ReceiptDetail>();
         for (ReceiptContainerDetail receiptContainerDetail : receiptContainerDetailList) {
             if (receiptContainerDetail == null) {
                 throw new JeecgBootException("取消组盘失败, 没有找到入库组盘详情");
@@ -385,25 +396,27 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
             if (receiptDetail == null) {
                 throw new JeecgBootException("取消组盘失败, 没有找到入库详情ID:" + receiptContainerDetail.getReceiptDetailId());
             }
+            BigDecimal taskQty = receiptDetail.getTaskQty();
+            Integer receiptId = receiptDetail.getReceiptId();
             receiptDetail = new ReceiptDetail();
             receiptDetail.setId(receiptContainerDetail.getReceiptDetailId());
             receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
-            receiptDetail.setTaskQty(receiptDetail.getTaskQty().subtract(receiptContainerDetail.getQty()));
+            receiptDetail.setTaskQty(taskQty.subtract(receiptContainerDetail.getQty()));
             if (!receiptDetailService.updateById(receiptDetail)) {
                 throw new JeecgBootException("取消组盘失败, 更新入库明细失败,入库详情ID:" + receiptContainerDetail.getReceiptDetailId());
             }
             if (!receiptContainerDetailService.removeById(receiptContainerDetail.getId())) {
                 throw new JeecgBootException("取消组盘失败, 删除入库组盘明细表失败,组盘详情ID:" + receiptContainerDetail.getId());
             }
-            if (!receiptHeaderService.updateReceiptHeaderStatus(receiptDetail.getReceiptId())) {
-                throw new JeecgBootException("取消组盘失败, 更新入库单头失败,入库单ID:" + receiptDetail.getReceiptId());
+            if (!receiptHeaderService.updateReceiptHeaderStatus(receiptId)) {
+                throw new JeecgBootException("取消组盘失败, 更新入库单头失败,入库单ID:" + receiptId);
             }
-            receiptDetailList.add(receiptDetail);
         }
         if (!this.removeById(id)) {
             throw new JeecgBootException("取消组盘失败, 删除入库组盘头表失败,组盘ID:" + id);
         }
         LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));
+        log.info("完成取消入库组盘");
         return Result.ok("取消组盘成功");
     }
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
index 3468854..36b9317 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
@@ -3,6 +3,7 @@ package org.jeecg.modules.wms.receipt.receiving.service.impl;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
@@ -40,10 +41,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import cn.monitor4all.logRecord.annotation.OperationLog;
 import cn.monitor4all.logRecord.context.LogRecordContext;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @author 游杰
  */
+@Slf4j
 @Service
 public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> implements IReceiveService {
 
@@ -104,7 +107,8 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
     @OperationLog(bizId = "''", bizType = "'物料追踪'", tag = "'入库组盘'", extra = "#extraJsonString", msg = "''", recordReturnValue = true)
     @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情组盘'", extra = "#extraJsonString", msg = "''", recordReturnValue = true)
     public Result<ReceiptContainerHeader> receiving(List<Receive> receiveList, String warehouseCode) {
-        boolean result = false;
+        log.info("开始入库组盘");
+        boolean success = false;
         if (receiveList == null || receiveList.size() == 0) {
             return Result.error("入库组盘,收货信息为空");
         }
@@ -157,8 +161,8 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
                     receiptContainerHeader.setToLocationCode(fromLocationCode);
                 }
             }
-            result = receiptContainerHeaderService.save(receiptContainerHeader);
-            if (!result) {
+            success = receiptContainerHeaderService.save(receiptContainerHeader);
+            if (!success) {
                 throw new JeecgBootException("入库组盘,保存入库组盘头失败");
             }
         }
@@ -207,8 +211,10 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
 
             receiptDetail.setTaskQty(receiptTaskQty);
             ReceiptDetail receiptDetail1 = new ReceiptDetail();
+            receiptDetail1.setReceiptId(receiptDetail.getReceiptId());
             receiptDetail1.setId(receiptDetail.getId());
             receiptDetail1.setTaskQty(receiptTaskQty);
+            receiptDetail1.setStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
             receiptDetailList.add(receiptDetail1);
 
             LambdaQueryWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
@@ -250,17 +256,24 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
         if (CollectionUtils.isEmpty(receiptDetailList)) {
             throw new JeecgBootException("入库组盘,请填入收货数量");
         }
-        result = receiptDetailService.updateBatchById(receiptDetailList);
-        if (!result) {
+        success = receiptDetailService.updateBatchById(receiptDetailList);
+        if (!success) {
             throw new JeecgBootException("入库组盘,批量更新入库单详情失败");
         }
+        List<Integer> receiptIdList = receiptDetailList.stream().map(ReceiptDetail::getReceiptId).distinct().collect(Collectors.toList());
+        for (Integer receiptId : receiptIdList) {
+            if (!receiptHeaderService.updateReceiptHeaderStatus(receiptId)) {
+                throw new JeecgBootException("入库组盘, 更新入库单明细失败");
+            }
+        }
         if (receiptContainerDetailList.size() > 0) {
-            result = receiptContainerDetailService.saveBatch(receiptContainerDetailList);
-            if (!result) {
+            success = receiptContainerDetailService.saveBatch(receiptContainerDetailList);
+            if (!success) {
                 throw new JeecgBootException("入库组盘,保存入库组盘详情失败");
             }
         }
         LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));
-        return Result.OK("收货成功", receiptContainerHeader);
+        log.info("完成入库组盘");
+        return Result.OK("入库组盘成功", receiptContainerHeader);
     }
 }