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