|
@@ -19,6 +19,7 @@ import com.qmth.teachcloud.common.bean.result.TeachCourseSelectResult;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.*;
|
|
import com.qmth.teachcloud.common.entity.*;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
|
+import com.qmth.teachcloud.common.enums.RoleTypeEnum;
|
|
import com.qmth.teachcloud.common.mapper.BasicCourseMapper;
|
|
import com.qmth.teachcloud.common.mapper.BasicCourseMapper;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.util.ExcelUtil;
|
|
import com.qmth.teachcloud.common.util.ExcelUtil;
|
|
@@ -71,6 +72,9 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
|
|
@Resource
|
|
@Resource
|
|
private SysUserService sysUserService;
|
|
private SysUserService sysUserService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ SysUserRoleService sysUserRoleService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<BasicCourse> listCoursesByUserId(Long userId) {
|
|
public List<BasicCourse> listCoursesByUserId(Long userId) {
|
|
return this.baseMapper.listCoursesByUserId(userId);
|
|
return this.baseMapper.listCoursesByUserId(userId);
|
|
@@ -235,7 +239,7 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public void executeImportBasicCourseLogic(MultipartFile file) throws IOException, NoSuchFieldException {
|
|
|
|
|
|
+ public List<BasicCourseParams> executeImportBasicCourseLogic(MultipartFile file) throws IOException, NoSuchFieldException {
|
|
InputStream inputStream = file.getInputStream();
|
|
InputStream inputStream = file.getInputStream();
|
|
List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(inputStream, Lists.newArrayList(BasicCourseImportDto.class, DescribeImportDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(inputStream, Lists.newArrayList(BasicCourseImportDto.class, DescribeImportDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
List<ExcelError> excelErrorTemp = new ArrayList<>();
|
|
List<ExcelError> excelErrorTemp = new ArrayList<>();
|
|
@@ -254,6 +258,8 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
|
|
String courseCode = basicCourseImportDto.getCourseCode();
|
|
String courseCode = basicCourseImportDto.getCourseCode();
|
|
String teachingRoomName = basicCourseImportDto.getTeachingRoomName();
|
|
String teachingRoomName = basicCourseImportDto.getTeachingRoomName();
|
|
String clazz = basicCourseImportDto.getClazz();
|
|
String clazz = basicCourseImportDto.getClazz();
|
|
|
|
+ String name = basicCourseImportDto.getName();
|
|
|
|
+ String code = basicCourseImportDto.getCode();
|
|
|
|
|
|
if (courseDtoMap.containsKey(courseCode)) {
|
|
if (courseDtoMap.containsKey(courseCode)) {
|
|
BasicCourseImportDto primaryCell = courseDtoMap.get(courseCode);
|
|
BasicCourseImportDto primaryCell = courseDtoMap.get(courseCode);
|
|
@@ -282,6 +288,12 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
|
|
if (Objects.isNull(courseName) || courseName.length() > 30) {
|
|
if (Objects.isNull(courseName) || courseName.length() > 30) {
|
|
excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程名称]不符合输入规范"));
|
|
excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程名称]不符合输入规范"));
|
|
}
|
|
}
|
|
|
|
+ if ((Objects.nonNull(name) && !Objects.equals(name.trim(), "")) && (Objects.isNull(code) || Objects.equals(code.trim(), ""))) {
|
|
|
|
+ excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[工号]不能为空"));
|
|
|
|
+ }
|
|
|
|
+ if ((Objects.nonNull(code) && !Objects.equals(code.trim(), "")) && (Objects.isNull(name) || Objects.equals(name.trim(), ""))) {
|
|
|
|
+ excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[姓名]不能为空"));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
// 删除重复的(需要累加的)excel数据
|
|
// 删除重复的(需要累加的)excel数据
|
|
basicCourseImportDtoList.removeAll(duplicateData);
|
|
basicCourseImportDtoList.removeAll(duplicateData);
|
|
@@ -291,12 +303,12 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
|
|
}
|
|
}
|
|
return finalExcelList;
|
|
return finalExcelList;
|
|
});
|
|
});
|
|
- this.executeBasicCourseImportLogic(finalList);
|
|
|
|
|
|
+ return this.executeBasicCourseImportLogic(finalList);
|
|
}
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
- public void executeBasicCourseImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList) {
|
|
|
|
|
|
+ public List<BasicCourseParams> executeBasicCourseImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList) {
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
Long schoolId = sysUser.getSchoolId();
|
|
Long schoolId = sysUser.getSchoolId();
|
|
List<BasicCourseParams> addBasicCourseParamsList = new ArrayList<>();
|
|
List<BasicCourseParams> addBasicCourseParamsList = new ArrayList<>();
|
|
@@ -322,7 +334,7 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
|
|
throw ExceptionResultEnum.ERROR.exception("输入的开课部门【" + teachingRoomName + "】不存在");
|
|
throw ExceptionResultEnum.ERROR.exception("输入的开课部门【" + teachingRoomName + "】不存在");
|
|
}
|
|
}
|
|
Long teachingRoomId = sysOrg.getId();
|
|
Long teachingRoomId = sysOrg.getId();
|
|
- LinkedHashSet<Long> clazzIdSet = new LinkedHashSet<>();
|
|
|
|
|
|
+ LinkedHashSet<Long> clazzIdSet = new LinkedHashSet<>(), teachIdSet = new LinkedHashSet<>();
|
|
if (SystemConstant.strNotNull(clazz)) {
|
|
if (SystemConstant.strNotNull(clazz)) {
|
|
String[] clazzList = clazz.split(SystemConstant.COMMA);
|
|
String[] clazzList = clazz.split(SystemConstant.COMMA);
|
|
for (String clzName : clazzList) {
|
|
for (String clzName : clazzList) {
|
|
@@ -336,12 +348,40 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
|
|
clazzIdSet.add(basicClazz.getId());
|
|
clazzIdSet.add(basicClazz.getId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (SystemConstant.strNotNull(basicCourseImportDto.getName())) {
|
|
|
|
+ String[] nameList = basicCourseImportDto.getName().split(SystemConstant.COMMA);
|
|
|
|
+ String[] codeList = null;
|
|
|
|
+ if (SystemConstant.strNotNull(basicCourseImportDto.getCode())) {
|
|
|
|
+ codeList = basicCourseImportDto.getCode().split(SystemConstant.COMMA);
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(codeList) && codeList.length != nameList.length) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("姓名和工号长度不匹配");
|
|
|
|
+ }
|
|
|
|
+ for (int k = 0; k < nameList.length; k++) {
|
|
|
|
+ String name = nameList[k];
|
|
|
|
+ String code = codeList[k];
|
|
|
|
+ SysUser sysUserDb = sysUserService.getOne(new QueryWrapper<SysUser>().lambda()
|
|
|
|
+ .eq(SysUser::getEnable, true)
|
|
|
|
+ .eq(SysUser::getSchoolId, schoolId)
|
|
|
|
+ .eq(SysUser::getRealName, name)
|
|
|
|
+ .eq(SysUser::getCode, code));
|
|
|
|
+ Optional.ofNullable(sysUserDb).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("【姓名】" + name + ",【工号】" + code + "不存在"));
|
|
|
|
+
|
|
|
|
+ List<SysRole> sysRoleList = sysUserRoleService.listRoleByUserId(sysUserDb.getId());
|
|
|
|
+ sysRoleList = sysRoleList.stream().filter(s -> s.getType() == RoleTypeEnum.SCHOOL_TEACHER).collect(Collectors.toList());
|
|
|
|
+ if (CollectionUtils.isEmpty(sysRoleList)) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("【姓名】" + name + ",【工号】" + code + "没有老师角色");
|
|
|
|
+ }
|
|
|
|
+ teachIdSet.add(sysUserDb.getId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
BasicCourseParams basicCourseParams = new BasicCourseParams();
|
|
BasicCourseParams basicCourseParams = new BasicCourseParams();
|
|
basicCourseParams.setCourseCode(courseCode);
|
|
basicCourseParams.setCourseCode(courseCode);
|
|
basicCourseParams.setCourseName(courseName);
|
|
basicCourseParams.setCourseName(courseName);
|
|
basicCourseParams.setTeachingRoomId(teachingRoomId);
|
|
basicCourseParams.setTeachingRoomId(teachingRoomId);
|
|
basicCourseParams.setClazzIdSet(clazzIdSet);
|
|
basicCourseParams.setClazzIdSet(clazzIdSet);
|
|
|
|
+ basicCourseParams.setTeachIdSet(teachIdSet);
|
|
BasicCourse old = this.getOne(new QueryWrapper<BasicCourse>().lambda()
|
|
BasicCourse old = this.getOne(new QueryWrapper<BasicCourse>().lambda()
|
|
.eq(BasicCourse::getSchoolId, schoolId)
|
|
.eq(BasicCourse::getSchoolId, schoolId)
|
|
.eq(BasicCourse::getEnable, true)
|
|
.eq(BasicCourse::getEnable, true)
|
|
@@ -354,6 +394,7 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
|
|
List<BasicCourse> editBasicCourse = this.editEntityHelp(addBasicCourseParamsList, sysUser);
|
|
List<BasicCourse> editBasicCourse = this.editEntityHelp(addBasicCourseParamsList, sysUser);
|
|
this.saveOrUpdateBatch(editBasicCourse);
|
|
this.saveOrUpdateBatch(editBasicCourse);
|
|
}
|
|
}
|
|
|
|
+ return addBasicCourseParamsList;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|