package com.qmth.teachcloud.common.service;

import org.springframework.scheduling.annotation.Async;

import java.io.IOException;

/**
 * @Description: 机构中心数据处理服务
 * @Author: CaoZixuan
 * @Date: 2021-04-02
 */
public interface OrgCenterDataDisposeService {

    /**
     * 机构用户中心同步操作（异步线程）
     * <p>
     *     1.禁用全部学校和机构级别为学校的机构。
     *     2.获取机构中心的学校数据。
     *     3.遍历机构中心的学校并和系统中学校对比（根据学校代码），
     *     如果系统中存在则更新系统中的学校（学校id不变）;
     *     如果系统中不存在则将机构中心的学校新增到系统中，
     *     如果系统中已存在该机构中心的学校id，则新增的学校id使用分布式id，若不存在则使用机构中心的学校id。
     *     将新增或更新的学校设置为启用状态
     *     4.根据新增的或更新的学校id查询机构表中对应的学校级别机构。
     *     5.如果没有学校级别机构则新增学校级机构，并且将该学校下的所有学院级、印刷室级、没有parentId的机构的父机构指向该学校机构;如果有则更新
     *     6.权限表未匹配到的学校权限新增
     * </p>
     * @throws IOException 异常
     */
    @Async
    void updateSchoolInfo() throws IOException;
}
