Browse Source

Merge remote-tracking branch 'origin/dev' into dev

大数据与最优化研究所 8 tháng trước cách đây
mục cha
commit
9e44943e0e

+ 1 - 1
src/main/java/com/xjrsoft/module/base/dto/BaseClassPageDto.java

@@ -39,7 +39,7 @@ public class BaseClassPageDto extends PageInput {
     private Long teacherId;
 
     @ApiModelProperty("在读状态(1: 在读 2: 毕业)")
-    private Integer isGraduate;
+    private Integer isGraduate = 1;
 
     @ApiModelProperty("是否订单班(1: 是 0: 否)")
     private Integer isOrderClass;

+ 2 - 0
src/main/java/com/xjrsoft/module/base/service/IBaseClassService.java

@@ -31,4 +31,6 @@ public interface IBaseClassService extends MPJBaseService<BaseClass> {
     Boolean addClass(AddBaseClassPageDto dto);
 
     Boolean updateClass(UpdateBaseClassPageDto dto);
+
+    String initClassCode(Long gradeId);
 }

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

@@ -20,7 +20,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.BaseGrade;
 import com.xjrsoft.module.base.mapper.BaseClassMapper;
+import com.xjrsoft.module.base.mapper.BaseGradeMapper;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.base.vo.BaseClassPageVo;
 import com.xjrsoft.module.base.vo.StudentClassVo;
@@ -59,6 +61,8 @@ public class BaseClassServiceImpl extends MPJBaseServiceImpl<BaseClassMapper, Ba
 
     private final IBandingTaskClassService bandingTaskClassService;
 
+    private final BaseGradeMapper gradeMapper;
+
     /**
      * 获取家长关联的学生 id 是家长的ID
      *
@@ -161,6 +165,7 @@ public class BaseClassServiceImpl extends MPJBaseServiceImpl<BaseClassMapper, Ba
         baseClass.setCreateDate(new Date());
         baseClass.setEnabledMark(EnabledMark.ENABLED.getCode());
         baseClass.setCreateUserId(StpUtil.getLoginIdAsLong());
+        baseClass.setCode(initClassCode(baseClass.getGradeId()));
         if (baseClass.getTeacherId() != null) {
             //查询该班主任是否是其他在读班级
             long count = this.count(
@@ -224,10 +229,21 @@ public class BaseClassServiceImpl extends MPJBaseServiceImpl<BaseClassMapper, Ba
                             .ne(BaseClass::getId, dto.getId())
             );
             if (count > 0) {
-                throw new MyException("该老师已是其他在读班级班主任,无法添加");
+                throw new MyException("该老师已是其他在读班级班主任,无法修改");
+            }
+        }
+        if(!aClass.getCode().equals(dto.getCode())){
+            List<BaseClass> list = this.list(
+                    new QueryWrapper<BaseClass>().lambda()
+                            .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
+                            .eq(BaseClass::getCode, dto.getCode())
+            );
+            if(!list.isEmpty()){
+                throw new MyException("班级编码已存在,无法修改");
             }
         }
 
+
         BaseClass baseClass = BeanUtil.toBean(dto, BaseClass.class);
         baseClass.setModifyDate(new Date());
         baseClass.setModifyUserId(StpUtil.getLoginIdAsLong());
@@ -291,4 +307,28 @@ public class BaseClassServiceImpl extends MPJBaseServiceImpl<BaseClassMapper, Ba
         return update;
     }
 
+    /**
+     * 根据年级,查询并生成最新的classCode
+     * @param gradeId 年级id
+     * @return classCode
+     */
+    @Override
+    public String initClassCode(Long gradeId) {
+        BaseGrade baseGrade = gradeMapper.selectById(gradeId);
+        String year = baseGrade.getTitle().replace("年", "");
+        List<BaseClass> list = this.list(
+                new QueryWrapper<BaseClass>().lambda()
+                        .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
+                        .eq(BaseClass::getGradeId, gradeId)
+                        .orderByDesc(BaseClass::getCode)
+        );
+        if(!list.isEmpty()){
+            String code = list.get(0).getCode();
+            code = code.trim().substring(code.length() - 3);
+
+            return year + String.format("%03d", Integer.parseInt(code) + 1);
+        }
+        return year + "001";
+    }
+
 }

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

