Merge remote-tracking branch 'origin/beetlsql3-dev' into beetlsql3-dev

beetlsql3-dev
wgf 2 years ago
commit fe2b979315

@ -0,0 +1,28 @@
package com.ibeetl.admin.core.validation;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Target({
ElementType.METHOD,
ElementType.FIELD,
ElementType.ANNOTATION_TYPE,
ElementType.CONSTRUCTOR,
ElementType.PARAMETER,
ElementType.TYPE_USE
})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(
validatedBy = EmailValidator.class
)
public @interface Email {
String message() default "电子邮箱格式不正确";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}

@ -0,0 +1,29 @@
package com.ibeetl.admin.core.validation;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.StrUtil;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
/**
*
* @author lx
*/
public class EmailValidator implements ConstraintValidator<Email, String> {
@Override
public void initialize(Email annotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
// 如果邮箱为空,默认不校验,即校验通过
if (StrUtil.isEmpty(value)) {
return true;
}
// 校验邮箱
return Validator.isEmail(value);
}
}

@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.validation.BeanValidationResult;
import cn.hutool.extra.validation.ValidationUtil;
import cn.jlw.util.excel.ExcelFailRecord;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.exception.ExcelDataConvertException;
@ -66,8 +68,8 @@ public class MyValidateExcelCellDataListener<T> implements ReadListener<T> {
final Field field = fields[columnIndex]; field.setAccessible(true);
try {
final Object fieldValue = field.get(bean);
final String fieldName = field.getName();
// final String fieldName = field.getName();
// int finalColumnIndex = columnIndex;
// bean.getIndexMap().computeIfAbsent(fieldName, s -> new BaseExcelInfoDTO.BaseExcelIndexDTO() {
// @Override
@ -81,13 +83,16 @@ public class MyValidateExcelCellDataListener<T> implements ReadListener<T> {
// }
// });
ExcelRequireIgnore requireIgnore = field.getDeclaredAnnotation(ExcelRequireIgnore.class);
// 如果有忽略必传的注解,并且没有查询到值则直接跳过必传验证
if (requireIgnore != null && fieldValue == null) {
ReflectUtil.setFieldValue(bean, field, requireIgnore.defaultValue());
// 如果字段上有忽略的注解,则下面的验证就直接跳过了。
continue;
}
// 空值判断
if (ObjectUtil.isEmpty(fieldValue)) {
putFailMessage(rowIndex, columnIndex, "存在空值");
@ -99,6 +104,19 @@ public class MyValidateExcelCellDataListener<T> implements ReadListener<T> {
putFailMessage(rowIndex, columnIndex, "数据重复");
emptyColumnCount++;
}
// 验证字段是否符合格式要求
BeanValidationResult beanValidationResult = ValidationUtil.warpValidateProperty(bean, fieldName);
if (!beanValidationResult.isSuccess()) {
int finalColumnIndex = columnIndex;
beanValidationResult.getErrorMessages().forEach(item -> {
putFailMessage(rowIndex, finalColumnIndex, StrUtil.format("内容:{} {}", item.getValue(), item.getMessage()));
});
}
} catch (IllegalAccessException e) {
log.error(e.getMessage(), e);
}

@ -5,9 +5,7 @@ import com.ibeetl.jlw.entity.CourseInfo;
import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.StudentExtendSchoolInfo;
import com.ibeetl.jlw.entity.api.student.StudentActiveInfo;
import com.ibeetl.jlw.entity.dto.SystemUseLogsAnalysisDTO;
import com.ibeetl.jlw.entity.dto.StudentEditPasswordDTO;
import com.ibeetl.jlw.entity.vo.SystemUseLogsAnalysisVO;
import com.ibeetl.jlw.entity.vo.StudentLogAnalysisVO;
import com.ibeetl.jlw.entity.vo.StudentLoginLogVO;
import com.ibeetl.jlw.entity.vo.StudentUseLogVO;
@ -37,6 +35,8 @@ public interface StudentDao extends BaseMapper<Student>{
@Update
void deleteStudentByIds(String ids);
@Update
void batchAppendCodeDelByIds(String ids);
@Update
void deleteByIds(String ids);
List<Map<String,Object>> getExcelValues (StudentQuery studentQuery);
List<Map<String,Object>> getExcelValues2Competition (StudentQuery studentQuery);

@ -2,6 +2,8 @@ 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.Student;
import com.ibeetl.jlw.enums.GenderEnum;
import lombok.Data;
@ -11,8 +13,6 @@ import lombok.experimental.FieldNameConstants;
import java.util.Date;
import java.util.function.Function;
import static cn.hutool.core.util.ObjectUtil.defaultIfNull;
/**
* : <br>
* ,
@ -24,8 +24,8 @@ import static cn.hutool.core.util.ObjectUtil.defaultIfNull;
@Data
@FieldNameConstants
@ToString
@ExcelFile(fileHeadTemplate = "universitiesCollegesName|universityFacultyName|universitySystemName|classId|studentName|studentSn|studentMobile|studentEmail",
fileMappingTemplate = "universitiesCollegesName=院校名称|universityFacultyName=院系名称|universitySystemName=专业名称|classId=班级名称|studentName=学生姓名|studentSn=学号|studentMobile=电话|studentEmail=邮箱",
@ExcelFile(fileHeadTemplate = "universitiesCollegesName|universityFacultyName|universitySystemName|classId|studentName|studentSn|studentMobile|studentEmail|studentWeixinInfo",
fileMappingTemplate = "universitiesCollegesName=院校名称|universityFacultyName=院系名称|universitySystemName=专业名称|classId=班级名称|studentName=学生姓名|studentSn=学号|studentMobile=电话|studentEmail=邮箱|studentWeixinInfo=微信号",
datasheetHidden = true, enableDataValidation = true)
public class StudentBatchImportAdminDTO {
@ -62,13 +62,21 @@ public class StudentBatchImportAdminDTO {
/**
*
*/
@Mobile
@ExcelRequireIgnore
private String studentMobile ;
/**
*
*/
@Email
@ExcelRequireIgnore
private String studentEmail ;
/**
*
*/
@ExcelRequireIgnore
private String studentWeixinInfo ;
/**
*
@ -77,14 +85,15 @@ public class StudentBatchImportAdminDTO {
* @param function
* @return
*/
public static Student pojo(StudentBatchImportAdminDTO importPojo, Function<String, Long> classIdFunction, Function<Student, Student> function) {
public static Student pojo(StudentBatchImportAdminDTO importPojo, Long classId, Function<Student, Student> 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())
.studentEmail(importPojo.getStudentEmail())
.studentWeixinInfo(importPojo.getStudentWeixinInfo())
.studentStatus(1)
.studentGender(GenderEnum.UN_KNOW)
.studentPassword("123qwe")
@ -102,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);
}
}

@ -2,6 +2,8 @@ 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.Student;
import com.ibeetl.jlw.enums.GenderEnum;
import lombok.Data;
@ -24,8 +26,8 @@ import static cn.hutool.core.util.ObjectUtil.defaultIfNull;
@Data
@FieldNameConstants
@ToString
@ExcelFile(fileHeadTemplate = "universityFacultyName|universitySystemName|classId|studentName|studentSn|studentMobile|studentEmail",
fileMappingTemplate = "universityFacultyName=院系名称|universitySystemName=专业名称|classId=班级名称|studentName=学生姓名|studentSn=学号|studentMobile=电话|studentEmail=邮箱",
@ExcelFile(fileHeadTemplate = "universityFacultyName|universitySystemName|classId|studentName|studentSn|studentMobile|studentEmail|studentWeixinInfo",
fileMappingTemplate = "universityFacultyName=院系名称|universitySystemName=专业名称|classId=班级名称|studentName=学生姓名|studentSn=学号|studentMobile=电话|studentEmail=邮箱|studentWeixinInfo=微信号",
datasheetHidden = true, enableDataValidation = true)
public class StudentBatchImportUniAdminDTO {
@ -56,13 +58,21 @@ public class StudentBatchImportUniAdminDTO {
/**
*
*/
@Mobile
@ExcelRequireIgnore
private String studentMobile ;
/**
*
*/
@Email
@ExcelRequireIgnore
private String studentEmail ;
/**
*
*/
@ExcelRequireIgnore
private String studentWeixinInfo ;
/**
*
@ -79,6 +89,7 @@ public class StudentBatchImportUniAdminDTO {
.studentSn(importPojo.getStudentSn())
.studentMobile(importPojo.getStudentMobile())
.studentEmail(importPojo.getStudentEmail())
.studentWeixinInfo(importPojo.getStudentWeixinInfo())
.studentStatus(1)
.studentGender(GenderEnum.UN_KNOW)
.studentPassword("123qwe")

@ -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;
/**
* : <br>
* ,
*
* @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<Teacher, Teacher> 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);
}
}

@ -1,102 +0,0 @@
package com.ibeetl.jlw.entity.dto;
import com.ibeetl.admin.core.util.excelGroupValidation.ExcelFile;
import com.ibeetl.admin.core.util.excelGroupValidation.ExcelValidation;
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;
import static cn.jlw.util.excel.ExcelUtil.longValuesOf;
/**
* : <br>
* ,
*
* @Author: lx
* @Date: 2023/2/5 23:50
*/
@Data
@FieldNameConstants
@ToString
@ExcelFile(fileHeadTemplate = "universitiesCollegesId|universityFacultyId|universitySystemId|teacherName|teacherJobNumber|teacherMobile|teacherEmail",
fileMappingTemplate = "universitiesCollegesId=院校名称|universityFacultyId=院系名称|universitySystemId=专业名称|" +
"teacherName=教师姓名|teacherJobNumber=工号|teacherMobile=电话|teacherEmail=邮箱",
datasheetHidden = true, enableDataValidation = true)
public class TeacherBatchImportDTO {
/**
*
*/
@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 teacherName ;
/**
*
*/
private String teacherJobNumber ;
/**
*
*/
private String teacherMobile ;
/**
*
*/
private String teacherEmail ;
/**
*
*
* @param importPojo
* @param function
* @return
*/
public static Teacher pojo(TeacherBatchImportDTO importPojo, Function<Teacher, Teacher> function) {
Teacher build = Teacher.builder()
.universitiesCollegesId(longValuesOf(importPojo.getUniversitiesCollegesId()))
.universityFacultyId(longValuesOf(importPojo.getUniversityFacultyId()))
.universitySystemId(longValuesOf(importPojo.getUniversitySystemId()))
.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(TeacherBatchImportDTO importPojo) {
return pojo(importPojo, e -> e);
}
}

@ -0,0 +1,112 @@
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;
/**
* : <br>
* ,
*
* @Author: lx
* @Date: 2023/2/5 23:50
*/
@Data
@FieldNameConstants
@ToString
@ExcelFile(fileHeadTemplate = "universityFacultyName|universitySystemName|teacherName|teacherJobNumber|teacherMobile|teacherEmail",
fileMappingTemplate = "universityFacultyName=院系名称|universitySystemName=专业名称|" +
"teacherName=教师姓名|teacherJobNumber=工号|teacherMobile=电话|teacherEmail=邮箱",
datasheetHidden = true, enableDataValidation = true)
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 ;
/**
*
*/
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(TeacherBatchImportUniAdminDTO importPojo, Long universitiesCollegesId, Long universityFacultyId, Long universitySystemId, Function<Teacher, Teacher> function) {
Teacher build = Teacher.builder()
// .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(TeacherBatchImportUniAdminDTO importPojo) {
return pojo(importPojo, -1L, -1L,-1L, e -> e);
}
}

@ -436,9 +436,10 @@ public class StudentService extends CoreBaseService<Student>{
//置空相应coreUser的code
userConsoleService.batchSetCodeNullByIds(userIds);
// 批量置空 学生编号后面追加@_DEL, 代表已经删除了
studentDao.batchAppendCodeDelByIds(ids);
// 逻辑删除学生
studentDao.deleteStudentByIds(ids);
}
public void deleteByList(List list){

@ -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<Teacher> {
* @Author: 87966
* @Date: 2023/2/14 15:23
*/
public void validateTeacherSnListIsExistsThrow(List<Teacher> list, MyValidateExcelCellDataListener<TeacherBatchImportDTO> listener) {
public void validateTeacherSnListIsExistsThrow(List<Teacher> list, MyValidateExcelCellDataListener<TeacherBatchImportAdminDTO> listener) {
if (CollectionUtil.isEmpty(list)) {
return;
}

@ -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());

@ -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<Teacher> list = null;
// 输出 Excel
MyValidateExcelCellDataListener<TeacherBatchImportDTO> listener = new MyValidateExcelCellDataListener<>();
MyValidateExcelCellDataListener listener = new MyValidateExcelCellDataListener<>();
ExcelUtil.readExcelNotContainHeader(file, TeacherBatchImportDTO.class, listener);
// 判断错误的结果集
Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage()));
// 类型转换
List<Teacher> 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<Teacher>) 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<Teacher>) 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;

@ -398,6 +398,16 @@ deleteStudentByIds
`student_status` = 2
WHERE FIND_IN_SET(student_id,#ids#)
batchAppendCodeDelByIds
===
* 批量 设置学生Code 后面追加@_DEL
UPDATE `student`
SET
`student_sn` = concat(student_sn, '&_DEL&')
WHERE FIND_IN_SET(student_id, #ids#)
deleteByIds
===

Loading…
Cancel
Save