Crunchy
2024-07-30 49b20ce146fc7c619f41dfaa74a48a1367d37642
performance-server/src/main/java/com/yuanchu/mom/controller/PerformanceShiftController.java
@@ -6,8 +6,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.PerformanceShiftAddDto;
import com.yuanchu.mom.pojo.Enums;
import com.yuanchu.mom.pojo.PerformanceShift;
import com.yuanchu.mom.service.EnumService;
import com.yuanchu.mom.service.PerformanceShiftService;
import com.yuanchu.mom.service.UserService;
import com.yuanchu.mom.utils.StyleMonthUtils;
import com.yuanchu.mom.utils.StyleYearUtils;
import com.yuanchu.mom.vo.Result;
@@ -16,11 +19,19 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
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.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -99,4 +110,49 @@
                    .doWrite((Collection<?>) data.get("data"));
        }
    }
    @Resource
    private EnumService enumService;
    @Resource
    private UserService userService;
    @ApiOperation(value = "临时接口-添加7月份8月份的数据")
    @GetMapping("temporaryInterface")
    public void temporaryInterface() {
        System.out.println("开始给每个人进行排班,默认早班======start");
        // TODO 给每个人都进行排班(默认早班)
        PerformanceShiftAddDto performanceShiftAddDto = new PerformanceShiftAddDto();
        //班次--早(查询字典)
        List<Enums> shiftType = enumService.selectEnumByCategory("班次类型");
        List<String> collect = shiftType.stream().filter(enums -> enums.getLabel().equals("早")).map(enums -> enums.getValue()).collect(Collectors.toList());
        performanceShiftAddDto.setShift(collect.get(0));
        //人员--所有人
        String userIds = userService.getDeviceManager().stream().map(user -> user.getId().toString()).distinct().collect(Collectors.joining(","));
        performanceShiftAddDto.setUserId(userIds);
        //周次--当月所有
        // 获取当前日期
        LocalDate today = LocalDate.of(2024, 8, 15);
        // 获取本月的第一天和最后一天
        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);
            performanceShiftAddDto.setStartWeek(startDateTime);
            performanceShiftAddDto.setEndWeek(endDateTime);
            performanceShiftService.performanceShiftAdd(performanceShiftAddDto);
            startOfWeek = startOfWeek.plusWeeks(1);
        }
        System.out.println("排班结束======end");
    }
}