diff --git a/src/main/java/com/huaheng/framework/config/ShiroConfig.java b/src/main/java/com/huaheng/framework/config/ShiroConfig.java
index 1b63ba2..91f18dd 100644
--- a/src/main/java/com/huaheng/framework/config/ShiroConfig.java
+++ b/src/main/java/com/huaheng/framework/config/ShiroConfig.java
@@ -253,6 +253,7 @@ public class ShiroConfig {
         // 不需要拦截的访问
 //        filterChainDefinitionMap.put("/admin/home", "anon,captchaValidate");
         filterChainDefinitionMap.put("/mobile/download/*", "anon");
+        filterChainDefinitionMap.put("/config/zone/*", "anon");
         filterChainDefinitionMap.put("/admin/login", "anon");
         filterChainDefinitionMap.put("/login", "anon");
         filterChainDefinitionMap.put("/file/**", "anon");
@@ -267,8 +268,8 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/api/**", "anon");
         filterChainDefinitionMap.put("/endpoint/**", "anon");
         filterChainDefinitionMap.put("/manager/**", "anon");
-        filterChainDefinitionMap.put("/API/WMS/v2/**","anon");
-        filterChainDefinitionMap.put("/mobile/receipt/batch/**","anon");
+        filterChainDefinitionMap.put("/API/WMS/v2/**", "anon");
+        filterChainDefinitionMap.put("/mobile/receipt/batch/**", "anon");
         // 系统权限列表
 //        filterChainDefinitionMap.putAll(SpringUtils.getBean(IMenuService.class).selectPermsAll());
 
diff --git a/src/main/java/com/huaheng/pc/config/zone/controller/ZoneController.java b/src/main/java/com/huaheng/pc/config/zone/controller/ZoneController.java
index af63ec7..b5da4c5 100644
--- a/src/main/java/com/huaheng/pc/config/zone/controller/ZoneController.java
+++ b/src/main/java/com/huaheng/pc/config/zone/controller/ZoneController.java
@@ -211,4 +211,13 @@ public class ZoneController extends BaseController {
 
         return AjaxResult.success().setData(map);
     }
+
+
+    //PDA获取所有平库接口
+    @PostMapping("/getAllFlatLocation")
+    @ResponseBody
+    public AjaxResult getAllFlatLocation() {
+        List<Zone> list = zoneService.list(new LambdaQueryWrapper<Zone>().eq(Zone::getZoneType, "平库"));
+        return AjaxResult.success(list);
+    }
 }
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
index 8faa903..000f44c 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -143,10 +143,9 @@ public class ReceiptHeaderController extends BaseController {
                                  @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd,
                                  Integer statusFirst, Integer statusLast) {
         List<ReceiptHeader> list = new ArrayList<>();
-        LambdaQueryWrapper<ReceiptDetail> receiptDetailLambdaQuery = Wrappers.lambdaQuery();
-        receiptDetailLambdaQuery.eq(ReceiptDetail::getSNNO, receiptHeader.getSNNO())
-                .last("and qty > taskQty");
-        ReceiptDetail receiptDetail = receiptDetailService.getOne(receiptDetailLambdaQuery);
+        ReceiptDetail receiptDetail = receiptDetailService.getOne(new LambdaQueryWrapper<ReceiptDetail>()
+                .eq(ReceiptDetail::getSNNO, receiptHeader.getSNNO()).last("and qty > taskQty"));
+
         ReceiptHeader receiptHeaderData = new ReceiptHeader();
         if (StringUtils.isNotNull(receiptDetail)) {
             receiptHeaderData = receiptHeaderService.getById(receiptDetail.getReceiptId());
diff --git a/src/main/java/com/huaheng/pc/receipt/receiving/controller/ReceivingController.java b/src/main/java/com/huaheng/pc/receipt/receiving/controller/ReceivingController.java
index 1b4ca2d..06e3572 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiving/controller/ReceivingController.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiving/controller/ReceivingController.java
@@ -146,41 +146,13 @@ public class ReceivingController extends BaseController {
         return ajaxResult;
     }
 
-
-    /**
-     * 平库组盘
-     */
-    @ApiOperation(value = "保存收货 ", notes = "保存收货 ", httpMethod = "POST")
-    @ResponseBody
-    @PostMapping("/flatSave")
-    @RequiresPermissions("receipt:receiving:receiving")
-    @Log(title = "入库-保存收货", operating = "PC端保存收货", action = BusinessType.OTHER)
-    public AjaxResult flatSave(
-            @ApiParam(name = "receiptCode", value = "入库单编码") String receiptCode,
-            @ApiParam(name = "receiptDetailId", value = "入库单详情id") Integer receiptDetailId,
-            @ApiParam(name = "locationCode", value = "库位编码", required = false) String locationCode,
-            @ApiParam(name = "qty", value = "收货数量") BigDecimal qty) {
-        if (qty == null || qty.intValue() <= 0) {
-            return AjaxResult.error("配盘数量必须大于0");
-        }
-        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
-            @Override
-            public AjaxResult doProcess() {
-                AjaxResult ajaxResult = receiptContainerHeaderService.flatSaveContainer(receiptCode, receiptDetailId, locationCode, qty);
-                return ajaxResult;
-            }
-        });
-        return ajaxResult;
-    }
-
-
     /**
-     * 保存收货
+     * PDA立库组盘
      */
