PaperBasicInfo

dev-tmp1
luotaiqian 2026-08-21 18:51:24 +08:00
parent c68ccbe003
commit c0e3b02026
12 changed files with 155 additions and 10 deletions

View File

@ -93,6 +93,18 @@ public class PaperController {
return SingleResponse.success(pageInfo);
}
/**
* id
*
* @param paperId id
* @return
*/
@ApiOperation("试卷基本信息查询")
@GetMapping("/paper/basic/info")
public SingleResponse<PaperBasicInfoVO> paperBasicInfo(@RequestParam("paperId") @ApiParam(value = "试卷id", required = true) Long paperId) {
return SingleResponse.success(paperService.paperBasicInfo(paperId));
}
/**
* PDFpaperExamInfoPDF访
*

View File

@ -78,11 +78,6 @@ public class ClassManagementDTO {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime delayTime;
/**
* 12
*/
@ApiModelProperty("试卷类型1自动生成试卷、2平台组卷等")
private Integer paperType;
/**
* ()

View File

@ -108,6 +108,14 @@ public interface PaperService extends IService<PaperDO> {
*/
PaperExamInfoVO paperExamInfo(Long paperId);
/**
* id
*
* @param paperId id
* @return
*/
PaperBasicInfoVO paperBasicInfo(Long paperId);
/**
* PDF
*

View File

@ -159,7 +159,6 @@ public class ClassManagementServiceImpl extends ServiceImpl<ClassManagementMappe
public Boolean bindPaper(ClassManagementDTO dto) {
return this.lambdaUpdate()
.set(ClassManagementDO::getPaperId, dto.getPaperId())
.set(ClassManagementDO::getPaperType, dto.getPaperType())
.set(ClassManagementDO::getExamMinutes, dto.getExamMinutes())
.set(ClassManagementDO::getUpdateTime, LocalDateTime.now())
.eq(ClassManagementDO::getId, dto.getId())

View File

@ -358,6 +358,18 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
return examInfoVO;
}
@Override
public PaperBasicInfoVO paperBasicInfo(Long paperId) {
PaperDO paper = this.lambdaQuery()
.eq(PaperDO::getId, paperId)
.eq(PaperDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
.one();
if (paper == null) {
throw new IllegalArgumentException("试卷不存在");
}
return paperConvertor.convertEToBasicVo(paper);
}
/**
* id
*

View File

@ -4,6 +4,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.qinan.safetyeval.client.api.OrgPersonnelApi;
import org.qinan.safetyeval.client.co.ClassSelectPersonnelCO;
import org.qinan.safetyeval.client.co.OrgPersonnelCO;
import org.qinan.safetyeval.client.co.OrgPersonnelDeptCountCO;
import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO;
@ -60,6 +61,12 @@ public class OrgPersonnelController {
return orgPersonnelApi.page(query);
}
@ApiOperation("班级选择人员分页查询")
@GetMapping("/classSelect/page")
public PageResponse<ClassSelectPersonnelCO> classSelectPage(@Validated ClassSelectPersonnelPageQuery query) {
return orgPersonnelApi.classSelectPage(query);
}
@ApiOperation("资质备案人员分页查询")
@GetMapping("/filing/page")
public PageResponse<QualFilingPersonnelInfoCO> filingPage(@Validated OrgFilingPersonnelPageQuery query) {

View File

@ -259,6 +259,14 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
return PageResponse.of(records, pageResult.getTotal());
}
@Override
public PageResponse<ClassSelectPersonnelCO> classSelectPage(ClassSelectPersonnelPageQuery query) {
// 直连 infrastructure 层 Mapper跳过 domain由 XML 直接返回 CO无需转换
Page<ClassSelectPersonnelCO> page = new Page<>(query.getCurrent(), query.getSize());
IPage<ClassSelectPersonnelCO> result = orgPersonnelMapper.classSelectPage(page, query);
return PageResponse.of(result.getRecords(), result.getTotal());
}
@Override
public PageResponse<QualFilingPersonnelInfoCO> filingPage(OrgFilingPersonnelPageQuery query) {
query.setOrgId(ThreadLocalUserInfoAdapter.getOrgId());

View File

@ -1,9 +1,6 @@
package org.qinan.safetyeval.client.api;
import org.qinan.safetyeval.client.co.OrgPersonnelCO;
import org.qinan.safetyeval.client.co.OrgPersonnelDeptCountCO;
import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO;
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
import org.qinan.safetyeval.client.co.*;
import org.qinan.safetyeval.client.dto.*;
import org.springframework.web.multipart.MultipartFile;
@ -27,6 +24,14 @@ public interface OrgPersonnelApi {
PageResponse<OrgPersonnelCO> page(OrgPersonnelPageQuery query);
/**
* id not in
*
* @param query
* @return
*/
PageResponse<ClassSelectPersonnelCO> classSelectPage(ClassSelectPersonnelPageQuery query);
PageResponse<QualFilingPersonnelInfoCO> filingPage(OrgFilingPersonnelPageQuery query);
SingleResponse<Void> resetPassword(Long id, String resetPassword);

