Browse Source

导出报错完善

brealinxx 9 months ago
parent
commit
ca9574fd57

+ 32 - 14
src/main/java/com/xjrsoft/module/base/controller/BaseClassCourseController.java

@@ -159,25 +159,43 @@ public class BaseClassCourseController {
         List<BaseClassCoursePageVo> savedDataList = EasyExcel.read(file.getInputStream()).head(BaseClassCoursePageVo.class).sheet().doReadSync();
 
         List<BaseClassCourse> baseClassCourses = new ArrayList<>();
+        List<String> duplicateLogs = new ArrayList<>();
+        List<String> errorLogs = new ArrayList<>();
+
         for (BaseClassCoursePageVo vo : savedDataList) {
-            Long classId = Long.parseLong(baseClassCourseService.GetClassIdByName(vo.getClassName()).toString());
-            Long courseId = Long.parseLong(baseClassCourseService.GetCourseIdByName(vo.getCourseName()).toString());
-            Long textbookId = Long.parseLong(baseClassCourseService.GetTextbookIdByName(vo.getTextbookName()).toString());
-
-            if (baseClassCourseService.checkExits(classId, courseId, textbookId)) continue;
-
-            if (classId != null && courseId != null && textbookId != null) {
-                BaseClassCourse baseClassCourse = new BaseClassCourse();
-                baseClassCourse.setClassId(classId);
-                baseClassCourse.setCourseId(courseId);
-                baseClassCourse.setTextbookId(textbookId);
-                baseClassCourse.setCreateDate(new Date());
-                baseClassCourse.setDeleteMark(0);
-                baseClassCourses.add(baseClassCourse);
+            try {
+                Long classId = Long.parseLong(baseClassCourseService.GetClassIdByName(vo.getClassName()).toString());
+                Long courseId = Long.parseLong(baseClassCourseService.GetCourseIdByName(vo.getCourseName()).toString());
+                Long textbookId = Long.parseLong(baseClassCourseService.GetTextbookIdByName(vo.getTextbookName()).toString());
+
+                if (baseClassCourseService.checkExits(classId, courseId, textbookId)) {
+                    duplicateLogs.add(String.format("输入的信息重复添加: %s, Course: %s, Textbook: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
+                    continue;
+                }
+
+                if (classId != null && courseId != null && textbookId != null) {
+                    BaseClassCourse baseClassCourse = new BaseClassCourse();
+                    baseClassCourse.setClassId(classId);
+                    baseClassCourse.setCourseId(courseId);
+                    baseClassCourse.setTextbookId(textbookId);
+                    baseClassCourse.setCreateDate(new Date());
+                    baseClassCourse.setDeleteMark(0);
+                    baseClassCourses.add(baseClassCourse);
+                }
+            } catch (NumberFormatException e) {
+                errorLogs.add(String.format("无法解析输入的信息: %s, Course: %s, Textbook: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
+            } catch (Exception e) {
+                errorLogs.add(String.format("Unexpected error for Class: %s, Course: %s, Textbook: %s - %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName(), e.getMessage()));
             }
         }
 
         Boolean result = baseClassCourseService.saveBatch(baseClassCourses);
+
+        if (!duplicateLogs.isEmpty() || !errorLogs.isEmpty()) {
+            String detailedMessage = String.format("导入完成但存在问题. Duplicates: %s. Errors: %s", String.join("; ", duplicateLogs), String.join("; ", errorLogs));
+            return RT.error(400, detailedMessage);
+        }
+
         return RT.ok(result);
     }
 

+ 2 - 2
src/main/java/com/xjrsoft/module/hikvision/controller/EventController.java

@@ -148,8 +148,8 @@ public class EventController {
 //*******手动更改****************************************************
 //        eventList.add(196893); //人脸匹配成功
 //        eventList.add(197151); //人脸匹配失败
-        eventList.add(771760130); //入场放行事件
-        eventList.add(771760133); //出场放行事件
+        eventList.add(771760130); //车辆入场压线事件
+        eventList.add(771760133); //车辆出场压线事件
         paramJson.addProperty("eventDest", hikvisionConfig.getCarUrl()); //要修改第二个参数
 //******************************************************************
         paramJson.add("eventTypes", eventList);

+ 1 - 1
src/main/resources/mapper/base/BaseClassCourse.xml

@@ -36,7 +36,7 @@
             HAVING LENGTH(course_name) > 0
         </if>
         <if test="dto.courseSet == 2">
-            HAVING LENGTH(course_name) = 0
+            HAVING COALESCE(LENGTH(course_name), 0) = 0
         </if>
     </select>