Browse Source

Merge remote-tracking branch 'origin/dev' into dev

大数据与最优化研究所 11 months ago
parent
commit
969c83e13e

+ 30 - 5
src/main/java/com/xjrsoft/module/assessment/service/impl/AssessmentTemplatePlanServiceImpl.java

@@ -613,15 +613,28 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
             oneQuestion.setChildren(twoList);
         }
         List<AssessmentPlanAnswerDetailVo> questionResult = resultMapper.getStudentQuestionResultList(assessmentTemplatePlanId, studentUserId);
-        Map<Long, String> answerResultMap = new HashMap<>();
-        for (AssessmentPlanAnswerDetailVo countVo : questionResult) {
-            answerResultMap.put(countVo.getQuestionId(), countVo.getAnswerId());
-        }
+
+        Map<Long, List<AssessmentPlanAnswerDetailVo>> answerResultMap = questionResult.stream().collect(Collectors.groupingBy(AssessmentPlanAnswerDetailVo::getQuestionId));
 
         //循环选项
         for (OneQuestionAnswerVo oneQuestion : oneList) {
             for (TwoQuestionAnswerVo twoQuestion : oneQuestion.getChildren()) {
-                twoQuestion.setResult(answerResultMap.get(twoQuestion.getId()));
+                List<AssessmentPlanAnswerDetailVo> resultList = answerResultMap.get(twoQuestion.getId());
+                if(AssessQuestionTypeEnum.MULTI.getCode().equals(twoQuestion.getType())){
+                    String answerStr = "";
+                    for(int i = 0; i < resultList.size(); i ++){
+                        if(i > 0){
+                            answerStr += "\r\n";
+                        }
+                        answerStr += resultList.get(i).getAnswerId() + "";
+                    }
+                    twoQuestion.setResult(answerStr);
+                }else if(AssessQuestionTypeEnum.SCALE.getCode().equals(twoQuestion.getType())){
+                    twoQuestion.setResult(resultList.get(0).getAnswerId() + "星");
+                }else{
+                    List<String> answerList = resultList.stream().map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
+                    twoQuestion.setResult(answerList.toString().replace("[", "").replace("]", ""));
+                }
             }
         }
         vo.setChildren(oneList);
@@ -654,6 +667,7 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
         List<AssessmentPlanAnswerDetailVo> results = resultMapper.getPlanQuestionResultList(dto.getAssessmentTemplatePlanId());
         Map<Long, List<AssessmentPlanAnswerDetailVo>> studentAnswerMaps = results.stream().collect(Collectors.groupingBy(AssessmentPlanAnswerDetailVo::getStudentUserId));
         //查询已答题学生
+        dto.setSubmitStatus(1);
         List<AssessmentPlanAnswerStudentVo> studentList = this.baseMapper.getAnswerStudentList(dto);
         List<List<String>> dataList = new ArrayList<>();
         int sortCode = 1;
