|
@@ -1,10 +1,6 @@
|
|
package com.xjrsoft.module.classtime.service.impl;
|
|
package com.xjrsoft.module.classtime.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
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.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
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.classtime.vo.WeekTimeRangeVo;
|
|
import com.xjrsoft.module.oa.entity.WfTeacherCourseTime;
|
|
import com.xjrsoft.module.oa.entity.WfTeacherCourseTime;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
-import org.apache.poi.ss.usermodel.BorderStyle;
|
|
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
import org.apache.poi.ss.usermodel.CellStyle;
|
|
import org.apache.poi.ss.usermodel.CellStyle;
|
|
import org.apache.poi.ss.usermodel.Font;
|
|
import org.apache.poi.ss.usermodel.Font;
|
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
|
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.Row;
|
|
import org.apache.poi.ss.usermodel.Sheet;
|
|
import org.apache.poi.ss.usermodel.Sheet;
|
|
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
|
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
|
@@ -150,13 +144,12 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
* 4、查询补班日期下的所有课程
|
|
* 4、查询补班日期下的所有课程
|
|
* 5、属于节假日的课程不查询
|
|
* 5、属于节假日的课程不查询
|
|
* @param statistics
|
|
* @param statistics
|
|
- * @return
|
|
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public Boolean refreshRecord(ClassTimeStatistics statistics) {
|
|
public Boolean refreshRecord(ClassTimeStatistics statistics) {
|
|
try {
|
|
try {
|
|
-// 1、查询教师
|
|
|
|
|
|
+ // 1、查询教师
|
|
List<TeacherListVo> teacherList = this.baseMapper.getTeacherList();
|
|
List<TeacherListVo> teacherList = this.baseMapper.getTeacherList();
|
|
// 2、查询补课课时
|
|
// 2、查询补课课时
|
|
List<WfTeacherCourseTime> courseTimeList = this.baseMapper.getWfTeacherCourseTimeList(statistics);
|
|
List<WfTeacherCourseTime> courseTimeList = this.baseMapper.getWfTeacherCourseTimeList(statistics);
|
|
@@ -283,6 +276,13 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
record.setClassTime11(classTime11);
|
|
record.setClassTime11(classTime11);
|
|
JsonObject weekDataJson = new JsonObject();
|
|
JsonObject weekDataJson = new JsonObject();
|
|
Double allTimes = 0d;
|
|
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) {
|
|
for (WeekTimeRangeVo timeRangeVo : weekTimeRangeVos) {
|
|
Double zkTimes = 0d;
|
|
Double zkTimes = 0d;
|
|
@@ -297,7 +297,8 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
continue;
|
|
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;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -322,6 +323,9 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
timeRangeVo.setDkTimes(dkTimes);
|
|
timeRangeVo.setDkTimes(dkTimes);
|
|
timeRangeVo.setTkTimes(tkTimes);
|
|
timeRangeVo.setTkTimes(tkTimes);
|
|
allTimes += (zkTimes + wzxTimes);
|
|
allTimes += (zkTimes + wzxTimes);
|
|
|
|
+ if(zkTimes > ccksTime.doubleValue()){
|
|
|
|
+ allCcksTime += zkTimes - ccksTime.doubleValue();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
weekDataJson.add("weekData", new Gson().toJsonTree(weekTimeRangeVos));
|
|
weekDataJson.add("weekData", new Gson().toJsonTree(weekTimeRangeVos));
|
|
weekDataJson.addProperty("allTimes", allTimes);
|
|
weekDataJson.addProperty("allTimes", allTimes);
|
|
@@ -415,12 +419,6 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
}
|
|
}
|
|
record.setClassTimeAmount(classTimeAmount);
|
|
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;
|
|
BigDecimal ccksCost = BigDecimal.ZERO;
|
|
if("FB1601".equals(teacher.getEmployType())){
|
|
if("FB1601".equals(teacher.getEmployType())){
|
|
ccksCost = BigDecimal.valueOf(costSetMap.get("cost9"));
|
|
ccksCost = BigDecimal.valueOf(costSetMap.get("cost9"));
|
|
@@ -428,12 +426,11 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
ccksCost = BigDecimal.valueOf(costSetMap.get("cost10"));
|
|
ccksCost = BigDecimal.valueOf(costSetMap.get("cost10"));
|
|
}
|
|
}
|
|
//计算出总的超出课时并计算超课时费
|
|
//计算出总的超出课时并计算超课时费
|
|
- BigDecimal allCcksTime = BigDecimal.ZERO;
|
|
|
|
BigDecimal ccksTime2 = ccksTime.multiply(BigDecimal.valueOf(weekTimeRangeVos.size()));
|
|
BigDecimal ccksTime2 = ccksTime.multiply(BigDecimal.valueOf(weekTimeRangeVos.size()));
|
|
if(allClassTime > ccksTime2.doubleValue()){//如果总的课时超出规定课时
|
|
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())){
|
|
if(!"FB1601".equals(teacher.getEmployType())){
|
|
record.setBeyondClassTimeAmount(beyondClassTimeAmount);
|
|
record.setBeyondClassTimeAmount(beyondClassTimeAmount);
|
|
}
|
|
}
|