diff --git a/ant-design-vue-jeecg/src/api/api.js b/ant-design-vue-jeecg/src/api/api.js
index 599a984..f8f2536 100644
--- a/ant-design-vue-jeecg/src/api/api.js
+++ b/ant-design-vue-jeecg/src/api/api.js
@@ -197,6 +197,8 @@ export const executeAgv = (params) => postAction('/task/agvTask/execute?ids=' + 
 export const completeAgv = (params) => postAction('/task/agvTask/complete?ids=' + params, params);
 //取消AGV任务
 export const cancelAgv = (params) => postAction('/task/agvTask/cancel?ids=' + params, params);
+//修复空出数据
+export const handleEmptyOut = (params) => postAction('/task/taskHeader/handleEmptyOut?ids=' + params, params);
 // 中转HTTP请求
 export const transitRESTful = {
   get: (url, parameter) => getAction(getTransitURL(url), parameter),
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
index 12a1472..584d578 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
@@ -5,21 +5,16 @@
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="货主">
-              <a-input placeholder="请输入货主" v-model="queryParam.companyCode"></a-input>
-            </a-form-item>
-          </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="库区">
               <a-input placeholder="请输入库区" v-model="queryParam.zoneCode"></a-input>
             </a-form-item>
           </a-col>
-          <template v-if="toggleSearchStatus">
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
               <a-form-item label="容器号">
                 <a-input placeholder="请输入容器号" v-model="queryParam.containerCode"></a-input>
               </a-form-item>
             </a-col>
+          <template v-if="toggleSearchStatus">
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
               <a-form-item label="容器状态">
                 <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.containerStatus"
diff --git a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
index 81495aa..695e0c7 100644
--- a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
@@ -153,12 +153,14 @@
         </template>
 
         <span slot="action" slot-scope="text, record">
-          <a v-if="record.status == 1" v-has="'taskHeader:executeTask'" @click="executeTask(record)">执行</a>
-          <a-divider type="vertical"/>
-          <a v-if="record.status < 100" v-has="'taskHeader:executeTask'" @click="cancelTask(record)">取消</a>
-          <a-divider type="vertical"/>
-          <a v-if="record.status < 100" v-has="'taskHeader:executeTask'" @click="completeTask(record)">完成</a>
-          <a-divider type="vertical"/>
+          <a v-if="record.status == 1" v-has="'taskHeader:executeTask'" @click="executeTask(record)">执行
+             <a-divider type="vertical"/></a>
+          <a v-if="record.isEmptyOut == 1 && record.exceptionState == 0" v-has="'taskHeader:executeTask'" @click="handleEmptyOutTask(record)">修复空出数据
+            <a-divider type="vertical"/></a>
+          <a v-if="record.status < 100" v-has="'taskHeader:cancelTask'" @click="cancelTask(record)">取消
+            <a-divider type="vertical"/></a>
+          <a v-if="record.status < 100" v-has="'taskHeader:completeTask'" @click="completeTask(record)">完成
+            <a-divider type="vertical"/></a>
           <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
             <a-menu slot="overlay">
@@ -200,7 +202,7 @@ import {initDictOptions, filterMultiDictText} from '@/components/dict/JDictSelec
 import '@/assets/less/TableExpand.less'
 import {completeTaskByWMS, cancelTask} from '@/api/api'
 import {execute} from '@/api/api'
-import {getZoneList} from '@/api/api'
+import {getZoneList, handleEmptyOut} from '@/api/api'
 import EmptyOutTaskModal from './modules/EmptyOutTaskModal'
 import ManyEmptyOutTaskModal from "./modules/ManyEmptyOutTaskModal";
 
@@ -447,6 +449,19 @@ export default {
         this.searchQuery();
       });
     },
+    handleEmptyOutTask(record) {
+      this.loading = true;
+      this.model = Object.assign({}, record);
+      handleEmptyOut(this.model.id).then((res) => {
+        this.loading = false;
+        if (res.success) {
+          this.$message.success(res.message);
+        } else {
+          this.$message.error(res.message);
+        }
+        this.searchQuery();
+      });
+    },
     getSuperFieldList() {
       let fieldList = [];
       fieldList.push({type: 'int', value: 'taskType', text: '任务类型', dictCode: 'task_type'})
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
index 22e79cc..453b83b 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
@@ -658,8 +658,8 @@ public class TaskHeaderController extends HuahengBaseController {
     @ApiOperation("修复空出的数据")
     @ResponseBody
     @ApiLogger(apiName = "修复空出的数据", from = "WMS")
-    public Result handleEmptyOut(@RequestBody String taskNo) {
-        Result result = taskHeaderService.handleEmptyOut(taskNo);
+    public Result handleEmptyOut(@RequestParam(name = "ids", required = true) String ids) {
+        Result result = taskHeaderService.handleEmptyOut(ids);
         return result;
     }
 
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 e9d000b..d2acd1a 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
@@ -4,7 +4,6 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -656,6 +655,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result handleEmptyOut(String taskNo) {
         // 1、判断非空字段
         if (StringUtils.isEmpty(taskNo)) {
@@ -714,12 +714,13 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         // 8、删除库存详情失败
         List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByContainerCode(containerCode, warehouseCode);
         if (inventoryDetailList.size() != 0) {
-            success = inventoryDetailService.removeByIds(inventoryDetailList);
+            List<Integer> idList = inventoryDetailList.stream().map(InventoryDetail::getId).collect(Collectors.toList());;
+            success = inventoryDetailService.removeByIds(idList);
             if (!success) {
                 throw new ServiceException("处理空出失败, 删除库存详情失败");
             }
         }
-        return Result.error("处理空出成功");
+        return Result.ok("处理空出成功");
     }
 
     @Override