diff --git a/ant-design-vue-jeecg/src/api/api.js b/ant-design-vue-jeecg/src/api/api.js
index 15aa53c..82c1aa8 100644
--- a/ant-design-vue-jeecg/src/api/api.js
+++ b/ant-design-vue-jeecg/src/api/api.js
@@ -137,6 +137,8 @@ export const completeTaskByWMS = (params) => postAction('/task/taskHeader/comple
 export const execute = (params) => postAction('/task/taskHeader/execute', params);
 //取消任务
 export const cancelTask = (params) => postAction('/task/taskHeader/cancelTask?ids=' + params, params);
+//切换任务
+export const switchTask = (params) => postAction('/task/taskHeader/switchTask?ids=' + params, params);
 //自动配盘
 export const autoCombination = (params) => postAction('/shipment/shipmentCombination/autoCombination', params);
 //自动出库
diff --git a/ant-design-vue-jeecg/src/views/system/UserList.vue b/ant-design-vue-jeecg/src/views/system/UserList.vue
index 68aabfb..d6be64b 100644
--- a/ant-design-vue-jeecg/src/views/system/UserList.vue
+++ b/ant-design-vue-jeecg/src/views/system/UserList.vue
@@ -82,7 +82,7 @@
         </a-menu>
         <a-button style="margin-left: 8px">批量操作<a-icon type="down"/></a-button>
       </a-dropdown>
-      <j-super-query :fieldList="superQueryFieldList" @handleSuperQuery="handleSuperQuery"/>
+      <j-super-query :fieldList="superQueryFieldList" v-has="'user:superQuery'" @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
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 28e1b76..d2dfa53 100644
--- a/ant-design-vue-jeecg/src/views/system/config/AddressList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/AddressList.vue
@@ -37,7 +37,8 @@
     <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-button
       >
       <a-upload
         v-has="'address:import'"
@@ -52,13 +53,19 @@
       </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-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-icon type="down"/>
         </a-button>
       </a-dropdown>
+      <j-super-query :fieldList="superFieldList" v-has="'address:superQuery'" ref="superQueryModal"
+                     @handleSuperQuery="handleSuperQuery"></j-super-query>
+
     </div>
 
     <!-- table区域-begin -->
@@ -85,7 +92,7 @@
         <span slot="action" slot-scope="text, record">
           <a v-has="'address:edit'" @click="handleEdit(record)">编辑</a>
 
-          <a-divider type="vertical" />
+          <a-divider type="vertical"/>
           <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
             <a-menu slot="overlay">
@@ -109,10 +116,10 @@
 
 <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'
+import {getZoneList} from '@/api/api'
 
 export default {
   name: 'AddressList',
@@ -133,7 +140,7 @@ export default {
           key: 'rowIndex',
           width: 60,
           align: 'center',
-          customRender: function(t, r, index) {
+          customRender: function (t, r, index) {
             return parseInt(index) + 1
           }
         },
@@ -152,7 +159,7 @@ export default {
           align: 'center',
           dataIndex: 'zoneCode',
           key: 'zoneCode',
-          scopedSlots: { customRender: 'zoneCode' }
+          scopedSlots: {customRender: 'zoneCode'}
         },
         {
           title: '接口地址',
@@ -185,7 +192,7 @@ export default {
           align: 'center',
           fixed: 'right',
           width: 147,
-          scopedSlots: { customRender: 'action' }
+          scopedSlots: {customRender: 'action'}
         }
       ],
       url: {
@@ -209,28 +216,30 @@ export default {
           //slice可以在数组的任何位置进行删除/添加操作
           this.zoneOptions.splice(0, 1)
           for (let i = 0; i < res.result.length; i++) {
-            this.zoneOptions.push({ value: res.result[i].code, text: res.result[i].name })
+            this.zoneOptions.push({value: res.result[i].code, text: res.result[i].name})
           }
         }, 500)
       }
     })
   },
   computed: {
-    importExcelUrl: function() {
+    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: '更新日期' })
+      fieldList.push({type: 'string', value: 'remark', text: '接口名称', dictCode: ''})
+      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) {
diff --git a/ant-design-vue-jeecg/src/views/system/config/AgvPortList.vue b/ant-design-vue-jeecg/src/views/system/config/AgvPortList.vue
index c7da03b..dc8a452 100644
--- a/ant-design-vue-jeecg/src/views/system/config/AgvPortList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/AgvPortList.vue
@@ -32,22 +32,32 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" v-has="'agvPort:add'" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'agvPort:export'" type="primary" icon="download" @click="handleExportXls('AGV点位')">导出</a-button>
-      <a-upload v-has="'agvPort:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+      <a-button v-has="'agvPort:export'" type="primary" icon="download" @click="handleExportXls('AGV点位')">导出
+      </a-button>
+      <a-upload v-has="'agvPort: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">
-          <a-menu-item key="1" v-has="'agvPort:delete'" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+          <a-menu-item key="1" v-has="'agvPort:delete'" @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>
+      <j-super-query :fieldList="superFieldList" v-has="'agvPort:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- 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> 项
+        <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>
 
@@ -70,7 +80,8 @@
         </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;"/>
+          <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>
@@ -88,9 +99,9 @@
         <span slot="action" slot-scope="text, record">
           <a v-has="'agvPort:edit'" @click="handleEdit(record)">编辑</a>
 
-          <a-divider type="vertical" />
+          <a-divider type="vertical"/>
           <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
             <a-menu slot="overlay">
               <a-menu-item>
                 <a @click="handleDetail(record)">详情</a>
@@ -113,113 +124,113 @@
 
 <script>
 
-  import '@/assets/less/TableExpand.less'
-  import { mixinDevice } from '@/utils/mixin'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import AgvPortModal from './modules/AgvPortModal'
+import '@/assets/less/TableExpand.less'
+import {mixinDevice} from '@/utils/mixin'
+import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import AgvPortModal from './modules/AgvPortModal'
 
-  export default {
-    name: 'AgvPortList',
-    mixins:[JeecgListMixin, mixinDevice],
-    components: {
-      AgvPortModal
-    },
-    data () {
-      return {
-        description: 'AGV点位管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
-            }
-          },
-          {
-            title:'编码',
-            align:"center",
-            dataIndex: 'code'
-          },
-          {
-            title:'名称',
-            align:"center",
-            dataIndex: 'name'
-          },
-          {
-            title:'备注',
-            align:"center",
-            dataIndex: 'remark'
-          },
-          {
-            title:'创建人',
-            align:"center",
-            dataIndex: 'createBy'
-          },
-          {
-            title:'创建日期',
-            align:"center",
-            dataIndex: 'createTime'
-          },
-          {
-            title:'更新人',
-            align:"center",
-            dataIndex: 'updateBy'
-          },
-          {
-            title:'更新日期',
-            align:"center",
-            dataIndex: 'updateTime'
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' }
+export default {
+  name: 'AgvPortList',
+  mixins: [JeecgListMixin, mixinDevice],
+  components: {
+    AgvPortModal
+  },
+  data() {
+    return {
+      description: 'AGV点位管理页面',
+      // 表头
+      columns: [
+        {
+          title: '#',
+          dataIndex: '',
+          key: 'rowIndex',
+          width: 60,
+          align: "center",
+          customRender: function (t, r, index) {
+            return parseInt(index) + 1;
           }
-        ],
-        url: {
-          list: "/config/agvPort/list",
-          delete: "/config/agvPort/delete",
-          deleteBatch: "/config/agvPort/deleteBatch",
-          exportXlsUrl: "/config/agvPort/exportXls",
-          importExcelUrl: "config/agvPort/importExcel",
-
         },
-        dictOptions:{},
-        superFieldList:[],
-      }
-    },
-    created() {
+        {
+          title: '编码',
+          align: "center",
+          dataIndex: 'code'
+        },
+        {
+          title: '名称',
+          align: "center",
+          dataIndex: 'name'
+        },
+        {
+          title: '备注',
+          align: "center",
+          dataIndex: 'remark'
+        },
+        {
+          title: '创建人',
+          align: "center",
+          dataIndex: 'createBy'
+        },
+        {
+          title: '创建日期',
+          align: "center",
+          dataIndex: 'createTime'
+        },
+        {
+          title: '更新人',
+          align: "center",
+          dataIndex: 'updateBy'
+        },
+        {
+          title: '更新日期',
+          align: "center",
+          dataIndex: 'updateTime'
+        },
+        {
+          title: '操作',
+          dataIndex: 'action',
+          align: "center",
+          fixed: "right",
+          width: 147,
+          scopedSlots: {customRender: 'action'}
+        }
+      ],
+      url: {
+        list: "/config/agvPort/list",
+        delete: "/config/agvPort/delete",
+        deleteBatch: "/config/agvPort/deleteBatch",
+        exportXlsUrl: "/config/agvPort/exportXls",
+        importExcelUrl: "config/agvPort/importExcel",
+
+      },
+      dictOptions: {},
+      superFieldList: [],
+    }
+  },
+  created() {
     this.getSuperFieldList();
+  },
+  computed: {
+    importExcelUrl: function () {
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
     },
-    computed: {
-      importExcelUrl: function(){
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      },
+  },
+  methods: {
+    initDictConfig() {
     },
-    methods: {
-      initDictConfig(){
-      },
-      getSuperFieldList(){
-        let fieldList=[];
-        fieldList.push({type:'string',value:'code',text:'编码',dictCode:''})
-        fieldList.push({type:'string',value:'name',text:'名称',dictCode:''})
-        fieldList.push({type:'string',value:'remark',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
-      }
+    getSuperFieldList() {
+      let fieldList = [];
+      fieldList.push({type: 'string', value: 'code', text: '编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'name', text: '名称', dictCode: ''})
+      fieldList.push({type: 'string', value: 'remark', 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
     }
   }
+}
 </script>
 <style scoped>
-  @import '~@assets/less/common.less';
+@import '~@assets/less/common.less';
 </style>
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/system/config/BomHeaderList.vue b/ant-design-vue-jeecg/src/views/system/config/BomHeaderList.vue
index 3f52b3a..b9c2d64 100644
--- a/ant-design-vue-jeecg/src/views/system/config/BomHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/BomHeaderList.vue
@@ -37,6 +37,8 @@
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
+
+      <j-super-query :fieldList="superFieldList" v-has="'bomHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/CarrierList.vue b/ant-design-vue-jeecg/src/views/system/config/CarrierList.vue
index ddc9007..9fb0920 100644
--- a/ant-design-vue-jeecg/src/views/system/config/CarrierList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/CarrierList.vue
@@ -12,8 +12,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" v-has="'carrier:add'" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'carrier:export'" type="primary" icon="download" @click="handleExportXls('承运商管理')">导出</a-button>
-      <a-upload v-has="'carrier:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'carrier:export'" type="primary" icon="download" @click="handleExportXls('承运商管理')">导出
+      </a-button>
+      <a-upload v-has="'carrier:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
+                :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -28,6 +30,8 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'carrier:superQuery'" @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/CompanyList.vue b/ant-design-vue-jeecg/src/views/system/config/CompanyList.vue
index 4a3553b..037ce22 100644
--- a/ant-design-vue-jeecg/src/views/system/config/CompanyList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/CompanyList.vue
@@ -20,7 +20,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>
@@ -47,15 +47,17 @@
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay" v-has="'company:deleteBatch'">
           <a-menu-item key="1" @click="batchDel">
-            <a-icon type="deleteBatch" />
+            <a-icon type="deleteBatch"/>
             删除
           </a-menu-item>
         </a-menu>
         <a-button style="margin-left: 8px">
           批量操作
-          <a-icon type="down" />
+          <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'company:superQuery'" @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -101,7 +103,7 @@
         </template>
 
         <span slot="action" slot-scope="text, record">
-          <a v-has="'company:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical" /></a>
+          <a v-has="'company:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
           <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
             <a-menu slot="overlay">
@@ -125,8 +127,8 @@
 
 <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 CompanyModal from './modules/CompanyModal'
 
 export default {
@@ -146,7 +148,7 @@ export default {
           key: 'rowIndex',
           width: 60,
           align: 'center',
-          customRender: function(t, r, index) {
+          customRender: function (t, r, index) {
             return parseInt(index) + 1
           }
         },
@@ -206,7 +208,7 @@ export default {
           align: 'center',
           fixed: 'right',
           width: 147,
-          scopedSlots: { customRender: 'action' }
+          scopedSlots: {customRender: 'action'}
         }
       ],
       url: {
@@ -224,24 +226,25 @@ export default {
     this.getSuperFieldList()
   },
   computed: {
-    importExcelUrl: function() {
+    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: 'name', text: '货主名称', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'address', text: '地址', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'district', text: '区县', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'city', text: '城市', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'province', text: '省份', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'country', text: '国家', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'postalcode', text: '邮编', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'attentionto', text: '联系人', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'phonenum', text: '联系电话', dictCode: '' })
+      fieldList.push({type: 'string', value: 'code', text: '货主编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'name', text: '货主名称', dictCode: ''})
+      fieldList.push({type: 'string', value: 'address', text: '地址', dictCode: ''})
+      fieldList.push({type: 'string', value: 'district', text: '区县', dictCode: ''})
+      fieldList.push({type: 'string', value: 'city', text: '城市', dictCode: ''})
+      fieldList.push({type: 'string', value: 'province', text: '省份', dictCode: ''})
+      fieldList.push({type: 'string', value: 'country', text: '国家', dictCode: ''})
+      fieldList.push({type: 'string', value: 'postalcode', text: '邮编', dictCode: ''})
+      fieldList.push({type: 'string', value: 'attentionto', text: '联系人', dictCode: ''})
+      fieldList.push({type: 'string', value: 'phonenum', text: '联系电话', dictCode: ''})
       this.superFieldList = fieldList
     }
   }
diff --git a/ant-design-vue-jeecg/src/views/system/config/ContainerCapacityList.vue b/ant-design-vue-jeecg/src/views/system/config/ContainerCapacityList.vue
index af39123..60f3a62 100644
--- a/ant-design-vue-jeecg/src/views/system/config/ContainerCapacityList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/ContainerCapacityList.vue
@@ -25,7 +25,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.enable" dictCode="enable_status" />
+              <j-dict-select-tag placeholder="请选择是否可用" v-model="queryParam.enable" dictCode="enable_status"/>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -64,15 +64,17 @@
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay" v-has="'containerCapacity:deleteBatch'">
           <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete" />
+            <a-icon type="delete"/>
             删除
           </a-menu-item>
         </a-menu>
         <a-button style="margin-left: 8px">
           批量操作
-          <a-icon type="down" />
+          <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+      <j-super-query :fieldList="superFieldList" v-has="'containerCapacity:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -147,11 +149,11 @@
 
 <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 ContainerCapacityModal from './modules/ContainerCapacityModal'
-import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
-import { getZoneList, getContainerTypeList } from '@/api/api'
+import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
+import {getZoneList, getContainerTypeList} from '@/api/api'
 
 export default {
   name: 'ContainerCapacityList',
@@ -171,7 +173,7 @@ export default {
           key: 'rowIndex',
           width: 60,
           align: 'center',
-          customRender: function(t, r, index) {
+          customRender: function (t, r, index) {
             return parseInt(index) + 1
           }
         },
@@ -180,7 +182,7 @@ export default {
           align: 'center',
           dataIndex: 'containerTypeCode',
           key: 'containerTypeCode',
-          scopedSlots: { customRender: 'containerTypeCode' }
+          scopedSlots: {customRender: 'containerTypeCode'}
         },
         {
           title: '物料编码',
@@ -233,7 +235,7 @@ export default {
           align: 'center',
           fixed: 'right',
           width: 147,
-          scopedSlots: { customRender: 'action' }
+          scopedSlots: {customRender: 'action'}
         }
       ],
       url: {
@@ -252,12 +254,13 @@ export default {
     this.loadFrom()
   },
   computed: {
-    importExcelUrl: function() {
+    importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
     }
   },
   methods: {
-    initDictConfig() {},
+    initDictConfig() {
+    },
     solutionContainerType(value) {
       var actions = []
       Object.keys(this.containerTypeList).some(key => {
@@ -277,18 +280,18 @@ export default {
     },
     getSuperFieldList() {
       let fieldList = []
-      fieldList.push({ type: 'string', value: 'containerTypeCode', text: '容器类型', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'warehouseCode', text: '仓库编码', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'companyCode', text: '货主', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'materialCode', text: '物料编码', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'materialName', text: '物料名称', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'materialUnit', text: '物料单位', dictCode: '' })
-      fieldList.push({ type: 'BigDecimal', value: 'qty', text: '存放数量', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'enable', text: '是否可用', dictCode: 'enable_status' })
-      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: '更新日期' })
+      fieldList.push({type: 'string', value: 'containerTypeCode', text: '容器类型', dictCode: ''})
+      fieldList.push({type: 'string', value: 'warehouseCode', text: '仓库编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'companyCode', text: '货主', dictCode: ''})
+      fieldList.push({type: 'string', value: 'materialCode', text: '物料编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'materialName', text: '物料名称', dictCode: ''})
+      fieldList.push({type: 'string', value: 'materialUnit', text: '物料单位', dictCode: ''})
+      fieldList.push({type: 'BigDecimal', value: 'qty', text: '存放数量', dictCode: ''})
+      fieldList.push({type: 'int', value: 'enable', text: '是否可用', dictCode: 'enable_status'})
+      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
     }
   }
diff --git a/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue b/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue
index ac83874..4732409 100644
--- a/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue
@@ -46,10 +46,16 @@
                 />
               </a-form-item>
             </a-col>
+            <a-col :xl="6" :lg="7" :md="8" :sm="24">
+              <a-form-item label="位置">
+                <j-dict-select-tag placeholder="请选择位置" v-model="queryParam.inLocation"
+                                   dictCode="inLocation"/>
+              </a-form-item>
+            </a-col>
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -91,6 +97,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'container:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -208,6 +217,7 @@ export default {
     return {
       description: '容器管理管理页面',
       zoneList: [],
+      firstLoad:0,
       containerTypeList: [],
       // 表头
       columns: [
@@ -251,6 +261,21 @@ export default {
           scopedSlots: {customRender: 'fillStatus_dictText'}
         },
         {
+          title: '位置',
+          align: 'center',
+          dataIndex: 'inLocation_dictText',
+        },
+        {
+          title: '任务总数',
+          align: "center",
+          dataIndex: 'taskTimes',
+        },
+        {
+          title: '移库任务数',
+          align: "center",
+          dataIndex: 'moveTaskTimes',
+        },
+        {
           title: '库区',
           align: "center",
           dataIndex: 'zoneCode',
@@ -301,6 +326,21 @@ export default {
     this.getSuperFieldList()
     this.loadFrom()
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
@@ -329,6 +369,7 @@ export default {
       fieldList.push({type: 'string', value: 'containerTypeCode', text: '容器类型', dictCode: ''})
       fieldList.push({type: 'string', value: 'status', text: '容器状态', dictCode: 'container_status'})
       fieldList.push({type: 'string', value: 'fillStatus', text: '容器填充状态', dictCode: 'fill_status'})
+      fieldList.push({type: 'string', value: 'inLocation', text: '容器填充状态', dictCode: 'inLocation'})
       fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})
       fieldList.push({type: 'datetime', value: 'createTime', text: '创建日期'})
       fieldList.push({type: 'string', value: 'updateBy', text: '更新人', dictCode: ''})
diff --git a/ant-design-vue-jeecg/src/views/system/config/ContainerTypeList.vue b/ant-design-vue-jeecg/src/views/system/config/ContainerTypeList.vue
index f5aba2e..212dc50 100644
--- a/ant-design-vue-jeecg/src/views/system/config/ContainerTypeList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/ContainerTypeList.vue
@@ -49,15 +49,17 @@
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay" v-has="'containerType:deleteBatch'">
           <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete" />
+            <a-icon type="delete"/>
             删除
           </a-menu-item>
         </a-menu>
         <a-button style="margin-left: 8px">
           批量操作
-          <a-icon type="down" />
+          <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+      <j-super-query :fieldList="superFieldList" v-has="'containerType:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -88,7 +90,7 @@
           </a-tag>
         </span>
 
-        <span slot="locationTypes" slot-scope="locationTypes" >
+        <span slot="locationTypes" slot-scope="locationTypes">
           <a-tag v-for="locationType in locationTypes" :key="locationType" color=pink>
             {{ solutionLocationType(locationType) }}
           </a-tag>
@@ -139,10 +141,10 @@
 
 <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 ContainerTypeModal from './modules/ContainerTypeModal'
-import {getCompanyList, getLocationTypeList } from '@/api/api'
+import {getCompanyList, getLocationTypeList} from '@/api/api'
 
 export default {
   name: 'ContainerTypeList',
@@ -163,7 +165,7 @@ export default {
           key: 'rowIndex',
           width: 60,
           align: 'center',
-          customRender: function(t, r, index) {
+          customRender: function (t, r, index) {
             return parseInt(index) + 1
           }
         },
@@ -242,7 +244,7 @@ export default {
           align: 'center',
           fixed: 'right',
           width: 147,
-          scopedSlots: { customRender: 'action' }
+          scopedSlots: {customRender: 'action'}
         }
       ],
       url: {
@@ -261,12 +263,13 @@ export default {
     this.loadFrom()
   },
   computed: {
-    importExcelUrl: function() {
+    importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
     }
   },
   methods: {
-    initDictConfig() {},
+    initDictConfig() {
+    },
     loadFrom() {
       getCompanyList().then((res) => {
         if (res.success) {
@@ -301,19 +304,19 @@ export default {
     },
     getSuperFieldList() {
       let fieldList = []
-      fieldList.push({ type: 'string', value: 'code', text: '编码', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'name', text: '名称', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'companyCode', text: '货主编码', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'locationType', text: '绑定的库位类型', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'length', text: '长', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'width', text: '宽', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'height', text: '高', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'emptyweight', text: '空容器重量', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'maxweight', 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: '更新日期' })
+      fieldList.push({type: 'string', value: 'code', text: '编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'name', text: '名称', dictCode: ''})
+      fieldList.push({type: 'string', value: 'companyCode', text: '货主编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'locationType', text: '绑定的库位类型', dictCode: ''})
+      fieldList.push({type: 'int', value: 'length', text: '长', dictCode: ''})
+      fieldList.push({type: 'int', value: 'width', text: '宽', dictCode: ''})
+      fieldList.push({type: 'int', value: 'height', text: '高', dictCode: ''})
+      fieldList.push({type: 'int', value: 'emptyweight', text: '空容器重量', dictCode: ''})
+      fieldList.push({type: 'int', value: 'maxweight', 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
     }
   }
diff --git a/ant-design-vue-jeecg/src/views/system/config/CustomerList.vue b/ant-design-vue-jeecg/src/views/system/config/CustomerList.vue
index 2a69a15..f1f3aa6 100644
--- a/ant-design-vue-jeecg/src/views/system/config/CustomerList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/CustomerList.vue
@@ -12,8 +12,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" v-has="'customer:add'" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'customer:export'" type="primary" icon="download" @click="handleExportXls('客户管理')">导出</a-button>
-      <a-upload v-has="'customer:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'customer:export'" type="primary" icon="download" @click="handleExportXls('客户管理')">导出
+      </a-button>
+      <a-upload v-has="'customer:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
+                :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -28,6 +30,8 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'customer:superQuery'" @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/CycleCountPreferenceList.vue b/ant-design-vue-jeecg/src/views/system/config/CycleCountPreferenceList.vue
index 852e50e..664646f 100644
--- a/ant-design-vue-jeecg/src/views/system/config/CycleCountPreferenceList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/CycleCountPreferenceList.vue
@@ -12,8 +12,11 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" v-has="'cycleCountPreference:add'" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'cycleCountPreference:export'" type="primary" icon="download" @click="handleExportXls('盘点首选项')">导出</a-button>
-      <a-upload v-has="'cycleCountPreference:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'cycleCountPreference:export'" type="primary" icon="download"
+                @click="handleExportXls('盘点首选项')">导出
+      </a-button>
+      <a-upload v-has="'cycleCountPreference:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -28,6 +31,8 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+      <j-super-query :fieldList="superFieldList" v-has="'cycleCountPreference:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue b/ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue
index 86d4edb..05e143c 100644
--- a/ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue
@@ -41,8 +41,11 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" v-has="'locationHigh:add'" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'locationHigh:export'" type="primary" icon="download" @click="handleExportXls('库位高度管理')">导出</a-button>
-      <a-upload v-has="'locationHigh:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'locationHigh:export'" type="primary" icon="download" @click="handleExportXls('库位高度管理')">
+        导出
+      </a-button>
+      <a-upload v-has="'locationHigh:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -57,6 +60,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'locationHigh:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -88,7 +94,7 @@
           </a-tag>
         </span>
 
-         <span slot="locationTypeCode" slot-scope="locationTypeCode">
+        <span slot="locationTypeCode" slot-scope="locationTypeCode">
           <a-tag :key="locationTypeCode" color=pink>
             {{ solutionLocationType(locationTypeCode) }}
           </a-tag>
@@ -274,11 +280,11 @@ export default {
           this.locationTypeList = res.result
         }
       }),
-      getZoneList().then((res) => {
-        if (res.success) {
-          this.zoneList = res.result
-        }
-      });
+        getZoneList().then((res) => {
+          if (res.success) {
+            this.zoneList = res.result
+          }
+        });
     },
     solutionZoneCode(value) {
       var actions = []
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 1395af4..cdb9ded 100644
--- a/ant-design-vue-jeecg/src/views/system/config/LocationList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/LocationList.vue
@@ -59,7 +59,8 @@
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="库内是否有托盘">
-              <j-dict-select-tag placeholder="请选择库内是否有托盘" v-model="queryParam.haveContainer" dictCode="have_container_in_location"/>
+              <j-dict-select-tag placeholder="请选择库内是否有托盘" v-model="queryParam.haveContainer"
+                                 dictCode="have_container_in_location"/>
             </a-form-item>
           </a-col>
           <template v-if="toggleSearchStatus">
@@ -91,7 +92,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -135,6 +136,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'location:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -265,6 +269,7 @@ export default {
       description: '库位管理页面',
       zoneList: [],
       locationTypeList: [],
+      firstLoad:0,
       // 表头
       columns: [
         {
@@ -406,6 +411,21 @@ export default {
     this.getSuperFieldList()
     this.loadFrom()
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
diff --git a/ant-design-vue-jeecg/src/views/system/config/LocationTypeList.vue b/ant-design-vue-jeecg/src/views/system/config/LocationTypeList.vue
index ca2c299..a8f0c63 100644
--- a/ant-design-vue-jeecg/src/views/system/config/LocationTypeList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/LocationTypeList.vue
@@ -53,15 +53,18 @@
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay" v-has="'locationType:deleteBatch'">
           <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete" />
+            <a-icon type="delete"/>
             删除
           </a-menu-item>
         </a-menu>
         <a-button style="margin-left: 8px">
           批量操作
-          <a-icon type="down" />
+          <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'locationType:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -137,10 +140,10 @@
 
 <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 LocationTypeModal from './modules/LocationTypeModal'
-import { getZoneList } from '@/api/api'
+import {getZoneList} from '@/api/api'
 
 export default {
   name: 'LocationTypeList',
@@ -161,7 +164,7 @@ export default {
           key: 'rowIndex',
           width: 60,
           align: 'center',
-          customRender: function(t, r, index) {
+          customRender: function (t, r, index) {
             return parseInt(index) + 1
           }
         },
@@ -180,7 +183,7 @@ export default {
           align: 'center',
           dataIndex: 'zoneCode',
           key: 'zoneCode',
-          scopedSlots: { customRender: 'zoneCode' }
+          scopedSlots: {customRender: 'zoneCode'}
         },
         {
           title: '长度',
@@ -228,7 +231,7 @@ export default {
           align: 'center',
           fixed: 'right',
           width: 147,
-          scopedSlots: { customRender: 'action' }
+          scopedSlots: {customRender: 'action'}
         }
       ],
       url: {
@@ -252,19 +255,20 @@ export default {
           //slice可以在数组的任何位置进行删除/添加操作
           this.zoneOptions.splice(0, 1)
           for (let i = 0; i < res.result.length; i++) {
-            this.zoneOptions.push({ value: res.result[i].code, text: res.result[i].name })
+            this.zoneOptions.push({value: res.result[i].code, text: res.result[i].name})
           }
         }, 500)
       }
     })
   },
   computed: {
-    importExcelUrl: function() {
+    importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
     }
   },
   methods: {
-    initDictConfig() {},
+    initDictConfig() {
+    },
     solutionZoneCode(value) {
       var actions = []
       Object.keys(this.zoneList).some(key => {
@@ -277,16 +281,16 @@ export default {
     },
     getSuperFieldList() {
       let fieldList = []
-      fieldList.push({ type: 'string', value: 'code', text: '编码', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'name', text: '名称', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'length', text: '长度', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'weight', text: '宽度', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'height', text: '高度', dictCode: '' })
-      fieldList.push({ type: 'int', value: 'maxWeight', 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: '更新日期' })
+      fieldList.push({type: 'string', value: 'code', text: '编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'name', text: '名称', dictCode: ''})
+      fieldList.push({type: 'int', value: 'length', text: '长度', dictCode: ''})
+      fieldList.push({type: 'int', value: 'weight', text: '宽度', dictCode: ''})
+      fieldList.push({type: 'int', value: 'height', text: '高度', dictCode: ''})
+      fieldList.push({type: 'int', value: 'maxWeight', 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
     }
   }
diff --git a/ant-design-vue-jeecg/src/views/system/config/MaterialAreaList.vue b/ant-design-vue-jeecg/src/views/system/config/MaterialAreaList.vue
index bd3de02..1d5ddd6 100644
--- a/ant-design-vue-jeecg/src/views/system/config/MaterialAreaList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/MaterialAreaList.vue
@@ -12,8 +12,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" v-has="'materialArea:add'" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'materialArea:export'" type="primary" icon="download" @click="handleExportXls('物料分区')">导出</a-button>
-      <a-upload v-has="'materialArea:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'materialArea:export'" type="primary" icon="download" @click="handleExportXls('物料分区')">导出
+      </a-button>
+      <a-upload v-has="'materialArea:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -28,6 +30,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'materialArea:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/MaterialList.vue b/ant-design-vue-jeecg/src/views/system/config/MaterialList.vue
index 9644e4e..ab1a7e3 100644
--- a/ant-design-vue-jeecg/src/views/system/config/MaterialList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/MaterialList.vue
@@ -21,7 +21,7 @@
           </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 id="search" type="primary" @click="searchQuery" icon="search">查询</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
             </span>
           </a-col>
@@ -33,8 +33,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'material:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'material:export'" type="primary" icon="download" @click="handleExportXls('物料管理')">导出</a-button>
-      <a-upload v-has="'material:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'material:export'" type="primary" icon="download" @click="handleExportXls('物料管理')">导出
+      </a-button>
+      <a-upload v-has="'material:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
+                :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
         <a-button v-has="'material:print'" @click="batchPrint()" type="primary">打印</a-button>
@@ -50,6 +52,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'material:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -141,6 +146,7 @@ export default {
   data() {
     return {
       description: '物料管理管理页面',
+      firstLoad:0,
       // 表头
       columns: [
         {
@@ -247,6 +253,21 @@ export default {
   created() {
     this.getSuperFieldList();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
diff --git a/ant-design-vue-jeecg/src/views/system/config/MaterialMultipleList.vue b/ant-design-vue-jeecg/src/views/system/config/MaterialMultipleList.vue
index 13fbe40..b2f5689 100644
--- a/ant-design-vue-jeecg/src/views/system/config/MaterialMultipleList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/MaterialMultipleList.vue
@@ -12,8 +12,11 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'materialMultiple:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'materialMultiple:export'" type="primary" icon="download" @click="handleExportXls('物料单位换算')">导出</a-button>
-      <a-upload v-has="'materialMultiple:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'materialMultiple:export'" type="primary" icon="download"
+                @click="handleExportXls('物料单位换算')">导出
+      </a-button>
+      <a-upload v-has="'materialMultiple:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -28,6 +31,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'materialMultiple:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/MaterialTypeList.vue b/ant-design-vue-jeecg/src/views/system/config/MaterialTypeList.vue
index b1988f7..c5e7b9e 100644
--- a/ant-design-vue-jeecg/src/views/system/config/MaterialTypeList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/MaterialTypeList.vue
@@ -28,8 +28,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'materialType:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'materialType:export'" type="primary" icon="download" @click="handleExportXls('物料类别')">导出</a-button>
-      <a-upload v-has="'materialType:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'materialType:export'" type="primary" icon="download" @click="handleExportXls('物料类别')">导出
+      </a-button>
+      <a-upload v-has="'materialType:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -44,6 +46,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'materialType:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/MaterialUnitList.vue b/ant-design-vue-jeecg/src/views/system/config/MaterialUnitList.vue
index 0cb37a9..eec8fe0 100644
--- a/ant-design-vue-jeecg/src/views/system/config/MaterialUnitList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/MaterialUnitList.vue
@@ -33,8 +33,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'materialUnit:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'materialUnit:export'" type="primary" icon="download" @click="handleExportXls('物料单位')">导出</a-button>
-      <a-upload v-has="'materialUnit:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'materialUnit:export'" type="primary" icon="download" @click="handleExportXls('物料单位')">导出
+      </a-button>
+      <a-upload v-has="'materialUnit:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -49,6 +51,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'materialUnit:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/MaterialWarningList.vue b/ant-design-vue-jeecg/src/views/system/config/MaterialWarningList.vue
index 0e95513..2dc2d93 100644
--- a/ant-design-vue-jeecg/src/views/system/config/MaterialWarningList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/MaterialWarningList.vue
@@ -32,8 +32,11 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'materialWarning:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'materialWarning:export'" type="primary" icon="download" @click="handleExportXls('物料预警')">导出</a-button>
-      <a-upload v-has="'materialWarning:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'materialWarning:export'" type="primary" icon="download" @click="handleExportXls('物料预警')">
+        导出
+      </a-button>
+      <a-upload v-has="'materialWarning:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -48,6 +51,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'materialWarning:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue b/ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue
index 8406d99..abc41f8 100644
--- a/ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue
@@ -53,8 +53,11 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" v-has="'parameterConfiguration:add'" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'parameterConfiguration:export'" type="primary" icon="download" @click="handleExportXls('参数配置')">导出</a-button>
-      <a-upload v-has="'parameterConfiguration:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'parameterConfiguration:export'" type="primary" icon="download"
+                @click="handleExportXls('参数配置')">导出
+      </a-button>
+      <a-upload v-has="'parameterConfiguration:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -69,6 +72,9 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+      <j-super-query :fieldList="superFieldList" v-has="'ParameterConfiguration:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
+
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/PortList.vue b/ant-design-vue-jeecg/src/views/system/config/PortList.vue
index d416de4..303ba5e 100644
--- a/ant-design-vue-jeecg/src/views/system/config/PortList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/PortList.vue
@@ -56,6 +56,8 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+      <j-super-query :fieldList="superFieldList" v-has="'port:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/SupplierList.vue b/ant-design-vue-jeecg/src/views/system/config/SupplierList.vue
index 0c77223..a3fec24 100644
--- a/ant-design-vue-jeecg/src/views/system/config/SupplierList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/SupplierList.vue
@@ -39,8 +39,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'supplier:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'supplier:export'" type="primary" icon="download" @click="handleExportXls('供应商管理')">导出</a-button>
-      <a-upload v-has="'supplier:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'supplier:export'" type="primary" icon="download" @click="handleExportXls('供应商管理')">导出
+      </a-button>
+      <a-upload v-has="'supplier:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
+                :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -55,6 +57,8 @@
           <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+
+      <j-super-query :fieldList="superFieldList" v-has="'supplier:superQuery'" @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue b/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue
index e0c23be..6d4023e 100644
--- a/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue
@@ -39,8 +39,10 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'warehouse:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'warehouse:export'" type="primary" icon="download" @click="handleExportXls('仓库')">导出</a-button>
-      <a-upload v-has="'warehouse:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+      <a-button v-has="'warehouse:export'" type="primary" icon="download" @click="handleExportXls('仓库')">导出
+      </a-button>
+      <a-upload v-has="'warehouse:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
+                :action="importExcelUrl"
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
@@ -50,6 +52,8 @@
       <!--        </a-menu>-->
       <!--        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
       <!--      </a-dropdown>-->
+      <j-super-query :fieldList="superFieldList" v-has="'warehouse:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/config/ZoneList.vue b/ant-design-vue-jeecg/src/views/system/config/ZoneList.vue
index 00abf86..73a9135 100644
--- a/ant-design-vue-jeecg/src/views/system/config/ZoneList.vue
+++ b/ant-design-vue-jeecg/src/views/system/config/ZoneList.vue
@@ -20,7 +20,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>
@@ -33,7 +33,8 @@
     <div class="table-operator">
       <a-button v-has="'zone:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
       <a-button v-has="'zone:export'" type="primary" icon="download" @click="handleExportXls('库区管理')"
-        >导出</a-button
+      >导出
+      </a-button
       >
       <a-upload
         v-has="'zone:import'"
@@ -49,15 +50,16 @@
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay" v-has="'zone:deleteBatch'">
           <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete" />
+            <a-icon type="delete"/>
             删除
           </a-menu-item>
         </a-menu>
         <a-button style="margin-left: 8px">
           批量操作
-          <a-icon type="down" />
+          <a-icon type="down"/>
         </a-button>
       </a-dropdown>
+      <j-super-query :fieldList="superFieldList" v-has="'zone:superQuery'" @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -82,7 +84,7 @@
         class="j-table-force-nowrap"
         @change="handleTableChange"
       >
-        <span slot="locationTypeCodes" slot-scope="locationTypeCodes" >
+        <span slot="locationTypeCodes" slot-scope="locationTypeCodes">
           <a-tag v-for="locationTypeCode in locationTypeCodes" :key="locationTypeCode" color=pink>
             {{ solutionLocationType(locationTypeCode) }}
           </a-tag>
@@ -133,10 +135,10 @@
 
 <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 ZoneModal from './modules/ZoneModal'
-import { getLocationTypeList } from '@/api/api'
+import {getLocationTypeList} from '@/api/api'
 
 export default {
   name: 'ZoneList',
@@ -156,7 +158,7 @@ export default {
           key: 'rowIndex',
           width: 60,
           align: 'center',
-          customRender: function(t, r, index) {
+          customRender: function (t, r, index) {
             return parseInt(index) + 1
           }
         },
@@ -203,7 +205,7 @@ export default {
           align: 'center',
           fixed: 'right',
           width: 147,
-          scopedSlots: { customRender: 'action' }
+          scopedSlots: {customRender: 'action'}
         }
       ],
       url: {
@@ -222,22 +224,23 @@ export default {
     this.loadFrom()
   },
   computed: {
-    importExcelUrl: function() {
+    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: 'name', text: '名称', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'companyCode', text: '货主编码', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'locationTypeCode', 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: '更新日期' })
+      fieldList.push({type: 'string', value: 'code', text: '编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'name', text: '名称', dictCode: ''})
+      fieldList.push({type: 'string', value: 'companyCode', text: '货主编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'locationTypeCode', 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
     },
     loadFrom() {
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 ded4c9f..ac8349d 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
@@ -47,7 +47,7 @@
           </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 id="search" 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 ? '收起' : '展开' }}
@@ -70,6 +70,7 @@
       </a-upload>
       <a-button v-has="'inventoryHeader:quickShipmentInventoryHeader'" @click="quickShipment()" type="primary">快速出库</a-button>
       <a-button v-has="'inventoryHeader:together'" @click="together()" type="primary">合托</a-button>
+      <j-super-query :fieldList="superFieldList" v-has="'inventoryHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -183,6 +184,7 @@ export default {
       zoneList: [],
       description: '库存表管理页面',
       zoneOptions:[],
+      firstLoad:0,
       // 表头
       columns: [
         {
@@ -285,6 +287,21 @@ export default {
     this.getSuperFieldList();
     this.loadFrom();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue
index 515c10d..cc08ac0 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue
@@ -6,7 +6,7 @@
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="库区">
-              <a-form-model-item   prop="zoneOptions">
+              <a-form-model-item prop="zoneOptions">
                 <j-multi-select-tag
                   v-model="queryParam.zoneCode"
                   :options="zoneOptions"
@@ -53,11 +53,11 @@
           </template>
           <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 id="search" 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-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
               </a>
             </span>
           </a-col>
@@ -69,7 +69,11 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <!-- <a-button v-has="'inventoryMaterialSummary:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> -->
-      <a-button v-has="'inventoryMaterialSummary:export'" type="primary" icon="download" @click="handleExportXls('库存物料汇总')">导出</a-button>
+      <a-button v-has="'inventoryMaterialSummary:export'" type="primary" icon="download"
+                @click="handleExportXls('库存物料汇总')">导出
+      </a-button>
+      <j-super-query :fieldList="superFieldList" v-has="'inventoryMaterialSummary:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -110,7 +114,7 @@
 
     <a-tabs defaultActiveKey="1">
       <a-tab-pane tab="库存详情" key="1">
-        <InventoryDetailSubTable :mainId="selectedMainId" />
+        <InventoryDetailSubTable :mainId="selectedMainId"/>
       </a-tab-pane>
     </a-tabs>
 
@@ -120,10 +124,10 @@
 
 <script>
 import '@/assets/less/TableExpand.less'
-import { filterObj } from '@/utils/util'
-import { mixinDevice } from '@/utils/mixin'
-import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-import { getCompanyList, getZoneList, ajaxGetDictItems } from '@/api/api'
+import {filterObj} from '@/utils/util'
+import {mixinDevice} from '@/utils/mixin'
+import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import {getCompanyList, getZoneList, ajaxGetDictItems} from '@/api/api'
 // import InventoryDetailList from './InventoryDetailList'
 import InventoryDetailSubTable from './subTables/InventoryDetailSubTable'
 
@@ -136,9 +140,10 @@ export default {
   data() {
     return {
       zoneList: [],
-      zoneOptions:[],
+      zoneOptions: [],
       companyList: [],
       selectedMainId: '',
+      firstLoad:0,
       description: '物料汇总主表管理页面',
       // 表头
       columns: [
@@ -147,14 +152,14 @@ export default {
           align: 'center',
           dataIndex: 'zoneCode',
           key: 'zoneCode',
-          scopedSlots: { customRender: 'zoneCode' }
+          scopedSlots: {customRender: 'zoneCode'}
         },
         {
           title: '货主',
           align: 'center',
           dataIndex: 'companyCode',
           key: 'companyCode',
-          scopedSlots: { customRender: 'companyCode' }
+          scopedSlots: {customRender: 'companyCode'}
         },
         {
           title: '物料编码',
@@ -195,8 +200,23 @@ export default {
     this.getSuperFieldList()
     this.loadFrom()
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
-    importExcelUrl: function() {
+    importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
     }
   },
@@ -239,13 +259,13 @@ export default {
         if (res.success) {
           this.zoneList = res.result
           //延迟半秒执行,避免组件未加载完,数据已经加载完
-          setTimeout(()=>{
+          setTimeout(() => {
             //slice可以在数组的任何位置进行删除/添加操作
             this.zoneOptions.splice(0, 1);
             for (let i = 0; i < res.result.length; i++) {
-              this.zoneOptions.push({value:res.result[i].code,text:res.result[i].name})
+              this.zoneOptions.push({value: res.result[i].code, text: res.result[i].name})
             }
-          },500)
+          }, 500)
         }
       });
       ajaxGetDictItems('box_type').then(res => {
@@ -269,7 +289,7 @@ export default {
       }
     },
     onSelectChange(selectedRowKeys, selectionRows) {
-      this.selectedMainId = selectionRows[0].zoneCode.toString() + "_"  + selectionRows[0].materialCode.toString()
+      this.selectedMainId = selectionRows[0].zoneCode.toString() + "_" + selectionRows[0].materialCode.toString()
       this.selectedRowKeys = selectedRowKeys
       this.selectionRows = selectionRows
     },
@@ -278,16 +298,17 @@ export default {
       this.selectedRowKeys = []
       this.selectionRows = []
     },
-    initDictConfig() {},
+    initDictConfig() {
+    },
     getSuperFieldList() {
       let fieldList = []
-      fieldList.push({ type: 'string', value: 'zoneCode', text: '库区', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'companyCode', text: '货主', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'materialCode', text: '物料编码', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'materialName', text: '物料名称', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'materialSpec', text: '物料规格', dictCode: '' })
-      fieldList.push({ type: 'string', value: 'materialUnit', text: '物料单位', dictCode: '' })
-      fieldList.push({ type: 'BigDecimal', value: 'qty', text: '物料总数', dictCode: '' })
+      fieldList.push({type: 'string', value: 'zoneCode', text: '库区', dictCode: ''})
+      fieldList.push({type: 'string', value: 'companyCode', text: '货主', dictCode: ''})
+      fieldList.push({type: 'string', value: 'materialCode', text: '物料编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'materialName', text: '物料名称', dictCode: ''})
+      fieldList.push({type: 'string', value: 'materialSpec', text: '物料规格', dictCode: ''})
+      fieldList.push({type: 'string', value: 'materialUnit', text: '物料单位', dictCode: ''})
+      fieldList.push({type: 'BigDecimal', value: 'qty', text: '物料总数', dictCode: ''})
       this.superFieldList = fieldList
     }
   }
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue
index 4307ba3..b93a253 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue
@@ -6,7 +6,7 @@
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="库区">
-              <a-form-model-item   prop="zoneOptions">
+              <a-form-model-item prop="zoneOptions">
                 <j-multi-select-tag
                   v-model="queryParam.zoneCode"
                   :options="zoneOptions"
@@ -51,12 +51,14 @@
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="交易类型">
-              <j-dict-select-tag placeholder="请选择交易类型" v-model="queryParam.type" dictCode="inventory_transaction_type"/>
+              <j-dict-select-tag placeholder="请选择交易类型" v-model="queryParam.type"
+                                 dictCode="inventory_transaction_type"/>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="库存状态">
-              <j-dict-select-tag placeholder="请选择库存状态" v-model="queryParam.inventoryStatus" dictCode="inventory_status"/>
+              <j-dict-select-tag placeholder="请选择库存状态" v-model="queryParam.inventoryStatus"
+                                 dictCode="inventory_status"/>
             </a-form-item>
           </a-col>
           <template v-if="toggleSearchStatus">
@@ -102,7 +104,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -117,10 +119,15 @@
 
     <!-- 操作按钮区域 -->
     <div class="table-operator">
-      <a-button v-has="'inventoryTransaction:export'" type="primary" icon="download" @click="handleExportXls('库存交易记录')">导出</a-button>
-      <a-upload v-has="'inventoryTransaction:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+      <a-button v-has="'inventoryTransaction:export'" type="primary" icon="download"
+                @click="handleExportXls('库存交易记录')">导出
+      </a-button>
+      <a-upload v-has="'inventoryTransaction:import'" name="file" :showUploadList="false" :multiple="false"
+                :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
+      <j-super-query :fieldList="superFieldList" v-has="'inventoryTransaction:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -218,7 +225,8 @@ export default {
       description: '库存交易记录管理页面',
       companyList: [],
       zoneList: [],
-      zoneOptions:[],
+      zoneOptions: [],
+      firstLoad:0,
       // 表头
       columns: [
         {
@@ -233,7 +241,7 @@ export default {
           align: 'center',
           dataIndex: 'zoneCode',
           key: 'zoneCode',
-          scopedSlots: { customRender: 'zoneCode' }
+          scopedSlots: {customRender: 'zoneCode'}
         },
         // {
         //   title: '货主',
@@ -363,6 +371,21 @@ export default {
     this.getSuperFieldList();
     this.loadFrom();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
@@ -386,13 +409,13 @@ export default {
         if (res.success) {
           this.zoneList = res.result
           //延迟半秒执行,避免组件未加载完,数据已经加载完
-          setTimeout(()=>{
+          setTimeout(() => {
             //slice可以在数组的任何位置进行删除/添加操作
             this.zoneOptions.splice(0, 1);
             for (let i = 0; i < res.result.length; i++) {
-              this.zoneOptions.push({value:res.result[i].code,text:res.result[i].name})
+              this.zoneOptions.push({value: res.result[i].code, text: res.result[i].name})
             }
-          },500)
+          }, 500)
         }
       });
       getCompanyList().then((res) => {
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
index 5eb753d..7999cdf 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
@@ -6,7 +6,7 @@
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="库区">
-              <a-form-model-item   prop="zoneOptions">
+              <a-form-model-item prop="zoneOptions">
                 <j-multi-select-tag
                   v-model="queryParam.zoneCode"
                   :options="zoneOptions"
@@ -105,7 +105,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -120,6 +120,7 @@
 
     <!-- 操作按钮区域 -->
     <div class="table-operator">
+
       <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
       <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')"
       >导出
@@ -137,15 +138,14 @@
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
       <a-button v-has="'inventoryDetail:controller'" @click='controller()' type='primary'>冻结</a-button>
-      <a-button v-has="'inventoryDetail:releaseController'" @click='releaseController()' type='primary'>释放冻结</a-button>
-      <a-button v-has="'inventoryHeader:quickShipmentInventoryHeader'" @click='quickShipment()' type='primary'>快速出库</a-button>
+      <a-button v-has="'inventoryDetail:releaseController'" @click='releaseController()' type='primary'>释放冻结
+      </a-button>
+      <a-button v-has="'inventoryHeader:quickShipmentInventoryHeader'" @click='quickShipment()' type='primary'>
+        快速出库
+      </a-button>
       <!-- 高级查询区域 -->
-      <j-super-query
-        :fieldList="superFieldList"
-        v-has="'inventoryDetail:superSearch'"
-        ref="superQueryModal"
-        @handleSuperQuery="handleSuperQuery"
-      ></j-super-query>
+      <j-super-query :fieldList="superFieldList" v-has="'inventoryDetail:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
       <!--      <a-dropdown v-if="selectedRowKeys.length > 0">-->
       <!--        <a-menu slot="overlay">-->
       <!--          <a-menu-item v-has="'inventoryDetail:delete'" key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->
@@ -156,10 +156,11 @@
 
     <!-- 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>
+      <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"
@@ -220,7 +221,8 @@
         </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>
+          <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">下载
+          </a-button>
         </template>
         <span slot="action" slot-scope="text, record">
           <a v-has="'inventoryDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
@@ -242,7 +244,7 @@ import {mixinDevice} from '@/utils/mixin'
 import {JeecgListMixin} from '@/mixins/JeecgListMixin'
 import SimpleInventoryDetailModal from './modules/SimpleInventoryDetailModal'
 import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-import {getCompanyList, getZoneList, } from "@api/api";
+import {getCompanyList, getZoneList,} from "@api/api";
 import {postAction} from '@/api/manage'
 import QuickShipmentDetailModel from "@views/system/shipment/modules/QuickShipmentDetailModal";
 
@@ -256,8 +258,9 @@ export default {
   data() {
     return {
       zoneList: [],
-      zoneOptions:[],
+      zoneOptions: [],
       companyList: [],
+      firstLoad:0,
       description: '库存详情管理页面',
       // 表头
       columns: [
@@ -409,13 +412,28 @@ export default {
       },
       dictOptions: {},
       superFieldList: [],
-      selectRecord:[],
+      selectRecord: [],
     }
   },
   created() {
     this.loadFrom()
     this.getSuperFieldList()
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
@@ -438,13 +456,13 @@ export default {
         if (res.success) {
           this.zoneList = res.result
           //延迟半秒执行,避免组件未加载完,数据已经加载完
-          setTimeout(()=>{
+          setTimeout(() => {
             //slice可以在数组的任何位置进行删除/添加操作
             this.zoneOptions.splice(0, 1);
             for (let i = 0; i < res.result.length; i++) {
-              this.zoneOptions.push({value:res.result[i].code,text:res.result[i].name})
+              this.zoneOptions.push({value: res.result[i].code, text: res.result[i].name})
             }
-          },500)
+          }, 500)
         }
       });
       getCompanyList().then(res => {
@@ -453,7 +471,7 @@ export default {
         }
       })
     },
-    controller: function() {
+    controller: function () {
       if (this.selectedRowKeys.length <= 0) {
         this.$message.warning('请选择一条记录!')
       } else {
@@ -461,7 +479,7 @@ export default {
         this.$confirm({
           title: '确认冻结',
           content: '是否冻结选中数据?',
-          onOk: function() {
+          onOk: function () {
             that.loading = true;
             postAction(that.url.controller, that.selectedRowKeys).then((res) => {
               if (res.success) {
@@ -489,7 +507,7 @@ export default {
         this.$confirm({
           title: '释放冻结',
           content: '释放冻结选中数据?',
-          onOk: function() {
+          onOk: function () {
             that.loading = true;
             postAction(that.url.releaseController, that.selectedRowKeys).then((res) => {
               if (res.success) {
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 08e88f0..1927cfb 100644
--- a/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue
+++ b/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue
@@ -6,7 +6,8 @@
         <a-row :gutter="24">
           <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.apiName'>
+              <a-select show-search placeholder='请输入接口名称' option-filter-prop='children'
+                        v-model='queryParam.apiName'>
                 <a-select-option v-for='name in apiNameList' :key='name' :value='name'>
                   {{ name }}
                 </a-select-option>
@@ -73,7 +74,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>
@@ -85,7 +86,10 @@
     <!-- 操作按钮区域 -->
     <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-button v-has="'apiLog:export'" type="primary" icon="download" @click="handleExportXls('接口日志')">导出
+      </a-button>
+      <j-super-query :fieldList="superFieldList" v-has="'apiLog:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- table区域-begin -->
@@ -106,22 +110,40 @@
         <template :slot="expandedRowRender" slot-scope="record">
           <div style="margin: 0">
             <div>
-              <a-button @click="copyToClipboard(record.requestHeader)" type="link" icon="copy" style="vertical-align: revert;"></a-button>
-              <span style="vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color:#b3b3b3;">请求头:</span>
-              <a-button @click="record.expandHeader = !record.expandHeader" type="link" icon="down-circle" style="vertical-align: revert;"></a-button>
-              <span v-if="record.expandHeader" style="padding:0 0 0 32px;display: block; vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color:#b3b3b3;">{{ record.requestHeader }}</span>
+              <a-button @click="copyToClipboard(record.requestHeader)" type="link" icon="copy"
+                        style="vertical-align: revert;"></a-button>
+              <span
+                style="vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color:#b3b3b3;">请求头:</span>
+              <a-button @click="record.expandHeader = !record.expandHeader" type="link" icon="down-circle"
+                        style="vertical-align: revert;"></a-button>
+              <span v-if="record.expandHeader"
+                    style="padding:0 0 0 32px;display: block; vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color:#b3b3b3;">{{
+                  record.requestHeader
+                }}</span>
             </div>
             <div>
-              <a-button @click="copyToClipboard(record.requestBody)" type="link" icon="copy" style="vertical-align: revert;"></a-button>
-              <span style="vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color: saddlebrown;">请求内容:{{ record.requestBody }}</span>
+              <a-button @click="copyToClipboard(record.requestBody)" type="link" icon="copy"
+                        style="vertical-align: revert;"></a-button>
+              <span
+                style="vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color: saddlebrown;">请求内容:{{
+                  record.requestBody
+                }}</span>
             </div>
             <div>
-              <a-button @click="copyToClipboard(record.responseBody)" type="link" icon="copy" style="vertical-align: revert;"></a-button>
-              <span style="vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color:#0066CC;">响应内容:{{ record.responseBody }}</span>
+              <a-button @click="copyToClipboard(record.responseBody)" type="link" icon="copy"
+                        style="vertical-align: revert;"></a-button>
+              <span
+                style="vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color:#0066CC;">响应内容:{{
+                  record.responseBody
+                }}</span>
             </div>
-            <div v-if="record.exception" >
-              <a-button @click="copyToClipboard(record.exception)" type="link" icon="copy" style="vertical-align: revert;"></a-button>
-              <span style="vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color:red">异常堆栈信息:{{ record.exception }}</span>
+            <div v-if="record.exception">
+              <a-button @click="copyToClipboard(record.exception)" type="link" icon="copy"
+                        style="vertical-align: revert;"></a-button>
+              <span
+                style="vertical-align: initial; word-break:break-all; white-space:pre-wrap; overflow:hidden; color:red">异常堆栈信息:{{
+                  record.exception
+                }}</span>
             </div>
           </div>
         </template>
@@ -139,8 +161,8 @@
 <script>
 import moment from 'moment'
 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 {getApiNameList} from '@api/api'
@@ -238,7 +260,7 @@ export default {
     this.expandedRowRender = "expandedRowRender";
   },
   computed: {
-    importExcelUrl: function() {
+    importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
     }
   },
@@ -272,26 +294,27 @@ export default {
 
       clipboard.onClick(event); // 添加这一行来触发点击事件
     },
-    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: '请求方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: '创建日期' })
+      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/ApkInfoList.vue b/ant-design-vue-jeecg/src/views/system/monitor/ApkInfoList.vue
index 7ec5db3..137deaf 100644
--- a/ant-design-vue-jeecg/src/views/system/monitor/ApkInfoList.vue
+++ b/ant-design-vue-jeecg/src/views/system/monitor/ApkInfoList.vue
@@ -53,23 +53,31 @@
       </a-upload>
       <!--<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
       <a-button type="primary" icon="download" @click="handleExportXls('apk_info')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
+                @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
       <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <j-super-query :fieldList="superFieldList" ref="superQueryModal"
+                     v-has="'apkInfo:superQuery'" @handleSuperQuery="handleSuperQuery"></j-super-query>
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay">
-          <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>
 
     <!-- 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>项
+        <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>
 
@@ -92,7 +100,8 @@
         </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;"/>
+          <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>
@@ -110,9 +119,9 @@
         <span slot="action" slot-scope="text, record">
           <a @click="handleEdit(record)">编辑</a>&nbsp;&nbsp;
 <a @click="handleDetail(record)">详情</a>
-          <a-divider type="vertical" />
+          <a-divider type="vertical"/>
           <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
             <a-menu slot="overlay">
               <a-menu-item>
                 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
@@ -131,147 +140,147 @@
 </template>
 
 <script>
-  import {httpAction, getAction} from '@/api/manage'
-  import '@/assets/less/TableExpand.less'
-  import { mixinDevice } from '@/utils/mixin'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import ApkInfoModal from './modules/ApkInfoModal'
+import {httpAction, getAction} from '@/api/manage'
+import '@/assets/less/TableExpand.less'
+import {mixinDevice} from '@/utils/mixin'
+import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import ApkInfoModal from './modules/ApkInfoModal'
 
-  export default {
-    name: 'ApkInfoList',
-    mixins:[JeecgListMixin, mixinDevice],
-    components: {
-      ApkInfoModal
-    },
-    data () {
-      return {
-        description: 'apk_info管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
-            }
-          },
-          {
-            title:'应用名称',
-            align:"center",
-            dataIndex: 'pkgname'
-          },
-          {
-            title:'版本号',
-            align:"center",
-            dataIndex: 'versioncode'
-          },
-          {
-            title:'版本名称',
-            align:"center",
-            dataIndex: 'versionname'
-          },
-          {
-            title:'下载地址',
-            align:"center",
-            dataIndex: 'url',
-            customRender: function (t, r, index) {
-              return window._CONFIG['domianURL'] + t
-            }
-          },
-          {
-            title:'md5校验码',
-            align:"center",
-            dataIndex: 'md5'
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' }
+export default {
+  name: 'ApkInfoList',
+  mixins: [JeecgListMixin, mixinDevice],
+  components: {
+    ApkInfoModal
+  },
+  data() {
+    return {
+      description: 'apk_info管理页面',
+      // 表头
+      columns: [
+        {
+          title: '#',
+          dataIndex: '',
+          key: 'rowIndex',
+          width: 60,
+          align: "center",
+          customRender: function (t, r, index) {
+            return parseInt(index) + 1;
           }
-        ],
-        url: {
-          list: "/monitor/apkinfo/list",
-          delete: "/monitor/apkinfo/delete",
-          deleteBatch: "/monitor/apkinfo/deleteBatch",
-          exportXlsUrl: "/monitor/apkinfo/exportXls",
-          importExcelUrl: "monitor/apkinfo/importExcel",
-          upload: "/sys/common/upload",
-          parse: "/monitor/apkinfo/parseApk"
         },
-        dictOptions:{},
-        superFieldList:[],
-      }
-    },
-    created() {
+        {
+          title: '应用名称',
+          align: "center",
+          dataIndex: 'pkgname'
+        },
+        {
+          title: '版本号',
+          align: "center",
+          dataIndex: 'versioncode'
+        },
+        {
+          title: '版本名称',
+          align: "center",
+          dataIndex: 'versionname'
+        },
+        {
+          title: '下载地址',
+          align: "center",
+          dataIndex: 'url',
+          customRender: function (t, r, index) {
+            return window._CONFIG['domianURL'] + t
+          }
+        },
+        {
+          title: 'md5校验码',
+          align: "center",
+          dataIndex: 'md5'
+        },
+        {
+          title: '操作',
+          dataIndex: 'action',
+          align: "center",
+          fixed: "right",
+          width: 147,
+          scopedSlots: {customRender: 'action'}
+        }
+      ],
+      url: {
+        list: "/monitor/apkinfo/list",
+        delete: "/monitor/apkinfo/delete",
+        deleteBatch: "/monitor/apkinfo/deleteBatch",
+        exportXlsUrl: "/monitor/apkinfo/exportXls",
+        importExcelUrl: "monitor/apkinfo/importExcel",
+        upload: "/sys/common/upload",
+        parse: "/monitor/apkinfo/parseApk"
+      },
+      dictOptions: {},
+      superFieldList: [],
+    }
+  },
+  created() {
     this.getSuperFieldList();
+  },
+  computed: {
+    uploadAction() {
+      return window._CONFIG['domianURL'] + this.url.upload;
     },
-    computed: {
-      uploadAction() {
-        return window._CONFIG['domianURL'] + this.url.upload;
-      },
-      importExcelUrl: function(){
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      },
+    importExcelUrl: function () {
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
     },
-    methods: {
-      beforeUpload(file) {
-        var fileType = file.type;
-        if (fileType === 'image') {
-          if (fileType.indexOf('image') < 0) {
-            this.$message.warning('请上传图片');
-            return false;
-          }
-        } else if (fileType === 'file') {
-          if (fileType.indexOf('image') >= 0) {
-            this.$message.warning('请上传文件');
-            return false;
-          }
+  },
+  methods: {
+    beforeUpload(file) {
+      var fileType = file.type;
+      if (fileType === 'image') {
+        if (fileType.indexOf('image') < 0) {
+          this.$message.warning('请上传图片');
+          return false;
         }
-        return true
-      },
-      handleChange(info) {
-        if (info.file.status === 'done') {
-          if (info.file.response.success) {
-            this.loadData()
-            this.$message.success(`${info.file.name} 上传成功!`);
-            this.$options.methods.parseApk(this, info.file.name)
-          } else {
-            this.$message.error(`${info.file.response.message}`);
-          }
-        } else if (info.file.status === 'error') {
+      } else if (fileType === 'file') {
+        if (fileType.indexOf('image') >= 0) {
+          this.$message.warning('请上传文件');
+          return false;
+        }
+      }
+      return true
+    },
+    handleChange(info) {
+      if (info.file.status === 'done') {
+        if (info.file.response.success) {
+          this.loadData()
+          this.$message.success(`${info.file.name} 上传成功!`);
+          this.$options.methods.parseApk(this, info.file.name)
+        } else {
           this.$message.error(`${info.file.response.message}`);
         }
-      },
+      } else if (info.file.status === 'error') {
+        this.$message.error(`${info.file.response.message}`);
+      }
+    },
 
-      parseApk(parent, filename){
-        getAction(parent.url.parse, {filename: filename}).then((res) => {
-          if (res.success) {
+    parseApk(parent, filename) {
+      getAction(parent.url.parse, {filename: filename}).then((res) => {
+        if (res.success) {
           parent.loadData()
-        }else{
+        } else {
           alert("解析apk失败!")
         }
       })
-      },
-      initDictConfig(){
-      },
-      getSuperFieldList(){
-        let fieldList=[];
-        fieldList.push({type:'string',value:'pkgname',text:'应用名称',dictCode:''})
-        fieldList.push({type:'int',value:'versioncode',text:'版本号',dictCode:''})
-        fieldList.push({type:'string',value:'versionname',text:'版本名称',dictCode:''})
-        fieldList.push({type:'string',value:'url',text:'下载地址',dictCode:''})
-        fieldList.push({type:'string',value:'md5',text:'md5校验码',dictCode:''})
-        this.superFieldList = fieldList
-      }
+    },
+    initDictConfig() {
+    },
+    getSuperFieldList() {
+      let fieldList = [];
+      fieldList.push({type: 'string', value: 'pkgname', text: '应用名称', dictCode: ''})
+      fieldList.push({type: 'int', value: 'versioncode', text: '版本号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'versionname', text: '版本名称', dictCode: ''})
+      fieldList.push({type: 'string', value: 'url', text: '下载地址', dictCode: ''})
+      fieldList.push({type: 'string', value: 'md5', text: 'md5校验码', dictCode: ''})
+      this.superFieldList = fieldList
     }
   }
+}
 </script>
 <style scoped>
-  @import '~@assets/less/common.less';
+@import '~@assets/less/common.less';
 </style>
\ No newline at end of file
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 ebca003..ad85722 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-input placeholder="请选择业务类型" v-model="queryParam.bizType" />
+              <j-input placeholder="请选择业务类型" v-model="queryParam.bizType"/>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -35,21 +35,31 @@
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="操作结果状态">
-              <j-dict-select-tag placeholder="请输入操作结果状态容" v-model="queryParam.operationStatus" dictCode="operation_status"/>
+              <j-dict-select-tag placeholder="请输入操作结果状态容" v-model="queryParam.operationStatus"
+                                 dictCode="operation_status"/>
             </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 v-has="'operationLog:export'" type="primary" @click="handleExportXls('操作记录')" icon="download" style="margin-left: 8px">导出</a-button>
+              <a-button v-has="'operationLog:export'" type="primary" @click="handleExportXls('操作记录')"
+                        icon="download" style="margin-left: 8px">导出</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
             </span>
           </a-col>
+
         </a-row>
+
       </a-form>
     </div>
     <!-- 查询区域-END -->
 
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <j-super-query :fieldList="superFieldList" v-has="'operationLog:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
+    </div>
     <!-- table区域-begin -->
     <div>
       <a-table
@@ -70,7 +80,8 @@
         </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;"/>
+          <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>
@@ -94,130 +105,131 @@
   </a-card>
 </template>
 
-<script>
-  import {filterObj} from '@/utils/util';
-  import '@/assets/less/TableExpand.less'
-  import { mixinDevice } from '@/utils/mixin'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import OperationLogModal from './modules/OperationLogModal'
-  import JEllipsis from "@comp/jeecg/JEllipsis"
 
-  export default {
-    name: 'OperationLogList',
-    mixins:[JeecgListMixin, mixinDevice],
-    components: {
-      OperationLogModal,
-      JEllipsis
-    },
-    data () {
-      let ellipsis1 = (v, l = 80) => (<j-ellipsis value={v} length={l}/>)
-      return {
-        description: '操作记录管理页面',
-        // 表头
-        columns: [
-          {
-            title:'业务ID',
-            align:"center",
-            dataIndex: 'bizId',
-            sorter: true,
-          },
-          {
-            title:'业务类型',
-            align:"center",
-            dataIndex: 'bizType'
-          },
-          {
-            title:'业务标签',
-            align:"center",
-            dataIndex: 'bizTag'
-          },
-          {
-            title:'操作内容',
-            align:"center",
-            dataIndex: 'operationMsg',
-            customRender: (t) => ellipsis1(t)
-          },
-          {
-            title:'操作时间',
-            align:"center",
-            dataIndex: 'operationTime'
-          },
-          {
-            title:'操作耗时',
-            align:"center",
-            dataIndex: 'operationCostTime'
-          },
-          {
-            title:'操作人姓名',
-            align:"center",
-            dataIndex: 'operatorName'
-          },
-          {
-            title:'操作结果状态',
-            align:"center",
-            dataIndex: 'operationStatus_dictText'
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align: "center",
-            fixed: "right",
-            width: 80,
-            scopedSlots: {customRender: 'action'}
-          }
-        ],
-        url: {
-          list: "/config/operationLog/list",
-          delete: "/config/operationLog/delete",
-          deleteBatch: "/config/operationLog/deleteBatch",
-          exportXlsUrl: "/config/operationLog/exportXls",
-          importExcelUrl: "config/operationLog/importExcel",
+<script>
+import {filterObj} from '@/utils/util';
+import '@/assets/less/TableExpand.less'
+import {mixinDevice} from '@/utils/mixin'
+import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import OperationLogModal from './modules/OperationLogModal'
+import JEllipsis from "@comp/jeecg/JEllipsis"
 
+export default {
+  name: 'OperationLogList',
+  mixins: [JeecgListMixin, mixinDevice],
+  components: {
+    OperationLogModal,
+    JEllipsis
+  },
+  data() {
+    let ellipsis1 = (v, l = 80) => (<j-ellipsis value={v} length={l}/>)
+    return {
+      description: '操作记录管理页面',
+      // 表头
+      columns: [
+        {
+          title: '业务ID',
+          align: "center",
+          dataIndex: 'bizId',
+          sorter: true,
         },
-        dictOptions:{},
-        superFieldList:[],
-      }
-    },
-    created() {
-      this.getSuperFieldList();
-    },
-    computed: {
-      importExcelUrl: function(){
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      },
-    },
-    methods: {
-      getQueryParams() {
-        // 重写查询条件
-        let sqp = {}
-        if (this.superQueryParams) {
-          sqp['superQueryParams'] = encodeURI(this.superQueryParams)
-          sqp['superQueryMatchType'] = this.superQueryMatchType
+        {
+          title: '业务类型',
+          align: "center",
+          dataIndex: 'bizType'
+        },
+        {
+          title: '业务标签',
+          align: "center",
+          dataIndex: 'bizTag'
+        },
+        {
+          title: '操作内容',
+          align: "center",
+          dataIndex: 'operationMsg',
+          customRender: (t) => ellipsis1(t)
+        },
+        {
+          title: '操作时间',
+          align: "center",
+          dataIndex: 'operationTime'
+        },
+        {
+          title: '操作耗时',
+          align: "center",
+          dataIndex: 'operationCostTime'
+        },
+        {
+          title: '操作人姓名',
+          align: "center",
+          dataIndex: 'operatorName'
+        },
+        {
+          title: '操作结果状态',
+          align: "center",
+          dataIndex: 'operationStatus_dictText'
+        },
+        {
+          title: '操作',
+          dataIndex: 'action',
+          align: "center",
+          fixed: "right",
+          width: 80,
+          scopedSlots: {customRender: 'action'}
         }
-        var param = Object.assign(sqp, this.queryParam, {}, this.filters)
-        param.field = this.getQueryField()
-        param.pageNo = this.ipagination.current
-        param.pageSize = this.ipagination.pageSize
-        return filterObj(param)
-      },
-      initDictConfig(){
+      ],
+      url: {
+        list: "/config/operationLog/list",
+        delete: "/config/operationLog/delete",
+        deleteBatch: "/config/operationLog/deleteBatch",
+        exportXlsUrl: "/config/operationLog/exportXls",
+        importExcelUrl: "config/operationLog/importExcel",
+
       },
-      getSuperFieldList(){
-        let fieldList=[];
-        fieldList.push({type:'string',value:'bizId',text:'业务ID',dictCode:''})
-        fieldList.push({type:'string',value:'bizType',text:'业务类型',dictCode:''})
-        fieldList.push({type:'string',value:'operationMsg',text:'操作内容',dictCode:''})
-        fieldList.push({type:'datetime',value:'operationTime',text:'操作时间'})
-        fieldList.push({type:'int',value:'operationCostTime',text:'操作耗时',dictCode:''})
-        fieldList.push({type:'string',value:'contentReturn',text:'方法返回内容',dictCode:''})
-        fieldList.push({type:'string',value:'contentException',text:'方法异常内容',dictCode:''})
-        fieldList.push({type:'string',value:'operatorName',text:'操作人姓名',dictCode:''})
-        fieldList.push({type:'int',value:'operationStatus',text:'操作结果状态',dictCode:'operation_status'})
-        this.superFieldList = fieldList
+      dictOptions: {},
+      superFieldList: [],
+    }
+  },
+  created() {
+    this.getSuperFieldList();
+  },
+  computed: {
+    importExcelUrl: function () {
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    },
+  },
+  methods: {
+    getQueryParams() {
+      // 重写查询条件
+      let sqp = {}
+      if (this.superQueryParams) {
+        sqp['superQueryParams'] = encodeURI(this.superQueryParams)
+        sqp['superQueryMatchType'] = this.superQueryMatchType
       }
+      var param = Object.assign(sqp, this.queryParam, {}, this.filters)
+      param.field = this.getQueryField()
+      param.pageNo = this.ipagination.current
+      param.pageSize = this.ipagination.pageSize
+      return filterObj(param)
+    },
+    initDictConfig() {
+    },
+    getSuperFieldList() {
+      let fieldList = [];
+      fieldList.push({type: 'string', value: 'bizId', text: '业务ID', dictCode: ''})
+      fieldList.push({type: 'string', value: 'bizType', text: '业务类型', dictCode: ''})
+      fieldList.push({type: 'string', value: 'operationMsg', text: '操作内容', dictCode: ''})
+      fieldList.push({type: 'datetime', value: 'operationTime', text: '操作时间'})
+      fieldList.push({type: 'int', value: 'operationCostTime', text: '操作耗时', dictCode: ''})
+      fieldList.push({type: 'string', value: 'contentReturn', text: '方法返回内容', dictCode: ''})
+      fieldList.push({type: 'string', value: 'contentException', text: '方法异常内容', dictCode: ''})
+      fieldList.push({type: 'string', value: 'operatorName', text: '操作人姓名', dictCode: ''})
+      fieldList.push({type: 'int', value: 'operationStatus', text: '操作结果状态', dictCode: 'operation_status'})
+      this.superFieldList = fieldList
     }
   }
+}
 </script>
 <style scoped>
-  @import '~@assets/less/common.less';
+@import '~@assets/less/common.less';
 </style>
\ No newline at end of file
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 5eeb08d..9a21754 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
@@ -52,7 +52,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -75,6 +75,8 @@
       <a-button v-has="'receiptContainerHeader:createTask'" @click="createBatchTask" type="primary" >批量生成任务</a-button>
       <a-button v-has="'receiptContainerHeader:delete'" @click="cancelBatchTask" type="primary" >批量取消组盘</a-button>
       <a-button v-has="'receiptContainerHeader:suppleReceipt'" @click="suppleReceipt" type="primary" >补充入库</a-button>
+      <j-super-query :fieldList="superFieldList" v-has="'receiptContainerHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+
     </div>
 
     <!-- table区域-begin -->
@@ -183,6 +185,7 @@ export default {
       selectIndex: null,
       description: '入库组盘管理页面',
       querySource: {},
+      firstLoad:0,
       isorter: {
         column: 'status',
         order: 'asc',
@@ -285,6 +288,21 @@ export default {
   created() {
     this.getSuperFieldList();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptDetailList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptDetailList.vue
index ca53e87..f30ea55 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptDetailList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptDetailList.vue
@@ -170,6 +170,11 @@ export default {
           dataIndex: 'taskQty'
         },
         {
+          title: '入库数量',
+          align: "center",
+          dataIndex: 'receiptQty'
+        },
+        {
           title: '库存状态',
           align: "center",
           dataIndex: 'inventoryStatus_dictText',
diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue
index 70dcb24..5c7e071 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue
@@ -102,6 +102,9 @@
                 @change='handleImportExcel'>
         <!--        <a-button type="primary" icon="import">导入</a-button>-->
       </a-upload>
+
+      <j-super-query :fieldList="superFieldList" v-has="'receiptHeaderHistory:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue
index 29755e9..065876b 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue
@@ -102,6 +102,8 @@
         <a-button type="primary" icon="import">导入</a-button>
         <a-button v-has="'receiptHeader:print'" @click="batchPrint()" type="primary">打印</a-button>
       </a-upload>
+      <j-super-query :fieldList="superFieldList" v-has="'receiptHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+
     </div>
 
     <!-- table区域-begin -->
@@ -254,6 +256,7 @@ export default {
       receiptTypeList: [],
       supplierList: [],
       flowOff:'',
+      firstLoad:0,
       // 表头
       columns: [
         {
@@ -392,6 +395,10 @@ export default {
     }
   },
   mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
     //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
     let timeSearch=setInterval(()=>{
       let eleSearch= document.getElementById("search");
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 6a74c09..3af08ca 100644
--- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
@@ -53,7 +53,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -76,6 +76,8 @@
       </a-upload>
       <a-button @click="createBatchTask" type="primary" >批量生成任务</a-button>
       <a-button @click="cancelBatchTask" type="primary" >批量取消配盘</a-button>
+      <j-super-query :fieldList="superFieldList" v-has="'shipmentContainerHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+
     </div>
 
     <!-- table区域-begin -->
@@ -160,6 +162,7 @@ export default {
       querySource: {},
       portList: [],
       hh:'123',
+      firstLoad:0,
       // 表头
       columns: [
         {
@@ -253,6 +256,21 @@ export default {
   created() {
     this.getSuperFieldList();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
diff --git a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderHistoryList.vue b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderHistoryList.vue
index a965bc8..674c036 100644
--- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderHistoryList.vue
+++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderHistoryList.vue
@@ -106,6 +106,8 @@
                 @change="handleImportExcel">
         <!--        <a-button type="primary" icon="import">导入</a-button>-->
       </a-upload>
+      <j-super-query :fieldList="superFieldList" v-has="'shipmentHeaderHistory:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+
     </div>
 
     <!-- table区域-begin -->
diff --git a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue
index a2efa50..ddda8b3 100644
--- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue
@@ -103,7 +103,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -128,6 +128,8 @@
 <!--      &lt;!&ndash; 高级查询区域 &ndash;&gt;-->
 <!--      <j-super-query :fieldList="superFieldList" ref="superQueryModal"-->
 <!--                     @handleSuperQuery="handleSuperQuery"></j-super-query>-->
+      <j-super-query :fieldList="superFieldList" v-has="'shipmentHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+
     </div>
 
     <!-- table区域-begin -->
@@ -292,6 +294,7 @@ export default {
       username: '',
       flowStatus: '',
       flowOff:'',
+      firstLoad:0,
       // 表头
       columns: [
         {
@@ -429,6 +432,21 @@ export default {
     this.username = store.getters.userInfo.username
     this.getDocumentAduitFlowStaus();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
diff --git a/ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountHeaderList.vue b/ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountHeaderList.vue
index 0b3b830..5f1d239 100644
--- a/ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountHeaderList.vue
@@ -12,22 +12,34 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button v-has="'cycleCountHeader:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'cycleCountHeader:export'" type="primary" icon="download" @click="handleExportXls('盘点主表')">导出</a-button>
-      <a-upload v-has="'cycleCountHeader:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+      <a-button v-has="'cycleCountHeader:export'" type="primary" icon="download" @click="handleExportXls('盘点主表')">
+        导出
+      </a-button>
+      <a-upload v-has="'cycleCountHeader: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">
-          <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>
+
+      <j-super-query :fieldList="superFieldList" v-has="'cycleCountHeader:superQuery'"
+                     @handleSuperQuery="handleSuperQuery"/>
     </div>
 
     <!-- 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> 项
+        <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>
 
@@ -74,7 +86,8 @@
         </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;"/>
+          <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>
@@ -89,10 +102,11 @@
           </a-button>
         </template>
         <span slot="action" slot-scope="text, record">
-          <j-select-multi-cycle-count v-if="record.statusCyc!=100"  :query-config="selectUserQueryConfig" :test-config="record.id" :header-code="record.code"/>
-          <a-divider type="vertical"  v-if="record.statusCyc!=100"  />
+          <j-select-multi-cycle-count v-if="record.statusCyc!=100" :query-config="selectUserQueryConfig"
+                                      :test-config="record.id" :header-code="record.code"/>
+          <a-divider type="vertical" v-if="record.statusCyc!=100"/>
           <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
             <a-menu slot="overlay">
               <a-menu-item>
                 <a v-has="'cycleCountHeader:edit'" @click="handleEdit(record)">编辑</a>
@@ -101,7 +115,8 @@
                 <a @click="handleDetail(record)">详情</a>
               </a-menu-item>
               <a-menu-item>
-                <a-popconfirm v-has="'cycleCountHeader:delete'" title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                <a-popconfirm v-has="'cycleCountHeader:delete'" title="确定删除吗?"
+                              @confirm="() => handleDelete(record.id)">
                   <a>删除</a>
                 </a-popconfirm>
               </a-menu-item>
@@ -118,206 +133,206 @@
 
 <script>
 
-  import '@/assets/less/TableExpand.less'
-  import { mixinDevice } from '@/utils/mixin'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import {getCompanyList} from '@/api/api'
-  import {getCountTypeList} from '@/api/api'
-  import CycleCountHeaderModal from './modules/CycleCountHeaderModal'
-  import CycleCountDetailList from "./CycleCountDetailList";
+import '@/assets/less/TableExpand.less'
+import {mixinDevice} from '@/utils/mixin'
+import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import {getCompanyList} from '@/api/api'
+import {getCountTypeList} from '@/api/api'
+import CycleCountHeaderModal from './modules/CycleCountHeaderModal'
+import CycleCountDetailList from "./CycleCountDetailList";
 
-  export default {
-    name: 'CycleCountHeaderList',
-    mixins:[JeecgListMixin, mixinDevice],
-    components: {
-      CycleCountHeaderModal,
-      CycleCountDetailList,
-    },
-    data () {
-      return {
-        // 选择用户查询条件配置
-        selectUserQueryConfig: [
-          {key: 'locationCode', label: '库位'},
-        ],
-        description: '盘点主表管理页面',
-        companyList: [],
-        CountTypeList:[],
-        // 表头
-        columns: [
-          {
-            title: 'ID',
-            dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
-            }
-          },
-          {
-            title:'盘点单编码',
-            align:"center",
-            dataIndex: 'code'
-          },
-          {
-            title:'货主编码',
-            align: "center",
-            dataIndex: 'companyCode',
-            key: 'companyCode',
-            scopedSlots: {customRender: 'companyCode'}
-          },
-          {
-            title:'总货位数',
-            align:"center",
-            dataIndex: 'totalLocs'
-          },
-          {
-            title:'总物料数',
-            align:"center",
-            dataIndex: 'totalItems'
-          },
-          {
-            title:'盘点类型',
-            align:"center",
-            dataIndex: 'countType',
-            key: 'countType',
-            scopedSlots: {customRender: 'countType'}
-          },
-          {
-            title:'盘点主单状态',
-            align:"center",
-            dataIndex: 'statusCyc_dictText'
-          },
-          {
-            title:'指定盘点人员',
-            align:"center",
-            dataIndex: 'stocktakingAs'
-          },
-          {
-            title:'实际盘点人员',
-            align:"center",
-            dataIndex: 'stocktakingAc'
-          },
-          {
-            title:'是否有效',
-            align:"center",
-            dataIndex: 'enable_dictText'
-          },
-          // {
-          //   title:'回传时间',
-          //   align:"center",
-          //   dataIndex: 'uploadTime'
-          // },
-          // {
-          //   title:'回传状态',
-          //   align:"center",
-          //   dataIndex: 'uploadStatusString'
-          // },
-          // {
-          //   title:'关闭人',
-          //   align:"center",
-          //   dataIndex: 'closedBy'
-          // },
-          {
-            title:'备注',
-            align:"center",
-            dataIndex: 'remark'
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            // fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' }
+export default {
+  name: 'CycleCountHeaderList',
+  mixins: [JeecgListMixin, mixinDevice],
+  components: {
+    CycleCountHeaderModal,
+    CycleCountDetailList,
+  },
+  data() {
+    return {
+      // 选择用户查询条件配置
+      selectUserQueryConfig: [
+        {key: 'locationCode', label: '库位'},
+      ],
+      description: '盘点主表管理页面',
+      companyList: [],
+      CountTypeList: [],
+      // 表头
+      columns: [
+        {
+          title: 'ID',
+          dataIndex: '',
+          key: 'rowIndex',
+          width: 60,
+          align: "center",
+          customRender: function (t, r, index) {
+            return parseInt(index) + 1;
           }
-        ],
-        url: {
-          list: "/cycleCountHeader/cycleCountHeader/list",
-          delete: "/cycleCountHeader/cycleCountHeader/delete",
-          deleteBatch: "/cycleCountHeader/cycleCountHeader/deleteBatch",
-          exportXlsUrl: "/cycleCountHeader/cycleCountHeader/exportXls",
-          importExcelUrl: "cycleCountHeader/cycleCountHeader/importExcel",
-
         },
-        dictOptions:{
-          status: [],
+        {
+          title: '盘点单编码',
+          align: "center",
+          dataIndex: 'code'
         },
-        superFieldList:[],
-      }
-    },
-    created() {
+        {
+          title: '货主编码',
+          align: "center",
+          dataIndex: 'companyCode',
+          key: 'companyCode',
+          scopedSlots: {customRender: 'companyCode'}
+        },
+        {
+          title: '总货位数',
+          align: "center",
+          dataIndex: 'totalLocs'
+        },
+        {
+          title: '总物料数',
+          align: "center",
+          dataIndex: 'totalItems'
+        },
+        {
+          title: '盘点类型',
+          align: "center",
+          dataIndex: 'countType',
+          key: 'countType',
+          scopedSlots: {customRender: 'countType'}
+        },
+        {
+          title: '盘点主单状态',
+          align: "center",
+          dataIndex: 'statusCyc_dictText'
+        },
+        {
+          title: '指定盘点人员',
+          align: "center",
+          dataIndex: 'stocktakingAs'
+        },
+        {
+          title: '实际盘点人员',
+          align: "center",
+          dataIndex: 'stocktakingAc'
+        },
+        {
+          title: '是否有效',
+          align: "center",
+          dataIndex: 'enable_dictText'
+        },
+        // {
+        //   title:'回传时间',
+        //   align:"center",
+        //   dataIndex: 'uploadTime'
+        // },
+        // {
+        //   title:'回传状态',
+        //   align:"center",
+        //   dataIndex: 'uploadStatusString'
+        // },
+        // {
+        //   title:'关闭人',
+        //   align:"center",
+        //   dataIndex: 'closedBy'
+        // },
+        {
+          title: '备注',
+          align: "center",
+          dataIndex: 'remark'
+        },
+        {
+          title: '操作',
+          dataIndex: 'action',
+          align: "center",
+          // fixed:"right",
+          width: 147,
+          scopedSlots: {customRender: 'action'}
+        }
+      ],
+      url: {
+        list: "/cycleCountHeader/cycleCountHeader/list",
+        delete: "/cycleCountHeader/cycleCountHeader/delete",
+        deleteBatch: "/cycleCountHeader/cycleCountHeader/deleteBatch",
+        exportXlsUrl: "/cycleCountHeader/cycleCountHeader/exportXls",
+        importExcelUrl: "cycleCountHeader/cycleCountHeader/importExcel",
+
+      },
+      dictOptions: {
+        status: [],
+      },
+      superFieldList: [],
+    }
+  },
+  created() {
     this.getSuperFieldList();
     this.loadFrom();
+  },
+  computed: {
+    importExcelUrl: function () {
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
     },
-    computed: {
-      importExcelUrl: function(){
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      },
+  },
+  methods: {
+    initDictConfig() {
+    },
+    getSuperFieldList() {
+      let fieldList = [];
+      fieldList.push({type: 'string', value: 'code', text: '盘点主表编号', dictCode: ''})
+      fieldList.push({type: 'string', value: 'companyCode', text: '货主编码', dictCode: ''})
+      fieldList.push({type: 'string', value: 'countType', text: '盘点类型', dictCode: ''})
+      fieldList.push({type: 'int', value: 'statusCyc', text: '盘点状态', dictCode: 'cyclecount_status'})
+      fieldList.push({type: 'string', value: 'remark', text: '备注', dictCode: ''})
+      fieldList.push({type: 'int', value: 'totalLocs', text: '总货位数', dictCode: ''})
+      fieldList.push({type: 'int', value: 'totalItems', text: '总物料数', dictCode: ''})
+      fieldList.push({type: 'string', value: 'stocktakingAs', text: '指定盘点人员', dictCode: ''})
+      fieldList.push({type: 'string', value: 'stocktakingAc', text: '实际盘点人员', dictCode: ''})
+      fieldList.push({type: 'int', value: 'enable', text: '是否有效', dictCode: 'valid_status'})
+      fieldList.push({type: 'datetime', value: 'uploadTime', text: '回传时间'})
+      fieldList.push({type: 'int', value: 'uploadStatus', text: '回传状态', dictCode: 'valid_status'})
+      fieldList.push({type: 'string', value: 'closedBy', text: '关闭人', dictCode: ''})
+      this.superFieldList = fieldList
+    },
+    loadFrom() {
+      getCompanyList().then((res) => {
+        if (res.success) {
+          this.companyList = res.result
+        }
+      });
+      getCountTypeList().then((res) => {
+        if (res.success) {
+          this.CountTypeList = res.result
+        }
+      });
     },
-    methods: {
-      initDictConfig(){
-      },
-      getSuperFieldList(){
-        let fieldList=[];
-        fieldList.push({type:'string',value:'code',text:'盘点主表编号',dictCode:''})
-        fieldList.push({type:'string',value:'companyCode',text:'货主编码',dictCode:''})
-        fieldList.push({type:'string',value:'countType',text:'盘点类型',dictCode:''})
-        fieldList.push({type:'int',value:'statusCyc',text:'盘点状态',dictCode:'cyclecount_status'})
-        fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''})
-        fieldList.push({type:'int',value:'totalLocs',text:'总货位数',dictCode:''})
-        fieldList.push({type:'int',value:'totalItems',text:'总物料数',dictCode:''})
-        fieldList.push({type:'string',value:'stocktakingAs',text:'指定盘点人员',dictCode:''})
-        fieldList.push({type:'string',value:'stocktakingAc',text:'实际盘点人员',dictCode:''})
-        fieldList.push({type:'int',value:'enable',text:'是否有效',dictCode:'valid_status'})
-        fieldList.push({type:'datetime',value:'uploadTime',text:'回传时间'})
-        fieldList.push({type:'int',value:'uploadStatus',text:'回传状态',dictCode:'valid_status'})
-        fieldList.push({type:'string',value:'closedBy',text:'关闭人',dictCode:''})
-        this.superFieldList = fieldList
-      },
-      loadFrom() {
-        getCompanyList().then((res) => {
-          if (res.success) {
-            this.companyList = res.result
-          }
-        });
-        getCountTypeList().then((res) => {
-          if (res.success) {
-            this.CountTypeList = res.result
-          }
-        });
-      },
 
-      loadDataaa(){
-        var _this = this;
-        _this.testaa();
-      },
-      solutionCompany(value) {
-        var actions = []
-        Object.keys(this.companyList).some((key) => {
-          if (this.companyList[key].code == ('' + value)) {
-            actions.push(this.companyList[key].name)
-            return true
-          }
-        })
-        return actions.join('')
-      },
+    loadDataaa() {
+      var _this = this;
+      _this.testaa();
+    },
+    solutionCompany(value) {
+      var actions = []
+      Object.keys(this.companyList).some((key) => {
+        if (this.companyList[key].code == ('' + value)) {
+          actions.push(this.companyList[key].name)
+          return true
+        }
+      })
+      return actions.join('')
+    },
 
-      solutionCountType(value) {
-        var actions = []
-        Object.keys(this.CountTypeList).some((key) => {
-          if (this.CountTypeList[key].code == ('' + value)) {
-            actions.push(this.CountTypeList[key].name)
-            return true
-          }
-        })
-        return actions.join('')
-      },
+    solutionCountType(value) {
+      var actions = []
+      Object.keys(this.CountTypeList).some((key) => {
+        if (this.CountTypeList[key].code == ('' + value)) {
+          actions.push(this.CountTypeList[key].name)
+          return true
+        }
+      })
+      return actions.join('')
+    },
 
 
-    }
   }
+}
 </script>
 <style scoped>
-  @import '~@assets/less/common.less';
+@import '~@assets/less/common.less';
 </style>
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/system/task/AgvTaskList.vue b/ant-design-vue-jeecg/src/views/system/task/AgvTaskList.vue
index 31d7e48..8f6d231 100644
--- a/ant-design-vue-jeecg/src/views/system/task/AgvTaskList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/AgvTaskList.vue
@@ -36,7 +36,7 @@
           </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 id="search" type="primary" @click="searchQuery" icon="search">查询</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
             </span>
           </a-col>
@@ -53,6 +53,9 @@
       <a-upload v-has="'agvTask:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
                 :action="importExcelUrl" @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
+        <j-super-query :fieldList="superFieldList" v-has="'taskHeader:superQuery'"
+                       @handleSuperQuery="handleSuperQuery"/>
+
       </a-upload>
       <!--      <a-dropdown v-if="selectedRowKeys.length > 0">-->
       <!--        <a-menu slot="overlay">-->
@@ -92,7 +95,8 @@
         <span slot="action" slot-scope="text, record">
           <a v-if="record.status == 1" v-has="'agvTask:executeTask'" @click="executeAgvTask(record)">
             <a-button type="primary">执行</a-button><a-divider type="vertical"/></a>
-          <a-popconfirm v-if="record.status < 100" title="确定删除吗?" v-has="'agvTask:delete'" @confirm="() => handleDelete(record.id)">
+          <a-popconfirm v-if="record.status < 100" title="确定删除吗?" v-has="'agvTask:delete'"
+                        @confirm="() => handleDelete(record.id)">
             <a><a-button type="danger">取消</a-button><a-divider type="vertical"/></a>
           </a-popconfirm>
           <a-dropdown>
@@ -134,6 +138,7 @@ export default {
   data() {
     return {
       description: 'AGV任务管理页面',
+      firstLoad:0,
       isorter: {
         column: 'status',
         order: 'asc',
@@ -226,6 +231,21 @@ export default {
   created() {
     this.getSuperFieldList();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
diff --git a/ant-design-vue-jeecg/src/views/system/task/AllTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/AllTaskHeaderList.vue
index 819b7b9..7154eb3 100644
--- a/ant-design-vue-jeecg/src/views/system/task/AllTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/AllTaskHeaderList.vue
@@ -68,7 +68,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -87,6 +87,8 @@
 <!--      <a-button @click="createManyEmptyIn()" v-has="'taskHeader:manyEmptyIn'" type="primary">空托组入库</a-button>-->
 <!--      <a-button @click="openDemo()" type="primary">弹出demo</a-button>-->
 <!--    </div>-->
+    <j-super-query :fieldList="superFieldList" v-has="'taskHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+    <a-button v-has="'taskHeader:export'" type="primary" icon="download" @click="handleExportXls('任务表')">导出</a-button>
 
     <!-- table区域-begin -->
     <div>
@@ -213,6 +215,7 @@ export default {
       description: '任务表管理页面',
       zoneList: [],
       zoneOptions:[],
+      firstLoad:0,
       isorter: {
         column: 'status',
         order: 'asc'
@@ -353,6 +356,21 @@ export default {
     this.getSuperFieldList();
     this.loadFrom();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
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 3745620..608fa7e 100644
--- a/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
@@ -69,7 +69,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -91,6 +91,8 @@
       <!--      </a-upload>-->
       <!--      &lt;!&ndash; 高级查询区域 &ndash;&gt;-->
       <!--      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>-->
+      <j-super-query :fieldList="superFieldList" v-has="'taskHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+      <a-button v-has="'taskHeader:export'" type="primary" icon="download" @click="handleExportXls('任务表')">导出</a-button>
     </div>
 
     <!-- table区域-begin -->
@@ -213,6 +215,7 @@ export default {
       description: '任务表管理页面',
       zoneList: [],
       zoneOptions:[],
+      firstLoad:0,
       isorter: {
         column: 'status',
         order: 'asc',
@@ -352,6 +355,21 @@ export default {
     this.getSuperFieldList();
     this.loadFrom();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
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 5cb1cc7..d4962e2 100644
--- a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
@@ -68,7 +68,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -88,6 +88,8 @@
       <a-button v-has="'taskHeader:quickReceipt'" @click="quickReceipt()" type="primary">快速入库</a-button>
       <a-button v-has="'taskHeader:callReceiptBox'" @click="callReceiptBox()" type="primary" >呼叫入库有货托盘</a-button>
       <a-button v-has="'taskHeader:callReceiptBox'" @click="callReceiptEmptyBox()" type="primary" >呼叫入库空托盘</a-button>
+      <j-super-query :fieldList="superFieldList" v-has="'taskHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+      <a-button v-has="'taskHeader:export'" type="primary" icon="download" @click="handleExportXls('任务表')">导出</a-button>
     </div>
 
     <!-- table区域-begin -->
@@ -222,6 +224,7 @@ export default {
       description: '任务表管理页面',
       zoneList: [],
       zoneOptions:[],
+      firstLoad:0,
       isorter: {
         column: 'status',
         order: 'asc'
@@ -362,6 +365,21 @@ export default {
     this.getSuperFieldList();
     this.loadFrom();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
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 3ff6c7f..b2c6516 100644
--- a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
@@ -68,7 +68,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -86,6 +86,8 @@
       <a-button @click="createEmptyOut()" v-has="'taskHeader:emptyOut'" type="primary">空托出库</a-button>
       <a-button @click="createManyEmptyOut()" v-has="'taskHeader:manyEmptyOut'" type="primary">空托组出库</a-button>
       <a-button v-has="'taskHeader:callShipmentBox'" @click="callShipmentBox()" type="primary" >呼叫出库托盘</a-button>
+      <j-super-query :fieldList="superFieldList" v-has="'taskHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+      <a-button v-has="'taskHeader:export'" type="primary" icon="download" @click="handleExportXls('任务表')">导出</a-button>
     </div>
 
     <!-- table区域-begin -->
@@ -162,6 +164,11 @@
             <a-divider type="vertical"/></a>
           <a-popconfirm v-if="record.status <= 10" v-has="'taskHeader:cancelTask'" title="确定取消任务吗?" @confirm="() => cancelTask(record)">
             <a-button type="danger">取消</a-button>
+             <a-divider type="vertical"/>
+          </a-popconfirm>
+
+          <a-popconfirm v-if="record.status < 100" v-has="'taskHeader:switchTask'" title="确定切换任务吗?" @confirm="() => switchTask(record)">
+            <a-button type="danger">切换任务</a-button>
           </a-popconfirm>
         </span>
 
@@ -192,7 +199,7 @@ import {initDictOptions, filterMultiDictText} from '@/components/dict/JDictSelec
 import '@/assets/less/TableExpand.less'
 import {completeTaskByWMS, cancelTask} from '@/api/api'
 import {execute} from '@/api/api'
-import {getZoneList, handleEmptyOut, handlePickupError, handleDoubleIn} from '@/api/api'
+import {getZoneList, handleEmptyOut, handlePickupError, handleDoubleIn, switchTask} from '@/api/api'
 import EmptyOutTaskModal from './modules/EmptyOutTaskModal'
 import ManyEmptyOutTaskModal from "./modules/ManyEmptyOutTaskModal";
 import CallShipmentBoxModal from "@views/system/task/modules/CallShipmentBoxModal";
@@ -212,6 +219,7 @@ export default {
       selectIndex: null,
       description: '任务表管理页面',
       zoneList: [],
+      firstLoad:0,
       isorter: {
         column: 'status',
         order: 'asc',
@@ -352,6 +360,21 @@ export default {
     this.getSuperFieldList();
     this.loadFrom();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
@@ -457,6 +480,19 @@ export default {
         this.loading = false;
       })
     },
+    switchTask(record) {
+      this.loading = true;
+      this.model = Object.assign({}, record);
+      switchTask(this.model.id).then((res) => {
+        this.loading = false;
+        if (res.success) {
+          this.$message.success(res.message);
+        } else {
+          this.$message.error(res.message);
+        }
+        this.searchQuery();
+      });
+    },
     cancelTask(record) {
       this.loading = true;
       this.model = Object.assign({}, record);
diff --git a/ant-design-vue-jeecg/src/views/system/task/TaskHeaderHistoryList.vue b/ant-design-vue-jeecg/src/views/system/task/TaskHeaderHistoryList.vue
index 8cdcb04..c22c565 100644
--- a/ant-design-vue-jeecg/src/views/system/task/TaskHeaderHistoryList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/TaskHeaderHistoryList.vue
@@ -80,6 +80,7 @@
       </a-form>
     </div>
     <!-- 查询区域-END -->
+    <j-super-query :fieldList="superFieldList" v-has="'taskHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
 
 
 
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 95b4d24..5398a6e 100644
--- a/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
@@ -68,7 +68,7 @@
           </template>
           <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 id="search" 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 ? '收起' : '展开' }}
@@ -85,7 +85,8 @@
     <div class="table-operator">
       <a-button @click="createTransfer()" v-has="'taskHeader:transfer'" type="primary">移库任务</a-button>
       <a-button @click="createOverStation()" v-has="'taskHeader:overStation'" type="primary">跨站任务</a-button>
-      <!--      <a-button type="primary" icon="download" @click="handleExportXls('任务表')">导出</a-button>-->
+      <j-super-query :fieldList="superFieldList" v-has="'taskHeader:superQuery'" @handleSuperQuery="handleSuperQuery"/>
+      <a-button v-has="'taskHeader: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>-->
@@ -210,6 +211,7 @@ export default {
       description: '任务表管理页面',
       zoneList: [],
       zoneOptions:[],
+      firstLoad:0,
       isorter: {
         column: 'status',
         order: 'asc',
@@ -353,6 +355,21 @@ export default {
     this.getSuperFieldList();
     this.loadFrom();
   },
+  mounted() {
+    if(this.firstLoad == 0) {
+      this.firstLoad = 1;
+      return;
+    }
+    //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击
+    let timeSearch=setInterval(()=>{
+      let eleSearch= document.getElementById("search");
+      if (eleSearch!=null){
+        //调用成功,清除定时器
+        clearInterval(timeSearch)
+        eleSearch.click();
+      }
+    },200)
+  },
   computed: {
     importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java
index bc16604..58b17b2 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/erp/service/impl/ErpServiceImpl.java
@@ -153,7 +153,7 @@ public class ErpServiceImpl implements IErpService {
             receiptDetail.setReceiptId(receiptHeader.getId());
             receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
             receiptDetail.setQty(qty);
-            Material material = materialService.getMaterialByCode(materialCode);
+            Material material = materialService.isMaterialExsit(materialCode);
             if (material == null) {
                 material = new Material();
                 material.setCode(materialCode);
@@ -287,7 +287,7 @@ public class ErpServiceImpl implements IErpService {
             shipmentDetail.setShipmentId(shipmentHeader.getId());
             shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_BUILD);
             shipmentDetail.setQty(qty);
-            Material material = materialService.getMaterialByCode(materialCode);
+            Material material = materialService.isMaterialExsit(materialCode);
             if (material == null) {
                 throw new JeecgBootException("出库单下发, 没有找到物料信息" + materialCode);
             }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/controller/WisController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/controller/WisController.java
index 081a54f..90db294 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/controller/WisController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/controller/WisController.java
@@ -3,7 +3,8 @@ package org.jeecg.modules.wms.api.wms.controller;
 import javax.annotation.Resource;
 
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.modules.wms.api.erp.entity.InventoryQueryParam;
+import org.jeecg.modules.wms.api.erp.service.IErpService;
 import org.jeecg.modules.wms.api.wms.entity.WmsEntity;
 import org.jeecg.modules.wms.api.wms.service.WmsService;
 import org.jeecg.modules.wms.framework.controller.HuahengBaseController;
@@ -23,8 +24,9 @@ public class WisController extends HuahengBaseController {
 
     @Resource
     private WmsService wmsService;
+    @Resource
+    private IErpService erpService;
 
-    @AutoLog(value = "下发WMS任务")
     @PostMapping("/sendWmsTask")
     @ResponseBody
     @ApiOperation("下发WMS任务")
@@ -39,4 +41,29 @@ public class WisController extends HuahengBaseController {
         });
         return result;
     }
+
+    @PostMapping("/cancelWmsTask")
+    @ResponseBody
+    @ApiOperation("取消WMS任务")
+    @ApiLogger(apiName = "取消WMS任务", from = "WMS")
+    public Result cancelWmsTask(@RequestBody String taskNo) {
+        Result result = handleMultiProcess("cancelWmsTask", new MultiProcessListener() {
+            @Override
+            public Result<?> doProcess() {
+                Result result = wmsService.cancelTaskByUpstreamTaskNo(taskNo);
+                return result;
+            }
+        });
+        return result;
+    }
+
+    @PostMapping("/searchInventory")
+    @ResponseBody
+    @ApiOperation("查询库存")
+    @ApiLogger(apiName = "查询库存", from = "WMS")
+    public Result searchInventory(@RequestBody InventoryQueryParam inventoryQueryParam) {
+        Result result = erpService.searchInventory(inventoryQueryParam);
+        return result;
+    }
+
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsService.java
index c341d92..a213cd6 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsService.java
@@ -28,23 +28,33 @@ public interface WmsService {
     Result createShipmentTask(WmsEntity wmsEntity);
 
     /**
-     * 创建空托入库
+     * 创建整出出库任务通过托盘
      * @param  wmsEntity
      * @return
      */
-    Result createEmptyIn(WmsEntity wmsEntity);
+    Result createShipmentTaskByContainer(WmsEntity wmsEntity);
 
     /**
-     * 创建空托出库
+     * 创建出库任务通过托盘
      * @param  wmsEntity
      * @return
      */
-    Result createEmptyOut(WmsEntity wmsEntity);
+    Result createShipmentTaskByDetail(WmsEntity wmsEntity);
 
     /**
-     * 创建出库查看
+     * 创建空托入库
      * @param  wmsEntity
      * @return
      */
-    Result createCheckOut(WmsEntity wmsEntity);
+    Result createEmptyIn(WmsEntity wmsEntity);
+
+    /**
+     * 创建空托出库
+     * @param  wmsEntity
+     * @return
+     */
+    Result createEmptyOut(WmsEntity wmsEntity);
+
+    Result cancelTaskByUpstreamTaskNo(String taskNo);
+
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsServiceImpl.java
index b591eec..3bc53e9 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wms/service/WmsServiceImpl.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.wms.api.wms.service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -13,6 +14,10 @@ import org.jeecg.modules.wms.api.erp.service.IErpService;
 import org.jeecg.modules.wms.api.wms.entity.WmsEntity;
 import org.jeecg.modules.wms.api.wms.entity.WmsInventory;
 import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService;
+import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail;
+import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader;
+import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService;
+import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryHeaderService;
 import org.jeecg.modules.wms.receipt.receiptContainerHeader.entity.ReceiptContainerHeader;
 import org.jeecg.modules.wms.receipt.receiptContainerHeader.service.IReceiptContainerHeaderService;
 import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail;
@@ -30,12 +35,16 @@ import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentDetail;
 import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentHeader;
 import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentDetailService;
 import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService;
+import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader;
 import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService;
 import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -71,6 +80,10 @@ public class WmsServiceImpl implements WmsService {
     private IShipmentContainerHeaderService shipmentContainerHeaderService;
     @Resource
     private IShipmentContainerDetailService shipmentContainerDetailService;
+    @Resource
+    private IInventoryDetailService inventoryDetailService;
+    @Resource
+    private IInventoryHeaderService inventoryHeaderService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -83,12 +96,21 @@ public class WmsServiceImpl implements WmsService {
                 result = wmsService.createReceiptTask(wmsEntity);
                 break;
             case QuantityConstant.TASK_TYPE_WHOLESHIPMENT:
+                result = wmsService.createShipmentTaskByContainer(wmsEntity); // 指定托盘,整盘出库
+//                result = wmsService.createShipmentTask(wmsEntity);   // 不指定托盘出库,只指定物料和数量。适用于客户不管理每个托盘的库存
+                break;
             case QuantityConstant.TASK_TYPE_SORTINGSHIPMENT:
-                result = wmsService.createShipmentTask(wmsEntity);
+                result = wmsService.createShipmentTaskByDetail(wmsEntity); // 指定托盘出库
+//                result = wmsService.createShipmentTask(wmsEntity); // 不指定托盘出库,只指定物料和数量。适用于客户不管理每个托盘的库存
                 break;
             case QuantityConstant.TASK_TYPE_EMPTYRECEIPT:
-                result = wmsService.createReceiptTask(wmsEntity);
+                result = wmsService.createEmptyIn(wmsEntity);
+                break;
+            case QuantityConstant.TASK_TYPE_EMPTYSHIPMENT:
+                result = wmsService.createEmptyOut(wmsEntity);
                 break;
+            default:
+                throw new JeecgBootException("WMS下发入库任务失败,任务类型不匹配");
         }
         return result;
     }
@@ -166,6 +188,12 @@ public class WmsServiceImpl implements WmsService {
         if (!result.isSuccess()) {
             throw new JeecgBootException(result.getMessage());
         }
+        TaskHeader taskHeader = taskHeaderService.getUnCompleteTaskByContainerCode(containerCode, warehouseCode);
+        if (taskHeader != null) {
+            if (!taskHeaderService.updateUpstreamTaskNoById(referCode, taskHeader.getId())) {
+                throw new JeecgBootException("WMS下发入库信息,更新入库任务失败");
+            }
+        }
         return result;
     }
 
@@ -248,10 +276,94 @@ public class WmsServiceImpl implements WmsService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    public Result createShipmentTaskByContainer(WmsEntity wmsEntity) {
+        String warehouseCode = wmsEntity.getWarehouseCode();
+        String remark = wmsEntity.getRemark();
+        String toPort = wmsEntity.getToPort();
+        String containerCode = wmsEntity.getContainerCode();
+        String referCode = wmsEntity.getTaskNo();
+        List<WmsInventory> wmsInventoryList = wmsEntity.getWmsInventoryList();
+        if (wmsInventoryList == null) {
+            return Result.error("WMS下发出库任务失败,库存为空");
+        }
+        if (StringUtils.isEmpty(containerCode)) {
+            return Result.error("WMS下发出库任务失败,没有找到托盘" + containerCode);
+        }
+        if (StringUtils.isEmpty(toPort)) {
+            return Result.error("WMS下发出库任务失败,没有找到出库口" + toPort);
+        }
+
+        InventoryHeader inventoryHeader = inventoryHeaderService.getInventoryHeaderByContainerCode(containerCode, warehouseCode);
+        if (inventoryHeader == null) {
+            return Result.error("WMS下发出库任务失败, 没有找到托盘库存" + containerCode);
+        }
+        inventoryHeader.setToPortCode(toPort);
+        List<InventoryHeader> inventoryHeaderList = new ArrayList<>();
+        inventoryHeaderList.add(inventoryHeader);
+        Result result = inventoryHeaderService.shipmentInventoryHeader(inventoryHeaderList, warehouseCode);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException("WMS下发出库任务失败," + result.getMessage());
+        }
+        TaskHeader taskHeader = taskHeaderService.getUnCompleteTaskByContainerCode(containerCode, warehouseCode);
+        if (taskHeader != null) {
+            if (!taskHeaderService.updateUpstreamTaskNoById(referCode, taskHeader.getId())) {
+                throw new JeecgBootException("WMS下发出库任务失败,更新上游任务号失败");
+            }
+        }
+        return Result.ok("WMS下发出库任务成功");
+    }
+
+    @Override
+    public Result createShipmentTaskByDetail(WmsEntity wmsEntity) {
+        String warehouseCode = wmsEntity.getWarehouseCode();
+        String remark = wmsEntity.getRemark();
+        String toPort = wmsEntity.getToPort();
+        String containerCode = wmsEntity.getContainerCode();
+        String referCode = wmsEntity.getTaskNo();
+        List<WmsInventory> wmsInventoryList = wmsEntity.getWmsInventoryList();
+        if (wmsInventoryList == null) {
+            return Result.error("WMS下发出库任务失败,库存为空");
+        }
+        if (StringUtils.isEmpty(containerCode)) {
+            return Result.error("WMS下发出库任务失败,没有找到托盘" + containerCode);
+        }
+        if (StringUtils.isEmpty(toPort)) {
+            return Result.error("WMS下发出库任务失败,没有找到出库口" + toPort);
+        }
+
+        List<InventoryDetail> inventoryDetailList = new ArrayList<>();
+        for (WmsInventory wmsInventory : wmsInventoryList) {
+            String materialCode = wmsInventory.getMaterialCode();
+            BigDecimal qty = wmsInventory.getQty();
+            String batch = wmsInventory.getBatch();
+            String inventoryStatus = wmsInventory.getInventoryStatus();
+            LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+            inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getMaterialCode, materialCode).le(InventoryDetail::getQty, qty)
+                .eq(InventoryDetail::getContainerCode, containerCode).eq(InventoryDetail::getBatch, batch).eq(InventoryDetail::getInventoryStatus, inventoryStatus);
+            InventoryDetail inventoryDetail = inventoryDetailService.getOne(inventoryDetailLambdaQueryWrapper);
+            if (inventoryDetail == null) {
+                return Result.error("WMS下发出库任务失败,没有找到合适库存");
+            }
+            inventoryDetail.setToPortCode(toPort);
+            inventoryDetailList.add(inventoryDetail);
+        }
+        Result result = inventoryHeaderService.shipmentInventoryDetail(inventoryDetailList, warehouseCode);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException("WMS下发出库任务失败," + result.getMessage());
+        }
+        TaskHeader taskHeader = taskHeaderService.getUnCompleteTaskByContainerCode(containerCode, warehouseCode);
+        if (taskHeader != null) {
+            if (!taskHeaderService.updateUpstreamTaskNoById(referCode, taskHeader.getId())) {
+                throw new JeecgBootException("WMS下发出库任务失败,更新上游任务号失败");
+            }
+        }
+        return Result.ok("WMS下发出库任务成功");
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result createEmptyIn(WmsEntity wmsEntity) {
         String warehouseCode = wmsEntity.getWarehouseCode();
-//        String toPort = wmsEntity.getToPort();
-//        String referCode = wmsEntity.getTaskNo();
         String contaienrCode = wmsEntity.getContainerCode();
 
         Result result = taskHeaderService.createEmptyIn(contaienrCode, QuantityConstant.EMPTY_STRING, warehouseCode);
@@ -263,7 +375,6 @@ public class WmsServiceImpl implements WmsService {
     public Result createEmptyOut(WmsEntity wmsEntity) {
         String warehouseCode = wmsEntity.getWarehouseCode();
         String toPort = wmsEntity.getToPort();
-//        String referCode = wmsEntity.getTaskNo();
         String contaienrCode = wmsEntity.getContainerCode();
 
         Result result = taskHeaderService.createEmptyOut(contaienrCode, toPort, warehouseCode);
@@ -271,15 +382,8 @@ public class WmsServiceImpl implements WmsService {
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Result createCheckOut(WmsEntity wmsEntity) {
-        String warehouseCode = wmsEntity.getWarehouseCode();
-        String toPort = wmsEntity.getToPort();
-//        String referCode = wmsEntity.getTaskNo();
-        String contaienrCode = wmsEntity.getContainerCode();
-
-        Result result = taskHeaderService.createCheckOutTask(contaienrCode, toPort, warehouseCode);
-        return result;
+    public Result cancelTaskByUpstreamTaskNo(String taskNo) {
+        return taskHeaderService.cancelTaskByUpstreamTaskNo(taskNo);
     }
 
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/controller/ContainerController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/controller/ContainerController.java
index 3bb1f5d..a05227f 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/controller/ContainerController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/controller/ContainerController.java
@@ -19,6 +19,7 @@ import org.jeecg.modules.wms.config.location.entity.Location;
 import org.jeecg.modules.wms.config.location.service.ILocationService;
 import org.jeecg.utils.HuahengJwtUtil;
 import org.jeecg.utils.StringUtils;
+import org.jeecg.utils.constant.QuantityConstant;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -62,8 +63,17 @@ public class ContainerController extends JeecgController<Container, IContainerSe
     public Result<IPage<Container>> queryPageList(Container container, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
         @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
         HuahengJwtUtil.setWarehouseCode(req, container);
+        Integer inLocation = container.haveInLocation();
+        container.setInLocation(null);
         QueryWrapper<Container> queryWrapper = QueryGenerator.initQueryWrapper(container, null);
         LambdaQueryWrapper<Container> containerLambdaQueryWrapper = queryWrapper.lambda();
+        if (inLocation != null) {
+            if (inLocation == QuantityConstant.STATUS_LOCATION_OUT) {
+                containerLambdaQueryWrapper.eq(Container::getLocationCode, QuantityConstant.EMPTY_STRING);
+            } else if (inLocation == QuantityConstant.STATUS_LOCATION_IN) {
+                containerLambdaQueryWrapper.ne(Container::getLocationCode, QuantityConstant.EMPTY_STRING);
+            }
+        }
         containerLambdaQueryWrapper.orderByAsc(Container::getId);
         Page<Container> page = new Page<Container>(pageNo, pageSize);
         IPage<Container> pageList = containerService.page(page, containerLambdaQueryWrapper);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/entity/Container.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/entity/Container.java
index b2c3e40..da1c6fc 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/entity/Container.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/entity/Container.java
@@ -1,20 +1,21 @@
 package org.jeecg.modules.wms.config.container.entity;
 
 import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
 import java.util.Date;
-import java.math.BigDecimal;
+
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.utils.StringUtils;
+import org.jeecg.utils.constant.QuantityConstant;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
@@ -69,16 +70,21 @@ public class Container implements Serializable {
     @Dict(dicCode = "fill_status")
     @ApiModelProperty(value = "填充状态")
     private String fillStatus;
+    @ApiModelProperty(value = "任务总数")
+    private Integer taskTimes;
+    @ApiModelProperty(value = "移库任务数")
+    private Integer moveTaskTimes;
+    @ApiModelProperty(value = "位置")
+    @TableField(exist = false)
+    @Dict(dicCode = "inLocation")
+    private Integer inLocation;
     /** 备用字段1 */
-    @Excel(name = "备用字段1", width = 15)
     @ApiModelProperty(value = "备用字段1")
     private String userdef1;
     /** 备用字段2 */
-    @Excel(name = "备用字段2", width = 15)
     @ApiModelProperty(value = "备用字段2")
     private String userdef2;
     /** 备用字段3 */
-    @Excel(name = "备用字段3", width = 15)
     @ApiModelProperty(value = "备用字段3")
     private String userdef3;
     /** 创建人 */
@@ -93,4 +99,20 @@ public class Container implements Serializable {
     /** 更新日期 */
     @ApiModelProperty(value = "更新日期")
     private Date updateTime;
+
+    public Integer getInLocation() {
+        if (StringUtils.isNotEmpty(locationCode)) {
+            return QuantityConstant.STATUS_LOCATION_IN;
+        } else {
+            return QuantityConstant.STATUS_LOCATION_OUT;
+        }
+    }
+
+    public void setInLocation(Integer inLocation) {
+        this.inLocation = inLocation;
+    }
+
+    public Integer haveInLocation() {
+        return this.inLocation;
+    }
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
index 0bd6629..22dee38 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
@@ -77,6 +77,9 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container
 
     @Override
     public Container getContainerByCode(String containCode, String warehouseCode) {
+        if (StringUtils.isEmpty(containCode)) {
+            throw new JeecgBootException("容器编码为空");
+        }
         if (StringUtils.havaLowerCase(containCode)) {
             throw new JeecgBootException("容器不能有小字母" + containCode);
         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/entity/Material.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/entity/Material.java
index 9e08049..de58ceb 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/entity/Material.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/entity/Material.java
@@ -1,19 +1,19 @@
 package org.jeecg.modules.wms.config.material.entity;
 
 import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
 import java.math.BigDecimal;
+import java.util.Date;
+
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
@@ -63,6 +63,14 @@ public class Material implements Serializable {
     @Excel(name = "类别", width = 15)
     @ApiModelProperty(value = "类别")
     private String type;
+    /** 入库数 */
+    @Excel(name = "入库数", width = 15)
+    @ApiModelProperty(value = "入库数")
+    private BigDecimal receiptQty;
+    /** 任务数 */
+    @Excel(name = "任务数", width = 15)
+    @ApiModelProperty(value = "任务数")
+    private BigDecimal taskQty;
     /** ABC分类 */
     @Excel(name = "ABC分类", width = 15)
     @ApiModelProperty(value = "ABC分类")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/service/IMaterialService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/service/IMaterialService.java
index ca64524..42b7219 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/service/IMaterialService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/service/IMaterialService.java
@@ -1,10 +1,10 @@
 package org.jeecg.modules.wms.config.material.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.common.api.vo.Result;
+import java.util.List;
+
 import org.jeecg.modules.wms.config.material.entity.Material;
 
-import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * @Description: 物料管理
@@ -16,5 +16,7 @@ public interface IMaterialService extends IService<Material> {
 
     public Material getMaterialByCode(String code);
 
+    public Material isMaterialExsit(String code);
+
     public List<Material> searchMaterialByCode(String code);
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/service/impl/MaterialServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/service/impl/MaterialServiceImpl.java
index 3161ad3..2ec1174 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/service/impl/MaterialServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/service/impl/MaterialServiceImpl.java
@@ -34,6 +34,17 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
     }
 
     @Override
+    public Material isMaterialExsit(String code) {
+        if (StringUtils.isEmpty(code)) {
+            return null;
+        }
+        LambdaQueryWrapper<Material> materialLambdaQueryWrapper = Wrappers.lambdaQuery();
+        materialLambdaQueryWrapper.eq(Material::getCode, code);
+        Material material = this.getOne(materialLambdaQueryWrapper);
+        return material;
+    }
+
+    @Override
     public List<Material> searchMaterialByCode(String code) {
         LambdaQueryWrapper<Material> materialLambdaQueryWrapper = Wrappers.lambdaQuery();
         materialLambdaQueryWrapper.like(StringUtils.isNotEmpty(code), Material::getCode, code);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
index 11c7d52..cf188e8 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
@@ -130,6 +130,9 @@ public class InventoryDetail implements Serializable {
     @Dict(dicCode = "inventory_enable")
     @ApiModelProperty(value = "是否可用")
     private Integer enable;
+    /** 巷道 */
+    @ApiModelProperty(value = "巷道")
+    private Integer roadWay;
     /** 备用字段1 */
     @Excel(name = "备用字段1", width = 15)
     @ApiModelProperty(value = "备用字段1")
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 4daf9c3..9023300 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
@@ -78,6 +78,9 @@ public class InventoryHeader implements Serializable {
     @TableField(exist = false)
     @ApiModelProperty(value = "物料编码")
     private String materialCode;
+    /** 巷道 */
+    @ApiModelProperty(value = "巷道")
+    private Integer roadWay;
     /** 备用字段1 */
     @Excel(name = "备用字段1", width = 15)
     @ApiModelProperty(value = "备用字段1")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java
index 572289d..67fc03b 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java
@@ -29,6 +29,10 @@ public interface IInventoryDetailService extends IService<InventoryDetail> {
 
     List<InventoryDetail> getInventoryDetailListByMaterialCode(String materialCode, String warehouseCode);
 
+    List<InventoryDetail> getInventoryDetailListByMaterialCodeToShipment(String materialCode, BigDecimal qty, String warehouseCode);
+
+    InventoryDetail getInventoryDetailByMaterialCodeToShipment(String containerCode, String materialCode, BigDecimal qty, String warehouseCode);
+
     // 求一种物料的库存之和(总数)
     BigDecimal getInventorySumQty(InventoryDetail inventoryDetail);
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java
index 0556a94..72fc5c8 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java
@@ -34,7 +34,7 @@ public interface IInventoryHeaderService extends IService<InventoryHeader> {
 
     boolean updateInventoryLocationAndZoneById(String locationCode, String zoneCode, Integer id);
 
-    boolean updateInventoryContainerLocationZoneById(String containerCode, String locationCode, String zoneCode, Integer id);
+    boolean updateInventoryContainerLocationZoneById(String containerCode, String locationCode, String zoneCode, Integer roadWay, Integer id);
 
     boolean updateContainerStatusById(String containerStatus, Integer id);
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java
index 11d84e8..8baa3ef 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java
@@ -98,6 +98,30 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe
     }
 
     @Override
+    public List<InventoryDetail> getInventoryDetailListByMaterialCodeToShipment(String materialCode, BigDecimal qty, String warehouseCode) {
+        LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+        inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getMaterialCode, materialCode).ge(InventoryDetail::getQty, qty)
+            .eq(InventoryDetail::getContainerStatus, QuantityConstant.STATUS_CONTAINER_EMPTY).eq(InventoryDetail::getInventoryStatus, QuantityConstant.QUALITY_GOOD)
+            .eq(InventoryDetail::getWarehouseCode, warehouseCode).eq(InventoryDetail::getEnable, QuantityConstant.INVENTORY_DETAIL_STATUS_ENABLE);
+        List<InventoryDetail> inventoryDetailList = list(inventoryDetailLambdaQueryWrapper);
+        return inventoryDetailList;
+    }
+
+    @Override
+    public InventoryDetail getInventoryDetailByMaterialCodeToShipment(String containerCode, String materialCode, BigDecimal qty, String warehouseCode) {
+        LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+        inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getMaterialCode, materialCode).ge(InventoryDetail::getQty, qty)
+            .eq(InventoryDetail::getContainerCode, containerCode).eq(InventoryDetail::getContainerStatus, QuantityConstant.STATUS_CONTAINER_EMPTY)
+            .eq(InventoryDetail::getInventoryStatus, QuantityConstant.QUALITY_GOOD).eq(InventoryDetail::getWarehouseCode, warehouseCode)
+            .eq(InventoryDetail::getEnable, QuantityConstant.INVENTORY_DETAIL_STATUS_ENABLE);
+        List<InventoryDetail> inventoryDetailList = list(inventoryDetailLambdaQueryWrapper);
+        if (CollectionUtils.isEmpty(inventoryDetailList)) {
+            return null;
+        }
+        return inventoryDetailList.get(0);
+    }
+
+    @Override
     public BigDecimal getInventorySumQty(InventoryDetail inventoryDetail) {
         LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
         inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getInventoryStatus, inventoryDetail.getInventoryStatus())
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java
index a954f5c..410043d 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java
@@ -149,12 +149,13 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
     }
 
     @Override
-    public boolean updateInventoryContainerLocationZoneById(String containerCode, String locationCode, String zoneCode, Integer id) {
+    public boolean updateInventoryContainerLocationZoneById(String containerCode, String locationCode, String zoneCode, Integer roadWay, Integer id) {
         InventoryHeader inventoryHeader = new InventoryHeader();
         inventoryHeader.setId(id);
         inventoryHeader.setContainerCode(containerCode);
         inventoryHeader.setLocationCode(locationCode);
         inventoryHeader.setZoneCode(zoneCode);
+        inventoryHeader.setRoadWay(roadWay);
         return inventoryHeaderService.updateById(inventoryHeader);
     }
 
@@ -455,7 +456,8 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
             return false;
         }
         String zoneCode = toLocation.getZoneCode();
-        boolean success = inventoryHeaderService.updateInventoryContainerLocationZoneById(containerCode, locationCode, zoneCode, inventoryHeader.getId());
+        boolean success =
+            inventoryHeaderService.updateInventoryContainerLocationZoneById(containerCode, locationCode, zoneCode, toLocation.getRoadWay(), inventoryHeader.getId());
         if (!success) {
             return success;
         }
@@ -466,6 +468,7 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
             inventoryDetail1.setContainerCode(containerCode);
             inventoryDetail1.setLocationCode(locationCode);
             inventoryDetail1.setZoneCode(zoneCode);
+            inventoryDetail1.setRoadWay(toLocation.getRoadWay());
             updateInventoryDetailList.add(inventoryDetail1);
         }
         success = inventoryDetailService.updateBatchById(updateInventoryDetailList);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoCheckoutTask.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoCheckoutTask.java
new file mode 100644
index 0000000..114aff8
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoCheckoutTask.java
@@ -0,0 +1,80 @@
+package org.jeecg.modules.wms.monitor.job;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.wms.config.container.entity.Container;
+import org.jeecg.modules.wms.config.container.service.IContainerService;
+import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService;
+import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService;
+import org.jeecg.modules.wms.monitor.job.dto.AutoCheckOutDto;
+import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService;
+import org.jeecg.utils.StringUtils;
+import org.jeecg.utils.constant.QuantityConstant;
+import org.quartz.*;
+
+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;
+
+/**
+ * 定时任务
+ * @author 游杰
+ */
+
+@Slf4j
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+public class AutoCheckoutTask implements Job {
+
+    @Resource
+    private ITaskHeaderService taskHeaderService;
+
+    @Resource
+    private IHuahengMultiHandlerService huahengMultiHandlerService;
+
+    @Resource
+    private IContainerService containerService;
+    @Resource
+    private IParameterConfigurationService parameterConfigurationService;
+
+    private String parameter;
+
+    public void setParameter(String parameter) {
+        this.parameter = parameter;
+    }
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+
+        log.info(String.format(" AutoCheckoutTask 执行任务! 时间:" + DateUtils.getTimestamp()));
+        List<AutoCheckOutDto> autoCheckOutDtoList = JSON.parseArray(this.parameter, AutoCheckOutDto.class);
+        String value = parameterConfigurationService.getValueByCode(QuantityConstant.CONTAINER_MOVE_QTY);
+        int containerMoveQty = 5;
+        if (StringUtils.isNotEmpty(value)) {
+            containerMoveQty = Integer.parseInt(value);
+        }
+        LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery();
+        containerLambdaQueryWrapper.ge(Container::getMoveTaskTimes, containerMoveQty);
+        List<Container> containerList = containerService.list(containerLambdaQueryWrapper);
+        for (Container container : containerList) {
+            String zoneCode = container.getZoneCode();
+            String warehouseCode = container.getWarehouseCode();
+            String toPort = null;
+            if (StringUtils.isEmpty(zoneCode)) {
+                toPort = autoCheckOutDtoList.get(0).getToPort();
+            } else {
+                for (AutoCheckOutDto autoCheckOutDto : autoCheckOutDtoList) {
+                    if (zoneCode.equals(autoCheckOutDto.getZoneCode())) {
+                        toPort = autoCheckOutDto.getToPort();
+                    }
+                }
+            }
+            taskHeaderService.createCheckOutTask(container.getCode(), toPort, warehouseCode);
+        }
+    }
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/dto/AutoCheckOutDto.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/dto/AutoCheckOutDto.java
new file mode 100644
index 0000000..21bf916
--- /dev/null
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/dto/AutoCheckOutDto.java
@@ -0,0 +1,10 @@
+package org.jeecg.modules.wms.monitor.job.dto;
+
+import lombok.Data;
+
+@Data
+public class AutoCheckOutDto {
+
+    private String zoneCode;
+    private String toPort;
+}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java
index fa0ba70..10a549d 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java
@@ -71,6 +71,10 @@ public class ReceiptDetail implements Serializable {
     @Excel(name = "组盘数量", width = 15)
     @ApiModelProperty(value = "组盘数量")
     private java.math.BigDecimal taskQty;
+    /** 入库数量 */
+    @Excel(name = "入库数量", width = 15)
+    @ApiModelProperty(value = "入库数量")
+    private java.math.BigDecimal receiptQty;
     /** 库存状态 */
     @Excel(name = "库存状态", width = 15)
     @Dict(dicCode = "inventory_status")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java
index 03f33a3..c8ff986 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java
@@ -65,6 +65,14 @@ public interface IShipmentContainerHeaderService extends IService<ShipmentContai
     boolean updateTaskTypeById(int taskType, int id);
 
     /**
+     * 更新去向位置
+     * @param  toPort
+     * @param  id
+     * @return
+     */
+    boolean updateToPortById(String toPort, int id);
+
+    /**
      * 更新出库配盘状态
      * @param  status
      * @param  id
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
index 9f134c4..9339429 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
@@ -217,7 +217,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
         }
         int status = shipmentContainerHeader.getStatus();
         if (status >= QuantityConstant.SHIPMENT_CONTAINER_TASK) {
-            return Result.error("取消出库配盘失败,已经生成出库任务");
+            return Result.error("取消出库配盘失败,出库配盘状态是生成出库任务");
         }
         List<ShipmentContainerDetail> shipmentContainerDetailList = shipmentContainerDetailService.getShipmentContainerDetailListByHeaderId(id);
         for (ShipmentContainerDetail shipmentContainerDetail : shipmentContainerDetailList) {
@@ -264,6 +264,15 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
     }
 
     @Override
+    public boolean updateToPortById(String toPort, int id) {
+        ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader();
+        shipmentContainerHeader.setToPort(toPort);
+        shipmentContainerHeader.setId(id);
+        boolean success = this.updateById(shipmentContainerHeader);
+        return success;
+    }
+
+    @Override
     public boolean updateStatusById(int status, int id) {
         ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader();
         shipmentContainerHeader.setStatus(status);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
index 18b8bb7..c5a8ea5 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
@@ -376,6 +376,31 @@ public class TaskHeaderController extends HuahengBaseController {
     }
 
     /**
+     * 任务切换
+     */
+    @AutoLog(value = "任务表-任务切换")
+    @ApiOperation(value = "任务表-任务切换", notes = "任务表-任务切换")
+    @PostMapping("/switchTask")
+    @ResponseBody
+    @RequiresPermissions("taskHeader:switchTask")
+    public Result switchTask(@RequestParam(name = "ids", required = true) String ids) {
+        if (StringUtils.isEmpty(ids)) {
+            return Result.error("taskId不能为空");
+        }
+        Result result = null;
+        Integer[] idList = ConvertUtils.toIntArray(ids);
+        for (int taskId : idList) {
+            result = handleMultiProcess("switchTask", new MultiProcessListener() {
+                @Override
+                public Result<?> doProcess() {
+                    return taskHeaderService.switchTask(taskId);
+                }
+            });
+        }
+        return result;
+    }
+
+    /**
      * 执行任务
      */
     @AutoLog(value = "任务表-执行任务")
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 fe401de..f98ec02 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
@@ -36,6 +36,10 @@ public class TaskHeader implements Serializable {
     @Excel(name = "前置任务号", width = 15)
     @ApiModelProperty(value = "前置任务号")
     private Integer preTaskNo;
+    /** 上游任务号 */
+    @Excel(name = "上游任务号", width = 15)
+    @ApiModelProperty(value = "上游任务号")
+    private String upstreamTaskNo;
     /** 入库组盘ID */
     @Excel(name = "入库组盘ID", width = 15)
     @ApiModelProperty(value = "入库组盘ID")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
index d452ff9..51801d2 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
@@ -36,6 +36,8 @@ public interface ITaskHeaderService extends IService<TaskHeader> {
      */
     boolean haveUncompleteTaskInNear(Location location);
 
+    boolean updateUpstreamTaskNoById(String upstreamTaskNo, int id);
+
     /**
      * 通过AGV任务ID,获取任务信息
      * @param  agvTaskId
@@ -107,6 +109,13 @@ public interface ITaskHeaderService extends IService<TaskHeader> {
     Result cancelTask(Integer taskId);
 
     /**
+     * 取消WMS任务
+     * @param  taskId
+     * @return
+     */
+    Result cancelTaskByUpstreamTaskNo(String taskId);
+
+    /**
      * 下发任务给WCS
      * @param  taskId
      * @return
@@ -374,4 +383,12 @@ public interface ITaskHeaderService extends IService<TaskHeader> {
      * @return
      */
     Result quickReceipt(QucikReceiptEntity qucikReceiptEntity);
+
+    /**
+     * 切换任务
+     * @param  id
+     * @return
+     */
+    Result switchTask(int id);
+
 }
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 6a06e1a..20b657b 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
@@ -2,10 +2,7 @@ package org.jeecg.modules.wms.task.taskHeader.service.impl;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
@@ -43,6 +40,8 @@ import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptDetailService
 import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService;
 import org.jeecg.modules.wms.receipt.receiving.domain.Receive;
 import org.jeecg.modules.wms.receipt.receiving.service.IReceiveService;
+import org.jeecg.modules.wms.shipment.shipmentCombination.entity.CombinationModel;
+import org.jeecg.modules.wms.shipment.shipmentCombination.service.IShipmentCombinationService;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerDetail;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerHeader;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerDetailService;
@@ -62,6 +61,7 @@ import org.jeecg.modules.wms.task.taskHeader.mapper.TaskHeaderMapper;
 import org.jeecg.modules.wms.task.taskHeader.service.ITaskDetailService;
 import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService;
 import org.jeecg.modules.wms.task.taskHeaderHistory.service.ITaskHeaderHistoryService;
+import org.jeecg.utils.HuahengJwtUtil;
 import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -69,8 +69,10 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.alibaba.fastjson.JSON;
+import com.aliyun.oss.ServiceException;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
@@ -146,6 +148,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     private IReceiveService receiveService;
     @Resource
     private ITaskHeaderHistoryService taskHeaderHistoryService;
+    @Resource
+    private IShipmentCombinationService shipmentCombinationService;
 
     @Override
     @Transactional
@@ -182,6 +186,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     }
 
     @Override
+    public boolean updateUpstreamTaskNoById(String upstreamTaskNo, int id) {
+        TaskHeader taskHeader = new TaskHeader();
+        taskHeader.setUpstreamTaskNo(upstreamTaskNo);
+        taskHeader.setId(id);
+        return taskHeaderService.updateById(taskHeader);
+    }
+
+    @Override
     public TaskHeader getTaskHeaderByAgvTaskId(int agvTaskId) {
         LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
         taskHeaderLambdaQueryWrapper.eq(TaskHeader::getAgvTaskId, agvTaskId);
@@ -911,6 +923,18 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     }
 
     @Override
+    public Result cancelTaskByUpstreamTaskNo(String upstreamTaskNo) {
+        LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
+        taskHeaderLambdaQueryWrapper.eq(TaskHeader::getUpstreamTaskNo, upstreamTaskNo);
+        TaskHeader taskHeader = taskHeaderService.getOne(taskHeaderLambdaQueryWrapper);
+        if (taskHeader == null) {
+            return Result.error("取消任务失败,上游任务号" + upstreamTaskNo);
+        }
+        Result result = taskHeaderService.cancelTask(taskHeader.getId());
+        return result;
+    }
+
+    @Override
     @Transactional
     public Result sendTaskToWcs(Integer taskId) {
         TaskHeader taskHeader = taskHeaderService.getById(taskId);
@@ -1105,11 +1129,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             taskDetail.setReceiptCode(receiptDetail.getReceiptCode());
             BigDecimal taskQty = receiptDetail.getTaskQty();
             BigDecimal qty = receiptDetail.getQty();
+            BigDecimal receiptDetailReceiptQty = receiptDetail.getReceiptQty();
+            receiptDetailReceiptQty = receiptDetailReceiptQty.add(taskDetail.getQty());
             int receiptId = receiptDetail.getReceiptId();
             ReceiptDetail receiptDetail1 = new ReceiptDetail();
             receiptDetail1.setId(receiptDetail.getId());
             receiptDetail1.setReceiptId(receiptId);
-            if (taskQty.compareTo(qty) >= 0) {
+            receiptDetail1.setReceiptQty(receiptDetailReceiptQty);
+            if (receiptDetailReceiptQty.compareTo(qty) >= 0) {
                 receiptDetail1.setStatus(QuantityConstant.RECEIPT_HEADER_COMPLETED);
             } else {
                 receiptDetail1.setStatus(QuantityConstant.RECEIPT_HEADER_SHELF);
@@ -1781,6 +1808,17 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if (!success) {
             throw new JeecgBootException("任务类型" + taskType + "完成任务时,更新库存信息失败");
         }
+        LambdaUpdateWrapper<Container> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        lambdaUpdateWrapper.eq(Container::getCode, containerCode);
+        HuahengJwtUtil.calculateQuantity(lambdaUpdateWrapper, "task_times", BigDecimal.ONE);
+        if (taskType == QuantityConstant.TASK_TYPE_TRANSFER) {
+            HuahengJwtUtil.calculateQuantity(lambdaUpdateWrapper, "move_task_times", BigDecimal.ONE);
+        } else {
+            lambdaUpdateWrapper.setSql(true, "move_task_times = 0");
+        }
+        if (!containerService.update(lambdaUpdateWrapper)) {
+            throw new ServiceException("任务类型" + taskType + "更新容器失败");
+        }
         return Result.OK("任务类型" + taskType + "完成任务成功");
     }
 
@@ -1897,6 +1935,120 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         return Result.OK("快速入库成功");
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result switchTask(int id) {
+        TaskHeader taskHeader = taskHeaderService.getById(id);
+        if (taskHeader == null) {
+            return Result.error("切换任务失败,没有找到任务:" + id);
+        }
+        int taskType = taskHeader.getTaskType();
+        int status = taskHeader.getStatus();
+        if (taskType != QuantityConstant.TASK_TYPE_SORTINGSHIPMENT && taskType != QuantityConstant.TASK_TYPE_WHOLESHIPMENT) {
+            return Result.error("切换任务失败, 只有出库任务才可以做任务切换:" + id);
+        }
+        if (status > QuantityConstant.TASK_STATUS_RELEASE) {
+            return Result.error("切换任务失败, 任务状态不满足切换任务,目前状态为" + status);
+        }
+        List<TaskDetail> taskDetailList = taskDetailService.getTaskDetailListByTaskId(id);
+        if (taskDetailList.size() == 0) {
+            return Result.error("切换任务失败, 没有找到任务详情:" + id);
+        }
+        if (taskDetailList.size() > 3) {
+            return Result.error("切换任务失败, 没有找到任务详情:" + id);
+        }
+        String warehouseCode = taskHeader.getWarehouseCode();
+        String fromLocationCode = taskHeader.getFromLocationCode();
+        String toPortCode = taskHeader.getToPortCode();
+        Location fromLocation = locationService.getLocationByCode(fromLocationCode, warehouseCode);
+        if (fromLocation == null) {
+            return Result.error("切换任务失败, 没有找到起始库位:" + fromLocationCode);
+        }
+        Integer roadWay = fromLocation.getRoadWay();
+        List<String> allContainerCodeList = new ArrayList<>();
+        List<ShipmentDetail> shipmentDetailList = new ArrayList<>();
+        List<BigDecimal> shipmentQtyList = new ArrayList<>();
+        for (TaskDetail taskDetail : taskDetailList) {
+            String materialCode = taskDetail.getMaterialCode();
+            BigDecimal qty = taskDetail.getQty();
+            int shipmentDetailId = taskDetail.getShipmentDetailId();
+            ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentDetailId);
+            if (shipmentDetail == null) {
+                return Result.error("切换任务失败, 没有找到出库单详情:" + shipmentDetailId);
+            }
+            shipmentDetailList.add(shipmentDetail);
+            shipmentQtyList.add(qty);
+            List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByMaterialCodeToShipment(materialCode, qty, warehouseCode);
+            List<InventoryDetail> removeInventoryDetailList = new ArrayList<>();
+            for (InventoryDetail inventoryDetail : inventoryDetailList) {
+                if (roadWay.intValue() == inventoryDetail.getRoadWay().intValue()) {
+                    removeInventoryDetailList.add(inventoryDetail);
+                }
+            }
+            inventoryDetailList.removeAll(removeInventoryDetailList);
+            if (CollectionUtils.isEmpty(inventoryDetailList)) {
+                return Result.error("切换任务失败, 没有匹配的库存物料:" + materialCode);
+            }
+            // 去重
+            List<String> containerCodeList = inventoryDetailList.stream().map(InventoryDetail::getContainerCode).collect(Collectors.toList());
+            containerCodeList = containerCodeList.stream().distinct().collect(Collectors.toList());
+            allContainerCodeList.addAll(containerCodeList);
+        }
+        String switchContainerCode = null;
+        for (String containerCode1 : allContainerCodeList) {
+            int frequency = Collections.frequency(allContainerCodeList, containerCode1);
+            if (frequency == taskDetailList.size()) {
+                switchContainerCode = containerCode1;
+                break;
+            }
+        }
+        if (StringUtils.isEmpty(switchContainerCode)) {
+            return Result.error("切换任务失败, 其它巷道没有匹配的库存");
+        }
+        Result result = taskHeaderService.cancelTask(id);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException("切换任务失败," + result.getMessage());
+        }
+        for (int i = 0; i < shipmentDetailList.size(); i++) {
+            int shipmentDetailId = shipmentDetailList.get(i).getId();
+            ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentDetailId);
+            BigDecimal shipQty = shipmentQtyList.get(i);
+            InventoryDetail inventoryDetail =
+                inventoryDetailService.getInventoryDetailByMaterialCodeToShipment(switchContainerCode, shipmentDetail.getMaterialCode(), shipQty, warehouseCode);
+            CombinationModel combinationModel = new CombinationModel();
+            combinationModel.setShipmentDetail(shipmentDetail);
+            combinationModel.setInventoryDetail(inventoryDetail);
+            combinationModel.setShipQty(shipQty);
+            result = shipmentCombinationService.combination(combinationModel);
+            if (!result.isSuccess()) {
+                throw new JeecgBootException("切换任务失败," + result.getMessage());
+            }
+        }
+        ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getUnCompleteShipmentContainerByCode(switchContainerCode, warehouseCode);
+        if (shipmentContainerHeader == null) {
+            throw new JeecgBootException("切换任务失败, 出库配盘为空");
+        }
+        result = shipmentCombinationService.createShipmentTask(shipmentContainerHeader, warehouseCode, 0, 0, 0);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException("切换任务失败," + result.getMessage());
+        }
+        TaskHeader taskHeader1 = taskHeaderService.getUnCompleteTaskByContainerCode(switchContainerCode, warehouseCode);
+        if (taskHeader1 == null) {
+            throw new JeecgBootException("切换任务失败, 没有任务");
+        }
+        if (taskType == QuantityConstant.TASK_TYPE_SORTINGSHIPMENT) {
+            int taskHeader1Id = taskHeader1.getId();
+            taskHeader1 = new TaskHeader();
+            taskHeader1.setId(taskHeader1Id);
+            taskHeader1.setTaskType(taskType);
+            taskHeader1.setToPortCode(toPortCode);
+            if (!taskHeaderService.updateById(taskHeader1)) {
+                throw new JeecgBootException("切换任务失败, 更新任务状态失败");
+            }
+        }
+        return Result.ok("切换任务成功");
+    }
+
     /**
      * 完成空托盘入库任务
      * @param  taskHeader 任务
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java
index b7c4214..3d91398 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/HuahengJwtUtil.java
@@ -302,7 +302,11 @@ public class HuahengJwtUtil {
 
     public static <T> void calculateQuantity(LambdaUpdateWrapper<T> lambdaUpdateWrapper, T t, String fieldName, BigDecimal quantity, Boolean geZero) {
         String sqlFieldName = StrUtil.toUnderlineCase(fieldName);
-        lambdaUpdateWrapper.setSql(quantity != null, sqlFieldName + " = " + sqlFieldName + " + " + quantity);
+        if (quantity.compareTo(BigDecimal.ZERO) < 0) {
+            lambdaUpdateWrapper.setSql(quantity != null, sqlFieldName + " = " + sqlFieldName + quantity);
+        } else {
+            lambdaUpdateWrapper.setSql(quantity != null, sqlFieldName + " = " + sqlFieldName + " + " + quantity);
+        }
         if (t != null) {
 //            Object fieldValue = ReflectUtil.getFieldValue(t, fieldName);
 //            lambdaUpdateWrapper.apply(fieldValue != null, sqlFieldName + " = {0}", fieldValue);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
index 9975328..6c3c77e 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java
@@ -485,6 +485,7 @@ public class QuantityConstant {
     public static final String DOUBLE_FORK_RESERVE_LOCATION = "doubleForkReserveLocation";
     public static final String DOUBLE_FORK_SEARCH_LOCATION = "doubleForkSearchLocation";
     public static final String MAX_ROADWAY_RECEIPT = "maxRoadWayReceipt";
+    public static final String CONTAINER_MOVE_QTY = "containerMoveQty";
     public static final String WAREHOUSING_WEIGHING = "warehousingWeighing";
     public static final String EXCEPTION_TO_CACHE = "exceptionToCache";
     public static final String CONTAINER_SPEC = "containerSpec";
@@ -593,6 +594,11 @@ public class QuantityConstant {
     /* 不可用 */
     public static final int STATUS_DISABLE = 0;
 
+    /* 在库外 */
+    public static final int STATUS_LOCATION_OUT = 0;
+    /* 在库内 */
+    public static final int STATUS_LOCATION_IN = 1;
+
     /* 可用 */
     public static final int INVENTORY_DETAIL_STATUS_ENABLE = 0;
     /* 受控 */
diff --git a/实施文档/Navicat15.rar b/实施文档/Navicat15.rar
new file mode 100644
index 0000000..8782f24
--- /dev/null
+++ b/实施文档/Navicat15.rar
diff --git a/实施文档/linux服务器配置.docx b/实施文档/linux服务器配置.docx
new file mode 100644
index 0000000..02aa7a0
--- /dev/null
+++ b/实施文档/linux服务器配置.docx
diff --git a/实施文档/windows服务设置.zip b/实施文档/windows服务设置.zip
new file mode 100644
index 0000000..92e1ec7
--- /dev/null
+++ b/实施文档/windows服务设置.zip
diff --git a/实施文档/华恒WMS项目实施要求2.2.docx b/实施文档/华恒WMS项目实施要求2.2.docx
new file mode 100644
index 0000000..7190422
--- /dev/null
+++ b/实施文档/华恒WMS项目实施要求2.2.docx
diff --git a/实施文档/参加培训人员签到表.docx b/实施文档/参加培训人员签到表.docx
new file mode 100644
index 0000000..e78d54c
--- /dev/null
+++ b/实施文档/参加培训人员签到表.docx
diff --git a/验收文档模板/APTIV接口协议V2.5.pdf b/验收文档模板/APTIV接口协议V2.5.pdf
new file mode 100644
index 0000000..ac46517
--- /dev/null
+++ b/验收文档模板/APTIV接口协议V2.5.pdf
diff --git a/验收文档模板/IP地址/安波福软件IP表.xlsx b/验收文档模板/IP地址/安波福软件IP表.xlsx
new file mode 100644
index 0000000..a00db8f
--- /dev/null
+++ b/验收文档模板/IP地址/安波福软件IP表.xlsx
diff --git a/验收文档模板/WCS操作说明书/上海安波福导线桶仓使用说明书1.0 .docx b/验收文档模板/WCS操作说明书/上海安波福导线桶仓使用说明书1.0 .docx
new file mode 100644
index 0000000..8e166d3
--- /dev/null
+++ b/验收文档模板/WCS操作说明书/上海安波福导线桶仓使用说明书1.0 .docx
diff --git a/验收文档模板/WCS操作说明书/上海安波福成品仓使用说明书1.0.docx b/验收文档模板/WCS操作说明书/上海安波福成品仓使用说明书1.0.docx
new file mode 100644
index 0000000..2a05f4f
--- /dev/null
+++ b/验收文档模板/WCS操作说明书/上海安波福成品仓使用说明书1.0.docx
diff --git a/验收文档模板/WMS操作说明书/上海安波福WMS网页端操作说明书v1.1.doc b/验收文档模板/WMS操作说明书/上海安波福WMS网页端操作说明书v1.1.doc
new file mode 100644
index 0000000..c5664fc
--- /dev/null
+++ b/验收文档模板/WMS操作说明书/上海安波福WMS网页端操作说明书v1.1.doc
diff --git a/验收文档模板/WMS操作说明书/上海安波福手持端系统说明书v1.0.docx b/验收文档模板/WMS操作说明书/上海安波福手持端系统说明书v1.0.docx
new file mode 100644
index 0000000..0331175
--- /dev/null
+++ b/验收文档模板/WMS操作说明书/上海安波福手持端系统说明书v1.0.docx
diff --git a/验收文档模板/上海安波福程序部署.xls b/验收文档模板/上海安波福程序部署.xls
new file mode 100644
index 0000000..72585f7
--- /dev/null
+++ b/验收文档模板/上海安波福程序部署.xls
diff --git a/验收文档模板/会议纪要/Raw Material Auto Warehouse digization solution.pdf b/验收文档模板/会议纪要/Raw Material Auto Warehouse digization solution.pdf
new file mode 100644
index 0000000..85581f6
--- /dev/null
+++ b/验收文档模板/会议纪要/Raw Material Auto Warehouse digization solution.pdf
diff --git a/验收文档模板/会议纪要/Taiyun Plant Auto Warehouse SOW(2)(1).docx b/验收文档模板/会议纪要/Taiyun Plant Auto Warehouse SOW(2)(1).docx
new file mode 100644
index 0000000..872126b
--- /dev/null
+++ b/验收文档模板/会议纪要/Taiyun Plant Auto Warehouse SOW(2)(1).docx
diff --git a/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.05.doc b/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.05.doc
new file mode 100644
index 0000000..9c2c250
--- /dev/null
+++ b/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.05.doc
diff --git a/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.06.doc b/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.06.doc
new file mode 100644
index 0000000..4bdc53b
--- /dev/null
+++ b/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.06.doc
diff --git a/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.12.doc b/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.12.doc
new file mode 100644
index 0000000..66f81ff
--- /dev/null
+++ b/验收文档模板/会议纪要/安波福内部方案讨论会议纪要23.01.12.doc
diff --git a/验收文档模板/开发计划/安波福 软件调试计划 .xls b/验收文档模板/开发计划/安波福 软件调试计划 .xls
new file mode 100644
index 0000000..8962187
--- /dev/null
+++ b/验收文档模板/开发计划/安波福 软件调试计划 .xls
diff --git a/验收文档模板/开发计划/软件开发计划.xls b/验收文档模板/开发计划/软件开发计划.xls
new file mode 100644
index 0000000..90e75c5
--- /dev/null
+++ b/验收文档模板/开发计划/软件开发计划.xls
diff --git a/验收文档模板/接口文档/IIH_WMS_WebApi技术文档17.docx b/验收文档模板/接口文档/IIH_WMS_WebApi技术文档17.docx
new file mode 100644
index 0000000..ccff181
--- /dev/null
+++ b/验收文档模板/接口文档/IIH_WMS_WebApi技术文档17.docx
diff --git a/验收文档模板/接口文档/WMS_WebApi技术文档V1.2 (1).docx b/验收文档模板/接口文档/WMS_WebApi技术文档V1.2 (1).docx
new file mode 100644
index 0000000..5474811
--- /dev/null
+++ b/验收文档模板/接口文档/WMS_WebApi技术文档V1.2 (1).docx
diff --git a/验收文档模板/接口文档/WMS_WebApi技术文档V1.3.docx b/验收文档模板/接口文档/WMS_WebApi技术文档V1.3.docx
new file mode 100644
index 0000000..2e6a78e
--- /dev/null
+++ b/验收文档模板/接口文档/WMS_WebApi技术文档V1.3.docx
diff --git a/验收文档模板/接口文档/WMS_WebApi技术文档V1.4.docx b/验收文档模板/接口文档/WMS_WebApi技术文档V1.4.docx
new file mode 100644
index 0000000..5ab0330
--- /dev/null
+++ b/验收文档模板/接口文档/WMS_WebApi技术文档V1.4.docx
diff --git a/验收文档模板/接口文档/WMS_WebApi技术文档V1.5.docx b/验收文档模板/接口文档/WMS_WebApi技术文档V1.5.docx
new file mode 100644
index 0000000..1ca8ef8
--- /dev/null
+++ b/验收文档模板/接口文档/WMS_WebApi技术文档V1.5.docx
diff --git a/验收文档模板/接口文档/WMS_WebApi技术文档V1.6.docx b/验收文档模板/接口文档/WMS_WebApi技术文档V1.6.docx
new file mode 100644
index 0000000..685adb5
--- /dev/null
+++ b/验收文档模板/接口文档/WMS_WebApi技术文档V1.6.docx
diff --git a/验收文档模板/接口文档/WMS_WebApi接口文档1.1.docx b/验收文档模板/接口文档/WMS_WebApi接口文档1.1.docx
new file mode 100644
index 0000000..9298cb4
--- /dev/null
+++ b/验收文档模板/接口文档/WMS_WebApi接口文档1.1.docx
diff --git a/验收文档模板/程序部署清单/上海安波福--程序部署说明V1.0.docx b/验收文档模板/程序部署清单/上海安波福--程序部署说明V1.0.docx
new file mode 100644
index 0000000..61f6ef4
--- /dev/null
+++ b/验收文档模板/程序部署清单/上海安波福--程序部署说明V1.0.docx
diff --git a/验收文档模板/网络拓扑图/上海安波福网络拓扑图.png b/验收文档模板/网络拓扑图/上海安波福网络拓扑图.png
new file mode 100644
index 0000000..074f05e
--- /dev/null
+++ b/验收文档模板/网络拓扑图/上海安波福网络拓扑图.png
diff --git a/验收文档模板/网络拓扑图/安波福成品仓导线仓拓扑图.drawio b/验收文档模板/网络拓扑图/安波福成品仓导线仓拓扑图.drawio
new file mode 100644
index 0000000..c7c3a49
--- /dev/null
+++ b/验收文档模板/网络拓扑图/安波福成品仓导线仓拓扑图.drawio
@@ -0,0 +1,81 @@
+<mxfile host="Electron" modified="2023-07-07T03:08:54.978Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.1 Chrome/112.0.5615.204 Electron/24.6.1 Safari/537.36" etag="-QGorfQODYb77niynJA8" version="21.6.1" type="device">
+  <diagram name="第 1 页" id="uBLssKjZSJGIRTdHroud">
+    <mxGraphModel dx="1434" dy="2005" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-56" value="" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
+          <mxGeometry x="590" y="250" width="380" height="190" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-55" value="" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
+          <mxGeometry x="620" y="90" width="180" height="90" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-54" value="" style="whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
+          <mxGeometry x="330" y="206.5" width="216" height="235" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-52" value="" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
+          <mxGeometry x="20" y="80" width="300" height="200" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.514;entryY=-0.05;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VyDNnv1cJVr2Vyl7Voic-10" target="VyDNnv1cJVr2Vyl7Voic-19">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=-0.017;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VyDNnv1cJVr2Vyl7Voic-10" target="VyDNnv1cJVr2Vyl7Voic-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="VyDNnv1cJVr2Vyl7Voic-10" target="VyDNnv1cJVr2Vyl7Voic-31">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.588;entryY=-0.039;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VyDNnv1cJVr2Vyl7Voic-10" target="VyDNnv1cJVr2Vyl7Voic-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="VyDNnv1cJVr2Vyl7Voic-10">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="720" y="140" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-10" value="客户内网" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="180" y="-20" width="390" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-18" value="" style="html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;shadow=0;dashed=0;strokeWidth=1;shape=mxgraph.ios7.misc.iphone;strokeColor=#c0c0c0;" vertex="1" parent="1">
+          <mxGeometry x="340" y="270" width="70" height="120" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-19" value="" style="html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;shadow=0;dashed=0;strokeWidth=1;shape=mxgraph.ios7.misc.iphone;strokeColor=#c0c0c0;" vertex="1" parent="1">
+          <mxGeometry x="460" y="270" width="70" height="120" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-31" value="&lt;font style=&quot;font-size: 24px&quot;&gt;WMS服务器&lt;br&gt;10.13.80.17&lt;br&gt;&lt;/font&gt;" style="verticalLabelPosition=bottom;aspect=fixed;html=1;verticalAlign=top;strokeColor=default;shape=mxgraph.citrix.hq_enterprise;fillColor=#fff2cc;fontSize=14;" vertex="1" parent="1">
+          <mxGeometry x="50" y="130" width="79.97" height="76.5" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-32" value="&lt;font style=&quot;font-size: 24px&quot;&gt;WMS服务器&lt;br&gt;10.13.80.18&lt;br&gt;&lt;/font&gt;" style="verticalLabelPosition=bottom;aspect=fixed;html=1;verticalAlign=top;strokeColor=default;shape=mxgraph.citrix.hq_enterprise;fillColor=#fff2cc;fontSize=14;" vertex="1" parent="1">
+          <mxGeometry x="200" y="130" width="79.97" height="76.5" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.449;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VyDNnv1cJVr2Vyl7Voic-40" target="VyDNnv1cJVr2Vyl7Voic-45">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.315;entryY=0.01;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VyDNnv1cJVr2Vyl7Voic-40" target="VyDNnv1cJVr2Vyl7Voic-46">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-40" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;" vertex="1" parent="1">
+          <mxGeometry x="670" y="140" width="100" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-44" value="&lt;b&gt;&lt;font style=&quot;font-size: 24px;&quot;&gt;交换机&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
+          <mxGeometry x="610" y="100" width="100" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-45" value="" style="verticalLabelPosition=bottom;aspect=fixed;html=1;verticalAlign=top;strokeColor=none;shape=mxgraph.citrix.desktop;fillColor=#66B2FF;gradientColor=#0066CC;fontSize=14;" vertex="1" parent="1">
+          <mxGeometry x="630" y="270" width="89" height="98" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-46" value="" style="verticalLabelPosition=bottom;aspect=fixed;html=1;verticalAlign=top;strokeColor=none;shape=mxgraph.citrix.desktop;fillColor=#66B2FF;gradientColor=#0066CC;fontSize=14;" vertex="1" parent="1">
+          <mxGeometry x="810" y="270" width="89" height="98" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-47" value="&lt;font style=&quot;font-size: 24px;&quot;&gt;&lt;font style=&quot;&quot;&gt;10.13&lt;/font&gt;.83.2&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;&quot;&gt;导线仓工控机&lt;/span&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
+          <mxGeometry x="580" y="368" width="170" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-48" value="&lt;font style=&quot;font-size: 24px;&quot;&gt;10&lt;font style=&quot;&quot;&gt;.13.83.5&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&lt;/font&gt;成品仓工控机&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
+          <mxGeometry x="780" y="370" width="170" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="VyDNnv1cJVr2Vyl7Voic-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="VyDNnv1cJVr2Vyl7Voic-40" target="VyDNnv1cJVr2Vyl7Voic-40">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
diff --git a/验收文档模板/软件方案规格书/安波福立体仓储系统方案书-20221119.docx b/验收文档模板/软件方案规格书/安波福立体仓储系统方案书-20221119.docx
new file mode 100644
index 0000000..87195b5
--- /dev/null
+++ b/验收文档模板/软件方案规格书/安波福立体仓储系统方案书-20221119.docx
diff --git a/验收文档模板/软件物料采购清单/软件物料采购单-安波福.xlsx b/验收文档模板/软件物料采购清单/软件物料采购单-安波福.xlsx
new file mode 100644
index 0000000..81cfd0c
--- /dev/null
+++ b/验收文档模板/软件物料采购清单/软件物料采购单-安波福.xlsx
diff --git a/验收文档模板/项目分享-安波福项目.pptx b/验收文档模板/项目分享-安波福项目.pptx
new file mode 100644
index 0000000..2fc85b6
--- /dev/null
+++ b/验收文档模板/项目分享-安波福项目.pptx