Forráskód Böngészése

课时统计,详情导出

dzx 5 hónapja
szülő
commit
b260da89f6

+ 23 - 0
src/main/java/com/xjrsoft/module/classtime/service/impl/ClassTimeCalendarServiceImpl.java

@@ -16,6 +16,7 @@ import com.xjrsoft.module.schedule.service.ICourseTableBakService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.time.DayOfWeek;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -62,6 +63,7 @@ public class ClassTimeCalendarServiceImpl extends MPJBaseServiceImpl<ClassTimeCa
             List<CourseTable> insertList = new ArrayList<>();
             for (CourseTable courseTable : list) {
                 courseTable.setId(null);
+                courseTable.setWeeksCn(getChineseDayOfWeek(dto.getSupplementDate().getDayOfWeek()));
                 courseTable.setScheduleDate(dto.getSupplementDate());
                 courseTable.setAdjustType(CourseAdjustTypeEnum.courseReplace.getCode());
                 insertList.add(courseTable);
@@ -78,6 +80,27 @@ public class ClassTimeCalendarServiceImpl extends MPJBaseServiceImpl<ClassTimeCa
         }
     }
 
+    String getChineseDayOfWeek(DayOfWeek dayOfWeek) {
+        switch (dayOfWeek) {
+            case MONDAY:
+                return "星期一";
+            case TUESDAY:
+                return "星期二";
+            case WEDNESDAY:
+                return "星期三";
+            case THURSDAY:
+                return "星期四";
+            case FRIDAY:
+                return "星期五";
+            case SATURDAY:
+                return "星期六";
+            case SUNDAY:
+                return "星期天";
+            default:
+                return "";
+        }
+    }
+
     @Override
     public Boolean cancel(Long id) {
         try{

+ 15 - 18
src/main/java/com/xjrsoft/module/classtime/service/impl/ClassTimeStatisticsServiceImpl.java

@@ -1,10 +1,6 @@
 package com.xjrsoft.module.classtime.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.ExcelWriter;
-import com.alibaba.excel.support.ExcelTypeEnum;
-import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -32,12 +28,10 @@ import com.xjrsoft.module.classtime.vo.TeacherListVo;
 import com.xjrsoft.module.classtime.vo.WeekTimeRangeVo;
 import com.xjrsoft.module.oa.entity.WfTeacherCourseTime;
 import lombok.AllArgsConstructor;
-import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Font;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.IndexedColors;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.VerticalAlignment;
@@ -150,13 +144,12 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
      * 4、查询补班日期下的所有课程
      * 5、属于节假日的课程不查询
      * @param statistics
-     * @return
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean refreshRecord(ClassTimeStatistics statistics) {
         try {
-// 1、查询教师
+            // 1、查询教师
             List<TeacherListVo> teacherList = this.baseMapper.getTeacherList();
             // 2、查询补课课时
             List<WfTeacherCourseTime> courseTimeList = this.baseMapper.getWfTeacherCourseTimeList(statistics);
@@ -283,6 +276,13 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                 record.setClassTime11(classTime11);
                 JsonObject weekDataJson = new JsonObject();
                 Double allTimes = 0d;
+                Double allCcksTime = 0d;//总的超出课时,从每周的正课课时中计算
+                BigDecimal ccksTime = BigDecimal.ZERO;//超出课时标准(每周)
+                if("FB1601".equals(teacher.getEmployType())){
+                    ccksTime = BigDecimal.valueOf(costSetMap.get("cost7"));
+                }else{//外聘FB1605、合作人员FB1609
+                    ccksTime = BigDecimal.valueOf(costSetMap.get("cost8"));
+                }
                 //存每周的数据
                 for (WeekTimeRangeVo timeRangeVo : weekTimeRangeVos) {
                     Double zkTimes = 0d;
@@ -297,7 +297,8 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                             continue;
                         }
 
-                        if(!(scheduleDate.isAfter(timeRangeVo.getMondayDate()) && scheduleDate.isBefore(timeRangeVo.getSundayDate()))){
+                        if(!( (scheduleDate.equals(timeRangeVo.getMondayDate()) || scheduleDate.isAfter(timeRangeVo.getMondayDate()))
+                                && (scheduleDate.equals(timeRangeVo.getSundayDate()) || scheduleDate.isBefore(timeRangeVo.getSundayDate())))){
                             continue;
                         }
 
@@ -322,6 +323,9 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                     timeRangeVo.setDkTimes(dkTimes);
                     timeRangeVo.setTkTimes(tkTimes);
                     allTimes += (zkTimes + wzxTimes);
+                    if(zkTimes > ccksTime.doubleValue()){
+                        allCcksTime += zkTimes - ccksTime.doubleValue();
+                    }
                 }
                 weekDataJson.add("weekData", new Gson().toJsonTree(weekTimeRangeVos));
                 weekDataJson.addProperty("allTimes", allTimes);
@@ -415,12 +419,6 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                 }
                 record.setClassTimeAmount(classTimeAmount);
                 //计算超出的课时,需要先计算出每个周的开始结束时间
-                BigDecimal ccksTime = BigDecimal.ZERO;//超出课时标准(每周)
-                if("FB1601".equals(teacher.getEmployType())){
-                    ccksTime = BigDecimal.valueOf(costSetMap.get("cost7"));
-                }else{//外聘FB1605、合作人员FB1609
-                    ccksTime = BigDecimal.valueOf(costSetMap.get("cost8"));
-                }
                 BigDecimal ccksCost = BigDecimal.ZERO;
                 if("FB1601".equals(teacher.getEmployType())){
                     ccksCost = BigDecimal.valueOf(costSetMap.get("cost9"));
@@ -428,12 +426,11 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                     ccksCost = BigDecimal.valueOf(costSetMap.get("cost10"));
                 }
                 //计算出总的超出课时并计算超课时费
-                BigDecimal allCcksTime = BigDecimal.ZERO;
                 BigDecimal ccksTime2 = ccksTime.multiply(BigDecimal.valueOf(weekTimeRangeVos.size()));
                 if(allClassTime > ccksTime2.doubleValue()){//如果总的课时超出规定课时
-                    allCcksTime = BigDecimal.valueOf(allClassTime).subtract(ccksTime2);
+                    allCcksTime = BigDecimal.valueOf(allClassTime).subtract(ccksTime2).doubleValue();
                 }
-                beyondClassTimeAmount = allCcksTime.multiply(ccksCost).doubleValue();
+                beyondClassTimeAmount = BigDecimal.valueOf(allCcksTime).multiply(ccksCost).doubleValue();
                 if(!"FB1601".equals(teacher.getEmployType())){
                     record.setBeyondClassTimeAmount(beyondClassTimeAmount);
                 }