From 70dcf4e610a0ec5fd6ca2c3daf9edf4957b30529 Mon Sep 17 00:00:00 2001 From: “djh” <“3298565835@qq.com”> Date: 星期二, 25 二月 2025 16:34:46 +0800 Subject: [PATCH] 考试制证修改 --- exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java | 165 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 90 insertions(+), 75 deletions(-) diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java index 55b849e..2a3bfcf 100644 --- a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java +++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/TripartiteInterfaceServiceImpl.java @@ -69,36 +69,48 @@ private ThCertService certService; @Override - public boolean receiveQuestionBank(JSONObject jsonObject) throws Exception { + public AjaxResult receiveQuestionBank(JSONObject jsonObject) throws Exception { InstitutionUser institutionUser = ThreeInContextHolder.getContext(); - ThQuestionBankReqDTO questionBankReqDTO = decryptData(jsonObject, new TypeReference<ThQuestionBankReqDTO>() {},"题库数据"); - if(questionBankReqDTO==null){ + List<ThQuestionBankReqDTO> questionBankReqDTO = decryptData(jsonObject, new TypeReference<List<ThQuestionBankReqDTO>>() {},"题库数据"); + if(CollectionUtils.isEmpty(questionBankReqDTO)){ throw new BusinessException(this.getClass(),ResultConstants.THREE_INSTITUTION_PARAMM_NULL,"题库数据不可为空"); } - String valdateMessage=ValidatorUtils.validateFast(questionBankReqDTO); - if(!StringUtils.isEmpty(valdateMessage)){ - throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,valdateMessage); + List<ThErrorDataRespDTO> errorDataRespDTOS = new ArrayList<>(); + List<ThQuestionBankReqDTO> thQuestionBankReqDTOS = new ArrayList<>(); + for (ThQuestionBankReqDTO thQuestionBankReqDTO : questionBankReqDTO) { + String valdateMessage=ValidatorUtils.validateFast(thQuestionBankReqDTO); + if(!StringUtils.isEmpty(valdateMessage)){ +// throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL,valdateMessage); + errorDataRespDTOS.add(new ThErrorDataRespDTO(thQuestionBankReqDTO.getUuid(),valdateMessage)); + continue; + } + thQuestionBankReqDTOS.add(thQuestionBankReqDTO); } - //根据uuid查询数据 - ThQuestionBank qb = questionBankService.getQuestionInfoByUuid(questionBankReqDTO.getUuid()); - boolean i = true; - if(qb == null){ - //新增 - qb = new ThQuestionBank(); - BeanUtils.copyProperties(questionBankReqDTO, qb); - qb.setUuid(questionBankReqDTO.getUuid()); - qb.setInstitutionId(institutionUser.getId()); - qb.setInstitutionName(institutionUser.getInstitutionalName()); - qb.setCreateBy(institutionUser.getInstitutionalName()); - qb.setUpdateBy(institutionUser.getInstitutionalName()); - i = questionBankService.save(qb); - }else { - //修改 - BeanUtils.copyProperties(questionBankReqDTO, qb); - qb.setUpdateBy(institutionUser.getInstitutionalName()); - i = questionBankService.updateById(qb); + List<ThQuestionBank> savethQuestionBanks = new ArrayList<>(); + List<ThQuestionBank> updatethQuestionBanks = new ArrayList<>(); + for (ThQuestionBankReqDTO thQuestionBankReqDTO : thQuestionBankReqDTOS) { + //根据uuid查询数据 + ThQuestionBank qb = questionBankService.getQuestionInfoByUuid(thQuestionBankReqDTO.getUuid()); + if(qb == null){ + //新增 + qb = new ThQuestionBank(); + BeanUtils.copyProperties(thQuestionBankReqDTO, qb); + qb.setUuid(thQuestionBankReqDTO.getUuid()); + qb.setInstitutionId(institutionUser.getId()); + qb.setInstitutionName(institutionUser.getInstitutionalName()); + qb.setCreateBy(institutionUser.getInstitutionalName()); + qb.setUpdateBy(institutionUser.getInstitutionalName()); + savethQuestionBanks.add(qb); + }else { + //修改 + BeanUtils.copyProperties(thQuestionBankReqDTO, qb); + qb.setUpdateBy(institutionUser.getInstitutionalName()); + updatethQuestionBanks.add(qb); + } } - return i; + questionBankService.saveBatch(savethQuestionBanks); + questionBankService.updateBatchById(updatethQuestionBanks); + return AjaxResult.success(errorDataRespDTOS); } @Transactional @@ -425,22 +437,22 @@ } //数据插入 //课程插入 - List<List<ThCourse>> splitSaveCourseList = ListUtil.split(saveCourseList, 500); + List<List<ThCourse>> splitSaveCourseList = ListUtil.split(saveCourseList, 200); for(List<ThCourse> courseList : splitSaveCourseList){ courseService.insertBatch(courseList); } //修改课程 - List<List<ThCourse>> splitUpdateCourseList = ListUtil.split(updateCourseList, 500); + List<List<ThCourse>> splitUpdateCourseList = ListUtil.split(updateCourseList, 200); for(List<ThCourse> courseList : splitUpdateCourseList){ courseService.updateBatch(courseList); } //插入章节 - List<List<ThCourseChapter>> splitSaveChapterList = ListUtil.split(saveCourseChapterList, 500); + List<List<ThCourseChapter>> splitSaveChapterList = ListUtil.split(saveCourseChapterList, 200); for(List<ThCourseChapter> chapterList : splitSaveChapterList){ courseChapterService.insertBatch(chapterList); } //修改章节 - List<List<ThCourseChapter>> splitUpdateChapterList = ListUtil.split(updateCourseChapterList, 500); + List<List<ThCourseChapter>> splitUpdateChapterList = ListUtil.split(updateCourseChapterList, 200); for(List<ThCourseChapter> chapterList : splitUpdateChapterList){ courseChapterService.updateBatch(chapterList); } @@ -544,7 +556,7 @@ List<ThStudentBatch> updateThStudentBatchList = new ArrayList<>(); for (ThStudentReqDTO studentReqDTO : saveStudentReqDTOList) { //学生表中过滤 - List<ThStudent> collect = students.stream().filter(s -> s.getIdcard().equals(studentReqDTO.getIdcard())).collect(Collectors.toList()); + List<ThStudent> collect = students.stream().filter(s -> s.getIdcard().equals(studentReqDTO.getIdcard()) && s.getInstitutionId().equals(institutionUser.getId()) ).collect(Collectors.toList()); if(collect.size() > 0){ ThStudent student = collect.get(0); //修改 @@ -606,23 +618,23 @@ } } //学生表新增 - List<List<ThStudent>> splitSaveStudentList = ListUtil.split(saveSudentList, 500); + List<List<ThStudent>> splitSaveStudentList = ListUtil.split(saveSudentList, 200); for (List<ThStudent> studentList : splitSaveStudentList) { studentService.insertBatch(studentList); } //学生表更新 - List<List<ThStudent>> splitUpdateStudentList = ListUtil.split(updateStudentList, 500); + List<List<ThStudent>> splitUpdateStudentList = ListUtil.split(updateStudentList, 200); for (List<ThStudent> studentList : splitUpdateStudentList) { studentService.updateBatch(studentList); } //学生关联班级表 - List<List<ThStudentBatch>> splitSaveThStudentBatchList = ListUtil.split(saveThStudentBatchList, 500); + List<List<ThStudentBatch>> splitSaveThStudentBatchList = ListUtil.split(saveThStudentBatchList, 200); for (List<ThStudentBatch> studentBatcheList : splitSaveThStudentBatchList) { studentBatchService.insertBatch(studentBatcheList); } //学生关联班级表修改 - List<List<ThStudentBatch>> splitUpdateThStudentBatchList = ListUtil.split(updateThStudentBatchList, 500); + List<List<ThStudentBatch>> splitUpdateThStudentBatchList = ListUtil.split(updateThStudentBatchList, 200); for (List<ThStudentBatch> studentBatcheList : splitUpdateThStudentBatchList) { studentBatchService.updateBatch(studentBatcheList); } @@ -1229,12 +1241,12 @@ } //插入章节 - List<List<ThBatchCourseChapter>> splitSaveBatchCourseChapterList = ListUtil.split(saveBatchCourseChapterList, 500); + List<List<ThBatchCourseChapter>> splitSaveBatchCourseChapterList = ListUtil.split(saveBatchCourseChapterList, 200); for (List<ThBatchCourseChapter> chapterList : splitSaveBatchCourseChapterList) { batchCourseChapterService.insertBatch(chapterList); } //修改章节 - List<List<ThBatchCourseChapter>> splitUpdateBatchCourseChapterList = ListUtil.split(updateBatchCourseChapterList, 500); + List<List<ThBatchCourseChapter>> splitUpdateBatchCourseChapterList = ListUtil.split(updateBatchCourseChapterList, 200); for (List<ThBatchCourseChapter> chapterList : splitUpdateBatchCourseChapterList) { batchCourseChapterService.updateBatch(chapterList); } @@ -1351,20 +1363,20 @@ errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"结束位置不可为空")); continue; } - if(StringUtils.isEmpty(studentDetailReqDTO.getLessonReportUrl())){ - errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学时报告不可为空")); - continue; - } +// if(StringUtils.isEmpty(studentDetailReqDTO.getLessonReportUrl())){ +// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学时报告不可为空")); +// continue; +// } //认证记录集合 // if(CollectionUtils.isEmpty(studentDetailReqDTO.getAuthList())){ // errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"认证记录集合不可为空")); // continue; // } //学习轨迹集合 - if(CollectionUtils.isEmpty(studentDetailReqDTO.getTrackList())){ - errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹集合不可为空")); - continue; - } +// if(CollectionUtils.isEmpty(studentDetailReqDTO.getTrackList())){ +// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹集合不可为空")); +// continue; +// } /*boolean authFlag = false; for(ThStudytAuthReqDTO item : studentDetailReqDTO.getAuthList()){ @@ -1397,32 +1409,32 @@ if(authFlag){ continue; }*/ - boolean trackFlag = false; - for(ThStudyTrackReqDTO item : studentDetailReqDTO.getTrackList()){ - if(StringUtils.isEmpty(item.getUuid()) || !UUID.checkIsUuid(item.getUuid())){ - trackFlag = true; - errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+")不符合规范")); - break; - } - if(item.getStartTime() == null){ - trackFlag = true; - errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹开始时间不可为空")); - break; - } - if(item.getEndTime() == null){ - trackFlag = true; - errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹结束时间不可为空")); - break; - } - if(item.getTimeInterval() == null) { - trackFlag = true; - errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),时间间隔(秒)不可为空")); - break; - } - } - if(trackFlag){ - continue; - } +// boolean trackFlag = false; +// for(ThStudyTrackReqDTO item : studentDetailReqDTO.getTrackList()){ +// if(StringUtils.isEmpty(item.getUuid()) || !UUID.checkIsUuid(item.getUuid())){ +// trackFlag = true; +// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+")不符合规范")); +// break; +// } +// if(item.getStartTime() == null){ +// trackFlag = true; +// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹开始时间不可为空")); +// break; +// } +// if(item.getEndTime() == null){ +// trackFlag = true; +// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),轨迹结束时间不可为空")); +// break; +// } +// if(item.getTimeInterval() == null) { +// trackFlag = true; +// errorDataRespDTOS.add(new ThErrorDataRespDTO(studentDetailReqDTO.getUuid(),"学习轨迹uuid("+item.getUuid()+"),时间间隔(秒)不可为空")); +// break; +// } +// } +// if(trackFlag){ +// continue; +// } saveStudyDetailReqDTOS.add(studentDetailReqDTO); //判断需要修改的批次学生 @@ -1519,27 +1531,27 @@ } } //插入学习记录 - List<List<ThStudyDetail>> splitSaveDetailList = ListUtil.split(saveStudyDetailList, 500); + List<List<ThStudyDetail>> splitSaveDetailList = ListUtil.split(saveStudyDetailList, 200); for (List<ThStudyDetail> thStudyDetails : splitSaveDetailList) { studyDetailService.insertBatch(thStudyDetails); } //修改学习记录 - List<List<ThStudyDetail>> splitUpdateDetailList = ListUtil.split(updateStudyDetailList, 500); + List<List<ThStudyDetail>> splitUpdateDetailList = ListUtil.split(updateStudyDetailList, 200); for (List<ThStudyDetail> thStudyDetails : splitUpdateDetailList) { studyDetailService.updateBatch(thStudyDetails); } //插入认证记录 - List<List<ThStudyAuth>> splitSaveAuthList = ListUtil.split(saveStudyAuthList, 500); + List<List<ThStudyAuth>> splitSaveAuthList = ListUtil.split(saveStudyAuthList, 200); for (List<ThStudyAuth> thStudyAuths : splitSaveAuthList) { studyAuthService.insetBatch(thStudyAuths); } //插入学习轨迹 - List<List<ThStudyTrack>> splitSaveTrackList = ListUtil.split(saveStudyTrackList, 500); + List<List<ThStudyTrack>> splitSaveTrackList = ListUtil.split(saveStudyTrackList, 200); for (List<ThStudyTrack> thStudyTracks : splitSaveTrackList) { studyTrackService.insertBatch(thStudyTracks); } //修改学生完成状态 - List<List<ThStudentBatch>> splitUpdateThStudentBatchList = ListUtil.split(updateStudentBatchList, 500); + List<List<ThStudentBatch>> splitUpdateThStudentBatchList = ListUtil.split(updateStudentBatchList, 200); for (List<ThStudentBatch> studentBatcheList : splitUpdateThStudentBatchList) { studentBatchService.updateBatch(studentBatcheList); } @@ -1809,6 +1821,9 @@ cert.setUpdateTime(LocalDateTime.now()); cert.setInstitutionId(institutionUser.getId()); cert.setInstitutionName(institutionUser.getInstitutionalName()); + if (cert.getDelFlag()==null) { + cert.setDelFlag(DeleteStatusEnum.NO.getStatus()); + } updateCertList.add(cert); } else { //新增 -- Gitblit v1.9.2