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