diff --git a/ant-design-vue-jeecg/package-lock.json b/ant-design-vue-jeecg/package-lock.json
index ca1b85f..14e31be 100644
--- a/ant-design-vue-jeecg/package-lock.json
+++ b/ant-design-vue-jeecg/package-lock.json
@@ -6072,9 +6072,9 @@
       "integrity": "sha512-6zCYv0bxVP6ppQ/XpZsTQZNDC2zUutl8Yes2TDj7LyIDyBhq2N9JbQjcqQo6mAe8IVfszW5pmE0yHvAYD0zEmQ=="
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001097",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001097.tgz",
-      "integrity": "sha512-TeuSleKt/vWXaPkLVFqGDnbweYfq4IaZ6rUugFf3rWY6dlII8StUZ8Ddin0PkADfgYZ4wRqCdO2ORl4Rn5eZIA=="
+      "version": "1.0.30001449",
+      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz",
+      "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw=="
     },
     "node_modules/case-sensitive-paths-webpack-plugin": {
       "version": "2.3.0",
@@ -27024,9 +27024,9 @@
       "integrity": "sha512-6zCYv0bxVP6ppQ/XpZsTQZNDC2zUutl8Yes2TDj7LyIDyBhq2N9JbQjcqQo6mAe8IVfszW5pmE0yHvAYD0zEmQ=="
     },
     "caniuse-lite": {
-      "version": "1.0.30001097",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001097.tgz",
-      "integrity": "sha512-TeuSleKt/vWXaPkLVFqGDnbweYfq4IaZ6rUugFf3rWY6dlII8StUZ8Ddin0PkADfgYZ4wRqCdO2ORl4Rn5eZIA=="
+      "version": "1.0.30001449",
+      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz",
+      "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw=="
     },
     "case-sensitive-paths-webpack-plugin": {
       "version": "2.3.0",
diff --git a/ant-design-vue-jeecg/package.json b/ant-design-vue-jeecg/package.json
index a172be8..86053f5 100644
--- a/ant-design-vue-jeecg/package.json
+++ b/ant-design-vue-jeecg/package.json
@@ -58,13 +58,13 @@
     "@vue/cli-service": "^3.3.0",
     "@vue/eslint-config-standard": "^4.0.0",
     "babel-eslint": "7.2.3",
+    "compression-webpack-plugin": "^3.1.0",
     "eslint": "^5.16.0",
     "eslint-plugin-vue": "^5.1.0",
+    "html-webpack-plugin": "^4.2.0",
     "less": "^3.9.0",
     "less-loader": "^4.1.0",
     "vue-template-compiler": "^2.6.10",
-    "html-webpack-plugin": "^4.2.0",
-    "compression-webpack-plugin": "^3.1.0",
     "webpack": "^4.23.0"
   },
   "eslintConfig": {
diff --git a/ant-design-vue-jeecg/src/views/user/LoginAccount.vue b/ant-design-vue-jeecg/src/views/user/LoginAccount.vue
index f65073f..8b73ced 100644
--- a/ant-design-vue-jeecg/src/views/user/LoginAccount.vue
+++ b/ant-design-vue-jeecg/src/views/user/LoginAccount.vue
@@ -2,7 +2,7 @@
   <div>
     <a-form-model ref="form" :model="model" :rules="validatorRules">
       <a-form-model-item required prop="username">
-        <a-input v-model="model.username" size="large" placeholder="请输入帐户名 / admin" @keyup="getWarehouse">
+        <a-input v-model="model.username" size="large" placeholder="请输入帐户名 / admin" @blur="getWarehouse">
           <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/>
         </a-input>
       </a-form-model-item>
@@ -16,8 +16,8 @@
       <a-form-model-item prop="warehouseCode">
         <a-select
           show-search
-          placeholder="请选择仓库"
-          option-filter-prop="children"
+          placeholder="请选择仓库!"
+          option-filter-prop="label"
           :filter-option="filterOption"
           v-model="model.warehouseCode">
           <a-select-option v-for="item in warehouseList" :key="item.name" :value="item.code">{{
@@ -61,10 +61,10 @@ export default {
         password: [{
           required: true, message: '请输入密码!', validator: 'click'
         }],
-        warehouseCode: [{required: true, message: '请选择仓库', validator: 'click'}],
-
+        warehouseCode: [{
+          required: true, message: '请选择仓库!', validator: 'click'
+        }],
       }
-
     }
   },
   created() {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/LoginController.java
index 622a5df..5506683 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/LoginController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/LoginController.java
@@ -120,7 +120,7 @@ public class LoginController {
         // 用户登录信息
         userInfo(sysUser, result, warehouseCode);
         // update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码
-//         redisUtil.del(realKey);
+        // redisUtil.del(realKey);
         // update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码
         LoginUser loginUser = new LoginUser();
         BeanUtils.copyProperties(sysUser, loginUser);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
index 1cba1f0..b86ef27 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
@@ -28,6 +28,7 @@ import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.message.websocket.WebSocket;
 import org.jeecg.modules.system.entity.SysAnnouncement;
 import org.jeecg.modules.system.entity.SysAnnouncementSend;
+import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysAnnouncementSendService;
 import org.jeecg.modules.system.service.ISysAnnouncementService;
 import org.jeecg.modules.system.service.impl.ThirdAppDingtalkServiceImpl;
@@ -334,16 +335,16 @@ public class SysAnnouncementController {
     @RequestMapping(value = "/listByUser", method = RequestMethod.GET)
     public Result<Map<String, Object>> listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize) {
         Result<Map<String, Object>> result = new Result<Map<String, Object>>();
-        LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
-        String userId = sysUser.getId().toString();
+        LoginUser loginUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
+        String userId = loginUser.getId().toString();
         // 1.将系统消息补充到用户通告阅读标记表中
         LambdaQueryWrapper<SysAnnouncement> querySaWrapper = new LambdaQueryWrapper<SysAnnouncement>();
         querySaWrapper.eq(SysAnnouncement::getMsgType, CommonConstant.MSG_TYPE_ALL); // 全部人员
         querySaWrapper.eq(SysAnnouncement::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); // 未删除
         querySaWrapper.eq(SysAnnouncement::getSendStatus, CommonConstant.HAS_SEND); // 已发布
-        querySaWrapper.ge(SysAnnouncement::getEndTime, sysUser.getCreateTime()); // 新注册用户不看结束通知
+        querySaWrapper.ge(SysAnnouncement::getEndTime, loginUser.getCreateTime()); // 新注册用户不看结束通知
         // update-begin--Author:liusq Date:20210108 for:[JT-424] 【开源issue】bug处理--------------------
-        querySaWrapper.notInSql(SysAnnouncement::getId, "select annt_id from sys_announcement_send where user_id='" + userId + "'");
+        querySaWrapper.notInSql(SysAnnouncement::getId, "select annt_id from sys_announcement_send where user_id ='" + userId + "'");
         // update-begin--Author:liusq Date:20210108 for: [JT-424] 【开源issue】bug处理--------------------
         List<SysAnnouncement> announcements = sysAnnouncementService.list(querySaWrapper);
         if (announcements.size() > 0) {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/entity/SysUser.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/entity/SysUser.java
index 02144fe..37566a1 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/entity/SysUser.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/entity/SysUser.java
@@ -34,8 +34,8 @@ public class SysUser implements Serializable {
     /**
      * id
      */
-    @TableId(type = IdType.AUTO)
-    private java.lang.Integer id;
+    @TableId
+    private String id;
     /**
      * 登录账号
      */
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
index 8793a24..393903f 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
@@ -39,6 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.util.AntPathMatcher;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.PathMatcher;
 
 import javax.annotation.Resource;
@@ -379,7 +380,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
                 }
                 SysAnnouncementSend announcementSend = new SysAnnouncementSend();
                 announcementSend.setAnntId(anntId);
-                announcementSend.setUserId(sysUser.getId());
+                announcementSend.setUserId(Integer.parseInt(sysUser.getId()));
                 announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
                 sysAnnouncementSendMapper.insert(announcementSend);
                 JSONObject obj = new JSONObject();
@@ -453,7 +454,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
                 }
                 SysAnnouncementSend announcementSend = new SysAnnouncementSend();
                 announcementSend.setAnntId(anntId);
-                announcementSend.setUserId(sysUser.getId());
+                announcementSend.setUserId(Integer.parseInt(sysUser.getId()));
                 announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
                 sysAnnouncementSendMapper.insert(announcementSend);
                 JSONObject obj = new JSONObject();
@@ -717,7 +718,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
     @Override
     public List<LoginUser> queryAllUserByIds(String[] userIds) {
         QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0);
-        queryWrapper.in("id", userIds);
+        queryWrapper.in("id", CollectionUtils.arrayToList(userIds));
         List<LoginUser> loginUsers = new ArrayList<>();
         List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
         for (SysUser user : sysUsers) {
@@ -956,7 +957,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
                 }
                 SysAnnouncementSend announcementSend = new SysAnnouncementSend();
                 announcementSend.setAnntId(anntId);
-                announcementSend.setUserId(sysUser.getId());
+                announcementSend.setUserId(Integer.parseInt(sysUser.getId()));
                 announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
                 sysAnnouncementSendMapper.insert(announcementSend);
                 JSONObject obj = new JSONObject();
@@ -1008,7 +1009,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
                 }
                 SysAnnouncementSend announcementSend = new SysAnnouncementSend();
                 announcementSend.setAnntId(anntId);
-                announcementSend.setUserId(sysUser.getId());
+                announcementSend.setUserId(Integer.parseInt(sysUser.getId()));
                 announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
                 sysAnnouncementSendMapper.insert(announcementSend);
                 JSONObject obj = new JSONObject();
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java
index 9a4b783..3a78921 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java
@@ -94,7 +94,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
             }).collect(Collectors.toList());
             res.put(d.getDictCode(), dictModelList);
         }
