From 453f63fd6cd6466222304df619e62b3a5667ca68 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期二, 05 八月 2025 13:56:47 +0800
Subject: [PATCH] 修复0730测试问题

---
 eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx                                                   |   42 ++-
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsFaultKnowController.java        |   60 +++++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java          |   12 +
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java     |   32 ++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java    |   21 +
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java       |   90 ++++++-
 eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue                                               |    4 
 eims-ui/apps/web-antd/src/views/eims/fault-know/data.tsx                                                 |  150 ++++++++-----
 eims-ui/apps/web-antd/src/views/eims/fault-know/fault-preview-drawer.vue                                 |   32 ++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java                   |    6 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java               |    2 
 eims-ui-mobile/src/pages/inspect/insp-st.vue                                                             |   15 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java                 |    4 
 eims-ui-mobile/src/pages/maint/maint-st.vue                                                              |   12 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java |   15 +
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java     |   10 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMultipleMaintStBo.java           |   14 +
 eims-ui/apps/web-antd/src/views/eims/fault-know/index.vue                                                |   67 +++--
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsRepairResBo.java                 |    1 
 eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx                                                |   33 ++
 20 files changed, 480 insertions(+), 142 deletions(-)

diff --git a/eims-ui-mobile/src/pages/inspect/insp-st.vue b/eims-ui-mobile/src/pages/inspect/insp-st.vue
index 928022b..6678fb5 100644
--- a/eims-ui-mobile/src/pages/inspect/insp-st.vue
+++ b/eims-ui-mobile/src/pages/inspect/insp-st.vue
@@ -12,8 +12,7 @@
   <z-paging ref="paging" v-model="dataList" @query="queryList" show-refresher-update-time>
     <template #top>
       <!-- 澧炲姞涓�涓悳绱㈡爮 -->
-      <wd-search v-model="searchValue" @search="handleSearch">
-      </wd-search>
+      <wd-search v-model="searchValue" @search="handleSearch"></wd-search>
       <wd-tabs v-model="activeTab" @change="handleTabChange">
         <wd-tab title="寰呯偣妫�"></wd-tab>
         <wd-tab title="寰呯‘璁�"></wd-tab>
@@ -45,9 +44,15 @@
             <view class="text-color-gray text-sm mt-1 flex">
               <text class="mr-3">鎬绘暟: {{ item.recordCount }}</text>
               |
+              <template v-if="activeTab === 0">
+                <text class="mx-3">鏈偣妫�: {{ item.unCheckCount }}</text>
+                |
+              </template>
+              <template v-else>
+                <text class="mx-3">寰呯‘璁�: {{ item.dqrCount }}</text>
+                |
+              </template>
               <text class="mx-3">宸茬偣妫�: {{ item.checkCount }}</text>
-              |
-              <text class="ml-3">鏈偣妫�: {{ item.unCheckCount }}</text>
             </view>
             <view class="text-color-gray text-sm mt-2 flex">
               <text class="mr-3">姝e父: {{ item.normalNum }}</text>
@@ -82,7 +87,7 @@
 import { getInspStList } from '@/service/inspect'
 import dayjs from 'dayjs'
 import { useUserStore, useAccessStore, useSystemConfigStore } from '@/store'
-import { isLeader, isLineOrRepair, isOperator } from "@/utils/RoleUtils";
+import { isLeader, isLineOrRepair, isOperator } from '@/utils/RoleUtils'
 // 鏍囩椤电浉鍏�
 const activeTab = ref(0) // 榛樿閫変腑绗竴涓爣绛鹃〉锛堝緟鐐规锛�
 
diff --git a/eims-ui-mobile/src/pages/maint/maint-st.vue b/eims-ui-mobile/src/pages/maint/maint-st.vue
index 0adacf7..85851df 100644
--- a/eims-ui-mobile/src/pages/maint/maint-st.vue
+++ b/eims-ui-mobile/src/pages/maint/maint-st.vue
@@ -53,9 +53,15 @@
             <view class="text-color-gray text-sm mt-1 flex">
               <text class="mr-3">鎬绘暟: {{ item.orderCount }}</text>
               |
-              <text class="mx-3">宸插畬鎴�: {{ item.dyzCount }}</text>
-              |
-              <text class="mx-3">寰呬繚鍏�: {{ item.dbyCount }}</text>
+              <template v-if="activeTab === 0">
+                <text class="mx-3">寰呬繚鍏�: {{ item.dbyCount }}</text>
+                |
+              </template>
+              <template v-else>
+                <text class="mx-3">寰呴獙璇�: {{ item.dyzCount }}</text>
+                |
+              </template>
+              <text class="mx-3">宸插畬鎴�: {{ item.wcCount }}</text>
             </view>
 <!--            <view class="text-color-gray text-sm mt-2 flex">-->
 <!--              <text class="mr-3">寰呬繚鍏�: {{ item.dbyCount }}</text>-->
diff --git a/eims-ui/apps/web-antd/src/views/eims/fault-know/data.tsx b/eims-ui/apps/web-antd/src/views/eims/fault-know/data.tsx
index 8cc1cef..4b45ef4 100644
--- a/eims-ui/apps/web-antd/src/views/eims/fault-know/data.tsx
+++ b/eims-ui/apps/web-antd/src/views/eims/fault-know/data.tsx
@@ -5,47 +5,56 @@
 import { type FormSchemaGetter } from '#/adapter/form';
 import { getDictOptions } from '#/utils/dict';
 import { renderDict } from '#/utils/render';
