dzx пре 9 месеци
родитељ
комит
abc3e2e3d3

+ 45 - 0
src/main/java/com/xjrsoft/common/enums/LearnStatusEnum.java

@@ -0,0 +1,45 @@
+package com.xjrsoft.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @description: 学籍形式learn_status
+ * @author: dzx
+ * @create: 2025年2月28日
+ * @Version 1.0
+ */
+public enum LearnStatusEnum {
+
+    FB3101("FB3101", "全日制"),
+
+    FB3102("FB3102", "非全日制");
+
+    final String code;
+    final String value;
+
+    private static final Map<String, String> lookup = new HashMap<>();
+
+    static {
+        for (LearnStatusEnum s : LearnStatusEnum.values()) {
+            lookup.put(s.getCode(), s.getValue());
+        }
+    }
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    LearnStatusEnum(final String code, final String message) {
+        this.code = code;
+        this.value = message;
+    }
+
+    public static String fromCode(String code) {
+        return lookup.get(code);
+    }
+}

+ 46 - 0
src/main/java/com/xjrsoft/common/enums/StudentTypeEnum.java

@@ -0,0 +1,46 @@
+package com.xjrsoft.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @description: 学生类别student_type
+ * @author: dzx
+ * @create: 2025年2月28日
+ * @Version 1.0
+ */
+public enum StudentTypeEnum {
+    FB2801("FB2801", "普惠制学生"),
+
+    FB2802("FB2802", "建卡、低保、特困学生"),
+
+    FB2803("FB2803", "其他贫困学生");
+
+    final String code;
+    final String value;
+
+    private static final Map<String, String> lookup = new HashMap<>();
+
+    static {
+        for (StudentTypeEnum s : StudentTypeEnum.values()) {
+            lookup.put(s.getCode(), s.getValue());
+        }
+    }
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    StudentTypeEnum(final String code, final String message) {
+        this.code = code;
+        this.value = message;
+    }
+
+    public static String fromCode(String code) {
+        return lookup.get(code);
+    }
+}

+ 2 - 0
src/main/java/com/xjrsoft/module/student/service/IStudentChangeRecordService.java

@@ -27,4 +27,6 @@ public interface IStudentChangeRecordService extends MPJBaseService<StudentChang
 
     Page<StudentChangeRecordPageVo> getPage(Page<StudentChangeRecordPageVo> page, StudentChangeRecordPageDto dto);
 
+    Boolean insertDataByStudentUpdate(BaseStudentSchoolRoll beforeRoll, BaseStudentSchoolRoll afterRoll);
+
 }

+ 99 - 0
src/main/java/com/xjrsoft/module/student/service/impl/StudentChangeRecordServiceImpl.java

@@ -1,12 +1,16 @@
 package com.xjrsoft.module.student.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.db.Entity;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.ArchivesStatusEnum;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.EnabledMark;
+import com.xjrsoft.common.enums.LearnStatusEnum;
 import com.xjrsoft.common.enums.RoomApplicantTypeEnum;
 import com.xjrsoft.common.enums.StudentChangeTypeEnum;
+import com.xjrsoft.common.enums.StudentTypeEnum;
 import com.xjrsoft.common.enums.StudyStatusEnum;
 import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
 import com.xjrsoft.module.base.entity.BaseClass;
@@ -24,7 +28,9 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -163,4 +169,97 @@ public class StudentChangeRecordServiceImpl extends MPJBaseServiceImpl<StudentCh
         return this.baseMapper.getPage(page, dto);
     }
 
