From 20cec70cdcca8c2419a17e0304d12d5360af6065 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 25 九月 2024 14:48:27 +0800
Subject: [PATCH] #

---
 zy-asrs-admin/src/views/loc/loc/index.vue                                             |   27 +
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderLogController.java     |   44 ++
 zy-asrs-admin/src/views/base/loc/index.vue                                            |   30 ++
 zy-asrs-admin/src/components/orderLog/index.vue                                       |   46 +++
 zy-asrs-admin/src/views/base/mat/index.vue                                            |   22 +
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakinLog.java               |   12 
 zy-asrs-admin/src/views/task/taskLog/index.vue                                        |   55 +++
 zy-asrs-admin/src/views/in/waitPakin/index.vue                                        |   35 ++
 zy-asrs-admin/src/views/out/cacheSite/index.vue                                       |   46 ++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java         |   50 +++
 zy-asrs-admin/src/views/out/waveSeed/index.vue                                        |   24 +
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaveSeed.java                   |    6 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakin.java                  |   12 
 zy-asrs-admin/src/components/order/order/orderIn.vue                                  |   47 +++
 zy-asrs-admin/src/components/order/order/orderOut.vue                                 |   41 +++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java |    2 
 zy-asrs-admin/src/views/loc/locDetl/index.vue                                         |   38 ++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageParam.java                |   12 
 zy-asrs-admin/src/views/task/task/index.vue                                           |   55 +++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java               |    1 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java    |   14 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java        |   46 ++
 zy-asrs-admin/src/views/in/waitPakinLog/index.vue                                     |   34 ++
 zy-asrs-admin/src/views/out/wave/index.vue                                            |   30 +
 24 files changed, 636 insertions(+), 93 deletions(-)

diff --git a/zy-asrs-admin/src/components/order/order/orderIn.vue b/zy-asrs-admin/src/components/order/order/orderIn.vue
index cf763ec..0b9c6f4 100644
--- a/zy-asrs-admin/src/components/order/order/orderIn.vue
+++ b/zy-asrs-admin/src/components/order/order/orderIn.vue
@@ -1,7 +1,7 @@
 <script setup>
 import { getCurrentInstance, ref, computed, reactive, defineProps } from 'vue';
 import { useRouter } from "vue-router";
-import { get, post, postBlob } from '@/utils/request.js'
+import { get, post, postBlob, postForm } from '@/utils/request.js'
 import { message, Modal } from 'ant-design-vue';
 import { globalState, logout } from '@/config.js';
 import EditView from './edit.vue'
@@ -25,6 +25,11 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  orderNo: null,
+  orderType: null,
+  orderSettle: null,
+})
 const editChild = ref(null)
 const showOrderDetlChild = ref(null)
 
@@ -158,6 +163,7 @@
     current: currentPage,
     pageSize: pageSize,
     condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -274,6 +280,25 @@
   }
 };
 
+const orderTypeQueryList = ref(null);
+orderTypeQuery();
+function orderTypeQuery() {
+  postForm('/api/orderType/query', {
+    type: 1
+  }).then(resp => {
+    let result = resp.data;
+    orderTypeQueryList.value = result.data;
+  })
+}
+const orderSettleQueryList = ref(null);
+orderSettleQuery();
+function orderSettleQuery() {
+  postForm('/api/orderSettle/query', {}).then(resp => {
+    let result = resp.data;
+    orderSettleQueryList.value = result.data;
+  })
+}
+
 </script>
 
 <script>
@@ -287,8 +312,21 @@
     <EditView ref="editChild" @tableReload="handleTableReload"
       :ioModel="ioModel == 'in' ? 1 : ioModel == 'out' ? 2 : null" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.order.orderNo.input', '璇疯緭鍏ヨ鍗曠紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-select v-model:value="searchParam.orderSettle" :placeholder="formatMessage('page.order.orderSettle.select', '璇烽�夋嫨鍗曟嵁鐘舵��')"
+          style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList" optionFilterProp="label"
+          optionLabelProp="label">
+        </a-select>
+        <a-select v-model:value="searchParam.orderType" :placeholder="formatMessage('page.order.orderType.select', '璇烽�夋嫨鍗曟嵁绫诲瀷')"
+          style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList" optionFilterProp="label"
+          optionLabelProp="label">
+        </a-select>
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <a-dropdown>
           <template #overlay>
@@ -321,7 +359,8 @@
     <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"
       :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
       :pagination="{ total: tableData.total, onChange: onPageChange }"
-      :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn" :loading="state.loading">
+      :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn"
+      :loading="state.loading">
       <template #bodyCell="{ column, text, record }">
         <template v-if="column.dataIndex === 'oper'">
           <div style="display: flex;justify-content: space-evenly;">
diff --git a/zy-asrs-admin/src/components/order/order/orderOut.vue b/zy-asrs-admin/src/components/order/order/orderOut.vue
index 7628d7a..0203e01 100644
--- a/zy-asrs-admin/src/components/order/order/orderOut.vue
+++ b/zy-asrs-admin/src/components/order/order/orderOut.vue
@@ -1,7 +1,7 @@
 <script setup>
 import { getCurrentInstance, ref, computed, reactive, defineProps } from 'vue';
 import { useRouter } from "vue-router";
-import { get, post, postBlob } from '@/utils/request.js'
+import { get, post, postBlob, postForm } from '@/utils/request.js'
 import { message, Modal } from 'ant-design-vue';
 import { globalState, logout } from '@/config.js';
 import EditView from './edit.vue'
@@ -27,6 +27,11 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+    orderNo: null,
+    orderType: null,
+    orderSettle: null,
+})
 const editChild = ref(null)
 const showOrderDetlChild = ref(null)
 
@@ -167,6 +172,7 @@
         current: currentPage,
         pageSize: pageSize,
         condition: searchInput.value,
+        _param: searchParam.value,
     }).then((resp) => {
         let result = resp.data;
         if (result.code == 200) {
@@ -334,6 +340,25 @@
     })
 }
 
+const orderTypeQueryList = ref(null);
+orderTypeQuery();
+function orderTypeQuery() {
+    postForm('/api/orderType/query', {
+        type: 2
+    }).then(resp => {
+        let result = resp.data;
+        orderTypeQueryList.value = result.data;
+    })
+}
+const orderSettleQueryList = ref(null);
+orderSettleQuery();
+function orderSettleQuery() {
+    postForm('/api/orderSettle/query', {}).then(resp => {
+        let result = resp.data;
+        orderSettleQueryList.value = result.data;
+    })
+}
+
 </script>
 
 <script>
@@ -349,6 +374,20 @@
         <div class="table-header">
             <div style="display: flex;">
                 <div style="margin-right: 10px;">
+                    <a-input v-model:value="searchParam.orderNo"
+                        :placeholder="formatMessage('page.order.orderNo.input', '璇疯緭鍏ヨ鍗曠紪鍙�')"
+                        style="width: 140px;margin-right: 10px;" />
+                    <a-select v-model:value="searchParam.orderSettle"
+                        :placeholder="formatMessage('page.order.orderSettle.select', '璇烽�夋嫨鍗曟嵁鐘舵��')"
+                        style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList"
+                        optionFilterProp="label" optionLabelProp="label">
+                    </a-select>
+                    <a-select v-model:value="searchParam.orderType"
+                        :placeholder="formatMessage('page.order.orderType.select', '璇烽�夋嫨鍗曟嵁绫诲瀷')"
+                        style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList"
+                        optionFilterProp="label" optionLabelProp="label">
+                    </a-select>
+
                     <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
                         style="width: 200px;" @search="onSearch" />
                 </div>
diff --git a/zy-asrs-admin/src/components/orderLog/index.vue b/zy-asrs-admin/src/components/orderLog/index.vue
index 5290ed4..6664ec4 100644
--- a/zy-asrs-admin/src/components/orderLog/index.vue
+++ b/zy-asrs-admin/src/components/orderLog/index.vue
@@ -1,7 +1,7 @@
 <script setup>
 import { getCurrentInstance, ref, computed, reactive, defineProps } from 'vue';
 import { useRouter } from "vue-router";
-import { get, post, postBlob } from '@/utils/request.js'
+import { get, post, postBlob, postForm } from '@/utils/request.js'
 import { message, Modal } from 'ant-design-vue';
 import { logout } from '@/config.js';
 import EditView from './edit.vue'
@@ -20,6 +20,11 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  orderNo: null,
+  orderType: null,
+  orderSettle: null,
+})
 const editChild = ref(null)
 const showOrderDetlChild = ref(null)
 
@@ -139,6 +144,7 @@
     current: currentPage,
     pageSize: pageSize,
     condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -216,6 +222,25 @@
   getPage()
 }
 
+const orderTypeQueryList = ref(null);
+orderTypeQuery();
+function orderTypeQuery() {
+  postForm('/api/orderType/query', {
+    type: 1
+  }).then(resp => {
+    let result = resp.data;
+    orderTypeQueryList.value = result.data;
+  })
+}
+const orderSettleQueryList = ref(null);
+orderSettleQuery();
+function orderSettleQuery() {
+  postForm('/api/orderSettle/query', {}).then(resp => {
+    let result = resp.data;
+    orderSettleQueryList.value = result.data;
+  })
+}
+
 </script>
 
 <script>
