소스 검색

fix:考务数据导入,考务数据中的考生若没有学生信息则新增一份基础学生信息

caozixuan 3 년 전
부모
커밋
f9c8eca71b

+ 32 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -3,7 +3,6 @@ package com.qmth.distributed.print.business.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.Update;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -21,11 +20,9 @@ import com.qmth.distributed.print.business.mapper.ExamDetailMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
+import com.qmth.teachcloud.common.bean.params.BasicStudentParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.BasicAttachment;
-import com.qmth.teachcloud.common.entity.BasicCampus;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.MqTagEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
@@ -76,6 +73,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     private ExamPrintPlanService examPrintPlanService;
     @Resource
     private BasicAttachmentService basicAttachmentService;
+    @Resource
+    private BasicStudentService basicStudentService;
 
     @Resource
     TBTaskService tbTaskService;
@@ -576,6 +575,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Override
     public void disposeExamStudentByExaminationExcel(List<ExaminationImportDto> dataList, Long userId, SysUser sysUser) {
         List<ExamStudent> examStudentList = new ArrayList<>();
+        List<BasicStudentParams> basicStudentParamsList = new ArrayList<>();
         for (ExaminationImportDto examinationImportDto : dataList) {
             Long schoolId = examinationImportDto.getSchoolId();
             Long printPlanId = examinationImportDto.getPrintPlanId();
@@ -590,6 +590,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             String studentCode = examinationImportDto.getStudentCode();
             String ticketNumber = examinationImportDto.getTicketNumber();
             String siteNumber = examinationImportDto.getSiteNumber();
+            String campusName = examinationImportDto.getCampusName();
 
             List<FieldsDto> fieldsDtoList = examinationImportDto.getSecondaryFieldList();
             List<ExtendFieldsDto> extendFieldsDtoList = this.getExtendFieldsByFields(fieldsDtoList);
@@ -626,17 +627,40 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             examStudent.setCreateId(userId);
             examStudent.setUpdateId(userId);
             examStudentList.add(examStudent);
+
+
+            BasicStudentParams basicStudentParams = new BasicStudentParams();
+            BasicStudent tmp = basicStudentService.getOne(new QueryWrapper<BasicStudent>().lambda()
+                    .eq(BasicStudent::getSchoolId, sysUser.getSchoolId())
+                    .eq(BasicStudent::getEnable, true)
+                    .eq(BasicStudent::getStudentCode, studentCode));
+            if (Objects.nonNull(tmp)) {
+                basicStudentParams.setId(tmp.getId());
+            }
+            basicStudentParams.setStudentCode(studentCode);
+            basicStudentParams.setStudentName(studentName);
+            basicStudentParams.setCampusId(basicCampusService.getOne(new QueryWrapper<BasicCampus>()
+                    .lambda()
+                    .eq(BasicCampus::getSchoolId,schoolId)
+                    .eq(BasicCampus::getCampusName,campusName))
+                    .getId());
+            basicStudentParams.setCollegeId(tmp.getBelongOrgId());
+            basicStudentParams.setMajorId(tmp.getMajorId());
+            basicStudentParams.setClazzId(tmp.getClazzId());
+            basicStudentParams.setPhoneNumber(tmp.getPhoneNumber());
+            basicStudentParamsList.add(basicStudentParams);
         }
         examStudentService.saveBatch(examStudentList);
+        // 更新基础学生表数据
+        basicStudentService.saveOrUpdateBasicStudentBatch(basicStudentParamsList,sysUser);
     }
 
     @Override
     public List<ExamDetail> listByPrintPlanIdAndCourseCodeAndPaperNumber(Long schoolId, Long printPlanId, String courseCode, String paperNumber) {
         List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByPrintPlanIdAndCourseCodeAndPaperNumber(schoolId, printPlanId, courseCode, paperNumber);
         if (examDetailCourses != null && examDetailCourses.size() > 0) {
-            Set<Long> examDetailIds = examDetailCourses.stream().map(m -> m.getExamDetailId()).collect(Collectors.toSet());
-            List<ExamDetail> examDetails = this.listByIds(examDetailIds);
-            return examDetails;
+            Set<Long> examDetailIds = examDetailCourses.stream().map(ExamDetailCourse::getExamDetailId).collect(Collectors.toSet());
+            return this.listByIds(examDetailIds);
         }
         return null;
     }

+ 10 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicStudentService.java

@@ -41,9 +41,17 @@ public interface BasicStudentService extends IService<BasicStudent> {
     /**
      * 新增/编辑 学生基础信息
      * @param basicStudentParams 基础学生信息参数
-     * @return 新增或编辑的校区id
+     * @param requestUser 新增或编辑的校区id
+     * @return
      */
-    Long saveBasicStudent(BasicStudentParams basicStudentParams, SysUser sysUser);
+    Long saveBasicStudent(BasicStudentParams basicStudentParams, SysUser requestUser);
+
+    /**
+     * 批量新增或更新基础学生信息
+     * @param basicStudentParamsList 学生参数集合
+     * @param requestUser 请求人
+     */
+    void saveOrUpdateBasicStudentBatch(List<BasicStudentParams> basicStudentParamsList,SysUser requestUser);
 
     /**
      * 批量删除学生基本信息(逻辑)

+ 8 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicStudentServiceImpl.java

@@ -71,14 +71,20 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public Long saveBasicStudent(BasicStudentParams basicStudentParams, SysUser sysUser) {
+    public Long saveBasicStudent(BasicStudentParams basicStudentParams, SysUser requestUser) {
         List<BasicStudentParams> basicStudentParamsList = new ArrayList<>();
         basicStudentParamsList.add(basicStudentParams);
-        BasicStudent basicStudent = this.editEntityHelp(basicStudentParamsList, sysUser).get(0);
+        BasicStudent basicStudent = this.editEntityHelp(basicStudentParamsList, requestUser).get(0);
         this.saveOrUpdate(basicStudent);
         return basicStudent.getId();
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void saveOrUpdateBasicStudentBatch(List<BasicStudentParams> basicStudentParamsList,SysUser requestUser) {
+        this.saveOrUpdateBatch(this.editEntityHelp(basicStudentParamsList,requestUser));
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean removeBasicStudentBatch(List<Long> idList) {