Ver Fonte

修改分组查询

snihwxf há 1 mês atrás
pai
commit
5a1de11a05

+ 1 - 1
src/main/java/com/xjrsoft/module/classtime/controller/ClassCourseTimeStatisticsSetGroupController.java

@@ -101,7 +101,7 @@ public class ClassCourseTimeStatisticsSetGroupController {
     @SaCheckPermission("classcoursetimestatisticssetgroup:delete")
     @XjrLog(value = "删除课时统计-班级课程分组设置")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(classCourseTimeStatisticsSetGroupService.removeBatchByIds(ids));
+        return RT.ok(classCourseTimeStatisticsSetService.delete(ids));
 
     }
 

+ 2 - 0
src/main/java/com/xjrsoft/module/classtime/service/IClassCourseTimeStatisticsSetService.java

@@ -27,4 +27,6 @@ public interface IClassCourseTimeStatisticsSetService extends MPJBaseService<Cla
     boolean edit(UpdateClassCourseTimeStatisticsSetGroupDto dto);
 
     boolean addDef(AddClassCourseTimeStatisticsSetDto dto);
+
+    boolean delete(List<Long> ids);
 }

+ 77 - 0
src/main/java/com/xjrsoft/module/classtime/service/impl/ClassCourseTimeStatisticsSetServiceImpl.java

@@ -32,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -174,6 +175,50 @@ public class ClassCourseTimeStatisticsSetServiceImpl extends MPJBaseServiceImpl<
         List<BaseClass> baseClassList = baseClassService.list();
         List<BaseCourseSubject> baseCourseSubjectList = baseCourseSubjectService.list();
 
+        ClassCourseTimeStatisticsSetGroup classCourseTimeStatisticsSetGroup=  classCourseTimeStatisticsSetGroupService.getById(dto.getId());
+
+        List<Long> soruceClassIds = Arrays.stream(classCourseTimeStatisticsSetGroup.getClassIds().split(","))
+                .map(String::trim)
+                .map(Long::valueOf)
+                .collect(Collectors.toList());
+
+        List<Long> soruceCourseIds = Arrays.stream(classCourseTimeStatisticsSetGroup.getCourseIds().split(","))
+                .map(String::trim)
+                .map(Long::valueOf)
+                .collect(Collectors.toList());
+
+        List<Long> deleteClassIds=soruceClassIds.stream()
+                .filter(element -> !dto.getClassIds().contains(element))
+                .collect(Collectors.toList());
+
+
+        List<Long> deleteCourseIds=soruceCourseIds.stream()
+                .filter(element -> !dto.getCourseIds().contains(element))
+                .collect(Collectors.toList());
+
+        if(!deleteClassIds.isEmpty()) {
+            for (Long classId : deleteClassIds) {
+                for (Long courseId : soruceCourseIds) {
+                    classCourseTimeStatisticsSetMapper.delete(new QueryWrapper<ClassCourseTimeStatisticsSet>()
+                            .lambda()
+                            .eq(ClassCourseTimeStatisticsSet::getClassId, classId)
+                            .eq(ClassCourseTimeStatisticsSet::getCourseId, courseId));
+                }
+            }
+        }
+
+        if(!deleteCourseIds.isEmpty()) {
+            for (Long courseId : deleteCourseIds) {
+                for (Long classId : soruceClassIds) {
+                    classCourseTimeStatisticsSetMapper.delete(new QueryWrapper<ClassCourseTimeStatisticsSet>()
+                            .lambda()
+                            .eq(ClassCourseTimeStatisticsSet::getClassId, classId)
+                            .eq(ClassCourseTimeStatisticsSet::getCourseId, courseId));
+                }
+            }
+        }
+
+
         for (Long classId : dto.getClassIds()) {
             for (Long courseId : dto.getCourseIds()) {
 
@@ -245,4 +290,36 @@ public class ClassCourseTimeStatisticsSetServiceImpl extends MPJBaseServiceImpl<
         }});
         return true;
     }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean delete(List<Long> ids) {
+
+        for (Long id : ids) {
+            ClassCourseTimeStatisticsSetGroup classCourseTimeStatisticsSetGroup = classCourseTimeStatisticsSetGroupService.getById(id);
+
+            List<Long> soruceClassIds = Arrays.stream(classCourseTimeStatisticsSetGroup.getClassIds().split(","))
+                    .map(String::trim)
+                    .map(Long::valueOf)
+                    .collect(Collectors.toList());
+
+            List<Long> soruceCourseIds = Arrays.stream(classCourseTimeStatisticsSetGroup.getCourseIds().split(","))
+                    .map(String::trim)
+                    .map(Long::valueOf)
+                    .collect(Collectors.toList());
+
+            for (Long classId : soruceClassIds) {
+                for (Long courseId : soruceCourseIds) {
+                    classCourseTimeStatisticsSetMapper.delete(new QueryWrapper<ClassCourseTimeStatisticsSet>()
+                            .lambda()
+                            .eq(ClassCourseTimeStatisticsSet::getClassId, classId)
+                            .eq(ClassCourseTimeStatisticsSet::getCourseId, courseId));
+                }
+            }
+        }
+        classCourseTimeStatisticsSetGroupService.removeBatchByIds(ids);
+
+        return true;
+    }
 }

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

@@ -54,7 +54,7 @@
         t8.name as major_set_name,t1.major_set_id FROM base_class t1
         LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
         LEFT JOIN xjr_dictionary_detail t3 ON t3.code = t1.enroll_type AND t3.item_id = 2023000000000000027
-        LEFT JOIN xjr_dictionary_detail t5 ON t5.code = t1.class_type AND t5.item_id = 1784405535724978177
+        LEFT JOIN xjr_dictionary_detail t5 ON t5.code = t1.class_type AND t5.item_id = 2023000000000000039
         LEFT JOIN base_grade t4 ON t1.grade_id = t4.id
         LEFT JOIN base_classroom t6 ON t1.classroom_id = t6.id
         LEFT JOIN xjr_department t7 ON t1.org_id = t7.id