From 6b366d0e50bdbabf95008ef6af9bbba914a04eb5 Mon Sep 17 00:00:00 2001 From: gaojs <757918719@qq.com> Date: Mon, 27 May 2024 16:12:34 +0800 Subject: [PATCH] =?UTF-8?q?EAM=20=E2=80=94=E2=80=94>=20=20=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E7=94=9F=E6=88=90=E4=BF=9D=E5=85=BB?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=20=E4=B8=BB=E5=AD=90=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eam/equipmentMaintenanceDetail/index.ts | 64 ++++ src/api/eam/equipmentMaintenanceMain/index.ts | 8 +- src/utils/dict.ts | 3 +- .../basicMaintenanceOption.data.ts | 2 +- .../equipmentMaintenanceMain.data.ts | 295 ++++++++++++++++-- .../eam/equipmentMaintenanceMain/index.vue | 120 ++++++- src/views/eam/maintenance/index.vue | 2 - src/views/eam/maintenance/maintenance.data.ts | 65 +++- 8 files changed, 508 insertions(+), 51 deletions(-) create mode 100644 src/api/eam/equipmentMaintenanceDetail/index.ts diff --git a/src/api/eam/equipmentMaintenanceDetail/index.ts b/src/api/eam/equipmentMaintenanceDetail/index.ts new file mode 100644 index 000000000..81a8696e1 --- /dev/null +++ b/src/api/eam/equipmentMaintenanceDetail/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface EquipmentMaintenanceDetailVO { + id: number + number: string + masterId: number + peoples: number + estimatedMinutes: number + actualMinutes: number + chargePeoples: string + completionTime: Date + uncompletedCause: string + result: string + contents: string + equipmentParts: string + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询设备保养工单子列表 +export const getEquipmentMaintenanceDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/equipment-maintenance-detail/senior', data }) + } else { + return await request.get({ url: `/eam/equipment-maintenance-detail/page`, params }) + } +} + +// 查询设备保养工单子详情 +export const getEquipmentMaintenanceDetail = async (id: number) => { + return await request.get({ url: `/eam/equipment-maintenance-detail/get?id=` + id }) +} + +// 新增设备保养工单子 +export const createEquipmentMaintenanceDetail = async (data: EquipmentMaintenanceDetailVO) => { + return await request.post({ url: `/eam/equipment-maintenance-detail/create`, data }) +} + +// 修改设备保养工单子 +export const updateEquipmentMaintenanceDetail = async (data: EquipmentMaintenanceDetailVO) => { + return await request.put({ url: `/eam/equipment-maintenance-detail/update`, data }) +} + +// 删除设备保养工单子 +export const deleteEquipmentMaintenanceDetail = async (id: number) => { + return await request.delete({ url: `/eam/equipment-maintenance-detail/delete?id=` + id }) +} + +// 导出设备保养工单子 Excel +export const exportEquipmentMaintenanceDetail = async (params) => { + return await request.download({ url: `/eam/equipment-maintenance-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/equipment-maintenance-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/equipmentMaintenanceMain/index.ts b/src/api/eam/equipmentMaintenanceMain/index.ts index 835e6bff0..6509d8dc0 100644 --- a/src/api/eam/equipmentMaintenanceMain/index.ts +++ b/src/api/eam/equipmentMaintenanceMain/index.ts @@ -1,4 +1,5 @@ import request from '@/config/axios' +import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart"; export interface EquipmentMaintenanceMainVO { id: number @@ -71,4 +72,9 @@ export const exportEquipmentMaintenanceMain = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/eam/equipment-maintenance-main/get-import-template' }) -} \ No newline at end of file +} + +// 启用 / 禁用 +export const updateEnableCode = async (data: EquipmentMainPartVO) => { + return await request.post({ url: `/eam/equipment-maintenance-main/ables` , data }) +} diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 320790719..1f6a1c346 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -348,5 +348,6 @@ export enum DICT_TYPE { SUBJECT = 'subject', //科目 REGION = 'region', //区域 PART_CLASS = 'part_class', //备件分类 - MAINTENANCE_CYCLE ='maintenance_cycle' // 保养周期 + MAINTENANCE_CYCLE ='maintenance_cycle', // 保养周期 + EAM_ORDER_STATUS = 'eam_order_status' } diff --git a/src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts b/src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts index f085da0f3..b3ad015dc 100644 --- a/src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts +++ b/src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts @@ -4,7 +4,7 @@ import { BasicMaintenanceItemSelectSet } from "@/views/eam/maintenanceItemSelectSet/maintenanceItemSelectSet.data"; import * as ItemApi from "@/api/eam/maintenanceItemSelectSet"; -import {getBasicMaintenanceItemSelectSetPage} from "@/api/eam/maintenanceItemSelectSet"; + // 表单校验 export const BasicMaintenanceOptionRules = reactive({ diff --git a/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts b/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts index b324fe9e1..5773c2528 100644 --- a/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts +++ b/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts @@ -1,5 +1,9 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' +import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data"; +import * as EquipmentItemApi from "@/api/eam/equipmentAccounts"; +import {Workshop} from "@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data"; +import * as WorkshopApi from "@/api/wms/workshop"; // 表单校验 export const EquipmentMaintenanceMainRules = reactive({ @@ -8,7 +12,6 @@ export const EquipmentMaintenanceMainRules = reactive({ planNumber: [required], status: [required], factoryAreaCode: [required], - concurrencyStamp: [required], }) export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ @@ -25,6 +28,7 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ label: '保养工单编号', field: 'number', sort: 'custom', + isForm: false, isSearch: true, }, { @@ -34,16 +38,37 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ isSearch: true, }, { - label: '设备编号', - field: 'equipmentCode', + label: '设备类别', + field: 'type', + dictType: DICT_TYPE.DEVICE_TYPE, + dictClass: 'string', sort: 'custom', isSearch: true, }, { - label: '设备分类', - field: 'type', + label: '设备编号', + field: 'equipmentCode', sort: 'custom', isSearch: true, + isForm: true, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '设备信息', // 查询弹窗标题 + searchListPlaceholder: '请选择 设备编号', // 输入框占位文本 + searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类 + searchField: 'code', // 查询弹窗赋值字段 + searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法 + multiple:true, + searchCondition: [{ + key: 'status', + value: 'NORMAL', + action: '==', + isSearch: true, + isMainValue: false + }] + } + } }, { label: '班次枚举', @@ -74,29 +99,22 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ field: 'times', sort: 'custom', isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, }, { label: '验证人', field: 'verifyer', sort: 'custom', isSearch: true, - form: { - component: 'InputNumber', - value: 0 - }, }, { label: '验证内容', field: 'verifyContent', sort: 'custom', isSearch: true, - form: { - component: 'Editor', - componentProps: { - valueHtml: '', - height: 200 - } - }, }, { label: '验证时间', @@ -125,10 +143,6 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ field: 'maintenancer', sort: 'custom', isSearch: true, - form: { - component: 'InputNumber', - value: 0 - }, }, { label: '保养人联系电话', @@ -187,25 +201,44 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ }, }, { - label: '流程状态枚举', + label: '流程状态', field: 'status', sort: 'custom', isSearch: true, - form: { - component: 'Radio' - }, + dictType: DICT_TYPE.EAM_ORDER_STATUS, + dictClass: 'string', }, { label: '所属厂区编号', field: 'factoryAreaCode', sort: 'custom', - isSearch: true, + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, }, { label: '车间编号', field: 'workshopCode', sort: 'custom', isSearch: true, + required: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '车间', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '车间信息', // 查询弹窗标题 + searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类 + searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, }, { label: '工段编号', @@ -253,6 +286,218 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ isForm: false, isDetail:false, }, + { + label: '是否可用默认TRUE', + field: 'available', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + }, + { + label: '删除时间', + field: 'deletionTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '删除人id', + field: 'deleterId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + + +export const EquipmentMaintenanceDetailRules = reactive({ + number: [required], + contents: [required], +}) + +export const EquipmentMaintenanceDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + }, + { + label: '保养工单号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '主表id', + field: 'masterId', + sort: 'custom', + isSearch: true, + }, + { + label: '人数', + field: 'peoples', + sort: 'custom', + isSearch: true, + }, + { + label: '预计分钟', + field: 'estimatedMinutes', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '实际分钟', + field: 'actualMinutes', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '责任人多选', + field: 'chargePeoples', + sort: 'custom', + isSearch: true, + }, + { + label: '完成时间', + field: 'completionTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '未完成原因', + field: 'uncompletedCause', + sort: 'custom', + isSearch: true, + }, + { + label: '结果枚举0完成 1未完成', + field: 'result', + sort: 'custom', + isSearch: true, + }, + { + label: '保养内容', + field: 'contents', + sort: 'custom', + isSearch: true, + }, + { + label: '保养部位', + field: 'equipmentParts', + sort: 'custom', + isSearch: true, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '部门id', + field: 'departmentCode', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true, + }, + { + label: '地点ID', + field: 'siteId', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + }, { label: '是否可用默认TRUE', field: 'available', diff --git a/src/views/eam/equipmentMaintenanceMain/index.vue b/src/views/eam/equipmentMaintenanceMain/index.vue index 248f1de3f..52f6474ef 100644 --- a/src/views/eam/equipmentMaintenanceMain/index.vue +++ b/src/views/eam/equipmentMaintenanceMain/index.vue @@ -27,13 +27,13 @@ v-model:currentPage="tableObject.currentPage" v-model:sort="tableObject.sort" > -