Browse Source

新生基础信息同步程序调整

dzx 7 months ago
parent
commit
b4d80e2da3

+ 26 - 0
src/main/java/com/xjrsoft/module/base/controller/BaseClassController.java

@@ -1,9 +1,13 @@
 package com.xjrsoft.module.base.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.xjrsoft.common.annotation.XjrLog;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
@@ -11,7 +15,9 @@ import com.xjrsoft.module.base.dto.AddBaseClassPageDto;
 import com.xjrsoft.module.base.dto.BaseClassPageDto;
 import com.xjrsoft.module.base.dto.UpdateBaseClassPageDto;
 import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.entity.BaseClassTeacherChange;
 import com.xjrsoft.module.base.service.IBaseClassService;
+import com.xjrsoft.module.base.service.IBaseClassTeacherChangeService;
 import com.xjrsoft.module.base.vo.BaseClassPageVo;
 import com.xjrsoft.module.base.vo.BaseClassVo;
 import io.swagger.annotations.Api;
@@ -27,6 +33,8 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -41,6 +49,7 @@ import java.util.List;
 @AllArgsConstructor
 public class BaseClassController {
     private final IBaseClassService baseClassService;
+    private final IBaseClassTeacherChangeService classTeacherChangeService;
 
     @GetMapping(value = "/page")
     @ApiOperation(value = "班级列表(分页)")
@@ -57,6 +66,23 @@ public class BaseClassController {
     @SaCheckPermission("baseclass:delete")
     @XjrLog(value = "删除", saveResponseData = true)
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids) {
+        List<BaseClass> classList = baseClassService.listByIds(ids);
+        List<BaseClassTeacherChange> classTeacherChangeList = new ArrayList<>();
+        for (BaseClass baseClass : classList) {
+            classTeacherChangeList.add(
+                    new BaseClassTeacherChange(){{
+                        setClassId(baseClass.getId());
+                        setBeforeTeacherId(baseClass.getTeacherId());
+                        setCreateDate(LocalDateTime.now());
+                        setCreateUserId(StpUtil.getLoginIdAsLong());
+                        setDeleteMark(DeleteMark.NODELETE.getCode());
+                        setEnabledMark(EnabledMark.ENABLED.getCode());
+                    }}
+            );
+        }
+        if(!classTeacherChangeList.isEmpty()){
+            classTeacherChangeService.saveBatch(classTeacherChangeList);
+        }
         return RT.ok(baseClassService.removeByIds(ids));
     }
 

+ 9 - 1
src/main/java/com/xjrsoft/module/base/service/impl/BaseClassServiceImpl.java

@@ -249,7 +249,7 @@ public class BaseClassServiceImpl extends MPJBaseServiceImpl<BaseClassMapper, Ba
             teacherChangeMapper.insert(new BaseClassTeacherChange(){{
                 setClassId(aClass.getId());
                 setAfterTeacherId(aClass.getTeacherId());
-                setAfterTeacherId(dto.getTeacherId());
+                setBeforeTeacherId(dto.getTeacherId());
                 setDeleteMark(DeleteMark.NODELETE.getCode());
                 setEnabledMark(EnabledMark.ENABLED.getCode());
                 setCreateDate(LocalDateTime.now());
@@ -321,6 +321,14 @@ public class BaseClassServiceImpl extends MPJBaseServiceImpl<BaseClassMapper, Ba
                                     .eq(UserRoleRelation::getRoleId, RoleEnum.CLASSTE.getCode())
                     );
                 }
+
+                teacherChangeMapper.insert(new BaseClassTeacherChange(){{
+                    setClassId(aClass.getId());
+                    setAfterTeacherId(aClass.getTeacherId());
+                    setDeleteMark(DeleteMark.NODELETE.getCode());
+                    setEnabledMark(EnabledMark.ENABLED.getCode());
+                    setCreateDate(LocalDateTime.now());
+                }});
             }
             CompletableFuture.runAsync(() -> {
                 List<UserRoleRelation> userRoleRelationList = roleRelationService.list(Wrappers.lambdaQuery(UserRoleRelation.class));

+ 0 - 2
src/main/java/com/xjrsoft/module/job/BaseNewStudentTask.java

@@ -153,8 +153,6 @@ public class BaseNewStudentTask {
                 existsNewStudent.setSecondAmbitionId(majorSetNameMap.get(feeobjupdate.getZytjspec()));
                 existsNewStudent.setGender(GenderDictionaryEnum.getCode(feeobjupdate.getSex()));
                 existsNewStudent.setModifyDate(new Date());
-                existsNewStudent.setStatus(0);
-                existsNewStudent.setIsCanBanding(1);
                 existsNewStudent.setEnrollmentPlanId(planId);
 
                 updateList.add(existsNewStudent);

+ 47 - 1
src/main/java/com/xjrsoft/module/job/ClassGraduateTask.java

@@ -1,12 +1,25 @@
 package com.xjrsoft.module.job;
 
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.enums.EnabledMark;
+import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.entity.BaseClassTeacherChange;
+import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.service.IBaseClassService;
+import com.xjrsoft.module.base.service.IBaseClassTeacherChangeService;
 import com.xjrsoft.module.base.service.IBaseGradeService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 自动别业班级
  * @author dzx
@@ -22,6 +35,9 @@ public class ClassGraduateTask {
     @Autowired
     private IBaseGradeService gradeService;
 
+    @Autowired
+    private IBaseClassTeacherChangeService classTeacherChangeService;
+
     @Scheduled(cron = "0 */15 23 30 6 ?")
     public void execute() {
         doExecute();
@@ -31,7 +47,37 @@ public class ClassGraduateTask {
      * 根据年级自动毕业班级和学生
      */
     public void doExecute() {
-
+        LocalDateTime now = LocalDateTime.now();
+        List<BaseGrade> gradeList = gradeService.list(
+                new QueryWrapper<BaseGrade>().lambda()
+                        .eq(BaseGrade::getDeleteMark, DeleteMark.NODELETE.getCode())
+                        .eq(BaseGrade::getStatus, 1)
+                        .last("limit 4")
+        );
+        List<Long> gradeIds = gradeList.stream().map(BaseGrade::getId).collect(Collectors.toList());
+        List<BaseClass> classList = classService.list(
+                new QueryWrapper<BaseClass>().lambda()
+                        .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
+                        .eq(BaseClass::getIsGraduate, 1)
+                        .notIn(!gradeIds.isEmpty(), BaseClass::getGradeId, gradeIds)
+        );
+        //毕业后,记录班主任异动记录
+        List<BaseClassTeacherChange> classTeacherChangeList = new ArrayList<>();
+        for (BaseClass baseClass : classList) {
+            classTeacherChangeList.add(
+                    new BaseClassTeacherChange(){{
+                        setClassId(baseClass.getId());
+                        setBeforeTeacherId(baseClass.getTeacherId());
+                        setCreateDate(LocalDateTime.now());
+                        setCreateUserId(StpUtil.getLoginIdAsLong());
+                        setDeleteMark(DeleteMark.NODELETE.getCode());
+                        setEnabledMark(EnabledMark.ENABLED.getCode());
+                    }}
+            );
+        }
+        if(!classTeacherChangeList.isEmpty()){
+            classTeacherChangeService.saveBatch(classTeacherChangeList);
+        }
     }
 
 }