xuhy
2025-07-02 0f7254953cf629f4a6cbbf18c39292b5984d2b71
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java
@@ -38,6 +38,7 @@
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -164,45 +165,47 @@
                }
            }
            TTemplate tTemplate = templates.stream().filter(e -> e.getId().equals(record.getTemplateId())).findFirst().orElse(null);
            // todo 应生成计划数
            record.setNum1(1);
            LocalDateTime createTime = tTemplate.getCreateTime();
            // 转化为yyyy-MM-dd字符串
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.append(createTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))).append(" 至 ");
            List<TTemplateDetail> tTemplateDetail = templateDetails.stream().filter(e -> e.getTemplateId().equals(record.getTemplateId())).collect(Collectors.toList());
            int temp = 0;
            if (!tTemplateDetail.isEmpty()) {
                for (TTemplateDetail templateDetail : tTemplateDetail) {
                    Integer cycle = templateDetail.getCycle();
                    Integer cycleType = templateDetail.getCycleType();
                    switch (cycleType) {
                        case 1:
                            temp = cycle;
                            break;
                        case 2:
                            temp = cycle * 7;
            if(Objects.nonNull(tTemplate)){
                // todo 应生成计划数
                LocalDateTime createTime = tTemplate.getCreateTime();
                // 转化为yyyy-MM-dd字符串
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.append(createTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))).append(" 至 ");
                List<TTemplateDetail> tTemplateDetail = templateDetails.stream().filter(e -> e.getTemplateId().equals(record.getTemplateId())).collect(Collectors.toList());
                int temp = 0;
                if (!tTemplateDetail.isEmpty()) {
                    for (TTemplateDetail templateDetail : tTemplateDetail) {
                        Integer cycle = templateDetail.getCycle();
                        Integer cycleType = templateDetail.getCycleType();
                        switch (cycleType) {
                            case 1:
                                temp = cycle;
                                break;
                            case 2:
                                temp = cycle * 7;
                            break;
                        case 3:
                            temp = cycle * 30;
                            break;
                        case 4:
                            temp = cycle * 90;
                            break;
                        case 5:
                            temp = cycle * 365;
                            break;
                                break;
                            case 3:
                                temp = cycle * 30;
                                break;
                            case 4:
                                temp = cycle * 90;
                                break;
                            case 5:
                                temp = cycle * 365;
                                break;
                        }
                    }
                    LocalDateTime localDateTime = tTemplate.getCreateTime().plusDays(temp);
                    stringBuilder.append(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                    record.setTemplateDate(stringBuilder.toString());
                }
                LocalDateTime localDateTime = tTemplate.getCreateTime().plusDays(temp);
                stringBuilder.append(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                record.setTemplateDate(stringBuilder.toString());
                if (record.getNum2() != 0) {
                    record.setNum4(new BigDecimal((double) record.getNum2() / (double) record.getNum1() * 100).setScale(2, RoundingMode.HALF_DOWN));
                } else {
                    record.setNum4(new BigDecimal(0));
                }
            }
            if (record.getNum2() != 0) {
                record.setNum4(new BigDecimal((double) record.getNum2() / (double) record.getNum1() * 100).setScale(2, RoundingMode.HALF_DOWN));
            } else {
                record.setNum4(new BigDecimal(0));
            }
            String templateId = record.getTemplateId();
            Long count = leaveService.lambdaQuery()