Bladeren bron

江西中医药模式建命题任务时可以选命题老师可以按课程下的教师团队或整个组织架构进行选择

wangliang 2 jaren geleden
bovenliggende
commit
092a175451

+ 30 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -27,12 +27,14 @@ import com.qmth.distributed.print.business.templete.execute.AsyncPaperReviewPdfE
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.distributed.print.business.util.CreatePdfUtil;
 import com.qmth.distributed.print.business.util.HtmlToPdfUtil;
+import com.qmth.teachcloud.common.bean.dto.AssignTeacherDto;
 import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
 import com.qmth.teachcloud.common.bean.params.BasicStudentExtrasParam;
 import com.qmth.teachcloud.common.bean.result.BasicStudentResult;
+import com.qmth.teachcloud.common.bean.result.SysUserResult;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
@@ -509,11 +511,18 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     String excelTeacherAccount = userImportDto.getUserAccount();
                     String excelTeacherName = userImportDto.getUserName();
 
-                    List<BlurryUserDto> listUser = sysUserService.listUser(excelCourseCode, null);
+//                    List<BlurryUserDto> listUser = sysUserService.listUser(excelCourseCode, null);
+                    AssignTeacherDto assignTeacherDto = sysUserService.listUser(excelCourseCode, null);
+                    List<BlurryUserDto> listUser = Objects.nonNull(assignTeacherDto) ? assignTeacherDto.getBlurryUserDtoList() : new ArrayList<BlurryUserDto>();
                     Map<String, String> userMap = listUser.stream().collect(Collectors.toMap(BlurryUserDto::getLoginName, BlurryUserDto::getName));
                     if (userMap == null) {
                         excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[命题老师账号]不存在"));
                     } else {
+                        List<SysUserResult> courseUserList = Objects.nonNull(assignTeacherDto) ? assignTeacherDto.getCourseUserList() : new ArrayList<SysUserResult>();
+                        Map<String, String> courseUserMap = courseUserList.stream().collect(Collectors.toMap(SysUserResult::getLoginName, SysUserResult::getRealName));
+                        if (!CollectionUtils.isEmpty(courseUserMap)) {
+                            userMap.putAll(courseUserMap);
+                        }
                         if (StringUtils.isNotBlank(excelTeacherAccount)) {
                             if (StringUtils.isBlank(excelTeacherName)) {
                                 excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[命题老师姓名]不能为空"));
@@ -605,21 +614,21 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examTaskDto.setCourseName(examTaskTemp.getCourseName());
                 examTaskDto.setPaperNumber(examTaskTemp.getPaperNumber());
                 examTaskDto.setSpecialty(examTaskTemp.getSpecialty());
-                List<BlurryUserDto> blurryUserDtoList;
+                AssignTeacherDto assignTeacherDto = null;
 
                 QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
                 queryWrapper.lambda().eq(SysUser::getSchoolId, schoolId).eq(SysUser::getLoginName, examTaskTemp.getUserAccount());
                 SysUser sysUser1 = sysUserService.getOne(queryWrapper);
                 if (sysUser1 != null) {
-                    blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), String.valueOf(sysUser1.getId()));
+                    assignTeacherDto = listUsers(examTaskTemp.getCourseCode(), String.valueOf(sysUser1.getId()));
                 } else {
-                    blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), null);
+                    assignTeacherDto = listUsers(examTaskTemp.getCourseCode(), null);
                 }
-                examTaskDto.setUsers(blurryUserDtoList);
+                examTaskDto.setUsers(Objects.nonNull(assignTeacherDto) ? assignTeacherDto.getBlurryUserDtoList() : new ArrayList<BlurryUserDto>());
                 String userName = examTaskTempDto.getUserName();
                 String userAccount = examTaskTempDto.getUserAccount();
                 if (SystemConstant.strNotNull(userName) && SystemConstant.strNotNull(userAccount)) {
-                    List<BlurryUserDto> match = blurryUserDtoList.stream()
+                    List<BlurryUserDto> match = assignTeacherDto.getBlurryUserDtoList().stream()
                             .filter(e -> e.getLoginName().equals(userAccount) && e.getName().equals(userName))
                             .collect(Collectors.toList());
                     if (match.size() > 1) {
@@ -630,6 +639,20 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                         examTaskDto.setUserId(String.valueOf(tmp.getId()));
                         examTaskDto.setUserName(tmp.getName());
                     }
+
+                    if (Objects.nonNull(assignTeacherDto) && !CollectionUtils.isEmpty(assignTeacherDto.getCourseUserList())) {
+                        List<SysUserResult> matchCouserUser = assignTeacherDto.getCourseUserList().stream()
+                                .filter(e -> e.getLoginName().equals(userAccount) && e.getRealName().equals(userName))
+                                .collect(Collectors.toList());
+                        if (matchCouserUser.size() > 1) {
+                            throw ExceptionResultEnum.ERROR.exception("数据异常");
+                        }
+                        if (matchCouserUser.size() == 1) {
+                            SysUserResult tmp = matchCouserUser.get(0);
+                            examTaskDto.setUserId(String.valueOf(tmp.getId()));
+                            examTaskDto.setUserName(tmp.getRealName());
+                        }
+                    }
                 }
 
 //                // 校验命题老师
