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