zhuo
2024-07-23 5ed5f51d479989d5b2149b09c82b6b3ea495b589
system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java
@@ -1,42 +1,44 @@
package com.yuanchu.mom;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.yuanchu.mom.service.PerformanceShiftService;
import com.yuanchu.mom.utils.StyleMonthUtils;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.TemporalAdjusters;
import java.time.temporal.WeekFields;
import java.util.Locale;
@SpringBootTest
class SystemRunApplicationTest {
    @Autowired
    private PerformanceShiftService performanceShiftService;
    private static String fileName = "D:\\" + System.currentTimeMillis() + ".xlsx";
    @Test
    void  contextLoads() throws Exception {
        Map<Object, Object> data = performanceShiftService.exportToMonthExcel("2024-05-01 00:00:00", null, null);
        // 设置单元格样式
        HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(StyleMonthUtils.getHeadStyle(), StyleMonthUtils.getContentStyle());
        EasyExcel.write(fileName)
                .head((List<List<String>>) data.get("header"))
                .registerWriteHandler(horizontalCellStyleStrategy)
                .sheet("月度")
                .doWrite((Collection<?>) data.get("data"));
//        String url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?corpid=wwa423654b975441ac&corpsecret=J3fbMJoTn3LmrWDobvS5JpU8N0TvEbGkVl8OhvIsol0";
//        String s = HttpUtil.get(url);
//        System.out.println(s);
//        Map<String, Object> unmarshal = JSONObject.parseObject(s, Map.class);
//        String checkInRecords = "https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata?access_token=" + unmarshal.get("access_token");
//        String body = HttpRequest.post(checkInRecords).execute().body();
//        System.out.println(body);
    void  contextLoads() {
                // 获取当前日期
                LocalDate today = LocalDate.now();
                // 获取本月的第一天和最后一天
                LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
                LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
                // 获取周字段信息(根据区域设置)
                WeekFields weekFields = WeekFields.of(Locale.getDefault());
                // 获取本月第一天的周一
                LocalDate startOfWeek = firstDayOfMonth.with(TemporalAdjusters.previousOrSame(weekFields.getFirstDayOfWeek()));
                // 遍历本月所有天数,找出每周的第一天和最后一天
                LocalDate endOfWeek;
                while (startOfWeek.isBefore(firstDayOfMonth.plusMonths(1))) {
                    endOfWeek = startOfWeek.plusDays(6);
                    LocalDateTime startDateTime = LocalDateTime.of(startOfWeek, LocalTime.MIDNIGHT);
                    LocalDateTime endDateTime = LocalDateTime.of(endOfWeek, LocalTime.MIDNIGHT);
                    System.out.println("Week starts on " + startDateTime + " and ends on " + endDateTime);
                    startOfWeek = startOfWeek.plusWeeks(1);
                }
    }
}