陈昶聿
2026-01-29 ac2e836f65cf291bb3c94746df7467d99d546791
【市一】用户、院区同步逻辑修改
已修改9个文件
165 ■■■■ 文件已修改
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SysUserOrg.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SysUserMapper.xml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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() {
    }
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
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的ID为:{}", sysUser1.getUserId());
//            log.info("sysUser1的HISUSERID为:{}", 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);
                }
            }
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">
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);
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")
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);
}
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>
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}