From 82733ad3ffd8f71315b16e934106f124c4eae356 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期五, 12 四月 2024 15:47:23 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/router/index.js                                                |    2 
 north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml                               |  145 ++++
 north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryReport.vue                           |   78 -
 north-glass-erp/northglass-erp/src/views/mm/stockReport/StockWarehouseReport.vue                  |  297 +--------
 north-glass-erp/northglass-erp/src/views/mm/stockReport/StockMonthReport.vue                      |  298 +--------
 north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java |    6 
 north-glass-erp/northglass-erp/src/views/mm/stockReport/WarehouseReport.vue                       |  408 +------------
 north-glass-erp/.idea/dataSources.local.xml                                                       |    1 
 north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue                           |   82 +
 north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml                                   |  145 ++++
 north-glass-erp/target/classes/mapper/sd/DeliveryDetail.xml                                       |  138 ++--
 north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java       |   23 
 north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java                     |    1 
 north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml                                |   31 +
 north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue                     |    2 
 north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java             |    8 
 north-glass-erp/src/main/resources/mapper/sd/DeliveryDetail.xml                                   |  138 ++--
 17 files changed, 679 insertions(+), 1,124 deletions(-)

diff --git a/north-glass-erp/.idea/dataSources.local.xml b/north-glass-erp/.idea/dataSources.local.xml
index 0c4acb4..a7ad12e 100644
--- a/north-glass-erp/.idea/dataSources.local.xml
+++ b/north-glass-erp/.idea/dataSources.local.xml
@@ -23,7 +23,6 @@
       <database-info product="MySQL" version="8.0.19" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0)" dbms="MYSQL" exact-version="8.0.19" exact-driver-version="8.0">
         <extra-name-characters>#@</extra-name-characters>
         <identifier-quote-string>`</identifier-quote-string>
-        <jdbc-catalog-is-schema>true</jdbc-catalog-is-schema>
       </database-info>
       <case-sensitivity plain-identifiers="lower" quoted-identifiers="lower" />
       <secret-storage>master_key</secret-storage>
diff --git a/north-glass-erp/northglass-erp/src/router/index.js b/north-glass-erp/northglass-erp/src/router/index.js
index 936d43c..2c3fd7a 100644
--- a/north-glass-erp/northglass-erp/src/router/index.js
+++ b/north-glass-erp/northglass-erp/src/router/index.js
@@ -790,7 +790,7 @@
           /*----------- 浠撳偍鎶ヨ〃 ----------------*/
           path: 'stockReport',
           name: 'stockReport',
-          component: () => import('../views/mm/stockReport/stockReport.vue'),
+          component: () => import('../views/mm/stockReport/StockReport.vue'),
           children:[
             {
               path: 'WarehouseReport',
diff --git a/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockMonthReport.vue b/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockMonthReport.vue
index b8cc81a..8aeea63 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockMonthReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockMonthReport.vue
@@ -1,277 +1,43 @@
-<template>
-  <el-container>
-    <el-header class="m-header">
-      <el-row :gutter="10">
-        <el-col :span="6">
-          <el-date-picker
-              v-model="datevalue"
-              type="daterange"
-              unlink-panels
-              range-separator="鍒�"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              :shortcuts="shortcuts"
-              :size="size"
-              format="YYYY/MM/DD"
-              value-format="YYYY-MM-DD"
-          />
-        </el-col>
-        <el-col :span="2" :offset="1">
-          <el-button
-              id="select"
-              type="primary"
-              :icon="Search"
-              @click="autoAddRow">鏌ヨ
-          </el-button>
-        </el-col>
-      </el-row>
-    </el-header>
-    <el-main style="padding-top: 5px">
-      <vxe-grid
-          max-height="600"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          @="gridEvents"
-      >
-
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
-        </template>
-
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-
-    </el-main>
-  </el-container>
-</template>
-
-
 <script setup>
 
-import {ref} from "vue";
-import {reactive} from "vue";
-import {useRouter} from 'vue-router'
-import {Search} from "@element-plus/icons-vue";
-import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
-let router = useRouter()
+import BasicTable from "@/components/BasicTable.vue"
+import request from "@/utils/request"
+import { ref} from "vue"
+import { useI18n } from 'vue-i18n'
 
-//缁勪欢鎺ユ敹鍙傛暟
-const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns: [
-    /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
-    {type: 'seq', fixed: "left", title: ' ', width: 50},
-    /*{ type: 'checkbox',fixed:"left", title: '', width: 50 },*/
-    {type: 'expand', title:'璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
-    {field: 'cgdh', width: '10%', title: '搴撳瓨缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%', title: '鐗╂枡缂栫爜', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'gys', width: '10%',title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbh', width: '10%',title: '浜у湴', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%', title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%',title: '涓诲崟浣�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%',title: '瀹夊叏搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '12%',title: '搴撳瓨鏁�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '鍙敤搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '12%',title: '鏈鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '8%',title: '鎬婚潰绉�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '12%',title: '鍗曠墖闈㈢Н', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '8%',title: '鐢熶骇鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '淇濊川鏈�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳尯', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%',title: '搴撲綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xsdh', width: '10%',title: '绉帇搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
-  ],//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: [{type:'text'},{type:'text',name:'鍘熺墖鏈堢粨鎶ヨ〃'}],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true,
-    style: 'paddling-left:10px'
-  },//琛ㄥご鎸夐挳
-  data: [
-    {},{},{},{},{},{},{},{},{},{},{},
+//璇█鑾峰彇
+const { t } = useI18n()
 
-  ],//table body瀹為檯鏁版嵁
-  mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 2}
-  ],//鍚堝苟鑴�
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        /* if (props.tableProp.footList.includes(column.field)) {
-           return sumNum(data, column.field)
-         }*/
-        return ''
-      })
-    ]
-  },
+const childrenData = ref({
+  columns:[
+    {type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
+    {field: 'operationOrderNumber', width:'150', title: t('productStock.operationOrderNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderId', width: '150',title: t('order.orderId'),showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operateType', width: '120',title:'绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'operationNumber', width: '100',title: t('order.OrderNum'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'quantity', width: '140',title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.productId',width: '100', title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.productName',width: '140', title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.width', width: '100',title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.height',width: '100', title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operator', width: '100',title: t('productStock.creator'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operateTime', width:'140', title: t('productStock.productionDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'reviewed', width: '100',title: t('productStock.reviewed'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'reviewedTime', width: '140',title: t('productStock.approvedDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'remarks', width: '140',title: t('productStock.remarks'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+
+  ],//琛ㄦ牸琛ㄥご瀛楁
+  data:[],//琛ㄦ牸鏁版嵁
+  url :'/FinishedGoodsInventory/getSelectFinishedOperateLogReport',
+  footList:['quantity']
 })
-
-
-
-
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-
-
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
-      break
-    }
-  }
-}
-
-
-
-
-const xGrid = ref()
-const gridEvents = {
-  toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'Add': {//鏂板
-          router.push({path: '/main/purchaseOrder/CreatePurchaseOrder'})
-          break
-        }
-        case 'Storage': {//鍏ュ簱
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            /*            async ()=>{
-              const type = await.VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-            }*/
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-
-            /* if(VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵' )){
-              //openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success',lockView: false, mask: false })
-
-
-            }*/
-
-            /* if(type==='confirm'){
-              openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            }
-
-*/
-            //openAlert({type:'alert', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-      }
-    }
-  },
-  toolbarToolClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
-
-}
 
 </script>
 
+<template>
+  <basic-table
+      :childrenData="childrenData"/>
+</template>
 
 <style scoped>
-.m-header {
-  height: auto
-}
 </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue b/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue
index 851d811..3d82036 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue
@@ -1,49 +1,73 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+
+import {useRouter,useRoute,onBeforeRouteUpdate} from "vue-router";
+import { useI18n } from 'vue-i18n'
+
+//璇█鑾峰彇
+const { t } = useI18n()
+
+
+const router = useRouter()
+const route = useRoute()
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+</script>
+
 <template>
-  <div class="common-layout">
-    <el-container>
-      <el-header style="height: 30px">
+  <div id="main-div">
+    <div id="div-title">
         <el-breadcrumb :separator-icon="ArrowRight">
-          <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''"
+<!--          <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''"
                               :to="{path:'/main/stockReport/WarehouseReport'}">鍘熸潗鏂欐姤琛�
-          </el-breadcrumb-item>
+          </el-breadcrumb-item>-->
           <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''"
                               :to="{path:'/main/stockReport/StockWarehouseReport'}">鎴愬搧鎶ヨ〃
           </el-breadcrumb-item>
-          <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''"
+<!--          <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''"
                               :to="{path:'/main/stockReport/StockMonthReport'}">鍘熺墖鏈堢粨鎶ヨ〃
           </el-breadcrumb-item>
           <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''"
                               :to="{path:'/main/stockReport/SubsidiaryMonthReport'}">
             杈呮枡鏈堢粨鎶ヨ〃
-          </el-breadcrumb-item>
-          <el-breadcrumb-item style="display: none"></el-breadcrumb-item>
+          </el-breadcrumb-item>-->
         </el-breadcrumb>
-      </el-header>
-      <el-main style="padding: 0;width: 99%;height: 100%;">
-        <router-view/>
-      </el-main>
-      <!--     <el-footer>Footer</el-footer>-->
-    </el-container>
+    </div>
+
+    <div id="main-body">
+      <router-view  :key="route.fullPath" />
+    </div>
   </div>
 
 </template>
 
-<script setup>
-import {nextTick, ref} from 'vue'
-import {ArrowRight, Search} from "@element-plus/icons-vue";
-
-let indexFlag = $ref(1)
-
-function changeRouter(index) {
-  indexFlag = index
-}
-
-</script>
-
-
 <style scoped>
-:deep(.indexTag .el-breadcrumb__inner) {
+#main-div{
+  width: 99%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#searchButton1{
+//margin-left: 10rem;
+}
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
   color: #5CADFE !important;
-  font-weight: 900;
 }
 </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockWarehouseReport.vue b/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockWarehouseReport.vue
index 8c4e6c9..a7ed662 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockWarehouseReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockWarehouseReport.vue
@@ -1,272 +1,45 @@
-<template>
-<div style="padding: 0;width: 100%;height: 100%">
-
-    <el-header class="m-header" style="height: auto">
-
-    </el-header>
-    <el-main style="padding-top: 5px">
-      <vxe-grid
-          max-height="600"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          v-on="gridEvents"
-      >
-
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
-        </template>
-
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-    </el-main>
-  </div>
-</template>
-
-
 <script setup>
-import {ref} from 'vue'
-import {reactive} from "vue";
-import {useRouter} from 'vue-router'
-import {Search} from "@element-plus/icons-vue";
-import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
-let router = useRouter()
 
-//缁勪欢鎺ユ敹鍙傛暟
-const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns: [
-   /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
-    {type: 'seq', fixed: "left", title: ' ', width: 50},
-    /*{ type: 'checkbox',fixed:"left", title: '', width: 50 },*/
-    {type: 'expand', title:'璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
-    {field: 'cgdh', width: '10%', title: '搴撳瓨缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%', title: '鐗╂枡缂栫爜', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'gys', width: '10%',title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbh', width: '10%',title: '浜у湴', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%', title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%',title: '涓诲崟浣�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%',title: '瀹夊叏搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '12%',title: '搴撳瓨鏁�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '鍙敤搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '12%',title: '鏈鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '8%',title: '鎬婚潰绉�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '12%',title: '鍗曠墖闈㈢Н', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '8%',title: '鐢熶骇鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '淇濊川鏈�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '搴撳尯', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%',title: '搴撲綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xsdh', width: '10%',title: '绉帇搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
-  ],//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: [{type:'text'},{
-      'name': '鎴愬搧搴撳瓨',
-      'code': 'ProductStockList',
-    },{
-      'name': '鍏ュ簱璁板綍',
-      'code': 'StorageRecord',
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true,
-    style: 'paddling-left:10px'
-  },//琛ㄥご鎸夐挳
-  data: [
-    {},{},{},{},{},{},{},{},{},{},{},
+import BasicTable from "@/components/BasicTable.vue"
+import request from "@/utils/request"
+import { ref} from "vue"
+import { useI18n } from 'vue-i18n'
 
-  ],//table body瀹為檯鏁版嵁
-  mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 2}
-  ],//鍚堝苟鑴�
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        /* if (props.tableProp.footList.includes(column.field)) {
-           return sumNum(data, column.field)
-         }*/
-        return ''
-      })
-    ]
-  },
+//璇█鑾峰彇
+const { t } = useI18n()
+
+const childrenData = ref({
+  columns:[
+    {type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
+    {field: 'operationOrderNumber', width:'150', title: t('productStock.operationOrderNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderId', width: '150',title: t('order.orderId'),showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operationNumber', width: '100',title: t('order.OrderNum'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operateType', width: '120',title:'绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'quantity', width: '140',title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.productId',width: '100', title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.productName',width: '140', title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.width', width: '100',title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.height',width: '100', title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'staterOperationOrderNumber', width: '150',title: '璋冩嫧閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'endOperationOrderNumber', width: '100',title: '璋冩嫧搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operator', width: '100',title: t('productStock.creator'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operateTime', width:'140', title: t('productStock.productionDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'reviewed', width: '100',title: t('productStock.reviewed'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'reviewedTime', width: '140',title: t('productStock.approvedDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'remarks', width: '140',title: t('productStock.remarks'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+
+  ],//琛ㄦ牸琛ㄥご瀛楁
+  data:[],//琛ㄦ牸鏁版嵁
+  url :'/FinishedGoodsInventory/getSelectFinishedOperateLogReport',
+  footList:['quantity']
 })
-
-
-
-
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-
-
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
-      break
-    }
-  }
-}
-
-
-
-
-const xGrid = ref()
-const gridEvents = {
-  toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'ProductStockList': {//鏂板
-          router.push({path: '/main/productStock/ProductStockList'})
-          break
-        }
-        case 'StorageRecord': {//鍏ュ簱
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'alert', content: '鎮ㄧ偣鍑讳簡鏌ョ湅鍏ュ簱璁板綍', status: 'success'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            /*            async ()=>{
-              const type = await.VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-            }*/
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-
-            /* if(VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵' )){
-              //openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success',lockView: false, mask: false })
-
-
-            }*/
-
-            /* if(type==='confirm'){
-              openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            }
-
-*/
-            //openAlert({type:'alert', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-      }
-    }
-  },
-  toolbarToolClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
-
-}
-
 
 </script>
 
+<template>
+  <basic-table
+      :childrenData="childrenData"/>
+</template>
 
 <style scoped>
-.el-row {
-  margin-bottom: 20px;
-}
-
-.el-row:last-child {
-  margin-bottom: 0;
-}
-
-.el-col {
-  border-radius: 4px;
-}
-
-.m-header {
-  height: 64px;
-}
 </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/stockReport/WarehouseReport.vue b/north-glass-erp/northglass-erp/src/views/mm/stockReport/WarehouseReport.vue
index 9db690a..a7ed662 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/stockReport/WarehouseReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/stockReport/WarehouseReport.vue
@@ -1,387 +1,45 @@
-<template>
-  <div style="padding: 0;width: 100%;height: 100%">
-
-    <el-header class="m-header" style="height: auto">
-
-    </el-header>
-
-    <el-main style="padding-top: 5px">
-      <vxe-grid
-          max-height="600"
-          @filter-change="filterChanged"
-          class="mytable-scrollbar"
-          ref="xGrid"
-          v-bind="gridOptions"
-          v-on="gridEvents"
-          @cell-dblclick="cellClickEvent"
-      >
-
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
-        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
-          <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
-            </li>
-          </ul>
-        </template>
-
-        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-        <template #button_slot="{ row }">
-          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
-        </template>
-
-
-        <template #num1_filter="{ column, $panel }">
-          <div>
-            <div v-for="(option, index) in column.filters" :key="index">
-              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
-            </div>
-          </div>
-        </template>
-      </vxe-grid>
-
-      <!--      璇︽儏妗� 閮ㄥ垎1-->
-      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false" resize>
-        <el-container >
-          <el-header height="35px"
-                     style="margin: 0;padding: 0">
-
-            <el-input  v-model="showNum" placeholder="閲囪喘鍗曞彿" disabled >
-              <template #prepend>鐗╂枡缂栫爜</template>
-            </el-input>
-          </el-header>
-          <el-main>
-            <template #default>
-              <vxe-table
-                  border="default"
-                  auto-resize
-                  show-overflow
-                  max-height="400"
-                  :row-config="{isHover: true}"
-                  :show-header="false"
-                  :sync-resize="showDetails"
-                  :data="detailData"
-              >
-                <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
-                <vxe-column field="value"></vxe-column>
-              </vxe-table>
-            </template>
-          </el-main>
-          <el-footer height="40px">
-<!--            <el-row>
-              <el-col :offset="20" :span="4">
-                <el-button
-                    id="Sure"
-                    type="primary"
-                    @click="SureReturn"
-                >纭閫�璐�
-                </el-button>
-              </el-col>
-
-            </el-row>-->
-          </el-footer>
-        </el-container>
-      </vxe-modal>
-      <!--      璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
-
-    </el-main>
-  </div>
-</template>
-
-
 <script setup>
-import {ref} from 'vue'
-import {reactive} from "vue";
-import {useRouter} from 'vue-router'
-import {Search} from "@element-plus/icons-vue";
-import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
-let router = useRouter()
 
-const list =  (i) => {
-  return {
-    'kczz':'浜哄伐搴�',
-    'wlbm':'NGWL202312000'+i,
-    'wlmc':'杩欐槸鐗╂枡鍚嶇О',
-    'cd':'鍦扮悆鏉�',
-    'kcbh':'KC202300'+i,
-    'w':'0',
-    'g':'0',
-    'h':'0',
-    'zdw':'浠�',
-    'aqkc':'0',
-    'kcs':'20',
-    'kykc':'30',
-    'wlsl':'20',
-    'zmj':'0',
-    'dpmj':'0',
-    'scrq':'2023-12-20',
-    'bzq':'2025-12-20',
-    'kq':'2000',
-    'kw':'23',
-    'jykc':'5',
-    'bz':'杩欐槸澶囨敞*10086'
-  }
-}
+import BasicTable from "@/components/BasicTable.vue"
+import request from "@/utils/request"
+import { ref} from "vue"
+import { useI18n } from 'vue-i18n'
 
-//缁勪欢鎺ユ敹鍙傛暟
-const gridOptions = reactive({
-  border: "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe: true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  columns: [
+//璇█鑾峰彇
+const { t } = useI18n()
 
-    {type: 'expand', title:'', fixed: "left", slots: {content: 'content'}, width: 50},/* 璇︽儏 */
-    /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
-    {type: 'seq', fixed: "left", title: ' ', width: 50},
-    /*{ type: 'checkbox',fixed:"left", title: '', width: 50 },*/
-    {field: 'kczz', width: '13%', title: '搴撳瓨缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbm', width: '10%', title: '鐗╂枡缂栫爜', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%',title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cd', width: '10%',title: '浜у湴', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'kcbh', width: '10%', title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'zdw', width: '8%',title: '涓诲崟浣�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'aqkc', width: '8%',title: '瀹夊叏搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'kcs', width: '12%',title: '搴撳瓨鏁�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'kykc', width: '8%',title: '鍙敤搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlsl', width: '12%',title: '鏈鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'zmj', width: '8%',title: '鎬婚潰绉�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dpmj', width: '12%',title: '鍗曠墖闈㈢Н', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'scrq', width: '8%',title: '鐢熶骇鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'bzq', width: '8%',title: '淇濊川鏈�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    /*{field: 'kcbh', width: '10%',title: '搴撳瓨缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},*/
-    {field: 'kq', width: '10%',title: '搴撳尯', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'kw', width: '10%',title: '搴撲綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'jykc', width: '10%',title: '绉帇搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'bz', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
-  ],//琛ㄥご鍙傛暟
-  toolbarConfig: {
-    buttons: [{type:'text'},{
-      'name': '鍏ュ簱璁板綍',
-      'code': 'StorageRecord',
-    }],
-    import: false,
-    export: true,
-    print: true,
-    zoom: true,
-    custom: true,
-    style: 'paddling-left:10px'
-  },//琛ㄥご鎸夐挳
-  data: [
-    list(0),list(1),list(2),list(3),list(4),list(5),list(6),list(7),list(8),list(9),
+const childrenData = ref({
+  columns:[
+    {type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
+    {field: 'operationOrderNumber', width:'150', title: t('productStock.operationOrderNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderId', width: '150',title: t('order.orderId'),showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operationNumber', width: '100',title: t('order.OrderNum'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operateType', width: '120',title:'绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'quantity', width: '140',title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.productId',width: '100', title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.productName',width: '140', title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.width', width: '100',title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'orderDetail.height',width: '100', title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'staterOperationOrderNumber', width: '150',title: '璋冩嫧閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'endOperationOrderNumber', width: '100',title: '璋冩嫧搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operator', width: '100',title: t('productStock.creator'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'operateTime', width:'140', title: t('productStock.productionDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'reviewed', width: '100',title: t('productStock.reviewed'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'reviewedTime', width: '140',title: t('productStock.approvedDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'remarks', width: '140',title: t('productStock.remarks'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
 
-  ],//table body瀹為檯鏁版嵁
-  mergeFooterItems: [
-    {row: 0, col: 0, rowspan: 1, colspan: 2}
-  ],//鍚堝苟鑴�
-  footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    return [
-      columns.map((column, columnIndex) => {
-        if (columnIndex === 0) {
-          return '鍚堣:'
-        }
-        /* if (props.tableProp.footList.includes(column.field)) {
-           return sumNum(data, column.field)
-         }*/
-        return ''
-      })
-    ]
-  },
+  ],//琛ㄦ牸琛ㄥご瀛楁
+  data:[],//琛ㄦ牸鏁版嵁
+  url :'/FinishedGoodsInventory/getSelectFinishedOperateLogReport',
+  footList:['quantity']
 })
-
-
-//鍒楄〃鎿嶄綔
-const getTableRow = (row, type) => {
-  switch (type) {
-    case 'edit' : {
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
-      break
-    }
-    case 'delete': {
-
-
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
-      break
-    }
-  }
-}
-
-const xGrid = ref()
-const gridEvents = {
-  toolbarButtonClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'ProductStockList': {//鏂板
-          router.push({path: '/main/productStock/ProductStockList'})
-          break
-        }
-        case 'StorageRecord': {//鍏ュ簱
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'alert', content: '鎮ㄧ偣鍑讳簡鏌ョ湅鍏ュ簱璁板綍', status: 'success'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-            return
-          }
-          break
-        }
-      }
-    }
-  },
-  toolbarToolClick({code}) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
-          break
-        }
-      }
-    }
-  },
-}
-
-
-const showNum =ref();
-const showDetails =ref(false);
-let detailData =[];
-
-const cellClickEvent = ({row}) => {
-  detailData = cName.map(field => {
-    return { label: ModelColumnContent(field) , value: row[field] }
-
-  })
-
-
-  showDetails.value = true;
-  showNum.value = row['wlbm'];
-
-}
-const cName = ['kczz','wlbm','wlmc','cd','kcbh','w','g','h','zdw','aqkc','kcs','kykc','wlsl','zmj', 'dpmj','scrq','bzq','kq','kw','jykc','bz'];
-const ModelColumnContent = (text) => {
-  switch (text) {
-    case 'kczz':
-      return "搴撳瓨缁勭粐";
-    case 'wlbm':
-      return "鐗╂枡缂栫爜";
-    case 'wlmc':
-      return "鐗╂枡鍚嶇О";
-    case 'cd':
-      return "浜у湴";
-    case 'kcbh':
-      return "搴撳瓨缂栧彿";
-    case 'w':
-      return "瀹�";
-    case 'g':
-      return "楂�";
-    case 'h':
-      return "鍘�";
-    case 'zdw':
-      return "涓诲崟浣�";
-    case 'aqkc':
-      return "瀹夊叏搴撳瓨";
-    case 'kcs':
-      return "搴撳瓨鏁�";
-    case 'kykc':
-      return "鍙敤搴撳瓨";
-    case 'wlsl':
-      return "鏈鏁伴噺";
-    case 'zmj':
-      return "鎬婚潰绉�";
-    case 'dpmj':
-      return "鍗曠墖闈㈢Н";
-    case 'scrq':
-      return "鐢熶骇鏃ユ湡";
-    case 'bzq': return "淇濊川鏈�";
-    case 'kq': return "搴撳尯";
-    case 'kw': return "搴撲綅";
-    case 'jykc': return "绉帇搴撳瓨";
-    case 'bz':
-      return "澶囨敞";
-    default:
-      return text;
-
-  }
-
-}
-
-
-
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
-}
-
 
 </script>
 
+<template>
+  <basic-table
+      :childrenData="childrenData"/>
+</template>
 
 <style scoped>
-.el-row {
-  margin-bottom: 20px;
-}
-
-.el-row:last-child {
-  margin-bottom: 0;
-}
-
-.el-col {
-  border-radius: 4px;
-}
-
-.m-header {
-  height: 64px;
-}
 </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue
index e66b6bc..e78268e 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectProcessCard.vue
@@ -311,7 +311,7 @@
   ],//table body瀹為檯鏁版嵁
   //鑴氶儴姹傚拰
   footerMethod({columns, data}) {//椤佃剼鍑芥暟
-    let footList = ['quantity', 'orderDetail.computeGrossArea',]
+    let footList = ['', '',]
     return [
       columns.map((column, columnIndex) => {
         if (columnIndex === 0) {
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryReport.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryReport.vue
index 96bed46..0212f6b 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryReport.vue
@@ -2,68 +2,44 @@
 
 import BasicTable from "@/components/BasicTable.vue"
 import request from "@/utils/request"
-import {onMounted, reactive, ref} from "vue"
-import { useI18n } from 'vue-i18n'
-
-//璇█鑾峰彇
-const { t } = useI18n()
-const selectData = ref(["",""])
-let filterData = ref({})
-
-
+import { ref} from "vue"
 
 const childrenData = ref({
   columns:[
-    {type: 'seq', title: t('basicData.Number'), width: 80 },
-    {field: 'deliveryId',width:120,  title: t('delivery.deliveryNoteId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'creator',width:120,  title: t('delivery.shipper'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'deliveryDate',width:120,  title: t('delivery.deliveryDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'customerId',width:120,  title: t('customer.customerNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'customerName',width:120,  title: t('customer.customerName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'project',width:120,  title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'orderId',width:120,   title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'paymentTerms',width:120,  title: t('delivery.paymentTerms'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'payMethod',width:120,  title:t('delivery.paymentMethod'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'quantity',width:120,  title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'area',width:120,  title: t('productStock.totalArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'createTime',width:120,  title: t('productStock.statementDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }}
+    {type:'expand',fixed:"left",width: 80},
+    {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
+    {field: 'deliveryId',width:120, title: '鍙戣揣鍗曞彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'deliveryNumber',width:120, title: '鍙戣揣搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.paymentTerms',width:120, title: '浠樻鏉′欢',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.project',width:140, title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'quantity',width:120, title: '鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'area',width:120, title: '闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'money',width:120, title: '閲戦',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.customerId',width:120, title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.customerName',width:120, title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.deliveryDate',width:120, title: '閫佽揣鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.payMethod',width:120, title: '鏀粯鏂瑰紡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.payDate',width:120, title: '鏀粯鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.salesman',width:120, title: '閿�鍞憳',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.creator',width:120, title: '鍙戣揣鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.contacts',width:120, title: '鑱旂郴浜�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.contactNumber',width:120, title: '鑱旂郴鐢佃瘽',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'delivery.deliveryAddress',width:150, title: '閫佽揣鍦板潃',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'orderId',width:120, title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'orderNumber',width:120, title: '璁㈠崟搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'deliveryDetailRemakes',width:120, title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+    {field: 'createTime',width:120, title: '鎶ヨ〃鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+
   ],//琛ㄦ牸琛ㄥご瀛楁
   data:[],//琛ㄦ牸鏁版嵁
-  pageTotal : 0,//鎬婚〉鏁�
-  dataTotal : 0,//鏁版嵁鎬绘潯鏁�
-  pageSize : 100,//椤甸潰鏄剧ず鏁伴噺
-  pageNum:1,//褰撳墠椤�
-  selectDate:['',''],//鏌ヨ鐨勬棩鏈�
-  footList:['quantity','grossArea','computeGrossArea','perimeter','price','grossAmount']
+  url :'/Delivery/getSelectDeliveryDetailReport',
+  footList:['quantity','area','money']
 })
-//椤甸潰绗竴娆″姞杞�
-onMounted(() => {
-
-  getReportData()
-})
-
-//灏佽鑾峰彇鏁版嵁鏂规硶鏂规硶
-const  getReportData = () => {
-  request.post(`/Delivery/getSelectShippingOrder/${childrenData.value.pageNum}/${childrenData.value.pageSize}/${childrenData.value.selectDate}`,filterData.value).then(res => {
-    if(res.code === '200'){
-      childrenData.value.data = res.data.data
-      childrenData.value.pageTotal = res.data.total.pageTotal
-      childrenData.value.dataTotal = res.data.total.total
-      childrenData.value.selectDate = res.data.selectDate
-    }
-  })
-}
-
-const getData = (filter) => {
-  filterData.value = filter
-  getReportData()
-}
 
 </script>
 
 <template>
   <basic-table
-      @getData="getData"
       :childrenData="childrenData"/>
 </template>
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java b/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java
index 195de03..b7c9f31 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java
@@ -197,4 +197,10 @@
 
         }
     }
+
+    @ApiOperation("鎴愬搧搴撳瓨璁板綍鏌ヨ鎺ュ彛")
+    @PostMapping("/getSelectFinishedOperateLogReport/{pageNum}/{pageSize}/{selectDate}")
+    public Result getSelectFinishedOperateLogReport(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody FinishedOperateLog finishedOperateLog){
+        return Result.seccess(finishedGoodsInventoryService.getSelectFinishedOperateLogReport(pageNum,pageSize,selectDate,finishedOperateLog));
+    }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
index 043ce1e..1c01e28 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
@@ -65,4 +65,12 @@
     Map<String,Integer> getSelectStorageRecordLogPageTotal(@Param("offset") Integer offset,
                                                            @Param("pageSize") Integer pageSize,String startDate, String endDate,String type,
                                                            @Param("finishedOperateLog") FinishedOperateLog finishedOperateLog);
+
+    List<OrderDetail> getSelectFinishedOperateLogReport(@Param("offset") Integer offset,
+                                             @Param("pageSize") Integer pageSize,String startDate, String endDate,
+                                             @Param("finishedOperateLog") FinishedOperateLog finishedOperateLog);
+
+    Map<String,Integer> getSelectFinishedOperateLogReportPageTotal(@Param("offset") Integer offset,
+                                                           @Param("pageSize") Integer pageSize,String startDate, String endDate,
+                                                           @Param("finishedOperateLog") FinishedOperateLog finishedOperateLog);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
index 7f61773..1290530 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -565,6 +565,29 @@
         return map;
     }
 
+    public Map<String, Object> getSelectFinishedOperateLogReport(Integer pageNum, Integer pageSize, List<String> selectDate, FinishedOperateLog finishedOperateLog) {
+        Integer offset = (pageNum-1)*pageSize;
+        String endDate = LocalDate.now().toString();
+        String startDate = LocalDate.now().minusDays(15).toString();
+        if(selectDate !=null && selectDate.size()==2){
+            if(!selectDate.get(0).isEmpty()){
+                startDate = selectDate.get(0);
+            }
+            if(!selectDate.get(1).isEmpty()){
+                endDate = selectDate.get(1);
+            }
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("data", finishedOperateLogMapper.getSelectFinishedOperateLogReport(offset, pageSize,startDate, endDate, finishedOperateLog));
+        map.put("total", finishedOperateLogMapper.getSelectFinishedOperateLogReportPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog));
+        List<String> list = new ArrayList<>();
+        list.add(startDate);
+        list.add(endDate);
+        map.put("selectDate",list);
+        return map;
+    }
+
 
     public Boolean cancelFinishedGoodsInventoryStorage(Map<String,Object> object) {
         boolean saveState = true;
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
index 42b70b4..4dc53cb 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -75,6 +75,7 @@
                 endDate = selectDate.get(1);
             }
         }
+        System.out.println(pageSize);
         Map<String, Object> map = new HashMap<>();
         map.put("data", deliveryDetailMapper.getSelectDeliveryDetailReport(offset, pageSize,startDate,endDate, deliveryDetail));
         map.put("total", deliveryDetailMapper.getSelectDeliveryDetailReportPageTotal(offset, pageSize,startDate,endDate, deliveryDetail));
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
index 4e00492..bfd83e1 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -407,6 +407,148 @@
         limit #{offset},#{pageSize};
     </select>
 
+
+    <select id="getSelectFinishedOperateLogReport" resultMap="selectFinishedGoodsInventory">
+        select fol.id,
+        fol.operation_order_number,
+        fol.order_id,
+        fol.operate_type,
+        fol.process_id,
+        fol.operation_number,
+        fol.quantity,
+        fol.operator,
+        od.product_id,
+        od.product_name,
+        od.width,
+        od.height,
+        fol.stater_operation_order_number,
+        fol.end_operation_order_number,
+        fol.operate_time,
+        fol.`status`,
+        fol.is_state,
+        fol.reviewed,
+        fol.reviewed_time,
+        fol.type,
+        fol.remarks
+        from (select *
+        from mm.finished_operate_log aa where  aa.status!='宸蹭綔搴�') fol
+        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
+        <where>
+            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
+            <if test="finishedOperateLog.operateType != null and finishedOperateLog.operateType != ''">
+                and fol.operate_type regexp #{finishedOperateLog.operateType}
+            </if>
+            <if test="finishedOperateLog.operationOrderNumber != null and finishedOperateLog.operationOrderNumber != ''">
+                and fol.operation_order_number regexp #{finishedOperateLog.operationOrderNumber}
+            </if>
+            <if test="finishedOperateLog.orderId != null and finishedOperateLog.orderId != ''">
+                and fol.order_id regexp #{finishedOperateLog.orderId}
+            </if>
+            <if test="finishedOperateLog.operationNumber != null and finishedOperateLog.operationNumber != ''">
+                and fol.operation_number regexp #{finishedOperateLog.operationNumber}
+            </if>
+            <if test="finishedOperateLog.quantity != null and finishedOperateLog.quantity != ''">
+                and fol.quantity regexp #{finishedOperateLog.quantity}
+            </if>
+            <if test="finishedOperateLog.operator != null and finishedOperateLog.operator != ''">
+                and fol.operator regexp #{finishedOperateLog.operator}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.productId != null and finishedOperateLog.orderDetail.productId != ''">
+                and  od.product_id regexp #{finishedOperateLog.orderDetail.productId}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.productName != null and finishedOperateLog.orderDetail.productName != ''">
+                and  od.product_name regexp #{finishedOperateLog.orderDetail.productName}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.width != null and finishedOperateLog.orderDetail.width != ''">
+                and  od.width regexp  REGEXP_REPLACE(#{finishedOperateLog.orderDetail.width},'\\.0+$','')
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.height != null and finishedOperateLog.orderDetail.height != ''">
+                and  od.height regexp REGEXP_REPLACE(#{finishedOperateLog.orderDetail.height},'\\.0+$','')
+            </if>
+            <if test="finishedOperateLog.operateTime != null and finishedOperateLog.operateTime != ''">
+                and fol.operate_time regexp #{finishedOperateLog.operateTime}
+            </if>
+            <if test="finishedOperateLog.status != null and finishedOperateLog.status != ''">
+                and fol.`status` regexp #{finishedOperateLog.status}
+            </if>
+            <if test="finishedOperateLog.reviewed != null and finishedOperateLog.reviewed != ''">
+                and fol.reviewed regexp #{finishedOperateLog.reviewed}
+            </if>
+            <if test="finishedOperateLog.reviewedTime != null and finishedOperateLog.reviewedTime != ''">
+                and fol.reviewed_time regexp #{finishedOperateLog.reviewedTime}
+            </if>
+            <if test="finishedOperateLog.type != null and finishedOperateLog.type != ''">
+                and fol.type regexp #{finishedOperateLog.type}
+            </if>
+            <if test="finishedOperateLog.remarks != null and finishedOperateLog.remarks != ''">
+                and fol.remarks regexp #{finishedOperateLog.remarksr}
+            </if>
+        </where>
+        order by fol.`status` desc
+        limit #{offset},#{pageSize};
+    </select>
+
+    <select id="getSelectFinishedOperateLogReportPageTotal">
+        select CEILING(count(fol.id)/#{pageSize}) as 'pageTotal',
+        count(fol.id) as 'total'
+        from (select *
+        from mm.finished_operate_log aa where  aa.status!='宸蹭綔搴�') fol
+        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
+        <where>
+            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
+            <if test="finishedOperateLog.operateType != null and finishedOperateLog.operateType != ''">
+                and fol.operate_type regexp #{finishedOperateLog.operateType}
+            </if>
+            <if test="finishedOperateLog.operationOrderNumber != null and finishedOperateLog.operationOrderNumber != ''">
+                and fol.operation_order_number regexp #{finishedOperateLog.operationOrderNumber}
+            </if>
+            <if test="finishedOperateLog.orderId != null and finishedOperateLog.orderId != ''">
+                and fol.order_id regexp #{finishedOperateLog.orderId}
+            </if>
+            <if test="finishedOperateLog.operationNumber != null and finishedOperateLog.operationNumber != ''">
+                and fol.operation_number regexp #{finishedOperateLog.operationNumber}
+            </if>
+            <if test="finishedOperateLog.quantity != null and finishedOperateLog.quantity != ''">
+                and fol.quantity regexp #{finishedOperateLog.quantity}
+            </if>
+            <if test="finishedOperateLog.operator != null and finishedOperateLog.operator != ''">
+                and fol.operator regexp #{finishedOperateLog.operator}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.productId != null and finishedOperateLog.orderDetail.productId != ''">
+                and  od.product_id regexp #{finishedOperateLog.orderDetail.productId}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.productName != null and finishedOperateLog.orderDetail.productName != ''">
+                and  od.product_name regexp #{finishedOperateLog.orderDetail.productName}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.width != null and finishedOperateLog.orderDetail.width != ''">
+                and  od.width regexp  REGEXP_REPLACE(#{finishedOperateLog.orderDetail.width},'\\.0+$','')
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.height != null and finishedOperateLog.orderDetail.height != ''">
+                and  od.height regexp REGEXP_REPLACE(#{finishedOperateLog.orderDetail.height},'\\.0+$','')
+            </if>
+            <if test="finishedOperateLog.operateTime != null and finishedOperateLog.operateTime != ''">
+                and fol.operate_time regexp #{finishedOperateLog.operateTime}
+            </if>
+            <if test="finishedOperateLog.status != null and finishedOperateLog.status != ''">
+                and fol.`status` regexp #{finishedOperateLog.status}
+            </if>
+            <if test="finishedOperateLog.reviewed != null and finishedOperateLog.reviewed != ''">
+                and fol.reviewed regexp #{finishedOperateLog.reviewed}
+            </if>
+            <if test="finishedOperateLog.reviewedTime != null and finishedOperateLog.reviewedTime != ''">
+                and fol.reviewed_time regexp #{finishedOperateLog.reviewedTime}
+            </if>
+            <if test="finishedOperateLog.type != null and finishedOperateLog.type != ''">
+                and fol.type regexp #{finishedOperateLog.type}
+            </if>
+            <if test="finishedOperateLog.remarks != null and finishedOperateLog.remarks != ''">
+                and fol.remarks regexp #{finishedOperateLog.remarksr}
+            </if>
+        </where>
+        order by fol.`status` desc
+        limit #{offset},#{pageSize};
+    </select>
+
     <select id="getselectFinishedOperateLog" >
         select
             *
@@ -496,12 +638,13 @@
                                             operator,
                                             quantity,
                                             operate_time,
+                                            status,
                                             stater_operation_order_number,
                                             end_operation_order_number
         )
         values (
                    #{oddNumber} ,#{orderDetail.finishedGoodsInventory.orderId},#{orderDetail.finishedGoodsInventory.orderNumber}
-                   ,"璋冩嫧",#{userName},#{orderDetail.quantity},now(),#{orderDetail.orderId},#{orderDetail.orderNumber}
+                   ,"璋冩嫧",#{userName},#{orderDetail.quantity},now(),"鏈鏍�",#{orderDetail.orderId},#{orderDetail.orderNumber}
                )
     </insert>
 
diff --git a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
index 5293cf6..611e82d 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -4,6 +4,37 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.example.erp.mapper.mm.MaterialInventoryMapper">
 
+    <resultMap id="selectMaterialOutboundDetail" type="com.example.erp.entity.mm.MaterialOutboundDetail" >
+        <id column="id" property="id"/>
+        <result column="material_outbound_id" property="materialOutboundId"/>
+        <result column="material_outbound_number" property="materialOutboundNumber"/>
+        <result column="inventory_id" property="inventoryId"/>
+        <result column="inventory_organization" property="inventoryOrganization"/>
+        <result column="material_code" property="materialCode"/>
+        <result column="material_name" property="materialName"/>
+        <result column="use_id" property="useId"/>
+        <result column="producer" property="producer"/>
+        <result column="unit" property="unit"/>
+        <result column="width" property="width"/>
+        <result column="height" property="height"/>
+        <result column="thickness" property="thickness"/>
+        <result column="outbound_quantity" property="outboundQuantity"/>
+        <result column="single_piece_area" property="singlePieceArea"/>
+        <result column="inventory_area" property="inventoryArea"/>
+        <result column="date_of_manufacture" property="dateOfManufacture"/>
+        <result column="remarks" property="remarks"/>
+
+        <result column="material_requisition_personnel" property="materialOutbound.materialRequisitionPersonnel"/>
+        <result column="material_requisition_team" property="materialOutbound.materialRequisitionTeam"/>
+        <result column="order_id" property="materialOutbound.orderId"/>
+        <result column="outbound_type" property="materialOutbound.outboundType"/>
+        <result column="warehouse_manager" property="materialOutbound.warehouseManager"/>
+        <result column="material_requisition_date" property="materialOutbound.materialRequisitionDate"/>
+        <result column="reviewed" property="materialOutbound.reviewed"/>
+        <result column="reviewed_time" property="materialOutbound.reviewedTime"/>
+
+    </resultMap>
+
 
 
     <select id="getSelectMaterialInventoryDate">
diff --git a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetail.xml b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetail.xml
index 99bea70..2e92abc 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetail.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetail.xml
@@ -63,6 +63,7 @@
         <result column="o_quantity" property="quantity"/>
         <result column="delivery_id" property="deliveryId"/>
         <result column="delivery_number" property="deliveryNumber"/>
+        <result column="quantity" property="quantity"/>
         <result column="area" property="area"/>
         <result column="money" property="money"/>
         <result column="delivery_detail_remakes" property="deliveryDetailRemakes"/>
@@ -500,68 +501,69 @@
         from sd.delivery_detail dd
         left join sd.delivery d on dd.delivery_id=d.delivery_id
         <where>
+               and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
             <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
-                and dd.delivery_id regexp #{deliveryDetail.deliveryId}
+                and dd.delivery_id like concat('%',#{deliveryDetail.deliveryId},'%')
             </if>
             <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
-                and dd.delivery_number regexp #{deliveryDetail.deliveryNumber}
+                and dd.delivery_number like concat('%',#{deliveryDetail.deliveryNumber},'%')
             </if>
             <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
-                and dd.order_id regexp #{deliveryDetail.orderId}
+                and dd.order_id like concat('%', #{deliveryDetail.orderId},'%')
             </if>
             <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
-                and dd.order_number regexp #{deliveryDetail.orderNumber}
+                and dd.order_number like concat('%', #{deliveryDetail.orderNumber},'%')
             </if>
             <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
-                and dd.area regexp #{deliveryDetail.area}
+                and dd.area like concat('%', #{deliveryDetail.area},'%')
             </if>
             <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
-                and dd.money regexp #{deliveryDetail.money}
+                and dd.money like concat('%', #{deliveryDetail.money},'%')
             </if>
             <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
-                and dd.quantity regexp #{deliveryDetail.quantity}
+                and dd.quantity like concat('%', #{deliveryDetail.quantity},'%')
             </if>
             <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
-                and dd.delivery_detail_remakes regexp #{deliveryDetail.deliveryDetailRemakes}
+                and dd.delivery_detail_remakes like concat('%', #{deliveryDetail.deliveryDetailRemakes},'%')
             </if>
             <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
-                and dd.create_time regexp #{deliveryDetail.createTime}
+                and dd.create_time like concat('%', #{deliveryDetail.createTime},'%')
             </if>
-            <if test="deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != ''">
-                and d.payment_terms regexp #{deliveryDetail.delivery.paymentTerms}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != '')">
+                and d.payment_terms like concat('%', #{deliveryDetail.delivery.paymentTerms},'%')
             </if>
-            <if test="deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != ''">
-                and d.project regexp #{deliveryDetail.delivery.project}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != '')">
+                and d.project like concat('%', #{deliveryDetail.delivery.project},'%')
             </if>
-            <if test="deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != ''">
-                and d.customer_id regexp #{deliveryDetail.delivery.customerId}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != '')">
+                and d.customer_id like concat('%', #{deliveryDetail.delivery.customerId},'%')
             </if>
-            <if test="deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != ''">
-                and d.customer_name regexp #{deliveryDetail.delivery.customerName}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != '')">
+                and d.customer_name like concat('%', #{deliveryDetail.delivery.customerName},'%')
             </if>
-            <if test="deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != ''">
-                and d.delivery_date regexp #{deliveryDetail.delivery.deliveryDate}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != '')">
+                and d.delivery_date like concat('%', #{deliveryDetail.delivery.deliveryDate},'%')
             </if>
-            <if test="deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != ''">
-                and d.pay_method regexp #{deliveryDetail.delivery.payMethod}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != '')">
+                and d.pay_method like concat('%', #{deliveryDetail.delivery.payMethod},'%')
             </if>
-            <if test="deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != ''">
-                and d.pay_date regexp #{deliveryDetail.delivery.payDate}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != '')">
+                and d.pay_date like concat('%', #{deliveryDetail.delivery.payDate},'%')
             </if>
-            <if test="deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != ''">
-                and d.salesman regexp #{deliveryDetail.delivery.salesman}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != '')">
+                and d.salesman like concat('%', #{deliveryDetail.delivery.salesman},'%')
             </if>
-            <if test="deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != ''">
-                and d.creator regexp #{deliveryDetail.delivery.creator}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != '')">
+                and d.creator like concat('%', #{deliveryDetail.delivery.creator},'%')
             </if>
-            <if test="deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != ''">
-                and d.contacts regexp #{deliveryDetail.delivery.contacts}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != '')">
+                and d.contacts like concat('%', #{deliveryDetail.delivery.contacts},'%')
             </if>
-            <if test="deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != ''">
-                and d.contact_number regexp #{deliveryDetail.delivery.contactNumber}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != '')">
+                and d.contact_number like concat('%', #{deliveryDetail.delivery.contactNumber},'%')
             </if>
-            <if test="deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != ''">
-                and d.delivery_address regexp #{deliveryDetail.delivery.deliveryAddress}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != '')">
+                and d.delivery_address like concat('%', #{deliveryDetail.delivery.deliveryAddress},'%')
             </if>
 
         </where>
@@ -569,78 +571,78 @@
         limit #{offset},#{pageSize};
     </select>
 
-    <select id="getSelectDeliveryDetailReportPageTotal" resultMap="selectDeliveryDetail">
+    <select id="getSelectDeliveryDetailReportPageTotal">
         select CEILING(count(dd.id)/#{pageSize}) as 'pageTotal',
         count(dd.id) as 'total'
         from sd.delivery_detail dd
         left join sd.delivery d on dd.delivery_id=d.delivery_id
         <where>
+            and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
             <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
-                and dd.delivery_id regexp #{deliveryDetail.deliveryId}
+                and dd.delivery_id like concat('%',#{deliveryDetail.deliveryId},'%')
             </if>
             <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
-                and dd.delivery_number regexp #{deliveryDetail.deliveryNumber}
+                and dd.delivery_number like concat('%',#{deliveryDetail.deliveryNumber},'%')
             </if>
             <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
-                and dd.order_id regexp #{deliveryDetail.orderId}
+                and dd.order_id like concat('%', #{deliveryDetail.orderId},'%')
             </if>
             <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
-                and dd.order_number regexp #{deliveryDetail.orderNumber}
+                and dd.order_number like concat('%', #{deliveryDetail.orderNumber},'%')
             </if>
             <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
-                and dd.area regexp #{deliveryDetail.area}
+                and dd.area like concat('%', #{deliveryDetail.area},'%')
             </if>
             <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
-                and dd.money regexp #{deliveryDetail.money}
+                and dd.money like concat('%', #{deliveryDetail.money},'%')
             </if>
             <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
-                and dd.quantity regexp #{deliveryDetail.quantity}
+                and dd.quantity like concat('%', #{deliveryDetail.quantity},'%')
             </if>
             <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
-                and dd.delivery_detail_remakes regexp #{deliveryDetail.deliveryDetailRemakes}
+                and dd.delivery_detail_remakes like concat('%', #{deliveryDetail.deliveryDetailRemakes},'%')
             </if>
             <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
-                and dd.create_time regexp #{deliveryDetail.createTime}
+                and dd.create_time like concat('%', #{deliveryDetail.createTime},'%')
             </if>
-            <if test="deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != ''">
-                and d.payment_terms regexp #{deliveryDetail.delivery.paymentTerms}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != '')">
+                and d.payment_terms like concat('%', #{deliveryDetail.delivery.paymentTerms},'%')
             </if>
-            <if test="deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != ''">
-                and d.project regexp #{deliveryDetail.delivery.project}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != '')">
+                and d.project like concat('%', #{deliveryDetail.delivery.project},'%')
             </if>
-            <if test="deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != ''">
-                and d.customer_id regexp #{deliveryDetail.delivery.customerId}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != '')">
+                and d.customer_id like concat('%', #{deliveryDetail.delivery.customerId},'%')
             </if>
-            <if test="deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != ''">
-                and d.customer_name regexp #{deliveryDetail.delivery.customerName}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != '')">
+                and d.customer_name like concat('%', #{deliveryDetail.delivery.customerName},'%')
             </if>
-            <if test="deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != ''">
-                and d.delivery_date regexp #{deliveryDetail.delivery.deliveryDate}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != '')">
+                and d.delivery_date like concat('%', #{deliveryDetail.delivery.deliveryDate},'%')
             </if>
-            <if test="deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != ''">
-                and d.pay_method regexp #{deliveryDetail.delivery.payMethod}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != '')">
+                and d.pay_method like concat('%', #{deliveryDetail.delivery.payMethod},'%')
             </if>
-            <if test="deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != ''">
-                and d.pay_date regexp #{deliveryDetail.delivery.payDate}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != '')">
+                and d.pay_date like concat('%', #{deliveryDetail.delivery.payDate},'%')
             </if>
-            <if test="deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != ''">
-                and d.salesman regexp #{deliveryDetail.delivery.salesman}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != '')">
+                and d.salesman like concat('%', #{deliveryDetail.delivery.salesman},'%')
             </if>
-            <if test="deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != ''">
-                and d.creator regexp #{deliveryDetail.delivery.creator}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != '')">
+                and d.creator like concat('%', #{deliveryDetail.delivery.creator},'%')
             </if>
-            <if test="deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != ''">
-                and d.contacts regexp #{deliveryDetail.delivery.contacts}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != '')">
+                and d.contacts like concat('%', #{deliveryDetail.delivery.contacts},'%')
             </if>
-            <if test="deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != ''">
-                and d.contact_number regexp #{deliveryDetail.delivery.contactNumber}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != '')">
+                and d.contact_number like concat('%', #{deliveryDetail.delivery.contactNumber},'%')
             </if>
-            <if test="deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != ''">
-                and d.delivery_address regexp #{deliveryDetail.delivery.deliveryAddress}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != '')">
+                and d.delivery_address like concat('%', #{deliveryDetail.delivery.deliveryAddress},'%')
             </if>
 
         </where>
         order by dd.delivery_id,dd.delivery_number
-        limit #{offset},#{pageSize};
     </select>
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml
index 4e00492..bfd83e1 100644
--- a/north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml
+++ b/north-glass-erp/target/classes/mapper/mm/FinishedOperateLog.xml
@@ -407,6 +407,148 @@
         limit #{offset},#{pageSize};
     </select>
 
+
+    <select id="getSelectFinishedOperateLogReport" resultMap="selectFinishedGoodsInventory">
+        select fol.id,
+        fol.operation_order_number,
+        fol.order_id,
+        fol.operate_type,
+        fol.process_id,
+        fol.operation_number,
+        fol.quantity,
+        fol.operator,
+        od.product_id,
+        od.product_name,
+        od.width,
+        od.height,
+        fol.stater_operation_order_number,
+        fol.end_operation_order_number,
+        fol.operate_time,
+        fol.`status`,
+        fol.is_state,
+        fol.reviewed,
+        fol.reviewed_time,
+        fol.type,
+        fol.remarks
+        from (select *
+        from mm.finished_operate_log aa where  aa.status!='宸蹭綔搴�') fol
+        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
+        <where>
+            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
+            <if test="finishedOperateLog.operateType != null and finishedOperateLog.operateType != ''">
+                and fol.operate_type regexp #{finishedOperateLog.operateType}
+            </if>
+            <if test="finishedOperateLog.operationOrderNumber != null and finishedOperateLog.operationOrderNumber != ''">
+                and fol.operation_order_number regexp #{finishedOperateLog.operationOrderNumber}
+            </if>
+            <if test="finishedOperateLog.orderId != null and finishedOperateLog.orderId != ''">
+                and fol.order_id regexp #{finishedOperateLog.orderId}
+            </if>
+            <if test="finishedOperateLog.operationNumber != null and finishedOperateLog.operationNumber != ''">
+                and fol.operation_number regexp #{finishedOperateLog.operationNumber}
+            </if>
+            <if test="finishedOperateLog.quantity != null and finishedOperateLog.quantity != ''">
+                and fol.quantity regexp #{finishedOperateLog.quantity}
+            </if>
+            <if test="finishedOperateLog.operator != null and finishedOperateLog.operator != ''">
+                and fol.operator regexp #{finishedOperateLog.operator}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.productId != null and finishedOperateLog.orderDetail.productId != ''">
+                and  od.product_id regexp #{finishedOperateLog.orderDetail.productId}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.productName != null and finishedOperateLog.orderDetail.productName != ''">
+                and  od.product_name regexp #{finishedOperateLog.orderDetail.productName}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.width != null and finishedOperateLog.orderDetail.width != ''">
+                and  od.width regexp  REGEXP_REPLACE(#{finishedOperateLog.orderDetail.width},'\\.0+$','')
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.height != null and finishedOperateLog.orderDetail.height != ''">
+                and  od.height regexp REGEXP_REPLACE(#{finishedOperateLog.orderDetail.height},'\\.0+$','')
+            </if>
+            <if test="finishedOperateLog.operateTime != null and finishedOperateLog.operateTime != ''">
+                and fol.operate_time regexp #{finishedOperateLog.operateTime}
+            </if>
+            <if test="finishedOperateLog.status != null and finishedOperateLog.status != ''">
+                and fol.`status` regexp #{finishedOperateLog.status}
+            </if>
+            <if test="finishedOperateLog.reviewed != null and finishedOperateLog.reviewed != ''">
+                and fol.reviewed regexp #{finishedOperateLog.reviewed}
+            </if>
+            <if test="finishedOperateLog.reviewedTime != null and finishedOperateLog.reviewedTime != ''">
+                and fol.reviewed_time regexp #{finishedOperateLog.reviewedTime}
+            </if>
+            <if test="finishedOperateLog.type != null and finishedOperateLog.type != ''">
+                and fol.type regexp #{finishedOperateLog.type}
+            </if>
+            <if test="finishedOperateLog.remarks != null and finishedOperateLog.remarks != ''">
+                and fol.remarks regexp #{finishedOperateLog.remarksr}
+            </if>
+        </where>
+        order by fol.`status` desc
+        limit #{offset},#{pageSize};
+    </select>
+
+    <select id="getSelectFinishedOperateLogReportPageTotal">
+        select CEILING(count(fol.id)/#{pageSize}) as 'pageTotal',
+        count(fol.id) as 'total'
+        from (select *
+        from mm.finished_operate_log aa where  aa.status!='宸蹭綔搴�') fol
+        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
+        <where>
+            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
+            <if test="finishedOperateLog.operateType != null and finishedOperateLog.operateType != ''">
+                and fol.operate_type regexp #{finishedOperateLog.operateType}
+            </if>
+            <if test="finishedOperateLog.operationOrderNumber != null and finishedOperateLog.operationOrderNumber != ''">
+                and fol.operation_order_number regexp #{finishedOperateLog.operationOrderNumber}
+            </if>
+            <if test="finishedOperateLog.orderId != null and finishedOperateLog.orderId != ''">
+                and fol.order_id regexp #{finishedOperateLog.orderId}
+            </if>
+            <if test="finishedOperateLog.operationNumber != null and finishedOperateLog.operationNumber != ''">
+                and fol.operation_number regexp #{finishedOperateLog.operationNumber}
+            </if>
+            <if test="finishedOperateLog.quantity != null and finishedOperateLog.quantity != ''">
+                and fol.quantity regexp #{finishedOperateLog.quantity}
+            </if>
+            <if test="finishedOperateLog.operator != null and finishedOperateLog.operator != ''">
+                and fol.operator regexp #{finishedOperateLog.operator}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.productId != null and finishedOperateLog.orderDetail.productId != ''">
+                and  od.product_id regexp #{finishedOperateLog.orderDetail.productId}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.productName != null and finishedOperateLog.orderDetail.productName != ''">
+                and  od.product_name regexp #{finishedOperateLog.orderDetail.productName}
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.width != null and finishedOperateLog.orderDetail.width != ''">
+                and  od.width regexp  REGEXP_REPLACE(#{finishedOperateLog.orderDetail.width},'\\.0+$','')
+            </if>
+            <if test="finishedOperateLog.orderDetail!=null and finishedOperateLog.orderDetail.height != null and finishedOperateLog.orderDetail.height != ''">
+                and  od.height regexp REGEXP_REPLACE(#{finishedOperateLog.orderDetail.height},'\\.0+$','')
+            </if>
+            <if test="finishedOperateLog.operateTime != null and finishedOperateLog.operateTime != ''">
+                and fol.operate_time regexp #{finishedOperateLog.operateTime}
+            </if>
+            <if test="finishedOperateLog.status != null and finishedOperateLog.status != ''">
+                and fol.`status` regexp #{finishedOperateLog.status}
+            </if>
+            <if test="finishedOperateLog.reviewed != null and finishedOperateLog.reviewed != ''">
+                and fol.reviewed regexp #{finishedOperateLog.reviewed}
+            </if>
+            <if test="finishedOperateLog.reviewedTime != null and finishedOperateLog.reviewedTime != ''">
+                and fol.reviewed_time regexp #{finishedOperateLog.reviewedTime}
+            </if>
+            <if test="finishedOperateLog.type != null and finishedOperateLog.type != ''">
+                and fol.type regexp #{finishedOperateLog.type}
+            </if>
+            <if test="finishedOperateLog.remarks != null and finishedOperateLog.remarks != ''">
+                and fol.remarks regexp #{finishedOperateLog.remarksr}
+            </if>
+        </where>
+        order by fol.`status` desc
+        limit #{offset},#{pageSize};
+    </select>
+
     <select id="getselectFinishedOperateLog" >
         select
             *
@@ -496,12 +638,13 @@
                                             operator,
                                             quantity,
                                             operate_time,
+                                            status,
                                             stater_operation_order_number,
                                             end_operation_order_number
         )
         values (
                    #{oddNumber} ,#{orderDetail.finishedGoodsInventory.orderId},#{orderDetail.finishedGoodsInventory.orderNumber}
-                   ,"璋冩嫧",#{userName},#{orderDetail.quantity},now(),#{orderDetail.orderId},#{orderDetail.orderNumber}
+                   ,"璋冩嫧",#{userName},#{orderDetail.quantity},now(),"鏈鏍�",#{orderDetail.orderId},#{orderDetail.orderNumber}
                )
     </insert>
 
diff --git a/north-glass-erp/target/classes/mapper/sd/DeliveryDetail.xml b/north-glass-erp/target/classes/mapper/sd/DeliveryDetail.xml
index 99bea70..2e92abc 100644
--- a/north-glass-erp/target/classes/mapper/sd/DeliveryDetail.xml
+++ b/north-glass-erp/target/classes/mapper/sd/DeliveryDetail.xml
@@ -63,6 +63,7 @@
         <result column="o_quantity" property="quantity"/>
         <result column="delivery_id" property="deliveryId"/>
         <result column="delivery_number" property="deliveryNumber"/>
+        <result column="quantity" property="quantity"/>
         <result column="area" property="area"/>
         <result column="money" property="money"/>
         <result column="delivery_detail_remakes" property="deliveryDetailRemakes"/>
@@ -500,68 +501,69 @@
         from sd.delivery_detail dd
         left join sd.delivery d on dd.delivery_id=d.delivery_id
         <where>
+               and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
             <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
-                and dd.delivery_id regexp #{deliveryDetail.deliveryId}
+                and dd.delivery_id like concat('%',#{deliveryDetail.deliveryId},'%')
             </if>
             <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
-                and dd.delivery_number regexp #{deliveryDetail.deliveryNumber}
+                and dd.delivery_number like concat('%',#{deliveryDetail.deliveryNumber},'%')
             </if>
             <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
-                and dd.order_id regexp #{deliveryDetail.orderId}
+                and dd.order_id like concat('%', #{deliveryDetail.orderId},'%')
             </if>
             <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
-                and dd.order_number regexp #{deliveryDetail.orderNumber}
+                and dd.order_number like concat('%', #{deliveryDetail.orderNumber},'%')
             </if>
             <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
-                and dd.area regexp #{deliveryDetail.area}
+                and dd.area like concat('%', #{deliveryDetail.area},'%')
             </if>
             <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
-                and dd.money regexp #{deliveryDetail.money}
+                and dd.money like concat('%', #{deliveryDetail.money},'%')
             </if>
             <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
-                and dd.quantity regexp #{deliveryDetail.quantity}
+                and dd.quantity like concat('%', #{deliveryDetail.quantity},'%')
             </if>
             <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
-                and dd.delivery_detail_remakes regexp #{deliveryDetail.deliveryDetailRemakes}
+                and dd.delivery_detail_remakes like concat('%', #{deliveryDetail.deliveryDetailRemakes},'%')
             </if>
             <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
-                and dd.create_time regexp #{deliveryDetail.createTime}
+                and dd.create_time like concat('%', #{deliveryDetail.createTime},'%')
             </if>
-            <if test="deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != ''">
-                and d.payment_terms regexp #{deliveryDetail.delivery.paymentTerms}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != '')">
+                and d.payment_terms like concat('%', #{deliveryDetail.delivery.paymentTerms},'%')
             </if>
-            <if test="deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != ''">
-                and d.project regexp #{deliveryDetail.delivery.project}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != '')">
+                and d.project like concat('%', #{deliveryDetail.delivery.project},'%')
             </if>
-            <if test="deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != ''">
-                and d.customer_id regexp #{deliveryDetail.delivery.customerId}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != '')">
+                and d.customer_id like concat('%', #{deliveryDetail.delivery.customerId},'%')
             </if>
-            <if test="deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != ''">
-                and d.customer_name regexp #{deliveryDetail.delivery.customerName}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != '')">
+                and d.customer_name like concat('%', #{deliveryDetail.delivery.customerName},'%')
             </if>
-            <if test="deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != ''">
-                and d.delivery_date regexp #{deliveryDetail.delivery.deliveryDate}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != '')">
+                and d.delivery_date like concat('%', #{deliveryDetail.delivery.deliveryDate},'%')
             </if>
-            <if test="deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != ''">
-                and d.pay_method regexp #{deliveryDetail.delivery.payMethod}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != '')">
+                and d.pay_method like concat('%', #{deliveryDetail.delivery.payMethod},'%')
             </if>
-            <if test="deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != ''">
-                and d.pay_date regexp #{deliveryDetail.delivery.payDate}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != '')">
+                and d.pay_date like concat('%', #{deliveryDetail.delivery.payDate},'%')
             </if>
-            <if test="deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != ''">
-                and d.salesman regexp #{deliveryDetail.delivery.salesman}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != '')">
+                and d.salesman like concat('%', #{deliveryDetail.delivery.salesman},'%')
             </if>
-            <if test="deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != ''">
-                and d.creator regexp #{deliveryDetail.delivery.creator}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != '')">
+                and d.creator like concat('%', #{deliveryDetail.delivery.creator},'%')
             </if>
-            <if test="deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != ''">
-                and d.contacts regexp #{deliveryDetail.delivery.contacts}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != '')">
+                and d.contacts like concat('%', #{deliveryDetail.delivery.contacts},'%')
             </if>
-            <if test="deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != ''">
-                and d.contact_number regexp #{deliveryDetail.delivery.contactNumber}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != '')">
+                and d.contact_number like concat('%', #{deliveryDetail.delivery.contactNumber},'%')
             </if>
-            <if test="deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != ''">
-                and d.delivery_address regexp #{deliveryDetail.delivery.deliveryAddress}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != '')">
+                and d.delivery_address like concat('%', #{deliveryDetail.delivery.deliveryAddress},'%')
             </if>
 
         </where>
@@ -569,78 +571,78 @@
         limit #{offset},#{pageSize};
     </select>
 
-    <select id="getSelectDeliveryDetailReportPageTotal" resultMap="selectDeliveryDetail">
+    <select id="getSelectDeliveryDetailReportPageTotal">
         select CEILING(count(dd.id)/#{pageSize}) as 'pageTotal',
         count(dd.id) as 'total'
         from sd.delivery_detail dd
         left join sd.delivery d on dd.delivery_id=d.delivery_id
         <where>
+            and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
             <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
-                and dd.delivery_id regexp #{deliveryDetail.deliveryId}
+                and dd.delivery_id like concat('%',#{deliveryDetail.deliveryId},'%')
             </if>
             <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
-                and dd.delivery_number regexp #{deliveryDetail.deliveryNumber}
+                and dd.delivery_number like concat('%',#{deliveryDetail.deliveryNumber},'%')
             </if>
             <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
-                and dd.order_id regexp #{deliveryDetail.orderId}
+                and dd.order_id like concat('%', #{deliveryDetail.orderId},'%')
             </if>
             <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
-                and dd.order_number regexp #{deliveryDetail.orderNumber}
+                and dd.order_number like concat('%', #{deliveryDetail.orderNumber},'%')
             </if>
             <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
-                and dd.area regexp #{deliveryDetail.area}
+                and dd.area like concat('%', #{deliveryDetail.area},'%')
             </if>
             <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
-                and dd.money regexp #{deliveryDetail.money}
+                and dd.money like concat('%', #{deliveryDetail.money},'%')
             </if>
             <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
-                and dd.quantity regexp #{deliveryDetail.quantity}
+                and dd.quantity like concat('%', #{deliveryDetail.quantity},'%')
             </if>
             <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
-                and dd.delivery_detail_remakes regexp #{deliveryDetail.deliveryDetailRemakes}
+                and dd.delivery_detail_remakes like concat('%', #{deliveryDetail.deliveryDetailRemakes},'%')
             </if>
             <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
-                and dd.create_time regexp #{deliveryDetail.createTime}
+                and dd.create_time like concat('%', #{deliveryDetail.createTime},'%')
             </if>
-            <if test="deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != ''">
-                and d.payment_terms regexp #{deliveryDetail.delivery.paymentTerms}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != '')">
+                and d.payment_terms like concat('%', #{deliveryDetail.delivery.paymentTerms},'%')
             </if>
-            <if test="deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != ''">
-                and d.project regexp #{deliveryDetail.delivery.project}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != '')">
+                and d.project like concat('%', #{deliveryDetail.delivery.project},'%')
             </if>
-            <if test="deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != ''">
-                and d.customer_id regexp #{deliveryDetail.delivery.customerId}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != '')">
+                and d.customer_id like concat('%', #{deliveryDetail.delivery.customerId},'%')
             </if>
-            <if test="deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != ''">
-                and d.customer_name regexp #{deliveryDetail.delivery.customerName}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != '')">
+                and d.customer_name like concat('%', #{deliveryDetail.delivery.customerName},'%')
             </if>
-            <if test="deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != ''">
-                and d.delivery_date regexp #{deliveryDetail.delivery.deliveryDate}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != '')">
+                and d.delivery_date like concat('%', #{deliveryDetail.delivery.deliveryDate},'%')
             </if>
-            <if test="deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != ''">
-                and d.pay_method regexp #{deliveryDetail.delivery.payMethod}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != '')">
+                and d.pay_method like concat('%', #{deliveryDetail.delivery.payMethod},'%')
             </if>
-            <if test="deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != ''">
-                and d.pay_date regexp #{deliveryDetail.delivery.payDate}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != '')">
+                and d.pay_date like concat('%', #{deliveryDetail.delivery.payDate},'%')
             </if>
-            <if test="deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != ''">
-                and d.salesman regexp #{deliveryDetail.delivery.salesman}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != '')">
+                and d.salesman like concat('%', #{deliveryDetail.delivery.salesman},'%')
             </if>
-            <if test="deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != ''">
-                and d.creator regexp #{deliveryDetail.delivery.creator}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != '')">
+                and d.creator like concat('%', #{deliveryDetail.delivery.creator},'%')
             </if>
-            <if test="deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != ''">
-                and d.contacts regexp #{deliveryDetail.delivery.contacts}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != '')">
+                and d.contacts like concat('%', #{deliveryDetail.delivery.contacts},'%')
             </if>
-            <if test="deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != ''">
-                and d.contact_number regexp #{deliveryDetail.delivery.contactNumber}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != '')">
+                and d.contact_number like concat('%', #{deliveryDetail.delivery.contactNumber},'%')
             </if>
-            <if test="deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != ''">
-                and d.delivery_address regexp #{deliveryDetail.delivery.deliveryAddress}
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != '')">
+                and d.delivery_address like concat('%', #{deliveryDetail.delivery.deliveryAddress},'%')
             </if>
 
         </where>
         order by dd.delivery_id,dd.delivery_number
-        limit #{offset},#{pageSize};
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0