liyong
12 小时以前 1ca5584d7e3200a9af65a099bd26d3593e2ba702
src/main/java/com/ruoyi/staff/controller/PersonalShiftController.java
@@ -12,13 +12,15 @@
import com.ruoyi.staff.service.PersonalShiftService;
import com.ruoyi.staff.utils.StyleMonthUtils;
import com.ruoyi.staff.utils.StyleYearUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -33,65 +35,76 @@
 */
@RestController
@RequestMapping("/personalShift")
@Api(tags = "人员排班")
@Tag(name = "人员排班")
@AllArgsConstructor
public class PersonalShiftController {
    @Autowired
    private PersonalShiftService personalShiftService;
    @ApiOperation("人员排班")
    @Operation(summary = "人员排班")
    @PostMapping("/add")
    public R add(@RequestBody PerformanceShiftAddDto performanceShiftAddDto){
        return R.ok(personalShiftService.performanceShiftAdd(performanceShiftAddDto));
    }
    @ApiOperation(value = "月份分页查询")
    @Operation(summary = "月份分页查询")
    @GetMapping("page")
    public R performanceShiftPage(Integer size, Integer current, String time, String userName, Integer sysDeptId) {
        return R.ok(personalShiftService.performanceShiftPage(new Page<>(current, size), time, userName, sysDeptId));
    }
    @ApiOperation(value = "年份分页查询")
    @Operation(summary = "年份分页查询")
    @GetMapping("pageYear")
    public R performanceShiftPageYear(Integer size, Integer current, String time, String userName, Integer sysDeptId) {
        return R.ok(personalShiftService.performanceShiftPageYear(new Page<>(current, size), time, userName, sysDeptId));
    }
    @ApiOperation(value = "班次状态修改")
    @Operation(summary = "班次状态修改")
    @PostMapping("update")
    public R performanceShiftUpdate(@RequestBody PersonalShift personalShift) {
        personalShiftService.performanceShiftUpdate(personalShift);
        return R.ok();
    }
    @ApiOperation(value = "导出")
    @Operation(summary = "导出")
    @GetMapping("export")
    public void exportToExcel(@NotNull(message = "时间不能为空!") String time, String userName, Integer sysDeptId, Boolean isMonth, HttpServletResponse response) throws Exception {
        Map<Object, Object> data;
        ServletOutputStream out = response.getOutputStream();
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setHeader("requestType","excel");
        response.setHeader("Access-Control-Expose-Headers", "requestType");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + time + ".xlsx");
        if (!isMonth) {
            data = personalShiftService.exportToYearExcel(time, userName, sysDeptId);
            // 设置单元格样式
            HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(StyleYearUtils.getHeadStyle(), StyleYearUtils.getContentStyle());
            // 保存到第一个sheet中
            EasyExcel.write(response.getOutputStream())
            Map<Object, Object> data = personalShiftService.exportToYearExcel(time, userName, sysDeptId);
            HorizontalCellStyleStrategy style = new HorizontalCellStyleStrategy(
                    StyleYearUtils.getHeadStyle(),
                    StyleYearUtils.getContentStyle()
            );
            EasyExcel.write(out)
                    .head((List<List<String>>) data.get("header"))
                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 自适应列宽
                    .registerWriteHandler(horizontalCellStyleStrategy)
                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .registerWriteHandler(style)
                    .sheet("年度")
                    .doWrite((Collection<?>) data.get("data"));
        } else {
            data = personalShiftService.exportToMonthExcel(time, userName, sysDeptId);
            // 设置单元格样式
            HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(StyleMonthUtils.getHeadStyle(), StyleMonthUtils.getContentStyle());
            EasyExcel.write(response.getOutputStream())
            Map<Object, Object> data = personalShiftService.exportToMonthExcel(time, userName, sysDeptId);
            HorizontalCellStyleStrategy style = new HorizontalCellStyleStrategy(
                    StyleMonthUtils.getHeadStyle(),
                    StyleMonthUtils.getContentStyle()
            );
            EasyExcel.write(out)
                    .head((List<List<String>>) data.get("header"))
                    .registerWriteHandler(horizontalCellStyleStrategy)
                    .registerWriteHandler(style)
                    .sheet("月度")
                    .doWrite((Collection<?>) data.get("data"));
        }
        out.flush();
    }