| | |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | head.add(ExcelUtils.COLUMN_MERGE); |
| | | head.add("企业管理科"); |
| | | head.add(ExcelUtils.COLUMN_MERGE); |
| | | head.add("企业管理科2025年1月-2025年3月劳保发放计划表"); |
| | | head.add(""); |
| | | for (int i = 0; i < sys_lavor_issue.size(); i++) { |
| | | if (i == 0) { |
| | | head.add(ExcelUtils.COLUMN_MERGE); |
| | | } else { |
| | | head.add(ExcelUtils.COLUMN_MERGE); |
| | | } |
| | | head.add(ExcelUtils.COLUMN_MERGE); |
| | | } |
| | | |
| | | List<Object> head1 = new ArrayList<>(); |
| | | head1.add("开始年/月"); |
| | | head1.add(ExcelUtils.COLUMN_MERGE); |
| | | head1.add("结束年/月"); |
| | | head1.add(ExcelUtils.COLUMN_MERGE); |
| | | head1.add(""); |
| | | for (int i = 0; i < sys_lavor_issue.size(); i++) { |
| | | head1.add(""); |
| | | head1.add(ExcelUtils.COLUMN_MERGE); |
| | | } |
| | | |
| | | List<Object> head2 = new ArrayList<>(); |
| | |
| | | head2.add("1"); |
| | | head2.add("2025"); |
| | | head2.add("3"); |
| | | head2.add("企业管理科2025年1月-2025年3月劳保发放计划表"); |
| | | for (int i = 0; i < sys_lavor_issue.size(); i++) { |
| | | head2.add(""); |
| | | head2.add(ExcelUtils.COLUMN_MERGE); |
| | | } |
| | | |
| | | List<Object> head3 = new ArrayList<>(); |
| | | head3.add("部门名称"); |
| | | head3.add(ExcelUtils.COLUMN_MERGE); |
| | |
| | | for (SysDictData sysDictData : sys_lavor_issue) { |
| | | head3.add(sysDictData.getDictLabel()); |
| | | } |
| | | head3.add("签名"); |
| | | |
| | | // 填充数据 |
| | | List<Object> head4 = new ArrayList<>(); |
| | | List<LaborIssue> laborIssues = lavorIssueMapper.selectList(null); |
| | | if(CollectionUtils.isEmpty(laborIssues)){ |
| | | throw new RuntimeException("数据为空"); |
| | | } |
| | | |
| | | Map<String, List<LaborIssue>> collect = laborIssues.stream().collect(Collectors.groupingBy(LaborIssue::getStaffNo)); |
| | | collect.forEach((k,v)->{ |
| | | head4.add(v.get(0).getDeptName()); |
| | | head4.add(ExcelUtils.COLUMN_MERGE); |
| | | head4.add(v.get(0).getStaffName()); |
| | | head4.add(v.get(0).getStaffNo()); |
| | | // 判断字典数据 |
| | | for (SysDictData sysDictData : sys_lavor_issue) { |
| | | long sum = v.stream().filter(laborIssue -> laborIssue.getDictId().equals(sysDictData.getDictValue())).mapToLong(LaborIssue::getNum).sum(); |
| | | head4.add(sum); |
| | | } |
| | | |
| | | }); |
| | | |
| | | List<List<Object>> sheetDataList = new ArrayList<>(); |
| | | sheetDataList.add(head); |
| | | sheetDataList.add(head1); |
| | | sheetDataList.add(head2); |
| | | sheetDataList.add(head3); |
| | | sheetDataList.add(head4); |
| | | ExcelUtils.export(response, "劳保发放计划表", sheetDataList); |
| | | } |
| | | |