From f571cf0182abd65176fb1512c5cb5ddaea49c4a3 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期二, 24 六月 2025 09:00:14 +0800
Subject: [PATCH] feat(eims): 设备状态变更记录功能

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintPlanMapper.java            |    5 
 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml                     |   36 +++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java              |    9 
 eims-ui-mobile/src/service/equ_status.d.ts                                                           |   98 ++++++++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java               |   24 +-
 eims-ui-mobile/src/pages/inspect/insp-st.vue                                                         |    8 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java                   |   10 
 eims/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java                                   |    2 
 eims-ui-mobile/src/service/equ_status.ts                                                             |   48 ++++
 eims-ui-mobile/src/types/uni-pages.d.ts                                                              |    2 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java            |   12 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java  |   31 ++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectPlanMapper.java          |    5 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java |    8 
 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectPlanMapper.xml                  |    6 
 eims-ui-mobile/src/service/equ.ts                                                                    |    2 
 eims-ui-mobile/src/pages/repair/res-detail.vue                                                       |   29 ++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java             |    6 
 eims-ui-mobile/src/pages/maint/maint-st.vue                                                          |    8 
 eims-ui-mobile/src/pages/equ-status/list.vue                                                         |  174 ++++++++++++++
 eims-ui-mobile/src/pages/scan/index.vue                                                              |  145 ++++++++++-
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java              |   19 +
 eims-ui-mobile/src/pages.json                                                                        |    4 
 eims-ui-mobile/src/pages/home/index.vue                                                              |   16 
 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintPlanMapper.xml                    |    6 
 25 files changed, 645 insertions(+), 68 deletions(-)

diff --git a/eims-ui-mobile/src/pages.json b/eims-ui-mobile/src/pages.json
index b5a08ca..422d7ec 100644
--- a/eims-ui-mobile/src/pages.json
+++ b/eims-ui-mobile/src/pages.json
@@ -83,6 +83,10 @@
       }
     },
     {
+      "path": "pages/equ-status/list",
+      "type": "page"
+    },
+    {
       "path": "pages/fixture/fixture-list",
       "type": "page",
       "layout": "default",
diff --git a/eims-ui-mobile/src/pages/equ-status/list.vue b/eims-ui-mobile/src/pages/equ-status/list.vue
new file mode 100644
index 0000000..1ce91e1
--- /dev/null
+++ b/eims-ui-mobile/src/pages/equ-status/list.vue
@@ -0,0 +1,174 @@
+<template>
+  <view class="bg-base">
+
+    <z-paging ref="paging" v-model="dataList" @query="queryList" class="bg-base">
+      <template #top>
+        <wd-search v-model="searchValue" placeholder="璁惧鍚嶇О/璧勪骇缂栧彿" @search="reloadData" />
+        <wd-tabs v-model="activeTab" @change="handleTabChange">
+          <wd-tab title="寰呯‘璁�"></wd-tab>
+          <wd-tab title="宸插悓鎰�"></wd-tab>
+          <wd-tab title="宸查┏鍥�"></wd-tab>
+        </wd-tabs>
+      </template>
+      <view v-for="item in dataList" :key="item.equStatuId" class="mb-2" >
+        <wd-card type="rectangle">
+          <template #title>
+            <view class="flex justify-between items-center menu-title-box">
+              <view class="flex items-center">
+                <view class="menu-indicator"></view>
+                <text class="ml-1 text-sm">{{ item.equName || '-' }}</text>
+                <text class="ml-2 text-color-gray text-mini">{{ item.assetNo || '-' }}</text>
+              </view>
+              <wd-tag v-if="item.orderStatus === '0'" type="warning">寰呯‘璁�</wd-tag>
+              <wd-tag v-else-if="item.orderStatus === '1'" type="success">宸插悓鎰�</wd-tag>
+              <wd-tag v-else type="error">宸查┏鍥�</wd-tag>
+            </view>
+          </template>
+          <view class="flex h-[200rpx] items-center">
+            <image class="slot-img text-center" src="/static/images/camera.png" />
+            <view class="flex-1">
+              <view class="text-color-base mt-1">鍙樻洿鍓嶏細{{ statusText(item.beforeChange) }} 鈫� 鍙樻洿鍚庯細{{ statusText(item.afterChange) }}</view>
+              <view class="text-color-gray text-sm mt-1">鍙樻洿鍘熷洜锛歿{ item.changeDesc }}</view>
+              <view class="text-color-gray text-sm mt-1">鍙樻洿鏃堕棿锛歿{ item.changeDate || '-' }}</view>
+              <view class="text-color-gray text-sm mt-1">鍙樻洿浜猴細{{ item.changeUserName || '-' }}</view>
+              <view v-if="item.orderStatus === '2' && item.remark" class="text-color-error text-sm mt-1">椹冲洖鐞嗙敱锛歿{ item.remark }}</view>
+            </view>
+            <view v-if="item.orderStatus === '0' && isEquAdmin()" class="flex flex-col gap-2 ml-2">
+              <wd-button size="small" type="success" @click="handleAgree(item)">鍚屾剰</wd-button>
+              <wd-button size="small" type="error" @click="openReject(item)">椹冲洖</wd-button>
+            </view>
+          </view>
+        </wd-card>
+      </view>
+    </z-paging>
+    <wd-popup v-model="showReject" position="center" round :close-on-click-modal="false">
+      <view class="popup-container">
+        <view class="popup-title">濉啓椹冲洖鐞嗙敱</view>
+        <wd-textarea v-model="rejectReason" placeholder="璇疯緭鍏ラ┏鍥炵悊鐢�" :maxlength="100" show-word-limit required />
+        <view class="popup-actions">
+          <wd-button block @click="showReject = false">鍙栨秷</wd-button>
+          <wd-button type="error" block class="ml-2" @click="handleRejectConfirm">纭畾</wd-button>
+        </view>
+      </view>
+    </wd-popup>
+  </view>
+</template>
+<script setup lang="ts">
+import { ref } from 'vue'
+import { getEquStatuList, updateEquStatu } from '@/service/equ_status'
+import { useToast } from 'wot-design-uni'
+import { isEquAdmin } from "@/utils/RoleUtils";
+const toast = useToast()
+const searchValue = ref('')
+const activeTab = ref(0)
+const dataList = ref<any[]>([])
+const paging = ref()
+const showReject = ref(false)
+const rejectReason = ref('')
+const rejectItem = ref<any>(null)
+
+const statusMap = [
+  { label: '璇曠敤', value: '0' },
+  { label: '浣跨敤', value: '1' },
+  { label: '鍋滅敤', value: '2' },
+  { label: '鎶ュ簾', value: '3' },
+  { label: '闂茬疆', value: '4' },
+  { label: '鏂板', value: '5' },
+]
+function statusText(val: string) {
+  return statusMap.find((s) => s.value === val)?.label || '-'
+}
+function handleTabChange({ index }) {
+  activeTab.value = index
+  reloadData()
+}
+function reloadData() {
+  paging.value.reload()
+}
+function queryList(pageNum?: number, pageSize?: number) {
+  const params: any = {
+    pageNum,
+    pageSize,
+    params: {
+      searchValue: searchValue.value,
+    },
+    orderStatus: String(activeTab.value),
+  }
+  getEquStatuList(params).then((res: any) => {
+    paging.value.completeByTotal(res.rows, res.total)
+  }).catch(() => {
+    paging.value.complete(false)
+  })
+}
+function handleAgree(item: any) {
+  updateEquStatu({
+    equStatuId: item.equStatuId,
+    orderStatus: '1',
+    remark: '',
+  }).then(() => {
+    toast.success('鎿嶄綔鎴愬姛')
+    reloadData()
+  })
+}
+function openReject(item: any) {
+  rejectItem.value = item
+  rejectReason.value = ''
+  showReject.value = true
+}
+function handleRejectConfirm() {
+  if (!rejectReason.value.trim()) {
+    toast.info('璇峰~鍐欓┏鍥炵悊鐢�')
+    return
+  }
+  updateEquStatu({
+    equStatuId: rejectItem.value.equStatuId,
+    orderStatus: '2',
+    remark: rejectReason.value,
+  }).then(() => {
+    toast.success('宸查┏鍥�')
+    showReject.value = false
+    reloadData()
+  })
+}
+</script>
+<style scoped lang="scss">
+.menu-title-box {
+}
+.slot-img {
+  width: 72rpx;
+  height: 72rpx;
+  margin-right: 24rpx;
+}
+.text-mini {
+  font-size: 24rpx;
+}
+.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;
+}
+.popup-container {
+  width: 600rpx;
+  background: #fff;
+  border-radius: 16rpx;
+  padding: 32rpx 24rpx 24rpx 24rpx;
+}
+.popup-title {
+  font-size: 32rpx;
+  font-weight: bold;
+  text-align: center;
+  margin-bottom: 24rpx;
+}
+.popup-actions {
+  display: flex;
+  margin-top: 24rpx;
+  gap: 16rpx;
+}
+</style>
diff --git a/eims-ui-mobile/src/pages/home/index.vue b/eims-ui-mobile/src/pages/home/index.vue
index bcc1faa..c4e42ed 100644
--- a/eims-ui-mobile/src/pages/home/index.vue
+++ b/eims-ui-mobile/src/pages/home/index.vue
@@ -108,7 +108,7 @@
           <template #title>
             <view class="flex items-center menu-title-box">
               <view class="menu-indicator"></view>
