| | |
| | | } |
| | | queryWrapper.orderByAsc(MdcEquipment::getEquipmentName); |
| | | List<MdcEquipment> equipmentList = mdcEquipmentService.list(queryWrapper); |
| | | |
| | | vo.setStartTime(DateUtils.format(DateUtils.toDate(vo.getStartTime(), DateUtils.STRDATE), DateUtils.STR_DATE)); |
| | | vo.setEndTime(DateUtils.format(DateUtils.toDate(vo.getEndTime(), DateUtils.STRDATE), DateUtils.STR_DATE)); |
| | | //查询oee数据 |
| | | List<MdcOeeInfo> oeeList = this.baseMapper.oeeList(vo); |
| | | //数据处理 |
| | |
| | | BigDecimal oeeRate = BigDecimal.ZERO; |
| | | if (!mdcOeeInfoList.isEmpty()) { |
| | | BigDecimal count = mdcOeeInfoList.stream().map(MdcOeeInfo::getOeeRate).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | oeeRate = count.divide(new BigDecimal(mdcOeeInfoList.size()), 2, RoundingMode.HALF_UP); |
| | | oeeRate = count.divide(new BigDecimal(mdcOeeInfoList.size()), 4, RoundingMode.HALF_UP); |
| | | mdcOeeResultDto.setOeeRate(oeeRate); |
| | | } |
| | | long rate = oeeRate.multiply(new BigDecimal("100")).longValue(); |
| | |
| | | .eq(MdcProductDayschedule::getEquipmentId, equipment.getEquipmentid())); |
| | | if (productDayScheduleList != null && !productDayScheduleList.isEmpty()) { |
| | | MdcProductDayschedule mdcProductDayschedule; |
| | | MdcOeeInfo mdcOeeInfo = new MdcOeeInfo(); |
| | | for (MdcShiftSub mdcShiftSub : mdcShiftSubList) { |
| | | MdcOeeInfo mdcOeeInfo = new MdcOeeInfo(); |
| | | String id = mdcShiftSub.getId(); |
| | | if (productDayScheduleList.stream().anyMatch(productDayschedule -> productDayschedule.getOrderId().substring(8, 10).equals(id))) { |
| | | mdcOeeInfo.setEquipmentId(equipment.getEquipmentid()); |
| | |
| | | continue; |
| | | } |
| | | mdcOeeInfo.setScheduleNum(mdcComponentInfo.getScheduleNum()); |
| | | |
| | | BigDecimal oeeRate = mdcOeeInfo.getProcessLong().multiply(new BigDecimal(mdcOeeInfo.getPlanNum())).multiply(new BigDecimal(mdcOeeInfo.getQualityNum())) |
| | | .divide(mdcEquipmentStatisticalShiftInfo.getTotalLong(), 2, RoundingMode.HALF_UP) |
| | | .divide(new BigDecimal(mdcOeeInfo.getScheduleNum()), 2, RoundingMode.HALF_UP) |
| | | .divide(new BigDecimal(mdcOeeInfo.getCompleteNum()), 2, RoundingMode.HALF_UP); |
| | | BigDecimal oeeRate = BigDecimal.ZERO; |
| | | if (!mdcOeeInfo.getCompleteNum().equals(0)) { |
| | | oeeRate = mdcOeeInfo.getProcessLong().multiply(new BigDecimal(mdcOeeInfo.getPlanNum())).multiply(new BigDecimal(mdcOeeInfo.getQualityNum())) |
| | | .divide(mdcEquipmentStatisticalShiftInfo.getTotalLong(), 4, RoundingMode.HALF_UP) |
| | | .divide(new BigDecimal(mdcOeeInfo.getScheduleNum()), 4, RoundingMode.HALF_UP) |
| | | .divide(new BigDecimal(mdcOeeInfo.getCompleteNum()), 4, RoundingMode.HALF_UP); |
| | | } |
| | | mdcOeeInfo.setOeeRate(oeeRate); |
| | | result.add(mdcOeeInfo); |
| | | } |
| | |
| | | this.saveBatch(result); |
| | | } |
| | | } |
| | | |
| | | } |