From 45898bf03a39192786331dfe6ee73d20526eb5b2 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Sat, 13 Jun 2026 17:31:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(study):=20=E6=B7=BB=E5=8A=A0=E5=AD=A6?= =?UTF-8?q?=E5=91=98=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=8E=A7=E5=88=B6=E5=99=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../edu/web/study/StudentController.java | 53 +++++-- .../command/query/study/StudentQueryExe.java | 38 +++++ .../edu/service/study/StudentServiceImpl.java | 19 ++- .../zcloud/edu/api/study/StudentServiceI.java | 9 ++ .../edu/dto/clientobject/study/StudentCO.java | 4 + .../study/StudentCountByCorpCO.java | 44 ++++++ .../study/StudentExamCountByCorpCO.java | 27 ++++ .../study/StudentExamCountCO.java | 30 ++++ .../edu/dto/study/StudentCountByCorpQry.java | 28 ++++ .../zcloud/edu/dto/study/StudentCountQry.java | 8 +- .../dto/study/StudentExamCountByCorpQry.java | 18 +++ .../edu/dto/study/StudentExamCountQry.java | 23 +++ .../dataobject/study/StudentDO.java | 4 + .../mapper/po/study/StudentCountByCorpPO.java | 43 ++++++ .../po/study/StudentExamCountByCorpPO.java | 26 ++++ .../mapper/po/study/StudentExamCountPO.java | 29 ++++ .../mapper/study/StudentMapper.java | 14 +- .../impl/study/StudentRepositoryImpl.java | 24 ++- .../repository/study/StudentRepository.java | 10 +- .../resources/mapper/study/StudentMapper.xml | 139 ++++++++++++++++++ 20 files changed, 573 insertions(+), 17 deletions(-) create mode 100644 web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCountByCorpCO.java create mode 100644 web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamCountByCorpCO.java create mode 100644 web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamCountCO.java create mode 100644 web-client/src/main/java/com/zcloud/edu/dto/study/StudentCountByCorpQry.java create mode 100644 web-client/src/main/java/com/zcloud/edu/dto/study/StudentExamCountByCorpQry.java create mode 100644 web-client/src/main/java/com/zcloud/edu/dto/study/StudentExamCountQry.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentCountByCorpPO.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentExamCountByCorpPO.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentExamCountPO.java 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 90d54b0..14e12be 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 @@ -1,21 +1,36 @@ package com.zcloud.edu.web.study; - import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; -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.EducationUserCO; import com.zcloud.edu.dto.clientobject.study.StudentCO; -import com.zcloud.edu.dto.study.*; +import com.zcloud.edu.dto.clientobject.study.StudentCountByCorpCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamCountCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamCountByCorpCO; +import com.zcloud.edu.dto.study.EducationUserQry; +import com.zcloud.edu.dto.study.StudentAddCmd; +import com.zcloud.edu.dto.study.StudentCountByCorpQry; +import com.zcloud.edu.dto.study.StudentCountQry; +import com.zcloud.edu.dto.study.StudentExamCountQry; +import com.zcloud.edu.dto.study.StudentExamCountByCorpQry; +import com.zcloud.edu.dto.study.StudentPageQry; +import com.zcloud.edu.dto.study.StudentUpdateCmd; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +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 java.util.ArrayList; import java.util.List; @@ -26,7 +41,7 @@ import java.util.List; * @Author zhangyue * @Date 2026-01-13 14:18:14 */ -@Api(tags = "班级信息") +@Api(tags = "学员信息") @RequestMapping("/${application.gateway}/student") @RestController @AllArgsConstructor @@ -36,8 +51,6 @@ public class StudentController { @ApiOperation("新增") @PostMapping("/save") public SingleResponse add(@Validated @RequestBody List cmdList) { - System.out.println(cmdList); - SSOUser ssoUser = AuthContext.getCurrentUser(); return studentService.add(cmdList); } @@ -53,7 +66,7 @@ public class StudentController { return studentService.educationUserList(qry); } - @ApiOperation("获取可推送三方人员") + @ApiOperation("获取可推送第三方人员") @PostMapping("/pushCandidateUserList") public PageResponse pushCandidateUserList(@RequestBody EducationUserQry qry) { return studentService.pushCandidateUserList(qry); @@ -74,7 +87,7 @@ public class StudentController { @ApiOperation("所有数据") @GetMapping("/listAll") public MultiResponse listAll() { - return MultiResponse.of(new ArrayList()); + return MultiResponse.of(new ArrayList<>()); } @ApiOperation("查询用户统计") @@ -127,4 +140,24 @@ public class StudentController { studentService.edit(studentUpdateCmd); return SingleResponse.buildSuccess(); } + + @ApiOperation("考试人数统计-企业端首页") + @PostMapping("/listExamCount") + public MultiResponse listExamCount(@RequestBody StudentExamCountQry qry) { + return studentService.listExamCount(qry); + } + + @ApiOperation("考试人数统计-监管端首页企业列表") + @PostMapping("/listExamCountByCorp") + public MultiResponse listExamCountByCorp(@RequestBody StudentExamCountByCorpQry qry) { + return studentService.listExamCountByCorp(qry); + } + + @ApiOperation("考试人数统计-查询用户统计-相关方首页") + @PostMapping("/listStudentCountByCorp") + public MultiResponse listStudentCountByCorp(@RequestBody StudentCountByCorpQry qry) { + return studentService.listStudentCountByCorp(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 85507d2..0abdbfb 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 @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; +import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.command.convertor.study.StudentCoConvertor; import com.zcloud.edu.domain.model.archives.ClassArchivesE; import com.zcloud.edu.domain.model.archives.PersonArchivesE; @@ -11,13 +12,22 @@ import com.zcloud.edu.domain.model.study.*; import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.clientobject.study.EducationUserCO; import com.zcloud.edu.dto.clientobject.study.StudentCO; +import com.zcloud.edu.dto.clientobject.study.StudentCountByCorpCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamCountCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamCountByCorpCO; import com.zcloud.edu.dto.clientobject.study.StudentSignCO; import com.zcloud.edu.dto.data.archives.ClassArchivesDTO; import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.edu.dto.study.EducationUserQry; +import com.zcloud.edu.dto.study.StudentCountByCorpQry; import com.zcloud.edu.dto.study.StudentCountQry; +import com.zcloud.edu.dto.study.StudentExamCountQry; +import com.zcloud.edu.dto.study.StudentExamCountByCorpQry; import com.zcloud.edu.dto.study.StudentPageQry; +import com.zcloud.edu.persistence.mapper.po.study.StudentCountByCorpPO; import com.zcloud.edu.persistence.dataobject.study.*; +import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountPO; +import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountByCorpPO; import com.zcloud.edu.persistence.repository.study.*; import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.Tools; @@ -242,6 +252,34 @@ public class StudentQueryExe { return MultiResponse.of(studentCOList); } + public MultiResponse executeListExamCount(StudentExamCountQry qry){ + + if(qry.getClassCorpinfoId()==null){ + qry.setClassCorpinfoId(AuthContext.getTenantId()); + } + Map params = PageQueryHelper.toHashMap(qry); + List countList = studentRepository.listExamCount(params); + List countCOList = BeanUtil.copyToList(countList, StudentExamCountCO.class); + return MultiResponse.of(countCOList); + } + + public MultiResponse executeListExamCountByCorp(StudentExamCountByCorpQry qry){ + Map params = PageQueryHelper.toHashMap(qry); + List countList = studentRepository.listExamCountByCorp(params); + List countCOList = BeanUtil.copyToList(countList, StudentExamCountByCorpCO.class); + return MultiResponse.of(countCOList); + } + + public MultiResponse executeListStudentCountByCorp(StudentCountByCorpQry qry){ + if(qry.getInterestedId()==null){ + qry.setInterestedId(AuthContext.getTenantId().toString()); + } + Map params = PageQueryHelper.toHashMap(qry); + List countList = studentRepository.listStudentCountByCorp(params); + List countCOList = BeanUtil.copyToList(countList, StudentCountByCorpCO.class); + return MultiResponse.of(countCOList); + } + public SingleResponse executeGetInfoByStudentId(String studentId){ StudentDO studentDO = studentRepository.findInfoByStudentId(studentId); StudentCO studentCO = BeanUtil.copyProperties(studentDO, StudentCO.class); 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 bec50c9..12a7c7c 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 @@ -11,12 +11,14 @@ import com.zcloud.edu.command.study.StudentUpdateExe; import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.clientobject.study.EducationUserCO; import com.zcloud.edu.dto.clientobject.study.StudentCO; +import com.zcloud.edu.dto.clientobject.study.StudentCountByCorpCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamCountCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamCountByCorpCO; import com.zcloud.edu.dto.data.archives.ClassArchivesDTO; import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.edu.dto.study.*; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -112,6 +114,21 @@ public class StudentServiceImpl implements StudentServiceI { return studentQueryExe.executeListStudentCount(qry); } + @Override + public MultiResponse listExamCount(StudentExamCountQry qry) { + return studentQueryExe.executeListExamCount(qry); + } + + @Override + public MultiResponse listExamCountByCorp(StudentExamCountByCorpQry qry) { + return studentQueryExe.executeListExamCountByCorp(qry); + } + + @Override + public MultiResponse listStudentCountByCorp(StudentCountByCorpQry qry) { + return studentQueryExe.executeListStudentCountByCorp(qry); + } + @Override public SingleResponse getInfoByStudentId(String studentId) { return studentQueryExe.executeGetInfoByStudentId(studentId); 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 b253eb6..3ac7731 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 @@ -6,6 +6,9 @@ import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.clientobject.study.EducationUserCO; import com.zcloud.edu.dto.clientobject.study.StudentCO; +import com.zcloud.edu.dto.clientobject.study.StudentCountByCorpCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamCountCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamCountByCorpCO; import com.zcloud.edu.dto.data.archives.ClassArchivesDTO; import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.edu.dto.study.*; @@ -49,6 +52,12 @@ public interface StudentServiceI { MultiResponse listStudentCount(StudentCountQry qry); + MultiResponse listExamCount(StudentExamCountQry qry); + + MultiResponse listExamCountByCorp(StudentExamCountByCorpQry qry); + + MultiResponse listStudentCountByCorp(StudentCountByCorpQry qry); + SingleResponse getInfoByStudentId(String studentId); PageResponse educationUserList(EducationUserQry qry); diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCO.java index deb153a..5e7b514 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCO.java @@ -199,6 +199,10 @@ public class StudentCO extends ClientObject { @TableField(exist = false) private Integer studentCount; + @ApiModelProperty(value = "培训合格数量") + @TableField(exist = false) + private Integer qualifiedStudentCount; + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCountByCorpCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCountByCorpCO.java new file mode 100644 index 0000000..1edbc0f --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCountByCorpCO.java @@ -0,0 +1,44 @@ +package com.zcloud.edu.dto.clientobject.study; + +import com.alibaba.cola.dto.ClientObject; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-06-13 15:05:00 + */ +@Data +public class StudentCountByCorpCO extends ClientObject { + + @ApiModelProperty(value = "部门名称") + private String departmentName; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "手机号") + private String phone; + + @ApiModelProperty(value = "身份证号") + private String userIdCard; + + @ApiModelProperty(value = "已通过培训数") + private Integer completeClassCount; + + @ApiModelProperty(value = "培训总数") + private Integer classCount; + + @ApiModelProperty(value = "培训有效期开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime startTime; + + @ApiModelProperty(value = "培训有效期结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime endTime; +} diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamCountByCorpCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamCountByCorpCO.java new file mode 100644 index 0000000..f4f5307 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamCountByCorpCO.java @@ -0,0 +1,27 @@ +package com.zcloud.edu.dto.clientobject.study; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-06-13 14:32:00 + */ +@Data +public class StudentExamCountByCorpCO extends ClientObject { + + @ApiModelProperty(value = "企业id") + private Long corpinfoId; + + @ApiModelProperty(value = "企业名称") + private String corpName; + + @ApiModelProperty(value = "涉及相关方单位数") + private Long relatedCorpCount; + + @ApiModelProperty(value = "涉及人数") + private Long studentCount; +} diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamCountCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamCountCO.java new file mode 100644 index 0000000..aa75123 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamCountCO.java @@ -0,0 +1,30 @@ +package com.zcloud.edu.dto.clientobject.study; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-06-13 15:45:00 + */ +@Data +public class StudentExamCountCO extends ClientObject { + + @ApiModelProperty(value = "企业id") + private Long classCorpinfoId; + + @ApiModelProperty(value = "所属相关方id") + private String interestedId; + + @ApiModelProperty(value = "所属相关方名称") + private String interestedName; + + @ApiModelProperty(value = "涉及人数") + private Integer studentCount; + + @ApiModelProperty(value = "培训有效人数") + private Integer qualifiedStudentCount; +} diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentCountByCorpQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentCountByCorpQry.java new file mode 100644 index 0000000..ea9fb7f --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentCountByCorpQry.java @@ -0,0 +1,28 @@ +package com.zcloud.edu.dto.study; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-06-13 15:05:00 + */ +@Data +public class StudentCountByCorpQry { + + @ApiModelProperty(value = "企业id") + private Long classCorpinfoId; + + @ApiModelProperty(value = "相关方id") + private String interestedId; + + @ApiModelProperty(value = "姓名模糊查询") + private String likeName; + + @ApiModelProperty(value = "培训有效期筛选,1-正常 -1-过期 -2-横杠 -3-待定") + private Integer isValid; + + private String menuPath; +} diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentCountQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentCountQry.java index 4f7d290..cbf1e33 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentCountQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentCountQry.java @@ -1,6 +1,7 @@ package com.zcloud.edu.dto.study; import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @@ -27,13 +28,18 @@ public class StudentCountQry { */ private String eqStudentId; private String eqClassId; + private String likeProjectNames; private String likeName; private String likeInterestedIds; + private List corpinfoIds; private List phones; private String year; - + @ApiModelProperty(value = "相关方id", name = "eqInterestedIds") + private String eqInterestedIds; + @ApiModelProperty(value = "企业id", name = "classCorpinfoId") + private Long classCorpinfoId; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentExamCountByCorpQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentExamCountByCorpQry.java new file mode 100644 index 0000000..0b8ec66 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentExamCountByCorpQry.java @@ -0,0 +1,18 @@ +package com.zcloud.edu.dto.study; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-06-13 14:32:00 + */ +@Data +public class StudentExamCountByCorpQry { + + @ApiModelProperty(value = "企业名称模糊查询") + private String likeCorpName; + private Long corpinfoId; +} diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentExamCountQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentExamCountQry.java new file mode 100644 index 0000000..c00363d --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentExamCountQry.java @@ -0,0 +1,23 @@ +package com.zcloud.edu.dto.study; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-06-13 15:45:00 + */ +@Data +public class StudentExamCountQry { + + @ApiModelProperty(value = "所属相关方id") + private String interestedId; + + @ApiModelProperty(value = "企业id") + private Long classCorpinfoId; + + @ApiModelProperty(value = "年份") + private String year; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentDO.java index c470fcb..b1ec40f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentDO.java @@ -119,6 +119,10 @@ public class StudentDO extends BaseDO { @TableField(exist = false) private Integer studentCount; + @ApiModelProperty(value = "鍚堟牸浜烘暟") + @TableField(exist = false) + private Integer qualifiedStudentCount; + @ApiModelProperty(value = "完成班级数") @TableField(exist = false) diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentCountByCorpPO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentCountByCorpPO.java new file mode 100644 index 0000000..79dc1ec --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentCountByCorpPO.java @@ -0,0 +1,43 @@ +package com.zcloud.edu.persistence.mapper.po.study; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-06-13 15:05:00 + */ +@Data +public class StudentCountByCorpPO { + + @ApiModelProperty(value = "部门名称") + private String departmentName; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "手机号") + private String phone; + + @ApiModelProperty(value = "身份证号") + private String userIdCard; + + @ApiModelProperty(value = "已通过培训数") + private Integer completeClassCount; + + @ApiModelProperty(value = "培训总数") + private Integer classCount; + + @ApiModelProperty(value = "培训有效期开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime startTime; + + @ApiModelProperty(value = "培训有效期结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime endTime; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentExamCountByCorpPO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentExamCountByCorpPO.java new file mode 100644 index 0000000..f35b013 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentExamCountByCorpPO.java @@ -0,0 +1,26 @@ +package com.zcloud.edu.persistence.mapper.po.study; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-06-13 14:32:00 + */ +@Data +public class StudentExamCountByCorpPO { + + @ApiModelProperty(value = "企业id") + private Long corpinfoId; + + @ApiModelProperty(value = "企业名称") + private String corpName; + + @ApiModelProperty(value = "涉及相关方单位数") + private Long relatedCorpCount; + + @ApiModelProperty(value = "涉及人数") + private Long studentCount; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentExamCountPO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentExamCountPO.java new file mode 100644 index 0000000..f6b92a3 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentExamCountPO.java @@ -0,0 +1,29 @@ +package com.zcloud.edu.persistence.mapper.po.study; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-06-13 15:45:00 + */ +@Data +public class StudentExamCountPO { + + @ApiModelProperty(value = "企业id") + private Long classCorpinfoId; + + @ApiModelProperty(value = "所属相关方id") + private String interestedId; + + @ApiModelProperty(value = "所属相关方名称") + private String interestedName; + + @ApiModelProperty(value = "涉及人数") + private Integer studentCount; + + @ApiModelProperty(value = "培训有效人数") + private Integer qualifiedStudentCount; +} 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 825cf13..6a19349 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 @@ -1,6 +1,5 @@ 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.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,7 +8,9 @@ import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.edu.dto.clientobject.study.EducationUserCO; 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; +import com.zcloud.edu.persistence.mapper.po.study.StudentCountByCorpPO; +import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountPO; +import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountByCorpPO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -24,7 +25,8 @@ import java.util.Map; */ @Mapper @DataScopes({ - @DataScope(method = "personnelFileListPage", menuPerms = "") + @DataScope(method = "personnelFileListPage", menuPerms = ""), + @DataScope(method = "listStudentCountByCorp", menuPerms = "") }) public interface StudentMapper extends BaseMapper { @@ -49,6 +51,12 @@ public interface StudentMapper extends BaseMapper { List listStudentCount(@Param("params") Map params); + List listStudentCountByCorp(@Param("params") Map params, String menuPerms); + + List listExamCount(@Param("params") Map params); + + List listExamCountByCorp(@Param("params") Map params); + StudentDO findInfoByStudentId(@Param("studentId") String studentId); 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 407f8ef..799a81d 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 @@ -11,13 +11,16 @@ import com.zcloud.edu.domain.enums.MenuEnum; import com.zcloud.edu.dto.clientobject.study.EducationUserCO; 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; +import com.zcloud.edu.persistence.mapper.po.study.StudentCountByCorpPO; +import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountPO; +import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountByCorpPO; import com.zcloud.edu.persistence.mapper.study.StudentMapper; import com.zcloud.edu.persistence.repository.study.StudentRepository; 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; @@ -138,6 +141,25 @@ public class StudentRepositoryImpl extends BaseRepositoryImpl listStudentCountByCorp(Map params) { + String menuPerms = ""; + if (!ObjectUtils.isEmpty(params.get("menuPath"))) { + menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); + } + return studentMapper.listStudentCountByCorp(params,menuPerms); + } + + @Override + public List listExamCount(Map params) { + return studentMapper.listExamCount(params); + } + + @Override + public List listExamCountByCorp(Map params) { + return studentMapper.listExamCountByCorp(params); + } + @Override public PageResponse educationUserList(Map params) { Page> page = new Page<>(Integer.parseInt(params.get("pageIndex").toString()), Integer.parseInt(params.get("pageSize").toString())); 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 027bcee..5cc8bda 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 @@ -5,7 +5,9 @@ import com.jjb.saas.framework.repository.repo.BaseRepository; import com.zcloud.edu.dto.clientobject.study.EducationUserCO; 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; +import com.zcloud.edu.persistence.mapper.po.study.StudentCountByCorpPO; +import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountPO; +import com.zcloud.edu.persistence.mapper.po.study.StudentExamCountByCorpPO; import java.util.List; import java.util.Map; @@ -48,6 +50,12 @@ public interface StudentRepository extends BaseRepository { List listStudentCount(Map params); + List listStudentCountByCorp(Map params); + + List listExamCount(Map params); + + List listExamCountByCorp(Map params); + PageResponse educationUserList(Map params); PageResponse pushCandidateUserList(Map params); diff --git a/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml b/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml index b2201e1..0d41d5f 100644 --- a/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml @@ -182,6 +182,145 @@ group by s.phone + + + + + +