xiaofei 2 сар өмнө
parent
commit
d9dbfefc1e

+ 1 - 1
distributed-print/install/mysql/upgrade/3.4.2.sql

@@ -214,7 +214,7 @@ create table if not exists boot_app_info (
     unique key(app_code)
     );
 
-insert into boot_app_info (app_code,app_version) values('teachcloud','3.4.2');
+insert into boot_app_info (app_code,app_version) values('teachcloud','3.4.1');
 
 -- 2024-12-3
 CREATE INDEX t_c_final_score_culture_program_id_IDX USING BTREE ON t_c_final_score (culture_program_id,exam_id,course_id,paper_number);

+ 1 - 10
distributed-print/src/main/java/com/qmth/distributed/print/upgrade/DataUpgrade_3_4_2.java

@@ -7,7 +7,6 @@ import com.qmth.boot.data.upgrade.utils.ResourceFileHelper;
 import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.ExamTaskDetail;
 import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
-import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.mark.entity.MarkQuestionAnswer;
@@ -31,7 +30,7 @@ import java.util.*;
 /**
  * 升级3.4.2后,3.4.1及以前历史数据的处理
  */
-//@DataUpgradeVersion("3.4.2")
+@DataUpgradeVersion("3.4.2")
 public class DataUpgrade_3_4_2 implements DataUpgradeService {
 
     private static final Logger log = LoggerFactory.getLogger(DataUpgrade_3_4_2.class);
@@ -46,14 +45,6 @@ public class DataUpgrade_3_4_2 implements DataUpgradeService {
     @Override
     public void process(JdbcTemplate jdbcTemplate) {
         log.info("process...");
-        StringJoiner sj = new StringJoiner(File.separator);
-        sj.add(System.getProperty("user.dir")).add("distributed-print").add("install").add("mysql").add("upgrade");
-        String upgradePath = sj.toString();
-        log.info("数据库脚本根目录:" + upgradePath);
-        // 执行升级脚本
-//        String upgrade_sql1 = upgradePath + File.separator + "3.4.4-upgrade-1.sql";
-//        this.execUpgradeSql(jdbcTemplate, upgrade_sql1);
-
         // 执行历史数据归档
         this.execSerialNumber(jdbcTemplate);
     }

+ 17 - 14
distributed-print/src/main/java/com/qmth/distributed/print/upgrade/DataUpgrade_3_4_4.java

@@ -12,8 +12,6 @@ import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExamModelEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.enums.ImportTemplateEnum;
-import com.qmth.teachcloud.common.util.FileUtil;
 import com.qmth.teachcloud.mark.dto.mark.MarkQuestionAnswerVo;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkerScoreDTO;
 import com.qmth.teachcloud.mark.dto.mark.manage.TaskQuestion;
@@ -33,10 +31,6 @@ import org.springframework.jdbc.core.BatchPreparedStatementSetter;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.Types;
@@ -52,6 +46,8 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
 
     private static final Logger log = LoggerFactory.getLogger(DataUpgrade_3_4_4.class);
 
+    private Set<String> md5Set = new HashSet<>();
+
     // 一页1000条
     private static int PAGE_SIZE = 500;
     private static String DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
@@ -142,9 +138,13 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
             return null;
         }
         String md5 = this.md5String(cardContent);
+        if(md5Set.contains(md5)){
+            return md5;
+        }
         int count = this.getMarkArchiveStudentCard(jdbcTemplate, md5);
         if (count == 0) {
             this.insertMarkArchiveStudentCard(jdbcTemplate, md5, cardContent);
+            md5Set.add(md5);
         }
         return md5;
     }
@@ -390,9 +390,9 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
         return list;
     }
 
