diff --git a/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java b/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java
index 5a30a03..58337a7 100644
--- a/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java
+++ b/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java
@@ -58,6 +58,7 @@ import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
 import com.huaheng.pc.task.taskHeader.service.WorkTaskService;
 import org.apache.commons.collections.MapUtils;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.ModelMap;
 
 import javax.annotation.Resource;
@@ -348,72 +349,76 @@ public class RyTask extends BaseController {
     /**
      * 删除已出库的平库容器和库位
      */
+    @Transactional
     public void deleteFlatContainerLocation() {
-        //删除容器
-        List<TaskHeader> taskList = taskHeaderService.list(new LambdaQueryWrapper<TaskHeader>().ne(TaskHeader::getStatus, 100));
+        List<TaskHeader> taskList = taskHeaderService.list(new LambdaQueryWrapper<TaskHeader>().ne(TaskHeader::getStatus, 100).eq(TaskHeader::getFlat, 1));
         List<InventoryHeader> inventoryList = inventoryHeaderService.list(new LambdaQueryWrapper<InventoryHeader>().ne(InventoryHeader::getZoneCode, "L"));
+
+        //删除容器
         List<Container> containerList = containerService.list(new LambdaQueryWrapper<Container>()
-                .and(wrapper -> wrapper.isNull(Container::getLocationCode).or().eq(Container::getLocationCode, ""))
                 .eq(Container::getStatus, "empty")
                 .eq(Container::getFlat, 1));
+
         if (!containerList.isEmpty()) {
-            //取出containerList的code
+            List<Container> deleteContainerList = new ArrayList<>();
             List<String> containerCodeList = containerList.stream().map(Container::getCode).collect(Collectors.toList());
-            //如果containerCodeList在库存表和任务表中存在就不删除,其他的删除Container
-            for (Container container : containerList) {
-                boolean flag = false;
+
+            if (!taskList.isEmpty()) {
                 for (TaskHeader taskHeader : taskList) {
                     if (containerCodeList.contains(taskHeader.getContainerCode())) {
-                        flag = true;
-                        break;
+                        deleteContainerList.add(containerList.stream().filter(container -> container.getCode().equals(taskHeader.getContainerCode())).findFirst().get());
                     }
                 }
-                if (flag) {
-                    continue;
-                }
+            }
+            if (!inventoryList.isEmpty()) {
                 for (InventoryHeader inventoryHeader : inventoryList) {
                     if (containerCodeList.contains(inventoryHeader.getContainerCode())) {
-                        flag = true;
-                        break;
+                        deleteContainerList.add(containerList.stream().filter(container -> container.getCode().equals(inventoryHeader.getContainerCode())).findFirst().get());
                     }
                 }
-                if (flag) {
-                    continue;
-                }
-                containerService.removeById(container.getId());
+            }
+            containerCodeList.removeAll(deleteContainerList.stream().map(Container::getCode).collect(Collectors.toList()));
+            if (!containerCodeList.isEmpty()) {
+                containerService.remove(new LambdaQueryWrapper<Container>().in(Container::getCode, containerCodeList));
             }
         }
 
+
         //删除库位
         List<Location> locationList = locationService.list(new LambdaQueryWrapper<Location>()
-                .and(wrapper -> wrapper.isNull(Location::getContainerCode).or().eq(Location::getContainerCode, ""))
                 .eq(Location::getStatus, "empty")
                 .ne(Location::getZoneCode, "L"));
-        if (!locationList.isEmpty()) {
-            List<String> locationCodeList = locationList.stream().map(Location::getCode).collect(Collectors.toList());
-            for (Location location : locationList) {
-                boolean flag = false;
-                for (TaskHeader taskHeader : taskList) {
-                    if (locationCodeList.contains(taskHeader.getFromLocation())) {
-                        flag = true;
-                        break;
-                    }
-                }
-                if (flag) {
-                    continue;
-                }
-                for (InventoryHeader inventoryHeader : inventoryList) {
-                    if (locationCodeList.contains(inventoryHeader.getLocationCode())) {
-                        flag = true;
-                        break;
-                    }
+
+        if (locationList.isEmpty()) {
+            return;
+        }
+
+        List<Location> deleteLocationList = new ArrayList<>();
+        List<String> locationCodeList = locationList.stream().map(Location::getCode).collect(Collectors.toList());
+        if (!taskList.isEmpty()) {
+            for (TaskHeader taskHeader : taskList) {
+                if (locationCodeList.contains(taskHeader.getFromLocation())) {
+                    deleteLocationList.add(locationList.stream().filter(location -> location.getCode().equals(taskHeader.getFromLocation())).findFirst().get());
                 }
-                if (flag) {
-                    continue;
+            }
+        }
+        if (!inventoryList.isEmpty()) {
+            for (InventoryHeader inventoryHeader : inventoryList) {
+                if (locationCodeList.contains(inventoryHeader.getLocationCode())) {
+                    deleteLocationList.add(locationList.stream().filter(location -> location.getCode().equals(inventoryHeader.getLocationCode())).findFirst().get());
                 }
-                locationService.removeById(location.getId());
             }
         }
+        locationCodeList.removeAll(deleteLocationList.stream().map(Location::getCode).collect(Collectors.toList()));
+
+        if (locationCodeList.isEmpty()) {
+            return;
+        }
+
+        //删除库位
+        locationService.remove(new LambdaQueryWrapper<Location>().in(Location::getCode, locationCodeList));
+
+
     }