|
|
@@ -2,6 +2,10 @@ package com.xjrsoft.module.banding.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
+import com.xjrsoft.common.enums.DeleteMark;
|
|
|
+import com.xjrsoft.common.enums.YesOrNoEnum;
|
|
|
+import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.module.banding.dto.BandingTaskClassPageDto;
|
|
|
import com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto;
|
|
|
import com.xjrsoft.module.banding.entity.BandingTaskClass;
|
|
|
@@ -13,12 +17,20 @@ import com.xjrsoft.module.banding.service.IBandingTaskClassService;
|
|
|
import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
|
|
|
import com.xjrsoft.module.banding.vo.BandingTaskClassStudentListVo;
|
|
|
import com.xjrsoft.module.banding.vo.BandingTaskClassSureListVo;
|
|
|
+import com.xjrsoft.module.base.entity.BaseClassroom;
|
|
|
+import com.xjrsoft.module.base.service.IBaseClassroomService;
|
|
|
+import com.xjrsoft.module.organization.entity.User;
|
|
|
+import com.xjrsoft.module.organization.service.IUserService;
|
|
|
+import com.xjrsoft.module.teacher.entity.BaseTeacher;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -33,6 +45,8 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
|
|
|
|
|
|
private final BandingTaskMapper bandingTaskMapper;
|
|
|
private final BandingTaskClassStudentMapper classStudentMapper;
|
|
|
+ private final IBaseClassroomService classroomService;
|
|
|
+ private final IUserService userService;
|
|
|
@Override
|
|
|
public Boolean add(BandingTaskClass bandingTaskClass) {
|
|
|
bandingTaskClass.setCreateDate(new Date());
|
|
|
@@ -92,4 +106,47 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
|
|
|
public List<BandingTaskClassSureListVo> getClassSure(BandingTaskClassStudentPageDto dto) {
|
|
|
return this.baseMapper.getClassSure(dto);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean importData(Long bandingTaskId, List<Map<Integer, Object>> excelDataList) {
|
|
|
+ List<BaseClassroom> classroomList = classroomService.list(
|
|
|
+ new QueryWrapper<BaseClassroom>().lambda()
|
|
|
+ .eq(BaseClassroom::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ );
|
|
|
+ Map<String, Long> classroomMap = new HashMap<>();
|
|
|
+ for (BaseClassroom classroom : classroomList) {
|
|
|
+ classroomMap.put(classroom.getName(), classroom.getId());
|
|
|
+ }
|
|
|
+ List<User> userList = userService.list(
|
|
|
+ new MPJLambdaWrapper<User>()
|
|
|
+ .select(User::getId)
|
|
|
+ .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
|
|
|
+ );
|
|
|
+ Map<String, Long> userMap = new HashMap<>();
|
|
|
+ for (User user : userList) {
|
|
|
+ userMap.put(user.getName(), user.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<BandingTaskClass> classList = new ArrayList<>();
|
|
|
+ Date createDate = new Date();
|
|
|
+ for (Map<Integer, Object> taskClass : excelDataList) {
|
|
|
+ classList.add(new BandingTaskClass(){{
|
|
|
+ setBandingTaskId(bandingTaskId);
|
|
|
+ setCreateDate(createDate);
|
|
|
+ setName(taskClass.get(1).toString());
|
|
|
+ setNumber(Integer.parseInt(taskClass.get(2).toString()));
|
|
|
+ setClassroomId(classroomMap.get(taskClass.get(4).toString()));
|
|
|
+ if(taskClass.get(5) != null){
|
|
|
+ setIsOrderClass(YesOrNoEnum.getCode(taskClass.get(5).toString()));
|
|
|
+ }
|
|
|
+ if(taskClass.get(6) != null){
|
|
|
+ setSortCode(Integer.parseInt(taskClass.get(6).toString()));
|
|
|
+ }
|
|
|
+ setTeacherId(userMap.get(taskClass.get(3).toString()));
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ Boolean result = this.saveBatch(classList);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|