+import type { DescItem } from '#/components/description';
 
 export const querySchema: FormSchemaGetter = () => [
+  // {
+  //   component: 'Input',
+  //   fieldName: 'faultCode',
+  //   label: '鐭ヨ瘑缂栧彿'
+  // },
+  // {
+  //   component: 'Input',
+  //   fieldName: 'equName',
+  //   label: '璁惧鍚嶇О'
+  // },
+  // {
+  //   component: 'Input',
+  //   fieldName: 'assetNo',
+  //   label: '璧勪骇缂栧彿'
+  // },
+  // {
+  //   component: 'Select',
+  //   componentProps: {
+  //     options: getDictOptions(DictEnum.EIMS_EQU_PART)
+  //   },
+  //   fieldName: 'equPart',
+  //   label: '璁惧閮ㄤ綅'
+  // },
+  // {
+  //   component: 'Select',
+  //   componentProps: {
+  //     options: getDictOptions(DictEnum.REPAIR_FAULT_TYPE)
+  //   },
+  //   fieldName: 'faultType',
+  //   label: '鏁呴殰绫诲埆'
+  // },
   {
     component: 'Input',
-    fieldName: 'faultCode',
-    label: '鐭ヨ瘑缂栧彿'
-  },
-  {
-    component: 'Input',
-    fieldName: 'equName',
-    label: '璁惧鍚嶇О'
-  },
-  {
-    component: 'Input',
-    fieldName: 'assetNo',
-    label: '璧勪骇缂栧彿'
-  },
-  {
-    component: 'Select',
+    fieldName: 'params.searchValue',
     componentProps: {
-      options: getDictOptions(DictEnum.EIMS_EQU_PART)
+      placeholder: '璇疯緭鍏ヨ澶囧悕绉版垨璧勪骇缂栧彿'
     },
-    fieldName: 'equPart',
-    label: '璁惧閮ㄤ綅'
+    label: '鍏抽敭瀛�'
   },
-  {
-    component: 'Select',
-    componentProps: {
-      options: getDictOptions(DictEnum.REPAIR_FAULT_TYPE)
-    },
-    fieldName: 'faultType',
-    label: '鏁呴殰绫诲埆'
-  },
-  {
-    component: 'Select',
-    componentProps: {
-      options: getDictOptions(DictEnum.EIMS_FAULT_REASON)
-    },
-    fieldName: 'faultReason',
-    label: '鏁呴殰鍘熷洜'
-  },
+  // {
+  //   component: 'Select',
+  //   componentProps: {
+  //     options: getDictOptions(DictEnum.EIMS_FAULT_REASON)
+  //   },
+  //   fieldName: 'faultReason',
+  //   label: '鏁呴殰鍘熷洜'
+  // },
   {
     component: 'Input',
     fieldName: 'reqDesc',
@@ -60,24 +69,25 @@
 
 export const columns: VxeGridProps['columns'] = [
   { type: 'checkbox', width: 60, fixed: 'left' },
-  {
-    title: '鐭ヨ瘑缂栫爜',
-    field: 'faultCode',
-    minWidth: 200
-  },
+
   {
     title: '璁惧鍚嶇О',
     field: 'equName',
     minWidth: 140,
-    fixed: 'left',
-    slots: { default: 'equName' }
+    fixed: 'left'
   },
+
   {
     title: '璧勪骇缂栧彿',
     field: 'assetNo',
     sortable: true,
     minWidth: 140,
     fixed: 'left'
+  },
+  {
+    title: '鐭ヨ瘑缂栫爜',
+    field: 'faultCode',
+    minWidth: 200
   },
   {
     title: '璁惧绫诲瀷',
@@ -112,20 +122,20 @@
     },
     minWidth: 120
   },
-  {
-    title: '鏁呴殰鍘熷洜',
-    field: 'faultReason',
-    sortable: true,
-    slots: {
-      default: ({ row }) => {
-        if (row.faultReason === null || row.faultReason === '') {
-          return '';
-        }
-        return renderDict(row.faultReason, DictEnum.EIMS_FAULT_REASON);
-      }
-    },
-    minWidth: 120
-  },
+  // {
+  //   title: '鏁呴殰鍘熷洜',
+  //   field: 'faultReason',
+  //   sortable: true,
+  //   slots: {
+  //     default: ({ row }) => {
+  //       if (row.faultReason === null || row.faultReason === '') {
+  //         return '';
+  //       }
+  //       return renderDict(row.faultReason, DictEnum.EIMS_FAULT_REASON);
+  //     }
+  //   },
+  //   minWidth: 120
+  // },
   {
     title: '鎶ヤ慨鎻忚堪',
     field: 'reqDesc',
@@ -141,7 +151,7 @@
     fixed: 'right',
     slots: { default: 'action' },
     title: '鎿嶄綔',
-    width: 200
+    width: 80
   }
 ];
 
@@ -203,3 +213,31 @@
     label: '澶勭悊鎺柦'
   }
 ];