-              <view class="ml-1 text-sm">璁惧绠$悊</view>
+              <view class="ml-1 text-sm">鐐规淇濆吇</view>
             </view>
           </template>
           <wd-grid :column="4">
@@ -130,7 +130,7 @@
           <template #title>
             <view class="flex items-center menu-title-box">
               <view class="menu-indicator"></view>
-              <view class="ml-1 text-sm">鍙拌处鐩稿叧</view>
+              <view class="ml-1 text-sm">璁惧鍙板笎</view>
             </view>
           </template>
           <wd-grid :column="4">
@@ -257,10 +257,16 @@
   },
   {
     id: 2,
-    name: '宸ュ叿鍒楄〃',
-    icon: '/static/ico/ico16.png',
-    path: 'pages/fixture/fixture-list',
+    name: '鐘舵�佸彉鏇磋褰�',
+    icon: '/static/ico/ico15.png',
+    path: 'pages/equ-status/list',
   },
+  // {
+  //   id: 2,
+  //   name: '宸ュ叿鍒楄〃',
+  //   icon: '/static/ico/ico16.png',
+  //   path: 'pages/fixture/fixture-list',
+  // },
 ])
 
 const inspectMenu = reactive([
diff --git a/eims-ui-mobile/src/pages/inspect/insp-st.vue b/eims-ui-mobile/src/pages/inspect/insp-st.vue
index f761004..928022b 100644
--- a/eims-ui-mobile/src/pages/inspect/insp-st.vue
+++ b/eims-ui-mobile/src/pages/inspect/insp-st.vue
@@ -57,12 +57,12 @@
             <view class="text-color-gray text-sm mt-2 flex">
               <text>鐘舵�侊細</text>
               <template v-if="item.status === '1'">
-                <wd-icon class="icon-color-success" name="check-outline" size="34rpx"></wd-icon>
-                <text class="ml-1">宸插畬鎴�</text>
+                <wd-icon class="icon-color-warning" name="check-outline" size="34rpx"></wd-icon>
+                <text class="ml-1">寰呯‘璁�</text>
               </template>
               <template v-else-if="item.status === '2'">
-                <wd-icon class="icon-color-warning" name="check-outline" size="34rpx"></wd-icon>
-                <text class="ml-1">宸茬‘璁�</text>
+                <wd-icon class="icon-color-success" name="check-outline" size="34rpx"></wd-icon>
+                <text class="ml-1">宸插畬鎴�</text>
               </template>
               <template v-else>
                 <wd-icon class="icon-color-base" name="detection" size="40rpx"></wd-icon>
diff --git a/eims-ui-mobile/src/pages/maint/maint-st.vue b/eims-ui-mobile/src/pages/maint/maint-st.vue
index 5e01de6..6a61c61 100644
--- a/eims-ui-mobile/src/pages/maint/maint-st.vue
+++ b/eims-ui-mobile/src/pages/maint/maint-st.vue
@@ -67,12 +67,12 @@
             <view class="text-color-gray text-sm mt-2 flex">
               <text>鐘舵�侊細</text>
               <template v-if="item.status === '1'">
-                <wd-icon class="icon-color-success" name="check-outline" size="34rpx"></wd-icon>
-                <text class="ml-1">宸插畬鎴�</text>
+                <wd-icon class="icon-color-warning" name="check-outline" size="34rpx"></wd-icon>
+                <text class="ml-1">寰呯‘璁�</text>
               </template>
               <template v-else-if="item.status === '2'">
-                <wd-icon class="icon-color-warning" name="check-outline" size="34rpx"></wd-icon>
-                <text class="ml-1">宸茬‘璁�</text>
+                <wd-icon class="icon-color-success" name="check-outline" size="34rpx"></wd-icon>
+                <text class="ml-1">宸插畬鎴�</text>
               </template>
               <template v-else>
                 <wd-icon class="icon-color-base" name="detection" size="40rpx"></wd-icon>
diff --git a/eims-ui-mobile/src/pages/repair/res-detail.vue b/eims-ui-mobile/src/pages/repair/res-detail.vue
index 73f7f0e..14aff27 100644
--- a/eims-ui-mobile/src/pages/repair/res-detail.vue
+++ b/eims-ui-mobile/src/pages/repair/res-detail.vue
@@ -150,15 +150,18 @@
       </view>
       <!-- 缁翠慨璇存槑鍖哄煙 -->
       <view class="mt-2 flex justify-end">
-        <wd-button type="success" style="margin: 20px" @click.stop="addSparePart()">
+        <wd-button type="info" style="margin: 20px" @click.stop="addSparePart()">
           娣诲姞澶囦欢
         </wd-button>
       </view>
       <view class="h-[2px] w-full bg-base"></view>
       </wd-cell-group>
     </wd-form>
-<!--    <wd-button style="margin: 20px" block @click="handleClickRight">鎻愪氦</wd-button>-->
-    <view class="h-[20px] w-full bg-base"></view>
+    <view class="h-[5px] w-full bg-base"></view>
+    <view class=" flex justify-around py-4">
+      <wd-button block @click="saveOrder">淇濆瓨</wd-button>
+      <wd-button type="success" block @click="submitOrder">鎻愪氦</wd-button>
+    </view>
   </view>
 
   <!-- 澶囦欢閫夋嫨寮瑰嚭灞� -->
@@ -323,7 +326,7 @@
 function handleClickRight(data: any) {
   message
     .confirm({
-      msg: '纭畾鎻愪氦锛�',
+      msg: '纭畾' + (data.status === '3' ? '鎻愪氦' : '淇濆瓨') + '锛�',
       title: '鎻愮ず',
       beforeConfirm: ({ resolve }) => {
         hanldeUpdateRepairRes(data, resolve)
@@ -335,6 +338,24 @@
     })
 }
 
+function submitOrder() {
+  const data = Object.assign({}, repairRes)
+  // 鎻愪氦淇敼鐘舵�佷负瀹屾垚
+  data.status = '3'
+  // 璁剧疆缁翠慨瀹屾垚鏃堕棿
+  data.endTime = formatDate(new Date())
+  handleClickRight(data)
+}
+
+function saveOrder() {
+  const data = Object.assign({}, repairRes)
+  // 浠呬繚瀛樹笉淇敼鐘舵�佷负瀹屾垚
+  data.status = '2'
+  // 浠呬繚瀛樹笉璁剧疆瀹屾垚鏃堕棿
+  data.endTime = ''
+  handleClickRight(data)
+}
+
 onNavigationBarButtonTap((e) => {
   if (e.index === 0) {
     // 绠$悊鍛樿鑹�
diff --git a/eims-ui-mobile/src/pages/scan/index.vue b/eims-ui-mobile/src/pages/scan/index.vue
index d8fca76..55f889a 100644
--- a/eims-ui-mobile/src/pages/scan/index.vue
+++ b/eims-ui-mobile/src/pages/scan/index.vue
@@ -25,11 +25,11 @@
               <wd-tag v-else-if="model.status === '2'" class="ml-2" type="danger">鍋滅敤</wd-tag>
               <wd-tag v-else-if="model.status === '3'" class="ml-2" bg-color="pink">鎶ュ簾</wd-tag>
               <wd-tag v-else-if="model.status === '4'" class="ml-2" type="warning">闂茬疆</wd-tag>
-              <wd-tag v-else-if="model.status === '5'" class="ml-2">鏂板</wd-tag>
+              <wd-tag v-else class="ml-2">鏂板</wd-tag>
             </view>
 
             <view @click="handleInfo">
-              <text class="icon-color-base">璇︽儏</text>
+              <text class="icon-color-base">鐘舵�佸彉鏇�</text>
               <wd-icon name="arrow-right" custom-class="icon-color-base"></wd-icon>
             </view>
           </view>
@@ -103,6 +103,33 @@
         @select="select"
         cancel-text="鍙栨秷"
       />
+
+      <wd-popup v-model="showStatusDialog" position="center" round :close-on-click-modal="false">
+        <view class="popup-container">
+          <view class="popup-title">璁惧鐘舵�佸彉鏇�</view>
+          <view class="flex flex-wrap justify-between mb-4">
+            <view
+              v-for="item in statusOptions"
+              :key="item.value"
+              :class="['status-option', selectedStatus === item.value ? 'active' : '']"
+              @click="selectStatus(item.value)"
+            >
+              {{ item.label }}
+            </view>
+          </view>
+          <wd-textarea
+            v-model="changeReason"
+            placeholder="璇疯緭鍏ュ彉鏇村師鍥�"
+            :maxlength="100"
+            show-word-limit
+            required
+          />
+          <view class="popup-actions">
+            <wd-button block @click="handleStatusChangeCancel">鍙栨秷</wd-button>
+            <wd-button type="primary" block class="ml-2" @click="handleStatusChangeConfirm">纭畾</wd-button>
+          </view>
+        </view>
+      </wd-popup>
     </view>
     <view v-else>
       <wd-status-tip image="search" tip="褰撳墠鎼滅储鏃犵粨鏋�" />
@@ -122,6 +149,8 @@
 import ReqCard from '@/components/repair/req-card.vue'
 import ResCard from '@/components/repair/res-card.vue'
 import { useUserStore } from '@/store'
+import { addEquStatu } from '@/service/equ_status'
+import type { EimsEquStatuBo } from '@/service/equ_status.d'
 const tab = ref<number>(0)
 const message = useMessage()
 const toast = useToast()
@@ -140,6 +169,17 @@
     name: '鍘荤淮淇�',
   },
 ])
+const showStatusDialog = ref(false)
+const selectedStatus = ref<string>('')
+const changeReason = ref<string>('')
+const statusOptions = [
+  { label: '璇曠敤', value: '0' },
+  { label: '浣跨敤', value: '1' },
+  { label: '鍋滅敤', value: '2' },
+  { label: '鎶ュ簾', value: '3' },
+  { label: '闂茬疆', value: '4' },
+  { label: '鏂板', value: '5' },
+]
 
 function initData(assetNo: any) {
   getEquByAssetNo(assetNo)
@@ -192,10 +232,14 @@
 }
 
 function handleInfo() {
-  uni.showToast({
-    title: '鍔熻兘寮�鍙戜腑',
-    icon: 'none',
-  })
+  if (!model?.equId) {
+    uni.showToast({ title: '鏈煡璇㈠埌璁惧锛岃鑱旂郴绠$悊鍛橈紒', icon: 'none' })
+    return
+  }
+  console.log("model::",model)
+  selectedStatus.value = model.status || '5'
+  changeReason.value = ''
+  showStatusDialog.value = true
 }
 
 function handleInsp() {
@@ -273,20 +317,50 @@
       break
   }
 }
-;`/pages/repair/req-list`,
-  // 澶勭悊缁翠慨璇锋眰鐐瑰嚮浜嬩欢
-  function handleReqClick(item) {
-    uni.navigateTo({
-      url: `/pages/repair/req-detail?id=${item.id}`,
-    })
-  }
 
-// // 澶勭悊缁翠慨鍗曠偣鍑讳簨浠�
-// function handleResClick(item) {
-//   uni.navigateTo({
-//     url: `/pages/repair/res-detail?id=${item.id}`,
-//   })
-// }
+// 澶勭悊缁翠慨璇锋眰鐐瑰嚮浜嬩欢
+function handleReqClick(item) {
+  uni.navigateTo({
+    url: `/pages/repair/req-detail?id=${item.id}`,
+  })
+}
+
+defineExpose({ handleReqClick })
+
+function selectStatus(val: string) {
+  selectedStatus.value = val
+}
+
+function handleStatusChangeCancel() {
+  showStatusDialog.value = false
+}
+
+async function handleStatusChangeConfirm() {
+  if (!selectedStatus.value) {
+    uni.showToast({ title: '璇烽�夋嫨璁惧鐘舵��', icon: 'none' })
+    return
+  }
+  if (!changeReason.value.trim()) {
+    uni.showToast({ title: '璇峰~鍐欏彉鏇村師鍥�', icon: 'none' })
+    return
+  }
+  const params: EimsEquStatuBo = {
+    equId: model.equId,
+    beforeChange: model.status,
+    afterChange: selectedStatus.value,
+    changeDesc: changeReason.value,
+    orderStatus: '0',
+  }
+  try {
+    await addEquStatu(params)
+    uni.showToast({ title: '鎻愪氦鎴愬姛锛屽緟绠$悊鍛樼‘璁�', icon: 'success' })
+    showStatusDialog.value = false
+    // 鍙�夛細鍒锋柊璁惧淇℃伅
+    initData(model.assetNo)
+  } catch (e) {
+    uni.showToast({ title: '鎻愪氦澶辫触', icon: 'none' })
+  }
+}
 
 onLoad((options) => {
   uni.$on('list-refresh', loadRepairData)
@@ -324,4 +398,37 @@
 :deep(.wd-card__title-content) {
   padding: 16rpx 0 !important;
 }
+.status-option {
+  display: inline-block;
+  padding: 10rpx 24rpx;
+  margin: 8rpx 8rpx 8rpx 0;
+  border-radius: 8rpx;
+  border: 1px solid #eee;
+  background: #f7f7f7;
+  color: #666;
+  cursor: pointer;
+}
+.status-option.active {
+  background: $uni-color-primary;
+  color: #fff;
+  border-color: $uni-color-primary;
+}
+.popup-container {
+  width: 600rpx;
+  background: #fff;
+  border-radius: 16rpx;
+  padding: 32rpx 24rpx 24rpx 24rpx;
+}
+.popup-title {
+  font-size: 32rpx;
+  font-weight: bold;
+  text-align: center;
+  margin-bottom: 24rpx;
+}
+.popup-actions {
+  display: flex;
+  margin-top: 24rpx;
+  gap: 16rpx;
+  justify-content: space-around;
+}
 </style>
diff --git a/eims-ui-mobile/src/service/equ.ts b/eims-ui-mobile/src/service/equ.ts
index e510589..2991e12 100644
--- a/eims-ui-mobile/src/service/equ.ts
+++ b/eims-ui-mobile/src/service/equ.ts
@@ -15,3 +15,5 @@
 export const getEquByAssetNo = (assetNo: string) => {
   return http.get<EquVO>(`/eims/equ/info/${assetNo}`)
 }
+
+
diff --git a/eims-ui-mobile/src/service/equ_status.d.ts b/eims-ui-mobile/src/service/equ_status.d.ts
new file mode 100644
index 0000000..8cc7ea8
--- /dev/null
+++ b/eims-ui-mobile/src/service/equ_status.d.ts
@@ -0,0 +1,98 @@
+export interface EimsEquStatuVO {
+  /**
+   * 璁惧鐘舵�佽褰昳d
+   */
+  equStatuId?: number | string;
+
+  /**
+   * 璁惧id
+   */
+  equId?: number | string;
+
+  /**
+   * 鍙樻洿鍓嶇姸鎬�
+   */
+  beforeChange?: string;
+
+  /**
+   * 鍙樻洿鍚庣姸鎬�
+   */
+  afterChange?: string;
+
+  /**
+   * 鍙樻洿鏃ユ湡
+   */
+  changeDate?: string;
+
+  /**
+   * 鍙樻洿浜�
+   */
+  changeUser?: number | string;
+
+  /**
+   * 鍙樻洿浜洪儴闂�
+   */
+  userDept?: number | string;
+
+  /**
+   * 鍙樻洿鎻忚堪
+   */
+  changeDesc?: string;
+
+  /**
+   * 鎻忚堪
+   */
+  remark?: string;
+
+  /**
+   * 纭浜�
+   */
+  confirmor?: number | string;
+
+  /**
+   * 鍙樻洿鍗曠姸鎬侊紙0-鐢宠锛�1-鍚屾剰锛�2-椹冲洖锛�
+   */
+  orderStatus?: string;
+}
+
+export interface EimsEquStatuBo {
+  /**
+   * 璁惧鐘舵�佽褰昳d
+   */
+  equStatuId?: number | string;
+
+  /**
+   * 璁惧id
+   */
+  equId?: number | string;
+
+  /**
+   * 鍙樻洿鍓嶇姸鎬�
+   */
+  beforeChange?: string;
+
+  /**
+   * 鍙樻洿鍚庣姸鎬�
+   */
+  afterChange?: string;
+
+  /**
+   * 鍙樻洿鏃ユ湡
+   */
+  changeDate?: string;
+
+  /**
+   * 鍙樻洿鎻忚堪
+   */
+  changeDesc?: string;
+
+  /**
+   * 鎻忚堪
+   */
+  remark?: string;
+
+  /**
+   * 鍙樻洿鍗曠姸鎬侊紙0-鐢宠锛�1-鍚屾剰锛�2-椹冲洖锛�
+   */
+  orderStatus?: string;
+}
\ No newline at end of file
diff --git a/eims-ui-mobile/src/service/equ_status.ts b/eims-ui-mobile/src/service/equ_status.ts
new file mode 100644
index 0000000..85e8e16
--- /dev/null
+++ b/eims-ui-mobile/src/service/equ_status.ts
@@ -0,0 +1,48 @@
+import { http } from '@/utils/http'
+import type { EimsEquStatuVO, EimsEquStatuBo } from './equ_status.d'
+
+/**
+ * 鏌ヨ璁惧鐘舵�佽褰曞垪琛�
+ */
+export const getEquStatuList = (params: EimsEquStatuBo & { pageNum?: number; pageSize?: number }) => {
+  return http.get<{ rows: EimsEquStatuVO[], total: number }>('/eims/equStatu/list', params)
+}
+
+/**
+ * 鑾峰彇璁惧鐘舵�佽褰曡缁嗕俊鎭�
+ * @param equStatuId 涓婚敭
+ */
+export const getEquStatuInfo = (equStatuId: number | string) => {
+  return http.get<EimsEquStatuVO>(`/eims/equStatu/${equStatuId}`)
+}
+
+/**
+ * 鏂板璁惧鐘舵�佽褰�
+ */
+export const addEquStatu = (data: EimsEquStatuBo) => {
+  return http.post('/eims/equStatu', data)
+}
+
+/**
+ * 淇敼璁惧鐘舵�佽褰�
+ */
+export const updateEquStatu = (data: EimsEquStatuBo) => {
+  return http.put('/eims/equStatu', data)
+}
+
+/**
+ * 鍒犻櫎璁惧鐘舵�佽褰�
+ * @param equStatuIds 涓婚敭涓�
+ */
+export const deleteEquStatu = (equStatuIds: (number | string)[]) => {
+  return http.delete(`/eims/equStatu/${equStatuIds.join(',')}`)
+}
+
+/**
+ * 瀵煎嚭璁惧鐘舵�佽褰曞垪琛�
+ */
+export const exportEquStatu = (params: EimsEquStatuBo) => {
+  return http.post('/eims/equStatu/export', params, {
+    responseType: 'blob'
+  })
+}
\ No newline at end of file
diff --git a/eims-ui-mobile/src/types/uni-pages.d.ts b/eims-ui-mobile/src/types/uni-pages.d.ts
index 68e1709..470679c 100644
--- a/eims-ui-mobile/src/types/uni-pages.d.ts
+++ b/eims-ui-mobile/src/types/uni-pages.d.ts
@@ -7,6 +7,7 @@
   url: "/pages/home/index" |
        "/pages/equ/equ-list" |
        "/pages/equ/index" |
+       "/pages/equ-status/list" |
        "/pages/fixture/fixture-list" |
        "/pages/inspect/insp-add" |
        "/pages/inspect/insp-record" |
@@ -16,6 +17,7 @@
        "/pages/maint/maint-st" |
        "/pages/maint/order-detail" |
        "/pages/my/index" |
+       "/pages/my/password" |
        "/pages/repair/repair-add" |
        "/pages/repair/repair-fb" |
        "/pages/repair/req-detail" |
diff --git a/eims/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java b/eims/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
index 5734b09..6df200b 100644
--- a/eims/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
+++ b/eims/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
@@ -10,7 +10,7 @@
  * @author Lion Li
  */
 
-@SpringBootApplication(scanBasePackages={"org.dromara", "cn.shlanbao"})
+@SpringBootApplication(scanBasePackages={"org.dromara"})
 public class DromaraApplication {
 
     public static void main(String[] args) {
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java
index 9bbd13b..38b07ca 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java
@@ -69,5 +69,15 @@
      */
     private String remark;
 
+    /**
+     * 纭浜�
+     */
+    private Long confirmor;
+
+    /**
+     * 鍙樻洿鍗曠姸鎬侊紙0-鐢宠锛�1-鍚屾剰锛�2-椹冲洖锛�
+     */
+    private String orderStatus;
+
 
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java
index 2851e41..dd1efa4 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java
@@ -60,7 +60,6 @@
     /**
      * 鍙樻洿鎻忚堪
      */
-    @NotBlank(message = "鍙樻洿鎻忚堪涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private String changeDesc;
 
     /**
@@ -68,5 +67,13 @@
      */
     private String remark;
 
+    /**
+     * 纭浜�
+     */
+    private Long confirmor;
 
+    /**
+     * 鍙樻洿鍗曠姸鎬侊紙0-鐢宠锛�1-鍚屾剰锛�2-椹冲洖锛�
+     */
+    private String orderStatus;
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java
index 3f5d8c7..a602de9 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java
@@ -47,8 +47,10 @@
     /**
      * 璁惧鍚嶇О
      */
-    @Translation(type = TransConstant.EQU_ID_TO_NAME, mapper = "equId")
     private String equName;
+
+
+    private String assetNo;
 
     /**
      * 鍙樻洿鍓嶇姸鎬�
@@ -96,4 +98,19 @@
     private String remark;
 
 
+    /**
+     * 纭浜�
+     */
+    private Long confirmor;
+
+
+    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "confirmor")
+    private String confirmorName;
+
+    /**
+     * 鍙樻洿鍗曠姸鎬侊紙0-鐢宠锛�1-鍚屾剰锛�2-椹冲洖锛�
+     */
+    private String orderStatus;
+
+
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java
index e5d8f1e..8c1822b 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java
@@ -4,6 +4,7 @@
 import com.aizuda.snailjob.client.job.core.dto.JobArgs;
 import com.aizuda.snailjob.client.model.ExecuteResult;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
@@ -43,19 +44,20 @@
     @SneakyThrows
     @Transactional(rollbackFor = Exception.class)
     public ExecuteResult jobExecute(JobArgs jobArgs) {
-        // 鑾峰彇浠婂ぉ鏃ユ湡
 
-        Date today = new Date();
-        LambdaQueryWrapper<EimsInspectPlan> planBoQueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper<EimsInspectPlan> planBoQueryWrapper = Wrappers.query();
         // 鏌ヨ鍚敤鐨勭偣妫�璁″垝
-        planBoQueryWrapper.eq(EimsInspectPlan::getStatus, DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL);
+        planBoQueryWrapper.eq("ip.status", DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL)
+            .eq("equ.status", DictConstants.EIMS_EQU_STATUS_DETAIL.SHIYONG);
+        // 澧炲姞杩囨护鏉′欢 涓婃鐢熸垚鏃ユ湡灏忎簬褰撳墠鏃ユ湡
+        planBoQueryWrapper.and(wrapper -> wrapper.eq("ip.insp_next_time", DateUtils.getDate()).or().isNull("ip.insp_next_time"));
 //        // 杩囨护娌℃湁涓嬫杩愯鏃堕棿
 //        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspNextTime);
 //        // 杩囨护娌℃湁鐐规鍛ㄦ湡鐨勬暟鎹�
 //        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspCycle);
 //        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspCycleUnit);
 
-        List<EimsInspectPlanVo> planVoList = planMapper.selectVoList(planBoQueryWrapper);
+        List<EimsInspectPlanVo> planVoList = planMapper.selectVoListJoinEqu(planBoQueryWrapper);
         for (int i = 0; i < planVoList.size(); i++) {
             EimsInspectPlanVo planVo = planVoList.get(i);
 //            // 鐐规璁″垝add鐨勬椂鍊欎細鑷姩鐢熸垚涓嬫杩愯鏃堕棿
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java
index ca5e691..12d35eb 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java
@@ -4,6 +4,7 @@
 import com.aizuda.snailjob.client.job.core.dto.JobArgs;
 import com.aizuda.snailjob.client.model.ExecuteResult;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
@@ -40,17 +41,19 @@
         // 鑾峰彇浠婂ぉ鏃ユ湡
 
         Date today = new Date();
-        LambdaQueryWrapper<EimsMaintPlan> planBoQueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper<EimsMaintPlan> planBoQueryWrapper = Wrappers.query();
         // 鏌ヨ鍚敤鐨勪繚鍏昏鍒�
-        planBoQueryWrapper.eq(EimsMaintPlan::getStatus, DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL);
-        // 杩囨护娌℃湁涓嬫杩愯鏃堕棿
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintNextTime);
-        // 杩囨护娌℃湁淇濆吇鍛ㄦ湡鐨勬暟鎹�
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintCycle);
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintCycleUnit);
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintRule);
 
-        List<EimsMaintPlanVo> planVoList = planMapper.selectVoList(planBoQueryWrapper);
+        planBoQueryWrapper.eq("mp.status", DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL);
+        planBoQueryWrapper .eq("equ.status", DictConstants.EIMS_EQU_STATUS_DETAIL.SHIYONG);
+        // 杩囨护涓嬫杩愯鏃堕棿绛変簬褰撳ぉ鏃堕棿鐨�
+        planBoQueryWrapper.eq("mp.maint_next_time", DateUtils.getDate());
+        // 杩囨护娌℃湁淇濆吇鍛ㄦ湡鐨勬暟鎹�
+        planBoQueryWrapper.isNotNull("mp.maint_cycle");
+        planBoQueryWrapper.isNotNull("mp.maint_cycle_unit");
+        planBoQueryWrapper.isNotNull("mp.maint_rule");
+
+        List<EimsMaintPlanVo> planVoList = planMapper.selectVoListJoinEqu(planBoQueryWrapper);
         for (int i = 0; i < planVoList.size(); i++) {
             EimsMaintPlanVo planVo = planVoList.get(i);
             // 淇濆吇璁″垝add鐨勬椂鍊欎細鑷姩鐢熸垚涓嬫杩愯鏃堕棿
@@ -63,9 +66,6 @@
 
             // 璁$畻鐢熸垚宸ュ崟鏃堕棿
             Long maintCycle = planVo.getMaintCycle();
-            String maintRule = planVo.getMaintRule();
-            Date firstTime = planVo.getMaintFirstTime();
-            Date lastTime = planVo.getMaintLastTime();
             Date newNext = null;
             String maintCycleUnit = planVo.getMaintCycleUnit();
             switch (maintCycleUnit) {
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java
index 6f8ef36..482cd32 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java
@@ -1,8 +1,12 @@
 package org.dromara.eims.mapper;
 
 import org.dromara.eims.domain.EimsEquStatu;
+import org.dromara.eims.domain.bo.EimsEquStatuBo;
 import org.dromara.eims.domain.vo.EimsEquStatuVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.apache.ibatis.annotations.Param;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import java.util.List;
 
 /**
  * 璁惧鐘舵�佽褰昅apper鎺ュ彛
@@ -12,4 +16,6 @@
  */
 public interface EimsEquStatuMapper extends BaseMapperPlus<EimsEquStatu, EimsEquStatuVo> {
 
+    List<EimsEquStatuVo> selectEquStatuPage(@Param("bo") EimsEquStatuBo bo, @Param("pageQuery") PageQuery pageQuery);
+
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectPlanMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectPlanMapper.java
index 5845888..12ed638 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectPlanMapper.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectPlanMapper.java
@@ -1,12 +1,15 @@
 package org.dromara.eims.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.eims.domain.EimsInspectPlan;
 import org.dromara.eims.domain.vo.EimsInspectPlanVo;
+
+import java.util.List;
 
 /**
  * 鐐规璁″垝Mapper鎺ュ彛
@@ -16,4 +19,6 @@
  */
 public interface EimsInspectPlanMapper extends BaseMapperPlus<EimsInspectPlan, EimsInspectPlanVo> {
     Page<EimsInspectPlanVo> selectInspPlanList(@Param("page") Page<EimsInspectPlanVo> page, @Param(Constants.WRAPPER) Wrapper<EimsInspectPlan> queryWrapper);
+
+    List<EimsInspectPlanVo> selectVoListJoinEqu(@Param(Constants.WRAPPER) Wrapper<EimsInspectPlan> queryWrapper);
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintPlanMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintPlanMapper.java
index 63d5e4d..03b3a82 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintPlanMapper.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintPlanMapper.java
@@ -1,14 +1,18 @@
 package org.dromara.eims.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
+import org.dromara.eims.domain.EimsInspectPlan;
 import org.dromara.eims.domain.EimsMaintPlan;
 import org.dromara.eims.domain.EimsRepairReq;
 import org.dromara.eims.domain.vo.EimsMaintPlanVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.eims.domain.vo.EimsRepairReqVo;
+
+import java.util.List;
 
 /**
  * 淇濆吇璁″垝Mapper鎺ュ彛
@@ -19,4 +23,5 @@
 public interface EimsMaintPlanMapper extends BaseMapperPlus<EimsMaintPlan, EimsMaintPlanVo> {
     Page<EimsMaintPlanVo> selectMaintPlanList(@Param("page") Page<EimsMaintPlanVo> page, @Param(Constants.WRAPPER) Wrapper<EimsMaintPlan> queryWrapper);
 
+    List<EimsMaintPlanVo> selectVoListJoinEqu(@Param(Constants.WRAPPER) Wrapper<EimsMaintPlan> queryWrapper);
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java
index 160f7dd..2d00b78 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java
@@ -1,5 +1,7 @@
 package org.dromara.eims.service.impl;
 
+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;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -8,6 +10,7 @@
 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.springframework.stereotype.Service;
 import org.dromara.eims.domain.bo.EimsEquStatuBo;
@@ -15,6 +18,9 @@
 import org.dromara.eims.domain.EimsEquStatu;
 import org.dromara.eims.mapper.EimsEquStatuMapper;
 import org.dromara.eims.service.IEimsEquStatuService;
+import org.dromara.eims.service.IEimsEquService;
+import org.dromara.eims.domain.bo.EimsEquBo;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Map;
@@ -31,6 +37,7 @@
 public class EimsEquStatuServiceImpl implements IEimsEquStatuService {
 
     private final EimsEquStatuMapper baseMapper;
+    private final IEimsEquService equService;
 
     /**
      * 鏌ヨ璁惧鐘舵�佽褰�
@@ -52,9 +59,11 @@
      */
     @Override
     public TableDataInfo<EimsEquStatuVo> queryPageList(EimsEquStatuBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<EimsEquStatu> lqw = buildQueryWrapper(bo);
-        Page<EimsEquStatuVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-        return TableDataInfo.build(result);
+        // 浣跨敤鑷畾涔塖QL瀹炵幇璁惧鐘舵�佷笌璁惧琛ㄧ殑妯$硦鍏宠仈鍒嗛〉鏌ヨ
+        Page<EimsEquStatuVo> page = pageQuery.build();
+        List<EimsEquStatuVo> list = baseMapper.selectEquStatuPage(bo, pageQuery);
+        page.setRecords(list);
+        return TableDataInfo.build(page);
     }
 
     /**
@@ -89,7 +98,11 @@
      */
     @Override
     public Boolean insertByBo(EimsEquStatuBo bo) {
+        // 鑾峰彇鐧诲綍鐢ㄦ埛
+        LoginUser loginUser = LoginHelper.getLoginUser();
         EimsEquStatu add = MapstructUtils.convert(bo, EimsEquStatu.class);
+        add.setChangeUser(loginUser.getUserId());
+        add.setChangeDate(DateUtils.getNowDate());
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -105,10 +118,20 @@
      * @return 鏄惁淇敼鎴愬姛
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean updateByBo(EimsEquStatuBo bo) {
         EimsEquStatu update = MapstructUtils.convert(bo, EimsEquStatu.class);
         validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
+        boolean result = baseMapper.updateById(update) > 0;
+        // 鍚屾剰鏃跺悓姝ヨ澶囩姸鎬�
+        if ("1".equals(String.valueOf(bo.getOrderStatus()))) {
+            EimsEquStatuVo vo = baseMapper.selectVoById(bo.getEquStatuId());
+            EimsEquBo equBo = new EimsEquBo();
+            equBo.setEquId(vo.getEquId());
+            equBo.setStatus(vo.getAfterChange());
+            equService.updateByBo(equBo);
+        }
+        return result;
     }
 
     /**
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 00410e6..e8e6f60 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
@@ -132,20 +132,12 @@
     @Override
     public TableDataInfo<EimsInspectStVo> queryPageList(EimsInspectStBo bo, PageQuery pageQuery) {
         bo.setType(bo.getViewMode());
-        // 鏈堣鍥�
-//        if(bo.getViewMode().equals("Month")){
             QueryWrapper<EimsInspectSt> qw = buildWrapper(bo);
             Page<EimsInspectStVo> result = baseMapper.selectInspStList(pageQuery.build(), qw);
             // 濉厖鏁版嵁
             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);
-//        }
 
-//       return null;
     }
 
     /**
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml
index 8aa61f8..5b58638 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml
@@ -4,4 +4,40 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.eims.mapper.EimsEquStatuMapper">
 
+    <resultMap type="org.dromara.eims.domain.vo.EimsEquStatuVo" id="EquStatuVoResult">
+    </resultMap>
+
+    <select id="selectEquStatuPage" resultMap="EquStatuVoResult">
+        SELECT s.*, e.equ_name AS equName, e.asset_no AS assetNo
+        FROM eims_equ_statu s
+        LEFT JOIN eims_equ e ON s.equ_id = e.equ_id
+        <where>
+            <if test="bo.equId != null">
+                AND s.equ_id = #{bo.equId}
+            </if>
+            <if test="bo.beforeChange != null and bo.beforeChange != ''">
+                AND s.before_change = #{bo.beforeChange}
+            </if>
+            <if test="bo.afterChange != null and bo.afterChange != ''">
+                AND s.after_change = #{bo.afterChange}
+            </if>
+            <if test="bo.changeUser != null">
+                AND s.change_user = #{bo.changeUser}
+            </if>
+            <if test="bo.orderStatus != null and bo.orderStatus != ''">
+                AND s.order_status = #{bo.orderStatus}
+            </if>
+            <if test="bo.params != null and bo.params.beginTime != null and bo.params.endTime != null">
+                AND s.change_date BETWEEN #{bo.params.beginTime} AND #{bo.params.endTime}
+            </if>
+            <if test="bo.params != null and bo.params.searchValue != null and bo.params.searchValue != ''">
+                AND (
+                    e.equ_name LIKE CONCAT('%', #{bo.params.searchValue}, '%')
+                    OR e.asset_no LIKE CONCAT('%', #{bo.params.searchValue}, '%')
+                )
+            </if>
+        </where>
+        ORDER BY s.change_date DESC
+    </select>
+
 </mapper>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectPlanMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectPlanMapper.xml
index dda9e29..d76df5c 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectPlanMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectPlanMapper.xml
@@ -16,4 +16,10 @@
                  LEFT JOIN sys_dict_data dd on dd.dict_type = 'maint_cycle_unit' and dd.dict_value = ip.insp_cycle_unit
             ${ew.getCustomSqlSegment}
     </select>
+    <select id="selectVoListJoinEqu" resultType="org.dromara.eims.domain.vo.EimsInspectPlanVo">
+        SELECT ip.*
+        FROM eims_inspect_plan ip
+                 LEFT JOIN eims_equ equ ON ip.equ_id = equ.equ_id
+        ${ew.getCustomSqlSegment}
+    </select>
 </mapper>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintPlanMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintPlanMapper.xml
index 0987499..71250c7 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintPlanMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintPlanMapper.xml
@@ -16,4 +16,10 @@
                  LEFT JOIN sys_dict_data dd on dd.dict_type = 'maint_cycle_unit' and dd.dict_value = mp.maint_cycle_unit
             ${ew.getCustomSqlSegment}
     </select>
+    <select id="selectVoListJoinEqu" resultType="org.dromara.eims.domain.vo.EimsMaintPlanVo">
+        SELECT mp.*
+        FROM eims_maint_plan mp
+                 LEFT JOIN eims_equ equ ON mp.equ_id = equ.equ_id
+            ${ew.getCustomSqlSegment}
+    </select>
 </mapper>

--
Gitblit v1.9.3