Explorar o código

数据看板个人考勤统计

dzx hai 11 meses
pai
achega
f656576d0f

+ 29 - 5
src/main/java/com/xjrsoft/module/databoard/controller/DataboardController.java

@@ -496,7 +496,7 @@ public class DataboardController {
                 " OR (t1.leave_end_time BETWEEN '" + startTimeStr + "' and '" + endTimeStr + "')" +
                 " OR (t1.leave_start_time > '" + startTimeStr + "' and '" + endTimeStr + "' > t1.leave_end_time)" +
                 " OR ('" + startTimeStr + "' > t1.leave_start_time and t1.leave_end_time > '" + endTimeStr + "')" +
-                ")";
+                " )";
         }
         if(dto.getUserId() != null){
             sql += " and user_id = " + dto.getUserId();
@@ -518,7 +518,8 @@ public class DataboardController {
         sql = "SELECT COUNT(t1.id) AS a_count FROM wf_course_adjust t1" +
             " INNER JOIN xjr_workflow_form_relation t2 ON t2.form_key_value = t1.id" +
             " WHERE t1.adjust_type = 'course_exchange'" +
-            " AND t2.current_state = 'COMPLETED'";
+            " AND t2.current_state = 'COMPLETED'" +
+            " and t1.delete_mark = 0 and t1.enabled_mark = 1";
         if(startTime != null && endTime != null){
             sql +=" AND t1.adjust_date between '" + startTime.format(formatter) + "' and '" + endTime.format(formatter) + "'";
         }
@@ -528,10 +529,11 @@ public class DataboardController {
         list = SqlRunnerAdapter.db().selectList(sql);
         result.setAdjustCount(Integer.parseInt(list.get(0).get("a_count").toString()));
 
-        sql = "SELECT COUNT(t1.id) AS a_count FROM wf_course_adjust t1" +
+        sql = "SELECT t1.* FROM wf_course_adjust t1" +
             " INNER JOIN xjr_workflow_form_relation t2 ON t2.form_key_value = t1.id" +
             " WHERE t1.adjust_type = 'course_substitute'" +
-            " AND t2.current_state = 'COMPLETED'";
+            " AND t2.current_state = 'COMPLETED'" +
+            " and t1.delete_mark = 0 and t1.enabled_mark = 1";
         if(startTime != null && endTime != null){
             sql +=" AND t1.adjust_date between '" + startTime.format(formatter) + "' and '" + endTime.format(formatter) + "'";
         }
@@ -539,7 +541,29 @@ public class DataboardController {
             sql += " and t1.user_id = " + dto.getUserId();
         }
         list = SqlRunnerAdapter.db().selectList(sql);
-        result.setExchangeCount(Integer.parseInt(list.get(0).get("a_count").toString()));
+        int subCount = list.size();
+
+        sql = "SELECT t1.* FROM wf_course_adjust t1" +
+                " INNER JOIN xjr_workflow_form_relation t2 ON t2.form_key_value = t1.id" +
+                " WHERE t1.adjust_type = 'course_substitute'" +
+                " AND t2.current_state = 'COMPLETED'" +
+                " and t1.delete_mark = 0 and t1.enabled_mark = 1";
+        if(startTime != null && endTime != null){
+            sql +=" AND t1.adjust_date between '" + startTime.format(formatter) + "' and '" + endTime.format(formatter) + "'";
+        }
+        if(dto.getUserId() != null){
+            sql += " and t1.exchange_teacher_id = " + dto.getUserId();
+        }
+        list = SqlRunnerAdapter.db().selectList(sql);
+        int addCount = list.size();
+        result.setExchangeCount(addCount - subCount);
+
+        List<CourseTable> courseList = courseTableService.list(
+                new QueryWrapper<CourseTable>().lambda()
+                        .like(CourseTable::getTeacherId, dto.getUserId())
+                        .between(dto.getStartDate() != null && dto.getEndDate() != null, CourseTable::getScheduleDate, dto.getStartDate(), dto.getEndDate())
+        );
+        result.setCourseCount(courseList.size());
         return RT.ok(result);
     }