diff --git a/ant-design-vue-jeecg/.gitignore b/ant-design-vue-jeecg/.gitignore
index a15516b..121a98b 100644
--- a/ant-design-vue-jeecg/.gitignore
+++ b/ant-design-vue-jeecg/.gitignore
@@ -1,6 +1,6 @@
 .DS_Store
-node_modules
-node
+/node_modules
+/node
 /dist
 /test
 
diff --git a/ant-design-vue-jeecg/node/node.exe b/ant-design-vue-jeecg/node/node.exe
new file mode 100644
index 0000000..439d826
--- /dev/null
+++ b/ant-design-vue-jeecg/node/node.exe
diff --git a/ant-design-vue-jeecg/node/npm b/ant-design-vue-jeecg/node/npm
new file mode 100644
index 0000000..a131a53
--- /dev/null
+++ b/ant-design-vue-jeecg/node/npm
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix
+
+basedir=`dirname "$0"`
+
+case `uname` in
+  *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+NODE_EXE="$basedir/node.exe"
+if ! [ -x "$NODE_EXE" ]; then
+  NODE_EXE="$basedir/node"
+fi
+if ! [ -x "$NODE_EXE" ]; then
+  NODE_EXE=node
+fi
+
+# this path is passed to node.exe, so it needs to match whatever
+# kind of paths Node.js thinks it's using, typically win32 paths.
+CLI_BASEDIR="$("$NODE_EXE" -p 'require("path").dirname(process.execPath)')"
+NPM_CLI_JS="$CLI_BASEDIR/node_modules/npm/bin/npm-cli.js"
+
+NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`
+if [ $? -ne 0 ]; then
+  # if this didn't work, then everything else below will fail
+  echo "Could not determine Node.js install directory" >&2
+  exit 1
+fi
+NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js"
+
+# a path that will fail -f test on any posix bash
+NPM_WSL_PATH="/.."
+
+# WSL can run Windows binaries, so we have to give it the win32 path
+# however, WSL bash tests against posix paths, so we need to construct that
+# to know if npm is installed globally.
+if [ `uname` = 'Linux' ] && type wslpath &>/dev/null ; then
+  NPM_WSL_PATH=`wslpath "$NPM_PREFIX_NPM_CLI_JS"`
+fi
+if [ -f "$NPM_PREFIX_NPM_CLI_JS" ] || [ -f "$NPM_WSL_PATH" ]; then
+  NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"
+fi
+
+"$NODE_EXE" "$NPM_CLI_JS" "$@"
diff --git a/ant-design-vue-jeecg/node/npm.cmd b/ant-design-vue-jeecg/node/npm.cmd
new file mode 100644
index 0000000..880554d
--- /dev/null
+++ b/ant-design-vue-jeecg/node/npm.cmd
@@ -0,0 +1,19 @@
+:: Created by npm, please don't edit manually.
+@ECHO OFF
+
+SETLOCAL
+
+SET "NODE_EXE=%~dp0\node.exe"
+IF NOT EXIST "%NODE_EXE%" (
+  SET "NODE_EXE=node"
+)
+
+SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
+FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
+  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
+)
+IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
+  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
+)
+
+"%NODE_EXE%" "%NPM_CLI_JS%" %*
diff --git a/ant-design-vue-jeecg/src/assets/css/huahengUI.css b/ant-design-vue-jeecg/src/assets/css/huahengUI.css
index 643f0e1..7d88b1a 100644
--- a/ant-design-vue-jeecg/src/assets/css/huahengUI.css
+++ b/ant-design-vue-jeecg/src/assets/css/huahengUI.css
@@ -1264,7 +1264,7 @@ label {
   /*margin: 12px 6px;*/
   margin-bottom: 6px;
   background-size:cover;
-  background-image: url("~@/assets/icon/空盘空闲.png");
+  background-image: url("~@/assets/icon/grid_empty.png");
 }
 
 
diff --git a/ant-design-vue-jeecg/src/assets/icon/整盘禁用.png b/ant-design-vue-jeecg/src/assets/icon/ContainerDisabled.png
index 405af2e..405af2e 100644
--- a/ant-design-vue-jeecg/src/assets/icon/整盘禁用.png
+++ b/ant-design-vue-jeecg/src/assets/icon/ContainerDisabled.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/整盘空闲.png b/ant-design-vue-jeecg/src/assets/icon/grid_all.png
index 81cc782..81cc782 100644
--- a/ant-design-vue-jeecg/src/assets/icon/整盘空闲.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_all.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/整盘锁定.png b/ant-design-vue-jeecg/src/assets/icon/grid_all_lock.png
index 5de1dc6..5de1dc6 100644
--- a/ant-design-vue-jeecg/src/assets/icon/整盘锁定.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_all_lock.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/空柜锁定.png b/ant-design-vue-jeecg/src/assets/icon/grid_emp_lock.png
index e4acf03..e4acf03 100644
--- a/ant-design-vue-jeecg/src/assets/icon/空柜锁定.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_emp_lock.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/空柜禁用.png b/ant-design-vue-jeecg/src/assets/icon/grid_emp_waing.png
index f2c5019..f2c5019 100644
--- a/ant-design-vue-jeecg/src/assets/icon/空柜禁用.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_emp_waing.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/空盘空闲.png b/ant-design-vue-jeecg/src/assets/icon/grid_empty.png
index 6292c16..6292c16 100644
--- a/ant-design-vue-jeecg/src/assets/icon/空盘空闲.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_empty.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/空盘锁定.png b/ant-design-vue-jeecg/src/assets/icon/grid_empty_lock.png
index 0723711..0723711 100644
--- a/ant-design-vue-jeecg/src/assets/icon/空盘锁定.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_empty_lock.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/空盘禁用.png b/ant-design-vue-jeecg/src/assets/icon/grid_empty_waring.png
index cbf57da..cbf57da 100644
--- a/ant-design-vue-jeecg/src/assets/icon/空盘禁用.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_empty_waring.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/半盘空闲.png b/ant-design-vue-jeecg/src/assets/icon/grid_half.png
index 24a71eb..24a71eb 100644
--- a/ant-design-vue-jeecg/src/assets/icon/半盘空闲.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_half.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/半盘锁定.png b/ant-design-vue-jeecg/src/assets/icon/grid_half_lock.png
index f194f89..f194f89 100644
--- a/ant-design-vue-jeecg/src/assets/icon/半盘锁定.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_half_lock.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/半盘禁用.png b/ant-design-vue-jeecg/src/assets/icon/grid_half_waring.png
index cc7e7a1..cc7e7a1 100644
--- a/ant-design-vue-jeecg/src/assets/icon/半盘禁用.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_half_waring.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/空柜空闲.png b/ant-design-vue-jeecg/src/assets/icon/grid_rest.png
index db1e5c4..db1e5c4 100644
--- a/ant-design-vue-jeecg/src/assets/icon/空柜空闲.png
+++ b/ant-design-vue-jeecg/src/assets/icon/grid_rest.png
diff --git a/ant-design-vue-jeecg/src/assets/icon/空.png b/ant-design-vue-jeecg/src/assets/icon/rel_empty.png
index 963d22b..963d22b 100644
--- a/ant-design-vue-jeecg/src/assets/icon/空.png
+++ b/ant-design-vue-jeecg/src/assets/icon/rel_empty.png
diff --git a/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiCycleCount.vue b/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiCycleCount.vue
index 9371d1b..49774cc 100644
--- a/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiCycleCount.vue
+++ b/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiCycleCount.vue
@@ -32,7 +32,7 @@ export default {
       url: {list: '/inventory/inventoryHeader/freeList'},
       columns: [
         {title: 'ID', align: 'center', width: '20%',widthRight: '70%', dataIndex: 'id'},
-        {title: '容器号', align: 'center', width: '25%', dataIndex: 'containerCode'},
+        {title: '容器编码', align: 'center', width: '25%', dataIndex: 'containerCode'},
         {title: '容器状态', align: 'center', width: '20%', dataIndex: 'containerStatus'},
         {title: '库位号', align: 'center', width: '20%', dataIndex: 'locationCode'},
         {title: '总数量', align: 'center', width: '20%', dataIndex: 'totalQty'},
@@ -51,7 +51,7 @@ export default {
       queryConfigDefault: [
         // {
         //   key: 'containerCode',
-        //   label: '容器号',
+        //   label: '容器编码',
         //   // 如果包含 dictCode,那么就会显示成下拉框
         //   dictCode: 'sex',
         // },
diff --git a/ant-design-vue-jeecg/src/views/system/config/AddressList.vue b/ant-design-vue-jeecg/src/views/system/config/AddressList.vue
index 343e81b..9b424a8 100644
--- a/ant-design-vue-jeecg/src/views/system/config/AddressList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/AddressList.vue
@@ -5,18 +5,28 @@
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="任务名称">
+              <j-input placeholder="请输入任务名称" v-model="queryParam.remark"></j-input>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="编码">
-              <a-input placeholder="请输入编码" v-model="queryParam.code"></a-input>
+              <j-input placeholder="请输入编码" v-model="queryParam.param"></j-input>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="库区">
+              <a-select show-search placeholder="请选择库区" option-filter-prop="children" v-model="queryParam.zoneCode" >
+                <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
+                  {{ item.name }}
+                </a-select-option>
+              </a-select>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
             </span>
           </a-col>
         </a-row>
@@ -28,16 +38,13 @@
     <div class="table-operator">
       <a-button @click="handleAdd" v-has="'address:add'" type="primary" icon="plus">新增</a-button>
       <a-button v-has="'address:export'" type="primary" icon="download" @click="handleExportXls('接口地址')">导出</a-button>
-      <a-upload v-has="'address:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
-                @change="handleImportExcel">
+      <a-upload v-has="'address:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay" v-has="'address:deleteBatch'">
           <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete"/>
-            删除
-          </a-menu-item>
+            <a-icon type="delete"/> 删除  </a-menu-item>
         </a-menu>
         <a-button style="margin-left: 8px"> 批量操作
           <a-icon type="down"/>
@@ -47,12 +54,6 @@
 
     <!-- table区域-begin -->
     <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
-        style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
       <a-table
         ref="table"
         size="middle"
@@ -63,30 +64,14 @@
         :dataSource="dataSource"
         :pagination="ipagination"
         :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
         class="j-table-force-nowrap"
         @change="handleTableChange">
 
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt=""
-               style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            下载
-          </a-button>
-        </template>
+        <span slot="zoneCode" slot-scope="zoneCode">
+          <a-tag :key="zoneCode" color="blue">
+            {{ solutionZoneCode(zoneCode) }}
+          </a-tag>
+        </span>
 
         <span slot="action" slot-scope="text, record">
           <a v-has="'address:edit'" @click="handleEdit(record)">编辑</a>
@@ -115,11 +100,11 @@
 </template>
 
 <script>
-
 import '@/assets/less/TableExpand.less'
-import {mixinDevice} from '@/utils/mixin'
-import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import { mixinDevice } from '@/utils/mixin'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import AddressModal from './modules/AddressModal'
+import { getZoneList } from '@/api/api'
 
 export default {
   name: 'AddressList',
@@ -130,6 +115,7 @@ export default {
   data() {
     return {
       description: '接口地址管理页面',
+      zoneList: [],
       // 表头
       columns: [
         {
@@ -137,93 +123,109 @@ export default {
           dataIndex: '',
           key: 'rowIndex',
           width: 60,
-          align: "center",
-          customRender: function (t, r, index) {
-            return parseInt(index) + 1;
+          align: 'center',
+          customRender: function(t, r, index) {
+            return parseInt(index) + 1
           }
         },
         {
+          title: '接口名称',
+          align: 'center',
+          dataIndex: 'remark'
+        },
+        {
           title: '编码',
-          align: "center",
+          align: 'center',
           dataIndex: 'param'
         },
+
         {
           title: '库区',
-          align: "center",
-          dataIndex: 'zoneCode'
+          align: 'center',
+          dataIndex: 'zoneCode',
+          key: 'zoneCode',
+          scopedSlots: { customRender: 'zoneCode' }
         },
         {
           title: '接口地址',
-          align: "center",
+          align: 'center',
           dataIndex: 'url'
         },
         {
-          title: '备注',
-          align: "center",
-          dataIndex: 'remark'
-        },
-        {
           title: '创建人',
-          align: "center",
+          align: 'center',
           dataIndex: 'createBy'
         },
         {
           title: '创建日期',
-          align: "center",
+          align: 'center',
           dataIndex: 'createTime'
         },
         {
           title: '更新人',
-          align: "center",
+          align: 'center',
           dataIndex: 'updateBy'
         },
         {
           title: '更新日期',
-          align: "center",
+          align: 'center',
           dataIndex: 'updateTime'
         },
         {
           title: '操作',
           dataIndex: 'action',
-          align: "center",
-          fixed: "right",
+          align: 'center',
+          fixed: 'right',
           width: 147,
-          scopedSlots: {customRender: 'action'}
+          scopedSlots: { customRender: 'action' }
         }
       ],
       url: {
-        list: "/config/address/list",
-        delete: "/config/address/delete",
-        deleteBatch: "/config/address/deleteBatch",
-        exportXlsUrl: "/config/address/exportXls",
-        importExcelUrl: "config/address/importExcel",
-
+        list: '/config/address/list',
+        delete: '/config/address/delete',
+        deleteBatch: '/config/address/deleteBatch',
+        exportXlsUrl: '/config/address/exportXls',
+        importExcelUrl: 'config/address/importExcel'
       },
       dictOptions: {},
-      superFieldList: [],
+      superFieldList: []
     }
   },
   created() {
-    this.getSuperFieldList();
+    this.getSuperFieldList()
+    getZoneList().then(res => {
+      if (res.success) {
+        this.zoneList = res.result
+      }
+    })
   },
   computed: {
-    importExcelUrl: function () {
-      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-    },
+    importExcelUrl: function() {
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
+    }
   },
   methods: {
-    initDictConfig() {
-    },
+    initDictConfig() {},
     getSuperFieldList() {
-      let fieldList = [];
-      fieldList.push({type: 'string', value: 'code', text: '编码', dictCode: ''})
-      fieldList.push({type: 'string', value: 'zoneCode', text: '库区', dictCode: ''})
-      fieldList.push({type: 'string', value: 'url', text: '接口地址', dictCode: ''})
-      fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})
-      fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})
-      fieldList.push({type: 'string', value: 'updateBy', text: '更新人', dictCode: ''})
-      fieldList.push({type: 'datetime', value: 'updateTime', text: '更新日期'})
+      let fieldList = []
+      fieldList.push({ type: 'string', value: 'code', text: '编码', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'zoneCode', text: '库区', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'url', text: '接口地址', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' })
+      fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
+      fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' })
+      fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' })
       this.superFieldList = fieldList
+    },
+    solutionZoneCode(value) {
+      var actions = []
+      Object.keys(this.zoneList).some(key => {
+        if (this.zoneList[key].code == '' + value) {
+          actions.push(this.zoneList[key].name)
+          return true
+        }
+      })
+      return actions.join('')
     }
   }
 }
diff --git a/ant-design-vue-jeecg/src/views/system/config/LocationList.vue b/ant-design-vue-jeecg/src/views/system/config/LocationList.vue
index 8f3f701..0b3093c 100644
--- a/ant-design-vue-jeecg/src/views/system/config/LocationList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/LocationList.vue
@@ -35,10 +35,10 @@
           </a-col>
           <template v-if="toggleSearchStatus">
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="库区编码">
+              <a-form-item label="库区">
                 <a-select
                   show-search
-                  placeholder="请选择库区编码"
+                  placeholder="请选择库区"
                   option-filter-prop="children"
                   v-model="queryParam.zoneCode"
                 >
diff --git a/ant-design-vue-jeecg/src/views/system/config/modules/AddressForm.vue b/ant-design-vue-jeecg/src/views/system/config/modules/AddressForm.vue
index 27d4cc7..ebc15f0 100644
--- a/ant-design-vue-jeecg/src/views/system/config/modules/AddressForm.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/modules/AddressForm.vue
@@ -4,13 +4,26 @@
       <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
         <a-row>
           <a-col :span="24">
+            <a-form-model-item label="接口名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
+              <a-input v-model="model.remark" placeholder="请输入接口名称"></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
             <a-form-model-item label="编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code">
               <a-input v-model="model.param" placeholder="请输入编码"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
             <a-form-model-item label="库区" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zoneCode">
-              <a-input v-model="model.zoneCode" placeholder="请输入库区"></a-input>
+              <a-select
+                show-search
+                placeholder="请选择库区"
+                option-filter-prop="children"
+                v-model="model.zoneCode">
+                <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
+                  {{ item.name }}
+                </a-select-option>
+              </a-select>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
@@ -18,11 +31,6 @@
               <a-input v-model="model.url" placeholder="请输入接口地址"></a-input>
             </a-form-model-item>
           </a-col>
-          <a-col :span="24">
-            <a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
-              <a-input v-model="model.remark" placeholder="请输入备注"></a-input>
-            </a-form-model-item>
-          </a-col>
         </a-row>
       </a-form-model>
     </j-form-container>
@@ -33,6 +41,7 @@
 
 import {httpAction, getAction} from '@/api/manage'
 import {validateDuplicateValue} from '@/utils/util'
+import {getZoneList} from '@/api/api'
 
 export default {
   name: 'AddressForm',
@@ -47,6 +56,7 @@ export default {
   },
   data() {
     return {
+      zoneList: [],
       model: {},
       labelCol: {
         xs: {span: 24},
@@ -73,6 +83,7 @@ export default {
   created() {
     //备份model原始值
     this.modelDefault = JSON.parse(JSON.stringify(this.model));
+    this.loadFrom();
   },
   methods: {
     add() {
@@ -82,6 +93,13 @@ export default {
       this.model = Object.assign({}, record);
       this.visible = true;
     },
+    loadFrom() {
+      getZoneList().then((res) => {
+        if (res.success) {
+          this.zoneList = res.result
+        }
+      });
+    },
     submitForm() {
       const that = this;
       // 触发表单验证
diff --git a/ant-design-vue-jeecg/src/views/system/config/modules/LocationForm.vue b/ant-design-vue-jeecg/src/views/system/config/modules/LocationForm.vue
index bb84595..3d2d88e 100644
--- a/ant-design-vue-jeecg/src/views/system/config/modules/LocationForm.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/modules/LocationForm.vue
@@ -14,7 +14,6 @@
                 show-search
                 placeholder="请选择库区"
                 option-filter-prop="children"
-                
                 v-model="model.zoneCode">
                 <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">{{
                     item.name
@@ -29,7 +28,7 @@
                 show-search
                 placeholder="请选择库位类型"
                 option-filter-prop="children"
-                
+
                 v-model="model.locationTypeCode">
                 <a-select-option v-for="item in locationTypeList" :key="item.name" :value="item.code">{{
                     item.name
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
index e02ef36..27b4a83 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
@@ -18,8 +18,8 @@
             </a-form-item>
           </a-col>
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="容器号">
-                <a-input placeholder="请输入容器号" v-model="queryParam.containerCode"></a-input>
+              <a-form-item label="容器编码">
+                <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
               </a-form-item>
             </a-col>
           <template v-if="toggleSearchStatus">
@@ -182,7 +182,7 @@ export default {
           scopedSlots: {customRender: 'zoneCode'}
         },
         {
-          title: '容器号',
+          title: '容器编码',
           align: "center",
           dataIndex: 'containerCode'
         },
@@ -337,7 +337,7 @@ export default {
       let fieldList = [];
       fieldList.push({type: 'string', value: 'companyCode', text: '货主', dictCode: ''})
       fieldList.push({type: 'string', value: 'zoneCode', text: '库区', dictCode: ''})
-      fieldList.push({type: 'string', value: 'containerCode', text: '容器号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})
       fieldList.push({type: 'string', value: 'containerStatus', text: '容器状态', dictCode: 'container_status'})
       fieldList.push({type: 'string', value: 'locationCode', text: '库位号', dictCode: ''})
       fieldList.push({type: 'BigDecimal', value: 'totalQty', text: '总数量', dictCode: ''})
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryHeaderModal.vue b/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryHeaderModal.vue
index 86bc6e4..5d14462 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryHeaderModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryHeaderModal.vue
@@ -22,8 +22,8 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
-            <a-form-model-item label="容器号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
-              <a-input v-model="model.containerCode" placeholder="请输入容器号"></a-input>
+            <a-form-model-item label="容器编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
+              <a-input v-model="model.containerCode" placeholder="请输入容器编码"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
diff --git a/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue b/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue
index 57ce176..339fb2e 100644
--- a/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue
+++ b/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue
@@ -6,52 +6,52 @@
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="接口名称">
-              <a-input placeholder="请输入接口名称" v-model="queryParam.apiName"></a-input>
+              <j-input placeholder="请输入接口名称" v-model="queryParam.apiName"></j-input>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="请求类型">
-              <a-input placeholder="请输入请求类型" v-model="queryParam.apiMethod"></a-input>
+            <a-form-item label="请求方名称">
+              <j-input placeholder="请输入请求方名称" v-model="queryParam.requestFrom"></j-input>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="请求方地址">
-              <a-input placeholder="请输入请求方地址" v-model="queryParam.ip"></a-input>
+            <a-form-item label="响应方名称">
+              <j-input placeholder="请输入响应方名称" v-model="queryParam.responseBy"></j-input>
             </a-form-item>
           </a-col>
           <template v-if="toggleSearchStatus">
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="请求方名称">
-                <a-input placeholder="请输入请求方名称" v-model="queryParam.responseFrom"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="响应方名称">
-                <a-input placeholder="请输入响应方名称" v-model="queryParam.responseBy"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
               <a-form-item label="请求地址">
-                <a-input placeholder="请输入请求地址" v-model="queryParam.url"></a-input>
+                <j-input placeholder="请输入请求地址" v-model="queryParam.url"></j-input>
               </a-form-item>
             </a-col>
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="响应耗时(毫秒)">
-                <a-input placeholder="请输入响应耗时(毫秒)" v-model="queryParam.duration"></a-input>
+              <a-form-item label="业务响应码">
+                <j-input placeholder="请输入业务响应码" v-model="queryParam.retCode"></j-input>
               </a-form-item>
             </a-col>
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="业务响应码">
-                <a-input placeholder="请输入业务响应码" v-model="queryParam.retCode"></a-input>
+              <a-form-item label="请求内容">
+                <j-input placeholder="请输入请求内容" v-model="queryParam.requestBody"></j-input>
               </a-form-item>
             </a-col>
             <a-col :xl="12" :lg="14" :md="16" :sm="24">
-              <a-form-item label="创建日期">
-                <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
-                        class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
+              <a-form-item label="请求时间">
+                <j-date
+                  :show-time="true"
+                  date-format="YYYY-MM-DD HH:mm:ss"
+                  placeholder="请选择开始时间"
+                  class="query-group-cust"
+                  v-model="queryParam.requestTime_begin"
+                ></j-date>
                 <span class="query-group-split-cust"></span>
-                <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间"
-                        class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
+                <j-date
+                  :show-time="true"
+                  date-format="YYYY-MM-DD HH:mm:ss"
+                  placeholder="请选择结束时间"
+                  class="query-group-cust"
+                  v-model="queryParam.requestTime_end"
+                ></j-date>
               </a-form-item>
             </a-col>
           </template>
@@ -61,7 +61,7 @@
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
               <a @click="handleToggleSearch" style="margin-left: 8px">
                 {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
+                <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
               </a>
             </span>
           </a-col>
@@ -73,21 +73,14 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'apiLog:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'apiLog:export'" type="primary" icon="download" @click="handleExportXls('接口日志')">导出</a-button>
-<!--      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"-->
-<!--                @change="handleImportExcel">-->
-<!--        <a-button type="primary" icon="import">导入</a-button>-->
-<!--      </a-upload>-->
+      <a-button v-has="'apiLog:export'" type="primary" icon="download" @click="handleExportXls('接口日志')">
+        导出
+      </a-button>
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay" v-has="'apiLog:deleteBatch'">
-          <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete"/>
-            删除
-          </a-menu-item>
+          <a-menu-item key="1" @click="batchDel"> <a-icon type="delete" /> 删除 </a-menu-item>
         </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作
-          <a-icon type="down"/>
-        </a-button>
+        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /> </a-button>
       </a-dropdown>
     </div>
 
@@ -96,7 +89,7 @@
       <a-table
         ref="table"
         size="middle"
-        :scroll="{x:true}"
+        :scroll="{ x: true }"
         bordered
         rowKey="id"
         :columns="columns"
@@ -104,33 +97,12 @@
         :pagination="ipagination"
         :loading="loading"
         class="j-table-force-nowrap"
-        @change="handleTableChange">
-
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt=""
-               style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">下载
-          </a-button>
-        </template>
-
+        @change="handleTableChange"
+      >
         <span slot="action" slot-scope="text, record">
           <a v-has="'apiLog:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
           <a @click="handleDetail(record)">详情</a>
         </span>
-
       </a-table>
     </div>
 
@@ -139,12 +111,11 @@
 </template>
 
 <script>
-
 import '@/assets/less/TableExpand.less'
-import {mixinDevice} from '@/utils/mixin'
-import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import { mixinDevice } from '@/utils/mixin'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import ApiLogModal from './modules/ApiLogModal'
-import JEllipsis from "@comp/jeecg/JEllipsis"
+import JEllipsis from '@comp/jeecg/JEllipsis'
 
 export default {
   name: 'ApiLogList',
@@ -154,135 +125,139 @@ export default {
     JEllipsis
   },
   data() {
-    let ellipsis1 = (v, l = 20) => (<j-ellipsis value={v} length={l}/>)
-    let ellipsis2 = (v, l = 120) => (<j-ellipsis value={v} length={l}/>)
+    let ellipsis = (v, l = 40) => <j-ellipsis value={v} length={l} />
     return {
       description: '接口日志管理页面',
       // 表头
       columns: [
         {
           title: '接口名称',
-          align: "center",
+          align: 'center',
           dataIndex: 'apiName'
         },
         {
           title: '请求类型',
-          align: "center",
+          align: 'center',
           dataIndex: 'apiMethod'
         },
         {
-          title: '请求内容',
-          align: "left",
-          dataIndex: 'requestBody',
-          customRender: (t) => ellipsis2(t)
+          title: '请求方名称',
+          align: 'center',
+          dataIndex: 'requestFrom'
         },
         {
-          title: '响应内容',
-          align: "left",
-          dataIndex: 'responseBody',
-          customRender: (t) => ellipsis2(t)
+          title: '请求方IP',
+          align: 'center',
+          dataIndex: 'ip'
         },
         {
-          title: '请求方名称',
-          align: "center",
-          dataIndex: 'requestFrom'
+          title: '请求地址',
+          align: 'center',
+          dataIndex: 'url'
         },
         {
-          title: '响应方名称',
-          align: "center",
-          dataIndex: 'responseBy'
+          title: '请求头',
+          align: 'center',
+          dataIndex: 'requestHeader',
+          customRender: t => ellipsis(t)
         },
         {
-          title: '请求方地址',
-          align: "center",
-          dataIndex: 'ip'
+          title: '请求内容',
+          align: 'center',
+          dataIndex: 'requestBody',
+          customRender: t => ellipsis(t)
         },
         {
-          title: '请求地址',
-          align: "left",
-          dataIndex: 'url',
+          title: '响应方名称',
+          align: 'center',
+          dataIndex: 'responseBy'
+        },
+        {
+          title: '响应内容',
+          align: 'center',
+          dataIndex: 'responseBody',
+          customRender: t => ellipsis(t)
         },
         {
           title: '请求时间',
-          align: "center",
+          align: 'center',
           dataIndex: 'requestTime'
         },
         {
           title: '响应时间',
-          align: "center",
+          align: 'center',
           dataIndex: 'responseTime'
         },
         {
           title: '响应耗时(毫秒)',
-          align: "center",
+          align: 'center',
           dataIndex: 'duration'
         },
         {
-          title: 'httpCode',
-          align: "center",
+          title: 'Http Code',
+          align: 'center',
           dataIndex: 'httpCode'
         },
         {
           title: '业务响应码',
-          align: "center",
+          align: 'center',
           dataIndex: 'retCode'
         },
         {
           title: '异常堆栈信息',
-          align: "center",
-          dataIndex: 'exception'
+          align: 'center',
+          dataIndex: 'exception',
+          customRender: t => ellipsis(t)
         },
         {
           title: '操作',
           dataIndex: 'action',
-          align: "center",
-          fixed: "right",
+          align: 'center',
+          fixed: 'right',
           width: 80,
-          scopedSlots: {customRender: 'action'}
+          scopedSlots: { customRender: 'action' }
         }
       ],
       url: {
-        list: "/monitor/apiLog/list",
-        delete: "/monitor/apiLog/delete",
-        deleteBatch: "/monitor/apiLog/deleteBatch",
-        exportXlsUrl: "/monitor/apiLog/exportXls",
-        importExcelUrl: "monitor/apiLog/importExcel",
-
+        list: '/monitor/apiLog/list',
+        delete: '/monitor/apiLog/delete',
+        deleteBatch: '/monitor/apiLog/deleteBatch',
+        exportXlsUrl: '/monitor/apiLog/exportXls',
+        importExcelUrl: 'monitor/apiLog/importExcel'
       },
       dictOptions: {},
-      superFieldList: [],
+      superFieldList: []
     }
   },
   created() {
-    this.getSuperFieldList();
+    this.getSuperFieldList()
   },
   computed: {
-    importExcelUrl: function () {
-      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-    },
+    importExcelUrl: function() {
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
+    }
   },
   methods: {
-    initDictConfig() {
-    },
+    initDictConfig() {},
     getSuperFieldList() {
-      let fieldList = [];
-      fieldList.push({type: 'string', value: 'apiName', text: '接口名称', dictCode: ''})
-      fieldList.push({type: 'string', value: 'apiMethod', text: '请求类型', dictCode: ''})
-      fieldList.push({type: 'string', value: 'ip', text: '请求方地址', dictCode: ''})
-      fieldList.push({type: 'string', value: 'requestFrom', text: '请求方名称', dictCode: ''})
-      fieldList.push({type: 'string', value: 'responseBy', text: '响应方名称', dictCode: ''})
-      fieldList.push({type: 'string', value: 'url', text: '请求地址', dictCode: ''})
-      fieldList.push({type: 'datetime', value: 'requestTime', text: '请求时间'})
-      fieldList.push({type: 'datetime', value: 'responseTime', text: '响应时间'})
-      fieldList.push({type: 'Text', value: 'requestHeader', text: '请求头', dictCode: ''})
-      fieldList.push({type: 'Text', value: 'requestBody', text: '请求内容', dictCode: ''})
-      fieldList.push({type: 'Text', value: 'responseHeader', text: '响应头', dictCode: ''})
-      fieldList.push({type: 'Text', value: 'responseBody', text: '响应内容', dictCode: ''})
-      fieldList.push({type: 'string', value: 'duration', text: '响应耗时(毫秒)', dictCode: ''})
-      fieldList.push({type: 'int', value: 'httpCode', text: 'httpCode', dictCode: ''})
-      fieldList.push({type: 'int', value: 'retCode', text: '业务响应码', dictCode: ''})
-      fieldList.push({type: 'Text', value: 'exception', text: '异常堆栈信息', dictCode: ''})
-      fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})
+      let fieldList = []
+      fieldList.push({ type: 'string', value: 'apiName', text: '接口名称', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'apiMethod', text: '请求类型', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'ip', text: '请求方IP', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'requestFrom', text: '请求方名称', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'responseBy', text: '响应方名称', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'url', text: '请求地址', dictCode: '' })
+      fieldList.push({ type: 'datetime', value: 'requestTime', text: '请求时间' })
+      fieldList.push({ type: 'datetime', value: 'responseTime', text: '响应时间' })
+      fieldList.push({ type: 'Text', value: 'requestHeader', text: '请求头', dictCode: '' })
+      fieldList.push({ type: 'Text', value: 'requestBody', text: '请求内容', dictCode: '' })
+      fieldList.push({ type: 'Text', value: 'responseHeader', text: '响应头', dictCode: '' })
+      fieldList.push({ type: 'Text', value: 'responseBody', text: '响应内容', dictCode: '' })
+      fieldList.push({ type: 'string', value: 'duration', text: '响应耗时(毫秒)', dictCode: '' })
+      fieldList.push({ type: 'int', value: 'httpCode', text: 'httpCode', dictCode: '' })
+      fieldList.push({ type: 'int', value: 'retCode', text: '业务响应码', dictCode: '' })
+      fieldList.push({ type: 'Text', value: 'exception', text: '异常堆栈信息', dictCode: '' })
+      fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
       this.superFieldList = fieldList
     }
   }
diff --git a/ant-design-vue-jeecg/src/views/system/monitor/OperationLog.vue b/ant-design-vue-jeecg/src/views/system/monitor/OperationLog.vue
index f7c4405..ebca003 100644
--- a/ant-design-vue-jeecg/src/views/system/monitor/OperationLog.vue
+++ b/ant-design-vue-jeecg/src/views/system/monitor/OperationLog.vue
@@ -11,7 +11,7 @@
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="业务类型">
-              <j-dict-select-tag placeholder="请选择业务类型" v-model="queryParam.bizType" dictCode="operation_log_type"/>
+              <j-input placeholder="请选择业务类型" v-model="queryParam.bizType" />
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
diff --git a/ant-design-vue-jeecg/src/views/system/monitor/locationStatus.vue b/ant-design-vue-jeecg/src/views/system/monitor/locationStatus.vue
index dc41fa2..646ed41 100644
--- a/ant-design-vue-jeecg/src/views/system/monitor/locationStatus.vue
+++ b/ant-design-vue-jeecg/src/views/system/monitor/locationStatus.vue
@@ -18,8 +18,7 @@
                 </a-select>
               </li>
               <li>第
-                <select id="editable-num" name="num" style="width: 70px">
-                </select>
+                <select id="editable-num" name="num" style="width: 70px" />
               </li>
               <li>
                 <select id="editable-select" name="col" @click="show" style="width: 70px">
@@ -39,43 +38,20 @@
         <form id="receiptHeader-form">
           <div class="select-list">
             <ul id="img_list" style="">
+              <li>空柜空闲:<img src="~@/assets/icon/grid_rest.png"></li>
+              <li>空盘空闲:<img src="~@/assets/icon/grid_empty.png"></li>
+              <li>半盘空闲:<img src="~@/assets/icon/grid_half.png"></li>
+              <li>整盘空闲:<img src="~@/assets/icon/grid_all.png"></li>
+              <li>空柜锁定:<img src="~@/assets/icon/grid_emp_lock.png"></li>
+              <li>空盘锁定:<img src="~@/assets/icon/grid_empty_lock.png"></li>
+              <li>半盘锁定:<img src="~@/assets/icon/grid_half_lock.png"></li>
+              <li>整盘锁定:<img src="~@/assets/icon/grid_all_lock.png"></li>
+              <li>空柜禁用:<img src="~@/assets/icon/grid_emp_waing.png"></li>
+              <li>空盘禁用:<img src="~@/assets/icon/grid_empty_waring.png"></li>
+              <li>半盘禁用:<img src="~@/assets/icon/grid_half_waring.png"></li>
+              <li>整盘禁用:<img src="~@/assets/icon/ContainerDisabled.png"></li>
               <li>
-                空柜空闲:<img src="~@/assets/icon/空柜空闲.png">
-              </li>
-              <li>
-                空盘空闲:<img src="~@/assets/icon/空盘空闲.png">
-              </li>
-              <li>
-                半盘空闲:<img src="~@/assets/icon/半盘空闲.png">
-              </li>
-              <li>
-                整盘空闲:<img src="~@/assets/icon/整盘空闲.png">
-              </li>
-              <li>
-                空柜锁定:<img src="~@/assets/icon/空柜锁定.png">
-              </li>
-              <li>
-                空盘锁定:<img src="~@/assets/icon/空盘锁定.png">
-              </li>
-              <li>
-                半盘锁定:<img src="~@/assets/icon/半盘锁定.png">
-              </li>
-              <li>
-                整盘锁定:<img src="~@/assets/icon/整盘锁定.png">
-              </li>
-              <li>
-                空柜禁用:<img src="~@/assets/icon/空柜禁用.png">
-              </li>
-              <li>
-                空盘禁用:<img src="~@/assets/icon/空盘禁用.png">
-              </li>
-              <li>
-                半盘禁用:<img src="~@/assets/icon/半盘禁用.png">
-              </li>
-              <li>
-                整盘禁用:<img src="~@/assets/icon/整盘禁用.png">
-              </li>
-              <li><span style="font-size: 12px">库位统计情况:</span>
+                <span style="font-size: 12px">库位统计情况:</span>
                 <input style="width: 400px;  font-size: 12px" type="text" id="zone" disabled/>
               </li>
             </ul>
@@ -83,7 +59,7 @@
             <ul id="info_list">
               <li><span>库位:</span><input type="text" id="code" disabled/></li>
               <li><span>容器编码:</span><input type="text" id="containerCode" disabled/></li>
-              <li><span>物料信息:<select id="material" style="width: auto;"><option>无</option></select></span></li>
+              <li><span>物料信息:<select id="material" style="width: auto"><option>无</option></select></span></li>
             </ul>
           </div>
         </form>
@@ -128,19 +104,19 @@ var currentMaterialCode = 0;
 
 import huahengUI from '../../../assets/css/huahengUI.css'
 import $ from '../../../assets/js/jquery-1.11.1.min'
-import grid_rest from '@/assets/icon/空柜空闲.png'
-import grid_empty from '@/assets/icon/空盘空闲.png'
-import grid_half from '@/assets/icon/半盘空闲.png'
-import grid_all from '@/assets/icon/整盘空闲.png'
-import grid_emp_waing from '@/assets/icon/空柜禁用.png'
-import grid_empty_waring from '@/assets/icon/空盘禁用.png'
-import grid_half_waring from '@/assets/icon/半盘禁用.png'
-import grid_all_waring from '@/assets/icon/整盘禁用.png'
-import grid_emp_lock from '@/assets/icon/空柜锁定.png'
-import grid_empty_lock from '@/assets/icon/空盘锁定.png'
-import grid_half_lock from '@/assets/icon/半盘锁定.png'
-import grid_all_lock from '@/assets/icon/整盘锁定.png'
-import rel_empty from '@/assets/icon/空.png'
+import grid_rest from '@/assets/icon/grid_rest.png'
+import grid_empty from '@/assets/icon/grid_empty.png'
+import grid_half from '@/assets/icon/grid_half.png'
+import grid_all from '@/assets/icon/grid_all.png'
+import grid_emp_waing from '@/assets/icon/grid_emp_waing.png'
+import grid_empty_waring from '@/assets/icon/grid_empty_waring.png'
+import grid_half_waring from '@/assets/icon/grid_half_waring.png'
+import grid_all_waring from '@/assets/icon/ContainerDisabled.png'
+import grid_emp_lock from '@/assets/icon/grid_emp_lock.png'
+import grid_empty_lock from '@/assets/icon/grid_empty_lock.png'
+import grid_half_lock from '@/assets/icon/grid_half_lock.png'
+import grid_all_lock from '@/assets/icon/grid_all_lock.png'
+import rel_empty from '@/assets/icon/rel_empty.png'
 import Vue from 'vue'
 import {ACCESS_TOKEN} from "@/store/mutation-types"
 import {getZoneList} from '@/api/api'
diff --git a/ant-design-vue-jeecg/src/views/system/monitor/modules/ApiLogForm.vue b/ant-design-vue-jeecg/src/views/system/monitor/modules/ApiLogForm.vue
index 3420e99..2366ead 100644
--- a/ant-design-vue-jeecg/src/views/system/monitor/modules/ApiLogForm.vue
+++ b/ant-design-vue-jeecg/src/views/system/monitor/modules/ApiLogForm.vue
@@ -14,13 +14,23 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
-            <a-form-model-item label="请求方地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ip">
-              <a-input v-model="model.ip" placeholder="请输入请求方地址"></a-input>
+            <a-form-model-item label="请求方名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="requestFrom">
+              <a-input v-model="model.requestFrom" placeholder="请输入请求方名称"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
-            <a-form-model-item label="请求方名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="responseFrom">
-              <a-input v-model="model.responseFrom" placeholder="请输入请求方名称"></a-input>
+            <a-form-model-item label="请求方IP" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ip">
+              <a-input v-model="model.ip" placeholder="请输入请求方IP"></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="请求地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="url">
+              <a-input v-model="model.url" placeholder="请输入请求地址"></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="请求内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="requestBody">
+              <a-input v-model="model.requestBody" placeholder="请输入请求内容"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
@@ -29,8 +39,8 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
-            <a-form-model-item label="请求地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="url">
-              <a-input v-model="model.url" placeholder="请输入请求地址"></a-input>
+            <a-form-model-item label="响应内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="responseBody">
+              <a-input v-model="model.responseBody" placeholder="请输入响应内容"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
@@ -46,16 +56,6 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
-            <a-form-model-item label="请求内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="requestBody">
-              <a-input v-model="model.requestBody" placeholder="请输入请求内容"></a-input>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="24">
-            <a-form-model-item label="响应内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="responseBody">
-              <a-input v-model="model.responseBody" placeholder="请输入响应内容"></a-input>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="24">
             <a-form-model-item label="响应耗时(毫秒)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="duration">
               <a-input v-model="model.duration" placeholder="请输入响应耗时(毫秒)"></a-input>
             </a-form-model-item>
diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
index 0c775fd..3ea9dfa 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
@@ -5,8 +5,8 @@
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="容器号">
-              <a-input placeholder="请输入容器号" v-model="queryParam.containerCode"></a-input>
+            <a-form-item label="容器编码">
+              <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -166,7 +166,7 @@ export default {
           dataIndex: 'id'
         },
         {
-          title: '容器号',
+          title: '容器编码',
           align: "center",
           dataIndex: 'containerCode'
         },
@@ -334,7 +334,7 @@ export default {
     },
     getSuperFieldList() {
       let fieldList = [];
-      fieldList.push({type: 'string', value: 'containerCode', text: '容器号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})
       fieldList.push({type: 'int', value: 'taskType', text: '任务类型', dictCode: 'receipt_task_type'})
       fieldList.push({type: 'int', value: 'status', text: '状态', dictCode: 'receipt_container_status'})
       fieldList.push({type: 'string', value: 'fromLocationCode', text: '起始库位', dictCode: ''})
diff --git a/ant-design-vue-jeecg/src/views/system/receipt/modules/ReceiptContainerHeaderModal.vue b/ant-design-vue-jeecg/src/views/system/receipt/modules/ReceiptContainerHeaderModal.vue
index 124380c..becaeb0 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/modules/ReceiptContainerHeaderModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/modules/ReceiptContainerHeaderModal.vue
@@ -12,8 +12,8 @@
       <a-form-model ref="form" :model="model" :rules="validatorRules">
         <a-row>
           <a-col :span="24">
-            <a-form-model-item label="容器号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
-              <a-input v-model="model.containerCode" placeholder="请输入容器号"></a-input>
+            <a-form-model-item label="容器编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
+              <a-input v-model="model.containerCode" placeholder="请输入容器编码"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
diff --git a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
index f353e1a..1cca438 100644
--- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
@@ -5,8 +5,8 @@
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="容器号">
-              <a-input placeholder="请输入容器号" v-model="queryParam.containerCode"></a-input>
+            <a-form-item label="容器编码">
+              <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -168,7 +168,7 @@ export default {
       // 表头
       columns: [
         {
-          title: '容器号',
+          title: '容器编码',
           align: "center",
           dataIndex: 'containerCode'
         },
@@ -312,7 +312,7 @@ export default {
     },
     getSuperFieldList() {
       let fieldList = [];
-      fieldList.push({type: 'string', value: 'containerCode', text: '容器号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})
       fieldList.push({type: 'int', value: 'taskType', text: '任务类型', dictCode: 'shipment_task_type'})
       fieldList.push({type: 'int', value: 'status', text: '状态', dictCode: 'shipment_container_status'})
       fieldList.push({type: 'string', value: 'fromLocationCode', text: '起始库位', dictCode: ''})
diff --git a/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentContainerHeaderModal.vue b/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentContainerHeaderModal.vue
index 0716e57..5fc4719 100644
--- a/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentContainerHeaderModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentContainerHeaderModal.vue
@@ -12,8 +12,8 @@
       <a-form-model ref="form" :model="model" :rules="validatorRules">
         <a-row>
           <a-col :span="24">
-            <a-form-model-item label="容器号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
-              <a-input v-model="model.containerCode" placeholder="请输入容器号"></a-input>
+            <a-form-model-item label="容器编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
+              <a-input v-model="model.containerCode" placeholder="请输入容器编码"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
diff --git a/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
index 7413773..2d23c43 100644
--- a/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
@@ -10,8 +10,8 @@
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="容器号">
-              <a-input placeholder="请输入容器号" v-model="queryParam.containerCode"></a-input>
+            <a-form-item label="容器编码">
+              <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
             </a-form-item>
           </a-col>
           <template v-if="toggleSearchStatus">
@@ -211,7 +211,7 @@ export default {
           customFilterDropdown: true,
         },
         {
-          title: '容器号',
+          title: '容器编码',
           align: "center",
           dataIndex: 'containerCode'
         },
@@ -411,7 +411,7 @@ export default {
     getSuperFieldList() {
       let fieldList = [];
       fieldList.push({type: 'int', value: 'taskType', text: '任务类型', dictCode: 'task_type'})
-      fieldList.push({type: 'string', value: 'containerCode', text: '容器号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})
       fieldList.push({type: 'string', value: 'fromLocationCode', text: '起始库位', dictCode: ''})
       fieldList.push({type: 'string', value: 'toLocationCode', text: '目标库位', dictCode: ''})
       fieldList.push({type: 'string', value: 'isEmptyOut', text: '是否空出', dictCode: 'is_or_not'})
diff --git a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
index e919aad..585fcb1 100644
--- a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
@@ -10,8 +10,8 @@
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="容器号">
-              <a-input placeholder="请输入容器号" v-model="queryParam.containerCode"></a-input>
+            <a-form-item label="容器编码">
+              <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
             </a-form-item>
           </a-col>
           <template v-if="toggleSearchStatus">
@@ -205,7 +205,7 @@ export default {
           dataIndex: 'taskType_dictText',
         },
         {
-          title: '容器号',
+          title: '容器编码',
           align: "center",
           dataIndex: 'containerCode'
         },
@@ -448,7 +448,7 @@ export default {
     getSuperFieldList() {
       let fieldList = [];
       fieldList.push({type: 'int', value: 'taskType', text: '任务类型', dictCode: 'task_type'})
-      fieldList.push({type: 'string', value: 'containerCode', text: '容器号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})
       fieldList.push({type: 'string', value: 'fromLocationCode', text: '起始库位', dictCode: ''})
       fieldList.push({type: 'string', value: 'toLocationCode', text: '目标库位', dictCode: ''})
       fieldList.push({type: 'string', value: 'isEmptyOut', text: '是否空出', dictCode: 'is_or_not'})
diff --git a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
index 9780144..88b40e6 100644
--- a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
@@ -10,8 +10,8 @@
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="容器号">
-              <a-input placeholder="请输入容器号" v-model="queryParam.containerCode"></a-input>
+            <a-form-item label="容器编码">
+              <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
             </a-form-item>
           </a-col>
           <template v-if="toggleSearchStatus">
@@ -207,7 +207,7 @@ export default {
           dataIndex: 'taskType_dictText',
         },
         {
-          title: '容器号',
+          title: '容器编码',
           align: "center",
           dataIndex: 'containerCode'
         },
@@ -449,7 +449,7 @@ export default {
     getSuperFieldList() {
       let fieldList = [];
       fieldList.push({type: 'int', value: 'taskType', text: '任务类型', dictCode: 'task_type'})
-      fieldList.push({type: 'string', value: 'containerCode', text: '容器号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})
       fieldList.push({type: 'string', value: 'fromLocationCode', text: '起始库位', dictCode: ''})
       fieldList.push({type: 'string', value: 'toLocationCode', text: '目标库位', dictCode: ''})
       fieldList.push({type: 'string', value: 'isEmptyOut', text: '是否空出', dictCode: 'is_or_not'})
diff --git a/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
index 3d508a4..eec6bed 100644
--- a/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
@@ -10,8 +10,8 @@
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="容器号">
-              <a-input placeholder="请输入容器号" v-model="queryParam.containerCode"></a-input>
+            <a-form-item label="容器编码">
+              <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
             </a-form-item>
           </a-col>
           <template v-if="toggleSearchStatus">
@@ -212,7 +212,7 @@ export default {
           dataIndex: 'taskType_dictText',
         },
         {
-          title: '容器号',
+          title: '容器编码',
           align: "center",
           dataIndex: 'containerCode'
         },
@@ -459,7 +459,7 @@ export default {
     getSuperFieldList() {
       let fieldList = [];
       fieldList.push({type: 'int', value: 'taskType', text: '任务类型', dictCode: 'task_type'})
-      fieldList.push({type: 'string', value: 'containerCode', text: '容器号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})
       fieldList.push({type: 'string', value: 'fromLocationCode', text: '起始库位', dictCode: ''})
       fieldList.push({type: 'string', value: 'toLocationCode', text: '目标库位', dictCode: ''})
       fieldList.push({type: 'string', value: 'isEmptyOut', text: '是否空出', dictCode: 'is_or_not'})
diff --git a/ant-design-vue-jeecg/src/views/system/task/modules/EmptyInTaskModal.vue b/ant-design-vue-jeecg/src/views/system/task/modules/EmptyInTaskModal.vue
index 9dd27a2..b48b657 100644
--- a/ant-design-vue-jeecg/src/views/system/task/modules/EmptyInTaskModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/modules/EmptyInTaskModal.vue
@@ -12,8 +12,8 @@
       <a-form-model ref="form" :model="model" :rules="validatorRules">
         <a-row>
           <a-col :span="24">
-            <a-form-model-item label="容器号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
-              <a-input v-model="model.containerCode" placeholder="请输入容器号"></a-input>
+            <a-form-model-item label="容器编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
+              <a-input v-model="model.containerCode" placeholder="请输入容器编码"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
diff --git a/ant-design-vue-jeecg/src/views/system/task/modules/ManyEmptyInTaskModal.vue b/ant-design-vue-jeecg/src/views/system/task/modules/ManyEmptyInTaskModal.vue
index 393baf2..bd7c5ea 100644
--- a/ant-design-vue-jeecg/src/views/system/task/modules/ManyEmptyInTaskModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/modules/ManyEmptyInTaskModal.vue
@@ -12,8 +12,8 @@
       <a-form-model ref="form" :model="model" :rules="validatorRules">
         <a-row>
           <a-col :span="24">
-            <a-form-model-item label="容器号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
-              <a-input v-model="model.containerCode" placeholder="请输入容器号"></a-input>
+            <a-form-model-item label="容器编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
+              <a-input v-model="model.containerCode" placeholder="请输入容器编码"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
diff --git a/ant-design-vue-jeecg/src/views/system/task/modules/TaskHeaderModal.vue b/ant-design-vue-jeecg/src/views/system/task/modules/TaskHeaderModal.vue
index b14bb72..1497cec 100644
--- a/ant-design-vue-jeecg/src/views/system/task/modules/TaskHeaderModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/modules/TaskHeaderModal.vue
@@ -17,8 +17,8 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
-            <a-form-model-item label="容器号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
-              <a-input v-model="model.containerCode" placeholder="请输入容器号"></a-input>
+            <a-form-model-item label="容器编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerCode">
+              <a-input v-model="model.containerCode" placeholder="请输入容器编码"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/entity/MesReceiptMaterial.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/entity/MesReceiptMaterial.java
index 68e45e1..365fd9c 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/entity/MesReceiptMaterial.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/entity/MesReceiptMaterial.java
@@ -17,9 +17,9 @@ public class MesReceiptMaterial {
     @ApiModelProperty(value = "上游单号", required = true)
     private String referCode;
     /**
-     * 容器号
+     * 容器编码
      */
-    @ApiModelProperty(value = "容器号", required = true)
+    @ApiModelProperty(value = "容器编码", required = true)
     private String containerCode;
     /**
      * 仓库编码
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java
index 67ebc44..25178c3 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mes/servuce/impl/MesServiceImpl.java
@@ -91,7 +91,7 @@ public class MesServiceImpl implements IMesService {
         String warehouseCode = mesReceiptMaterial.getWarehouseCode();
         String toPort = mesReceiptMaterial.getToPort();
         if (StringUtils.isEmpty(containerCode)) {
-            return Result.error("MES下发入库信息,容器号为空");
+            return Result.error("MES下发入库信息,容器编码为空");
         }
         if (StringUtils.isEmpty(warehouseCode)) {
             return Result.error("MES下发入库信息,仓库编码为空");
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/address/entity/Address.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/address/entity/Address.java
index 450ae10..23ba321 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/address/entity/Address.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/address/entity/Address.java
@@ -49,9 +49,9 @@ public class Address implements Serializable {
     @Excel(name = "接口地址", width = 15)
     @ApiModelProperty(value = "接口地址")
     private String url;
-    /** 备注 */
-    @Excel(name = "备注", width = 15)
-    @ApiModelProperty(value = "备注")
+    /** 接口名称 */
+    @Excel(name = "接口名称", width = 15)
+    @ApiModelProperty(value = "接口名称")
     private String remark;
     /** 备用字段1 */
     @Excel(name = "备用字段1", width = 15)
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
index acb9d5d..824658f 100644
--- 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
@@ -21,6 +21,7 @@ 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.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -56,10 +57,15 @@ public class LocationMonitorController {
         HuahengJwtUtil.setWarehouseCode(queryWrapper, Location.class, req);
         queryWrapper.select(Location::getCode, Location::getStatus, Location::getContainerCode).eq(Location::getZoneCode, zoneCode);
         List<Location> locationList = locationService.list(queryWrapper);
-        List<String> locationCodeList = locationList.stream().map(Location::getCode).collect(Collectors.toList());
-
         HashMap<String, Integer> map = new HashMap<>();
         map.put("location", locationList.size());
+        if (CollectionUtils.isEmpty(locationList)) {
+            map.put("emptyLocation", 0);
+            map.put("haveContainLocation", 0);
+            map.put("haveInventoryLocation", 0);
+            return Result.ok(map);
+        }
+        List<String> locationCodeList = locationList.stream().map(Location::getCode).collect(Collectors.toList());
         // 换stream进行数据拣选速度更快
         List<Location> emptyLocationList =
             locationList.stream().filter(t -> QuantityConstant.STATUS_LOCATION_EMPTY.equals(t.getStatus())).collect(Collectors.toList());
@@ -69,19 +75,16 @@ public class LocationMonitorController {
         HuahengJwtUtil.setWarehouseCode(containerLambdaQueryWrapper, Container.class, req);
         containerLambdaQueryWrapper.select(Container::getCode, Container::getStatus, Container::getFillStatus).in(Container::getLocationCode, locationCodeList);
         List<Container> containerList = containerService.list(containerLambdaQueryWrapper);
-
         List<String> containerCodeList = containerList.stream()
             .filter(
                 t -> QuantityConstant.STATUS_CONTAINER_FILL_EMPTY.equals(t.getFillStatus()) || QuantityConstant.STATUS_CONTAINER_FILL_MANY.equals(t.getFillStatus()))
             .map(Container::getCode).collect(Collectors.toList());
         List<Location> haveEmptyContainLocation = locationList.stream().filter(t -> containerCodeList.contains(t.getContainerCode())).collect(Collectors.toList());
         map.put("haveContainLocation", haveEmptyContainLocation.size());
-
         List<String> containerCodeList1 = containerList.stream()
             .filter(
                 t -> QuantityConstant.STATUS_CONTAINER_FILL_SOME.equals(t.getFillStatus()) || QuantityConstant.STATUS_CONTAINER_FILL_FULL.equals(t.getFillStatus()))
             .map(Container::getCode).collect(Collectors.toList());
-
         List<Location> haveInventoryLocationList = locationList.stream().filter(t -> containerCodeList1.contains(t.getContainerCode())).collect(Collectors.toList());
         map.put("haveInventoryLocation", haveInventoryLocationList.size());
         return Result.ok(map);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/controller/HomePageViewController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/controller/HomePageViewController.java
index 351e641..7dd1660 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/controller/HomePageViewController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/controller/HomePageViewController.java
@@ -42,8 +42,11 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
 import java.math.BigDecimal;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
 import java.util.stream.Collectors;
 
 /**
@@ -62,9 +65,13 @@ public class HomePageViewController {
     /**
      * 库存概况
      * @return
+     * @throws TimeoutException 
+     * @throws ExecutionException 
+     * @throws InterruptedException 
+     * @throws ParseException 
      */
     @RequestMapping(value = "/deliveringAmount", method = {RequestMethod.PUT, RequestMethod.POST})
-    public Result<String> deliveringAmount(HttpServletRequest request) {
+    public Result<String> deliveringAmount(HttpServletRequest request) throws ParseException, InterruptedException, ExecutionException, TimeoutException {
         return homePageViewService.deliveringAmount(request);
     }
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/service/HomePageViewService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/service/HomePageViewService.java
index 8df8037..0b1abab 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/service/HomePageViewService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/service/HomePageViewService.java
@@ -6,7 +6,10 @@ import org.jeecg.modules.wms.config.location.entity.Location;
 import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader;
 
 import java.io.Serializable;
+import java.text.ParseException;
 import java.util.Collection;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -18,7 +21,7 @@ import javax.servlet.http.HttpServletRequest;
  */
 public interface HomePageViewService {
 
-    Result<String> deliveringAmount(HttpServletRequest request);
+    Result<String> deliveringAmount(HttpServletRequest request) throws ParseException, InterruptedException, ExecutionException, TimeoutException;
 
     Result<String> inventoryUtilization(HttpServletRequest request);
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/service/impl/HomePageViewServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/service/impl/HomePageViewServiceImpl.java
index dd06d04..94e1653 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/service/impl/HomePageViewServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/home/service/impl/HomePageViewServiceImpl.java
@@ -1,54 +1,67 @@
 package org.jeecg.modules.wms.home.service.impl;
 
-import cn.hutool.core.util.ArrayUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.github.abel533.echarts.Option;
-import com.github.abel533.echarts.axis.Axis;
-import com.github.abel533.echarts.axis.CategoryAxis;
-import com.github.abel533.echarts.axis.ValueAxis;
-import com.github.abel533.echarts.code.*;
-import com.github.abel533.echarts.json.GsonUtil;
-import com.github.abel533.echarts.series.Line;
-import com.github.abel533.echarts.series.Pie;
-import com.github.abel533.echarts.style.itemstyle.Normal;
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.system.entity.SysDictItem;
 import org.jeecg.modules.system.service.impl.SysDictItemServiceImpl;
 import org.jeecg.modules.wms.config.location.entity.Location;
 import org.jeecg.modules.wms.config.location.service.impl.LocationServiceImpl;
 import org.jeecg.modules.wms.home.service.HomePageViewService;
-
 import org.jeecg.modules.wms.home.support.ChartData;
 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.impl.InventoryDetailServiceImpl;
 import org.jeecg.modules.wms.inventory.inventoryHeader.service.impl.InventoryHeaderServiceImpl;
 import org.jeecg.modules.wms.inventory.inventoryTransaction.entity.InventoryTransaction;
-import org.jeecg.modules.wms.inventory.inventoryTransaction.service.impl.InventoryTransactionServiceImpl;
-import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
+import org.jeecg.modules.wms.inventory.inventoryTransaction.service.IInventoryTransactionService;
 import org.jeecg.modules.wms.receipt.receiptHeader.service.impl.ReceiptHeaderServiceImpl;
-import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentHeader;
 import org.jeecg.modules.wms.shipment.shipmentHeader.service.impl.ShipmentHeaderServiceImpl;
-import org.jeecg.modules.wms.task.taskHeader.entity.TaskDetail;
 import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader;
 import org.jeecg.modules.wms.task.taskHeader.service.impl.TaskDetailServiceImpl;
 import org.jeecg.modules.wms.task.taskHeader.service.impl.TaskHeaderServiceImpl;
 import org.jeecg.utils.HuahengJwtUtil;
-import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
 import org.jeecg.utils.support.Convert;
+import org.jeecg.utils.support.SystemSync;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.abel533.echarts.Option;
+import com.github.abel533.echarts.axis.Axis;
+import com.github.abel533.echarts.axis.CategoryAxis;
+import com.github.abel533.echarts.axis.ValueAxis;
+import com.github.abel533.echarts.code.LegendType;
+import com.github.abel533.echarts.code.Orient;
+import com.github.abel533.echarts.code.PointerType;
+import com.github.abel533.echarts.code.SeriesType;
+import com.github.abel533.echarts.code.Trigger;
+import com.github.abel533.echarts.json.GsonUtil;
+import com.github.abel533.echarts.series.Line;
+import com.github.abel533.echarts.series.Pie;
+import com.github.abel533.echarts.style.itemstyle.Normal;
 
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.stream.Collectors;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ArrayUtil;
 
 /**
  * @Description: 任务表
@@ -87,60 +100,26 @@ public class HomePageViewServiceImpl implements HomePageViewService {
     HomePageViewService homePageViewService;
 
     @Resource
-    InventoryTransactionServiceImpl inventoryTransactionServiceImpl;
+    IInventoryTransactionService inventoryTransactionService;
+    
+    @Resource
+    SystemSync systemSync;
 
     @Override
-    public Result<String> deliveringAmount(HttpServletRequest request) {
-        // 通过库存交易记录来查询
-        LambdaQueryWrapper<InventoryTransaction> inventoryTransactionLambdaQueryWrapper = Wrappers.lambdaQuery();
-        HuahengJwtUtil.setWarehouseCode(inventoryTransactionLambdaQueryWrapper, InventoryTransaction.class, request);
-        inventoryTransactionLambdaQueryWrapper.select(InventoryTransaction::getCreateTime, InventoryTransaction::getQty, InventoryTransaction::getType);
-        List<InventoryTransaction> inventoryTransactions = inventoryTransactionServiceImpl.list(inventoryTransactionLambdaQueryWrapper);
-
-        // 查询出库单的7天出库量
-        List<InventoryTransaction> shipmentHeaders = new ArrayList<>();
-        shipmentHeaders.addAll(inventoryTransactions);
-        shipmentHeaders.removeIf(Inventory -> Inventory.getType() != 20);
-        LinkedHashMap<String, String> list = new LinkedHashMap<>();
-
-        for (int i = 6; i >= 0; i--) {
-            String today = new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis() - (1000 * 60 * 60 * 24) * i).toString();
-            List<InventoryTransaction> collect = shipmentHeaders.stream()
-                .filter(shipmentHeader -> new SimpleDateFormat("yyyy-MM-dd").format(shipmentHeader.getCreateTime()).toString().contains(today))
-                .collect(Collectors.toList());
-            if (collect.size() != 0) {
-                BigDecimal sum = new BigDecimal(0);
-                for (InventoryTransaction item : collect) {
-                    sum = sum.add(item.getQty());
-                }
-                list.put(today, String.valueOf(sum));
-            } else {
-                list.put(today, "0");
-            }
-        }
-
-        // 查询入库单的7天入库量
-        List<InventoryTransaction> receiptHeaders = new ArrayList<>();
-        receiptHeaders.addAll(inventoryTransactions);
-        receiptHeaders.removeIf(Inventory -> Inventory.getType() != 10);
-        LinkedHashMap<String, String> list2 = new LinkedHashMap<>();
+    public Result<String> deliveringAmount(HttpServletRequest request) throws ParseException, InterruptedException, ExecutionException, TimeoutException {
+        Long dateTime = new Date().getTime();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        LinkedHashMap<String, Future<BigDecimal>> shipmentQuantityMap = new LinkedHashMap<String, Future<BigDecimal>>();
+        LinkedHashMap<String, Future<BigDecimal>> receiptQuantityMap = new LinkedHashMap<String, Future<BigDecimal>>();
+        // 查询出库单的7天出库量/入库量
         for (int i = 6; i >= 0; i--) {
-            List<InventoryTransaction> receiptHeadersCop = receiptHeaders;
-            String today = new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis() - (1000 * 60 * 60 * 24) * i).toString();
-            List<InventoryTransaction> collect = receiptHeadersCop.stream()
-                .filter(ReceiptHeader -> new SimpleDateFormat("yyyy-MM-dd").format(ReceiptHeader.getCreateTime()).toString().contains(today))
-                .collect(Collectors.toList());
-            if (collect.size() != 0) {
-                BigDecimal sum = new BigDecimal(0);
-                for (InventoryTransaction item : collect) {
-                    sum = sum.add(item.getQty());
-                }
-                list2.put(today, String.valueOf(sum));
-            } else {
-                list2.put(today, "0");
-            }
+            String startTime = simpleDateFormat.format(dateTime - (1000 * 60 * 60 * 24) * i);
+            String endTime = simpleDateFormat.format(DateUtil.offsetDay(simpleDateFormat.parse(startTime), 1));
+            shipmentQuantityMap.put(startTime,
+                systemSync.asyncCalculateInventory(startTime, endTime, QuantityConstant.INVENTORY_TRANSACTION_SHIPMENT));
+            receiptQuantityMap.put(startTime,
+                systemSync.asyncCalculateInventory(startTime, endTime, QuantityConstant.INVENTORY_TRANSACTION_RECEIPT));
         }
-
         Option option = new Option();
         option.tooltip().trigger(Trigger.axis).axisPointer().type(PointerType.cross);
         option.grid().setLeft("3%");
@@ -158,17 +137,17 @@ public class HomePageViewServiceImpl implements HomePageViewService {
         axis.boundaryGap(false);
         Line line = new Line();
         line.setName("发货量");
-        for (String key : list.keySet()) {
+        for (String key : shipmentQuantityMap.keySet()) {
             Object o1 = key;
-            Object o2 = list.get(key);
+            Object o2 = shipmentQuantityMap.get(key).get(10000, TimeUnit.MILLISECONDS);
             axis.data().add(o1);
             line.data().add(o2);
         }
         Line line2 = new Line();
         line2.setName("收货量");
-        for (String key : list2.keySet()) {
+        for (String key : receiptQuantityMap.keySet()) {
             Object o1 = key;
-            Object o2 = list2.get(key);
+            Object o2 = receiptQuantityMap.get(key).get(10000, TimeUnit.MILLISECONDS);
             line2.data().add(o2);
         }
         option.setxAxis(Arrays.asList(axis));
@@ -346,7 +325,7 @@ public class HomePageViewServiceImpl implements HomePageViewService {
         LambdaQueryWrapper<InventoryTransaction> inventoryTransactionLambdaQueryWrapper = Wrappers.lambdaQuery();
         HuahengJwtUtil.setWarehouseCode(inventoryTransactionLambdaQueryWrapper, InventoryTransaction.class, request);
         inventoryTransactionLambdaQueryWrapper.select(InventoryTransaction::getType, InventoryTransaction::getQty).gt(InventoryTransaction::getCreateTime, today);
-        List<InventoryTransaction> inventoryTransactions = inventoryTransactionServiceImpl.list(inventoryTransactionLambdaQueryWrapper);
+        List<InventoryTransaction> inventoryTransactions = inventoryTransactionService.list(inventoryTransactionLambdaQueryWrapper);
         BigDecimal receiptQty = BigDecimal.ZERO;
         BigDecimal shipmentQty = BigDecimal.ZERO;
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java
index 84e4ba0..c202269 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java
@@ -42,9 +42,9 @@ public class InventoryHeader implements Serializable {
     @Excel(name = "库区", width = 15)
     @ApiModelProperty(value = "库区")
     private String zoneCode;
-    /** 容器号 */
-    @Excel(name = "容器号", width = 15)
-    @ApiModelProperty(value = "容器号")
+    /** 容器编码 */
+    @Excel(name = "容器编码", width = 15)
+    @ApiModelProperty(value = "容器编码")
     private String containerCode;
     /** 容器状态 */
     @Excel(name = "容器状态", width = 15, dicCode = "container_status")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/service/IInventoryTransactionService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/service/IInventoryTransactionService.java
index dfa1175..dcf393b 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/service/IInventoryTransactionService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/service/IInventoryTransactionService.java
@@ -3,7 +3,10 @@ package org.jeecg.modules.wms.inventory.inventoryTransaction.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.wms.inventory.inventoryTransaction.entity.InventoryTransaction;
 
+import java.math.BigDecimal;
+import java.text.ParseException;
 import java.util.List;
+import java.util.concurrent.Future;
 
 /**
  * @Description: 库存交易记录
@@ -14,5 +17,5 @@ import java.util.List;
 public interface IInventoryTransactionService extends IService<InventoryTransaction> {
 
     boolean batchSave(List<InventoryTransaction> inventoryTransactionList);
-    
+
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/service/impl/InventoryTransactionServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/service/impl/InventoryTransactionServiceImpl.java
index f4e0f28..835528a 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/service/impl/InventoryTransactionServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/service/impl/InventoryTransactionServiceImpl.java
@@ -3,11 +3,18 @@ package org.jeecg.modules.wms.inventory.inventoryTransaction.service.impl;
 import org.jeecg.modules.wms.inventory.inventoryTransaction.entity.InventoryTransaction;
 import org.jeecg.modules.wms.inventory.inventoryTransaction.mapper.InventoryTransactionMapper;
 import org.jeecg.modules.wms.inventory.inventoryTransaction.service.IInventoryTransactionService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.AsyncResult;
 import org.springframework.stereotype.Service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.math.BigDecimal;
+import java.text.ParseException;
 import java.util.List;
+import java.util.concurrent.Future;
 
 /**
  * @Description: 库存交易记录
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
index 81af760..e60b1af 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
@@ -39,9 +39,9 @@ public class ReceiptContainerDetail implements Serializable {
     /** 入库单详情ID */
     @ApiModelProperty(value = "入库单详情ID")
     private Integer receiptDetailId;
-    /** 容器号 */
-    @Excel(name = "容器号", width = 15)
-    @ApiModelProperty(value = "容器号")
+    /** 容器编码 */
+    @Excel(name = "容器编码", width = 15)
+    @ApiModelProperty(value = "容器编码")
     private String containerCode;
     /** 入库单编码 */
     @ApiModelProperty(value = "入库单编码")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerHeader.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerHeader.java
index b5267ce..f615a95 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerHeader.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerHeader.java
@@ -39,9 +39,9 @@ public class ReceiptContainerHeader implements Serializable {
     @Excel(name = "货主", width = 15)
     @ApiModelProperty(value = "货主")
     private String companyCode;
-    /** 容器号 */
-    @Excel(name = "容器号", width = 15)
-    @ApiModelProperty(value = "容器号")
+    /** 容器编码 */
+    @Excel(name = "容器编码", width = 15)
+    @ApiModelProperty(value = "容器编码")
     private String containerCode;
     /** 容器类型 */
     @Excel(name = "容器类型", width = 15)
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 fc74450..da25bdb 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
@@ -108,11 +108,11 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
         }
         String containerCode = receiveList.get(0).getContainerCode();
         if (StringUtils.isEmpty(containerCode)) {
-            return Result.error("容器号为空");
+            return Result.error("容器编码为空");
         }
         Container container = containerService.getContainerByCode(containerCode, warehouseCode);
         if (container == null) {
-            return Result.error("根据容器号 " + containerCode + ", 没有找到容器");
+            return Result.error("根据容器编码 " + containerCode + ", 没有找到容器");
         }
         String containerStatus = container.getStatus();
         if (containerStatus.equals(QuantityConstant.STATUS_CONTAINER_LOCK)) {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
index 07ebbe0..505d0b1 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
@@ -589,7 +589,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi
             String containerCode = inventoryDetail.getContainerCode();
             Container container = containerService.getContainerByCode(containerCode, warehouseCode);
             if (container == null) {
-                return Result.error("没有找到容器,容器号" + containerCode);
+                return Result.error("没有找到容器,容器编码" + containerCode);
             }
             if (container.getStatus().equals(QuantityConstant.STATUS_CONTAINER_LOCK)) {
                 removeInventoryList.add(inventoryDetail);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/entity/ShipmentContainerDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/entity/ShipmentContainerDetail.java
index 1ff069e..2bd5ae3 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/entity/ShipmentContainerDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/entity/ShipmentContainerDetail.java
@@ -53,9 +53,9 @@ public class ShipmentContainerDetail implements Serializable {
     @Excel(name = "货主编码", width = 15)
     @ApiModelProperty(value = "货主编码")
     private String companyCode;
-    /** 容器号 */
-    @Excel(name = "容器号", width = 15)
-    @ApiModelProperty(value = "容器号")
+    /** 容器编码 */
+    @Excel(name = "容器编码", width = 15)
+    @ApiModelProperty(value = "容器编码")
     private String containerCode;
     /** 起始库位 */
     @Excel(name = "起始库位", width = 15)
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/entity/ShipmentContainerHeader.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/entity/ShipmentContainerHeader.java
index efb30eb..d855859 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/entity/ShipmentContainerHeader.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/entity/ShipmentContainerHeader.java
@@ -38,9 +38,9 @@ public class ShipmentContainerHeader implements Serializable {
     @Excel(name = "货主", width = 15)
     @ApiModelProperty(value = "货主")
     private String companyCode;
-    /** 容器号 */
-    @Excel(name = "容器号", width = 15)
-    @ApiModelProperty(value = "容器号")
+    /** 容器编码 */
+    @Excel(name = "容器编码", width = 15)
+    @ApiModelProperty(value = "容器编码")
     private String containerCode;
     /** 容器类型 */
     @Excel(name = "容器类型", width = 15)
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/agvTask/service/impl/AgvTaskServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/agvTask/service/impl/AgvTaskServiceImpl.java
index eccb092..c786380 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/agvTask/service/impl/AgvTaskServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/agvTask/service/impl/AgvTaskServiceImpl.java
@@ -114,7 +114,7 @@ public class AgvTaskServiceImpl extends ServiceImpl<AgvTaskMapper, AgvTask> impl
         }
         Container container = containerService.getContainerByCode(containerCode, warehouseCode);
         if (container == null) {
-            throw new JeecgBootException("完成AGV任务时,根据容器号没有找到容器");
+            throw new JeecgBootException("完成AGV任务时,根据容器编码没有找到容器");
         }
         success = containerService.updateLocationCodeAndStatus(containerCode, toPort, QuantityConstant.STATUS_CONTAINER_EMPTY, warehouseCode);
         if (!success) {
@@ -165,7 +165,7 @@ public class AgvTaskServiceImpl extends ServiceImpl<AgvTaskMapper, AgvTask> impl
         }
         Container container = containerService.getContainerByCode(containerCode, warehouseCode);
         if (container == null) {
-            throw new JeecgBootException("取消AGV任务。 根据容器号没有找到容器");
+            throw new JeecgBootException("取消AGV任务。 根据容器编码没有找到容器");
         }
         // 2023-04-11 托盘状态与填充状态分离
 //        String containerStatus = QuantityConstant.STATUS_CONTAINER_EMPTY;
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java
index 588ebf3..61f8317 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java
@@ -71,9 +71,9 @@ public class TaskHeader implements Serializable {
     @Excel(name = "内部任务类型", width = 15)
     @ApiModelProperty(value = "内部任务类型")
     private Integer innernalTaskType;
-    /** 容器号 */
-    @Excel(name = "容器号", width = 15)
-    @ApiModelProperty(value = "容器号")
+    /** 容器编码 */
+    @Excel(name = "容器编码", width = 15)
+    @ApiModelProperty(value = "容器编码")
     private String containerCode;
     /** 起始库位 */
     @Excel(name = "起始库位", width = 15)
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 c015eda..a421ecb 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
@@ -250,7 +250,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 //        container.setLastStatus(container.getStatus());
 //        boolean success = containerService.updateById(container);
 //        if (!success) {
-//            throw new JeecgBootException("创建移库任务时,更新容器状态失败,容器号" + fromLocation.getContainerCode());
+//            throw new JeecgBootException("创建移库任务时,更新容器状态失败,容器编码" + fromLocation.getContainerCode());
 //        }
 
         // 3. 判断源库位旁边有托盘但是没有任务,那么不允许移库
@@ -383,7 +383,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Transactional(rollbackFor = Exception.class)
     public Result createOverStationTask(String containerCode, String fromPortCode, String toPortCode, String warehouseCode) {
         if (StringUtils.isEmpty(containerCode)) {
-            return Result.error("创建跨站任务时,容器号为空");
+            return Result.error("创建跨站任务时,容器编码为空");
         }
         if (StringUtils.isEmpty(fromPortCode)) {
             return Result.error("创建跨站任务时,起始站台号为空");
@@ -436,7 +436,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Transactional(rollbackFor = Exception.class)
     public Result createManyEmptyInTask(String containerCode, String zoneCode, String roadWay, String height, String warehouseCode) {
         if (StringUtils.isEmpty(containerCode)) {
-            return Result.error("创建空托盘组入库任务时,容器号为空");
+            return Result.error("创建空托盘组入库任务时,容器编码为空");
         }
         if (StringUtils.isEmpty(zoneCode)) {
             return Result.error("创建空托盘组入库任务时,库区编码为空");
@@ -501,7 +501,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Transactional(rollbackFor = Exception.class)
     public Result createManyEmptyIn(String containerCode, String toLocationCode, String warehouseCode) {
         if (StringUtils.isEmpty(containerCode)) {
-            return Result.error("创建空托盘组入库任务时,容器号为空");
+            return Result.error("创建空托盘组入库任务时,容器编码为空");
         }
         if (StringUtils.isEmpty(warehouseCode)) {
             return Result.error("创建空托盘组入库任务时,仓库编码为空");
@@ -642,9 +642,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         String containerCode = taskHeader.getContainerCode();
         String fromLocationCode = taskHeader.getFromLocationCode();
         String warehouseCode = taskHeader.getWarehouseCode();
-        // 4、容器号、库位号、仓库编码 不能为空
+        // 4、容器编码、库位号、仓库编码 不能为空
         if (StringUtils.isEmpty(containerCode)) {
-            return Result.error("处理空出失败,容器号为空");
+            return Result.error("处理空出失败,容器编码为空");
         }
         if (StringUtils.isEmpty(fromLocationCode)) {
             return Result.error("处理空出失败,起始库号位为空");
@@ -666,7 +666,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if (!success) {
             throw new JeecgBootException("处理空出失败, 更新容器状态失败");
         }
-        // 6、删除库位上的容器号,并设置状态为空闲
+        // 6、删除库位上的容器编码,并设置状态为空闲
         success =
             locationService.updateContainerCodeAndStatus(fromLocationCode, QuantityConstant.EMPTY_STRING, QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode);
         if (!success) {
@@ -717,9 +717,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         String containerCode = taskHeader.getContainerCode();
         String originLocationCode = taskHeader.getOriginLocationCode();
         String warehouseCode = taskHeader.getWarehouseCode();
-        // 4、容器号、库位号、仓库编码 不能为空
+        // 4、容器编码、库位号、仓库编码 不能为空
         if (StringUtils.isEmpty(containerCode)) {
-            return Result.error("处理重入失败,容器号为空");
+            return Result.error("处理重入失败,容器编码为空");
         }
         if (StringUtils.isEmpty(originLocationCode)) {
             return Result.error("处理重入失败,终点库号位为空");
@@ -829,10 +829,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     public Result completeTaskByWMS(Integer taskId) {
         TaskHeader taskHeader = getById(taskId);
         if (taskHeader == null) {
-            return Result.error("任务" + taskId + "未找到,执行中止");
+            return Result.error("任务 " + taskId + " 未找到,执行中止");
         }
         if (taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED)) {
-            return Result.ok("任务(" + taskId + ")任务已经是完成的!");
+            return Result.ok("任务 " + taskId + " 任务已完成!");
         }
         int taskType = taskHeader.getTaskType().intValue();
         if (taskType != QuantityConstant.TASK_TYPE_OVER_STATION) {
@@ -1510,7 +1510,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         }
         Container container = containerService.getContainerByCode(containerCode, warehouseCode);
         if (container == null) {
-            throw new JeecgBootException("合并库存时, 没有找到容器, 容器号为" + containerCode);
+            throw new JeecgBootException("合并库存时, 没有找到容器, 容器编码为" + containerCode);
         }
         inventoryHeader.setTotalQty(totalQty);
         inventoryHeader.setTotalLines(totalLines);
@@ -1553,7 +1553,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         }
         success = locationService.updateContainerCodeAndStatus(toLocationCode, containerCode, QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode);
         if (!success) {
-            throw new JeecgBootException("完成空托盘入库任务时, 更新库位的容器号和状态失败");
+            throw new JeecgBootException("完成空托盘入库任务时, 更新库位的容器编码和状态失败");
         }
         taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         success = taskHeaderService.updateById(taskHeader);
@@ -1855,7 +1855,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         success =
             locationService.updateContainerCodeAndStatus(fromLocationCode, QuantityConstant.EMPTY_STRING, QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode);
         if (!success) {
-            throw new JeecgBootException("完成空托盘出库任务时, 更新库位的容器号和状态失败");
+            throw new JeecgBootException("完成空托盘出库任务时, 更新库位的容器编码和状态失败");
         }
         taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         success = taskHeaderService.updateById(taskHeader);
@@ -2290,7 +2290,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 //        if (StringUtils.isNotEmpty(fromLocationCode)) {
 //            success = containerService.havaLocationCodeByContainer(fromLocationCode, warehouseCode);
 //            if (success) {
-//                throw new JeecgBootException("库位表已经存在这个容器号,不能再写入");
+//                throw new JeecgBootException("库位表已经存在这个容器编码,不能再写入");
 //            }
 //        }
 //        container.setLastStatus(QuantityConstant.EMPTY_STRING);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/aspect/ApiLoggerAspect.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/aspect/ApiLoggerAspect.java
index a5591a4..aae68cb 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/aspect/ApiLoggerAspect.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/aspect/ApiLoggerAspect.java
@@ -23,17 +23,13 @@ import org.aspectj.lang.reflect.MethodSignature;
 import org.jeecg.JeecgSystemApplication;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.wms.config.address.entity.Address;
-import org.jeecg.modules.wms.config.address.service.IAddressService;
+import org.jeecg.modules.wms.config.address.service.impl.AddressServiceImpl;
 import org.jeecg.modules.wms.monitor.apiLog.entity.ApiLog;
-import org.jeecg.modules.wms.monitor.apiLog.service.IApiLogService;
 import org.jeecg.utils.ServletUtils;
 import org.jeecg.utils.SpringUtils;
 import org.jeecg.utils.StringUtils;
-import org.jeecg.utils.config.ApplicationConfig;
-import org.jeecg.utils.constant.QuantityConstant;
 import org.jeecg.utils.support.ApiLogger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
+import org.jeecg.utils.support.SystemSync;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.stereotype.Component;
 
@@ -55,23 +51,6 @@ import okhttp3.Response;
 public class ApiLoggerAspect {
 
     public static final String HUAHENG_SYSTEM_NAME = "HUAHENG_WMS4";
-    
-    private static IApiLogService apiLogService;
-
-    private static IAddressService addressService;
-    
-    @Autowired
-    private ApplicationConfig applicationConfig;
-
-    @Autowired
-    public void setApiLogService(IApiLogService apiLogService) {
-        ApiLoggerAspect.apiLogService = apiLogService;
-    }
-
-    @Autowired
-    public void setAddressService(IAddressService addressService) {
-        ApiLoggerAspect.addressService = addressService;
-    }
 
     // 配置织入点
     @Pointcut("@annotation(org.jeecg.utils.support.ApiLogger)")
@@ -100,151 +79,10 @@ public class ApiLoggerAspect {
         return ret;
     }
 
-//    /** 记录WMS调用第三方接口的日志 **/
-//    private Object aroundWms2XXX(ProceedingJoinPoint point, ApiLogger apiLogger) {
-//        Object ret = null;
-//        ApiLog log = new ApiLog();
-//
-//        HttpURLConnection connection = null;
-//        String body = null;
-//
-//        try {
-//            connection = (HttpURLConnection)point.getArgs()[0];
-//            body = (String)point.getArgs()[1];
-//            initApiLog(connection, body);
-//            ret = point.proceed();
-//        } catch (Throwable e) {
-//            setApiLogThrowable(log, e);
-//            ret = Result.error(e.getMessage());
-//        } finally {
-//            if (ret != null) {
-//                finishApiLog(log, connection, ret.toString());
-//            }
-//        }
-//        return ret;
-//    }
-
-//    /**
-//     * 记录响应头信息,保存日志到数据库
-//     */
-//    public static void finishApiLog(ApiLog log, HttpURLConnection connection, String body) {
-//        try {
-//            log.setResponseBody(body);
-//            log.setResponseTime(new Date());
-//            Long duration = log.getResponseTime().getTime() - log.getRequestTime().getTime();
-//            log.setDuration(duration.intValue());
-//            log.setHttpCode(connection.getResponseCode());
-//
-//            // 响应头
-//            Set<String> keyset = connection.getHeaderFields().keySet();
-//            ArrayList<String> headerList = new ArrayList<>();
-//            Iterator<String> it = keyset.iterator();
-//            while (it.hasNext()) {
-//                String name = it.next();
-//                String header = connection.getHeaderField(name);
-//                if (name == null || "".equals(name)) {
-//                    // 第一行没有name
-//                    // HTTP/1.1 200 OK
-//                    headerList.add(header);
-//                } else {
-//                    headerList.add(name + ": " + header);
-//                }
-//            }
-//            log.setResponseHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
-//            Result json = JSON.parseObject(body, Result.class);
-//            log.setRetCode(json.getCode());
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        } finally {
-//            SpringUtils.getBean(ApiLogAspect.class).saveApiLog(log);
-//        }
-//    }
-
-//    /**
-//     * 根据url,从address表中判断调用的去向
-//     */
-//    public static void parseUrl(ApiLog log, URL url, String warehouseCode) {
-//        try {
-//            String[] spList = url.toString().split("/");
-//            String apiName = spList[spList.length - 1];
-//            String ip = JeecgSystemApplication.getLocalHostExactAddress().getHostAddress();
-//            Address address = addressService.getAddressByUrl(url.toString(), warehouseCode);
-//            log.setApiName(apiName);
-//            log.setRequestFrom("WMS");
-//            log.setIp(ip);
-//            log.setResponseBy(address.getParam().toUpperCase());
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-//    }
-
-//    /**
-//     * 记录WMS调用第三方系统接口的请求信息 
-//     * 在HttpUtils.body POST方法中直接调用本类static方法
-//     **/
-//    public static ApiLog initApiLog(String Method, String urlStr, String body, HttpHeaders headers, String warehouseCode) {
-//        ApiLog log = new ApiLog();
-//        try {
-//            URL url = new URL(urlStr);
-//            log.setApiMethod(Method);
-//            log.setUrl(urlStr);
-//            log.setRequestTime(new Date());
-//            parseUrl(log, url, warehouseCode);
-//
-//            // 请求头
-//            Set<String> keySet = headers.keySet();
-//            ArrayList<String> headerList = new ArrayList<>();
-//            Iterator<String> it = keySet.iterator();
-//            while (it.hasNext()) {
-//                String name = it.next();
-//                String header = String.valueOf(headers.getContentType());
-//                headerList.add(name + ": " + header);
-//            }
-//
-//            log.setRequestHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
-//            log.setRequestBody(body);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-//
-//        return log;
-//    }
-
-//    /**
-//     * 记录WMS调用第三方系统接口的请求信息
-//     * 在HttpUtils.body POST方法中直接调用本类static方法
-//     **/
-//    public static ApiLog initApiLog(HttpURLConnection connection, String body) {
-//        ApiLog log = new ApiLog();
-//        try {
-//            log.setApiMethod(connection.getRequestMethod());
-//            log.setUrl(connection.getURL().toString());
-//            log.setRequestTime(new Date());
-//            parseUrl(log, connection.getURL());
-//
-//            // 请求头
-//            Set<String> keySet = connection.getRequestProperties().keySet();
-//            ArrayList<String> headerList = new ArrayList<>();
-//            Iterator<String> it = keySet.iterator();
-//            while (it.hasNext()) {
-//                String name = it.next();
-//                String header = connection.getRequestProperty(name);
-//                headerList.add(name + ":" + header);
-//            }
-//
-//            log.setRequestHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
-//            log.setRequestBody(body);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-//
-//        return log;
-//    }
-
     /**
      * 记录WMS调用第三方系统接口的请求信息
      * 在OKHttpUtils.bodypost方法中直接调用本类static方法
-     * @param apiLog 
+     * @param apiLog
      **/
     public static void initApiLog(ApiLog apiLog, Request request, String body) {
         try {
@@ -289,7 +127,7 @@ public class ApiLoggerAspect {
             } catch (Exception e) {
                 e.printStackTrace();
             }
-            SpringUtils.getBean(ApiLoggerAspect.class).saveApiLog(log);
+            SpringUtils.getBean(SystemSync.class).saveApiLog(log);
         }
     }
 
@@ -298,52 +136,19 @@ public class ApiLoggerAspect {
         try {
             String[] spList = url.toString().split("/");
             String apiName = spList[spList.length - 1];
-            String ip = JeecgSystemApplication.getLocalHostExactAddress().getHostAddress();
             apiLog.setApiName(apiName);
             apiLog.setRequestFrom(HUAHENG_SYSTEM_NAME);
-            apiLog.setIp(ip);
-            Address address = addressService.getAddressByUrl(url.toString());
-            apiLog.setResponseBy(address.getParam().toUpperCase());
+            apiLog.setIp(JeecgSystemApplication.getLocalHostExactAddress().getHostAddress());
+            Address address = SpringUtils.getBean(AddressServiceImpl.class).getAddressByUrl(url.toString());
+            if (address != null) {
+                apiLog.setApiName(address.getRemark());
+                apiLog.setResponseBy(address.getParam().toUpperCase());
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
-//    /**
-//     * 记录响应头信息
-//     **/
-//    public static void finishApiLog(ApiLog log, HttpHeaders headers, String body) {
-//        try {
-//            log.setResponseBody(body);
-//            log.setResponseTime(new Date());
-//            Long duration = log.getResponseTime().getTime() - log.getRequestTime().getTime();
-//            log.setDuration(duration.intValue());
-//            log.setHttpCode(200);
-//
-//            // 响应头
-//            Set<String> keyset = headers.keySet();
-//            ArrayList<String> headerList = new ArrayList<>();
-//            Iterator<String> it = keyset.iterator();
-//            while (it.hasNext()) {
-//                String name = it.next();
-//                String header = String.valueOf(headers.getContentType());
-//                if (name == null || "".equals(name))
-//                    // 第一行没有name
-//                    // HTTP/1.1 200 OK
-//                    headerList.add(header);
-//                else
-//                    headerList.add(name + ": " + header);
-//            }
-//            log.setResponseHeader(org.apache.commons.lang3.StringUtils.join(headerList, "\n"));
-//            Result json = JSON.parseObject(body, Result.class);
-//            log.setRetCode(json.getCode());
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        } finally {
-//            SpringUtils.getBean(ApiLogAspect.class).saveApiLog(log);
-//        }
-//    }
-
     private ApiLog initApiLog(ApiLogger apiLogger, ProceedingJoinPoint point) {
         ApiLog log = new ApiLog();
         try {
@@ -396,7 +201,7 @@ public class ApiLoggerAspect {
         } catch (Exception e) {
             e.printStackTrace();
         } finally {
-            saveApiLog(log);
+            SpringUtils.getBean(SystemSync.class).saveApiLog(log);
         }
     }
 
@@ -472,7 +277,6 @@ public class ApiLoggerAspect {
             Object[] args = point.getArgs();
             for (int i = 0; i < m.getParameterNames().length; i++) {
                 String name = m.getParameterNames()[i];
-//                Class type = m.getParameterTypes()[i];
                 if (args[i] instanceof HttpServletRequest) {
                     continue;
                 }
@@ -520,15 +324,6 @@ public class ApiLoggerAspect {
         }
     }
 
-    @Async
-    public void saveApiLog(ApiLog log) {
-        try {
-            apiLogService.saveOrUpdate(log);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
     public static String getIpAddr(HttpServletRequest request) {
         String ipAddress = request.getHeader("x-forwarded-for");
         if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/support/SyncConfiguration.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/support/SyncConfiguration.java
new file mode 100644
index 0000000..3fd6f82
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/support/SyncConfiguration.java
@@ -0,0 +1,38 @@
+package org.jeecg.utils.support;
+
+import java.util.concurrent.ThreadPoolExecutor;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+@Configuration
+@EnableAsync
+public class SyncConfiguration {
+    @Bean(name = "asyncPoolTaskExecutor")
+    public ThreadPoolTaskExecutor executor() {
+        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
+        // 核心线程数
+        taskExecutor.setCorePoolSize(10);
+        // 线程池维护线程的最大数量,只有在缓冲队列满了之后才会申请超过核心线程数的线程
+        taskExecutor.setMaxPoolSize(100);
+        // 缓存队列
+        taskExecutor.setQueueCapacity(50);
+        // 许的空闲时间,当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
+        taskExecutor.setKeepAliveSeconds(200);
+        // 异步方法内部线程名称
+        taskExecutor.setThreadNamePrefix("async-");
+        /**
+         * 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒绝策略
+         * 通常有以下四种策略:
+         * ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。
+         * ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。
+         * ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程)
+         * ThreadPoolExecutor.CallerRunsPolicy:重试添加当前的任务,自动重复调用 execute() 方法,直到成功
+         */
+        taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        taskExecutor.initialize();
+        return taskExecutor;
+    }
+}
\ No newline at end of file
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/support/SystemSync.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/support/SystemSync.java
new file mode 100644
index 0000000..73039f4
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/support/SystemSync.java
@@ -0,0 +1,65 @@
+package org.jeecg.utils.support;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.concurrent.Future;
+
+import org.jeecg.modules.wms.inventory.inventoryTransaction.entity.InventoryTransaction;
+import org.jeecg.modules.wms.inventory.inventoryTransaction.service.IInventoryTransactionService;
+import org.jeecg.modules.wms.monitor.apiLog.entity.ApiLog;
+import org.jeecg.modules.wms.monitor.apiLog.service.IApiLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.AsyncResult;
+import org.springframework.stereotype.Component;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Component
+public class SystemSync {
+
+    @Autowired
+    private IApiLogService apiLogService;
+
+    @Autowired
+    private IInventoryTransactionService inventoryTransactionService;
+
+    /**
+     * 保存API调用日志
+     * @author            TanYibin
+     * @createDate        2023年5月9日
+     * @param      apiLog
+     */
+    @Async("asyncPoolTaskExecutor")
+    public void saveApiLog(ApiLog apiLog) {
+        try {
+            apiLogService.saveOrUpdate(apiLog);
+        } catch (Exception e) {
+            log.error("saveApiLog 执行异常,apiLog:{}", JSON.toJSONString(apiLog), e);
+        }
+    }
+
+    /**
+     * 异步库存信息查询
+     * @author               TanYibin
+     * @createDate           2023年5月9日
+     * @param      startTime
+     * @param      endTime
+     * @param      type
+     * @return
+     */
+    @Async("asyncPoolTaskExecutor")
+    public Future<BigDecimal> asyncCalculateInventory(String startTime, String endTime, Integer type) {
+        LambdaQueryWrapper<InventoryTransaction> inventoryTransactionLambdaQueryWrapper = Wrappers.lambdaQuery();
+        inventoryTransactionLambdaQueryWrapper.select(InventoryTransaction::getCreateTime, InventoryTransaction::getQty, InventoryTransaction::getType)
+            .ge(InventoryTransaction::getCreateTime, startTime).lt(InventoryTransaction::getCreateTime, endTime).eq(InventoryTransaction::getType, type);
+        List<InventoryTransaction> inventoryTransactions = inventoryTransactionService.list(inventoryTransactionLambdaQueryWrapper);
+        BigDecimal shipmentResult = inventoryTransactions.stream().map(InventoryTransaction::getQty).reduce(BigDecimal.ZERO, BigDecimal::add);
+        return new AsyncResult<>(shipmentResult);
+    }
+}
diff --git a/huaheng-wms-core/src/main/resources/application.yml b/huaheng-wms-core/src/main/resources/application.yml
index 9823b9d..fdb28fc 100644
--- a/huaheng-wms-core/src/main/resources/application.yml
+++ b/huaheng-wms-core/src/main/resources/application.yml
@@ -2,7 +2,7 @@ spring:
   application:
     name: huaheng-wms-core
   profiles:
-    active: test
+    active: dev
 
 huaheng:
   system: