Lius
2024-11-04 d603739c0320f355cfc3152865918729fea790de
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
@@ -105,6 +105,9 @@
            }
            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);
            //数据处理
@@ -134,7 +137,7 @@
                    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();
@@ -190,8 +193,8 @@
                    .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());
@@ -241,11 +244,13 @@
                            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);
                    }
@@ -256,5 +261,4 @@
            this.saveBatch(result);
        }
    }
}