更新API接口实现和数据模型

dev
zhangyue 2026-01-28 08:58:20 +08:00
parent bd4b0bd46b
commit a0893303ce
41 changed files with 544 additions and 51 deletions

View File

@ -49,7 +49,7 @@ public class AppStudentSignController {
} }
@ApiOperation("所有数据") @ApiOperation("所有数据")
@GetMapping("/listAll") @PostMapping("/listAll")
public MultiResponse<StudentSignCO> listAll(@RequestBody ClassAppSignQry qry) { public MultiResponse<StudentSignCO> listAll(@RequestBody ClassAppSignQry qry) {
return studentSignService.listAll(qry); return studentSignService.listAll(qry);
} }

View File

@ -8,6 +8,7 @@ import com.zcloud.edu.api.study.ClassServiceI;
import com.zcloud.edu.api.study.StudentServiceI; import com.zcloud.edu.api.study.StudentServiceI;
import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.archives.ClassArchivesQry;
import com.zcloud.edu.dto.clientobject.study.ClassCO; import com.zcloud.edu.dto.clientobject.study.ClassCO;
import com.zcloud.edu.dto.data.archives.ClassArchivesDTO;
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
import com.zcloud.edu.dto.study.ClassPageQry; import com.zcloud.edu.dto.study.ClassPageQry;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -54,4 +55,10 @@ public class ArchivesController {
return studentService.getStudyRecord(qry); return studentService.getStudyRecord(qry);
} }
@ApiOperation("签字表")
@PostMapping("/getClassSign")
public SingleResponse<ClassArchivesDTO> getClassSign(@RequestBody ClassArchivesQry qry) {
return studentService.getClassSign(qry);
}
} }

View File

@ -55,7 +55,7 @@ public class ArchivesReviewController {
@ApiOperation("详情") @ApiOperation("详情")
@GetMapping("/{id}") @GetMapping("/{id}")
public SingleResponse<ArchivesReviewCO> getInfoById(@PathVariable("id") Long id) { public SingleResponse<ArchivesReviewCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new ArchivesReviewCO()); return archivesReviewService.getInfoById(id);
} }
@ApiOperation("删除") @ApiOperation("删除")

View File