-        log.debug("-------登录加载系统字典-----" + res.toString());
+        log.debug("\r\n-----登录加载系统字典-----\r\n" + res.toString());
         return res;
     }
 
@@ -104,7 +104,6 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
      * @param  key
      * @return
      */
-
     @Override
     @Cacheable(value = CacheConstant.SYS_DICT_CACHE, key = "#code+':'+#key", unless = "#result == null ")
     public String queryDictTextByKey(String code, String key) {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysThirdAccountServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysThirdAccountServiceImpl.java
index 975ff73..2d42e45 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysThirdAccountServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysThirdAccountServiceImpl.java
@@ -109,7 +109,7 @@ public class SysThirdAccountServiceImpl extends ServiceImpl<SysThirdAccountMappe
         // 保存用户角色
         SysUserRole userRole = new SysUserRole();
         userRole.setRoleId(sysRole.getId());
-        userRole.setUserId(sysUser.getId());
+        userRole.setUserId(Integer.parseInt(sysUser.getId()));
         sysUserRoleMapper.insert(userRole);
         return sysUser.getId().toString();
     }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
index 44c4b77..c71c9ef 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -155,7 +155,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (oConvertUtils.isNotEmpty(roles)) {
             String[] arr = roles.split(",");
             for (String roleId : arr) {
-                SysUserRole userRole = new SysUserRole(user.getId(), Integer.valueOf(roleId));
+                SysUserRole userRole = new SysUserRole(Integer.valueOf(user.getId()), Integer.valueOf(roleId));
                 sysUserRoleMapper.insert(userRole);
             }
         }