@@ -228,8 +253,23 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" :ioModel="ioModel == 'in' ? 1 : 2" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.order.orderNo.input', '璇疯緭鍏ヨ鍗曠紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-select v-model:value="searchParam.orderSettle"
+          :placeholder="formatMessage('page.order.orderSettle.select', '璇烽�夋嫨鍗曟嵁鐘舵��')"
+          style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList"
+          optionFilterProp="label" optionLabelProp="label">
+        </a-select>
+        <a-select v-model:value="searchParam.orderType"
+          :placeholder="formatMessage('page.order.orderType.select', '璇烽�夋嫨鍗曟嵁绫诲瀷')"
+          style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList"
+          optionFilterProp="label" optionLabelProp="label">
+        </a-select>
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button> -->
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
diff --git a/zy-asrs-admin/src/views/base/loc/index.vue b/zy-asrs-admin/src/views/base/loc/index.vue
index a435151..88e598a 100644
--- a/zy-asrs-admin/src/views/base/loc/index.vue
+++ b/zy-asrs-admin/src/views/base/loc/index.vue
@@ -15,6 +15,13 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  locNo: null,
+  row1: null,
+  bay1: null,
+  lev1: null,
+  barcode: null,
+})
 const editChild = ref(null)
 
 const state = reactive({
@@ -159,7 +166,8 @@
   post('/api/loc/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -242,8 +250,21 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.locNo" :placeholder="formatMessage('page.loc.locNo.input', '璇疯緭鍏ュ簱浣嶅彿')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.row1" :placeholder="formatMessage('page.loc.row1.input', '璇疯緭鍏ユ帓')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.bay1" :placeholder="formatMessage('page.loc.bay1.input', '璇疯緭鍏ュ垪')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.lev1" :placeholder="formatMessage('page.loc.lev1.input', '璇疯緭鍏ュ眰')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.barcode" :placeholder="formatMessage('page.loc.barcode.input', '璇疯緭鍏ユ潯鐮�')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button>
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
@@ -252,7 +273,8 @@
     <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"
       :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
       :pagination="{ total: tableData.total, onChange: onPageChange }"
-      :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn" :loading="state.loading">
+      :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn"
+      :loading="state.loading">
       <template #bodyCell="{ column, text, record }">
         <template v-if="column.dataIndex === 'oper'">
           <div style="display: flex;justify-content: space-evenly;">
diff --git a/zy-asrs-admin/src/views/base/mat/index.vue b/zy-asrs-admin/src/views/base/mat/index.vue
index b5ca1aa..58d1198 100644
--- a/zy-asrs-admin/src/views/base/mat/index.vue
+++ b/zy-asrs-admin/src/views/base/mat/index.vue
@@ -20,6 +20,12 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  matnr: null,
+  maktx: null,
+  specs: null,
+  model: null,
+})
 const editChild = ref(null)
 
 const state = reactive({
@@ -355,7 +361,8 @@
   post('/api/mat/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -486,8 +493,19 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+      <div>
+        <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.mat.matnr.input', '璇疯緭鍏ュ晢鍝佺紪鍙�')"
+        style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.maktx" :placeholder="formatMessage('page.mat.matnr.input', '璇疯緭鍏ュ晢鍝佸悕绉�')"
+        style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.specs" :placeholder="formatMessage('page.mat.matnr.input', '璇疯緭鍏ヨ鏍�')"
+        style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.model" :placeholder="formatMessage('page.mat.matnr.input', '璇疯緭鍏ュ瀷鍙�')"
+        style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
         style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <a-dropdown>
           <template #overlay>
diff --git a/zy-asrs-admin/src/views/in/waitPakin/index.vue b/zy-asrs-admin/src/views/in/waitPakin/index.vue
index 7e601a0..798f10b 100644
--- a/zy-asrs-admin/src/views/in/waitPakin/index.vue
+++ b/zy-asrs-admin/src/views/in/waitPakin/index.vue
@@ -23,6 +23,12 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  orderNo: null,
+  barcode: null,
+  matnr: null,
+  batch: null,
+})
 const editChild = ref(null)
 const generateTaskChild = ref(null)
 
@@ -63,17 +69,17 @@
   },
   {
     title: formatMessage('db.man_wait_pakin.matnr', '鍟嗗搧缂栧彿'),
-    dataIndex: ['detl$', 'mat$', 'matnr'],
+    dataIndex: 'matnr',
     width: 140,
     ellipsis: true,
-    ...getColumnSearchProps('detl$.matnr'),
+    ...getColumnSearchProps('matnr'),
   },
   {
     title: formatMessage('db.man_wait_pakin.batch', '鎵瑰彿'),
-    dataIndex: ['detl$', 'batch'],
+    dataIndex: 'batch',
     width: 140,
     ellipsis: true,
-    ...getColumnSearchProps('detl$.matnr'),
+    ...getColumnSearchProps('batch'),
   },
   {
     title: formatMessage('db.man_wait_pakin.anfme', '缁勬墭鏁伴噺'),
@@ -161,7 +167,8 @@
   post('/api/waitPakin/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -287,8 +294,22 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.orderNo"
+          :placeholder="formatMessage('page.waitPakin.orderNo.input', '璇疯緭鍏ヨ鍗曠紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.barcode"
+          :placeholder="formatMessage('page.waitPakin.barcode.input', '璇疯緭鍏ユ墭鐩樼爜')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.matnr"
+          :placeholder="formatMessage('page.waitPakin.matnr.input', '璇疯緭鍏ュ晢鍝佺紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.waitPakin.batch.input', '璇疯緭鍏ユ壒鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <a-dropdown>
           <template #overlay>
diff --git a/zy-asrs-admin/src/views/in/waitPakinLog/index.vue b/zy-asrs-admin/src/views/in/waitPakinLog/index.vue
index f57d55f..3503397 100644
--- a/zy-asrs-admin/src/views/in/waitPakinLog/index.vue
+++ b/zy-asrs-admin/src/views/in/waitPakinLog/index.vue
@@ -15,6 +15,12 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  orderNo: null,
+  barcode: null,
+  matnr: null,
+  batch: null,
+})
 const editChild = ref(null)
 
 const state = reactive({
@@ -61,17 +67,17 @@
   },
   {
     title: formatMessage('db.man_wait_pakin_log.matnr', '鍟嗗搧缂栧彿'),
-    dataIndex: ['detl$', 'mat$', 'matnr'],
+    dataIndex: 'matnr',
     width: 140,
     ellipsis: true,
-    ...getColumnSearchProps('detl$.matnr'),
+    ...getColumnSearchProps('matnr'),
   },
   {
     title: formatMessage('db.man_wait_pakin_log.batch', '鎵瑰彿'),
-    dataIndex: ['detl$', 'batch'],
+    dataIndex: 'batch',
     width: 140,
     ellipsis: true,
-    ...getColumnSearchProps('detl$.matnr'),
+    ...getColumnSearchProps('batch'),
   },
   {
     title: formatMessage('db.man_wait_pakin_log.io_status', '缁勬墭鐘舵��'),
@@ -152,7 +158,8 @@
   post('/api/waitPakinLog/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -235,8 +242,21 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.orderNo"
+          :placeholder="formatMessage('page.waitPakin.orderNo.input', '璇疯緭鍏ヨ鍗曠紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.barcode"
+          :placeholder="formatMessage('page.waitPakin.barcode.input', '璇疯緭鍏ユ墭鐩樼爜')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.waitPakin.matnr.input', '璇疯緭鍏ュ晢鍝佺紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.waitPakin.batch.input', '璇疯緭鍏ユ壒鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button> -->
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
diff --git a/zy-asrs-admin/src/views/loc/loc/index.vue b/zy-asrs-admin/src/views/loc/loc/index.vue
index 81630f1..60be1f0 100644
--- a/zy-asrs-admin/src/views/loc/loc/index.vue
+++ b/zy-asrs-admin/src/views/loc/loc/index.vue
@@ -16,6 +16,13 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  locNo: null,
+  row1: null,
+  bay1: null,
+  lev1: null,
+  barcode: null,
+})
 const editChild = ref(null)
 const locDetlShowChild = ref(null)
 
@@ -162,7 +169,8 @@
   post('/api/loc/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -250,8 +258,21 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.locNo" :placeholder="formatMessage('page.loc.locNo.input', '璇疯緭鍏ュ簱浣嶅彿')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.row1" :placeholder="formatMessage('page.loc.row1.input', '璇疯緭鍏ユ帓')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.bay1" :placeholder="formatMessage('page.loc.bay1.input', '璇疯緭鍏ュ垪')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.lev1" :placeholder="formatMessage('page.loc.lev1.input', '璇疯緭鍏ュ眰')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.barcode" :placeholder="formatMessage('page.loc.barcode.input', '璇疯緭鍏ユ潯鐮�')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button> -->
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
diff --git a/zy-asrs-admin/src/views/loc/locDetl/index.vue b/zy-asrs-admin/src/views/loc/locDetl/index.vue
index 4c50d66..d73ec77 100644
--- a/zy-asrs-admin/src/views/loc/locDetl/index.vue
+++ b/zy-asrs-admin/src/views/loc/locDetl/index.vue
@@ -15,6 +15,12 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  locNo: null,
+  matnr: null,
+  orderNo: null,
+  batch: null,
+})
 const editChild = ref(null)
 
 const state = reactive({
@@ -48,13 +54,13 @@
 };
 
 state.columns = [
-  {
-    title: formatMessage('db.man_loc_detl.loc_id', '搴撲綅'),
-    dataIndex: 'locId$',
-    width: 140,
-    ellipsis: true,
-    ...getColumnSearchProps('locId$'),
-  },
+  // {
+  //   title: formatMessage('db.man_loc_detl.loc_id', '搴撲綅'),
+  //   dataIndex: 'locId$',
+  //   width: 140,
+  //   ellipsis: true,
+  //   ...getColumnSearchProps('locId$'),
+  // },
   {
     title: formatMessage('db.man_loc_detl.loc_no', '搴撲綅鍙�'),
     dataIndex: 'locNo',
@@ -184,7 +190,8 @@
   post('/api/locDetl/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -267,8 +274,19 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.locNo" :placeholder="formatMessage('page.locDetl.locNo.input', '璇疯緭鍏ュ簱浣嶅彿')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.locDetl.matnr.input', '璇疯緭鍏ュ晢鍝佺紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.locDetl.orderNo.input', '璇疯緭鍏ヨ鍗曞彿')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.locDetl.batch.input', '璇疯緭鍏ユ壒鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button>
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
diff --git a/zy-asrs-admin/src/views/out/cacheSite/index.vue b/zy-asrs-admin/src/views/out/cacheSite/index.vue
index 348ab53..9de3818 100644
--- a/zy-asrs-admin/src/views/out/cacheSite/index.vue
+++ b/zy-asrs-admin/src/views/out/cacheSite/index.vue
@@ -15,6 +15,12 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  siteNo: null,
+  siteStatus: null,
+  orderNo: null,
+  platformNo: null,
+})
 const editChild = ref(null)
 
 const state = reactive({
@@ -52,13 +58,13 @@
     ellipsis: true,
     ...getColumnSearchProps('siteStatus$'),
   },
-  {
-    title: formatMessage('db.man_cache_site.order_id', '璁㈠崟ID'),
-    dataIndex: 'orderId$',
-    width: 140,
-    ellipsis: true,
-    ...getColumnSearchProps('orderId$'),
-  },
+  // {
+  //   title: formatMessage('db.man_cache_site.order_id', '璁㈠崟ID'),
+  //   dataIndex: 'orderId$',
+  //   width: 140,
+  //   ellipsis: true,
+  //   ...getColumnSearchProps('orderId$'),
+  // },
   {
     title: formatMessage('db.man_cache_site.order_no', '璁㈠崟缂栧彿'),
     dataIndex: 'orderNo',
@@ -145,7 +151,8 @@
   post('/api/cacheSite/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -388,8 +395,27 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.siteNo"
+          :placeholder="formatMessage('page.cacheSite.siteNo.input', '璇疯緭鍏ョ珯鐐圭紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-select v-model:value="searchParam.siteStatus" :options="[
+          { label: '绌虹珯', value: 0 },
+          { label: '婊$珯', value: 1 },
+          { label: '棰勭害', value: 2 },
+        ]" :placeholder="formatMessage('page.cacheSite.siteStatus.input', '璇烽�夋嫨绔欑偣鐘舵��')"
+          style="width: 140px;margin-right: 10px;" allowClear>
+        </a-select>
+        <a-input v-model:value="searchParam.orderNo"
+          :placeholder="formatMessage('page.cacheSite.orderNo.input', '璇疯緭鍏ヨ鍗曞彿')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.platformNo"
+          :placeholder="formatMessage('page.cacheSite.platformNo.input', '璇疯緭鍏ラ泦璐х紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button>
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
diff --git a/zy-asrs-admin/src/views/out/wave/index.vue b/zy-asrs-admin/src/views/out/wave/index.vue
index 86cd1f7..e467f3c 100644
--- a/zy-asrs-admin/src/views/out/wave/index.vue
+++ b/zy-asrs-admin/src/views/out/wave/index.vue
@@ -16,6 +16,11 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  waveNo: null,
+  matnr: null,
+  batch: null,
+})
 const editChild = ref(null)
 const orderOutWavePreviewChild = ref(null);
 
@@ -133,7 +138,8 @@
   post('/api/wave/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -300,8 +306,17 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.waveNo" :placeholder="formatMessage('page.wave.waveNo.input', '璇疯緭鍏ユ尝娆″彿')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.wave.matnr.input', '璇疯緭鍏ュ晢鍝佺紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.wave.batch.input', '璇疯緭鍏ユ壒鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <!-- <div class="table-header-right">
         <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button>
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
@@ -313,10 +328,11 @@
       <template #bodyCell="{ column, text, record }">
         <template v-if="column.dataIndex === 'oper'">
           <div style="display: flex;justify-content: space-evenly;">
-            <a-button type="link" primary :disabled="record.waveStatus != 0" @click="handleGenerateOut(record.waveId)">{{
-              formatMessage('page.generateOut',
-                '鐢熸垚鍑哄簱浠诲姟')
-            }}</a-button>
+            <a-button type="link" primary :disabled="record.waveStatus != 0"
+              @click="handleGenerateOut(record.waveId)">{{
+                formatMessage('page.generateOut',
+                  '鐢熸垚鍑哄簱浠诲姟')
+              }}</a-button>
             <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.cancel', '鍙栨秷')
               }}</a-button>
           </div>
diff --git a/zy-asrs-admin/src/views/out/waveSeed/index.vue b/zy-asrs-admin/src/views/out/waveSeed/index.vue
index 9932d59..f44c9d0 100644
--- a/zy-asrs-admin/src/views/out/waveSeed/index.vue
+++ b/zy-asrs-admin/src/views/out/waveSeed/index.vue
@@ -15,6 +15,12 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  siteNo: null,
+  orderNo: null,
+  matnr: null,
+  batch: null,
+})
 const editChild = ref(null)
 
 const state = reactive({
@@ -158,7 +164,8 @@
   post('/api/waveSeed/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -263,8 +270,19 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.siteNo" :placeholder="formatMessage('page.waveSeed.siteNo.input', '璇疯緭鍏ョ珯鐐圭紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.waveSeed.orderNo.input', '璇疯緭鍏ヨ鍗曠紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.waveSeed.matnr.input', '璇疯緭鍏ュ晢鍝佺紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.waveSeed.batch.input', '璇疯緭鍏ユ壒鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button> -->
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
diff --git a/zy-asrs-admin/src/views/task/task/index.vue b/zy-asrs-admin/src/views/task/task/index.vue
index cbc6ad8..3b5a9bb 100644
--- a/zy-asrs-admin/src/views/task/task/index.vue
+++ b/zy-asrs-admin/src/views/task/task/index.vue
@@ -1,7 +1,7 @@
 <script setup>
 import { getCurrentInstance, ref, computed, reactive } from 'vue';
 import { useRouter } from "vue-router";
-import { get, post, postBlob } from '@/utils/request.js'
+import { get, post, postBlob, postForm } from '@/utils/request.js'
 import { message, Modal } from 'ant-design-vue';
 import { logout } from '@/config.js';
 import EditView from './edit.vue'
@@ -16,6 +16,14 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  taskNo: null,
+  taskSts: null,
+  taskType: null,
+  originLoc: null,
+  targetLoc: null,
+  barcode: null,
+})
 const editChild = ref(null)
 const showTaskDetlChild = ref(null)
 
@@ -168,7 +176,8 @@
   post('/api/task/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -319,6 +328,23 @@
   });
 }
 