@ -7,6 +7,7 @@ import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser; import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext; import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.framework.sdk.http.annotation.request.Post;
import com.zcloud.edu.api.archives.ArchivesReviewRecordServiceI; import com.zcloud.edu.api.archives.ArchivesReviewRecordServiceI;
import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd; import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd;
import com.zcloud.edu.dto.archives.ArchivesReviewRecordPageQry; import com.zcloud.edu.dto.archives.ArchivesReviewRecordPageQry;
@ -36,7 +37,6 @@ public class ArchivesReviewRecordController {
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("/save") @PostMapping("/save")
public SingleResponse<ArchivesReviewRecordCO> add(@Validated @RequestBody ArchivesReviewRecordAddCmd cmd) { public SingleResponse<ArchivesReviewRecordCO> add(@Validated @RequestBody ArchivesReviewRecordAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return archivesReviewRecordService.add(cmd); return archivesReviewRecordService.add(cmd);
} }
@ -59,7 +59,7 @@ public class ArchivesReviewRecordController {
} }
@ApiOperation("删除") @ApiOperation("删除")
@DeleteMapping("/{id}") @PostMapping("/{id}")
public Response remove(@PathVariable("id") Long id) { public Response remove(@PathVariable("id") Long id) {
archivesReviewRecordService.remove(id); archivesReviewRecordService.remove(id);
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();

View File

@ -59,6 +59,11 @@ public class StudentController {
public SingleResponse<StudentCO> getInfoById(@PathVariable("id") Long id) { public SingleResponse<StudentCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new StudentCO()); return SingleResponse.of(new StudentCO());
} }
@ApiOperation("班级内学员数")
@GetMapping("/countStudent/{classId}")
public SingleResponse<Long> countStudent(@PathVariable("classId") String classId) {
return SingleResponse.of(studentService.countStudent(classId));
}
@ApiOperation("删除") @ApiOperation("删除")
@PostMapping("/{id}") @PostMapping("/{id}")

View File

@ -60,7 +60,7 @@ public class StudentExamRecordController {
@ApiOperation("查询考试记录") @ApiOperation("查询考试记录")
@GetMapping("/getInfoByStudentId/{studentId}") @GetMapping("/getInfoByStudentId/{studentId}")
public SingleResponse<StudentExamRecordCO> getInfoByStudentId(@PathVariable("id") String studentId) { public SingleResponse<StudentExamRecordCO> getInfoByStudentId(@PathVariable("studentId") String studentId) {
return studentExamRecordService.getInfoByStudentId(studentId); return studentExamRecordService.getInfoByStudentId(studentId);
} }

View File

@ -9,6 +9,7 @@ import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext; import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.api.study.StudentSignServiceI; import com.zcloud.edu.api.study.StudentSignServiceI;
import com.zcloud.edu.dto.clientobject.study.StudentSignCO; import com.zcloud.edu.dto.clientobject.study.StudentSignCO;
import com.zcloud.edu.dto.study.ClassAppSignQry;
import com.zcloud.edu.dto.study.StudentSignAddCmd; import com.zcloud.edu.dto.study.StudentSignAddCmd;
import com.zcloud.edu.dto.study.StudentSignPageQry; import com.zcloud.edu.dto.study.StudentSignPageQry;
import com.zcloud.edu.dto.study.StudentSignUpdateCmd; import com.zcloud.edu.dto.study.StudentSignUpdateCmd;
@ -47,9 +48,9 @@ public class StudentSignController {
} }
@ApiOperation("所有数据") @ApiOperation("所有数据")
@GetMapping("/listAll") @PostMapping("/listAll")
public MultiResponse<StudentSignCO> listAll() { public MultiResponse<StudentSignCO> listAll(@RequestBody ClassAppSignQry qry) {
return MultiResponse.of(new ArrayList<StudentSignCO>()); return studentSignService.listAll(qry);
} }
@ApiOperation("详情") @ApiOperation("详情")

View File

@ -1,14 +1,23 @@
package com.zcloud.edu.command.archives; package com.zcloud.edu.command.archives;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway; import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway;
import com.zcloud.edu.domain.model.archives.ArchivesReviewE; import com.zcloud.edu.domain.model.archives.ArchivesReviewE;
import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE;
import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd; import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd;
import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRecordRepository;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* web-app * web-app
@ -20,14 +29,25 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor @AllArgsConstructor
public class ArchivesReviewAddExe { public class ArchivesReviewAddExe {
private final ArchivesReviewGateway archivesReviewGateway; private final ArchivesReviewGateway archivesReviewGateway;
private final ArchivesReviewRecordRepository archivesReviewRecordRepository;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(ArchivesReviewAddCmd cmd) { public boolean execute(ArchivesReviewAddCmd cmd) {
ArchivesReviewE archivesReviewE = new ArchivesReviewE(); ArchivesReviewE archivesReviewE = new ArchivesReviewE();
SSOUser ssoUser = AuthContext.getCurrentUser();
List<ArchivesReviewRecordAddCmd> archivesReviewRecordAddCmdList = cmd.getArchivesReviewRecordAddCmdList();
BeanUtils.copyProperties(cmd, archivesReviewE); BeanUtils.copyProperties(cmd, archivesReviewE);
archivesReviewE.init(ssoUser.getTenantId());
boolean res = false; boolean res = false;
try { try {
res = archivesReviewGateway.add(archivesReviewE); res = archivesReviewGateway.add(archivesReviewE);
if (archivesReviewRecordAddCmdList != null && archivesReviewRecordAddCmdList.size() > 0){
ArchivesReviewRecordE archivesReviewRecordE = new ArchivesReviewRecordE();
List<ArchivesReviewRecordE> archivesReviewRecordEList = BeanUtil.copyToList(archivesReviewRecordAddCmdList, ArchivesReviewRecordE.class);
archivesReviewRecordE.initList(archivesReviewRecordEList, archivesReviewE.getArchivesReviewId());
archivesReviewRecordRepository.saveBatch(BeanUtil.copyToList(archivesReviewRecordEList, ArchivesReviewRecordDO.class));
}
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

View File

@ -25,6 +25,7 @@ public class ArchivesReviewRecordAddExe {
public boolean execute(ArchivesReviewRecordAddCmd cmd) { public boolean execute(ArchivesReviewRecordAddCmd cmd) {
ArchivesReviewRecordE archivesReviewRecordE = new ArchivesReviewRecordE(); ArchivesReviewRecordE archivesReviewRecordE = new ArchivesReviewRecordE();
BeanUtils.copyProperties(cmd, archivesReviewRecordE); BeanUtils.copyProperties(cmd, archivesReviewRecordE);
archivesReviewRecordE.init();
boolean res = false; boolean res = false;
try { try {
res = archivesReviewRecordGateway.add(archivesReviewRecordE); res = archivesReviewRecordGateway.add(archivesReviewRecordE);

View File

@ -1,13 +1,22 @@
package com.zcloud.edu.command.query.archives; package com.zcloud.edu.command.query.archives;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
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.command.convertor.archives.ArchivesReviewCoConvertor; import com.zcloud.edu.command.convertor.archives.ArchivesReviewCoConvertor;
import com.zcloud.edu.command.convertor.archives.ArchivesReviewRecordCoConvertor;
import com.zcloud.edu.domain.model.archives.ArchivesReviewE;
import com.zcloud.edu.dto.archives.ArchivesReviewPageQry; import com.zcloud.edu.dto.archives.ArchivesReviewPageQry;
import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO; import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO;
import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewRecordCO;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO; import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRecordRepository;
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository; import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
@ -25,6 +34,8 @@ import java.util.Map;
public class ArchivesReviewQueryExe { public class ArchivesReviewQueryExe {
private final ArchivesReviewRepository archivesReviewRepository; private final ArchivesReviewRepository archivesReviewRepository;
private final ArchivesReviewCoConvertor archivesReviewCoConvertor; private final ArchivesReviewCoConvertor archivesReviewCoConvertor;
private final ArchivesReviewRecordRepository archivesReviewRecordRepository;
private final ArchivesReviewRecordCoConvertor archivesReviewRecordCoConvertor;
/** /**
* *
@ -38,5 +49,23 @@ public class ArchivesReviewQueryExe {
List<ArchivesReviewCO> examCenterCOS = archivesReviewCoConvertor.converDOsToCOs(pageResponse.getData()); List<ArchivesReviewCO> examCenterCOS = archivesReviewCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public SingleResponse<ArchivesReviewCO> executeGetInfoById(Long id) {
ArchivesReviewE archivesReviewE = new ArchivesReviewE();
ArchivesReviewDO archivesReviewDO = archivesReviewRepository.getInfoById(id);
BeanUtils.copyProperties(archivesReviewDO, archivesReviewE);
SSOUser ssoUser = AuthContext.getCurrentUser();
archivesReviewE.initInfo(ssoUser.getTenantName());
BeanUtils.copyProperties(archivesReviewE, archivesReviewDO);
ArchivesReviewCO archivesReviewCO = new ArchivesReviewCO();
BeanUtils.copyProperties(archivesReviewDO, archivesReviewCO);
List<ArchivesReviewRecordDO> arrList =archivesReviewRecordRepository.listByReviewId(archivesReviewDO.getArchivesReviewId());
List<ArchivesReviewRecordCO> recordList = archivesReviewRecordCoConvertor.converDOsToCOs(arrList);
archivesReviewCO.setArchivesReviewRecordList(recordList);
return SingleResponse.of(archivesReviewCO);
}
} }

View File

@ -4,10 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.command.convertor.study.StudentCoConvertor; import com.zcloud.edu.command.convertor.study.StudentCoConvertor;
import com.zcloud.edu.domain.model.archives.ClassArchivesE;
import com.zcloud.edu.domain.model.archives.PersonArchivesE; import com.zcloud.edu.domain.model.archives.PersonArchivesE;
import com.zcloud.edu.domain.model.study.*; import com.zcloud.edu.domain.model.study.*;
import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.archives.ClassArchivesQry;
import com.zcloud.edu.dto.clientobject.study.StudentCO; 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.data.archives.PersonArchivesDTO;
import com.zcloud.edu.dto.study.StudentPageQry; import com.zcloud.edu.dto.study.StudentPageQry;
import com.zcloud.edu.persistence.dataobject.study.*; import com.zcloud.edu.persistence.dataobject.study.*;
@ -134,5 +137,34 @@ public class StudentQueryExe {
BeanUtils.copyProperties(personArchivesE, personArchivesDTO); BeanUtils.copyProperties(personArchivesE, personArchivesDTO);
return SingleResponse.of(personArchivesDTO); return SingleResponse.of(personArchivesDTO);
} }
public SingleResponse<ClassArchivesDTO> executeGetClassSign(ClassArchivesQry qry){
ClassDO classDO = classRepository.getByClassId(qry.getClassId());
ClassE classE = new ClassE();
long stuCount = studentRepository.countByClassId(qry.getClassId());
BeanUtils.copyProperties(classDO, classE);
// 课程信息
ClassCurriculumE classCurriculumE = new ClassCurriculumE();
Map<String, Object> params = classCurriculumE.initListAllParams(qry.getClassId());
List<ClassCurriculumDO> curEList = classCurriculumRepository.listAll(params);
List<ClassCurriculumE> classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class);
List<StudentSignDO> studentSignList = studentSignRepository.listAll(params);
ClassArchivesE classArchivesE = new ClassArchivesE();
classArchivesE.initClassSign(classE, stuCount, classCurList);
ClassArchivesDTO classArchivesDTO = new ClassArchivesDTO();
BeanUtils.copyProperties(classArchivesE, classArchivesDTO);
classArchivesDTO.setSignList(BeanUtil.copyToList(studentSignList, StudentSignCO.class));
return SingleResponse.of(classArchivesDTO);
}
public Long executeCountStudent(String classId){
return studentRepository.countByClassId(classId);
}
} }

View File

@ -55,5 +55,10 @@ public class ArchivesReviewServiceImpl implements ArchivesReviewServiceI {
public void removeBatch(Long[] ids) { public void removeBatch(Long[] ids) {
archivesReviewRemoveExe.execute(ids); archivesReviewRemoveExe.execute(ids);
} }
@Override
public SingleResponse<ArchivesReviewCO> getInfoById(Long id) {
return archivesReviewQueryExe.executeGetInfoById(id);
}
} }

View File

@ -9,6 +9,7 @@ import com.zcloud.edu.command.study.StudentRemoveExe;
import com.zcloud.edu.command.study.StudentUpdateExe; import com.zcloud.edu.command.study.StudentUpdateExe;
import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.archives.ClassArchivesQry;
import com.zcloud.edu.dto.clientobject.study.StudentCO; 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.data.archives.PersonArchivesDTO;
import com.zcloud.edu.dto.study.StudentAddCmd; import com.zcloud.edu.dto.study.StudentAddCmd;
import com.zcloud.edu.dto.study.StudentPageQry; import com.zcloud.edu.dto.study.StudentPageQry;
@ -73,5 +74,15 @@ public class StudentServiceImpl implements StudentServiceI {
public SingleResponse<PersonArchivesDTO> getStudyRecord(ClassArchivesQry qry) { public SingleResponse<PersonArchivesDTO> getStudyRecord(ClassArchivesQry qry) {
return studentQueryExe.executeStudyRecord(qry); return studentQueryExe.executeStudyRecord(qry);
} }
@Override
public SingleResponse<ClassArchivesDTO> getClassSign(ClassArchivesQry qry) {
return studentQueryExe.executeGetClassSign(qry);
}
@Override
public Long countStudent(String classId) {
return studentQueryExe.executeCountStudent(classId);
}
} }

View File

@ -23,5 +23,8 @@ public interface ArchivesReviewServiceI {
void remove(Long id); void remove(Long id);
void removeBatch(Long[] ids); void removeBatch(Long[] ids);
SingleResponse<ArchivesReviewCO> getInfoById(Long id);
} }

View File

@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.archives.ClassArchivesQry;
import com.zcloud.edu.dto.clientobject.study.StudentCO; 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.data.archives.PersonArchivesDTO;
import com.zcloud.edu.dto.study.StudentAddCmd; import com.zcloud.edu.dto.study.StudentAddCmd;
import com.zcloud.edu.dto.study.StudentPageQry; import com.zcloud.edu.dto.study.StudentPageQry;
@ -33,5 +34,9 @@ public interface StudentServiceI {
SingleResponse<PersonArchivesDTO> getStudyArchives(ClassArchivesQry qry); SingleResponse<PersonArchivesDTO> getStudyArchives(ClassArchivesQry qry);
SingleResponse<PersonArchivesDTO> getStudyRecord(ClassArchivesQry qry); SingleResponse<PersonArchivesDTO> getStudyRecord(ClassArchivesQry qry);
SingleResponse<ClassArchivesDTO> getClassSign(ClassArchivesQry qry);
Long countStudent(String classId);
} }

View File

@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
/** /**
* web-client * web-client
@ -24,7 +25,6 @@ import java.time.LocalDateTime;
@AllArgsConstructor @AllArgsConstructor
public class ArchivesReviewAddCmd extends Command { public class ArchivesReviewAddCmd extends Command {
@ApiModelProperty(value = "业务id", name = "archivesReviewId", required = true) @ApiModelProperty(value = "业务id", name = "archivesReviewId", required = true)
@NotEmpty(message = "业务id不能为空")
private String archivesReviewId; private String archivesReviewId;
@ApiModelProperty(value = "课程id", name = "classCurriculumId", required = true) @ApiModelProperty(value = "课程id", name = "classCurriculumId", required = true)
@ -40,8 +40,7 @@ public class ArchivesReviewAddCmd extends Command {
private String bookNum; private String bookNum;
@ApiModelProperty(value = "班级所属企业id", name = "corpinfoId", required = true) @ApiModelProperty(value = "班级所属企业id", name = "corpinfoId", required = true)
@NotNull(message = "班级所属企业id不能为空") private Long corpinfoId;
private Integer corpinfoId;
@ApiModelProperty(value = "编写单位", name = "corpName", required = true) @ApiModelProperty(value = "编写单位", name = "corpName", required = true)
@NotEmpty(message = "编写单位不能为空") @NotEmpty(message = "编写单位不能为空")
@ -49,7 +48,6 @@ public class ArchivesReviewAddCmd extends Command {
@ApiModelProperty(value = "编写时间", name = "writeDate", required = true) @ApiModelProperty(value = "编写时间", name = "writeDate", required = true)
@NotNull(message = "编写时间不能为空") @NotNull(message = "编写时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime writeDate; private LocalDateTime writeDate;
@ApiModelProperty(value = "教材类型", name = "materialType", required = true) @ApiModelProperty(value = "教材类型", name = "materialType", required = true)
@ -66,12 +64,14 @@ public class ArchivesReviewAddCmd extends Command {
@ApiModelProperty(value = "会审时间", name = "auditDate", required = true) @ApiModelProperty(value = "会审时间", name = "auditDate", required = true)
@NotNull(message = "会审时间不能为空") @NotNull(message = "会审时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime auditDate; private LocalDateTime auditDate;
@ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true) @ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true)
@NotEmpty(message = "会审意见不能为空") @NotEmpty(message = "会审意见不能为空")
private String reviewOpinions; private String reviewOpinions;
@ApiModelProperty(value = "安全培训教材会审情况", name = "archivesReviewRecordAddCmdList", required = true)
private List<ArchivesReviewRecordAddCmd> archivesReviewRecordAddCmdList;
} }

View File

@ -24,5 +24,6 @@ public class ArchivesReviewPageQry extends PageQuery {
* - `ne`: SQL!= * - `ne`: SQL!=
*/ */
private String likeArchivesReviewId; private String likeArchivesReviewId;
private String eqClassId;
} }

View File

@ -20,9 +20,6 @@ import javax.validation.constraints.NotEmpty;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class ArchivesReviewRecordAddCmd extends Command { public class ArchivesReviewRecordAddCmd extends Command {
@ApiModelProperty(value = "业务id", name = "archivesReviewRecordId", required = true)
@NotEmpty(message = "业务id不能为空")
private String archivesReviewRecordId;
@ApiModelProperty(value = "会审表id", name = "archivesReviewId", required = true) @ApiModelProperty(value = "会审表id", name = "archivesReviewId", required = true)
@NotEmpty(message = "会审表id不能为空") @NotEmpty(message = "会审表id不能为空")

View File

@ -23,30 +23,17 @@ import java.time.LocalDateTime;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class ArchivesReviewUpdateCmd extends Command { public class ArchivesReviewUpdateCmd extends Command {
@ApiModelProperty(value = "${column.comment}", name = "id", required = true) @ApiModelProperty(value = "id", name = "id", required = true)
@NotNull(message = "${column.comment}不能为空") @NotNull(message = "id不能为空")
private Long id; private Long id;
@ApiModelProperty(value = "业务id", name = "archivesReviewId", required = true)
@NotEmpty(message = "业务id不能为空")
private String archivesReviewId;
@ApiModelProperty(value = "课程id", name = "classCurriculumId", required = true)
@NotEmpty(message = "课程id不能为空")
private String classCurriculumId;
@ApiModelProperty(value = "班级id", name = "classId", required = true)
@NotEmpty(message = "班级id不能为空")
private String classId;
@ApiModelProperty(value = "初版书号", name = "bookNum", required = true) @ApiModelProperty(value = "初版书号", name = "bookNum", required = true)
@NotEmpty(message = "初版书号不能为空") @NotEmpty(message = "初版书号不能为空")
private String bookNum; private String bookNum;
@ApiModelProperty(value = "班级所属企业id", name = "corpinfoId", required = true)
@NotNull(message = "班级所属企业id不能为空")
private Integer corpinfoId;
@ApiModelProperty(value = "编写单位", name = "corpName", required = true) @ApiModelProperty(value = "编写单位", name = "corpName", required = true)
@NotEmpty(message = "编写单位不能为空") @NotEmpty(message = "编写单位不能为空")
private String corpName; private String corpName;
@ApiModelProperty(value = "编写时间", name = "writeDate", required = true) @ApiModelProperty(value = "编写时间", name = "writeDate", required = true)
@NotNull(message = "编写时间不能为空") @NotNull(message = "编写时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime writeDate; private LocalDateTime writeDate;
@ApiModelProperty(value = "教材类型", name = "materialType", required = true) @ApiModelProperty(value = "教材类型", name = "materialType", required = true)
@NotEmpty(message = "教材类型不能为空") @NotEmpty(message = "教材类型不能为空")
@ -59,7 +46,6 @@ public class ArchivesReviewUpdateCmd extends Command {
private String compere; private String compere;
@ApiModelProperty(value = "会审时间", name = "auditDate", required = true) @ApiModelProperty(value = "会审时间", name = "auditDate", required = true)
@NotNull(message = "会审时间不能为空") @NotNull(message = "会审时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime auditDate; private LocalDateTime auditDate;
@ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true) @ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true)
@NotEmpty(message = "会审意见不能为空") @NotEmpty(message = "会审意见不能为空")

View File

@ -25,6 +25,7 @@ public class ClassArchivesQry {
*/ */
private Long stuId; private Long stuId;
private String studentId; private String studentId;
private String classId;
} }

View File

@ -1,11 +1,13 @@
package com.zcloud.edu.dto.clientobject.archives; package com.zcloud.edu.dto.clientobject.archives;
import com.alibaba.cola.dto.ClientObject; import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
/** /**
@ -31,7 +33,7 @@ public class ArchivesReviewCO extends ClientObject {
private String bookNum; private String bookNum;
//班级所属企业id //班级所属企业id
@ApiModelProperty(value = "班级所属企业id") @ApiModelProperty(value = "班级所属企业id")
private Integer corpinfoId; private Long corpinfoId;
//编写单位 //编写单位
@ApiModelProperty(value = "编写单位") @ApiModelProperty(value = "编写单位")
private String corpName; private String corpName;
@ -55,6 +57,15 @@ public class ArchivesReviewCO extends ClientObject {
//会审意见 //会审意见
@ApiModelProperty(value = "会审意见") @ApiModelProperty(value = "会审意见")
private String reviewOpinions; private String reviewOpinions;
@ApiModelProperty(value = "安全培训教材会审情况")
@TableField(exist = false)
private List<ArchivesReviewRecordCO> archivesReviewRecordList;
// 教材名称
@ApiModelProperty(value = "教材名称")
@TableField(exist = false)
private String curriculumName;
//删除标识true false //删除标识true false
@ApiModelProperty(value = "删除标识true false") @ApiModelProperty(value = "删除标识true false")
private String deleteEnum; private String deleteEnum;

View File

@ -1,10 +1,12 @@
package com.zcloud.edu.dto.clientobject.study; package com.zcloud.edu.dto.clientobject.study;
import com.alibaba.cola.dto.ClientObject; import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -38,6 +40,46 @@ public class StudentExamRecordItemCO extends ClientObject {
//删除标识true false //删除标识true false
@ApiModelProperty(value = "删除标识true false") @ApiModelProperty(value = "删除标识true false")
private String deleteEnum; private String deleteEnum;
@ApiModelProperty(value = "试题类型1单选题、2多选题、3判断题")
@TableField(exist = false)
private Integer questionType;
//题干
@ApiModelProperty(value = "题干")
@TableField(exist = false)
private String questionDry;
//选项A
@ApiModelProperty(value = "选项A")
@TableField(exist = false)
private String optionA;
//选项B
@ApiModelProperty(value = "选项B")
@TableField(exist = false)
private String optionB;
//选项C
@ApiModelProperty(value = "选项C")
@TableField(exist = false)
private String optionC;
//选项D
@ApiModelProperty(value = "选项D")
@TableField(exist = false)
private String optionD;
//课件类型(1:视频课件、2:试卷习题)
@ApiModelProperty(value = "课件类型(1:视频课件、2:试卷习题)")
@TableField(exist = false)
private Integer coursewareType;
//答案解析
@ApiModelProperty(value = "答案解析")
@TableField(exist = false)
private String descr;
//分值
@ApiModelProperty(value = "分值")
@TableField(exist = false)
private BigDecimal score;
//备注 //备注
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remarks; private String remarks;

View File

@ -0,0 +1,86 @@
package com.zcloud.edu.dto.data.archives;
import com.zcloud.edu.dto.clientobject.study.StudentSignCO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author zhangyue
* @date 2026/1/26 16:56
*/
@Data
public class ClassArchivesDTO {
//班级id(uuid)
@ApiModelProperty(value = "班级id(uuid)")
private String classId;
//班级id(雪花)
@ApiModelProperty(value = "班级id(雪花)")
private Long clzId;
//班级名称
@ApiModelProperty(value = "班级名称")
private String className;
//培训日期 开始时间
@ApiModelProperty(value = "培训日期 开始时间")
private String startTime;
//培训日期 结束日期
@ApiModelProperty(value = "培训日期 结束日期")
private String endTime;
//培训教师id
@ApiModelProperty(value = "培训教师id")
private Long teacherId;
//教师名称
@ApiModelProperty(value = "教师名称")
private String teacherName;
//培训行业类型
@ApiModelProperty(value = "培训行业类型")
private String trainType;
//培训行业类型名称
@ApiModelProperty(value = "培训行业类型名称")
private String trainTypeName;
//培训地点
@ApiModelProperty(value = "培训地点")
private String trainingLocation;
//机构ID
@ApiModelProperty(value = "机构ID")
private Long corpinfoId;
//状态1-未申请 2-待开班 3- 培训中 4-培训结束
@ApiModelProperty(value = "状态1-未申请 2-待开班 3- 培训中 4-培训结束 ")
private Integer state;
//培训有效期日期 开始时间
@ApiModelProperty(value = "培训有效期日期 开始时间")
private String validStartTime;
//培训有效期日期 结束时间
@ApiModelProperty(value = "培训有效期日期 结束时间")
private String validEndTime;
//1考试0不考试
@ApiModelProperty(value = "1考试0不考试")
private Integer examination;
//考试次数只有考试时候有用
@ApiModelProperty(value = "考试次数只有考试时候有用")
private Integer numberofexams;
@ApiModelProperty(value = "培训时长")
private Long trainDurationTime;
@ApiModelProperty(value = "培训科目")
private String trainSubject;
@ApiModelProperty(value = "视频时长")
private BigDecimal videoTotalTime;
@ApiModelProperty(value = "课件数")
private Integer videoCount;
@ApiModelProperty(value = "打卡签到人脸图片路径")
private String signFaceUrl;
@ApiModelProperty(value = "考试签到人脸图片路径")
private String examSignFaceUrl;
@ApiModelProperty(value = "签字列表")
private List<StudentSignCO> signList;
@ApiModelProperty(value = "学员数")
private Long studentCount;
}

View File

@ -1,9 +1,11 @@
package com.zcloud.edu.dto.data.archives; package com.zcloud.edu.dto.data.archives;
import com.zcloud.edu.dto.clientobject.study.StudentSignCO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* @author zhangyue * @author zhangyue
@ -136,4 +138,6 @@ public class PersonArchivesDTO {
private String signFaceUrl; private String signFaceUrl;
@ApiModelProperty(value = "考试签到人脸图片路径") @ApiModelProperty(value = "考试签到人脸图片路径")
private String examSignFaceUrl; private String examSignFaceUrl;
@ApiModelProperty(value = "签字列表")
private List<StudentSignCO> signList;
} }

View File

@ -1,7 +1,9 @@
package com.zcloud.edu.domain.model.archives; package com.zcloud.edu.domain.model.archives;
import com.jjb.saas.framework.domain.model.BaseE; import com.jjb.saas.framework.domain.model.BaseE;
import com.zcloud.gbscommon.utils.Tools;
import lombok.Data; import lombok.Data;
import org.springframework.util.ObjectUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -23,7 +25,7 @@ public class ArchivesReviewE extends BaseE {
//初版书号 //初版书号
private String bookNum; private String bookNum;
//班级所属企业id //班级所属企业id
private Integer corpinfoId; private Long corpinfoId;
//编写单位 //编写单位
private String corpName; private String corpName;
//编写时间 //编写时间
@ -62,5 +64,19 @@ public class ArchivesReviewE extends BaseE {
private Long updateId; private Long updateId;
//环境 //环境
private String env; private String env;
public void initInfo(String corpName) {
if (ObjectUtils.isEmpty(this.address)){
this.address = corpName;
}
if (ObjectUtils.isEmpty(this.corpName)){
this.corpName = corpName;
}
}
public void init(Long tenantId) {
this.setCorpinfoId(tenantId);
this.setArchivesReviewId(Tools.get32UUID());
}
} }

View File

@ -1,9 +1,11 @@
package com.zcloud.edu.domain.model.archives; package com.zcloud.edu.domain.model.archives;
import com.jjb.saas.framework.domain.model.BaseE; import com.jjb.saas.framework.domain.model.BaseE;
import com.zcloud.gbscommon.utils.Tools;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
/** /**
* web-domain * web-domain
@ -51,5 +53,15 @@ public class ArchivesReviewRecordE extends BaseE {
private Long updateId; private Long updateId;
//环境 //环境
private String env; private String env;
public void initList(List<ArchivesReviewRecordE> list, String archivesReviewId){
list.stream().forEach(archivesReviewRecordE -> {
archivesReviewRecordE.setArchivesReviewId(archivesReviewId);
archivesReviewRecordE.setArchivesReviewRecordId(Tools.get32UUID());
});
}
public void init(){
this.setArchivesReviewRecordId(Tools.get32UUID());
}
} }

View File

@ -0,0 +1,95 @@
package com.zcloud.edu.domain.model.archives;
import com.jjb.saas.framework.domain.model.BaseE;
import com.zcloud.edu.domain.model.study.*;
import com.zcloud.gbscommon.utils.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import org.springframework.util.ObjectUtils;
import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author zhangyue
* @date 2026/1/26 17:38
*/
@Data
public class ClassArchivesE extends BaseE {
//班级id(uuid)
@ApiModelProperty(value = "班级id(uuid)")
private String classId;
//班级id(雪花)
@ApiModelProperty(value = "班级id(雪花)")
private Long clzId;
//班级名称
@ApiModelProperty(value = "班级名称")
private String className;
//培训日期 开始时间
@ApiModelProperty(value = "培训日期 开始时间")
private String startTime;
//培训日期 结束日期
@ApiModelProperty(value = "培训日期 结束日期")
private String endTime;
//培训教师id
@ApiModelProperty(value = "培训教师id")
private Long teacherId;
//教师名称
@ApiModelProperty(value = "教师名称")
private String teacherName;
//培训行业类型
@ApiModelProperty(value = "培训行业类型")
private String trainType;
//培训行业类型名称
@ApiModelProperty(value = "培训行业类型名称")
private String trainTypeName;
//培训地点
@ApiModelProperty(value = "培训地点")
private String trainingLocation;
//机构ID
@ApiModelProperty(value = "机构ID")
private Long corpinfoId;
//状态1-未申请 2-待开班 3- 培训中 4-培训结束
@ApiModelProperty(value = "状态1-未申请 2-待开班 3- 培训中 4-培训结束 ")
private Integer state;
//培训有效期日期 开始时间
@ApiModelProperty(value = "培训有效期日期 开始时间")
private String validStartTime;
//培训有效期日期 结束时间
@ApiModelProperty(value = "培训有效期日期 结束时间")
private String validEndTime;
//1考试0不考试
@ApiModelProperty(value = "1考试0不考试")
private Integer examination;
@ApiModelProperty(value = "培训时长")
private Long trainDurationTime;
@ApiModelProperty(value = "培训科目")
private String trainSubject;
@ApiModelProperty(value = "视频时长")
private BigDecimal videoTotalTime;
@ApiModelProperty(value = "课件数")
private Integer videoCount;
@ApiModelProperty(value = "打卡签到人脸图片路径")
private String signFaceUrl;
@ApiModelProperty(value = "考试签到人脸图片路径")
private String examSignFaceUrl;
@ApiModelProperty(value = "学员数")
private Long studentCount;
public void initClassSign(ClassE classE, Long studentCount, List<ClassCurriculumE> classCurList) {
BeanUtils.copyProperties(classE, this);
String trainSubject = classCurList.stream().map(ClassCurriculumE::getCurriculumName).collect(Collectors.joining(","));
setTrainSubject(trainSubject);
setStudentCount(studentCount);
setClzId(classE.getId());
}
}

View File

@ -229,4 +229,5 @@ public class PersonArchivesE extends BaseE {
} }
} }
} }
} }

View File

@ -1,5 +1,6 @@
package com.zcloud.edu.persistence.dataobject.archives; package com.zcloud.edu.persistence.dataobject.archives;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -34,7 +35,7 @@ public class ArchivesReviewDO extends BaseDO {
private String bookNum; private String bookNum;
//班级所属企业id //班级所属企业id
@ApiModelProperty(value = "班级所属企业id") @ApiModelProperty(value = "班级所属企业id")
private Integer corpinfoId; private Long corpinfoId;
//编写单位 //编写单位
@ApiModelProperty(value = "编写单位") @ApiModelProperty(value = "编写单位")
private String corpName; private String corpName;
@ -56,6 +57,10 @@ public class ArchivesReviewDO extends BaseDO {
//会审意见 //会审意见
@ApiModelProperty(value = "会审意见") @ApiModelProperty(value = "会审意见")
private String reviewOpinions; private String reviewOpinions;
// 教材名称
@ApiModelProperty(value = "教材名称")
@TableField(exist = false)
private String curriculumName;
} }

View File

@ -1,5 +1,6 @@
package com.zcloud.edu.persistence.dataobject.study; package com.zcloud.edu.persistence.dataobject.study;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO; import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -7,6 +8,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/** /**
* web-infrastructure * web-infrastructure
* *
@ -41,5 +44,42 @@ public class StudentExamRecordItemDO extends BaseDO {
private String answerRight; private String answerRight;
@ApiModelProperty(value = "试题类型1单选题、2多选题、3判断题")
@TableField(exist = false)
private Integer questionType;
//题干
@ApiModelProperty(value = "题干")
@TableField(exist = false)
private String questionDry;
//选项A
@ApiModelProperty(value = "选项A")
@TableField(exist = false)
private String optionA;
//选项B
@ApiModelProperty(value = "选项B")
@TableField(exist = false)
private String optionB;
//选项C
@ApiModelProperty(value = "选项C")
@TableField(exist = false)
private String optionC;
//选项D
@ApiModelProperty(value = "选项D")
@TableField(exist = false)
private String optionD;
//课件类型(1:视频课件、2:试卷习题)
@ApiModelProperty(value = "课件类型(1:视频课件、2:试卷习题)")
@TableField(exist = false)
private Integer coursewareType;
//答案解析
@ApiModelProperty(value = "答案解析")
@TableField(exist = false)
private String descr;
//分值
@ApiModelProperty(value = "分值")
@TableField(exist = false)
private BigDecimal score;
} }

View File

@ -1,8 +1,12 @@
package com.zcloud.edu.persistence.mapper.archives; package com.zcloud.edu.persistence.mapper.archives;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO; import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO;
import com.zcloud.edu.persistence.dataobject.study.ClassDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* web-infrastructure * web-infrastructure
@ -12,6 +16,8 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface ArchivesReviewMapper extends BaseMapper<ArchivesReviewDO> { public interface ArchivesReviewMapper extends BaseMapper<ArchivesReviewDO> {
IPage<ArchivesReviewDO> listPage(IPage<ArchivesReviewDO> page, @Param("ew") QueryWrapper<ArchivesReviewDO> queryWrapper, String menuPerms);
ArchivesReviewDO getInfoById(@Param("id") Long id);
} }

View File

@ -3,6 +3,9 @@ package com.zcloud.edu.persistence.mapper.archives;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO; import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* web-infrastructure * web-infrastructure
@ -12,6 +15,5 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface ArchivesReviewRecordMapper extends BaseMapper<ArchivesReviewRecordDO> { public interface ArchivesReviewRecordMapper extends BaseMapper<ArchivesReviewRecordDO> {
} }

View File

@ -3,6 +3,9 @@ package com.zcloud.edu.persistence.mapper.study;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordItemDO; import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordItemDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* web-infrastructure * web-infrastructure
@ -12,6 +15,6 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface StudentExamRecordItemMapper extends BaseMapper<StudentExamRecordItemDO> { public interface StudentExamRecordItemMapper extends BaseMapper<StudentExamRecordItemDO> {
List<StudentExamRecordItemDO> listByExamRecordId(@Param("examRecordId") String examRecordId);
} }

View File

@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository; import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO; import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -14,5 +15,7 @@ import java.util.Map;
*/ */
public interface ArchivesReviewRecordRepository extends BaseRepository<ArchivesReviewRecordDO> { public interface ArchivesReviewRecordRepository extends BaseRepository<ArchivesReviewRecordDO> {
PageResponse<ArchivesReviewRecordDO> listPage(Map<String, Object> params); PageResponse<ArchivesReviewRecordDO> listPage(Map<String, Object> params);
List<ArchivesReviewRecordDO> listByReviewId(String reviewId);
} }

View File

@ -14,5 +14,7 @@ import java.util.Map;
*/ */
public interface ArchivesReviewRepository extends BaseRepository<ArchivesReviewDO> { public interface ArchivesReviewRepository extends BaseRepository<ArchivesReviewDO> {
PageResponse<ArchivesReviewDO> listPage(Map<String, Object> params); PageResponse<ArchivesReviewDO> listPage(Map<String, Object> params);
ArchivesReviewDO getInfoById(Long id);
} }

View File

@ -13,6 +13,7 @@ import com.zcloud.gbscommon.utils.Query;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -35,5 +36,14 @@ public class ArchivesReviewRecordRepositoryImpl extends BaseRepositoryImpl<Archi
IPage<ArchivesReviewRecordDO> result = archivesReviewRecordMapper.selectPage(iPage, queryWrapper); IPage<ArchivesReviewRecordDO> result = archivesReviewRecordMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }
@Override
public List<ArchivesReviewRecordDO> listByReviewId(String reviewId) {
QueryWrapper<ArchivesReviewRecordDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("archives_review_id", reviewId);
queryWrapper.eq("delete_enum", "FALSE");
queryWrapper.orderByDesc("create_time");
return archivesReviewRecordMapper.selectList(queryWrapper);
}
} }

View File

@ -30,10 +30,16 @@ public class ArchivesReviewRepositoryImpl extends BaseRepositoryImpl<ArchivesRev
public PageResponse<ArchivesReviewDO> listPage(Map<String, Object> params) { public PageResponse<ArchivesReviewDO> listPage(Map<String, Object> params) {
IPage<ArchivesReviewDO> iPage = new Query<ArchivesReviewDO>().getPage(params); IPage<ArchivesReviewDO> iPage = new Query<ArchivesReviewDO>().getPage(params);
QueryWrapper<ArchivesReviewDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<ArchivesReviewDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params, "cc.");
queryWrapper.orderByDesc("create_time"); queryWrapper.eq("cc.delete_enum", "FALSE");
IPage<ArchivesReviewDO> result = archivesReviewMapper.selectPage(iPage, queryWrapper); queryWrapper.orderByDesc("cc.create_time");
IPage<ArchivesReviewDO> result = archivesReviewMapper.listPage(iPage, queryWrapper, null);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }
@Override
public ArchivesReviewDO getInfoById(Long id) {
return archivesReviewMapper.getInfoById(id);
}
} }

View File

@ -58,11 +58,7 @@ public class StudentExamRecordItemRepositoryImpl extends BaseRepositoryImpl<Stud
@Override @Override
public List<StudentExamRecordItemDO> listByExamRecordId(String examRecordId) { public List<StudentExamRecordItemDO> listByExamRecordId(String examRecordId) {
QueryWrapper<StudentExamRecordItemDO> queryWrapper = new QueryWrapper<>(); return studentExamRecordItemMapper.listByExamRecordId(examRecordId);
queryWrapper.eq("exam_record_id", examRecordId);
queryWrapper.eq("delete_enum", "FALSE");
queryWrapper.orderByDesc("create_time");
return studentExamRecordItemMapper.selectList(queryWrapper);
} }
} }

View File

@ -3,6 +3,27 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.edu.persistence.mapper.archives.ArchivesReviewMapper"> <mapper namespace="com.zcloud.edu.persistence.mapper.archives.ArchivesReviewMapper">
<select id="listPage" resultType="com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO">
SELECT
cc.curriculum_name,
cc.class_curriculum_id,
cc.class_id,
ar.*
FROM
class_curriculum cc
LEFT JOIN archives_review ar ON cc.class_curriculum_id = ar.class_curriculum_id and ar.delete_enum = 'FALSE'
${ew.customSqlSegment}
</select>
<select id="getInfoById" resultType="com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO">
SELECT
cc.curriculum_name,
ar.*
FROM
archives_review ar
LEFT JOIN class_curriculum cc ON cc.class_curriculum_id = ar.class_curriculum_id
WHERE
ar.id = #{id}
</select>
</mapper> </mapper>

View File

@ -3,6 +3,25 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.edu.persistence.mapper.study.StudentExamRecordItemMapper"> <mapper namespace="com.zcloud.edu.persistence.mapper.study.StudentExamRecordItemMapper">
<select id="listByExamRecordId" resultType="com.zcloud.edu.persistence.dataobject.study.StudentExamRecordItemDO">
select
seri.*,
q.question_type,
q.question_dry,
q.option_a,
q.option_b,
q.option_c,
q.option_d,
q.answer,
q.courseware_type,
q.descr,
q.score
from
student_exam_record_item seri
left join question q on seri.question_id = q.question_id
where
seri.student_exam_record_id = #{examRecordId}
and seri.delete_enum = 'FALSE'
</select>
</mapper> </mapper>

View File

@ -7,17 +7,26 @@
SELECT SELECT
s.name student_name, s.name student_name,
cl.name class_name, cl.name class_name,
ss.create_time,
cl.training_location, cl.training_location,
ss.type, ss.*
ss.face_url
FROM FROM
student_sign ss student_sign ss
LEFT JOIN student s ON ss.student_id = ss.student_id LEFT JOIN student s ON ss.student_id = ss.student_id
LEFT JOIN class cl ON cl.class_id = s.class_id LEFT JOIN class cl ON cl.class_id = s.class_id
WHERE <where>
ss.student_id = #{params.studentId} <if test="params.classId != null and params.classId != ''">
AND ss.class_id = #{params.classId}
</if>
<if test="params.studentId != null and params.studentId != ''">
AND ss.student_id = #{params.studentId}
</if>
AND ss.delete_enum = 'FALSE' AND ss.delete_enum = 'FALSE'
and ss.sign_url is not null
and ss.sign_url != ''
order by
ss.create_time desc
</where>
</select> </select>