diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java index 8da2f0a..0a3c40a 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java @@ -76,6 +76,7 @@ public class ClassController { return classService.countStuClass(qry); } + @ApiOperation("详情") @GetMapping("/{id}") public SingleResponse getInfoById(@PathVariable("id") Long id) { diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentController.java index b48ef26..421995e 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentController.java @@ -9,10 +9,7 @@ import com.jjb.saas.framework.auth.model.SSOUser; import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.api.study.StudentServiceI; import com.zcloud.edu.dto.clientobject.study.StudentCO; -import com.zcloud.edu.dto.study.StudentAddCmd; -import com.zcloud.edu.dto.study.StudentCountQry; -import com.zcloud.edu.dto.study.StudentPageQry; -import com.zcloud.edu.dto.study.StudentUpdateCmd; +import com.zcloud.edu.dto.study.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -48,6 +45,14 @@ public class StudentController { public PageResponse page(@RequestBody StudentPageQry qry) { return studentService.listPage(qry); } + + + + @ApiOperation("一人一档分页") + @PostMapping("/personnelFileList") + public PageResponse personnelFileList(@RequestBody StudentPageQry qry) { + return studentService.personnelFileListPage(qry); + } @ApiOperation("培训记录管理分页") @PostMapping("/listPageClassByStudent") public PageResponse listPageClassByStudent(@RequestBody StudentPageQry qry) { diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java index 147dcb2..4b4b983 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java @@ -57,6 +57,13 @@ public class StudentQueryExe { return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + public PageResponse executePersonnelFileListPage(StudentPageQry studentPageQry) { + Map params = PageQueryHelper.toHashMap(studentPageQry); + PageResponse pageResponse = studentRepository.personnelFileListPage(params); + List examCenterCOS = studentCoConvertor.converDOsToCOs(pageResponse.getData()); + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + public PageResponse executelistPageClassByStudent(StudentPageQry studentPageQry) { Map params = PageQueryHelper.toHashMap(studentPageQry); PageResponse pageResponse = studentRepository.listPageClassByStudent(params); @@ -94,10 +101,11 @@ public class StudentQueryExe { StudentDO studentDO = studentRepository.getById(qry.getStuId()); StudentDO studentUrl = studentRepository.findFaceUrlByPhone(studentDO.getPhone()); StudentE studentE = new StudentE(); + + BeanUtils.copyProperties(studentDO, studentE); if(studentUrl!=null){ studentE.setUserAvatarUrl(studentUrl.getUserAvatarUrl()); } - BeanUtils.copyProperties(studentDO, studentE); // 班级信息 ClassDO classDO = classRepository.getByClassId(studentDO.getClassId()); ClassE classE = new ClassE(); @@ -109,7 +117,7 @@ public class StudentQueryExe { List classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class); PersonArchivesE personArchivesE = new PersonArchivesE(); - personArchivesE.init(studentE, classE, classCurList, studentUrl.getUserAvatarUrl()); + personArchivesE.init(studentE, classE, classCurList, studentE.getUserAvatarUrl()); PersonArchivesDTO personArchivesDTO = new PersonArchivesDTO(); BeanUtils.copyProperties(personArchivesE, personArchivesDTO); return SingleResponse.of(personArchivesDTO); diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/StudentServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/StudentServiceImpl.java index 66737f1..ea433ac 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/StudentServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/StudentServiceImpl.java @@ -42,6 +42,12 @@ public class StudentServiceImpl implements StudentServiceI { return studentQueryExe.execute(qry); } + @Override + public PageResponse personnelFileListPage(StudentPageQry qry) { + + return studentQueryExe.executePersonnelFileListPage(qry); + } + @Override public PageResponse listPageClassByStudent(StudentPageQry qry) { return studentQueryExe.executelistPageClassByStudent(qry); diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/StudentServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/StudentServiceI.java index 3cad266..3068666 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/StudentServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/StudentServiceI.java @@ -23,6 +23,7 @@ import java.util.List; */ public interface StudentServiceI { PageResponse listPage(StudentPageQry qry); + PageResponse personnelFileListPage(StudentPageQry qry); PageResponse listPageClassByStudent(StudentPageQry qry); diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperExportCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperExportCmd.java new file mode 100644 index 0000000..6672425 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassExamPaperExportCmd.java @@ -0,0 +1,36 @@ +package com.zcloud.edu.dto.study; + +import com.alibaba.cola.dto.Command; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-13 14:18:21 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ClassExamPaperExportCmd extends Command { + + @ApiModelProperty(value = "班级id", name = "classId", required = true) + @NotEmpty(message = "班级id不能为空") + private String classId; + @ApiModelProperty(value = "是否有答案 0-没有 1-有", name = "answerFlag", required = true) + @NotNull(message = "请选择是否有答案") + private Integer answerFlag; + + + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TrainingApplyRecordMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TrainingApplyRecordMapper.java index 16d8c70..ef2ed86 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TrainingApplyRecordMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TrainingApplyRecordMapper.java @@ -2,6 +2,8 @@ package com.zcloud.edu.persistence.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.edu.domain.model.training.TrainingApplyProcessNodeE; import com.zcloud.edu.persistence.dataobject.TrainingApplyRecordDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -16,12 +18,15 @@ import java.util.List; * @Date 2026-01-12 15:21:49 */ @Mapper +@DataScopes({ + @DataScope(method = "selectTrainingRecordPage", menuPerms = "") +}) public interface TrainingApplyRecordMapper extends BaseMapper { /** * 培训申请记录分页 */ - IPage selectTrainingRecordPage(IPage page, @Param("ew") QueryWrapper queryWrapper); + IPage selectTrainingRecordPage(IPage page, @Param("ew") QueryWrapper queryWrapper, String menuPerms); /** * 培训申请记录详情 diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentMapper.java index 6721a1d..24c6662 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentMapper.java @@ -3,6 +3,8 @@ package com.zcloud.edu.persistence.mapper.study; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.edu.persistence.dataobject.study.ClassDO; import com.zcloud.edu.persistence.dataobject.study.StudentDO; import com.zcloud.edu.persistence.mapper.po.study.StudentCountPO; @@ -19,10 +21,15 @@ import java.util.Map; * @Date 2026-01-13 14:18:15 */ @Mapper +@DataScopes({ + @DataScope(method = "personnelFileListPage", menuPerms = "") +}) public interface StudentMapper extends BaseMapper { IPage listPageClassByStudent(IPage page, @Param("params") Map params); + IPage personnelFileListPage(IPage page, @Param("params") Map params, String menuPerms); + long postponeUpdateStudent(String classId); List countStudentByClass(List classIds); diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyRecordRepositoryImpl.java index fe6507b..07bf766 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyRecordRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyRecordRepositoryImpl.java @@ -51,7 +51,7 @@ public class TrainingApplyRecordRepositoryImpl extends BaseRepositoryImpl result = trainingApplyRecordMapper.selectTrainingRecordPage(iPage, queryWrapper); + IPage result = trainingApplyRecordMapper.selectTrainingRecordPage(iPage, queryWrapper, menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassRepositoryImpl.java index a337008..ab01e85 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassRepositoryImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; +import com.zcloud.edu.domain.enums.MenuEnum; import com.zcloud.edu.persistence.dataobject.study.ClassDO; import com.zcloud.edu.persistence.dataobject.study.StudentDO; import com.zcloud.edu.persistence.mapper.study.ClassMapper; @@ -14,6 +15,7 @@ import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.Query; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import java.util.List; import java.util.Map; @@ -36,7 +38,13 @@ public class ClassRepositoryImpl extends BaseRepositoryImpl result = classMapper.listPage(iPage, queryWrapper, null); + + String menuPerms = ""; + if (!ObjectUtils.isEmpty(params.get("menuPath"))) { + menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); + } + + IPage result = classMapper.listPage(iPage, queryWrapper, menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentRepositoryImpl.java index a2cc972..a9e32c7 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentRepositoryImpl.java @@ -40,6 +40,16 @@ public class StudentRepositoryImpl extends BaseRepositoryImpl personnelFileListPage(Map params) { + IPage iPage = new Query().getPage(params); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); + queryWrapper.orderByDesc("create_time"); + IPage result = studentMapper.selectPage(iPage, queryWrapper); + return PageHelper.pageToResponse(result, result.getRecords()); + } + @Override public PageResponse listPageClassByStudent(Map params) { IPage iPage = new Query().getPage(params); diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentRepository.java index 1471758..3c1189a 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentRepository.java @@ -17,6 +17,9 @@ import java.util.Map; */ public interface StudentRepository extends BaseRepository { PageResponse listPage(Map params); + + PageResponse personnelFileListPage(Map params); + PageResponse listPageClassByStudent(Map params); Boolean addBatch(List studentDOs); diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml index e7dd9db..3868644 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml @@ -99,6 +99,7 @@ class c left join training_type t on t.training_type_id = c.train_type left join corp_info ci on ci.id = c.corpinfo_id + left join user u on u.id = c.teacher_id ${ew.customSqlSegment} diff --git a/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml b/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml index d2af160..625e71e 100644 --- a/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml @@ -173,45 +173,45 @@ + + + +