From d5dff36d38fc7a211b34916796bbc37f17e7a2d0 Mon Sep 17 00:00:00 2001
From: 朱桂飞 <zhuguifei@zhuguifeideMacBook-Air.local>
Date: 星期三, 15 一月 2025 16:33:15 +0800
Subject: [PATCH] 完成设备管理部分功能
---
eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/EquNameTranslationImpl.java | 30
eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml | 2
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java | 72 +
eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx | 269 +++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquService.java | 16
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java | 206 ++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquTrialServiceImpl.java | 143 ++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java | 73 +
eims-ui/apps/web-antd/src/views/eims/equ/index.vue | 65
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquTrialController.java | 105 +
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java | 135 +
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquTypeController.java | 41
eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquService.java | 11
eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java | 7
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquTrialMapper.java | 15
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquType.java | 6
eims-ui/apps/web-antd/src/views/eims/equ-trial/data.tsx | 291 ++++
eims-ui/apps/web-antd/src/api/eims/equ-trial/model.d.ts | 225 +++
eims-ui/apps/web-antd/src/views/eims/equ-statu/statu-preview-drawer.vue | 32
eims-ui/apps/web-antd/src/views/eims/equ-statu/index.vue | 244 +++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java | 99 +
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquTypeService.java | 16
eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquTypeMapper.xml | 2
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquController.java | 46
eims-ui/apps/web-antd/src/api/eims/equ-statu/index.ts | 61
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquTrial.java | 114 +
eims-ui/apps/web-antd/src/views/eims/equ-trial/equ-trial-drawer.vue | 200 ++
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquTrialService.java | 68
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquTrialVo.java | 144 ++
eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquTypeService.java | 4
eims-ui/apps/web-antd/src/views/eims/equ/data.tsx | 12
eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquTrialMapper.xml | 2
eims/ruoyi-common/ruoyi-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 1
eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue | 7
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquBo.java | 10
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquVo.java | 9
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEqu.java | 6
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquStatuController.java | 105 +
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquTypeBo.java | 9
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquTypeServiceImpl.java | 66
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquTypeMapper.java | 15
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquTypeVo.java | 9
eims-ui/apps/web-antd/src/views/eims/equ-trial/index.vue | 247 +++
eims-ui/apps/web-antd/src/api/eims/equ-statu/model.d.ts | 131 +
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java | 15
/dev/null | 188 --
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquMapper.java | 15
eims-ui/apps/web-antd/src/views/eims/equ-trial/trial-preview-drawer.vue | 32
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquTrialBo.java | 112 +
eims-ui/apps/web-antd/src/views/eims/equ-detail/index.vue | 29
eims-ui/apps/web-antd/src/api/eims/equ-trial/index.ts | 65
eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquMapper.xml | 2
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquStatuService.java | 68
eims-ui/apps/web-antd/src/views/eims/equ-statu/equ-statu-drawer.vue | 206 ++
54 files changed, 3,739 insertions(+), 364 deletions(-)
diff --git a/eims-ui/apps/web-antd/src/api/eims/equ-statu/index.ts b/eims-ui/apps/web-antd/src/api/eims/equ-statu/index.ts
new file mode 100644
index 0000000..12c29b1
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/api/eims/equ-statu/index.ts
@@ -0,0 +1,61 @@
+import type { EquStatuVO } from './model';
+
+import type { ID, IDS } from '#/api/common';
+
+import { commonExport } from '#/api/helper';
+import { requestClient } from '#/api/request';
+
+enum Api {
+ equStatuExport = '/eims/equStatu/export',
+ equStatuList = '/eims/equStatu/list',
+ root = '/eims/equStatu'
+}
+
+/**
+ * 鏌ヨ璁惧鐘舵�佽褰曞垪琛�
+ * @param query
+ * @returns {*}
+ */
+
+export function listEquStatu(params?: any) {
+ return requestClient.get<EquStatuVO[]>(Api.equStatuList, { params });
+}
+
+/**
+ * 鏌ヨ璁惧鐘舵�佽褰曡缁�
+ * @param statuId
+ */
+export function getEquStatu(statuId: ID) {
+ return requestClient.get<EquStatuVO>(`${Api.root}/${statuId}`);
+}
+
+/**
+ * 鏂板璁惧鐘舵�佽褰�
+ * @param data
+ */
+export function addEquStatu(data: any) {
+ return requestClient.postWithMsg<void>(Api.root, data);
+}
+
+/**
+ * 淇敼璁惧鐘舵�佽褰�
+ * @param data
+ */
+export function updateEquStatu(data: any) {
+ return requestClient.putWithMsg<void>(Api.root, data);
+}
+
+/**
+ * 鍒犻櫎璁惧鐘舵�佽褰�
+ * @param statuId
+ */
+export function delEquStatu(statuId: IDS) {
+ return requestClient.deleteWithMsg<void>(`${Api.root}/${statuId}`);
+}
+/**
+ * 瀵煎嚭
+ * @param
+ */
+export function equStatuExport(data: any) {
+ return commonExport(Api.equStatuExport, data);
+}
diff --git a/eims-ui/apps/web-antd/src/api/eims/equ-statu/model.d.ts b/eims-ui/apps/web-antd/src/api/eims/equ-statu/model.d.ts
new file mode 100644
index 0000000..c75eb35
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/api/eims/equ-statu/model.d.ts
@@ -0,0 +1,131 @@
+export interface EquStatuVO {
+ /**
+ * 璁惧鐘舵�佽褰昳d
+ */
+ equStatuId: string | number;
+
+ /**
+ * 璁惧id
+ */
+ equId: string | number;
+
+ /**
+ * 鍙樻洿鍓嶇姸鎬�
+ */
+ beforeChange: string;
+
+ /**
+ * 鍙樻洿鍚庣姸鎬�
+ */
+ afterChange: string;
+
+ /**
+ * 鍙樻洿鏃ユ湡
+ */
+ changeDate: string;
+
+ /**
+ * 鍙樻洿浜�
+ */
+ changeUser: number;
+
+ /**
+ * 鍙樻洿浜洪儴闂�
+ */
+ userDept: number;
+
+ /**
+ * 鍙樻洿鎻忚堪
+ */
+ changeDesc: string;
+
+ /**
+ * 鎻忚堪
+ */
+ remark: string;
+
+}
+
+export interface EquStatuForm extends BaseEntity {
+ /**
+ * 璁惧鐘舵�佽褰昳d
+ */
+ equStatuId?: string | number;
+
+ /**
+ * 璁惧id
+ */
+ equId?: string | number;
+
+ /**
+ * 鍙樻洿鍓嶇姸鎬�
+ */
+ beforeChange?: string;
+
+ /**
+ * 鍙樻洿鍚庣姸鎬�
+ */
+ afterChange?: string;
+
+ /**
+ * 鍙樻洿鏃ユ湡
+ */
+ changeDate?: string;
+
+ /**
+ * 鍙樻洿浜�
+ */
+ changeUser?: number;
+
+ /**
+ * 鍙樻洿浜洪儴闂�
+ */
+ userDept?: number;
+
+ /**
+ * 鍙樻洿鎻忚堪
+ */
+ changeDesc?: string;
+
+ /**
+ * 鎻忚堪
+ */
+ remark?: string;
+
+}
+
+export interface EquStatuQuery extends PageQuery {
+
+ /**
+ * 璁惧id
+ */
+ equId?: string | number;
+
+ /**
+ * 鍙樻洿鍓嶇姸鎬�
+ */
+ beforeChange?: string;
+
+ /**
+ * 鍙樻洿鍚庣姸鎬�
+ */
+ afterChange?: string;
+
+ /**
+ * 鍙樻洿鏃ユ湡
+ */
+ changeDate?: string;
+
+ /**
+ * 鍙樻洿浜�
+ */
+ changeUser?: number;
+
+ /**
+ * 鏃ユ湡鑼冨洿鍙傛暟
+ */
+ params?: any;
+}
+
+
+
diff --git a/eims-ui/apps/web-antd/src/api/eims/equ-trial/index.ts b/eims-ui/apps/web-antd/src/api/eims/equ-trial/index.ts
new file mode 100644
index 0000000..c59e6b7
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/api/eims/equ-trial/index.ts
@@ -0,0 +1,65 @@
+import type { EquTrialVO } from './model';
+
+import type { ID, IDS } from '#/api/common';
+
+import { commonExport } from '#/api/helper';
+import { requestClient } from '#/api/request';
+
+
+enum Api {
+ equTrialExport = '/eims/equTrial/export',
+ equTrialList = '/eims/equTrial/list',
+ root = '/eims/equTrial'
+}
+
+
+
+/**
+ * 鏌ヨ璁惧璇曚骇璁板綍鍒楄〃
+ * @param query
+ * @returns {*}
+ */
+
+export function listEquTrial(params?: any) {
+ return requestClient.get<EquTrialVO[]>(Api.equTrialList, { params });
+}
+
+
+/**
+ * 鏌ヨ璁惧璇曚骇璁板綍璇︾粏
+ * @param trialId
+ */
+export function getEquTrial(trialId: ID) {
+ return requestClient.get<EquTrialVO>(`${Api.root}/${trialId}`);
+}
+
+/**
+ * 鏂板璁惧璇曚骇璁板綍
+ * @param data
+ */
+export function addEquTrial(data: any) {
+ return requestClient.postWithMsg<void>(Api.root, data);
+}
+
+/**
+ * 淇敼璁惧璇曚骇璁板綍
+ * @param data
+ */
+export function updateEquTrial(data: any) {
+ return requestClient.putWithMsg<void>(Api.root, data);
+}
+
+/**
+ * 鍒犻櫎璁惧璇曚骇璁板綍
+ * @param trialId
+ */
+export function delEquTrial(trialId: IDS) {
+ return requestClient.deleteWithMsg<void>(`${Api.root}/${trialId}`);
+}
+/**
+ * 瀵煎嚭
+ * @param
+ */
+export function equTrialExport(data: any) {
+ return commonExport(Api.equTrialExport, data);
+}
diff --git a/eims-ui/apps/web-antd/src/api/eims/equ-trial/model.d.ts b/eims-ui/apps/web-antd/src/api/eims/equ-trial/model.d.ts
new file mode 100644
index 0000000..f81731c
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/api/eims/equ-trial/model.d.ts
@@ -0,0 +1,225 @@
+export interface EquTrialVO {
+ /**
+ * 璇曠敤璁板綍id
+ */
+ trialId: number | string;
+
+ /**
+ * 璁惧id
+ */
+ equId: number | string;
+
+ /**
+ * 璇曚骇鏁伴噺
+ */
+ trialNum: number;
+
+ /**
+ * 璇曚骇鏃ユ湡
+ */
+ trialDate: string;
+
+ /**
+ * 鑹搧鏁伴噺
+ */
+ proGoodNum: number;
+
+ /**
+ * 鑹搧鐜�
+ */
+ proGoodRate: number;
+
+ /**
+ * 鎿嶄綔浜�(id)
+ */
+ operatorId: number | string;
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ startTime: string;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ endTime: string;
+
+ /**
+ * 杩愯鏃堕暱
+ */
+ runTime: string;
+
+ /**
+ * 鍋滄満鏃堕暱
+ */
+ stopTime: string;
+
+ /**
+ * 璁″垝杩愯鏃堕暱
+ */
+ planRunTime: string;
+
+ /**
+ * 璋冭瘯灞ュ巻
+ */
+ debugHistory: string;
+
+ /**
+ * 璁惧缁煎悎鏁堢巼
+ */
+ oee: number;
+
+ /**
+ * 澶囨敞
+ */
+ remark: string;
+}
+
+export interface EquTrialForm extends BaseEntity {
+ /**
+ * 璇曠敤璁板綍id
+ */
+ trialId?: number | string;
+
+ /**
+ * 璁惧id
+ */
+ equId?: number | string;
+
+ /**
+ * 璇曚骇鏁伴噺
+ */
+ trialNum?: number;
+
+ /**
+ * 璇曚骇鏃ユ湡
+ */
+ trialDate?: string;
+
+ /**
+ * 鑹搧鏁伴噺
+ */
+ proGoodNum?: number;
+
+ /**
+ * 鑹搧鐜�
+ */
+ proGoodRate?: number;
+
+ /**
+ * 鎿嶄綔浜�(id)
+ */
+ operatorId?: number | string;
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ startTime?: string;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ endTime?: string;
+
+ /**
+ * 杩愯鏃堕暱
+ */
+ runTime?: string;
+
+ /**
+ * 鍋滄満鏃堕暱
+ */
+ stopTime?: string;
+
+ /**
+ * 璁″垝杩愯鏃堕暱
+ */
+ planRunTime?: string;
+
+ /**
+ * 璋冭瘯灞ュ巻
+ */
+ debugHistory?: string;
+
+ /**
+ * 璁惧缁煎悎鏁堢巼
+ */
+ oee?: number;
+
+ /**
+ * 澶囨敞
+ */
+ remark?: string;
+}
+
+export interface EquTrialQuery extends PageQuery {
+ /**
+ * 璁惧id
+ */
+ equId?: number | string;
+
+ /**
+ * 璇曚骇鏁伴噺
+ */
+ trialNum?: number;
+
+ /**
+ * 璇曚骇鏃ユ湡
+ */
+ trialDate?: string;
+
+ /**
+ * 鑹搧鏁伴噺
+ */
+ proGoodNum?: number;
+
+ /**
+ * 鑹搧鐜�
+ */
+ proGoodRate?: number;
+
+ /**
+ * 鎿嶄綔浜�(id)
+ */
+ operatorId?: number | string;
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ startTime?: string;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ endTime?: string;
+
+ /**
+ * 杩愯鏃堕暱
+ */
+ runTime?: string;
+
+ /**
+ * 鍋滄満鏃堕暱
+ */
+ stopTime?: string;
+
+ /**
+ * 璁″垝杩愯鏃堕暱
+ */
+ planRunTime?: string;
+
+ /**
+ * 璋冭瘯灞ュ巻
+ */
+ debugHistory?: string;
+
+ /**
+ * 璁惧缁煎悎鏁堢巼
+ */
+ oee?: number;
+
+ /**
+ * 鏃ユ湡鑼冨洿鍙傛暟
+ */
+ params?: any;
+}
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-detail/index.vue b/eims-ui/apps/web-antd/src/views/eims/equ-detail/index.vue
index 5f4bda5..92cc264 100644
--- a/eims-ui/apps/web-antd/src/views/eims/equ-detail/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-detail/index.vue
@@ -11,6 +11,8 @@
import { getEqu } from '#/api/eims/equ';
import equDrawer from '#/views/eims/equ/equ-drawer.vue';
+import EquTrial from '#/views/eims/equ-trial/index.vue';
+import EquStatu from '#/views/eims/equ-statu/index.vue';
const route = useRoute();
const equId = route.params.equId as string;
@@ -57,24 +59,21 @@
<div class="w-3/4 min-w-[640px] flex align-center justify-around">
<Divider class="h-full" type="vertical" />
- <div class="flex w-1/4 h-full cursor-pointer items-center justify-center rounded-sm hover:bg-gray-100"
- style="background: #f2f6fe">
+ <div class="flex w-1/4 h-full cursor-pointer items-center justify-center rounded-sm hover:bg-gray-100" style="background: #f2f6fe">
<Image :preview="false" :width="40" src="/src/assets/logo.png" />
<div class="flex flex-col ml-6 mr-2">
<span class="text-xl font-bold">100%</span>
<span class="mt-5 text-gray-500">璁惧鍋ュ悍搴�</span>
</div>
</div>
- <div class="flex w-1/4 h-full cursor-pointer items-center justify-center rounded-sm hover:bg-gray-100"
- style="background: #fcf8ee">
+ <div class="flex w-1/4 h-full cursor-pointer items-center justify-center rounded-sm hover:bg-gray-100" style="background: #fcf8ee">
<Image :preview="false" :width="40" src="/src/assets/logo.png" />
<div class="flex flex-col ml-6 mr-2">
<span class="text-xl font-bold">86.6h</span>
<span class="mt-5 text-gray-500">骞冲潎鏁呴殰鏃堕棿</span>
</div>
</div>
- <div class="flex w-1/4 h-full cursor-pointer items-center justify-center rounded-sm hover:bg-gray-100"
- style="background: #ecf5de">
+ <div class="flex w-1/4 h-full cursor-pointer items-center justify-center rounded-sm hover:bg-gray-100" style="background: #ecf5de">
<Image :preview="false" :width="40" src="/src/assets/logo.png" />
<div class="flex flex-col ml-6 mr-2">
<span class="text-xl font-bold">0鍏�</span>
@@ -115,10 +114,8 @@
<Descriptions class="mt-3" size="small" title="璁惧鍥剧墖">
<DescriptionsItem>
<ImagePreviewGroup>
- <Image :width="200"
- src="https://shlanpu.cn/uploads/images/202404/ebb24dc0610cf8e83a19fb0f568bf530.png" />
- <Image :width="200"
- src="https://shlanpu.cn/uploads/images/202404/c2212b8fc38bdd20e9d1cf79da40698d.jpg" />
+ <Image :width="200" src="https://shlanpu.cn/uploads/images/202404/ebb24dc0610cf8e83a19fb0f568bf530.png" />
+ <Image :width="200" src="https://shlanpu.cn/uploads/images/202404/c2212b8fc38bdd20e9d1cf79da40698d.jpg" />
</ImagePreviewGroup>
</DescriptionsItem>
</Descriptions>
@@ -127,10 +124,14 @@
<TabPane key="3" tab="淇濆吇">Content of Tab Pane 3</TabPane>
<TabPane key="4" tab="鐐规">Content of Tab Pane 3</TabPane>
<TabPane key="5" tab="澶囦欢">Content of Tab Pane 3</TabPane>
- <TabPane key="5" tab="闄勪欢">Content of Tab Pane 3</TabPane>
- <TabPane key="6" tab="璁惧灞ュ巻">Content of Tab Pane 3</TabPane>
- <TabPane key="7" tab="璇曚骇璁板綍">Content of Tab Pane 3</TabPane>
- <TabPane key="8" tab="鐘舵�佽褰�">Content of Tab Pane 3</TabPane>
+ <TabPane key="6" tab="闄勪欢">Content of Tab Pane 3</TabPane>
+ <TabPane key="7" tab="璁惧灞ュ巻">Content of Tab Pane 3</TabPane>
+ <TabPane key="8" tab="璇曚骇璁板綍">
+ <EquTrial :equ-detail-flag="true" :equ-id="equId" />
+ </TabPane>
+ <TabPane key="9" tab="鐘舵�佽褰�">
+ <EquStatu :equ-detail-flag="true" :equ-id="equId" />
+ </TabPane>
</Tabs>
</Card>
</div>
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx b/eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx
new file mode 100644
index 0000000..abaf3a6
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx
@@ -0,0 +1,269 @@
+import type { VxeGridProps } from '#/adapter/vxe-table';
+import type { DescItem } from '#/components/description';
+
+import { DictEnum } from '@vben/constants';
+import { getPopupContainer } from '@vben/utils';
+
+import { Tag } from 'ant-design-vue';
+
+import { type FormSchemaGetter } from '#/adapter/form';
+import { getDictOptions } from '#/utils/dict';
+
+export const querySchema: FormSchemaGetter = () => [
+ {
+ component: 'Select',
+ componentProps: {
+ showSearch: true,
+ allowClear: true,
+ getPopupContainer
+ },
+ fieldName: 'equId',
+ label: '璁惧鍚嶇О'
+ },
+ {
+ component: 'RangePicker',
+ fieldName: 'changeDate',
+ label: '鍙樻洿鏃ユ湡'
+ }
+];
+
+export const columns: VxeGridProps['columns'] = [
+ { type: 'checkbox', width: 60, fixed: 'left' },
+ {
+ title: '璁惧鍚嶇О',
+ field: 'equName',
+ minWidth: 100,
+ fixed: 'left',
+ slots: { default: 'equName' }
+ },
+ {
+ title: '鍙樻洿鏃ユ湡',
+ field: 'changeDate',
+ sortable: true,
+ minWidth: 180
+ },
+ {
+ title: '鍙樻洿鍓�',
+ field: 'beforeChange',
+ sortable: true,
+ slots: {
+ default: ({ row }) => {
+ const statu = row.beforeChange;
+ switch (statu) {
+ case '0': {
+ return <Tag color="cyan">璇曠敤</Tag>;
+ }
+ case '1': {
+ return <Tag color="green">鍏ュ浐</Tag>;
+ }
+ case '2': {
+ return <Tag color="orange">杩佺Щ</Tag>;
+ }
+ case '3': {
+ return <Tag color="red">鎶ュ簾</Tag>;
+ }
+ case null: {
+ return '';
+ }
+ // No default
+ }
+ return '';
+ }
+ },
+ minWidth: 80,
+ fixed: 'left'
+ },
+ {
+ title: '鍙樻洿鍚�',
+ field: 'afterChange',
+ sortable: true,
+ slots: {
+ default: ({ row }) => {
+ const statu = row.afterChange;
+ switch (statu) {
+ case '0': {
+ return <Tag color="cyan">璇曠敤</Tag>;
+ }
+ case '1': {
+ return <Tag color="green">鍏ュ浐</Tag>;
+ }
+ case '2': {
+ return <Tag color="orange">杩佺Щ</Tag>;
+ }
+ case '3': {
+ return <Tag color="red">鎶ュ簾</Tag>;
+ }
+ case null: {
+ return '';
+ }
+ // No default
+ }
+ return '';
+ }
+ },
+ minWidth: 80,
+ fixed: 'left'
+ },
+
+ {
+ title: '鍙樻洿鎻忚堪',
+ field: 'changeDesc',
+ minWidth: 120
+ },
+ {
+ title: '鍙樻洿浜�',
+ field: 'changeUserName',
+ minWidth: 120
+ },
+ {
+ field: 'action',
+ fixed: 'right',
+ slots: { default: 'action' },
+ title: '鎿嶄綔',
+ width: 200
+ }
+];
+
+export const drawerSchema: FormSchemaGetter = () => [
+ {
+ component: 'Input',
+ dependencies: {
+ show: () => false,
+ triggerFields: ['']
+ },
+ fieldName: 'equStatuId'
+ },
+ {
+ component: 'Select',
+ componentProps: {
+ showSearch: true,
+ allowClear: true,
+ getPopupContainer
+ },
+ fieldName: 'equId',
+ label: '璁惧鍚嶇О'
+ },
+ {
+ component: 'DatePicker',
+ componentProps: {
+ format: 'YYYY-MM-DD',
+ showTime: false,
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ getPopupContainer
+ },
+ fieldName: 'changeDate',
+ label: '鍙樻洿鏃ユ湡'
+ },
+ {
+ component: 'TreeSelect',
+ // 鍦╠rawer閲屾洿鏂� 杩欓噷涓嶉渶瑕侀粯璁ょ殑componentProps
+ defaultValue: undefined,
+ fieldName: 'userDept',
+ label: '鍙樻洿浜洪儴闂�',
+ help: `鍙樻洿浜哄憳鎵�灞為儴闂╜
+ // rules: 'selectRequired',
+ },
+ {
+ component: 'Select',
+ componentProps: {
+ allowClear: true,
+ showSearch: true,
+ getPopupContainer
+ },
+ fieldName: 'changeUser',
+ label: '鍙樻洿浜�',
+ help: `璁惧鐘舵�佸彉鏇存搷浣滀汉鍛榒
+ },
+ {
+ component: 'RadioGroup',
+ componentProps: {
+ buttonStyle: 'solid',
+ options: getDictOptions(DictEnum.SYS_EQU_STATUS),
+ optionType: 'button'
+ },
+ fieldName: 'beforeChange',
+ label: '鍙樻洿鍓�',
+ help: '璁惧鍙樻洿鍓嶇姸鎬�'
+ },
+ {
+ component: 'RadioGroup',
+ componentProps: {
+ buttonStyle: 'solid',
+ options: getDictOptions(DictEnum.SYS_EQU_STATUS),
+ optionType: 'button'
+ },
+ fieldName: 'afterChange',
+ label: '鍙樻洿鍚�',
+ help: '璁惧鍙樻洿鍚庣姸鎬�'
+ },
+ {
+ component: 'Textarea',
+ fieldName: 'changeDesc',
+ label: '鍙樻洿鎻忚堪'
+ }
+];
+
+export const descSchema: DescItem[] = [
+ {
+ field: 'equName',
+ label: '璁惧鍚嶇О'
+ },
+ {
+ field: 'beforeChange',
+ label: '鍙樻洿鍓�',
+ render(value) {
+ switch (value) {
+ case '0': {
+ return <Tag color="cyan">璇曠敤</Tag>;
+ }
+ case '1': {
+ return <Tag color="green">鍏ュ浐</Tag>;
+ }
+ case '2': {
+ return <Tag color="orange">杩佺Щ</Tag>;
+ }
+ case '3': {
+ return <Tag color="red">鎶ュ簾</Tag>;
+ }
+ case null: {
+ return '';
+ }
+ }
+ }
+ },
+ {
+ field: 'afterChange',
+ label: '鍙樻洿鍚�',
+ render(value) {
+ switch (value) {
+ case '0': {
+ return <Tag color="cyan">璇曠敤</Tag>;
+ }
+ case '1': {
+ return <Tag color="green">鍏ュ浐</Tag>;
+ }
+ case '2': {
+ return <Tag color="orange">杩佺Щ</Tag>;
+ }
+ case '3': {
+ return <Tag color="red">鎶ュ簾</Tag>;
+ }
+ case null: {
+ return '';
+ }
+ }
+ }
+ },
+ {
+ field: 'changeDate',
+ label: '鍙樻洿鏃ユ湡'
+ },
+ {
+ field: 'changeDesc',
+ label: '鍙樻洿鎻忚堪'
+ },
+ {
+ field: 'changeUserName',
+ label: '鍙樻洿浜�'
+ }
+];
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-statu/equ-statu-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/equ-statu/equ-statu-drawer.vue
new file mode 100644
index 0000000..e0d5c75
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-statu/equ-statu-drawer.vue
@@ -0,0 +1,206 @@
+<script setup lang="ts">
+import { computed, ref } from 'vue';
+
+import { useVbenDrawer } from '@vben/common-ui';
+import { $t } from '@vben/locales';
+import { addFullName, cloneDeep, getPopupContainer } from '@vben/utils';
+
+import { useVbenForm } from '#/adapter/form';
+import { listEqu } from '#/api/eims/equ';
+import { addEquStatu, getEquStatu, updateEquStatu } from '#/api/eims/equ-statu';
+import { getDeptTree, userList } from '#/api/system/user';
+
+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
+ },
+ 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;
+ // 鍒濆鍖�
+ await setupEquSelect();
+ await setupDeptSelect();
+
+ // 璁惧璇︽儏椤垫墦寮�鎸囧畾璁惧id
+ const { equId } = drawerApi.getData() as { equId?: number | string };
+ if (equId) {
+ await formApi.setValues({ equId});
+ }
+ // 鏇存柊 && 璧嬪��
+ if (isUpdate.value && id) {
+ const record = await getEquStatu(id);
+ await formApi.setValues(record);
+ }
+ // 璁惧id鏈夊�兼椂涓嶅厑璁哥紪杈戯紙1.缂栬緫 2.璁惧璇︽儏椤垫墦寮�锛�
+ const flag = equId !== undefined || isUpdate.value;
+ formApi.updateSchema([
+ {
+ componentProps: {
+ disabled: flag
+ },
+ fieldName: 'equId'
+ }
+ ]);
+
+ drawerApi.drawerLoading(false);
+ }
+});
+
+async function setupEquSelect() {
+ const equPageResult = await listEqu({
+ pageNum: 1,
+ pageSize: 1000,
+ });
+ // 浣跨敤map鏉ヨ窡韪凡缁忛亣鍒扮殑equId锛屼娇鐢╢ilter鏉ヨ繃婊ゆ帀閲嶅鐨勫厓绱犮��
+ const uniqueItems = equPageResult.rows.filter((item, index, self) => index === self.findIndex((tm) => tm.equId === item.equId));
+
+ const options = uniqueItems.map((item) => ({
+ label: item.equName || item.equName,
+ value: item.equId
+ }));
+ // 绛涢��
+ const filterOption = (input: string, option: any) => {
+ return option.label.toLowerCase().includes(input.toLowerCase());
+ };
+
+ const placeholder = options.length > 0 ? '璇烽�夋嫨' : '鏆傛棤璁惧璁板綍';
+ formApi.updateSchema([
+ {
+ componentProps: {
+ options,
+ placeholder,
+ filterOption,
+ async onSelect(equId: number | string) {
+ const equ = equPageResult.rows.find((item) => item.equId === equId);
+ if (equ && equ.status !== undefined) {
+ await formApi.setValues({ beforeChange: equ.status });
+ }
+ }
+ },
+ fieldName: 'equId'
+ }
+ ]);
+}
+
+/**
+ * 鐢ㄦ埛鐨勫姞杞�
+ */
+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 ? '璇烽�夋嫨' : '璇ラ儴闂ㄤ笅鏆傛棤鐢ㄦ埛';
+ formApi.updateSchema([
+ {
+ componentProps: { options, placeholder, filterOption },
+ fieldName: 'changeUser'
+ }
+ ]);
+}
+
+/**
+ * 鍒濆鍖栭儴闂ㄩ�夋嫨
+ */
+async function setupDeptSelect() {
+ // updateSchema
+ const deptTree = await getDeptTree();
+ // 閫変腑鍚庢樉绀哄湪杈撳叆妗嗙殑鍊� 鍗崇埗鑺傜偣 / 瀛愯妭鐐�
+ addFullName(deptTree, 'label', ' / ');
+ 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.respPerson = undefined;
+ },
+ placeholder: '璇烽�夋嫨',
+ showSearch: true,
+ treeData: deptTree,
+ treeDefaultExpandAll: true,
+ treeLine: { showLeafIcon: false },
+ // 绛涢�夌殑瀛楁
+ treeNodeFilterProp: 'label',
+ // 閫変腑鍚庢樉绀哄湪杈撳叆妗嗙殑鍊�
+ treeNodeLabelProp: 'fullName'
+ }),
+ fieldName: 'userDept'
+ }
+ ]);
+}
+
+async function handleConfirm() {
+ try {
+ drawerApi.drawerLoading(true);
+ const { valid } = await formApi.validate();
+ if (!valid) {
+ return;
+ }
+ const data = cloneDeep(await formApi.getValues());
+ await (isUpdate.value ? updateEquStatu(data) : addEquStatu(data));
+ emit('reload');
+ await handleCancel();
+ } catch (error) {
+ console.error(error);
+ } finally {
+ drawerApi.drawerLoading(false);
+ }
+}
+
+async function handleCancel() {
+ drawerApi.close();
+ await formApi.resetForm();
+}
+</script>
+
+<template>
+ <BasicDrawer :close-on-click-modal="false" :title="title" class="w-[600px]">
+ <BasicForm />
+ </BasicDrawer>
+</template>
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-statu/index.vue b/eims-ui/apps/web-antd/src/views/eims/equ-statu/index.vue
new file mode 100644
index 0000000..6cd3155
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-statu/index.vue
@@ -0,0 +1,244 @@
+<script setup lang="ts">
+import type { Recordable } from '@vben/types';
+
+import { onMounted } from 'vue';
+
+import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui';
+import { $t } from '@vben/locales';
+import { getVxePopupContainer } from '@vben/utils';
+
+import { Modal, Popconfirm, Space } from 'ant-design-vue';
+
+import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table';
+import { listEqu } from '#/api/eims/equ';
+import { delEquStatu, equStatuExport, listEquStatu } from '#/api/eims/equ-statu';
+import { commonDownloadExcel } from '#/utils/file/download';
+
+import { columns, querySchema } from './data';
+import equStatuDrawer from './equ-statu-drawer.vue';
+import statuPreviewDrawer from './statu-preview-drawer.vue';
+
+// 浠庤澶囨槑缁嗘墦寮�椤甸潰 1.涓嶉渶瑕佽澶囩瓫閫� 2.鍙煡璇㈠綋鍓嶈澶囨暟鎹�
+interface Props {
+ equDetailFlag?: boolean;
+ equId?: string;
+}
+
+const props = withDefaults(defineProps<Props>(), { equDetailFlag: false, equId: undefined });
+
+const formOptions: VbenFormProps = {
+ commonConfig: {
+ labelWidth: 80,
+ componentProps: {
+ allowClear: true
+ }
+ },
+ schema: querySchema(),
+ wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
+ // 鏃ユ湡閫夋嫨鏍煎紡鍖�
+ fieldMappingTime: [['changeDate', ['params[beginTime]', 'params[endTime]'], ['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 = {}) => {
+ // 濡傛灉浼犲叆浜唀quId鍒欏彧鏌ヨ褰撳墠id鏁版嵁
+ if (props.equDetailFlag && props.equId) {
+ const queryEqu = { equId: props.equId };
+ Object.assign(formValues, queryEqu);
+ }
+
+ return await listEquStatu({
+ pageNum: page.currentPage,
+ pageSize: page.pageSize,
+ ...formValues
+ });
+ }
+ }
+ },
+ rowConfig: {
+ isHover: true,
+ keyField: 'equStatuId'
+ },
+ sortConfig: {
+ // 杩滅▼鎺掑簭
+ remote: true,
+ // 鏀寔澶氬瓧娈垫帓搴� 榛樿鍏抽棴
+ multiple: true,
+ },
+ id: 'eims-equ-statu-index'
+};
+
+const [BasicTable, tableApi] = useVbenVxeGrid({
+ formOptions,
+ gridOptions,
+ gridEvents: {
+ sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams),
+ },
+});
+
+const [EquStatuDrawer, equStatuDrawerApi] = useVbenDrawer({
+ connectedComponent: equStatuDrawer
+});
+
+const [StatuPreviewDrawer, statuPreviewDrawerApi] = useVbenDrawer({
+ connectedComponent: statuPreviewDrawer
+});
+
+/**
+ * 棰勮
+ * @param record
+ */
+function handlePreview(record: Recordable<any>) {
+ statuPreviewDrawerApi.setData({ record });
+ statuPreviewDrawerApi.open();
+}
+
+onMounted(async () => {
+ await setupEquSelect();
+});
+
+async function setupEquSelect() {
+ const equPageResult = await listEqu({
+ pageNum: 1,
+ pageSize: 1000
+ });
+ if (!equPageResult || equPageResult.rows.length < 0) {
+ return false;
+ }
+ // 浣跨敤map鏉ヨ窡韪凡缁忛亣鍒扮殑equId锛屼娇鐢╢ilter鏉ヨ繃婊ゆ帀閲嶅鐨勫厓绱犮��
+ const uniqueItems = equPageResult.rows.filter((item, index, self) => index === self.findIndex((tm) => tm.equId === item.equId));
+
+ const options = uniqueItems.map((item) => ({
+ label: item.equName || item.equName,
+ value: item.equId
+ }));
+ // 绛涢��
+ const filterOption = (input: string, option: any) => {
+ return option.label.toLowerCase().includes(input.toLowerCase());
+ };
+
+ const placeholder = options.length > 0 ? '璇烽�夋嫨' : '鏆傛棤璁惧璁板綍';
+ // 鏇存柊selectOptions
+ tableApi.formApi.updateSchema([
+ {
+ componentProps: {
+ options,
+ placeholder,
+ filterOption
+ },
+ dependencies: {
+ show: () => !props.equDetailFlag,
+ triggerFields: ['']
+ },
+ fieldName: 'equId'
+ }
+ ]);
+}
+
+function handleAdd() {
+ // 璁惧璇︽儏椤垫墦寮�鏃� 鍙兘鏂板鎸囧畾璁惧id鏁版嵁
+ if (props.equDetailFlag && props.equId) {
+ equStatuDrawerApi.setData({ equId: props.equId });
+ } else {
+ equStatuDrawerApi.setData({});
+ }
+
+ equStatuDrawerApi.open();
+}
+
+async function handleEdit(record: Recordable<any>) {
+ equStatuDrawerApi.setData({ id: record.equStatuId });
+ equStatuDrawerApi.open();
+}
+
+async function handleDelete(row: Recordable<any>) {
+ await delEquStatu(row.equStatuId);
+ await tableApi.query();
+}
+
+function handleMultiDelete() {
+ const rows = tableApi.grid.getCheckboxRecords();
+ const ids = rows.map((row: any) => row.equStatuId);
+ Modal.confirm({
+ title: '鎻愮ず',
+ okType: 'danger',
+ content: `纭鍒犻櫎閫変腑鐨�${ids.length}鏉¤褰曞悧锛焋,
+ onOk: async () => {
+ await delEquStatu(ids);
+ await tableApi.query();
+ }
+ });
+}
+
+function handleDownloadExcel() {
+ commonDownloadExcel(equStatuExport, '璁惧鐘舵�佸彉鏇磋褰�', tableApi.formApi.form.values, {
+ fieldMappingTime: formOptions.fieldMappingTime
+ });
+}
+</script>
+
+<template>
+ <Page :auto-content-height="true">
+ <div class="flex h-full gap-[8px]">
+ <BasicTable class="flex-1 overflow-hidden" table-title="璇曚骇鍒楄〃">
+ <template #toolbar-tools>
+ <Space>
+ <a-button v-access:code="['eims:equStatu:export']" @click="handleDownloadExcel">
+ {{ $t('pages.common.export') }}
+ </a-button>
+ <a-button
+ :disabled="!vxeCheckboxChecked(tableApi)"
+ danger
+ type="primary"
+ v-access:code="['eims:equStatu:remove']"
+ @click="handleMultiDelete"
+ >
+ {{ $t('pages.common.delete') }}
+ </a-button>
+ <a-button type="primary" v-access:code="['eims:equStatu: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 v-access:code="['eims:equStatu:edit']" @click.stop="handleEdit(row)">
+ {{ $t('pages.common.edit') }}
+ </ghost-button>
+ <ghost-button class="btn-success" v-access:code="['eims:equStatu:list']" @click.stop="handlePreview(row)">
+ {{ $t('pages.common.preview') }}
+ </ghost-button>
+ <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)">
+ <ghost-button danger v-access:code="['eims:equStatu:remove']" @click.stop="">
+ {{ $t('pages.common.delete') }}
+ </ghost-button>
+ </Popconfirm>
+ </Space>
+ </template>
+ </BasicTable>
+ </div>
+ <EquStatuDrawer @reload="tableApi.query()" />
+ <StatuPreviewDrawer />
+ </Page>
+</template>
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-statu/statu-preview-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/equ-statu/statu-preview-drawer.vue
new file mode 100644
index 0000000..39bb1f4
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-statu/statu-preview-drawer.vue
@@ -0,0 +1,32 @@
+<script setup lang="ts">
+import type { Recordable } from '@vben/types';
+
+import { useVbenDrawer } from '@vben/common-ui';
+
+import { Description, useDescription } from '#/components/description';
+
+import { descSchema } from './data';
+
+const [BasicDrawer, drawerApi] = useVbenDrawer({
+ onOpenChange: handleOpenChange,
+});
+
+const [registerDescription, { setDescProps }] = useDescription({
+ column: 1,
+ schema: descSchema,
+});
+
+function handleOpenChange(open: boolean) {
+ if (!open) {
+ return null;
+ }
+ const { record } = drawerApi.getData() as { record: Recordable<any> };
+ setDescProps({ data: record }, true);
+}
+</script>
+
+<template>
+ <BasicDrawer :footer="false" class="w-[600px]" title="璇曚骇璁板綍鏄庣粏">
+ <Description @register="registerDescription" />
+ </BasicDrawer>
+</template>
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-trial/data.tsx b/eims-ui/apps/web-antd/src/views/eims/equ-trial/data.tsx
new file mode 100644
index 0000000..087fc37
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-trial/data.tsx
@@ -0,0 +1,291 @@
+import type { VxeGridProps } from '#/adapter/vxe-table';
+import type { DescItem } from '#/components/description';
+
+import { getPopupContainer } from '@vben/utils';
+
+import { type FormSchemaGetter } from '#/adapter/form';
+
+export const querySchema: FormSchemaGetter = () => [
+ {
+ component: 'Select',
+ componentProps: {
+ showSearch: true,
+ allowClear: true,
+ getPopupContainer
+ },
+ fieldName: 'equId',
+ label: '璁惧鍚嶇О'
+ },
+ {
+ component: 'RangePicker',
+ fieldName: 'trialDate',
+ label: '璇曚骇鏃ユ湡'
+ }
+];
+
+export const columns: VxeGridProps['columns'] = [
+ { type: 'checkbox', width: 60, fixed: 'left' },
+ {
+ title: '璁惧鍚嶇О',
+ field: 'equName',
+ minWidth: 100,
+ fixed: 'left',
+ slots: { default: 'equName' }
+ },
+
+ /* {
+ title: '绫诲瀷',
+ slots: {
+ // eslint-disable-next-line no-empty-pattern
+ default: ({}) => {
+ return <Tag color="cyan">璇曠敤</Tag>;
+ }
+ },
+ minWidth: 80,
+ fixed: 'left'
+ },*/
+ {
+ title: '璇曚骇鏃ユ湡',
+ field: 'trialDate',
+ sortable: true,
+ minWidth: 120
+ },
+ {
+ title: '璇曚骇鏁伴噺',
+ field: 'trialNum',
+ minWidth: 100
+ },
+ {
+ title: '鑹搧鏁伴噺',
+ field: 'proGoodNum',
+ minWidth: 100
+ },
+ {
+ title: '鑹搧鐜�',
+ field: 'proGoodRate',
+ minWidth: 100
+ },
+ {
+ title: '璁″垝杩愯鏃堕暱',
+ field: 'planRunTime',
+ minWidth: 120
+ },
+ {
+ title: '杩愯鏃堕暱',
+ field: 'runTime',
+ minWidth: 100
+ },
+ {
+ title: '鍋滄満鏃堕暱',
+ field: 'stopTime',
+ minWidth: 100
+ },
+ {
+ title: '璋冭瘯灞ュ巻',
+ field: 'debugHistory',
+ minWidth: 100
+ },
+ {
+ title: '缁煎悎鏁堢巼',
+ field: 'oee',
+ minWidth: 100
+ },
+
+ {
+ title: '鎿嶄綔浜�',
+ field: 'operatorName',
+ minWidth: 100
+ },
+ {
+ field: 'action',
+ fixed: 'right',
+ slots: { default: 'action' },
+ title: '鎿嶄綔',
+ width: 200
+ }
+];
+
+export const drawerSchema: FormSchemaGetter = () => [
+ {
+ component: 'Input',
+ dependencies: {
+ show: () => false,
+ triggerFields: ['']
+ },
+ fieldName: 'trialId'
+ },
+ {
+ component: 'Select',
+ componentProps: {
+ showSearch: true,
+ allowClear: true,
+ getPopupContainer
+ },
+ fieldName: 'equId',
+ label: '璁惧鍚嶇О'
+ },
+ {
+ component: 'DatePicker',
+ componentProps: {
+ format: 'YYYY-MM-DD',
+ showTime: false,
+ valueFormat: 'YYYY-MM-DD',
+ getPopupContainer
+ },
+ fieldName: 'trialDate',
+ label: '璇曚骇鏃ユ湡'
+ },
+ {
+ component: 'Input',
+ fieldName: 'trialNum',
+ label: '璇曚骇鏁伴噺'
+ },
+ {
+ component: 'Input',
+ fieldName: 'proGoodNum',
+ label: '鑹搧鏁伴噺',
+ help: '璇曚骇涓骇鍝佸悎鏍兼暟'
+ },
+ {
+ component: 'Input',
+ fieldName: 'proGoodRate',
+ label: '鑹搧鐜�',
+ help: '璇曚骇涓骇鍝佸悎鏍肩巼'
+ },
+ {
+ component: 'TimePicker',
+ componentProps: {
+ format: 'HH:mm:ss',
+ showTime: false,
+ valueFormat: 'HH:mm:ss',
+ getPopupContainer
+ },
+ fieldName: 'startTime',
+ label: '寮�濮嬫椂闂�'
+ },
+ {
+ component: 'TimePicker',
+ componentProps: {
+ format: 'HH:mm:ss',
+ showTime: false,
+ valueFormat: 'HH:mm:ss',
+ getPopupContainer
+ },
+ fieldName: 'endTime',
+ label: '缁撴潫鏃堕棿'
+ },
+ {
+ component: 'TimePicker',
+ componentProps: {
+ format: 'HH:mm:ss',
+ showTime: false,
+ valueFormat: 'HH:mm:ss',
+ getPopupContainer
+ },
+ fieldName: 'planRunTime',
+ label: '璁″垝杩愯鏃堕暱'
+ },
+ {
+ component: 'TimePicker',
+ componentProps: {
+ format: 'HH:mm:ss',
+ showTime: false,
+ valueFormat: 'HH:mm:ss',
+ getPopupContainer
+ },
+ fieldName: 'runTime',
+ label: '杩愯鏃堕暱'
+ },
+ {
+ component: 'TimePicker',
+ componentProps: {
+ format: 'HH:mm:ss',
+ showTime: false,
+ valueFormat: 'HH:mm:ss',
+ getPopupContainer
+ },
+ fieldName: 'stopTime',
+ label: '鍋滄満鏃堕暱'
+ },
+ {
+ component: 'Textarea',
+ formItemClass: 'items-baseline',
+ fieldName: 'debugHistory',
+ label: '璋冭瘯灞ュ巻'
+ },
+ {
+ component: 'TreeSelect',
+ // 鍦╠rawer閲屾洿鏂� 杩欓噷涓嶉渶瑕侀粯璁ょ殑componentProps
+ defaultValue: undefined,
+ fieldName: 'operatorDept',
+ label: '鎿嶄綔浜洪儴闂�',
+ help: `璇曚骇鎿嶄綔浜哄憳鎵�灞為儴闂╜
+ // rules: 'selectRequired',
+ },
+ {
+ component: 'Select',
+ componentProps: {
+ allowClear: true,
+ showSearch: true,
+ getPopupContainer
+ },
+ fieldName: 'operatorId',
+ label: '鎿嶄綔浜�',
+ help: `璇曚骇鎿嶄綔浜哄憳`
+ }
+];
+
+export const descSchema: DescItem[] = [
+ {
+ field: 'equName',
+ label: '璁惧鍚嶇О'
+ },
+ {
+ field: 'oee',
+ label: '缁煎悎鏁堢巼'
+ },
+ {
+ field: 'operatorName',
+ label: '鎿嶄綔浜�'
+ },
+ {
+ field: 'trialDate',
+ label: '璇曚骇鏃ユ湡'
+ },
+ {
+ field: 'trialNum',
+ label: '璇曚骇鏁伴噺'
+ },
+ {
+ field: 'proGoodNum',
+ label: '鑹搧鏁伴噺'
+ },
+ {
+ field: 'proGoodRate',
+ label: '鑹搧鐜�'
+ },
+ {
+ field: 'startTime',
+ label: '寮�濮嬫椂闂�'
+ },
+ {
+ field: 'endTime',
+ label: '缁撴潫鏃堕棿'
+ },
+ {
+ field: 'planRunTime',
+ label: '璁″垝杩愯鏃堕暱'
+ },
+ {
+ field: 'runTime',
+ label: '杩愯鏃堕暱'
+ },
+ {
+ field: 'stopTime',
+ label: '鍋滄満鏃堕棿'
+ },
+ {
+ field: 'debugHistory',
+ label: '璁惧灞ュ巻'
+ }
+];
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-trial/equ-trial-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/equ-trial/equ-trial-drawer.vue
new file mode 100644
index 0000000..99c5f21
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-trial/equ-trial-drawer.vue
@@ -0,0 +1,200 @@
+<script setup lang="ts">
+import { computed, ref } from 'vue';
+
+import { useVbenDrawer } from '@vben/common-ui';
+import { $t } from '@vben/locales';
+import { addFullName, cloneDeep, getPopupContainer } from '@vben/utils';
+
+import { useVbenForm } from '#/adapter/form';
+import { listEqu } from '#/api/eims/equ';
+import { addEquTrial, getEquTrial, updateEquTrial } from '#/api/eims/equ-trial';
+import { getDeptTree, userList } from '#/api/system/user';
+
+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
+ },
+ 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 };
+ // 璁惧璇︽儏椤垫墦寮�鎸囧畾璁惧id
+ const { equId } = drawerApi.getData() as { equId?: number | string };
+ if (equId) {
+ await formApi.setValues({ equId });
+ }
+ isUpdate.value = !!id;
+ // 鍒濆鍖�
+ await setupEquSelect();
+ await setupDeptSelect();
+ // 鏇存柊 && 璧嬪��
+ if (isUpdate.value && id) {
+ const record = await getEquTrial(id);
+ await formApi.setValues(record);
+ }
+ // 璁惧id鏈夊�兼椂涓嶅厑璁哥紪杈戯紙1.缂栬緫 2.璁惧璇︽儏椤垫墦寮�锛�
+ const flag = equId !== undefined || isUpdate.value;
+ formApi.updateSchema([
+ {
+ componentProps: {
+ disabled: flag
+ },
+ fieldName: 'equId'
+ }
+ ]);
+
+ drawerApi.drawerLoading(false);
+ }
+});
+
+async function setupEquSelect() {
+ // status-0 鍙煡璇㈣瘯鐢ㄨ澶�
+ const params = { status: '0' };
+ const equPageResult = await listEqu({
+ pageNum: 1,
+ pageSize: 1000,
+ ...params
+ });
+ // 浣跨敤map鏉ヨ窡韪凡缁忛亣鍒扮殑equId锛屼娇鐢╢ilter鏉ヨ繃婊ゆ帀閲嶅鐨勫厓绱犮��
+ const uniqueItems = equPageResult.rows.filter((item, index, self) => index === self.findIndex((tm) => tm.equId === item.equId));
+
+ const options = uniqueItems.map((item) => ({
+ label: item.equName || item.equName,
+ value: item.equId
+ }));
+ // 绛涢��
+ const filterOption = (input: string, option: any) => {
+ return option.label.toLowerCase().includes(input.toLowerCase());
+ };
+
+ const placeholder = options.length > 0 ? '璇烽�夋嫨' : '鏆傛棤璁惧璁板綍';
+ formApi.updateSchema([
+ {
+ componentProps: {
+ options,
+ placeholder,
+ filterOption
+ },
+ fieldName: 'equId'
+ }
+ ]);
+}
+
+/**
+ * 鐢ㄦ埛鐨勫姞杞�
+ */
+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 ? '璇烽�夋嫨' : '璇ラ儴闂ㄤ笅鏆傛棤鐢ㄦ埛';
+ formApi.updateSchema([
+ {
+ componentProps: { options, placeholder, filterOption },
+ fieldName: 'operatorId'
+ }
+ ]);
+}
+
+/**
+ * 鍒濆鍖栭儴闂ㄩ�夋嫨
+ */
+async function setupDeptSelect() {
+ // updateSchema
+ const deptTree = await getDeptTree();
+ // 閫変腑鍚庢樉绀哄湪杈撳叆妗嗙殑鍊� 鍗崇埗鑺傜偣 / 瀛愯妭鐐�
+ addFullName(deptTree, 'label', ' / ');
+ 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.respPerson = undefined;
+ },
+ placeholder: '璇烽�夋嫨',
+ showSearch: true,
+ treeData: deptTree,
+ treeDefaultExpandAll: true,
+ treeLine: { showLeafIcon: false },
+ // 绛涢�夌殑瀛楁
+ treeNodeFilterProp: 'label',
+ // 閫変腑鍚庢樉绀哄湪杈撳叆妗嗙殑鍊�
+ treeNodeLabelProp: 'fullName'
+ }),
+ fieldName: 'operatorDept'
+ }
+ ]);
+}
+async function handleConfirm() {
+ try {
+ drawerApi.drawerLoading(true);
+ const { valid } = await formApi.validate();
+ if (!valid) {
+ return;
+ }
+ const data = cloneDeep(await formApi.getValues());
+ await (isUpdate.value ? updateEquTrial(data) : addEquTrial(data));
+ emit('reload');
+ await handleCancel();
+ } catch (error) {
+ console.error(error);
+ } finally {
+ drawerApi.drawerLoading(false);
+ }
+}
+
+async function handleCancel() {
+ drawerApi.close();
+ await formApi.resetForm();
+}
+</script>
+
+<template>
+ <BasicDrawer :close-on-click-modal="false" :title="title" class="w-[600px]">
+ <BasicForm />
+ </BasicDrawer>
+</template>
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-trial/index.vue b/eims-ui/apps/web-antd/src/views/eims/equ-trial/index.vue
new file mode 100644
index 0000000..3534a0c
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-trial/index.vue
@@ -0,0 +1,247 @@
+<script setup lang="ts">
+import type { Recordable } from '@vben/types';
+
+import { onMounted } from 'vue';
+
+import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui';
+import { $t } from '@vben/locales';
+import { getVxePopupContainer } from '@vben/utils';
+
+import { Modal, Popconfirm, Space } from 'ant-design-vue';
+
+import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table';
+import { listEqu } from '#/api/eims/equ';
+import { delEquTrial, equTrialExport, listEquTrial } from '#/api/eims/equ-trial';
+import { commonDownloadExcel } from '#/utils/file/download';
+
+import { columns, querySchema } from './data';
+import equTrialDrawer from './equ-trial-drawer.vue';
+import trialPreviewDrawer from './trial-preview-drawer.vue';
+
+// 浠庤澶囨槑缁嗘墦寮�椤甸潰 1.涓嶉渶瑕佽澶囩瓫閫� 2.鍙煡璇㈠綋鍓嶈澶囨暟鎹�
+interface Props {
+ equDetailFlag?: boolean;
+ equId?: string;
+}
+
+const props = withDefaults(defineProps<Props>(), { equDetailFlag: false, equId: undefined });
+
+const formOptions: VbenFormProps = {
+ commonConfig: {
+ labelWidth: 80,
+ componentProps: {
+ allowClear: true
+ }
+ },
+ schema: querySchema(),
+ wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
+ // 鏃ユ湡閫夋嫨鏍煎紡鍖�
+ fieldMappingTime: [['trialDate', ['params[beginTime]', 'params[endTime]'], ['YYYY-MM-DD', 'YYYY-MM-DD']]]
+};
+
+const gridOptions: VxeGridProps = {
+ checkboxConfig: {
+ // 楂樹寒
+ highlight: true,
+ // 缈婚〉鏃朵繚鐣欓�変腑鐘舵��
+ reserve: true
+ // 鐐瑰嚮琛岄�変腑
+ // trigger: 'row'
+ },
+ columns,
+ height: 'auto',
+ keepSource: true,
+ pagerConfig: {},
+ proxyConfig: {
+ ajax: {
+ query: async ({ page }, formValues = {}) => {
+ // 濡傛灉浼犲叆浜唀quId鍒欏彧鏌ヨ褰撳墠id鏁版嵁
+ if (props.equDetailFlag && props.equId) {
+ const queryEqu = { equId: props.equId };
+ Object.assign(formValues, queryEqu);
+ }
+
+ return await listEquTrial({
+ pageNum: page.currentPage,
+ pageSize: page.pageSize,
+ ...formValues
+ });
+ }
+ }
+ },
+ rowConfig: {
+ isHover: true,
+ keyField: 'trialId'
+ },
+ sortConfig: {
+ // 杩滅▼鎺掑簭
+ remote: true,
+ // 鏀寔澶氬瓧娈垫帓搴� 榛樿鍏抽棴
+ multiple: true,
+ },
+ id: 'eims-equ-trial-index'
+};
+
+const [BasicTable, tableApi] = useVbenVxeGrid({
+ formOptions,
+ gridOptions,
+ gridEvents: {
+ sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams),
+ },
+});
+
+const [EquTrialDrawer, equTrialDrawerApi] = useVbenDrawer({
+ connectedComponent: equTrialDrawer
+});
+
+const [TrialPreviewDrawer, trialPreviewDrawerApi] = useVbenDrawer({
+ connectedComponent: trialPreviewDrawer
+});
+
+/**
+ * 棰勮
+ * @param record
+ */
+function handlePreview(record: Recordable<any>) {
+ trialPreviewDrawerApi.setData({ record });
+ trialPreviewDrawerApi.open();
+}
+
+onMounted(async () => {
+ await setupEquSelect();
+});
+
+async function setupEquSelect() {
+ // status-0 鍙煡璇㈣瘯鐢ㄨ澶�
+ const params = { status: '0' };
+ const equPageResult = await listEqu({
+ pageNum: 1,
+ pageSize: 1000,
+ ...params
+ });
+ if (!equPageResult || equPageResult.rows.length < 0) {
+ return false;
+ }
+ // 浣跨敤map鏉ヨ窡韪凡缁忛亣鍒扮殑equId锛屼娇鐢╢ilter鏉ヨ繃婊ゆ帀閲嶅鐨勫厓绱犮��
+ const uniqueItems = equPageResult.rows.filter((item, index, self) => index === self.findIndex((tm) => tm.equId === item.equId));
+
+ const options = uniqueItems.map((item) => ({
+ label: item.equName || item.equName,
+ value: item.equId
+ }));
+ // 绛涢��
+ const filterOption = (input: string, option: any) => {
+ return option.label.toLowerCase().includes(input.toLowerCase());
+ };
+
+ const placeholder = options.length > 0 ? '璇烽�夋嫨' : '鏆傛棤璁惧璁板綍';
+ // 鏇存柊selectOptions
+ tableApi.formApi.updateSchema([
+ {
+ componentProps: {
+ options,
+ placeholder,
+ filterOption
+ },
+ dependencies: {
+ show: () => !props.equDetailFlag,
+ triggerFields: ['']
+ },
+ fieldName: 'equId'
+ }
+ ]);
+}
+
+function handleAdd() {
+ // 璁惧璇︽儏椤垫墦寮�鏃� 鍙兘鏂板鎸囧畾璁惧id鏁版嵁
+ if (props.equDetailFlag && props.equId) {
+ equTrialDrawerApi.setData({ equId: props.equId });
+ } else {
+ equTrialDrawerApi.setData({});
+ }
+
+ equTrialDrawerApi.open();
+}
+
+async function handleEdit(record: Recordable<any>) {
+ equTrialDrawerApi.setData({ id: record.trialId });
+ equTrialDrawerApi.open();
+}
+
+async function handleDelete(row: Recordable<any>) {
+ await delEquTrial(row.trialId);
+ await tableApi.query();
+}
+
+function handleMultiDelete() {
+ const rows = tableApi.grid.getCheckboxRecords();
+ const ids = rows.map((row: any) => row.trialId);
+ Modal.confirm({
+ title: '鎻愮ず',
+ okType: 'danger',
+ content: `纭鍒犻櫎閫変腑鐨�${ids.length}鏉¤褰曞悧锛焋,
+ onOk: async () => {
+ await delEquTrial(ids);
+ await tableApi.query();
+ }
+ });
+}
+
+function handleDownloadExcel() {
+ commonDownloadExcel(equTrialExport, '璇曚骇璁板綍', tableApi.formApi.form.values, {
+ fieldMappingTime: formOptions.fieldMappingTime
+ });
+}
+</script>
+
+<template>
+ <Page :auto-content-height="true">
+ <div class="flex h-full gap-[8px]">
+ <BasicTable class="flex-1 overflow-hidden" table-title="璇曚骇鍒楄〃">
+ <template #toolbar-tools>
+ <Space>
+ <a-button v-access:code="['eims:equTrial:export']" @click="handleDownloadExcel">
+ {{ $t('pages.common.export') }}
+ </a-button>
+ <a-button
+ :disabled="!vxeCheckboxChecked(tableApi)"
+ danger
+ type="primary"
+ v-access:code="['eims:equTrial:remove']"
+ @click="handleMultiDelete"
+ >
+ {{ $t('pages.common.delete') }}
+ </a-button>
+ <a-button type="primary" v-access:code="['eims:equTrial: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 v-access:code="['eims:equTrial:edit']" @click.stop="handleEdit(row)">
+ {{ $t('pages.common.edit') }}
+ </ghost-button>
+ <ghost-button class="btn-success" v-access:code="['eims:equTrial:list']" @click.stop="handlePreview(row)">
+ {{ $t('pages.common.preview') }}
+ </ghost-button>
+ <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)">
+ <ghost-button danger v-access:code="['eims:equTrial:remove']" @click.stop="">
+ {{ $t('pages.common.delete') }}
+ </ghost-button>
+ </Popconfirm>
+ </Space>
+ </template>
+ </BasicTable>
+ </div>
+ <EquTrialDrawer @reload="tableApi.query()" />
+ <TrialPreviewDrawer />
+ </Page>
+</template>
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ-trial/trial-preview-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/equ-trial/trial-preview-drawer.vue
new file mode 100644
index 0000000..39bb1f4
--- /dev/null
+++ b/eims-ui/apps/web-antd/src/views/eims/equ-trial/trial-preview-drawer.vue
@@ -0,0 +1,32 @@
+<script setup lang="ts">
+import type { Recordable } from '@vben/types';
+
+import { useVbenDrawer } from '@vben/common-ui';
+
+import { Description, useDescription } from '#/components/description';
+
+import { descSchema } from './data';
+
+const [BasicDrawer, drawerApi] = useVbenDrawer({
+ onOpenChange: handleOpenChange,
+});
+
+const [registerDescription, { setDescProps }] = useDescription({
+ column: 1,
+ schema: descSchema,
+});
+
+function handleOpenChange(open: boolean) {
+ if (!open) {
+ return null;
+ }
+ const { record } = drawerApi.getData() as { record: Recordable<any> };
+ setDescProps({ data: record }, true);
+}
+</script>
+
+<template>
+ <BasicDrawer :footer="false" class="w-[600px]" title="璇曚骇璁板綍鏄庣粏">
+ <Description @register="registerDescription" />
+ </BasicDrawer>
+</template>
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ/data.tsx b/eims-ui/apps/web-antd/src/views/eims/equ/data.tsx
index 1dcafcf..47e65ee 100644
--- a/eims-ui/apps/web-antd/src/views/eims/equ/data.tsx
+++ b/eims-ui/apps/web-antd/src/views/eims/equ/data.tsx
@@ -29,7 +29,7 @@
},
{
component: 'RangePicker',
- fieldName: 'createTime',
+ fieldName: 'deployDate',
label: '浣跨敤鏃ユ湡'
}
];
@@ -47,6 +47,7 @@
{
title: '鐘舵��',
field: 'status',
+ sortable: true,
slots: {
default: ({ row }) => {
const statu = row.status;
@@ -77,12 +78,14 @@
{
title: '璧勪骇缂栧彿',
field: 'assetNo',
+ sortable: true,
minWidth: 100,
fixed: 'left'
},
{
title: '璁惧缂栧彿',
field: 'equCode',
+ sortable: true,
minWidth: 100
},
{
@@ -133,6 +136,7 @@
{
title: '閲囪喘鏃ユ湡',
field: 'purchaseDate',
+ sortable: true,
minWidth: 120
},
{
@@ -158,11 +162,13 @@
{
title: '瀵煎叆鐘舵��',
field: 'importStatus',
+ slots: { default: 'importStatus' },
minWidth: 100
},
{
title: '鐩樼偣鏍囧織',
field: 'inventoryFlag',
+ slots: { default: 'inventoryFlag' },
minWidth: 100
},
{
@@ -185,7 +191,7 @@
fixed: 'right',
slots: { default: 'action' },
title: '鎿嶄綔',
- width: 180
+ width: 200
}
];
@@ -282,8 +288,8 @@
{
component: 'Select',
componentProps: {
- // 閫変腑浜嗗氨鍙兘淇敼 涓嶈兘閲嶇疆涓烘棤璐熻矗浜�
allowClear: true,
+ showSearch: true,
getPopupContainer
},
fieldName: 'respPerson',
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue
index 560c9bc..eafef4a 100644
--- a/eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/equ/equ-drawer.vue
@@ -127,10 +127,15 @@
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 ? '璇烽�夋嫨' : '璇ラ儴闂ㄤ笅鏆傛棤鐢ㄦ埛';
formApi.updateSchema([
{
- componentProps: { options, placeholder },
+ componentProps: { options, placeholder ,filterOption },
fieldName: 'respPerson'
}
]);
diff --git a/eims-ui/apps/web-antd/src/views/eims/equ/index.vue b/eims-ui/apps/web-antd/src/views/eims/equ/index.vue
index 5a5a5ea..71f4108 100644
--- a/eims-ui/apps/web-antd/src/views/eims/equ/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/equ/index.vue
@@ -7,9 +7,9 @@
import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui';
import { getVxePopupContainer } from '@vben/utils';
-import { Dropdown, Menu, MenuItem, Modal, Popconfirm, Space } from 'ant-design-vue';
+import { Modal, Popconfirm, Space } from 'ant-design-vue';
-import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps } from '#/adapter/vxe-table';
+import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table';
import { delEqu, equExport, listEqu } from '#/api/eims/equ';
import { commonDownloadExcel } from '#/utils/file/download';
@@ -76,19 +76,26 @@
isHover: true,
keyField: 'equId'
},
+ sortConfig: {
+ // 杩滅▼鎺掑簭
+ remote: true,
+ // 鏀寔澶氬瓧娈垫帓搴� 榛樿鍏抽棴
+ multiple: true,
+ },
id: 'eims-equ-index'
};
const [BasicTable, tableApi] = useVbenVxeGrid({
formOptions,
- gridOptions
+ gridOptions,
+ gridEvents: {
+ sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams),
+ },
});
const [EquDrawer, equDrawerApi] = useVbenDrawer({
connectedComponent: equDrawer
});
-
-
function handleAdd() {
equDrawerApi.setData({});
@@ -125,7 +132,15 @@
});
}
+function getImportStatus(row: any) {
+ const importStatus = row.importStatus === null || row.importStatus;
+ return importStatus ? '鏈鍏�' : '宸插鍏�';
+}
+function getInventoryFlag(row: any) {
+ const inventoryFlag = row.inventoryFlag === null || row.inventoryFlag;
+ return inventoryFlag ? '鏈洏鐐�' : '宸茬洏鐐�';
+}
const router = useRouter();
function handleDetail(record: Recordable<any>) {
@@ -136,25 +151,14 @@
<template>
<Page :auto-content-height="true">
<div class="flex h-full gap-[8px]">
- <EquTypeTree
- v-model:select-dept-id="selectDeptId"
- class="w-[260px]"
- @reload="() => tableApi.reload()"
- @select="() => tableApi.reload()"
- />
+ <EquTypeTree v-model:select-dept-id="selectDeptId" class="w-[260px]" @reload="() => tableApi.reload()" @select="() => tableApi.reload()" />
<BasicTable class="flex-1 overflow-hidden" table-title="璁惧鍒楄〃">
<template #toolbar-tools>
<Space>
<a-button v-access:code="['eims:equ:export']" @click="handleDownloadExcel">
{{ $t('pages.common.export') }}
</a-button>
- <a-button
- :disabled="!vxeCheckboxChecked(tableApi)"
- danger
- type="primary"
- v-access:code="['eims:equ:remove']"
- @click="handleMultiDelete"
- >
+ <a-button :disabled="!vxeCheckboxChecked(tableApi)" danger type="primary" v-access:code="['eims:equ:remove']" @click="handleMultiDelete">
{{ $t('pages.common.delete') }}
</a-button>
<a-button type="primary" v-access:code="['eims:equ:add']" @click="handleAdd">
@@ -171,25 +175,26 @@
<template #action="{ row }">
<Space>
- <ghost-button v-access:code="['system:role:edit']" @click.stop="handleEdit(row)">
+ <ghost-button v-access:code="['eims:equ:edit']" @click.stop="handleEdit(row)">
{{ $t('pages.common.edit') }}
</ghost-button>
+ <ghost-button v-if="row.menuType !== 'F'" class="btn-success" v-access:code="['eims:equ:list']" @click="handleDetail(row)">
+ {{ $t('pages.common.info') }}
+ </ghost-button>
<Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)">
- <ghost-button danger v-access:code="['system:role:remove']" @click.stop="">
+ <ghost-button danger v-access:code="['eims:equ:remove']" @click.stop="">
{{ $t('pages.common.delete') }}
</ghost-button>
</Popconfirm>
</Space>
- <Dropdown :get-popup-container="getVxePopupContainer" placement="bottomRight">
- <template #overlay>
- <Menu>
- <MenuItem key="1" @click="handleDetail(row)"> 璇︽儏 </MenuItem>
- </Menu>
- </template>
- <a-button size="small" type="link">
- {{ $t('pages.common.more') }}
- </a-button>
- </Dropdown>
+ </template>
+
+ <template #importStatus="{ row }">
+ <span>{{ getImportStatus(row) }}</span>
+ </template>
+
+ <template #inventoryFlag="{ row }">
+ <span>{{ getInventoryFlag(row) }}</span>
</template>
</BasicTable>
</div>
diff --git a/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquService.java b/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquService.java
new file mode 100644
index 0000000..87e10a7
--- /dev/null
+++ b/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquService.java
@@ -0,0 +1,11 @@
+package org.dromara.common.core.service;
+
+public interface EquService {
+ /**
+ * 閫氳繃璁惧ID鏌ヨ璁惧绫诲瀷鍚嶇О
+ *
+ * @param equIds 璁惧ID涓查�楀彿鍒嗛殧
+ * @return 璁惧鍚嶇О涓查�楀彿鍒嗛殧
+ */
+ String selectEquNameByIds(String equIds);
+}
diff --git a/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquTypeService.java b/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquTypeService.java
index 8de0cc3..3dbbdf2 100644
--- a/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquTypeService.java
+++ b/eims/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/EquTypeService.java
@@ -4,8 +4,8 @@
/**
* 閫氳繃璁惧绫诲瀷ID鏌ヨ璁惧绫诲瀷鍚嶇О
*
- * @param equTypeIds 閮ㄩ棬ID涓查�楀彿鍒嗛殧
- * @return 閮ㄩ棬鍚嶇О涓查�楀彿鍒嗛殧
+ * @param equTypeIds 璁惧绫诲瀷ID涓查�楀彿鍒嗛殧
+ * @return 璁惧绫诲瀷鍚嶇О涓查�楀彿鍒嗛殧
*/
String selectEquTypeNameByIds(String equTypeIds);
}
diff --git a/eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java b/eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java
index 64b6804..7a762a9 100644
--- a/eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java
+++ b/eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java
@@ -33,7 +33,12 @@
String OSS_ID_TO_URL = "oss_id_to_url";
/**
- * 璁惧鍚嶇Оid杞悕绉�
+ * 璁惧绫诲瀷鍚嶇Оid杞悕绉�
*/
String EQU_YPE_ID_TO_NAME = "equ_type_id_to_name";
+ /**
+ * 璁惧鍚嶇Оid杞悕绉�
+ */
+ String EQU_ID_TO_NAME = "equ_id_to_name";
+
}
diff --git a/eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/EquNameTranslationImpl.java b/eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/EquNameTranslationImpl.java
new file mode 100644
index 0000000..72d0437
--- /dev/null
+++ b/eims/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/EquNameTranslationImpl.java
@@ -0,0 +1,30 @@
+package org.dromara.common.translation.core.impl;
+
+import lombok.AllArgsConstructor;
+import org.dromara.common.core.service.EquService;
+import org.dromara.common.core.service.EquTypeService;
+import org.dromara.common.translation.annotation.TranslationType;
+import org.dromara.common.translation.constant.TransConstant;
+import org.dromara.common.translation.core.TranslationInterface;
+
+/**
+ * 璁惧缈昏瘧瀹炵幇
+ *
+ * @author zhuguifei
+ */
+@AllArgsConstructor
+@TranslationType(type = TransConstant.EQU_ID_TO_NAME)
+public class EquNameTranslationImpl implements TranslationInterface<String> {
+
+ private final EquService equService;
+
+ @Override
+ public String translation(Object key, String other) {
+ if (key instanceof String ids) {
+ return equService.selectEquNameByIds(ids);
+ } else if (key instanceof Long id) {
+ return equService.selectEquNameByIds(id.toString());
+ }
+ return null;
+ }
+}
diff --git a/eims/ruoyi-common/ruoyi-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/eims/ruoyi-common/ruoyi-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index d3037b9..2db45d8 100644
--- a/eims/ruoyi-common/ruoyi-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/eims/ruoyi-common/ruoyi-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -5,3 +5,4 @@
org.dromara.common.translation.core.impl.UserNameTranslationImpl
org.dromara.common.translation.core.impl.NicknameTranslationImpl
org.dromara.common.translation.core.impl.EquTypeNameTranslationImpl
+org.dromara.common.translation.core.impl.EquNameTranslationImpl
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/SysEquController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquController.java
similarity index 62%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/SysEquController.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquController.java
index 2faa7e8..2b9f0b0 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/SysEquController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquController.java
@@ -2,9 +2,9 @@
import java.util.List;
-import org.dromara.eims.domain.bo.SysEquBo;
-import org.dromara.eims.domain.vo.SysEquVo;
-import org.dromara.eims.service.ISysEquService;
+import org.dromara.eims.domain.bo.EimsEquBo;
+import org.dromara.eims.domain.vo.EimsEquVo;
+import org.dromara.eims.service.IEimsEquService;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
@@ -34,28 +34,28 @@
@RequiredArgsConstructor
@RestController
@RequestMapping("/eims/equ")
-public class SysEquController extends BaseController {
+public class EimsEquController extends BaseController {
- private final ISysEquService sysEquipmentService;
+ private final IEimsEquService eimsEquipmentService;
/**
* 鏌ヨ銆愯澶囧彴璐︺�戝垪琛�
*/
- @SaCheckPermission("system:equipment:list")
+ @SaCheckPermission("eims:equ:list")
@GetMapping("/list")
- public TableDataInfo<SysEquVo> list(SysEquBo bo, PageQuery pageQuery) {
- return sysEquipmentService.queryPageList(bo, pageQuery);
+ public TableDataInfo<EimsEquVo> list(EimsEquBo bo, PageQuery pageQuery) {
+ return eimsEquipmentService.queryPageList(bo, pageQuery);
}
/**
* 瀵煎嚭銆愯澶囧彴璐︺�戝垪琛�
*/
- @SaCheckPermission("system:equipment:export")
+ @SaCheckPermission("eims:equ:export")
@Log(title = "銆愯澶囧彴璐︺��", businessType = BusinessType.EXPORT)
@PostMapping("/export")
- public void export(SysEquBo bo, HttpServletResponse response) {
- List<SysEquVo> list = sysEquipmentService.queryList(bo);
- ExcelUtil.exportExcel(list, "銆愯澶囧彴璐︺��", SysEquVo.class, response);
+ public void export(EimsEquBo bo, HttpServletResponse response) {
+ List<EimsEquVo> list = eimsEquipmentService.queryList(bo);
+ ExcelUtil.exportExcel(list, "銆愯澶囧彴璐︺��", EimsEquVo.class, response);
}
/**
@@ -63,33 +63,33 @@
*
* @param equId 涓婚敭
*/
- @SaCheckPermission("system:equipment:query")
+ @SaCheckPermission("eims:equ:query")
@GetMapping("/{equId}")
- public R<SysEquVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ public R<EimsEquVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
@PathVariable Long equId) {
- return R.ok(sysEquipmentService.queryById(equId));
+ return R.ok(eimsEquipmentService.queryById(equId));
}
/**
* 鏂板銆愯澶囧彴璐︺��
*/
- @SaCheckPermission("system:equipment:add")
+ @SaCheckPermission("eims:equ:add")
@Log(title = "銆愯澶囧彴璐︺��", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
- public R<Void> add(@Validated(AddGroup.class) @RequestBody SysEquBo bo) {
- return toAjax(sysEquipmentService.insertByBo(bo));
+ public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsEquBo bo) {
+ return toAjax(eimsEquipmentService.insertByBo(bo));
}
/**
* 淇敼銆愯澶囧彴璐︺��
*/
- @SaCheckPermission("system:equipment:edit")
+ @SaCheckPermission("eims:equ:edit")
@Log(title = "銆愯澶囧彴璐︺��", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
- public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysEquBo bo) {
- return toAjax(sysEquipmentService.updateByBo(bo));
+ public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsEquBo bo) {
+ return toAjax(eimsEquipmentService.updateByBo(bo));
}
/**
@@ -97,11 +97,11 @@
*
* @param equIds 涓婚敭涓�
*/
- @SaCheckPermission("system:equipment:remove")
+ @SaCheckPermission("eims:equ:remove")
@Log(title = "銆愯澶囧彴璐︺��", businessType = BusinessType.DELETE)
@DeleteMapping("/{equIds}")
public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
@PathVariable Long[] equIds) {
- return toAjax(sysEquipmentService.deleteWithValidByIds(List.of(equIds), true));
+ return toAjax(eimsEquipmentService.deleteWithValidByIds(List.of(equIds), true));
}
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquStatuController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquStatuController.java
new file mode 100644
index 0000000..c2d2441
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquStatuController.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.EimsEquStatuVo;
+import org.dromara.eims.domain.bo.EimsEquStatuBo;
+import org.dromara.eims.service.IEimsEquStatuService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 璁惧鐘舵�佽褰�
+ *
+ * @author zhuguifei
+ * @date 2025-01-14
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/eims/equStatu")
+public class EimsEquStatuController extends BaseController {
+
+ private final IEimsEquStatuService eimsEquStatuService;
+
+ /**
+ * 鏌ヨ璁惧鐘舵�佽褰曞垪琛�
+ */
+ @SaCheckPermission("eims:equStatu:list")
+ @GetMapping("/list")
+ public TableDataInfo<EimsEquStatuVo> list(EimsEquStatuBo bo, PageQuery pageQuery) {
+ return eimsEquStatuService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 瀵煎嚭璁惧鐘舵�佽褰曞垪琛�
+ */
+ @SaCheckPermission("eims:equStatu:export")
+ @Log(title = "璁惧鐘舵�佽褰�", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(EimsEquStatuBo bo, HttpServletResponse response) {
+ List<EimsEquStatuVo> list = eimsEquStatuService.queryList(bo);
+ ExcelUtil.exportExcel(list, "璁惧鐘舵�佽褰�", EimsEquStatuVo.class, response);
+ }
+
+ /**
+ * 鑾峰彇璁惧鐘舵�佽褰曡缁嗕俊鎭�
+ *
+ * @param equStatuId 涓婚敭
+ */
+ @SaCheckPermission("eims:equStatu:query")
+ @GetMapping("/{equStatuId}")
+ public R<EimsEquStatuVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long equStatuId) {
+ return R.ok(eimsEquStatuService.queryById(equStatuId));
+ }
+
+ /**
+ * 鏂板璁惧鐘舵�佽褰�
+ */
+ @SaCheckPermission("eims:equStatu:add")
+ @Log(title = "璁惧鐘舵�佽褰�", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsEquStatuBo bo) {
+ return toAjax(eimsEquStatuService.insertByBo(bo));
+ }
+
+ /**
+ * 淇敼璁惧鐘舵�佽褰�
+ */
+ @SaCheckPermission("eims:equStatu:edit")
+ @Log(title = "璁惧鐘舵�佽褰�", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsEquStatuBo bo) {
+ return toAjax(eimsEquStatuService.updateByBo(bo));
+ }
+
+ /**
+ * 鍒犻櫎璁惧鐘舵�佽褰�
+ *
+ * @param equStatuIds 涓婚敭涓�
+ */
+ @SaCheckPermission("eims:equStatu:remove")
+ @Log(title = "璁惧鐘舵�佽褰�", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{equStatuIds}")
+ public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] equStatuIds) {
+ return toAjax(eimsEquStatuService.deleteWithValidByIds(List.of(equStatuIds), true));
+ }
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquTrialController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquTrialController.java
new file mode 100644
index 0000000..27335e3
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquTrialController.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.dromara.eims.domain.vo.EimsEquTrialVo;
+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.bo.EimsEquTrialBo;
+import org.dromara.eims.service.IEimsEquTrialService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 璁惧璇曚骇璁板綍
+ *
+ * @author zhuguifei
+ * @date 2025-01-09
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/eims/equTrial")
+public class EimsEquTrialController extends BaseController {
+
+ private final IEimsEquTrialService eimsEquTrialService;
+
+ /**
+ * 鏌ヨ璁惧璇曚骇璁板綍鍒楄〃
+ */
+ @SaCheckPermission("eims:equTrial:list")
+ @GetMapping("/list")
+ public TableDataInfo<EimsEquTrialVo> list(EimsEquTrialBo bo, PageQuery pageQuery) {
+ return eimsEquTrialService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 瀵煎嚭璁惧璇曚骇璁板綍鍒楄〃
+ */
+ @SaCheckPermission("eims:equTrial:export")
+ @Log(title = "璁惧璇曚骇璁板綍", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(EimsEquTrialBo bo, HttpServletResponse response) {
+ List<EimsEquTrialVo> list = eimsEquTrialService.queryList(bo);
+ ExcelUtil.exportExcel(list, "璁惧璇曚骇璁板綍", EimsEquTrialVo.class, response);
+ }
+
+ /**
+ * 鑾峰彇璁惧璇曚骇璁板綍璇︾粏淇℃伅
+ *
+ * @param trialId 涓婚敭
+ */
+ @SaCheckPermission("eims:equTrial:query")
+ @GetMapping("/{trialId}")
+ public R<EimsEquTrialVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long trialId) {
+ return R.ok(eimsEquTrialService.queryById(trialId));
+ }
+
+ /**
+ * 鏂板璁惧璇曚骇璁板綍
+ */
+ @SaCheckPermission("eims:equTrial:add")
+ @Log(title = "璁惧璇曚骇璁板綍", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsEquTrialBo bo) {
+ return toAjax(eimsEquTrialService.insertByBo(bo));
+ }
+
+ /**
+ * 淇敼璁惧璇曚骇璁板綍
+ */
+ @SaCheckPermission("eims:equTrial:edit")
+ @Log(title = "璁惧璇曚骇璁板綍", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsEquTrialBo bo) {
+ return toAjax(eimsEquTrialService.updateByBo(bo));
+ }
+
+ /**
+ * 鍒犻櫎璁惧璇曚骇璁板綍
+ *
+ * @param trialIds 涓婚敭涓�
+ */
+ @SaCheckPermission("eims:equTrial:remove")
+ @Log(title = "璁惧璇曚骇璁板綍", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{trialIds}")
+ public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] trialIds) {
+ return toAjax(eimsEquTrialService.deleteWithValidByIds(List.of(trialIds), true));
+ }
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/SysEquTypeController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquTypeController.java
similarity index 68%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/SysEquTypeController.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquTypeController.java
index c0c712f..c3dfe48 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/SysEquTypeController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsEquTypeController.java
@@ -7,20 +7,19 @@
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.eims.domain.vo.EimsEquTypeVo;
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.SysEquTypeVo;
-import org.dromara.eims.domain.bo.SysEquTypeBo;
-import org.dromara.eims.service.ISysEquTypeService;
+import org.dromara.eims.domain.bo.EimsEquTypeBo;
+import org.dromara.eims.service.IEimsEquTypeService;
/**
* 璁惧绫诲瀷
@@ -32,17 +31,17 @@
@RequiredArgsConstructor
@RestController
@RequestMapping("/eims/equType")
-public class SysEquTypeController extends BaseController {
+public class EimsEquTypeController extends BaseController {
- private final ISysEquTypeService sysEquTypeService;
+ private final IEimsEquTypeService eimsEquTypeService;
/**
* 鏌ヨ璁惧绫诲瀷鍒楄〃
*/
@SaCheckPermission("eims:equType:list")
@GetMapping("/list")
- public R<List<SysEquTypeVo>> list(SysEquTypeBo bo) {
- List<SysEquTypeVo> list = sysEquTypeService.queryList(bo);
+ public R<List<EimsEquTypeVo>> list(EimsEquTypeBo bo) {
+ List<EimsEquTypeVo> list = eimsEquTypeService.queryList(bo);
return R.ok(list);
}
@@ -51,8 +50,8 @@
*/
@SaCheckPermission("eims:equType:list")
@GetMapping("/tree")
- public R<List<Tree<Long>>> equTypeTree(SysEquTypeBo bo) {
- return R.ok(sysEquTypeService.selectEquTypeTreeList(bo));
+ public R<List<Tree<Long>>> equTypeTree(EimsEquTypeBo bo) {
+ return R.ok(eimsEquTypeService.selectEquTypeTreeList(bo));
}
/**
@@ -61,9 +60,9 @@
@SaCheckPermission("eims:equType:export")
@Log(title = "璁惧绫诲瀷", businessType = BusinessType.EXPORT)
@PostMapping("/export")
- public void export(SysEquTypeBo bo, HttpServletResponse response) {
- List<SysEquTypeVo> list = sysEquTypeService.queryList(bo);
- ExcelUtil.exportExcel(list, "璁惧绫诲瀷", SysEquTypeVo.class, response);
+ public void export(EimsEquTypeBo bo, HttpServletResponse response) {
+ List<EimsEquTypeVo> list = eimsEquTypeService.queryList(bo);
+ ExcelUtil.exportExcel(list, "璁惧绫诲瀷", EimsEquTypeVo.class, response);
}
/**
@@ -73,9 +72,9 @@
*/
@SaCheckPermission("eims:equType:query")
@GetMapping("/{equTypeId}")
- public R<SysEquTypeVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ public R<EimsEquTypeVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
@PathVariable Long equTypeId) {
- return R.ok(sysEquTypeService.queryById(equTypeId));
+ return R.ok(eimsEquTypeService.queryById(equTypeId));
}
/**
@@ -85,8 +84,8 @@
@Log(title = "璁惧绫诲瀷", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
- public R<Void> add(@Validated(AddGroup.class) @RequestBody SysEquTypeBo bo) {
- return toAjax(sysEquTypeService.insertByBo(bo));
+ public R<Void> add(@Validated(AddGroup.class) @RequestBody EimsEquTypeBo bo) {
+ return toAjax(eimsEquTypeService.insertByBo(bo));
}
/**
@@ -96,8 +95,8 @@
@Log(title = "璁惧绫诲瀷", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
- public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysEquTypeBo bo) {
- return toAjax(sysEquTypeService.updateByBo(bo));
+ public R<Void> edit(@Validated(EditGroup.class) @RequestBody EimsEquTypeBo bo) {
+ return toAjax(eimsEquTypeService.updateByBo(bo));
}
/**
@@ -114,11 +113,11 @@
return R.warn("璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁");
}
for (int i = 0; i < equTypeIds.length; i++) {
- if (sysEquTypeService.hasChildByEquTypeId(equTypeIds[i])) {
+ if (eimsEquTypeService.hasChildByEquTypeId(equTypeIds[i])) {
return R.warn("瀛樺湪瀛愯彍鍗�,涓嶅厑璁稿垹闄�");
}
}
- return toAjax(sysEquTypeService.deleteWithValidByIds(List.of(equTypeIds), true));
+ return toAjax(eimsEquTypeService.deleteWithValidByIds(List.of(equTypeIds), true));
}
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/SysEqu.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEqu.java
similarity index 95%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/SysEqu.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEqu.java
index a78de6c..a73057e 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/SysEqu.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEqu.java
@@ -10,15 +10,15 @@
import java.io.Serial;
/**
- * 銆愯澶囧彴璐︺�戝璞� sys_equ
+ * 銆愯澶囧彴璐︺�戝璞� eims_equ
*
* @author zhuguifei
* @date 2025-01-04
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@TableName("sys_equ")
-public class SysEqu extends BaseEntity {
+@TableName("eims_equ")
+public class EimsEqu extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java
new file mode 100644
index 0000000..9bbd13b
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquStatu.java
@@ -0,0 +1,73 @@
+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_equ_statu
+ *
+ * @author zhuguifei
+ * @date 2025-01-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("eims_equ_statu")
+public class EimsEquStatu extends BaseEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 璁惧鐘舵�佽褰昳d
+ */
+ @TableId(value = "equ_statu_id")
+ private Long equStatuId;
+
+ /**
+ * 璁惧id
+ */
+ private Long equId;
+
+ /**
+ * 鍙樻洿鍓嶇姸鎬�
+ */
+ private String beforeChange;
+
+ /**
+ * 鍙樻洿鍚庣姸鎬�
+ */
+ private String afterChange;
+
+ /**
+ * 鍙樻洿鏃ユ湡
+ */
+ private Date changeDate;
+
+ /**
+ * 鍙樻洿浜�
+ */
+ private Long changeUser;
+
+ /**
+ * 鍙樻洿浜洪儴闂�
+ */
+ private Long userDept;
+
+ /**
+ * 鍙樻洿鎻忚堪
+ */
+ private String changeDesc;
+
+ /**
+ * 鎻忚堪
+ */
+ private String remark;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquTrial.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquTrial.java
new file mode 100644
index 0000000..f566340
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquTrial.java
@@ -0,0 +1,114 @@
+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_equ_trial
+ *
+ * @author zhuguifei
+ * @date 2025-01-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("eims_equ_trial")
+public class EimsEquTrial extends BaseEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 璇曠敤璁板綍id
+ */
+ @TableId(value = "trial_id")
+ private Long trialId;
+
+ /**
+ * 璁惧id
+ */
+ private Long equId;
+
+ /**
+ * 璇曚骇鏁伴噺
+ */
+ private Long trialNum;
+
+ /**
+ * 璇曚骇鏃ユ湡
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date trialDate;
+
+ /**
+ * 鑹搧鏁伴噺
+ */
+ private Long proGoodNum;
+
+ /**
+ * 鑹搧鐜�
+ */
+ private Long proGoodRate;
+
+ /**
+ * 鎿嶄綔浜洪儴闂�
+ */
+ private Long operatorDept;
+
+ /**
+ * 鎿嶄綔浜�(id)
+ */
+ private Long operatorId;
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date startTime;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date endTime;
+
+ /**
+ * 杩愯鏃堕暱
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date runTime;
+
+ /**
+ * 鍋滄満鏃堕暱
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date stopTime;
+
+ /**
+ * 璁″垝杩愯鏃堕暱
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date planRunTime;
+
+ /**
+ * 璋冭瘯灞ュ巻
+ */
+ private String debugHistory;
+
+ /**
+ * 璁惧缁煎悎鏁堢巼
+ */
+ private Long oee;
+
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/SysEquType.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquType.java
similarity index 90%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/SysEquType.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquType.java
index d64b247..01ec24a 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/SysEquType.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/EimsEquType.java
@@ -8,15 +8,15 @@
import java.io.Serial;
/**
- * 璁惧绫诲瀷瀵硅薄 sys_equ_type
+ * 璁惧绫诲瀷瀵硅薄 eims_equ_type
*
* @author zhuguifei
* @date 2025-01-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@TableName("sys_equ_type")
-public class SysEquType extends BaseEntity {
+@TableName("eims_equ_type")
+public class EimsEquType extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/SysEquBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquBo.java
similarity index 88%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/SysEquBo.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquBo.java
index 6659fd3..e77b87a 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/SysEquBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquBo.java
@@ -1,10 +1,8 @@
package org.dromara.eims.domain.bo;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.eims.domain.SysEqu;
+import org.dromara.eims.domain.EimsEqu;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -14,15 +12,15 @@
import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
- * 銆愯澶囧彴璐︺�戜笟鍔″璞� sys_equipment
+ * 銆愯澶囧彴璐︺�戜笟鍔″璞� eims_equ
*
* @author zhuguifei
* @date 2025-01-04
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = SysEqu.class, reverseConvertGenerate = false)
-public class SysEquBo extends BaseEntity {
+@AutoMapper(target = EimsEqu.class, reverseConvertGenerate = false)
+public class EimsEquBo extends BaseEntity {
/**
*
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java
new file mode 100644
index 0000000..2851e41
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquStatuBo.java
@@ -0,0 +1,72 @@
+package org.dromara.eims.domain.bo;
+
+import org.dromara.eims.domain.EimsEquStatu;
+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_equ_statu
+ *
+ * @author zhuguifei
+ * @date 2025-01-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = EimsEquStatu.class, reverseConvertGenerate = false)
+public class EimsEquStatuBo extends BaseEntity {
+
+ /**
+ * 璁惧鐘舵�佽褰昳d
+ */
+ private Long equStatuId;
+
+ /**
+ * 璁惧id
+ */
+ private Long equId;
+
+ /**
+ * 鍙樻洿鍓嶇姸鎬�
+ */
+ private String beforeChange;
+
+ /**
+ * 鍙樻洿鍚庣姸鎬�
+ */
+ private String afterChange;
+
+ /**
+ * 鍙樻洿鏃ユ湡
+ */
+ private Date changeDate;
+
+ /**
+ * 鍙樻洿浜�
+ */
+ private Long changeUser;
+
+ /**
+ * 鍙樻洿浜洪儴闂�
+ */
+ private Long userDept;
+
+ /**
+ * 鍙樻洿鎻忚堪
+ */
+ @NotBlank(message = "鍙樻洿鎻忚堪涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String changeDesc;
+
+ /**
+ * 鎻忚堪
+ */
+ private String remark;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquTrialBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquTrialBo.java
new file mode 100644
index 0000000..6fd5753
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquTrialBo.java
@@ -0,0 +1,112 @@
+package org.dromara.eims.domain.bo;
+
+import org.dromara.eims.domain.EimsEquTrial;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+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;
+
+/**
+ * 璁惧璇曚骇璁板綍涓氬姟瀵硅薄 sys_equ_trial
+ *
+ * @author zhuguifei
+ * @date 2025-01-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = EimsEquTrial.class, reverseConvertGenerate = false)
+public class EimsEquTrialBo extends BaseEntity {
+
+ /**
+ * 璇曠敤璁板綍id
+ */
+ @NotNull(message = "璇曠敤璁板綍id涓嶈兘涓虹┖", groups = { EditGroup.class })
+ private Long trialId;
+
+ /**
+ * 璁惧id
+ */
+ private Long equId;
+
+ /**
+ * 璇曚骇鏁伴噺
+ */
+ private Long trialNum;
+
+ /**
+ * 璇曚骇鏃ユ湡
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date trialDate;
+
+ /**
+ * 鑹搧鏁伴噺
+ */
+ private Long proGoodNum;
+
+ /**
+ * 鑹搧鐜�
+ */
+ private Long proGoodRate;
+
+ /**
+ * 鎿嶄綔浜洪儴闂�
+ */
+ private Long operatorDept;
+
+ /**
+ * 鎿嶄綔浜�(id)
+ */
+ private Long operatorId;
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date startTime;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date endTime;
+
+ /**
+ * 杩愯鏃堕暱
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date runTime;
+
+ /**
+ * 鍋滄満鏃堕暱
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date stopTime;
+
+ /**
+ * 璁″垝杩愯鏃堕暱
+ */
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date planRunTime;
+
+ /**
+ * 璋冭瘯灞ュ巻
+ */
+ private String debugHistory;
+
+ /**
+ * 璁惧缁煎悎鏁堢巼
+ */
+ private Long oee;
+
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/SysEquTypeBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquTypeBo.java
similarity index 76%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/SysEquTypeBo.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquTypeBo.java
index b01b830..89bfc9f 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/SysEquTypeBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsEquTypeBo.java
@@ -1,13 +1,10 @@
package org.dromara.eims.domain.bo;
-import org.dromara.eims.domain.SysEquType;
+import org.dromara.eims.domain.EimsEquType;
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.*;
/**
* 璁惧绫诲瀷涓氬姟瀵硅薄 sys_equ_type
@@ -17,8 +14,8 @@
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = SysEquType.class, reverseConvertGenerate = false)
-public class SysEquTypeBo extends BaseEntity {
+@AutoMapper(target = EimsEquType.class, reverseConvertGenerate = false)
+public class EimsEquTypeBo extends BaseEntity {
/**
* 绫诲瀷id
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java
new file mode 100644
index 0000000..3f5d8c7
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquStatuVo.java
@@ -0,0 +1,99 @@
+package org.dromara.eims.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+import org.dromara.eims.domain.EimsEquStatu;
+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_equ_statu
+ *
+ * @author zhuguifei
+ * @date 2025-01-14
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = EimsEquStatu.class)
+public class EimsEquStatuVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 璁惧鐘舵�佽褰昳d
+ */
+ @ExcelProperty(value = "璁惧鐘舵�佽褰昳d")
+ private Long equStatuId;
+
+ /**
+ * 璁惧id
+ */
+ @ExcelProperty(value = "璁惧id")
+ private Long equId;
+
+ /**
+ * 璁惧鍚嶇О
+ */
+ @Translation(type = TransConstant.EQU_ID_TO_NAME, mapper = "equId")
+ private String equName;
+
+ /**
+ * 鍙樻洿鍓嶇姸鎬�
+ */
+ @ExcelProperty(value = "鍙樻洿鍓嶇姸鎬�")
+ private String beforeChange;
+
+ /**
+ * 鍙樻洿鍚庣姸鎬�
+ */
+ @ExcelProperty(value = "鍙樻洿鍚庣姸鎬�")
+ private String afterChange;
+
+ /**
+ * 鍙樻洿鏃ユ湡
+ */
+ @ExcelProperty(value = "鍙樻洿鏃ユ湡")
+ private Date changeDate;
+
+ /**
+ * 鍙樻洿浜�
+ */
+ private Long changeUser;
+
+ @ExcelProperty(value = "鍙樻洿浜�")
+ @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "changeUser")
+ private String changeUserName;
+
+ /**
+ * 鍙樻洿浜洪儴闂�
+ */
+ @ExcelProperty(value = "鍙樻洿浜洪儴闂�")
+ private Long userDept;
+
+ /**
+ * 鍙樻洿鎻忚堪
+ */
+ @ExcelProperty(value = "鍙樻洿鎻忚堪")
+ private String changeDesc;
+
+ /**
+ * 鎻忚堪
+ */
+ @ExcelProperty(value = "鎻忚堪")
+ private String remark;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquTrialVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquTrialVo.java
new file mode 100644
index 0000000..86c17e7
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquTrialVo.java
@@ -0,0 +1,144 @@
+package org.dromara.eims.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+import org.dromara.eims.domain.EimsEquTrial;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * 璁惧璇曚骇璁板綍瑙嗗浘瀵硅薄 eims_equ_trial
+ *
+ * @author zhuguifei
+ * @date 2025-01-09
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = EimsEquTrial.class)
+public class EimsEquTrialVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 璇曠敤璁板綍id
+ */
+ @ExcelProperty(value = "璇曠敤璁板綍id")
+ private Long trialId;
+
+ /**
+ * 璁惧id
+ */
+ @ExcelProperty(value = "璁惧id")
+ private Long equId;
+ /**
+ * 璁惧鍚嶇О
+ */
+ @Translation(type = TransConstant.EQU_ID_TO_NAME, mapper = "equId")
+ private String equName;
+
+ /**
+ * 璇曚骇鏁伴噺
+ */
+ @ExcelProperty(value = "璇曚骇鏁伴噺")
+ private Long trialNum;
+
+ /**
+ * 璇曚骇鏃ユ湡
+ */
+ @ExcelProperty(value = "璇曚骇鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date trialDate;
+
+ /**
+ * 鑹搧鏁伴噺
+ */
+ @ExcelProperty(value = "鑹搧鏁伴噺")
+ private Long proGoodNum;
+
+ /**
+ * 鑹搧鐜�
+ */
+ @ExcelProperty(value = "鑹搧鐜�")
+ private Long proGoodRate;
+
+ /**
+ * 鎿嶄綔浜洪儴闂�
+ */
+ private Long operatorDept;
+
+ /**
+ * 鎿嶄綔浜�(id)
+ */
+ @ExcelProperty(value = "鎿嶄綔浜�(id)")
+ private Long operatorId;
+ /**
+ * 鎿嶄綔浜�
+ */
+ @ExcelProperty(value = "鎿嶄綔浜�")
+ @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "operatorId")
+ private String operatorName;
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ @ExcelProperty(value = "寮�濮嬫椂闂�")
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date startTime;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @ExcelProperty(value = "缁撴潫鏃堕棿")
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date endTime;
+
+ /**
+ * 杩愯鏃堕暱
+ */
+ @ExcelProperty(value = "杩愯鏃堕暱")
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date runTime;
+
+ /**
+ * 鍋滄満鏃堕暱
+ */
+ @ExcelProperty(value = "鍋滄満鏃堕暱")
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date stopTime;
+
+ /**
+ * 璁″垝杩愯鏃堕暱
+ */
+ @ExcelProperty(value = "璁″垝杩愯鏃堕暱")
+ @JsonFormat(pattern = "HH:mm:ss")
+ private Date planRunTime;
+
+ /**
+ * 璋冭瘯灞ュ巻
+ */
+ @ExcelProperty(value = "璋冭瘯灞ュ巻")
+ private String debugHistory;
+
+ /**
+ * 璁惧缁煎悎鏁堢巼
+ */
+ @ExcelProperty(value = "璁惧缁煎悎鏁堢巼")
+ private Long oee;
+
+ /**
+ * 澶囨敞
+ */
+ @ExcelProperty(value = "澶囨敞")
+ private String remark;
+
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/SysEquTypeVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquTypeVo.java
similarity index 90%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/SysEquTypeVo.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquTypeVo.java
index 840eede..7a3e36e 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/SysEquTypeVo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquTypeVo.java
@@ -1,6 +1,6 @@
package org.dromara.eims.domain.vo;
-import org.dromara.eims.domain.SysEquType;
+import org.dromara.eims.domain.EimsEquType;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
@@ -10,7 +10,6 @@
import java.io.Serial;
import java.io.Serializable;
-import java.util.Date;
import java.util.List;
@@ -22,8 +21,8 @@
*/
@Data
@ExcelIgnoreUnannotated
-@AutoMapper(target = SysEquType.class)
-public class SysEquTypeVo implements Serializable {
+@AutoMapper(target = EimsEquType.class)
+public class EimsEquTypeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@@ -84,7 +83,7 @@
@ExcelProperty(value = "澶囨敞")
private String remark;
- private List<SysEquTypeVo> children;
+ private List<EimsEquTypeVo> children;
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/SysEquVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquVo.java
similarity index 94%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/SysEquVo.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquVo.java
index 5426e7d..5ba8cbb 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/SysEquVo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsEquVo.java
@@ -3,11 +3,10 @@
import java.util.Date;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
-import org.dromara.eims.domain.SysEqu;
+import org.dromara.eims.domain.EimsEqu;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
@@ -18,15 +17,15 @@
/**
- * 銆愯澶囧彴璐︺�戣鍥惧璞� sys_equipment
+ * 銆愯澶囧彴璐︺�戣鍥惧璞� eims_equ
*
* @author zhuguifei
* @date 2025-01-04
*/
@Data
@ExcelIgnoreUnannotated
-@AutoMapper(target = SysEqu.class)
-public class SysEquVo implements Serializable {
+@AutoMapper(target = EimsEqu.class)
+public class EimsEquVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquMapper.java
new file mode 100644
index 0000000..9cde455
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.eims.mapper;
+
+import org.dromara.eims.domain.EimsEqu;
+import org.dromara.eims.domain.vo.EimsEquVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 銆愯澶囧彴璐︺�慚apper鎺ュ彛
+ *
+ * @author zhuguifei
+ * @date 2025-01-04
+ */
+public interface EimsEquMapper extends BaseMapperPlus<EimsEqu, EimsEquVo> {
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java
new file mode 100644
index 0000000..6f8ef36
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquStatuMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.eims.mapper;
+
+import org.dromara.eims.domain.EimsEquStatu;
+import org.dromara.eims.domain.vo.EimsEquStatuVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 璁惧鐘舵�佽褰昅apper鎺ュ彛
+ *
+ * @author zhuguifei
+ * @date 2025-01-14
+ */
+public interface EimsEquStatuMapper extends BaseMapperPlus<EimsEquStatu, EimsEquStatuVo> {
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquTrialMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquTrialMapper.java
new file mode 100644
index 0000000..9688873
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquTrialMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.eims.mapper;
+
+import org.dromara.eims.domain.EimsEquTrial;
+import org.dromara.eims.domain.vo.EimsEquTrialVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 璁惧璇曚骇璁板綍Mapper鎺ュ彛
+ *
+ * @author zhuguifei
+ * @date 2025-01-09
+ */
+public interface EimsEquTrialMapper extends BaseMapperPlus<EimsEquTrial, EimsEquTrialVo> {
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquTypeMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquTypeMapper.java
new file mode 100644
index 0000000..6ef34dd
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsEquTypeMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.eims.mapper;
+
+import org.dromara.eims.domain.EimsEquType;
+import org.dromara.eims.domain.vo.EimsEquTypeVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 璁惧绫诲瀷Mapper鎺ュ彛
+ *
+ * @author zhuguifei
+ * @date 2025-01-06
+ */
+public interface EimsEquTypeMapper extends BaseMapperPlus<EimsEquType, EimsEquTypeVo> {
+
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/SysEquMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/SysEquMapper.java
deleted file mode 100644
index 1371909..0000000
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/SysEquMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.dromara.eims.mapper;
-
-import org.dromara.eims.domain.SysEqu;
-import org.dromara.eims.domain.vo.SysEquVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-/**
- * 銆愯澶囧彴璐︺�慚apper鎺ュ彛
- *
- * @author zhuguifei
- * @date 2025-01-04
- */
-public interface SysEquMapper extends BaseMapperPlus<SysEqu, SysEquVo> {
-
-}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/SysEquTypeMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/SysEquTypeMapper.java
deleted file mode 100644
index cbf20e8..0000000
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/SysEquTypeMapper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.dromara.eims.mapper;
-
-import org.dromara.eims.domain.SysEquType;
-import org.dromara.eims.domain.vo.SysEquTypeVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-
-/**
- * 璁惧绫诲瀷Mapper鎺ュ彛
- *
- * @author zhuguifei
- * @date 2025-01-06
- */
-public interface SysEquTypeMapper extends BaseMapperPlus<SysEquType, SysEquTypeVo> {
-
-}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/ISysEquService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquService.java
similarity index 78%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/ISysEquService.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquService.java
index d2ab9bb..6d5da2a 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/ISysEquService.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquService.java
@@ -1,8 +1,8 @@
package org.dromara.eims.service;
-import org.dromara.eims.domain.bo.SysEquBo;
-import org.dromara.eims.domain.vo.SysEquVo;
+import org.dromara.eims.domain.bo.EimsEquBo;
+import org.dromara.eims.domain.vo.EimsEquVo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -15,7 +15,7 @@
* @author zhuguifei
* @date 2025-01-04
*/
-public interface ISysEquService {
+public interface IEimsEquService {
/**
* 鏌ヨ銆愯澶囧彴璐︺��
@@ -23,7 +23,7 @@
* @param equId 涓婚敭
* @return 銆愯澶囧彴璐︺��
*/
- SysEquVo queryById(Long equId);
+ EimsEquVo queryById(Long equId);
/**
* 鍒嗛〉鏌ヨ銆愯澶囧彴璐︺�戝垪琛�
@@ -32,7 +32,7 @@
* @param pageQuery 鍒嗛〉鍙傛暟
* @return 銆愯澶囧彴璐︺�戝垎椤靛垪琛�
*/
- TableDataInfo<SysEquVo> queryPageList(SysEquBo bo, PageQuery pageQuery);
+ TableDataInfo<EimsEquVo> queryPageList(EimsEquBo bo, PageQuery pageQuery);
/**
* 鏌ヨ绗﹀悎鏉′欢鐨勩�愯澶囧彴璐︺�戝垪琛�
@@ -40,7 +40,7 @@
* @param bo 鏌ヨ鏉′欢
* @return 銆愯澶囧彴璐︺�戝垪琛�
*/
- List<SysEquVo> queryList(SysEquBo bo);
+ List<EimsEquVo> queryList(EimsEquBo bo);
/**
* 鏂板銆愯澶囧彴璐︺��
@@ -48,7 +48,7 @@
* @param bo 銆愯澶囧彴璐︺��
* @return 鏄惁鏂板鎴愬姛
*/
- Boolean insertByBo(SysEquBo bo);
+ Boolean insertByBo(EimsEquBo bo);
/**
* 淇敼銆愯澶囧彴璐︺��
@@ -56,7 +56,7 @@
* @param bo 銆愯澶囧彴璐︺��
* @return 鏄惁淇敼鎴愬姛
*/
- Boolean updateByBo(SysEquBo bo);
+ Boolean updateByBo(EimsEquBo bo);
/**
* 鏍¢獙骞舵壒閲忓垹闄ゃ�愯澶囧彴璐︺�戜俊鎭�
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquStatuService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquStatuService.java
new file mode 100644
index 0000000..86160fa
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquStatuService.java
@@ -0,0 +1,68 @@
+package org.dromara.eims.service;
+
+import org.dromara.eims.domain.vo.EimsEquStatuVo;
+import org.dromara.eims.domain.bo.EimsEquStatuBo;
+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-01-14
+ */
+public interface IEimsEquStatuService {
+
+ /**
+ * 鏌ヨ璁惧鐘舵�佽褰�
+ *
+ * @param equStatuId 涓婚敭
+ * @return 璁惧鐘舵�佽褰�
+ */
+ EimsEquStatuVo queryById(Long equStatuId);
+
+ /**
+ * 鍒嗛〉鏌ヨ璁惧鐘舵�佽褰曞垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @param pageQuery 鍒嗛〉鍙傛暟
+ * @return 璁惧鐘舵�佽褰曞垎椤靛垪琛�
+ */
+ TableDataInfo<EimsEquStatuVo> queryPageList(EimsEquStatuBo bo, PageQuery pageQuery);
+
+ /**
+ * 鏌ヨ绗﹀悎鏉′欢鐨勮澶囩姸鎬佽褰曞垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @return 璁惧鐘舵�佽褰曞垪琛�
+ */
+ List<EimsEquStatuVo> queryList(EimsEquStatuBo bo);
+
+ /**
+ * 鏂板璁惧鐘舵�佽褰�
+ *
+ * @param bo 璁惧鐘舵�佽褰�
+ * @return 鏄惁鏂板鎴愬姛
+ */
+ Boolean insertByBo(EimsEquStatuBo bo);
+
+ /**
+ * 淇敼璁惧鐘舵�佽褰�
+ *
+ * @param bo 璁惧鐘舵�佽褰�
+ * @return 鏄惁淇敼鎴愬姛
+ */
+ Boolean updateByBo(EimsEquStatuBo 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/IEimsEquTrialService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquTrialService.java
new file mode 100644
index 0000000..3a2592e
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquTrialService.java
@@ -0,0 +1,68 @@
+package org.dromara.eims.service;
+
+import org.dromara.eims.domain.vo.EimsEquTrialVo;
+import org.dromara.eims.domain.bo.EimsEquTrialBo;
+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-01-09
+ */
+public interface IEimsEquTrialService {
+
+ /**
+ * 鏌ヨ璁惧璇曚骇璁板綍
+ *
+ * @param trialId 涓婚敭
+ * @return 璁惧璇曚骇璁板綍
+ */
+ EimsEquTrialVo queryById(Long trialId);
+
+ /**
+ * 鍒嗛〉鏌ヨ璁惧璇曚骇璁板綍鍒楄〃
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @param pageQuery 鍒嗛〉鍙傛暟
+ * @return 璁惧璇曚骇璁板綍鍒嗛〉鍒楄〃
+ */
+ TableDataInfo<EimsEquTrialVo> queryPageList(EimsEquTrialBo bo, PageQuery pageQuery);
+
+ /**
+ * 鏌ヨ绗﹀悎鏉′欢鐨勮澶囪瘯浜ц褰曞垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @return 璁惧璇曚骇璁板綍鍒楄〃
+ */
+ List<EimsEquTrialVo> queryList(EimsEquTrialBo bo);
+
+ /**
+ * 鏂板璁惧璇曚骇璁板綍
+ *
+ * @param bo 璁惧璇曚骇璁板綍
+ * @return 鏄惁鏂板鎴愬姛
+ */
+ Boolean insertByBo(EimsEquTrialBo bo);
+
+ /**
+ * 淇敼璁惧璇曚骇璁板綍
+ *
+ * @param bo 璁惧璇曚骇璁板綍
+ * @return 鏄惁淇敼鎴愬姛
+ */
+ Boolean updateByBo(EimsEquTrialBo 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/ISysEquTypeService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquTypeService.java
similarity index 76%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/ISysEquTypeService.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquTypeService.java
index c91d35d..846d837 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/ISysEquTypeService.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsEquTypeService.java
@@ -1,8 +1,8 @@
package org.dromara.eims.service;
import cn.hutool.core.lang.tree.Tree;
-import org.dromara.eims.domain.vo.SysEquTypeVo;
-import org.dromara.eims.domain.bo.SysEquTypeBo;
+import org.dromara.eims.domain.bo.EimsEquTypeBo;
+import org.dromara.eims.domain.vo.EimsEquTypeVo;
import java.util.Collection;
import java.util.List;
@@ -13,7 +13,7 @@
* @author zhuguifei
* @date 2025-01-06
*/
-public interface ISysEquTypeService {
+public interface IEimsEquTypeService {
/**
* 鏌ヨ璁惧绫诲瀷
@@ -21,7 +21,7 @@
* @param equTypeId 涓婚敭
* @return 璁惧绫诲瀷
*/
- SysEquTypeVo queryById(Long equTypeId);
+ EimsEquTypeVo queryById(Long equTypeId);
/**
@@ -30,7 +30,7 @@
* @param bo 鏌ヨ鏉′欢
* @return 璁惧绫诲瀷鍒楄〃
*/
- List<SysEquTypeVo> queryList(SysEquTypeBo bo);
+ List<EimsEquTypeVo> queryList(EimsEquTypeBo bo);
/**
* 鏂板璁惧绫诲瀷
@@ -38,7 +38,7 @@
* @param bo 璁惧绫诲瀷
* @return 鏄惁鏂板鎴愬姛
*/
- Boolean insertByBo(SysEquTypeBo bo);
+ Boolean insertByBo(EimsEquTypeBo bo);
/**
* 淇敼璁惧绫诲瀷
@@ -46,7 +46,7 @@
* @param bo 璁惧绫诲瀷
* @return 鏄惁淇敼鎴愬姛
*/
- Boolean updateByBo(SysEquTypeBo bo);
+ Boolean updateByBo(EimsEquTypeBo bo);
/**
* 鏍¢獙骞舵壒閲忓垹闄よ澶囩被鍨嬩俊鎭�
@@ -70,6 +70,6 @@
* @param bo
* @return 鏍戝垪琛�
*/
- List<Tree<Long>> selectEquTypeTreeList(SysEquTypeBo bo);
+ List<Tree<Long>> selectEquTypeTreeList(EimsEquTypeBo bo);
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java
new file mode 100644
index 0000000..5ddfc59
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java
@@ -0,0 +1,206 @@
+package org.dromara.eims.service.impl;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.dromara.common.core.service.EquService;
+import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.eims.domain.EimsEqu;
+import org.dromara.eims.domain.EimsEquType;
+import org.dromara.eims.domain.bo.EimsEquBo;
+import org.dromara.eims.domain.vo.EimsEquTypeVo;
+import org.dromara.eims.domain.vo.EimsEquVo;
+import org.dromara.eims.mapper.EimsEquMapper;
+import org.dromara.eims.mapper.EimsEquTypeMapper;
+import org.dromara.eims.service.IEimsEquService;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+/**
+ * 銆愯澶囧彴璐︺�慡ervice涓氬姟灞傚鐞�
+ *
+ * @author zhuguifei
+ * @date 2025-01-04
+ */
+@RequiredArgsConstructor
+@Service
+public class EimsEquServiceImpl implements IEimsEquService, EquService {
+
+ private final EimsEquMapper baseMapper;
+ private final EimsEquTypeMapper equTypeMapper;
+
+ /**
+ * 鏌ヨ銆愯澶囧彴璐︺��
+ *
+ * @param equId 涓婚敭
+ * @return 銆愯澶囧彴璐︺��
+ */
+ @Override
+ public EimsEquVo queryById(Long equId){
+ return baseMapper.selectVoById(equId);
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ銆愯澶囧彴璐︺�戝垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @param pageQuery 鍒嗛〉鍙傛暟
+ * @return 銆愯澶囧彴璐︺�戝垎椤靛垪琛�
+ */
+ @Override
+ public TableDataInfo<EimsEquVo> queryPageList(EimsEquBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper<EimsEqu> lqw = buildQueryWrapper(bo);
+ Page<EimsEquVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 鏌ヨ绗﹀悎鏉′欢鐨勩�愯澶囧彴璐︺�戝垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @return 銆愯澶囧彴璐︺�戝垪琛�
+ */
+ @Override
+ public List<EimsEquVo> queryList(EimsEquBo bo) {
+ LambdaQueryWrapper<EimsEqu> lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper<EimsEqu> buildQueryWrapper(EimsEquBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<EimsEqu> lqw = Wrappers.lambdaQuery();
+ lqw.like(StringUtils.isNotBlank(bo.getAssetNo()), EimsEqu::getAssetNo, bo.getAssetNo());
+ Long equTypeId = bo.getEquTypeId();
+ /**
+ * equTypeId = 0 鏃舵煡璇㈡墍鏈夎澶囷紙榛樿鏍圭洰褰昳d涓�0锛岃瑙丼ysEquTypeServiceImpl涓璼electEquTypeTreeList锛�
+ * equTypeId 涓哄叾浠栧�兼椂鍙煡褰撳墠璁惧绫诲瀷id鍜屽悗浠h澶囩被鍨媔d
+ */
+ if (equTypeId != null && equTypeId > 0) {
+ List<Long> allDescendantIds = getAllDescendantIds(equTypeId);
+ lqw.in(EimsEqu::getEquTypeId,allDescendantIds);
+ }
+
+ lqw.like(StringUtils.isNotBlank(bo.getEquName()), EimsEqu::getEquName, bo.getEquName());
+ lqw.eq(StringUtils.isNotBlank(bo.getModelNo()), EimsEqu::getModelNo, bo.getModelNo());
+ lqw.eq(StringUtils.isNotBlank(bo.getMadeIn()), EimsEqu::getMadeIn, bo.getMadeIn());
+ lqw.eq(bo.getRatedPower() != null, EimsEqu::getRatedPower, bo.getRatedPower());
+ lqw.eq(StringUtils.isNotBlank(bo.getPlateInfo()), EimsEqu::getPlateInfo, bo.getPlateInfo());
+ lqw.eq(bo.getPurchaseDate() != null, EimsEqu::getPurchaseDate, bo.getPurchaseDate());
+ lqw.eq(bo.getStatus() != null, EimsEqu::getStatus, bo.getStatus());
+ lqw.eq(StringUtils.isNotBlank(bo.getLocation()), EimsEqu::getLocation, bo.getLocation());
+ lqw.eq(bo.getDeptUsed() != null, EimsEqu::getDeptUsed, bo.getDeptUsed());
+ lqw.eq(bo.getRespPerson() != null, EimsEqu::getRespPerson, bo.getRespPerson());
+ lqw.eq(StringUtils.isNotBlank(bo.getContactPhone()), EimsEqu::getContactPhone, bo.getContactPhone());
+ lqw.eq(bo.getDeployDate() != null, EimsEqu::getDeployDate, bo.getDeployDate());
+ lqw.eq(bo.getTrialDate() != null, EimsEqu::getTrialDate, bo.getTrialDate());
+ lqw.eq(bo.getPlanAcceptDate() != null, EimsEqu::getPlanAcceptDate, bo.getPlanAcceptDate());
+ lqw.eq(bo.getActualAcceptDate() != null, EimsEqu::getActualAcceptDate, bo.getActualAcceptDate());
+ lqw.eq(bo.getImportStatus() != null, EimsEqu::getImportStatus, bo.getImportStatus());
+ lqw.eq(StringUtils.isNotBlank(bo.getEquCode()), EimsEqu::getEquCode, bo.getEquCode());
+ lqw.eq(bo.getInventoryFlag() != null, EimsEqu::getInventoryFlag, bo.getInventoryFlag());
+ lqw.eq(bo.getInventoryDate() != null, EimsEqu::getInventoryDate, bo.getInventoryDate());
+ lqw.eq(bo.getServiceLife() != null, EimsEqu::getServiceLife, bo.getServiceLife());
+ lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
+ EimsEqu::getDeployDate, params.get("beginTime"), params.get("endTime"));
+ return lqw;
+ }
+
+ /**
+ * 鏍规嵁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<EimsEquType> equTypeWrapper = new QueryWrapper<>();
+ equTypeWrapper.lambda().eq(EimsEquType::getParentId, currentId);
+
+ List<EimsEquTypeVo> children = equTypeMapper.selectVoList(equTypeWrapper);
+ if (children != null && !children.isEmpty()) {
+ for (EimsEquTypeVo child : children) {
+ Long childId = child.getEquTypeId();
+ collector.add(childId);
+ collectDescendants(childId, collector);
+ }
+ }
+ }
+ /**
+ * 鏂板銆愯澶囧彴璐︺��
+ *
+ * @param bo 銆愯澶囧彴璐︺��
+ * @return 鏄惁鏂板鎴愬姛
+ */
+ @Override
+ public Boolean insertByBo(EimsEquBo bo) {
+ EimsEqu add = MapstructUtils.convert(bo, EimsEqu.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setEquId(add.getEquId());
+ }
+ return flag;
+ }
+
+ /**
+ * 淇敼銆愯澶囧彴璐︺��
+ *
+ * @param bo 銆愯澶囧彴璐︺��
+ * @return 鏄惁淇敼鎴愬姛
+ */
+ @Override
+ public Boolean updateByBo(EimsEquBo bo) {
+ EimsEqu update = MapstructUtils.convert(bo, EimsEqu.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ */
+ private void validEntityBeforeSave(EimsEqu entity){
+ //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+ }
+
+ /**
+ * 鏍¢獙骞舵壒閲忓垹闄ゃ�愯澶囧彴璐︺�戜俊鎭�
+ *
+ * @param ids 寰呭垹闄ょ殑涓婚敭闆嗗悎
+ * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠�
+ * @return 鏄惁鍒犻櫎鎴愬姛
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+ if(isValid){
+ //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+ }
+ return baseMapper.deleteByIds(ids) > 0;
+ }
+
+ @Override
+ public String selectEquNameByIds(String equIds) {
+ List<String> list = new ArrayList<>();
+ for (Long id : StringUtils.splitTo(equIds, Convert::toLong)) {
+ EimsEquVo vo = SpringUtils.getAopProxy(this).queryById(id);
+ if (ObjectUtil.isNotNull(vo)) {
+ list.add(vo.getEquName());
+ }
+ }
+ return String.join(StringUtils.SEPARATOR, list);
+ }
+}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java
new file mode 100644
index 0000000..160f7dd
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquStatuServiceImpl.java
@@ -0,0 +1,135 @@
+package org.dromara.eims.service.impl;
+
+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.EimsEqu;
+import org.springframework.stereotype.Service;
+import org.dromara.eims.domain.bo.EimsEquStatuBo;
+import org.dromara.eims.domain.vo.EimsEquStatuVo;
+import org.dromara.eims.domain.EimsEquStatu;
+import org.dromara.eims.mapper.EimsEquStatuMapper;
+import org.dromara.eims.service.IEimsEquStatuService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 璁惧鐘舵�佽褰昐ervice涓氬姟灞傚鐞�
+ *
+ * @author zhuguifei
+ * @date 2025-01-14
+ */
+@RequiredArgsConstructor
+@Service
+public class EimsEquStatuServiceImpl implements IEimsEquStatuService {
+
+ private final EimsEquStatuMapper baseMapper;
+
+ /**
+ * 鏌ヨ璁惧鐘舵�佽褰�
+ *
+ * @param equStatuId 涓婚敭
+ * @return 璁惧鐘舵�佽褰�
+ */
+ @Override
+ public EimsEquStatuVo queryById(Long equStatuId){
+ return baseMapper.selectVoById(equStatuId);
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ璁惧鐘舵�佽褰曞垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @param pageQuery 鍒嗛〉鍙傛暟
+ * @return 璁惧鐘舵�佽褰曞垎椤靛垪琛�
+ */
+ @Override
+ public TableDataInfo<EimsEquStatuVo> queryPageList(EimsEquStatuBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper<EimsEquStatu> lqw = buildQueryWrapper(bo);
+ Page<EimsEquStatuVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 鏌ヨ绗﹀悎鏉′欢鐨勮澶囩姸鎬佽褰曞垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @return 璁惧鐘舵�佽褰曞垪琛�
+ */
+ @Override
+ public List<EimsEquStatuVo> queryList(EimsEquStatuBo bo) {
+ LambdaQueryWrapper<EimsEquStatu> lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper<EimsEquStatu> buildQueryWrapper(EimsEquStatuBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<EimsEquStatu> lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getEquId() != null, EimsEquStatu::getEquId, bo.getEquId());
+ lqw.eq(StringUtils.isNotBlank(bo.getBeforeChange()), EimsEquStatu::getBeforeChange, bo.getBeforeChange());
+ lqw.eq(StringUtils.isNotBlank(bo.getAfterChange()), EimsEquStatu::getAfterChange, bo.getAfterChange());
+ lqw.eq(bo.getChangeUser() != null, EimsEquStatu::getChangeUser, bo.getChangeUser());
+ lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
+ EimsEquStatu::getChangeDate, params.get("beginTime"), params.get("endTime"));
+ return lqw;
+ }
+
+ /**
+ * 鏂板璁惧鐘舵�佽褰�
+ *
+ * @param bo 璁惧鐘舵�佽褰�
+ * @return 鏄惁鏂板鎴愬姛
+ */
+ @Override
+ public Boolean insertByBo(EimsEquStatuBo bo) {
+ EimsEquStatu add = MapstructUtils.convert(bo, EimsEquStatu.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setEquStatuId(add.getEquStatuId());
+ }
+ return flag;
+ }
+
+ /**
+ * 淇敼璁惧鐘舵�佽褰�
+ *
+ * @param bo 璁惧鐘舵�佽褰�
+ * @return 鏄惁淇敼鎴愬姛
+ */
+ @Override
+ public Boolean updateByBo(EimsEquStatuBo bo) {
+ EimsEquStatu update = MapstructUtils.convert(bo, EimsEquStatu.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ */
+ private void validEntityBeforeSave(EimsEquStatu 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/EimsEquTrialServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquTrialServiceImpl.java
new file mode 100644
index 0000000..0ff5394
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquTrialServiceImpl.java
@@ -0,0 +1,143 @@
+package org.dromara.eims.service.impl;
+
+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.EimsEquTrial;
+import org.dromara.eims.domain.bo.EimsEquTrialBo;
+import org.springframework.stereotype.Service;
+import org.dromara.eims.domain.vo.EimsEquTrialVo;
+import org.dromara.eims.mapper.EimsEquTrialMapper;
+import org.dromara.eims.service.IEimsEquTrialService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 璁惧璇曚骇璁板綍Service涓氬姟灞傚鐞�
+ *
+ * @author zhuguifei
+ * @date 2025-01-09
+ */
+@RequiredArgsConstructor
+@Service
+public class EimsEquTrialServiceImpl implements IEimsEquTrialService {
+
+ private final EimsEquTrialMapper baseMapper;
+
+ /**
+ * 鏌ヨ璁惧璇曚骇璁板綍
+ *
+ * @param trialId 涓婚敭
+ * @return 璁惧璇曚骇璁板綍
+ */
+ @Override
+ public EimsEquTrialVo queryById(Long trialId){
+ return baseMapper.selectVoById(trialId);
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ璁惧璇曚骇璁板綍鍒楄〃
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @param pageQuery 鍒嗛〉鍙傛暟
+ * @return 璁惧璇曚骇璁板綍鍒嗛〉鍒楄〃
+ */
+ @Override
+ public TableDataInfo<EimsEquTrialVo> queryPageList(EimsEquTrialBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper<EimsEquTrial> lqw = buildQueryWrapper(bo);
+ Page<EimsEquTrialVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 鏌ヨ绗﹀悎鏉′欢鐨勮澶囪瘯浜ц褰曞垪琛�
+ *
+ * @param bo 鏌ヨ鏉′欢
+ * @return 璁惧璇曚骇璁板綍鍒楄〃
+ */
+ @Override
+ public List<EimsEquTrialVo> queryList(EimsEquTrialBo bo) {
+ LambdaQueryWrapper<EimsEquTrial> lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper<EimsEquTrial> buildQueryWrapper(EimsEquTrialBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<EimsEquTrial> lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getEquId() != null, EimsEquTrial::getEquId, bo.getEquId());
+ lqw.eq(bo.getTrialNum() != null, EimsEquTrial::getTrialNum, bo.getTrialNum());
+ lqw.eq(bo.getTrialDate() != null, EimsEquTrial::getTrialDate, bo.getTrialDate());
+ lqw.eq(bo.getProGoodNum() != null, EimsEquTrial::getProGoodNum, bo.getProGoodNum());
+ lqw.eq(bo.getProGoodRate() != null, EimsEquTrial::getProGoodRate, bo.getProGoodRate());
+ lqw.eq(bo.getOperatorId() != null, EimsEquTrial::getOperatorId, bo.getOperatorId());
+ lqw.eq(bo.getStartTime() != null, EimsEquTrial::getStartTime, bo.getStartTime());
+ lqw.eq(bo.getEndTime() != null, EimsEquTrial::getEndTime, bo.getEndTime());
+ lqw.eq(bo.getRunTime() != null, EimsEquTrial::getRunTime, bo.getRunTime());
+ lqw.eq(bo.getStopTime() != null, EimsEquTrial::getStopTime, bo.getStopTime());
+ lqw.eq(bo.getPlanRunTime() != null, EimsEquTrial::getPlanRunTime, bo.getPlanRunTime());
+ lqw.eq(StringUtils.isNotBlank(bo.getDebugHistory()), EimsEquTrial::getDebugHistory, bo.getDebugHistory());
+ lqw.eq(bo.getOee() != null, EimsEquTrial::getOee, bo.getOee());
+ lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
+ EimsEquTrial::getTrialDate, params.get("beginTime"), params.get("endTime"));
+ return lqw;
+ }
+
+ /**
+ * 鏂板璁惧璇曚骇璁板綍
+ *
+ * @param bo 璁惧璇曚骇璁板綍
+ * @return 鏄惁鏂板鎴愬姛
+ */
+ @Override
+ public Boolean insertByBo(EimsEquTrialBo bo) {
+ EimsEquTrial add = MapstructUtils.convert(bo, EimsEquTrial.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setTrialId(add.getTrialId());
+ }
+ return flag;
+ }
+
+ /**
+ * 淇敼璁惧璇曚骇璁板綍
+ *
+ * @param bo 璁惧璇曚骇璁板綍
+ * @return 鏄惁淇敼鎴愬姛
+ */
+ @Override
+ public Boolean updateByBo(EimsEquTrialBo bo) {
+ EimsEquTrial update = MapstructUtils.convert(bo, EimsEquTrial.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ */
+ private void validEntityBeforeSave(EimsEquTrial 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/SysEquTypeServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquTypeServiceImpl.java
similarity index 66%
rename from eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/SysEquTypeServiceImpl.java
rename to eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquTypeServiceImpl.java
index 1bb36ab..13920e5 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/SysEquTypeServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquTypeServiceImpl.java
@@ -13,12 +13,12 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.TreeBuildUtils;
+import org.dromara.eims.domain.EimsEquType;
+import org.dromara.eims.domain.bo.EimsEquTypeBo;
+import org.dromara.eims.domain.vo.EimsEquTypeVo;
import org.springframework.stereotype.Service;
-import org.dromara.eims.domain.bo.SysEquTypeBo;
-import org.dromara.eims.domain.vo.SysEquTypeVo;
-import org.dromara.eims.domain.SysEquType;
-import org.dromara.eims.mapper.SysEquTypeMapper;
-import org.dromara.eims.service.ISysEquTypeService;
+import org.dromara.eims.mapper.EimsEquTypeMapper;
+import org.dromara.eims.service.IEimsEquTypeService;
import java.util.ArrayList;
import java.util.List;
@@ -33,9 +33,9 @@
*/
@RequiredArgsConstructor
@Service
-public class SysEquTypeServiceImpl implements ISysEquTypeService, EquTypeService {
+public class EimsEquTypeServiceImpl implements IEimsEquTypeService, EquTypeService {
- private final SysEquTypeMapper baseMapper;
+ private final EimsEquTypeMapper baseMapper;
/**
* 鏌ヨ璁惧绫诲瀷
@@ -44,7 +44,7 @@
* @return 璁惧绫诲瀷
*/
@Override
- public SysEquTypeVo queryById(Long equTypeId){
+ public EimsEquTypeVo queryById(Long equTypeId){
return baseMapper.selectVoById(equTypeId);
}
@@ -56,21 +56,21 @@
* @return 璁惧绫诲瀷鍒楄〃
*/
@Override
- public List<SysEquTypeVo> queryList(SysEquTypeBo bo) {
- LambdaQueryWrapper<SysEquType> lqw = buildQueryWrapper(bo);
+ public List<EimsEquTypeVo> queryList(EimsEquTypeBo bo) {
+ LambdaQueryWrapper<EimsEquType> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
- private LambdaQueryWrapper<SysEquType> buildQueryWrapper(SysEquTypeBo bo) {
+ private LambdaQueryWrapper<EimsEquType> buildQueryWrapper(EimsEquTypeBo bo) {
Map<String, Object> params = bo.getParams();
- LambdaQueryWrapper<SysEquType> lqw = Wrappers.lambdaQuery();
- lqw.like(StringUtils.isNotBlank(bo.getTypeName()), SysEquType::getTypeName, bo.getTypeName());
- lqw.eq(StringUtils.isNotBlank(bo.getTypeCode()), SysEquType::getTypeCode, bo.getTypeCode());
- lqw.eq(bo.getParentId() != null, SysEquType::getParentId, bo.getParentId());
- lqw.eq(bo.getOrderNum() != null, SysEquType::getOrderNum, bo.getOrderNum());
- lqw.eq(StringUtils.isNotBlank(bo.getMenuType()), SysEquType::getMenuType, bo.getMenuType());
- lqw.eq(StringUtils.isNotBlank(bo.getIcon()), SysEquType::getIcon, bo.getIcon());
- lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysEquType::getStatus, bo.getStatus());
+ LambdaQueryWrapper<EimsEquType> lqw = Wrappers.lambdaQuery();
+ lqw.like(StringUtils.isNotBlank(bo.getTypeName()), EimsEquType::getTypeName, bo.getTypeName());
+ lqw.eq(StringUtils.isNotBlank(bo.getTypeCode()), EimsEquType::getTypeCode, bo.getTypeCode());
+ lqw.eq(bo.getParentId() != null, EimsEquType::getParentId, bo.getParentId());
+ lqw.eq(bo.getOrderNum() != null, EimsEquType::getOrderNum, bo.getOrderNum());
+ lqw.eq(StringUtils.isNotBlank(bo.getMenuType()), EimsEquType::getMenuType, bo.getMenuType());
+ lqw.eq(StringUtils.isNotBlank(bo.getIcon()), EimsEquType::getIcon, bo.getIcon());
+ lqw.eq(StringUtils.isNotBlank(bo.getStatus()), EimsEquType::getStatus, bo.getStatus());
return lqw;
}
@@ -81,8 +81,8 @@
* @return 鏄惁鏂板鎴愬姛
*/
@Override
- public Boolean insertByBo(SysEquTypeBo bo) {
- SysEquType add = MapstructUtils.convert(bo, SysEquType.class);
+ public Boolean insertByBo(EimsEquTypeBo bo) {
+ EimsEquType add = MapstructUtils.convert(bo, EimsEquType.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@@ -98,8 +98,8 @@
* @return 鏄惁淇敼鎴愬姛
*/
@Override
- public Boolean updateByBo(SysEquTypeBo bo) {
- SysEquType update = MapstructUtils.convert(bo, SysEquType.class);
+ public Boolean updateByBo(EimsEquTypeBo bo) {
+ EimsEquType update = MapstructUtils.convert(bo, EimsEquType.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
@@ -107,7 +107,7 @@
/**
* 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
*/
- private void validEntityBeforeSave(SysEquType entity){
+ private void validEntityBeforeSave(EimsEquType entity){
//TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
}
@@ -133,7 +133,7 @@
*/
@Override
public boolean hasChildByEquTypeId(Long equTypeId) {
- return baseMapper.exists(new LambdaQueryWrapper<SysEquType>().eq(SysEquType::getParentId, equTypeId));
+ return baseMapper.exists(new LambdaQueryWrapper<EimsEquType>().eq(EimsEquType::getParentId, equTypeId));
}
/**
* 鑾峰彇璁惧绫诲瀷鏍戝垪琛�
@@ -142,20 +142,20 @@
* @return 鏍戝垪琛�
*/
@Override
- public List<Tree<Long>> selectEquTypeTreeList(SysEquTypeBo bo) {
+ public List<Tree<Long>> selectEquTypeTreeList(EimsEquTypeBo bo) {
// 鍙煡璇㈡湭绂佺敤閮ㄩ棬
bo.setStatus(UserConstants.DEPT_NORMAL);
- LambdaQueryWrapper<SysEquType> lqw = buildQueryWrapper(bo);
- List<SysEquTypeVo> equTypeVoList = baseMapper.selectVoList(lqw);
+ LambdaQueryWrapper<EimsEquType> lqw = buildQueryWrapper(bo);
+ List<EimsEquTypeVo> equTypeVoList = baseMapper.selectVoList(lqw);
for (int i = 0; i < equTypeVoList.size(); i++) {
- SysEquTypeVo sysEquTypeVo = equTypeVoList.get(i);
- if(sysEquTypeVo.getParentId() == null){
+ EimsEquTypeVo eimsEquTypeVo = equTypeVoList.get(i);
+ if(eimsEquTypeVo.getParentId() == null){
equTypeVoList.get(i).setParentId(0L);
}
}
//鍔犳牴鐩綍
- SysEquTypeVo root = new SysEquTypeVo();
+ EimsEquTypeVo root = new EimsEquTypeVo();
root.setEquTypeId(0L);
root.setMenuType("M");
root.setTypeName("鎵�鏈夎澶�");
@@ -175,7 +175,7 @@
* @param equTypeVoList 璁惧绫诲瀷鍒楄〃
* @return 涓嬫媺鏍戠粨鏋勫垪琛�
*/
- public List<Tree<Long>> buildEquTypeTreeSelect(List<SysEquTypeVo> equTypeVoList) {
+ public List<Tree<Long>> buildEquTypeTreeSelect(List<EimsEquTypeVo> equTypeVoList) {
if (CollUtil.isEmpty(equTypeVoList)) {
return CollUtil.newArrayList();
}
@@ -195,7 +195,7 @@
public String selectEquTypeNameByIds(String equTypeIds) {
List<String> list = new ArrayList<>();
for (Long id : StringUtils.splitTo(equTypeIds, Convert::toLong)) {
- SysEquTypeVo vo = SpringUtils.getAopProxy(this).queryById(id);
+ EimsEquTypeVo vo = SpringUtils.getAopProxy(this).queryById(id);
if (ObjectUtil.isNotNull(vo)) {
list.add(vo.getTypeName());
}
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/SysEquServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/SysEquServiceImpl.java
deleted file mode 100644
index bd9b64e..0000000
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/SysEquServiceImpl.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package org.dromara.eims.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.dromara.eims.domain.SysEqu;
-import org.dromara.eims.domain.SysEquType;
-import org.dromara.eims.domain.bo.SysEquBo;
-import org.dromara.eims.domain.vo.SysEquTypeVo;
-import org.dromara.eims.domain.vo.SysEquVo;
-import org.dromara.eims.mapper.SysEquMapper;
-import org.dromara.eims.mapper.SysEquTypeMapper;
-import org.dromara.eims.service.ISysEquService;
-import lombok.RequiredArgsConstructor;
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-
-import org.springframework.stereotype.Service;
-
-import java.util.*;
-
-/**
- * 銆愯澶囧彴璐︺�慡ervice涓氬姟灞傚鐞�
- *
- * @author zhuguifei
- * @date 2025-01-04
- */
-@RequiredArgsConstructor
-@Service
-public class SysEquServiceImpl implements ISysEquService {
-
- private final SysEquMapper baseMapper;
- private final SysEquTypeMapper equTypeMapper;
-
- /**
- * 鏌ヨ銆愯澶囧彴璐︺��
- *
- * @param equId 涓婚敭
- * @return 銆愯澶囧彴璐︺��
- */
- @Override
- public SysEquVo queryById(Long equId){
- return baseMapper.selectVoById(equId);
- }
-
- /**
- * 鍒嗛〉鏌ヨ銆愯澶囧彴璐︺�戝垪琛�
- *
- * @param bo 鏌ヨ鏉′欢
- * @param pageQuery 鍒嗛〉鍙傛暟
- * @return 銆愯澶囧彴璐︺�戝垎椤靛垪琛�
- */
- @Override
- public TableDataInfo<SysEquVo> queryPageList(SysEquBo bo, PageQuery pageQuery) {
- LambdaQueryWrapper<SysEqu> lqw = buildQueryWrapper(bo);
- Page<SysEquVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
- return TableDataInfo.build(result);
- }
-
- /**
- * 鏌ヨ绗﹀悎鏉′欢鐨勩�愯澶囧彴璐︺�戝垪琛�
- *
- * @param bo 鏌ヨ鏉′欢
- * @return 銆愯澶囧彴璐︺�戝垪琛�
- */
- @Override
- public List<SysEquVo> queryList(SysEquBo bo) {
- LambdaQueryWrapper<SysEqu> lqw = buildQueryWrapper(bo);
- return baseMapper.selectVoList(lqw);
- }
-
- private LambdaQueryWrapper<SysEqu> buildQueryWrapper(SysEquBo bo) {
- Map<String, Object> params = bo.getParams();
- LambdaQueryWrapper<SysEqu> lqw = Wrappers.lambdaQuery();
- lqw.eq(StringUtils.isNotBlank(bo.getAssetNo()), SysEqu::getAssetNo, bo.getAssetNo());
- Long equTypeId = bo.getEquTypeId();
- /**
- * equTypeId = 0 鏃舵煡璇㈡墍鏈夎澶囷紙榛樿鏍圭洰褰昳d涓�0锛岃瑙丼ysEquTypeServiceImpl涓璼electEquTypeTreeList锛�
- * equTypeId 涓哄叾浠栧�兼椂鍙煡褰撳墠璁惧绫诲瀷id鍜屽悗浠h澶囩被鍨媔d
- */
- if (equTypeId != null && equTypeId > 0) {
- List<Long> allDescendantIds = getAllDescendantIds(equTypeId);
- lqw.in(SysEqu::getEquTypeId,allDescendantIds);
- }
-
- lqw.like(StringUtils.isNotBlank(bo.getEquName()), SysEqu::getEquName, bo.getEquName());
- lqw.eq(StringUtils.isNotBlank(bo.getModelNo()), SysEqu::getModelNo, bo.getModelNo());
- lqw.eq(StringUtils.isNotBlank(bo.getMadeIn()), SysEqu::getMadeIn, bo.getMadeIn());
- lqw.eq(bo.getRatedPower() != null, SysEqu::getRatedPower, bo.getRatedPower());
- lqw.eq(StringUtils.isNotBlank(bo.getPlateInfo()), SysEqu::getPlateInfo, bo.getPlateInfo());
- lqw.eq(bo.getPurchaseDate() != null, SysEqu::getPurchaseDate, bo.getPurchaseDate());
- lqw.eq(bo.getStatus() != null, SysEqu::getStatus, bo.getStatus());
- lqw.eq(StringUtils.isNotBlank(bo.getLocation()), SysEqu::getLocation, bo.getLocation());
- lqw.eq(bo.getDeptUsed() != null, SysEqu::getDeptUsed, bo.getDeptUsed());
- lqw.eq(bo.getRespPerson() != null, SysEqu::getRespPerson, bo.getRespPerson());
- lqw.eq(StringUtils.isNotBlank(bo.getContactPhone()), SysEqu::getContactPhone, bo.getContactPhone());
- lqw.eq(bo.getDeployDate() != null, SysEqu::getDeployDate, bo.getDeployDate());
- lqw.eq(bo.getTrialDate() != null, SysEqu::getTrialDate, bo.getTrialDate());
- lqw.eq(bo.getPlanAcceptDate() != null, SysEqu::getPlanAcceptDate, bo.getPlanAcceptDate());
- lqw.eq(bo.getActualAcceptDate() != null, SysEqu::getActualAcceptDate, bo.getActualAcceptDate());
- lqw.eq(bo.getImportStatus() != null, SysEqu::getImportStatus, bo.getImportStatus());
- lqw.eq(StringUtils.isNotBlank(bo.getEquCode()), SysEqu::getEquCode, bo.getEquCode());
- lqw.eq(bo.getInventoryFlag() != null, SysEqu::getInventoryFlag, bo.getInventoryFlag());
- lqw.eq(bo.getInventoryDate() != null, SysEqu::getInventoryDate, bo.getInventoryDate());
- lqw.eq(bo.getServiceLife() != null, SysEqu::getServiceLife, bo.getServiceLife());
- return lqw;
- }
-
- /**
- * 鏍规嵁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<SysEquType> equTypeWrapper = new QueryWrapper<>();
- equTypeWrapper.lambda().eq(SysEquType::getParentId, currentId);
-
- List<SysEquTypeVo> children = equTypeMapper.selectVoList(equTypeWrapper);
- if (children != null && !children.isEmpty()) {
- for (SysEquTypeVo child : children) {
- Long childId = child.getEquTypeId();
- collector.add(childId);
- collectDescendants(childId, collector);
- }
- }
- }
- /**
- * 鏂板銆愯澶囧彴璐︺��
- *
- * @param bo 銆愯澶囧彴璐︺��
- * @return 鏄惁鏂板鎴愬姛
- */
- @Override
- public Boolean insertByBo(SysEquBo bo) {
- SysEqu add = MapstructUtils.convert(bo, SysEqu.class);
- validEntityBeforeSave(add);
- boolean flag = baseMapper.insert(add) > 0;
- if (flag) {
- bo.setEquId(add.getEquId());
- }
- return flag;
- }
-
- /**
- * 淇敼銆愯澶囧彴璐︺��
- *
- * @param bo 銆愯澶囧彴璐︺��
- * @return 鏄惁淇敼鎴愬姛
- */
- @Override
- public Boolean updateByBo(SysEquBo bo) {
- SysEqu update = MapstructUtils.convert(bo, SysEqu.class);
- validEntityBeforeSave(update);
- return baseMapper.updateById(update) > 0;
- }
-
- /**
- * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
- */
- private void validEntityBeforeSave(SysEqu 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/resources/mapper/eims/SysEquMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquMapper.xml
similarity index 73%
rename from eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquMapper.xml
rename to eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquMapper.xml
index 11602a9..fc4aab7 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquMapper.xml
@@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.eims.mapper.SysEquMapper">
+<mapper namespace="org.dromara.eims.mapper.EimsEquMapper">
</mapper>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml
similarity index 71%
copy from eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml
copy to eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml
index d8edc89..8aa61f8 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquStatuMapper.xml
@@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.eims.mapper.SysEquTypeMapper">
+<mapper namespace="org.dromara.eims.mapper.EimsEquStatuMapper">
</mapper>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquTrialMapper.xml
similarity index 71%
rename from eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml
rename to eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquTrialMapper.xml
index d8edc89..2485435 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquTrialMapper.xml
@@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.eims.mapper.SysEquTypeMapper">
+<mapper namespace="org.dromara.eims.mapper.EimsEquTrialMapper">
</mapper>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquTypeMapper.xml
similarity index 71%
copy from eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml
copy to eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquTypeMapper.xml
index d8edc89..9bfbb18 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/SysEquTypeMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsEquTypeMapper.xml
@@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.eims.mapper.SysEquTypeMapper">
+<mapper namespace="org.dromara.eims.mapper.EimsEquTypeMapper">
</mapper>
--
Gitblit v1.9.3