diff --git a/web/src/main/java/com/ibeetl/jlw/entity/dto/StudentBatchImportAdminDTO.java b/web/src/main/java/com/ibeetl/jlw/entity/dto/StudentBatchImportAdminDTO.java index 6b057f4a..1aedaeb8 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/dto/StudentBatchImportAdminDTO.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/dto/StudentBatchImportAdminDTO.java @@ -13,8 +13,6 @@ import lombok.experimental.FieldNameConstants; import java.util.Date; import java.util.function.Function; -import static cn.hutool.core.util.ObjectUtil.defaultIfNull; - /** * 功能描述:
* 学生管理, 导入实体 @@ -87,10 +85,10 @@ public class StudentBatchImportAdminDTO { * @param function 二次加工 * @return */ - public static Student pojo(StudentBatchImportAdminDTO importPojo, Function classIdFunction, Function function) { + public static Student pojo(StudentBatchImportAdminDTO importPojo, Long classId, Function function) { Student build = Student.builder() // .classId(longValuesOf(importPojo.getClassId())) - .classId(classIdFunction.apply(importPojo.getClassId())) + .classId(classId) .studentName(importPojo.getStudentName()) .studentSn(importPojo.getStudentSn()) .studentMobile(importPojo.getStudentMobile()) @@ -113,7 +111,7 @@ public class StudentBatchImportAdminDTO { * @return */ public static Student pojo(StudentBatchImportAdminDTO importPojo) { - return pojo(importPojo, o -> Long.valueOf(defaultIfNull(o, "-1")), e -> e); + return pojo(importPojo, -1L, e -> e); } } diff --git a/web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportAdminDTO.java b/web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportAdminDTO.java new file mode 100644 index 00000000..7762ebad --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportAdminDTO.java @@ -0,0 +1,122 @@ +package com.ibeetl.jlw.entity.dto; + +import com.ibeetl.admin.core.annotation.ExcelRequireIgnore; +import com.ibeetl.admin.core.util.excelGroupValidation.ExcelFile; +import com.ibeetl.admin.core.validation.Email; +import com.ibeetl.admin.core.validation.Mobile; +import com.ibeetl.jlw.entity.Teacher; +import com.ibeetl.jlw.enums.GenderEnum; +import lombok.Data; +import lombok.ToString; +import lombok.experimental.FieldNameConstants; + +import java.util.Date; +import java.util.function.Function; + +/** + * 功能描述:
+ * (超管)教师管理, 导入实体 + * + * @Author: lx + * @Date: 2023/2/5 23:50 + */ +@Data +@FieldNameConstants +@ToString +@ExcelFile(fileHeadTemplate = "universitiesCollegesName|universityFacultyName|universitySystemName|teacherName|teacherJobNumber|teacherMobile|teacherEmail", + fileMappingTemplate = "universitiesCollegesName=院校名称|universityFacultyName=院系名称|universitySystemName=专业名称|" + + "teacherName=教师姓名|teacherJobNumber=工号|teacherMobile=电话|teacherEmail=邮箱", + datasheetHidden = true, enableDataValidation = true) +public class TeacherBatchImportAdminDTO { + +// /** +// * 院校名称 +// */ +// @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.UniversitiesCollegesService.getAllUniversitiesColleges") +// private String universitiesCollegesId ; +// /** +// * 院系名称 +// */ +// @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.UniversityFacultyService.getAllUniversityFacultyWithColleges", beforeFieldName = "universitiesCollegesId") +// private String universityFacultyId ; +// /** +// * 专业名称 +// */ +// @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.UniversitySystemService.getAllUniversitiesCollegesWithFaculty", beforeFieldName = "universityFacultyId") +// private String universitySystemId ; + + /** + * 院校名称 + */ + private String universitiesCollegesName ; + /** + * 院系名称 + */ + private String universityFacultyName ; + /** + * 专业名称 + */ + private String universitySystemName ; + + /** + * 教师姓名 + */ + private String teacherName ; + /** + * 工号 + */ + private String teacherJobNumber ; + + /** + * 电话 + */ + @Mobile + @ExcelRequireIgnore + private String teacherMobile ; + + /** + * 邮箱 + */ + @Email + @ExcelRequireIgnore + private String teacherEmail ; + + /** + * 类型转换 + * + * @param importPojo 导入的数据 + * @param function 二次加工 + * @return + */ + public static Teacher pojo(TeacherBatchImportAdminDTO importPojo, Long universitiesCollegesId, Long universityFacultyId, Long universitySystemId, Function function) { + Teacher build = Teacher.builder() +// .universitiesCollegesId(longValuesOf(importPojo.getUniversitiesCollegesId())) +// .universityFacultyId(longValuesOf(importPojo.getUniversityFacultyId())) +// .universitySystemId(longValuesOf(importPojo.getUniversitySystemId())) + .universitiesCollegesId(universitiesCollegesId) + .universityFacultyId(universityFacultyId) + .universitySystemId(universitySystemId) + .teacherJobNumber(importPojo.getTeacherJobNumber()) + .teacherName(importPojo.getTeacherName()) + .teacherEmail(importPojo.getTeacherEmail()) + .teacherMobile(importPojo.getTeacherMobile()) + .teacherGender(GenderEnum.UN_KNOW) + .teacherPassword("123qwe") + .addTime(new Date()) + .teacherStatus(1) + .build(); + + return function.apply(build); + } + + /** + * 类型转换 + * + * @param importPojo 导入的数据 + * @return + */ + public static Teacher pojo(TeacherBatchImportAdminDTO importPojo) { + return pojo(importPojo, -1L,-1L,-1L, e -> e); + } + +} diff --git a/web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportDTO.java b/web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportUniAdminDTO.java similarity index 54% rename from web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportDTO.java rename to web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportUniAdminDTO.java index 00d0d7c0..8d86657e 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportDTO.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/dto/TeacherBatchImportUniAdminDTO.java @@ -2,7 +2,6 @@ package com.ibeetl.jlw.entity.dto; import com.ibeetl.admin.core.annotation.ExcelRequireIgnore; import com.ibeetl.admin.core.util.excelGroupValidation.ExcelFile; -import com.ibeetl.admin.core.util.excelGroupValidation.ExcelValidation; import com.ibeetl.admin.core.validation.Email; import com.ibeetl.admin.core.validation.Mobile; import com.ibeetl.jlw.entity.Teacher; @@ -14,11 +13,9 @@ import lombok.experimental.FieldNameConstants; import java.util.Date; import java.util.function.Function; -import static cn.jlw.util.excel.ExcelUtil.longValuesOf; - /** * 功能描述:
- * 学生管理, 导入实体 + * (学校管理员)教师管理, 导入实体 * * @Author: lx * @Date: 2023/2/5 23:50 @@ -26,27 +23,31 @@ import static cn.jlw.util.excel.ExcelUtil.longValuesOf; @Data @FieldNameConstants @ToString -@ExcelFile(fileHeadTemplate = "universitiesCollegesId|universityFacultyId|universitySystemId|teacherName|teacherJobNumber|teacherMobile|teacherEmail", - fileMappingTemplate = "universitiesCollegesId=院校名称|universityFacultyId=院系名称|universitySystemId=专业名称|" + +@ExcelFile(fileHeadTemplate = "universityFacultyName|universitySystemName|teacherName|teacherJobNumber|teacherMobile|teacherEmail", + fileMappingTemplate = "universityFacultyName=院系名称|universitySystemName=专业名称|" + "teacherName=教师姓名|teacherJobNumber=工号|teacherMobile=电话|teacherEmail=邮箱", datasheetHidden = true, enableDataValidation = true) -public class TeacherBatchImportDTO { +public class TeacherBatchImportUniAdminDTO { + +// /** +// * 院系名称 +// */ +// @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.UniversityFacultyService.getAllUniversityFacultyWithColleges", beforeFieldName = "universitiesCollegesId") +// private String universityFacultyId ; +// /** +// * 专业名称 +// */ +// @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.UniversitySystemService.getAllUniversitiesCollegesWithFaculty", beforeFieldName = "universityFacultyId") +// private String universitySystemId ; - /** - * 院校名称 - */ - @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.UniversitiesCollegesService.getAllUniversitiesColleges") - private String universitiesCollegesId ; /** * 院系名称 */ - @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.UniversityFacultyService.getAllUniversityFacultyWithColleges", beforeFieldName = "universitiesCollegesId") - private String universityFacultyId ; + private String universityFacultyName ; /** * 专业名称 */ - @ExcelValidation(datasourceMethod = "com.ibeetl.jlw.service.UniversitySystemService.getAllUniversitiesCollegesWithFaculty", beforeFieldName = "universityFacultyId") - private String universitySystemId ; + private String universitySystemName ; /** * 教师姓名 @@ -78,11 +79,13 @@ public class TeacherBatchImportDTO { * @param function 二次加工 * @return */ - public static Teacher pojo(TeacherBatchImportDTO importPojo, Function function) { + public static Teacher pojo(TeacherBatchImportUniAdminDTO importPojo, Long universitiesCollegesId, Long universityFacultyId, Long universitySystemId, Function function) { Teacher build = Teacher.builder() - .universitiesCollegesId(longValuesOf(importPojo.getUniversitiesCollegesId())) - .universityFacultyId(longValuesOf(importPojo.getUniversityFacultyId())) - .universitySystemId(longValuesOf(importPojo.getUniversitySystemId())) +// .universityFacultyId(longValuesOf(importPojo.getUniversityFacultyId())) +// .universitySystemId(longValuesOf(importPojo.getUniversitySystemId())) + .universitiesCollegesId(universitiesCollegesId) + .universityFacultyId(universityFacultyId) + .universitySystemId(universitySystemId) .teacherJobNumber(importPojo.getTeacherJobNumber()) .teacherName(importPojo.getTeacherName()) .teacherEmail(importPojo.getTeacherEmail()) @@ -102,8 +105,8 @@ public class TeacherBatchImportDTO { * @param importPojo 导入的数据 * @return */ - public static Teacher pojo(TeacherBatchImportDTO importPojo) { - return pojo(importPojo, e -> e); + public static Teacher pojo(TeacherBatchImportUniAdminDTO importPojo) { + return pojo(importPojo, -1L, -1L,-1L, e -> e); } } diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherService.java index dab3a9e1..196eba1c 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherService.java @@ -22,7 +22,7 @@ import com.ibeetl.admin.core.web.JsonReturnCode; import com.ibeetl.jlw.dao.TeacherDao; import com.ibeetl.jlw.dao.UniversitiesCollegesDao; import com.ibeetl.jlw.entity.*; -import com.ibeetl.jlw.entity.dto.TeacherBatchImportDTO; +import com.ibeetl.jlw.entity.dto.TeacherBatchImportAdminDTO; import com.ibeetl.jlw.job.CacheLogJob; import com.ibeetl.jlw.web.query.*; import org.apache.commons.collections4.CollectionUtils; @@ -801,7 +801,7 @@ public class TeacherService extends CoreBaseService { * @Author: 87966 * @Date: 2023/2/14 15:23 */ - public void validateTeacherSnListIsExistsThrow(List list, MyValidateExcelCellDataListener listener) { + public void validateTeacherSnListIsExistsThrow(List list, MyValidateExcelCellDataListener listener) { if (CollectionUtil.isEmpty(list)) { return; } diff --git a/web/src/main/java/com/ibeetl/jlw/web/StudentController.java b/web/src/main/java/com/ibeetl/jlw/web/StudentController.java index 9c24a4de..44d51bbf 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/StudentController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/StudentController.java @@ -2900,7 +2900,7 @@ public class StudentController extends BaseController{ UniversitySystem universitySystem = universitySystemService.getByNameOrCreate( item.getUniversitySystemName(), coreUser.getOrgId(), coreUser.getId(), universityFaculty.getUniversityFacultyId()); - // 查询这个院校已经存在的专业 + // 查询这个院校已经存在的班级 SchoolClass schoolClass = schoolClassService.getByNameOrCreate(item.getClassId(), coreUser.getOrgId(), coreUser.getId(), universityFaculty.getUniversityFacultyId(), universitySystem.getUniversitySystemId()); @@ -3008,12 +3008,12 @@ public class StudentController extends BaseController{ UniversitySystem universitySystem = universitySystemService.getByNameOrCreate( item.getUniversitySystemName(), universitiesColleges.getOrgId(), universitiesColleges.getUserId(), universityFaculty.getUniversityFacultyId()); - // 查询这个院校已经存在的专业 + // 查询这个院校已经存在的班级 SchoolClass schoolClass = schoolClassService.getByNameOrCreate(item.getClassId(), universitiesColleges.getOrgId(), universitiesColleges.getUserId(), universityFaculty.getUniversityFacultyId(), universitySystem.getUniversitySystemId()); - return StudentBatchImportAdminDTO.pojo(item, importClassIdAsString -> schoolClass.getClassId(), identity()); + return StudentBatchImportAdminDTO.pojo(item, schoolClass.getClassId(), identity()); }) .collect(Collectors.toList()); diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherController.java index c6e821ce..94bd6a13 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherController.java @@ -22,7 +22,8 @@ import com.ibeetl.admin.core.util.TimeTool; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.dao.UniversitiesCollegesDao; import com.ibeetl.jlw.entity.*; -import com.ibeetl.jlw.entity.dto.TeacherBatchImportDTO; +import com.ibeetl.jlw.entity.dto.TeacherBatchImportAdminDTO; +import com.ibeetl.jlw.entity.dto.TeacherBatchImportUniAdminDTO; import com.ibeetl.jlw.service.*; import com.ibeetl.jlw.web.query.*; import lombok.SneakyThrows; @@ -58,8 +59,8 @@ import static cn.jlw.util.CacheUserUtil.getStudent; import static com.ibeetl.admin.console.service.OrgConsoleService.setObjectOrgId; import static com.ibeetl.admin.core.util.ExcelUtil.convertData; import static com.ibeetl.admin.core.util.ExcelUtil.write; -import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser; import static com.ibeetl.admin.core.web.JsonReturnCode.DIY_ERROR; +import static java.util.function.UnaryOperator.identity; /** * Teacher 接口 @@ -109,6 +110,8 @@ public class TeacherController extends BaseController { @Autowired private StudentDefenceLogService studentDefenceLogService; @Autowired private StudentDefenceLogInfoService studentDefenceLogInfoService; @Autowired private UniversitiesCollegesDao universitiesCollegesDao; + @Autowired private UniversityFacultyService universityFacultyService; + @Autowired private UniversitySystemService universitySystemService; @Autowired FileService fileService; @@ -1526,16 +1529,20 @@ public class TeacherController extends BaseController { @SneakyThrows @GetMapping({ API + "/exportBatchTemplate.do", MODEL + "/downloadTemplate.json" }) @ResponseBody - public void exportBatchTemplate() { - - Assert.notNull(getUser(), "请登录后再操作"); + public void exportBatchTemplate(@SCoreUser CoreUser coreUser) { String filename = StrUtil.format("批量教师导入模板{}.xlsx", System.currentTimeMillis()); setExcelResponse(filename); - // 输出 Excel - com.ibeetl.admin.core.util.excelGroupValidation.ExcelUtil.createExcel(Arrays.asList(new TeacherBatchImportDTO()), response.getOutputStream()); + if (coreUser.isAdmin()) { + // 输出 Excel + com.ibeetl.admin.core.util.excelGroupValidation.ExcelUtil.createExcel(Arrays.asList(new TeacherBatchImportAdminDTO()), response.getOutputStream()); + } + else { + // 输出 Excel + com.ibeetl.admin.core.util.excelGroupValidation.ExcelUtil.createExcel(Arrays.asList(new TeacherBatchImportUniAdminDTO()), response.getOutputStream()); + } } /** @@ -1553,15 +1560,60 @@ public class TeacherController extends BaseController { try { Assert.isNull(getStudent(), "学生无法访问该接口"); + List list = null; // 输出 Excel - MyValidateExcelCellDataListener listener = new MyValidateExcelCellDataListener<>(); + MyValidateExcelCellDataListener listener = new MyValidateExcelCellDataListener<>(); - ExcelUtil.readExcelNotContainHeader(file, TeacherBatchImportDTO.class, listener); - // 判断错误的结果集 - Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage())); - // 类型转换 - List list = listener.getData().stream().map(TeacherBatchImportDTO::pojo) - .collect(Collectors.toList()); + if (coreUser.isAdmin()) { + + ExcelUtil.readExcelNotContainHeader(file, TeacherBatchImportAdminDTO.class, listener); + // 判断错误的结果集 + Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage())); + + // 类型转换 + list = (List) listener.getData().stream().map(item -> { + + TeacherBatchImportAdminDTO item1 = (TeacherBatchImportAdminDTO) item; + + // 查询这个院校已经存在的院校 + UniversitiesColleges universitiesColleges = universitiesCollegesService.getByNameOrCreate(item1.getUniversitiesCollegesName()); + + // 查询这个院校已经存在的院系 + UniversityFaculty universityFaculty = universityFacultyService.getByNameOrCreate( + item1.getUniversityFacultyName(), universitiesColleges.getOrgId(), universitiesColleges.getUserId()); + + // 查询这个院校已经存在的专业 + UniversitySystem universitySystem = universitySystemService.getByNameOrCreate( + item1.getUniversitySystemName(), universitiesColleges.getOrgId(), universitiesColleges.getUserId(), universityFaculty.getUniversityFacultyId()); + + return TeacherBatchImportAdminDTO.pojo(item1, universitiesColleges.getUniversitiesCollegesId(), universityFaculty.getUniversityFacultyId(), universitySystem.getUniversitySystemId(), identity()); + }) + .collect(Collectors.toList()); + } + // 除了超管其他身份 + else { + + ExcelUtil.readExcelNotContainHeader(file, TeacherBatchImportUniAdminDTO.class, listener); + // 判断错误的结果集 + Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage())); + // 类型转换 + list = (List) listener.getData().stream().map(item -> { + + TeacherBatchImportUniAdminDTO item1 = (TeacherBatchImportUniAdminDTO) item; + + // 查询这个院校已经存在的院系 + Long orgId = coreUser.getOrgId(); + Long userId = coreUser.getId(); + + UniversityFaculty universityFaculty = universityFacultyService.getByNameOrCreate(item1.getUniversityFacultyName(), orgId, userId); + + // 查询这个院校已经存在的专业 + UniversitySystem universitySystem = universitySystemService.getByNameOrCreate(item1.getUniversitySystemName(), orgId, userId, universityFaculty.getUniversityFacultyId()); + + return TeacherBatchImportUniAdminDTO.pojo(item1, universityFaculty.getUniversitiesCollegesId(), universityFaculty.getUniversityFacultyId(), universitySystem.getUniversitySystemId(), identity()); + }) + .collect(Collectors.toList()); + } // 设置机构ID setObjectOrgId(list, (e) -> { @@ -1580,8 +1632,7 @@ public class TeacherController extends BaseController { listener.putFailMessage(StrUtil.format("异常的院校ID:{},该院校已删除状态", e.getUniversitiesCollegesId())); } return sc.getOrgId(); - } - else { + } else { listener.putFailMessage(StrUtil.format("异常的院校ID:{},未查询到院校信息,请联系管理员", e.getUniversitiesCollegesId())); } return null;