diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java
index e8b41c2..2d44749 100644
--- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java
+++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java
@@ -80,13 +80,12 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
                 .eq(Location::getRoadway, DYNAMIC_ROADWAY)
                 .eq(Location::getStatus, STATUS_LOCATION_EMPTY)
                 .eq(Location::getHigh, high)
-                .eq(Location::getContainerCode, "")
+                .eq(Location::getContainerCode, EMPTY_STRING)
                 .ne(Location::getIColumn, "26")//26列机器臂夹不到,只有大托盘的右侧可以刚好放到
                 .orderByAsc(Location::getILayer)
                 .orderByDesc(Location::getRowFlag)
                 .orderByAsc(Location::getIColumn)
-                .orderByAsc(Location::getIRow)
-                .last(" limit 20");
+                .orderByAsc(Location::getIRow);
         List<Location> list = locationService.list(wrapper);
         if (list.size() <= reserveNumber) {
             return "可能是库位不够用了,请检查预留库位数";
@@ -95,13 +94,14 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
         //大托盘占两个库位
         if (containerType.equals(CONTAINER_TYPE_X) || containerType.equals(CONTAINER_TYPE_W)) {
             for (Location location : list) {
-                if (location.getIColumn() % 2 != 0 && location.getTemporaryType().startsWith(SMALL_CONTAINER_TYPE)) {
+                //大托盘只放奇数列,且右侧有空库位,且当前库位类型不是小托盘
+                if (location.getIColumn() % 2 != 0 && !location.getTemporaryType().startsWith(SMALL_CONTAINER_TYPE)) {
                     Location rightLocation = locationService.getRightEmptyLocation(location);
                     if (rightLocation != null) {
                         //禁用库位
                         int updateCount = locationService.updateStatusNew(rightLocation.getCode(), DEFAULT_WAREHOUSE, STATUS_LOCATION_DISABLE, STATUS_LOCATION_EMPTY);
                         if (updateCount != 1) {
-                            throw new ServiceException("禁用库位失败");
+                            throw new ServiceException("分配库位时,禁用库位失败");
                         }
                         if (location.getTemporaryType().equals(UNDEFINED_CONTAINER_TYPE)) {
                             //设置相邻临时库位类型
@@ -113,7 +113,7 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
             }
             return null;
         } else {
-            //分配小托盘库位
+            //分配小托盘库位,将大托盘库位过滤掉
             //小托盘不分配25列,最好让大托盘放在25列
             list = list.stream().filter(location -> location.getIColumn() != 25
                     && !String.valueOf(location.getTemporaryType()).startsWith(BIG_CONTAINER_TYPE)).collect(Collectors.toList());
@@ -132,19 +132,26 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
     //设置相邻临时库位类型
     @Override
     @Transactional(rollbackFor = Exception.class)
-    void setTemporaryLocationType(Location location, boolean isBigContainer) {
+    public void setTemporaryLocationType(Location location, boolean isBigContainer) {
         List<Location> setTemporaryTypeList = new ArrayList<>();
         String prefix = isBigContainer ? BIG_CONTAINER_TYPE : SMALL_CONTAINER_TYPE;
 
         setTemporaryTypeList.add(location);
-        setTemporaryTypeList.add(getLocationByOffset(location, 0, 1));
-        setTemporaryTypeList.add(getLocationByOffset(location, 1, 1));
-        setTemporaryTypeList.add(getLocationByOffset(location, 1, 0));
-
+        if (location.getIRow() % 2 == 0) {
+            //6、8行,因为是优先分配深库位,所以其实6和7行两个浅库位是进不来
+            setTemporaryTypeList.add(getLocationByOffset(location, 0, -1));
+            setTemporaryTypeList.add(getLocationByOffset(location, 1, -1));
+            setTemporaryTypeList.add(getLocationByOffset(location, 1, 0));
+        } else {
+            //5、7行
+            setTemporaryTypeList.add(getLocationByOffset(location, 0, 1));
+            setTemporaryTypeList.add(getLocationByOffset(location, 1, 1));
+            setTemporaryTypeList.add(getLocationByOffset(location, 1, 0));
+        }
         for (Location temporaryLocation : setTemporaryTypeList) {
             if (temporaryLocation != null) {
                 temporaryLocation.setTemporaryType(prefix + "-" + location.getCode() + "-" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH:mm:ss")));
-                if (locationService.updateById(temporaryLocation)) {
+                if (!locationService.updateById(temporaryLocation)) {
                     throw new ServiceException("设置临时库位类型失败");
                 }
             }
@@ -156,8 +163,13 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
         wrapper
                 .eq(Location::getILayer, baseLocation.getILayer())
                 .eq(Location::getIColumn, baseLocation.getIColumn() + columnOffset)
-                .eq(Location::getIRow, baseLocation.getIRow() + rowOffset);
-        return locationService.getOne(wrapper);
+                .eq(Location::getIRow, baseLocation.getIRow() + rowOffset)
+                .eq(Location::getTemporaryType, UNDEFINED_CONTAINER_TYPE);
+        Location location = locationService.getOne(wrapper);
+        if (location == null) {
+            throw new ServiceException("设置临时库位类型失败,该库位托盘类型不为0:" + baseLocation.getCode());
+        }
+        return location;
     }
 
 
diff --git a/src/main/java/com/huaheng/common/constant/QuantityConstant.java b/src/main/java/com/huaheng/common/constant/QuantityConstant.java
index 650e009..1bc56df 100644
--- a/src/main/java/com/huaheng/common/constant/QuantityConstant.java
+++ b/src/main/java/com/huaheng/common/constant/QuantityConstant.java
@@ -551,7 +551,7 @@ public class QuantityConstant {
      */
     public static final String CONTAINER_TYPE_X = "X";
     public static final String CONTAINER_TYPE_W = "W";
-    //一厂二期5号巷道为动态分配大小托盘
+    //todo 一厂二期5号巷道为动态分配大小托盘,二厂也有,到时候需要修改代码
     public static final String DYNAMIC_ROADWAY = "5";
 
     /**