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