|
@@ -0,0 +1,156 @@
|
|
|
+package com.xjrsoft.module.student.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.db.Entity;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
+import com.xjrsoft.common.enums.RoomApplicantTypeEnum;
|
|
|
+import com.xjrsoft.common.enums.StudentChangeTypeEnum;
|
|
|
+import com.xjrsoft.common.enums.StudyStatusEnum;
|
|
|
+import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
|
|
|
+import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
+import com.xjrsoft.module.base.service.IBaseClassService;
|
|
|
+import com.xjrsoft.module.room.entity.WfRoomApplicant;
|
|
|
+import com.xjrsoft.module.student.dto.StudentChangeRecordPageDto;
|
|
|
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
|
|
|
+import com.xjrsoft.module.student.entity.StudentChangeClass;
|
|
|
+import com.xjrsoft.module.student.entity.StudentChangeRecord;
|
|
|
+import com.xjrsoft.module.student.mapper.StudentChangeClassMapper;
|
|
|
+import com.xjrsoft.module.student.mapper.StudentChangeRecordMapper;
|
|
|
+import com.xjrsoft.module.student.service.IStudentChangeRecordService;
|
|
|
+import com.xjrsoft.module.student.vo.StudentChangeRecordPageVo;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+* @title: 学生异动记录表
|
|
|
+* @Author dzx
|
|
|
+* @Date: 2025-01-20
|
|
|
+* @Version 1.0
|
|
|
+*/
|
|
|
+@Service
|
|
|
+@AllArgsConstructor
|
|
|
+public class StudentChangeRecordServiceImpl extends MPJBaseServiceImpl<StudentChangeRecordMapper, StudentChangeRecord> implements IStudentChangeRecordService {
|
|
|
+
|
|
|
+ private final StudentChangeClassMapper studentChangeClassMapper;
|
|
|
+ private final IBaseClassService classService;
|
|
|
+ /**
|
|
|
+ * 记录转班异动数据
|
|
|
+ * @param formId 转班流程表的id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean insertDataByChangeClass(Long formId) {
|
|
|
+ StudentChangeClass changeClass = studentChangeClassMapper.selectById(formId);
|
|
|
+
|
|
|
+ BaseClass afterClass = classService.getById(changeClass.getAfterClassId());
|
|
|
+ BaseClass beforeClass = classService.getById(changeClass.getBeforeClassId());
|
|
|
+
|
|
|
+ StudentChangeRecord record = new StudentChangeRecord() {{
|
|
|
+ setAfterData(afterClass.getName());
|
|
|
+ setAfterDataCode(changeClass.getAfterClassId().toString());
|
|
|
+ setBeforeData(beforeClass.getName());
|
|
|
+ setBeforeDataCode(changeClass.getBeforeClassId().toString());
|
|
|
+ setChangeType(StudentChangeTypeEnum.ChangeClass.getCode());
|
|
|
+ setUserId(changeClass.getStudentUserId());
|
|
|
+ setCreateDate(new Date());
|
|
|
+ setCreateUserId(changeClass.getCreateUserId());
|
|
|
+ setOperateMode(2);
|
|
|
+ }};
|
|
|
+
|
|
|
+ return this.save(record);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 临时转班异动数据记录
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean insertDataByTemporaryChangeClass(Long formId) {
|
|
|
+ String tableName = "temporary_change_class";
|
|
|
+ Entity entity = Entity.create(tableName);
|
|
|
+ entity.set("id", formId);
|
|
|
+ Map<String, Object> objectMap = SqlRunnerAdapter.db().dynamicSelectOne(tableName, entity);
|
|
|
+
|
|
|
+ BaseClass afterClass = classService.getById(objectMap.get("after_class_id").toString());
|
|
|
+ BaseClass beforeClass = classService.getById(objectMap.get("before_class_id").toString());
|
|
|
+
|
|
|
+ StudentChangeRecord record = new StudentChangeRecord() {{
|
|
|
+ setAfterData(afterClass.getName());
|
|
|
+ setAfterDataCode(afterClass.getId().toString());
|
|
|
+ setBeforeData(beforeClass.getName());
|
|
|
+ setBeforeDataCode(beforeClass.getId().toString());
|
|
|
+ setChangeType(StudentChangeTypeEnum.ChangeClass.getCode());
|
|
|
+ setUserId(Long.parseLong(objectMap.get("student_user_id").toString()));
|
|
|
+ setCreateDate(new Date());
|
|
|
+ setCreateUserId(Long.parseLong(objectMap.get("create_user_id").toString()));
|
|
|
+ setOperateMode(2);
|
|
|
+ }};
|
|
|
+
|
|
|
+ return this.save(record);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean insertDataByWfRoomApplicant(WfRoomApplicant wfRoomApplicant, BaseStudentSchoolRoll schoolRoll) {
|
|
|
+
|
|
|
+ StudentChangeRecord record = new StudentChangeRecord() {{
|
|
|
+
|
|
|
+ if(RoomApplicantTypeEnum.ToBeBoarder.getCode().equals(wfRoomApplicant.getRecedeType())){
|
|
|
+ setAfterData(StudyStatusEnum.InResidence.getValue());
|
|
|
+ setAfterDataCode(StudyStatusEnum.InResidence.getCode());
|
|
|
+ }else if(RoomApplicantTypeEnum.ToBeDayPupil.getCode().equals(wfRoomApplicant.getRecedeType())){
|
|
|
+ setAfterData(StudyStatusEnum.AttendDaySchool.getValue());
|
|
|
+ setAfterDataCode(StudyStatusEnum.AttendDaySchool.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ setBeforeData(schoolRoll.getStduyStatus());
|
|
|
+ setBeforeDataCode(StudyStatusEnum.fromCode(schoolRoll.getStduyStatus()));
|
|
|
+ setChangeType(StudentChangeTypeEnum.StduyStatus.getCode());
|
|
|
+ setUserId(schoolRoll.getUserId());
|
|
|
+ setCreateDate(new Date());
|
|
|
+ setCreateUserId(wfRoomApplicant.getCreateUserId());
|
|
|
+ setOperateMode(2);
|
|
|
+ }};
|
|
|
+
|
|
|
+ return this.save(record);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param beforeData 变更之前的数据
|
|
|
+ * @param beforeDataCode 变更之前的数据code
|
|
|
+ * @param afterData 变更之后的数据
|
|
|
+ * @param afterDataCode 变更之后的数据code
|
|
|
+ * @param userId 学生id
|
|
|
+ * @param createUserId 操作人id
|
|
|
+ * @param changeType 变更类型
|
|
|
+ * @param operateMode 操作方式
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean insertData(String beforeData, String beforeDataCode, String afterData, String afterDataCode, Long userId, Long createUserId, String changeType, Integer operateMode) {
|
|
|
+ StudentChangeRecord record = new StudentChangeRecord() {{
|
|
|
+ setAfterData(afterData);
|
|
|
+ setAfterDataCode(afterDataCode);
|
|
|
+ setBeforeData(beforeData);
|
|
|
+ setBeforeDataCode(beforeDataCode);
|
|
|
+ setChangeType(changeType);
|
|
|
+ setUserId(userId);
|
|
|
+ setCreateDate(new Date());
|
|
|
+ setCreateUserId(createUserId);
|
|
|
+ setOperateMode(operateMode);
|
|
|
+ }};
|
|
|
+
|
|
|
+ return this.save(record);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<StudentChangeRecordPageVo> getPage(Page<StudentChangeRecordPageVo> page, StudentChangeRecordPageDto dto) {
|
|
|
+ return this.baseMapper.getPage(page, dto);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|