Browse Source

修改学生老师添加部门

DESKTOP-USV654P\pc 9 months ago
parent
commit
b863e942e1

+ 16 - 4
src/main/java/com/xjrsoft/module/student/controller/StudentManagerController.java

@@ -3,9 +3,12 @@ package com.xjrsoft.module.student.controller;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.GenderDictionaryEnum;
@@ -19,6 +22,8 @@ import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.base.service.IBaseGradeService;
 import com.xjrsoft.module.concat.service.IXjrUserService;
+import com.xjrsoft.module.organization.entity.UserDeptRelation;
+import com.xjrsoft.module.organization.service.IUserDeptRelationService;
 import com.xjrsoft.module.room.service.IRoomBedService;
 import com.xjrsoft.module.student.dto.AddBaseStudentUserDto;
 import com.xjrsoft.module.student.dto.BaseStudentUserPageDto;
@@ -51,6 +56,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/student" + "/studentmanager")
@@ -63,6 +69,7 @@ public class StudentManagerController {
     private final IBaseClassService baseClassService;
     private final IXjrUserService xjrUserService;
     private final IRoomBedService roomBedService;
+    private final IUserDeptRelationService userDeptRelationService;
     @GetMapping(value = "/page")
     @ApiOperation(value = "学生列表(分页)")
     @SaCheckPermission("studentmanager:detail")
@@ -155,6 +162,12 @@ public class StudentManagerController {
             roll.setRoomName(roomName);
         }
 
+        List<Long> deptIds = userDeptRelationService.list(Wrappers.lambdaQuery(UserDeptRelation.class)
+                        .eq(UserDeptRelation::getUserId, userVo.getId()))
+                .stream().map(UserDeptRelation::getDeptId).collect(Collectors.toList());
+        String allDeptIdStr = StrUtil.join(StringPool.COMMA, deptIds);
+        userVo.setDepartmentIds(allDeptIdStr);
+
         userVo.setGenderCn(GenderDictionaryEnum.getValue(userVo.getGender()));
         return R.ok(userVo);
     }
