maven
2025-12-11 6bbe1b00e82ff9dd874242a0ed8a5f5983deeab0
src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -287,18 +287,21 @@
            queryWrapper.ge(QualityInspect::getCheckTime, monthStart)
                    .le(QualityInspect::getCheckTime, monthEnd); // 筛选当月数据
            List<QualityInspect> monthInspects = qualityStatisticsMapper.selectList(queryWrapper);
            supplierNum.add(supplierNum.add(monthInspects.stream()
            BigDecimal reduce = monthInspects.stream()
                    .filter(inspect -> inspect.getInspectType().equals(0))
                    .map(QualityInspect::getQuantity)
                    .reduce(BigDecimal.ZERO, BigDecimal::add)));
            factoryNum.add(factoryNum.add(monthInspects.stream()
                    .reduce(BigDecimal.ZERO, BigDecimal::add);
            supplierNum = supplierNum.add(reduce);
            BigDecimal reduce1 = monthInspects.stream()
                    .filter(inspect -> inspect.getInspectType().equals(1))
                    .map(QualityInspect::getQuantity)
                    .reduce(BigDecimal.ZERO, BigDecimal::add)));
            processNum.add(processNum.add(monthInspects.stream()
                    .reduce(BigDecimal.ZERO, BigDecimal::add);
            factoryNum= factoryNum.add(reduce1);
            BigDecimal reduce2 = monthInspects.stream()
                    .filter(inspect -> inspect.getInspectType().equals(2))
                    .map(QualityInspect::getQuantity)
                    .reduce(BigDecimal.ZERO, BigDecimal::add)));
                    .reduce(BigDecimal.ZERO, BigDecimal::add);
            processNum = processNum.add(reduce2);
            // 构建当月统计项
            QualityStatisticsItem item = new QualityStatisticsItem();
@@ -452,16 +455,16 @@
            // 过程合格率
            long processCount = qualityInspects.stream().filter(qualityInspect -> qualityInspect.getInspectType() == 1).count();
            long countOne = qualityInspects.stream().filter(qualityInspect -> "合格".equals(qualityInspect.getCheckResult()) && qualityInspect.getInspectType() == 1).count();
            if(count > 0){
                qualityProductQualifiedRateDto.setRawMaterialQualifiedRate(new BigDecimal(processCount)
            if(countOne > 0){
                qualityProductQualifiedRateDto.setProcessQualifiedRate(new BigDecimal(processCount)
                        .divide(new BigDecimal( countOne), 4, RoundingMode.HALF_UP)
                        .multiply(BigDecimal.valueOf(100.0)));
            }
            // 出厂合格率
            long factoryCount = qualityInspects.stream().filter(qualityInspect -> qualityInspect.getInspectType() == 2).count();
            long countTwo = qualityInspects.stream().filter(qualityInspect -> "合格".equals(qualityInspect.getCheckResult()) && qualityInspect.getInspectType() == 2).count();
            if(count > 0){
                qualityProductQualifiedRateDto.setRawMaterialQualifiedRate(new BigDecimal(factoryCount)
            if(countTwo > 0){
                qualityProductQualifiedRateDto.setFactoryQualifiedRate(new BigDecimal(factoryCount)
                        .divide(new BigDecimal( countTwo), 4, RoundingMode.HALF_UP)
                        .multiply(BigDecimal.valueOf(100.0)));
            }
@@ -486,7 +489,7 @@
                .map(ProcurementRecordStorage::getInboundNum)
                .reduce(BigDecimal.ZERO, BigDecimal::add);
        if(reduce.compareTo(BigDecimal.ZERO) > 0){
            qualityProductQualifiedRateDto.setInventoryTurnoverRate(reduce.divide(reduceOne, 4, RoundingMode.HALF_UP)
            qualityProductQualifiedRateDto.setInventoryTurnoverRate(reduceOne.divide(reduce, 4, RoundingMode.HALF_UP)
                    .multiply(BigDecimal.valueOf(100.0)));
        }