From af162ff06af6001ebde7fa97acc6f993592565c5 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期六, 31 一月 2026 11:15:15 +0800
Subject: [PATCH] 【市一】市一同步逻辑调整,增加hospinfo和deptinfo记录

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java |   69 ++++++++++++++++++++++++++++------
 1 files changed, 57 insertions(+), 12 deletions(-)

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..65d4434 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
@@ -1,5 +1,6 @@
 package com.ruoyi.quartz.service.impl;
 
+import com.google.gson.Gson;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.entity.SysUserDept;
@@ -10,6 +11,7 @@
 import com.smartor.mapper.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -445,44 +447,87 @@
     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());
+
+            List<String> userDepts = sysUserDept.stream().map(SysUserDept::getDeptCode).distinct().collect(Collectors.toList());
+            List<String> userDeptBfs = sysUserDeptBf.stream().map(SysUserDept::getDeptCode).distinct().collect(Collectors.toList());
+
+            //鍜宷ueryHospUserInfoList閲囬泦鐨勬暟鎹牸寮忎繚鎸佷竴鑷�
+            List<List<String>> userDeptsList = new ArrayList<>();
+            if(!userDepts.isEmpty()){
+                userDeptsList.add(userDepts);
+            }
+            List<List<String>> userDeptBfsList = new ArrayList<>();
+            if(!userDeptBfs.isEmpty()){
+                userDeptBfsList.add(userDeptBfs);
+            }
+
             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());
+                }
+                //灏嗛儴闂ㄦ垜鐥呭尯鏀惧埌鎸囧畾瀛楁涓�
+                Gson gson = new Gson();
+                sysUser1.setDeptInfo(gson.toJson(userDeptsList));
+                sysUser1.setHospInfo(gson.toJson(userDeptBfsList));
+
                 sysUser2Mapper.updateUser(sysUser1);
             } else {
                 sysUser1.setUserName(sysUser1.getHisUserId());
+                //灏嗛儴闂ㄦ垜鐥呭尯鏀惧埌鎸囧畾瀛楁涓�
+                Gson gson = new Gson();
+                sysUser1.setDeptInfo(gson.toJson(userDeptsList));
+                sysUser1.setHospInfo(gson.toJson(userDeptBfsList));
+
                 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);
                 }
             }

--
Gitblit v1.9.3