Browse Source

3.4.5 20250612 bug修复(数据同步bug)

xiaofei 1 week ago
parent
commit
e7b6b1ee2d

+ 29 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -630,9 +630,9 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
                 if (StringUtils.isBlank(tSyncDataStudent.getCourseCode())) {
                     throw ExceptionResultEnum.ERROR.exception("课程代码必填");
                 }
-                if (StringUtils.isBlank(tSyncDataStudent.getCourseCollegeName())) {
-                    throw ExceptionResultEnum.ERROR.exception("课程开课学院必填");
-                }
+//                if (StringUtils.isBlank(tSyncDataStudent.getCourseCollegeName())) {
+//                    throw ExceptionResultEnum.ERROR.exception("课程开课学院必填");
+//                }
                 if (needPaperNumber && StringUtils.isBlank(tSyncDataStudent.getPaperNumber())) {
                     throw ExceptionResultEnum.ERROR.exception("试卷编号必填");
                 }
@@ -658,21 +658,35 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
                 Long courseId = null;
                 String key = tSyncDataStudent.getCourseCode() + SystemConstant.HYPHEN + tSyncDataStudent.getCourseCollegeName();
                 if (!basicCourseIdMap.containsKey(key)) {
-                    List<SysOrg> sysOrgList = sysOrgService.getSecondOrg(schoolId, tSyncDataStudent.getCourseCollegeName());
-                    if (CollectionUtils.isEmpty(sysOrgList)) {
-                        throw ExceptionResultEnum.ERROR.exception("开课学院[" + tSyncDataStudent.getCourseCollegeName() + "]在学院层级不存在");
-                    } else if (sysOrgList.size() == 1) {
-                        SysOrg sysOrg = sysOrgList.get(0);
-                        // 校验课程代码和开课学院
-                        BasicCourse basicCourse = basicCourseService.getByTeachRoomIdAndCode(sysOrg.getId(), tSyncDataStudent.getCourseCode());
-                        if (Objects.isNull(basicCourse)) {
-                            throw ExceptionResultEnum.ERROR.exception("课程代码[" + tSyncDataStudent.getCourseCode() + "]在开课学院[" + tSyncDataStudent.getCourseCollegeName() + "]不存在");
+                    String courseCollege = tSyncDataStudent.getCourseCollegeName();
+                    if (StringUtils.isNotBlank(courseCollege)) {
+                        List<SysOrg> sysOrgList = sysOrgService.getSecondOrg(schoolId, tSyncDataStudent.getCourseCollegeName());
+                        if (CollectionUtils.isEmpty(sysOrgList)) {
+                            throw ExceptionResultEnum.ERROR.exception("开课学院[" + tSyncDataStudent.getCourseCollegeName() + "]在学院层级不存在");
+                        } else if (sysOrgList.size() == 1) {
+                            SysOrg sysOrg = sysOrgList.get(0);
+                            // 校验课程代码和开课学院
+                            BasicCourse basicCourse = basicCourseService.getByTeachRoomIdAndCode(sysOrg.getId(), tSyncDataStudent.getCourseCode());
+                            if (Objects.isNull(basicCourse)) {
+                                throw ExceptionResultEnum.ERROR.exception("课程代码[" + tSyncDataStudent.getCourseCode() + "]在开课学院[" + tSyncDataStudent.getCourseCollegeName() + "]不存在");
+                            } else {
+                                courseId = basicCourse.getId();
+                                basicCourseIdMap.put(key, basicCourse.getId());
+                            }
                         } else {
+                            throw ExceptionResultEnum.ERROR.exception("开课学院[" + tSyncDataStudent.getCourseCollegeName() + "]存在多个相同值");
+                        }
+                    } else {
+                        List<BasicCourse> basicCourseList = basicCourseService.listBySchoolIdAndCode(schoolId, tSyncDataStudent.getCourseCode());
+                        if (CollectionUtils.isEmpty(basicCourseList)) {
+                            throw ExceptionResultEnum.ERROR.exception("课程代码[" + tSyncDataStudent.getCourseCode() + "]不存在");
+                        } else if (basicCourseList.size() == 1) {
+                            BasicCourse basicCourse = basicCourseList.get(0);
                             courseId = basicCourse.getId();
                             basicCourseIdMap.put(key, basicCourse.getId());
+                        } else {
+                            throw ExceptionResultEnum.ERROR.exception("课程代码[" + tSyncDataStudent.getCourseCode() + "]存在多个值,开课学院[" + tSyncDataStudent.getCourseCollegeName() + "]必填");
                         }
-                    } else {
-                        throw ExceptionResultEnum.ERROR.exception("开课学院[" + tSyncDataStudent.getCourseCollegeName() + "]存在多个相同值");
                     }
                 } else {
                     courseId = basicCourseIdMap.get(key);
@@ -718,7 +732,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
 
                 if (StringUtils.isNotBlank(tSyncDataStudent.getPaperNumber())) {
                     if (paperNumberCourseIdMap.containsKey(tSyncDataStudent.getPaperNumber())) {
-                        if (!paperNumberCourseIdMap.get(basicExamStudent.getPaperNumber()).equals(basicExamStudent.getCourseId())) {
+                        if (!paperNumberCourseIdMap.get(tSyncDataStudent.getPaperNumber()).equals(basicExamStudent.getCourseId())) {
                             throw ExceptionResultEnum.ERROR.exception("试卷编号[" + basicExamStudent.getPaperNumber() + "]不能绑定多个课程");
                         }
                     } else {

+ 1 - 1
distributed-print/install/mysql/init/teachcloud_db.sql

@@ -255,7 +255,7 @@ CREATE TABLE IF NOT EXISTS `basic_message`
     `org_id`           bigint        DEFAULT NULL COMMENT '机构id',
     `user_id`          bigint        DEFAULT NULL COMMENT '消息接收人用户',
     `user_name`        varchar(100)  DEFAULT NULL COMMENT '用户名称',
-    `mobile_number`    varchar(11) NOT NULL COMMENT '电话号码',
+    `mobile_number`    varchar(11) NULL COMMENT '电话号码',
     `paper_number`     varchar(50)   DEFAULT NULL COMMENT '试卷编号',
     `course_code`      varchar(50)   DEFAULT NULL COMMENT '课程代码',
     `message_type`     varchar(45)   DEFAULT NULL COMMENT '消息类型',

+ 2 - 0
distributed-print/install/mysql/upgrade/3.4.5.sql

@@ -152,6 +152,8 @@ ALTER TABLE `t_sync_data`
     ADD COLUMN `xn` VARCHAR(45) NULL COMMENT '学年(考务)' AFTER `exam_id`,
 ADD COLUMN `xq` VARCHAR(45) NULL COMMENT '学期(考务)' AFTER `xn`;
 
+ALTER TABLE `basic_message` CHANGE COLUMN `mobile_number` `mobile_number` VARCHAR(11) NULL COMMENT '电话号码' ;
+
 INSERT INTO `sys_role_privilege` (`id`,`role_id`,`privilege_id`,`enable`,`school_id`) VALUES (1914588152174108680,2,1222,1,NULL);
 INSERT INTO `sys_role_privilege` (`id`,`role_id`,`privilege_id`,`enable`,`school_id`) VALUES (1914588152174108681,2,1223,1,NULL);
 INSERT INTO `sys_role_privilege` (`id`,`role_id`,`privilege_id`,`enable`,`school_id`) VALUES (1914588152174108682,2,1226,1,NULL);

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

@@ -150,6 +150,8 @@ ALTER TABLE `t_sync_data`
     ADD COLUMN `xn` VARCHAR(45) NULL COMMENT '学年(考务)' AFTER `exam_id`,
 ADD COLUMN `xq` VARCHAR(45) NULL COMMENT '学期(考务)' AFTER `xn`;
 
+ALTER TABLE `basic_message` CHANGE COLUMN `mobile_number` `mobile_number` VARCHAR(11) NULL COMMENT '电话号码' ;
+
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('496', 'AI阅卷(开关)', 'OpenAiMark', 'BUTTON', '897', '4', 'AUTH', '1', '0', '1');
 INSERT INTO `sys_role_privilege` (`id`,`role_id`,`privilege_id`,`enable`,`school_id`) VALUES (1914588152174108680,2,1222,1,NULL);
 INSERT INTO `sys_role_privilege` (`id`,`role_id`,`privilege_id`,`enable`,`school_id`) VALUES (1914588152174108681,2,1223,1,NULL);

+ 3 - 3
teachcloud-data/src/main/java/com/qmth/teachcloud/data/DataUtil.java

@@ -121,8 +121,8 @@ public class DataUtil {
             List<T> list;
             int pageNumber = 0;
             do {
-                int offset = pageNumber * PAGE_SIZE + PAGE_SIZE;
-                list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(tClass), pageNumber, offset);
+                int offset = pageNumber * PAGE_SIZE ;
+                list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(tClass), offset, PAGE_SIZE);
                 if (CollectionUtils.isNotEmpty(list)) {
                     listAll.addAll(list);
                     pageNumber++;
@@ -173,7 +173,7 @@ public class DataUtil {
             if (StringUtils.isNotBlank(xq)) {
                 sql.add(" and xqm = \'" + xq + "\'");
             }
-            sql.add(" limit ? ?");
+            sql.add(" limit ?, ?");
         } else {
             sql.add("select * from ");
             sql.add(dataType.getTable());