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