From 43a67fd17a85c22539451ef50423a494041a8381 Mon Sep 17 00:00:00 2001 From: lSun <15893999301@qq.com> Date: Tue, 5 Aug 2025 11:02:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E8=A7=84=E5=88=99=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=20=E7=A6=85=E9=81=93bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lSun <15893999301@qq.com> --- .../bonus/system/att/dao/AttChangeDao.java | 14 +++ .../att/service/AttChangeServiceImpl.java | 5 + .../bonus/system/basic/dao/SysUserMapper.java | 6 + .../service/impl/SysUserServiceImpl.java | 2 + .../resources/mapper/att/AttChangeMapper.xml | 111 +++++++++++------- .../resources/mapper/basic/SysUserMapper.xml | 5 + 6 files changed, 99 insertions(+), 44 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttChangeDao.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttChangeDao.java index 63f393a..2cbc80a 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttChangeDao.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttChangeDao.java @@ -2,6 +2,7 @@ package com.bonus.system.att.dao; import com.bonus.system.api.domain.MapVo; import com.bonus.system.att.entity.*; +import com.bonus.system.basic.domain.SysOrg; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -74,4 +75,17 @@ public interface AttChangeDao { * @param bean */ void addAtt(AttChangeBean bean); + + /** + * 获取组织信息 + * @param bean + * @return + */ + SysOrg findOrgByOrgId(AttChangeBean bean); + + /** + * 修改组织信息 + * @param bean + */ + void updateOrgIdByUserId(AttChangeBean bean); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttChangeServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttChangeServiceImpl.java index 58ee20f..3c26947 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttChangeServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttChangeServiceImpl.java @@ -16,6 +16,7 @@ import com.bonus.system.att.tasks.NewAttTask; import com.bonus.system.att.utils.RoleUtil; import com.bonus.system.att.utils.WorkdayCalculator; import com.bonus.system.basic.domain.SysNotice; +import com.bonus.system.basic.domain.SysOrg; import com.bonus.system.basic.service.SysNoticeService; import com.bonus.system.file.service.FileUploadService; import lombok.extern.log4j.Log4j2; @@ -81,6 +82,10 @@ public class AttChangeServiceImpl implements AttChangeService { if(i>0){ //修改部门信息 int l = attChangeDao.updateUser(bean); + //处理人员组织变更,休假/外出/等审批组织 + SysOrg orgBean = attChangeDao.findOrgByOrgId(bean); + bean.setAfterOrgName(orgBean.getOrgName()); + attChangeDao.updateOrgIdByUserId(bean); //先去判断是否有该人员信息 AttChangeBean o = attChangeDao.getAttPerson(bean); if(o!=null && o.getId()>0){ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java index 051ee3a..5a4dcfe 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java @@ -258,4 +258,10 @@ public interface SysUserMapper * @date 2025/2/18 10:31 */ void delAttGroupPersonRelation(Long userId); + + /** + * 删除人员数据后,同步删除组织变更数据 + * @param userId + */ + void delChange(Long userId); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java index 0bdb925..14fb0dd 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java @@ -272,6 +272,8 @@ public class SysUserServiceImpl implements SysUserService subOrgServiceImpl.syncDelUser(userId); // 删除考勤组数据 userMapper.delAttGroupPersonRelation(userId); + // 删除变更记录 + userMapper.delChange(userId); return userMapper.deleteUserById(userId); } catch (Exception e) { log.error(e.toString(),e); diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttChangeMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttChangeMapper.xml index 553a362..368dbaa 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttChangeMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttChangeMapper.xml @@ -9,81 +9,104 @@ - INSERT INTO `att_change`(`user_id`, `old_att_id`, `after_att_id`, `old_org_id`, `after_org_id`, `create_user_id`) + INSERT INTO `att_change`(`user_id`, `old_att_id`, `after_att_id`, `old_org_id`, `after_org_id`, + `create_user_id`) VALUES (#{userId}, #{oldAttId}, #{afterAttId}, #{oldOrgId}, #{afterOrgId}, #{createUserId}) UPDATE sys_user_org SET `org_id` = #{afterOrgId} - WHERE `user_id` = #{userId} and `is_active` = '1' + WHERE `user_id` = #{userId} + and `is_active` = '1' - UPDATE `att_group_person_relation` SET `group_id` = #{afterAttId} WHERE `user_id` = #{userId} and `is_active` = '1' + UPDATE `att_group_person_relation` + SET `group_id` = #{afterAttId} + WHERE `user_id` = #{userId} + and `is_active` = '1' + + + + UPDATE leave_apply + SET org_id = #{afterOrgId}, + org_name = #{afterOrgName} + WHERE user_id = #{userId} + + \ No newline at end of file diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml index c2a7ff2..1c860b7 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml @@ -62,6 +62,11 @@ SET is_active = '0' WHERE user_id = #{userId} + + UPDATE att_change + SET is_active = '0' + WHERE user_id = #{userId} + update sys_user set is_active = 0