View File

@ -0,0 +1,31 @@
package org.qinan.safetyeval.client.co;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* COClient Object
*
* @author safety-eval
*/
@Data
public class ClassSelectPersonnelCO {
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "用户姓名")
private String userName;
@ApiModelProperty(value = "账号")
private String account;
@ApiModelProperty(value = "身份证号")
private String idCardNo;
@ApiModelProperty(value = "参训单位名称")
private String unitName;
@ApiModelProperty(value = "部门ID")
private Long deptId;
}

View File

@ -0,0 +1,29 @@
package org.qinan.safetyeval.client.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
*
*
* @author safety-eval
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ClassSelectPersonnelPageQuery extends BasePageQuery {
@ApiModelProperty(value = "学员名称(模糊)")
private String userName;
@ApiModelProperty(value = "参训单位id")
private Long orgId;
@ApiModelProperty(value = "部门id")
private Long deptId;
@ApiModelProperty(value = "需排除的人员id集合如已加入班级的人员不为空时 not in")
private List<Long> excludePersonnelIds;
}

View File

@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.qinan.safetyeval.client.co.ClassSelectPersonnelCO;
import org.qinan.safetyeval.client.co.IndustryProfessionalPersonCo;
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
import org.qinan.safetyeval.client.dto.ClassSelectPersonnelPageQuery;
import org.qinan.safetyeval.client.dto.OrgFilingPersonnelPageQuery;
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDeptCountDO;
@ -50,4 +52,14 @@ public interface OrgPersonnelMapper extends BaseMapper<OrgPersonnelDO> {
*/
IPage<QualFilingPersonnelInfoCO> filingPage(Page<QualFilingPersonnelInfoCO> page,
@Param("query") OrgFilingPersonnelPageQuery query);
/**
* XML CO
*
* @param page
* @param query id
* @return
*/
IPage<ClassSelectPersonnelCO> classSelectPage(Page<ClassSelectPersonnelCO> page,
@Param("query") ClassSelectPersonnelPageQuery query);
}

View File

@ -110,4 +110,31 @@
ORDER BY p.id DESC
</select>
<!-- 班级选择人员分页查询,直接返回 CO -->
<select id="classSelectPage" resultType="org.qinan.safetyeval.client.co.ClassSelectPersonnelCO">
SELECT op.id, op.user_name, op.account, op.id_card_no, oi.unit_name, op.dept_id
FROM org_personnel op
JOIN org_info oi ON op.org_id = oi.id AND oi.delete_enum = 'false'
JOIN org_department od ON od.id = op.dept_id AND od.delete_enum = 'false'
<where>
op.delete_enum = 'false'
<if test="query.userName != null and query.userName != ''">
AND op.user_name LIKE CONCAT('%', #{query.userName}, '%')
</if>
<if test="query.orgId != null">
AND op.org_id = #{query.orgId}
</if>
<if test="query.deptId != null">
AND op.dept_id = #{query.deptId}
</if>
<if test="query.excludePersonnelIds != null and query.excludePersonnelIds.size() > 0">
AND op.id NOT IN
<foreach collection="query.excludePersonnelIds" item="pid" open="(" separator="," close=")">
#{pid}
</foreach>
</if>
</where>
ORDER BY op.id DESC
</select>
</mapper>