From 3e0f519c396ac8a72e7bbd426e4f38fa6cc403dc Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期五, 14 三月 2025 16:50:34 +0800 Subject: [PATCH] 点检模块 --- eims-ui/apps/web-antd/src/views/eims/insp-st/insp-st-drawer.vue | 8 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java | 48 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java | 2 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java | 1 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrder.java | 8 eims-ui/apps/web-antd/src/api/eims/insp-st/index.ts | 62 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectPlanBo.java | 123 + eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintStMapper.java | 20 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java | 255 +++ eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml | 20 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java | 36 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java | 106 + eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectStController.java | 105 + eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintPlanVo.java | 3 eims-ui/apps/web-antd/src/api/eims/insp-plan/index.ts | 63 eims-ui/apps/web-antd/src/views/eims/insp-plan/index.vue | 302 +++ eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintSt.java | 8 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectPlanServiceImpl.java | 200 ++ eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java | 77 eims-ui/apps/web-antd/src/api/eims/maint-st/index.ts | 62 eims-ui/apps/web-antd/src/api/eims/maint-st/model.d.ts | 44 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintOrderVo.java | 5 eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue | 80 eims-ui/apps/web-antd/src/views/eims/maint-plan/index.vue | 4 eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx | 15 eims-ui/apps/web-antd/src/api/eims/insp-record/model.d.ts | 97 + eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx | 17 eims-ui/apps/web-antd/src/api/eims/insp-plan/model.d.ts | 92 + eims-ui/apps/web-antd/src/constants/dict/index.ts | 12 eims-ui/apps/web-antd/src/views/eims/insp-record/data.tsx | 298 +++ eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java | 80 eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue | 10 eims-ui/apps/web-antd/src/views/eims/maint-order/maint-order-drawer.vue | 14 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java | 14 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectRecord.java | 130 + eims-ui/packages/@core/base/shared/src/constants/dict-enum.ts | 5 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectRecordVo.java | 175 ++ eims-ui/apps/web-antd/src/views/eims/maint-plan/data.tsx | 5 eims-ui/apps/web-antd/src/views/eims/insp-record/insp-record-drawer.vue | 167 ++ eims-ui/apps/web-antd/src/views/eims/maint-st/maint-st-drawer.vue | 6 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintStMapper.xml | 13 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintOrderBo.java | 10 eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts | 61 eims-ui/apps/web-antd/src/api/eims/insp-st/model.d.ts | 44 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectPlanService.java | 78 eims-ui/apps/web-antd/src/views/eims/maint-st/index.vue | 70 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java | 106 + eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectPlan.java | 112 + eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintStVo.java | 14 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectPlanMapper.java | 19 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectStMapper.java | 22 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java | 204 ++ eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectPlanMapper.xml | 19 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectRecordBo.java | 135 + eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx | 55 eims-ui/apps/web-antd/src/views/eims/insp-plan/insp-plan-drawer.vue | 152 + eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java | 13 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml | 14 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java | 16 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectPlanVo.java | 158 + eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DictConstants.java | 2 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java | 124 + /dev/null | 7 eims-ui/apps/web-antd/src/api/eims/maint-order/model.d.ts | 5 eims-ui/apps/web-antd/src/views/eims/insp-record/index.vue | 131 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java | 20 eims-ui/apps/web-antd/src/views/eims/insp-plan/data.tsx | 290 +++ eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectStService.java | 68 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java | 83 + 69 files changed, 4,554 insertions(+), 270 deletions(-) diff --git a/eims-ui/apps/web-antd/src/api/eims/insp-plan/index.ts b/eims-ui/apps/web-antd/src/api/eims/insp-plan/index.ts new file mode 100644 index 0000000..792501d --- /dev/null +++ b/eims-ui/apps/web-antd/src/api/eims/insp-plan/index.ts @@ -0,0 +1,63 @@ +import type { InspectPlanVO } from './model'; + +import type { ID, IDS } from '#/api/common'; + +import { commonExport } from '#/api/helper'; +import { requestClient } from '#/api/request'; + +enum Api { + inspectPlanExport = '/eims/inspectPlan/export', + inspectPlanList = '/eims/inspectPlan/list', + root = '/eims/inspectPlan' +} + +/** + * 鏌ヨ鐐规璁″垝鍒楄〃 + * @param query + * @returns {*} + */ + +export function listInspPlan(params?: any) { + return requestClient.get<InspectPlanVO[]>(Api.inspectPlanList, { params }); +} + + + +/** + * 鏌ヨ鐐规璁″垝璇︾粏 + * @param inspectPlanId + */ +export function getInspPlan(inspectPlanId: ID) { + return requestClient.get<InspectPlanVO>(`${Api.root}/${inspectPlanId}`); +} + +/** + * 鏂板鐐规璁″垝 + * @param data + */ +export function addInspPlan(data: any) { + return requestClient.postWithMsg<void>(Api.root, data); +} + +/** + * 淇敼鐐规璁″垝 + * @param data + */ +export function updateInspPlan(data: any) { + return requestClient.putWithMsg<void>(Api.root, data); +} + +/** + * 鍒犻櫎鐐规璁″垝 + * @param inspectPlanId + */ +export function delInspPlan(inspectPlanId: IDS) { + return requestClient.deleteWithMsg<void>(`${Api.root}/${inspectPlanId}`); +} +/** + * 瀵煎嚭 + * @param + */ +export function inspPlanExport(data: any) { + return commonExport(Api.inspectPlanExport, data); +} diff --git a/eims-ui/apps/web-antd/src/api/eims/insp-plan/model.d.ts b/eims-ui/apps/web-antd/src/api/eims/insp-plan/model.d.ts new file mode 100644 index 0000000..88a4d09 --- /dev/null +++ b/eims-ui/apps/web-antd/src/api/eims/insp-plan/model.d.ts @@ -0,0 +1,92 @@ +export interface InspectPlanVO { + /** + * + */ + id: number | string; + + /** + * 璁惧id + + */ + equId: number | string; + /** + * 璁惧鍚嶇О + + */ + equName: string; + /** + * 璧勪骇缂栧彿 + + */ + assteNo: string; + + /** + * 鐐规绫诲瀷锛堝瓧鍏革級 + */ + inspType: string; + + /** + * 鐐规椤瑰悕绉� + */ + inspName: string; + + /** + * 鐐规椤圭紪鍙� + */ + inspNo: number; + + /** + * 鐐规璇存槑 + */ + inspDesc: string; + + /** + * 鐐规鍛ㄦ湡 + */ + inspCycle: number; + + /** + * 鐐规鍛ㄦ湡鍗曚綅锛堝瓧鍏革級 + */ + inspCycleUnit: string; + + /** + * 鐐规瑙勫垯锛堝瓧鍏革級淇濆吇鏃堕棿璁$畻锛�1-鎸夊懆鏈� 2-鎸変笂娆′繚鍏绘椂闂� + */ + inspRule: string; + + /** + * 鐐规浜� + */ + inspUser: number; + + /** + * 鐐规閮ㄩ棬 + */ + inspDept: number; + + /** + * 鐘舵�侊紙瀛楀吀锛� 0-鍚敤 1-绂佺敤 + */ + status: string; + + /** + * 棣栨鎵ц鏃堕棿 + */ + inspFirstTime: string; + + /** + * 涓婃鎵ц鏃堕棿 + */ + inspLastTime: string; + + /** + * 涓嬫鎵ц鏃堕棿 + */ + inspNextTime: string; + + /** + * 澶囨敞 + */ + remark: string; +} diff --git a/eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts b/eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts new file mode 100644 index 0000000..09faab4 --- /dev/null +++ b/eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts @@ -0,0 +1,61 @@ +import type { InspectRecordVO } from './model'; + +import type { ID, IDS } from '#/api/common'; + +import { commonExport } from '#/api/helper'; +import { requestClient } from '#/api/request'; + +enum Api { + inspRecordExport = '/eims/inspRecord/export', + inspRecordList = '/eims/inspRecord/list', + root = '/eims/inspRecord' +} + +/** + * 鏌ヨ鐐规璁板綍鍒楄〃 + * @param query + * @returns {*} + */ + +export function listInspRecord(params?: any) { + return requestClient.get<InspectRecordVO[]>(Api.inspRecordList, { params }); +} + +/** + * 鏌ヨ鐐规璁板綍璇︾粏 + * @param inspRecordId + */ +export function getInspRecord(inspRecordId: ID) { + return requestClient.get<InspectRecordVO>(`${Api.root}/${inspRecordId}`); +} + +/** + * 鏂板鐐规璁板綍 + * @param data + */ +export function addInspRecord(data: any) { + return requestClient.postWithMsg<void>(Api.root, data); +} + +/** + * 淇敼鐐规璁板綍 + * @param data + */ +export function updateInspRecord(data: any) { + return requestClient.putWithMsg<void>(Api.root, data); +} + +/** + * 鍒犻櫎鐐规璁板綍 + * @param inspRecordId + */ +export function delInspRecord(inspRecordId: IDS) { + return requestClient.deleteWithMsg<void>(`${Api.root}/${inspRecordId}`); +} +/** + * 瀵煎嚭 + * @param + */ +export function inspRecordExport(data: any) { + return commonExport(Api.inspRecordExport, data); +} diff --git a/eims-ui/apps/web-antd/src/api/eims/insp-record/model.d.ts b/eims-ui/apps/web-antd/src/api/eims/insp-record/model.d.ts new file mode 100644 index 0000000..688c76f --- /dev/null +++ b/eims-ui/apps/web-antd/src/api/eims/insp-record/model.d.ts @@ -0,0 +1,97 @@ +export interface InspectRecordVO { + /** + * id + */ + id: string | number; + + /** + * 璁惧di + */ + equId: string | number; + /** + * 璁惧鍚嶇О + + */ + equName: string; + /** + * 璧勪骇缂栧彿 + + */ + assteNo: string; + + /** + * 鐐规鍚嶇О + */ + inspName: string; + + /** + * 鐐规鎻忚堪 + */ + inspDesc: string; + + /** + * 鐘舵�� + */ + status: string; + + /** + * 鐐规缂栫爜 + */ + inspCode: string; + + /** + * 鍊艰褰曟柟寮忥紙瀛楀吀锛� + */ + recordMode: string; + + /** + * 鍙傝�冨�� + */ + referenceValue: string; + + /** + * 涓婇檺 + */ + upperLimit: string; + + /** + * 涓嬮檺 + */ + lowLimit: string; + + /** + * 妫�鏌ュ�� + */ + checkValue: string; + + /** + * 鐐规缁撴灉锛堝瓧鍏革級 + */ + inspResult: string; + + /** + * 鐐规鏃堕棿 + */ + inspTime: string; + + /** + * 璁″垝鐐规鏃ユ湡 + */ + planTime: string; + + /** + * 楠岃瘉浜� + */ + verifyUser: number; + + /** + * 璁″垝id + */ + planId: string | number; + + /** + * 澶囨敞 + */ + remark: string; + +} diff --git a/eims-ui/apps/web-antd/src/api/eims/insp-st/index.ts b/eims-ui/apps/web-antd/src/api/eims/insp-st/index.ts new file mode 100644 index 0000000..226a01f --- /dev/null +++ b/eims-ui/apps/web-antd/src/api/eims/insp-st/index.ts @@ -0,0 +1,62 @@ +import type { InspectStVO } from './model'; + +import type { ID, IDS } from '#/api/common'; + +import { commonExport } from '#/api/helper'; +import { requestClient } from '#/api/request'; + +enum Api { + inspectStExport = '/eims/inspectSt/export', + inspectStList = '/eims/inspectSt/list', + root = '/eims/inspectSt' +} + +/** + * 鏌ヨ鐐规姹囨�诲垪琛� + * @param query + * @returns {*} + */ + +export function listInspectSt(params?: any) { + return requestClient.get<InspectStVO[]>(Api.inspectStList, { params }); +} + + +/** + * 鏌ヨ鐐规姹囨�昏缁� + * @param inspectStId + */ +export function getInspectSt(inspectStId: ID) { + return requestClient.get<InspectStVO>(`${Api.root}/${inspectStId}`); +} + +/** + * 鏂板鐐规姹囨�� + * @param data + */ +export function addInspectSt(data: any) { + return requestClient.postWithMsg<void>(Api.root, data); +} + +/** + * 淇敼鐐规姹囨�� + * @param data + */ +export function updateInspectSt(data: any) { + return requestClient.putWithMsg<void>(Api.root, data); +} + +/** + * 鍒犻櫎鐐规姹囨�� + * @param inspectStId + */ +export function delInspectSt(inspectStId: IDS) { + return requestClient.deleteWithMsg<void>(`${Api.root}/${inspectStId}`); +} +/** + * 瀵煎嚭 + * @param + */ +export function inspectStExport(data: any) { + return commonExport(Api.inspectStExport, data); +} diff --git a/eims-ui/apps/web-antd/src/api/eims/insp-st/model.d.ts b/eims-ui/apps/web-antd/src/api/eims/insp-st/model.d.ts new file mode 100644 index 0000000..96d6d65 --- /dev/null +++ b/eims-ui/apps/web-antd/src/api/eims/insp-st/model.d.ts @@ -0,0 +1,44 @@ +export interface InspectStVO { + /** + * + */ + 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/apps/web-antd/src/api/eims/maint-order-st/index.ts b/eims-ui/apps/web-antd/src/api/eims/maint-order-st/index.ts deleted file mode 100644 index 0866850..0000000 --- a/eims-ui/apps/web-antd/src/api/eims/maint-order-st/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -import type { MaintOrderStVO } from './model'; - -import type { ID, IDS } from '#/api/common'; - -import { commonExport } from '#/api/helper'; -import { requestClient } from '#/api/request'; - -enum Api { - maintOrderrStExport = '/eims/maintOrderSt/export', - maintOrderrStList = '/eims/maintOrderSt/list', - root = '/eims/maintOrderSt' -} - -/** - * 鏌ヨ淇濆吇宸ュ崟鍒楄〃 - * @param query - * @returns {*} - */ - -export function listMaintOrderSt(params?: any) { - return requestClient.get<MaintOrderStVO[]>(Api.maintOrderrStList, { params }); -} - - -/** - * 鏌ヨ淇濆吇宸ュ崟璇︾粏 - * @param maintOrderrStId - */ -export function getMaintOrderSt(maintOrderrStId: ID) { - return requestClient.get<MaintOrderStVO>(`${Api.root}/${maintOrderrStId}`); -} - -/** - * 鏂板淇濆吇宸ュ崟 - * @param data - */ -export function addMaintOrderSt(data: any) { - return requestClient.postWithMsg<void>(Api.root, data); -} - -/** - * 淇敼淇濆吇宸ュ崟 - * @param data - */ -export function updateMaintOrderSt(data: any) { - return requestClient.putWithMsg<void>(Api.root, data); -} - -/** - * 鍒犻櫎淇濆吇宸ュ崟 - * @param maintOrderrStId - */ -export function delMaintOrderSt(maintOrderrStId: IDS) { - return requestClient.deleteWithMsg<void>(`${Api.root}/${maintOrderrStId}`); -} -/** - * 瀵煎嚭 - * @param - */ -export function maintOrderrStExport(data: any) { - return commonExport(Api.maintOrderrStExport, data); -} diff --git a/eims-ui/apps/web-antd/src/api/eims/maint-order-st/model.d.ts b/eims-ui/apps/web-antd/src/api/eims/maint-order-st/model.d.ts deleted file mode 100644 index c5a7ea3..0000000 --- a/eims-ui/apps/web-antd/src/api/eims/maint-order-st/model.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -export interface MaintOrderStVO { - /** - * - */ - id: number | string; - - /** - * - */ - title: string; - - /** - * - */ - equId: number | string; - status: string; - - /** - * - */ - planTime: string; - - /** - * 淇濆吇浜� - */ - maintUser: number; - - /** - * 楠岃瘉浜� - */ - verifyUser: number; - verifyTime: string; - - /** - * 鐗硅浜嬮」 - */ - specialNote: string; - - /** - * 澶囨敞 - */ - remark: string; -} - -export interface MaintOrderStForm extends BaseEntity { - /** - * - */ - id?: number | string; - - /** - * - */ - title?: string; - - /** - * - */ - equId?: number | string; - - /** - * - */ - planTime?: string; - - /** - * 淇濆吇浜� - */ - maintUser?: number; - - /** - * 楠岃瘉浜� - */ - verifyUser?: number; - - /** - * 鐗硅浜嬮」 - */ - specialNote?: string; - - /** - * 澶囨敞 - */ - remark?: string; -} diff --git a/eims-ui/apps/web-antd/src/api/eims/maint-order/model.d.ts b/eims-ui/apps/web-antd/src/api/eims/maint-order/model.d.ts index 8605bb8..ffb06e7 100644 --- a/eims-ui/apps/web-antd/src/api/eims/maint-order/model.d.ts +++ b/eims-ui/apps/web-antd/src/api/eims/maint-order/model.d.ts @@ -15,6 +15,11 @@ maintType: string; /** + * 宸ヤ綔鎻忚堪 + */ + maintDesc: string; + + /** * 璁″垝琛ㄥ啑浣�-淇濆吇鍛ㄦ湡 */ maintCycle: number; diff --git a/eims-ui/apps/web-antd/src/api/eims/maint-st/index.ts b/eims-ui/apps/web-antd/src/api/eims/maint-st/index.ts new file mode 100644 index 0000000..8123367 --- /dev/null +++ b/eims-ui/apps/web-antd/src/api/eims/maint-st/index.ts @@ -0,0 +1,62 @@ +import type { MaintStVO } from './model'; + +import type { ID, IDS } from '#/api/common'; + +import { commonExport } from '#/api/helper'; +import { requestClient } from '#/api/request'; + +enum Api { + maintStExport = '/eims/maintSt/export', + maintStList = '/eims/maintSt/list', + root = '/eims/maintSt' +} + +/** + * 鏌ヨ淇濆吇姹囨�诲垪琛� + * @param query + * @returns {*} + */ + +export function listMaintSt(params?: any) { + return requestClient.get<MaintStVO[]>(Api.maintStList, { params }); +} + + +/** + * 鏌ヨ淇濆吇姹囨�昏缁� + * @param maintStId + */ +export function getMaintSt(maintStId: ID) { + return requestClient.get<MaintStVO>(`${Api.root}/${maintStId}`); +} + +/** + * 鏂板淇濆吇姹囨�� + * @param data + */ +export function addMaintSt(data: any) { + return requestClient.postWithMsg<void>(Api.root, data); +} + +/** + * 淇敼淇濆吇姹囨�� + * @param data + */ +export function updateMaintSt(data: any) { + return requestClient.putWithMsg<void>(Api.root, data); +} + +/** + * 鍒犻櫎淇濆吇姹囨�� + * @param maintStId + */ +export function delMaintSt(maintStId: IDS) { + return requestClient.deleteWithMsg<void>(`${Api.root}/${maintStId}`); +} +/** + * 瀵煎嚭 + * @param + */ +export function maintStExport(data: any) { + return commonExport(Api.maintStExport, data); +} diff --git a/eims-ui/apps/web-antd/src/api/eims/maint-st/model.d.ts b/eims-ui/apps/web-antd/src/api/eims/maint-st/model.d.ts new file mode 100644 index 0000000..92e3994 --- /dev/null +++ b/eims-ui/apps/web-antd/src/api/eims/maint-st/model.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/apps/web-antd/src/constants/dict/index.ts b/eims-ui/apps/web-antd/src/constants/dict/index.ts index b86cfa4..de2c03f 100644 --- a/eims-ui/apps/web-antd/src/constants/dict/index.ts +++ b/eims-ui/apps/web-antd/src/constants/dict/index.ts @@ -49,3 +49,15 @@ DAIYANZHENG = '2', // 寰呴獙璇� WANCHENG = '3' // 瀹屾垚 } + + +/** + * 淇濆吇宸ュ崟鐘舵�� + */ +export enum EIMS_INSPECT_STATUS { + YIDIANJIAN = '1', // 宸茬偣妫� + WEIDIANJIAN = '0', // 鏈偣妫� + DAIYANZHENG = '2', // 寰呴獙璇� + WANCHENG = '3' // 瀹屾垚 +} + diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-plan/data.tsx b/eims-ui/apps/web-antd/src/views/eims/insp-plan/data.tsx new file mode 100644 index 0000000..1b14461 --- /dev/null +++ b/eims-ui/apps/web-antd/src/views/eims/insp-plan/data.tsx @@ -0,0 +1,290 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { DictEnum } from '@vben/constants'; +import { getPopupContainer } from '@vben/utils'; + +import { type FormSchemaGetter } from '#/adapter/form'; +import { getDictOptions } from '#/utils/dict'; +import { renderDict } from '#/utils/render'; + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'equName', + label: '璁惧鍚嶇О' + }, + { + component: 'Input', + fieldName: 'assetNo', + label: '璧勪骇缂栧彿' + }, + { + component: 'Select', + componentProps: { + options: getDictOptions(DictEnum.EIMS_INSPECT_TYPE) + }, + fieldName: 'inspType', + label: '鐐规绫诲瀷' + }, + { + component: 'TreeSelect', + // 鍦╠rawer閲屾洿鏂� 杩欓噷涓嶉渶瑕侀粯璁ょ殑componentProps + defaultValue: undefined, + fieldName: 'inspDept', + label: '鐐规閮ㄩ棬', + + }, + { + component: 'Select', + componentProps: { + allowClear: true, + showSearch: true, + getPopupContainer + }, + fieldName: 'inspUser', + label: '鐐规浜�', + }, + { + component: 'Select', + componentProps: { + options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE) + }, + fieldName: 'status', + label: '鐘舵��' + }, +]; + +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60, fixed: 'left' }, + { + title: '璁惧鍚嶇О', + field: 'equName', + minWidth: 200, + fixed: 'left' + }, + { + title: '璧勪骇缂栧彿', + field: 'assetNo', + minWidth: 160 + }, + { + title: '鐘舵��', + field: 'status', + minWidth: 80, + slots: { + default: ({ row }) => { + return renderDict(row.status, DictEnum.SYS_NORMAL_DISABLE); + } + } + }, + { + title: '鐐规椤�', + field: 'inspName', + minWidth: 200 + }, + { + title: '鐐规绫诲瀷', + field: 'inspType', + minWidth: 120, + slots: { + default: ({ row }) => { + return renderDict(row.inspType, DictEnum.EIMS_INSPECT_TYPE); + } + } + }, + { + title: '鐐规浜�', + field: 'inspUserName', + minWidth: 100 + }, + { + title: '寰幆鍛ㄦ湡', + field: 'inspCycleUnitName', + minWidth: 80 + }, + { + title: '鏃堕棿璁$畻瑙勫垯', + field: 'inspRule', + minWidth: 140, + slots: { + default: ({ row }) => { + return renderDict(row.inspRule, DictEnum.MAINT_TIME_RULE); + } + } + }, + { + title: '棣栨鎵ц鏃堕棿', + field: 'inspFirstTime', + minWidth: 160 + }, + { + title: '涓婃鎵ц鏃堕棿', + field: 'inspLastTime', + minWidth: 160 + }, + { + title: '涓嬫鎵ц鏃堕棿', + field: 'inspNextTime', + minWidth: 160 + }, + { + title: '鍒涘缓鏃堕棿', + field: 'createTime', + minWidth: 200 + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '鎿嶄綔', + width: 200 + } +]; + +export const drawerSchema: FormSchemaGetter = () => [ + { + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''] + }, + fieldName: 'id' + }, + { + component: 'Input', + fieldName: 'equId', + label: '璁惧id', + dependencies: { + show: () => false, + triggerFields: [''] + } + }, + { + component: 'Input', + fieldName: 'equName', + label: '璁惧鍚嶇О' + }, + { + component: 'Input', + fieldName: 'inspName', + label: '鐐规椤�' + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: getDictOptions(DictEnum.EIMS_INSPECT_TYPE), + optionType: 'button' + }, + fieldName: 'inspType', + defaultValue: '1', + label: '鐐规绫诲瀷' + }, + { + component: 'Input', + fieldName: 'inspDesc', + label: '鐐规璇存槑' + }, + { + component: 'InputNumber', + fieldName: 'inspCycle', + label: '鐐规鍛ㄦ湡', + formItemClass: 'col-span-1', + componentProps: { + min: 1 + } + }, + { + component: 'Select', + componentProps: { + getPopupContainer, + options: getDictOptions(DictEnum.MAINT_CYCLE_UNIT) + }, + fieldName: 'inspCycleUnit', + formItemClass: 'col-span-1 w-[80px]', + labelWidth: 0, + label: '' + }, + + { + component: 'Select', + componentProps: { + getPopupContainer, + options: getDictOptions(DictEnum.MAINT_TIME_RULE) + }, + fieldName: 'inspRule', + label: '鐐规瑙勫垯 ' + }, + { + component: 'Input', + fieldName: 'inspUser', + label: '鐢ㄦ埛id', + dependencies: { + show: () => false, + triggerFields: [''] + } + }, + { + component: 'Input', + fieldName: 'inspUserName', + label: '鐐规浜�' + }, + { + component: 'Input', + fieldName: 'inspDept', + label: '閮ㄩ棬id', + dependencies: { + show: () => false, + triggerFields: [''] + } + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: getDictOptions(DictEnum.SYS_NORMAL_DISABLE), + optionType: 'button' + }, + fieldName: 'status', + defaultValue: '0', + label: '鐘舵��' + }, + { + component: 'DatePicker', + componentProps: { + format: 'YYYY-MM-DD', + showTime: false, + valueFormat: 'YYYY-MM-DD', + getPopupContainer + }, + fieldName: 'inspFirstTime', + label: '棣栨淇濆吇鏃堕棿' + }, + { + component: 'DatePicker', + componentProps: { + format: 'YYYY-MM-DD', + showTime: false, + valueFormat: 'YYYY-MM-DD', + getPopupContainer + }, + fieldName: 'inspLastTime', + label: '涓婃淇濆吇鏃堕棿' + }, + { + component: 'DatePicker', + componentProps: { + format: 'YYYY-MM-DD', + showTime: false, + valueFormat: 'YYYY-MM-DD', + getPopupContainer + }, + fieldName: 'inspNextTime', + label: '涓嬫淇濆吇鏃堕棿', + }, + { + component: 'Textarea', + fieldName: 'remark', + label: '澶囨敞' + } +]; diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-plan/index.vue b/eims-ui/apps/web-antd/src/views/eims/insp-plan/index.vue new file mode 100644 index 0000000..3b1b351 --- /dev/null +++ b/eims-ui/apps/web-antd/src/views/eims/insp-plan/index.vue @@ -0,0 +1,302 @@ +<script setup lang="ts"> +import type { Recordable } from '@vben/types'; + +import { onMounted, ref } from 'vue'; + +import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui'; +import { $t } from '@vben/locales'; +import { addFullName, getPopupContainer, getVxePopupContainer } from '@vben/utils'; + +import { Dropdown, Menu, MenuItem, Modal, Popconfirm, Space } from 'ant-design-vue'; + +import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; +import { delInspPlan, inspPlanExport, listInspPlan } from '#/api/eims/insp-plan'; +import { generateCode } from '#/api/eims/utils'; +import { getDeptTree, userList } from '#/api/system/user'; +import { EIMS_INSPECT_STATUS } from '#/constants/dict'; +import { commonDownloadExcel } from '#/utils/file/download'; +import inspRecordDrawer from '#/views/eims/insp-record/insp-record-drawer.vue'; + +import { columns, querySchema } from './data'; +import inspPlanDrawer from './insp-plan-drawer.vue'; + +defineExpose({ + tableSelect +}); + +const formOptions: VbenFormProps = { + commonConfig: { + labelWidth: 80, + componentProps: { + allowClear: true + } + }, + collapsed: true, + schema: querySchema(), + wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', + // 鏃ユ湡閫夋嫨鏍煎紡鍖� + fieldMappingTime: [['planTime', ['params[beginPlanTime]', 'params[endPlanTime]'], ['YYYY-MM-DD 00:00:00', 'YYYY-MM-DD 23:59:59']]] +}; + +const gridOptions: VxeGridProps = { + checkboxConfig: { + // 楂樹寒 + highlight: true, + // 缈婚〉鏃朵繚鐣欓�変腑鐘舵�� + reserve: true + // 鐐瑰嚮琛岄�変腑 + // trigger: 'row' + }, + columns, + height: 'auto', + keepSource: true, + pagerConfig: {}, + proxyConfig: { + ajax: { + query: async ({ page }, formValues = {}) => { + return await listInspPlan({ + pageNum: page.currentPage, + pageSize: page.pageSize, + ...formValues + }); + } + } + }, + rowConfig: { + isHover: true, + keyField: 'id' + }, + sortConfig: { + // 杩滅▼鎺掑簭 + remote: true, + // 鏀寔澶氬瓧娈垫帓搴� 榛樿鍏抽棴 + multiple: true + }, + id: 'insp-plan-index' +}; +const equId = ref<string>(); +const [BasicTable, tableApi] = useVbenVxeGrid({ + formOptions, + gridOptions, + gridEvents: { + sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams), + cellClick: (e: any) => { + const { row } = e; + equId.value = row.equId; + } + } +}); + +const [InspPlanDrawer, inspPlanDrawerApi] = useVbenDrawer({ + connectedComponent: inspPlanDrawer +}); + +const [InspRecordDrawer, inspRecordDrawerApi] = useVbenDrawer({ + connectedComponent: inspRecordDrawer +}); + +function handleAdd() { + inspPlanDrawerApi.setData({}); + inspPlanDrawerApi.open(); +} + +async function handleEdit(record: Recordable<any>) { + inspPlanDrawerApi.setData({ id: record.id }); + inspPlanDrawerApi.open(); +} + +async function handleDelete(row: Recordable<any>) { + await delInspPlan(row.id); + await tableApi.query(); +} + +function handleMultiDelete() { + const rows = tableApi.grid.getCheckboxRecords(); + const ids = rows.map((row: any) => row.id); + Modal.confirm({ + title: '鎻愮ず', + okType: 'danger', + content: `纭鍒犻櫎閫変腑鐨�${ids.length}鏉¤褰曞悧锛焋, + onOk: async () => { + await delInspPlan(ids); + await tableApi.query(); + } + }); +} + +function handleDownloadExcel() { + commonDownloadExcel(inspPlanExport, '鐐规璁″垝璁板綍', tableApi.formApi.form.values, { + fieldMappingTime: formOptions.fieldMappingTime + }); +} + +/** + * 鐢熸垚鐐规璁板綍 + * @param record + */ +async function handleAddOrder(record: Recordable<any>) { + /** + * 鐢熸垚鐐规璁板綍code + */ + const code = await generateCode('DJSD'); + if (!code) { + Modal.error({ + content: '鐢熸垚鐐规璁板綍澶辫触锛岃閲嶈瘯锛�', + title: '鎻愮ず' + }); + return false; + } + const planInsp = { + equId: record.equId, + planId: record.id, + equName: record.equName, + inspUser: record.inspUser, + inspUserName: record.inspUserName, + inspDept: record.inspDept, + inspDeptName: record.inspDeptName, + inspType: record.inspType, + planTime: record.inspNextTime, + status: EIMS_INSPECT_STATUS.WEIDIANJIAN, + inspCode: code, + inspName: record.inspName + }; + + inspRecordDrawerApi.setData({ planInsp }); + inspRecordDrawerApi.open(); + // await addMaintOrder(order.value); +} +/** + * 鍒濆鍖栭儴闂ㄩ�夋嫨 + */ +async function setupDeptSelect() { + // updateSchema + const deptTree = await getDeptTree(); + // 閫変腑鍚庢樉绀哄湪杈撳叆妗嗙殑鍊� 鍗崇埗鑺傜偣 / 瀛愯妭鐐� + addFullName(deptTree, 'label', ' / '); + tableApi.formApi.updateSchema([ + { + componentProps: (formModel) => ({ + class: 'w-full', + fieldNames: { + key: 'id', + value: 'id', + children: 'children' + }, + getPopupContainer, + async onSelect(deptId: number | string) { + /** 鏍规嵁閮ㄩ棬ID鍔犺浇鐢ㄦ埛 */ + await setupUserOptions(deptId); + /** 鍙樺寲鍚庨渶瑕侀噸鏂伴�夋嫨鐢ㄦ埛 */ + formModel.inspUser = undefined; + }, + placeholder: '璇烽�夋嫨', + showSearch: true, + treeData: deptTree, + treeDefaultExpandAll: true, + treeLine: { showLeafIcon: false }, + // 绛涢�夌殑瀛楁 + treeNodeFilterProp: 'label', + // 閫変腑鍚庢樉绀哄湪杈撳叆妗嗙殑鍊� + treeNodeLabelProp: 'fullName' + }), + fieldName: 'inspDept' + } + ]); +} + +/** + * 鐢ㄦ埛鐨勫姞杞� + */ +async function setupUserOptions(deptId: any) { + const params = { deptId }; + const userPageResult = await userList({ + pageNum: 1, + pageSize: 500, + ...params + }); + const options = userPageResult.rows.map((item) => ({ + label: item.nickName || item.userName, + value: item.userId + })); + // 绛涢�� + const filterOption = (input: string, option: any) => { + return option.label.toLowerCase().includes(input.toLowerCase()); + }; + + const placeholder = options.length > 0 ? '璇烽�夋嫨' : '璇ラ儴闂ㄤ笅鏆傛棤鐢ㄦ埛'; + tableApi.formApi.updateSchema([ + { + componentProps: { options, placeholder, filterOption }, + fieldName: 'inspUser' + } + ]); +} + +onMounted(async () => { + await setupDeptSelect(); +}); + +// 閫変腑鏁版嵁 +function tableSelect() { + return tableApi.grid.getCheckboxRecords(); +} +</script> + +<template> + <Page :auto-content-height="true"> + <div class="flex h-full gap-[8px] flex-col"> + <BasicTable table-title="鐐规璁″垝鍒楄〃"> + <template #toolbar-tools> + <Space> + <a-button v-access:code="['eims:inspectPlan:export']" @click="handleDownloadExcel"> + {{ $t('pages.common.export') }} + </a-button> + <a-button + :disabled="!vxeCheckboxChecked(tableApi)" + danger + type="primary" + v-access:code="['eims:inspectPlan:remove']" + @click="handleMultiDelete" + > + {{ $t('pages.common.delete') }} + </a-button> + <a-button type="primary" v-access:code="['eims:inspectPlan:add']" @click="handleAdd"> + {{ $t('pages.common.add') }} + </a-button> + </Space> + </template> + + <template #equName="{ row }"> + <Space> + <span>{{ row.equName }}</span> + </Space> + </template> + + <template #action="{ row }"> + <Space> + <ghost-button class="btn-success" v-access:code="['eims:inspectPlan:edit']" @click.stop="handleAddOrder(row)"> 鐢熸垚鐐规 </ghost-button> + <ghost-button v-access:code="['eims:inspectPlan:edit']" @click.stop="handleEdit(row)"> + {{ $t('pages.common.edit') }} + </ghost-button> + </Space> + <Dropdown :get-popup-container="getVxePopupContainer" placement="bottomRight"> + <template #overlay> + <Menu> + <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)"> + <MenuItem key="1" @click.stop=""> + {{ $t('pages.common.delete') }} + </MenuItem> + </Popconfirm> + </Menu> + </template> + <a-button size="small" type="link" v-access:code="['eims:inspectPlan:remove']"> + {{ $t('pages.common.more') }} + </a-button> + </Dropdown> + </template> + </BasicTable> + </div> + <InspPlanDrawer @reload="tableApi.query()" /> + <InspRecordDrawer @reload="tableApi.query()" /> + </Page> +</template> diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-plan/insp-plan-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/insp-plan/insp-plan-drawer.vue new file mode 100644 index 0000000..a0ad465 --- /dev/null +++ b/eims-ui/apps/web-antd/src/views/eims/insp-plan/insp-plan-drawer.vue @@ -0,0 +1,152 @@ +<script setup lang="ts"> +import { computed, ref } from 'vue'; + +import { useVbenDrawer, useVbenModal } from '@vben/common-ui'; +import { $t } from '@vben/locales'; +import { addFullName, cloneDeep, getPopupContainer } from '@vben/utils'; + +import { InputSearch } from 'ant-design-vue'; + +import { useVbenForm } from '#/adapter/form'; +import { addInspPlan, getInspPlan, updateInspPlan } from '#/api/eims/insp-plan'; +import equModal from '#/views/eims/components/equ-modal.vue'; +import userModal from '#/views/eims/components/user-modal.vue'; + +import { drawerSchema } from './data'; + +const emit = defineEmits<{ reload: [] }>(); + +const isUpdate = ref(false); +const title = computed(() => { + return isUpdate.value ? $t('pages.common.edit') : $t('pages.common.add'); +}); + +const [BasicForm, formApi] = useVbenForm({ + commonConfig: { + formItemClass: 'col-span-2', + componentProps: { + class: 'w-full' + }, + labelWidth: 120 + }, + layout: 'horizontal', + schema: drawerSchema(), + showDefaultActions: false, + wrapperClass: 'grid-cols-2' +}); + +const [BasicDrawer, drawerApi] = useVbenDrawer({ + onCancel: handleCancel, + onConfirm: handleConfirm, + async onOpenChange(isOpen) { + if (!isOpen) { + return null; + } + drawerApi.drawerLoading(true); + const { id } = drawerApi.getData() as { id?: number | string }; + isUpdate.value = !!id; + + formApi.updateSchema([ + { + dependencies: { + show: () => isUpdate.value, + triggerFields: [''] + }, + fieldName: 'inspFirstTime' + }, + { + dependencies: { + show: () => isUpdate.value, + triggerFields: [''] + }, + fieldName: 'inspLastTime' + } + ]); + // 鏇存柊 && 璧嬪�� + if (isUpdate.value && id) { + const record = await getInspPlan(id); + await formApi.setValues(record); + } + + drawerApi.drawerLoading(false); + } +}); + +async function handleConfirm() { + try { + drawerApi.drawerLoading(true); + const { valid } = await formApi.validate(); + if (!valid) { + return; + } + const data = cloneDeep(await formApi.getValues()); + await (isUpdate.value ? updateInspPlan(data) : addInspPlan(data)); + emit('reload'); + await handleCancel(); + } catch (error) { + console.error(error); + } finally { + drawerApi.drawerLoading(false); + } +} + +async function handleCancel() { + drawerApi.close(); + await formApi.resetForm(); +} + +// equ modal +const [EquModal, equModalApi] = useVbenModal({ + connectedComponent: equModal, + draggable: true, + title: '閫夋嫨璁惧' +}); + +function handleEquModal() { + equModalApi.setData({}); + equModalApi.open(); +} + +// user modal +const [UserModal, userModalApi] = useVbenModal({ + connectedComponent: userModal, + draggable: true, + title: '閫夋嫨鐐规浜�' +}); + +function handleUserModal() { + userModalApi.setData({}); + userModalApi.open(); +} + +/** + * 鏇存柊閫夋嫨鐨勮澶� + * @param equ + */ +async function updateEqu(equ: any) { + await formApi.setValues({ 'equId': equ.equId, 'equName': equ.equName }); +} + +/** + * 鏇存柊閫夋嫨鐨勭敤鎴� + * @param user + */ +async function updateUser(user: any) { + await formApi.setValues({ 'inspUserName': user.nickName, 'inspUser': user.userId, 'inspDept': user.deptId }); +} +</script> + +<template> + <BasicDrawer :close-on-click-modal="false" :title="title" class="w-[600px]"> + <BasicForm> + <template #equName="slotProps"> + <InputSearch :enter-button="true" placeholder="璇烽�夋嫨" @search="handleEquModal" v-bind="slotProps" /> + </template> + <template #inspUserName="slotProps"> + <InputSearch :enter-button="true" placeholder="璇烽�夋嫨" @search="handleUserModal" v-bind="slotProps" /> + </template> + </BasicForm> + <EquModal class="w-[1200px]" @update-equ="updateEqu" /> + <UserModal class="w-[1200px]" @select-user="updateUser" /> + </BasicDrawer> +</template> diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-record/data.tsx b/eims-ui/apps/web-antd/src/views/eims/insp-record/data.tsx new file mode 100644 index 0000000..44fef5b --- /dev/null +++ b/eims-ui/apps/web-antd/src/views/eims/insp-record/data.tsx @@ -0,0 +1,298 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { DictEnum } from '@vben/constants'; +import { getPopupContainer } from '@vben/utils'; + +import { type FormSchemaGetter } from '#/adapter/form'; +import { getDictOptions } from '#/utils/dict'; +import { renderDict } from '#/utils/render'; + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'equName', + label: '璁惧鍚嶇О' + }, + { + component: 'Input', + fieldName: 'assetNo', + label: '璧勪骇缂栧彿' + }, + { + component: 'Input', + fieldName: 'inspName', + label: '鐐规椤�' + }, + { + component: 'Select', + componentProps: { + options: getDictOptions(DictEnum.EIMS_INSPECT_STATUS) + }, + fieldName: 'status', + label: '鐘舵��' + }, + { + component: 'Select', + componentProps: { + options: getDictOptions(DictEnum.EIMS_INSPECT_RESULT) + }, + fieldName: 'maintType', + label: '鐐规缁撴灉' + }, + { + component: 'TreeSelect', + // 鍦╠rawer閲屾洿鏂� 杩欓噷涓嶉渶瑕侀粯璁ょ殑componentProps + defaultValue: undefined, + fieldName: 'inspDept', + label: '鐐规閮ㄩ棬' + }, + { + component: 'Select', + componentProps: { + allowClear: true, + showSearch: true, + getPopupContainer + }, + fieldName: 'inspUser', + label: '鐐规浜�' + } +]; + +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60, fixed: 'left' }, + { + title: '鐐规缂栧彿', + field: 'inspCode', + minWidth: 200, + fixed: 'left' + }, + + { + title: '鐘舵��', + field: 'status', + minWidth: 80, + slots: { + default: ({ row }) => { + return renderDict(row.status, DictEnum.EIMS_INSPECT_STATUS); + } + } + }, + { + title: '璁惧鍚嶇О', + field: 'equName', + minWidth: 200 + }, + { + title: '璧勪骇缂栧彿', + field: 'assetNo', + minWidth: 160 + }, + { + title: '鐐规椤�', + field: 'inspName', + minWidth: 160 + }, + { + title: '鐐规缁撴灉', + field: 'inspResult', + minWidth: 80, + slots: { + default: ({ row }) => { + if (!row.inspResult) return ''; + return renderDict(row.inspResult, DictEnum.EIMS_INSPECT_RESULT); + } + } + }, + { + title: '鐐规绫诲瀷', + field: 'inspType', + minWidth: 120, + slots: { + default: ({ row }) => { + return renderDict(row.inspType, DictEnum.EIMS_INSPECT_TYPE); + } + } + }, + { + title: '鐐规浜�', + field: 'inspUserName', + minWidth: 100 + }, + { + title: '璁″垝鐐规鏃堕棿', + field: 'planTime', + minWidth: 160 + }, + { + title: '鐐规鏃堕棿', + field: 'inspTime', + minWidth: 200 + }, + { + title: '鐐规鎻忚堪', + field: 'inspDesc', + minWidth: 200 + }, + { + title: '楠岃瘉浜�', + field: 'verifyUserName', + minWidth: 160 + }, + { + title: '鍒涘缓鏃堕棿', + field: 'createTime', + minWidth: 200 + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '鎿嶄綔', + width: 200 + } +]; + +export const drawerSchema: FormSchemaGetter = () => [ + { + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''] + }, + fieldName: 'id' + }, + { + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''] + }, + fieldName: 'planId' + }, + { + component: 'Input', + fieldName: 'equId', + label: '璁惧id', + dependencies: { + show: () => false, + triggerFields: [''] + } + }, + + { + component: 'Input', + fieldName: 'inspCode', + label: '鐐规缂栧彿' + }, + { + component: 'Input', + fieldName: 'inspName', + label: '鐐规椤�' + }, + { + component: 'Input', + fieldName: 'equName', + label: '璁惧鍚嶇О' + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: getDictOptions(DictEnum.EIMS_INSPECT_TYPE), + optionType: 'button' + }, + fieldName: 'inspType', + defaultValue: '1', + label: '鐐规绫诲瀷' + }, + { + component: 'Input', + fieldName: 'inspUser', + label: '鐐规浜篿d', + dependencies: { + show: () => false, + triggerFields: [''] + } + }, + { + component: 'Input', + fieldName: 'inspUserName', + label: '鐐规浜�' + }, + { + component: 'Input', + fieldName: 'inspDept', + label: '閮ㄩ棬id', + dependencies: { + show: () => false, + triggerFields: [''] + } + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: getDictOptions(DictEnum.EIMS_INSPECT_STATUS), + optionType: 'button' + }, + fieldName: 'status', + defaultValue: '0', + label: '鐘舵��' + }, + { + component: 'DatePicker', + componentProps: { + format: 'YYYY-MM-DD', + showTime: false, + valueFormat: 'YYYY-MM-DD', + getPopupContainer + }, + fieldName: 'planTime', + label: '璁″垝鐐规鏃ユ湡' + }, + { + component: 'DatePicker', + componentProps: { + format: 'YYYY-MM-DD HH:mm:ss', + showTime: true, + valueFormat: 'YYYY-MM-DD HH:mm:ss', + getPopupContainer + }, + fieldName: 'inspTime', + label: '鐐规鏃堕棿' + }, + { + component: 'Textarea', + fieldName: 'inspDesc', + label: '鐐规鎻忚堪' + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: getDictOptions(DictEnum.EIMS_INSPECT_RESULT), + optionType: 'button' + }, + fieldName: 'inspResult', + label: '鐐规缁撴灉' + }, + { + component: 'Input', + fieldName: 'verifyUser', + label: '楠岃瘉浜篿d', + dependencies: { + show: () => false, + triggerFields: [''] + } + }, + { + component: 'Input', + fieldName: 'verifyUserName', + label: '楠岃瘉浜�' + }, + { + component: 'Textarea', + fieldName: 'remark', + label: '澶囨敞' + } +]; diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue b/eims-ui/apps/web-antd/src/views/eims/insp-record/index.vue similarity index 61% copy from eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue copy to eims-ui/apps/web-antd/src/views/eims/insp-record/index.vue index 716379d..6f7549b 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue +++ b/eims-ui/apps/web-antd/src/views/eims/insp-record/index.vue @@ -1,23 +1,21 @@ <script setup lang="ts"> +import type { Recordable } from '@vben/types'; + import { onMounted, ref } from 'vue'; import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui'; +import { $t } from '@vben/locales'; import { addFullName, getPopupContainer, getVxePopupContainer } from '@vben/utils'; -import { Popconfirm, Space } from 'ant-design-vue'; +import { Modal, Popconfirm, Space } from 'ant-design-vue'; -import { useVbenVxeGrid, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; -import { listMaintOrderGroupDetail } from '#/api/eims/maint-order'; -import { delMaintOrderSt, listMaintOrderSt } from '#/api/eims/maint-order-st'; +import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; +import { delInspRecord, inspRecordExport, listInspRecord } from '#/api/eims/insp-record'; import { getDeptTree, userList } from '#/api/system/user'; -import BasisSubTable from '#/views/eims/components/basis-sub-table.vue'; -import { columns as orderCol } from '#/views/eims/maint-order/data'; +import { commonDownloadExcel } from '#/utils/file/download'; import { columns, querySchema } from './data'; -import maintOrderStDrawer from './maint-order-st-drawer.vue'; -import type { Recordable } from '@vben/types'; -import { MAINT_ORDER_STATUS } from '#/constants/dict'; -import { $t } from '@vben/locales'; +import inspRecordDrawer from './insp-record-drawer.vue'; defineExpose({ tableSelect @@ -32,9 +30,7 @@ }, collapsed: true, schema: querySchema(), - wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', - // 鏃ユ湡閫夋嫨鏍煎紡鍖� - fieldMappingTime: [['planTime', ['params[beginPlanTime]', 'params[endPlanTime]'], ['YYYY-MM-DD 00:00:00', 'YYYY-MM-DD 23:59:59']]] + wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4' }; const gridOptions: VxeGridProps = { @@ -53,7 +49,7 @@ proxyConfig: { ajax: { query: async ({ page }, formValues = {}) => { - return await listMaintOrderSt({ + return await listInspRecord({ pageNum: page.currentPage, pageSize: page.pageSize, ...formValues @@ -71,7 +67,7 @@ // 鏀寔澶氬瓧娈垫帓搴� 榛樿鍏抽棴 multiple: true }, - id: 'maint-order-group-index' + id: 'insp-record-index' }; const orderId = ref<string>(); const [BasicTable, tableApi] = useVbenVxeGrid({ @@ -81,10 +77,49 @@ sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams), cellClick: (e: any) => { const { row } = e; - orderId.value = `${row.equId}_${row.planTime}`; + orderId.value = row.id; } } }); + +const [InspRecordDrawer, inspRecordDrawerApi] = useVbenDrawer({ + connectedComponent: inspRecordDrawer +}); + +function handleAdd() { + inspRecordDrawerApi.setData({}); + inspRecordDrawerApi.open(); +} + +async function handleEdit(record: Recordable<any>) { + inspRecordDrawerApi.setData({ id: record.id }); + inspRecordDrawerApi.open(); +} + +async function handleDelete(row: Recordable<any>) { + await delInspRecord(row.id); + await tableApi.query(); +} + +function handleMultiDelete() { + const rows = tableApi.grid.getCheckboxRecords(); + const ids = rows.map((row: any) => row.id); + Modal.confirm({ + title: '鎻愮ず', + okType: 'danger', + content: `纭鍒犻櫎閫変腑鐨�${ids.length}鏉¤褰曞悧锛焋, + onOk: async () => { + await delInspRecord(ids); + await tableApi.query(); + } + }); +} + +function handleDownloadExcel() { + commonDownloadExcel(inspRecordExport, '鐐规璁板綍', tableApi.formApi.form.values, { + fieldMappingTime: formOptions.fieldMappingTime + }); +} /** * 鍒濆鍖栭儴闂ㄩ�夋嫨 @@ -108,7 +143,7 @@ /** 鏍规嵁閮ㄩ棬ID鍔犺浇鐢ㄦ埛 */ await setupUserOptions(deptId); /** 鍙樺寲鍚庨渶瑕侀噸鏂伴�夋嫨鐢ㄦ埛 */ - formModel.maintUser = undefined; + formModel.inspUser = undefined; }, placeholder: '璇烽�夋嫨', showSearch: true, @@ -120,7 +155,7 @@ // 閫変腑鍚庢樉绀哄湪杈撳叆妗嗙殑鍊� treeNodeLabelProp: 'fullName' }), - fieldName: 'maintDept' + fieldName: 'inspDept' } ]); } @@ -148,28 +183,10 @@ tableApi.formApi.updateSchema([ { componentProps: { options, placeholder, filterOption }, - fieldName: 'maintUser' + fieldName: 'inspUser' } ]); } -const [MaintOrderStDrawer, maintOrderStDrawerApi] = useVbenDrawer({ - connectedComponent: maintOrderStDrawer -}); - -function handleAdd() { - maintOrderStDrawerApi.setData({}); - maintOrderStDrawerApi.open(); -} - -async function handleEdit(record: Recordable<any>) { - maintOrderStDrawerApi.setData({ id: record.id }); - maintOrderStDrawerApi.open(); -} -async function handleDelete(row: Recordable<any>) { - await delMaintOrderSt(row.id); - await tableApi.query(); -} - onMounted(async () => { await setupDeptSelect(); @@ -184,9 +201,25 @@ <template> <Page :auto-content-height="true"> <div class="flex h-full gap-[8px] flex-col"> - <BasicTable class="h-3/5" table-title="淇濆吇宸ュ崟鍒楄〃"> + <BasicTable table-title="鐐规璁板綍鍒楄〃"> <template #toolbar-tools> - <Space /> + <Space> + <a-button v-access:code="['eims:inspectRecord:export']" @click="handleDownloadExcel"> + {{ $t('pages.common.export') }} + </a-button> + <a-button + :disabled="!vxeCheckboxChecked(tableApi)" + danger + type="primary" + v-access:code="['eims:inspectRecord:remove']" + @click="handleMultiDelete" + > + {{ $t('pages.common.delete') }} + </a-button> + <!-- <a-button type="primary" v-access:code="['eims:inspectRecord:add']" @click="handleAdd"> + {{ $t('pages.common.add') }} + </a-button>--> + </Space> </template> <template #equName="{ row }"> @@ -194,30 +227,22 @@ <span>{{ row.equName }}</span> </Space> </template> + <template #action="{ row }"> <Space> - <ghost-button v-access:code="['eims:maintOrderSt:edit']" @click.stop="handleEdit(row)"> + <ghost-button v-access:code="['eims:inspectRecord:edit']" @click.stop="handleEdit(row)"> {{ $t('pages.common.edit') }} </ghost-button> - <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" - @confirm="handleDelete(row)"> - <ghost-button danger v-access:code="['eims:maintOrderSt:remove']" @click.stop=""> + <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)"> + <ghost-button danger v-access:code="['eims:inspectRecord:remove']" @click.stop=""> {{ $t('pages.common.delete') }} </ghost-button> </Popconfirm> </Space> </template> - </BasicTable> - <BasisSubTable - :columns="orderCol" - :list-api="listMaintOrderGroupDetail" - :req-value="orderId" - class="h-2/5" - req-key="maintCode" - title="淇濆吇瀹炴柦椤圭洰" - /> + <!--<BasisSubTable :columns="maintStandCol" :list-api="listMaintStand" :req-value="equId" class="h-1/3" req-key="equId" title="淇濆吇瀹炴柦椤圭洰" />--> </div> - <MaintOrderStDrawer @reload="tableApi.query()" /> + <InspRecordDrawer @reload="tableApi.query()" /> </Page> </template> diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-record/insp-record-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/insp-record/insp-record-drawer.vue new file mode 100644 index 0000000..ee038e1 --- /dev/null +++ b/eims-ui/apps/web-antd/src/views/eims/insp-record/insp-record-drawer.vue @@ -0,0 +1,167 @@ +<script setup lang="ts"> +import { computed, ref } from 'vue'; + +import { useVbenDrawer, useVbenModal } from '@vben/common-ui'; +import { cloneDeep } from '@vben/utils'; + +import { InputSearch } from 'ant-design-vue'; + +import { useVbenForm } from '#/adapter/form'; +import { addInspRecord, getInspRecord, updateInspRecord } from '#/api/eims/insp-record'; +import CodeInput from '#/views/eims/components/code-input.vue'; +import equModal from '#/views/eims/components/equ-modal.vue'; +import userModal from '#/views/eims/components/user-modal.vue'; + +import { drawerSchema } from './data'; + + +const emit = defineEmits<{ reload: [] }>(); + +const isUpdate = ref(false); +const title = computed(() => { + return isUpdate.value ? '缂栬緫鐐规璁板綍' : '鏂板鐐规璁板綍'; +}); + +const [BasicForm, formApi] = useVbenForm({ + commonConfig: { + formItemClass: 'col-span-2', + componentProps: { + class: 'w-full' + }, + labelWidth: 120 + }, + schema: drawerSchema(), + showDefaultActions: false, + wrapperClass: 'grid-cols-2' +}); + +const [BasicDrawer, drawerApi] = useVbenDrawer({ + onCancel: handleCancel, + onConfirm: handleConfirm, + async onOpenChange(isOpen) { + if (!isOpen) { + return null; + } + drawerApi.drawerLoading(true); + const { id } = drawerApi.getData() as { id?: number | string }; + isUpdate.value = !!id; + // 浠庣偣妫�璁″垝椤甸潰鐢熸垚鐐规璁板綍 + const { planInsp } = drawerApi.getData(); + isUpdate.value = !!id; + // 鏂板-浠庣偣妫�璁″垝椤甸潰鐢熸垚鐐规璁板綍 + if (!isUpdate.value && !id) { + await formApi.setValues(planInsp); + } + formApi.updateSchema([ + { + componentProps: { + disabled: isUpdate.value + }, + fieldName: 'inspName' + } + ]); + // 鏇存柊 && 璧嬪�� + if (isUpdate.value && id) { + const record = await getInspRecord(id); + await formApi.setValues(record); + } + + drawerApi.drawerLoading(false); + } +}); + + +async function handleConfirm() { + try { + drawerApi.drawerLoading(true); + const { valid } = await formApi.validate(); + if (!valid) { + return; + } + const data = cloneDeep(await formApi.getValues()); + await (isUpdate.value ? updateInspRecord(data) : addInspRecord(data)); + emit('reload'); + await handleCancel(); + } catch (error) { + console.error(error); + } finally { + drawerApi.drawerLoading(false); + } +} + + + +async function handleCancel() { + drawerApi.close(); + await formApi.resetForm(); +} + +// equ modal +const [EquModal, equModalApi] = useVbenModal({ + connectedComponent: equModal, + draggable: true, + title: '閫夋嫨璁惧' +}); + +function handleEquModal() { + equModalApi.setData({}); + equModalApi.open(); +} + +// user modal +const [UserModal, userModalApi] = useVbenModal({ + connectedComponent: userModal, + draggable: true, + title: '閫夋嫨鐐规浜�' +}); + +const userType = ref<number | undefined>(undefined); + +function handleUserModal(type: number) { + userType.value = type; + userModalApi.setData({}); + userModalApi.open(); +} + +/** + * 鏇存柊閫夋嫨鐨勮澶� + * @param equ + */ +async function updateEqu(equ: any) { + await formApi.setValues({equId:equ.equId,equName:equ.equName}); +} + +/** + * 鏇存柊閫夋嫨鐨勭敤鎴� + * @param user + */ +async function updateUser(user: any) { + if (userType.value === 1) { + await formApi.setValues({ 'inspUserName': user.nickName, 'inspUser': user.userId, 'inspDept': user.deptId }); + } else if (userType.value === 2) { + await formApi.setValues({ 'verifyUserName': user.nickName, 'verifyUser': user.userId, 'verifyDept': user.deptId }); + } +} +</script> + +<template> + <BasicDrawer :close-on-click-modal="false" :title="title" class="w-[600px]"> + <BasicForm> + <template #equName="slotProps"> + <InputSearch :enter-button="true" placeholder="璇烽�夋嫨" @search="handleEquModal" v-bind="slotProps" + :disabled="isUpdate" /> + </template> + <template #inspUserName="slotProps"> + <InputSearch :enter-button="true" placeholder="璇烽�夋嫨" @search="handleUserModal(1)" v-bind="slotProps" /> + </template> + <template #verifyUserName="slotProps"> + <InputSearch :enter-button="true" placeholder="璇烽�夋嫨" @search="handleUserModal(2)" v-bind="slotProps" /> + </template> + <template #inspCode="slotProps"> + <CodeInput v-bind="slotProps" :disabled="isUpdate" prefix="DJSD" /> + </template> + </BasicForm> + <EquModal class="w-[1200px]" @update-equ="updateEqu" /> + <UserModal class="w-[1200px]" @select-user="updateUser" /> + </BasicDrawer> +</template> diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/data.tsx b/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx similarity index 75% copy from eims-ui/apps/web-antd/src/views/eims/maint-order-st/data.tsx copy to eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx index 0629b80..e4de7f4 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/data.tsx +++ b/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx @@ -12,8 +12,13 @@ export const querySchema: FormSchemaGetter = () => [ { component: 'Input', - fieldName: 'equName', - label: '璁惧鍚嶇О' + fieldName: 'title', + label: '鏍囬' + }, + { + component: 'Input', + fieldName: 'assetNo', + label: '璧勪骇缂栧彿' }, { component: 'RangePicker', @@ -23,7 +28,7 @@ { component: 'Select', componentProps: { - options: getDictOptions(DictEnum.MAINT_ORDER_ST_STATUS) + options: getDictOptions(DictEnum.EIMS_INSPECT_STATUS) }, fieldName: 'status', label: '鐘舵��' @@ -33,15 +38,15 @@ export const columns: VxeGridProps['columns'] = [ { type: 'checkbox', width: 60, fixed: 'left' }, { - title: '璁惧鍚嶇О', - field: 'equName', + title: '鏍囬', + field: 'title', minWidth: 200, fixed: 'left' }, { - title: '璁″垝淇濆吇鏃ユ湡', + title: '淇濆吇骞存湀', field: 'planTime', - minWidth: 200 + minWidth: 120 }, { title: '鐘舵��', @@ -49,7 +54,7 @@ minWidth: 80, slots: { default: ({ row }) => { - return renderDict(row.status, DictEnum.MAINT_ORDER_ST_STATUS); + return renderDict(row.status, DictEnum.EIMS_INSPECT_STATUS); } } }, @@ -59,47 +64,47 @@ minWidth: 160 }, { - title: '宸ュ崟鎬绘暟', - field: 'orderCount', + title: '鐐规鎬绘暟', + field: 'recordCount', minWidth: 100 }, { - title: '寰呬繚鍏�', - field: 'dbyCount', + title: '鏈偣妫�', + field: 'unCheckCount', minWidth: 80, slots: { default: ({ row }) => { - return <Tag color="orange">{row.dbyCount}</Tag>; + return <Tag color="orange">{row.unCheckCount}</Tag>; } } }, { - title: '淇濆吇涓�', - field: 'byCount', + title: '宸茬偣妫�', + field: 'checkCount', minWidth: 80, slots: { default: ({ row }) => { - return <Tag color="blue">{row.byCount}</Tag>; + return <Tag color="blue">{row.checkCount}</Tag>; } } }, { - title: '寰呴獙璇�', - field: 'dyzCount', + title: '姝e父', + field: 'normalNum', minWidth: 80, slots: { default: ({ row }) => { - return <Tag color="purple">{row.dyzCount}</Tag>; + return <Tag color="success">{row.normalNum}</Tag>; } } }, { - title: '瀹屾垚', - field: 'wcCount', + title: '寮傚父', + field: 'abNormalNum', minWidth: 80, slots: { default: ({ row }) => { - return <Tag color="success">{row.wcCount}</Tag>; + return <Tag color="red">{row.abNormalNum}</Tag>; } } }, @@ -114,8 +119,8 @@ minWidth: 160 }, { - title: '绋芥煡鏃堕棿', - field: 'verifyTime', + title: '鐐规鏃堕棿', + field: 'inspTime', minWidth: 200 }, { @@ -157,7 +162,7 @@ getPopupContainer }, fieldName: 'planTime', - label: '璁″垝淇濆吇鏃ユ湡' + label: '璁″垝鐐规鏃ユ湡' }, { component: 'Input', diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue b/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue similarity index 70% copy from eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue copy to eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue index 716379d..203ec1a 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue +++ b/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue @@ -4,19 +4,18 @@ import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui'; import { addFullName, getPopupContainer, getVxePopupContainer } from '@vben/utils'; -import { Popconfirm, Space } from 'ant-design-vue'; +import { Modal, Popconfirm, Space } from 'ant-design-vue'; -import { useVbenVxeGrid, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; -import { listMaintOrderGroupDetail } from '#/api/eims/maint-order'; -import { delMaintOrderSt, listMaintOrderSt } from '#/api/eims/maint-order-st'; +import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; +import { delMaintOrder, listMaintOrderGroupDetail } from '#/api/eims/maint-order'; +import { delInspectSt, listInspectSt } from '#/api/eims/insp-st'; import { getDeptTree, userList } from '#/api/system/user'; import BasisSubTable from '#/views/eims/components/basis-sub-table.vue'; -import { columns as orderCol } from '#/views/eims/maint-order/data'; +import { columns as recordCol } from '#/views/eims/insp-record/data'; import { columns, querySchema } from './data'; -import maintOrderStDrawer from './maint-order-st-drawer.vue'; +import inspStDrawer from './insp-st-drawer.vue'; import type { Recordable } from '@vben/types'; -import { MAINT_ORDER_STATUS } from '#/constants/dict'; import { $t } from '@vben/locales'; defineExpose({ @@ -53,7 +52,7 @@ proxyConfig: { ajax: { query: async ({ page }, formValues = {}) => { - return await listMaintOrderSt({ + return await listInspectSt({ pageNum: page.currentPage, pageSize: page.pageSize, ...formValues @@ -71,9 +70,9 @@ // 鏀寔澶氬瓧娈垫帓搴� 榛樿鍏抽棴 multiple: true }, - id: 'maint-order-group-index' + id: 'insp-st-index' }; -const orderId = ref<string>(); +const recordId = ref<string>(); const [BasicTable, tableApi] = useVbenVxeGrid({ formOptions, gridOptions, @@ -81,7 +80,7 @@ sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams), cellClick: (e: any) => { const { row } = e; - orderId.value = `${row.equId}_${row.planTime}`; + recordId.value = `${row.equId}_${row.planTime}`; } } }); @@ -108,7 +107,7 @@ /** 鏍规嵁閮ㄩ棬ID鍔犺浇鐢ㄦ埛 */ await setupUserOptions(deptId); /** 鍙樺寲鍚庨渶瑕侀噸鏂伴�夋嫨鐢ㄦ埛 */ - formModel.maintUser = undefined; + formModel.inspUser = undefined; }, placeholder: '璇烽�夋嫨', showSearch: true, @@ -120,7 +119,7 @@ // 閫変腑鍚庢樉绀哄湪杈撳叆妗嗙殑鍊� treeNodeLabelProp: 'fullName' }), - fieldName: 'maintDept' + fieldName: 'inspDept' } ]); } @@ -148,28 +147,37 @@ tableApi.formApi.updateSchema([ { componentProps: { options, placeholder, filterOption }, - fieldName: 'maintUser' + fieldName: 'inspUser' } ]); } -const [MaintOrderStDrawer, maintOrderStDrawerApi] = useVbenDrawer({ - connectedComponent: maintOrderStDrawer +const [InspStDrawer, inspStDrawerApi] = useVbenDrawer({ + connectedComponent: inspStDrawer }); -function handleAdd() { - maintOrderStDrawerApi.setData({}); - maintOrderStDrawerApi.open(); -} async function handleEdit(record: Recordable<any>) { - maintOrderStDrawerApi.setData({ id: record.id }); - maintOrderStDrawerApi.open(); + inspStDrawerApi.setData({ id: record.id }); + inspStDrawerApi.open(); } async function handleDelete(row: Recordable<any>) { - await delMaintOrderSt(row.id); + await delInspectSt(row.id); await tableApi.query(); } +function handleMultiDelete() { + const rows = tableApi.grid.getCheckboxRecords(); + const ids = rows.map((row: any) => row.id); + Modal.confirm({ + title: '鎻愮ず', + okType: 'danger', + content: `纭鍒犻櫎閫変腑鐨�${ids.length}鏉¤褰曞悧锛焋, + onOk: async () => { + await delInspectSt(ids); + await tableApi.query(); + } + }); +} onMounted(async () => { await setupDeptSelect(); @@ -184,9 +192,19 @@ <template> <Page :auto-content-height="true"> <div class="flex h-full gap-[8px] flex-col"> - <BasicTable class="h-3/5" table-title="淇濆吇宸ュ崟鍒楄〃"> + <BasicTable class="h-2/3" table-title="鐐规璁板綍鍒楄〃"> <template #toolbar-tools> - <Space /> + <Space > + <a-button + :disabled="!vxeCheckboxChecked(tableApi)" + danger + type="primary" + v-access:code="['eims:inspectSt:remove']" + @click="handleMultiDelete" + > + {{ $t('pages.common.delete') }} + </a-button> + </Space> </template> <template #equName="{ row }"> @@ -196,12 +214,12 @@ </template> <template #action="{ row }"> <Space> - <ghost-button v-access:code="['eims:maintOrderSt:edit']" @click.stop="handleEdit(row)"> + <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)"> - <ghost-button danger v-access:code="['eims:maintOrderSt:remove']" @click.stop=""> + <ghost-button danger v-access:code="['eims:inspectSt:remove']" @click.stop=""> {{ $t('pages.common.delete') }} </ghost-button> </Popconfirm> @@ -210,14 +228,14 @@ </BasicTable> <BasisSubTable - :columns="orderCol" + :columns="recordCol" :list-api="listMaintOrderGroupDetail" - :req-value="orderId" - class="h-2/5" + :req-value="recordId" + class="h-1/3" req-key="maintCode" title="淇濆吇瀹炴柦椤圭洰" /> </div> - <MaintOrderStDrawer @reload="tableApi.query()" /> + <InspStDrawer @reload="tableApi.query()" /> </Page> </template> diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/maint-order-st-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/insp-st/insp-st-drawer.vue similarity index 89% copy from eims-ui/apps/web-antd/src/views/eims/maint-order-st/maint-order-st-drawer.vue copy to eims-ui/apps/web-antd/src/views/eims/insp-st/insp-st-drawer.vue index 414ec0f..14d4412 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/maint-order-st-drawer.vue +++ b/eims-ui/apps/web-antd/src/views/eims/insp-st/insp-st-drawer.vue @@ -7,7 +7,7 @@ import { InputSearch } from 'ant-design-vue'; import { useVbenForm } from '#/adapter/form'; -import { getMaintOrderSt, updateMaintOrderSt } from '#/api/eims/maint-order-st'; +import { getInspectSt, updateInspectSt } from '#/api/eims/insp-st'; import userModal from '#/views/eims/components/user-modal.vue'; import { drawerSchema } from './data'; @@ -16,7 +16,7 @@ const isUpdate = ref(false); const title = computed(() => { - return isUpdate.value ? '淇濆吇宸ュ崟姹囨�荤ń鏌�' : '淇濆吇宸ュ崟姹囨��'; + return isUpdate.value ? '鐐规璁板綍姹囨�荤ń鏌�' : '鐐规璁板綍姹囨��'; }); const [BasicForm, formApi] = useVbenForm({ @@ -44,7 +44,7 @@ isUpdate.value = !!id; // 鏇存柊 && 璧嬪�� if (isUpdate.value && id) { - const record = await getMaintOrderSt(id); + const record = await getInspectSt(id); await formApi.setValues(record); } @@ -61,7 +61,7 @@ } const data = cloneDeep(await formApi.getValues()); // await (isUpdate.value ? updateMaintOrderSt(data) : addMaintOrderSt(data)); - await (isUpdate.value ? updateMaintOrderSt(data) : updateMaintOrderSt(data)); + await (isUpdate.value ? updateInspectSt(data) : updateInspectSt(data)); emit('reload'); await handleCancel(); } catch (error) { diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx b/eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx index d3bc2b5..724a93a 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx +++ b/eims-ui/apps/web-antd/src/views/eims/maint-order/data.tsx @@ -126,6 +126,11 @@ minWidth: 160 }, { + title: '宸ヤ綔鎻忚堪', + field: 'maintDesc', + minWidth: 200 + }, + { title: '楠岃瘉浜�', field: 'verifyUserName', minWidth: 160 @@ -174,6 +179,11 @@ component: 'Input', fieldName: 'maintCode', label: '淇濆吇鍗曞彿' + }, + { + component: 'Input', + fieldName: 'maintName', + label: '淇濆吇椤�' }, { component: 'Input', @@ -289,6 +299,11 @@ label: '缁撴潫鏃堕棿' }, { + component: 'Textarea', + fieldName: 'maintDesc', + label: '宸ヤ綔鎻忚堪' + }, + { component: 'Input', fieldName: 'verifyUser', label: '楠岃瘉浜篿d', diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue b/eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue index b588a79..2f1b154 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue +++ b/eims-ui/apps/web-antd/src/views/eims/maint-order/index.vue @@ -191,8 +191,6 @@ ]); } - - onMounted(async () => { await setupDeptSelect(); }); @@ -257,9 +255,9 @@ > {{ $t('pages.common.delete') }} </a-button> - <a-button type="primary" v-access:code="['eims:maintOrder:add']" @click="handleAdd"> + <!-- <a-button type="primary" v-access:code="['eims:maintOrder:add']" @click="handleAdd"> {{ $t('pages.common.add') }} - </a-button> + </a-button>--> </Space> </template> @@ -298,8 +296,7 @@ <ghost-button v-access:code="['eims:maintOrder: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:maintOrder:remove']" @click.stop=""> {{ $t('pages.common.delete') }} </ghost-button> @@ -308,7 +305,6 @@ </template> </BasicTable> <!--<BasisSubTable :columns="maintStandCol" :list-api="listMaintStand" :req-value="equId" class="h-1/3" req-key="equId" title="淇濆吇瀹炴柦椤圭洰" />--> - </div> <MaintOrderDrawer @reload="tableApi.query()" /> </Page> diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order/maint-order-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/maint-order/maint-order-drawer.vue index 992a2e3..86164a4 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order/maint-order-drawer.vue +++ b/eims-ui/apps/web-antd/src/views/eims/maint-order/maint-order-drawer.vue @@ -54,6 +54,14 @@ } // 閲嶇疆 baoyangCol(false); + formApi.updateSchema([ + { + componentProps: { + disabled: isUpdate.value + }, + fieldName: 'maintName' + } + ]); // 鏇存柊 && 璧嬪�� if (isUpdate.value && id) { @@ -121,6 +129,12 @@ disabled: show }, fieldName: 'status' + }, + { + componentProps: { + disabled: show + }, + fieldName: 'maintName' } ]); } diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-plan/data.tsx b/eims-ui/apps/web-antd/src/views/eims/maint-plan/data.tsx index dcf9cfa..4e6a0f9 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-plan/data.tsx +++ b/eims-ui/apps/web-antd/src/views/eims/maint-plan/data.tsx @@ -136,6 +136,11 @@ minWidth: 160 }, { + title: '鍒涘缓鏃堕棿', + field: 'createTime', + minWidth: 200 + }, + { field: 'action', fixed: 'right', slots: { default: 'action' }, diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-plan/index.vue b/eims-ui/apps/web-antd/src/views/eims/maint-plan/index.vue index 2927a97..2ddc20e 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-plan/index.vue +++ b/eims-ui/apps/web-antd/src/views/eims/maint-plan/index.vue @@ -15,7 +15,6 @@ import { getDeptTree, userList } from '#/api/system/user'; import { MAINT_ORDER_STATUS } from '#/constants/dict'; import { commonDownloadExcel } from '#/utils/file/download'; -import BasisSubTable from '#/views/eims/components/basis-sub-table.vue'; import maintOrderDrawer from '#/views/eims/maint-order/maint-order-drawer.vue'; import { columns, querySchema } from './data'; @@ -157,7 +156,8 @@ maintType: record.maintType, planTime: record.maintNextTime, status: MAINT_ORDER_STATUS.DAIBAOYANG, - maintCode: code + maintCode: code, + maintName: record.maintName }; maintOrderDrawerApi.setData({ planOrder }); diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/data.tsx b/eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx similarity index 94% rename from eims-ui/apps/web-antd/src/views/eims/maint-order-st/data.tsx rename to eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx index 0629b80..973651d 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/data.tsx +++ b/eims-ui/apps/web-antd/src/views/eims/maint-st/data.tsx @@ -12,8 +12,13 @@ export const querySchema: FormSchemaGetter = () => [ { component: 'Input', - fieldName: 'equName', - label: '璁惧鍚嶇О' + fieldName: 'title', + label: '鏍囬' + }, + { + component: 'Input', + fieldName: 'assetno', + label: '璧勪骇缂栧彿' }, { component: 'RangePicker', @@ -33,15 +38,15 @@ export const columns: VxeGridProps['columns'] = [ { type: 'checkbox', width: 60, fixed: 'left' }, { - title: '璁惧鍚嶇О', - field: 'equName', + title: '鏍囬', + field: 'title', minWidth: 200, fixed: 'left' }, { - title: '璁″垝淇濆吇鏃ユ湡', + title: '淇濆吇骞存湀', field: 'planTime', - minWidth: 200 + minWidth: 120 }, { title: '鐘舵��', diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue b/eims-ui/apps/web-antd/src/views/eims/maint-st/index.vue similarity index 75% rename from eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue rename to eims-ui/apps/web-antd/src/views/eims/maint-st/index.vue index 716379d..a90f696 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue +++ b/eims-ui/apps/web-antd/src/views/eims/maint-st/index.vue @@ -1,23 +1,23 @@ <script setup lang="ts"> +import type { Recordable } from '@vben/types'; + import { onMounted, ref } from 'vue'; import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui'; +import { $t } from '@vben/locales'; import { addFullName, getPopupContainer, getVxePopupContainer } from '@vben/utils'; -import { Popconfirm, Space } from 'ant-design-vue'; +import { Modal, Popconfirm, Space } from 'ant-design-vue'; -import { useVbenVxeGrid, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; +import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; import { listMaintOrderGroupDetail } from '#/api/eims/maint-order'; -import { delMaintOrderSt, listMaintOrderSt } from '#/api/eims/maint-order-st'; +import { delMaintSt, listMaintSt } from '#/api/eims/maint-st'; import { getDeptTree, userList } from '#/api/system/user'; import BasisSubTable from '#/views/eims/components/basis-sub-table.vue'; import { columns as orderCol } from '#/views/eims/maint-order/data'; import { columns, querySchema } from './data'; -import maintOrderStDrawer from './maint-order-st-drawer.vue'; -import type { Recordable } from '@vben/types'; -import { MAINT_ORDER_STATUS } from '#/constants/dict'; -import { $t } from '@vben/locales'; +import maintStDrawer from './maint-st-drawer.vue'; defineExpose({ tableSelect @@ -53,7 +53,7 @@ proxyConfig: { ajax: { query: async ({ page }, formValues = {}) => { - return await listMaintOrderSt({ + return await listMaintSt({ pageNum: page.currentPage, pageSize: page.pageSize, ...formValues @@ -152,24 +152,32 @@ } ]); } -const [MaintOrderStDrawer, maintOrderStDrawerApi] = useVbenDrawer({ - connectedComponent: maintOrderStDrawer +const [MaintStDrawer, maintStDrawerApi] = useVbenDrawer({ + connectedComponent: maintStDrawer }); -function handleAdd() { - maintOrderStDrawerApi.setData({}); - maintOrderStDrawerApi.open(); -} - async function handleEdit(record: Recordable<any>) { - maintOrderStDrawerApi.setData({ id: record.id }); - maintOrderStDrawerApi.open(); + maintStDrawerApi.setData({ id: record.id }); + maintStDrawerApi.open(); } async function handleDelete(row: Recordable<any>) { - await delMaintOrderSt(row.id); + await delMaintSt(row.id); await tableApi.query(); } +function handleMultiDelete() { + const rows = tableApi.grid.getCheckboxRecords(); + const ids = rows.map((row: any) => row.id); + Modal.confirm({ + title: '鎻愮ず', + okType: 'danger', + content: `纭鍒犻櫎閫変腑鐨�${ids.length}鏉¤褰曞悧锛焋, + onOk: async () => { + await delMaintSt(ids); + await tableApi.query(); + } + }); +} onMounted(async () => { await setupDeptSelect(); @@ -184,9 +192,19 @@ <template> <Page :auto-content-height="true"> <div class="flex h-full gap-[8px] flex-col"> - <BasicTable class="h-3/5" table-title="淇濆吇宸ュ崟鍒楄〃"> + <BasicTable class="h-2/3" table-title="淇濆吇宸ュ崟鍒楄〃"> <template #toolbar-tools> - <Space /> + <Space> + <a-button + :disabled="!vxeCheckboxChecked(tableApi)" + danger + type="primary" + v-access:code="['eims:maintSt:remove']" + @click="handleMultiDelete" + > + {{ $t('pages.common.delete') }} + </a-button> + </Space> </template> <template #equName="{ row }"> @@ -196,28 +214,26 @@ </template> <template #action="{ row }"> <Space> - <ghost-button v-access:code="['eims:maintOrderSt:edit']" @click.stop="handleEdit(row)"> + <ghost-button v-access:code="['eims:maintSt:edit']" @click.stop="handleEdit(row)"> {{ $t('pages.common.edit') }} </ghost-button> - <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" - @confirm="handleDelete(row)"> - <ghost-button danger v-access:code="['eims:maintOrderSt:remove']" @click.stop=""> + <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)"> + <ghost-button danger v-access:code="['eims:maintSt:remove']" @click.stop=""> {{ $t('pages.common.delete') }} </ghost-button> </Popconfirm> </Space> </template> - </BasicTable> <BasisSubTable :columns="orderCol" :list-api="listMaintOrderGroupDetail" :req-value="orderId" - class="h-2/5" + class="h-1/3" req-key="maintCode" title="淇濆吇瀹炴柦椤圭洰" /> </div> - <MaintOrderStDrawer @reload="tableApi.query()" /> + <MaintStDrawer @reload="tableApi.query()" /> </Page> </template> diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/maint-order-st-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/maint-st/maint-st-drawer.vue similarity index 92% rename from eims-ui/apps/web-antd/src/views/eims/maint-order-st/maint-order-st-drawer.vue rename to eims-ui/apps/web-antd/src/views/eims/maint-st/maint-st-drawer.vue index 414ec0f..f9f73a3 100644 --- a/eims-ui/apps/web-antd/src/views/eims/maint-order-st/maint-order-st-drawer.vue +++ b/eims-ui/apps/web-antd/src/views/eims/maint-st/maint-st-drawer.vue @@ -5,9 +5,9 @@ import { cloneDeep } from '@vben/utils'; import { InputSearch } from 'ant-design-vue'; +import { getMaintSt, updateMaintSt } from '#/api/eims/maint-st'; import { useVbenForm } from '#/adapter/form'; -import { getMaintOrderSt, updateMaintOrderSt } from '#/api/eims/maint-order-st'; import userModal from '#/views/eims/components/user-modal.vue'; import { drawerSchema } from './data'; @@ -44,7 +44,7 @@ isUpdate.value = !!id; // 鏇存柊 && 璧嬪�� if (isUpdate.value && id) { - const record = await getMaintOrderSt(id); + const record = await getMaintSt(id); await formApi.setValues(record); } @@ -61,7 +61,7 @@ } const data = cloneDeep(await formApi.getValues()); // await (isUpdate.value ? updateMaintOrderSt(data) : addMaintOrderSt(data)); - await (isUpdate.value ? updateMaintOrderSt(data) : updateMaintOrderSt(data)); + await (isUpdate.value ? updateMaintSt(data) : updateMaintSt(data)); emit('reload'); await handleCancel(); } catch (error) { diff --git a/eims-ui/packages/@core/base/shared/src/constants/dict-enum.ts b/eims-ui/packages/@core/base/shared/src/constants/dict-enum.ts index cc14eac..3052f3d 100644 --- a/eims-ui/packages/@core/base/shared/src/constants/dict-enum.ts +++ b/eims-ui/packages/@core/base/shared/src/constants/dict-enum.ts @@ -1,16 +1,19 @@ export enum DictEnum { EIMS_EQU_UNIT = 'eims_equ_unit', // 璁惧鐩樼偣鐘舵�� EIMS_FIXTURE_STATUS = 'eims_fixture_status', // 宸ュ叿锛堟不鍏凤級鐘舵�� + EIMS_INSPECT_TYPE = 'eims_inspect_type', // 鐐规绫诲瀷 EIMS_INVENTORY_DETAIL_STATU = 'inventory_detail_statu', // 璁惧鐩樼偣鐘舵�� EIMS_INVENTORY_STATU = 'inventory_statu', // 璁惧鐩樼偣鐘舵�� EIMS_MAINT_TYPE = 'eims_maint_type', // 淇濆吇绫诲瀷 + EIMS_INSPECT_RESULT = 'eims_inspect_result', // 鐐规缁撴灉 EIMS_ORDITM_STATUS = 'eims_orditm_status', // 淇濆吇宸ュ崟鏄庣粏瀹屾垚鐘舵�� EQU_IMPORT_STATU = 'equ_import_status', // 璁惧瀵煎叆鐘舵�� FIXTURE_BORROW_RECORD_STATUS = 'fixture_borrow_record_status', // 宸ュ叿锛堟不鍏凤級鍊熺敤璁板綍鐘舵�� FIXTURE_BORROW_STATUS = 'fixture_borrow_status', // 宸ュ叿锛堟不鍏凤級鍊熺敤鐘舵�� MAINT_CYCLE_UNIT = 'maint_cycle_unit', // 淇濆吇鍛ㄦ湡鍗曚綅 - MAINT_ORDER_STATUS = 'maint_order_status', // 淇濆吇宸ュ崟鐘舵�� MAINT_ORDER_ST_STATUS = 'maint_order_st_status', // 淇濆吇宸ュ崟姹囨�荤ń鏌ョ姸鎬� + MAINT_ORDER_STATUS = 'maint_order_status', // 淇濆吇宸ュ崟鐘舵�� + EIMS_INSPECT_STATUS = 'eims_inspect_status', // 鐐规鐘舵�� MAINT_TIME_RULE = 'maint_time_rule', // 淇濆吇瑙勫垯 REPAIR_FAULT_TYPE = 'repair_fault_type', // 鎶ヤ慨鐘舵�� REPAIR_RECORD_HANDLE = 'repair_record_handle', // 缁翠慨璁板綍鎿嶄綔 diff --git a/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DictConstants.java b/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DictConstants.java index f4e85ac..847160d 100644 --- a/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DictConstants.java +++ b/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DictConstants.java @@ -150,4 +150,6 @@ String N = "0";// 鏈畬鎴� String Y = "1"; // 宸插畬鎴� } + + } diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java new file mode 100644 index 0000000..a528722 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java @@ -0,0 +1,106 @@ +package org.dromara.eims.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.eims.domain.vo.EimsInspectPlanVo; +import org.dromara.eims.domain.bo.EimsInspectPlanBo; +import org.dromara.eims.service.IEimsInspectPlanService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 鐐规璁″垝 + * + * @author zhuguifei + * @date 2025-03-12 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/eims/inspectPlan") +public class EimsInspectPlanController extends BaseController { + + private final IEimsInspectPlanService eimsInspectPlanService; + + /** + * 鏌ヨ鐐规璁″垝鍒楄〃 + */ + @SaCheckPermission("eims:inspectPlan:list") + @GetMapping("/list") + public TableDataInfo<EimsInspectPlanVo> list(EimsInspectPlanBo bo, PageQuery pageQuery) { + // return eimsInspectPlanService.queryPageList(bo, pageQuery); + return eimsInspectPlanService.queryPageListCustom(bo, pageQuery); + } + + /** + * 瀵煎嚭鐐规璁″垝鍒楄〃 + */ + @SaCheckPermission("eims:inspectPlan:export") + @Log(title = "鐐规璁″垝", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(EimsInspectPlanBo bo, HttpServletResponse response) { + List<EimsInspectPlanVo> list = eimsInspectPlanService.queryList(bo); + ExcelUtil.exportExcel(list, "鐐规璁″垝", EimsInspectPlanVo.class, response); + } + + /** + * 鑾峰彇鐐规璁″垝璇︾粏淇℃伅 + * + * @param id 涓婚敭 + */ + @SaCheckPermission("eims:inspectPlan:query") + @GetMapping("/{id}") + public R<EimsInspectPlanVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") + @PathVariable Long id) { + return R.ok(eimsInspectPlanService.queryById(id)); + } + + /** + * 鏂板鐐规璁″垝 + */ + @SaCheckPermission("eims:inspectPlan:add") + @Log(title = "鐐规璁″垝", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsInspectPlanBo bo) { + return toAjax(eimsInspectPlanService.insertByBo(bo)); + } + + /** + * 淇敼鐐规璁″垝 + */ + @SaCheckPermission("eims:inspectPlan:edit") + @Log(title = "鐐规璁″垝", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsInspectPlanBo bo) { + return toAjax(eimsInspectPlanService.updateByBo(bo)); + } + + /** + * 鍒犻櫎鐐规璁″垝 + * + * @param ids 涓婚敭涓� + */ + @SaCheckPermission("eims:inspectPlan:remove") + @Log(title = "鐐规璁″垝", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖") + @PathVariable Long[] ids) { + return toAjax(eimsInspectPlanService.deleteWithValidByIds(List.of(ids), true)); + } +} 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 new file mode 100644 index 0000000..6a65c62 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java @@ -0,0 +1,106 @@ +package org.dromara.eims.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.eims.domain.vo.EimsInspectRecordVo; +import org.dromara.eims.domain.bo.EimsInspectRecordBo; +import org.dromara.eims.service.IEimsInspectRecordService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 鐐规璁板綍 + * + * @author zhuguifei + * @date 2025-03-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/eims/inspRecord") +public class EimsInspectRecordController extends BaseController { + + private final IEimsInspectRecordService eimsInspectRecordService; + + /** + * 鏌ヨ鐐规璁板綍鍒楄〃 + */ + @SaCheckPermission("eims:inspectRecord:list") + @GetMapping("/list") + public TableDataInfo<EimsInspectRecordVo> list(EimsInspectRecordBo bo, PageQuery pageQuery) { + // return eimsInspectRecordService.queryPageList(bo, pageQuery); + return eimsInspectRecordService.queryPageListCustom(bo, pageQuery); + } + + /** + * 瀵煎嚭鐐规璁板綍鍒楄〃 + */ + @SaCheckPermission("eims:inspectRecord:export") + @Log(title = "鐐规璁板綍", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(EimsInspectRecordBo bo, HttpServletResponse response) { + List<EimsInspectRecordVo> list = eimsInspectRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "鐐规璁板綍", EimsInspectRecordVo.class, response); + } + + /** + * 鑾峰彇鐐规璁板綍璇︾粏淇℃伅 + * + * @param id 涓婚敭 + */ + @SaCheckPermission("eims:inspectRecord:query") + @GetMapping("/{id}") + public R<EimsInspectRecordVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") + @PathVariable Long id) { + return R.ok(eimsInspectRecordService.queryById(id)); + } + + /** + * 鏂板鐐规璁板綍 + */ + @SaCheckPermission("eims:inspectRecord:add") + @Log(title = "鐐规璁板綍", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsInspectRecordBo bo) { + return toAjax(eimsInspectRecordService.insertByBo(bo)); + } + + /** + * 淇敼鐐规璁板綍 + */ + @SaCheckPermission("eims:inspectRecord:edit") + @Log(title = "鐐规璁板綍", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsInspectRecordBo bo) { + return toAjax(eimsInspectRecordService.updateByBo(bo)); + } + + /** + * 鍒犻櫎鐐规璁板綍 + * + * @param ids 涓婚敭涓� + */ + @SaCheckPermission("eims:inspectRecord:remove") + @Log(title = "鐐规璁板綍", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖") + @PathVariable Long[] ids) { + return toAjax(eimsInspectRecordService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectStController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectStController.java new file mode 100644 index 0000000..166d4d4 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectStController.java @@ -0,0 +1,105 @@ +package org.dromara.eims.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.eims.domain.vo.EimsInspectStVo; +import org.dromara.eims.domain.bo.EimsInspectStBo; +import org.dromara.eims.service.IEimsInspectStService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 鐐规姹囨�� + * + * @author zhuguifei + * @date 2025-03-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/eims/inspectSt") +public class EimsInspectStController extends BaseController { + + private final IEimsInspectStService eimsInspectStService; + + /** + * 鏌ヨ鐐规姹囨�诲垪琛� + */ + @SaCheckPermission("eims:inspectSt:list") + @GetMapping("/list") + public TableDataInfo<EimsInspectStVo> list(EimsInspectStBo bo, PageQuery pageQuery) { + return eimsInspectStService.queryPageList(bo, pageQuery); + } + + /** + * 瀵煎嚭鐐规姹囨�诲垪琛� + */ + @SaCheckPermission("eims:inspectSt:export") + @Log(title = "鐐规姹囨��", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(EimsInspectStBo bo, HttpServletResponse response) { + List<EimsInspectStVo> list = eimsInspectStService.queryList(bo); + ExcelUtil.exportExcel(list, "鐐规姹囨��", EimsInspectStVo.class, response); + } + + /** + * 鑾峰彇鐐规姹囨�昏缁嗕俊鎭� + * + * @param id 涓婚敭 + */ + @SaCheckPermission("eims:inspectSt:query") + @GetMapping("/{id}") + public R<EimsInspectStVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") + @PathVariable Long id) { + return R.ok(eimsInspectStService.queryById(id)); + } + + /** + * 鏂板鐐规姹囨�� + */ + @SaCheckPermission("eims:inspectSt:add") + @Log(title = "鐐规姹囨��", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsInspectStBo bo) { + return toAjax(eimsInspectStService.insertByBo(bo)); + } + + /** + * 淇敼鐐规姹囨�� + */ + @SaCheckPermission("eims:inspectSt:edit") + @Log(title = "鐐规姹囨��", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsInspectStBo bo) { + return toAjax(eimsInspectStService.updateByBo(bo)); + } + + /** + * 鍒犻櫎鐐规姹囨�� + * + * @param ids 涓婚敭涓� + */ + @SaCheckPermission("eims:inspectSt:remove") + @Log(title = "鐐规姹囨��", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖") + @PathVariable Long[] ids) { + return toAjax(eimsInspectStService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java index 4eeba76..b633ce4 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java @@ -1,6 +1,10 @@ package org.dromara.eims.controller; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.temporal.TemporalAdjusters; import java.util.List; +import java.util.Map; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; @@ -54,7 +58,6 @@ @SaCheckPermission("eims:maintOrder:list") @GetMapping("/groupList") public TableDataInfo<MaintOrdeGroupVo> group(EimsMaintOrderBo bo, PageQuery pageQuery) { -// return eimsMaintOrderService.queryPageList(bo, pageQuery); return eimsMaintOrderService.queryPageGroupList(bo, pageQuery); } @@ -68,9 +71,14 @@ } String[] split = maintCode.split("_"); bo.setEquId(Long.valueOf(split[0])); - bo.setPlanTime(DateUtils.parseDate(split[1])); bo.setMaintCode(null); -// return eimsMaintOrderService.queryPageList(bo, pageQuery); + LocalDate planTime = DateUtils.parseDate(split[1]).toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth()); + LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth()); + Map<String, Object> params = bo.getParams(); + params.put("beginPlanTime",startOfMonth); + params.put("endPlanTime",endOfMonth); + return eimsMaintOrderService.queryPageListCustom(bo, pageQuery); } diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderStController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java similarity index 62% rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderStController.java rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java index 02e2735..89cb75b 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderStController.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintStController.java @@ -6,6 +6,8 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.eims.domain.bo.EimsMaintStBo; +import org.dromara.eims.domain.vo.EimsMaintStVo; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -17,9 +19,7 @@ import org.dromara.common.core.validate.EditGroup; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.eims.domain.vo.EimsMaintOrderStVo; -import org.dromara.eims.domain.bo.EimsMaintOrderStBo; -import org.dromara.eims.service.IEimsMaintOrderStService; +import org.dromara.eims.service.IEimsMaintStService; import org.dromara.common.mybatis.core.page.TableDataInfo; /** @@ -31,29 +31,29 @@ @Validated @RequiredArgsConstructor @RestController -@RequestMapping("/eims/maintOrderSt") -public class EimsMaintOrderStController extends BaseController { +@RequestMapping("/eims/maintSt") +public class EimsMaintStController extends BaseController { - private final IEimsMaintOrderStService eimsMaintOrderStService; + private final IEimsMaintStService eimsMaintStService; /** * 鏌ヨ淇濆吇宸ュ崟姹囨�诲垪琛� */ - @SaCheckPermission("eims:maintOrderSt:list") + @SaCheckPermission("eims:maintSt:list") @GetMapping("/list") - public TableDataInfo<EimsMaintOrderStVo> list(EimsMaintOrderStBo bo, PageQuery pageQuery) { - return eimsMaintOrderStService.queryPageList(bo, pageQuery); + public TableDataInfo<EimsMaintStVo> list(EimsMaintStBo bo, PageQuery pageQuery) { + return eimsMaintStService.queryPageList(bo, pageQuery); } /** * 瀵煎嚭淇濆吇宸ュ崟姹囨�诲垪琛� */ - @SaCheckPermission("eims:maintOrderSt:export") + @SaCheckPermission("eims:maintSt:export") @Log(title = "淇濆吇宸ュ崟姹囨��", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(EimsMaintOrderStBo bo, HttpServletResponse response) { - List<EimsMaintOrderStVo> list = eimsMaintOrderStService.queryList(bo); - ExcelUtil.exportExcel(list, "淇濆吇宸ュ崟姹囨��", EimsMaintOrderStVo.class, response); + public void export(EimsMaintStBo bo, HttpServletResponse response) { + List<EimsMaintStVo> list = eimsMaintStService.queryList(bo); + ExcelUtil.exportExcel(list, "淇濆吇宸ュ崟姹囨��", EimsMaintStVo.class, response); } /** @@ -61,33 +61,33 @@ * * @param id 涓婚敭 */ - @SaCheckPermission("eims:maintOrderSt:query") + @SaCheckPermission("eims:maintSt:query") @GetMapping("/{id}") - public R<EimsMaintOrderStVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") + public R<EimsMaintStVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") @PathVariable Long id) { - return R.ok(eimsMaintOrderStService.queryById(id)); + return R.ok(eimsMaintStService.queryById(id)); } /** * 鏂板淇濆吇宸ュ崟姹囨�� */ - @SaCheckPermission("eims:maintOrderSt:add") + @SaCheckPermission("eims:maintSt:add") @Log(title = "淇濆吇宸ュ崟姹囨��", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsMaintOrderStBo bo) { - return toAjax(eimsMaintOrderStService.insertByBo(bo)); + public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsMaintStBo bo) { + return toAjax(eimsMaintStService.insertByBo(bo)); } /** * 淇敼淇濆吇宸ュ崟姹囨�� */ - @SaCheckPermission("eims:maintOrderSt:edit") + @SaCheckPermission("eims:maintSt:edit") @Log(title = "淇濆吇宸ュ崟姹囨��", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsMaintOrderStBo bo) { - return toAjax(eimsMaintOrderStService.updateByBo(bo)); + public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsMaintStBo bo) { + return toAjax(eimsMaintStService.updateByBo(bo)); } /** @@ -95,12 +95,12 @@ * * @param ids 涓婚敭涓� */ - @SaCheckPermission("eims:maintOrderSt:remove") + @SaCheckPermission("eims:maintSt:remove") @Log(title = "淇濆吇宸ュ崟姹囨��", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖") @PathVariable Long[] ids) { - return eimsMaintOrderStService.deleteWithValidByIds(List.of(ids), true); + return eimsMaintStService.deleteWithValidByIds(List.of(ids), true); } } diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectPlan.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectPlan.java new file mode 100644 index 0000000..f5331b5 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectPlan.java @@ -0,0 +1,112 @@ +package org.dromara.eims.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 鐐规璁″垝瀵硅薄 eims_inspect_plan + * + * @author zhuguifei + * @date 2025-03-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("eims_inspect_plan") +public class EimsInspectPlan extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 璁惧id + + */ + private Long equId; + + /** + * 鐐规绫诲瀷锛堝瓧鍏革級 + */ + private String inspType; + + /** + * 鐐规椤瑰悕绉� + */ + private String inspName; + + /** + * 鐐规椤圭紪鍙� + */ + private Long inspNo; + + /** + * 鐐规璇存槑 + */ + private String inspDesc; + + /** + * 鐐规鍛ㄦ湡 + */ + private Long inspCycle; + + /** + * 鐐规鍛ㄦ湡鍗曚綅锛堝瓧鍏革級 + */ + private String inspCycleUnit; + + /** + * 鐐规瑙勫垯锛堝瓧鍏革級淇濆吇鏃堕棿璁$畻锛�1-鎸夊懆鏈� 2-鎸変笂娆′繚鍏绘椂闂� + */ + private String inspRule; + + /** + * 鐐规浜� + */ + private Long inspUser; + + /** + * 鐐规閮ㄩ棬 + */ + private Long inspDept; + + /** + * 鐘舵�侊紙瀛楀吀锛� 0-鍚敤 1-绂佺敤 + */ + private String status; + + /** + * 棣栨鎵ц鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspFirstTime; + + /** + * 涓婃鎵ц鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspLastTime; + + /** + * 涓嬫鎵ц鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspNextTime; + + /** + * 澶囨敞 + */ + private String remark; + + +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectRecord.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectRecord.java new file mode 100644 index 0000000..7d6d77d --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectRecord.java @@ -0,0 +1,130 @@ +package org.dromara.eims.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 鐐规璁板綍瀵硅薄 eims_inspect_record + * + * @author zhuguifei + * @date 2025-03-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("eims_inspect_record") +public class EimsInspectRecord extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 璁惧di + */ + private Long equId; + + /** + * 鐐规鍚嶇О + */ + private String inspName; + + /** + * 鐐规鎻忚堪 + */ + private String inspDesc; + + /** + * 鐘舵�� + */ + private String status; + + /** + * 鐐规缂栫爜 + */ + private String inspCode; + + /** + * 鐐规浜� + */ + private Long inspUser; + + /** + * 鐐规閮ㄩ棬 + */ + private Long inspDept; + + /** + * 鍊艰褰曟柟寮忥紙瀛楀吀锛� + */ + private String recordMode; + + /** + * 鍙傝�冨�� + */ + private String referenceValue; + + /** + * 涓婇檺 + */ + private String upperLimit; + + /** + * 涓嬮檺 + */ + private String lowLimit; + + /** + * 妫�鏌ュ�� + */ + private String checkValue; + + /** + * 鐐规缁撴灉锛堝瓧鍏革級 + */ + private String inspResult; + + /** + * 鐐规绫诲瀷锛堝瓧鍏革級 + */ + private String inspType; + + + /** + * 鐐规鏃堕棿 + */ + private Date inspTime; + + /** + * 璁″垝鐐规鏃ユ湡 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date planTime; + + /** + * 楠岃瘉浜� + */ + private Long verifyUser; + + /** + * 璁″垝id + */ + private Long planId; + + /** + * 澶囨敞 + */ + private String remark; + + +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrderSt.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java similarity index 71% copy from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrderSt.java copy to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java index 051fadd..a0a0c3b 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrderSt.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsInspectSt.java @@ -10,15 +10,15 @@ import java.io.Serial; /** - * 淇濆吇宸ュ崟姹囨�诲璞� eims_maint_order_st + * 鐐规姹囨�诲璞� eims_inspect_st * * @author zhuguifei - * @date 2025-03-12 + * @date 2025-03-14 */ @Data @EqualsAndHashCode(callSuper = true) -@TableName("eims_maint_order_st") -public class EimsMaintOrderSt extends BaseEntity { +@TableName("eims_inspect_st") +public class EimsInspectSt extends BaseEntity { @Serial private static final long serialVersionUID = 1L; @@ -30,35 +30,38 @@ private Long id; /** - * + * 鏍囬 */ private String title; /** - * + * 璁惧id */ - private String equId; + private Long equId; /** - * + * 璁″垝鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd") private Date planTime; - @JsonFormat(pattern = "yyyy-MM-dd") - private Date verifyTime; - + /** + * 鐘舵�� + */ private String status; /** - * 淇濆吇浜� + * 鐐规浜� */ - private Long maintUser; - + private Long inspUser; /** - * 楠岃瘉浜� + * 绋芥煡浜� */ private Long verifyUser; + + /** + * 绋芥煡鏃ユ湡 + */ + private Date verifyTime; /** * 鐗硅浜嬮」 @@ -71,4 +74,5 @@ private String remark; + } diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrder.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrder.java index 6811b22..af7cf77 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrder.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrder.java @@ -75,6 +75,14 @@ private String maintCode; /** + * 淇濆吇椤� + */ + private String maintName; + /** + * 宸ヤ綔鎻忚堪 + */ + private String maintDesc; + /** * */ private String status; diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrderSt.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintSt.java similarity index 86% rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrderSt.java rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintSt.java index 051fadd..b513f27 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintOrderSt.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsMaintSt.java @@ -10,15 +10,15 @@ import java.io.Serial; /** - * 淇濆吇宸ュ崟姹囨�诲璞� eims_maint_order_st + * 淇濆吇宸ュ崟姹囨�诲璞� eims_maint_st * * @author zhuguifei * @date 2025-03-12 */ @Data @EqualsAndHashCode(callSuper = true) -@TableName("eims_maint_order_st") -public class EimsMaintOrderSt extends BaseEntity { +@TableName("eims_maint_st") +public class EimsMaintSt extends BaseEntity { @Serial private static final long serialVersionUID = 1L; @@ -37,7 +37,7 @@ /** * */ - private String equId; + private Long equId; /** * diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectPlanBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectPlanBo.java new file mode 100644 index 0000000..68be155 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectPlanBo.java @@ -0,0 +1,123 @@ +package org.dromara.eims.domain.bo; + +import org.dromara.eims.domain.EimsInspectPlan; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 鐐规璁″垝涓氬姟瀵硅薄 eims_inspect_plan + * + * @author zhuguifei + * @date 2025-03-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = EimsInspectPlan.class, reverseConvertGenerate = false) +public class EimsInspectPlanBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "涓嶈兘涓虹┖", groups = { EditGroup.class }) + private Long id; + + /** + * 璁惧id + + */ + @NotNull(message = "璁惧id 涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + private Long equId; + + /** + * 鐐规绫诲瀷锛堝瓧鍏革級 + */ + private String inspType; + + /** + * 鐐规椤瑰悕绉� + */ + @NotBlank(message = "鐐规椤瑰悕绉颁笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class }) + private String inspName; + + /** + * 鐐规椤圭紪鍙� + */ + private Long inspNo; + + /** + * 鐐规璇存槑 + */ + private String inspDesc; + + /** + * 鐐规鍛ㄦ湡 + */ + @NotNull(message = "鐐规鍛ㄦ湡涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + private Long inspCycle; + + /** + * 鐐规鍛ㄦ湡鍗曚綅锛堝瓧鍏革級 + */ + @NotBlank(message = "鐐规鍛ㄦ湡鍗曚綅锛堝瓧鍏革級涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + private String inspCycleUnit; + + /** + * 鐐规瑙勫垯锛堝瓧鍏革級淇濆吇鏃堕棿璁$畻锛�1-鎸夊懆鏈� 2-鎸変笂娆′繚鍏绘椂闂� + */ + private String inspRule; + + /** + * 鐐规浜� + */ + @NotNull(message = "鐐规浜轰笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class }) + private Long inspUser; + + /** + * 鐐规閮ㄩ棬 + */ + private Long inspDept; + + /** + * 鐘舵�侊紙瀛楀吀锛� 0-鍚敤 1-绂佺敤 + */ + @NotBlank(message = "鐘舵�侊紙瀛楀吀锛� 0-鍚敤 1-绂佺敤涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 棣栨鎵ц鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspFirstTime; + + /** + * 涓婃鎵ц鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspLastTime; + + /** + * 涓嬫鎵ц鏃堕棿 + */ + @NotNull(message = "涓嬫鎵ц鏃堕棿涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspNextTime; + + /** + * 澶囨敞 + */ + private String remark; + + + // 澶氳〃鏌ヨ瀛楁 + private String equName; + private String assetNo; + + +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectRecordBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectRecordBo.java new file mode 100644 index 0000000..c570126 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectRecordBo.java @@ -0,0 +1,135 @@ +package org.dromara.eims.domain.bo; + +import org.dromara.eims.domain.EimsInspectRecord; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 鐐规璁板綍涓氬姟瀵硅薄 eims_inspect_record + * + * @author zhuguifei + * @date 2025-03-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = EimsInspectRecord.class, reverseConvertGenerate = false) +public class EimsInspectRecordBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id涓嶈兘涓虹┖", groups = { EditGroup.class }) + private Long id; + + /** + * 璁惧di + */ + @NotNull(message = "璁惧di涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + private Long equId; + + private String equName; + private String assetNo; + + /** + * 鐐规鍚嶇О + */ + @NotBlank(message = "鐐规鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + private String inspName; + + /** + * 鐐规鎻忚堪 + */ + private String inspDesc; + + /** + * 鐐规绫诲瀷 + */ + private String inspType; + + /** + * 鐐规浜� + */ + private Long inspUser; + + /** + * 鐐规閮ㄩ棬 + */ + private Long inspDept; + + /** + * 鐘舵�� + */ + @NotBlank(message = "鐘舵�佷笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 鐐规缂栫爜 + */ + @NotBlank(message = "鐐规缂栫爜涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + private String inspCode; + + /** + * 鍊艰褰曟柟寮忥紙瀛楀吀锛� + */ + private String recordMode; + + /** + * 鍙傝�冨�� + */ + private String referenceValue; + + /** + * 涓婇檺 + */ + private String upperLimit; + + /** + * 涓嬮檺 + */ + private String lowLimit; + + /** + * 妫�鏌ュ�� + */ + private String checkValue; + + /** + * 鐐规缁撴灉锛堝瓧鍏革級 + */ + private String inspResult; + + /** + * 鐐规鏃堕棿 + */ + private Date inspTime; + + /** + * 璁″垝鐐规鏃ユ湡 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date planTime; + + /** + * 楠岃瘉浜� + */ + private Long verifyUser; + + /** + * 璁″垝id + */ + private Long planId; + + /** + * 澶囨敞 + */ + private String remark; + + +} 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 new file mode 100644 index 0000000..13daeb7 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java @@ -0,0 +1,83 @@ +package org.dromara.eims.domain.bo; + +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.eims.domain.EimsInspectSt; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 鐐规姹囨�讳笟鍔″璞� eims_inspect_st + * + * @author zhuguifei + * @date 2025-03-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = EimsInspectSt.class, reverseConvertGenerate = false) +public class EimsInspectStBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "涓嶈兘涓虹┖", groups = { EditGroup.class }) + private Long id; + + /** + * 鏍囬 + */ + @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; + + /** + * 璁″垝鏃堕棿 + */ + @NotNull(message = "璁″垝鏃堕棿涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) + private Date planTime; + + /** + * 鐘舵�� + */ + private String status; + /** + * 鐐规浜� + */ + private Long inspUser; + /** + * 绋芥煡浜� + */ + private Long verifyUser; + + /** + * 绋芥煡鏃ユ湡 + */ + private Date verifyTime; + + /** + * 鐗硅浜嬮」 + */ + private String specialNote; + + /** + * 澶囨敞 + */ + private String remark; + + + + +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintOrderBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintOrderBo.java index e90b9dd..958995c 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintOrderBo.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintOrderBo.java @@ -78,6 +78,16 @@ private String maintCode; /** + * 淇濆吇椤� + */ + private String maintName; + + /** + * 宸ヤ綔鎻忚堪 + */ + private String maintDesc; + + /** * */ @NotBlank(message = "鐘舵�佷笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class }) diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintOrderStBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java similarity index 82% rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintOrderStBo.java rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java index 132d076..ce64691 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintOrderStBo.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsMaintStBo.java @@ -1,6 +1,6 @@ package org.dromara.eims.domain.bo; -import org.dromara.eims.domain.EimsMaintOrderSt; +import org.dromara.eims.domain.EimsMaintSt; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; @@ -12,15 +12,15 @@ import com.fasterxml.jackson.annotation.JsonFormat; /** - * 淇濆吇宸ュ崟姹囨�讳笟鍔″璞� eims_maint_order_st + * 淇濆吇宸ュ崟姹囨�讳笟鍔″璞� eims_maint_st * * @author zhuguifei * @date 2025-03-12 */ @Data @EqualsAndHashCode(callSuper = true) -@AutoMapper(target = EimsMaintOrderSt.class, reverseConvertGenerate = false) -public class EimsMaintOrderStBo extends BaseEntity { +@AutoMapper(target = EimsMaintSt.class, reverseConvertGenerate = false) +public class EimsMaintStBo extends BaseEntity { /** * @@ -38,8 +38,9 @@ * */ @NotBlank(message = "涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) - private String equId; - + private Long equId; + private String equName; + private String assetNo; /** * */ diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectPlanVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectPlanVo.java new file mode 100644 index 0000000..2416133 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectPlanVo.java @@ -0,0 +1,158 @@ +package org.dromara.eims.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.eims.domain.EimsInspectPlan; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 鐐规璁″垝瑙嗗浘瀵硅薄 eims_inspect_plan + * + * @author zhuguifei + * @date 2025-03-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = EimsInspectPlan.class) +public class EimsInspectPlanVo extends BaseEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 璁惧id + + */ + @ExcelProperty(value = "璁惧id") + private Long equId; + + @Translation(type = TransConstant.EQU_ID_TO_NAME, mapper = "equId") + private String equName; + + + private String assetNo; + + /** + * 鐐规绫诲瀷锛堝瓧鍏革級 + */ + @ExcelProperty(value = "鐐规绫诲瀷", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "瀛�=鍏�") + private String inspType; + + /** + * 鐐规椤瑰悕绉� + */ + @ExcelProperty(value = "鐐规椤瑰悕绉�") + private String inspName; + + /** + * 鐐规椤圭紪鍙� + */ + @ExcelProperty(value = "鐐规椤圭紪鍙�") + private Long inspNo; + + /** + * 鐐规璇存槑 + */ + @ExcelProperty(value = "鐐规璇存槑") + private String inspDesc; + + /** + * 鐐规鍛ㄦ湡 + */ + @ExcelProperty(value = "鐐规鍛ㄦ湡") + private Long inspCycle; + + /** + * 鐐规鍛ㄦ湡鍗曚綅锛堝瓧鍏革級 + */ + @ExcelProperty(value = "鐐规鍛ㄦ湡鍗曚綅", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "瀛�=鍏�") + private String inspCycleUnit; + + /** + * 鐐规瑙勫垯锛堝瓧鍏革級淇濆吇鏃堕棿璁$畻锛�1-鎸夊懆鏈� 2-鎸変笂娆′繚鍏绘椂闂� + */ + @ExcelProperty(value = "鐐规瑙勫垯", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "瀛�=鍏�") + private String inspRule; + + /** + * 鐐规浜� + */ + @ExcelProperty(value = "鐐规浜�") + private Long inspUser; + + + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspUser") + private String inspUserName; + + /** + * 鐐规閮ㄩ棬 + */ + @ExcelProperty(value = "鐐规閮ㄩ棬") + private Long inspDept; + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "inspDept") + private String inspDeptName; + + /** + * 鐘舵�侊紙瀛楀吀锛� 0-鍚敤 1-绂佺敤 + */ + @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "瀛�=鍏�") + private String status; + + /** + * 棣栨鎵ц鏃堕棿 + */ + @ExcelProperty(value = "棣栨鎵ц鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspFirstTime; + + /** + * 涓婃鎵ц鏃堕棿 + */ + @ExcelProperty(value = "涓婃鎵ц鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspLastTime; + + /** + * 涓嬫鎵ц鏃堕棿 + */ + @ExcelProperty(value = "涓嬫鎵ц鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inspNextTime; + + /** + * 澶囨敞 + */ + @ExcelProperty(value = "澶囨敞") + private String remark; + + /** + * 寰幆鍛ㄦ湡 + */ + private String inspCycleUnitName; + + +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectRecordVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectRecordVo.java new file mode 100644 index 0000000..a88f9d8 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectRecordVo.java @@ -0,0 +1,175 @@ +package org.dromara.eims.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.eims.domain.EimsInspectRecord; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 鐐规璁板綍瑙嗗浘瀵硅薄 eims_inspect_record + * + * @author zhuguifei + * @date 2025-03-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = EimsInspectRecord.class) +public class EimsInspectRecordVo extends BaseEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 璁惧di + */ + @ExcelProperty(value = "璁惧di") + private Long equId; + + + @Translation(type = TransConstant.EQU_ID_TO_NAME, mapper = "equId") + private String equName; + + private String assetNo; + + /** + * 鐐规鍚嶇О + */ + @ExcelProperty(value = "鐐规鍚嶇О") + private String inspName; + + /** + * 鐐规浜� + */ + private Long inspUser; + + + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspUser") + private String inspUserName; + + /** + * 鐐规閮ㄩ棬 + */ + private Long inspDept; + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "inspDept") + private String inspDeptName; + + /** + * 鐐规鎻忚堪 + */ + @ExcelProperty(value = "鐐规鎻忚堪") + private String inspDesc; + + /** + * 鐘舵�� + */ + @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "eims_inspect_status") + private String status; + + /** + * 鐐规缂栫爜 + */ + @ExcelProperty(value = "鐐规缂栫爜") + private String inspCode; + + /** + * 鍊艰褰曟柟寮忥紙瀛楀吀锛� + */ + @ExcelProperty(value = "鍊艰褰曟柟寮�", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "瀛�=鍏�") + private String recordMode; + + /** + * 鍙傝�冨�� + */ + @ExcelProperty(value = "鍙傝�冨��") + private String referenceValue; + + /** + * 涓婇檺 + */ + @ExcelProperty(value = "涓婇檺") + private String upperLimit; + + /** + * 涓嬮檺 + */ + @ExcelProperty(value = "涓嬮檺") + private String lowLimit; + + /** + * 妫�鏌ュ�� + */ + @ExcelProperty(value = "妫�鏌ュ��") + private String checkValue; + + /** + * 鐐规缁撴灉锛堝瓧鍏革級 + */ + @ExcelProperty(value = "鐐规缁撴灉", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "eims_inspect_result") + private String inspResult; + + /** + * 鐐规绫诲瀷锛堝瓧鍏革級 + */ + @ExcelDictFormat(dictType = "eims_inspect_type") + private String inspType; + + + /** + * 鐐规鏃堕棿 + */ + @ExcelProperty(value = "鐐规鏃堕棿") + private Date inspTime; + + /** + * 璁″垝鐐规鏃ユ湡 + */ + @ExcelProperty(value = "璁″垝鐐规鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date planTime; + + /** + * 楠岃瘉浜� + */ + @ExcelProperty(value = "楠岃瘉浜�") + private Long verifyUser; + + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "verifyUser") + private String verifyUserName; + + /** + * 璁″垝id + */ + @ExcelProperty(value = "璁″垝id") + private Long planId; + + /** + * 澶囨敞 + */ + @ExcelProperty(value = "澶囨敞") + private String remark; + + +} 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 new file mode 100644 index 0000000..0997212 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java @@ -0,0 +1,124 @@ +package org.dromara.eims.domain.vo; + +import java.util.Date; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.eims.domain.EimsInspectSt; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 鐐规姹囨�昏鍥惧璞� eims_inspect_st + * + * @author zhuguifei + * @date 2025-03-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = EimsInspectSt.class) +public class EimsInspectStVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 鏍囬 + */ + @ExcelProperty(value = "鏍囬") + private String title; + + /** + * 璁惧id + */ + @ExcelProperty(value = "璁惧id") + private Long equId; + private String equName; + private String assetNo; + + /** + * 璁″垝鏃堕棿 + */ + @ExcelProperty(value = "璁″垝鏃堕棿") + private Date planTime; + + /** + * 鐘舵�� + */ + @ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "eims_inspect_status") + private String status; + + /** + * 鐐规浜� + */ + @ExcelProperty(value = "鐐规浜�") + private Long inspUser; + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspUser") + private String inspUserName; + + /** + * 绋芥煡浜� + */ + @ExcelProperty(value = "绋芥煡浜�") + private Long verifyUser; + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "verifyUser") + private String verifyUserName; + + /** + * 绋芥煡鏃ユ湡 + */ + @ExcelProperty(value = "绋芥煡鏃ユ湡") + private Date verifyTime; + + /** + * 鐗硅浜嬮」 + */ + @ExcelProperty(value = "鐗硅浜嬮」") + private String specialNote; + + /** + * 澶囨敞 + */ + @ExcelProperty(value = "澶囨敞") + private String remark; + + /** + * 璁板綍鎬绘暟 + */ + private Integer recordCount; + /** + * 宸茬偣妫�璁板綍 + */ + private Integer checkCount; + /** + * 鏈偣妫�璁板綍 + */ + private Integer unCheckCount; + /** + * 缁撴灉-姝e父鏁� + */ + private Integer normalNum; + /** + * 缁撴灉-寮傚父鏁� + */ + private Integer abNormalNum; + + + + +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintOrderVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintOrderVo.java index 784370d..4ba8284 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintOrderVo.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintOrderVo.java @@ -127,6 +127,11 @@ private Date planTime; /** + * 宸ヤ綔鎻忚堪 + */ + private String maintDesc; + + /** * 淇濆吇寮�濮嬫椂闂� */ @ExcelProperty(value = "淇濆吇寮�濮嬫椂闂�") diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintPlanVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintPlanVo.java index 3df1153..2f58c13 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintPlanVo.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintPlanVo.java @@ -2,6 +2,7 @@ import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; import org.dromara.eims.domain.EimsMaintPlan; @@ -25,7 +26,7 @@ @Data @ExcelIgnoreUnannotated @AutoMapper(target = EimsMaintPlan.class) -public class EimsMaintPlanVo implements Serializable { +public class EimsMaintPlanVo extends BaseEntity implements Serializable { @Serial private static final long serialVersionUID = 1L; diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintOrderStVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintStVo.java similarity index 83% rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintOrderStVo.java rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintStVo.java index 69e1a4c..130b421 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintOrderStVo.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsMaintStVo.java @@ -3,31 +3,29 @@ import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; -import org.dromara.eims.domain.EimsMaintOrderSt; +import org.dromara.eims.domain.EimsMaintSt; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; /** - * 淇濆吇宸ュ崟姹囨�昏鍥惧璞� eims_maint_order_st + * 淇濆吇宸ュ崟姹囨�昏鍥惧璞� eims_maint_st * * @author zhuguifei * @date 2025-03-12 */ @Data @ExcelIgnoreUnannotated -@AutoMapper(target = EimsMaintOrderSt.class) -public class EimsMaintOrderStVo implements Serializable { +@AutoMapper(target = EimsMaintSt.class) +public class EimsMaintStVo extends BaseEntity implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -59,7 +57,7 @@ * */ @ExcelProperty(value = "") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM") private Date planTime; /** *绋芥煡鏃ユ湡 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 cb01ba0..2e2b6af 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 @@ -99,6 +99,7 @@ order.setStatus(DictConstants.MAINT_ORDER_STATUS_DETAIL.DAIBAOYANG); order.setPlanTime(oldNext); order.setPlanId(planVo.getId()); + order.setMaintName(planVo.getMaintName()); order.setMaintCode(codeService.generateCode("BYZD")); EimsMaintPlan plan = MapstructUtils.convert(planVo, EimsMaintPlan.class); assert plan != null; 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 new file mode 100644 index 0000000..5845888 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectPlanMapper.java @@ -0,0 +1,19 @@ +package org.dromara.eims.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +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; + +/** + * 鐐规璁″垝Mapper鎺ュ彛 + * + * @author zhuguifei + * @date 2025-03-12 + */ +public interface EimsInspectPlanMapper extends BaseMapperPlus<EimsInspectPlan, EimsInspectPlanVo> { + Page<EimsInspectPlanVo> selectInspPlanList(@Param("page") Page<EimsInspectPlanVo> page, @Param(Constants.WRAPPER) Wrapper<EimsInspectPlan> queryWrapper); +} 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 new file mode 100644 index 0000000..15ea2d5 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java @@ -0,0 +1,20 @@ +package org.dromara.eims.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +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.EimsInspectRecord; +import org.dromara.eims.domain.vo.EimsInspectRecordVo; + +/** + * 鐐规璁板綍Mapper鎺ュ彛 + * + * @author zhuguifei + * @date 2025-03-13 + */ +public interface EimsInspectRecordMapper extends BaseMapperPlus<EimsInspectRecord, EimsInspectRecordVo> { + Page<EimsInspectRecordVo> selectInspRecordList(@Param("page") Page<EimsInspectRecordVo> page, @Param(Constants.WRAPPER) Wrapper<EimsInspectRecord> queryWrapper); + +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectStMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectStMapper.java new file mode 100644 index 0000000..e82f58e --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectStMapper.java @@ -0,0 +1,22 @@ +package org.dromara.eims.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +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.EimsInspectSt; +import org.dromara.eims.domain.EimsMaintSt; +import org.dromara.eims.domain.vo.EimsInspectStVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.eims.domain.vo.EimsMaintStVo; + +/** + * 鐐规姹囨�籑apper鎺ュ彛 + * + * @author zhuguifei + * @date 2025-03-14 + */ +public interface EimsInspectStMapper extends BaseMapperPlus<EimsInspectSt, EimsInspectStVo> { + Page<EimsInspectStVo> selectInspStList(@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/mapper/EimsMaintOrderStMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintOrderStMapper.java deleted file mode 100644 index 0ea0b0f..0000000 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintOrderStMapper.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.dromara.eims.mapper; - -import org.dromara.eims.domain.EimsMaintOrderSt; -import org.dromara.eims.domain.vo.EimsMaintOrderStVo; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 淇濆吇宸ュ崟姹囨�籑apper鎺ュ彛 - * - * @author zhuguifei - * @date 2025-03-12 - */ -public interface EimsMaintOrderStMapper extends BaseMapperPlus<EimsMaintOrderSt, EimsMaintOrderStVo> { - -} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintStMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintStMapper.java new file mode 100644 index 0000000..ce34b03 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsMaintStMapper.java @@ -0,0 +1,20 @@ +package org.dromara.eims.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +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.EimsMaintSt; +import org.dromara.eims.domain.vo.EimsMaintStVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 淇濆吇宸ュ崟姹囨�籑apper鎺ュ彛 + * + * @author zhuguifei + * @date 2025-03-12 + */ +public interface EimsMaintStMapper extends BaseMapperPlus<EimsMaintSt, EimsMaintStVo> { + + Page<EimsMaintStVo> selectMaintStList(@Param("page") Page<EimsMaintStVo> page, @Param(Constants.WRAPPER) Wrapper<EimsMaintSt> queryWrapper); +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectPlanService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectPlanService.java new file mode 100644 index 0000000..9334744 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectPlanService.java @@ -0,0 +1,78 @@ +package org.dromara.eims.service; + +import org.dromara.eims.domain.vo.EimsInspectPlanVo; +import org.dromara.eims.domain.bo.EimsInspectPlanBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 鐐规璁″垝Service鎺ュ彛 + * + * @author zhuguifei + * @date 2025-03-12 + */ +public interface IEimsInspectPlanService { + + /** + * 鏌ヨ鐐规璁″垝 + * + * @param id 涓婚敭 + * @return 鐐规璁″垝 + */ + EimsInspectPlanVo queryById(Long id); + + /** + * 鍒嗛〉鏌ヨ鐐规璁″垝鍒楄〃 + * + * @param bo 鏌ヨ鏉′欢 + * @param pageQuery 鍒嗛〉鍙傛暟 + * @return 鐐规璁″垝鍒嗛〉鍒楄〃 + */ + TableDataInfo<EimsInspectPlanVo> queryPageList(EimsInspectPlanBo bo, PageQuery pageQuery); + + /** + * 鏌ヨ绗﹀悎鏉′欢鐨勭偣妫�璁″垝鍒楄〃 + * + * @param bo 鏌ヨ鏉′欢 + * @return 鐐规璁″垝鍒楄〃 + */ + List<EimsInspectPlanVo> queryList(EimsInspectPlanBo bo); + + /** + * 鏂板鐐规璁″垝 + * + * @param bo 鐐规璁″垝 + * @return 鏄惁鏂板鎴愬姛 + */ + Boolean insertByBo(EimsInspectPlanBo bo); + + /** + * 淇敼鐐规璁″垝 + * + * @param bo 鐐规璁″垝 + * @return 鏄惁淇敼鎴愬姛 + */ + Boolean updateByBo(EimsInspectPlanBo bo); + + /** + * 鏍¢獙骞舵壒閲忓垹闄ょ偣妫�璁″垝淇℃伅 + * + * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎 + * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠� + * @return 鏄惁鍒犻櫎鎴愬姛 + */ + Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); + + /** + * 鍒嗛〉鏌ヨ鐐规璁″垝鍒楄〃-澶氳〃鏌ヨ + * + * @param bo 鏌ヨ鏉′欢 + * @param pageQuery 鍒嗛〉鍙傛暟 + * @return 鐐规璁″垝鍒嗛〉鍒楄〃 + */ + TableDataInfo<EimsInspectPlanVo> queryPageListCustom(EimsInspectPlanBo bo, PageQuery pageQuery); + +} 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 new file mode 100644 index 0000000..3de61b3 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java @@ -0,0 +1,77 @@ +package org.dromara.eims.service; + +import org.dromara.eims.domain.vo.EimsInspectRecordVo; +import org.dromara.eims.domain.bo.EimsInspectRecordBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 鐐规璁板綍Service鎺ュ彛 + * + * @author zhuguifei + * @date 2025-03-13 + */ +public interface IEimsInspectRecordService { + + /** + * 鏌ヨ鐐规璁板綍 + * + * @param id 涓婚敭 + * @return 鐐规璁板綍 + */ + EimsInspectRecordVo queryById(Long id); + + /** + * 鍒嗛〉鏌ヨ鐐规璁板綍鍒楄〃 + * + * @param bo 鏌ヨ鏉′欢 + * @param pageQuery 鍒嗛〉鍙傛暟 + * @return 鐐规璁板綍鍒嗛〉鍒楄〃 + */ + TableDataInfo<EimsInspectRecordVo> queryPageList(EimsInspectRecordBo bo, PageQuery pageQuery); + + /** + * 鏌ヨ绗﹀悎鏉′欢鐨勭偣妫�璁板綍鍒楄〃 + * + * @param bo 鏌ヨ鏉′欢 + * @return 鐐规璁板綍鍒楄〃 + */ + List<EimsInspectRecordVo> queryList(EimsInspectRecordBo bo); + + /** + * 鏂板鐐规璁板綍 + * + * @param bo 鐐规璁板綍 + * @return 鏄惁鏂板鎴愬姛 + */ + Boolean insertByBo(EimsInspectRecordBo bo); + + /** + * 淇敼鐐规璁板綍 + * + * @param bo 鐐规璁板綍 + * @return 鏄惁淇敼鎴愬姛 + */ + Boolean updateByBo(EimsInspectRecordBo bo); + + /** + * 鏍¢獙骞舵壒閲忓垹闄ょ偣妫�璁板綍淇℃伅 + * + * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎 + * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠� + * @return 鏄惁鍒犻櫎鎴愬姛 + */ + Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); + + /** + * 鍒嗛〉鏌ヨ鐐规璁板綍鍒楄〃-澶氳〃鏌ヨ + * + * @param bo 鏌ヨ鏉′欢 + * @param pageQuery 鍒嗛〉鍙傛暟 + * @return 鐐规璁板綍鍒嗛〉鍒楄〃 + */ + TableDataInfo<EimsInspectRecordVo> queryPageListCustom(EimsInspectRecordBo bo, PageQuery pageQuery); +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectStService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectStService.java new file mode 100644 index 0000000..3136c47 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectStService.java @@ -0,0 +1,68 @@ +package org.dromara.eims.service; + +import org.dromara.eims.domain.vo.EimsInspectStVo; +import org.dromara.eims.domain.bo.EimsInspectStBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 鐐规姹囨�籗ervice鎺ュ彛 + * + * @author zhuguifei + * @date 2025-03-14 + */ +public interface IEimsInspectStService { + + /** + * 鏌ヨ鐐规姹囨�� + * + * @param id 涓婚敭 + * @return 鐐规姹囨�� + */ + EimsInspectStVo queryById(Long id); + + /** + * 鍒嗛〉鏌ヨ鐐规姹囨�诲垪琛� + * + * @param bo 鏌ヨ鏉′欢 + * @param pageQuery 鍒嗛〉鍙傛暟 + * @return 鐐规姹囨�诲垎椤靛垪琛� + */ + TableDataInfo<EimsInspectStVo> queryPageList(EimsInspectStBo bo, PageQuery pageQuery); + + /** + * 鏌ヨ绗﹀悎鏉′欢鐨勭偣妫�姹囨�诲垪琛� + * + * @param bo 鏌ヨ鏉′欢 + * @return 鐐规姹囨�诲垪琛� + */ + List<EimsInspectStVo> queryList(EimsInspectStBo bo); + + /** + * 鏂板鐐规姹囨�� + * + * @param bo 鐐规姹囨�� + * @return 鏄惁鏂板鎴愬姛 + */ + Boolean insertByBo(EimsInspectStBo bo); + + /** + * 淇敼鐐规姹囨�� + * + * @param bo 鐐规姹囨�� + * @return 鏄惁淇敼鎴愬姛 + */ + Boolean updateByBo(EimsInspectStBo bo); + + /** + * 鏍¢獙骞舵壒閲忓垹闄ょ偣妫�姹囨�讳俊鎭� + * + * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎 + * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠� + * @return 鏄惁鍒犻櫎鎴愬姛 + */ + Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintOrderStService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java similarity index 74% rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintOrderStService.java rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java index f0bd81f..dd0525f 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintOrderStService.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsMaintStService.java @@ -1,8 +1,8 @@ package org.dromara.eims.service; import org.dromara.common.core.domain.R; -import org.dromara.eims.domain.vo.EimsMaintOrderStVo; -import org.dromara.eims.domain.bo.EimsMaintOrderStBo; +import org.dromara.eims.domain.bo.EimsMaintStBo; +import org.dromara.eims.domain.vo.EimsMaintStVo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; @@ -15,7 +15,7 @@ * @author zhuguifei * @date 2025-03-12 */ -public interface IEimsMaintOrderStService { +public interface IEimsMaintStService { /** * 鏌ヨ淇濆吇宸ュ崟姹囨�� @@ -23,7 +23,7 @@ * @param id 涓婚敭 * @return 淇濆吇宸ュ崟姹囨�� */ - EimsMaintOrderStVo queryById(Long id); + EimsMaintStVo queryById(Long id); /** * 鍒嗛〉鏌ヨ淇濆吇宸ュ崟姹囨�诲垪琛� @@ -32,7 +32,7 @@ * @param pageQuery 鍒嗛〉鍙傛暟 * @return 淇濆吇宸ュ崟姹囨�诲垎椤靛垪琛� */ - TableDataInfo<EimsMaintOrderStVo> queryPageList(EimsMaintOrderStBo bo, PageQuery pageQuery); + TableDataInfo<EimsMaintStVo> queryPageList(EimsMaintStBo bo, PageQuery pageQuery); /** * 鏌ヨ绗﹀悎鏉′欢鐨勪繚鍏诲伐鍗曟眹鎬诲垪琛� @@ -40,7 +40,7 @@ * @param bo 鏌ヨ鏉′欢 * @return 淇濆吇宸ュ崟姹囨�诲垪琛� */ - List<EimsMaintOrderStVo> queryList(EimsMaintOrderStBo bo); + List<EimsMaintStVo> queryList(EimsMaintStBo bo); /** * 鏂板淇濆吇宸ュ崟姹囨�� @@ -48,7 +48,7 @@ * @param bo 淇濆吇宸ュ崟姹囨�� * @return 鏄惁鏂板鎴愬姛 */ - Boolean insertByBo(EimsMaintOrderStBo bo); + Boolean insertByBo(EimsMaintStBo bo); /** * 淇敼淇濆吇宸ュ崟姹囨�� @@ -56,7 +56,7 @@ * @param bo 淇濆吇宸ュ崟姹囨�� * @return 鏄惁淇敼鎴愬姛 */ - Boolean updateByBo(EimsMaintOrderStBo bo); + Boolean updateByBo(EimsMaintStBo bo); /** * 鏍¢獙骞舵壒閲忓垹闄や繚鍏诲伐鍗曟眹鎬讳俊鎭� diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectPlanServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectPlanServiceImpl.java new file mode 100644 index 0000000..865f6de --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectPlanServiceImpl.java @@ -0,0 +1,200 @@ +package org.dromara.eims.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.eims.domain.vo.EimsMaintPlanVo; +import org.dromara.system.domain.SysDept; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.mapper.SysDeptMapper; +import org.springframework.stereotype.Service; +import org.dromara.eims.domain.bo.EimsInspectPlanBo; +import org.dromara.eims.domain.vo.EimsInspectPlanVo; +import org.dromara.eims.domain.EimsInspectPlan; +import org.dromara.eims.mapper.EimsInspectPlanMapper; +import org.dromara.eims.service.IEimsInspectPlanService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 鐐规璁″垝Service涓氬姟灞傚鐞� + * + * @author zhuguifei + * @date 2025-03-12 + */ +@RequiredArgsConstructor +@Service +public class EimsInspectPlanServiceImpl implements IEimsInspectPlanService { + + private final EimsInspectPlanMapper baseMapper; + private final SysDeptMapper sysDeptMapper; + + + /** + * 鏌ヨ鐐规璁″垝 + * + * @param id 涓婚敭 + * @return 鐐规璁″垝 + */ + @Override + public EimsInspectPlanVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 鍒嗛〉鏌ヨ鐐规璁″垝鍒楄〃 + * + * @param bo 鏌ヨ鏉′欢 + * @param pageQuery 鍒嗛〉鍙傛暟 + * @return 鐐规璁″垝鍒嗛〉鍒楄〃 + */ + @Override + public TableDataInfo<EimsInspectPlanVo> queryPageList(EimsInspectPlanBo bo, PageQuery pageQuery) { + LambdaQueryWrapper<EimsInspectPlan> lqw = buildQueryWrapper(bo); + Page<EimsInspectPlanVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + @Override + public TableDataInfo<EimsInspectPlanVo> queryPageListCustom(EimsInspectPlanBo bo, PageQuery pageQuery) { + Page<EimsInspectPlanVo> page = baseMapper.selectInspPlanList(pageQuery.build(), buildWrapper(bo)); + return TableDataInfo.build(page); + } + + /** + * 鏌ヨ绗﹀悎鏉′欢鐨勭偣妫�璁″垝鍒楄〃 + * + * @param bo 鏌ヨ鏉′欢 + * @return 鐐规璁″垝鍒楄〃 + */ + @Override + public List<EimsInspectPlanVo> queryList(EimsInspectPlanBo bo) { + LambdaQueryWrapper<EimsInspectPlan> lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper<EimsInspectPlan> buildQueryWrapper(EimsInspectPlanBo bo) { + Map<String, Object> params = bo.getParams(); + LambdaQueryWrapper<EimsInspectPlan> lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getEquId() != null, EimsInspectPlan::getEquId, bo.getEquId()); + lqw.eq(StringUtils.isNotBlank(bo.getInspType()), EimsInspectPlan::getInspType, bo.getInspType()); + lqw.like(StringUtils.isNotBlank(bo.getInspName()), EimsInspectPlan::getInspName, bo.getInspName()); + lqw.eq(bo.getInspNo() != null, EimsInspectPlan::getInspNo, bo.getInspNo()); + lqw.eq(bo.getInspCycle() != null, EimsInspectPlan::getInspCycle, bo.getInspCycle()); + lqw.eq(StringUtils.isNotBlank(bo.getInspCycleUnit()), EimsInspectPlan::getInspCycleUnit, bo.getInspCycleUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getInspRule()), EimsInspectPlan::getInspRule, bo.getInspRule()); + lqw.eq(bo.getInspUser() != null, EimsInspectPlan::getInspUser, bo.getInspUser()); + lqw.eq(bo.getInspDept() != null, EimsInspectPlan::getInspDept, bo.getInspDept()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), EimsInspectPlan::getStatus, bo.getStatus()); + return lqw; + } + private QueryWrapper<EimsInspectPlan> buildWrapper(EimsInspectPlanBo bo) { + Map<String, Object> params = bo.getParams(); + QueryWrapper<EimsInspectPlan> qw = Wrappers.query(); + qw.eq(bo.getEquId() != null, "ip.equ_id", bo.getEquId()); + qw.like(bo.getEquName() != null, "equ.equ_name", bo.getEquName()); + qw.like(bo.getAssetNo() != null, "equ.asset_no", bo.getAssetNo()); + qw.eq(StringUtils.isNotBlank(bo.getInspType()), "ip.insp_type", bo.getInspType()); + qw.eq(StringUtils.isNotBlank(bo.getInspCycleUnit()), "ip.insp_cycle_unit", bo.getInspCycleUnit()); + qw.eq(StringUtils.isNotBlank(bo.getInspRule()), "ip.insp_rule", bo.getInspRule()); + qw.eq(bo.getInspUser() != null, "ip.insp_user", bo.getInspUser()); + qw.in(bo.getInspDept() != null, "ip.insp_dept", getAllDescendantIds(bo.getInspDept())); + qw.eq(bo.getStatus() != null, "ip.status", bo.getStatus()); + qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null, + "a.plam_time", params.get("beginPlanTime"), params.get("endPlanTime")); + qw.orderByDesc("ip.create_time"); + + return qw; + } + + /** + * 鏍规嵁id锛岃幏鍙栨墍鏈夊悗浠d + * + * @param rootId + * @return + */ + public List<Long> getAllDescendantIds(Long rootId) { + List<Long> result = new ArrayList<>(); + result.add(rootId); + collectDescendants(rootId, result); + return result; + } + + private void collectDescendants(Long currentId, List<Long> collector) { + QueryWrapper<SysDept> sysDeptWrapper = new QueryWrapper<>(); + sysDeptWrapper.lambda().eq(SysDept::getParentId, currentId); + + List<SysDeptVo> children = sysDeptMapper.selectVoList(sysDeptWrapper); + if (children != null && !children.isEmpty()) { + for (SysDeptVo child : children) { + Long childId = child.getDeptId(); + collector.add(childId); + collectDescendants(childId, collector); + } + } + } + + + /** + * 鏂板鐐规璁″垝 + * + * @param bo 鐐规璁″垝 + * @return 鏄惁鏂板鎴愬姛 + */ + @Override + public Boolean insertByBo(EimsInspectPlanBo bo) { + EimsInspectPlan add = MapstructUtils.convert(bo, EimsInspectPlan.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 淇敼鐐规璁″垝 + * + * @param bo 鐐规璁″垝 + * @return 鏄惁淇敼鎴愬姛 + */ + @Override + public Boolean updateByBo(EimsInspectPlanBo bo) { + EimsInspectPlan update = MapstructUtils.convert(bo, EimsInspectPlan.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙 + */ + private void validEntityBeforeSave(EimsInspectPlan entity){ + //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫 + } + + /** + * 鏍¢獙骞舵壒閲忓垹闄ょ偣妫�璁″垝淇℃伅 + * + * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎 + * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠� + * @return 鏄惁鍒犻櫎鎴愬姛 + */ + @Override + public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { + if(isValid){ + //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠� + } + return baseMapper.deleteByIds(ids) > 0; + } + + +} 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 new file mode 100644 index 0000000..4901462 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java @@ -0,0 +1,255 @@ +package org.dromara.eims.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.SneakyThrows; +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; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.eims.domain.EimsInspectPlan; +import org.dromara.eims.domain.EimsMaintPlan; +import org.dromara.eims.domain.vo.EimsMaintOrderVo; +import org.dromara.eims.mapper.EimsInspectPlanMapper; +import org.dromara.eims.mapper.EimsMaintPlanMapper; +import org.dromara.system.domain.SysDept; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.mapper.SysDeptMapper; +import org.springframework.stereotype.Service; +import org.dromara.eims.domain.bo.EimsInspectRecordBo; +import org.dromara.eims.domain.vo.EimsInspectRecordVo; +import org.dromara.eims.domain.EimsInspectRecord; +import org.dromara.eims.mapper.EimsInspectRecordMapper; +import org.dromara.eims.service.IEimsInspectRecordService; + +import java.util.*; + +/** + * 鐐规璁板綍Service涓氬姟灞傚鐞� + * + * @author zhuguifei + * @date 2025-03-13 + */ +@RequiredArgsConstructor +@Service +public class EimsInspectRecordServiceImpl implements IEimsInspectRecordService { + + private final EimsInspectRecordMapper baseMapper; + private final SysDeptMapper sysDeptMapper; + private final EimsInspectPlanMapper planMapper; + + /** + * 鏌ヨ鐐规璁板綍 + * + * @param id 涓婚敭 + * @return 鐐规璁板綍 + */ + @Override + public EimsInspectRecordVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 鍒嗛〉鏌ヨ鐐规璁板綍鍒楄〃 + * + * @param bo 鏌ヨ鏉′欢 + * @param pageQuery 鍒嗛〉鍙傛暟 + * @return 鐐规璁板綍鍒嗛〉鍒楄〃 + */ + @Override + public TableDataInfo<EimsInspectRecordVo> queryPageList(EimsInspectRecordBo bo, PageQuery pageQuery) { + LambdaQueryWrapper<EimsInspectRecord> lqw = buildQueryWrapper(bo); + Page<EimsInspectRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + @Override + public TableDataInfo<EimsInspectRecordVo> queryPageListCustom(EimsInspectRecordBo bo, PageQuery pageQuery) { + Page<EimsInspectRecordVo> page = baseMapper.selectInspRecordList(pageQuery.build(), buildWrapper(bo)); + return TableDataInfo.build(page); + } + + /** + * 鏌ヨ绗﹀悎鏉′欢鐨勭偣妫�璁板綍鍒楄〃 + * + * @param bo 鏌ヨ鏉′欢 + * @return 鐐规璁板綍鍒楄〃 + */ + @Override + public List<EimsInspectRecordVo> queryList(EimsInspectRecordBo bo) { + LambdaQueryWrapper<EimsInspectRecord> lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper<EimsInspectRecord> buildQueryWrapper(EimsInspectRecordBo bo) { + Map<String, Object> params = bo.getParams(); + LambdaQueryWrapper<EimsInspectRecord> lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getEquId() != null, EimsInspectRecord::getEquId, bo.getEquId()); + lqw.like(StringUtils.isNotBlank(bo.getInspName()), EimsInspectRecord::getInspName, bo.getInspName()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), EimsInspectRecord::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getInspCode()), EimsInspectRecord::getInspCode, bo.getInspCode()); + lqw.eq(StringUtils.isNotBlank(bo.getInspResult()), EimsInspectRecord::getInspResult, bo.getInspResult()); + lqw.eq(bo.getInspTime() != null, EimsInspectRecord::getInspTime, bo.getInspTime()); + lqw.eq(bo.getPlanTime() != null, EimsInspectRecord::getPlanTime, bo.getPlanTime()); + lqw.eq(bo.getVerifyUser() != null, EimsInspectRecord::getVerifyUser, bo.getVerifyUser()); + return lqw; + } + + private QueryWrapper<EimsInspectRecord> buildWrapper(EimsInspectRecordBo bo) { + Map<String, Object> params = bo.getParams(); + QueryWrapper<EimsInspectRecord> qw = Wrappers.query(); + qw.like(StringUtils.isNotBlank(bo.getInspCode()),"ir.insp_code", bo.getInspCode()); + qw.like(StringUtils.isNotBlank(bo.getInspName()),"ir.insp_name", bo.getInspName()); + qw.like(bo.getEquName() != null, "equ.equ_name", bo.getEquName()); + qw.like(bo.getAssetNo() != null, "equ.asset_no", bo.getAssetNo()); + qw.like(bo.getEquId() != null, "equ.equ_id", bo.getEquId()); + qw.eq(StringUtils.isNotBlank(bo.getInspType()), "ir.insp_type", bo.getInspType()); + qw.eq(bo.getInspUser() != null, "ir.insp_user", bo.getInspUser()); + qw.in(bo.getInspDept() != null, "ir.insp_dept", getAllDescendantIds(bo.getInspDept())); + qw.eq(bo.getStatus() != null, "ir.status", bo.getStatus()); + qw.eq(bo.getInspResult() != null, "ir.insp_result", bo.getInspResult()); + qw.eq(bo.getPlanTime()!=null, + "ir.plan_time", bo.getPlanTime()); + qw.orderByDesc("ir.create_time"); + return qw; + } + + + /** + * 鏍规嵁id锛岃幏鍙栨墍鏈夊悗浠d + * + * @param rootId + * @return + */ + public List<Long> getAllDescendantIds(Long rootId) { + List<Long> result = new ArrayList<>(); + result.add(rootId); + collectDescendants(rootId, result); + return result; + } + + private void collectDescendants(Long currentId, List<Long> collector) { + QueryWrapper<SysDept> sysDeptWrapper = new QueryWrapper<>(); + sysDeptWrapper.lambda().eq(SysDept::getParentId, currentId); + + List<SysDeptVo> children = sysDeptMapper.selectVoList(sysDeptWrapper); + if (children != null && !children.isEmpty()) { + for (SysDeptVo child : children) { + Long childId = child.getDeptId(); + collector.add(childId); + collectDescendants(childId, collector); + } + } + } + + + /** + * 鏂板鐐规璁板綍 + * + * @param bo 鐐规璁板綍 + * @return 鏄惁鏂板鎴愬姛 + */ + @Override + public Boolean insertByBo(EimsInspectRecordBo bo) { + EimsInspectRecord add = MapstructUtils.convert(bo, EimsInspectRecord.class); + + //閫氳繃淇濆吇璁″垝鐢熸垚鐨勬暟鎹渶瑕佹洿鏂颁繚鍏昏鍒� + Long planId = bo.getPlanId(); + if(planId!=null){ + EimsInspectPlan plan = planMapper.selectById(planId); + setInspNextTime(plan); + planMapper.updateById(plan); + } + + + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + /** + * 璁$畻鐐规璁″垝涓嬫鎵ц鏃堕棿 + */ + @SneakyThrows + private void setInspNextTime(EimsInspectPlan bo) { + Date oldNext = bo.getInspNextTime(); + //TODO 涓嬫鐐规鏃堕棿璁$畻瑙勫垯 0-鎸夊浐瀹氬懆鏈� 1-鎸変笂娆′繚鍏绘椂闂� + Date newNext = null; + + //涓嬫娆℃墽琛屾椂闂翠负绌烘姏鍑哄紓甯� + if (oldNext == null) { + throw new Exception("涓嬫鐐规鏃堕棿涓嶈兘涓虹┖!"); + } + //鍛ㄦ湡 + Long maintCycle = bo.getInspCycle(); + //鍗曚綅 1-澶� 2-鍛� 3-鏈� 4-瀛� 5-骞� + String maintCycleUnit = bo.getInspCycleUnit(); + switch (maintCycleUnit) { + case "1": + newNext = DateUtils.addDays(oldNext, maintCycle.intValue()); + break; + case "2": + newNext = DateUtils.addWeeks(oldNext, maintCycle.intValue()); + break; + case "3": + newNext = DateUtils.addMonths(oldNext, maintCycle.intValue()); + break; + case "4": + newNext = DateUtils.addMonths(oldNext, maintCycle.intValue() * 3); + break; + case "5": + newNext = DateUtils.addYears(oldNext, maintCycle.intValue()); + break; + + } + bo.setInspNextTime(newNext); + if(bo.getInspFirstTime()==null){ + bo.setInspFirstTime(oldNext); + } + bo.setInspLastTime(oldNext); + + + } + /** + * 淇敼鐐规璁板綍 + * + * @param bo 鐐规璁板綍 + * @return 鏄惁淇敼鎴愬姛 + */ + @Override + public Boolean updateByBo(EimsInspectRecordBo bo) { + EimsInspectRecord update = MapstructUtils.convert(bo, EimsInspectRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙 + */ + private void validEntityBeforeSave(EimsInspectRecord entity){ + //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫 + } + + /** + * 鏍¢獙骞舵壒閲忓垹闄ょ偣妫�璁板綍淇℃伅 + * + * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎 + * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠� + * @return 鏄惁鍒犻櫎鎴愬姛 + */ + @Override + public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { + if(isValid){ + //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠� + } + return baseMapper.deleteByIds(ids) > 0; + } + + +} 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 new file mode 100644 index 0000000..f938a05 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java @@ -0,0 +1,204 @@ +package org.dromara.eims.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.dromara.common.core.constant.DictConstants; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.eims.domain.EimsInspectRecord; +import org.dromara.eims.domain.vo.EimsInspectRecordVo; +import org.dromara.eims.mapper.EimsInspectRecordMapper; +import org.springframework.stereotype.Service; +import org.dromara.eims.domain.bo.EimsInspectStBo; +import org.dromara.eims.domain.vo.EimsInspectStVo; +import org.dromara.eims.domain.EimsInspectSt; +import org.dromara.eims.mapper.EimsInspectStMapper; +import org.dromara.eims.service.IEimsInspectStService; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.temporal.TemporalAdjusters; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.stream.Collectors; + +/** + * 鐐规姹囨�籗ervice涓氬姟灞傚鐞� + * + * @author zhuguifei + * @date 2025-03-14 + */ +@RequiredArgsConstructor +@Service +public class EimsInspectStServiceImpl implements IEimsInspectStService { + + private final EimsInspectStMapper baseMapper; + private final EimsInspectRecordMapper recordMapper; + + /** + * 鏌ヨ鐐规姹囨�� + * + * @param id 涓婚敭 + * @return 鐐规姹囨�� + */ + @Override + public EimsInspectStVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 鍒嗛〉鏌ヨ鐐规姹囨�诲垪琛� + * + * @param bo 鏌ヨ鏉′欢 + * @param pageQuery 鍒嗛〉鍙傛暟 + * @return 鐐规姹囨�诲垎椤靛垪琛� + */ + @Override + public TableDataInfo<EimsInspectStVo> queryPageList(EimsInspectStBo bo, PageQuery pageQuery) { + QueryWrapper<EimsInspectSt> lqw = buildWrapper(bo); + Page<EimsInspectStVo> result = baseMapper.selectInspStList(pageQuery.build(), lqw); + // 濉厖鏁版嵁 + fillStData(result); + return TableDataInfo.build(result); + } + + private void fillStData(Page<EimsInspectStVo> result) { + List<EimsInspectStVo> records = result.getRecords(); + for (int i = 0; i < records.size(); i++) { + EimsInspectStVo stVo = records.get(i); + + //2.缁熻鏁版嵁 + 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); + // 鎵ц鏌ヨ + List<EimsInspectRecordVo> recordList = recordMapper.selectVoList(recordLqw); + // TODO 鏍规嵁瀛楀吀eims_inspect_status + Map<String, Long> cMap = recordList.stream() + .filter(order -> List.of("0", "1").contains(order.getStatus())) + .collect(Collectors.groupingBy(EimsInspectRecordVo::getStatus, Collectors.counting())); + // 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())); + + stVo.setRecordCount(recordList.size()); + stVo.setUnCheckCount(cMap.getOrDefault("0", 0L).intValue()); + stVo.setCheckCount(cMap.getOrDefault("1", 0L).intValue()); + + stVo.setNormalNum(rMap.getOrDefault("1", 0L).intValue()); + stVo.setAbNormalNum(rMap.getOrDefault("2", 0L).intValue()); + + } + + } + + /** + * 鏌ヨ绗﹀悎鏉′欢鐨勭偣妫�姹囨�诲垪琛� + * + * @param bo 鏌ヨ鏉′欢 + * @return 鐐规姹囨�诲垪琛� + */ + @Override + public List<EimsInspectStVo> queryList(EimsInspectStBo bo) { + LambdaQueryWrapper<EimsInspectSt> lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper<EimsInspectSt> buildQueryWrapper(EimsInspectStBo bo) { + Map<String, Object> params = bo.getParams(); + LambdaQueryWrapper<EimsInspectSt> lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getEquId() != null, EimsInspectSt::getEquId, bo.getEquId()); + lqw.eq(bo.getPlanTime() != null, EimsInspectSt::getPlanTime, bo.getPlanTime()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), EimsInspectSt::getStatus, bo.getStatus()); + lqw.eq(bo.getInspUser() != null, EimsInspectSt::getInspUser, bo.getInspUser()); + lqw.eq(bo.getVerifyUser() != null, EimsInspectSt::getVerifyUser, bo.getVerifyUser()); + lqw.eq(bo.getVerifyTime() != null, EimsInspectSt::getVerifyTime, bo.getVerifyTime()); + return lqw; + } + private QueryWrapper<EimsInspectSt> buildWrapper(EimsInspectStBo bo) { + Map<String, Object> params = bo.getParams(); + QueryWrapper<EimsInspectSt> qw = Wrappers.query(); + 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.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()); + qw.eq(bo.getVerifyUser() != null, "st.verify_user", bo.getVerifyUser()); + qw.eq(bo.getStatus() != null, "st.status", bo.getStatus()); + qw.orderByDesc( "st.create_time"); + return qw; + } + + /** + * 鏂板鐐规姹囨�� + * + * @param bo 鐐规姹囨�� + * @return 鏄惁鏂板鎴愬姛 + */ + @Override + public Boolean insertByBo(EimsInspectStBo bo) { + EimsInspectSt add = MapstructUtils.convert(bo, EimsInspectSt.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 淇敼鐐规姹囨�� + * + * @param bo 鐐规姹囨�� + * @return 鏄惁淇敼鎴愬姛 + */ + @Override + public Boolean updateByBo(EimsInspectStBo bo) { + EimsInspectSt update = MapstructUtils.convert(bo, EimsInspectSt.class); + + if(bo.getVerifyUser()!=null){ + EimsInspectSt st = baseMapper.selectById(bo.getId()); + String status = st.getStatus(); + if(status==null || status.equals(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.N)){ + if(update.getVerifyTime()==null) update.setStatus(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.Y); + if(update.getVerifyTime()==null) update.setVerifyTime(new Date()); + } + } + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙 + */ + private void validEntityBeforeSave(EimsInspectSt entity){ + //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫 + } + + /** + * 鏍¢獙骞舵壒閲忓垹闄ょ偣妫�姹囨�讳俊鎭� + * + * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎 + * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠� + * @return 鏄惁鍒犻櫎鎴愬姛 + */ + @Override + public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { + if(isValid){ + //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠� + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java index 529c96b..4b23e57 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java @@ -112,6 +112,8 @@ qw.eq(bo.getStatus() != null, "mo.status", bo.getStatus()); qw.eq(bo.getPlanTime()!=null, "mo.plan_time", bo.getPlanTime()); + qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null, + "mo.plan_time", params.get("beginPlanTime"), params.get("endPlanTime")); qw.orderByDesc("mo.create_time"); return qw; } diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderStServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java similarity index 68% rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderStServiceImpl.java rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java index ea64041..78f55ad 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderStServiceImpl.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java @@ -1,9 +1,9 @@ package org.dromara.eims.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.SneakyThrows; import org.dromara.common.core.constant.DictConstants; import org.dromara.common.core.domain.R; -import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -12,18 +12,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.eims.domain.EimsEqu; import org.dromara.eims.domain.EimsMaintOrder; +import org.dromara.eims.domain.EimsMaintSt; +import org.dromara.eims.domain.bo.EimsMaintStBo; import org.dromara.eims.domain.vo.EimsMaintOrderVo; +import org.dromara.eims.domain.vo.EimsMaintStVo; import org.dromara.eims.mapper.EimsEquMapper; import org.dromara.eims.mapper.EimsMaintOrderMapper; import org.springframework.stereotype.Service; -import org.dromara.eims.domain.bo.EimsMaintOrderStBo; -import org.dromara.eims.domain.vo.EimsMaintOrderStVo; -import org.dromara.eims.domain.EimsMaintOrderSt; -import org.dromara.eims.mapper.EimsMaintOrderStMapper; -import org.dromara.eims.service.IEimsMaintOrderStService; +import org.dromara.eims.mapper.EimsMaintStMapper; +import org.dromara.eims.service.IEimsMaintStService; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; @@ -44,9 +43,9 @@ */ @RequiredArgsConstructor @Service -public class EimsMaintOrderStServiceImpl implements IEimsMaintOrderStService { +public class EimsMaintStServiceImpl implements IEimsMaintStService { - private final EimsMaintOrderStMapper baseMapper; + private final EimsMaintStMapper baseMapper; private final EimsEquMapper equMapper; private final EimsMaintOrderMapper orderMapper; @@ -57,7 +56,7 @@ * @return 淇濆吇宸ュ崟姹囨�� */ @Override - public EimsMaintOrderStVo queryById(Long id) { + public EimsMaintStVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -69,18 +68,17 @@ * @return 淇濆吇宸ュ崟姹囨�诲垎椤靛垪琛� */ @Override - public TableDataInfo<EimsMaintOrderStVo> queryPageList(EimsMaintOrderStBo bo, PageQuery pageQuery) { - LambdaQueryWrapper<EimsMaintOrderSt> lqw = buildQueryWrapper(bo); - Page<EimsMaintOrderStVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); + public TableDataInfo<EimsMaintStVo> queryPageList(EimsMaintStBo bo, PageQuery pageQuery) { + Page<EimsMaintStVo> result = baseMapper.selectMaintStList(pageQuery.build(), buildWrapper(bo)); // 濉厖鏁版嵁 fillStData(result); return TableDataInfo.build(result); } - private void fillStData(Page<EimsMaintOrderStVo> result) { - List<EimsMaintOrderStVo> records = result.getRecords(); + private void fillStData(Page<EimsMaintStVo> result) { + List<EimsMaintStVo> records = result.getRecords(); for (int i = 0; i < records.size(); i++) { - EimsMaintOrderStVo stVo = records.get(i); + EimsMaintStVo stVo = records.get(i); //1.濉厖璁惧 EimsEqu eimsEqu = equMapper.selectById(stVo.getEquId()); stVo.setAssetNo(eimsEqu.getAssetNo()); @@ -88,7 +86,6 @@ LambdaQueryWrapper<EimsMaintOrder> orderLqw = Wrappers.lambdaQuery(); orderLqw.eq(EimsMaintOrder::getEquId, stVo.getEquId()); LocalDate planTime = stVo.getPlanTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - ; LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth()); LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth()); orderLqw.between(EimsMaintOrder::getPlanTime, startOfMonth, endOfMonth); @@ -115,20 +112,35 @@ * @return 淇濆吇宸ュ崟姹囨�诲垪琛� */ @Override - public List<EimsMaintOrderStVo> queryList(EimsMaintOrderStBo bo) { - LambdaQueryWrapper<EimsMaintOrderSt> lqw = buildQueryWrapper(bo); + public List<EimsMaintStVo> queryList(EimsMaintStBo bo) { + LambdaQueryWrapper<EimsMaintSt> lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } - private LambdaQueryWrapper<EimsMaintOrderSt> buildQueryWrapper(EimsMaintOrderStBo bo) { + private LambdaQueryWrapper<EimsMaintSt> buildQueryWrapper(EimsMaintStBo bo) { Map<String, Object> params = bo.getParams(); - LambdaQueryWrapper<EimsMaintOrderSt> lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getTitle()), EimsMaintOrderSt::getTitle, bo.getTitle()); - lqw.eq(StringUtils.isNotBlank(bo.getEquId()), EimsMaintOrderSt::getEquId, bo.getEquId()); - lqw.eq(bo.getPlanTime() != null, EimsMaintOrderSt::getPlanTime, bo.getPlanTime()); - lqw.eq(bo.getMaintUser() != null, EimsMaintOrderSt::getMaintUser, bo.getMaintUser()); - lqw.eq(bo.getVerifyUser() != null, EimsMaintOrderSt::getVerifyUser, bo.getVerifyUser()); + LambdaQueryWrapper<EimsMaintSt> lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), EimsMaintSt::getTitle, bo.getTitle()); + lqw.eq(bo.getPlanTime() != null, EimsMaintSt::getPlanTime, bo.getPlanTime()); + lqw.eq(bo.getMaintUser() != null, EimsMaintSt::getMaintUser, bo.getMaintUser()); + lqw.eq(bo.getVerifyUser() != null, EimsMaintSt::getVerifyUser, bo.getVerifyUser()); return lqw; + } + + + private QueryWrapper<EimsMaintSt> buildWrapper(EimsMaintStBo bo) { + Map<String, Object> params = bo.getParams(); + QueryWrapper<EimsMaintSt> qw = Wrappers.query(); + 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.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null, + "st.plan_time", params.get("beginPlanTime"), params.get("endPlanTime")); + qw.eq(bo.getMaintUser() != null, "st.maint_user", bo.getMaintUser()); + qw.eq(bo.getVerifyUser() != null, "st.verify_user", bo.getVerifyUser()); + qw.eq(bo.getStatus() != null, "st.status", bo.getStatus()); + qw.orderByDesc( "st.create_time"); + return qw; } /** @@ -138,8 +150,8 @@ * @return 鏄惁鏂板鎴愬姛 */ @Override - public Boolean insertByBo(EimsMaintOrderStBo bo) { - EimsMaintOrderSt add = MapstructUtils.convert(bo, EimsMaintOrderSt.class); + public Boolean insertByBo(EimsMaintStBo bo) { + EimsMaintSt add = MapstructUtils.convert(bo, EimsMaintSt.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -155,12 +167,12 @@ * @return 鏄惁淇敼鎴愬姛 */ @Override - public Boolean updateByBo(EimsMaintOrderStBo bo) { - EimsMaintOrderSt update = MapstructUtils.convert(bo, EimsMaintOrderSt.class); + public Boolean updateByBo(EimsMaintStBo bo) { + EimsMaintSt update = MapstructUtils.convert(bo, EimsMaintSt.class); if(bo.getVerifyUser()!=null){ - EimsMaintOrderSt eimsMaintOrderSt = baseMapper.selectById(bo.getId()); - String status = eimsMaintOrderSt.getStatus(); + EimsMaintSt eimsMaintSt = baseMapper.selectById(bo.getId()); + String status = eimsMaintSt.getStatus(); if(status==null || status.equals(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.N)){ if(update.getVerifyTime()==null) update.setStatus(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.Y); if(update.getVerifyTime()==null) update.setVerifyTime(new Date()); @@ -174,7 +186,7 @@ /** * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙 */ - private void validEntityBeforeSave(EimsMaintOrderSt entity) { + private void validEntityBeforeSave(EimsMaintSt entity) { //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫 } @@ -194,7 +206,7 @@ } AtomicBoolean flag = new AtomicBoolean(false); ids.stream().anyMatch(id -> { - EimsMaintOrderStVo stVo = baseMapper.selectVoById(id); + EimsMaintStVo stVo = baseMapper.selectVoById(id); LocalDate planTime = stVo.getPlanTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth()); LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth()); 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 new file mode 100644 index 0000000..dda9e29 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectPlanMapper.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.dromara.eims.mapper.EimsInspectPlanMapper"> + <resultMap type="org.dromara.eims.domain.vo.EimsInspectPlanVo" id="EimsInspectPlanResult"> + </resultMap> + <select id="selectInspPlanList" resultMap="EimsInspectPlanResult"> + SELECT ip.*,equ.equ_name equName,equ.equ_code equCode,equ.asset_no assetNo,equ.model_no modelNo, + us.nick_name inspUserName,dp.dept_name inspDeptName, + CONCAT_WS('', ip.insp_cycle, dd.dict_label) inspCycleUnitName + FROM eims_inspect_plan ip + LEFT JOIN eims_equ equ ON ip.equ_id = equ.equ_id + LEFT JOIN sys_user us ON ip.insp_user = us.user_id + LEFT JOIN sys_dept dp ON ip.insp_dept = dp.dept_id + LEFT JOIN sys_dict_data dd on dd.dict_type = 'maint_cycle_unit' and dd.dict_value = ip.insp_cycle_unit + ${ew.getCustomSqlSegment} + </select> +</mapper> 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 new file mode 100644 index 0000000..db8135f --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.dromara.eims.mapper.EimsInspectRecordMapper"> + + <resultMap type="org.dromara.eims.domain.vo.EimsInspectRecordVo" id="EimsInspRecordVoResult"> + </resultMap> + <select id="selectInspRecordList" resultMap="EimsInspRecordVoResult"> + SELECT ir.*,equ.equ_name equName,equ.equ_code equCode,equ.asset_no assetNo,equ.model_no modelNo,ir.create_time createTime, + us.nick_name inspUserName,dp.dept_name inspDeptName,ue.nick_name verifyUserName + FROM eims_inspect_record ir + LEFT JOIN eims_equ equ ON ir.equ_id = equ.equ_id + LEFT JOIN sys_user us ON ir.insp_user = us.user_id + LEFT JOIN sys_user ue ON ir.verify_user = ue.user_id + LEFT JOIN sys_dept dp ON ir.insp_dept = dp.dept_id + ${ew.getCustomSqlSegment} + </select> + +</mapper> 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 new file mode 100644 index 0000000..d3ccccc --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.dromara.eims.mapper.EimsInspectStMapper"> + <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 FROM eims_inspect_st st + LEFT JOIN eims_equ equ on st.equ_id = equ.equ_id + ${ew.getCustomSqlSegment} + </select> + +</mapper> diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintOrderStMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintOrderStMapper.xml deleted file mode 100644 index 892a6b6..0000000 --- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintOrderStMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE mapper -PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" -"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="org.dromara.eims.mapper.EimsMaintOrderStMapper"> - -</mapper> diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintStMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintStMapper.xml new file mode 100644 index 0000000..a668837 --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsMaintStMapper.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.dromara.eims.mapper.EimsMaintStMapper"> + <resultMap type="org.dromara.eims.domain.vo.EimsMaintStVo" id="MaintMaintStVoResult"> + </resultMap> + <select id="selectMaintStList" resultMap="MaintMaintStVoResult"> + SELECT st.*,equ.equ_name equName,equ.asset_no assetNo FROM eims_maint_st st + LEFT JOIN eims_equ equ on st.equ_id = equ.equ_id + ${ew.getCustomSqlSegment} + </select> +</mapper> -- Gitblit v1.9.3