From ac2e836f65cf291bb3c94746df7467d99d546791 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 29 一月 2026 15:51:19 +0800
Subject: [PATCH] 【市一】用户、院区同步逻辑修改
---
ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml | 30 +++++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 4
smartor/src/main/java/com/smartor/domain/SysUserOrg.java | 2
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java | 43 ++++++++++----
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java | 8 ++
smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml | 40 +++++++++++++
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java | 16 -----
smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java | 2
smartor/src/main/resources/mapper/smartor/SysUserMapper.xml | 20 +++++-
9 files changed, 129 insertions(+), 36 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index feb1aa4..b59dcb3 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -256,22 +256,6 @@
private List<Map<String, Object>> belongDepts = new ArrayList();
- public String getCampusid() {
- return campusid;
- }
-
- public void setCampusid(String campusid) {
- this.campusid = campusid;
- }
-
- /**
- * 鏈烘瀯ID
- */
- @ApiModelProperty("闄㈠尯")
- @Excel(name = " 闄㈠尯 ")
- private String campusid;
-
-
public SysUser() {
}
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java
index 2e07928..c687dcc 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java
@@ -45,6 +45,14 @@
public List<SysUserDept> yhyksxx(SysUser sysUser);
/**
+ * 鐢ㄦ埛涓庣梾鎴夸俊鎭�
+ *
+ * @param sysUser
+ * @return
+ */
+ public List<SysUserDept> yhybfxx(SysUser sysUser);
+
+ /**
* 鐢ㄦ埛涓庨櫌鍖轰俊鎭�
*
* @param sysUser
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
index c0c38f9..1e4ae1b 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -445,44 +445,63 @@
public Integer selectUserList(SysUser sysUser) {
List<SysUser> sysUserList = chMapper.selectUserList(sysUser);
SysUser suerTemp = new SysUser();
+ //鐢ㄦ埛-鏈烘瀯鍏崇郴-绉戝
List<SysUserDept> sysUserDeptAll = chMapper.yhyksxx(suerTemp);
+ //鐢ㄦ埛-鏈烘瀯鍏崇郴-鐥呮埧
+ List<SysUserDept> sysUserDeptBfAll = chMapper.yhybfxx(suerTemp);
//鐢ㄦ埛-闄㈠尯鍏崇郴
List<SysUserOrg> sysUserOrgAll = chMapper.yhyyqxx(suerTemp);
log.info("sysUserList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysUserList.size());
int i = 0;// sysUser2Mapper.batchUser(sysUserList);
for (SysUser sysUser1 : sysUserList) {
-// log.info("sysUser1鐨処D涓猴細{}", sysUser1.getUserId());
-// log.info("sysUser1鐨凥ISUSERID涓猴細{}", sysUser1.getHisUserId());
if (StringUtils.isEmpty(sysUser1.getHisUserId())) continue;
SysUser suTemp = new SysUser();
suTemp.setHisUserId(sysUser1.getHisUserId());
List<SysUser> usersTemp = sysUser2Mapper.selectUserList(suTemp);
+
+ //鏂板鐢ㄦ埛涓庣瀹�
+ List<SysUserDept> sysUserDept = sysUserDeptAll.stream().filter((SysUserDept b) -> b.getUserCode().equals(sysUser1.getHisUserId())).collect(Collectors.toList());
+ //鏂板鐢ㄦ埛涓庣梾鍖�
+ List<SysUserDept> sysUserDeptBf = sysUserDeptBfAll.stream().filter((SysUserDept b) -> b.getUserCode().equals(sysUser1.getHisUserId())).collect(Collectors.toList());
+ //鏂板鐢ㄦ埛涓庨櫌鍖�
+ List<SysUserOrg> sysUserOrg = sysUserOrgAll.stream().filter((SysUserOrg o) -> o.getUserId().equals(sysUser1.getHisUserId())).collect(Collectors.toList());
if (usersTemp.size() > 0) {
sysUser1.setUserId(usersTemp.get(0).getUserId());
sysUser1.setUserName(sysUser1.getHisUserId());
+ //瀵瑰簲 SysUserServiceImpl selectUserByUserName2 191琛�
+ if (!org.springframework.util.CollectionUtils.isEmpty(sysUserOrg)) {
+ sysUser1.setOrgid(sysUserOrg.get(0).getOrgid());
+ sysUser1.setCampusid(sysUserOrg.get(0).getCampusid());
+ }
sysUser2Mapper.updateUser(sysUser1);
} else {
sysUser1.setUserName(sysUser1.getHisUserId());
sysUser2Mapper.insertUser(sysUser1);
+ //瀵瑰簲 SysUserServiceImpl selectUserByUserName2 191琛�
+ if (!org.springframework.util.CollectionUtils.isEmpty(sysUserOrg)) {
+ sysUser1.setOrgid(sysUserOrg.get(0).getOrgid());
+ sysUser1.setCampusid(sysUserOrg.get(0).getCampusid());
+ }
usersTemp = sysUser2Mapper.selectUserList(suTemp);
}
-
- //鏂板鐢ㄦ埛涓庨儴闂�
- //List<SysUserDept> sysUserDept = chMapper.yhyksxx(sysUser1);
- List<SysUserDept> sysUserDept = sysUserDeptAll.stream().filter((SysUserDept b) -> b.getUserCode().equals(sysUser1.getHisUserId())).collect(Collectors.toList());
-
for (SysUserDept sud : sysUserDept) {
- if (usersTemp.size() > 0) {
+ if (!usersTemp.isEmpty()) {
+ sud.setDeptType("1");
sud.setUserId(usersTemp.get(0).getUserId());
sysUserDeptMapper.insertSysUserDept(sud);
}
}
- //鏂板鐢ㄦ埛涓庨櫌鍖�
- List<SysUserOrg> sysUserOrg = sysUserOrgAll.stream().filter((SysUserOrg o) -> o.getUserId().equals(sysUser1.getHisUserId())).collect(Collectors.toList());
+ for (SysUserDept sudb : sysUserDeptBf) {
+ if (!usersTemp.isEmpty()) {
+ sudb.setDeptType("2");
+ sudb.setUserId(usersTemp.get(0).getUserId());
+ sysUserDeptMapper.insertSysUserDept(sudb);
+ }
+ }
for (SysUserOrg suo : sysUserOrg) {
- if (usersTemp.size() > 0) {
- suo.setUserId(usersTemp.get(0).getUserId());
+ if (!usersTemp.isEmpty()) {
+ suo.setUserId(usersTemp.get(0).getUserId().toString());
sysUserOrgMapper.insertSysUserOrg(suo);
}
}
diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
index dd3ebe6..ded67a3 100644
--- a/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
+++ b/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
@@ -391,10 +391,20 @@
<if test="hisUserId != null ">and user_id = #{hisUserId}</if>
</select>
+ <select id="yhybfxx" parameterType="com.ruoyi.common.core.domain.entity.SysUser" resultMap="SysUserDeptResult">
+ select user_id , user_code , dept_type ,dept_code,dept_name,deptparent,del_flag,orgid
+ FROM healthy_user_dept_bf
+ where 1=1
+ and user_id != 'admin'
+ <if test="orgid != null and orgid != ''">
+ AND orgid = #{orgid}
+ </if>
+ <if test="hisUserId != null ">and user_id = #{hisUserId}</if>
+ </select>
+
<select id="yhyyqxx" parameterType="com.ruoyi.common.core.domain.entity.SysUser" resultMap="SysUserOrgResult">
select
d.orgid as campusid,
- d.del_flag,
ud.user_id as user_id,
ud.orgid as orgid
FROM healthy_dept d
@@ -410,6 +420,24 @@
<if test="campusid != null">
AND d.orgid = #{campusid}
</if>
+ union all
+ select
+ d.orgid as campusid,
+ udb.user_id as user_id,
+ udb.orgid as orgid
+ FROM healthy_dept d
+ JOIN healthy_user_dept_bf udb ON d.his_dept_id = udb.dept_code
+ where 1=1
+ and udb.user_id != 'admin'
+ <if test="orgid != null and orgid != ''">
+ AND udb.orgid = #{orgid}
+ </if>
+ <if test="hisUserId != null ">
+ AND udb.user_id = #{hisUserId}
+ </if>
+ <if test="campusid != null">
+ AND d.orgid = #{campusid}
+ </if>
</select>
<select id="selectPatArchiveList" parameterType="com.smartor.domain.PatArchive" resultMap="PatArchiveResult">
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 70e4423..0a9d673 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -182,7 +182,7 @@
//鑾峰彇褰撳墠鐧婚檰浜虹殑鏈烘瀯鍜岄櫌鍖�
SysUserOrg sysUserOrg = new SysUserOrg();
- sysUserOrg.setUserId(sysUser.getUserId());
+ sysUserOrg.setUserId(sysUser.getUserId().toString());
sysUserOrg.setOrgid(split[1].equals("null") ? "" : split[1]);
sysUserOrg.setCampusid(split[2].equals("null") ? "" : split[2]);
List<SysUserOrg> sysUserOrgs = sysUserOrgMapper.selectSysUserOrgList(sysUserOrg);
@@ -302,7 +302,7 @@
//鑾峰彇褰撳墠鐧婚檰浜虹殑鏈烘瀯鍜岄櫌鍖�
SysUserOrg sysUserOrg = new SysUserOrg();
- sysUserOrg.setUserId(sysUser.getUserId());
+ sysUserOrg.setUserId(sysUser.getUserId().toString());
sysUserOrg.setOrgid(split[1].equals("null") ? "" : split[1]);
sysUserOrg.setCampusid(split[3].equals("null") ? "" : split[3]);
List<SysUserOrg> sysUserOrgs = sysUserOrgMapper.selectSysUserOrgList(sysUserOrg);
diff --git a/smartor/src/main/java/com/smartor/domain/SysUserOrg.java b/smartor/src/main/java/com/smartor/domain/SysUserOrg.java
index 5d44213..09eeff8 100644
--- a/smartor/src/main/java/com/smartor/domain/SysUserOrg.java
+++ b/smartor/src/main/java/com/smartor/domain/SysUserOrg.java
@@ -26,7 +26,7 @@
/** 鐢ㄦ埛ID */
@ApiModelProperty("鐢ㄦ埛ID")
@Excel(name = "鐢ㄦ埛ID")
- private Long userId;
+ private String userId;
/** 闄㈠尯ID */
@ApiModelProperty("闄㈠尯ID")
diff --git a/smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java b/smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java
index b104da1..9b04895 100644
--- a/smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java
@@ -71,4 +71,6 @@
public int deleteSysUserDeptByIds(Long[] ids);
public int deleteSysUserDeptByCode(SysUserDept sysUserDept);
+
+ public int updateSysUserDeptForSync(SysUserDept sysUserDept);
}
diff --git a/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml b/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml
index ca6fd04..915cf2c 100644
--- a/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml
@@ -237,5 +237,43 @@
where user_id =#{userId} and dept_code=#{deptCode}
</update>
-
+ <update id="updateSysUserDeptForSync" parameterType="com.ruoyi.common.core.domain.entity.SysUserDept">
+ update sys_user_dept
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="deptId != null">dept_id =
+ #{deptId},
+ </if>
+ <if test="delFlag != null ">
+ del_flag = #{delFlag},
+ </if>
+ <if test="createTime != null ">
+ create_time = #{createTime},
+ </if>
+ <if test="updateTime != null ">
+ update_time = #{updateTime},
+ </if>
+ <if test="deptType != null ">
+ dept_type = #{deptType},
+ </if>
+ <if test="deptCode != null ">
+ dept_code = #{deptCode},
+ </if>
+ <if test="deptName != null ">
+ dept_name = #{deptName},
+ </if>
+ <if test="orgid != null ">
+ orgid = #{orgid},
+ </if>
+ <if test="campusid != null ">
+ campusid = #{campusid},
+ </if>
+ </trim>
+ where user_id =#{userId}
+ <if test="orgid != null and orgid != ''">
+ and orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
+ </if>
+ </update>
</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SysUserMapper.xml b/smartor/src/main/resources/mapper/smartor/SysUserMapper.xml
index 4ebdb2f..428a18a 100644
--- a/smartor/src/main/resources/mapper/smartor/SysUserMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SysUserMapper.xml
@@ -34,6 +34,8 @@
<result property="userType" column="user_type"/>
<result property="searchscope" column="searchscope"/>
<result property="guid" column="guid"/>
+ <result property="orgid" column="orgid"/>
+ <result property="campusid" column="campusid"/>
<association property="dept" column="dept_id" javaType="com.ruoyi.common.core.domain.entity.SysDept"
resultMap="deptResult"/>
<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
@@ -86,6 +88,8 @@
u.create_time,
u.remark,
u.guid,
+ u.orgid,
+ u.campusid,
d.dept_id,
d.parent_id,
d.ancestors,
@@ -115,8 +119,10 @@
u.birthday,
u.job_phone,
u.phonenumber, u.sex, u.status,
- u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user
- u
+ u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
+ u.orgid, u.campusid,
+ d.dept_name, d.leader
+ from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0'
<if test="userId != null and userId != 0">
@@ -282,6 +288,8 @@
<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>
+ <if test="orgid != null and orgid != ''">orgid,</if>
+ <if test="campusid != null and campusid != ''">campusid,</if>
create_time
)values(
<if test="userId != null and userId != ''">#{userId},</if>
@@ -309,6 +317,8 @@
<if test="deptCode != null and deptCode != ''">#{deptCode},</if>
<if test="deptName != null and deptName != ''">#{deptName},</if>
<if test="userCode != null and userCode != ''">#{userCode},</if>
+ <if test="orgid != null and orgid != ''">#{orgid},</if>
+ <if test="campusid != null and campusid != ''">#{campusid},</if>
sysdate()
)
</insert>
@@ -318,7 +328,7 @@
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,
- user_code,
+ user_code, orgid, campusid,
create_time
) values
<foreach collection="list" item="item" separator=",">
@@ -346,6 +356,8 @@
#{item.hisUserId},
#{item.guid},
#{item.userCode},
+ #{item.orgid},
+ #{item.campusid},
now()
)
</foreach>
@@ -381,6 +393,8 @@
<if test="hisUserId != null and hisUserId != ''">
his_user_id = #{hisUserId},
</if>
+ <if test="orgid != null and orgid != ''">orgid = #{orgid},</if>
+ <if test="campusid != null and campusid != ''">campusid = #{campusid},</if>
update_time = sysdate()
</set>
where user_id = #{userId}
--
Gitblit v1.9.3