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 f97ea36..35efc2c 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
@@ -717,6 +717,15 @@ export default {
           this.$message.warning('所选数据非同库区');
           return;
         }
+        const isInList = this.selectRecord.some(row => {
+          if (row.zoneType != "L") {
+            return true
+          }
+        })
+        if(isInList) {
+          this.$message.warning('所选数据非立库区类型');
+          return;
+        }
         this.$refs.quickShipmentDetailModal.edit(this.selectRecord);
         this.$refs.quickShipmentDetailModal.title = '快速出库';
       }
@@ -772,6 +781,15 @@ export default {
           return;
         }
       }
+      const isInList = this.selectRecord.some(row => {
+        if (row.zoneType != "P") {
+          return true
+        }
+      })
+      if(isInList) {
+        this.$message.warning('所选数据非平库区类型');
+        return;
+      }
       this.loading = true;
       queryInventoryDetailListByMainIds(this.selectRecord).then((res) => {
         this.loading = false;
diff --git a/ant-design-vue-jeecg/src/views/system/shipment/modules/QuickShipmentDetailModal.vue b/ant-design-vue-jeecg/src/views/system/shipment/modules/QuickShipmentDetailModal.vue
index a37164b..8e2b020 100644
--- a/ant-design-vue-jeecg/src/views/system/shipment/modules/QuickShipmentDetailModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/shipment/modules/QuickShipmentDetailModal.vue
@@ -46,7 +46,7 @@
 </template>
 
 <script>
-import { getZoneList, selectOutPort, shipmentInventoryDetail } from '@/api/api'
+import { getZoneList, selectPickPort, shipmentInventoryDetail } from '@/api/api'
 import {getAction} from "@api/manage";
 
 export default {
@@ -146,7 +146,7 @@ export default {
     },
     getPortList() {
       this.querySource.containerCode = this.model.containerCode
-      selectOutPort(this.querySource).then(res => {
+      selectPickPort(this.querySource).then(res => {
         if (res.success) {
           this.portList = res.result
           this.visible = true
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
index 61bd6d7..ccfa89e 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
@@ -48,6 +48,10 @@ public class InventoryDetail implements Serializable {
     @Excel(name = "库区", width = 15)
     @ApiModelProperty(value = "库区")
     private String zoneCode;
+    /** 库区类型 */
+    @Excel(name = "库区类型", width = 15)
+    @ApiModelProperty(value = "库区类型")
+    private String zoneType;
     /** 容器编码 */
     @Excel(name = "容器编码", width = 15)
     @ApiModelProperty(value = "容器编码")
@@ -162,7 +166,6 @@ public class InventoryDetail implements Serializable {
     @TableField(exist = false)
     private BigDecimal shipmentQty;
 
-
     public void setQty(BigDecimal qty) {
         if (qty.compareTo(BigDecimal.ZERO) < 0) {
             throw new JeecgBootException("库存数量必须大于0");
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java
index a9bed60..899aa98 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java
@@ -15,6 +15,8 @@ import org.jeecg.modules.wms.config.container.entity.Container;
 import org.jeecg.modules.wms.config.container.service.IContainerService;
 import org.jeecg.modules.wms.config.location.entity.Location;
 import org.jeecg.modules.wms.config.location.service.ILocationService;
+import org.jeecg.modules.wms.config.zone.entity.Zone;
+import org.jeecg.modules.wms.config.zone.service.IZoneService;
 import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService;
 import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail;
 import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader;
@@ -84,6 +86,8 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
     private ITaskHeaderService taskHeaderService;
     @Resource
     private IInventoryTransactionService inventoryTransactionService;
+    @Resource
+    private IZoneService zoneService;
 
     @Override
     @Transactional
@@ -482,6 +486,14 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
             return false;
         }
         String zoneCode = toLocation.getZoneCode();
+        if (StringUtils.isEmpty(zoneCode)) {
+            return false;
+        }
+        Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode);
+        if (zone == null) {
+            return false;
+        }
+        String zoneType = zone.getType();
         boolean success =
             inventoryHeaderService.updateInventoryContainerLocationZoneById(containerCode, locationCode, zoneCode, toLocation.getRoadWay(), inventoryHeader.getId());
         if (!success) {
@@ -494,6 +506,7 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
             inventoryDetail1.setContainerCode(containerCode);
             inventoryDetail1.setLocationCode(locationCode);
             inventoryDetail1.setZoneCode(zoneCode);
+            inventoryDetail1.setZoneType(zoneType);
             inventoryDetail1.setRoadWay(toLocation.getRoadWay());
             updateInventoryDetailList.add(inventoryDetail1);
         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
index cf4fdd0..26158d9 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
@@ -602,6 +602,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
             inventoryDetail.setWarehouseCode(warehouseCode);
             inventoryDetail.setCompanyCode(receiptContainerDetail.getCompanyCode());
             inventoryDetail.setZoneCode(zoneCode);
+            inventoryDetail.setZoneType(zone.getType());
             inventoryDetail.setContainerCode(receiptContainerDetail.getContainerCode());
             inventoryDetail.setContainerStatus(QuantityConstant.STATUS_CONTAINER_EMPTY);
             inventoryDetail.setLocationCode(toLocationCode);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailChildServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailChildServiceImpl.java
index 94bec6e..0c0b5b8 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailChildServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailChildServiceImpl.java
@@ -11,6 +11,8 @@ import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.wms.config.zone.entity.Zone;
+import org.jeecg.modules.wms.config.zone.service.IZoneService;
 import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail;
 import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader;
 import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService;
@@ -82,6 +84,8 @@ public class CycleCountDetailChildServiceImpl extends ServiceImpl<CycleCountDeta
     private IShipmentDetailService shipmentDetailService;
     @Resource
     private ITaskHeaderService taskHeaderService;
+    @Resource
+    private IZoneService zoneService;
 
     @Override
     @Transactional
@@ -176,7 +180,7 @@ public class CycleCountDetailChildServiceImpl extends ServiceImpl<CycleCountDeta
             throw new JeecgBootException("更新盘点表单头失败");
         }
 
-        if (zoneType.equals("P")) {
+        if (zoneType.equals(QuantityConstant.ZONE_TYPE_FLAT)) {
             Result result = cycleCountDetailChildService.completePingkuConfirmGapQty(id, countedQty);
             if (!result.isSuccess()) {
                 throw new JeecgBootException("调整平库库存失败");
@@ -241,7 +245,16 @@ public class CycleCountDetailChildServiceImpl extends ServiceImpl<CycleCountDeta
 //                continue;
 //            }
             String toLocationCode = inventoryHeader.getLocationCode();
-            String warehouseCode = cycleCountHeader.getWarehouseCode();
+            String zoneCode = inventoryHeader.getZoneCode();
+            if (StringUtils.isEmpty(zoneCode)) {
+                return Result.error("完成盘点任务时, 库区编码为空");
+            }
+            String warehouseCode = inventoryHeader.getWarehouseCode();
+            Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode);
+            if (zone == null) {
+                return Result.error("完成盘点任务时, 库区为空");
+            }
+            String zoneType = zone.getType();
             String companyCode = cycleCountHeader.getCompanyCode();
             if (child.getInventoryDetaiId() != null) {
                 InventoryDetail inventoryDetail = inventoryDetailService.getById(child.getInventoryDetaiId());
@@ -257,7 +270,8 @@ public class CycleCountDetailChildServiceImpl extends ServiceImpl<CycleCountDeta
                 inventoryDetail.setInventoryHeaderId(inventoryHeader.getId());
                 inventoryDetail.setWarehouseCode(warehouseCode);
                 inventoryDetail.setCompanyCode(companyCode);
-                inventoryDetail.setZoneCode(inventoryHeader.getZoneCode());
+                inventoryDetail.setZoneCode(zoneCode);
+                inventoryDetail.setZoneType(zoneType);
                 inventoryDetail.setContainerCode(inventoryHeader.getContainerCode());
                 inventoryDetail.setLocationCode(toLocationCode);
                 inventoryDetail.setMaterialCode(child.getMaterialCode());
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 ed113d0..47a6d6b 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
@@ -1428,6 +1428,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if (toLocation == null) {
             return Result.error("完成入库任务时,没有找到目的库位");
         }
+        if (StringUtils.isEmpty(zoneCode)) {
+            return Result.error("完成入库任务时,没有找到目的库区编码");
+        }
+        Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode);
+        if (zone == null) {
+            return Result.error("完成入库任务时,没有找到库区");
+        }
+        String zoneType = zone.getType();
         InventoryHeader inventoryHeader = inventoryHeaderService.getInventoryHeaderByContainerCode(containerCode, warehouseCode);
         if (inventoryHeader == null) {
             inventoryHeader = new InventoryHeader();
@@ -1483,6 +1491,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryDetail.setWarehouseCode(warehouseCode);
             inventoryDetail.setCompanyCode(taskDetail.getCompanyCode());
             inventoryDetail.setZoneCode(zoneCode);
+            inventoryDetail.setZoneType(zoneType);
             inventoryDetail.setContainerCode(taskHeader.getContainerCode());
             inventoryDetail.setLocationCode(toLocationCode);
             inventoryDetail.setMaterialCode(taskDetail.getMaterialCode());
@@ -2650,6 +2659,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if (inventoryHeader == null) {
             return Result.error("完成盘点任务时,没有找到库存头" + cycleCountDetail.getInventoryHeaderId());
         }
+        if (StringUtils.isEmpty(zoneCode)) {
+            return Result.error("完成盘点任务时, 库区编码为空");
+        }
+        Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode);
+        if (zone == null) {
+            return Result.error("完成盘点任务时, 库区为空");
+        }
+        String zoneType = zone.getType();
         int outboundOrderId = 0;
         String outboundOrderCode = null;
         int warehousingOrderId = 0;
@@ -2673,6 +2690,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 inventoryDetail.setWarehouseCode(inventoryHeader.getWarehouseCode());
                 inventoryDetail.setCompanyCode(inventoryHeader.getCompanyCode());
                 inventoryDetail.setZoneCode(inventoryHeader.getZoneCode());
+                inventoryDetail.setZoneType(zoneType);
                 inventoryDetail.setContainerCode(inventoryHeader.getContainerCode());
                 inventoryDetail.setLocationCode(toLocationCode);
                 inventoryDetail.setMaterialCode(child.getMaterialCode());