+const taskStsQueryList = ref(null);
+taskStsQuery();
+function taskStsQuery() {
+  postForm('/api/taskSts/query', {}).then(resp => {
+    let result = resp.data;
+    taskStsQueryList.value = result.data;
+  })
+}
+const taskTypeQueryList = ref(null);
+taskTypeQuery();
+function taskTypeQuery() {
+  postForm('/api/taskType/query', {}).then(resp => {
+    let result = resp.data;
+    taskTypeQueryList.value = result.data;
+  })
+}
+
 </script>
 
 <script>
@@ -331,8 +357,29 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.taskNo" :placeholder="formatMessage('page.task.taskNo.input', '璇疯緭鍏ヤ换鍔$紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-select v-model:value="searchParam.taskSts"
+          :placeholder="formatMessage('page.task.taskSts.select', '璇烽�夋嫨浠诲姟鐘舵��')" style="width: 140px;margin-right: 10px;"
+          show-search allowClear :options="taskStsQueryList" optionFilterProp="label" optionLabelProp="label">
+        </a-select>
+        <a-select v-model:value="searchParam.taskType"
+          :placeholder="formatMessage('page.task.taskType.select', '璇烽�夋嫨浠诲姟绫诲瀷')" style="width: 140px;margin-right: 10px;"
+          show-search allowClear :options="taskTypeQueryList" optionFilterProp="label" optionLabelProp="label">
+        </a-select>
+        <a-input v-model:value="searchParam.originLoc"
+          :placeholder="formatMessage('page.task.originLoc.input', '璇疯緭鍏ユ簮搴撲綅')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.targetLoc"
+          :placeholder="formatMessage('page.task.targetLoc.input', '璇疯緭鍏ョ洰鏍囧簱浣�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.barcode" :placeholder="formatMessage('page.task.barcode.input', '璇疯緭鍏ユ墭鐩樼爜')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button> -->
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
diff --git a/zy-asrs-admin/src/views/task/taskLog/index.vue b/zy-asrs-admin/src/views/task/taskLog/index.vue
index 389d938..2227509 100644
--- a/zy-asrs-admin/src/views/task/taskLog/index.vue
+++ b/zy-asrs-admin/src/views/task/taskLog/index.vue
@@ -1,7 +1,7 @@
 <script setup>
 import { getCurrentInstance, ref, computed, reactive } from 'vue';
 import { useRouter } from "vue-router";
-import { get, post, postBlob } from '@/utils/request.js'
+import { get, post, postBlob, postForm } from '@/utils/request.js'
 import { message, Modal } from 'ant-design-vue';
 import { logout } from '@/config.js';
 import EditView from './edit.vue'
@@ -16,6 +16,14 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const searchParam = ref({
+  taskNo: null,
+  taskSts: null,
+  taskType: null,
+  originLoc: null,
+  targetLoc: null,
+  barcode: null,
+})
 const editChild = ref(null)
 const showTaskDetlChild = ref(null)
 
@@ -169,7 +177,8 @@
   post('/api/taskLog/page', {
     current: currentPage,
     pageSize: pageSize,
-    condition: searchInput.value
+    condition: searchInput.value,
+    _param: searchParam.value,
   }).then((resp) => {
     let result = resp.data;
     if (result.code == 200) {
@@ -245,6 +254,23 @@
   showTaskDetlChild.value.taskId = record.id;
 }
 
+const taskStsQueryList = ref(null);
+taskStsQuery();
+function taskStsQuery() {
+  postForm('/api/taskSts/query', {}).then(resp => {
+    let result = resp.data;
+    taskStsQueryList.value = result.data;
+  })
+}
+const taskTypeQueryList = ref(null);
+taskTypeQuery();
+function taskTypeQuery() {
+  postForm('/api/taskType/query', {}).then(resp => {
+    let result = resp.data;
+    taskTypeQueryList.value = result.data;
+  })
+}
+
 </script>
 
 <script>
@@ -257,8 +283,29 @@
   <div>
     <EditView ref="editChild" @tableReload="handleTableReload" />
     <div class="table-header">
-      <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-        style="width: 200px;" @search="onSearch" />
+      <div>
+        <a-input v-model:value="searchParam.taskNo" :placeholder="formatMessage('page.task.taskNo.input', '璇疯緭鍏ヤ换鍔$紪鍙�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-select v-model:value="searchParam.taskSts"
+          :placeholder="formatMessage('page.task.taskSts.select', '璇烽�夋嫨浠诲姟鐘舵��')" style="width: 140px;margin-right: 10px;"
+          show-search allowClear :options="taskStsQueryList" optionFilterProp="label" optionLabelProp="label">
+        </a-select>
+        <a-select v-model:value="searchParam.taskType"
+          :placeholder="formatMessage('page.task.taskType.select', '璇烽�夋嫨浠诲姟绫诲瀷')" style="width: 140px;margin-right: 10px;"
+          show-search allowClear :options="taskTypeQueryList" optionFilterProp="label" optionLabelProp="label">
+        </a-select>
+        <a-input v-model:value="searchParam.originLoc"
+          :placeholder="formatMessage('page.task.originLoc.input', '璇疯緭鍏ユ簮搴撲綅')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.targetLoc"
+          :placeholder="formatMessage('page.task.targetLoc.input', '璇疯緭鍏ョ洰鏍囧簱浣�')"
+          style="width: 140px;margin-right: 10px;" />
+        <a-input v-model:value="searchParam.barcode" :placeholder="formatMessage('page.task.barcode.input', '璇疯緭鍏ユ墭鐩樼爜')"
+          style="width: 140px;margin-right: 10px;" />
+
+        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+          style="width: 200px;" @search="onSearch" />
+      </div>
       <div class="table-header-right">
         <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button> -->
         <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java
index 6307bfe..0e7df22 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.wms.asrs.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
@@ -21,6 +22,7 @@
 import com.zy.asrs.wms.asrs.service.OrderService;
 import com.zy.asrs.wms.system.controller.BaseController;
 import com.zy.asrs.wms.utils.ExcelUtil;
+import com.zy.asrs.wms.utils.Utils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
@@ -56,21 +58,34 @@
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Order, BaseParam> pageParam = new PageParam<>(baseParam, Order.class);
 //        QueryWrapper<Order> wrapper = pageParam.buildWrapper(true);
-        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+        QueryWrapper<Order> wrapper = new QueryWrapper<>();
 
         ArrayList<Long> types = new ArrayList<>();
         for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 1))) {
             types.add(orderType.getId());
         }
 
-        wrapper.in(Order::getOrderType, types);
+        wrapper.in("order_type", types);
 
         if (!Cools.isEmpty(condition)) {
             wrapper.and(wrapper1 -> {
-                wrapper1.or().like(Order::getOrderNo, condition);
-                wrapper1.or().like(Order::getMemo, condition);
+                wrapper1.or().like("order_no", condition);
+                wrapper1.or().like("memo", condition);
             });
         }
+
+        Object paramObj = map.get("_param");
+        if(paramObj != null) {
+            Map param = (Map) paramObj;
+            for (Object value : param.entrySet()) {
+                Map.Entry entry = (Map.Entry) value;
+                String paramKey = Utils.toSymbolCase(entry.getKey().toString(), '_');
+                if (entry.getValue() != null) {
+                    wrapper.like(paramKey, entry.getValue());
+                }
+            }
+        }
+
         return R.ok().add(orderService.page(pageParam, wrapper));
     }
 
@@ -81,25 +96,38 @@
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Order, BaseParam> pageParam = new PageParam<>(baseParam, Order.class);
 //        QueryWrapper<Order> wrapper = pageParam.buildWrapper(true);
-        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+        QueryWrapper<Order> wrapper = new QueryWrapper<>();
 
         ArrayList<Long> types = new ArrayList<>();
         for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 2))) {
             types.add(orderType.getId());
         }
 
