diff --git a/README.md b/README.md index 52d41693e..871612b43 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## dev发布2024-05-23-002 +## dev发布2024-06-01-001 **xxxx.data.ts 文件配置说明** **form表单查询弹窗配置** form: { diff --git a/src/api/eam/basicMaintenanceOption/index.ts b/src/api/eam/basicMaintenanceOption/index.ts index 1fa280e6d..96cca69a3 100644 --- a/src/api/eam/basicMaintenanceOption/index.ts +++ b/src/api/eam/basicMaintenanceOption/index.ts @@ -1,10 +1,10 @@ import request from '@/config/axios' -import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart"; export interface BasicMaintenanceOptionVO { id: number code: string name: string + selectId: string describing: string isUpdated: boolean type: string @@ -34,7 +34,7 @@ export const getBasicMaintenanceOption = async (id: number) => { } // 新增保养方案 -export const createBasicMaintenanceOption = async (data: BasicMaintenanceOptionVO) => { +export const createBasicMaintenanceOption = async (data) => { return await request.post({ url: `/eam/basic-maintenance-option/create`, data }) } diff --git a/src/api/eam/equipmentMaintenanceMain/index.ts b/src/api/eam/equipmentMaintenanceMain/index.ts index 5bc59771d..1a0396846 100644 --- a/src/api/eam/equipmentMaintenanceMain/index.ts +++ b/src/api/eam/equipmentMaintenanceMain/index.ts @@ -3,27 +3,32 @@ import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart"; export interface EquipmentMaintenanceMainVO { id: number - number: string describing: string + number: string + sources: string equipmentCode: string type: string - classes: string - planNumber: string faultType: string - cycle: string - times: string + planNumber: string + planStartTime: Date + planEndTime: Date + startTime: Date + endTime: Date + classType: string verifyer: number verifyContent: string verifyTime: Date maintenancer: number maintenancePhone: string - completeResult: string completionTime: Date maintenanceTime: Date status: string + autoOrder: string + autoPerform: string + autoVerify: string + directCreateRecord: string factoryAreaCode: string workshopCode: string - workshopSectionCode: string departmentCode: string remark: string siteId: string @@ -49,6 +54,12 @@ export const getEquipmentMaintenanceMain = async (id: number) => { return await request.get({ url: `/eam/equipment-maintenance-main/get?id=` + id }) } + + +export const getMaintenanceOrderConfig = async () => { + return await request.get({ url: `/eam/equipment-maintenance-main/get-order-config`}) +} + // 新增设备保养工单主 export const createEquipmentMaintenanceMain = async (data: EquipmentMaintenanceMainVO) => { return await request.post({ url: `/eam/equipment-maintenance-main/create`, data }) @@ -84,7 +95,12 @@ export const updateMaintenanceOrder = async (data: EquipmentMainPartVO) => { return await request.post({ url: `/eam/equipment-maintenance-main/updateOrder`, data }) } -//执行保养工单 +//完成保养工单 export const executeMaintenanceOrder = async (data: EquipmentMainPartVO) => { return await request.post({ url: `/eam/equipment-maintenance-main/execute`, data }) } + +//验证不通过,打回保养工单 +export const backMaintenanceOrder = async (data: EquipmentMainPartVO) => { + return await request.post({ url: `/eam/equipment-maintenance-main/fallback`, data }) +} diff --git a/src/api/eam/equipmentReportRepairRequest/index.ts b/src/api/eam/equipmentReportRepairRequest/index.ts index f09c4d563..1eeec7e86 100644 --- a/src/api/eam/equipmentReportRepairRequest/index.ts +++ b/src/api/eam/equipmentReportRepairRequest/index.ts @@ -70,4 +70,14 @@ export const exportEquipmentReportRepairRequest = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/eam/equipment-report-repair-request/get-import-template' }) -} \ No newline at end of file +} + +// 修改报修工单状态 +export const updateEquipmentReportRepairOrder = async (data: EquipmentReportRepairRequestVO) => { + return await request.post({ url: `/eam/equipment-report-repair-request/updateOrder`, data }) +} + +// 完成并创建维修工单 +export const createEquipmentWeixiuOrder = async (data: EquipmentReportRepairRequestVO) => { + return await request.post({ url: `/eam/equipment-report-repair-request/updateCreateOrder`, data }) +} diff --git a/src/api/eam/maintenance/index.ts b/src/api/eam/maintenance/index.ts index e0605fa0d..dbba47884 100644 --- a/src/api/eam/maintenance/index.ts +++ b/src/api/eam/maintenance/index.ts @@ -1,5 +1,6 @@ import request from '@/config/axios' import {InspectionItemSelectSetVO} from "@/api/eam/inspectionItemSelectSet"; +import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart"; export interface MaintenanceVO { id: number @@ -56,6 +57,11 @@ export const updateMaintenance = async (data: MaintenanceVO) => { return await request.put({ url: `/eam/maintenance/update`, data }) } +// 修改保养计划-审核 +export const updateMaintenanceAudi = async (data: MaintenanceVO) => { + return await request.post({ url: `/eam/maintenance/updateAudi`, data }) +} + // 删除保养计划 export const deleteMaintenance = async (id: number) => { return await request.delete({ url: `/eam/maintenance/delete?id=` + id }) @@ -75,3 +81,8 @@ export const importTemplate = () => { export const updateEnableCode = async (data: MaintenanceVO) => { return await request.post({ url: `/eam/maintenance/ables` , data }) } + +// 修改计划状态 +export const updateMaintenancePlan = async (data: MaintenanceVO) => { + return await request.post({ url: `/eam/maintenance/updatePlan`, data }) +} diff --git a/src/api/eam/relationMaintenancePlanItem/index.ts b/src/api/eam/relationMaintenancePlanItem/index.ts new file mode 100644 index 000000000..9381fb777 --- /dev/null +++ b/src/api/eam/relationMaintenancePlanItem/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface RelationMaintenancePlanItemVO { + id: number + planNumber: string + itemCode: string + itemName: string + isSelectd: boolean + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询保养计划表和保养项关系列表 +export const getRelationMaintenancePlanItemPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/relation-maintenance-plan-item/senior', data }) + } else { + return await request.get({ url: `/eam/relation-maintenance-plan-item/page`, params }) + } +} + +// 查询保养计划表和保养项关系详情 +export const getRelationMaintenancePlanItem = async (id: number) => { + return await request.get({ url: `/eam/relation-maintenance-plan-item/get?id=` + id }) +} + +// 新增保养计划表和保养项关系 +export const createRelationMaintenancePlanItem = async (data: RelationMaintenancePlanItemVO) => { + return await request.post({ url: `/eam/relation-maintenance-plan-item/create`, data }) +} + +// 修改保养计划表和保养项关系 +export const updateRelationMaintenancePlanItem = async (data: RelationMaintenancePlanItemVO) => { + return await request.put({ url: `/eam/relation-maintenance-plan-item/update`, data }) +} + +// 删除保养计划表和保养项关系 +export const deleteRelationMaintenancePlanItem = async (id: number) => { + return await request.delete({ url: `/eam/relation-maintenance-plan-item/delete?id=` + id }) +} + +// 导出保养计划表和保养项关系 Excel +export const exportRelationMaintenancePlanItem = async (params) => { + return await request.download({ url: `/eam/relation-maintenance-plan-item/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/relation-maintenance-plan-item/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/home/index.ts b/src/api/home/index.ts index aa8cb1388..dee170023 100644 --- a/src/api/home/index.ts +++ b/src/api/home/index.ts @@ -20,3 +20,40 @@ export const getProductData = async () => { return await request.get({ url: `/wms/index/indexProduct` }) } +// 超期库存预警 +export const getOverdueBalance = async (params) => { + return await request.get({ url: `/wms/index/pageOverdueBalance`,params }) +} + +// 呆滞库存预警 +export const getStagnantBalance = async (params) => { + return await request.get({ url: `/wms/index/pageStagnantBalance` ,params}) +} +// 高低储预警 +export const getWarningBalance = async (params) => { + return await request.get({ url: `/wms/index/pageWarningBalance` ,params}) +} + +// 本月退货明细 +export const getPurchasereturnRecordMonth = async (params) => { + return await request.get({ url: `/wms/index/pagePurchasereturnRecordMonth`,params }) +} + +// 本月索赔明细 +export const getPurchaseclaimRecordMonth = async (params) => { + return await request.get({ url: `/wms/index/pagePurchaseclaimRecordMonth`,params }) +} + +// 今日生产计划 +export const getProductionToday = async (params) => { + return await request.get({ url: `/wms/index/pageProductionToday`,params }) +} + +// 线边安全库存 +export const getSafeLocation = async (params) => { + return await request.get({ url: `/wms/index/pageSafeLocation`,params }) +} +// 待上架成品库存 +export const getProductputawayJobDetail = async (params) => { + return await request.get({ url: `/wms/index/pageProductputawayJobDetail`,params }) +} \ No newline at end of file diff --git a/src/api/wms/balance/index.ts b/src/api/wms/balance/index.ts index cb17a3200..68161dc16 100644 --- a/src/api/wms/balance/index.ts +++ b/src/api/wms/balance/index.ts @@ -105,6 +105,11 @@ export const getBalancePageSpare = async (params) => { } } +// 根据物料code 批次 和库位码查询库存余额总数 +export const getSumByConditions= async (params) => { + return await request.get({ url: `/wms/balance/getSumByConditions`, params }) +} + // 查询库存余额详情 export const getBalance = async (id: number) => { return await request.get({ url: `/wms/balance/get?id=` + id }) diff --git a/src/api/wms/inventoryinitRecordDetail/index.ts b/src/api/wms/inventoryinitRecordDetail/index.ts index c789ca497..fe2d27f22 100644 --- a/src/api/wms/inventoryinitRecordDetail/index.ts +++ b/src/api/wms/inventoryinitRecordDetail/index.ts @@ -72,4 +72,9 @@ export const exportInventoryinitRecordDetail = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/wms/inventoryinit-record-detail/get-import-template' }) +} + +// 批量打印 +export const printLabelBatchByIdSelection = async (data: any) => { + return await request.post({ url: `/wms/inventoryinit-record-main/printLabelBatchById` ,data}) } \ No newline at end of file diff --git a/src/api/wms/inventorymoveRecordMain/index.ts b/src/api/wms/inventorymoveRecordMain/index.ts index 2f351b719..18bb292e3 100644 --- a/src/api/wms/inventorymoveRecordMain/index.ts +++ b/src/api/wms/inventorymoveRecordMain/index.ts @@ -125,4 +125,9 @@ export const exportScrapToHoldRecordMain = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/wms/inventorymove-record-main/get-import-template' }) -} \ No newline at end of file +} + +// 下载用户导入模板(除库存移动外) +export const importTemplateExceptMove = () => { + return request.download({ url: '/wms/inventorymove-record-main/get-import-template-exceptMove' }) +} diff --git a/src/api/wms/location/index.ts b/src/api/wms/location/index.ts index 4f6c6a019..3870b46d7 100644 --- a/src/api/wms/location/index.ts +++ b/src/api/wms/location/index.ts @@ -38,7 +38,7 @@ export const getLocationPageRepleinsh = async (params) => { if (params.isSearch) { delete params.isSearch const data = {...params} - return request.post({ url: '/wms/location/senior', data }) + return request.post({ url: '/wms/location/getForRepleinshSenior', data }) } else { return await request.get({ url: `/wms/location/pageForRepleinsh`, params }) } @@ -68,6 +68,17 @@ export const deleteLocation = async (id: number) => { return await request.delete({ url: `/wms/location/delete?id=` + id }) } +// 根据业务类型以及库区查询库位列表 +export const getLocationListByAreaAndBusinesstype = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/location/pageBusinessTypeToLocationSenior1', data }) + } else { + return await request.get({ url: `/wms/location/pageBusinessTypeToLocation1`, params }) + } +} + // 导出库位 Excel export const exportLocation = async (params) => { if (params.isSearch) { diff --git a/src/api/wms/qadproductionplan/index.ts b/src/api/wms/qadproductionplan/index.ts index c25893833..5eda9dfeb 100644 --- a/src/api/wms/qadproductionplan/index.ts +++ b/src/api/wms/qadproductionplan/index.ts @@ -26,6 +26,17 @@ export const getQadProductionPlanMainPage = async (params) => { return await request.get({ url: `/wms/qad-production-plan-main/page`, params }) } } +export const getQadProductionPlanDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/qad-production-plan-detail/senior', data }) + } else { + return await request.get({ url: `/wms/qad-production-plan-detail/page`, params }) + } +} + + // 查询QAD生产计划主详情 export const getQadProductionPlanMain = async (id: number) => { diff --git a/src/api/wms/supplierdeliverRequestMain/index.ts b/src/api/wms/supplierdeliverRequestMain/index.ts index dddc0c3a1..b85ae51c6 100644 --- a/src/api/wms/supplierdeliverRequestMain/index.ts +++ b/src/api/wms/supplierdeliverRequestMain/index.ts @@ -96,6 +96,12 @@ export const genLabel = async (data:SupplierdeliverRequestMainVO) => { return await request.post({ url: `/wms/supplierdeliver-request-main/genLabel`,data }) } +// 校验是否修改了包装数量 +export const checkPackQty = async (data:SupplierdeliverRequestMainVO) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/checkPackQty`,data }) +} + + // 生成记录 export const genRecordsSupplierdeliverRequestMain = async (id) => { return await request.post({ url: `/wms/supplierdeliver-request-main/genRecords?id=` + id }) diff --git a/src/api/wms/supplierinvoiceRequestMain/index.ts b/src/api/wms/supplierinvoiceRequestMain/index.ts index 89ef00539..49298715f 100644 --- a/src/api/wms/supplierinvoiceRequestMain/index.ts +++ b/src/api/wms/supplierinvoiceRequestMain/index.ts @@ -97,6 +97,11 @@ export const financerejSupplierinvoiceRequestMain = async (id: number) => { return await request.post({ url: `/wms/supplierinvoice-request-main/financeRej?id=` + id }) } +// 作废--供应商发货申请主 +export const repealSupplierinvoiceRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/repeal?id=` + id }) +} + // 生成记录 export const genRecordsSupplierinvoiceRequestMain = async (id) => { return await request.post({ url: `/wms/supplierinvoice-request-main/genRecords?id=` + id }) diff --git a/src/api/wms/unplannedissueRecordDetail/index.ts b/src/api/wms/unplannedissueRecordDetail/index.ts index b72dd7835..9e508c4ae 100644 --- a/src/api/wms/unplannedissueRecordDetail/index.ts +++ b/src/api/wms/unplannedissueRecordDetail/index.ts @@ -38,6 +38,9 @@ export const getUnplannedissueRecordDetailPage = async (params) => { 'action':'==', 'value':'1' } + if(!data.filters){ + data.filters = [] + } data.filters.push(dataTypeCondition) return await request.post({ url: '/wms/unplannedissue-record-detail/senior', data }) } else { diff --git a/src/api/wms/unplannedissueRequestDetail/index.ts b/src/api/wms/unplannedissueRequestDetail/index.ts index be5249f00..99adb86f7 100644 --- a/src/api/wms/unplannedissueRequestDetail/index.ts +++ b/src/api/wms/unplannedissueRequestDetail/index.ts @@ -33,6 +33,9 @@ export const getUnplannedissueRequestDetailPage = async (params) => { 'action':'==', 'value':'1' } + if(!data.filters){ + data.filters = []; + } data.filters.push(dataTypeCondition) return await request.post({ url: '/wms/unplannedissue-request-detail/senior', data }) } else { diff --git a/src/components/BasicForm/src/BasicForm.vue b/src/components/BasicForm/src/BasicForm.vue index 257250012..c34237694 100644 --- a/src/components/BasicForm/src/BasicForm.vue +++ b/src/components/BasicForm/src/BasicForm.vue @@ -130,6 +130,7 @@ import ButtonBase from '@/components/XButton/src/ButtonBase.vue' import TableForm from '@/components/TableForm/src/TableForm.vue' import TableFormCountPlan from '@/components/TableFormCountPlan/src/TableFormCountPlan.vue' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' +import { debounce } from 'lodash-es' const props = defineProps({ // 显示窗口宽度设置 @@ -390,6 +391,13 @@ const opensearchTable = ( return } }else if(searchCondition[i].isTableRowValue){ + if(searchCondition[i].required){ + if (row[searchCondition[i].value] == '' ||row[searchCondition[i].value] == undefined) { + message.warning(searchCondition[i].message?searchCondition[i].message:'前置条件未选择!') + return + } + } + row[searchCondition[i].value] //查询当前table表数据的值 _searchCondition[searchCondition[i].key] = row[searchCondition[i].value] } else { @@ -558,7 +566,9 @@ const buttonBaseClick = (val) => { } // 保存 else if (val == 'save') { - submitForm() + debounce(() => { + submitForm() + }, 2000)() } // 关闭 else if (val == 'close') { @@ -731,7 +741,6 @@ const clearInput = (field, row, index) => { * @param cur 改变后值 */ const onChange = (field, cur) => { - console.log(2222222222222) emit('onChange', field, cur, formRef) } @@ -774,7 +783,7 @@ const buttonOperationClick = (row, label, index)=> { const inputStringBlur = (headerItem, row, index)=> { emit("inputStringBlur", headerItem, row, index); } -defineExpose({ open, formRef, opensearchTable, dialogVisible, formLoading ,handleAddTable}) // 提供 open 方法,用于打开弹窗 +defineExpose({ open, formRef, opensearchTable, dialogVisible, formLoading ,handleAddTable,changeDialogWidth}) // 提供 open 方法,用于打开弹窗 diff --git a/src/views/eam/equipmentMaintenanceMain/DetailEam.vue b/src/views/eam/equipmentMaintenanceMain/MaintenanceOrderDetail.vue similarity index 94% rename from src/views/eam/equipmentMaintenanceMain/DetailEam.vue rename to src/views/eam/equipmentMaintenanceMain/MaintenanceOrderDetail.vue index 98d3c3939..7626c0627 100644 --- a/src/views/eam/equipmentMaintenanceMain/DetailEam.vue +++ b/src/views/eam/equipmentMaintenanceMain/MaintenanceOrderDetail.vue @@ -585,9 +585,11 @@ const formRef = ref() const titleNameRef = ref() const titleValueRef = ref() const count =ref(0) +const planNumber = ref(); const openDetail = async (row: any, titleName: any, titleValue: any, tableName: any) => { titleNameRef.value = titleName titleValueRef.value = titleValue + planNumber.value = row.planNumber remarksData.data = { tableId: row.masterId||row.id, tableName: tableName @@ -707,7 +709,7 @@ const isShowMainButton = (row, val) => { const { getList } = tableMethodsRef.value // 头部按钮事件 -const buttonBaseClick = (val, item) => { +const buttonBaseClick = (val, item ,row) => { if (val == 'add') { // 新增 if(props.isOpenSearchTable){ @@ -728,6 +730,8 @@ const buttonBaseClick = (val, item) => { undefined,undefined ) }else{ + console.log(planNumber.value) + openForm('create') } } else if (val == 'import') { @@ -824,10 +828,8 @@ const buttonTableClick = async (val, row) => { } /** 添加/修改操作 */ const openForm = async (type: string, row?: number) => { - formRef.value.open(type, row, masterParmas.value) emit('detailOpenForm', type, row) - if(type == "create"){ EquipmentMaintenanceDetail.allSchemas.formSchema.forEach((item) => { if(item.field == 'peoples'){ @@ -854,20 +856,41 @@ const openForm = async (type: string, row?: number) => { } if(item.field == 'name'){ EquipmentMaintenanceDetailRules.name[0].required = true + item.componentProps.searchCondition = [] + const newItem1 = {}; + newItem1['action'] = '=='; + newItem1['value'] = planNumber.value; + newItem1['key'] = 'planNumber'; + item.componentProps.searchCondition.push(newItem1) + const newItem2 = {}; + newItem2['action'] = '=='; + newItem2['value'] = 'TRUE'; + newItem2['key'] = 'available'; + item.componentProps.searchCondition.push(newItem2) + const newItem3 = {}; + newItem3['action'] = '=='; + newItem3['value'] = false; + newItem3['key'] = 'isSelectd'; + item.componentProps.searchCondition.push(newItem3) } }) }else{ - row.peoples = row.peoples.toString() - row.estimatedMinutes = row.estimatedMinutes.toString() - row.actualMinutes = row.actualMinutes.toString() + if(row.peoples !== null && row.peoples !== undefined){ + row.peoples = row.peoples.toString() + } + if(row.estimatedMinutes !== null && row.estimatedMinutes !== undefined){ + row.estimatedMinutes = row.estimatedMinutes.toString() + } + if(row.actualMinutes !== null && row.actualMinutes !== undefined){ + row.actualMinutes = row.actualMinutes.toString() + } EquipmentMaintenanceDetail.allSchemas.formSchema.forEach((item) => { if(item.field == 'peoples'){ - console.log(item); item.componentProps.disabled = false EquipmentMaintenanceDetailRules.peoples[0].required = true } if(item.field == 'estimatedMinutes'){ - EquipmentMaintenanceDetailRules.estimatedMinutes[0].required = false + EquipmentMaintenanceDetailRules.estimatedMinutes[0].required = true } if(item.field == 'actualMinutes'){ item.componentProps.disabled = false @@ -886,6 +909,22 @@ const openForm = async (type: string, row?: number) => { } if(item.field == 'name'){ EquipmentMaintenanceDetailRules.name[0].required = true + item.componentProps.searchCondition = [] + const newItem1 = {}; + newItem1['action'] = '=='; + newItem1['value'] = planNumber.value; + newItem1['key'] = 'planNumber'; + item.componentProps.searchCondition.push(newItem1) + const newItem2 = {}; + newItem2['action'] = '=='; + newItem2['value'] = 'TRUE'; + newItem2['key'] = 'available'; + item.componentProps.searchCondition.push(newItem2) + const newItem3 = {}; + newItem3['action'] = '=='; + newItem3['value'] = false; + newItem3['key'] = 'isSelectd'; + item.componentProps.searchCondition.push(newItem3) } }) } @@ -951,7 +990,12 @@ const handleDelete = async (id: number) => { // 刷新列表 await getList() updateKey.value += 1 - } catch {} + } catch { + emit('handleMainFefresh') + // 刷新列表 + await getList() + updateKey.value += 1 + } } // 筛选提交 const searchFormClick = async (searchData) => { diff --git a/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts b/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts index baa6e75c2..cd1c845de 100644 --- a/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts +++ b/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts @@ -4,17 +4,19 @@ import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts import * as EquipmentItemApi from "@/api/eam/equipmentAccounts"; import {Workshop} from "@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data"; import * as WorkshopApi from "@/api/wms/workshop"; -import {MaintenanceItem} from "@/views/eam/maintenanceItem/maintenanceItem.data"; -import * as ItemApi from "@/api/eam/maintenanceItem"; +import {RelationMaintenancePlanItem} from "@/views/eam/maintenance/maintenance.data"; +import * as ItemApi from "@/api/eam/relationMaintenancePlanItem"; import {validateroundNumber} from "@/utils/validator"; // 表单校验 export const EquipmentMaintenanceMainRules = reactive({ number: [required], + sources: [required], equipmentCode: [required], - planNumber: [required], + type: [required], + planStartTime: [required], + planEndTime: [required], status: [required], - factoryAreaCode: [required], }) export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ @@ -28,25 +30,26 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ isDetail:false, }, { - label: '保养工单编号', - field: 'number', + label: '描述', + field: 'describing', sort: 'custom', + isSearch: false, + isTable: false, isForm: false, - isSearch: true, + isDetail:false, }, { - label: '描述', - field: 'describing', + label: '保养工单编号', + field: 'number', sort: 'custom', isSearch: true, }, { - label: '设备类别', - field: 'type', - dictType: DICT_TYPE.DEVICE_TYPE, - dictClass: 'string', + label: '来源字典', + field: 'sources', sort: 'custom', isSearch: true, + isSearch: false, }, { label: '设备编号', @@ -74,57 +77,99 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ } }, { - label: '班次枚举', - field: 'classes', - sort: 'custom', - isSearch: true, - }, - { - label: '保养计划工单号', - field: 'planNumber', + label: '设备类别', + field: 'type', + dictType: DICT_TYPE.DEVICE_TYPE, + dictClass: 'string', sort: 'custom', isSearch: true, + isSearch: false, }, { label: '故障类型枚举', field: 'faultType', sort: 'custom', isSearch: true, + isSearch: false, }, { - label: '保养周期', - field: 'cycle', + label: '保养计划工单号', + field: 'planNumber', sort: 'custom', isSearch: true, }, { - label: '保养次数', - field: 'times', + label: '计划开始时间', + field: 'planStartTime', sort: 'custom', - isSearch: true, + formatter: dateFormatter, + isSearch: 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: 'InputNumber', - value: 0 + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } }, }, { - label: '验证人', - field: 'verifyer', + label: '计划结束时间', + field: 'planEndTime', sort: 'custom', - isSearch: true, + formatter: dateFormatter, + isSearch: 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: '验证内容', - field: 'verifyContent', + label: '保养开始时间', + field: 'startTime', sort: 'custom', - isSearch: true, + formatter: dateFormatter, + isSearch: 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: '验证时间', - field: 'verifyTime', + label: '保养结束时间', + field: 'endTime', sort: 'custom', formatter: dateFormatter, - isSearch: true, + isSearch: false, search: { component: 'DatePicker', componentProps: { @@ -142,29 +187,36 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ }, }, { - label: '保养人id', - field: 'maintenancer', + label: '保养班组', + field: 'classType', sort: 'custom', - isSearch: true, + isSearch: false, }, { - label: '保养人联系电话', - field: 'maintenancePhone', + label: '验证人', + field: 'verifyer', sort: 'custom', - isSearch: true, + isSearch: false, }, { - label: '结果枚举临时措施、完成', - field: 'completeResult', + label: '验证内容', + field: 'verifyContent', sort: 'custom', - isSearch: true, + isSearch: false, + form: { + component: 'Editor', + componentProps: { + valueHtml: '', + height: 200 + } + }, }, { - label: '完成时间', - field: 'completionTime', + label: '验证时间', + field: 'verifyTime', sort: 'custom', formatter: dateFormatter, - isSearch: true, + isSearch: false, search: { component: 'DatePicker', componentProps: { @@ -182,11 +234,23 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ }, }, { - label: '保养时间', - field: 'maintenanceTime', + label: '保养人id', + field: 'maintenancer', + sort: 'custom', + isSearch: false, + }, + { + label: '保养人联系电话', + field: 'maintenancePhone', + sort: 'custom', + isSearch: false, + }, + { + label: '完成时间', + field: 'completionTime', sort: 'custom', formatter: dateFormatter, - isSearch: true, + isSearch: false, search: { component: 'DatePicker', componentProps: { @@ -203,6 +267,28 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ } }, }, + // { + // label: '保养时间', + // field: 'maintenanceTime', + // 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: 'status', @@ -211,20 +297,41 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ dictType: DICT_TYPE.EAM_ORDER_STATUS, dictClass: 'string', }, + // { + // label: '自动接单', + // field: 'autoOrder', + // sort: 'custom', + // isSearch: true, + // }, + // { + // label: '自动执行', + // field: 'autoPerform', + // sort: 'custom', + // isSearch: true, + // }, + // { + // label: '自动验证', + // field: 'autoVerify', + // sort: 'custom', + // isSearch: true, + // }, + { + label: '直接生成记录', + field: 'directCreateRecord', + sort: 'custom', + isSearch: false, + }, { label: '所属厂区编号', field: 'factoryAreaCode', sort: 'custom', isSearch: false, - isTable: false, - isForm: false, - isDetail:false, }, { label: '车间编号', field: 'workshopCode', sort: 'custom', - isSearch: true, + isSearch: false, required: true, form: { // labelMessage: '信息提示说明!!!', @@ -248,7 +355,7 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ field: 'createTime', sort: 'custom', formatter: dateFormatter, - isSearch: true, + isSearch: false, search: { component: 'DatePicker', componentProps: { @@ -272,7 +379,7 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ label: '备注', field: 'remark', sort: 'custom', - isSearch: true, + isSearch: false, }, { label: '地点ID', @@ -287,9 +394,10 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ label: '是否可用默认TRUE', field: 'available', sort: 'custom', - isSearch: true, - dictType: DICT_TYPE.TRUE_FALSE, - dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, }, { label: '删除时间', @@ -350,6 +458,7 @@ export const EquipmentMaintenanceMain = useCrudSchemas(reactive([ ])) + export const EquipmentMaintenanceDetailRules = reactive({ number: [required], masterId: [required], @@ -383,13 +492,12 @@ export const EquipmentMaintenanceDetailRules = reactive({ validator:validateroundNumber, message: '请输入正确的正整数', trigger: 'blur'}], - completionTime: [required], - // [ - // { - // required:false , - // message:'该项为必填项', - // tagger:['blur'] - // }], + // completionTime: [ + // { + // required:false , + // message:'该项为必填项', + // tagger:['blur'] + // }], result: [ { required:false , @@ -506,16 +614,12 @@ export const EquipmentMaintenanceDetail = useCrudSchemas(reactive( form: { componentProps: { isSearchList: true, // 开启查询弹窗 - searchListPlaceholder: '请选择 类别编码', - searchTitle: '保养项信息', // 查询弹窗标题 - searchAllSchemas: MaintenanceItem.allSchemas, // 查询弹窗所需类 - searchField: 'name', // 查询弹窗赋值字段 - searchPage: ItemApi.getMaintenanceItemPage, // 查询弹窗所需分页方法 - searchCondition: [{ - key: 'available', - value: 'TRUE', - action: '==' - }] + searchListPlaceholder: '请选择 非必选保养项', + searchTitle: '非必选保养项信息', // 查询弹窗标题 + searchAllSchemas: RelationMaintenancePlanItem.allSchemas, // 查询弹窗所需类 + searchField: 'itemName', // 查询弹窗赋值字段 + searchPage: ItemApi.getRelationMaintenancePlanItemPage, // 查询弹窗所需分页方法 + searchCondition: [] } } }, diff --git a/src/views/eam/equipmentMaintenanceMain/finishForm1.vue b/src/views/eam/equipmentMaintenanceMain/finishForm1.vue new file mode 100644 index 000000000..c50b366ad --- /dev/null +++ b/src/views/eam/equipmentMaintenanceMain/finishForm1.vue @@ -0,0 +1,216 @@ + + + + diff --git a/src/views/eam/equipmentMaintenanceMain/finishForm2.vue b/src/views/eam/equipmentMaintenanceMain/finishForm2.vue new file mode 100644 index 000000000..60b73fe59 --- /dev/null +++ b/src/views/eam/equipmentMaintenanceMain/finishForm2.vue @@ -0,0 +1,215 @@ + + + + diff --git a/src/views/eam/equipmentMaintenanceMain/index.vue b/src/views/eam/equipmentMaintenanceMain/index.vue index f0606d3fb..4db1801b9 100644 --- a/src/views/eam/equipmentMaintenanceMain/index.vue +++ b/src/views/eam/equipmentMaintenanceMain/index.vue @@ -51,6 +51,21 @@ @onChange="onChange" /> + + + + + { const butttondata = (row) => { return [ defaultButtons.mainListEditBtn({hasPermi:'eam:equipmentMaintenanceMain:update'}), // 编辑 - defaultButtons.mainListReceiveOrderBtn({hide: isShowStatusButton(row,['3']),hasPermi:'eam:maintenance:update'}), // 接单 - defaultButtons.mainListExecuteBtn({hide: isShowStatusButton(row,['4']),hasPermi:'eam:maintenance:update'}), // 执行 - defaultButtons.mainListFinishBtn({hide: isShowStatusButton(row,['5']),hasPermi:'eam:maintenance:update'}), // 完成保养 - defaultButtons.mainListValidateBtn({hide: isShowStatusButton(row,['6']),hasPermi:'eam:maintenance:update'}), // 验证 - defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:maintenance:update'}), - defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'eam:maintenance:update'}), + defaultButtons.mainListReceiveOrderBtn({hide: isShowStatusButton(row,['3']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 接单 + defaultButtons.mainListExecuteBtn({hide: isShowStatusButton(row,['4']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 执行 + defaultButtons.mainListFinishBtn({hide: isShowStatusButton(row,['5']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 完成保养 + defaultButtons.mainListValidateBtn({hide: isShowStatusButton(row,['6']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 验证 + defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:equipmentMaintenanceMain:update'}), + defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'eam:equipmentMaintenanceMain:update'}), ] } @@ -194,9 +211,9 @@ const buttonTableClick = async (val, row) => { } else if (val == 'execute') { // 执行 handleExecute(row.id) } else if (val == 'finish') { // 完成 - handleFinish(row.id) - } else if (val == 'validate') { // 完成 - handleValidate(row.id) + handleFinish(row) + } else if (val == 'validate') { // 验证 + handleValidate(row) } } @@ -256,7 +273,7 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => { const setV = {} let result = ''; for (var i = 0; i < val.length; i++) { - result += val[i].name + ','; + result += val[i].itemName + ','; } if(result.endsWith(',')){ result = result.substring(0,result.length -1) @@ -320,8 +337,8 @@ const handleExecute = async (id: number) => { }) params.value.id = id params.value.status = '5' - // 发起删除 - await EquipmentMaintenanceMainApi.executeMaintenanceOrder(params.value) + // 发起 + await EquipmentMaintenanceMainApi.updateMaintenanceOrder(params.value) message.success(t('执行成功')) // 刷新列表 await getList() @@ -329,50 +346,68 @@ const handleExecute = async (id: number) => { } /** 完成按钮操作 */ -const handleFinish = async (id: number) => { - try { - // 中止的二次确认 - await message.delConfirm('是否完成所选中工单?'); - const params = ref({ - id: '', - status:'', - }) - params.value.id = id +const finishForm2Ref = ref() +const handleFinish = async (row) => { + // 二次确认 + await message.delConfirm('是否完成所选中工单?'); + + //打开提交表单 + finishForm2Ref.value.open('update', row); + + //let res = await EquipmentMaintenanceMainApi.getMaintenanceOrderConfig(); + //系统配置需要验证 + // if(res.remark === 'TRUE'){ + // try { + // + // + // // // 二次确认 + // // await message.delConfirm('是否完成所选中工单?'); + // // const params = ref({ + // // id: '', + // // status:'', + // // }) + // // params.value.id = row.id + // // params.value.status = '5' + // // // 发起 + // // await EquipmentMaintenanceMainApi.executeMaintenanceOrder(params.value) + // // message.success(t('工单已完成')) + // // // 刷新列表 + // // await getList() + // } catch {} + // } + // //系统配置不需要验证 + // if(res.remark === 'FALSE'){ + // try { + // // 二次确认 + // await message.delConfirm('是否完成所选中工单?'); + // + // //打开提交表单 + // finishForm2Ref.value.open('update', row); + // + // } catch {} + // } +} + +/** 验证按钮操作 */ +const finishForm1Ref = ref() +const handleValidate = async (row) => { + await message.delConfirm('是否验证所选中工单?'); + message.confirmPassword(t('')).then(async () => { + // 二次确认 + //打开提交表单 + finishForm1Ref.value.open('update', row); + }).catch (async () => { + const params = ref({id: '', status:''}) + params.value.id = row.id params.value.status = '5' - // 发起删除 - await EquipmentMaintenanceMainApi.executeMaintenanceOrder(params.value) - message.success(t('工单已完成')) + await EquipmentMaintenanceMainApi.backMaintenanceOrder(params.value) + message.success(t('工单已打回')) // 刷新列表 await getList() - } catch {} -} + }) -/** 验证按钮操作 */ -const handleValidate = async (id: number) => { - try { - const params = ref({ - id: '', - status:'', - }) - // 中止的二次确认 - message.confirmPassword(t('')).then(async () => { - params.value.id = id - params.value.status = '7' - await EquipmentMaintenanceMainApi.updateMaintenanceOrder(params.value) - message.success(t('工单已流转')) - // 刷新列表 - await getList() - }).catch (async () => { - params.value.id = id - params.value.status = '5' - await EquipmentMaintenanceMainApi.updateMaintenanceOrder(params.value) - message.success(t('工单已流转')) - // 刷新列表 - await getList() - }) - } catch {} } /** 启用 */ @@ -497,6 +532,62 @@ const searchFormClick = (searchData) => { getList() // 刷新当前列表 } +//finishForm1 关闭按钮回传 +const getClosed1=(val)=> { + nextTick?.(() => { + console.log(val) + getList() + }) +} + +//finishForm1 提交按钮回传 +const getData1=(val)=> { + nextTick?.(async () => { + console.log(val) + + try { + const params = ref({ + id: '', + status:'', + }) + params.value.id = val + params.value.status = '7' + await EquipmentMaintenanceMainApi.updateMaintenanceOrder(params.value) + message.success(t('工单已流转')) + // 刷新列表 + await getList() + } catch {} + + } + ) +} + +//finishForm2 关闭按钮回传 +const getClosed2=(val)=> { + nextTick?.(() => { + console.log(val) + getList() + }) +} + +//finishForm2 提交按钮回传 +const getData2=(val)=> { + nextTick?.(async () => { + console.log(val) + const params = ref({ + id: '', + status: '', + }) + params.value.id = val + params.value.status = '5' + // 发起 + await EquipmentMaintenanceMainApi.executeMaintenanceOrder(params.value) + message.success(t('工单已完成')) + // 刷新列表 + await getList() + }) +} + /** 初始化 **/ onMounted(async () => { getList() diff --git a/src/views/eam/equipmentMaintenanceRecordMain/equipmentMaintenanceRecordMain.data.ts b/src/views/eam/equipmentMaintenanceRecordMain/equipmentMaintenanceRecordMain.data.ts index 199b71234..3541eeece 100644 --- a/src/views/eam/equipmentMaintenanceRecordMain/equipmentMaintenanceRecordMain.data.ts +++ b/src/views/eam/equipmentMaintenanceRecordMain/equipmentMaintenanceRecordMain.data.ts @@ -4,138 +4,229 @@ import { dateFormatter } from '@/utils/formatTime' // 表单校验 export const EquipmentMaintenanceRecordMainRules = reactive({ number: [required], + sources: [required], equipmentCode: [required], - planNumber: [required], - status: [required], - factoryAreaCode: [required], - concurrencyStamp: [required] + type: [required], + planStartTime: [required], + planEndTime: [required], + startTime: [required], + endTime: [required], }) export const EquipmentMaintenanceRecordMain = useCrudSchemas(reactive([ { - label: '保养编号', - field: 'number', + label: 'id', + field: 'id', + sort: 'custom', + isForm: false, + }, + { + label: '记录编号', + field: 'recordNo', sort: 'custom', - isSearch: true + isSearch: true, }, { label: '描述', field: 'describing', sort: 'custom', - isSearch: true + isSearch: true, + isSearch: false, + }, + { + label: '保养工单', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '来源字典', + field: 'sources', + sort: 'custom', + isSearch: true, + isSearch: false, }, { label: '设备编号', field: 'equipmentCode', sort: 'custom', - isSearch: true + isSearch: true, }, { - label: '设备类别', - field: 'category', + label: '故障类型枚举', + field: 'faultType', sort: 'custom', - dictType: DICT_TYPE.DEVICE_TYPE, - dictClass: 'string', // 默认都是字符串类型其他暂不考虑 isSearch: true, - form: { - component: 'SelectV2' - } + isSearch: false, + }, { - label: '班次枚举', - field: 'classes', + label: '工装或设备字典', + field: 'type', sort: 'custom', - // dictType: DICT_TYPE.SHIFT_TYPE, - // dictClass: 'string', // 默认都是字符串类型其他暂不考虑 isSearch: true, + dictType: DICT_TYPE.DEVICE_TYPE, + dictClass: 'string', }, { - label: '保养计划工单', + label: '保养计划工单号', field: 'planNumber', sort: 'custom', - isSearch: true + isSearch: true, }, { - label: '故障类型枚举', - field: 'faultType', + label: '计划开始时间', + field: 'planStartTime', sort: 'custom', - dictType: DICT_TYPE.FAILURE_REASON, - dictClass: 'string', // 默认都是字符串类型其他暂不考虑 - isSearch: true, + formatter: dateFormatter, + isSearch: 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: 'SelectV2' - } + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, }, { - label: '保养周期', - field: 'cycle', + label: '计划结束时间', + field: 'planEndTime', sort: 'custom', - dictType: DICT_TYPE.MAINTENANCE_CYCLE, - dictClass: 'string', // 默认都是字符串类型其他暂不考虑 - isSearch: true + formatter: dateFormatter, + isSearch: 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: '保养次数', - field: 'times', + label: '保养开始时间', + field: 'startTime', sort: 'custom', - isSearch: true + formatter: dateFormatter, + isSearch: 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: '验证人', - field: 'verifyer2', + label: '保养结束时间', + field: 'endTime', sort: 'custom', - isSearch: true, + formatter: dateFormatter, + isSearch: 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: 'InputNumber', - value: 0 - } + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, }, { - label: '验证内容', - field: 'verifyContent2', + label: '保养班组', + field: 'classType', sort: 'custom', - isSearch: true + isSearch: false, }, { - label: '验证时间', - field: 'verifyTime2', + label: '验证人', + field: 'verifyer', sort: 'custom', - isSearch: true + isSearch: false, }, { - label: '保养人', - field: 'maintenancer', + label: '验证内容', + field: 'verifyContent', sort: 'custom', - isSearch: true, + isSearch: false, form: { - component: 'InputNumber', - value: 0 - } + component: 'Editor', + componentProps: { + valueHtml: '', + height: 200 + } + }, }, { - label: '保养人联系电话', - field: 'maintenancePhone', + label: '验证时间', + field: 'verifyTime', sort: 'custom', - isSearch: true + formatter: dateFormatter, + isSearch: 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: '结果枚举', - field: 'completeResult', + label: '保养人id', + field: 'maintenancer', sort: 'custom', - isSearch: true + isSearch: false, }, { - label: '完成时间', - field: 'completionTime2', + label: '保养人联系电话', + field: 'maintenancePhone', sort: 'custom', - isSearch: true + isSearch: false, }, { - label: '保养时间', - field: 'maintenanceTime', + label: '完成时间', + field: 'completionTime', sort: 'custom', formatter: dateFormatter, - isSearch: true, + isSearch: false, search: { component: 'DatePicker', componentProps: { @@ -150,58 +241,172 @@ export const EquipmentMaintenanceRecordMain = useCrudSchemas(reactive -