package com.soft.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.afterturn.easypoi.exception.excel.ExcelImportException;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.soft.bean.DormitoryFields;
import com.soft.bean.Page;
import com.soft.bean.ResponseInfo;
import com.soft.bean.vo.BuildingVO;
import com.soft.bean.vo.RoomVO;
import com.soft.bean.vo.StudentVO;
import com.soft.common.util.DataValidUtil;
import com.soft.common.util.ExcelUtil;
import com.soft.constant.BuildingTypeConstant;
import com.soft.constant.EntityStateConstant;
import com.soft.constant.ResponseMessageConstant;
import com.soft.entity.Dictionary;
import com.soft.entity.Room;
import com.soft.mapper.BuildingMapper;
import com.soft.mapper.RoomMapper;
import com.soft.service.*;
import com.soft.service.handle.ArrangeDormitoryImportHandle;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
*
* 宿舍管理
*
*/
@Transactional
@Service
public class RoomServiceImpl implements RoomService, BaseService {
@Resource
private RoomMapper roomMapper;
@Resource
private BuildingMapper buildingMapper;
@Resource
private BuildingService buildingService;
@Resource
private StudentService studentService;
@Resource
private TeacherService teacherService;
@Resource
private ArrangeDormitoryImportHandle arrangeImportHandle;
/**
* 根据id查询
*
* @param buildingId id
* @return {id:'',name:'楼层+号码'}
*/
@Override
public List<Map<String, Object>> selectMapById(Long buildingId) {
return roomMapper.selectMapById(buildingId);
}
/**
* 检查是不是满了,满了会把状态改成 28 已满状态
*
* @param roomId id
*/
@Override
public void checkFull(Long roomId) {
Map<String,Object> room = roomMapper.selectByPrimaryKey(roomId);
if (null != room) {
BuildingVO building = JSONObject.parseObject(JSONObject.toJSONString(room.get("building")), BuildingVO.class);
// 已使用
int usedCount = 0;
// 办公楼
if (BuildingTypeConstant.OFFICE.getKey() == Integer.parseInt(building.getBuildingType().get("id").toString())) {
usedCount = teacherService.selectCountByRoom(roomId);
} else if (BuildingTypeConstant.DORMITORY.getKey() == Integer.parseInt(building.getBuildingType().get("id").toString())) {
usedCount = studentService.selectCountByRoom(roomId);
} else {
// TODO 教室
}
// 类型
Dictionary type = JSONObject.parseObject(JSONObject.toJSONString(room.get("type")), Dictionary.class);
int allowCount = Integer.parseInt(type.getName());
if (usedCount >= allowCount) {
roomMapper.updateState(roomId, EntityStateConstant.RoomState.FULL.getValue(), new Date());
}
}
}
/**
* 宿舍管理查询列表
*
* @param floor 楼层
* @param building 楼id
* @param state 状态
* @param teacherId 管理id
* @param page 分页
* @return PageInfo<RoomVO>
*/
@Override
public PageInfo<RoomVO> queryList(Integer floor, Long building, Integer state, Long teacherId, Page page) {
List<Long> buildings = new ArrayList<Long>();
// 前台传来的id为空,查询此管理员所有的楼
if (DataValidUtil.isEmpty(building)) {
List<Map<String, Object>> manageBuilding = buildingService.selectByTypeAndManage(teacherId);
if (null == manageBuilding || manageBuilding.size() == 0) {
buildings.add(-1L);
} else {
for (Map<String, Object> map : manageBuilding) {
buildings.add(Long.valueOf(map.get("id").toString()));
}
}
} else {
buildings.add(building);
}
PageHelper.startPage(page.getPageNo(), page.getPageSize());
List<RoomVO> list = roomMapper.queryList(floor, buildings, state);
for (RoomVO room : list) {
int count = studentService.selectCountByRoom(room.getId());
if (count > 0) {
room.setUsed(true);
}
room.setList(getBedNumList(room));
room.setFreeCount(Integer.parseInt(room.getType().get("name").toString()) - count);
}
return new PageInfo<RoomVO>(list);
}
/**
* @param type 类型
* @param campus 校区
* @param building 楼
* @param page 分页
* @return PageInfo<RoomVO>
*/
@Override
public PageInfo<RoomVO> queryListForManage(Integer type, Long campus, Long building, Page page) {
List<Long> buildings = new ArrayList<>();
List<RoomVO> roomVOS;
if (!DataValidUtil.isEmpty(building)) {
buildings.add(building);
PageHelper.startPage(page.getPageNo(), page.getPageSize());
roomVOS = roomMapper.queryList(null, buildings, null);
} else {
List<Map<String, Object>> list = buildingService.selectByTypeAndCampus(campus, type);
if (null == list || list.size() == 0) {
PageHelper.startPage(page.getPageNo(), page.getPageSize());
return new PageInfo<>(new ArrayList<>());
}
for (Map<String, Object> map : list) {
buildings.add(Long.valueOf(map.get("id").toString()));
}
PageHelper.startPage(page.getPageNo(), page.getPageSize());
roomVOS = roomMapper.queryList(null, buildings, null);
}
for (RoomVO roomVO : roomVOS) {
int count = 0;
Integer buildingType = Integer.parseInt(roomVO.getBuilding().getBuildingType().get("id").toString());
if (BuildingTypeConstant.DORMITORY.getKey() == buildingType.intValue()) {
count = studentService.selectCountByRoom(roomVO.getId());
roomVO.setFreeCount(Integer.parseInt(roomVO.getType().get("name").toString()) - count);
} else if (BuildingTypeConstant.OFFICE.getKey() == buildingType.intValue()) {
count = teacherService.selectCountByRoom(roomVO.getId());
roomVO.setFreeCount(Integer.parseInt(roomVO.getType().get("name").toString()) - count);
} else {
// TODO 教室
}
if (count > 0) {
roomVO.setUsed(true);
}
}
return new PageInfo<>(roomVOS);
}
/**
* 更改状态
*
* @param roomId id
* @param state 状态
* @return {"code":200/500, "msg":"返回消息", "data":null}
*/
@Override
public ResponseInfo modifyState(Long roomId, int state) {
if (DataValidUtil.isEmpty(roomId)) {
return this.getResult(FAIL, ERROR_PARAM);
}
Map<String, Object> room = roomMapper.selectByPrimaryKey(roomId);
if (null == room) {
return this.getResult(FAIL, ERROR_PARAM);
}
BuildingVO b
没有合适的资源?快使用搜索试试~ 我知道了~
学生报到系统 毕业设计
共589个文件
svn-base:292个
java:129个
js:41个
需积分: 30 8 下载量 151 浏览量
2019-07-17
15:29:47
上传
评论 1
收藏 7.52MB RAR 举报
温馨提示
SpringMVC+Spring+Mybatis框架+PageHelper分页+前端Bootstrap-table显示,服务端分页,简单的毕业设计
资源推荐
资源详情
资源评论
收起资源包目录
学生报到系统 毕业设计 (589个子文件)
style.min.css 129KB
bootstrap.min.css 120KB
animate.min.css 46KB
font-awesome.css 37KB
bootstrap-override.css 22KB
bootstrap-editable.css 21KB
select2.css 19KB
jquery-confirm.min.css 17KB
index.css 13KB
bootstrap-datetimepicker.min.css 11KB
fileinput.min.css 8KB
bootstrap-table.css 6KB
bootstrap-table.min.css 5KB
iconfont.css 4KB
page.css 3KB
tool.css 1KB
bootstrapValidator.min.css 498B
wc.db 289KB
entries 3B
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.eot 20KB
iconfont.eot 4KB
format 3B
20181013174527_46439.gif 206KB
20181013174525_17011.gif 206KB
20181013174526_34823.gif 206KB
20181013174525_70458.gif 206KB
20181013174526_67137.gif 205KB
20181013174525_80345.gif 205KB
20181013174527_97241.gif 205KB
fb7.gif 46KB
20181013174524_68232.gif 32KB
loading-sm.gif 3KB
select2-spinner.gif 2KB
loading.gif 847B
loading.gif 847B
favicon.ico 32KB
RoomServiceImpl.java 20KB
StudentServiceImpl.java 19KB
ClassServiceImpl.java 14KB
TeacherServiceImpl.java 13KB
OrderServiceImpl.java 12KB
ScoreServiceImpl.java 12KB
MajorServiceImpl.java 12KB
StudentController.java 11KB
LoginController.java 9KB
CollegeServiceImpl.java 9KB
BuildingServiceImpl.java 7KB
CourseServiceImpl.java 7KB
AccountServiceImpl.java 7KB
ArrangeDormitoryImportHandle.java 7KB
ResponseMessageConstant.java 6KB
StudentService.java 6KB
RoomController.java 6KB
Student.java 6KB
CodeUtil.java 5KB
TeacherController.java 5KB
StudentImportHandle.java 5KB
DictionaryServiceImpl.java 5KB
StudentVO.java 4KB
CourseController.java 4KB
BuildingController.java 4KB
ScoreController.java 4KB
ScoreImportHandle.java 4KB
EntityStateConstant.java 4KB
TimeTask.java 4KB
StudentFields.java 4KB
OrderController.java 4KB
BaseService.java 4KB
UploadServiceImpl.java 3KB
CollegeController.java 3KB
DormitoryFields.java 3KB
RoomService.java 3KB
ScoreFields.java 3KB
ClassController.java 3KB
Teacher.java 3KB
CourseService.java 3KB
RoleMenu.java 3KB
TeacherVO.java 3KB
DictionaryController.java 3KB
DownloadServiceImpl.java 3KB
TeacherService.java 3KB
OrderVO.java 3KB
MajorService.java 3KB
ClassService.java 3KB
MajorController.java 2KB
BuildingService.java 2KB
Order.java 2KB
CollegeService.java 2KB
LogAspect.java 2KB
DownloadController.java 2KB
MenuVO.java 2KB
SendSmsServiceImpl.java 2KB
StudentMapper.java 2KB
BuildingVO.java 2KB
AccountService.java 2KB
OrderService.java 2KB
RoomVO.java 2KB
ScoreVO.java 2KB
ScoreService.java 2KB
共 589 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
qq_37759174
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功