From 7a6dc6d28d36e4c3558391bac52d188d5075543f Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期二, 22 四月 2025 16:27:27 +0800
Subject: [PATCH] 1.完成移动端点检汇总和点检明细

---
 eims-ui-mobile/src/service/maint.d.ts                                                                    |   44 +++++
 eims-ui/apps/web-antd/src/views/eims/spare-inoutdt/index.vue                                             |   11 +
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java         |    2 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java     |   39 +++-
 eims-ui-mobile/src/service/inspect.ts                                                                    |   15 +
 eims-ui-mobile/src/service/maint.ts                                                                      |    9 +
 eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx                                                    |   19 ++
 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml                        |    2 
 eims-ui-mobile/src/pages/inspect/insp-st.vue                                                             |   21 ++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java                 |    5 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/InspectRecordBo.java                 |   13 +
 eims-ui-mobile/src/pages/maint/maint-st.vue                                                              |  178 ++++++++++++++++++++++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java |   17 ++
 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml                    |    2 
 eims-ui-mobile/src/utils/http.ts                                                                         |    2 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java            |    1 
 eims-ui-mobile/src/pages.json                                                                            |    8 +
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java                      |    4 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java    |   10 +
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java                 |    7 
 eims-ui-mobile/src/pages/home/index.vue                                                                  |   10 
 eims-ui-mobile/src/pages/inspect/insp-record.vue                                                         |   42 ++++
 eims-ui-mobile/src/types/uni-pages.d.ts                                                                  |    1 
 eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue                                                   |   13 
 24 files changed, 436 insertions(+), 39 deletions(-)

diff --git a/eims-ui-mobile/src/pages.json b/eims-ui-mobile/src/pages.json
index 5cfa519..df35397 100644
--- a/eims-ui-mobile/src/pages.json
+++ b/eims-ui-mobile/src/pages.json
@@ -114,6 +114,14 @@
       }
     },
     {
+      "path": "pages/maint/maint-st",
+      "type": "page",
+      "layout": "default",
+      "style": {
+        "navigationBarTitleText": "淇濆吇姹囨��"
+      }
+    },
+    {
       "path": "pages/my/index",
       "type": "page",
       "layout": "tabbar",
diff --git a/eims-ui-mobile/src/pages/home/index.vue b/eims-ui-mobile/src/pages/home/index.vue
index bd131e7..3351c06 100644
--- a/eims-ui-mobile/src/pages/home/index.vue
+++ b/eims-ui-mobile/src/pages/home/index.vue
@@ -157,15 +157,15 @@
   }, */
   {
     id: 1,
-    name: '鐐规姒傝',
-    icon: '/static/menu/menu1.png',
+    name: '鐐规姹囨��',
+    icon: '/static/menu/menu2.png',
     path: 'pages/inspect/insp-st',
   },
   {
     id: 2,
-    name: '鐐规姹囨��',
-    icon: '/static/menu/menu2.png',
-    path: 'pages/inspect/insp-st',
+    name: '淇濆吇姹囨��',
+    icon: '/static/menu/menu1.png',
+    path: 'pages/maint/maint-st',
   },
   {
     id: 3,
diff --git a/eims-ui-mobile/src/pages/inspect/insp-record.vue b/eims-ui-mobile/src/pages/inspect/insp-record.vue
index f176fda..f0b128d 100644
--- a/eims-ui-mobile/src/pages/inspect/insp-record.vue
+++ b/eims-ui-mobile/src/pages/inspect/insp-record.vue
@@ -109,6 +109,18 @@
           </view>
         </wd-collapse-item>
       </wd-collapse>
+      <view class="w-full h-[1rpx] bg-base"></view>
+      <wd-textarea
+        label="鐗硅浜嬮」"
+        label-width="200rpx"
+        type="textarea"
+        v-model="inspSt.specialNote"
+        auto-height
+        :maxlength="200"
+        show-word-limit
+        placeholder="璇疯緭鍏ョ壒璁颁簨椤�"
+        clearable
+      />
     </view>
   </z-paging>
 </template>
@@ -116,7 +128,7 @@
 <script setup lang="ts">
 import { ref } from 'vue'
 import { useUserStore, useAccessStore, useSystemConfigStore } from '@/store'
-import { getInspStRecordList, updateInspRecord, updateInspRecordBatch } from '@/service/inspect'
+import { getInspStRecordList, updateInspectSt, updateInspRecordBatch } from '@/service/inspect'
 import { useToast, useMessage } from 'wot-design-uni'
 import type { CollapseInstance } from 'wot-design-uni/components/wd-collapse/types'
 const message = useMessage()
@@ -134,10 +146,14 @@
 }
 
 interface InspSt {
+  id: string
   inspCode: string
   equName: string
   assetNo: string
   planTimeStr?: string
+  status: string
+  inspUser: number | string
+  specialNote: string
 }
 
 const dataChange = ref(false)