+
+
+export const descSchema: DescItem[] = [
+  {
+    field: 'equName',
+    label: '璁惧鍚嶇О'
+  },
+  {
+    field: 'assetNo',
+    label: '璧勪骇缂栧彿'
+  },
+  {
+    field: 'resCode',
+    label: '缁翠慨宸ュ崟'
+  },
+  {
+    field: 'faultCode',
+    label: '鐭ヨ瘑缂栫爜'
+  },
+  {
+    field: 'reqDesc',
+    label: '鎶ヤ慨鎻忚堪'
+  },
+  {
+    field: 'resHandle',
+    label: '澶勭悊鎺柦'
+  }
+];
diff --git a/eims-ui/apps/web-antd/src/views/eims/fault-know/fault-preview-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/fault-know/fault-preview-drawer.vue
new file mode 100644
index 0000000..dc9c046
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/fault-know/fault-preview-drawer.vue
@@ -0,0 +1,32 @@
+<script setup lang="ts">
+import type { Recordable } from '@vben/types';
+
+import { useVbenDrawer } from '@vben/common-ui';
+
+import { Description, useDescription } from '#/components/description';
+
+import { descSchema } from './data';
+
+const [BasicDrawer, drawerApi] = useVbenDrawer({
+  onOpenChange: handleOpenChange,
+});
+
+const [registerDescription, { setDescProps }] = useDescription({
+  column: 1,
+  schema: descSchema,
+});
+
+function handleOpenChange(open: boolean) {
+  if (!open) {
+    return null;
+  }
+  const { record } = drawerApi.getData() as { record: Recordable<any> };
+  setDescProps({ data: record }, true);
+}
+</script>
+
+<template>
+  <BasicDrawer :footer="false" class="w-[600px]" title="鏁呴殰鏄庣粏">
+    <Description @register="registerDescription" />
+  </BasicDrawer>
+</template>
diff --git a/eims-ui/apps/web-antd/src/views/eims/fault-know/index.vue b/eims-ui/apps/web-antd/src/views/eims/fault-know/index.vue
index 5d298b3..560b5a9 100644
--- a/eims-ui/apps/web-antd/src/views/eims/fault-know/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/fault-know/index.vue
@@ -2,7 +2,7 @@
 import type { Recordable } from '@vben/types';
 
 import { ref } from 'vue';
-import { useRouter } from 'vue-router';
+
 
 import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui';
 import { $t } from '@vben/locales';
@@ -17,6 +17,8 @@
 import { columns, querySchema } from './data';
 import EquTypeTree from './equ-type-tree.vue';
 import faultKnowDrawer from './fault-know-drawer.vue';
+import faultPreviewDrawer from './fault-preview-drawer.vue';
+import trialPreviewDrawer from '#/views/eims/equ-trial/trial-preview-drawer.vue';
 
 // 宸﹁竟閮ㄩ棬鐢�
 const selectDeptId = ref<string[]>([]);
@@ -101,6 +103,19 @@
 const [FaultKnowDrawer, faultKnowDrawerApi] = useVbenDrawer({
   connectedComponent: faultKnowDrawer
 });
+const [FaultPreviewDrawer, faultPreviewDrawerApi] = useVbenDrawer({
+  connectedComponent: faultPreviewDrawer
+});
+
+/**
+ * 棰勮
+ * @param record
+ */
+function handlePreview(record: Recordable<any>) {
+  faultPreviewDrawerApi.setData({ record });
+  faultPreviewDrawerApi.open();
+}
+
 
 function handleAdd() {
   faultKnowDrawerApi.setData({});
@@ -148,24 +163,24 @@
   <Page :auto-content-height="true">
     <div class="flex h-full gap-[8px]">
       <EquTypeTree v-model:select-dept-id="selectDeptId" class="w-[260px]" @reload="() => tableApi.reload()" @select="() => tableApi.reload()" />
-      <BasicTable class="flex-1 overflow-hidden" table-title="璁惧鍒楄〃">
+      <BasicTable class="flex-1 overflow-hidden" table-title="鏁呴殰鍒楄〃">
         <template #toolbar-tools>
           <Space>
-            <a-button v-access:code="['eims:faultKnow:export']" @click="handleDownloadExcel">
-              {{ $t('pages.common.export') }}
-            </a-button>
-            <a-button
-              :disabled="!vxeCheckboxChecked(tableApi)"
-              danger
-              type="primary"
-              v-access:code="['eims:faultKnow:remove']"
-              @click="handleMultiDelete"
-            >
-              {{ $t('pages.common.delete') }}
-            </a-button>
-            <a-button type="primary" v-access:code="['eims:faultKnow:add']" @click="handleAdd">
-              {{ $t('pages.common.add') }}
-            </a-button>
+<!--            <a-button v-access:code="['eims:faultKnow:export']" @click="handleDownloadExcel">-->
+<!--              {{ $t('pages.common.export') }}-->
+<!--            </a-button>-->
+<!--            <a-button-->
+<!--              :disabled="!vxeCheckboxChecked(tableApi)"-->
+<!--              danger-->
+<!--              type="primary"-->
+<!--              v-access:code="['eims:faultKnow:remove']"-->
+<!--              @click="handleMultiDelete"-->
+<!--            >-->
+<!--              {{ $t('pages.common.delete') }}-->
+<!--            </a-button>-->
+<!--            <a-button type="primary" v-access:code="['eims:faultKnow:add']" @click="handleAdd">-->
+<!--              {{ $t('pages.common.add') }}-->
+<!--            </a-button>-->
           </Space>
         </template>
 
@@ -177,18 +192,22 @@
 
         <template #action="{ row }">
           <Space>
-            <ghost-button v-access:code="['eims:faultKnow:edit']" @click.stop="handleEdit(row)">
-              {{ $t('pages.common.edit') }}
+            <ghost-button class="btn-success" v-access:code="['eims:faultKnow:list']" @click.stop="handlePreview(row)">
+              {{ $t('pages.common.preview') }}
             </ghost-button>
-            <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)">
-              <ghost-button danger v-access:code="['eims:faultKnow:remove']" @click.stop="">
-                {{ $t('pages.common.delete') }}
-              </ghost-button>
-            </Popconfirm>
+<!--            <ghost-button v-access:code="['eims:faultKnow:edit']" @click.stop="handleEdit(row)">-->
+<!--              {{ $t('pages.common.edit') }}-->
+<!--            </ghost-button>-->
+<!--            <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)">-->
+<!--              <ghost-button danger v-access:code="['eims:faultKnow:remove']" @click.stop="">-->
+<!--                {{ $t('pages.common.delete') }}-->
+<!--              </ghost-button>-->
+<!--            </Popconfirm>-->
           </Space>
         </template>
       </BasicTable>
     </div>
     <FaultKnowDrawer @reload="tableApi.query()" />
