package com.jeesite.modules.mes.web; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.jeesite.common.entity.Page; import com.jeesite.common.lang.DateUtils; import com.jeesite.common.lang.StringUtils; import com.jeesite.common.utils.excel.ExcelExport; import com.jeesite.common.web.BaseController; import com.jeesite.modules.mes.entity.MesPieceSalaryReport; import com.jeesite.modules.mes.service.MesPieceSalaryReportService; /** * 计件工资核算Controller */ @Controller @RequestMapping(value = "${adminPath}/mes/mesPieceSalaryReport") public class MesPieceSalaryReportController extends BaseController { private static final DateTimeFormatter DATE_TIME_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @Autowired private MesPieceSalaryReportService mesPieceSalaryReportService; @RequiresPermissions("mes:mesPieceSalaryReport:view") @RequestMapping(value = {"list", ""}) public String list(MesPieceSalaryReport report, Model model) { // 默认按当月统计 fillDefaultMonthRange(report); model.addAttribute("mesPieceSalaryReport", report); return "modules/mes/mesPieceSalaryReportList"; } @RequiresPermissions("mes:mesPieceSalaryReport:view") @RequestMapping(value = "listData") @ResponseBody public Page listData(MesPieceSalaryReport report, HttpServletRequest request, HttpServletResponse response) { report.setPage(new Page<>(request, response)); return mesPieceSalaryReportService.findPage(report); } @RequiresPermissions("mes:mesPieceSalaryReport:view") @RequestMapping(value = "exportData") public void exportData(MesPieceSalaryReport report, HttpServletResponse response) { List list = mesPieceSalaryReportService.findList(report); String fileName = "\u8ba1\u4ef6\u5de5\u8d44\u8868" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; try (ExcelExport ee = new ExcelExport("\u8ba1\u4ef6\u5de5\u8d44\u8868", MesPieceSalaryReport.class)) { ee.setDataList(list).write(response, fileName); } } @RequiresPermissions("mes:mesPieceSalaryReport:view") @RequestMapping(value = "detailData") @ResponseBody public List detailData(MesPieceSalaryReport report) { return mesPieceSalaryReportService.findDetailList(report); } /** * 起止时间为空时,默认填充当月第一天 00:00 至当月最后一天 23:59 */ private void fillDefaultMonthRange(MesPieceSalaryReport report) { if (report == null) { return; } if (StringUtils.isNotBlank(report.getStartDate()) || StringUtils.isNotBlank(report.getEndDate())) { return; } LocalDate today = LocalDate.now(); LocalDateTime monthStart = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.of(0, 0)); LocalDateTime monthEnd = LocalDateTime.of(today.withDayOfMonth(today.lengthOfMonth()), LocalTime.of(23, 59)); report.setStartDate(monthStart.format(DATE_TIME_FMT)); report.setEndDate(monthEnd.format(DATE_TIME_FMT)); } }