-        wrapper.in(Order::getOrderType, types);
+        wrapper.in("order_type", types);
 
         if (map.containsKey("orderOut")) {
-            wrapper.isNull(Order::getWaveId);
+            wrapper.isNull("wave_id");
         }
 
         if (!Cools.isEmpty(condition)) {
             wrapper.and(wrapper1 -> {
-                wrapper1.or().like(Order::getOrderNo, condition);
-                wrapper1.or().like(Order::getMemo, condition);
+                wrapper1.or().like("order_no", condition);
+                wrapper1.or().like("memo", condition);
             });
         }
+
+        Object paramObj = map.get("_param");
+        if(paramObj != null) {
+            Map param = (Map) paramObj;
+            for (Object value : param.entrySet()) {
+                Map.Entry entry = (Map.Entry) value;
+                String paramKey = Utils.toSymbolCase(entry.getKey().toString(), '_');
+                if (entry.getValue() != null) {
+                    wrapper.like(paramKey, entry.getValue());
+                }
+            }
+        }
+
         return R.ok().add(orderService.page(pageParam, wrapper));
     }
 
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderLogController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderLogController.java
index 4688f14..d346b63 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderLogController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderLogController.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.wms.asrs.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
@@ -14,6 +15,7 @@
 import com.zy.asrs.wms.asrs.service.OrderLogService;
 import com.zy.asrs.wms.system.controller.BaseController;
 import com.zy.asrs.wms.utils.ExcelUtil;