-    private int update(JdbcTemplate jdbcTemplate, String sql) {
+    private int update(JdbcTemplate jdbcTemplate, String sql, Object[] params) {
         try {
-            return jdbcTemplate.update(sql);
+            return jdbcTemplate.update(sql, params);
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception("更新失败:" + e.getMessage());
         }
@@ -596,18 +596,21 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
     }
 
     private int updateMarkPaperArchive(JdbcTemplate jdbcTemplate, Long id) {
-        String sql = "update mark_paper set archive = 1 where id = " + id;
-        return this.update(jdbcTemplate, sql);
+        String sql = "update mark_paper set archive = 1 where id = ?";
+        Object[] params = new Object[]{id};
+        return this.update(jdbcTemplate, sql, params);
     }
 
     private int insertMarkArchiveStudentCard(JdbcTemplate jdbcTemplate, String id, String cardContent) {
-        String sql = "insert into mark_archive_student_card values ('" + id + "','" + cardContent + "')";
-        return this.update(jdbcTemplate, sql);
+        String sql = "insert into mark_archive_student_card values (?,?)";
+        Object[] params = new Object[]{id, cardContent};
+        return this.update(jdbcTemplate, sql, params);
     }
 
     private int deleteMarkArchiveStudentByExamIdAndPaperNumber(JdbcTemplate jdbcTemplate, Long examId, String paperNumber) {
-        String sql = "delete from mark_archive_student where exam_id = " + examId + " and paper_number = '" + paperNumber + "'";
-        return this.update(jdbcTemplate, sql);
+        String sql = "delete from mark_archive_student where exam_id = ? and paper_number = ?";
+        Object[] params = new Object[]{examId, paperNumber};
+        return this.update(jdbcTemplate, sql, params);
     }
 
     private long batchInsert(JdbcTemplate jdbcTemplate, List<MarkArchiveStudent> markArchiveStudents) {

+ 2 - 2
distributed-print/src/main/resources/upgrade/3.4.4-upgrade-2.sql

@@ -215,6 +215,8 @@ CREATE TABLE `mark_user_paper` (
                `paper_number` VARCHAR(100) NULL,
                `user_id` BIGINT(20) NULL COMMENT '用户ID',
                `question_model` VARCHAR(10) NULL COMMENT '评卷模式(SINGLE:单题阅,MULTI:多题阅)',
+               `mode` VARCHAR(45) NULL COMMENT '阅卷模式',
+               `marked_question_id` BIGINT(20) NULL COMMENT '正在阅卷的题目ID',
                PRIMARY KEY (`id`))
     COMMENT = '试卷评卷员设置';
 
@@ -235,7 +237,6 @@ CREATE TABLE `mark_header_history` (
                PRIMARY KEY (`id`))
     COMMENT = '复核历史表';
 
-ALTER TABLE `mark_user_paper` ADD COLUMN `mode` VARCHAR(45) NULL COMMENT '阅卷模式' AFTER `question_model`;
 ALTER TABLE `mark_paper` CHANGE COLUMN `open_mark_class` `class_mark` TINYINT NULL DEFAULT '0' COMMENT '是否开启分班阅' AFTER `paper_type`;
 
 drop table if exists t_s_job_log;
@@ -337,7 +338,6 @@ UPDATE sys_privilege SET name='课程任课老师导入', url='/api/admin/teach/
 
 ALTER TABLE `mark_student` ADD INDEX `index7` (`subjective_status` ASC);
 ALTER TABLE `mark_user_paper` ADD INDEX `index1` (`exam_id` ASC, `paper_number` ASC, `user_id` ASC);
-ALTER TABLE `mark_user_paper` ADD COLUMN `marked_question_id` BIGINT(20) NULL COMMENT '正在阅卷的题目ID' AFTER `mode`;
 ALTER TABLE `mark_student` ADD COLUMN `teach_class_name` VARCHAR(100) NULL COMMENT '教学班' AFTER `exam_room`;
 
 INSERT INTO sys_privilege(id, name, url, parent_id, `type`, `sequence`, property, related, enable, default_auth, front_display) VALUES(1300, '获取评卷区', '/api/admin/mark/inspected/get_mark_area', 946, 'URL', 9, 'AUTH', NULL, 1, 1, 1);