From 7007db947ea409a973aee8a681ee86cf9d2708bf Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期四, 08 六月 2023 18:54:52 +0800
Subject: [PATCH] 优化1.5 的bug
---
service-job/src/main/java/com/java110/job/export/adapt/MonthAttendanceAdapt.java | 59 +++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 37 insertions(+), 22 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/export/adapt/MonthAttendanceAdapt.java b/service-job/src/main/java/com/java110/job/export/adapt/MonthAttendanceAdapt.java
index 76b5582..54e282e 100644
--- a/service-job/src/main/java/com/java110/job/export/adapt/MonthAttendanceAdapt.java
+++ b/service-job/src/main/java/com/java110/job/export/adapt/MonthAttendanceAdapt.java
@@ -37,7 +37,7 @@
workbook = new SXSSFWorkbook();
workbook.setCompressTempFiles(false);
- Sheet sheet = workbook.createSheet("鏈堣�冨嫟琛�");
+ Sheet sheet = workbook.createSheet(reqJson.getIntValue("taskYear") + "骞�" + reqJson.getIntValue("taskMonth") + "鏈堣�冨嫟琛�");
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("閮ㄩ棬");
row.createCell(1).setCellValue("鍛樺伐");
@@ -47,14 +47,14 @@
calendar.set(Calendar.MONTH, reqJson.getIntValue("taskMonth") - 1);
int maxDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int day = 1; day <= maxDayOfMonth; day++) {
- row.createCell(day + 2).setCellValue(day + "鏃�");
+ row.createCell(day + 1).setCellValue(day + "鏃�");
}
- row.createCell(2 + maxDayOfMonth + 1).setCellValue("姝e父鑰冨嫟");
- row.createCell(2 + maxDayOfMonth + 2).setCellValue("杩熷埌");
- row.createCell(2 + maxDayOfMonth + 3).setCellValue("鏃╅��");
- row.createCell(2 + maxDayOfMonth + 4).setCellValue("鏃峰伐");
- row.createCell(2 + maxDayOfMonth + 5).setCellValue("鍏嶈�冨嫟");
+ row.createCell(1 + maxDayOfMonth + 1).setCellValue("姝e父鑰冨嫟");
+ row.createCell(1 + maxDayOfMonth + 2).setCellValue("杩熷埌");
+ row.createCell(1 + maxDayOfMonth + 3).setCellValue("鏃╅��");
+ row.createCell(1 + maxDayOfMonth + 4).setCellValue("鏃峰伐");
+ row.createCell(1 + maxDayOfMonth + 5).setCellValue("鍏嶈�冨嫟");
AttendanceClassesTaskDto attendanceClassesTaskDto = BeanConvertUtil.covertBean(reqJson, AttendanceClassesTaskDto.class);
@@ -81,17 +81,22 @@
List<AttendanceClassesTaskDto> attendanceClassesTaskDtos = reportAttendanceInnerServiceSMOImpl.getMonthAttendance(attendanceClassesTaskDto);
//杈撳叆鑰冨嫟鏄庣粏
refreshDetail(attendanceClassesTaskDtos, reqJson);
- appendData(attendanceClassesTaskDtos, sheet, (page - 1) * MAX_ROW, maxDayOfMonth);
+ appendData(attendanceClassesTaskDtos, sheet, (page - 1) * MAX_ROW, maxDayOfMonth, reqJson);
}
}
- private void appendData(List<AttendanceClassesTaskDto> attendanceClassesTaskDtos, Sheet sheet, int step, int maxDayOfMonth) {
+ private void appendData(List<AttendanceClassesTaskDto> attendanceClassesTaskDtos, Sheet sheet, int step, int maxDayOfMonth, JSONObject reqJson) {
Row row = null;
JSONObject dayObj = null;
AttendanceClassesTaskDto attendanceClassesTaskDto = null;
List<AttendanceClassesTaskDetailDto> detailDtos = null;
String value = "";
+
+ Calendar calendar = Calendar.getInstance();
+ int today = calendar.get(Calendar.DAY_OF_MONTH);
+ int taskYear = reqJson.getIntValue("taskYear");
+ int taskMonth = reqJson.getIntValue("taskMonth");
for (int roomIndex = 0; roomIndex < attendanceClassesTaskDtos.size(); roomIndex++) {
row = sheet.createRow(roomIndex + step + 1);
attendanceClassesTaskDto = attendanceClassesTaskDtos.get(roomIndex);
@@ -99,17 +104,23 @@
row.createCell(1).setCellValue(attendanceClassesTaskDto.getStaffName());
dayObj = attendanceClassesTaskDto.getDays();
for (int day = 1; day <= maxDayOfMonth; day++) {
+
+ if(taskYear == calendar.get(Calendar.YEAR) && taskMonth == (calendar.get(Calendar.MONTH)+1) && day > today){
+ row.createCell(day + 1).setCellValue("鏈埌鏃堕棿");
+ continue;
+ }
+
if (!dayObj.containsKey(day)) {
- row.createCell(day + 2).setCellValue("鏃犻渶鑰冨嫟");
+ row.createCell(day + 1).setCellValue("鏃犻渶鑰冨嫟");
continue;
}
if (dayObj.get(day) == null) {
- row.createCell(day + 2).setCellValue("鏃犻渶鑰冨嫟");
+ row.createCell(day + 1).setCellValue("鏃犻渶鑰冨嫟");
continue;
}
detailDtos = (List<AttendanceClassesTaskDetailDto>) dayObj.get(day);
if (detailDtos == null || detailDtos.size() < 1) {
- row.createCell(day + 2).setCellValue("鏃犻渶鑰冨嫟");
+ row.createCell(day + 1).setCellValue("鏃犻渶鑰冨嫟");
continue;
}
@@ -122,19 +133,19 @@
}
if (!AttendanceClassesTaskDetailDto.STATE_WAIT.equals(detailDto.getState())) {
- value += (detailDto.getCheckTime()+"("+detailDto.getStateName()+");");
+ value += (detailDto.getCheckTime() + "(" + detailDto.getStateName() + ");" + String.valueOf((char) 10));
} else {
- value += (" - ("+detailDto.getStateName()+");");
+ value += (" - (" + detailDto.getStateName() + ");" + String.valueOf((char) 10));
}
}
- row.createCell(day + 2).setCellValue(value);
+ row.createCell(day + 1).setCellValue(value);
}
- row.createCell(2 + maxDayOfMonth + 1).setCellValue(attendanceClassesTaskDto.getClockIn());
- row.createCell(2 + maxDayOfMonth + 2).setCellValue(attendanceClassesTaskDto.getLate());
- row.createCell(2 + maxDayOfMonth + 3).setCellValue(attendanceClassesTaskDto.getEarly());
- row.createCell(2 + maxDayOfMonth + 4).setCellValue(attendanceClassesTaskDto.getNoClockIn());
- row.createCell(2 + maxDayOfMonth + 5).setCellValue(attendanceClassesTaskDto.getFree());
+ row.createCell(1 + maxDayOfMonth + 1).setCellValue(attendanceClassesTaskDto.getClockIn());
+ row.createCell(1 + maxDayOfMonth + 2).setCellValue(attendanceClassesTaskDto.getLate());
+ row.createCell(1 + maxDayOfMonth + 3).setCellValue(attendanceClassesTaskDto.getEarly());
+ row.createCell(1 + maxDayOfMonth + 4).setCellValue(attendanceClassesTaskDto.getNoClockIn());
+ row.createCell(1 + maxDayOfMonth + 5).setCellValue(attendanceClassesTaskDto.getFree());
}
}
@@ -152,7 +163,7 @@
AttendanceClassesTaskDto tmpAttendanceClassesTaskDto = new AttendanceClassesTaskDto();
tmpAttendanceClassesTaskDto.setClassId(reqJson.getString("classesId"));
tmpAttendanceClassesTaskDto.setTaskYear(reqJson.getString("taskYear"));
- tmpAttendanceClassesTaskDto.setTaskDay(reqJson.getString("taskDay"));
+ tmpAttendanceClassesTaskDto.setTaskMonth(reqJson.getString("taskMonth"));
tmpAttendanceClassesTaskDto.setStaffIds(staffIds.toArray(new String[staffIds.size()]));
List<AttendanceClassesTaskDetailDto> attendanceClassesTaskDetailDtos = reportAttendanceInnerServiceSMOImpl.getMonthAttendanceDetail(tmpAttendanceClassesTaskDto);
@@ -165,7 +176,11 @@
attendanceClassesTaskDto.setDays(days);
}
for (AttendanceClassesTaskDetailDto tmpAttendanceClassesTaskDetailDto : attendanceClassesTaskDetailDtos) {
- if (days.containsKey(tmpAttendanceClassesTaskDetailDto.getTaskDay())) {
+ if(!attendanceClassesTaskDto.getStaffId().equals(tmpAttendanceClassesTaskDetailDto.getStaffId())){
+ continue;
+ }
+ if (days.containsKey(tmpAttendanceClassesTaskDetailDto.getTaskDay())
+ ) {
tAttendanceClassesTaskDetailDto = (List<AttendanceClassesTaskDetailDto>) days.get(tmpAttendanceClassesTaskDetailDto.getTaskDay());
tAttendanceClassesTaskDetailDto.add(tmpAttendanceClassesTaskDetailDto);
} else {
--
Gitblit v1.8.0