Bladeren bron

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

dzx 1 jaar geleden
bovenliggende
commit
1da32eace0
28 gewijzigde bestanden met toevoegingen van 498 en 85 verwijderingen
  1. 37 11
      src/main/java/com/xjrsoft/module/attendance/controller/AttendanceMessageSetController.java
  2. 7 2
      src/main/java/com/xjrsoft/module/attendance/dto/AddAttendanceMessageSetDto.java
  3. 5 5
      src/main/java/com/xjrsoft/module/attendance/dto/AddAttendanceMessageUserRelationDto.java
  4. 1 1
      src/main/java/com/xjrsoft/module/attendance/dto/AttendanceMessageSetPageDto.java
  5. 12 1
      src/main/java/com/xjrsoft/module/attendance/dto/UpdateAttendanceMessageSetDto.java
  6. 8 7
      src/main/java/com/xjrsoft/module/attendance/entity/AttendanceMessageSet.java
  7. 109 0
      src/main/java/com/xjrsoft/module/attendance/entity/AttendanceMessageSet.java.1716253865126.bak
  8. 4 4
      src/main/java/com/xjrsoft/module/attendance/entity/AttendanceMessageUserRelation.java
  9. 103 0
      src/main/java/com/xjrsoft/module/attendance/entity/AttendanceMessageUserRelation.java.1716253865128.bak
  10. 1 1
      src/main/java/com/xjrsoft/module/attendance/mapper/AttendanceMessageSetMapper.java
  11. 1 1
      src/main/java/com/xjrsoft/module/attendance/mapper/AttendanceMessageUserRelationMapper.java
  12. 4 3
      src/main/java/com/xjrsoft/module/attendance/service/IAttendanceMessageSetService.java
  13. 17 6
      src/main/java/com/xjrsoft/module/attendance/service/impl/AttendanceMessageSetServiceImpl.java
  14. 7 7
      src/main/java/com/xjrsoft/module/attendance/vo/AttendanceMessageSetPageVo.java
  15. 7 7
      src/main/java/com/xjrsoft/module/attendance/vo/AttendanceMessageSetVo.java
  16. 10 6
      src/main/java/com/xjrsoft/module/attendance/vo/AttendanceMessageUserRelationVo.java
  17. 16 4
      src/main/java/com/xjrsoft/module/student/controller/StudentManagerController.java
  18. 3 0
      src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentUserDto.java
  19. 3 0
      src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentUserDto.java
  20. 4 2
      src/main/java/com/xjrsoft/module/student/service/IStudentManagerService.java
  21. 53 9
      src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java
  22. 3 0
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentUserVo.java
  23. 14 4
      src/main/java/com/xjrsoft/module/teacher/controller/TeacherbaseManagerController.java
  24. 3 0
      src/main/java/com/xjrsoft/module/teacher/dto/AddXjrUserDto.java
  25. 3 0
      src/main/java/com/xjrsoft/module/teacher/dto/UpdateXjrUserDto.java
  26. 4 2
      src/main/java/com/xjrsoft/module/teacher/service/ITeacherbaseManagerService.java
  27. 55 2
      src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherbaseManagerServiceImpl.java
  28. 4 0
      src/main/java/com/xjrsoft/module/teacher/vo/XjrUserVo.java

+ 37 - 11
src/main/java/com/xjrsoft/module/attendance/controller/AttendanceMessageSetController.java

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.toolkit.MPJWrappers;
-import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.xjrsoft.common.page.ConventPage;
@@ -21,12 +20,17 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 
 import com.xjrsoft.module.attendance.dto.AttendanceMessageSetPageDto;
 import com.xjrsoft.module.attendance.entity.AttendanceMessageSet;
