From 09e22d89710364548fa896917506a372795a7bd3 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期五, 26 一月 2024 09:37:36 +0800 Subject: [PATCH] 加班管理功能调整 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java | 278 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 186 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 c7a87ab..919e18b 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 @@ -1,20 +1,27 @@ package org.jeecg.modules.mdc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.mdc.constant.MdcConstant; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency; import org.jeecg.modules.mdc.entity.MdcStandardProcessDuration; import org.jeecg.modules.mdc.mapper.MdcOverallEquipmentEfficiencyMapper; import org.jeecg.modules.mdc.service.*; +import org.jeecg.modules.mdc.util.DateUtils; +import org.jeecg.modules.mdc.vo.MdcOverallEquipmentEfficiencyVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.YearMonth; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -48,11 +55,14 @@ @Resource private IMdcEquipmentStatisticalShiftInfoService mdcEquipmentStatisticalShiftInfoService; + @Resource + private IProcessCountService processCountService; + /** * 璁$畻璁惧缁煎悎鏁堢巼OEE */ @Override - public void runningOverallEquipmentEfficiency() { + public void runningOverallEquipmentEfficiency(String dateTime) { /* OEE = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼 鏃堕棿寮�鍔ㄧ巼 = 锛堣礋鑽锋椂闂� - 闈炶鍒掑仠鏈烘椂闂达級 / 璐熻嵎鏃堕棿 脳 100% @@ -66,122 +76,206 @@ List<MdcOverallEquipmentEfficiency> result = new ArrayList<>(); // 鑾峰彇鏈夋晥鏃ユ湡 鏍煎紡 yyyy-MM String validDate = YearMonth.now().minusMonths(1).toString(); + if (StringUtils.isNotBlank(dateTime)) { + validDate = DateUtils.format(DateUtils.toDate(dateTime, "yyyyMM"), DateUtils.STR_YEAR_MONTH); + try { + if (validDate != null) { + this.remove(new LambdaQueryWrapper<MdcOverallEquipmentEfficiency>(). + eq(MdcOverallEquipmentEfficiency::getValidDate, validDate)); + } + } catch (Exception e) { + log.error("鍙傛暟鏍煎紡涓嶅", e); + } + } // 鑾峰彇璁惧鍒楄〃 +// List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); List<MdcEquipment> equipmentList = mdcEquipmentService.list(); for (MdcEquipment mdcEquipment : equipmentList) { String equipmentId = mdcEquipment.getEquipmentId(); - // 鏌ヨ鐝鍒嗙被 + + MdcOverallEquipmentEfficiency mdcOverallEquipmentEfficiency = new MdcOverallEquipmentEfficiency(); + // 鏃堕棿寮�鍔ㄧ巼璁$畻 + mdcOverallEquipmentEfficiency.setEquipmentId(equipmentId); + mdcOverallEquipmentEfficiency.setEquipmentName(mdcEquipment.getEquipmentName()); + mdcOverallEquipmentEfficiency.setEquipmentModel(mdcEquipment.getEquipmentModel()); + mdcOverallEquipmentEfficiency.setValidDate(validDate); + + // 鏌ヨ鐝埗鍒嗙被 List<String> shiftSubIdList = mdcDeviceCalendarService.findShiftSort(equipmentId, validDate); + if (shiftSubIdList != null && !shiftSubIdList.isEmpty()) { + String shift = String.join(",", shiftSubIdList); + mdcOverallEquipmentEfficiency.setShift(shift); + } + +// 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); + + // 璁$畻瀹為檯鐝骇澶╂暟 + BigDecimal actualWorkDayCount = mdcDeviceCalendarService.computeActualWorkDayCount(equipmentId, validDate); + mdcOverallEquipmentEfficiency.setActualWorkDayCount(actualWorkDayCount); + + // 鏈堝害瀹為檯鐝骇鎬绘椂闂�(鍒嗛挓) + 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 = new BigDecimal("0"); + BigDecimal plannedMaintenanceDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.PLANNED_MAINTENANCE); + mdcOverallEquipmentEfficiency.setPlannedMaintenanceDuration(plannedMaintenanceDuration); // 浼氳/鍩硅鏃堕暱缁熻(鍒嗛挓) - BigDecimal conferenceTrainingDuration = new BigDecimal("0"); + BigDecimal conferenceTrainingDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.CONFERENCE_TRAINING); + mdcOverallEquipmentEfficiency.setConferenceTrainingDuration(conferenceTrainingDuration); // 鍏跺畠浼戞伅鏃堕暱缁熻(鍒嗛挓) - BigDecimal otherRestDuration = new BigDecimal("0"); - if (shiftSubIdList != null && !shiftSubIdList.isEmpty()) { - for (String shiftSubId : shiftSubIdList) { - MdcOverallEquipmentEfficiency mdcOverallEquipmentEfficiency = new MdcOverallEquipmentEfficiency(); - // 鏃堕棿寮�鍔ㄧ巼璁$畻 - mdcOverallEquipmentEfficiency.setEquipmentId(equipmentId); - mdcOverallEquipmentEfficiency.setEquipmentName(mdcEquipment.getEquipmentName()); - mdcOverallEquipmentEfficiency.setEquipmentModel(mdcEquipment.getEquipmentModel()); - mdcOverallEquipmentEfficiency.setValidDate(validDate); - // 鐝 鐝鏃堕棿 - mdcOverallEquipmentEfficiency.setShiftSubId(shiftSubId); - BigDecimal shiftTimeCount = mdcDeviceCalendarService.computeShiftTimeCount(shiftSubId, equipmentId, validDate); - mdcOverallEquipmentEfficiency.setShiftTimeCount(shiftTimeCount); - // 璁$畻鍔犵彮鏃堕棿 - BigDecimal overtime = mdcEquipmentOvertimeService.computeOvertime(shiftSubId, equipmentId, validDate); - mdcOverallEquipmentEfficiency.setOvertime(overtime); - // 璁$畻瀹為檯鐝骇澶╂暟 - BigDecimal actualWorkDayCount = mdcDeviceCalendarService.computeActualWorkDayCount(shiftSubId, equipmentId, validDate); - mdcOverallEquipmentEfficiency.setActualWorkDayCount(actualWorkDayCount); - // 鏈堝害瀹為檯鐝骇鎬绘椂闂�(鍒嗛挓) - mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().add(overtime)); - // 鏁呴殰鍋滄満鏃堕暱缁熻(鍒嗛挓) - mdcOverallEquipmentEfficiency.setBreakdownDownDuration(breakdownDownDuration); - // 鎹㈠瀷璋冭瘯鏃堕暱缁熻(鍒嗛挓) - mdcOverallEquipmentEfficiency.setConversionDebugDuration(conversionDebugDuration); - // 鐗╂枡鐭己鏃堕暱缁熻(鍒嗛挓) - mdcOverallEquipmentEfficiency.setMaterialShortageDuration(materialShortageDuration); - // 璁″垝绛変换鍔℃椂闀跨粺璁�(鍒嗛挓) - mdcOverallEquipmentEfficiency.setPlannedTaskDuration(plannedTaskDuration); - // 妫�楠屾椂闀跨粺璁�(鍒嗛挓) - mdcOverallEquipmentEfficiency.setInspectDuration(inspectDuration); - // 鍏朵粬鏃堕暱缁熻(鍒嗛挓) - mdcOverallEquipmentEfficiency.setOtherDuration(otherDuration); - // 璁″垝淇濆吇鏃堕暱缁熻(鍒嗛挓) - mdcOverallEquipmentEfficiency.setPlannedMaintenanceDuration(plannedMaintenanceDuration); - // 浼氳/鍩硅鏃堕暱缁熻(鍒嗛挓) - mdcOverallEquipmentEfficiency.setConferenceTrainingDuration(conferenceTrainingDuration); - // 鍏跺畠浼戞伅鏃堕暱缁熻(鍒嗛挓) - mdcOverallEquipmentEfficiency.setOtherRestDuration(otherRestDuration); - /* - 璐熻嵎鏃堕棿(灏忔椂) = 宸ヤ綔鏃ュ巻鏃堕棿 - 璁″垝鍋滄満鏃堕棿 - 宸ヤ綔鏃ュ巻鏃堕棿 = 鏃ュ巻鏃堕棿 - 娉曞畾鍋囨棩 - 鍙屼紤鏃� + 鍔犵彮鏃堕棿 - 璁″垝鍋滄満鏃堕棿 = 璁″垝淇濆吇鏃堕暱 + 浼氳/鍩硅鏃堕暱 + 浼氳/鍩硅鏃堕暱 - */ - // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration - // 璐熻嵎鏃堕棿(鍒嗛挓) - BigDecimal loadTime = mdcOverallEquipmentEfficiency.getShiftTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration); - mdcOverallEquipmentEfficiency.setLoadTime(loadTime.divide(new BigDecimal("60"), 1, RoundingMode.HALF_UP)); - // 鏃堕棿寮�鍔ㄧ巼 - BigDecimal timeActuationRate = BigDecimal.ZERO; - if (loadTime.compareTo(BigDecimal.ZERO) == 0) { - mdcOverallEquipmentEfficiency.setTimeActuationRate(BigDecimal.ZERO); - } else { - timeActuationRate = (loadTime.subtract(breakdownDownDuration).subtract(conversionDebugDuration).subtract(materialShortageDuration).subtract(plannedTaskDuration).subtract(inspectDuration).subtract(otherDuration)).divide(loadTime, 4, RoundingMode.HALF_UP); - mdcOverallEquipmentEfficiency.setTimeActuationRate(timeActuationRate); - } - // 鍔犲伐闆朵欢鏁�(浠�) processQuantity - BigDecimal 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); - } + BigDecimal otherRestDuration = mdcPlanCloseService.findPlanTimeDuration(actualWorkDayCount, MdcConstant.OTHER_REST); + mdcOverallEquipmentEfficiency.setOtherRestDuration(otherRestDuration); + /* + 璐熻嵎鏃堕棿(灏忔椂) = 宸ヤ綔鏃ュ巻鏃堕棿 - 璁″垝鍋滄満鏃堕棿 + 宸ヤ綔鏃ュ巻鏃堕棿 = 鏃ュ巻鏃堕棿 - 娉曞畾鍋囨棩 - 鍙屼紤鏃� + 鍔犵彮鏃堕棿 + 璁″垝鍋滄満鏃堕棿 = 璁″垝淇濆吇鏃堕暱 + 浼氳/鍩硅鏃堕暱 + 浼氳/鍩硅鏃堕暱 + */ + // 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)); - // 鎬ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 - // 鏌ヨ涓昏酱杩愯鏃堕棿(鍒嗛挓) - BigDecimal spindleRunDuration = mdcEquipmentStatisticalShiftInfoService.findSpindleRunDuration(equipmentId, validDate, shiftSubId); - if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0) { - mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); - } else { - mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); + // 鏃堕棿寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 + // 鏌ヨ涓昏酱杩愯鏃堕棿(鍒嗛挓) + 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); + + // 鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓) + 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)); } - // 搴熷搧鏁� 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())); - if (mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().compareTo(BigDecimal.ZERO) == 0) { - mdcOverallEquipmentEfficiency.setOverallEquipmentEfficiency(BigDecimal.ONE); - } - result.add(mdcOverallEquipmentEfficiency); + 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); + } + result.add(mdcOverallEquipmentEfficiency); + } super.saveBatch(result); } + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param userId + * @param page + * @param mdcOverallEquipmentEfficiencyVo + * @param req + * @return + */ + @Override + public IPage<MdcOverallEquipmentEfficiency> pageList(String userId, Page<MdcOverallEquipmentEfficiency> page, MdcOverallEquipmentEfficiencyVo mdcOverallEquipmentEfficiencyVo, HttpServletRequest req) { + List<String> equipmentIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getParentId()) && StringUtils.isEmpty(mdcOverallEquipmentEfficiencyVo.getEquipmentId())) { + if ("2".equals(mdcOverallEquipmentEfficiencyVo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcOverallEquipmentEfficiencyVo.getParentId()); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcOverallEquipmentEfficiencyVo.getParentId()); + } + } else if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getEquipmentId())) { + // 鍗曞彴璁惧淇℃伅 + mdcOverallEquipmentEfficiencyVo.setEquipmentIdList(Collections.singletonList(mdcOverallEquipmentEfficiencyVo.getEquipmentId())); + } else { + // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭� + if ("2".equals(mdcOverallEquipmentEfficiencyVo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); + } + } + if (mdcOverallEquipmentEfficiencyVo.getEquipmentIdList() == null || mdcOverallEquipmentEfficiencyVo.getEquipmentIdList().isEmpty()) { + mdcOverallEquipmentEfficiencyVo.setEquipmentIdList(equipmentIds); + } + if (mdcOverallEquipmentEfficiencyVo.getEquipmentIdList() == null || mdcOverallEquipmentEfficiencyVo.getEquipmentIdList().isEmpty()) { + return null; + } + return this.baseMapper.pageList(page, mdcOverallEquipmentEfficiencyVo); + } } -- Gitblit v1.9.3