@@ -171,7 +171,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (oConvertUtils.isNotEmpty(roles)) {
             String[] arr = roles.split(",");
             for (String roleId : arr) {
-                SysUserRole userRole = new SysUserRole(user.getId(), Integer.valueOf(roleId));
+                SysUserRole userRole = new SysUserRole(Integer.valueOf(user.getId()), Integer.valueOf(roleId));
                 sysUserRoleMapper.insert(userRole);
             }
         }
@@ -327,7 +327,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (oConvertUtils.isNotEmpty(selectedParts)) {
             String[] arr = selectedParts.split(",");
             for (String deaprtId : arr) {
-                SysUserDepart userDeaprt = new SysUserDepart(user.getId(), Integer.valueOf(deaprtId));
+                SysUserDepart userDeaprt = new SysUserDepart(Integer.valueOf(user.getId()), Integer.valueOf(deaprtId));
                 sysUserDepartMapper.insert(userDeaprt);
             }
         }
@@ -347,7 +347,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (userDepartList != null && userDepartList.size() > 0) {
             for (SysUserDepart depart : userDepartList) {
                 // 修改已关联部门删除部门用户角色关系
-                if (!Arrays.asList(arr).contains(depart.getDepId())) {
+                if (!Arrays.asList(arr).contains(depart.getDepId() + "")) {
                     List<SysDepartRole> sysDepartRoleList =
                         sysDepartRoleMapper.selectList(new QueryWrapper<SysDepartRole>().lambda().eq(SysDepartRole::getDepartId, depart.getDepId()));
 
@@ -368,7 +368,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUserDepartMapper.delete(new QueryWrapper<SysUserDepart>().lambda().eq(SysUserDepart::getUserId, user.getId()));
         if (oConvertUtils.isNotEmpty(departs)) {
             for (String departId : arr) {
-                SysUserDepart userDepart = new SysUserDepart(user.getId(), Integer.valueOf(departId));
+                SysUserDepart userDepart = new SysUserDepart(Integer.valueOf(user.getId()), Integer.valueOf(departId));
                 sysUserDepartMapper.insert(userDepart);
             }
         }
@@ -468,7 +468,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         // 保存用户角色
         SysUserRole userRole = new SysUserRole();
         userRole.setRoleId(sysRole.getId());
-        userRole.setUserId(sysUser.getId());
+        userRole.setUserId(Integer.valueOf(sysUser.getId()));
         sysUserRoleMapper.insert(userRole);
     }
 
@@ -486,7 +486,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (oConvertUtils.isNotEmpty(selectedRoles)) {
             String[] arr = selectedRoles.split(",");
             for (String roleId : arr) {
-                SysUserRole userRole = new SysUserRole(user.getId(), Integer.valueOf(roleId));
+                SysUserRole userRole = new SysUserRole(Integer.valueOf(user.getId()), Integer.valueOf(roleId));
                 sysUserRoleMapper.insert(userRole);
             }
         }
@@ -494,7 +494,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (oConvertUtils.isNotEmpty(selectedDeparts)) {
             String[] arr = selectedDeparts.split(",");
             for (String deaprtId : arr) {
-                SysUserDepart userDeaprt = new SysUserDepart(user.getId(), Integer.valueOf(deaprtId));
+                SysUserDepart userDeaprt = new SysUserDepart(Integer.valueOf(user.getId()), Integer.valueOf(deaprtId));
                 sysUserDepartMapper.insert(userDeaprt);
             }
         }
@@ -512,7 +512,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (oConvertUtils.isNotEmpty(roles)) {
             String[] arr = roles.split(",");
             for (String roleId : arr) {
-                SysUserRole userRole = new SysUserRole(user.getId(), Integer.valueOf(roleId));
+                SysUserRole userRole = new SysUserRole(Integer.valueOf(user.getId()), Integer.valueOf(roleId));
                 sysUserRoleMapper.insert(userRole);
             }
         }
@@ -527,7 +527,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (userDepartList != null && userDepartList.size() > 0) {
             for (SysUserDepart depart : userDepartList) {
                 // 修改已关联部门删除部门用户角色关系
-                if (!Arrays.asList(arr).contains(depart.getDepId())) {
+                if (!Arrays.asList(arr).contains(depart.getDepId() + "")) {
                     List<SysDepartRole> sysDepartRoleList =
                         sysDepartRoleMapper.selectList(new QueryWrapper<SysDepartRole>().lambda().eq(SysDepartRole::getDepartId, depart.getDepId()));
                     List<String> roleIds = new ArrayList<>();
@@ -547,7 +547,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUserDepartMapper.delete(new QueryWrapper<SysUserDepart>().lambda().eq(SysUserDepart::getUserId, user.getId()));
         if (oConvertUtils.isNotEmpty(departs)) {
             for (String departId : arr) {
-                SysUserDepart userDepart = new SysUserDepart(user.getId(), Integer.valueOf(departId));
+                SysUserDepart userDepart = new SysUserDepart(Integer.valueOf(user.getId()), Integer.valueOf(departId));
                 sysUserDepartMapper.insert(userDepart);
             }
         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java
index d3a3973..918276a 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java
@@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean;
+import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean;
 import org.jeecg.modules.wms.api.mobile.service.IMobileService;
 import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger;
 import org.jeecg.modules.wms.framework.controller.HuahengBaseController;
@@ -50,4 +51,22 @@ public class ReceiptController extends HuahengBaseController {
         });
         return result;
     }
+
+    @AutoLog(value = "PDA入库-快速入库")
+    @ApiOperation(value = "PDA入库-快速入库", notes = "快速入库")
+    @PostMapping("/quickReceipt")
+    @ResponseBody
+    @ApiLogger(apiName = "PDA入库-快速入库", from = "PDA")
+    public Result<?> quickReceipt(@RequestBody QuickReceiptBean bean, HttpServletRequest req) {
+        String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
+        bean.setWarehouseCode(warehouseCode);
+
+        Result<?> result = handleMultiProcess("quickReceipt", new MultiProcessListener() {
+            @Override
+            public Result<?> doProcess() {
+                return mobileService.quickReceipt(bean, warehouseCode);
+            }
+        });
+        return result;
+    }
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/QuickReceiptBean.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/QuickReceiptBean.java
new file mode 100644
index 0000000..2e571c6
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/QuickReceiptBean.java
@@ -0,0 +1,23 @@
+package org.jeecg.modules.wms.api.mobile.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail;
+
+import java.util.List;
+
+@Data
+public class QuickReceiptBean {
+    @ApiModelProperty(value = "托盘号", required = true)
+    private String containerCode;
+    @ApiModelProperty(value = "库位号", required = false)
+    private String locationCode;
+    @ApiModelProperty(value = "单据类型", required = true)
+    private String receiptType;
+    @ApiModelProperty(value = "货主编码", required = true)
+    private String companyCode;
+    @ApiModelProperty(value = "仓库编码", required = false)
+    private String warehouseCode;
+    @ApiModelProperty(value = "收货明细", required = true)
+    private List<ReceiptDetail> receiptDetails;
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/IMobileService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/IMobileService.java
index 04aa932..15cb482 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/IMobileService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/IMobileService.java
@@ -2,9 +2,11 @@ package org.jeecg.modules.wms.api.mobile.service;
 
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean;
+import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean;
 import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader;
 
 public interface IMobileService {
 
     Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode);
+    Result<TaskHeader> quickReceipt(QuickReceiptBean bean, String warehouseCode);
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java
index 0cc32bd..405ddc3 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java
@@ -5,19 +5,30 @@ import javax.annotation.Resource;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean;
+import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean;
 import org.jeecg.modules.wms.api.mobile.service.IMobileService;
 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.receipt.receiptHeader.entity.ReceiptDetail;
+import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
+import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptDetailService;
+import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService;
+import org.jeecg.modules.wms.receipt.receiving.domain.Receive;
+import org.jeecg.modules.wms.receipt.receiving.service.IReceiveService;
 import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader;
 import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService;
 import org.jeecg.utils.constant.QuantityConstant;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.aliyun.oss.ServiceException;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  */
 @Service
@@ -32,6 +43,15 @@ public class MobileService implements IMobileService {
     @Resource
     private ITaskHeaderService taskHeaderService;
 
+    @Autowired
+    private IReceiptHeaderService receiptHeaderService;
+
+    @Autowired
+    private IReceiptDetailService receiptDetailService;
+
+    @Resource
+    private IReceiveService receiveService;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Result<TaskHeader> callBox(CallBoxBean bean, String warehouseCode) {
@@ -99,4 +119,62 @@ public class MobileService implements IMobileService {
 
         return Result.OK("呼叫料盒成功", taskHeader);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<TaskHeader> quickReceipt(QuickReceiptBean bean, String warehouseCode) {
+        if (StringUtils.isEmpty(bean.getContainerCode())) {
+            return Result.error("托盘号containerCode不能为空");
+        }
+        if (StringUtils.isEmpty(bean.getReceiptType())) {
+            return Result.error("单据类型不能为空");
+        }
+        if (StringUtils.isEmpty(bean.getCompanyCode())) {
+            return Result.error("货主companyCode不能为空");
+        }
+        if (bean.getReceiptDetails() == null || bean.getReceiptDetails().size() == 0) {
+            return Result.error("收货明细不能为空");
+        }
+
+        //创建入库单
+        ReceiptHeader receiptHeader = new ReceiptHeader();
+        receiptHeader.setType(bean.getReceiptType());
+        receiptHeader.setCompanyCode(bean.getCompanyCode());
+        receiptHeader.setWarehouseCode(bean.getWarehouseCode());
+        Result<ReceiptHeader> rs1 = receiptHeaderService.saveReceiptHeader(receiptHeader);
+
+        if (rs1.isSuccess()) {
+            receiptHeader = rs1.getResult();
+        } else {
+            throw new ServiceException(rs1.getMessage());
+        }
+
+        List<Receive> receiveList = new ArrayList<>();
+        for (ReceiptDetail d : bean.getReceiptDetails()) {
+            d.setReceiptId(receiptHeader.getId());
+            Result rs2 = receiptDetailService.saveReceiptDetail(d);
+            if(!rs2.isSuccess()) {
+                throw new ServiceException(rs2.getMessage());
+            }
+            Receive v = new Receive();
+            v.setId(d.getId());
+            v.setQty(d.getQty());
+            v.setTaskQty(d.getQty());
+            v.setInventoryStatus(d.getInventoryStatus());
+            v.setMaterialCode(d.getMaterialCode());
+            v.setMaterialName(d.getMaterialName());
+            v.setBatch(d.getBatch());
+            v.setMateiralSpec(d.getMaterialSpec());
+            v.setMaterialUnit(d.getMaterialUnit());
+            v.setContainerCode(bean.getContainerCode());
+            receiveList.add(v);
+        }
+
+        Result<TaskHeader> rs3 = receiveService.receivingAndCreateTask(receiveList, warehouseCode);
+        if(rs3.isSuccess()) {
+            return rs3;
+        }else{
+            throw new ServiceException(rs3.getMessage());
+        }
+    }
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/controller/WcsController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/controller/WcsController.java
index 0972a5a..6089140 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/controller/WcsController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/controller/WcsController.java
@@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.*;
 
 import io.swagger.annotations.ApiOperation;
 
+import java.util.Map;
+
 @RestController
 @RequestMapping("/API/WMS/v2")
 public class WcsController extends HuahengBaseController {
@@ -130,8 +132,7 @@ public class WcsController extends HuahengBaseController {
         });
         return result;
     }
-
-    /**
+ 	/**
      * 设置物料信息
      * @return
      */
@@ -143,5 +144,4 @@ public class WcsController extends HuahengBaseController {
     public Result setMaterialInfo(@RequestBody MaterialInfoEntity materialInfoEntity) {
         Result result = wcsService.setMaterialInfo(materialInfoEntity);
         return result;
-    }
-}
+    }}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsService.java
index c42c355..43dfe8c 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsService.java
@@ -17,10 +17,7 @@ public interface WcsService {
     Result wcsTaskAssign(TaskHeader taskHeader);
 
     WcsTask switchTaskTypeToWcs(WcsTask wcsTask);
-
-    /**
+ 	/**
      * 设置物料信息,包括长、宽、高、重量
      */
-    Result setMaterialInfo(MaterialInfoEntity materialInfoEntity);
-
-}
+    Result setMaterialInfo(MaterialInfoEntity materialInfoEntity);}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
index 22e4954..3ceffa6 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
@@ -1,6 +1,8 @@
 package org.jeecg.modules.wms.api.wcs.service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -13,6 +15,8 @@ import org.jeecg.modules.wms.api.wcs.entity.WcsTask;
 import org.jeecg.modules.wms.config.address.service.IAddressService;
 import org.jeecg.modules.wms.config.container.entity.Container;
 import org.jeecg.modules.wms.config.container.service.IContainerService;
+import org.jeecg.modules.wms.config.containerType.entity.ContainerType;
+import org.jeecg.modules.wms.config.containerType.service.impl.ContainerTypeServiceImpl;
 import org.jeecg.modules.wms.config.location.entity.Location;
 import org.jeecg.modules.wms.config.location.service.ILocationService;
 import org.jeecg.modules.wms.config.locationHigh.entity.LocationHigh;
@@ -22,6 +26,7 @@ import org.jeecg.modules.wms.config.locationType.service.ILocationTypeService;
 import org.jeecg.modules.wms.config.material.entity.Material;
 import org.jeecg.modules.wms.config.material.service.IMaterialService;
 import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService;
+import org.jeecg.modules.wms.config.receiptType.entity.ReceiptType;
 import org.jeecg.modules.wms.config.zone.entity.Zone;
 import org.jeecg.modules.wms.config.zone.service.IZoneService;
 import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger;
@@ -76,6 +81,8 @@ public class WcsServiceImpl implements WcsService {
     private ILocationService locationService;
     @Resource
     private IAddressService addressService;
+    @Resource
+    private ContainerTypeServiceImpl containerTypeServiceImpl;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -415,8 +422,7 @@ public class WcsServiceImpl implements WcsService {
         }
         return wcsTask;
     }
-
-    @Override
+	@Override
     public Result setMaterialInfo(MaterialInfoEntity materialInfoEntity) {
         int taskNo = materialInfoEntity.getTaskNo();
         TaskHeader taskHeader = taskHeaderService.getById(taskNo);
@@ -432,5 +438,4 @@ public class WcsServiceImpl implements WcsService {
             return Result.error("设置物料信息失败,更新任务信息失败");
         }
         return Result.ok("设置物料信息成功");
-    }
-}
+    }}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/entity/Location.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/entity/Location.java
index da5561a..e55d612 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/entity/Location.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/entity/Location.java
@@ -4,7 +4,10 @@ import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.math.BigDecimal;
+import java.util.List;
+
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -123,4 +126,19 @@ public class Location implements Serializable {
     /** 更新日期 */
     @ApiModelProperty(value = "更新日期")
     private Date updateTime;
+    /** 物料编码 */
+    @TableField(exist = false)
+    private List<String> materialCode;
+    /** 物料名称 */
+    @TableField(exist = false)
+    private List<String> materialName;
+    /** 批次 */
+    @TableField(exist = false)
+    private List<String> batch;
+    /** 数量 */
+    @TableField(exist = false)
+    private List<BigDecimal> qty;
+    /** 库存所在库位状态 */
+    @TableField(exist = false)
+    private String locationAttribute;
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/controller/LocationMonitorController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/controller/LocationMonitorController.java
new file mode 100644
index 0000000..0962ed2
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/controller/LocationMonitorController.java
@@ -0,0 +1,194 @@
+package org.jeecg.modules.wms.config.locationMonitor.controller;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.jeecg.common.api.vo.Result;
+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 lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail;
+import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService;
+import org.jeecg.modules.wms.config.locationMonitor.entity.LocationStatus;
+import org.jeecg.utils.HuahengJwtUtil;
+import org.jeecg.utils.StringUtils;
+import org.jeecg.utils.constant.QuantityConstant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.Api;
+
+ /**
+ * @Description: 库存监控
+ * @Author: lty
+ * @Date:   2023/1/29
+ */
+@Api(tags="库存监控")
+@RestController
+@RequestMapping("/location/locationMonitor")
+@Slf4j
+public class LocationMonitorController{
+	@Autowired
+	private IContainerService containerService;
+	@Resource
+	private ILocationService locationService;
+	@Resource
+	private IInventoryDetailService inventoryDetailService;
+
+
+	 /**
+	  * 库存概括
+	  */
+	 @GetMapping("/getStatus")
+	 @ResponseBody
+	 public Result getStatus(String zoneCode) {
+		 HashMap<String, Integer> map = new HashMap<>();
+		 LambdaQueryWrapper<Location> queryWrapper = Wrappers.lambdaQuery();
+		 queryWrapper.eq(Location::getZoneCode,zoneCode);
+		 List<Location> locationList = locationService.list(queryWrapper);
+		 map.put("location", locationList.size());
+		 queryWrapper = Wrappers.lambdaQuery();
+		 queryWrapper.and(wrapper->wrapper.isNull(Location::getContainerCode).or().eq(Location::getContainerCode,""))
+				 .eq(Location::getZoneCode,zoneCode);
+		 List<Location> emptyLocationList = locationService.list(queryWrapper);
+		 map.put("emptyLocation", emptyLocationList.size());
+		 LambdaQueryWrapper<Container> containerLambdaQueryWrapper2 = Wrappers.lambdaQuery();
+		 containerLambdaQueryWrapper2.eq(Container::getStatus, QuantityConstant.STATUS_CONTAINER_EMPTY);
+		 List<Container> containerList2 = containerService.list(containerLambdaQueryWrapper2);
+		 List<String> containerCodeList2 = containerList2.stream().map(Container::getCode).collect(Collectors.toList());
+		 LambdaQueryWrapper<Location> locationLambdaQueryWrapper2 = Wrappers.lambdaQuery();
+		 locationLambdaQueryWrapper2.in(Location::getContainerCode, containerCodeList2);
+		 locationLambdaQueryWrapper2.eq(Location::getZoneCode, zoneCode);
+		 List<Location> haveEmptyContainLocation = locationService.list(locationLambdaQueryWrapper2);
+		 map.put("haveContainLocation", haveEmptyContainLocation.size());
+		 LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery();
+		 containerLambdaQueryWrapper.eq(Container::getStatus, QuantityConstant.STATUS_CONTAINER_SOME);
+		 List<Container> containerList = containerService.list(containerLambdaQueryWrapper);
+		 int containerListSize = containerList.size();
+		 List<String> containerCodeList = containerList.stream().map(Container::getCode).collect(Collectors.toList());
+		 LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery();
+		 locationLambdaQueryWrapper.in(containerListSize !=0, Location::getContainerCode, containerCodeList);
+		 locationLambdaQueryWrapper.eq(Location::getZoneCode, zoneCode);
+		 List<Location> haveInventoryLocation = locationService.list(locationLambdaQueryWrapper);
+		 map.put("haveInventoryLocation", haveInventoryLocation.size());
+		 return Result.ok(map);
+	 }
+
+	 /**
+	  * 查询库位列表
+	  */
+	 @PostMapping("/getLocationInfo")
+	 @ResponseBody
+	 public Result getLocationInfo (String type, String row, String line, String layer, String grid, HttpServletRequest req) {
+		 if(StringUtils.isEmpty(type)) {
+			 return Result.error("type不能为空");
+		 }
+		 String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
+		 /* 查询库位信息*/
+		 LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery();
+		 locationLambdaQueryWrapper.eq(StringUtils.isNotEmpty(row), Location::getRow, row)
+				 .eq(StringUtils.isNotEmpty(line), Location::getIcolumn, line)
+				 .eq(StringUtils.isNotEmpty(layer), Location::getLayer, layer)
+				 .eq(StringUtils.isNotEmpty(grid),Location::getGrid, grid)
+				 .eq(Location::getWarehouseCode, warehouseCode)
+				 .eq(StringUtils.isNotEmpty(type), Location::getZoneCode, type);
+		 List<Location> locations = locationService.list(locationLambdaQueryWrapper);
+		 List<Location> locationList = new ArrayList<>();
+
+		 /* 查询库存明细*/
+		 LambdaQueryWrapper<InventoryDetail> inventoryDetailLambda = Wrappers.lambdaQuery();
+		 inventoryDetailLambda.eq(InventoryDetail::getWarehouseCode, warehouseCode);
+		 List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambda);
+
+		 for (Location location1 : locations) {
+			 InventoryDetail inventoryDetail = null;
+			 String materialName = null;
+			 for (InventoryDetail inventoryDetail2 : inventoryDetailList) {
+				 if(location1.getCode().equals(inventoryDetail2.getLocationCode())) {
+					 inventoryDetail = inventoryDetail2;
+				 }
+			 }
+			 List<InventoryDetail> inventoryDetails = inventoryDetailList.stream().filter(inventoryDetail1 ->
+					 inventoryDetail1.getLocationCode().equals(location1.getCode())).collect(Collectors.toList());
+
+			 int locationAttribute = 0;
+			 String status = location1.getStatus();
+			 String containerCode = location1.getContainerCode();
+			 List<String> materialNameList = inventoryDetails.stream().map(InventoryDetail::getMaterialName).collect(Collectors.toList());
+			 List<String> batchList = inventoryDetails.stream().map(InventoryDetail::getBatch).collect(Collectors.toList());
+			 List<String> materialCodeList = inventoryDetails.stream().map(InventoryDetail::getMaterialCode).collect(Collectors.toList());
+			 List<BigDecimal> qtyList = inventoryDetails.stream().map(InventoryDetail::getQty).collect(Collectors.toList());
+			 if(QuantityConstant.STATUS_LOCATION_EMPTY.equals(status)) {
+				 if(StringUtils.isEmpty(containerCode)) {
+					 locationAttribute = LocationStatus.IDLE_EMPTY_LOCATION;
+				 } else {
+					 if(inventoryDetail == null) {
+						 locationAttribute = LocationStatus.IDLE_EMPTY_CONTAINER;
+					 } else {
+						 location1.setMaterialName(materialNameList);
+						 location1.setMaterialCode(materialCodeList);
+						 location1.setBatch(batchList);
+						 location1.setQty(qtyList);
+						 locationAttribute = LocationStatus.IDLE_FULL_CONTAINER;
+					 }
+				 }
+			 } else if(QuantityConstant.STATUS_LOCATION_LOCK.equals(status)) {
+				 if(StringUtils.isEmpty(containerCode)) {
+					 locationAttribute = LocationStatus.LOCK_EMPTY_LOCATION;
+				 } else {
+					 if(inventoryDetail == null) {
+						 locationAttribute = LocationStatus.LOCK_EMPTY_CONTAINER;
+					 } else {
+						 location1.setMaterialName(materialNameList);
+						 location1.setMaterialCode(materialCodeList);
+						 location1.setBatch(batchList);
+						 location1.setQty(qtyList);
+						 locationAttribute = LocationStatus.LOCK_FULL_CONTAINER;
+					 }
+				 }
+			 }
+
+//			 if(location1.getDeleted()) {
+//				 if(StringUtils.isEmpty(containerCode)) {
+//					 locationAttribute = LocationStatus.DISABLE_EMPTY_LOCATION;
+//				 } else {
+//					 if(inventoryDetail == null) {
+//						 locationAttribute = LocationStatus.DISABLE_EMPTY_CONTAINER;
+//					 } else {
+//						 location1.setMaterialName(materialNameList);
+//						 location1.setMaterialCode(materialCodeList);
+//						 location1.setBatch(batchList);
+//						 location1.setQty(qtyList);
+//						 locationAttribute = LocationStatus.DISABLE_FULL_CONTAINER;
+//					 }
+//				 }
+//			 }
+
+			 location1.setLocationAttribute(String.valueOf(locationAttribute));
+			 locationList.add(location1);
+		 }
+		 return Result.ok(locations);
+	 }
+
+
+	 /**
+	  * 查询库位列表
+	  */
+	 @PostMapping("/getAllLocation")
+	 @ResponseBody
+	 public Result getAllLocation (String type) {
+		 if(StringUtils.isEmpty(type)) {
+			 return Result.error("type不能为空");
+		 }
+		 return Result.ok(locationService.getAllLocation(type));
+	 }
+
+ }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/entity/LocationStatus.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/entity/LocationStatus.java
new file mode 100644
index 0000000..4ecbd58
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/entity/LocationStatus.java
@@ -0,0 +1,36 @@
+package org.jeecg.modules.wms.config.locationMonitor.entity;
+
+/**
+ *
+ * @author lty
+ * @date 2023/1/29
+ */
+public class LocationStatus {
+
+    /** 空柜丢失 */
+    public static final int IDLE_EMPTY_LOST = 0;
+    /** 空柜空闲 */
+    public static final int IDLE_EMPTY_LOCATION = 1;
+    /** 空盘空闲 */
+    public static final int IDLE_EMPTY_CONTAINER = 2;
+    /** 半盘空闲 */
+    public static final int IDLE_HALF_CONTAINER = 3;
+    /** 满盘空闲 */
+    public static final int IDLE_FULL_CONTAINER = 4;
+    /** 空柜锁定 */
+    public static final int LOCK_EMPTY_LOCATION = 5;
+    /** 空盘锁定 */
+    public static final int LOCK_EMPTY_CONTAINER = 6;
+    /** 半盘锁定 */
+    public static final int LOCK_HALF_CONTAINER = 7;
+    /** 满盘锁定 */
+    public static final int LOCK_FULL_CONTAINER = 8;
+    /** 空柜禁用 */
+    public static final int DISABLE_EMPTY_LOCATION = 9;
+    /** 空盘禁用 */
+    public static final int DISABLE_EMPTY_CONTAINER = 10;
+    /** 半盘禁用 */
+    public static final int DISABLE_HALF_CONTAINER = 11;
+    /** 满盘禁用 */
+    public static final int DISABLE_FULL_CONTAINER = 12;
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/service/LocationMonitorService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/service/LocationMonitorService.java
new file mode 100644
index 0000000..aa08e79
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/service/LocationMonitorService.java
@@ -0,0 +1,12 @@
+package org.jeecg.modules.wms.config.locationMonitor.service;
+
+
+/**
+ * @Description: 库存交易记录
+ * @Author: jeecg-boot
+ * @Date:   2022-11-17
+ * @Version: V1.0
+ */
+public interface LocationMonitorService {
+
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/service/impl/LocationMonitorServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/service/impl/LocationMonitorServiceImpl.java
new file mode 100644
index 0000000..8041236
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationMonitor/service/impl/LocationMonitorServiceImpl.java
@@ -0,0 +1,16 @@
+package org.jeecg.modules.wms.config.locationMonitor.service.impl;
+
+
+import org.jeecg.modules.wms.config.locationMonitor.service.LocationMonitorService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 库存交易记录
+ * @Author: jeecg-boot
+ * @Date:   2022-11-17
+ * @Version: V1.0
+ */
+@Service
+public class LocationMonitorServiceImpl implements LocationMonitorService {
+
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java
index 8a80c4d..144ed23 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java
@@ -66,9 +66,8 @@ public class ApiLogAspect {
 
     @Around("logPointCut()  && @annotation(apiLogger)")
     public Object around(ProceedingJoinPoint point, ApiLogger apiLogger) throws Throwable {
-        if ("WMS".equalsIgnoreCase(apiLogger.from()))
         // 实际上静态方法上的Aop注解无法拦截到
-        {
+        if ("WMS".equalsIgnoreCase(apiLogger.from())) {
             return aroundWms2XXX(point, apiLogger);
         } else {
             return aroundXXX2Wms(point, apiLogger);
@@ -81,13 +80,16 @@ public class ApiLogAspect {
         ApiLog log = initApiLog(apiLogger, point);
         try {
             ret = point.proceed();
-        } catch (Exception e) {
-            setApiLogException(log, e);
+        } catch (Throwable e) {
+            setApiLogThrowable(log, e);
             ret = Result.error(e.getMessage());
-        } finally {
-            finishApiLog(log, ret);
             return ret;
+        } finally {
+            if (ret != null) {
+                finishApiLog(log, ret);
+            }
         }
+        return ret;
     }
 
     /** 处理WMS调用xxx接口的日志 **/
@@ -103,21 +105,16 @@ public class ApiLogAspect {
             connection = (HttpURLConnection)point.getArgs()[0];
             body = (String)point.getArgs()[1];
             initApiLog(connection, body);
-        } catch (Exception e) {
-
-        }
-
-        try {
             ret = point.proceed();
-        } catch (Exception e) {
-            setApiLogException(log, e);
-            throw e;
+        } catch (Throwable e) {
+            setApiLogThrowable(log, e);
+            ret = Result.error(e.getMessage());
         } finally {
             if (ret != null) {
                 finishApiLog(log, connection, ret.toString());
             }
-            return ret;
         }
+        return ret;
     }
 
     /**
@@ -410,6 +407,16 @@ public class ApiLogAspect {
             ex.printStackTrace();
         }
     }
+    
+    public static void setApiLogThrowable(ApiLog log, Throwable e) {
+        try {
+            String exception = ExceptionUtils.getFullStackTrace(e);
+            String shortExpInfo = e.getMessage() + "\n" + org.apache.commons.lang3.StringUtils.left(exception, 1000);
+            log.setException(shortExpInfo);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
 
     private void rebuildRequestHeader(ApiLog log) {
         try {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java
index 53c8964..887da8a 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java
@@ -29,7 +29,7 @@ public interface IReceiptHeaderService extends IService<ReceiptHeader> {
     /**
      *
      */
-    public Result saveReceiptHeader(ReceiptHeader receiptHeader);
+    public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader);
 
     public String createCode(String receiptType);
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java
index e9527e9..2426bb3 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java
@@ -83,7 +83,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R
 
     @Override
     @Transactional
-    public Result saveReceiptHeader(ReceiptHeader receiptHeader) {
+    public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader) {
         LambdaQueryWrapper<ReceiptType> lambdaQueryWrapper = Wrappers.lambdaQuery();
         lambdaQueryWrapper.eq(ReceiptType::getCode, receiptHeader.getType()).eq(ReceiptType::getWarehouseCode, receiptHeader.getWarehouseCode());
         ReceiptType receiptType = receiptTypeService.getOne(lambdaQueryWrapper);
@@ -101,7 +101,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R
         if (!success) {
             return Result.OK("添加失败!");
         }
-        return Result.OK("添加成功!");
+        return Result.OK("添加成功!", receiptHeader);
     }
 
     @Override
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
index 6237a7a..446a582 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
@@ -447,7 +447,6 @@ public class QuantityConstant {
     public static final String RULE_ALLOCATION = "allocationRule";
     public static final String DOUBLE_FORK_RESERVE_LOCATION = "doubleForkReserveLocation";
     public static final String DOUBLE_FORK_SEARCH_LOCATION = "doubleForkSearchLocation";
-    public static final String EMPTY_CONTAINER_WEIGHT = "emptyWeight";
     public static final String WAREHOUSING_WEIGHING = "warehousingWeighing";
     public static final String EXCEPTION_TO_CACHE = "exceptionToCache";
     public static final String CONTAINER_SPEC = "containerSpec";