| | |
| | | mdcOverallEquipmentEfficiency.setShift(shift); |
| | | } |
| | | |
| | | BigDecimal shiftTimeCount = mdcDeviceCalendarService.computeShiftTimeCount(equipmentId, validDate); |
| | | mdcOverallEquipmentEfficiency.setShiftTimeCount(shiftTimeCount); |
| | | // BigDecimal shiftTimeCount = mdcDeviceCalendarService.computeShiftTimeCount(equipmentId, validDate); |
| | | if (StringUtils.isEmpty(mdcOverallEquipmentEfficiency.getShift())) { |
| | | mdcOverallEquipmentEfficiency.setShiftTimeCount(BigDecimal.ZERO); |
| | | } else { |
| | | mdcOverallEquipmentEfficiency.setShiftTimeCount(new BigDecimal("8")); |
| | | } |
| | | |
| | | // 计算加班时间 |
| | | // TODO 计算加班时间 |
| | | BigDecimal overtime = mdcEquipmentOvertimeService.computeOvertime(equipmentId, validDate); |
| | | mdcOverallEquipmentEfficiency.setOvertime(overtime); |
| | | |
| | |
| | | mdcOverallEquipmentEfficiency.setActualWorkDayCount(actualWorkDayCount); |
| | | |
| | | // 月度实际班产总时间(分钟) |
| | | mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().add(overtime)); |
| | | mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().multiply(actualWorkDayCount).multiply(new BigDecimal("60")).add(overtime)); |
| | | |
| | | // 故障停机时长统计(分钟) |
| | | BigDecimal breakdownDownDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.BREAKDOWN_DOWN); |
| | |
| | | // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration |
| | | // 负荷时间(分钟) |
| | | BigDecimal loadTime = mdcOverallEquipmentEfficiency.getShiftTimeCount().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)); |
| | | |
| | | // 时间开动率 = 主轴运行时间/负荷时间 |
| | |
| | | mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate); |
| | | } |
| | | |
| | | BigDecimal processQuantity; |
| | | // 加工零件数(件) processQuantity |
| | | BigDecimal processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate); |
| | | if ("FANUC".equals(mdcEquipment.getDriveType())) { |
| | | processQuantity = processCountService.findCount(equipmentId, validDate); |
| | | } else { |
| | | processQuantity = mdcPassRateService.findProcessQuantity(equipmentId, validDate); |
| | | } |
| | | mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity); |
| | | |
| | | // 标准加工时间(分钟) |
| | |
| | | // 设备综合效率 = 时间开动率 × 性能开动率 × 合格品率 |
| | | mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(timeActuationRate.multiply(mdcOverallEquipmentEfficiency.getPerformanceRate()).multiply(mdcOverallEquipmentEfficiency.getPassRate()).setScale(4, RoundingMode.HALF_UP)); |
| | | if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) { |
| | | mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ONE); |
| | | mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ZERO); |
| | | } |
| | | result.add(mdcOverallEquipmentEfficiency); |
| | | |