+    @Override
+    public Boolean insertDataByStudentUpdate(BaseStudentSchoolRoll beforeRoll, BaseStudentSchoolRoll afterRoll) {
+        List<StudentChangeRecord> insertList = new ArrayList<>();
+        if(!beforeRoll.getClassId().equals(afterRoll.getClassId())){
+            BaseClass afterClass = classService.getById(afterRoll.getClassId());
+            BaseClass beforeClass = classService.getById(beforeRoll.getClassId());
+
+            StudentChangeRecord record = new StudentChangeRecord() {{
+                setAfterData(afterClass.getName());
+                setAfterDataCode(afterClass.getId().toString());
+                setBeforeData(beforeClass.getName());
+                setBeforeDataCode(beforeClass.getId().toString());
+                setChangeType(StudentChangeTypeEnum.ChangeClass.getCode());
+                setUserId(beforeRoll.getUserId());
+                setCreateDate(new Date());
+                setDeleteMark(DeleteMark.NODELETE.getCode());
+                setEnabledMark(EnabledMark.ENABLED.getCode());
+                setCreateUserId(StpUtil.getLoginIdAsLong());
+                setOperateMode(2);
+            }};
+            insertList.add(record);
+        }
+
+        if(!beforeRoll.getArchivesStatus().equals(afterRoll.getArchivesStatus())){
+            StudentChangeRecord record = new StudentChangeRecord() {{
+                setAfterData(ArchivesStatusEnum.fromCode(afterRoll.getArchivesStatus()));
+                setAfterDataCode(afterRoll.getArchivesStatus());
+                setBeforeData(ArchivesStatusEnum.fromCode(beforeRoll.getArchivesStatus()));
+                setBeforeDataCode(beforeRoll.getArchivesStatus());
+                setChangeType(StudentChangeTypeEnum.ArchivesStatus.getCode());
+                setUserId(beforeRoll.getUserId());
+                setCreateDate(new Date());
+                setDeleteMark(DeleteMark.NODELETE.getCode());
+                setEnabledMark(EnabledMark.ENABLED.getCode());
+                setCreateUserId(StpUtil.getLoginIdAsLong());
+                setOperateMode(2);
+            }};
+            insertList.add(record);
+        }
+        if(!beforeRoll.getStudentType().equals(afterRoll.getStudentType())){
+            StudentChangeRecord record = new StudentChangeRecord() {{
+                setAfterData(StudentTypeEnum.fromCode(afterRoll.getStudentType()));
+                setAfterDataCode(afterRoll.getStudentType());
+                setBeforeData(StudentTypeEnum.fromCode(beforeRoll.getStudentType()));
+                setBeforeDataCode(beforeRoll.getStudentType());
+                setChangeType(StudentChangeTypeEnum.StudentType.getCode());
+                setUserId(beforeRoll.getUserId());
+                setCreateDate(new Date());
+                setDeleteMark(DeleteMark.NODELETE.getCode());
+                setEnabledMark(EnabledMark.ENABLED.getCode());
+                setCreateUserId(StpUtil.getLoginIdAsLong());
+                setOperateMode(2);
+            }};
+            insertList.add(record);
+        }
+
+        if(!beforeRoll.getStduyStatus().equals(afterRoll.getStduyStatus())){
+            StudentChangeRecord record = new StudentChangeRecord() {{
+                setAfterData(StudyStatusEnum.fromCode(afterRoll.getStduyStatus()));
+                setAfterDataCode(afterRoll.getStduyStatus());
+                setBeforeData(StudyStatusEnum.fromCode(beforeRoll.getStduyStatus()));
+                setBeforeDataCode(beforeRoll.getStduyStatus());
+                setChangeType(StudentChangeTypeEnum.StduyStatus.getCode());
+                setUserId(beforeRoll.getUserId());
+                setCreateDate(new Date());
+                setDeleteMark(DeleteMark.NODELETE.getCode());
+                setEnabledMark(EnabledMark.ENABLED.getCode());
+                setCreateUserId(StpUtil.getLoginIdAsLong());
+                setOperateMode(2);
+            }};
+            insertList.add(record);
+        }
+
+        if(!beforeRoll.getLearnStatus().equals(afterRoll.getLearnStatus())){
+            StudentChangeRecord record = new StudentChangeRecord() {{
+                setAfterData(LearnStatusEnum.fromCode(afterRoll.getLearnStatus()));
+                setAfterDataCode(afterRoll.getLearnStatus());
+                setBeforeData(LearnStatusEnum.fromCode(beforeRoll.getLearnStatus()));
+                setBeforeDataCode(beforeRoll.getLearnStatus());
+                setChangeType(StudentChangeTypeEnum.LearnStatus.getCode());
+                setUserId(beforeRoll.getUserId());
+                setCreateDate(new Date());
+                setDeleteMark(DeleteMark.NODELETE.getCode());
+                setEnabledMark(EnabledMark.ENABLED.getCode());
+                setCreateUserId(StpUtil.getLoginIdAsLong());
+                setOperateMode(2);
+            }};
+            insertList.add(record);
+        }
+
+        return this.saveBatch(insertList);
+    }
+
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java

@@ -63,6 +63,7 @@ import com.xjrsoft.module.student.service.IBaseStudentFamilyService;
 import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
 import com.xjrsoft.module.student.service.IBaseStudentService;
 import com.xjrsoft.module.student.service.IBaseStudentSubsidizeService;
+import com.xjrsoft.module.student.service.IStudentChangeRecordService;
 import com.xjrsoft.module.student.service.IStudentManagerService;
 import com.xjrsoft.module.student.vo.BaseClassMajorSetVo;
 import com.xjrsoft.module.student.vo.BaseDepMajorGradeClassStudenTreeVo;
@@ -139,6 +140,8 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
 
     private final IBaseGradeService baseGradeService;
     private IDictionarydetailService dictionarydetailService;
+    private final IStudentChangeRecordService recordService;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -405,6 +408,9 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
             for (BaseStudentSchoolRoll baseStudentSchoolRoll : baseStudentUser.getBaseStudentSchoolRollList()) {
                 //如果不等于空则修改
                 if (baseStudentSchoolRoll.getId() != null) {
+                    BaseStudentSchoolRoll beforeRoll = schoolRollService.getById(baseStudentSchoolRoll.getId());
+                    recordService.insertDataByStudentUpdate(beforeRoll, baseStudentSchoolRoll);
+
                     schoolRollService.updateById(baseStudentSchoolRoll);
                 }
                 //如果等于空 则新增