diff --git a/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiSomeContainer.vue b/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiSomeContainer.vue
index 534c1c3..40345af 100644
--- a/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiSomeContainer.vue
+++ b/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiSomeContainer.vue
@@ -27,7 +27,7 @@ export default {
   },
   data() {
     return {
-      url: {list: '/inventory/inventoryDetail/list'},
+      url: {list: '/inventory/inventoryDetail/queryPageListList'},
       columns: [
         {title: '容器编码', align: 'center', dataIndex: 'containerCode'},
         {title: '库位编码', align: 'center', width: '15%', dataIndex: 'locationCode'},
diff --git a/ant-design-vue-jeecg/src/views/system/QuartzJobList.vue b/ant-design-vue-jeecg/src/views/system/QuartzJobList.vue
index 1d4a334..c2c4647 100644
--- a/ant-design-vue-jeecg/src/views/system/QuartzJobList.vue
+++ b/ant-design-vue-jeecg/src/views/system/QuartzJobList.vue
@@ -13,7 +13,7 @@
           </a-col>
           <a-col :md="6" :sm="10">
             <a-form-model-item label="任务状态" prop="status">
-              <a-select style="width: 220px" v-model="queryParam.status" placeholder="请选择状态">
+              <a-select  v-model="queryParam.status" placeholder="请选择状态">
                 <a-select-option value="">全部</a-select-option>
                 <a-select-option value="0">正常</a-select-option>
                 <a-select-option value="-1">停止</a-select-option>
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
index fb40fb9..1339c9b 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
@@ -447,6 +447,9 @@ export default {
         '次品': 'red',
         '锁定': 'red',
         '冻结': 'red',
+        '空闲': 'green',
+        '有货': 'purple',
+        '满盘': 'blue',
         default: 'blue'
       };
       return colors[status] || colors.default;
diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue
index 8272b13..95864f9 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue
@@ -286,7 +286,6 @@ export default {
           title: '原因',
           align: 'center',
           dataIndex: 'reason',
-          scopedSlots: {customRender: 'reason'}
         },
         {
           title: '创建人',
diff --git a/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue b/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue
index 2e8debd..c3c9c75 100644
--- a/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue
@@ -199,6 +199,16 @@ export default {
           scopedSlots: { customRender: 'inventoryStatus_dictText' }
         },
         {
+          title: '入库单ID',
+          align: 'center',
+          dataIndex: 'receiptId'
+        },
+        {
+          title: '出库单ID',
+          align: 'center',
+          dataIndex: 'shipmentId'
+        },
+        {
           title: '创建人',
           align: 'center',
           dataIndex: 'createBy'
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryDetail/controller/InventoryDetailController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryDetail/controller/InventoryDetailController.java
index df78858..2bebddb 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryDetail/controller/InventoryDetailController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryDetail/controller/InventoryDetailController.java
@@ -22,6 +22,7 @@ import org.springframework.web.servlet.ModelAndView;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
 import cn.hutool.core.date.DateUtil;
@@ -69,6 +70,33 @@ public class InventoryDetailController extends JeecgController<InventoryDetail, 
         return Result.OK(pageList);
     }
 
+    /**
+     * 分页列表查询
+     * @param  inventoryDetail
+     * @param  pageNo
+     * @param  pageSize
+     * @param  req
+     * @return
+     */
+    // @AutoLog(value = "库存详情-分页列表查询")
+    @ApiOperation(value = "库存详情-分页列表查询", notes = "库存详情-分页列表查询")
+    @GetMapping(value = "/queryPageListList")
+    public Result<IPage<InventoryDetail>> queryPageListList(InventoryDetail inventoryDetail, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
+        Date inventoryAge = null;
+        if (inventoryDetail.getInventoryAge() != null) {
+            inventoryAge = DateUtil.offsetDay(new Date(), 0 - inventoryDetail.getInventoryAge());
+            inventoryDetail.setInventoryAge(null);
+        }
+        QueryWrapper<InventoryDetail> queryWrapper = QueryGenerator.initQueryWrapper(inventoryDetail, req.getParameterMap());
+        queryWrapper.lt(inventoryAge != null, "create_time", inventoryAge);
+        queryWrapper.lambda().groupBy(InventoryDetail::getContainerCode);
+        Page<InventoryDetail> page = new Page<InventoryDetail>(pageNo, pageSize);
+        IPage<InventoryDetail> pageList = inventoryDetailService.queryPage(page, queryWrapper);
+        inventoryDetailService.calculateInventoryAge(pageList.getRecords());// 计算库龄
+        return Result.OK(pageList);
+    }
+
     @ApiOperation(value = "库存详情-分页列表查询", notes = "库存详情-分页列表查询")
     @GetMapping(value = "/selectContainerlist")
     public Result<IPage<InventoryDetail>> selectContainerlist(InventoryDetail inventoryDetail, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@@ -81,10 +109,14 @@ public class InventoryDetailController extends JeecgController<InventoryDetail, 
             List<String> containerCodeList = inventoryDetailService.containerCodeList(warehouseCode, inventoryDetail.getMaterialCode());
             QueryWrapper<InventoryDetail> queryWrapper = QueryGenerator.initQueryWrapper(inventoryDetail, req.getParameterMap());
             Page<InventoryDetail> page = new Page<InventoryDetail>(pageNo, pageSize);
-            if (containerCodeList.size() > 0) {
+            if (CollectionUtils.isNotEmpty(containerCodeList)) {
                 queryWrapper.in("container_code", containerCodeList);
+                queryWrapper.lambda().groupBy(InventoryDetail::getContainerCode);
             }
             pageList = inventoryDetailService.page(page, queryWrapper);
+            if (CollectionUtils.isEmpty(pageList.getRecords())) {
+                return Result.OK(pageList);
+            }
         }
         return Result.OK(pageList);
     }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoDeleteReceiptTask.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoDeleteReceiptTask.java
new file mode 100644
index 0000000..46ecb73
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoDeleteReceiptTask.java
@@ -0,0 +1,73 @@
+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.api.erp.service.IErpService;
+import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService;
+import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService;
+import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
+import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService;
+import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentHeader;
+import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService;
+import org.jeecg.utils.StringUtils;
+import org.jeecg.utils.constant.QuantityConstant;
+import org.quartz.*;
+
+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 AutoDeleteReceiptTask implements Job {
+
+    @Resource
+    private IReceiptHeaderService receiptHeaderService;
+
+    @Resource
+    private IShipmentHeaderService shipmentHeaderService;
+
+    @Resource
+    private IErpService erpService;
+    @Resource
+    private IHuahengMultiHandlerService huahengMultiHandlerService;
+    @Resource
+    private IParameterConfigurationService parameterConfigurationService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_DELETE_RECEIPT);
+        if (StringUtils.isEmpty(value)) {
+            value = "0";
+        }
+        int DELETE_RECEIPT = Integer.parseInt(value);
+        if (DELETE_RECEIPT == QuantityConstant.NOT_DELETE_RECEIPT) {
+            return;
+        }
+        LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
+        receiptHeaderLambdaQueryWrapper.eq(ReceiptHeader::getLastStatus, QuantityConstant.RECEIPT_HEADER_COMPLETED).isNull(ReceiptHeader::getReferCode);
+        List<ReceiptHeader> receiptHeaderList = receiptHeaderService.list(receiptHeaderLambdaQueryWrapper);
+        log.info(String.format(" AutoDeleteReceiptTask 执行任务! receiptHeaderList :" + receiptHeaderList + "时间" + DateUtils.getTimestamp()));
+        for (ReceiptHeader receiptHeader : receiptHeaderList) {
+            receiptHeaderService.delMain(String.valueOf(receiptHeader.getId()), QuantityConstant.WMS_COMPLETE_DELETE_RECEIPT);
+        }
+        LambdaQueryWrapper<ShipmentHeader> shipmentHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
+        shipmentHeaderLambdaQueryWrapper.eq(ShipmentHeader::getLastStatus, QuantityConstant.SHIPMENT_HEADER_COMPLETED).isNull(ShipmentHeader::getReferCode);
+        List<ShipmentHeader> shipmentHeaderList = shipmentHeaderService.list(shipmentHeaderLambdaQueryWrapper);
+        log.info(String.format(" AutoDeleteReceiptTask 执行任务! shipmentHeaderList :" + shipmentHeaderList + "时间" + DateUtils.getTimestamp()));
+        for (ShipmentHeader shipmentHeader : shipmentHeaderList) {
+            shipmentHeaderService.delMain(String.valueOf(shipmentHeader.getId()), QuantityConstant.WMS_COMPLETE_DELETE_RECEIPT);
+        }
+
+    }
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java
index d6e5154..fbcc978 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java
@@ -6,6 +6,7 @@ import javax.annotation.Resource;
 
 import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.wms.api.erp.service.IErpService;
+import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService;
 import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService;
 import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
 import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService;
@@ -39,6 +40,8 @@ public class ErpTask implements Job {
     private IErpService erpService;
     @Resource
     private IHuahengMultiHandlerService huahengMultiHandlerService;
+    @Resource
+    private IParameterConfigurationService parameterConfigurationService;
 
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
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 c1ffbd9..1cfb1bf 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
@@ -79,7 +79,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R
     public boolean delMain(String id, String reason) {
         ReceiptHeader receiptHeader = getById(id);
         if (receiptHeader.getFirstStatus().intValue() > QuantityConstant.RECEIPT_HEADER_BUILD
-            && receiptHeader.getFirstStatus().intValue() <= QuantityConstant.RECEIPT_HEADER_COMPLETED) {
+            && receiptHeader.getLastStatus().intValue() < QuantityConstant.RECEIPT_HEADER_COMPLETED) {
             throw new JeecgBootException("不能删除非新建状态单据");
         }
         receiptHeaderHistoryService.saveById(id, reason);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java
index 1ac5620..432665b 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java
@@ -117,7 +117,7 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
 
     @Resource
     private IZoneService zoneService;
-    
+
     @Resource
     private IWaveConfigService waveConfigService;
 
@@ -132,7 +132,7 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
             throw new JeecgBootException("获取出库单信息失败!");
         }
         if (shipmentHeader.getFirstStatus().intValue() > QuantityConstant.SHIPMENT_HEADER_BUILD
-            && shipmentHeader.getFirstStatus().intValue() <= QuantityConstant.SHIPMENT_HEADER_COMPLETED) {
+            && shipmentHeader.getFirstStatus().intValue() < QuantityConstant.SHIPMENT_HEADER_COMPLETED) {
             throw new JeecgBootException("不能删除非新建状态单据");
         }
         LambdaUpdateWrapper<ShipmentHeader> shipmentHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
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 7a33be5..5c35dce 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
@@ -573,8 +573,15 @@ public class QuantityConstant {
 
     /** 自检到异常通知配置 */
     public static final String SELF_CHECK_INFORM = "selfCheckInform";
-
+    /** 序列号前缀 */
     public static final String RULE_MATERIAL_SERAIL_NUMBER = "materialSerialNoPrefix";
+    /** 删除单据 */
+    public static final String RULE_DELETE_RECEIPT = "deleteReceipt";
+
+    /** 不删除单据 */
+    public static final int NOT_DELETE_RECEIPT = 0;
+    /** 删除单据 */
+    public static final int DELETE_RECEIPT = 1;
 
     public static final int RULE_TASK_NOT_CLEAR = 0;
     public static final int RULE_TASK_AllOW_CLEAR = 1;
@@ -690,28 +697,13 @@ public class QuantityConstant {
 
     public static final int HTTP_OK = 200;
 
-    public static final String URL = "http://erptest.gani.com.cn/K3Cloud/";
-
-    // pro
-    public static final String SRC_STOCK_ID = "10221050";
-    public static final String SRC_STOCK_ID_BH = "10237102";
-    public static final String DEST_STOCK_ID = "10237102";
-
-    public static final String WORK_SHOP = "BM000346"; // 生产车间
-    // test
-//    public static final String SRC_STOCK_ID_BH = "9988308";
-//    public static final String SRC_STOCK_ID = "9989058";
-//    public static final String DEST_STOCK_ID = "9989057";
-
     public static final int AGV_TASK_NOT_CREATE = 0; // 没有创建过AGV任务
     public static final int AGV_TASK_ALREADY_CREATE = 1; // 创建过AGV任务
 
-    // 第三方打印工具
-    public static final String PRINT_SERVICE = "PRINT_SERVICE";
-
     public static final String UPSTREAM_DELETE_RECEIPT = "上游删除";
     public static final String BACK_DELETE_RECEIPT = "回传删除";
     public static final String WMS_DELETE_RECEIPT = "WMS删除";
+    public static final String WMS_COMPLETE_DELETE_RECEIPT = "单据完成删除";
 
     /**
      * 不受控