+    <FaultPreviewDrawer />
   </Page>
 </template>
diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx b/eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx
index 724a93a..8604727 100644
--- a/eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx
+++ b/eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx
@@ -8,10 +8,31 @@
 import { renderDict } from '#/utils/render';
 
 export const querySchema: FormSchemaGetter = () => [
+  // {
+  //   component: 'Input',
+  //   fieldName: 'equName',
+  //   label: '璁惧鍚嶇О'
+  // },
   {
     component: 'Input',
-    fieldName: 'equName',
-    label: '璁惧鍚嶇О'
+    fieldName: 'params.searchValue',
+    componentProps: {
+      placeholder: '璇疯緭鍏ユ爣棰樻垨璧勪骇缂栧彿'
+    },
+    label: '鍏抽敭瀛�'
+  },
+  {
+    component: 'RangePicker',
+    fieldName: 'planTime',
+    label: '淇濆吇鏃ユ湡'
+  },
+  {
+    component: 'Select',
+    componentProps: {
+      options: getDictOptions(DictEnum.MAINT_ORDER_STATUS)
+    },
+    fieldName: 'status',
+    label: '鐘舵��'
   },
   {
     component: 'Input',
@@ -50,14 +71,6 @@
     },
     fieldName: 'maintRule',
     label: '璁$畻瑙勫垯'
-  },
-  {
-    component: 'Select',
-    componentProps: {
-      options: getDictOptions(DictEnum.MAINT_ORDER_STATUS)
-    },
-    fieldName: 'status',
-    label: '鐘舵��'
   }
 ];
 
diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue b/eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue
index 2f1b154..b81e0ca 100644
--- a/eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue
@@ -33,7 +33,9 @@
   },
   collapsed: true,
   schema: querySchema(),
-  wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4'
+  wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
+  // 鏃ユ湡閫夋嫨鏍煎紡鍖�
+  fieldMappingTime: [['planTime', ['params[beginPlanTime]', 'params[endPlanTime]'], ['YYYY-MM-DD 00:00:00', 'YYYY-MM-DD 23:59:59']]]
 };
 
 const gridOptions: VxeGridProps = {
diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx b/eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx
index 973651d..99a7ee7 100644
--- a/eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx
+++ b/eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx
@@ -10,15 +10,23 @@
 import { renderDict } from '#/utils/render';
 
 export const querySchema: FormSchemaGetter = () => [
+  // {
+  //   component: 'Input',
+  //   fieldName: 'title',
+  //   label: '鏍囬'
+  // },
+  // {
+  //   component: 'Input',
+  //   fieldName: 'assetno',
+  //   label: '璧勪骇缂栧彿'
+  // },
   {
     component: 'Input',
-    fieldName: 'title',
-    label: '鏍囬'
-  },
-  {
-    component: 'Input',
-    fieldName: 'assetno',
-    label: '璧勪骇缂栧彿'
+    fieldName: 'params.searchValue',
+    componentProps: {
+      placeholder: '璇疯緭鍏ユ爣棰樻垨璧勪骇缂栧彿'
+    },
+    label: '鍏抽敭瀛�'
   },
   {
     component: 'RangePicker',
@@ -78,16 +86,16 @@
       }
     }
   },
