diff --git a/start/src/main/resources/templates/template/attendance_record.docx b/start/src/main/resources/templates/template/attendance_record.docx new file mode 100644 index 0000000..b7d0e13 --- /dev/null +++ b/start/src/main/resources/templates/template/attendance_record.docx @@ -0,0 +1,21 @@ + 学时证明 + 姓名 + {{name}} + 证件类型 + 身份证 + 证件编号 + {{userIdCard}} + 培训单位名称 + {{corpName}} + 班级名称 + {{className}} + 培训日期 + {{startTime}} 至 {{endTime}} + 培训类型 + {{trainTypeName}} + 视频学习时长 + {{videoTotalTime}}(包含{{videoCount}}个视频课件) + 培训单位:(盖章) + 日期: + + diff --git a/start/src/main/resources/templates/template/exam.docx b/start/src/main/resources/templates/template/exam.docx new file mode 100644 index 0000000..63e34dd --- /dev/null +++ b/start/src/main/resources/templates/template/exam.docx @@ -0,0 +1,10 @@ + {{examName}} + (满分:{{paperExamScore}}分) +班级名称:{{className}} +{{examRecord_list}}姓名:{{name}} +分数:{{examScore}} +考试时间:{{examTimeBegin}} +签字: +([questionTypeName]) [index].[questionDry] (题目分值:[score] 正确答案:[choiceAnswer] 学员答案:[answer]) +A:[optionA] B:[optionB] + diff --git a/start/src/main/resources/templates/template/studentInfo.docx b/start/src/main/resources/templates/template/studentInfo.docx new file mode 100644 index 0000000..35787e8 --- /dev/null +++ b/start/src/main/resources/templates/template/studentInfo.docx @@ -0,0 +1,15 @@ + 学员学习档案 + + {{@img}} + +姓 名:{{name}} +身份证号:{{userIdCard}} +联系电话: {{phone}} +班级名称:{{className}} + +培训日期:{{startTime}} 至 {{endTime}} +学习方式:线下学习 +课程形式:录播 +培训时长:{{trainDurationTime}} +培训科目:{{trainSubject}} +单位名称: {{corpName}} diff --git a/start/src/main/resources/templates/template/studyRecord.docx b/start/src/main/resources/templates/template/studyRecord.docx new file mode 100644 index 0000000..d04bd68 --- /dev/null +++ b/start/src/main/resources/templates/template/studyRecord.docx @@ -0,0 +1,16 @@ + 学时证明 +姓名:{{name}} + 身份证号:{{userIdCard}} + 班级名称 + {{className}} + 课程名称 + {{trainSubject}} + 视频时长 + {{videoTotalTime}} + 是否完成 + {{StateName}} + 签到人脸验证 + {{@signFacePicture}} + 考试人脸验证 + {{@examSignFacePicture}} + diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java index e448e1d..c0001cc 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java @@ -75,7 +75,7 @@ public class ArchivesController { public SingleResponse downloadPersonArchives(@RequestBody ArchivesQry qry) { archivesService.downloadPersonArchives(qry); return null; - } + } } diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/training/TrainingApplyUserController.java b/web-adapter/src/main/java/com/zcloud/edu/web/training/TrainingApplyUserController.java index 737e3d1..0343937 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/training/TrainingApplyUserController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/training/TrainingApplyUserController.java @@ -1,17 +1,18 @@ package com.zcloud.edu.web.training; -import com.zcloud.edu.api.training.TrainingApplyUserServiceI; -import com.zcloud.edu.dto.training.TrainingApplyUserAddCmd; -import com.zcloud.edu.dto.training.TrainingApplyUserPageQry; -import com.zcloud.edu.dto.training.TrainingApplyUserUpdateCmd; -import com.zcloud.edu.dto.clientobject.training.TrainingApplyUserCO; 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.training.TrainingApplyUserServiceI; +import com.zcloud.edu.dto.clientobject.training.TrainingApplyUserCO; +import com.zcloud.edu.dto.training.TrainingApplyUserAddCmd; +import com.zcloud.edu.dto.training.TrainingApplyUserPageQry; +import com.zcloud.edu.dto.training.TrainingApplyUserPhonePageQry; +import com.zcloud.edu.dto.training.TrainingApplyUserUpdateCmd; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -38,6 +39,11 @@ public class TrainingApplyUserController { return trainingApplyUserService.add(cmd); } + @ApiOperation("根据手机号和所属相关方查询分页") + @PostMapping("/listPageByPhone") + public PageResponse listPageByPhone(@RequestBody TrainingApplyUserPhonePageQry qry) { + return trainingApplyUserService.listPageByPhone(qry); + } @ApiOperation("分页") @PostMapping("/list") public PageResponse page(@RequestBody TrainingApplyUserPageQry qry) { diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesQueryExe.java index d641234..d1bc804 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesQueryExe.java @@ -1,18 +1,49 @@ package com.zcloud.edu.command.query.archives; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.unit.DataUnit; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.deepoove.poi.data.PictureRenderData; +import com.deepoove.poi.data.PictureType; +import com.deepoove.poi.data.Pictures; import com.zcloud.edu.command.convertor.archives.ArchivesPdfFileCoConvertor; +import com.zcloud.edu.command.convertor.study.StudentCoConvertor; +import com.zcloud.edu.command.convertor.study.StudentExamRecordCoConvertor; +import com.zcloud.edu.command.convertor.study.StudentExamRecordItemCoConvertor; +import com.zcloud.edu.domain.model.archives.ArchivesPdfFileE; +import com.zcloud.edu.domain.model.archives.PersonArchivesE; +import com.zcloud.edu.domain.model.study.*; import com.zcloud.edu.dto.archives.ArchivesPdfFilePageQry; +import com.zcloud.edu.dto.archives.ArchivesQry; import com.zcloud.edu.dto.clientobject.archives.ArchivesPdfFileCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamRecordCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamRecordItemCO; +import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.edu.persistence.dataobject.archives.ArchivesPdfFileDO; +import com.zcloud.edu.persistence.dataobject.study.*; import com.zcloud.edu.persistence.repository.archives.ArchivesPdfFileRepository; +import com.zcloud.edu.persistence.repository.study.*; +import com.zcloud.gbscommon.utils.DateUtil; import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.zcloud.gbscommon.utils.Tools; +import com.zcloud.gbscommon.utils.WordToPdfUtil; +import com.zcloud.gbscommon.zcloudimgfiles.facade.ZcloudImgFilesFacade; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; +import org.apache.commons.beanutils.PropertyUtils; +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; +import org.springframework.util.ObjectUtils; -import java.util.List; -import java.util.Map; +import java.lang.reflect.InvocationTargetException; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; /** @@ -26,7 +57,26 @@ import java.util.Map; public class ArchivesQueryExe { private final ArchivesPdfFileRepository archivesPdfFileRepository; private final ArchivesPdfFileCoConvertor archivesPdfFileCoConvertor; + private final StudentRepository studentRepository; + private final StudentCoConvertor studentCoConvertor; + private final ClassRepository classRepository; + private final ClassCurriculumRepository classCurriculumRepository; + private final ClassCurriculumChapterRepository classCurriculumChapterRepository; + private final StudentSignRepository studentSignRepository; + private final StudentExamRecordRepository studentExamRecordRepository; + private final StudentExamRecordItemRepository studentExamRecordItemRepository; + private final StudentExamRecordItemCoConvertor studentExamRecordItemCoConvertor; + private static String prefixUrl; + // = "https://jpfz.qhdsafety.com/gbsFileTest/"; +// public static Integer corePoolSize; + @Value("${file.url}") + public void setPrefixUrl(String prefixUrlProperties) { + prefixUrl = prefixUrlProperties; + } + + @DubboReference + private ZcloudImgFilesFacade zcloudImgFilesFacade; /** * 分页 * @@ -40,18 +90,195 @@ public class ArchivesQueryExe { return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } - public void execte1(){ - System.out.println(1); + public PersonArchivesDTO downloadPersonArchives(ArchivesQry qry){ + + ClassE classE = null; + List classCurList = new ArrayList(); + List classChapterEList = new ArrayList(); + List studentSignEList = new ArrayList(); + HashMap params = new HashMap(); + + // 学员信息 + StudentDO studentDO = studentRepository.getById(qry.getStuId()); + byte[] userIdCardBytes = Base64.getDecoder().decode(studentDO.getUserIdCard()); + String userIdCardString = new String(userIdCardBytes); + studentDO.setUserIdCard(userIdCardString); + StudentE studentE = new StudentE(); + BeanUtils.copyProperties(studentDO, studentE); + + // 班级信息 + ClassDO classDO = classRepository.getByClassId(studentDO.getClassId()); + classE = new ClassE(); + BeanUtils.copyProperties(classDO, classE); + + if (qry.getTypeList().contains(2) || qry.getTypeList().contains(3) || qry.getTypeList().contains(4)) { + + + params.put("classId", studentDO.getClassId()); + // 课程信息 + List curEList = classCurriculumRepository.listAll(params); + classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class); + } + + if (qry.getTypeList().contains(2)) { + // 课件信息 + List classChapterList = classCurriculumChapterRepository.listVideoByClassId(classE.getClassId()); + classChapterEList = BeanUtil.copyToList(classChapterList, ClassCurriculumChapterE.class); + } + if (qry.getTypeList().contains(3)) { + // 学员人脸记录 + StudentDO studentUrl = studentRepository.findFaceUrlByPhone(studentDO.getPhone()); + studentE.setUserAvatarUrl(studentUrl.getUserAvatarUrl()); + } + if (qry.getTypeList().contains(4)) { + // 签到照片 + params.put("studentId", studentDO.getStudentId()); + List studentSignList = studentSignRepository.listAllByStudentId(params); + studentSignEList = BeanUtil.copyToList(studentSignList, StudentSignE.class); + } + + PersonArchivesE personArchivesE = new PersonArchivesE(); + personArchivesE.initDownload(studentE, + classE, + classCurList, + classChapterEList, + studentSignEList); + PersonArchivesDTO personArchivesDTO = new PersonArchivesDTO(); + BeanUtils.copyProperties(personArchivesE, personArchivesDTO); + if (qry.getTypeList().contains(5)) { + StudentExamRecordDO studentExamRecordDO = studentExamRecordRepository.getInfoByStudentId(studentDO.getStudentId()); + StudentExamRecordCO studentExamRecordCO = new StudentExamRecordCO(); + BeanUtils.copyProperties(studentExamRecordDO, studentExamRecordCO); + List recordList = studentExamRecordItemRepository.listByExamRecordId(studentExamRecordDO.getStudentExamRecordId()); + List recordCoList = studentExamRecordItemCoConvertor.converDOsToCOs(recordList); + studentExamRecordCO.setExamRecordItemList(recordCoList); + personArchivesDTO.setStudentExamRecord(studentExamRecordCO); + } + // 新增档案下载记录 + ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); + archivesPdfFileE.init("student", personArchivesDTO.getStudentId(), 1); + ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); + BeanUtils.copyProperties(archivesPdfFileE, archivesPdfFileDO); + archivesPdfFileRepository.save(archivesPdfFileDO); + personArchivesDTO.setArchivesPdfFileId(archivesPdfFileDO.getId()); + return personArchivesDTO; } @Async("archivesAsyncExecutor") - public void execte2(){ - // 5s后执行 + public void execteGeneratePdf(ArchivesQry qry, PersonArchivesDTO params){ + List byteArrayList = new ArrayList<>(); + if (qry.getTypeList().contains(2)){ + byteArrayList.add(execteAttendanceRecord(params)); + } + if (qry.getTypeList().contains(3)){ + byteArrayList.add(execteStudentRecord(params)); + } + if (qry.getTypeList().contains(4)){ + byteArrayList.add(execteStudyRecord(params)); + } + if (qry.getTypeList().contains(5)){ + byteArrayList.add(execteExamRecord(params)); + } + try { - Thread.sleep(5000); - } catch (InterruptedException e) { + byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); + String filepath = zcloudImgFilesFacade.saveFile(pdf, params.getName()+"-"+params.getClassName()+"-"+ DateUtil.getSdfTimes()+".pdf","personArchives", params.getClassCorpinfoId()); + + ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); + archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null); + + ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); + BeanUtils.copyProperties(archivesPdfFileE, archivesPdfFileDO); +// archivesPdfFileRepository.updateById(archivesPdfFileDO); + } catch (Exception e) { throw new RuntimeException(e); } - System.out.println(2); } + + public byte[] execteAttendanceRecord(PersonArchivesDTO params){ + try { + Map workItem = PropertyUtils.describe( params); + String templatePath = "templates/template/attendance_record.docx"; + ByteArrayOutputStream outputStream = Tools.renderTemplate(templatePath, workItem); + return outputStream.toByteArray(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public byte[] execteStudentRecord(PersonArchivesDTO params){ + try { + Map workItem = PropertyUtils.describe( params); + PictureRenderData picture = Pictures.ofUrl(prefixUrl + params.getUserAvatarUrl(), PictureType.JPEG).size(100, 100).create();//网络图片地址 + workItem.put("img", picture); + String templatePath = "templates/template/studentInfo.docx"; + ByteArrayOutputStream outputStream = Tools.renderTemplate(templatePath, workItem); + return outputStream.toByteArray(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + + + public byte[] execteStudyRecord(PersonArchivesDTO params){ + try { + Map workItem = PropertyUtils.describe( params); + if(!ObjectUtils.isEmpty(params.getSignFaceUrl())){ + PictureRenderData signFacePicture = Pictures.ofUrl(prefixUrl + params.getSignFaceUrl(), PictureType.JPEG).size(100, 100).create();//网络图片地址 + workItem.put("signFacePicture", signFacePicture); + } + if(!ObjectUtils.isEmpty(params.getExamSignFlag())){ + PictureRenderData examSignFacePicture = Pictures.ofUrl(prefixUrl + params.getExamSignFaceUrl(), PictureType.JPEG).size(100, 100).create();//网络图片地址 + workItem.put("examSignFacePicture", examSignFacePicture); + } + String templatePath = "templates/template/studyRecord.docx"; + ByteArrayOutputStream outputStream = Tools.renderTemplate(templatePath, workItem); + return outputStream.toByteArray(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + public byte[] execteExamRecord(PersonArchivesDTO params){ + try { + Map workItem = PropertyUtils.describe( params.getStudentExamRecord()); + ArrayList workList = CollUtil.newArrayList(); + AtomicInteger atomicIndex = new AtomicInteger(1); + params.getStudentExamRecord().getExamRecordItemList().forEach(item -> { + try { + Map itemMap = PropertyUtils.describe( item); + int index = atomicIndex.getAndIncrement(); + itemMap.put("index", index); + if(item.getQuestionType() == 1){ + itemMap.put("questionTypeName", "单选题"); + } else if(item.getQuestionType() == 2){ + itemMap.put("questionTypeName", "多选题"); + }else if(item.getQuestionType() == 3){ + itemMap.put("questionTypeName", "判断题"); + } + workList.add(itemMap); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + workItem.put("examRecord_list", workList); +// if(!ObjectUtils.isEmpty(params.getStudentExamRecord().getSignUrl())){ +// PictureRenderData signPicture = Pictures.ofUrl(prefixUrl + params.getStudentExamRecord().getSignUrl(), PictureType.JPEG).size(100, 100).create();//网络图片地址 +// workItem.put("signPicture", signPicture); +// } +// if(!ObjectUtils.isEmpty(params.getExamSignFlag())){ +// PictureRenderData examSignFacePicture = Pictures.ofUrl(prefixUrl + params.getExamSignFaceUrl(), PictureType.JPEG).size(100, 100).create();//网络图片地址 +// workItem.put("examSignFacePicture", examSignFacePicture); +// } + String templatePath = "templates/template/exam.docx"; + ByteArrayOutputStream outputStream = Tools.renderTemplate(templatePath, workItem); + System.out.println("5555555555555"); + return outputStream.toByteArray(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + + } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/training/TrainingApplyUserQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/training/TrainingApplyUserQueryExe.java index 9b16a9d..326860a 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/training/TrainingApplyUserQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/training/TrainingApplyUserQueryExe.java @@ -1,12 +1,13 @@ package com.zcloud.edu.command.query.training; +import com.alibaba.cola.dto.PageResponse; import com.zcloud.edu.command.convertor.training.TrainingApplyUserCoConvertor; -import com.zcloud.edu.dto.training.TrainingApplyUserPageQry; import com.zcloud.edu.dto.clientobject.training.TrainingApplyUserCO; +import com.zcloud.edu.dto.training.TrainingApplyUserPageQry; +import com.zcloud.edu.dto.training.TrainingApplyUserPhonePageQry; import com.zcloud.edu.persistence.dataobject.TrainingApplyUserDO; import com.zcloud.edu.persistence.repository.training.TrainingApplyUserRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; -import com.alibaba.cola.dto.PageResponse; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; @@ -38,5 +39,14 @@ public class TrainingApplyUserQueryExe { List examCenterCOS = trainingApplyUserCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + + + + public PageResponse executeListPageByPhone(TrainingApplyUserPhonePageQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = trainingApplyUserRepository.listPageByPhone(params); + List examCenterCOS = trainingApplyUserCoConvertor.converDOsToCOs(pageResponse.getData()); + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/TrainingApplyUserServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/TrainingApplyUserServiceImpl.java index 9c589af..09d61bc 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/TrainingApplyUserServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/TrainingApplyUserServiceImpl.java @@ -7,6 +7,7 @@ import com.zcloud.edu.command.training.TrainingApplyUserUpdateExe; import com.zcloud.edu.command.query.training.TrainingApplyUserQueryExe; import com.zcloud.edu.dto.training.TrainingApplyUserAddCmd; import com.zcloud.edu.dto.training.TrainingApplyUserPageQry; +import com.zcloud.edu.dto.training.TrainingApplyUserPhonePageQry; import com.zcloud.edu.dto.training.TrainingApplyUserUpdateCmd; import com.zcloud.edu.dto.clientobject.training.TrainingApplyUserCO; @@ -34,6 +35,11 @@ public class TrainingApplyUserServiceImpl implements TrainingApplyUserServiceI { return trainingApplyUserQueryExe.execute(qry); } + @Override + public PageResponse listPageByPhone(TrainingApplyUserPhonePageQry qry) { + return trainingApplyUserQueryExe.executeListPageByPhone(qry); + } + @Override public SingleResponse add(TrainingApplyUserAddCmd cmd) { diff --git a/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesServiceImpl.java index 6b44cea..5a5bbff 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesServiceImpl.java @@ -15,6 +15,7 @@ import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd; import com.zcloud.edu.dto.archives.ArchivesReviewPageQry; import com.zcloud.edu.dto.archives.ArchivesReviewUpdateCmd; import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO; +import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.WordToPdfUtil; import com.zcloud.gbscommon.zcloudimgfiles.facade.ZcloudImgFilesFacade; @@ -26,7 +27,9 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; /** * web-app @@ -47,19 +50,37 @@ public class ArchivesServiceImpl implements ArchivesServiceI { // HashMap workItem = new HashMap<>(); // workItem.put("qry", "555"); // String templatePath = "templates/template/category_score_list.docx"; -// try { + try { // ByteArrayOutputStream outputStream = Tools.renderTemplate(templatePath, workItem); +// workItem.put("qry", "16516851"); +// ByteArrayOutputStream outputStream1 = Tools.renderTemplate(templatePath, workItem); +// +// List byteArrayList = new ArrayList<>(); +// byteArrayList.add(outputStream.toByteArray()); +// byteArrayList.add(outputStream1.toByteArray()); +// byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); // byte[] pdfBytes = WordToPdfUtil.convertWordBytesToPdfBytes(outputStream.toByteArray()); -// String s = zcloudImgFilesFacade.saveFile(pdfBytes, "clockSign.pdf","clockSign"); - +// String s = zcloudImgFilesFacade.saveFile(pdf, "clockSign11.pdf","clockSign"); +// // System.out.println(s); -// archivesQueryExe.downloadPersonArchives(); - archivesQueryExe.execte2(); + } catch (Exception e) { + throw new RuntimeException(e); + } + + PersonArchivesDTO personArchivesDTO = archivesQueryExe.downloadPersonArchives(qry); + + // 首页 +// archivesQueryExe.execteHomePage(personArchivesDTO); + // 查询学时证明 + archivesQueryExe.execteGeneratePdf(qry,personArchivesDTO); + // 查询学习档案 +// archivesQueryExe.execteStudyArchives(personArchivesDTO); + // 查询学习记录 +// archivesQueryExe.execteStudyRecord(personArchivesDTO); + // 查询考试记录 +// archivesQueryExe.execteStudentExamRecord(personArchivesDTO); System.out.println("下载成功"); -// } catch (IOException e) { -// throw new RuntimeException(e); -// } } } diff --git a/web-client/src/main/java/com/zcloud/edu/api/training/TrainingApplyUserServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/training/TrainingApplyUserServiceI.java index c174af5..7f83a35 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/training/TrainingApplyUserServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/training/TrainingApplyUserServiceI.java @@ -1,7 +1,9 @@ package com.zcloud.edu.api.training; +import com.zcloud.edu.dto.clientobject.training.TrainingApplyRecordCO; import com.zcloud.edu.dto.training.TrainingApplyUserAddCmd; import com.zcloud.edu.dto.training.TrainingApplyUserPageQry; +import com.zcloud.edu.dto.training.TrainingApplyUserPhonePageQry; import com.zcloud.edu.dto.training.TrainingApplyUserUpdateCmd; import com.zcloud.edu.dto.clientobject.training.TrainingApplyUserCO; @@ -16,6 +18,8 @@ import com.alibaba.cola.dto.SingleResponse; public interface TrainingApplyUserServiceI { PageResponse listPage(TrainingApplyUserPageQry qry); + PageResponse listPageByPhone(TrainingApplyUserPhonePageQry qry); + SingleResponse add(TrainingApplyUserAddCmd cmd); void edit(TrainingApplyUserUpdateCmd cmd); diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesQry.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesQry.java index 61703b2..9c663b2 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesQry.java @@ -24,7 +24,10 @@ public class ArchivesQry { * - `le`: 小于等于比较查询 * - `ne`: 不等比较查询,对应SQL的!=操作符 */ + // 档案类型 1-首页 2-学时证明 3-学员学习档案 4-学习记录 5-考卷信息 private List typeList; + private String studentId; + private Long stuId; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewCO.java index aaa3e52..790821c 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewCO.java @@ -39,7 +39,7 @@ public class ArchivesReviewCO extends ClientObject { private String corpName; //编写时间 @ApiModelProperty(value = "编写时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime writeDate; //教材类型 @ApiModelProperty(value = "教材类型") @@ -52,7 +52,7 @@ public class ArchivesReviewCO extends ClientObject { private String compere; //会审时间 @ApiModelProperty(value = "会审时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime auditDate; //会审意见 @ApiModelProperty(value = "会审意见") @@ -89,11 +89,11 @@ public class ArchivesReviewCO extends ClientObject { private Integer version; //创建时间 @ApiModelProperty(value = "创建时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; //修改时间 @ApiModelProperty(value = "修改时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; //创建人id @ApiModelProperty(value = "创建人id") diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentSignCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentSignCO.java index fff21cf..dbfa278 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentSignCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentSignCO.java @@ -41,6 +41,10 @@ public class StudentSignCO extends ClientObject { @ApiModelProperty(value = "打卡签字路径") private String signUrl; + //学员姓名 + @ApiModelProperty(value = "学员姓名") + private String studentName; + @ApiModelProperty(value = "培训地点") @TableField(exist = false) diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/training/TrainingApplyUserCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/training/TrainingApplyUserCO.java index e2b1d3f..f7a7998 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/training/TrainingApplyUserCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/training/TrainingApplyUserCO.java @@ -1,6 +1,7 @@ package com.zcloud.edu.dto.clientobject.training; import com.alibaba.cola.dto.ClientObject; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -38,9 +39,48 @@ public class TrainingApplyUserCO extends ClientObject { //身份证号 @ApiModelProperty(value = "身份证号") private String idCard; + //关联项目 @ApiModelProperty(value = "关联项目") private String projectName; + + + + //申请企业id + @ApiModelProperty(value = "申请企业id") + @TableField(exist = false) + private Long applyCorpinfoId; + //申请企业名称 + @ApiModelProperty(value = "申请企业名称") + @TableField(exist = false) + private String applyCorpinfoName; + //审批企业id + @ApiModelProperty(value = "审批企业id") + @TableField(exist = false) + private Long approvalCorpinfoId; + //审批部门id + @ApiModelProperty(value = "审批部门id") + @TableField(exist = false) + private Long approvalDepartmentId; + //审批用户id + @ApiModelProperty(value = "审批用户id") + @TableField(exist = false) + private Long approvalUserId; + + //审批企业id + @ApiModelProperty(value = "审批企业名称") + @TableField(exist = false) + private String approvalCorpinfoName; + //审批部门id + @ApiModelProperty(value = "审批部门名称") + @TableField(exist = false) + private String approvalDepartmentName; + //审批用户id + @ApiModelProperty(value = "审批用户名称") + @TableField(exist = false) + private String approvalUserName; + + //乐观锁 @ApiModelProperty(value = "乐观锁") private Integer version; diff --git a/web-client/src/main/java/com/zcloud/edu/dto/data/archives/PersonArchivesDTO.java b/web-client/src/main/java/com/zcloud/edu/dto/data/archives/PersonArchivesDTO.java index 8b7367e..2fd8597 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/data/archives/PersonArchivesDTO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/data/archives/PersonArchivesDTO.java @@ -1,5 +1,6 @@ package com.zcloud.edu.dto.data.archives; +import com.zcloud.edu.dto.clientobject.study.StudentExamRecordCO; import com.zcloud.edu.dto.clientobject.study.StudentSignCO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -80,6 +81,9 @@ public class PersonArchivesDTO { //学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过 @ApiModelProperty(value = "学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过") private Integer state; + //学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过 + @ApiModelProperty(value = "学员状态翻译") + private String stateName; //班级名称 @@ -109,6 +113,9 @@ public class PersonArchivesDTO { //机构ID @ApiModelProperty(value = "机构ID") private Long corpinfoId; + + //机构名称 + private String corpName; //状态:1-未申请 2-待开班 3- 培训中 4-培训结束 @ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ") private Integer classState; @@ -140,4 +147,9 @@ public class PersonArchivesDTO { private String examSignFaceUrl; @ApiModelProperty(value = "签字列表") private List signList; + @ApiModelProperty(value = "考试记录") + private StudentExamRecordCO studentExamRecord; + + @ApiModelProperty(value = "档案pdf文件id") + private Long archivesPdfFileId; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/training/TrainingApplyUserPhonePageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/training/TrainingApplyUserPhonePageQry.java new file mode 100644 index 0000000..26ddbc3 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/training/TrainingApplyUserPhonePageQry.java @@ -0,0 +1,33 @@ +package com.zcloud.edu.dto.training; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** +* web-client +* @Author makejava +* @Date 2026-01-12 15:36:36 +*/ +@Data +public class TrainingApplyUserPhonePageQry extends PageQuery { + +/** +* 查询条件操作前缀,支持以下几种数据库查询操作: +* - `like`: 模糊匹配查询,对应SQL的LIKE操作符 +* - `eq`: 等值查询,对应SQL的=操作符 +* - `gt`: 大于比较查询 +* - `lt`: 小于比较查询 +* - `ge`: 大于等于比较查询 +* - `le`: 小于等于比较查询 +* - `ne`: 不等比较查询,对应SQL的!=操作符 +*/ + + @ApiModelProperty(value = "所属相关方(uuid)", name = "eqCorpinfoId", required = false) + private String eqCorpinfoId; + + @ApiModelProperty(value = "手机号" , name = "eqPhone", required = false) + private String eqPhone; +} + diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesPdfFileE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesPdfFileE.java index 8ad860c..cdc7642 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesPdfFileE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesPdfFileE.java @@ -1,7 +1,9 @@ package com.zcloud.edu.domain.model.archives; import com.jjb.saas.framework.domain.model.BaseE; +import com.zcloud.gbscommon.utils.Tools; import lombok.Data; +import org.springframework.util.ObjectUtils; import java.time.LocalDateTime; @@ -57,5 +59,21 @@ public class ArchivesPdfFileE extends BaseE { private Long createId; //修改人id private Long updateId; + + public void init(String tableName, String tableId, Integer type){ + this.setArchivesPdfFileId(Tools.get32UUID()); + this.setTableName(tableName); + this.setTableId(tableId); + this.setType(type); + this.setStatus(0); + } + public void initEdit(Long id, String filePath, Integer status, String errormsg){ + this.setId(id); + this.setFilePath(filePath); + this.setStatus(status); + if(!ObjectUtils.isEmpty(errormsg)){ + this.setErrormsg(errormsg.length() > 3000 ? errormsg.substring(0, 3000) : errormsg); + } + } } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/PersonArchivesE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/PersonArchivesE.java index 4d85c18..c343ba1 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/PersonArchivesE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/PersonArchivesE.java @@ -116,6 +116,9 @@ public class PersonArchivesE extends BaseE { //机构ID @ApiModelProperty(value = "机构ID") private Long corpinfoId; + + //机构名称 + private String corpName; //状态:1-未申请 2-待开班 3- 培训中 4-培训结束 @ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ") private Integer classState; @@ -144,6 +147,9 @@ public class PersonArchivesE extends BaseE { @ApiModelProperty(value = "考试签到人脸图片路径") private String examSignFaceUrl; + @ApiModelProperty(value = "学员状态翻译") + private String stateName; + public void init(StudentE studentE, ClassE classE, List classCurList) { BeanUtils.copyProperties(studentE, this); setStuId(studentE.getId()); @@ -230,4 +236,62 @@ public class PersonArchivesE extends BaseE { } } + public void initDownload(StudentE studentE, + ClassE classE, + List classCurList, + List chapterEList, + List studentSignEList){ + BeanUtils.copyProperties(studentE, this); + setStuId(studentE.getId()); + if (!ObjectUtils.isEmpty(studentE.getState())){ + setStateName(studentE.getState() == 1 ? "已完成" : "未完成"); + } + if (classE != null){ + setClassName(classE.getName()); + setStartTime(classE.getStartTime()); + setEndTime(classE.getEndTime()); + setTeacherId(classE.getTeacherId()); + setTeacherName(classE.getTeacherName()); + setTrainType(classE.getTrainType()); + setTrainTypeName(classE.getTrainTypeName()); + setTrainingLocation(classE.getTrainingLocation()); + setCorpinfoId(classE.getCorpinfoId()); + setClassState(classE.getState()); + setValidStartTime(classE.getValidStartTime()); + setValidEndTime(classE.getValidEndTime()); + setExamination(classE.getExamination()); + setNumberofexams(classE.getNumberofexams()); + setCorpName(classE.getCorpName()); + setTrainDurationTime(DateUtil.getMinuteSub(classE.getStartTime(), classE.getEndTime())); + } + + if (classCurList != null && classCurList.size() > 0){ + String trainSubject = classCurList.stream().map(ClassCurriculumE::getCurriculumName).collect(Collectors.joining(",")); + setTrainSubject(trainSubject); + BigDecimal videoTotalTime = classCurList.stream() + .map(ClassCurriculumE::getVideoTotalTime) // 假设getBigDecimalField是获取BigDecimal字段的方法 + .filter(bigDecimal -> bigDecimal != null) // 过滤null值,防止空指针异常 + .reduce(BigDecimal.ZERO, BigDecimal::add); + setVideoTotalTime(videoTotalTime); + } + if (chapterEList != null && chapterEList.size() > 0){ + setVideoCount(chapterEList.size()); + } + + if (studentSignEList != null && studentSignEList.size() > 0){ + for (StudentSignE studentSignE : studentSignEList){ + if(studentSignE.getType() == 1 + && !ObjectUtils.isEmpty(studentSignE.getFaceUrl()) + && ObjectUtils.isEmpty(this.getSignFaceUrl()) ){ + this.setSignFaceUrl(studentSignE.getFaceUrl()); + } + if(studentSignE.getType() == 2 + && !ObjectUtils.isEmpty(studentSignE.getFaceUrl()) + && ObjectUtils.isEmpty(this.getExamSignFaceUrl()) ){ + this.setExamSignFaceUrl(studentSignE.getFaceUrl()); + } + } + } + } + } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentSignE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentSignE.java index 3b4a334..fe86539 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentSignE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentSignE.java @@ -71,8 +71,13 @@ public class StudentSignE extends BaseE { private Long createId; //修改人id private Long updateId; - private String prefixUrl = "https://jpfz.qhdsafety.com/gbsFileTest/"; - + private static String prefixUrl; +// = "https://jpfz.qhdsafety.com/gbsFileTest/"; +// public static Integer corePoolSize; + @Value("${file.url}") + public void setPrefixUrl(String prefixUrlProperties) { + prefixUrl = prefixUrlProperties; + } @DubboReference private ZcloudImgFilesFacade zcloudImgFilesFacade; diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/TrainingApplyUserDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/TrainingApplyUserDO.java index 413e024..8557927 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/TrainingApplyUserDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/TrainingApplyUserDO.java @@ -7,6 +7,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import java.time.LocalDateTime; + /** * web-infrastructure * @Author makejava @@ -42,6 +44,43 @@ public class TrainingApplyUserDO extends BaseDO { @TableField(exist = false) private String userName; + //申请企业id + @ApiModelProperty(value = "申请企业id") + @TableField(exist = false) + private Long applyCorpinfoId; + //申请企业名称 + @ApiModelProperty(value = "申请企业名称") + @TableField(exist = false) + private String applyCorpinfoName; + //更新时间 + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + //审批企业id + @ApiModelProperty(value = "审批企业id") + @TableField(exist = false) + private Long approvalCorpinfoId; + //审批部门id + @ApiModelProperty(value = "审批部门id") + @TableField(exist = false) + private Long approvalDepartmentId; + //审批用户id + @ApiModelProperty(value = "审批用户id") + @TableField(exist = false) + private Long approvalUserId; + + //审批企业id + @ApiModelProperty(value = "审批企业名称") + @TableField(exist = false) + private String approvalCorpinfoName; + //审批部门id + @ApiModelProperty(value = "审批部门名称") + @TableField(exist = false) + private String approvalDepartmentName; + //审批用户id + @ApiModelProperty(value = "审批用户名称") + @TableField(exist = false) + private String approvalUserName; + public TrainingApplyUserDO(String trainingApplyUserId) { this.trainingApplyUserId = trainingApplyUserId; } 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 eddd9df..a1683fb 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 @@ -36,6 +36,7 @@ public class StudentDO extends BaseDO { private String classId; //班级id(雪花) @ApiModelProperty(value = "班级id(雪花)") + @TableField(exist = false) private String clzId; //学员姓名 @ApiModelProperty(value = "学员姓名") diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TrainingApplyUserMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TrainingApplyUserMapper.java index c65e498..cd54eb7 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TrainingApplyUserMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/TrainingApplyUserMapper.java @@ -1,5 +1,7 @@ package com.zcloud.edu.persistence.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zcloud.edu.persistence.dataobject.TrainingApplyRecordDO; import com.zcloud.edu.persistence.dataobject.TrainingApplyUserDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -21,6 +23,8 @@ public interface TrainingApplyUserMapper extends BaseMapper */ List selectByRecordId(@Param("trainingApplyRecordId") String trainingApplyRecordId); + IPage listPageByPhone(IPage page, @Param("params") Map params); + /** * 根据手机号集合查询用户信息 */ diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyUserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyUserRepositoryImpl.java index 01d1645..5270558 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyUserRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyUserRepositoryImpl.java @@ -1,21 +1,19 @@ package com.zcloud.edu.persistence.repository.impl; -import com.jjb.saas.framework.auth.model.SSOUser; +import com.alibaba.cola.dto.PageResponse; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.auth.utils.AuthContext; import com.jjb.saas.framework.repository.common.PageHelper; +import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.zcloud.edu.persistence.dataobject.TrainingApplyUserDO; import com.zcloud.edu.persistence.mapper.TrainingApplyUserMapper; import com.zcloud.edu.persistence.repository.training.TrainingApplyUserRepository; -import com.alibaba.cola.dto.PageResponse; import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.Query; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -39,6 +37,13 @@ public class TrainingApplyUserRepositoryImpl extends BaseRepositoryImpl listPageByPhone(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = trainingApplyUserMapper.listPageByPhone(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + @Override public List getByRecordId(String trainingApplyRecordId) { return trainingApplyUserMapper.selectByRecordId(trainingApplyRecordId); diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/training/TrainingApplyUserRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/training/TrainingApplyUserRepository.java index 9f207e1..852402d 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/training/TrainingApplyUserRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/training/TrainingApplyUserRepository.java @@ -1,5 +1,6 @@ package com.zcloud.edu.persistence.repository.training; +import com.zcloud.edu.persistence.dataobject.TrainingApplyRecordDO; import com.zcloud.edu.persistence.dataobject.TrainingApplyUserDO; import com.alibaba.cola.dto.PageResponse; import com.jjb.saas.framework.repository.repo.BaseRepository; @@ -16,6 +17,8 @@ public interface TrainingApplyUserRepository extends BaseRepository listPage(Map params); + PageResponse listPageByPhone(Map params); + /** * 根据申请记录ID查询申请人员(含姓名、身份证等) */ diff --git a/web-infrastructure/src/main/resources/mapper/TrainingApplyUserMapper.xml b/web-infrastructure/src/main/resources/mapper/TrainingApplyUserMapper.xml index 49f04cb..a683eef 100644 --- a/web-infrastructure/src/main/resources/mapper/TrainingApplyUserMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/TrainingApplyUserMapper.xml @@ -48,7 +48,28 @@ - +