@@ -148,10 +164,14 @@
 
 // 鐐规姹囨�绘暟鎹�(涓婁釜椤甸潰浼犲��)
 const inspSt = reactive<InspSt>({
+  id: '',
   inspCode: '',
   equName: '',
   assetNo: '',
   planTimeStr: '',
+  status: '',
+  inspUser: '',
+  specialNote: '',
 })
 
 const paging = ref(null)
@@ -180,7 +200,7 @@
 }
 
 function inspResultClick(item: any) {
-  // userStore?.userInfo?.realName
+  // userStore?.userInfo?.userId
 }
 
 const goBack = () => {
@@ -191,7 +211,7 @@
 }
 
 const toggleCollapse = () => {
-  isAllExpanded.value = !isAllExpanded.value  
+  isAllExpanded.value = !isAllExpanded.value
   collapseRef.value.toggleAll(isAllExpanded.value)
 }
 
@@ -218,9 +238,22 @@
   const params = {
     inspRecordList: dataList.value,
   }
+  // 鏇存柊鐐规璁板綍
   updateInspRecordBatch(params)
     .then((res: any) => {
+      updateInspSt(resolve)
+    })
+    .catch((res) => {
+      console.error(res)
+    })
+}
+function updateInspSt(resolve: any) {
+  // 鏇存柊鐐规姹囨��
+  inspSt.status = '1'
+  updateInspectSt(inspSt)
+    .then((res: any) => {
       paging.value.reload()
+      uni.$emit('insp-st-refresh')
       resolve(true)
     })
     .catch((res) => {
@@ -244,10 +277,13 @@
   { deep: true },
 )
 onLoad((options) => {
+  inspSt.id = options.id
   inspSt.inspCode = options.inspCode
   inspSt.equName = options.equName
   inspSt.assetNo = options.assetNo
   inspSt.planTimeStr = options.planTimeStr
+  inspSt.specialNote = options?.specialNote
+  inspSt.inspUser = userStore?.userInfo?.userId
 })
 
 const dataCount = computed(() => dataList.value.length)
diff --git a/eims-ui-mobile/src/pages/inspect/insp-st.vue b/eims-ui-mobile/src/pages/inspect/insp-st.vue
index d380724..2499379 100644
--- a/eims-ui-mobile/src/pages/inspect/insp-st.vue
+++ b/eims-ui-mobile/src/pages/inspect/insp-st.vue
@@ -28,7 +28,11 @@
             </view>
 
             <view class="flex items-center">
-              <text class="text-color-gray text-mini">{{ item.planTimeStr }}</text>
+              <text class="text-color-gray text-mini">
+                {{
+                  viewMode === 'Day' ? item.planTimeStr : item?.planTimeStr?.substring(0, 7) || ''
+                }}
+              </text>
             </view>
           </view>
         </template>
@@ -69,6 +73,7 @@
 <script setup lang="ts">
 import { ref } from 'vue'
 import { getInspStList } from '@/service/inspect'
+import { onShow } from '@dcloudio/uni-app'
 
 const viewMode = ref<string>('Day')
 const equName = ref<string>('鎵�鏈夎澶�')
@@ -79,7 +84,7 @@
 ])
 const equList = ref<Record<string, any>[]>([{ label: '鎵�鏈夎澶�', value: '鎵�鏈夎澶�' }])
 function handleViewMode({ value }) {
-  console.log(value)
+  reloadData()
 }
 function handleEquName({ value }) {
   console.log(value)
@@ -91,10 +96,9 @@
 const queryList = (pageNum?: number, pageSize?: number) => {
   // 杩欓噷鐨刾ageNo鍜宲ageSize浼氳嚜鍔ㄨ绠楀ソ锛岀洿鎺ヤ紶缁欐湇鍔″櫒鍗冲彲
   // 杩欓噷鐨勮姹傚彧鏄紨绀猴紝璇锋浛鎹㈡垚鑷繁鐨勯」鐩殑缃戠粶璇锋眰锛屽苟鍦ㄧ綉缁滆姹傚洖璋冧腑閫氳繃paging.value.complete(璇锋眰鍥炴潵鐨勬暟缁�)灏嗚姹傜粨鏋滀紶缁檢-paging
-  getInspStList({ pageNum, pageSize })
+  getInspStList({ pageNum, pageSize, viewMode: viewMode.value })
     .then((res: any) => {
       // 璇峰嬁鍦ㄧ綉缁滆姹傚洖璋冧腑缁檇ataList璧嬪�硷紒锛佸彧闇�瑕佽皟鐢╟omplete灏卞彲浠ヤ簡
-      console.log(res)
       paging.value.complete(res.rows)
     })
     .catch((res) => {
@@ -108,12 +112,19 @@
 function itemClick(item) {
   const inspCode = `${item.equId}_${item.planTime}_${viewMode.value}`
   uni.navigateTo({
-    url: `/pages/inspect/insp-record?inspCode=${inspCode}&equName=${item.equName}&assetNo=${item.assetNo}&planTimeStr=${item.planTimeStr}`,
+    url: `/pages/inspect/insp-record?id=${item.id}&inspCode=${inspCode}&specialNote=${item.specialNote ?? ''}&equName=${item.equName ?? ''}&assetNo=${item.assetNo ?? ''}&planTimeStr=${item.planTimeStr ?? ''}`,
   })
 }
 
+function reloadData() {
+  paging.value.reload()
+}
 onLoad(() => {
   queryList()
+  uni.$on('insp-st-refresh', reloadData)
+})
+onUnload(() => {
+  uni.$off('insp-st-refres', reloadData)
 })
 </script>
 
diff --git a/eims-ui-mobile/src/pages/maint/maint-st.vue b/eims-ui-mobile/src/pages/maint/maint-st.vue
new file mode 100644
index 0000000..4104498
--- /dev/null
+++ b/eims-ui-mobile/src/pages/maint/maint-st.vue
@@ -0,0 +1,178 @@
+<route lang="json5" type="page">
+{
+  layout: 'default',
+  style: {
+    navigationBarTitleText: '淇濆吇姹囨��',
+  },
+}
+</route>
+
+<template>
+  <z-paging ref="paging" v-model="dataList" @query="queryList" show-refresher-update-time>
+    <template #top>
+      <wd-drop-menu>
+        <wd-drop-menu-item v-model="equName" :options="equList" @change="handleEquName" />
+        <wd-drop-menu-item v-model="status" :options="statusList" @change="handleStatus" />
+      </wd-drop-menu>
+      <wd-divider></wd-divider>
+    </template>
+    <view class="bg-base">
+      <view class="w-full h-[24rpx]"></view>
+      <wd-card type="rectangle" v-for="(item, index) in dataList" :key="item.id">
+        <template #title>
+          <view class="flex justify-between">
+            <view class="flex items-center menu-title-box">
+              <view class="menu-indicator"></view>
+              <view class="ml-1 text-sm align-center">{{ item.equName }}</view>
+              <view class="text-color-gray ml-2 text-mini">{{ item.assetNo }}</view>
+            </view>
+
+            <view class="flex items-center">
+              <text class="text-color-gray text-mini">
+                {{ status === 'Day' ? item?.planTimeStr : item?.planTimeStr?.substring(0, 7) || '' }}
+              </text>
+            </view>
+          </view>
+        </template>
+        <view class="flex h-[100rpx]" items-center>
+          <image class="slot-img text-center" src="/static/images/camera.png" />
+          <view class="flex-1">
+            <view class="text-color-gray text-xs mt-1 flex">
+              <text class="mr-3">鐐规鎬绘暟: {{ item.recordCount }}</text>
+              |
+              <text class="mx-3">宸茬偣妫�: {{ item.checkCount }}</text>
+              |
+              <text class="ml-3">鏈偣妫�: {{ item.unCheckCount }}</text>
+            </view>
+            <view class="text-color-gray text-xs mt-2 flex">
+              <text class="mr-3">姝e父: {{ item.normalNum }}</text>
+              |
+              <text class="mx-3">寮傚父: {{ item.abNormalNum }}</text>
+            </view>
+            <view class="text-color-gray text-xs mt-2 flex">
+              <text>鐘舵�侊細</text>
+              <template v-if="item.recordCount === item.checkCount">
+                <wd-icon class="icon-color-success" name="check-outline" size="40rpx"></wd-icon>
+                <text class="ml-1">宸插畬鎴�</text>
+              </template>
+              <template v-else>
+                <wd-icon class="icon-color-base" name="detection" size="40rpx"></wd-icon>
+                <text class="ml-1">杩涜涓�</text>
+              </template>
+            </view>
+          </view>
+          <wd-button size="small" icon="edit-outline" @click.stop="itemClick(item)">鏄庣粏</wd-button>
+        </view>
+      </wd-card>
+    </view>
+  </z-paging>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+import { getMaintStList } from '@/service/maint'
+
+interface QueryParams {
+  pageNum: number
+  pageSize: number
+  equName?: string
+  status?: string
+}
+
+const status = ref<string>('-1')
+const equName = ref<string>('-1')
+
+const statusList = ref<Record<string, any>[]>([
+  { label: '鍏ㄩ儴', value: '-1' },
+  { label: '寰呬繚鍏�', value: '0' },
+  { label: '淇濆吇涓�', value: '1' },
+  { label: '寰呴獙璇�', value: '2' },
+  { label: '宸插畬鎴�', value: '3' },
+])
+const equList = ref<Record<string, any>[]>([{ label: '鎵�鏈夎澶�', value: '-1' }])
+function handleStatus({ value }) {}
+function handleEquName({ value }) {
+  console.log(value)
+}
+
+const paging = ref(null)
+const dataList = ref([])
+
+const queryList = (pageNum?: number, pageSize?: number) => {
+  // 杩欓噷鐨刾ageNo鍜宲ageSize浼氳嚜鍔ㄨ绠楀ソ锛岀洿鎺ヤ紶缁欐湇鍔″櫒鍗冲彲
+  // 杩欓噷鐨勮姹傚彧鏄紨绀猴紝璇锋浛鎹㈡垚鑷繁鐨勯」鐩殑缃戠粶璇锋眰锛屽苟鍦ㄧ綉缁滆姹傚洖璋冧腑閫氳繃paging.value.complete(璇锋眰鍥炴潵鐨勬暟缁�)灏嗚姹傜粨鏋滀紶缁檢-paging
+  const params: QueryParams = {
+    pageNum,
+    pageSize,
+    equName: equName.value,
+    status: status.value,
+  }
+  if (equName.value === '-1') {
+    delete params.equName
+  }
+  if (status.value === '-1') {
+    delete params.status
+  }
+
+  getMaintStList(params)
+    .then((res: any) => {
+      // 璇峰嬁鍦ㄧ綉缁滆姹傚洖璋冧腑缁檇ataList璧嬪�硷紒锛佸彧闇�瑕佽皟鐢╟omplete灏卞彲浠ヤ簡
+      paging.value.complete(res.rows)
+    })
+    .catch((res) => {
+      // 濡傛灉璇锋眰澶辫触鍐檖aging.value.complete(false)锛屼細鑷姩灞曠ず閿欒椤甸潰
+      // 娉ㄦ剰锛屾瘡娆¢兘闇�瑕佸湪catch涓啓杩欏彞璇濆緢楹荤儲锛寊-paging鎻愪緵浜嗘柟妗堝彲浠ュ叏灞�缁熶竴澶勭悊
+      // 鍦ㄥ簳灞傜殑缃戠粶璇锋眰鎶涘嚭寮傚父鏃讹紝鍐檜ni.$emit('z-paging-error-emit');鍗冲彲
+      paging.value.complete(false)
+    })
+}
+
+function itemClick(item) {
+  const inspCode = `${item.equId}_${item.planTime}_${status.value}`
+  uni.navigateTo({
+    url: `/pages/inspect/insp-record?id=${item.id}&inspCode=${inspCode}&specialNote=${item.specialNote ?? ''}&equName=${item.equName ?? ''}&assetNo=${item.assetNo ?? ''}&planTimeStr=${item.planTimeStr ?? ''}`,
+  })
+}
+
+function reloadData() {
+  paging.value.reload()
+}
+onLoad(() => {
+  queryList()
+  uni.$on('maint-st-refresh', reloadData)
+})
+onUnload(() => {
+  uni.$off('maint-st-refres', reloadData)
+})
+</script>
+
+<style scoped lang="scss">
+.menu-title-box {
+}
+
+.slot-img {
+  width: 72rpx;
+  height: 72rpx;
+  margin-right: 24rpx;
+}
+.statu-img {
+  width: 60rpx;
+  height: 40rpx;
+}
+.text-mini {
+  font-size: 22rpx;
+}
+
+.menu-indicator {
+  width: 6rpx;
+  height: 26rpx;
+  border-radius: 10rpx;
+  background-color: $uni-color-primary;
+}
+:deep(.wd-card__footer) {
+  padding: 10rpx !important;
+}
+:deep(.wd-card__title-content) {
+  padding: 24rpx 0 !important;
+}
+</style>
diff --git a/eims-ui-mobile/src/service/inspect.ts b/eims-ui-mobile/src/service/inspect.ts
index 55da5d3..adf4fa6 100644
--- a/eims-ui-mobile/src/service/inspect.ts
+++ b/eims-ui-mobile/src/service/inspect.ts
@@ -5,7 +5,6 @@
  * 鐐规姹囨�诲垪琛�
  */
 export const getInspStList = (params: any) => {
-  params.viewMode = 'Day'
   return http.get<InspectStVO[]>('/eims/inspectSt/list', params)
 }
 
@@ -21,9 +20,21 @@
  * @param data
  */
 export const updateInspRecord = (data: any) => {
-  return http.post<void>('/eims/inspRecord', data)
+  return http.put<void>('/eims/inspRecord', data)
 }
 
+/**
+ * 鎵归噺鏇存柊鐐规璁板綍
+ * @param data
+ */
 export const updateInspRecordBatch = (data: any) => {
   return http.put<void>('/eims/inspRecord/editBatch', data)
 }
+
+/**
+ * 鏇存柊鐐规姹囨��
+ * @param data
+ */
+export const updateInspectSt = (data: any) => {
+  return http.put<void>('/eims/inspectSt', data)
+}
diff --git a/eims-ui-mobile/src/service/maint.d.ts b/eims-ui-mobile/src/service/maint.d.ts
new file mode 100644
index 0000000..92e3994
--- /dev/null
+++ b/eims-ui-mobile/src/service/maint.d.ts
@@ -0,0 +1,44 @@
+export interface MaintStVO {
+  /**
+   *
+   */
+  id: number | string;
+
+  /**
+   *
+   */
+  title: string;
+
+  /**
+   *
+   */
+  equId: number | string;
+  status: string;
+
+  /**
+   *
+   */
+  planTime: string;
+
+  /**
+   * 淇濆吇浜�
+   */
+  maintUser: number;
+
+  /**
+   * 楠岃瘉浜�
+   */
+  verifyUser: number;
+  verifyTime: string;
+
+  /**
+   * 鐗硅浜嬮」
+   */
+  specialNote: string;
+
+  /**
+   * 澶囨敞
+   */
+  remark: string;
+}
+
diff --git a/eims-ui-mobile/src/service/maint.ts b/eims-ui-mobile/src/service/maint.ts
new file mode 100644
index 0000000..42197c2
--- /dev/null
+++ b/eims-ui-mobile/src/service/maint.ts
@@ -0,0 +1,9 @@
+import { http } from '@/utils/http'
+import type { MaintStVO } from './maint.d'
+
+/**
+ * 淇濆吇姹囨�诲垪琛�
+ */
+export const getMaintStList = (params: any) => {
+  return http.get<MaintStVO[]>('/eims/maintSt/list', params)
+}
diff --git a/eims-ui-mobile/src/types/uni-pages.d.ts b/eims-ui-mobile/src/types/uni-pages.d.ts
index 7b066d0..fefb929 100644
--- a/eims-ui-mobile/src/types/uni-pages.d.ts
+++ b/eims-ui-mobile/src/types/uni-pages.d.ts
@@ -11,6 +11,7 @@
        "/pages/inspect/insp-record" |
        "/pages/inspect/insp-st" |
        "/pages/login/index" |
+       "/pages/maint/maint-st" |
        "/pages/my/index" |
        "/pages/spare/index";
 }
diff --git a/eims-ui-mobile/src/utils/http.ts b/eims-ui-mobile/src/utils/http.ts
index f1d74ce..7314ccd 100644
--- a/eims-ui-mobile/src/utils/http.ts
+++ b/eims-ui-mobile/src/utils/http.ts
@@ -36,10 +36,12 @@
             uni.navigateTo({ url: redirectRoute })
             reject(res)
           } else {
+            // 鍏朵粬閿欒 -> 鏍规嵁鍚庣閿欒淇℃伅杞绘彁绀�
             uni.showToast({
               icon: 'none',
               title: (res.data as IResData<T>).msg || '璇锋眰閿欒',
             })
+            reject(res)
           }
         } else if (res.statusCode === 401) {
           // 401閿欒  -> 娓呯悊鐢ㄦ埛淇℃伅锛岃烦杞埌鐧诲綍椤�
diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx b/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx
index 7fd40eb..fee6672 100644
--- a/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx
+++ b/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx
@@ -46,7 +46,24 @@
   {
     title: '淇濆吇鏃堕棿',
     field: 'planTimeStr',
-    minWidth: 200
+    minWidth: 200,
+    slots: {
+      default: ({ row }) => {
+        // 鍒ゆ柇鏄惁闇�瑕佹樉绀烘椂闂�
+        if (!row.type) return '';
+
+        // 鑾峰彇鍘熷鏃堕棿瀛楃涓�
+        const fullDate = row.planTimeStr;
+
+        // 鏍规嵁鏉′欢鍐冲畾鏄剧ず鏍煎紡
+        // 绀轰緥鏉′欢锛氬鏋� status 鏄煇涓壒瀹氬�硷紙渚嬪 'monthly'锛夛紝鍒欐樉绀� YYYY-MM
+        if (row.type === 'Month') {
+          return fullDate.slice(0, 7); // 鎴彇鍓� 7 涓瓧绗︼紝寰楀埌 YYYY-MM
+        }
+        // 榛樿鏄剧ず瀹屾暣鏃ユ湡 YYYY-MM-DD
+        return fullDate;
+      }
+    }
   },
   {
     title: '鐘舵��',
diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue b/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue
index 0319a0b..9f7a6cf 100644
--- a/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue
@@ -255,16 +255,17 @@
 const monBtn = ref<any>('primary');
 
 function queryData(type: ViewMode) {
+  // TODO 鏃ヨ鍥惧拰鏈堣鍥惧悗绔凡缁熶竴鏂规硶 鍓嶇鍙垹闄ゆ棩瑙嗗浘澶氫綑閰嶇疆
   if (type === ViewMode.Day) {
     dayBtn.value = 'primary';
     monBtn.value = 'default';
     curViewMode.value = ViewMode.Day;
-    tableApi.setGridOptions(gridOptions2);
+    // tableApi.setGridOptions(gridOptions2);
   } else if (type === ViewMode.Month) {
     dayBtn.value = 'default';
     monBtn.value = 'primary';
     curViewMode.value = ViewMode.Month;
-    tableApi.setGridOptions(gridOptions);
+    // tableApi.setGridOptions(gridOptions);
   }
   tableApi.query();
 }
@@ -273,7 +274,7 @@
 <template>
   <Page :auto-content-height="true">
     <div class="flex h-full gap-[8px] flex-col">
-      <BasicTable class="h-2/3" table-title="鐐规璁板綍鍒楄〃">
+      <BasicTable class="h-2/3" table-title="鐐规姹囨�诲垪琛�">
         <template #toolbar-tools>
           <Space>
             <Button :type="dayBtn" @click.stop="queryData(ViewMode.Day)">鏃ヨ鍥�</Button>
@@ -300,8 +301,7 @@
             <ghost-button v-access:code="['eims:inspectSt:edit']" @click.stop="handleEdit(row)">
               {{ $t('pages.common.edit') }}
             </ghost-button>
-            <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�"
-                        @confirm="handleDelete(row)">
+            <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)">
               <ghost-button danger v-access:code="['eims:inspectSt:remove']" @click.stop="">
                 {{ $t('pages.common.delete') }}
               </ghost-button>
@@ -309,8 +309,7 @@
           </Space>
         </template>
       </BasicTable>
-      <BasisSubTable :columns="recordCol" :list-api="listInspStRecord" :req-value="recordId" class="h-1/3"
-                     req-key="inspCode" title="鐐规璁板綍" />
+      <BasisSubTable :columns="recordCol" :list-api="listInspStRecord" :req-value="recordId" class="h-1/3" req-key="inspCode" title="鐐规璁板綍" />
     </div>
     <InspStDrawer @reload="tableApi.query()" />
   </Page>
diff --git a/eims-ui/apps/web-antd/src/views/eims/spare-inoutdt/index.vue b/eims-ui/apps/web-antd/src/views/eims/spare-inoutdt/index.vue
new file mode 100644
index 0000000..85af715
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/spare-inoutdt/index.vue
@@ -0,0 +1,11 @@
+<script setup lang="ts">
+
+</script>
+
+<template>
+
+</template>
+
+<style scoped>
+
+</style>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java
index 11f84f6..106896e 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java
@@ -15,6 +15,7 @@
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.eims.domain.bo.EimsMaintOrderBo;
+import org.dromara.eims.domain.bo.InspectRecordBo;
 import org.dromara.eims.domain.vo.EimsMaintOrderVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -80,6 +81,7 @@
             Map<String, Object> params = bo.getParams();
             params.put("beginPlanTime",startOfMonth);
             params.put("endPlanTime",endOfMonth);
+            params.put("type","Month");
         }
         return eimsInspectRecordService.queryPageListCustom(bo, pageQuery);
     }
