外校老师功能完善

This commit is contained in:
Xubx 2025-03-11 13:37:21 +08:00
parent 8d45499e7b
commit 90fbda5e29
5 changed files with 146 additions and 26 deletions

View File

@ -1,18 +1,14 @@
package org.jeecg.modules.contoller; package org.jeecg.modules.contoller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.entity.CeesWaiTeacher;
import org.jeecg.modules.enums.MajorEnum;
import org.jeecg.modules.service.ICeesWaiTeacherService; import org.jeecg.modules.service.ICeesWaiTeacherService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -37,11 +33,37 @@ public class CeesWaiTeacherController extends JeecgController<CeesWaiTeacher, IC
private ICeesWaiTeacherService ceesWaiTeacherService; private ICeesWaiTeacherService ceesWaiTeacherService;
@GetMapping("updataDormitory") /**
public Result updataDormitory(@RequestParam String id, @RequestParam String dormitory){ * 分配宿舍
return ceesWaiTeacherService.updataDormitory(id,dormitory); * @param id
* @param dormitory
* @return {@link Result }
*/
@GetMapping("updateDormitory")
public Result<?> updateDormitory(@RequestParam String id, @RequestParam String dormitory){
return ceesWaiTeacherService.updateDormitory(id,dormitory);
} }
/**
* 取消确认报到
* @param id
* @return {@link Result }
*/
@GetMapping("/cancelCheckIn")
public Result<?> cancelCheckIn(@RequestParam String id){
return ceesWaiTeacherService.cancelCheckIn(id);
}
/**
* 确认报到
* @param id
* @return {@link Result }
*/
@GetMapping("/confirmCheckIn")
public Result<?> confirmCheckIn(@RequestParam String id){
return ceesWaiTeacherService.confirmCheckIn(id);
}
/** /**
@ -60,11 +82,7 @@ public class CeesWaiTeacherController extends JeecgController<CeesWaiTeacher, IC
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<CeesWaiTeacher> queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap()); return Result.OK(ceesWaiTeacherService.queryPageList(ceesWaiTeacher,pageNo,pageSize,req));
Page<CeesWaiTeacher> page = new Page<CeesWaiTeacher>(pageNo, pageSize);
IPage<CeesWaiTeacher> pageList = ceesWaiTeacherService.page(page, queryWrapper);
pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId())));
return Result.OK(pageList);
} }
/** /**

View File

@ -125,7 +125,10 @@ public class CeesWaiTeacher implements Serializable {
/**宿舍信息*/ /**宿舍信息*/
@Excel(name = "宿舍信息", width = 15) @Excel(name = "宿舍信息", width = 15)
@ApiModelProperty(value = "宿舍信息") @ApiModelProperty(value = "宿舍信息")
private String dormitory; private String dormitoryId;
@ApiModelProperty(value = "宿舍信息")
@TableField(exist = false)
private String dormitoryName;
/**是否住宿*/ /**是否住宿*/
@Excel(name = "是否住宿", width = 15) @Excel(name = "是否住宿", width = 15)
@ApiModelProperty(value = "是否住宿") @ApiModelProperty(value = "是否住宿")

View File

@ -1,9 +1,13 @@
package org.jeecg.modules.service; package org.jeecg.modules.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.entity.CeesWaiTeacher;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
/** /**
* @Description: 外校老师管理 * @Description: 外校老师管理
@ -13,5 +17,14 @@ import org.jeecg.modules.entity.CeesWaiTeacher;
*/ */
public interface ICeesWaiTeacherService extends IService<CeesWaiTeacher> { public interface ICeesWaiTeacherService extends IService<CeesWaiTeacher> {
Result updataDormitory(String id, String dormitory); Result updateDormitory(String id, String dormitory);
IPage<CeesWaiTeacher> queryPageList(CeesWaiTeacher ceesWaiTeacher,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req);
Result<?> cancelCheckIn(String id);
Result<?> confirmCheckIn(String id);
} }

View File

