Эх сурвалжийг харах

add:拉学生匹配教师数据bug,错题考察点注释没区分知识和能力bug

caozixuan 3 жил өмнө
parent
commit
a8abe02143

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

@@ -47,9 +47,10 @@ public interface SysUserService extends IService<SysUser> {
      * 根据外键查找教师信息
      * @param schoolId 学校id
      * @param teacherName 教师名称
+     * @param teacherCode 教师编号
      * @return 学院数据
      */
-    SysUser findByForeignKey(Long schoolId, String teacherName);
+    SysUser findByForeignKey(Long schoolId, String teacherName,String teacherCode);
 
     /**
      * 临时-不鉴权保存用户 (默认创建用户角色为该学校管理员)

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

@@ -242,13 +242,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public SysUser findByForeignKey(Long schoolId, String teacherName) {
+    public SysUser findByForeignKey(Long schoolId, String teacherName, String teacherCode) {
         List<SysUser> tbSchoolTeacherList = this.list(new QueryWrapper<SysUser>().lambda()
-                .eq(SysUser::getSchoolId,schoolId)
-                .eq(SysUser::getRealName,teacherName));
-        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType,RoleTypeEnum.TEACHER));
+                .eq(SysUser::getSchoolId, schoolId)
+                .eq(SysUser::getRealName, teacherName)
+                .eq(SysUser::getLoginName,teacherCode));
+        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType, RoleTypeEnum.TEACHER));
 //        tbSchoolTeacherList = tbSchoolTeacherList.stream().filter(e -> Arrays.asList(e.getRoleIds()).contains(sysRole.getId())).collect(Collectors.toList());
-        if (tbSchoolTeacherList.size() != 1){
+        if (tbSchoolTeacherList.size() != 1) {
             throw ExceptionResultEnum.ERROR.exception("教师基础数据信息异常");
         }
         return tbSchoolTeacherList.get(0);
@@ -264,7 +265,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         boolean isSuccess = true;
         try {
             Long schoolId = Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild()) ? Long.valueOf(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString()) : null;
-            if (schoolId == null){
+            if (schoolId == null) {
                 schoolId = userSaveParams.getSchoolId();
             }
             SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
@@ -315,7 +316,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     commonService.removeUserInfo(sysUser.getId());
                 }
                 //如果修改了机构或手机号,需更新用户缓存
-                if (Objects.nonNull(dbUser.getOrgId())){
+                if (Objects.nonNull(dbUser.getOrgId())) {
                     if (containsQuestionTeacher || dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
                             || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber())) {
                         cacheService.updateUserCache(sysUser.getId());
@@ -355,6 +356,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     /**
      * 临时保存用户不鉴权
+     *
      * @param userSaveParams 用户参数
      * @return 结果
      */
@@ -362,11 +364,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         boolean isSuccess = true;
         try {
             Long schoolId = Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild()) ? Long.valueOf(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString()) : null;
-            if (schoolId == null){
+            if (schoolId == null) {
                 schoolId = userSaveParams.getSchoolId();
             }
-            List<SysUser> requestUserList = this.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId,schoolId).like(SysUser::getLoginName,"admin"));
-            if (requestUserList.size() == 0){
+            List<SysUser> requestUserList = this.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).like(SysUser::getLoginName, "admin"));
+            if (requestUserList.size() == 0) {
                 throw ExceptionResultEnum.ERROR.exception("该学校没有内置的学校管理员");
             }
             SysUser requestUser = requestUserList.get(0);
@@ -417,7 +419,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     commonService.removeUserInfo(sysUser.getId());
                 }
                 //如果修改了机构或手机号,需更新用户缓存
-                if (Objects.nonNull(dbUser.getOrgId())){
+                if (Objects.nonNull(dbUser.getOrgId())) {
                     if (containsQuestionTeacher || dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
                             || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber())) {
                         cacheService.updateUserCache(sysUser.getId());

+ 2 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -509,7 +509,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
             for (String dimensionCode : knowledgeDimensionSort) {
                 String dimensionName;
                 List<String> nameTwoList = dimensionDataSource.stream()
-                        .filter(e -> dimensionCode.equals(e.getCodeSecond()))
+                        .filter(e -> dimensionCode.equals(e.getCodeSecond()) && "知识".equals(e.getDimensionType()))
                         .map(TBDimension::getNameSecond).collect(Collectors.toList());
                 if (nameTwoList.size() < 1) {
                     List<String> tmpList = dimensionDataSource.stream()
@@ -533,7 +533,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
                         .map(TBDimension::getNameSecond).collect(Collectors.toList());
                 if (nameTwoList.size() < 1) {
                     List<String> tmpList = dimensionDataSource.stream()
-                            .filter(e -> dimensionCode.equals(e.getCodePrimary()))
+                            .filter(e -> dimensionCode.equals(e.getCodePrimary()) && "能力".equals(e.getDimensionType()))
                             .map(TBDimension::getNamePrimary).collect(Collectors.toList());
                     if (tmpList.size() == 0) {
                         continue;

+ 9 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/BasicDatasourceController.java

@@ -526,6 +526,8 @@ public class BasicDatasourceController {
                     return Stream.of(map);
                 }).distinct().collect(Collectors.toList());
 
+        Map<String,String> teacherUserMap = new HashMap<>();
+
         for (Map<String, String> teacherPackage : teacherList) {
 
             String teacherInfo = teacherPackage.get("teacherInfo");
@@ -590,6 +592,9 @@ public class BasicDatasourceController {
                 }
                 orgId = sysOrgList.get(0).getId();
             }
+            if (!teacherUserMap.containsKey(teacherName)){
+                teacherUserMap.put(teacherName,teacherCode);
+            }
 
             TBSchoolTeacherDto tbSchoolTeacherDto = new TBSchoolTeacherDto();
             tbSchoolTeacherDto.setSchoolId(schoolId);
@@ -635,6 +640,9 @@ public class BasicDatasourceController {
             Map<String, String> teacherMap = this.disposeTeacherInfo(teacher);
             String teacherName = teacherMap.get("teacherName");
             String teacherCode = teacherMap.get("teacherCode");
+            if (!SystemConstant.strNotNull(teacherCode)){
+                teacherCode = teacherUserMap.get(teacherName);
+            }
             // 缺考状态 2 -> 缺考 ; 3 -> 违纪
             int status = (int) map.get(ExamCloudDataEnum.STATUS.getName()); //学生考试状态
             String totalScore = String.valueOf(map.get(ExamCloudDataEnum.TOTAL_SCORE.getName())); //考生总分
@@ -695,7 +703,7 @@ public class BasicDatasourceController {
                 // 获取关联的基础表主键
                 SysOrg tbSchoolCollege = sysOrgService.findByForeignKey(schoolId, college, college);
                 TBSchoolClazz tbSchoolClazz = tbSchoolClazzService.findByForeignKey(schoolId, className, className);
-                SysUser tbSchoolTeacher = sysUserService.findByForeignKey(schoolId, teacherName);
+                SysUser tbSchoolTeacher = sysUserService.findByForeignKey(schoolId, teacherName,teacherCode);
 
                 TBExamStudent tbExamStudent = new TBExamStudent();
                 Long examStudentId = SystemConstant.getDbUuid();