BaseStudentSchoolRollServiceImpl.java 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. package com.xjrsoft.module.student.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.github.yulichang.base.MPJBaseServiceImpl;
  7. import com.xjrsoft.common.enums.DeleteMark;
  8. import com.xjrsoft.common.enums.GenderDictionaryEnum;
  9. import com.xjrsoft.common.enums.StudyStatusEnum;
  10. import com.xjrsoft.module.base.entity.BaseClass;
  11. import com.xjrsoft.module.base.mapper.BaseClassMapper;
  12. import com.xjrsoft.module.organization.mapper.UserMapper;
  13. import com.xjrsoft.module.room.mapper.RoomBedMapper;
  14. import com.xjrsoft.module.room.vo.RoomBedInfoVo;
  15. import com.xjrsoft.module.student.dto.BaseStudentSimpleInfoDto;
  16. import com.xjrsoft.module.student.dto.BaseStudentInfoDetailDto;
  17. import com.xjrsoft.module.student.dto.BaseStudentInfoPageDto;
  18. import com.xjrsoft.module.student.dto.PbVXsxxsfytbDto;
  19. import com.xjrsoft.module.student.dto.UpdateBaseStudentInfoDto;
  20. import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
  21. import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
  22. import com.xjrsoft.module.student.mapper.PbSemesterConfigMapper;
  23. import com.xjrsoft.module.student.mapper.PbVXsxxsfytbMapper;
  24. import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
  25. import com.xjrsoft.module.student.vo.BaseStudentInfoCategoryVo;
  26. import com.xjrsoft.module.student.vo.BaseStudentInfoDetailVo;
  27. import com.xjrsoft.module.student.vo.BaseStudentInfoPageDataVo;
  28. import com.xjrsoft.module.student.vo.BaseStudentInfoPageVo;
  29. import com.xjrsoft.module.student.vo.BaseStudentSompleInfoVo;
  30. import com.xjrsoft.module.student.vo.MobileClassStatisticsVo;
  31. import com.xjrsoft.module.student.vo.PbVXsxxsfytbVo;
  32. import lombok.AllArgsConstructor;
  33. import org.springframework.stereotype.Service;
  34. import java.util.ArrayList;
  35. import java.util.HashMap;
  36. import java.util.List;
  37. import java.util.Map;
  38. /**
  39. * @title: 助学金申请
  40. * @Author dzx
  41. * @Date: 2023-11-24
  42. * @Version 1.0
  43. */
  44. @Service
  45. @AllArgsConstructor
  46. public class BaseStudentSchoolRollServiceImpl extends MPJBaseServiceImpl<BaseStudentSchoolRollMapper, BaseStudentSchoolRoll> implements IBaseStudentSchoolRollService {
  47. private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
  48. private final RoomBedMapper roomBedMapper;
  49. private final BaseClassMapper baseClassMapper;
  50. private final PbSemesterConfigMapper pbSemesterConfigMapper;
  51. private final PbVXsxxsfytbMapper pbVXsxxsfytbMapper;
  52. private final UserMapper userMapper;
  53. @Override
  54. public Page<BaseStudentInfoPageVo> getMobilePage(Page<BaseStudentInfoPageVo> page, BaseStudentInfoPageDto dto) {
  55. List<String> roleList = StpUtil.getRoleList();
  56. long teacherId = StpUtil.getLoginIdAsLong();
  57. List<BaseClass> classList = baseClassMapper.selectList(
  58. new QueryWrapper<BaseClass>().lambda().eq(BaseClass::getTeacherId, teacherId)
  59. .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
  60. );
  61. if(roleList.size() == 1 && roleList.contains("CLASSTE")){
  62. if(classList != null && !classList.isEmpty()){
  63. dto.setTeacherId(teacherId);
  64. }
  65. }else{
  66. if(classList != null && !classList.isEmpty() && dto.getClassId() == null){
  67. dto.setClassId(classList.get(0).getId());
  68. }
  69. }
  70. String lastBeltcode = pbSemesterConfigMapper.getLastBeltcode();
  71. dto.setBeltcode(lastBeltcode);
  72. Page<BaseStudentInfoPageVo> mobilePage = baseStudentSchoolRollMapper.getMobilePage(page, dto);
  73. List<String> studentCodes = new ArrayList<>();
  74. for (BaseStudentInfoPageVo record : mobilePage.getRecords()) {
  75. studentCodes.add(record.getStudentId());
  76. }
  77. PbVXsxxsfytbDto dto2 = new PbVXsxxsfytbDto();
  78. dto2.setStudentCodes(studentCodes);
  79. dto2.setBeltcode(lastBeltcode);
  80. List<PbVXsxxsfytbVo> list = pbVXsxxsfytbMapper.getList(dto2);
  81. Map<String, String> jfztMaps = new HashMap<>();
  82. for (PbVXsxxsfytbVo pbVXsxxsfytb : list) {
  83. jfztMaps.put(pbVXsxxsfytb.getStudentcode() + pbVXsxxsfytb.getFeeitemcode(), pbVXsxxsfytb.getJfzt().replaceAll("未缴费", "欠费"));
  84. }
  85. for (BaseStudentInfoPageVo record : mobilePage.getRecords()) {
  86. record.setSsf(jfztMaps.get(record.getStudentId() + "103042766003001") == null?"欠费":jfztMaps.get(record.getStudentId() + "103042766003001"));
  87. record.setJxf(jfztMaps.get(record.getStudentId() + "999010604") == null?"欠费":jfztMaps.get(record.getStudentId() + "999010604"));
  88. record.setJcf(jfztMaps.get(record.getStudentId() + "999010603") == null?"欠费":jfztMaps.get(record.getStudentId() + "999010603"));
  89. }
  90. return mobilePage;
  91. }
  92. @Override
  93. public Boolean updateInfo(UpdateBaseStudentInfoDto dto) {
  94. for (Long id : dto.getUserIds()) {
  95. baseStudentSchoolRollMapper.updateInfoByUserId(dto, id);
  96. }
  97. return true;
  98. }
  99. @Override
  100. public BaseStudentInfoDetailVo getInfoById(BaseStudentInfoDetailDto dto) {
  101. String lastBeltcode = pbSemesterConfigMapper.getLastBeltcode();
  102. dto.setBeltcode(lastBeltcode);
  103. BaseStudentInfoDetailVo info = baseStudentSchoolRollMapper.getInfoById(dto);
  104. RoomBedInfoVo bedInfoByUserId = roomBedMapper.getBedInfoByUserId(info.getId());
  105. if(bedInfoByUserId != null){
  106. info.setBedInfo(bedInfoByUserId.getBuildName() + " " + bedInfoByUserId.getRoomName() + " " + bedInfoByUserId.getBedNumber());
  107. }
  108. return info;
  109. }
  110. @Override
  111. public BaseStudentInfoPageDataVo getMobilePageStatistics(BaseStudentInfoPageDto dto) {
  112. List<String> roleList = StpUtil.getRoleList();
  113. long teacherId = StpUtil.getLoginIdAsLong();
  114. List<BaseClass> classList = baseClassMapper.selectList(
  115. new QueryWrapper<BaseClass>().lambda().eq(BaseClass::getTeacherId, teacherId)
  116. );
  117. if(roleList.size() == 1 && roleList.contains("CLASSTE")){
  118. if(classList != null && !classList.isEmpty()){
  119. dto.setTeacherId(teacherId);
  120. }
  121. }else{
  122. if(classList != null && !classList.isEmpty() && dto.getClassId() == null){
  123. dto.setClassId(classList.get(0).getId());
  124. }
  125. }
  126. List<BaseStudentInfoCategoryVo> genderCount = baseStudentSchoolRollMapper.getGenderCount(dto);
  127. int totalCount = 0;
  128. BaseStudentInfoPageDataVo result = new BaseStudentInfoPageDataVo();
  129. for (BaseStudentInfoCategoryVo categoryVo : genderCount) {
  130. totalCount = totalCount + categoryVo.getNumber();
  131. if ("男".equals(GenderDictionaryEnum.getValue(categoryVo.getCategory()))) {
  132. result.setMaleCount(categoryVo.getNumber());
  133. } else if ("女".equals(GenderDictionaryEnum.getValue(categoryVo.getCategory()))) {
  134. result.setFemaleCount(categoryVo.getNumber());
  135. }
  136. }
  137. result.setTotalCount(totalCount);
  138. List<BaseStudentInfoCategoryVo> studyStatusCount = baseStudentSchoolRollMapper.getStudyStatusCount(dto);
  139. int stayCount = 0;
  140. int notStayCount = 0;
  141. for (BaseStudentInfoCategoryVo categoryVo : studyStatusCount) {
  142. if (StudyStatusEnum.InResidence.getCode().equals(categoryVo.getCategory())) {
  143. stayCount = stayCount + categoryVo.getNumber();
  144. if ("男".equals(GenderDictionaryEnum.getValue(categoryVo.getGender()))) {
  145. result.setMaleStayCount(categoryVo.getNumber());
  146. } else if ("女".equals(GenderDictionaryEnum.getValue(categoryVo.getGender()))) {
  147. result.setFemaleStayCount(categoryVo.getNumber());
  148. }
  149. } else if (StudyStatusEnum.AttendDaySchool.getCode().equals(categoryVo.getCategory())) {
  150. notStayCount = notStayCount + categoryVo.getNumber();
  151. if ("男".equals(GenderDictionaryEnum.getValue(categoryVo.getGender()))) {
  152. result.setMaleNotStayCount(categoryVo.getNumber());
  153. } else if ("女".equals(GenderDictionaryEnum.getValue(categoryVo.getGender()))) {
  154. result.setFemaleNotStayCount(categoryVo.getNumber());
  155. }
  156. }
  157. }
  158. result.setStayCount(stayCount);
  159. result.setNotStayCount(notStayCount);
  160. return result;
  161. }
  162. @Override
  163. public MobileClassStatisticsVo getMobileClassStatistics(BaseStudentInfoPageDto dto) {
  164. //获取当前用户的班级
  165. LambdaQueryWrapper<BaseClass> baseClassLambdaQueryWrapper = new LambdaQueryWrapper<>();
  166. baseClassLambdaQueryWrapper
  167. .eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong());
  168. List<BaseClass> baseClassList = baseClassMapper.selectList(baseClassLambdaQueryWrapper);
  169. //如果集合不为空,表示该登录用户是班主任
  170. if(baseClassList != null && !baseClassList.isEmpty()){
  171. for (BaseClass baseClass : baseClassList){
  172. }
  173. }else {
  174. }
  175. return null;
  176. }
  177. @Override
  178. public Boolean updateStudentClass(Long classId, Long userId) {
  179. return baseStudentSchoolRollMapper.updateStudentClass(classId, userId);
  180. }
  181. @Override
  182. public List<BaseStudentSompleInfoVo> getInfosByParam(BaseStudentSimpleInfoDto dto) {
  183. List<BaseStudentSompleInfoVo> userList = userMapper.getInfosByParam(dto);
  184. return userList;
  185. }
  186. }