@ -9,11 +9,9 @@ import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.CeesDormitoryInfo; import org.jeecg.modules.entity.CeesDormitoryInfo;
import org.jeecg.modules.mapper.CeesDormitoryInfoMapper; import org.jeecg.modules.mapper.CeesDormitoryInfoMapper;
import org.jeecg.modules.service.ICeesDormitoryInfoService; import org.jeecg.modules.service.ICeesDormitoryInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.lang.reflect.Array; import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
@ -25,7 +23,7 @@ import java.util.List;
@Service @Service
public class CeesDormitoryInfoServiceImpl extends ServiceImpl<CeesDormitoryInfoMapper, CeesDormitoryInfo> implements ICeesDormitoryInfoService { public class CeesDormitoryInfoServiceImpl extends ServiceImpl<CeesDormitoryInfoMapper, CeesDormitoryInfo> implements ICeesDormitoryInfoService {
@Autowired @Resource
private CeesDormitoryInfoMapper ceesDormitoryInfoMapper; private CeesDormitoryInfoMapper ceesDormitoryInfoMapper;
@Override @Override
@ -33,6 +31,7 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl<CeesDormitoryInfoM
//todo: 未添加宿舍满员的情况和宿舍是否正常使用 //todo: 未添加宿舍满员的情况和宿舍是否正常使用
Integer type = Integer.parseInt(sex); Integer type = Integer.parseInt(sex);
LambdaQueryWrapper<CeesDormitoryInfo> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CeesDormitoryInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.gt(CeesDormitoryInfo::getDormitoryNum, 0);
if (sex != null) { if (sex != null) {
wrapper.eq(CeesDormitoryInfo::getDormitoryType, type); wrapper.eq(CeesDormitoryInfo::getDormitoryType, type);
} }
@ -40,6 +39,7 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl<CeesDormitoryInfoM
JSONArray resultArray = new JSONArray(); JSONArray resultArray = new JSONArray();
for(CeesDormitoryInfo dorm :list){ for(CeesDormitoryInfo dorm :list){
JSONObject resultData = new JSONObject(); JSONObject resultData = new JSONObject();
resultData.put("id", dorm.getId());
resultData.put("sysOrgCode", dorm.getSysOrgCode()); resultData.put("sysOrgCode", dorm.getSysOrgCode());
resultData.put("dormitory", dorm.getDormitory()); resultData.put("dormitory", dorm.getDormitory());
resultData.put("dormitoryType", dorm.getDormitoryType()); resultData.put("dormitoryType", dorm.getDormitoryType());

View File

@ -2,31 +2,117 @@ package org.jeecg.modules.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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 lombok.RequiredArgsConstructor;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.entity.CeesDormitoryInfo;
import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.entity.CeesWaiTeacher;
import org.jeecg.modules.enums.MajorEnum;
import org.jeecg.modules.mapper.CeesDormitoryInfoMapper;
import org.jeecg.modules.mapper.CeesWaiTeacherMapper; import org.jeecg.modules.mapper.CeesWaiTeacherMapper;
import org.jeecg.modules.service.ICeesWaiTeacherService; import org.jeecg.modules.service.ICeesWaiTeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* @Description: 外校老师管理 * @Description: 外校老师管理
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-03-03 * @Date: 2025-03-03
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service
@RequiredArgsConstructor
public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper, CeesWaiTeacher> implements ICeesWaiTeacherService { public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper, CeesWaiTeacher> implements ICeesWaiTeacherService {
@Autowired private final CeesWaiTeacherMapper ceesWaiTeacherMapper;
private CeesWaiTeacherMapper ceesWaiTeacherMapper; private final CeesDormitoryInfoMapper ceesDormitoryInfoMapper;
@Override @Override
public Result updataDormitory(String id, String dormitory) { public Result updateDormitory(String id, String dormitoryId) {
LambdaQueryWrapper<CeesWaiTeacher> wrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<CeesWaiTeacher> wrapper = new LambdaQueryWrapper();
wrapper.eq(CeesWaiTeacher::getUserId,id); wrapper.eq(CeesWaiTeacher::getUserId, id);
CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectOne(wrapper); CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectOne(wrapper);
ceesWaiTeacher.setDormitory(dormitory); ceesWaiTeacher.setDormitoryId(dormitoryId);
int result = ceesWaiTeacherMapper.updateById(ceesWaiTeacher); // 外校数据更新
int result = ceesWaiTeacherMapper.updateById(ceesWaiTeacher);
CeesDormitoryInfo ceesDormitoryInfo = null;
// 宿舍信息数据更新
if (result == 1 ) {
ceesDormitoryInfo = ceesDormitoryInfoMapper.selectById(dormitoryId);
if (ceesDormitoryInfo.getDormitoryNum() > 0) {
ceesDormitoryInfo.setDormitoryNum(ceesDormitoryInfo.getDormitoryNum() - 1);
ceesDormitoryInfoMapper.updateById(ceesDormitoryInfo);
} else {
return Result.error("宿舍人数已满");
}
}
// 当宿舍人数为0,修改宿舍状态
if (ceesDormitoryInfo != null) {
if (ceesDormitoryInfo.getDormitoryNum() == 0) {
ceesDormitoryInfo.setDormitoryStatus(1);
ceesDormitoryInfoMapper.updateById(ceesDormitoryInfo);
}
}
return Result.ok("更新成功"); return Result.ok("更新成功");
} }
/**
* @param ceesWaiTeacher
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<CeesWaiTeacher> queryPageList(CeesWaiTeacher ceesWaiTeacher, Integer pageNo, Integer pageSize, HttpServletRequest req) {
QueryWrapper<CeesWaiTeacher> queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap());
Page<CeesWaiTeacher> page = new Page<>(pageNo, pageSize);
IPage<CeesWaiTeacher> pageList = page(page, queryWrapper);
Set<String> dormitoryIdList = pageList.getRecords().stream().map(CeesWaiTeacher::getDormitoryId).collect(Collectors.toSet());
LambdaQueryWrapper<CeesDormitoryInfo> dormitoryWrapper = Wrappers.lambdaQuery(CeesDormitoryInfo.class).in(CeesDormitoryInfo::getId, dormitoryIdList);
List<CeesDormitoryInfo> ceesDormitoryInfos = ceesDormitoryInfoMapper.selectList(dormitoryWrapper);
pageList.convert(e->{
e.setDormitoryName(ceesDormitoryInfos
.stream()
.filter(dormitoryInfo -> dormitoryInfo.getId().equals(e.getDormitoryId()))
.findFirst()
.orElse(new CeesDormitoryInfo())
.getDormitory());
e.setMajorIdDescription(MajorEnum.describe(e.getMajorId()));
return e;
});;
return pageList;
}
/**
* @param id
* @return
*/
@Override
public Result cancelCheckIn(String id) {
CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectById(id);
ceesWaiTeacher.setStatus(1);
ceesWaiTeacherMapper.updateById(ceesWaiTeacher);
return Result.ok("撤销成功");
}
/**
* @param id
* @return
*/
@Override
public Result<?> confirmCheckIn(String id) {
CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectById(id);
ceesWaiTeacher.setStatus(0);
ceesWaiTeacherMapper.updateById(ceesWaiTeacher);
return Result.ok("确认成功");
}
} }