@@ -683,6 +697,17 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
                     rowData.add(answerStr);
                 }else if(AssessQuestionTypeEnum.SCALE.getCode().equals(question.getType())){
                     rowData.add(resultList.get(0).getAnswerId() + "星");
+                }else if(AssessQuestionTypeEnum.TEXT.getCode().equals(question.getType())){
+                    rowData.add(resultList.get(0).getAnswerId() + "星");
+                }else if(AssessQuestionTypeEnum.JUDGE.getCode().equals(question.getType())){
+                    List<String> answerList = resultList.stream().filter(x -> x.getAnswerId() != null)
+                            .map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
+                    String replace = answerList.toString().replace("[", "").replace("]", "");
+                    if("1".equals(replace)){
+                        rowData.add("是");
+                    }else if("0".equals(replace)){
+                        rowData.add("否");
+                    }
                 }else{
                     List<String> answerList = resultList.stream().map(AssessmentPlanAnswerDetailVo::getAnswerId).collect(Collectors.toList());
                     rowData.add(answerList.toString().replace("[", "").replace("]", ""));

+ 1 - 1
src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java

@@ -277,7 +277,7 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
                             .eq(DictionaryDetail::getCode, baseStudentSchoolRoll.getArchivesStatus())
                             .inSql(DictionaryDetail::getItemId,"SELECT id from xjr_dictionary_item where code='archives_status'"));
                     if (dictionaryDetail != null) {
-                        if (dictionaryDetail.getExtendField1().equals("0")) {
+                        if ("0".equals(dictionaryDetail.getExtendField1())) {
                             baseStudent.setIsNormal(0);
                         } else {
                             baseStudent.setIsNormal(1);

+ 1 - 1
src/main/resources/mapper/assessment/AssessmentPlanAnswerResultMapper.xml

@@ -45,7 +45,7 @@
         GROUP BY t1.question_id,t1.answer_id
     </select>
     <select id="getStudentQuestionResultList" resultType="com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerDetailVo">
-        SELECT t1.question_id,IFNULL(t2.name, t1.answer_id) FROM assessment_plan_answer_result t1
+        SELECT t1.question_id,IFNULL(t2.name, t1.answer_id) as answer_id FROM assessment_plan_answer_result t1
         LEFT JOIN assessment_plan_question t2 ON t1.answer_id =  CAST(t2.id AS CHAR)
         WHERE t1.delete_mark = 0 AND t1.assessment_template_plan_id = #{templatePlanId}
         and t1.student_user_id = #{studentUserId}

+ 5 - 2
src/main/resources/mapper/assessment/AssessmentTemplatePlanMapper.xml

@@ -64,7 +64,7 @@
         LEFT JOIN assessment_template t2 ON t1.assessment_template_id = t2.id
         LEFT JOIN assessment_plan_answer_class t3 ON t3.assessment_template_plan_id = t1.id
         LEFT JOIN base_class t4 ON t3.class_id = t4.id
-        WHERE t1.delete_mark = 0 AND t1.status = 1
+        WHERE t1.delete_mark = 0 AND t1.status in (1, 2)
         <if test="dto.teacherId != null and dto.isHeadTeacher != null and dto.isHeadTeacher == 1">
             AND t4.teacher_id = #{dto.teacherId}
         </if>
@@ -136,7 +136,10 @@
         LEFT JOIN base_student_school_roll t3 ON t1.student_user_id = t3.user_id
         LEFT JOIN base_class t4 ON t3.class_id = t4.id
         WHERE t1.delete_mark = 0 AND t1.assessment_template_plan_id = #{dto.assessmentTemplatePlanId}
-        and t1.submit_status = 1
+        <if test="dto.submitStatus != null and dto.submitStatus == 1">
+            and t1.submit_status = 1
+        </if>
+
         <if test="dto.keyword != null and dto.keyword != ''">
             and (t2.name like concat('%', #{dto.keyword}, '%') or t4.name like concat('%', #{dto.keyword}, '%'))
         </if>

+ 38 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FileTest.java

@@ -5,14 +5,17 @@ import com.google.gson.JsonArray;
 import com.xjrsoft.module.schedule.util.ScheduleUtil;
 import org.junit.jupiter.api.Test;
 
+import java.io.BufferedReader;
 import java.io.DataInputStream;
 import java.io.FileInputStream;
+import java.io.FileReader;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
 import java.util.Arrays;
+import java.util.Base64;
 import java.util.List;
 
 /**
@@ -61,4 +64,39 @@ public class FileTest {
         String timeNumbers = "5,6,7";
         Arrays.asList(timeNumbers.split(","));
     }
+
+    @Test
+    void idTest3() throws Exception {
+        String filePath = "C:\\Users\\14263\\Desktop\\七日杀mod\\虹彩+隐匿的曙光\\item_modifiers.txt";
+
+        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
+            // 读取文件内容
+            StringBuilder base64ContentBuilder = new StringBuilder();
+            String currentLine;
+
+            while ((currentLine = reader.readLine()) != null) {
+                base64ContentBuilder.append(currentLine);
+            }
+
+            // 获取完整的 Base64 编码字符串
+            String base64EncodedString = base64ContentBuilder.toString();
+
+            // 解码 Base64 字符串
+            byte[] decodedBytes = Base64.getDecoder().decode(base64EncodedString);
+
+            // 将解码后的字节数组转换为字符串(如果原内容是文本)
+            String decodedString = new String(decodedBytes, StandardCharsets.UTF_8);
+
+            // 输出解码后的内容
+            System.out.println("Decoded content:");
+            System.out.println(decodedString);
+
+            // 如果解码后的数据是二进制文件(如图片、PDF等),可以将其保存为文件
+            // saveDecodedDataAsFile(decodedBytes, "output_file_path");
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
 }