+import com.zy.asrs.wms.utils.Utils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -48,21 +50,34 @@
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<OrderLog, BaseParam> pageParam = new PageParam<>(baseParam, OrderLog.class);
 //        QueryWrapper<OrderLog> wrapper = pageParam.buildWrapper(true);
-        LambdaQueryWrapper<OrderLog> wrapper = new LambdaQueryWrapper<>();
+        QueryWrapper<OrderLog> wrapper = new QueryWrapper<>();
 
         ArrayList<Long> types = new ArrayList<>();
         for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 1))) {
             types.add(orderType.getId());
         }
 
-        wrapper.in(OrderLog::getOrderType, types);
+        wrapper.in("order_type", types);
 
         if (!Cools.isEmpty(condition)) {
             wrapper.and(wrapper1 -> {
-                wrapper1.or().like(OrderLog::getOrderNo, condition);
-                wrapper1.or().like(OrderLog::getMemo, condition);
+                wrapper1.or().like("order_no", condition);
+                wrapper1.or().like("memo", condition);
             });
         }
+
+        Object paramObj = map.get("_param");
+        if(paramObj != null) {
+            Map param = (Map) paramObj;
+            for (Object value : param.entrySet()) {
+                Map.Entry entry = (Map.Entry) value;
+                String paramKey = Utils.toSymbolCase(entry.getKey().toString(), '_');
+                if (entry.getValue() != null) {
+                    wrapper.like(paramKey, entry.getValue());
+                }
+            }
+        }
+
         return R.ok().add(orderLogService.page(pageParam, wrapper));
     }
 
@@ -73,21 +88,34 @@
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<OrderLog, BaseParam> pageParam = new PageParam<>(baseParam, OrderLog.class);
 //        QueryWrapper<OrderLog> wrapper = pageParam.buildWrapper(true);
-        LambdaQueryWrapper<OrderLog> wrapper = new LambdaQueryWrapper<>();
+        QueryWrapper<OrderLog> wrapper = new QueryWrapper<>();
 
         ArrayList<Long> types = new ArrayList<>();
         for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 2))) {
             types.add(orderType.getId());
         }
 
-        wrapper.in(OrderLog::getOrderType, types);
+        wrapper.in("order_type", types);
 
         if (!Cools.isEmpty(condition)) {
             wrapper.and(wrapper1 -> {
-                wrapper1.or().like(OrderLog::getOrderNo, condition);
-                wrapper1.or().like(OrderLog::getMemo, condition);
+                wrapper1.or().like("order_no", condition);
+                wrapper1.or().like("memo", condition);
             });
         }
+
+        Object paramObj = map.get("_param");
+        if(paramObj != null) {
+            Map param = (Map) paramObj;
+            for (Object value : param.entrySet()) {
+                Map.Entry entry = (Map.Entry) value;
+                String paramKey = Utils.toSymbolCase(entry.getKey().toString(), '_');
+                if (entry.getValue() != null) {
+                    wrapper.like(paramKey, entry.getValue());
+                }
+            }
+        }
+
         return R.ok().add(orderLogService.page(pageParam, wrapper));
     }
 
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
index edd379f..06e2ca1 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
@@ -153,15 +153,15 @@
                 throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
             }
 