-  {
-    title: '淇濆吇涓�',
-    field: 'byCount',
-    minWidth: 80,
-    slots: {
-      default: ({ row }) => {
-        return <Tag color="blue">{row.byCount}</Tag>;
-      }
-    }
-  },
+  // {
+  //   title: '淇濆吇涓�',
+  //   field: 'byCount',
+  //   minWidth: 80,
+  //   slots: {
+  //     default: ({ row }) => {
+  //       return <Tag color="blue">{row.byCount}</Tag>;
+  //     }
+  //   }
+  // },
   {
     title: '寰呴獙璇�',
     field: 'dyzCount',
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsFaultKnowController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsFaultKnowController.java
index 9fa2230..c9ce5ef 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsFaultKnowController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsFaultKnowController.java
@@ -1,11 +1,19 @@
 package org.dromara.eims.controller;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.eims.domain.bo.EimsRepairResBo;
+import org.dromara.eims.domain.vo.EimsEquVo;
+import org.dromara.eims.domain.vo.EimsRepairReqVo;
+import org.dromara.eims.domain.vo.EimsRepairResVo;
+import org.dromara.eims.service.IEimsEquService;
+import org.dromara.eims.service.IEimsRepairReqService;
+import org.dromara.eims.service.IEimsRepairResService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -35,6 +43,9 @@
 public class EimsFaultKnowController extends BaseController {
 
     private final IEimsFaultKnowService eimsFaultKnowService;
+    private final IEimsRepairResService repairResService;
+    private final IEimsRepairReqService repairReqService;
+    private final IEimsEquService equService;
 
     /**
      * 鏌ヨ鏁呴殰鐭ヨ瘑鍒楄〃
@@ -42,7 +53,54 @@
     @SaCheckPermission("eims:faultKnow:list")
     @GetMapping("/list")
     public TableDataInfo<EimsFaultKnowVo> list(EimsFaultKnowBo bo, PageQuery pageQuery) {
-        return eimsFaultKnowService.queryPageList(bo, pageQuery);
+
+//        return eimsFaultKnowService.queryPageList(bo, pageQuery);
+        return  comp(bo, pageQuery);
+    }
+
+    private TableDataInfo<EimsFaultKnowVo> comp(EimsFaultKnowBo bo,PageQuery pageQuery){
+        EimsRepairResBo b = new EimsRepairResBo();
+        PageQuery pQuery = new PageQuery();
+        pQuery.setPageNum(pageQuery.getPageNum());
+        pQuery.setPageSize(pageQuery.getPageSize());
+        b.setParams(bo.getParams());
+        b.setResHandle(bo.getResHandle());
+        b.setReqDesc(bo.getReqDesc());
+        TableDataInfo<EimsRepairResVo> tableDataInfo = repairResService.queryPageListCustom(b, pQuery);
+
+        return getEimsFaultKnowVoTableDataInfo(tableDataInfo);
+    }
+
+    private  TableDataInfo<EimsFaultKnowVo> getEimsFaultKnowVoTableDataInfo(TableDataInfo<EimsRepairResVo> tableDataInfo) {
+        TableDataInfo<EimsFaultKnowVo> resTableData =  new TableDataInfo<>();
+        resTableData.setCode(tableDataInfo.getCode());
+        resTableData.setMsg(tableDataInfo.getMsg());
+        resTableData.setTotal(tableDataInfo.getTotal());
+        List<EimsFaultKnowVo> rows= new ArrayList<>();
+        int size = tableDataInfo.getRows().size();
+        for (int i = 0; i < size; i++) {
+            EimsFaultKnowVo vo = new EimsFaultKnowVo();
+            EimsRepairResVo res = tableDataInfo.getRows().get(i);
+            vo.setFaultCode("GZZS"+ String.valueOf(res.getId()).substring(0,10));
+            vo.setFaultReason(res.getResReason());
+            vo.setResHandle(res.getResHandle());
+            EimsRepairReqVo reqVo = repairReqService.queryById(res.getReqId());
+            if(reqVo!=null){
+                vo.setReqDesc(reqVo.getReqDesc());
+                Long equId = reqVo.getEquId();
+                if(equId!=null){
+                    EimsEquVo equVo = equService.queryById(equId);
+                    if(equVo!=null){
+                        vo.setAssetNo(equVo.getAssetNo());
+                        vo.setEquId(equVo.getEquId());
+                    }
+
+                }
+            }
+            rows.add(vo);
+        }
+        resTableData.setRows(rows);
+        return resTableData;
     }
 
     /**
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java
index 89cb75b..345c4b1 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java
@@ -7,6 +7,7 @@
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import org.dromara.eims.domain.bo.EimsMaintStBo;
+import org.dromara.eims.domain.bo.EimsMultipleMaintStBo;
 import org.dromara.eims.domain.vo.EimsMaintStVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -91,6 +92,17 @@
     }
 
     /**
+     * 鎵归噺淇敼淇濆吇宸ュ崟姹囨��
+     */
+    @SaCheckPermission("eims:maintSt:edit")
+    @Log(title = "鎵归噺淇敼淇濆吇宸ュ崟姹囨��", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping("/batch")
+    public R<Void> editBatch(@Validated(EditGroup.class) @RequestBody EimsMultipleMaintStBo bo) {
+        return toAjax(eimsMaintStService.updateBatchByBo(bo));
+    }
+
+    /**
      * 鍒犻櫎淇濆吇宸ュ崟姹囨��
      *
      * @param ids 涓婚敭涓�
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java
index 16e4dd1..782e62a 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java
@@ -71,5 +71,11 @@
      */
     private String remark;
 
+    /**
+     * 鏌ヨ姹囨�讳笅瀛愬伐鍗曢渶瑕佹瀛楁
+     * equId + pian_time 鎷兼帴
+     */
+    private String maintCode;
+
 
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMultipleMaintStBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMultipleMaintStBo.java
new file mode 100644
index 0000000..be86fd9
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMultipleMaintStBo.java
@@ -0,0 +1,14 @@
+package org.dromara.eims.domain.bo;
+
+import lombok.Data;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+
+import java.util.List;
+
+/**
+ * 鎵归噺淇濆吇宸ュ崟姹囨�讳笟鍔″璞� eims_maint_st
+ */
+@Data
+public class EimsMultipleMaintStBo extends BaseEntity {
+    private List<EimsMaintStBo> multipleMaintStBoList;
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsRepairResBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsRepairResBo.java
index c800bf5..a14e201 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsRepairResBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsRepairResBo.java
@@ -119,6 +119,7 @@
     private  String reqCode;//鎶ヤ慨鍗曠紪鐮�
     private  String reqType;//鎶ヤ慨鍗曠被鍨�
     private  String assetNo;//璁惧璧勪骇缂栧彿
+    private  String reqDesc;//鏁呴殰鎻忚堪
 
 
     private Long equId;
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java
index d07b824..209980c 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java
@@ -129,6 +129,10 @@
      */
     private Integer unCheckCount;
     /**
+     * 寰呯‘璁ょ偣妫�璁板綍
+     */
+    private Integer dqrCount;
+    /**
      * 缁撴灉-姝e父鏁�
      */
     private Integer normalNum;
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java
index dd0525f..a088140 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java
@@ -2,6 +2,7 @@
 
 import org.dromara.common.core.domain.R;
 import org.dromara.eims.domain.bo.EimsMaintStBo;
+import org.dromara.eims.domain.bo.EimsMultipleMaintStBo;
 import org.dromara.eims.domain.vo.EimsMaintStVo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -57,6 +58,7 @@
      * @return 鏄惁淇敼鎴愬姛
      */
     Boolean updateByBo(EimsMaintStBo bo);
+    Boolean updateBatchByBo(EimsMultipleMaintStBo bo);
 
     /**
      * 鏍¢獙骞舵壒閲忓垹闄や繚鍏诲伐鍗曟眹鎬讳俊鎭�
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
index a9b17a7..8762224 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
@@ -249,13 +249,22 @@
 
     @Override
     public Boolean updateBatchByBo(InspectRecordBo bo) {
-//        LoginUser loginUser = LoginHelper.getLoginUser();
+        LoginUser loginUser = LoginHelper.getLoginUser();
         List<EimsInspectRecord> inspRecordList = MapstructUtils.convert(bo.getInspRecordList(), EimsInspectRecord.class);
         inspRecordList.forEach(item->{
-            // 鏇存柊涓哄凡鐐规
-            item.setStatus(DictConstants.EIMS_INSPECT_STATUS_DETAIL.Y);
+            // 鍓嶇浼犲叆鐘舵��
+            // item.setStatus(DictConstants.EIMS_INSPECT_STATUS_DETAIL.Y);
 //            item.setInspTime(new Date());
 //            item.setInspUser(loginUser.getUserId());
+            // 鐐规(0)-> 寰呯‘璁�(1)
+            if(item.getInspUser()==null && (item.getStatus()!=null && item.getStatus().equals("1"))){
+                item.setInspUser(loginUser.getUserId());
+            }
+            // 寰呯‘璁�(1)-> 瀹屾垚(2)
+            if(item.getVerifyUser()==null&& (item.getStatus()!=null && item.getStatus().equals("2"))){
+                item.setVerifyUser(loginUser.getUserId());
+            }
+
         });
         return baseMapper.updateBatchById(inspRecordList);
     }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
index e8e6f60..d59e63a 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
@@ -11,9 +11,12 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.eims.domain.EimsEqu;
 import org.dromara.eims.domain.EimsInspectRecord;
+import org.dromara.eims.domain.EimsMaintOrder;
 import org.dromara.eims.domain.vo.EimsInspectRecordVo;
+import org.dromara.eims.domain.vo.EimsMaintStVo;
 import org.dromara.eims.mapper.EimsEquMapper;
 import org.dromara.eims.mapper.EimsInspectRecordMapper;
 import org.springframework.stereotype.Service;
@@ -171,7 +174,7 @@
             List<EimsInspectRecordVo> recordList = recordMapper.selectVoList(recordLqw);
             // TODO 鏍规嵁瀛楀吀eims_inspect_status
             Map<String, Long> cMap = recordList.stream()
-                .filter(order -> List.of("0", "1").contains(order.getStatus()))
+                .filter(order -> List.of("0","1", "2").contains(order.getStatus()))
                 .collect(Collectors.groupingBy(EimsInspectRecordVo::getStatus, Collectors.counting()));
             // TODO 鏍规嵁瀛楀吀eims_inspect_result
             Map<String, Long> rMap = recordList.stream()
@@ -180,7 +183,8 @@
 
             stVo.setRecordCount(recordList.size());
             stVo.setUnCheckCount(cMap.getOrDefault("0", 0L).intValue());
-            stVo.setCheckCount(cMap.getOrDefault("1", 0L).intValue());
+            stVo.setDqrCount(cMap.getOrDefault("1", 0L).intValue());
+            stVo.setCheckCount(cMap.getOrDefault("2", 0L).intValue());
 
             stVo.setNormalNum(rMap.getOrDefault("1", 0L).intValue());
             stVo.setAbNormalNum(rMap.getOrDefault("2", 0L).intValue());
@@ -294,6 +298,30 @@
 //                if(update.getVerifyTime()==null) update.setVerifyTime(new Date());
 //            }
 //        }
+
+
+        //鐐规姹囨�诲畬鎴愰渶鍚屾鏇存柊st涓嬪瓙宸ュ崟
+
+            EimsInspectStVo st = baseMapper.selectVoById(bo.getId());
+
+            Long equId =  st.getEquId();
+            String planTime = DateUtils.dateTime(st.getPlanTime());
+            LambdaQueryWrapper<EimsInspectRecord> wrapper = Wrappers.lambdaQuery();
+            wrapper.eq(EimsInspectRecord::getEquId,equId);
+            wrapper.eq(EimsInspectRecord::getPlanTime,planTime);
+            List<EimsInspectRecord> recordList = recordMapper.selectList(wrapper);
+            // st涓嬪瓙宸ュ崟鎵�鏈夌姸鎬佽缃负3-宸插畬鎴�
+            recordList.forEach(order -> {
+                order.setStatus(bo.getStatus());
+                if(order.getStatus().equals("1")){
+                    order.setInspUser(LoginHelper.getUserId());
+                }else if(order.getStatus().equals("2")){
+                    order.setVerifyUser(LoginHelper.getUserId());
+                }
+            });
+            recordMapper.updateBatchById(recordList);
+
+
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java
index c85145d..22fba86 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java
@@ -19,6 +19,7 @@
 import lombok.RequiredArgsConstructor;
 
 import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.eims.domain.EimsEquStatu;
 import org.dromara.eims.domain.EimsMaintPlan;
 import org.dromara.eims.domain.EimsSpareInout;
 import org.dromara.eims.domain.bo.EimsSpareBo;
@@ -116,6 +117,11 @@
         qw.like(StringUtils.isNotBlank(bo.getMaintCode()),"mo.maint_code", bo.getMaintCode());
         qw.like(bo.getEquName() != null, "equ.equ_name", bo.getEquName());
         qw.like(bo.getEquId() != null, "equ.equ_id", bo.getEquId());
+        if (params.get("searchValue") != null && StringUtils.isNotBlank(params.get("searchValue").toString())) {
+            qw.and( wq ->wq.like("equ.equ_name", params.get("searchValue"))
+                .or().like("equ.asset_no", params.get("searchValue"))
+            );
+        }
         qw.eq(StringUtils.isNotBlank(bo.getMaintType()), "mo.maint_type", bo.getMaintType());
         qw.eq(StringUtils.isNotBlank(bo.getMaintCycleUnit()), "mo.maint_cycle_unit", bo.getMaintCycleUnit());
         qw.eq(StringUtils.isNotBlank(bo.getMaintRule()), "mo.maint_rule", bo.getMaintRule());
@@ -186,7 +192,7 @@
         lqw.eq(bo.getMaintDept() != null, EimsMaintOrder::getMaintDept, bo.getMaintDept());
         lqw.eq(StringUtils.isNotBlank(bo.getMaintCode()), EimsMaintOrder::getMaintCode, bo.getMaintCode());
         lqw.eq(StringUtils.isNotBlank(bo.getStatus()), EimsMaintOrder::getStatus, bo.getStatus());
-        lqw.eq(bo.getPlanTime() != null, EimsMaintOrder::getPlanTime, bo.getPlanTime());
+        lqw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,EimsMaintOrder::getPlanTime,params.get("beginPlanTime"), params.get("endPlanTime"));
         lqw.eq(bo.getPlanId() != null, EimsMaintOrder::getPlanId, bo.getPlanId());
         // 鎸夊垱寤烘椂闂村�掑簭
         lqw.orderByDesc(EimsMaintOrder::getCreateTime);
@@ -306,9 +312,18 @@
         LoginUser loginUser = LoginHelper.getLoginUser();
         List<EimsMaintOrder> list = MapstructUtils.convert(bo.getMaintOrderList(),  EimsMaintOrder.class);
         list.forEach(e -> {
-            e.setStatus(DictConstants.MAINT_ORDER_STATUS_DETAIL.DAIYANZHENG);
+            // 鐘舵�佺敱鍓嶇浼犺繃鏉�
+            // e.setStatus(DictConstants.MAINT_ORDER_STATUS_DETAIL.DAIYANZHENG);
             e.setEndTime(new Date());
-            e.setMaintUser(loginUser.getUserId());
+            // 淇濆吇(1)-> 寰呴獙璇�(2)
+            if(e.getMaintUser()==null  && (e.getStatus()!=null && e.getStatus().equals("2"))){
+                e.setMaintUser(loginUser.getUserId());
+            }
+            //  寰呯‘璁�(2)-> 瀹屾垚(3)
+           if(e.getVerifyUser()==null  && (e.getStatus()!=null && e.getStatus().equals("3"))){
+               e.setVerifyUser(loginUser.getUserId());
+           }
+
             e.setUpdateTime(new Date());
         });
         bo.getMaintOrderList().forEach(item -> {
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java
index 3ba819c..aaf5f73 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java
@@ -4,6 +4,7 @@
 import lombok.SneakyThrows;
 import org.dromara.common.core.constant.DictConstants;
 import org.dromara.common.core.domain.R;
+import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -12,10 +13,12 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.eims.domain.EimsEqu;
 import org.dromara.eims.domain.EimsMaintOrder;
 import org.dromara.eims.domain.EimsMaintSt;
 import org.dromara.eims.domain.bo.EimsMaintStBo;
+import org.dromara.eims.domain.bo.EimsMultipleMaintStBo;
 import org.dromara.eims.domain.vo.EimsMaintOrderVo;
 import org.dromara.eims.domain.vo.EimsMaintStVo;
 import org.dromara.eims.mapper.EimsEquMapper;
@@ -79,13 +82,13 @@
             List<EimsMaintOrderVo> orderList = orderMapper.selectVoList(orderLqw);
             // TODO 鏍规嵁瀛楀吀maint_order_status
             Map<String, Long> cMap = orderList.stream()
-                .filter(order -> List.of("0", "1", "2", "3").contains(order.getStatus()))
+                .filter(order -> List.of("0", "1", "2").contains(order.getStatus()))
                 .collect(Collectors.groupingBy(EimsMaintOrderVo::getStatus, Collectors.counting()));
             stVo.setOrderCount(orderList.size());
             stVo.setDbyCount(cMap.getOrDefault("0", 0L).intValue());
-            stVo.setByCount(cMap.getOrDefault("1", 0L).intValue());
-            stVo.setDyzCount(cMap.getOrDefault("2", 0L).intValue());
-            stVo.setWcCount(cMap.getOrDefault("3", 0L).intValue());
+            stVo.setDyzCount(cMap.getOrDefault("1", 0L).intValue());
+            stVo.setWcCount(cMap.getOrDefault("2", 0L).intValue());
+
 
 
     }
@@ -123,13 +126,12 @@
             List<EimsMaintOrderVo> orderList = orderMapper.selectVoList(orderLqw);
             // TODO 鏍规嵁瀛楀吀maint_order_status
             Map<String, Long> cMap = orderList.stream()
-                .filter(order -> List.of("0", "1", "2", "3").contains(order.getStatus()))
+                .filter(order -> List.of("0", "1", "2").contains(order.getStatus()))
                 .collect(Collectors.groupingBy(EimsMaintOrderVo::getStatus, Collectors.counting()));
             stVo.setOrderCount(orderList.size());
             stVo.setDbyCount(cMap.getOrDefault("0", 0L).intValue());
-            stVo.setByCount(cMap.getOrDefault("1", 0L).intValue());
-            stVo.setDyzCount(cMap.getOrDefault("2", 0L).intValue());
-            stVo.setWcCount(cMap.getOrDefault("3", 0L).intValue());
+            stVo.setDyzCount(cMap.getOrDefault("1", 0L).intValue());
+            stVo.setWcCount(cMap.getOrDefault("2", 0L).intValue());
 
         }
 
@@ -203,22 +205,78 @@
      * @return 鏄惁淇敼鎴愬姛
      */
     @Override
+    @Transactional
     public Boolean updateByBo(EimsMaintStBo bo) {
         EimsMaintSt update = MapstructUtils.convert(bo, EimsMaintSt.class);
 
-        if(bo.getVerifyUser()!=null){
-            EimsMaintSt eimsMaintSt = baseMapper.selectById(bo.getId());
-            String status = eimsMaintSt.getStatus();
-            if(status==null  || status.equals(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.N)){
-                if(update.getVerifyTime()==null) update.setStatus(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.Y);
-                if(update.getVerifyTime()==null) update.setVerifyTime(new Date());
-            }
-        }
+//        if(bo.getVerifyUser()!=null){
+//            EimsMaintSt eimsMaintSt = baseMapper.selectById(bo.getId());
+//            String status = eimsMaintSt.getStatus();
+//            if(status==null  || status.equals(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.N)){
+//                if(update.getVerifyTime()==null) update.setStatus(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.Y);
+//                if(update.getVerifyTime()==null) update.setVerifyTime(new Date());
+//            }
+//        }
+
+        if(update.getVerifyTime()==null) update.setVerifyTime(new Date());
+        //宸ュ崟姹囨�诲畬鎴愰渶鍚屾鏇存柊st涓嬪瓙宸ュ崟
+
+            EimsMaintStVo st = baseMapper.selectVoById(bo.getId());
+
+            Long equId =  st.getEquId();
+            LambdaQueryWrapper<EimsMaintOrder> wrapper = Wrappers.lambdaQuery();
+            wrapper.eq(EimsMaintOrder::getEquId,equId);
+            wrapper.eq(EimsMaintOrder::getPlanTime,st.getPlanTime());
+            List<EimsMaintOrder> eimsMaintOrderList = orderMapper.selectList(wrapper);
+            // st涓嬪瓙宸ュ崟鎵�鏈夌姸鎬佽缃负3-宸插畬鎴�
+            eimsMaintOrderList.forEach(order -> {
+                order.setStatus(bo.getStatus());
+                if(order.getStatus().equals("1")){
+                    order.setMaintUser(LoginHelper.getUserId());
+                }else if(order.getStatus().equals("2")){
+                    order.setVerifyUser(LoginHelper.getUserId());
+                }
+            });
+            orderMapper.updateBatchById(eimsMaintOrderList);
+
+
+
+
 
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateBatchByBo(EimsMultipleMaintStBo bo) {
+        List<EimsMaintStBo> maintStBoList = bo.getMultipleMaintStBoList();
+        if(maintStBoList==null || maintStBoList.isEmpty())return  true;
+        List<EimsMaintSt> maintStList = MapstructUtils.convert(maintStBoList, EimsMaintSt.class);
+        baseMapper.updateBatchById(maintStList);
+        // 鏇存柊姹囨�讳笅瀛愬伐鍗�
+        List<String> maintCodeList = maintStBoList.stream()
+            .map(EimsMaintStBo::getMaintCode)
+            .toList();
+
+        for (int i = 0; i < maintCodeList.size(); i++) {
+            String maintCode = maintCodeList.get(i);
+            String[] split = maintCode.split("_");
+            LambdaQueryWrapper<EimsMaintOrder> wrapper = Wrappers.lambdaQuery();
+            wrapper.eq(EimsMaintOrder::getEquId,split[0]);
+            wrapper.eq(EimsMaintOrder::getPlanTime,split[1]);
+            List<EimsMaintOrder> eimsMaintOrderList = orderMapper.selectList(wrapper);
+            // st涓嬪瓙宸ュ崟鎵�鏈夌姸鎬佽缃负3-宸插畬鎴�
+            eimsMaintOrderList.forEach(order -> {
+                order.setStatus("2");
+                order.setVerifyUser(LoginHelper.getUserId());
+            });
+            orderMapper.updateBatchById(eimsMaintOrderList);
+        }
+
+        return true;
+    }
+
     /**
      * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
      */
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java
index 2c1ec00..632ef5b 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java
@@ -347,7 +347,6 @@
         qw.eq(bo.getReqUser() != null, "res.req_user", bo.getReqUser());
         qw.eq(bo.getAssetNo() != null, "equ.asset_no", bo.getAssetNo());
         qw.eq(bo.getEquId() != null, "req.equ_id", bo.getEquId());
-
         qw.between(params.get("beginReqTime") != null && params.get("endReqTime") != null,
             "req.req_time", params.get("beginReqTime"), params.get("endReqTime"));
 
@@ -362,6 +361,15 @@
             );
         }
 
+        /**
+         * *******************
+         */
+        qw.like(StringUtils.isNotBlank(bo.getReqDesc()), "req.req_desc", bo.getReqDesc());
+        qw.like(StringUtils.isNotBlank(bo.getResHandle()), "res.res_handle", bo.getResHandle());
+        /**
+         * *******************
+         */
+
         qw.eq(StringUtils.isNotBlank(bo.getStatus()), "res.status", bo.getStatus());
         String s = params.get("status") == null ? "" : params.get("status").toString();
         String[] status = s.split(",");

--
Gitblit v1.9.3