MesPieceSalaryReportController.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.jeesite.modules.mes.web;
  2. import java.time.LocalDate;
  3. import java.time.LocalDateTime;
  4. import java.time.LocalTime;
  5. import java.time.format.DateTimeFormatter;
  6. import java.util.List;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import org.apache.shiro.authz.annotation.RequiresPermissions;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Controller;
  12. import org.springframework.ui.Model;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.ResponseBody;
  15. import com.jeesite.common.entity.Page;
  16. import com.jeesite.common.lang.DateUtils;
  17. import com.jeesite.common.lang.StringUtils;
  18. import com.jeesite.common.utils.excel.ExcelExport;
  19. import com.jeesite.common.web.BaseController;
  20. import com.jeesite.modules.mes.entity.MesPieceSalaryReport;
  21. import com.jeesite.modules.mes.service.MesPieceSalaryReportService;
  22. /**
  23. * 计件工资核算Controller
  24. */
  25. @Controller
  26. @RequestMapping(value = "${adminPath}/mes/mesPieceSalaryReport")
  27. public class MesPieceSalaryReportController extends BaseController {
  28. private static final DateTimeFormatter DATE_TIME_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
  29. @Autowired
  30. private MesPieceSalaryReportService mesPieceSalaryReportService;
  31. @RequiresPermissions("mes:mesPieceSalaryReport:view")
  32. @RequestMapping(value = {"list", ""})
  33. public String list(MesPieceSalaryReport report, Model model) {
  34. // 默认按当月统计
  35. fillDefaultMonthRange(report);
  36. model.addAttribute("mesPieceSalaryReport", report);
  37. return "modules/mes/mesPieceSalaryReportList";
  38. }
  39. @RequiresPermissions("mes:mesPieceSalaryReport:view")
  40. @RequestMapping(value = "listData")
  41. @ResponseBody
  42. public Page<MesPieceSalaryReport> listData(MesPieceSalaryReport report,
  43. HttpServletRequest request, HttpServletResponse response) {
  44. report.setPage(new Page<>(request, response));
  45. return mesPieceSalaryReportService.findPage(report);
  46. }
  47. @RequiresPermissions("mes:mesPieceSalaryReport:view")
  48. @RequestMapping(value = "exportData")
  49. public void exportData(MesPieceSalaryReport report, HttpServletResponse response) {
  50. List<MesPieceSalaryReport> list = mesPieceSalaryReportService.findList(report);
  51. String fileName = "\u8ba1\u4ef6\u5de5\u8d44\u8868" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
  52. try (ExcelExport ee = new ExcelExport("\u8ba1\u4ef6\u5de5\u8d44\u8868", MesPieceSalaryReport.class)) {
  53. ee.setDataList(list).write(response, fileName);
  54. }
  55. }
  56. @RequiresPermissions("mes:mesPieceSalaryReport:view")
  57. @RequestMapping(value = "detailData")
  58. @ResponseBody
  59. public List<MesPieceSalaryReport> detailData(MesPieceSalaryReport report) {
  60. return mesPieceSalaryReportService.findDetailList(report);
  61. }
  62. /**
  63. * 起止时间为空时,默认填充当月第一天 00:00 至当月最后一天 23:59
  64. */
  65. private void fillDefaultMonthRange(MesPieceSalaryReport report) {
  66. if (report == null) {
  67. return;
  68. }
  69. if (StringUtils.isNotBlank(report.getStartDate()) || StringUtils.isNotBlank(report.getEndDate())) {
  70. return;
  71. }
  72. LocalDate today = LocalDate.now();
  73. LocalDateTime monthStart = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.of(0, 0));
  74. LocalDateTime monthEnd = LocalDateTime.of(today.withDayOfMonth(today.lengthOfMonth()), LocalTime.of(23, 59));
  75. report.setStartDate(monthStart.format(DATE_TIME_FMT));
  76. report.setEndDate(monthEnd.format(DATE_TIME_FMT));
  77. }
  78. }