@@ -130,6 +132,14 @@
         return toAjax(eimsInspectRecordService.updateByBo(bo));
     }
 
+    @SaCheckPermission("eims:inspectRecord:edit")
+    @Log(title = "鐐规璁板綍-鎵归噺淇敼", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping("editBatch")
+    public R<Void> editBatch(@Validated(EditGroup.class) @RequestBody InspectRecordBo bo) {
+        return toAjax(eimsInspectRecordService.updateBatchByBo(bo));
+    }
+
     /**
      * 鍒犻櫎鐐规璁板綍
      *
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java
index a0a0c3b..aa8a890 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java
@@ -28,6 +28,10 @@
      */
     @TableId(value = "id")
     private Long id;
+    /**
+     * 姹囨�荤被鍨� Day-鏃ユ眹鎬�  Month-鏈堟眹鎬�
+     */
+    private String type;
 
     /**
      * 鏍囬
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java
index 82d3ea9..fefd0ef 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java
@@ -28,17 +28,19 @@
      */
     @NotNull(message = "涓嶈兘涓虹┖", groups = { EditGroup.class })
     private Long id;
+    /**
+     * 姹囨�荤被鍨� Day-鏃ユ眹鎬�  Month-鏈堟眹鎬�
+     */
+    private String type;
 
     /**
      * 鏍囬
      */
-    @NotBlank(message = "鏍囬涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private String title;
 
     /**
      * 璁惧id
      */
-    @NotNull(message = "璁惧id涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private Long equId;
     private String equName;
     private String assetNo;
@@ -46,7 +48,6 @@
     /**
      * 璁″垝鏃堕棿
      */
-    @NotNull(message = "璁″垝鏃堕棿涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private Date planTime;
 
     /**
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/InspectRecordBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/InspectRecordBo.java
new file mode 100644
index 0000000..4e74891
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/InspectRecordBo.java
@@ -0,0 +1,13 @@
+package org.dromara.eims.domain.bo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class InspectRecordBo {
+    /**
+     * 绉诲姩绔壒閲忔洿鏂�
+     */
+    private List<EimsInspectRecordBo> inspRecordList;
+}
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 021d71b..8dee5d2 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
@@ -41,7 +41,10 @@
      */
     @ExcelProperty(value = "鏍囬")
     private String title;
-
+    /**
+     * 姹囨�荤被鍨� Day-鏃ユ眹鎬�  Month-鏈堟眹鎬�
+     */
+    private String type;
     /**
      * 璁惧id
      */
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java
index a71d578..4d0c20b 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java
@@ -18,6 +18,7 @@
  */
 public interface EimsInspectRecordMapper extends BaseMapperPlus<EimsInspectRecord, EimsInspectRecordVo> {
     Page<EimsInspectRecordVo> selectInspRecordList(@Param("page") Page<EimsInspectRecordVo> page, @Param(Constants.WRAPPER) Wrapper<EimsInspectRecord> queryWrapper);
+    // TODO 鏃ヨ鍥惧拰鏈堣鍥剧粺涓�鎺ュ彛锛屽緟鍒犻櫎
     Page<EimsInspectStVo> selectInspRecordDayList(@Param("page") Page<EimsInspectStVo> page, @Param(Constants.WRAPPER) Wrapper<EimsInspectSt> queryWrapper);
 
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java
index ebd61d3..4afedb1 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java
@@ -1,6 +1,7 @@
 package org.dromara.eims.service;
 
 import org.dromara.eims.domain.bo.EimsInspectStBo;
+import org.dromara.eims.domain.bo.InspectRecordBo;
 import org.dromara.eims.domain.vo.EimsInspectRecordVo;
 import org.dromara.eims.domain.bo.EimsInspectRecordBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -58,6 +59,7 @@
      * @return 鏄惁淇敼鎴愬姛
      */
     Boolean updateByBo(EimsInspectRecordBo bo);
+    Boolean updateBatchByBo(InspectRecordBo 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 55c65ff..de21a3f 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
@@ -2,6 +2,8 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.SneakyThrows;
+import org.dromara.common.core.constant.DictConstants;
+import org.dromara.common.core.domain.model.LoginUser;
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -11,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.EimsInspectPlan;
 import org.dromara.eims.domain.EimsInspectSt;
 import org.dromara.eims.domain.EimsMaintPlan;
 import org.dromara.eims.domain.bo.EimsInspectStBo;
+import org.dromara.eims.domain.bo.InspectRecordBo;
 import org.dromara.eims.domain.vo.EimsInspectStVo;
 import org.dromara.eims.domain.vo.EimsMaintOrderVo;
 import org.dromara.eims.mapper.EimsInspectPlanMapper;
@@ -236,6 +240,19 @@
         return baseMapper.updateById(update) > 0;
     }
 
+    @Override
+    public Boolean updateBatchByBo(InspectRecordBo bo) {
+        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.setInspTime(new Date());
+            item.setInspUser(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 dc31019..6db24c0 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
@@ -21,6 +21,8 @@
 import org.dromara.eims.service.IEimsInspectStService;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
@@ -59,23 +61,29 @@
      */
     @Override
     public TableDataInfo<EimsInspectStVo> queryPageList(EimsInspectStBo bo, PageQuery pageQuery) {
+        bo.setType(bo.getViewMode());
         // 鏈堣鍥�
-        if(bo.getViewMode().equals("Month")){
+//        if(bo.getViewMode().equals("Month")){
             QueryWrapper<EimsInspectSt> qw = buildWrapper(bo);
             Page<EimsInspectStVo> result = baseMapper.selectInspStList(pageQuery.build(), qw);
             // 濉厖鏁版嵁
-            fillStData(result);
+            fillStData(result,bo.getViewMode());
             return TableDataInfo.build(result);
             // 鏃ヨ鍥�
-        }else if(bo.getViewMode().equals("Day")){
-            Page<EimsInspectStVo> result = recordMapper.selectInspRecordDayList(pageQuery.build(), buildGroupWrapper(bo));
-            return TableDataInfo.build(result);
-        }
+//        }else if(bo.getViewMode().equals("Day")){
+//            Page<EimsInspectStVo> result = recordMapper.selectInspRecordDayList(pageQuery.build(), buildGroupWrapper(bo));
+//            return TableDataInfo.build(result);
+//        }
 
-       return null;
+//       return null;
     }
 
-    private void fillStData(Page<EimsInspectStVo> result) {
+    /**
+     *
+      * @param result
+     * @param type Day-鏃ヨ鍥� Month-鏈堣鍥�
+     */
+    private void fillStData(Page<EimsInspectStVo> result,String type) {
         List<EimsInspectStVo> records = result.getRecords();
         for (int i = 0; i < records.size(); i++) {
             EimsInspectStVo stVo = records.get(i);
@@ -84,9 +92,19 @@
             LambdaQueryWrapper<EimsInspectRecord> recordLqw = Wrappers.lambdaQuery();
             recordLqw.eq(EimsInspectRecord::getEquId, stVo.getEquId());
             LocalDate planTime = stVo.getPlanTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+            // 鏈堣鍥炬煡璇㈣寖鍥�
             LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth());
             LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth());
-            recordLqw.between(EimsInspectRecord::getPlanTime, startOfMonth, endOfMonth);
+
+            // 鏃ヨ鍥炬煡璇㈣寖鍥�
+            if(type.equals("Day")){
+                recordLqw.between(EimsInspectRecord::getPlanTime, planTime, planTime);
+            }else {
+            //  鏈堣鍥炬煡璇㈣寖鍥�
+                recordLqw.between(EimsInspectRecord::getPlanTime, startOfMonth, endOfMonth);
+            }
+
+
             // 鎵ц鏌ヨ
             List<EimsInspectRecordVo> recordList = recordMapper.selectVoList(recordLqw);
             // TODO 鏍规嵁瀛楀吀eims_inspect_status
@@ -96,7 +114,7 @@
             // TODO 鏍规嵁瀛楀吀eims_inspect_result
             Map<String, Long> rMap = recordList.stream()
                 .filter(order ->order.getInspResult()!=null && List.of("1", "2").contains(order.getInspResult()))
-                .collect(Collectors.groupingBy(EimsInspectRecordVo::getStatus, Collectors.counting()));
+                .collect(Collectors.groupingBy(EimsInspectRecordVo::getInspResult, Collectors.counting()));
 
             stVo.setRecordCount(recordList.size());
             stVo.setUnCheckCount(cMap.getOrDefault("0", 0L).intValue());
@@ -157,6 +175,7 @@
         qw.like(StringUtils.isNotBlank(bo.getTitle()), "st.title", bo.getTitle());
         qw.like(StringUtils.isNotBlank(bo.getEquName()), "equ.equ_name", bo.getEquName());
         qw.like(StringUtils.isNotBlank(bo.getAssetNo()), "equ.asset_no", bo.getAssetNo());
+        qw.eq( "st.type", bo.getType());
         qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
             "st.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
         qw.eq(bo.getInspUser() != null, "st.maint_user", bo.getInspUser());
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml
index bf14d6a..b37e221 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml
@@ -21,7 +21,7 @@
             ${ew.getCustomSqlSegment}
     </select>
 
-
+    <!--TODO 鏃ヨ鍥惧拰鏈堣鍥剧粺涓�鎺ュ彛锛屽緟鍒犻櫎-->
     <select id="selectInspRecordDayList" resultMap="EimsInspectStVoResult">
         SELECT
             MAX(ir.id) id,
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml
index b9540eb..ec07300 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml
@@ -6,7 +6,7 @@
     <resultMap type="org.dromara.eims.domain.vo.EimsInspectStVo" id="MaintInspStVoResult">
     </resultMap>
     <select id="selectInspStList" resultMap="MaintInspStVoResult">
-        SELECT st.*,equ.equ_name equName,equ.asset_no assetNo,    DATE_FORMAT(st.plan_time, '%Y-%m') as planTimeStr FROM eims_inspect_st st
+        SELECT st.*,equ.equ_name equName,equ.asset_no assetNo,    DATE_FORMAT(st.plan_time, '%Y-%m-%d') as planTimeStr FROM eims_inspect_st st
                                              LEFT JOIN eims_equ equ on st.equ_id = equ.equ_id
             ${ew.getCustomSqlSegment}
     </select>

--
Gitblit v1.9.3