dzx před 1 rokem
rodič
revize
de77a8a009

+ 9 - 8
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateObjectServiceImpl.java

@@ -37,7 +37,6 @@ import com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.service.IUserService;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
-import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,10 +44,10 @@ import org.springframework.transaction.annotation.Transactional;
 import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -321,6 +320,7 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
                     ),
                     map -> new ArrayList<>(map.values())
             ));
+            Map<String, List<ClassTeachersListVo>> classTeacherMap = collect.stream().collect(Collectors.groupingBy(ClassTeachersListVo::getTeacherId));
 
             List<User> userList = userService.list(
                     new MPJLambdaWrapper<User>()
@@ -330,20 +330,21 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
             );
             Map<Long, String> userMap = userList.stream().collect(Collectors.toMap(User::getId, User::getName));
 
-            for (ClassTeachersListVo classTeacher : collect) {
-                if(!userMap.containsKey(Long.parseLong(classTeacher.getTeacherId().trim()))){
+            for (String teacherId : classTeacherMap.keySet()) {
+                if(!userMap.containsKey(Long.parseLong(teacherId.trim()))){
                     continue;
                 }
                 EvaluateObjectListVo objectListVo = new EvaluateObjectListVo();
 
+                Set<Long> classIds = classTeacherMap.get(teacherId).stream().map(ClassTeachersListVo::getClassId).collect(Collectors.toSet());
                 List<EvaluateExecuterVo> studentList = new ArrayList<>();
                 for (EvaluateExecuterVo el : newExecuterList) {
-                    if(!classTeacher.getClassId().toString().equals(el.getClassId())){
+                    if(!classIds.contains(Long.parseLong(el.getClassId()))){
                         continue;
                     }
                     EvaluateExecuterVo evaluateExecuterVo = new EvaluateExecuterVo();
                     evaluateExecuterVo.setExecuterId(el.getExecuterId());
-                    evaluateExecuterVo.setEvaluateObjectId(classTeacher.getTeacherId());
+                    evaluateExecuterVo.setEvaluateObjectId(teacherId.trim());
                     evaluateExecuterVo.setExecuterName(el.getExecuterName());
                     evaluateExecuterVo.setEvaluateManageId(dto.getEvaluateManageId().toString());
                     studentList.add(evaluateExecuterVo);
@@ -366,8 +367,8 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
                     currentExecuterList.addAll(studentList);
                 }
 
-                objectListVo.setObjectId(classTeacher.getTeacherId());
-                objectListVo.setObjectName(userMap.get(Long.parseLong(classTeacher.getTeacherId().trim())));
+                objectListVo.setObjectId(teacherId.trim());
+                objectListVo.setObjectName(userMap.get(Long.parseLong(teacherId.trim())));
                 objectListVo.setExecuterCount(currentExecuterList.size());
                 objectListVo.setExecuterList(currentExecuterList);
                 newObjectList.add(objectListVo);

+ 2 - 0
src/main/resources/mapper/evaluate/EvaluateObjectMapper.xml

@@ -68,6 +68,7 @@
             SELECT t2.id as executer_id,t2.name as executer_name,t1.class_id,t1.grade_id FROM base_student_school_roll t1
             LEFT JOIN xjr_user t2 ON t1.user_id = t2.id
             WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
+            and t1.archives_status = 'FB2901'
             <if test="dto.gradeId != null">
                 and t1.grade_id = #{dto.gradeId}
             </if>
@@ -111,6 +112,7 @@
             SELECT t2.id as executer_id,t2.name as executer_name,t1.class_id,t1.grade_id FROM base_student_school_roll t1
             LEFT JOIN xjr_user t2 ON t1.user_id = t2.id
             WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
+            and t1.archives_status = 'FB2901'
             <if test="dto.gradeId != null">
                 and t1.grade_id = #{dto.gradeId}
             </if>