-import com.xjrsoft.module.attendance.entity.TeacherAttendanceRecord;
 import com.xjrsoft.module.attendance.service.IAttendanceMessageSetService;
 import com.xjrsoft.module.attendance.vo.AttendanceMessageSetPageVo;
 
 import com.xjrsoft.module.attendance.vo.AttendanceMessageSetVo;
 import com.xjrsoft.module.attendance.vo.AttendanceMessageUserRelationVo;
+import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.service.IBaseClassService;
+import com.xjrsoft.module.concat.service.IXjrUserService;
+import com.xjrsoft.module.organization.entity.Department;
+import com.xjrsoft.module.organization.service.IDepartmentService;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -40,7 +44,7 @@ import java.util.List;
 /**
 * @title: 考勤消息设置
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @RestController
@@ -51,6 +55,9 @@ public class AttendanceMessageSetController {
 
 
     private final IAttendanceMessageSetService attendanceMessageSetService;
+    private final IBaseClassService classService;
+    private final IDepartmentService departmentService;
+    private final IXjrUserService xjrUserService;
 
     @GetMapping(value = "/page")
     @ApiOperation(value="考勤消息设置列表(分页)")
@@ -75,7 +82,29 @@ public class AttendanceMessageSetController {
         for (AttendanceMessageSet item : list) {
             AttendanceMessageSet attendanceMessageSet = attendanceMessageSetService.getByIdDeep(item.getId());
             if (attendanceMessageSet != null) {
-                res.add(BeanUtil.toBean(attendanceMessageSet, AttendanceMessageSetVo.class));
+
+                AttendanceMessageSetVo attendanceMessageSetVo=BeanUtil.toBean(attendanceMessageSet, AttendanceMessageSetVo.class);
+
+                for (AttendanceMessageUserRelationVo attendanceMessageUserRelationVo:attendanceMessageSetVo.getAttendanceMessageUserRelationList()){
+                    if(attendanceMessageUserRelationVo.getUserId() != null){
+                        XjrUser xjrUser = xjrUserService.getById(attendanceMessageUserRelationVo.getUserId());
+                        if(xjrUser != null){
+                            attendanceMessageUserRelationVo.setName(xjrUser.getName());
+                        }
+                    }else if(attendanceMessageUserRelationVo.getDeptId() != null){
+                        Department department = departmentService.getById(attendanceMessageUserRelationVo.getDeptId());
+                        if(department != null){
+                            attendanceMessageUserRelationVo.setName(department.getName());
+                        }
+
+                    }else if(attendanceMessageUserRelationVo.getClassId() != null){
+                        BaseClass aClass = classService.getById(attendanceMessageUserRelationVo.getClassId());
+                        if(aClass != null){
+                            attendanceMessageUserRelationVo.setName(aClass.getName());
+                        }
+                    }
+                }
+                res.add(attendanceMessageSetVo);
             }
         }
         return RT.ok(res);
@@ -106,20 +135,17 @@ public class AttendanceMessageSetController {
     @ApiOperation(value = "修改考勤消息设置")
     @SaCheckPermission("attendancemessageset:edit")
     public RT<Boolean> update(@Valid @RequestBody UpdateAttendanceMessageSetDto dto){
+
         AttendanceMessageSet attendanceMessageSet = BeanUtil.toBean(dto, AttendanceMessageSet.class);
         return RT.ok(attendanceMessageSetService.update(attendanceMessageSet));
+
     }
 
     @PostMapping("edit")
     @ApiOperation(value = "新增考勤消息设置")
     @SaCheckPermission("attendancemessageset:add")
-    public RT<Boolean> add(@Valid @RequestBody List<UpdateAttendanceMessageSetDto> dtos) {
-        List<AttendanceMessageSet> attendanceMessageSets = new ArrayList<>();
-        for (UpdateAttendanceMessageSetDto dto : dtos) {
-            AttendanceMessageSet attendanceMessageSet = BeanUtil.toBean(dto, AttendanceMessageSet.class);
-            attendanceMessageSets.add(attendanceMessageSet);
-        }
-        boolean isSuccess = attendanceMessageSetService.edit(attendanceMessageSets);
+    public RT<Boolean> edit(@Valid @RequestBody List<UpdateAttendanceMessageSetDto> dtos) {
+        boolean isSuccess = attendanceMessageSetService.edit(dtos);
         return RT.ok(isSuccess);
     }
 

+ 7 - 2
src/main/java/com/xjrsoft/module/attendance/dto/AddAttendanceMessageSetDto.java

@@ -17,7 +17,7 @@ import com.xjrsoft.module.attendance.entity.AttendanceMessageUserRelation;
 /**
 * @title: 考勤消息设置
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data
@@ -31,6 +31,11 @@ public class AddAttendanceMessageSetDto implements Serializable {
     @ApiModelProperty("")
     private Integer sortCode;
     /**
+    * 人员类别(1:教职工 2:学生)
+    */
+    @ApiModelProperty("人员类别(1:教职工 2:学生)")
+    private Integer roleType;
+    /**
     * 消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)
     */
     @ApiModelProperty("消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)")
