| | |
| | | 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; |
| | |
| | | */ |
| | | @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(); |
| | | } |
| | | |
| | | |