From 60f25c11afcff593ff56ccb7a52d9bd4714e30c4 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 23 九月 2025 20:17:01 +0800 Subject: [PATCH] 处理因重复数据,导致的数据问题 --- smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 28 ++++++++++++++++++++++++++-- smartor/src/main/resources/mapper/smartor/SysUserMapper.xml | 18 +++++++++++++----- 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java index 178feb8..603b80f 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java @@ -138,8 +138,12 @@ sysUser.setUserName(externalUserInfo.getYongHuDLM()); sysUser.setOrgid(externalUserInfo.getZuZhiJGID()); //鏍规嵁userName鍒ゆ柇涓�涓嬶紝鏄笉鏄箣鍓嶆湁鏂板 - SysUser sysUser1 = sysUserMapper.selectUserByUserName(externalUserInfo.getYongHuDLM()); - + SysUser sysUser1 = null; + List<SysUser> sysUserList = sysUserMapper.selectUserList(sysUser); + if (CollectionUtils.isNotEmpty(sysUserList)) { + sysUser1 = sysUserList.get(0); + if (sysUserList.size() > 1) sysUser1 = getUser(sysUserList); + } sysUser.setGuid(externalUserInfo.getZuZhiJGID()); sysUser.setNickName(externalUserInfo.getYongHuXM()); sysUser.setUserType(""); @@ -173,6 +177,26 @@ } + private SysUser getUser(List<SysUser> sysUserList) { + SysUser sysUser = null; + if (CollectionUtils.isNotEmpty(sysUserList) && sysUserList.size() > 1) { + // 鎸塩reate_time闄嶅簭鎺掑簭锛岃幏鍙栨渶鏂扮殑璁板綍 + List<SysUser> sortedList = sysUserList.stream().sorted(Comparator.comparing(SysUser::getCreateTime).reversed()).collect(Collectors.toList()); + + // 绗竴鏉★紙鏈�鏂扮殑锛夎祴鍊肩粰sysUser1 + sysUser = sortedList.get(0); + + // 鑾峰彇闇�瑕佸垹闄ょ殑ID锛堜粠绗簩鏉″紑濮嬶級 + List<Long> idsToDelete = sortedList.stream().skip(1).map(SysUser::getUserId).collect(Collectors.toList()); + Long[] idArray = idsToDelete.toArray(new Long[0]); + // 鎵归噺鍒犻櫎鍏朵粬璁板綍 + if (!idsToDelete.isEmpty()) { + sysUserMapper.deleteUserByIds(idArray); + } + } + return sysUser; + } + @Override public Boolean addOrganInfo(Map dataMap) { log.info("ServiceExternalServiceImpl---addOrganInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap); diff --git a/smartor/src/main/resources/mapper/smartor/SysUserMapper.xml b/smartor/src/main/resources/mapper/smartor/SysUserMapper.xml index 61c5238..2725d6c 100644 --- a/smartor/src/main/resources/mapper/smartor/SysUserMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/SysUserMapper.xml @@ -9,6 +9,7 @@ <id property="orgid" column="orgid"/> <id property="hisUserId" column="his_user_id"/> <result property="deptId" column="dept_id"/> + <result property="userCode" column="user_code"/> <result property="hospInfo" column="hosp_info"/> <result property="deptInfo" column="dept_info"/> <result property="userName" column="user_name"/> @@ -61,6 +62,7 @@ <sql id="selectUserVo"> select u.user_id, u.dept_id, + u.user_code, u.id_card, u.hosp_info, u.dept_info, @@ -106,7 +108,8 @@ </sql> <select id="selectUserList" parameterType="com.ruoyi.common.core.domain.entity.SysUser" resultMap="SysUserResult"> - select u.user_id,u.title,u.his_user_id,u.hosp_info,u.dept_info, u.searchscope, u.dept_id, u.user_type, + select u.user_code,u.user_id,u.title,u.his_user_id,u.hosp_info,u.dept_info, u.searchscope, u.dept_id, + u.user_type, u.nick_name, u.user_name, u.email,u.id_card, u.avatar, @@ -165,7 +168,7 @@ <select id="selectAllocatedList" parameterType="com.ruoyi.common.core.domain.entity.SysUser" resultMap="SysUserResult"> select distinct u.user_id,u.his_user_id,u.title,u.hosp_info,u.dept_info, u.searchscope, u.dept_id, u.user_name, - u.user_type, + u.user_type,u.user_code, u.nick_name, u.email, u.birthday, @@ -198,6 +201,7 @@ resultMap="SysUserResult"> select distinct u.user_id, u.dept_id, u.hosp_info, u.dept_info,u.searchscope, u.user_name, u.user_type, u.nick_name, + u.user_code, u.email, u.his_user_id, u.title, @@ -282,6 +286,7 @@ <if test="orgid != null and orgid != ''">orgid,</if> <if test="deptCode != null and deptCode != ''">dept_code,</if> <if test="deptName != null and deptName != ''">dept_name,</if> + <if test="userCode != null and userCode != ''">user_code,</if> create_time )values( <if test="userId != null and userId != ''">#{userId},</if> @@ -309,6 +314,7 @@ <if test="orgid != null and orgid != ''">#{orgid},</if> <if test="deptCode != null and deptCode != ''">#{deptCode},</if> <if test="deptName != null and deptName != ''">#{deptName},</if> + <if test="userCode != null and userCode != ''">#{userCode},</if> sysdate() ) </insert> @@ -317,7 +323,7 @@ <insert id="batchUser" useGeneratedKeys="true" keyProperty="userId"> insert into sys_user( user_id, dept_id, user_name, nick_name, email, avatar, phonenumber, sex, password, status, create_by, remark, - user_type, dept_info, hosp_info, searchscope, id_card, title, job_phone, birthday, his_user_id, guid, orgid, + user_type, dept_info, hosp_info, searchscope, id_card, title, job_phone, birthday, his_user_id, guid, orgid,user_code, create_time ) values <foreach collection="list" item="item" separator=","> @@ -345,6 +351,7 @@ #{item.hisUserId}, #{item.guid}, #{item.orgid}, + #{item.userCode}, now() ) </foreach> @@ -374,6 +381,7 @@ <if test="jobPhone != null and jobPhone != ''">job_phone=#{jobPhone},</if> <if test="birthday != null ">birthday=#{birthday},</if> <if test="orgid != null ">orgid=#{orgid},</if> + <if test="userCode != null ">user_code=#{userCode},</if> <if test="title != null and title != ''"> title = #{title}, </if> @@ -400,12 +408,12 @@ <delete id="deleteUserById" parameterType="Long"> update sys_user - set del_flag = '2' + set del_flag = '1' where user_id = #{userId} </delete> <delete id="deleteUserByIds" parameterType="Long"> - update sys_user set del_flag = '2' where user_id in + update sys_user set del_flag = '1' where user_id in <foreach collection="array" item="userId" open="(" separator="," close=")"> #{userId} </foreach> -- Gitblit v1.9.3