@@ -39,7 +44,7 @@ public class AddAttendanceMessageSetDto implements Serializable {
     * 时间段(1:上午 2:下午 3:晚上 4:返校)
     */
     @ApiModelProperty("时间段(1:上午 2:下午 3:晚上 4:返校)")
-    private Integer timePeriod;
+    private String timePeriod;
     /**
     * 指定人员
     */

+ 5 - 5
src/main/java/com/xjrsoft/module/attendance/dto/AddAttendanceMessageUserRelationDto.java

@@ -16,7 +16,7 @@ import java.util.Date;
 /**
 * @title: 考勤消息提醒人员
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data
@@ -33,21 +33,21 @@ public class AddAttendanceMessageUserRelationDto implements Serializable {
     * 所属班级id
     */
     @ApiModelProperty("所属班级id")
-    private Integer classId;
+    private Long classId;
     /**
     * 所属部门id
     */
     @ApiModelProperty("所属部门id")
-    private Integer deptId;
+    private Long deptId;
     /**
     * 用户id
     */
     @ApiModelProperty("用户id")
-    private String userId;
+    private Long userId;
     /**
     * 考勤消息设置(attendance_message_set)
     */
     @ApiModelProperty("考勤消息设置(attendance_message_set)")
-    private String attendanceMessageSetId;
+    private Long attendanceMessageSetId;
 
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/attendance/dto/AttendanceMessageSetPageDto.java

@@ -15,7 +15,7 @@ import java.util.Date;
 /**
 * @title: 考勤消息设置分页查询入参
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data

+ 12 - 1
src/main/java/com/xjrsoft/module/attendance/dto/UpdateAttendanceMessageSetDto.java

@@ -1,5 +1,8 @@
 package com.xjrsoft.module.attendance.dto;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.io.Serializable;
@@ -17,7 +20,7 @@ import com.xjrsoft.module.attendance.entity.AttendanceMessageUserRelation;
 /**
 * @title: 考勤消息设置
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data
@@ -25,6 +28,14 @@ public class UpdateAttendanceMessageSetDto extends AddAttendanceMessageSetDto {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     *
+     */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+
     /**
     * 
     */

+ 8 - 7
src/main/java/com/xjrsoft/module/attendance/entity/AttendanceMessageSet.java

@@ -20,7 +20,7 @@ import java.util.Date;
 /**
 * @title: 考勤消息设置
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data
@@ -79,6 +79,11 @@ public class AttendanceMessageSet implements Serializable {
     @ApiModelProperty("")
     private Integer sortCode;
     /**
+    * 人员类别(1:教职工 2:学生)
+    */
+    @ApiModelProperty("人员类别(1:教职工 2:学生)")
+    private Integer roleType;
+    /**
     * 消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)
     */
     @ApiModelProperty("消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)")
@@ -87,17 +92,13 @@ public class AttendanceMessageSet implements Serializable {
     * 时间段(1:上午 2:下午 3:晚上 4:返校)
     */
     @ApiModelProperty("时间段(1:上午 2:下午 3:晚上 4:返校)")
-    private Integer timePeriod;
+    private String timePeriod;
     /**
     * 指定人员
     */
     @ApiModelProperty("指定人员")
     private String userRelation;
-    /**
-     * 人员类别(1:教职工 2:学生)
-     */
-    @ApiModelProperty("人员类别(1:教职工 2:学生)")
-    private  Integer roleType;
+
     /**
     * attendanceMessageUserRelation
     */

+ 109 - 0
src/main/java/com/xjrsoft/module/attendance/entity/AttendanceMessageSet.java.1716253865126.bak

@@ -0,0 +1,109 @@
+package com.xjrsoft.module.attendance.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 考勤消息设置
+* @Author dzx
+* @Date: 2024-05-20
+* @Version 1.0
+*/
+@Data
+@TableName("attendance_message_set")
+@ApiModel(value = "attendance_message_set", description = "考勤消息设置")
+public class AttendanceMessageSet implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)
+    */
+    @ApiModelProperty("消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)")
+    private Integer messageCategory;
+    /**
+    * 时间段(1:上午 2:下午 3:晚上 4:返校)
+    */
+    @ApiModelProperty("时间段(1:上午 2:下午 3:晚上 4:返校)")
+    private Integer timePeriod;
+    /**
+    * 指定人员
+    */
+    @ApiModelProperty("指定人员")
+    private String userRelation;
+    /**
+     * 人员类别(1:教职工 2:学生)
+     */
+    @ApiModelProperty("人员类别(1:教职工 2:学生)")
+    private  Integer roleType;
+    /**
+    * attendanceMessageUserRelation
+    */
+    @ApiModelProperty("attendanceMessageUserRelation子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "attendanceMessageSetId")
+    private List<AttendanceMessageUserRelation> attendanceMessageUserRelationList;
+
+}

+ 4 - 4
src/main/java/com/xjrsoft/module/attendance/entity/AttendanceMessageUserRelation.java

@@ -20,7 +20,7 @@ import java.util.Date;
 /**
 * @title: 考勤消息提醒人员
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data
@@ -82,17 +82,17 @@ public class AttendanceMessageUserRelation implements Serializable {
     * 所属班级id
     */
     @ApiModelProperty("所属班级id")
-    private Integer classId;
+    private Long classId;
     /**
     * 所属部门id
     */
     @ApiModelProperty("所属部门id")
-    private Integer deptId;
+    private Long deptId;
     /**
     * 用户id
     */
     @ApiModelProperty("用户id")
-    private String userId;
+    private Long userId;
     /**
     * 考勤消息设置(attendance_message_set)
     */

+ 103 - 0
src/main/java/com/xjrsoft/module/attendance/entity/AttendanceMessageUserRelation.java.1716253865128.bak

@@ -0,0 +1,103 @@
+package com.xjrsoft.module.attendance.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 考勤消息提醒人员
+* @Author dzx
+* @Date: 2024-05-20
+* @Version 1.0
+*/
+@Data
+@TableName("attendance_message_user_relation")
+@ApiModel(value = "attendance_message_user_relation", description = "考勤消息提醒人员")
+public class AttendanceMessageUserRelation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 所属班级id
+    */
+    @ApiModelProperty("所属班级id")
+    private Integer classId;
+    /**
+    * 所属部门id
+    */
+    @ApiModelProperty("所属部门id")
+    private Integer deptId;
+    /**
+    * 用户id
+    */
+    @ApiModelProperty("用户id")
+    private String userId;
+    /**
+    * 考勤消息设置(attendance_message_set)
+    */
+    @ApiModelProperty("考勤消息设置(attendance_message_set)")
+    private Long attendanceMessageSetId;
+
+
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/attendance/mapper/AttendanceMessageSetMapper.java

@@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
 /**
 * @title: 考勤消息设置
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Mapper

+ 1 - 1
src/main/java/com/xjrsoft/module/attendance/mapper/AttendanceMessageUserRelationMapper.java

@@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
 /**
 * @title: 考勤消息提醒人员
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Mapper

+ 4 - 3
src/main/java/com/xjrsoft/module/attendance/service/IAttendanceMessageSetService.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.attendance.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.attendance.dto.UpdateAttendanceMessageSetDto;
 import com.xjrsoft.module.attendance.entity.AttendanceMessageSet;
 import lombok.Data;
 import java.util.List;
@@ -9,7 +10,7 @@ import java.util.List;
 /**
 * @title: 考勤消息设置
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 
@@ -33,10 +34,10 @@ public interface IAttendanceMessageSetService extends MPJBaseService<AttendanceM
     /**
      * 更新
      *
-     * @param attendanceMessageSets
+     * @param attendanceMessageSetDtos
      * @return
      */
-    Boolean edit(List<AttendanceMessageSet>  attendanceMessageSets);
+    Boolean edit(List<UpdateAttendanceMessageSetDto>  attendanceMessageSetDtos);
 
     /**
     * 删除

+ 17 - 6
src/main/java/com/xjrsoft/module/attendance/service/impl/AttendanceMessageSetServiceImpl.java

@@ -1,8 +1,10 @@
 package com.xjrsoft.module.attendance.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.attendance.dto.UpdateAttendanceMessageSetDto;
 import com.xjrsoft.module.attendance.entity.AttendanceMessageUserRelation;
 import com.xjrsoft.module.attendance.mapper.AttendanceMessageUserRelationMapper;
 import com.xjrsoft.module.attendance.entity.AttendanceMessageSet;
@@ -19,7 +21,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 /**
 * @title: 考勤消息设置
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Service
@@ -80,13 +82,22 @@ public class AttendanceMessageSetServiceImpl extends MPJBaseServiceImpl<Attendan
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean edit(List<AttendanceMessageSet>  attendanceMessageSets) {
-        for (AttendanceMessageSet attendanceMessageSet : attendanceMessageSets) {
-            if (ObjectUtil.isNotNull(attendanceMessageSet.getId()) && attendanceMessageSet.getId() != 0) {
-                update(attendanceMessageSet);
-            } else {
+    public Boolean edit(List<UpdateAttendanceMessageSetDto>  attendanceMessageSetDtos) {
+        for (UpdateAttendanceMessageSetDto attendanceMessageSetDto : attendanceMessageSetDtos) {
+            // 先删除 再添加
+            AttendanceMessageSet attendanceMessageSetDel = attendanceMessageSetAttendanceMessageSetMapper.selectOne(Wrappers.lambdaQuery(AttendanceMessageSet.class)
+                    .eq(AttendanceMessageSet::getRoleType, attendanceMessageSetDto.getRoleType())
+                    .eq(AttendanceMessageSet::getMessageCategory, attendanceMessageSetDto.getMessageCategory()));
+            if (attendanceMessageSetDel != null) {
+                attendanceMessageSetAttendanceMessageSetMapper.deleteById(attendanceMessageSetDel.getId());
+                attendanceMessageSetAttendanceMessageUserRelationMapper.delete(Wrappers.lambdaQuery(AttendanceMessageUserRelation.class).eq(AttendanceMessageUserRelation::getAttendanceMessageSetId, attendanceMessageSetDel.getId()));
+            }
+
+            if (attendanceMessageSetDto.getDeleteMark() != 1) {
+                AttendanceMessageSet attendanceMessageSet = BeanUtil.toBean(attendanceMessageSetDto, AttendanceMessageSet.class);
                 add(attendanceMessageSet);
             }
+
         }
         return true;
     }

+ 7 - 7
src/main/java/com/xjrsoft/module/attendance/vo/AttendanceMessageSetPageVo.java

@@ -14,7 +14,7 @@ import java.util.Date;
 /**
 * @title: 考勤消息设置分页列表出参
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data
@@ -61,6 +61,11 @@ public class AttendanceMessageSetPageVo {
     @ApiModelProperty("")
     private Integer sortCode;
     /**
+    * 人员类别(1:教职工 2:学生)
+    */
+    @ApiModelProperty("人员类别(1:教职工 2:学生)")
+    private Integer roleType;
+    /**
     * 消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)
     */
     @ApiModelProperty("消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)")
@@ -69,16 +74,11 @@ public class AttendanceMessageSetPageVo {
     * 时间段(1:上午 2:下午 3:晚上 4:返校)
     */
     @ApiModelProperty("时间段(1:上午 2:下午 3:晚上 4:返校)")
-    private Integer timePeriod;
+    private String timePeriod;
     /**
     * 指定人员
     */
     @ApiModelProperty("指定人员")
     private String userRelation;
-    /**
-     * 人员类别(1:教职工 2:学生)
-     */
-    @ApiModelProperty("人员类别(1:教职工 2:学生)")
-    private  Integer roleType;
 
 }

+ 7 - 7
src/main/java/com/xjrsoft/module/attendance/vo/AttendanceMessageSetVo.java

@@ -13,7 +13,7 @@ import com.xjrsoft.module.attendance.entity.AttendanceMessageUserRelation;
 /**
 * @title: 考勤消息设置表单出参
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data
@@ -30,6 +30,11 @@ public class AttendanceMessageSetVo {
     @ApiModelProperty("")
     private Integer sortCode;
     /**
+    * 人员类别(1:教职工 2:学生)
+    */
+    @ApiModelProperty("人员类别(1:教职工 2:学生)")
+    private Integer roleType;
+    /**
     * 消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)
     */
     @ApiModelProperty("消息类别(1:迟到消息 2:旷课消息 3:缺勤消息)")
@@ -38,18 +43,13 @@ public class AttendanceMessageSetVo {
     * 时间段(1:上午 2:下午 3:晚上 4:返校)
     */
     @ApiModelProperty("时间段(1:上午 2:下午 3:晚上 4:返校)")
-    private Integer timePeriod;
+    private String timePeriod;
     /**
     * 指定人员
     */
     @ApiModelProperty("指定人员")
     private String userRelation;
 
-    /**
-     * 人员类别(1:教职工 2:学生)
-     */
-    @ApiModelProperty("人员类别(1:教职工 2:学生)")
-    private  Integer roleType;
 
     /**
     * attendanceMessageUserRelation

+ 10 - 6
src/main/java/com/xjrsoft/module/attendance/vo/AttendanceMessageUserRelationVo.java

@@ -12,7 +12,7 @@ import java.util.Date;
 /**
 * @title: 考勤消息提醒人员表单出参
 * @Author dzx
-* @Date: 2024-05-20
+* @Date: 2024-05-21
 * @Version 1.0
 */
 @Data
@@ -32,23 +32,27 @@ public class AttendanceMessageUserRelationVo {
     * 所属班级id
     */
     @ApiModelProperty("所属班级id")
-    private Integer classId;
+    private Long classId;
     /**
     * 所属部门id
     */
     @ApiModelProperty("所属部门id")
-    private Integer deptId;
+    private Long deptId;
     /**
     * 用户id
     */
     @ApiModelProperty("用户id")
-    private String userId;
+    private Long userId;
     /**
     * 考勤消息设置(attendance_message_set)
     */
     @ApiModelProperty("考勤消息设置(attendance_message_set)")
-    private String attendanceMessageSetId;
-
+    private Long attendanceMessageSetId;
 
+    /**
+     * 名称
+     */
+    @ApiModelProperty("名称")
+    private String name;
 
 }

+ 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;
+
 }