Commit 7b0cd554 authored by nie'hong's avatar nie'hong

完善工时统计

parent 559c5daf
...@@ -377,6 +377,11 @@ public class StatisticsServiceImpl implements StatisticsService { ...@@ -377,6 +377,11 @@ public class StatisticsServiceImpl implements StatisticsService {
public HSSFWorkbook exportWorkTimeExcel(GetMonthlyCollectParam param) { public HSSFWorkbook exportWorkTimeExcel(GetMonthlyCollectParam param) {
log.info("StatisticsServiceImpl[]exportWorkTimeExcel[]input.param{}" + param); log.info("StatisticsServiceImpl[]exportWorkTimeExcel[]input.param{}" + param);
PageInfo dayWorkTimeOfMonth = this.getDayWorkTimeOfMonth(param); PageInfo dayWorkTimeOfMonth = this.getDayWorkTimeOfMonth(param);
// 返回一个“暂无数据”的Excel
if (CollectionUtil.isEmpty(dayWorkTimeOfMonth.getList())) {
HSSFWorkbook sheets = this.creatEmptyHSSFWorkbook();
return sheets;
}
Date date = DateUtil.convertStrToDate(param.getYear() + "-" + param.getMonth(), "yyyy-MM"); Date date = DateUtil.convertStrToDate(param.getYear() + "-" + param.getMonth(), "yyyy-MM");
// 传参的时间当月总天数 // 传参的时间当月总天数
int dayCount = DateUtil.getMonthDaysArray(date).length; int dayCount = DateUtil.getMonthDaysArray(date).length;
...@@ -735,9 +740,7 @@ public class StatisticsServiceImpl implements StatisticsService { ...@@ -735,9 +740,7 @@ public class StatisticsServiceImpl implements StatisticsService {
log.info("StatisticsServiceImpl[]exportUserStatistics[]param{}" + userId + deptId + startDate + endDate); log.info("StatisticsServiceImpl[]exportUserStatistics[]param{}" + userId + deptId + startDate + endDate);
List<UserWorkTimeStatisticsByProject> userWorkTimeStatisticsReport = this.getUserWorkTimeStatisticsReport(userId, deptId, startDate, endDate); List<UserWorkTimeStatisticsByProject> userWorkTimeStatisticsReport = this.getUserWorkTimeStatisticsReport(userId, deptId, startDate, endDate);
if (CollectionUtil.isEmpty(userWorkTimeStatisticsReport)) { if (CollectionUtil.isEmpty(userWorkTimeStatisticsReport)) {
HSSFWorkbook sheets = new HSSFWorkbook(); HSSFWorkbook sheets = this.creatEmptyHSSFWorkbook();
HSSFSheet sheet = sheets.createSheet();
sheet.createRow(0).createCell(0).setCellValue("暂无数据");
return sheets; return sheets;
} }
// 部门信息 // 部门信息
...@@ -924,6 +927,11 @@ public class StatisticsServiceImpl implements StatisticsService { ...@@ -924,6 +927,11 @@ public class StatisticsServiceImpl implements StatisticsService {
List<ProjectStatisticsByMonth> projectStatisticsByMonths1 = workProjectTimeCostMapper.selectListStatistics(map); List<ProjectStatisticsByMonth> projectStatisticsByMonths1 = workProjectTimeCostMapper.selectListStatistics(map);
map.replace("isAll", true); map.replace("isAll", true);
List<ProjectStatisticsByMonth> projectStatisticsByMonths2 = workProjectTimeCostMapper.selectListStatistics(map); List<ProjectStatisticsByMonth> projectStatisticsByMonths2 = workProjectTimeCostMapper.selectListStatistics(map);
// 如果没有项目统计数据,返回Excel显示暂无数据
if (CollectionUtil.isEmpty(projectStatisticsByMonths)) {
HSSFWorkbook sheets = creatEmptyHSSFWorkbook();
return sheets;
}
// 计算项目合计 // 计算项目合计
this.addProjectStatisticsTotalTime(projectStatisticsByMonths, "合计"); this.addProjectStatisticsTotalTime(projectStatisticsByMonths, "合计");
this.addProjectStatisticsTotalTime(projectStatisticsByMonths1, "合计"); this.addProjectStatisticsTotalTime(projectStatisticsByMonths1, "合计");
...@@ -950,7 +958,7 @@ public class StatisticsServiceImpl implements StatisticsService { ...@@ -950,7 +958,7 @@ public class StatisticsServiceImpl implements StatisticsService {
HSSFRow row_0 = sheet.createRow(0); HSSFRow row_0 = sheet.createRow(0);
row_0.createCell(0).setCellValue("部门:" + deptName + " 项目:" + projectName + " 时间:" + date); row_0.createCell(0).setCellValue("部门:" + deptName + " 项目:" + projectName + " 时间:" + date);
// 合并第一行的前五个单元格 // 合并第一行的前五个单元格
CellRangeAddress cellRangeAddress2 = new CellRangeAddress(0, 0, 0, 4); CellRangeAddress cellRangeAddress2 = new CellRangeAddress(0, 0, 0, 15);
sheet.addMergedRegion(cellRangeAddress2); sheet.addMergedRegion(cellRangeAddress2);
setBorderStyle(BorderStyle.THIN, cellRangeAddress2, sheet); setBorderStyle(BorderStyle.THIN, cellRangeAddress2, sheet);
...@@ -1017,7 +1025,10 @@ public class StatisticsServiceImpl implements StatisticsService { ...@@ -1017,7 +1025,10 @@ public class StatisticsServiceImpl implements StatisticsService {
cell.setCellStyle(ordinaryCellStyle); cell.setCellStyle(ordinaryCellStyle);
} }
} }
// 第一行的样式,水平左对齐
HSSFCellStyle ordinaryCellStyle1 = this.createOrdinaryCellStyle(sheets);
ordinaryCellStyle1.setAlignment(HorizontalAlignment.LEFT);
sheet.getRow(0).getCell(0).setCellStyle(ordinaryCellStyle1);
} }
// 释放资源 // 释放资源
this.closeSheets(sheets); this.closeSheets(sheets);
...@@ -1121,11 +1132,9 @@ public class StatisticsServiceImpl implements StatisticsService { ...@@ -1121,11 +1132,9 @@ public class StatisticsServiceImpl implements StatisticsService {
List<ProjectStatisticsByMonth.StatisticsDateAndWorkTime> statisticsDateAndWorkTimes = projectStatisticsByMonth.getStatisticsDateAndWorkTimes(); List<ProjectStatisticsByMonth.StatisticsDateAndWorkTime> statisticsDateAndWorkTimes = projectStatisticsByMonth.getStatisticsDateAndWorkTimes();
for (int i = 0; i < yearMonthList.size(); i++) { for (int i = 0; i < yearMonthList.size(); i++) {
String s = yearMonthList.get(i); String s = yearMonthList.get(i);
String date = new String(); String date = "";
if (i < statisticsDateAndWorkTimes.size()) { if (i < statisticsDateAndWorkTimes.size()) {
date = statisticsDateAndWorkTimes.get(i).getDate(); date = statisticsDateAndWorkTimes.get(i).getDate();
} else {
break;
} }
// 时间不连续,创建对象 // 时间不连续,创建对象
if (!s.equals(date)) { if (!s.equals(date)) {
...@@ -1265,4 +1274,13 @@ public class StatisticsServiceImpl implements StatisticsService { ...@@ -1265,4 +1274,13 @@ public class StatisticsServiceImpl implements StatisticsService {
} }
} }
// 返回一个空的Excel
public HSSFWorkbook creatEmptyHSSFWorkbook(){
HSSFWorkbook sheets = new HSSFWorkbook();
HSSFSheet sheet = sheets.createSheet();
sheet.createRow(0).createCell(0).setCellValue("暂无数据");
return sheets;
}
} }
...@@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -92,15 +93,25 @@ public class StatisticsController extends BaseController { ...@@ -92,15 +93,25 @@ public class StatisticsController extends BaseController {
@GetMapping("/exportWorkTime") @GetMapping("/exportWorkTime")
public void export(GetMonthlyCollectParam param, HttpServletResponse response) { public void export(GetMonthlyCollectParam param, HttpServletResponse response) {
log.info("StatisticsController[]export[]input.param" + param); log.info("StatisticsController[]export[]input.param" + param);
HSSFWorkbook sheets = new HSSFWorkbook();
try {
// 获取excel // 获取excel
HSSFWorkbook sheets = statisticsService.exportWorkTimeExcel(param); sheets = statisticsService.exportWorkTimeExcel(param);
// 获取excel中的第2行第2列中的部门名称 // 获取excel中的第2行第2列中的部门名称
String deptName = sheets.getSheet("Sheet1").getRow(1).getCell(1).getStringCellValue(); String deptName = sheets.getSheet("Sheet1").getRow(1).getCell(1).getStringCellValue();
// 文件名 // 文件名
String fileName = deptName + "-" + param.getYear() + "年" + param.getMonth() + "月工时汇总"; String fileName = deptName + "-" + param.getYear() + "年" + param.getMonth() + "月工时汇总";
this.downExcel(response,sheets,fileName); this.downExcel(response,sheets,fileName);
}finally {
try {
sheets.close();
} catch (IOException e) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.SERVER_ERROR);
}
}
} }
...@@ -142,11 +153,20 @@ public class StatisticsController extends BaseController { ...@@ -142,11 +153,20 @@ public class StatisticsController extends BaseController {
@GetMapping("/exportUserStatistics") @GetMapping("/exportUserStatistics")
public void exportUserStatistics(Integer userId, Integer deptId, String startDate, String endDate,HttpServletResponse response) { public void exportUserStatistics(Integer userId, Integer deptId, String startDate, String endDate,HttpServletResponse response) {
log.info("StatisticsController[]exportUserStatistics[]input.param" + userId + deptId + startDate + endDate); log.info("StatisticsController[]exportUserStatistics[]input.param" + userId + deptId + startDate + endDate);
HSSFWorkbook sheets = new HSSFWorkbook();
try{
// 获取excel // 获取excel
HSSFWorkbook sheets = statisticsService.exportUserStatistics(userId, deptId, startDate, endDate); sheets = statisticsService.exportUserStatistics(userId, deptId, startDate, endDate);
String fileName = "人员工时统计"; String fileName = "人员工时统计";
this.downExcel(response,sheets,fileName); this.downExcel(response,sheets,fileName);
}finally {
try {
sheets.close();
} catch (IOException e) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.SERVER_ERROR);
}
}
} }
...@@ -159,12 +179,19 @@ public class StatisticsController extends BaseController { ...@@ -159,12 +179,19 @@ public class StatisticsController extends BaseController {
@GetMapping("/exportProjectStatistics") @GetMapping("/exportProjectStatistics")
public void exportProjectStatistics(Integer userId, Integer year, String projectIds, HttpServletResponse response) { public void exportProjectStatistics(Integer userId, Integer year, String projectIds, HttpServletResponse response) {
log.info("StatisticsController[]exportUserStatistics[]input.param" + userId + year + projectIds); log.info("StatisticsController[]exportUserStatistics[]input.param" + userId + year + projectIds);
HSSFWorkbook sheets = new HSSFWorkbook();
// 获取excel // 获取excel
HSSFWorkbook sheets = statisticsService.exportProjectStatistics(userId, year, projectIds); try {
sheets = statisticsService.exportProjectStatistics(userId, year, projectIds);
String fileName = "项目工时统计明细"; String fileName = "项目工时统计明细";
//attachment为以附件方式下载
downExcel(response, sheets, fileName); downExcel(response, sheets, fileName);
}finally {
try {
sheets.close();
} catch (IOException e) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.SERVER_ERROR);
}
}
} }
// 导出Excel // 导出Excel
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment