123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- package com.xjrsoft.module.student.controller;
- import cn.dev33.satoken.annotation.SaCheckPermission;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.util.ObjectUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.github.yulichang.toolkit.MPJWrappers;
- import com.xjrsoft.common.model.result.RT;
- import com.xjrsoft.common.page.ConventPage;
- import com.xjrsoft.common.page.PageOutput;
- import com.xjrsoft.common.utils.VoToColumnUtil;
- import com.xjrsoft.module.base.entity.BaseClass;
- import com.xjrsoft.module.base.mapper.BaseClassMapper;
- import com.xjrsoft.module.student.dto.AddBaseStudentAssessmentInspectionDto;
- import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionPageDto;
- import com.xjrsoft.module.student.dto.UpdateBaseStudentAssessmentInspectionDto;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentCategory;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentClassRelation;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentInspection;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentProject;
- import com.xjrsoft.module.student.entity.BaseStudentAssessmentStudentRelation;
- import com.xjrsoft.module.student.mapper.BaseStudentAssessmentCategoryMapper;
- import com.xjrsoft.module.student.mapper.BaseStudentAssessmentProjectMapper;
- import com.xjrsoft.module.student.service.IBaseStudentAssessmentClassRelationService;
- import com.xjrsoft.module.student.service.IBaseStudentAssessmentInspectionService;
- import com.xjrsoft.module.student.service.IBaseStudentAssessmentStudentRelationService;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentClassRelationListVo;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionPageVo;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionVo;
- import com.xjrsoft.module.student.vo.BaseStudentAssessmentStudentRelationVo;
- import com.xjrsoft.module.teacher.entity.XjrUser;
- import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.AllArgsConstructor;
- import org.springframework.web.bind.annotation.DeleteMapping;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.PutMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import javax.validation.Valid;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @title: 学生班级巡查考核
- * @Author dzx
- * @Date: 2023-11-16
- * @Version 1.0
- */
- @RestController
- @RequestMapping("/student" + "/basestudentassessmentinspection")
- @Api(value = "/student" + "/basestudentassessmentinspection", tags = "学生班级巡查考核代码")
- @AllArgsConstructor
- public class BaseStudentAssessmentInspectionController {
- private final IBaseStudentAssessmentInspectionService baseStudentAssessmentInspectionService;
- private final IBaseStudentAssessmentClassRelationService baseStudentAssessmentClassRelationService;
- private final IBaseStudentAssessmentStudentRelationService baseStudentAssessmentStudentRelationService;
- private final BaseStudentAssessmentProjectMapper baseStudentAssessmentProjectMapper;
- private final BaseStudentAssessmentCategoryMapper baseStudentAssessmentCategoryMapper;
- private final XjrUserMapper xjrUserMapper;
- private final BaseClassMapper baseClassMapper;
- @GetMapping(value = "/page")
- @ApiOperation(value = "学生班级巡查考核列表(分页)")
- @SaCheckPermission("basestudentassessmentinspection:detail")
- public RT<PageOutput<BaseStudentAssessmentInspectionPageVo>> page(@Valid BaseStudentAssessmentInspectionPageDto dto) {
- Page<BaseStudentAssessmentInspectionPageVo> page = baseStudentAssessmentInspectionService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
- return RT.ok(ConventPage.getPageOutput(page, BaseStudentAssessmentInspectionPageVo.class));
- }
- @GetMapping(value = "/mibliePage")
- @ApiOperation(value = "学生操行分记录管理列表(移动端分页)")
- @SaCheckPermission("basestudentbehaviormanage:detail")
- public RT<PageOutput<BaseStudentAssessmentInspectionPageVo>> mibliePage(@Valid BaseStudentAssessmentInspectionPageDto dto) {
- List<BaseClass> classList = baseClassMapper.selectList(
- MPJWrappers.<BaseClass>lambdaJoin()
- .eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong())
- .select(BaseClass.class, x -> VoToColumnUtil.fieldsToColumns(BaseClass.class).contains(x.getProperty()))
- );
- List<Long> classIds = new ArrayList<>();
- for (BaseClass baseClass : classList) {
- classIds.add(baseClass.getId());
- }
- dto.setClassIds(classIds);
- return RT.ok(getData(dto));
- }
- PageOutput<BaseStudentAssessmentInspectionPageVo> getData(BaseStudentAssessmentInspectionPageDto dto) {
- IPage<BaseStudentAssessmentInspectionPageVo> page = baseStudentAssessmentInspectionService.selectJoinListPage(ConventPage.getPage(dto), BaseStudentAssessmentInspectionPageVo.class,
- MPJWrappers.<BaseStudentAssessmentInspection>lambdaJoin()
- .like(StrUtil.isNotEmpty(dto.getCreateUserName()), XjrUser::getName, dto.getCreateUserName())
- .like(StrUtil.isNotEmpty(dto.getModifyUserName()), XjrUser::getName, dto.getModifyUserName())
- .eq(StrUtil.isNotEmpty(dto.getEnrollType()), BaseClass::getEnrollType, dto.getEnrollType())
- .eq(ObjectUtil.isNotNull(dto.getGradeId()), BaseClass::getGradeId, dto.getGradeId())
- .eq(BaseStudentAssessmentInspection::getStatus, 1)
- .in(ObjectUtil.isNotNull(dto.getClassIds()), BaseStudentAssessmentClassRelation::getClassId, dto.getClassIds())
- .in(ObjectUtil.isNotNull(dto.getBaseStudentAssessmentProjectIds()), BaseStudentAssessmentInspection::getBaseStudentAssessmentProjectId, dto.getBaseStudentAssessmentProjectIds())
- .between(ObjectUtil.isNotNull(dto.getStartDate()) && ObjectUtil.isNotNull(dto.getEndDate()), BaseStudentAssessmentInspection::getCreateDate, dto.getStartDate(), dto.getEndDate())
- .in(ObjectUtil.isNotNull(dto.getBaseStudentAssessmentProjectIds()), BaseStudentAssessmentInspection::getBaseStudentAssessmentProjectId, dto.getBaseStudentAssessmentProjectIds())
- .select("c.name as class_name")
- .select("u.name as class_teacher")
- .select("d.name as dept_name")
- .select("(SELECT COUNT(*) FROM base_student_assessment_student_relation WHERE base_student_assessment_inspection_id = t.id) as student_count")
- .select("(SELECT name FROM xjr_user WHERE id = t.assessment_user_id) as assessment_user_name")
- .select(BaseStudentAssessmentInspection::getScore)
- .select(BaseStudentAssessmentInspection::getSortCode)
- .select(BaseStudentAssessmentInspection::getReason)
- .select(BaseStudentAssessmentInspection::getId)
- .select(BaseStudentAssessmentInspection::getFileId)
- .selectAs(BaseStudentAssessmentCategory::getName, BaseStudentAssessmentInspectionPageVo::getAssessmentCategoryName)
- .selectAs(BaseStudentAssessmentProject::getName, BaseStudentAssessmentInspectionPageVo::getAssessmentProjectName)
- .innerJoin(BaseStudentAssessmentCategory.class, BaseStudentAssessmentCategory::getId, BaseStudentAssessmentInspection::getBaseStudentAssessmentCategoryId)
- .innerJoin(BaseStudentAssessmentProject.class, BaseStudentAssessmentProject::getId, BaseStudentAssessmentInspection::getBaseStudentAssessmentProjectId)
- .leftJoin(XjrUser.class, XjrUser::getId, BaseStudentAssessmentInspection::getAssessmentUserId)
- .innerJoin("base_class c ON t.class_ids LIKE CONCAT('%', c.id, '%')")
- .innerJoin("xjr_user u on c.teacher_id = u.id")
- .innerJoin("xjr_department d on c.org_id = d.id")
- .leftJoin(BaseStudentAssessmentClassRelation.class, BaseStudentAssessmentClassRelation::getBaseStudentAssessmentInspectionId, BaseStudentAssessmentInspection::getId)
- );
- return ConventPage.getPageOutput(page, BaseStudentAssessmentInspectionPageVo.class);
- }
- // @GetMapping(value = "/moblieInfo")
- // @ApiOperation(value="根据id查询学生班级巡查考核信息")
- // @SaCheckPermission("basestudentassessmentinspection:detail")
- // public RT<List<BaseStudentAssessmentInspectionPageVo>> moblieInfo(@RequestParam Long id){
- // BaseStudentAssessmentInspection baseStudentAssessmentInspection = baseStudentAssessmentInspectionService.getById(id);
- // if (baseStudentAssessmentInspection == null) {
- // return RT.error("找不到此数据!");
- // }
- // List<BaseStudentAssessmentInspectionPageVo> list = baseStudentAssessmentInspectionService.selectJoinList(BaseStudentAssessmentInspectionPageVo.class,
- // MPJWrappers.<BaseStudentAssessmentInspection>lambdaJoin()
- // .eq(ObjectUtil.isNotNull(id), BaseStudentAssessmentInspection::getId, id)
- // .eq(BaseStudentAssessmentInspection::getStatus, 1)
- // .selectAs(BaseClass::getName, BaseStudentAssessmentInspectionPageVo::getClassName)
- // .select("u.name as class_teacher")
- // .select("d.name as dept_name")
- // .select("(SELECT COUNT(*) FROM base_student_assessment_student_relation WHERE base_student_assessment_inspection_id = t.id) as student_count")
- // .select("(SELECT name FROM xjr_user WHERE id = t.assessment_user_id) as assessment_user_name")
- // .select(BaseStudentAssessmentInspection::getScore)
- // .select(BaseStudentAssessmentInspection::getSortCode)
- // .select(BaseStudentAssessmentInspection::getReason)
- // .select(BaseStudentAssessmentInspection::getId)
- // .select(BaseStudentAssessmentInspection::getFileId)
- // .selectAs(BaseStudentAssessmentCategory::getName, BaseStudentAssessmentInspectionPageVo::getAssessmentCategoryName)
- // .selectAs(BaseStudentAssessmentProject::getName, BaseStudentAssessmentInspectionPageVo::getAssessmentProjectName)
- // .innerJoin(BaseStudentAssessmentCategory.class, BaseStudentAssessmentCategory::getId, BaseStudentAssessmentInspection::getBaseStudentAssessmentCategoryId)
- // .innerJoin(BaseStudentAssessmentProject.class, BaseStudentAssessmentProject::getId, BaseStudentAssessmentInspection::getBaseStudentAssessmentProjectId)
- // .leftJoin(XjrUser.class, XjrUser::getId, BaseStudentAssessmentInspection::getAssessmentUserId)
- // .innerJoin(BaseStudentAssessmentClassRelation.class, BaseStudentAssessmentClassRelation::getBaseStudentAssessmentInspectionId, BaseStudentAssessmentInspection::getId)
- // .innerJoin(BaseClass.class, BaseClass::getId, BaseStudentAssessmentClassRelation::getClassId)
- // .innerJoin("xjr_user u on t5.teacher_id = u.id")
- // .innerJoin("xjr_department d on t5.org_id = d.id")
- // );
- // for (BaseStudentAssessmentInspectionPageVo inspectionPageVo : list) {
- // //查询学生
- // LambdaQueryWrapper<BaseStudentAssessmentStudentRelation> studentQueryWrapper = new LambdaQueryWrapper<>();
- // studentQueryWrapper
- // .eq(BaseStudentAssessmentStudentRelation::getBaseStudentAssessmentInspectionId, inspectionPageVo.getId())
- // .select(BaseStudentAssessmentStudentRelation.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentAssessmentStudentRelationVo.class).contains(x.getProperty()));
- // List<BaseStudentAssessmentStudentRelation> studentList = baseStudentAssessmentStudentRelationService.list(studentQueryWrapper);
- // inspectionPageVo.setStudentList(BeanUtil.copyToList(studentList, BaseStudentAssessmentStudentRelationVo.class));
- // inspectionPageVo.setStudentCount(studentList.size());
- // }
- // return RT.ok(list);
- // }
- @GetMapping(value = "/info")
- @ApiOperation(value = "根据id查询学生班级巡查考核信息")
- @SaCheckPermission("basestudentassessmentinspection:detail")
- public RT<BaseStudentAssessmentInspectionVo> info(@RequestParam Long id) {
- BaseStudentAssessmentInspection baseStudentAssessmentInspection = baseStudentAssessmentInspectionService.getById(id);
- if (baseStudentAssessmentInspection == null) {
- return RT.error("找不到此数据!");
- }
- BaseStudentAssessmentInspectionVo baseStudentAssessmentInspectionVo = BeanUtil.toBean(baseStudentAssessmentInspection, BaseStudentAssessmentInspectionVo.class);
- //查询班级
- LambdaQueryWrapper<BaseStudentAssessmentClassRelation> classQueryWrapper = new LambdaQueryWrapper<>();
- classQueryWrapper
- .eq(BaseStudentAssessmentClassRelation::getBaseStudentAssessmentInspectionId, id)
- .select(BaseStudentAssessmentClassRelation.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentAssessmentClassRelationListVo.class).contains(x.getProperty()));
- List<BaseStudentAssessmentClassRelation> classList = baseStudentAssessmentClassRelationService.list(classQueryWrapper);
- baseStudentAssessmentInspectionVo.setClassList(BeanUtil.copyToList(classList, BaseStudentAssessmentClassRelationListVo.class));
- //查询学生
- LambdaQueryWrapper<BaseStudentAssessmentStudentRelation> studentQueryWrapper = new LambdaQueryWrapper<>();
- studentQueryWrapper
- .eq(BaseStudentAssessmentStudentRelation::getBaseStudentAssessmentInspectionId, id)
- .select(BaseStudentAssessmentStudentRelation.class, x -> VoToColumnUtil.fieldsToColumns(BaseStudentAssessmentStudentRelationVo.class).contains(x.getProperty()));
- List<BaseStudentAssessmentStudentRelation> studentList = baseStudentAssessmentStudentRelationService.list(studentQueryWrapper);
- baseStudentAssessmentInspectionVo.setStudentList(BeanUtil.copyToList(studentList, BaseStudentAssessmentStudentRelationVo.class));
- baseStudentAssessmentInspectionVo.setStudentCount(studentList.size());
- //查询考核项目
- BaseStudentAssessmentProject project = baseStudentAssessmentProjectMapper.selectById(baseStudentAssessmentInspection.getBaseStudentAssessmentProjectId());
- if (project != null) {
- baseStudentAssessmentInspectionVo.setAssessmentProjectName(project.getName());
- }
- //查询考核类别
- BaseStudentAssessmentCategory category = baseStudentAssessmentCategoryMapper.selectById(baseStudentAssessmentInspection.getBaseStudentAssessmentCategoryId());
- if (category != null) {
- baseStudentAssessmentInspectionVo.setAssessmentCategoryName(category.getName());
- }
- //登记人
- XjrUser createUser = xjrUserMapper.selectById(baseStudentAssessmentInspection.getCreateUserId());
- if (createUser != null) {
- baseStudentAssessmentInspectionVo.setCreateUserName(createUser.getName());
- }
- //考核人
- XjrUser assessmentUser = xjrUserMapper.selectById(baseStudentAssessmentInspection.getAssessmentUserId());
- if (createUser != null) {
- baseStudentAssessmentInspectionVo.setAssessmentUserName(assessmentUser.getName());
- }
- //修改人
- XjrUser modifyUser = xjrUserMapper.selectById(baseStudentAssessmentInspection.getModifyUserId());
- if (modifyUser != null) {
- baseStudentAssessmentInspectionVo.setModifyUserName(modifyUser.getName());
- }
- return RT.ok(baseStudentAssessmentInspectionVo);
- }
- @PostMapping
- @ApiOperation(value = "新增学生班级巡查考核")
- @SaCheckPermission("basestudentassessmentinspection:add")
- public RT<Boolean> add(@Valid @RequestBody AddBaseStudentAssessmentInspectionDto dto) {
- BaseStudentAssessmentInspection baseStudentAssessmentInspection = BeanUtil.toBean(dto, BaseStudentAssessmentInspection.class);
- boolean isSuccess = baseStudentAssessmentInspectionService.save(baseStudentAssessmentInspection);
- return RT.ok(isSuccess);
- }
- @PutMapping
- @ApiOperation(value = "修改学生班级巡查考核")
- @SaCheckPermission("basestudentassessmentinspection:edit")
- public RT<Boolean> update(@Valid @RequestBody UpdateBaseStudentAssessmentInspectionDto dto) {
- BaseStudentAssessmentInspection baseStudentAssessmentInspection = BeanUtil.toBean(dto, BaseStudentAssessmentInspection.class);
- return RT.ok(baseStudentAssessmentInspectionService.updateById(baseStudentAssessmentInspection));
- }
- @DeleteMapping
- @ApiOperation(value = "删除学生班级巡查考核")
- @SaCheckPermission("basestudentassessmentinspection:delete")
- public RT<Boolean> delete(@Valid @RequestBody List<Long> ids) {
- return RT.ok(baseStudentAssessmentInspectionService.removeBatchByIds(ids));
- }
- }
|