wangliang vor 3 Jahren
Ursprung
Commit
d2cab1b32f

+ 18 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TSyncExamStudentScoreMapper.java

@@ -56,4 +56,22 @@ public interface TSyncExamStudentScoreMapper extends BaseMapper<TSyncExamStudent
                                                     @Param("majorId") Long majorId,
                                                     @Param("clazzId") Long clazzId,
                                                     @Param("courseCode") String courseCode);
+
+    /**
+     * 成绩导出计数
+     *
+     * @param schoolId
+     * @param semesterId
+     * @param orgId
+     * @param majorId
+     * @param clazzId
+     * @param courseCode
+     * @return
+     */
+    public int exportCount(@Param("schoolId") Long schoolId,
+                           @Param("semesterId") Long semesterId,
+                           @Param("orgId") Long orgId,
+                           @Param("majorId") Long majorId,
+                           @Param("clazzId") Long clazzId,
+                           @Param("courseCode") String courseCode);
 }

+ 18 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TSyncExamStudentScoreService.java

@@ -56,6 +56,24 @@ public interface TSyncExamStudentScoreService extends IService<TSyncExamStudentS
                                                     Long clazzId,
                                                     String courseCode);
 
+    /**
+     * 成绩导出计数
+     *
+     * @param schoolId
+     * @param semesterId
+     * @param orgId
+     * @param majorId
+     * @param clazzId
+     * @param courseCode
+     * @return
+     */
+    public int exportCount(Long schoolId,
+                           Long semesterId,
+                           Long orgId,
+                           Long majorId,
+                           Long clazzId,
+                           String courseCode);
+
     /**
      * 创建动态轨迹图
      *

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBSyncTaskServiceImpl.java

@@ -32,6 +32,7 @@ import java.util.Set;
 public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncTask> implements TBSyncTaskService {
     @Resource
     TBSyncTaskMapper tbSyncTaskMapper;
+
     @Override
     public TBSyncTask saveTask(ExamPrintPlan examPrintPlan) {
         QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
@@ -75,12 +76,12 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
     public IPage<SyncListResult> query(Long schoolId, TaskStatusEnum status, PushTypeEnum type, TaskResultEnum result, int pageNumber, int pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Set<Long> orgIds = null;
-        IPage<SyncListResult> page = tbSyncTaskMapper.query(new Page<>(pageNumber,pageSize),schoolId,status,type,result,sysUser.getId(),orgIds);
+        IPage<SyncListResult> page = tbSyncTaskMapper.query(new Page<>(pageNumber, pageSize), schoolId, status, type, result, sysUser.getId(), orgIds);
         List<SyncListResult> list = page.getRecords();
         for (SyncListResult syncListResult : list) {
-            syncListResult.setStatus(TaskStatusEnum.valueOf(syncListResult.getStatus()).getTitle());
-            syncListResult.setType(PushTypeEnum.valueOf(syncListResult.getType()).getTitle());
-            syncListResult.setResult(TaskResultEnum.valueOf(syncListResult.getResult()).getTitle());
+            syncListResult.setStatus(Objects.nonNull(syncListResult.getStatus()) ? TaskStatusEnum.valueOf(syncListResult.getStatus()).getTitle() : null);
+            syncListResult.setType(Objects.nonNull(syncListResult.getType()) ? PushTypeEnum.valueOf(syncListResult.getType()).getTitle() : null);
+            syncListResult.setResult(Objects.nonNull(syncListResult.getResult()) ? TaskResultEnum.valueOf(syncListResult.getResult()).getTitle() : null);
         }
         return page;
     }

+ 16 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSyncExamStudentScoreServiceImpl.java

@@ -78,6 +78,22 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
         return tSyncExamStudentScoreMapper.export(schoolId, semesterId, orgId, majorId, clazzId, courseCode);
     }
 
+    /**
+     * 成绩导出计数
+     *
+     * @param schoolId
+     * @param semesterId
+     * @param orgId
+     * @param majorId
+     * @param clazzId
+     * @param courseCode
+     * @return
+     */
+    @Override
+    public int exportCount(Long schoolId, Long semesterId, Long orgId, Long majorId, Long clazzId, String courseCode) {
+        return tSyncExamStudentScoreMapper.exportCount(schoolId, semesterId, orgId, majorId, clazzId, courseCode);
+    }
+
     /**
      * 创建动态轨迹图
      *

+ 24 - 21
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/PushLogicServiceImpl.java

@@ -93,37 +93,40 @@ public class PushLogicServiceImpl implements PushLogicService {
                 int pageNos = mod == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
                 Map<String, SysOrg> orgMap = new HashMap<>();
                 Map<String, BasicClazz> clazzMap = new HashMap<>();
-                Long semesterId = examPrintPlanService.getOne(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getThirdRelateId, examIdLong)).getId();
+                Long semesterId = examPrintPlanService.getOne(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getThirdRelateId, examIdLong)).getSemesterId();
                 tSyncExamStudentScoreList = new ArrayList<>();
                 errorTSyncExamStudentScoreList = new ArrayList<>();
                 for (int i = 1; i <= pageNos; i++) {
                     List<Map> students = stmmsUtils.getStudentScore(schoolId, examId, null, null, null, subjectCode, college, className, null, true, i, pageSize);
                     for (Map student : students) {
                         try {
-                            //查学院id
-                            Long orgId = null;
-                            if (!orgMap.containsKey(student.get("college"))) {
-                                SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getName, student.get("college")));
-                                if (Objects.nonNull(sysOrg)) {
-                                    orgId = sysOrg.getId();
-                                    orgMap.put(sysOrg.getName(), sysOrg);
+                            Long orgId = null, clazzId = null, majorId = null;
+                            if (Objects.nonNull(student.get("college")) && Objects.equals("无", student.get("college"))) {
+                                //查学院id
+                                if (!orgMap.containsKey(student.get("college"))) {
+                                    SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getName, student.get("college")));
+                                    if (Objects.nonNull(sysOrg)) {
+                                        orgId = sysOrg.getId();
+                                        orgMap.put(sysOrg.getName(), sysOrg);
+                                    }
+                                } else {
+                                    orgId = orgMap.get(student.get("college")).getId();
                                 }
-                            } else {
-                                orgId = orgMap.get(student.get("college")).getId();
                             }
 
-                            //查班级和专业id
-                            Long clazzId = null, majorId = null;
-                            if (!clazzMap.containsKey(student.get("className"))) {
-                                BasicClazz basicClazz = basicClazzService.getOne(new QueryWrapper<BasicClazz>().lambda().eq(BasicClazz::getSchoolId, schoolId).eq(BasicClazz::getClazzName, student.get("className")));
-                                if (Objects.nonNull(basicClazz)) {
-                                    clazzId = basicClazz.getId();
-                                    majorId = basicClazz.getMajorId();
-                                    clazzMap.put(basicClazz.getClazzName(), basicClazz);
+                            if (Objects.nonNull(student.get("className")) && Objects.equals("无", student.get("className"))) {
+                                //查班级和专业id
+                                if (!clazzMap.containsKey(student.get("className"))) {
+                                    BasicClazz basicClazz = basicClazzService.getOne(new QueryWrapper<BasicClazz>().lambda().eq(BasicClazz::getSchoolId, schoolId).eq(BasicClazz::getClazzName, student.get("className")));
+                                    if (Objects.nonNull(basicClazz)) {
+                                        clazzId = basicClazz.getId();
+                                        majorId = basicClazz.getMajorId();
+                                        clazzMap.put(basicClazz.getClazzName(), basicClazz);
+                                    }
+                                } else {
+                                    clazzId = clazzMap.get(student.get("className")).getId();
+                                    majorId = clazzMap.get(student.get("className")).getMajorId();
                                 }
-                            } else {
-                                clazzId = clazzMap.get(student.get("className")).getId();
-                                majorId = clazzMap.get(student.get("className")).getMajorId();
                             }
                             student.put(SystemConstant.SCHOOL_ID, schoolId);
                             student.put("semesterId", semesterId);

+ 6 - 0
distributed-print-business/src/main/resources/mapper/TSyncExamStudentScoreMapper.xml

@@ -84,4 +84,10 @@
         <include refid="middleCommonSql"/>
         <include refid="footCommonSql"/>
     </select>
+
+    <select id="exportCount" resultType="java.lang.Integer">
+        select count(1) from t_sync_exam_student_score tsess
+        <include refid="middleCommonSql"/>
+        <include refid="footCommonSql"/>
+    </select>
 </mapper>

+ 21 - 20
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -278,13 +278,13 @@ public class SysController {
     public Result fileDownload(@ApiParam(value = "任务id", required = true) @RequestParam String id,
                                @ApiParam(value = "下载文件类型", required = true) @RequestParam DownloadFileEnum type) {
         String path = null;
-        if (DownloadFileEnum.SYNC_REPORT.equals(type)){
+        if (DownloadFileEnum.SYNC_REPORT.equals(type)) {
             TBSyncTask tbSyncTask = tbSyncTaskService.getById(SystemConstant.convertIdToLong(id));
-            if (Objects.isNull(tbSyncTask)){
+            if (Objects.isNull(tbSyncTask)) {
                 throw ExceptionResultEnum.SYNC_TASK_NO_DATA.exception();
             }
             path = tbSyncTask.getReportFilePath();
-        }else {
+        } else {
             TBTask tbTask = tbTaskService.getById(Long.parseLong(id));
             if (Objects.isNull(tbTask)) {
                 throw ExceptionResultEnum.TASK_NO_DATA.exception();
@@ -355,7 +355,7 @@ public class SysController {
         List<DictionaryResult> dictionaryResultList = new ArrayList<>();
         switch (dictionaryEnum) {
             case CAMPUS:
-                List<BasicCampus> basicCampusList = basicCampusService.list(new QueryWrapper<BasicCampus>().lambda().eq(BasicCampus::getSchoolId,schoolId));
+                List<BasicCampus> basicCampusList = basicCampusService.list(new QueryWrapper<BasicCampus>().lambda().eq(BasicCampus::getSchoolId, schoolId));
                 dictionaryResultList = basicCampusList.stream().map(e -> {
                     DictionaryResult dictionaryResult = new DictionaryResult();
                     dictionaryResult.setName(e.getCampusName());
@@ -380,18 +380,19 @@ public class SysController {
                     examPrintPlanQueryWrapper.select(" DISTINCT org_id as orgId ")
                             .eq("semester_id", SystemConstant.convertIdToLong(semesterId));
                     List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(examPrintPlanQueryWrapper);
-                    Set<Long> orgIdSet = examPrintPlanList.stream().map(s -> s.getOrgId()).collect(Collectors.toSet());
-
-                    QueryWrapper<SysOrg> sysOrgQueryWrapper = new QueryWrapper<>();
-                    sysOrgQueryWrapper.lambda().in(SysOrg::getId, orgIdSet);
-                    List<SysOrg> sysOrgList = sysOrgService.list(sysOrgQueryWrapper);
-                    dictionaryResultList = sysOrgList.stream().map(e -> {
-                        DictionaryResult dictionaryResult = new DictionaryResult();
-                        dictionaryResult.setId(e.getId());
-                        dictionaryResult.setCode(e.getCode());
-                        dictionaryResult.setName(e.getName());
-                        return dictionaryResult;
-                    }).collect(Collectors.toList());
+                    if (Objects.nonNull(examPrintPlanList) && examPrintPlanList.size() > 0) {
+                        Set<Long> orgIdSet = examPrintPlanList.stream().map(s -> s.getOrgId()).collect(Collectors.toSet());
+                        QueryWrapper<SysOrg> sysOrgQueryWrapper = new QueryWrapper<>();
+                        sysOrgQueryWrapper.lambda().in(SysOrg::getId, orgIdSet);
+                        List<SysOrg> sysOrgList = sysOrgService.list(sysOrgQueryWrapper);
+                        dictionaryResultList = sysOrgList.stream().map(e -> {
+                            DictionaryResult dictionaryResult = new DictionaryResult();
+                            dictionaryResult.setId(e.getId());
+                            dictionaryResult.setCode(e.getCode());
+                            dictionaryResult.setName(e.getName());
+                            return dictionaryResult;
+                        }).collect(Collectors.toList());
+                    }
                 } else {
                     List<SysOrg> sysOrgList = sysOrgService.list(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getEnable, true));
                     dictionaryResultList = sysOrgList.stream().map(e -> {
@@ -424,8 +425,8 @@ public class SysController {
             case CLAZZ:
                 QueryWrapper<BasicClazz> clazzQueryWrapper = new QueryWrapper<>();
                 clazzQueryWrapper.lambda().eq(BasicClazz::getSchoolId, schoolId).eq(BasicClazz::getEnable, true);
-                if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(campusId))){
-                    clazzQueryWrapper.lambda().eq(BasicClazz::getCampusId,campusId);
+                if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(campusId))) {
+                    clazzQueryWrapper.lambda().eq(BasicClazz::getCampusId, campusId);
                 }
                 if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(majorId))) {
                     clazzQueryWrapper.lambda().eq(BasicClazz::getMajorId, majorId);
@@ -442,8 +443,8 @@ public class SysController {
             case STUDENT:
                 QueryWrapper<BasicStudent> studentQueryWrapper = new QueryWrapper<>();
                 studentQueryWrapper.lambda().eq(BasicStudent::getSchoolId, schoolId).eq(BasicStudent::getEnable, true);
-                if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(campusId))){
-                    studentQueryWrapper.lambda().eq(BasicStudent::getCampusId,campusId);
+                if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(campusId))) {
+                    studentQueryWrapper.lambda().eq(BasicStudent::getCampusId, campusId);
                 }
                 if (SystemConstant.longNotNull(SystemConstant.convertIdToLong(collegeId))) {
                     studentQueryWrapper.lambda().eq(BasicStudent::getBelongOrgId, collegeId);

+ 19 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java

@@ -111,6 +111,15 @@ public class TSyncExamStudentScoreController {
                          @ApiParam(value = "专业id", required = false) @RequestParam(required = false) String majorId,
                          @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,
                          @ApiParam(value = "课程编码", required = false) @RequestParam(required = false) String courseCode) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        int count = tSyncExamStudentScoreService.exportCount(sysUser.getSchoolId()
+                , SystemConstant.convertIdToLong(semesterId)
+                , SystemConstant.convertIdToLong(orgId)
+                , SystemConstant.convertIdToLong(majorId)
+                , SystemConstant.convertIdToLong(clazzId), courseCode);
+        if (count == 0) {
+            throw ExceptionResultEnum.ERROR.exception("没有成绩信息");
+        }
         Map<String, Object> map = printCommonService.saveTask(TaskTypeEnum.SCORE_EXPORT);
         map.computeIfAbsent("semesterId", v -> SystemConstant.convertIdToLong(semesterId));
         map.computeIfAbsent("orgId", v -> SystemConstant.convertIdToLong(orgId));
@@ -153,7 +162,7 @@ public class TSyncExamStudentScoreController {
         map.computeIfAbsent("subjectCode", v -> courseCode);
         map.computeIfAbsent("college", v -> sysOrg.getName());
         BasicClazz finalBasicClazz = basicClazz;
-        map.computeIfAbsent("className", v -> finalBasicClazz.getClazzName());
+        map.computeIfAbsent("className", v -> Objects.nonNull(finalBasicClazz) ? finalBasicClazz.getClazzName() : null);
         asyncScorePushService.pushTask(map);
         TBSyncTask tbSyncTask = Objects.nonNull(map.get(SystemConstant.TB_SYNC_TASK)) ? (TBSyncTask) map.get(SystemConstant.TB_SYNC_TASK) : null;
         return Objects.nonNull(tbSyncTask) ? ResultUtil.ok(tbSyncTask.getId()) : ResultUtil.error("创建同步推送任务失败");
@@ -187,6 +196,15 @@ public class TSyncExamStudentScoreController {
                                 @ApiParam(value = "专业id", required = false) @RequestParam(required = false) String majorId,
                                 @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,
                                 @ApiParam(value = "课程编码", required = false) @RequestParam(required = false) String courseCode) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        int count = tSyncExamStudentScoreService.exportCount(sysUser.getSchoolId()
+                , SystemConstant.convertIdToLong(semesterId)
+                , SystemConstant.convertIdToLong(orgId)
+                , SystemConstant.convertIdToLong(majorId)
+                , SystemConstant.convertIdToLong(clazzId), courseCode);
+        if (count == 0) {
+            throw ExceptionResultEnum.ERROR.exception("没有成绩信息");
+        }
         Map<String, Object> map = printCommonService.saveTask(TaskTypeEnum.SCORE_DOWNLOAD);
         map.computeIfAbsent("semesterId", v -> SystemConstant.convertIdToLong(semesterId));
         map.computeIfAbsent("orgId", v -> SystemConstant.convertIdToLong(orgId));

+ 11 - 7
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/OrgCenterDataDisposeServiceImpl.java

@@ -7,13 +7,19 @@ import com.qmth.teachcloud.common.entity.BasicSchool;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.OrgTypeEnum;
-import com.qmth.teachcloud.common.service.*;
+import com.qmth.teachcloud.common.service.BasicSchoolService;
+import com.qmth.teachcloud.common.service.CallApiOrgCenterService;
+import com.qmth.teachcloud.common.service.OrgCenterDataDisposeService;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -29,8 +35,6 @@ public class OrgCenterDataDisposeServiceImpl implements OrgCenterDataDisposeServ
     private BasicSchoolService basicSchoolService;
     @Resource
     private SysOrgService sysOrgService;
-    @Resource
-    private TeachcloudCommonService teachcloudCommonService;
 
     @Transactional(rollbackFor = Exception.class)
     @Override
@@ -74,14 +78,14 @@ public class OrgCenterDataDisposeServiceImpl implements OrgCenterDataDisposeServ
                 schoolId = oldSchool.getId();
             } else {
                 // 系统中没有该学校 -》 新增 (优先使用机构中心id如果该id在系统中已经被占用则会使用分布式id)
-                if (basicSchoolList.stream().map(BaseEntity::getId).collect(Collectors.toSet()).contains(orgCenterAppSchoolId)){
+                if (basicSchoolList.stream().map(BaseEntity::getId).collect(Collectors.toSet()).contains(orgCenterAppSchoolId)) {
                     schoolId = SystemConstant.getDbUuid();
-                }else {
+                } else {
                     schoolId = orgCenterAppSchoolId;
                 }
             }
             // 断言schoolId非空
-            if (!SystemConstant.longNotNull(schoolId)){
+            if (!SystemConstant.longNotNull(schoolId)) {
                 throw ExceptionResultEnum.ERROR.exception();
             }
 

+ 0 - 3
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java

@@ -59,9 +59,6 @@ public class JobServiceImpl implements JobService {
     @Autowired
     DataSyncService dataSyncService;
 
-    @Autowired
-    private SysConfigService sysConfigService;
-
     @Resource
     RedisUtil redisUtil;