@@ -122,7 +122,7 @@ public class BaseNewStudentTask {
         List<BaseNewStudent> insertList = new ArrayList<>();
         for (PbCseFeeobjupdate feeobjupdate : dataList) {
             BaseNewStudent existsNewStudent = existsNewStudentMap.get(feeobjupdate.getPersonalid());
-
+            Long planId = planMap.get(feeobjupdate.getEnteryear() + feeobjupdate.getUserdef6());
             if (existsNewStudent != null) {
                 existsNewStudent.setName(feeobjupdate.getFeeobjname());
                 existsNewStudent.setPaymnystate(feeobjupdate.getPaymnystate());
@@ -155,12 +155,12 @@ public class BaseNewStudentTask {
                 existsNewStudent.setModifyDate(new Date());
                 existsNewStudent.setStatus(0);
                 existsNewStudent.setIsCanBanding(1);
+                existsNewStudent.setEnrollmentPlanId(planId);
 
                 updateList.add(existsNewStudent);
                 continue;
             }
 
-            Long planId = planMap.get(feeobjupdate.getEnteryear() + feeobjupdate.getUserdef6());
             insertList.add(
                     new BaseNewStudent() {{
                         setCredentialNumber(feeobjupdate.getPersonalid());

+ 25 - 23
src/main/java/com/xjrsoft/module/room/mapper/RoomBedMapper.java

@@ -2,11 +2,30 @@ package com.xjrsoft.module.room.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
-import com.xjrsoft.module.room.dto.*;
+import com.xjrsoft.module.room.dto.AdjustBedPageDto;
+import com.xjrsoft.module.room.dto.AdjustClassPageDto;
+import com.xjrsoft.module.room.dto.DistributeClassPageDto;
+import com.xjrsoft.module.room.dto.DistributeRoomBedDto;
+import com.xjrsoft.module.room.dto.DistributeRoomBedPageDto;
+import com.xjrsoft.module.room.dto.RoomBedPageDto;
 import com.xjrsoft.module.room.entity.RoomBed;
-import com.xjrsoft.module.room.vo.*;
+import com.xjrsoft.module.room.vo.AdjustBedClassPageVo;
+import com.xjrsoft.module.room.vo.AdjustBedClassStudentPageVo;
+import com.xjrsoft.module.room.vo.AdjustBedStudentPageVo;
+import com.xjrsoft.module.room.vo.ClassStudentCountVo;
+import com.xjrsoft.module.room.vo.DistributeClassPageVo;
+import com.xjrsoft.module.room.vo.DistributeResultListVo;
+import com.xjrsoft.module.room.vo.DistributeRoomBedPageVo;
+import com.xjrsoft.module.room.vo.NoBedStudentPageVo;
+import com.xjrsoft.module.room.vo.RoomBedExcelVo;
+import com.xjrsoft.module.room.vo.RoomBedInfoVo;
+import com.xjrsoft.module.room.vo.RoomBedPageVo;
+import com.xjrsoft.module.room.vo.RoomBedVo;
+import com.xjrsoft.module.room.vo.StudentPayStatusVo;
+import com.xjrsoft.module.room.vo.TeacherRoomListVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 
@@ -20,17 +39,12 @@ import java.util.List;
 public interface RoomBedMapper extends MPJBaseMapper<RoomBed> {
     /**
      * 返回最大的序号
-     *
-     * @return
      */
     Integer getMaxSortCode();
 
     /**
      * 分页查询
      *
-     * @param page
-     * @param dto
-     * @return
      */
     Page<RoomBedPageVo> getPage(Page<RoomBedPageVo> page, RoomBedPageDto dto);
 
@@ -45,34 +59,24 @@ public interface RoomBedMapper extends MPJBaseMapper<RoomBed> {
     /**
      * 返回分配的结果
      *
-     * @param dto
-     * @return
      */
     List<DistributeResultListVo> getDistributeResult(@Param("dto") DistributeRoomBedDto dto);
 
     /**
      * 调整床位,左边的班级学生信息
      *
-     * @param dto
-     * @return
      */
     List<AdjustBedClassStudentPageVo> getClassStudetBed(@Param("dto") AdjustClassPageDto dto);
 
     /**
      * 调整床位,右边的床位学生信息
      *
-     * @param dto
-     * @return
      */
     List<AdjustBedStudentPageVo> getBedStudentInfo(@Param("dto") AdjustBedPageDto dto);
 
 
     /**
      * 未分配床位的学生信息
-     *
-     * @param page
-     * @param dto
-     * @return
      */
     Page<NoBedStudentPageVo> getNoBedStudent(Page<AdjustBedPageDto> page, AdjustBedPageDto dto);
 
@@ -115,24 +119,18 @@ public interface RoomBedMapper extends MPJBaseMapper<RoomBed> {
     /**
      * 根据用户id查询床位信息
      *
-     * @param id
-     * @return
      */
     RoomBedInfoVo getBedInfoByUserId(Long id);
 
     /**
      * 查询学生的住宿费缴费状态
      *
-     * @param dto
-     * @return
      */
     List<StudentPayStatusVo> getStudentPayStatus(@Param("dto") DistributeRoomBedDto dto);
 
     /**
      * 查询班级id、名称和班主任信息
      *
-     * @param dto
-     * @return
      */
     List<AdjustBedClassPageVo> getClassTeacherInfo(@Param("dto") AdjustClassPageDto dto);
 
@@ -140,4 +138,8 @@ public interface RoomBedMapper extends MPJBaseMapper<RoomBed> {
 
     List<TeacherRoomListVo> getTeacherRoomList(@Param("dto") AdjustBedPageDto dto);
 
+
+    @Update("UPDATE room_bed SET student_user_id = NULL,is_check_in = 0,modify_user_id = #{updateUserId}, modify_date = NOW() WHERE student_user_id = #{studentUserId}")
+    void clearBedInfoByStudentUserId(@Param("studentUserId") Long studentUserId, @Param("updateUserId") Long updateUserId);
+
 }

+ 5 - 0
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentGraduateServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.common.enums.ArchivesStatusEnum;
+import com.xjrsoft.module.room.mapper.RoomBedMapper;
 import com.xjrsoft.module.student.dto.AddBaseStudentGraduateDto;
 import com.xjrsoft.module.student.dto.BaseStudentGraduatePageDto;
 import com.xjrsoft.module.student.entity.BaseStudentGraduate;
@@ -40,6 +41,8 @@ public class BaseStudentGraduateServiceImpl extends MPJBaseServiceImpl<BaseStude
 
     private final IFileService fileService;
 
+    private final RoomBedMapper roomBedMapper;
+
     @Override
     public Page<BaseStudentGraduatePageVo> getPage(Page<BaseStudentGraduatePageDto> page, BaseStudentGraduatePageDto dto) {
         Page<BaseStudentGraduatePageVo> voPage = baseStudentGraduateMapper.getPage(page, dto);
@@ -79,6 +82,8 @@ public class BaseStudentGraduateServiceImpl extends MPJBaseServiceImpl<BaseStude
             setArchivesStatus(ArchivesStatusEnum.FB2907.getCode());
         }}, baseStudentSchoolRollLambdaQueryWrapper);
 
+        //清空该学生的床位信息
+        roomBedMapper.clearBedInfoByStudentUserId(dto.getUserId(), StpUtil.getLoginIdAsLong());
         //保存毕业信息
         this.save(baseStudentGraduate);
         return true;

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

@@ -96,6 +96,7 @@
         <if test="dto.enrollType != null and dto.enrollType != ''">
             and t1.enroll_type = #{dto.enrollType}
         </if>
+        order by t1.name desc
     </select>
 
     <select id="getStudentClass" resultType="com.xjrsoft.module.base.vo.StudentClassVo">