|
@@ -26,7 +26,6 @@ class BedroomService extends CrudService {
|
|
|
const _bedrooms = _.map(students, 'bedroom');
|
|
|
// 取得无重复的寝室号
|
|
|
const bedrooms = _.uniq(_bedrooms);
|
|
|
- console.log(bedrooms);
|
|
|
const data = [];
|
|
|
// 根据寝室号 取得相应的学生信息
|
|
|
for (const elm of bedrooms) {
|
|
@@ -73,25 +72,20 @@ class BedroomService extends CrudService {
|
|
|
.sort({ floor: -1 });
|
|
|
// 循环所有当前批次下的寝室列表进行分寝处理
|
|
|
const studentList = await this.getstudents(termid, batchid);
|
|
|
- console.log('stulen-->' + studentList.length);
|
|
|
for (const bedroom of bedroomList) {
|
|
|
- console.log(bedroom.code);
|
|
|
// 判断当前寝室号是否已有
|
|
|
// 根据期id查找所有当期学生列表
|
|
|
const _stu = _.filter(studentList, { bedroom: bedroom.code });
|
|
|
- console.log(_stu.length);
|
|
|
if (bedroom.number !== _stu.length) {
|
|
|
let i = 0;
|
|
|
let _gender = '';
|
|
|
for (const stud of studentList) {
|
|
|
- console.log('stu---' + stud.bedroom);
|
|
|
if (stud.bedroom) {
|
|
|
if (stud.bedroom === bedroom.code) {
|
|
|
i = i + 1;
|
|
|
}
|
|
|
continue;
|
|
|
}
|
|
|
- console.log('i--->' + i);
|
|
|
if (i === 0) {
|
|
|
if (!bedroom.gender) {
|
|
|
stud.bedroomid = bedroom.id;
|
|
@@ -168,9 +162,6 @@ class BedroomService extends CrudService {
|
|
|
// 根据期id查找所有当期学生列表
|
|
|
const cltype = await this.ctmodel.find({ bedroom: '0' });
|
|
|
const types = _.map(cltype, 'code');
|
|
|
- console.log('-----types-start--');
|
|
|
- console.log(types);
|
|
|
- console.log('-----types-end--');
|
|
|
const studentList = await this.smodel
|
|
|
.find({ termid, batchid, type: { $in: types } })
|
|
|
.sort({ gender: -1 });
|
|
@@ -186,7 +177,6 @@ class BedroomService extends CrudService {
|
|
|
|
|
|
// 新 分配寝室查询可以的列表
|
|
|
async getAssignRoom({ termid }) {
|
|
|
- console.log(termid);
|
|
|
const bedroomList = await this.model.find();
|
|
|
const stuList = await this.smodel.find({ termid });
|
|
|
const stuBedIdGroup = _.groupBy(stuList, 'bedroomid');
|
|
@@ -238,7 +228,6 @@ class BedroomService extends CrudService {
|
|
|
const bedroom = await this.model.findById(bedroomid);
|
|
|
if (!bedroom) throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '不存在该寝室');
|
|
|
let { number, gender } = bedroom;
|
|
|
- console.log(`bedroom:gender=>${gender}`);
|
|
|
// 找到多少人在这个寝室
|
|
|
const inRoom = await this.ctx.model.Student.find({ termid, bedroomid });
|
|
|
const ifTotal = inRoom.length * 1 + ids.length;
|
|
@@ -247,7 +236,6 @@ class BedroomService extends CrudService {
|
|
|
// 寝室没设置性别,从这个寝室的学生中取出性别
|
|
|
const stu = _.head(inRoom);
|
|
|
gender = _.trim(_.get(stu, 'gender'));
|
|
|
- console.log(`bedroom:in room sutdent gender=>${gender}`);
|
|
|
}
|
|
|
const selectStuList = await this.ctx.model.Student.find({ _id: ids.map(i => ObjectId(i)) });
|
|
|
for (const id of ids) {
|
|
@@ -256,12 +244,10 @@ class BedroomService extends CrudService {
|
|
|
const { gender: sg, name } = r;
|
|
|
// 寝室或有已入住学生,产生的性别结果,
|
|
|
if (!gender) {
|
|
|
- console.log('in no gender limit');
|
|
|
r.bedroom = code;
|
|
|
r.bedroomid = bedroomid;
|
|
|
await r.save();
|
|
|
} else {
|
|
|
- console.log(`in gender limit : gender: ${gender} / sg:${sg}`);
|
|
|
if (sg && sg.includes(gender)) {
|
|
|
// 有性别判断
|
|
|
r.bedroom = code;
|