-    @ApiOperation(value = "保存收货 ", notes = "保存收货 ", httpMethod = "POST")
+    @ApiOperation(value = "PDA立库组盘保存收货 ", notes = "PDA立库组盘保存收货 ", httpMethod = "POST")
     @ResponseBody
     @PostMapping("/saveBatch")
-    @Log(title = "入库-保存收货", operating = "PC端保存收货", action = BusinessType.OTHER)
+    @Log(title = "入库-PDA立库组盘保存收货", operating = "PDA立库组盘端保存收货", action = BusinessType.OTHER)
     public AjaxResult saveBatch(@RequestBody List<ReceiptSave> list) {
         String id = "";
         for (ReceiptSave receipt : list) {
@@ -210,6 +182,67 @@ public class ReceivingController extends BaseController {
         return ajaxResult;
     }
 
+    /**
+     * PDA平库组盘
+     */
+    @ApiOperation(value = "PDA平库组盘 ", notes = "PDA平库组盘 ", httpMethod = "POST")
+    @ResponseBody
+    @PostMapping("/flatSaveBatch")
+    @Log(title = "入库-PDA平库组盘", operating = "PDA平库组盘", action = BusinessType.OTHER)
+    public AjaxResult flatSaveBatch(@RequestBody List<ReceiptSave> list) {
+        String id = "";
+        for (ReceiptSave receipt : list) {
+            if (receipt.getReceiptDetailId() != null) {
+                if (receipt.getQty() == null) {
+                    return AjaxResult.error("入库详情id:" + receipt.getReceiptDetailId() + ",数量为空!!");
+                }
+                if (receipt.getQty().intValue() <= 0) {
+                    return AjaxResult.error("入库详情id:" + receipt.getReceiptDetailId() + ",平库配盘数量必须大于0");
+                }
+                AjaxResult result = receiptContainerHeaderService.flatSaveContainer(receipt.getReceiptCode(), receipt.getReceiptDetailId(), receipt.getLocationCode(), receipt.getQty());
+                if (result.getCode() != 200) {
+                    return AjaxResult.error("入库详情id:" + receipt.getReceiptDetailId() + ",平库组盘失败!");
+                }
+                String str = result.getData().toString();
+                JSONObject obj = JSON.parseObject(str);
+                id = obj.getString("id");
+            }
+        }
+        AjaxResult ajaxResult = new AjaxResult();
+        JSONObject json = new JSONObject();
+        json.put("id", id);
+        ajaxResult.setData(json);
+        ajaxResult.setMsg("平库组盘成功");
+        ajaxResult.setCode(200);
+        return ajaxResult;
+    }
+
+    /**
+     * 平库组盘
+     */
+    @ApiOperation(value = "保存收货 ", notes = "保存收货 ", httpMethod = "POST")
+    @ResponseBody
+    @PostMapping("/flatSave")
+    @RequiresPermissions("receipt:receiving:receiving")
+    @Log(title = "入库-保存收货", operating = "PC端保存收货", action = BusinessType.OTHER)
+    public AjaxResult flatSave(
+            @ApiParam(name = "receiptCode", value = "入库单编码") String receiptCode,
+            @ApiParam(name = "receiptDetailId", value = "入库单详情id") Integer receiptDetailId,
+            @ApiParam(name = "locationCode", value = "库位编码", required = false) String locationCode,
+            @ApiParam(name = "qty", value = "收货数量") BigDecimal qty) {
+        if (qty == null || qty.intValue() <= 0) {
+            return AjaxResult.error("配盘数量必须大于0");
+        }
+        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
+            @Override
+            public AjaxResult doProcess() {
+                AjaxResult ajaxResult = receiptContainerHeaderService.flatSaveContainer(receiptCode, receiptDetailId, locationCode, qty);
+                return ajaxResult;
+            }
+        });
+        return ajaxResult;
+    }
+
 
     /**
      * 获取库存信息