zouyu
6 小时以前 52a7c9b093bcb05ee128b3ad8338007aad2cfccb
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java
@@ -18,15 +18,18 @@
import com.ruoyi.inspect.vo.RawMaterialSupplierVo;
import com.ruoyi.inspect.vo.RawProductAnalysisVo;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -55,35 +58,43 @@
        // 格式化字段, 避免报错
        this.formatDataAnalysisDto(dataAnalysisDto);
        // 获取当前日期
        DateTime now = DateUtil.date();
        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
            return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
        } else if (dataAnalysisDto.getDateType().equals("1")) {
            // 获取本周的开始时间(周一 00:00:00)
            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
            // 获取本周的结束时间(周日 23:59:59)
            // 获取本周的结束时间(周日 23:59:59)
            DateTime endOfWeek = DateUtil.endOfWeek(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto);
            return maps;
        } else if (dataAnalysisDto.getDateType().equals("2")) {
            // 获取当前月的开始时间(每月1号 00:00:00)
            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
            // 获取当前月的结束时间(本月最后一天 23:59:59)
            DateTime endOfMonth = DateUtil.endOfMonth(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
            LocalDate startDate = endDate.minusDays(6L);
            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
        }
//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
//            return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
//        } else
//            if (dataAnalysisDto.getDateType().equals("1")) {
////            // 获取本周的开始时间(周一 00:00:00)
////            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
////            // 获取本周的结束时间(周日 23:59:59)
////            // 获取本周的结束时间(周日 23:59:59)
////            DateTime endOfWeek = DateUtil.endOfWeek(now);
////            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
////            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
//            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto);
//            return maps;
//        } else
            if (Arrays.asList("1","2").contains(dataAnalysisDto.getDateType())) {
//            // 获取当前月的开始时间(每月1号 00:00:00)
//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
//            // 获取当前月的结束时间(本月最后一天 23:59:59)
//            DateTime endOfMonth = DateUtil.endOfMonth(now);
//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
            return maps;
        } else if (dataAnalysisDto.getDateType().equals("3")) {
            // 获取当前年的开始时间(每年1月1日 00:00:00)
            DateTime beginOfYear = DateUtil.beginOfYear(now);
            // 获取当前年的结束时间(每年12月31日 23:59:59)
            DateTime endOfYear = DateUtil.endOfYear(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
//            // 获取当前年的开始时间(每年1月1日 00:00:00)
//            DateTime beginOfYear = DateUtil.beginOfYear(now);
//            // 获取当前年的结束时间(每年12月31日 23:59:59)
//            DateTime endOfYear = DateUtil.endOfYear(now);
//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByYear(dataAnalysisDto);
            return maps;
        }
@@ -105,35 +116,40 @@
        // 格式化字段, 避免报错
        this.formatDataAnalysisDto(dataAnalysisDto);
        // 获取当前日期
        DateTime now = DateUtil.date();
        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
        } else if (dataAnalysisDto.getDateType().equals("1")) {
            // 获取本周的开始时间(周一 00:00:00)
            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
            // 获取本周的结束时间(周日 23:59:59)
            DateTime endOfWeek = DateUtil.endOfWeek(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
        } else if (dataAnalysisDto.getDateType().equals("2")) {
            // 获取当前月的开始时间(每月1号 00:00:00)
            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
            // 获取当前月的结束时间(本月最后一天 23:59:59)
            DateTime endOfMonth = DateUtil.endOfMonth(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
        } else if (dataAnalysisDto.getDateType().equals("3")) {
            // 获取当前年的开始时间(每年1月1日 00:00:00)
            DateTime beginOfYear = DateUtil.beginOfYear(now);
            // 获取当前年的结束时间(每年12月31日 23:59:59)
            DateTime endOfYear = DateUtil.endOfYear(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
            LocalDate startDate = endDate.minusDays(6L);
            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
        }
        Map<String, Object> rawPassRateByCake = dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto);
        return rawPassRateByCake;
//        DateTime now = DateUtil.date();
//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
//
//        } else
//            if (dataAnalysisDto.getDateType().equals("1")) {
//            // 获取本周的开始时间(周一 00:00:00)
//            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
//            // 获取本周的结束时间(周日 23:59:59)
//            DateTime endOfWeek = DateUtil.endOfWeek(now);
//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
//            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
//        } else if (dataAnalysisDto.getDateType().equals("2")) {
//            // 获取当前月的开始时间(每月1号 00:00:00)
//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
//            // 获取当前月的结束时间(本月最后一天 23:59:59)
//            DateTime endOfMonth = DateUtil.endOfMonth(now);
//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
//        } else if (dataAnalysisDto.getDateType().equals("3")) {
//            // 获取当前年的开始时间(每年1月1日 00:00:00)
//            DateTime beginOfYear = DateUtil.beginOfYear(now);
//            // 获取当前年的结束时间(每年12月31日 23:59:59)
//            DateTime endOfYear = DateUtil.endOfYear(now);
//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
//        }
        return dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto);
    }
    @Override
@@ -142,34 +158,39 @@
        this.formatDataAnalysisDto(dataAnalysisDto);
        // 获取当前日期
        DateTime now = DateUtil.date();
        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
        } else if (dataAnalysisDto.getDateType().equals("1")) {
            // 获取本周的开始时间(周一 00:00:00)
            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
            // 获取本周的结束时间(周日 23:59:59)
            DateTime endOfWeek = DateUtil.endOfWeek(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
        } else if (dataAnalysisDto.getDateType().equals("2")) {
            // 获取当前月的开始时间(每月1号 00:00:00)
            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
            // 获取当前月的结束时间(本月最后一天 23:59:59)
            DateTime endOfMonth = DateUtil.endOfMonth(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
        } else if (dataAnalysisDto.getDateType().equals("3")) {
            // 获取当前年的开始时间(每年1月1日 00:00:00)
            DateTime beginOfYear = DateUtil.beginOfYear(now);
            // 获取当前年的结束时间(每年12月31日 23:59:59)
            DateTime endOfYear = DateUtil.endOfYear(now);
            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
            LocalDate startDate = endDate.minusDays(6L);
            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
        }
//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
//
//        } else if (dataAnalysisDto.getDateType().equals("1")) {
//            // 获取本周的开始时间(周一 00:00:00)
//            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
//            // 获取本周的结束时间(周日 23:59:59)
//            DateTime endOfWeek = DateUtil.endOfWeek(now);
//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
//            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
//        } else if (dataAnalysisDto.getDateType().equals("2")) {
//            // 获取当前月的开始时间(每月1号 00:00:00)
//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
//            // 获取当前月的结束时间(本月最后一天 23:59:59)
//            DateTime endOfMonth = DateUtil.endOfMonth(now);
//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
//        } else if (dataAnalysisDto.getDateType().equals("3")) {
//            // 获取当前年的开始时间(每年1月1日 00:00:00)
//            DateTime beginOfYear = DateUtil.beginOfYear(now);
//            // 获取当前年的结束时间(每年12月31日 23:59:59)
//            DateTime endOfYear = DateUtil.endOfYear(now);
//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
//        }
        List<MaterialPropTableDTO> rawPassRateByCake = dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto);
        return rawPassRateByCake;
        return dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto);
    }
    /**