From 2d727903343feb01fedc988370091395c368faf2 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 17 十二月 2024 16:06:42 +0800 Subject: [PATCH] OEE功能及设备管理调整 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java | 184 +++++++++++++++++++++++----------------------- 1 files changed, 92 insertions(+), 92 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java index 9c4526c..1f922cc 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java @@ -127,33 +127,33 @@ // 鏈堝害瀹為檯鐝骇鎬绘椂闂�(鍒嗛挓) mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().multiply(actualWorkDayCount).multiply(new BigDecimal("60")).add(overtime)); - // 鏁呴殰鍋滄満鏃堕暱缁熻(鍒嗛挓) - BigDecimal breakdownDownDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.BREAKDOWN_DOWN); - mdcOverallEquipmentEfficiency.setBreakdownDownDuration(breakdownDownDuration); - // 鎹㈠瀷璋冭瘯鏃堕暱缁熻(鍒嗛挓) - BigDecimal conversionDebugDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.CONVERSION_DEBUG); - mdcOverallEquipmentEfficiency.setConversionDebugDuration(conversionDebugDuration); - // 鐗╂枡鐭己鏃堕暱缁熻(鍒嗛挓) - BigDecimal materialShortageDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.MATERIAL_SHORTAGE); - mdcOverallEquipmentEfficiency.setMaterialShortageDuration(materialShortageDuration); - // 璁″垝绛変换鍔℃椂闀跨粺璁�(鍒嗛挓) - BigDecimal plannedTaskDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.PLANNED_TASK); - mdcOverallEquipmentEfficiency.setPlannedTaskDuration(plannedTaskDuration); - // 妫�楠屾椂闀跨粺璁�(鍒嗛挓) - BigDecimal inspectDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.INSPECT); - mdcOverallEquipmentEfficiency.setInspectDuration(inspectDuration); - // 鍏朵粬鏃堕暱缁熻(鍒嗛挓) - BigDecimal otherDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.OTHER); - mdcOverallEquipmentEfficiency.setOtherDuration(otherDuration); - // 璁″垝淇濆吇鏃堕暱缁熻(鍒嗛挓) - BigDecimal plannedMaintenanceDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.PLANNED_MAINTENANCE); - mdcOverallEquipmentEfficiency.setPlannedMaintenanceDuration(plannedMaintenanceDuration); - // 浼氳/鍩硅鏃堕暱缁熻(鍒嗛挓) - BigDecimal conferenceTrainingDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.CONFERENCE_TRAINING); - mdcOverallEquipmentEfficiency.setConferenceTrainingDuration(conferenceTrainingDuration); - // 鍏跺畠浼戞伅鏃堕暱缁熻(鍒嗛挓) - BigDecimal otherRestDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.OTHER_REST); - mdcOverallEquipmentEfficiency.setOtherRestDuration(otherRestDuration); +// // 鏁呴殰鍋滄満鏃堕暱缁熻(鍒嗛挓) +// BigDecimal breakdownDownDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.BREAKDOWN_DOWN); +// mdcOverallEquipmentEfficiency.setBreakdownDownDuration(breakdownDownDuration); +// // 鎹㈠瀷璋冭瘯鏃堕暱缁熻(鍒嗛挓) +// BigDecimal conversionDebugDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.CONVERSION_DEBUG); +// mdcOverallEquipmentEfficiency.setConversionDebugDuration(conversionDebugDuration); +// // 鐗╂枡鐭己鏃堕暱缁熻(鍒嗛挓) +// BigDecimal materialShortageDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.MATERIAL_SHORTAGE); +// mdcOverallEquipmentEfficiency.setMaterialShortageDuration(materialShortageDuration); +// // 璁″垝绛変换鍔℃椂闀跨粺璁�(鍒嗛挓) +// BigDecimal plannedTaskDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.PLANNED_TASK); +// mdcOverallEquipmentEfficiency.setPlannedTaskDuration(plannedTaskDuration); +// // 妫�楠屾椂闀跨粺璁�(鍒嗛挓) +// BigDecimal inspectDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.INSPECT); +// mdcOverallEquipmentEfficiency.setInspectDuration(inspectDuration); +// // 鍏朵粬鏃堕暱缁熻(鍒嗛挓) +// BigDecimal otherDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.OTHER); +// mdcOverallEquipmentEfficiency.setOtherDuration(otherDuration); +// // 璁″垝淇濆吇鏃堕暱缁熻(鍒嗛挓) +// BigDecimal plannedMaintenanceDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.PLANNED_MAINTENANCE); +// mdcOverallEquipmentEfficiency.setPlannedMaintenanceDuration(plannedMaintenanceDuration); +// // 浼氳/鍩硅鏃堕暱缁熻(鍒嗛挓) +// BigDecimal conferenceTrainingDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.CONFERENCE_TRAINING); +// mdcOverallEquipmentEfficiency.setConferenceTrainingDuration(conferenceTrainingDuration); +// // 鍏跺畠浼戞伅鏃堕暱缁熻(鍒嗛挓) +// BigDecimal otherRestDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.OTHER_REST); +// mdcOverallEquipmentEfficiency.setOtherRestDuration(otherRestDuration); /* 璐熻嵎鏃堕棿(灏忔椂) = 宸ヤ綔鏃ュ巻鏃堕棿 - 璁″垝鍋滄満鏃堕棿 宸ヤ綔鏃ュ巻鏃堕棿 = 鏃ュ巻鏃堕棿 - 娉曞畾鍋囨棩 - 鍙屼紤鏃� + 鍔犵彮鏃堕棿 @@ -161,78 +161,78 @@ */ // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration // 璐熻嵎鏃堕棿(鍒嗛挓) - BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration); - if (loadTime.compareTo(BigDecimal.ZERO) < 0) { - loadTime = BigDecimal.ZERO; - } - mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP)); +// BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration); +// if (loadTime.compareTo(BigDecimal.ZERO) < 0) { +// loadTime = BigDecimal.ZERO; +// } +// mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP)); // 鏃堕棿寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 // 鏌ヨ涓昏酱杩愯鏃堕棿(鍒嗛挓) - BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate); - BigDecimal timeActuationRate = BigDecimal.ZERO; - if (loadTime.compareTo(BigDecimal.ZERO) == 0) { - mdcOverallEquipmentEfficiency.setTimeActuationRate(BigDecimal.ZERO); - } else { - timeActuationRate = spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP); - mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate); - } +// BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate); +// BigDecimal timeActuationRate = BigDecimal.ZERO; +// if (loadTime.compareTo(BigDecimal.ZERO) == 0) { +// mdcOverallEquipmentEfficiency.setTimeActuationRate(BigDecimal.ZERO); +// } else { +// timeActuationRate = spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP); +// mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate); +// } - BigDecimal processQuantity; - // 鍔犲伐闆朵欢鏁�(浠�) processQuantity - if ("FANUC".equals(mdcEquipment.getDriveType())) { - processQuantity = processCountService.findCount(equipmentId, validDate); - } else { - processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate); - } - mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity); +// BigDecimal processQuantity; +// // 鍔犲伐闆朵欢鏁�(浠�) processQuantity +// if ("FANUC".equals(mdcEquipment.getDriveType())) { +// processQuantity = processCountService.findCount(equipmentId, validDate); +// } else { +// processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate); +// } +// mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity); +// +// // 鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓) +// MdcStandardProcessDuration mdcStandardProcessDuration = mdcStandardProcessDurationService.getOne(new LambdaQueryWrapper<MdcStandardProcessDuration>().eq(MdcStandardProcessDuration::getEquipmentId, equipmentId)); +// if (mdcStandardProcessDuration != null) { +// mdcOverallEquipmentEfficiency.setStandardProcessDuration(new BigDecimal(mdcStandardProcessDuration.getDuration()).multiply(processQuantity)); +// } else { +// mdcOverallEquipmentEfficiency.setStandardProcessDuration(BigDecimal.ZERO); +// } - // 鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓) - MdcStandardProcessDuration mdcStandardProcessDuration = mdcStandardProcessDurationService.getOne(new LambdaQueryWrapper<MdcStandardProcessDuration>().eq(MdcStandardProcessDuration::getEquipmentId, equipmentId)); - if (mdcStandardProcessDuration != null) { - mdcOverallEquipmentEfficiency.setStandardProcessDuration(new BigDecimal(mdcStandardProcessDuration.getDuration()).multiply(processQuantity)); - } else { - mdcOverallEquipmentEfficiency.setStandardProcessDuration(BigDecimal.ZERO); - } - - if ("FANUC".equals(mdcEquipment.getDriveType())) { - // 锛堟柊锛夋�ц兘寮�鍔ㄧ巼 = 鐞嗚鏍囧噯鍔犲伐鏃堕暱 * 浠舵暟 /锛堜富杞磋繍琛屾椂闂达級 - // 鏌ヨ娉曞叞鍏嬭澶囨爣鍑嗗姞宸ユ椂闀�(绉�) - BigDecimal duration = processCountService.findDuration(mdcEquipment.getEquipmentId(), validDate); - if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0 && duration.compareTo(BigDecimal.ZERO) != 0) { - mdcOverallEquipmentEfficiency.setStandardProcessDuration(duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP)); - BigDecimal performanceRate = duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).divide(spindleRunDuration, 4, RoundingMode.HALF_UP); - if (performanceRate.compareTo(BigDecimal.ONE) == 1) { - performanceRate = new BigDecimal("0.95").add(BigDecimal.valueOf(Math.random() * 5).divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)); - } - mdcOverallEquipmentEfficiency.setPerformanceRate(performanceRate); - } else { - mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); - } - } else { - // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 - if (loadTime.compareTo(BigDecimal.ZERO) != 0) { - mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); - } else { - mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); - } - } +// if ("FANUC".equals(mdcEquipment.getDriveType())) { +// // 锛堟柊锛夋�ц兘寮�鍔ㄧ巼 = 鐞嗚鏍囧噯鍔犲伐鏃堕暱 * 浠舵暟 /锛堜富杞磋繍琛屾椂闂达級 +// // 鏌ヨ娉曞叞鍏嬭澶囨爣鍑嗗姞宸ユ椂闀�(绉�) +// BigDecimal duration = processCountService.findDuration(mdcEquipment.getEquipmentId(), validDate); +// if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0 && duration.compareTo(BigDecimal.ZERO) != 0) { +// mdcOverallEquipmentEfficiency.setStandardProcessDuration(duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP)); +// BigDecimal performanceRate = duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).divide(spindleRunDuration, 4, RoundingMode.HALF_UP); +// if (performanceRate.compareTo(BigDecimal.ONE) == 1) { +// performanceRate = new BigDecimal("0.95").add(BigDecimal.valueOf(Math.random() * 5).divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)); +// } +// mdcOverallEquipmentEfficiency.setPerformanceRate(performanceRate); +// } else { +// mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); +// } +// } else { +// // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 +// if (loadTime.compareTo(BigDecimal.ZERO) != 0) { +// mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); +// } else { +// mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); +// } +// } // 搴熷搧鏁� unqualifiedQuantity - BigDecimal unqualifiedQuantity = mdcPassRateService.findUnqualifiedQuantity(equipmentId, validDate); - mdcOverallEquipmentEfficiency.setUnqualifiedQuantity(unqualifiedQuantity); - // 鍚堟牸鐜� - if (processQuantity.compareTo(BigDecimal.ZERO) == 0) { - mdcOverallEquipmentEfficiency.setPassRate(BigDecimal.ONE); - } else { - mdcOverallEquipmentEfficiency.setPassRate((processQuantity.subtract(unqualifiedQuantity)).divide(processQuantity, 4, RoundingMode.HALF_UP)); - } - - // 璁惧缁煎悎鏁堢巼 = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼 - mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(timeActuationRate.multiply(mdcOverallEquipmentEfficiency.getPerformanceRate()).multiply(mdcOverallEquipmentEfficiency.getPassRate()).setScale(4, RoundingMode.HALF_UP)); - if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) { - mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ZERO); - } +// BigDecimal unqualifiedQuantity = mdcPassRateService.findUnqualifiedQuantity(equipmentId, validDate); +// mdcOverallEquipmentEfficiency.setUnqualifiedQuantity(unqualifiedQuantity); +// // 鍚堟牸鐜� +// if (processQuantity.compareTo(BigDecimal.ZERO) == 0) { +// mdcOverallEquipmentEfficiency.setPassRate(BigDecimal.ONE); +// } else { +// mdcOverallEquipmentEfficiency.setPassRate((processQuantity.subtract(unqualifiedQuantity)).divide(processQuantity, 4, RoundingMode.HALF_UP)); +// } +// +// // 璁惧缁煎悎鏁堢巼 = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼 +// mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(timeActuationRate.multiply(mdcOverallEquipmentEfficiency.getPerformanceRate()).multiply(mdcOverallEquipmentEfficiency.getPassRate()).setScale(4, RoundingMode.HALF_UP)); +// if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) { +// mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ZERO); +// } result.add(mdcOverallEquipmentEfficiency); } -- Gitblit v1.9.3