-            Long detlId = null;
-            for (OrderDetl orderDetl : orderDetls) {
-                Mat mat = orderDetl.getMat$();
+            OrderDetl orderDetl = null;
+            for (OrderDetl detl : orderDetls) {
+                Mat mat = detl.getMat$();
                 if (mat.getMatnr().equals(waitPakinTemplate.getMatnr())) {
-                    detlId = orderDetl.getId();
+                    orderDetl = detl;
                 }
             }
 
-            if (detlId == null) {
+            if (orderDetl == null) {
                 throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
             }
 
@@ -170,7 +170,9 @@
             waitPakin.setOrderNo(order.getOrderNo());
             waitPakin.setAnfme(waitPakinTemplate.getAnfme());
             waitPakin.setBarcode(waitPakinTemplate.getBarcode());
-            waitPakin.setDetlId(detlId);
+            waitPakin.setDetlId(orderDetl.getId());
+            waitPakin.setMatnr(orderDetl.getMat$().getMatnr());
+            waitPakin.setBatch(orderDetl.getBatch());
             waitPakinService.comb(waitPakin);
         }
         return R.ok();
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java
index 06b68e4..749f66f 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.wms.asrs.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
@@ -35,7 +36,54 @@
     public R page(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Wave, BaseParam> pageParam = new PageParam<>(baseParam, Wave.class);
-        PageParam<Wave, BaseParam> page = waveService.page(pageParam, pageParam.buildWrapper(true));
+
+        QueryWrapper<Wave> wrapper = new QueryWrapper<>();
+
+        String condition = map.getOrDefault("condition", "").toString();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.and(wrapper1 -> {
+                wrapper1.or().like("wave_no", condition);
+                wrapper1.or().like("memo", condition);
+            });
+        }
+
+        Object paramObj = map.get("_param");
+        if(paramObj != null) {
+            Map param = (Map) paramObj;
+            Object waveNoObj = param.get("waveNo");
+            Object matnrObj = param.get("matnr");
+            Object batchObj = param.get("batch");
+
+            LambdaQueryWrapper<WaveDetl> waveDetlWrapper = new LambdaQueryWrapper<>();
+
+            if(!Cools.isEmpty(waveNoObj)) {
+                waveDetlWrapper.like(WaveDetl::getWaveNo, waveNoObj);
+            }
+
+            if(!Cools.isEmpty(matnrObj)) {
+                waveDetlWrapper.like(WaveDetl::getMatnr, matnrObj);
+            }
+
+            if(!Cools.isEmpty(batchObj)) {
+                waveDetlWrapper.like(WaveDetl::getBatch, batchObj);
+            }
+
+            List<WaveDetl> waveDetls = waveDetlService.list(waveDetlWrapper);
+            ArrayList<Long> waveIds = new ArrayList<>();
+            for (WaveDetl waveDetl : waveDetls) {
+                if(!waveIds.contains(waveDetl.getWaveId())) {
+                    waveIds.add(waveDetl.getWaveId());
+                }
+            }
+
+            if (waveIds.isEmpty()) {
+                waveIds.add(-1L);
+            }
+            wrapper.in("id", waveIds);
+
+        }
+
+        PageParam<Wave, BaseParam> page = waveService.page(pageParam, wrapper);
         return R.ok().add(page);
     }
 
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakin.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakin.java
index b55909a..48a8d80 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakin.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakin.java
@@ -126,6 +126,18 @@
     @ApiModelProperty(value= "澶囨敞")
     private String memo;
 
+    /**
+     * 鍟嗗搧缂栧彿
+     */
+    @ApiModelProperty(value= "鍟嗗搧缂栧彿")
+    private String matnr;
+
+    /**
+     * 鎵瑰彿
+     */
+    @ApiModelProperty(value= "鎵瑰彿")
+    private String batch;
+
     public WaitPakin() {}
 
     public WaitPakin(Long orderId,String orderNo,Double anfme,String barcode,Long detlId,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakinLog.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakinLog.java
index e991c44..9bfdbcf 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakinLog.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaitPakinLog.java
@@ -129,6 +129,18 @@
     @ApiModelProperty(value= "澶囨敞")
     private String memo;
 
+    /**
+     * 鍟嗗搧缂栧彿
+     */
+    @ApiModelProperty(value= "鍟嗗搧缂栧彿")
+    private String matnr;
+
+    /**
+     * 鎵瑰彿
+     */
+    @ApiModelProperty(value= "鎵瑰彿")
+    private String batch;
+
     public WaitPakinLog() {}
 
     public WaitPakinLog(Long orderId,String orderNo,Double anfme,String barcode,Long detlId,Integer ioStatus,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaveSeed.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaveSeed.java
index 4585785..97ef2cc 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaveSeed.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/WaveSeed.java
@@ -55,6 +55,12 @@
     private String siteNo;
 
     /**
+     * 璁㈠崟缂栧彿
+     */
+    @ApiModelProperty(value= "璁㈠崟缂栧彿")
+    private String orderNo;
+
+    /**
      * 璁㈠崟
      */
     @ApiModelProperty(value= "璁㈠崟")
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java
index 5a7755e..30c47d2 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java
@@ -68,6 +68,8 @@
         WaitPakin waitPakin1 = this.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, waitPakin.getBarcode()).eq(WaitPakin::getDetlId, waitPakin.getDetlId()));
         if (waitPakin1 == null) {
             //涓嶅瓨鍦ㄧ粍鎵橀�氱煡妗o紝鍒涘缓
+            waitPakin.setMatnr(orderDetl.getMat$().getMatnr());
+            waitPakin.setBatch(orderDetl.getBatch());
             if (!this.save(waitPakin)) {
                 throw new CoolException("娣诲姞澶辫触");
             }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
index e4af1d9..7ac6f1d 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
@@ -112,6 +112,7 @@
                         WaveSeed waveSeed = new WaveSeed();
                         waveSeed.setSiteId(cacheSite.getId());
                         waveSeed.setSiteNo(cacheSite.getSiteNo());
+                        waveSeed.setOrderNo(orderDetl.getOrderNo());
                         waveSeed.setOrderId(orderDetl.getOrderId());
                         waveSeed.setOrderDetlId(orderDetl.getId());
                         waveSeed.setTaskDetlId(taskDetl.getId());
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageParam.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageParam.java
index b64e7f6..2855366 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageParam.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/domain/PageParam.java
@@ -97,6 +97,18 @@
                     queryWrapper.ge(key, DateUtils.convert(list.get(0)));
                     queryWrapper.le(key, DateUtils.convert(list.get(1)));
                 }
+            } else if (key.equals("_param")) {
+                Map param = (Map) val;
+                for (Object value : param.entrySet()) {
+                    Map.Entry entry = (Map.Entry) value;
+                    String paramKey = entry.getKey().toString();
+                    if (this.isToUnderlineCase) {
+                        paramKey = Utils.toSymbolCase(paramKey, '_');
+                    }
+                    if (!Cools.isEmpty(entry.getValue())) {
+                        queryWrapper.like(paramKey, entry.getValue());
+                    }
+                }
             } else if (val instanceof List) {
                 if (this.isToUnderlineCase) {
                     key = Utils.toSymbolCase(key, '_');

--
Gitblit v1.9.1