|
|
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
import com.github.yulichang.toolkit.MPJWrappers;
|
|
|
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.enums.DeleteMark;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
@@ -36,7 +37,6 @@ import com.xjrsoft.module.room.vo.DistributeResultListVo;
|
|
|
import com.xjrsoft.module.room.vo.DistributeRoomBedPageVo;
|
|
|
import com.xjrsoft.module.room.vo.NoBedStudentPageVo;
|
|
|
import com.xjrsoft.module.room.vo.RoomBedPageVo;
|
|
|
-import com.xjrsoft.module.room.vo.RoomBedVo;
|
|
|
import com.xjrsoft.module.room.vo.RoomClassCountVo;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudent;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
|
|
|
@@ -49,8 +49,10 @@ import org.springframework.stereotype.Service;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
/**
|
|
|
* @title: 寝室床位
|
|
|
@@ -131,16 +133,22 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
|
|
|
|
|
|
@Override
|
|
|
public Boolean distributeRoomBed(DistributeRoomBedDto dto) {
|
|
|
- //查询出所有床位信息
|
|
|
- List<RoomBedVo> bedInfoList = roomBedMapper.getBedInfo(dto.getRoomIds());
|
|
|
-
|
|
|
- Room room = roomMapper.selectById(dto.getRoomIds().get(0));
|
|
|
- String gender = room.getGender();
|
|
|
- Integer genderNumber = null;
|
|
|
- if("SB10001".equals(gender)){
|
|
|
- genderNumber = 1;
|
|
|
- }else if("SB10002".equals(gender)){
|
|
|
- genderNumber = 2;
|
|
|
+ List<Room> roomList = roomMapper.selectList(new QueryWrapper<Room>().lambda().in(Room::getId, dto.getRoomIds()));
|
|
|
+ Set<Integer> genderSet = new HashSet<>();
|
|
|
+ for (Room room : roomList) {
|
|
|
+ if("SB10001".equals(room.getGender())){
|
|
|
+ genderSet.add(1);
|
|
|
+ }else if("SB10002".equals(room.getGender())){
|
|
|
+ genderSet.add(2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Map<Integer, String> genderMap = new HashMap<>();
|
|
|
+ for (Integer genderNumber : genderSet) {
|
|
|
+ if(genderNumber == 1){
|
|
|
+ genderMap.put(genderNumber, "SB10001");
|
|
|
+ }else if(genderNumber == 2){
|
|
|
+ genderMap.put(genderNumber, "SB10002");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
Date modifyDate = new Date();
|
|
|
@@ -150,38 +158,47 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
|
|
|
int i = 0;
|
|
|
Map<Long, Integer> classDistributeBedNumber = new HashMap<>();
|
|
|
Map<Long, Integer> classStudent = new HashMap<>();
|
|
|
- for (Long classId : dto.getClassIds()) {
|
|
|
- List<BaseStudent> studentList = baseStudentMapper.selectList(
|
|
|
- MPJWrappers.<BaseStudent>lambdaJoin()
|
|
|
- .select(BaseStudent::getUserId)
|
|
|
- .eq(BaseClass::getId, classId)
|
|
|
- .eq(XjrUser::getGender, genderNumber)
|
|
|
- .eq(BaseStudentSchoolRoll::getStduyStatus, "FB3002")
|
|
|
- .eq(BaseStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
- .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
- .innerJoin(XjrUser.class, XjrUser::getId, BaseStudent::getUserId)
|
|
|
- .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, BaseStudent::getUserId)
|
|
|
- .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
|
|
|
+ for (Integer genderNumber : genderSet) {
|
|
|
+ //根据性别查询出所有床位信息
|
|
|
+ List<RoomBed> bedInfoList = roomBedMapper.selectList(
|
|
|
+ new MPJLambdaWrapper<RoomBed>()
|
|
|
+ .innerJoin(Room.class, Room::getId, RoomBed::getRoomId)
|
|
|
+ .eq(Room::getGender, genderMap.get(genderNumber))
|
|
|
+ .in(RoomBed::getRoomId, dto.getRoomIds())
|
|
|
);
|
|
|
- //已分配床位数
|
|
|
- int distributeBedNumber = 0;
|
|
|
- for (BaseStudent studentInfoVo : studentList) {
|
|
|
- if(i >= bedInfoList.size()){
|
|
|
- continue;
|
|
|
- }
|
|
|
- RoomBedVo roomBedVo = bedInfoList.get(i);
|
|
|
- RoomBed roomBed = BeanUtil.toBean(roomBedVo, RoomBed.class);
|
|
|
- roomBed.setStudentUserId(studentInfoVo.getUserId());
|
|
|
- roomBed.setModifyDate(modifyDate);
|
|
|
- roomBed.setModifyUserId(modifyUserId);
|
|
|
- roomBedMapper.updateById(roomBed);
|
|
|
- i ++;
|
|
|
- distributeBedNumber ++;
|
|
|
|
|
|
+ for (Long classId : dto.getClassIds()) {
|
|
|
+ List<BaseStudent> studentList = baseStudentMapper.selectList(
|
|
|
+ MPJWrappers.<BaseStudent>lambdaJoin()
|
|
|
+ .select(BaseStudent::getUserId)
|
|
|
+ .eq(BaseClass::getId, classId)
|
|
|
+ .eq(XjrUser::getGender, genderNumber)
|
|
|
+ .eq(BaseStudentSchoolRoll::getStduyStatus, "FB3002")
|
|
|
+ .eq(BaseStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .innerJoin(XjrUser.class, XjrUser::getId, BaseStudent::getUserId)
|
|
|
+ .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, BaseStudent::getUserId)
|
|
|
+ .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
|
|
|
+ );
|
|
|
+ //已分配床位数
|
|
|
+ int distributeBedNumber = 0;
|
|
|
+ for (BaseStudent studentInfoVo : studentList) {
|
|
|
+ if(i >= bedInfoList.size()){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ RoomBed roomBed = bedInfoList.get(i);
|
|
|
+ roomBed.setStudentUserId(studentInfoVo.getUserId());
|
|
|
+ roomBed.setModifyDate(modifyDate);
|
|
|
+ roomBed.setModifyUserId(modifyUserId);
|
|
|
+ roomBedMapper.updateById(roomBed);
|
|
|
+ i ++;
|
|
|
+ distributeBedNumber ++;
|
|
|
+ }
|
|
|
+ classDistributeBedNumber.put(classId, distributeBedNumber);
|
|
|
+ classStudent.put(classId, studentList.size());
|
|
|
}
|
|
|
- classDistributeBedNumber.put(classId, distributeBedNumber);
|
|
|
- classStudent.put(classId, studentList.size());
|
|
|
}
|
|
|
+
|
|
|
Map<Long, Long> classGradeMap = new HashMap<>();
|
|
|
baseClassMapper.selectList(
|
|
|
MPJWrappers.<BaseClass>lambdaJoin().in(BaseClass::getId, dto.getClassIds())
|