@@ -667,7 +690,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         return examTaskImportDto;
     }
 
-    private List<BlurryUserDto> listUsers(String courseCode, String userId) {
+    private AssignTeacherDto listUsers(String courseCode, String userId) {
         return sysUserService.listUser(courseCode, userId);
     }
 

+ 47 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/AssignTeacherDto.java

@@ -0,0 +1,47 @@
+package com.qmth.teachcloud.common.bean.dto;
+
+import com.qmth.teachcloud.common.bean.result.SysUserResult;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @Description: 命题老师 dto
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/3/27
+ */
+public class AssignTeacherDto {
+
+    @ApiModelProperty(value = "命题老师集合")
+    List<BlurryUserDto> blurryUserDtoList;
+
+    @ApiModelProperty(value = "课程下系统用户")
+    List<SysUserResult> courseUserList;
+
+    public AssignTeacherDto() {
+
+    }
+
+    public AssignTeacherDto(List<BlurryUserDto> blurryUserDtoList, List<SysUserResult> courseUserList) {
+        this.blurryUserDtoList = blurryUserDtoList;
+        this.courseUserList = courseUserList;
+    }
+
+    public List<BlurryUserDto> getBlurryUserDtoList() {
+        return blurryUserDtoList;
+    }
+
+    public void setBlurryUserDtoList(List<BlurryUserDto> blurryUserDtoList) {
+        this.blurryUserDtoList = blurryUserDtoList;
+    }
+
+    public List<SysUserResult> getCourseUserList() {
+        return courseUserList;
+    }
+
+    public void setCourseUserList(List<SysUserResult> courseUserList) {
+        this.courseUserList = courseUserList;
+    }
+}

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

@@ -2,7 +2,7 @@ package com.qmth.teachcloud.common.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
+import com.qmth.teachcloud.common.bean.dto.AssignTeacherDto;
 import com.qmth.teachcloud.common.bean.dto.LoginDto;
 import com.qmth.teachcloud.common.bean.dto.UserDto;
 import com.qmth.teachcloud.common.bean.dto.UserRoleDto;
@@ -99,7 +99,7 @@ public interface SysUserService extends IService<SysUser> {
 
     LoginDto getUserRoles(SysUser sysUser);
 
-    List<BlurryUserDto> listUser(String courseCode, String param);
+    AssignTeacherDto listUser(String courseCode, String param);
 
     List<SysUser> listByOrgId(Long id);
 

+ 11 - 10
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -360,7 +360,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public List<BlurryUserDto> listUser(String courseCode, String param) {
+    public AssignTeacherDto listUser(String courseCode, String param) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
         basicCourseQueryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId)
@@ -396,21 +396,22 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      * @param schoolId
      * @return
      */
-    private List<BlurryUserDto> listUserCommon(BasicCourse basicCourse, Long schoolId) {
-        int count = this.countByTeachingRoomId(basicCourse.getTeachingRoomId());
-        List<SysOrg> sysOrgList = null;
-        if (count == 0) {
-            sysOrgList = sysOrgService.findByConnectByParentId(basicCourse.getTeachingRoomId(), true, true);
-        } else {
-            sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getTeachingRoomId());
-        }
+    private AssignTeacherDto listUserCommon(BasicCourse basicCourse, Long schoolId) {
+//        int count = this.countByTeachingRoomId(basicCourse.getTeachingRoomId());
+//        List<SysOrg> sysOrgList = null;
+//        if (count == 0) {
+//            sysOrgList = sysOrgService.findByConnectByParentId(basicCourse.getTeachingRoomId(), true, true);
+//        } else {
+        List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getTeachingRoomId());
+//        }
         Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
         List<ApproveUserResult> sysUserList = sysUserService.filterFlowPrivilege(schoolId, orgIds, false, null, null);
+        List<SysUserResult> resultList = sysUserService.findCourseSysUserResultList(schoolId, basicCourse.getCode());
         List<BlurryUserDto> blurryUserDtoList = new ArrayList<>();
         for (ApproveUserResult sysUser : sysUserList) {
             blurryUserDtoList.add(new BlurryUserDto(sysUser.getId(), sysUser.getLoginName(), sysUser.getRealName()));
         }
-        return blurryUserDtoList;
+        return new AssignTeacherDto(blurryUserDtoList, resultList);
     }
 
     @Override