@@ -164,8 +177,7 @@ public class StudentManagerController {
     @ApiOperation(value = "新增学生")
     @SaCheckPermission("studentmanager:add")
     public R add(@Valid @RequestBody AddBaseStudentUserDto dto) {
-        BaseStudentUser baseStudentUser = BeanUtil.toBean(dto, BaseStudentUser.class);
-        return R.ok(studentManagerService.add(baseStudentUser));
+        return R.ok(studentManagerService.add(dto));
     }
 
     @PutMapping
@@ -173,8 +185,8 @@ public class StudentManagerController {
     @SaCheckPermission("studentmanager:edit")
     public R update(@Valid @RequestBody UpdateBaseStudentUserDto dto) {
 
-        BaseStudentUser baseStudentUser = BeanUtil.toBean(dto, BaseStudentUser.class);
-        return R.ok(studentManagerService.update(baseStudentUser));
+
+        return R.ok(studentManagerService.update(dto));
 
     }
 

+ 3 - 0
src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentUserDto.java

@@ -113,4 +113,7 @@ public class AddBaseStudentUserDto {
     @ApiModelProperty("baseStudentSubsidize子表")
     private List<AddBaseStudentSubsidizeDto> baseStudentSubsidizeList;
 
+    @ApiModelProperty("部门id")
+    private String departmentIds;
+
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentUserDto.java

@@ -117,4 +117,7 @@ public class UpdateBaseStudentUserDto {
      */
     @ApiModelProperty("baseStudentSubsidize子表")
     private List<UpdateBaseStudentSubsidizeDto> baseStudentSubsidizeList;
+
+    @ApiModelProperty("部门id")
+    private String departmentIds;
 }

+ 4 - 2
src/main/java/com/xjrsoft/module/student/service/IStudentManagerService.java

@@ -2,7 +2,9 @@ package com.xjrsoft.module.student.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.dto.AddBaseStudentUserDto;
 import com.xjrsoft.module.student.dto.BaseStudentUserPageDto;
+import com.xjrsoft.module.student.dto.UpdateBaseStudentUserDto;
 import com.xjrsoft.module.student.entity.BaseStudentUser;
 import com.xjrsoft.module.student.vo.BaseStudentClassVo;
 import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
@@ -20,7 +22,7 @@ public interface IStudentManagerService extends MPJBaseService<BaseStudentUser>
      * @param baseStudentUser
      * @return
      */
-    Boolean add(BaseStudentUser baseStudentUser);
+    Boolean add(AddBaseStudentUserDto baseStudentUser);
 
     /**
      * 更新
@@ -28,7 +30,7 @@ public interface IStudentManagerService extends MPJBaseService<BaseStudentUser>
      * @param baseStudentUser
      * @return
      */
-    Boolean update(BaseStudentUser baseStudentUser);
+    Boolean update(UpdateBaseStudentUserDto baseStudentUser);
 
     /**
      * 删除

+ 53 - 9
src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java

@@ -3,9 +3,12 @@ package com.xjrsoft.module.student.service.impl;
 import cn.dev33.satoken.secure.BCrypt;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -21,9 +24,13 @@ import com.xjrsoft.module.base.entity.BaseMajorSet;
 import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.base.mapper.BaseGradeMapper;
 import com.xjrsoft.module.base.mapper.BaseMajorSetMapper;
+import com.xjrsoft.module.organization.entity.UserDeptRelation;
 import com.xjrsoft.module.organization.entity.UserRoleRelation;
 import com.xjrsoft.module.organization.mapper.UserRoleRelationMapper;
+import com.xjrsoft.module.organization.service.IUserDeptRelationService;
+import com.xjrsoft.module.student.dto.AddBaseStudentUserDto;
 import com.xjrsoft.module.student.dto.BaseStudentUserPageDto;
+import com.xjrsoft.module.student.dto.UpdateBaseStudentUserDto;
 import com.xjrsoft.module.student.entity.BaseStudent;
 import com.xjrsoft.module.student.entity.BaseStudentContact;
 import com.xjrsoft.module.student.entity.BaseStudentFamily;
@@ -62,13 +69,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeParseException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -93,9 +94,14 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
     private final IBaseStudentFamilyService familyService;
     private final BaseStudentMapper baseStudentMapper;
 
+    private final IUserDeptRelationService userDeptRelationService;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean add(BaseStudentUser baseStudentUser) {
+    public Boolean add(AddBaseStudentUserDto dto) {
+
+        BaseStudentUser baseStudentUser = BeanUtil.toBean(dto, BaseStudentUser.class);
+
         // 用户身份证后6位作为默认密码
         if (baseStudentUser.getCredentialNumber() != null && baseStudentUser.getCredentialNumber().length() > 6) {
             String str = baseStudentUser.getCredentialNumber();
@@ -128,6 +134,22 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
             subsidizeService.save(baseStudentSubsidize);
         }
 
+        List<UserDeptRelation> userDeptRelationList = new ArrayList<>();
+        if (StrUtil.isNotBlank(dto.getDepartmentIds())) {
+            String allDeptIdStr = StrUtil.join(StringPool.COMMA, dto.getDepartmentIds());
+            List<Long> departmentIds = Arrays.stream(allDeptIdStr.split(StringPool.COMMA)).map(Convert::toLong).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(departmentIds)) {
+                for (Long deptId : departmentIds) {
+                    //将用户所选部门保存到关联表中
+                    UserDeptRelation userDeptRelation = new UserDeptRelation();
+                    userDeptRelation.setUserId(baseStudentUser.getId());
+                    userDeptRelation.setDeptId(deptId);
+                    userDeptRelationList.add(userDeptRelation);
+                }
+            }
+            userDeptRelationService.saveBatch(userDeptRelationList);
+        }
+
         // 添加角色
         UserRoleRelation userRoleRelation = new UserRoleRelation();
         userRoleRelation.setUserId(baseStudentUser.getId());
@@ -139,8 +161,30 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean update(BaseStudentUser baseStudentUser) {
+    public Boolean update(UpdateBaseStudentUserDto dto) {
+
+        BaseStudentUser baseStudentUser = BeanUtil.toBean(dto, BaseStudentUser.class);
+
         studentbaseManagerBaseStudentUserMapper.updateById(baseStudentUser);
+
+        //先删除再新增
+        userDeptRelationService.remove(Wrappers.<UserDeptRelation>query().lambda().eq(UserDeptRelation::getUserId, baseStudentUser.getId()));
+        List<UserDeptRelation> userDeptRelationList = new ArrayList<>();
+        if (StrUtil.isNotBlank(dto.getDepartmentIds())) {
+            String allDeptIdStr = StrUtil.join(StringPool.COMMA, dto.getDepartmentIds());
+            List<Long> departmentIds = Arrays.stream(allDeptIdStr.split(StringPool.COMMA)).map(Convert::toLong).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(departmentIds)) {
+                for (Long deptId : departmentIds) {
+                    //将用户所选部门保存到关联表中
+                    UserDeptRelation userDeptRelation = new UserDeptRelation();
+                    userDeptRelation.setUserId(baseStudentUser.getId());
+                    userDeptRelation.setDeptId(deptId);
+                    userDeptRelationList.add(userDeptRelation);
+                }
+            }
+            userDeptRelationService.saveBatch(userDeptRelationList);
+        }
+
         //********************************* BaseStudent  增删改  开始 *******************************************/
         {
             // 查出所有子级的id

+ 3 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentUserVo.java

@@ -125,4 +125,7 @@ public class BaseStudentUserVo {
      */
     @ApiModelProperty("baseStudentSubsidize子表")
     private List<BaseStudentSubsidizeVo> baseStudentSubsidizeList;
+
+    @ApiModelProperty("部门id")
+    private String departmentIds;
 }

+ 14 - 4
src/main/java/com/xjrsoft/module/teacher/controller/TeacherbaseManagerController.java

@@ -5,6 +5,8 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.GenderDictionaryEnum;
 import com.xjrsoft.common.model.result.R;
@@ -12,6 +14,7 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.organization.entity.UserDeptRelation;
+import com.xjrsoft.module.organization.service.IUserDeptRelationService;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
 import com.xjrsoft.module.system.service.IDictionarydetailService;
 import com.xjrsoft.module.teacher.dto.AddXjrUserDto;
@@ -36,6 +39,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
 * @title: 教职工基本信息管理
@@ -52,6 +56,7 @@ public class TeacherbaseManagerController {
 
     private final ITeacherbaseManagerService teacherbaseManagerService;
     private final IDictionarydetailService dictionarydetailService;
+    private final IUserDeptRelationService userDeptRelationService;
 
     @GetMapping(value = "/page")
     @ApiOperation(value="XjrUser列表(分页)")
@@ -97,6 +102,13 @@ public class TeacherbaseManagerController {
         }
         XjrUserVo userVo = BeanUtil.toBean(xjrUser, XjrUserVo.class);
         userVo.setGenderCn(GenderDictionaryEnum.getValue(userVo.getGender()));
+
+        List<Long> deptIds = userDeptRelationService.list(Wrappers.lambdaQuery(UserDeptRelation.class)
+                        .eq(UserDeptRelation::getUserId, userVo.getId()))
+                .stream().map(UserDeptRelation::getDeptId).collect(Collectors.toList());
+        String allDeptIdStr = StrUtil.join(StringPool.COMMA, deptIds);
+        userVo.setDepartmentIds(allDeptIdStr);
+
         return R.ok(userVo);
     }
 
@@ -105,8 +117,7 @@ public class TeacherbaseManagerController {
     @ApiOperation(value = "新增XjrUser")
     @SaCheckPermission("teacherbasemanager:add")
     public R add(@Valid @RequestBody AddXjrUserDto dto){
-        XjrUser xjrUser = BeanUtil.toBean(dto, XjrUser.class);
-        return R.ok(teacherbaseManagerService.add(xjrUser));
+        return R.ok(teacherbaseManagerService.add(dto));
 
     }
 
@@ -115,8 +126,7 @@ public class TeacherbaseManagerController {
     @SaCheckPermission("teacherbasemanager:edit")
     public R update(@Valid @RequestBody UpdateXjrUserDto dto){
 
-        XjrUser xjrUser = BeanUtil.toBean(dto, XjrUser.class);
-        return R.ok(teacherbaseManagerService.update(xjrUser));
+        return R.ok(teacherbaseManagerService.update(dto));
 
     }
 

+ 3 - 0
src/main/java/com/xjrsoft/module/teacher/dto/AddXjrUserDto.java

@@ -133,4 +133,7 @@ public class AddXjrUserDto implements Serializable {
     */
     @ApiModelProperty("baseTeacherRegular子表")
     private List<AddBaseTeacherRegularDto> baseTeacherRegularList;
+
+    @ApiModelProperty("部门id")
+    private String departmentIds;
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/teacher/dto/UpdateXjrUserDto.java

@@ -139,4 +139,7 @@ public class UpdateXjrUserDto implements Serializable {
     */
     @ApiModelProperty("baseTeacherRegular子表")
     private List<UpdateBaseTeacherRegularDto> baseTeacherRegularList;
+
+    @ApiModelProperty("部门id")
+    private String departmentIds;
 }

+ 4 - 2
src/main/java/com/xjrsoft/module/teacher/service/ITeacherbaseManagerService.java

@@ -1,6 +1,8 @@
 package com.xjrsoft.module.teacher.service;
 
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.teacher.dto.AddXjrUserDto;
+import com.xjrsoft.module.teacher.dto.UpdateXjrUserDto;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 
 import java.util.List;
@@ -19,7 +21,7 @@ public interface ITeacherbaseManagerService extends MPJBaseService<XjrUser> {
     * @param xjrUser
     * @return
     */
-    Boolean add(XjrUser xjrUser);
+    Boolean add(AddXjrUserDto xjrUser);
 
     /**
     * 更新
@@ -27,7 +29,7 @@ public interface ITeacherbaseManagerService extends MPJBaseService<XjrUser> {
     * @param xjrUser
     * @return
     */
-    Boolean update(XjrUser xjrUser);
+    Boolean update(UpdateXjrUserDto xjrUser);
 
     /**
     * 删除

+ 55 - 2
src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherbaseManagerServiceImpl.java

@@ -1,11 +1,20 @@
 package com.xjrsoft.module.teacher.service.impl;
 
 import cn.dev33.satoken.secure.BCrypt;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.common.enums.RoleEnum;
+import com.xjrsoft.module.organization.entity.UserDeptRelation;
 import com.xjrsoft.module.organization.entity.UserRoleRelation;
 import com.xjrsoft.module.organization.mapper.UserRoleRelationMapper;
+import com.xjrsoft.module.organization.service.IUserDeptRelationService;
+import com.xjrsoft.module.teacher.dto.AddXjrUserDto;
+import com.xjrsoft.module.teacher.dto.UpdateXjrUserDto;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.BaseTeacherContact;
 import com.xjrsoft.module.teacher.entity.BaseTeacherEducation;
@@ -27,6 +36,8 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -51,11 +62,15 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
     private final BaseTeacherRegularMapper teacherbaseManagerBaseTeacherRegularMapper;
 
     private final UserRoleRelationMapper userRoleRelationMapper;
+    private final IUserDeptRelationService userDeptRelationService;
 
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean add(XjrUser xjrUser) {
+    public Boolean add(AddXjrUserDto dto) {
+
+        XjrUser xjrUser = BeanUtil.toBean(dto, XjrUser.class);
+
         // 用户身份证后6位作为默认密码
         if (xjrUser.getCredentialNumber() != null && xjrUser.getCredentialNumber().length() > 6) {
             String str = xjrUser.getCredentialNumber();
@@ -92,6 +107,22 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
             teacherbaseManagerBaseTeacherRegularMapper.insert(baseTeacherRegular);
         }
 
+        List<UserDeptRelation> userDeptRelationList = new ArrayList<>();
+        if (StrUtil.isNotBlank(dto.getDepartmentIds())) {
+            String allDeptIdStr = StrUtil.join(StringPool.COMMA, dto.getDepartmentIds());
+            List<Long> departmentIds = Arrays.stream(allDeptIdStr.split(StringPool.COMMA)).map(Convert::toLong).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(departmentIds)) {
+                for (Long deptId : departmentIds) {
+                    //将用户所选部门保存到关联表中
+                    UserDeptRelation userDeptRelation = new UserDeptRelation();
+                    userDeptRelation.setUserId(xjrUser.getId());
+                    userDeptRelation.setDeptId(deptId);
+                    userDeptRelationList.add(userDeptRelation);
+                }
+            }
+            userDeptRelationService.saveBatch(userDeptRelationList);
+        }
+
         // 添加角色
         UserRoleRelation userRoleRelation = new UserRoleRelation();
         userRoleRelation.setUserId(xjrUser.getId());
@@ -103,8 +134,30 @@ public class TeacherbaseManagerServiceImpl extends MPJBaseServiceImpl<XjrUserMap
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean update(XjrUser xjrUser) {
+    public Boolean update(UpdateXjrUserDto dto) {
+
+        XjrUser xjrUser = BeanUtil.toBean(dto, XjrUser.class);
+
         teacherbaseManagerXjrUserMapper.updateById(xjrUser);
+
+        //先删除再新增
+        userDeptRelationService.remove(Wrappers.<UserDeptRelation>query().lambda().eq(UserDeptRelation::getUserId, xjrUser.getId()));
+        List<UserDeptRelation> userDeptRelationList = new ArrayList<>();
+        if (StrUtil.isNotBlank(dto.getDepartmentIds())) {
+            String allDeptIdStr = StrUtil.join(StringPool.COMMA, dto.getDepartmentIds());
+            List<Long> departmentIds = Arrays.stream(allDeptIdStr.split(StringPool.COMMA)).map(Convert::toLong).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(departmentIds)) {
+                for (Long deptId : departmentIds) {
+                    //将用户所选部门保存到关联表中
+                    UserDeptRelation userDeptRelation = new UserDeptRelation();
+                    userDeptRelation.setUserId(xjrUser.getId());
+                    userDeptRelation.setDeptId(deptId);
+                    userDeptRelationList.add(userDeptRelation);
+                }
+            }
+            userDeptRelationService.saveBatch(userDeptRelationList);
+        }
+
         //********************************* BaseTeacher  增删改  开始 *******************************************/
         {
             // 查出所有子级的id

+ 4 - 0
src/main/java/com/xjrsoft/module/teacher/vo/XjrUserVo.java

@@ -136,4 +136,8 @@ public class XjrUserVo {
     @ApiModelProperty("baseTeacherRegular子表")
     private List<BaseTeacherRegularVo> baseTeacherRegularList;
 
+
+    @ApiModelProperty("部门id")
+    private String departmentIds;
+
 }