|
@@ -6,19 +6,19 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.paper.library.common.base.BaseEntity;
|
|
import com.qmth.paper.library.common.base.BaseEntity;
|
|
-import com.qmth.paper.library.common.bean.dto.TaskPrintClassDto;
|
|
|
|
import com.qmth.paper.library.common.bean.dto.excel.BasicStudentImportDto;
|
|
import com.qmth.paper.library.common.bean.dto.excel.BasicStudentImportDto;
|
|
import com.qmth.paper.library.common.bean.dto.excel.DescribeImportDto;
|
|
import com.qmth.paper.library.common.bean.dto.excel.DescribeImportDto;
|
|
-import com.qmth.paper.library.common.bean.params.BasicStudentExtrasParam;
|
|
|
|
import com.qmth.paper.library.common.bean.params.BasicStudentParams;
|
|
import com.qmth.paper.library.common.bean.params.BasicStudentParams;
|
|
import com.qmth.paper.library.common.bean.result.BasicStudentResult;
|
|
import com.qmth.paper.library.common.bean.result.BasicStudentResult;
|
|
import com.qmth.paper.library.common.contant.SystemConstant;
|
|
import com.qmth.paper.library.common.contant.SystemConstant;
|
|
import com.qmth.paper.library.common.entity.BasicStudent;
|
|
import com.qmth.paper.library.common.entity.BasicStudent;
|
|
|
|
+import com.qmth.paper.library.common.entity.SysOrg;
|
|
import com.qmth.paper.library.common.entity.SysUser;
|
|
import com.qmth.paper.library.common.entity.SysUser;
|
|
import com.qmth.paper.library.common.enums.ExceptionResultEnum;
|
|
import com.qmth.paper.library.common.enums.ExceptionResultEnum;
|
|
-import com.qmth.paper.library.common.enums.TeachBasicEnum;
|
|
|
|
|
|
+import com.qmth.paper.library.common.enums.OrgTypeEnum;
|
|
import com.qmth.paper.library.common.mapper.BasicStudentMapper;
|
|
import com.qmth.paper.library.common.mapper.BasicStudentMapper;
|
|
import com.qmth.paper.library.common.service.BasicStudentService;
|
|
import com.qmth.paper.library.common.service.BasicStudentService;
|
|
|
|
+import com.qmth.paper.library.common.service.SysOrgService;
|
|
import com.qmth.paper.library.common.util.ServletUtil;
|
|
import com.qmth.paper.library.common.util.ServletUtil;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -42,13 +42,15 @@ import java.util.stream.Stream;
|
|
public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, BasicStudent> implements BasicStudentService {
|
|
public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, BasicStudent> implements BasicStudentService {
|
|
@Resource
|
|
@Resource
|
|
private BasicStudentMapper basicStudentMapper;
|
|
private BasicStudentMapper basicStudentMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private SysOrgService sysOrgService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public IPage<BasicStudentResult> basicStudentPage(String queryParams, Long collegeId, Long majorId, Set<Long> clazzIdList, int pageNumber, int pageSize) {
|
|
|
|
|
|
+ public IPage<BasicStudentResult> basicStudentPage(String queryParams, Long collegeId, String majorName, String clazzName, int pageNumber, int pageSize) {
|
|
Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
queryParams = SystemConstant.translateSpecificSign(queryParams);
|
|
queryParams = SystemConstant.translateSpecificSign(queryParams);
|
|
- return basicStudentMapper.findBasicStudentPage(new Page<>(pageNumber, pageSize), queryParams, schoolId, collegeId, majorId, clazzIdList, null);
|
|
|
|
|
|
+ return basicStudentMapper.findBasicStudentPage(new Page<>(pageNumber, pageSize), queryParams, schoolId, collegeId, majorName, clazzName, null);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -61,8 +63,8 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<BasicStudentResult> basicStudentList(Long schoolId, Long collegeId, Long majorId, Long clazzId, List<String> studentCodeList) {
|
|
|
|
- return this.baseMapper.findBasicStudentList(schoolId, collegeId, majorId, clazzId, studentCodeList);
|
|
|
|
|
|
+ public List<BasicStudentResult> basicStudentList(Long schoolId, Long collegeId, String majorName, String clazzName, List<String> studentCodeList) {
|
|
|
|
+ return this.baseMapper.findBasicStudentList(schoolId, collegeId, majorName, clazzName, studentCodeList);
|
|
}
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -75,70 +77,19 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
|
|
return basicStudent.getId();
|
|
return basicStudent.getId();
|
|
}
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- @Override
|
|
|
|
- public void saveOrUpdateBasicStudentBatch(List<BasicStudentParams> basicStudentParamsList, SysUser requestUser) {
|
|
|
|
- this.saveOrUpdateBatch(this.editEntityHelp(basicStudentParamsList, requestUser));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- @Override
|
|
|
|
- public void saveBasicStudentWithExtrasList(List<BasicStudentExtrasParam> basicStudentExtrasParamList, SysUser requestUser) throws IllegalAccessException {
|
|
|
|
- Long schoolId = requestUser.getSchoolId();
|
|
|
|
- final String link = "-";
|
|
|
|
- // key = collegeName
|
|
|
|
- Map<String, Long> collegeMap = new HashMap<>();
|
|
|
|
- // key = schoolId + "-" + majorName
|
|
|
|
- Map<String, Long> majorMap = new HashMap<>();
|
|
|
|
- // key = schoolId + "-" + clazzName
|
|
|
|
- Map<String, Long> clazzMap = new HashMap<>();
|
|
|
|
-
|
|
|
|
- List<BasicStudentParams> addBasicStudentParamsList = new ArrayList<>();
|
|
|
|
- for (BasicStudentExtrasParam basicStudentExtrasParam : basicStudentExtrasParamList) {
|
|
|
|
- // 取值
|
|
|
|
- String studentName = basicStudentExtrasParam.getStudentName();
|
|
|
|
- String studentCode = basicStudentExtrasParam.getStudentCode();
|
|
|
|
- String phoneNumber = basicStudentExtrasParam.getPhoneNumber();
|
|
|
|
- String collegeName = basicStudentExtrasParam.getCollegeName();
|
|
|
|
- String majorName = basicStudentExtrasParam.getMajorName();
|
|
|
|
- String clazzName = basicStudentExtrasParam.getClazzName();
|
|
|
|
-
|
|
|
|
- // 学生信息组装
|
|
|
|
- BasicStudentParams basicStudentParams = new BasicStudentParams();
|
|
|
|
- basicStudentParams.setStudentName(studentName);
|
|
|
|
- basicStudentParams.setStudentCode(studentCode);
|
|
|
|
- basicStudentParams.setPhoneNumber(phoneNumber);
|
|
|
|
-
|
|
|
|
- BasicStudent tmp = this.getOne(new QueryWrapper<BasicStudent>().lambda()
|
|
|
|
- .eq(BasicStudent::getSchoolId, requestUser.getSchoolId())
|
|
|
|
- .eq(BasicStudent::getEnable, true)
|
|
|
|
- .eq(BasicStudent::getStudentCode, studentCode));
|
|
|
|
- if (Objects.nonNull(tmp)) {
|
|
|
|
- basicStudentParams.setId(tmp.getId());
|
|
|
|
- }
|
|
|
|
- addBasicStudentParamsList.add(basicStudentParams);
|
|
|
|
- }
|
|
|
|
- List<BasicStudent> basicStudentList = this.editEntityHelp(addBasicStudentParamsList, requestUser);
|
|
|
|
- this.saveOrUpdateBatch(basicStudentList);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public Boolean removeBasicStudentBatch(List<Long> idList) {
|
|
public Boolean removeBasicStudentBatch(List<Long> idList) {
|
|
-
|
|
|
|
if (idList.size() == 0) {
|
|
if (idList.size() == 0) {
|
|
throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
|
|
throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
|
|
}
|
|
}
|
|
// 删除基础学生
|
|
// 删除基础学生
|
|
- this.remove(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getId, idList));
|
|
|
|
- // 同步删除教学学生
|
|
|
|
- this.baseMapper.deleteTeachStudentByBasicStudentIdSet(new HashSet<>(idList));
|
|
|
|
- return true;
|
|
|
|
|
|
+ return this.remove(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getId, idList));
|
|
}
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
- public Boolean removeBasicStudentByCondition(String queryParams, Long collegeId, Long majorId, Set<Long> clazzIdList) {
|
|
|
|
|
|
+ public Boolean removeBasicStudentByCondition(String queryParams, Long collegeId, String majorName, String clazzName) {
|
|
LambdaQueryWrapper<BasicStudent> basicStudentQueryWrapper = new QueryWrapper<BasicStudent>().lambda();
|
|
LambdaQueryWrapper<BasicStudent> basicStudentQueryWrapper = new QueryWrapper<BasicStudent>().lambda();
|
|
if (SystemConstant.strNotNull(queryParams)) {
|
|
if (SystemConstant.strNotNull(queryParams)) {
|
|
basicStudentQueryWrapper.and(e -> e.like(BasicStudent::getStudentName, queryParams).or().like(BasicStudent::getStudentCode, queryParams));
|
|
basicStudentQueryWrapper.and(e -> e.like(BasicStudent::getStudentName, queryParams).or().like(BasicStudent::getStudentCode, queryParams));
|
|
@@ -146,11 +97,11 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
|
|
if (SystemConstant.longNotNull(collegeId)) {
|
|
if (SystemConstant.longNotNull(collegeId)) {
|
|
basicStudentQueryWrapper.eq(BasicStudent::getBelongOrgId, collegeId);
|
|
basicStudentQueryWrapper.eq(BasicStudent::getBelongOrgId, collegeId);
|
|
}
|
|
}
|
|
- if (SystemConstant.longNotNull(majorId)) {
|
|
|
|
- basicStudentQueryWrapper.eq(BasicStudent::getMajorId, majorId);
|
|
|
|
|
|
+ if (SystemConstant.strNotNull(majorName)) {
|
|
|
|
+ basicStudentQueryWrapper.eq(BasicStudent::getMajorName, majorName);
|
|
}
|
|
}
|
|
- if (clazzIdList != null && clazzIdList.size() > 0) {
|
|
|
|
- basicStudentQueryWrapper.in(BasicStudent::getClazzId, clazzIdList);
|
|
|
|
|
|
+ if (SystemConstant.strNotNull(clazzName)) {
|
|
|
|
+ basicStudentQueryWrapper.eq(BasicStudent::getClazzName, clazzName);
|
|
}
|
|
}
|
|
List<BasicStudent> willDeleteStudent = this.list(basicStudentQueryWrapper);
|
|
List<BasicStudent> willDeleteStudent = this.list(basicStudentQueryWrapper);
|
|
|
|
|
|
@@ -158,16 +109,15 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
|
|
if (willDeleteStudent.size() > 0) {
|
|
if (willDeleteStudent.size() > 0) {
|
|
Set<Long> idSet = willDeleteStudent.stream().map(BaseEntity::getId).collect(Collectors.toSet());
|
|
Set<Long> idSet = willDeleteStudent.stream().map(BaseEntity::getId).collect(Collectors.toSet());
|
|
this.removeByIds(idSet);
|
|
this.removeByIds(idSet);
|
|
- // 同步删除教学学生
|
|
|
|
- this.baseMapper.deleteTeachStudentByBasicStudentIdSet(idSet);
|
|
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
- public Map<String, Object> executeBasicStudentImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws IllegalAccessException {
|
|
|
|
|
|
+ public Map<String, Object> executeBasicStudentImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) {
|
|
SysUser sysUser = (SysUser) map.get(SystemConstant.SYS_USER);
|
|
SysUser sysUser = (SysUser) map.get(SystemConstant.SYS_USER);
|
|
|
|
+ Long schoolId = sysUser.getSchoolId();
|
|
for (int i = 0; i < finalList.size(); i++) {
|
|
for (int i = 0; i < finalList.size(); i++) {
|
|
LinkedMultiValueMap<Integer, Object> excelMap = finalList.get(i);
|
|
LinkedMultiValueMap<Integer, Object> excelMap = finalList.get(i);
|
|
List<Object> basicStudentImportDtoList = excelMap.get(i);
|
|
List<Object> basicStudentImportDtoList = excelMap.get(i);
|
|
@@ -182,17 +132,68 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
|
|
return basicStudentImportDto;
|
|
return basicStudentImportDto;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
- List<BasicStudentExtrasParam> basicStudentExtrasParamList = datasource.stream().flatMap(e -> {
|
|
|
|
- BasicStudentExtrasParam basicStudentExtrasParam = new BasicStudentExtrasParam();
|
|
|
|
- basicStudentExtrasParam.setStudentName(e.getStudentName());
|
|
|
|
- basicStudentExtrasParam.setStudentCode(e.getStudentCode());
|
|
|
|
- basicStudentExtrasParam.setPhoneNumber(e.getPhoneNumber());
|
|
|
|
- basicStudentExtrasParam.setCollegeName(e.getCollegeName());
|
|
|
|
- basicStudentExtrasParam.setMajorName(e.getMajorName());
|
|
|
|
- basicStudentExtrasParam.setClazzName(e.getClazzName());
|
|
|
|
- return Stream.of(basicStudentExtrasParam);
|
|
|
|
|
|
+ Map<String, Long> collegeMap = new HashMap<>();
|
|
|
|
+ // 学校级机构
|
|
|
|
+ SysOrg schoolOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getType, OrgTypeEnum.SCHOOL));
|
|
|
|
+ if (Objects.isNull(schoolOrg)) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("未找到学校级机构");
|
|
|
|
+ }
|
|
|
|
+ Long schoolOrgId = schoolOrg.getId();
|
|
|
|
+ // 学校下所有二级机构集合
|
|
|
|
+ List<SysOrg> secondaryOrgList = sysOrgService.list(new QueryWrapper<SysOrg>()
|
|
|
|
+ .lambda()
|
|
|
|
+ .eq(SysOrg::getSchoolId, schoolId)
|
|
|
|
+ .eq(SysOrg::getParentId, schoolOrgId))
|
|
|
|
+ .stream()
|
|
|
|
+ .filter(e -> !OrgTypeEnum.PRINTING_HOUSE.equals(e.getType()))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<BasicStudentParams> basicStudentParamsList = datasource.stream().flatMap(e -> {
|
|
|
|
+ String collegeName = e.getCollegeName();
|
|
|
|
+ // 学院
|
|
|
|
+ Long collegeId = null;
|
|
|
|
+ if (SystemConstant.strNotNull(collegeName)) {
|
|
|
|
+ if (collegeMap.containsKey(collegeName)) {
|
|
|
|
+ collegeId = collegeMap.get(collegeName);
|
|
|
|
+ } else {
|
|
|
|
+ List<SysOrg> effectList = secondaryOrgList.stream().filter(n -> collegeName.equals(n.getName())).distinct().collect(Collectors.toList());
|
|
|
|
+ if (effectList.size() > 1) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("机构数据异常");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (effectList.size() == 0) {
|
|
|
|
+ // 新增一个机构
|
|
|
|
+ SysOrg addOrg = new SysOrg();
|
|
|
|
+ addOrg.insertInfo(sysUser.getId());
|
|
|
|
+ addOrg.setSchoolId(schoolId);
|
|
|
|
+ addOrg.setParentId(schoolOrgId);
|
|
|
|
+ sysOrgService.saveOrg(addOrg);
|
|
|
|
+ collegeId = addOrg.getId();
|
|
|
|
+ } else {
|
|
|
|
+ collegeId = effectList.get(0).getId();
|
|
|
|
+ }
|
|
|
|
+ collegeMap.put(collegeName, collegeId);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String studentCode = e.getStudentCode();
|
|
|
|
+ BasicStudentParams basicStudentParams = new BasicStudentParams();
|
|
|
|
+ BasicStudent tmp = this.getOne(new QueryWrapper<BasicStudent>().lambda()
|
|
|
|
+ .eq(BasicStudent::getSchoolId, schoolId)
|
|
|
|
+ .eq(BasicStudent::getEnable, true)
|
|
|
|
+ .eq(BasicStudent::getStudentCode, studentCode));
|
|
|
|
+ if (Objects.nonNull(tmp)) {
|
|
|
|
+ basicStudentParams.setId(tmp.getId());
|
|
|
|
+ }
|
|
|
|
+ basicStudentParams.setStudentName(e.getStudentName());
|
|
|
|
+ basicStudentParams.setStudentCode(e.getStudentCode());
|
|
|
|
+ basicStudentParams.setPhoneNumber(e.getPhoneNumber());
|
|
|
|
+ basicStudentParams.setCollegeId(collegeId);
|
|
|
|
+ basicStudentParams.setMajorName(e.getMajorName());
|
|
|
|
+ basicStudentParams.setClazzName(e.getClazzName());
|
|
|
|
+ return Stream.of(basicStudentParams);
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
- this.saveBasicStudentWithExtrasList(basicStudentExtrasParamList, sysUser);
|
|
|
|
|
|
+ this.saveOrUpdateBatch(this.editEntityHelp(basicStudentParamsList, sysUser));
|
|
map.put("dataCount", datasource.size());
|
|
map.put("dataCount", datasource.size());
|
|
}
|
|
}
|
|
return map;
|
|
return map;
|
|
@@ -213,8 +214,8 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
|
|
String studentName = basicStudentParams.getStudentName();
|
|
String studentName = basicStudentParams.getStudentName();
|
|
String studentCode = basicStudentParams.getStudentCode();
|
|
String studentCode = basicStudentParams.getStudentCode();
|
|
String phoneNumber = basicStudentParams.getPhoneNumber();
|
|
String phoneNumber = basicStudentParams.getPhoneNumber();
|
|
- Long clazzId = basicStudentParams.getClazzId();
|
|
|
|
- Long majorId = basicStudentParams.getMajorId();
|
|
|
|
|
|
+ String majorName = basicStudentParams.getMajorName();
|
|
|
|
+ String clazzName = basicStudentParams.getClazzName();
|
|
Long collegeId = basicStudentParams.getCollegeId();
|
|
Long collegeId = basicStudentParams.getCollegeId();
|
|
|
|
|
|
// 班级验证
|
|
// 班级验证
|
|
@@ -250,8 +251,8 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
|
|
basicStudent.setStudentName(studentName);
|
|
basicStudent.setStudentName(studentName);
|
|
basicStudent.setPhoneNumber(phoneNumber);
|
|
basicStudent.setPhoneNumber(phoneNumber);
|
|
basicStudent.setBelongOrgId(collegeId);
|
|
basicStudent.setBelongOrgId(collegeId);
|
|
- basicStudent.setMajorId(majorId);
|
|
|
|
- basicStudent.setClazzId(clazzId);
|
|
|
|
|
|
+ basicStudent.setMajorName(majorName);
|
|
|
|
+ basicStudent.setClazzName(clazzName);
|
|
basicStudent.setSchoolId(schoolId);
|
|
basicStudent.setSchoolId(schoolId);
|
|
|
|
|
|
// 保存
|
|
// 保存
|