diff --git a/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue b/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue
index 1cbf45c..1e07123 100644
--- a/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue
@@ -254,6 +254,16 @@ export default {
           scopedSlots: {customRender: 'fillStatus_dictText'}
         },
         {
+          title: '任务总数',
+          align: "center",
+          dataIndex: 'taskTimes',
+        },
+        {
+          title: '移库任务数',
+          align: "center",
+          dataIndex: 'moveTaskTimes',
+        },
+        {
           title: '库区',
           align: "center",
           dataIndex: 'zoneCode',
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/entity/Container.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/entity/Container.java
index b2c3e40..4a94378 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/entity/Container.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/entity/Container.java
@@ -1,20 +1,18 @@
 package org.jeecg.modules.wms.config.container.entity;
 
 import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
 import java.util.Date;
-import java.math.BigDecimal;
+
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
@@ -69,16 +67,17 @@ public class Container implements Serializable {
     @Dict(dicCode = "fill_status")
     @ApiModelProperty(value = "填充状态")
     private String fillStatus;
+    @ApiModelProperty(value = "任务总数")
+    private Integer taskTimes;
+    @ApiModelProperty(value = "移库任务数")
+    private Integer moveTaskTimes;
     /** 备用字段1 */
-    @Excel(name = "备用字段1", width = 15)
     @ApiModelProperty(value = "备用字段1")
     private String userdef1;
     /** 备用字段2 */
-    @Excel(name = "备用字段2", width = 15)
     @ApiModelProperty(value = "备用字段2")
     private String userdef2;
     /** 备用字段3 */
-    @Excel(name = "备用字段3", width = 15)
     @ApiModelProperty(value = "备用字段3")
     private String userdef3;
     /** 创建人 */
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
index 0bd6629..22dee38 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
@@ -77,6 +77,9 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container
 
     @Override
     public Container getContainerByCode(String containCode, String warehouseCode) {
+        if (StringUtils.isEmpty(containCode)) {
+            throw new JeecgBootException("容器编码为空");
+        }
         if (StringUtils.havaLowerCase(containCode)) {
             throw new JeecgBootException("容器不能有小字母" + containCode);
         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/entity/Material.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/entity/Material.java
index 9e08049..de58ceb 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/entity/Material.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/entity/Material.java
@@ -1,19 +1,19 @@
 package org.jeecg.modules.wms.config.material.entity;
 
 import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
 import java.math.BigDecimal;
+import java.util.Date;
+
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
@@ -63,6 +63,14 @@ public class Material implements Serializable {
     @Excel(name = "类别", width = 15)
     @ApiModelProperty(value = "类别")
     private String type;
+    /** 入库数 */
+    @Excel(name = "入库数", width = 15)
+    @ApiModelProperty(value = "入库数")
+    private BigDecimal receiptQty;
+    /** 任务数 */
+    @Excel(name = "任务数", width = 15)
+    @ApiModelProperty(value = "任务数")
+    private BigDecimal taskQty;
     /** ABC分类 */
     @Excel(name = "ABC分类", width = 15)
     @ApiModelProperty(value = "ABC分类")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoCheckoutTask.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoCheckoutTask.java
new file mode 100644
index 0000000..114aff8
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoCheckoutTask.java
@@ -0,0 +1,80 @@
+package org.jeecg.modules.wms.monitor.job;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.wms.config.container.entity.Container;
+import org.jeecg.modules.wms.config.container.service.IContainerService;
+import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService;
+import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService;
+import org.jeecg.modules.wms.monitor.job.dto.AutoCheckOutDto;
+import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService;
+import org.jeecg.utils.StringUtils;
+import org.jeecg.utils.constant.QuantityConstant;
+import org.quartz.*;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 定时任务
+ * @author 游杰
+ */
+
+@Slf4j
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+public class AutoCheckoutTask implements Job {
+
+    @Resource
+    private ITaskHeaderService taskHeaderService;
+
+    @Resource
+    private IHuahengMultiHandlerService huahengMultiHandlerService;
+
+    @Resource
+    private IContainerService containerService;
+    @Resource
+    private IParameterConfigurationService parameterConfigurationService;
+
+    private String parameter;
+
+    public void setParameter(String parameter) {
+        this.parameter = parameter;
+    }
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+
+        log.info(String.format(" AutoCheckoutTask 执行任务! 时间:" + DateUtils.getTimestamp()));
+        List<AutoCheckOutDto> autoCheckOutDtoList = JSON.parseArray(this.parameter, AutoCheckOutDto.class);
+        String value = parameterConfigurationService.getValueByCode(QuantityConstant.CONTAINER_MOVE_QTY);
+        int containerMoveQty = 5;
+        if (StringUtils.isNotEmpty(value)) {
+            containerMoveQty = Integer.parseInt(value);
+        }
+        LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery();
+        containerLambdaQueryWrapper.ge(Container::getMoveTaskTimes, containerMoveQty);
+        List<Container> containerList = containerService.list(containerLambdaQueryWrapper);
+        for (Container container : containerList) {
+            String zoneCode = container.getZoneCode();
+            String warehouseCode = container.getWarehouseCode();
+            String toPort = null;
+            if (StringUtils.isEmpty(zoneCode)) {
+                toPort = autoCheckOutDtoList.get(0).getToPort();
+            } else {
+                for (AutoCheckOutDto autoCheckOutDto : autoCheckOutDtoList) {
+                    if (zoneCode.equals(autoCheckOutDto.getZoneCode())) {
+                        toPort = autoCheckOutDto.getToPort();
+                    }
+                }
+            }
+            taskHeaderService.createCheckOutTask(container.getCode(), toPort, warehouseCode);
+        }
+    }
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/dto/AutoCheckOutDto.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/dto/AutoCheckOutDto.java
new file mode 100644
index 0000000..21bf916
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/dto/AutoCheckOutDto.java
@@ -0,0 +1,10 @@
+package org.jeecg.modules.wms.monitor.job.dto;
+
+import lombok.Data;
+
+@Data
+public class AutoCheckOutDto {
+
+    private String zoneCode;
+    private String toPort;
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
index 470028d..9339429 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
@@ -217,7 +217,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
         }
         int status = shipmentContainerHeader.getStatus();
         if (status >= QuantityConstant.SHIPMENT_CONTAINER_TASK) {
-            return Result.error("取消出库配盘失败,已经生成出库任务");
+            return Result.error("取消出库配盘失败,出库配盘状态是生成出库任务");
         }
         List<ShipmentContainerDetail> shipmentContainerDetailList = shipmentContainerDetailService.getShipmentContainerDetailListByHeaderId(id);
         for (ShipmentContainerDetail shipmentContainerDetail : shipmentContainerDetailList) {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
index 47f1423..69dc06f 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -62,6 +62,7 @@ import org.jeecg.modules.wms.task.taskHeader.mapper.TaskHeaderMapper;
 import org.jeecg.modules.wms.task.taskHeader.service.ITaskDetailService;
 import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService;
 import org.jeecg.modules.wms.task.taskHeaderHistory.service.ITaskHeaderHistoryService;
+import org.jeecg.utils.HuahengJwtUtil;
 import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -69,6 +70,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.alibaba.fastjson.JSON;
+import com.aliyun.oss.ServiceException;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -1804,6 +1806,17 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if (!success) {
             throw new JeecgBootException("任务类型" + taskType + "完成任务时,更新库存信息失败");
         }
+        LambdaUpdateWrapper<Container> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        lambdaUpdateWrapper.eq(Container::getCode, containerCode);
+        HuahengJwtUtil.calculateQuantity(lambdaUpdateWrapper, "task_times", BigDecimal.ONE);
+        if (taskType == QuantityConstant.TASK_TYPE_TRANSFER) {
+            HuahengJwtUtil.calculateQuantity(lambdaUpdateWrapper, "move_task_times", BigDecimal.ONE);
+        } else {
+            lambdaUpdateWrapper.setSql(true, "move_task_times = 0");
+        }
+        if (!containerService.update(lambdaUpdateWrapper)) {
+            throw new ServiceException("任务类型" + taskType + "更新容器失败");
+        }
         return Result.OK("任务类型" + taskType + "完成任务成功");
     }
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java
index b7c4214..3d91398 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java
@@ -302,7 +302,11 @@ public class HuahengJwtUtil {
 
     public static <T> void calculateQuantity(LambdaUpdateWrapper<T> lambdaUpdateWrapper, T t, String fieldName, BigDecimal quantity, Boolean geZero) {
         String sqlFieldName = StrUtil.toUnderlineCase(fieldName);
-        lambdaUpdateWrapper.setSql(quantity != null, sqlFieldName + " = " + sqlFieldName + " + " + quantity);
+        if (quantity.compareTo(BigDecimal.ZERO) < 0) {
+            lambdaUpdateWrapper.setSql(quantity != null, sqlFieldName + " = " + sqlFieldName + quantity);
+        } else {
+            lambdaUpdateWrapper.setSql(quantity != null, sqlFieldName + " = " + sqlFieldName + " + " + quantity);
+        }
         if (t != null) {
 //            Object fieldValue = ReflectUtil.getFieldValue(t, fieldName);
 //            lambdaUpdateWrapper.apply(fieldValue != null, sqlFieldName + " = {0}", fieldValue);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
index 8b7c4b4..3efca14 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
@@ -485,6 +485,7 @@ public class QuantityConstant {
     public static final String DOUBLE_FORK_RESERVE_LOCATION = "doubleForkReserveLocation";
     public static final String DOUBLE_FORK_SEARCH_LOCATION = "doubleForkSearchLocation";
     public static final String MAX_ROADWAY_RECEIPT = "maxRoadWayReceipt";
+    public static final String CONTAINER_MOVE_QTY = "containerMoveQty";
     public static final String WAREHOUSING_WEIGHING = "warehousingWeighing";
     public static final String EXCEPTION_TO_CACHE = "exceptionToCache";
     public static final String CONTAINER_SPEC = "containerSpec";