|
|
|
@ -46,6 +46,7 @@ import static cn.hutool.core.util.ObjectUtil.defaultIfNull;
|
|
|
|
|
import static cn.jlw.util.CacheUserUtil.getStudent;
|
|
|
|
|
import static com.ibeetl.admin.console.service.OrgConsoleService.setObjectOrgId;
|
|
|
|
|
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
|
|
|
|
|
import static com.ibeetl.admin.core.web.JsonReturnCode.DIY_ERROR;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* SchoolClass 接口
|
|
|
|
@ -303,43 +304,48 @@ public class SchoolClassController extends BaseController {
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public JsonResult importBatchTemplate(@NotNull(message = "导入的文件不能为空!") MultipartFile file, @SCoreUser CoreUser coreUser) {
|
|
|
|
|
|
|
|
|
|
Assert.isNull(getStudent(), "学生无法访问该接口");
|
|
|
|
|
try {
|
|
|
|
|
Assert.isNull(getStudent(), "学生无法访问该接口");
|
|
|
|
|
|
|
|
|
|
// 输出 Excel
|
|
|
|
|
MyValidateExcelCellDataListener<SchoolClassBatchImportDTO> listener = new MyValidateExcelCellDataListener<>();
|
|
|
|
|
// 输出 Excel
|
|
|
|
|
MyValidateExcelCellDataListener<SchoolClassBatchImportDTO> listener = new MyValidateExcelCellDataListener<>();
|
|
|
|
|
|
|
|
|
|
ExcelUtil.readExcelNotContainHeader(file, SchoolClassBatchImportDTO.class, listener);
|
|
|
|
|
// 判断错误的结果集
|
|
|
|
|
Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage()));
|
|
|
|
|
// 类型转换
|
|
|
|
|
List<SchoolClass> classList = listener.getData().stream()
|
|
|
|
|
ExcelUtil.readExcelNotContainHeader(file, SchoolClassBatchImportDTO.class, listener);
|
|
|
|
|
// 判断错误的结果集
|
|
|
|
|
Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage()));
|
|
|
|
|
// 类型转换
|
|
|
|
|
List<SchoolClass> classList = listener.getData().stream()
|
|
|
|
|
// .map(item -> SchoolClassBatchImportDTO.pojo(item, (e) -> e))
|
|
|
|
|
.map(SchoolClassBatchImportDTO::pojo)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
// 设置机构ID
|
|
|
|
|
setObjectOrgId(classList, (e) -> {
|
|
|
|
|
UniversitiesColleges universitiesColleges = new UniversitiesColleges();
|
|
|
|
|
universitiesColleges.setUniversitiesCollegesId(e.getUniversitiesCollegesId());
|
|
|
|
|
UniversitiesColleges uc = universitiesCollegesDao.templateOne(universitiesColleges);
|
|
|
|
|
if (uc != null) {
|
|
|
|
|
return uc.getOrgId();
|
|
|
|
|
.map(SchoolClassBatchImportDTO::pojo)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
// 设置机构ID
|
|
|
|
|
setObjectOrgId(classList, (e) -> {
|
|
|
|
|
UniversitiesColleges universitiesColleges = new UniversitiesColleges();
|
|
|
|
|
universitiesColleges.setUniversitiesCollegesId(e.getUniversitiesCollegesId());
|
|
|
|
|
UniversitiesColleges uc = universitiesCollegesDao.templateOne(universitiesColleges);
|
|
|
|
|
if (uc != null) {
|
|
|
|
|
return uc.getOrgId();
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
schoolClassService.validateClassSnListIsExistsThrow(classList);
|
|
|
|
|
}
|
|
|
|
|
catch (IllegalArgumentException e) {
|
|
|
|
|
listener.putFailMessage(e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
finally {
|
|
|
|
|
// 再次判断错误的结果集
|
|
|
|
|
Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage()));
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
schoolClassService.validateClassSnListIsExistsThrow(classList);
|
|
|
|
|
schoolClassService.insertBatch(classList);
|
|
|
|
|
}
|
|
|
|
|
catch (IllegalArgumentException e) {
|
|
|
|
|
listener.putFailMessage(e.getMessage());
|
|
|
|
|
catch (IllegalArgumentException exception) {
|
|
|
|
|
return JsonResult.failMessage(exception.getMessage()).setCode(DIY_ERROR.getCode());
|
|
|
|
|
}
|
|
|
|
|
finally {
|
|
|
|
|
// 再次判断错误的结果集
|
|
|
|
|
Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
schoolClassService.insertBatch(classList);
|
|
|
|
|
|
|
|
|
|
return JsonResult.successMessage("导入成功!");
|
|
|
|
|
}
|
|
|
|
|