添加培训人员查询功能
parent
6b6bb27969
commit
17c650c40b
|
|
@ -8,6 +8,7 @@ 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 io.swagger.annotations.Api;
|
||||
|
|
@ -46,6 +47,12 @@ public class StudentController {
|
|||
return studentService.listPage(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("获取培训人员")
|
||||
@PostMapping("/educationUserList")
|
||||
public PageResponse<EducationUserCO> educationUserList(@RequestBody EducationUserQry qry) {
|
||||
return studentService.educationUserList(qry);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ApiOperation("一人一档分页")
|
||||
|
|
|
|||
|
|
@ -9,15 +9,18 @@ import com.zcloud.edu.domain.model.archives.ClassArchivesE;
|
|||
import com.zcloud.edu.domain.model.archives.PersonArchivesE;
|
||||
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.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.StudentCountQry;
|
||||
import com.zcloud.edu.dto.study.StudentPageQry;
|
||||
import com.zcloud.edu.persistence.dataobject.study.*;
|
||||
import com.zcloud.edu.persistence.repository.study.*;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import com.zcloud.gbscommon.utils.Tools;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -244,5 +247,14 @@ public class StudentQueryExe {
|
|||
StudentCO studentCO = BeanUtil.copyProperties(studentDO, StudentCO.class);
|
||||
return SingleResponse.of(studentCO);
|
||||
}
|
||||
|
||||
public PageResponse<EducationUserCO> educationUserList(EducationUserQry qry) {
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
if (!Tools.isEmpty(params.get("likePhone"))) {
|
||||
params.put("phoneArr",String.valueOf(params.get("likePhone")).split(","));
|
||||
}
|
||||
PageResponse<EducationUserCO> pageResponse = studentRepository.educationUserList(params);
|
||||
return pageResponse;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,11 @@ import com.zcloud.edu.command.study.StudentAddExe;
|
|||
import com.zcloud.edu.command.study.StudentRemoveExe;
|
||||
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.data.archives.ClassArchivesDTO;
|
||||
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
|
||||
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 lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
|
@ -118,5 +116,10 @@ public class StudentServiceImpl implements StudentServiceI {
|
|||
public SingleResponse<StudentCO> getInfoByStudentId(String studentId) {
|
||||
return studentQueryExe.executeGetInfoByStudentId(studentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<EducationUserCO> educationUserList(EducationUserQry qry) {
|
||||
return studentQueryExe.educationUserList(qry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,13 +4,11 @@ import com.alibaba.cola.dto.MultiResponse;
|
|||
import com.alibaba.cola.dto.PageResponse;
|
||||
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.data.archives.ClassArchivesDTO;
|
||||
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
|
||||
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 org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -52,5 +50,7 @@ public interface StudentServiceI {
|
|||
MultiResponse<StudentCO> listStudentCount(StudentCountQry qry);
|
||||
|
||||
SingleResponse<StudentCO> getInfoByStudentId(String studentId);
|
||||
|
||||
PageResponse<EducationUserCO> educationUserList(EducationUserQry qry);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
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 zhy
|
||||
* @Date 2025-11-25 15:46:08
|
||||
*/
|
||||
@Data
|
||||
public class EducationUserCO extends ClientObject {
|
||||
@ApiModelProperty(value = "所属相关方id")
|
||||
private String corpinfoId;
|
||||
@ApiModelProperty(value = "所属相关方名称")
|
||||
private String corpinfoName;
|
||||
@ApiModelProperty(value = "所属项目id")
|
||||
private String projectId;
|
||||
@ApiModelProperty(value = "所属项目名称")
|
||||
private String projectName;
|
||||
@ApiModelProperty(value = "用户岗位名称")
|
||||
private String postName;
|
||||
@ApiModelProperty(value = "用户部门名称")
|
||||
private String deptName;
|
||||
@ApiModelProperty(value = "用户名称")
|
||||
private String name;
|
||||
@ApiModelProperty(value = "手机号")
|
||||
private String phone;
|
||||
@ApiModelProperty(value = "身份证")
|
||||
private String userIdCard;
|
||||
@ApiModelProperty(value = "申请状态")
|
||||
private Integer applyStatus;
|
||||
@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;
|
||||
@ApiModelProperty(value = "审核状态")
|
||||
private String examineStatus;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package com.zcloud.edu.dto.study;
|
||||
|
||||
import com.alibaba.cola.dto.PageQuery;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* web-client
|
||||
*
|
||||
* @Author zhy
|
||||
* @Date 2025-11-25 15:46:08
|
||||
*/
|
||||
@Data
|
||||
public class EducationUserQry extends PageQuery {
|
||||
|
||||
/**
|
||||
* 查询条件操作前缀,支持以下几种数据库查询操作:
|
||||
* - `like`: 模糊匹配查询,对应SQL的LIKE操作符
|
||||
* - `eq`: 等值查询,对应SQL的=操作符
|
||||
* - `gt`: 大于比较查询
|
||||
* - `lt`: 小于比较查询
|
||||
* - `ge`: 大于等于比较查询
|
||||
* - `le`: 小于等于比较查询
|
||||
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||
*/
|
||||
@ApiModelProperty(value = "项目所属相关方")
|
||||
private String eqProjectXgfCorpInfoId;
|
||||
@ApiModelProperty(value = "项目申请相关方")
|
||||
private String eqApplicationProjectCorpInfoId;
|
||||
@ApiModelProperty(value = "申请状态")
|
||||
private String eqApplyStatus;
|
||||
@ApiModelProperty(value = "是否在有效期")
|
||||
private Integer isValid;
|
||||
@ApiModelProperty(value = "用户所属相关方")
|
||||
private String eqUserCorpInfoId;
|
||||
@ApiModelProperty(value = "项目所属相关方")
|
||||
private String eqProjectCorpInfoId;
|
||||
@ApiModelProperty(value = "用户名称")
|
||||
private String likeName;
|
||||
@ApiModelProperty(value = "用户手机号")
|
||||
private String likePhone;
|
||||
@ApiModelProperty(value = "项目名称")
|
||||
private String likeProjectName;
|
||||
private Integer endTimeStatus;
|
||||
private String menuPath;
|
||||
}
|
||||
|
||||
|
|
@ -39,5 +39,9 @@
|
|||
<groupId>com.jjb.saas</groupId>
|
||||
<artifactId>jjb-saas-framework-facade</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.zcloud.edu</groupId>
|
||||
<artifactId>web-client</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ 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;
|
||||
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
||||
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;
|
||||
|
|
@ -48,5 +50,8 @@ public interface StudentMapper extends BaseMapper<StudentDO> {
|
|||
List<StudentDO> listStudentCount(@Param("params") Map<String, Object> params);
|
||||
|
||||
StudentDO findInfoByStudentId(@Param("studentId") String studentId);
|
||||
|
||||
|
||||
IPage<EducationUserCO> educationUserList(Page<Map<String, Object>> page, Map<String, Object> params, String menuPerms);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,11 @@ import com.alibaba.cola.dto.PageResponse;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.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;
|
||||
|
|
@ -136,5 +138,16 @@ public class StudentRepositoryImpl extends BaseRepositoryImpl<StudentMapper, Stu
|
|||
return studentMapper.listStudentCount(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<EducationUserCO> educationUserList(Map<String, Object> params) {
|
||||
Page<Map<String, Object>> page = new Page<>(Integer.parseInt(params.get("pageIndex").toString()), Integer.parseInt(params.get("pageSize").toString()));
|
||||
String menuPerms = "";
|
||||
if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))) {
|
||||
menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
|
||||
}
|
||||
IPage<EducationUserCO> iPage = studentMapper.educationUserList(page, params,menuPerms);
|
||||
return PageHelper.pageToResponse(iPage, iPage.getRecords());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.zcloud.edu.persistence.repository.study;
|
|||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
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;
|
||||
|
|
@ -46,5 +47,7 @@ public interface StudentRepository extends BaseRepository<StudentDO> {
|
|||
List<StudentDO> countStudentByCorpId(Map<String, Object> params);
|
||||
|
||||
List<StudentDO> listStudentCount(Map<String, Object> params);
|
||||
|
||||
PageResponse<EducationUserCO> educationUserList(Map<String, Object> params);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -420,5 +420,68 @@
|
|||
</where>
|
||||
group by s.student_id
|
||||
</select>
|
||||
|
||||
<select id="educationUserList" resultType="com.zcloud.edu.dto.clientobject.study.EducationUserCO">
|
||||
SELECT
|
||||
GROUP_CONCAT(DISTINCT p.corpinfo_id SEPARATOR ', ') AS corpinfo_id,
|
||||
GROUP_CONCAT(DISTINCT p.corpinfo_name SEPARATOR ', ') AS corpinfo_name,
|
||||
GROUP_CONCAT(DISTINCT p.project_id SEPARATOR ', ') AS project_id,
|
||||
GROUP_CONCAT(DISTINCT p.project_name SEPARATOR ', ') AS project_name,
|
||||
u.name,
|
||||
po.post_name,
|
||||
d.name dept_name,
|
||||
u.phone,
|
||||
u.user_id_card,
|
||||
tu.apply_status,
|
||||
tu.start_time,
|
||||
tu.end_time,
|
||||
tu.examine_status
|
||||
FROM training_apply_user tau
|
||||
left join training_apply_record tar on tau.training_apply_record_id = tar.training_apply_record_id
|
||||
left join (
|
||||
SELECT *, ROW_NUMBER() OVER (PARTITION BY training_apply_record_id ORDER BY apply_type DESC) as rn
|
||||
FROM training_apply_process
|
||||
WHERE delete_enum = 'FALSE' AND apply_type IN (2, 3)
|
||||
) tap ON tap.training_apply_record_id = tau.training_apply_record_id AND tap.rn = 1
|
||||
left join user u on tau.user_id = u.id
|
||||
left join project_user f on u.id = f.user_id
|
||||
left join project p on p.id = f.project_id and p.project_status = 4
|
||||
left join department d on d.id = u.department_id
|
||||
left join post po on u.post_id = po.id
|
||||
left join training_user tu on tu.phone = u.phone
|
||||
LEFT JOIN project_approval_flow paf on paf.project_id = p.id and paf.delete_enum = 'FALSE' and paf.audit_type = 2 and paf.approval_status = 2
|
||||
and paf.corpinfo_id = #{params.eqProjectCorpInfoId}
|
||||
where f.delete_enum = 'FALSE'
|
||||
and tap.corpinfo_id = #{params.eqProjectCorpInfoId}
|
||||
and tau.delete_enum = 'FALSE'
|
||||
and tar.delete_enum = 'FALSE'
|
||||
and tau.apply_status = 2
|
||||
|
||||
|
||||
<if test="params.endTimeStatus != null and params.endTimeStatus == 1">
|
||||
and tu.end_time is not null
|
||||
</if>
|
||||
<if test="params.endTimeStatus != null and params.endTimeStatus == -1">
|
||||
and tu.end_time is null
|
||||
</if>
|
||||
|
||||
<!-- 相关方id-->
|
||||
<if test="params.eqApplicationProjectCorpInfoId != null and params.eqApplicationProjectCorpInfoId != ''">
|
||||
and p.corpinfo_id = #{params.eqApplicationProjectCorpInfoId}
|
||||
</if>
|
||||
<if test="params.eqApplyStatus != null and params.eqApplyStatus != ''">
|
||||
and tu.apply_status = #{params.eqApplyStatus}
|
||||
</if>
|
||||
|
||||
<if test="params.likeName != null and params.likeName != ''">
|
||||
and u.name like concat('%',#{params.likeName},'%')
|
||||
</if>
|
||||
|
||||
<if test="params.likeProjectName != null and params.likeProjectName != ''">
|
||||
and p.project_name like concat('%',#{params.likeProjectName},'%')
|
||||
</if>
|
||||
|
||||
group by tau.phone
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue