fuliqi
2023-12-04 38b44e0c9996f06524903417f1d0a3f746b4550b
ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java
@@ -72,41 +72,43 @@
    @Autowired
    private UmsAdminRoleRelationService umsAdminRoleRelationService;
    //@Scheduled(cron = "0 50 15 * * ?")
    //@Scheduled(cron = "0 0 00 * * ?")
    @Transactional(rollbackFor = Exception.class)
    public void run() {
        log.info("开始同步任务");
        //获取全部部门code
        JSONObject topObj = dingCommon.getBookAuthority();
        //顶级部门id
        log.info("部门code------------>{}",topObj.toJSONString());
        JSONArray deptTopArr = topObj.getJSONArray("deptVisibleScopes");
        List<UmsDepart> dingOrgList = dingCommon.getOrgInfo(deptTopArr);
        //查询数据库中的部门
        List<UmsDepart> dataOrgList = umsDepartService.list();
        Iterator<UmsDepart> removeIterOrg = dingOrgList.iterator();
        while (removeIterOrg.hasNext()) {
            UmsDepart dingOrg = removeIterOrg.next();
            if (dingOrg.getCode().equals(deptTopArr.getString(0))) {
                dingOrg.setParentId(0L);
            }
            //判断
            for (UmsDepart org : dataOrgList) {
                if (ObjectUtil.equals(org.getId(), dingOrg.getId()) && ObjectUtil.equals(org.getDepartName(), dingOrg.getDepartName()) && ObjectUtil.equals(org.getParentId(), dingOrg.getParentId())) {
                    removeIterOrg.remove();
        if(CollectionUtils.isNotEmpty(dingOrgList)) {
            Iterator<UmsDepart> removeIterOrg = dingOrgList.iterator();
            while (removeIterOrg.hasNext()) {
                UmsDepart dingOrg = removeIterOrg.next();
                if (dingOrg.getCode().equals(deptTopArr.getString(0))) {
                    dingOrg.setParentId(0L);
                }
                //判断
                for (UmsDepart org : dataOrgList) {
                    if (ObjectUtil.equals(org.getId(), dingOrg.getId()) && ObjectUtil.equals(org.getDepartName(), dingOrg.getDepartName()) && ObjectUtil.equals(org.getParentId(), dingOrg.getParentId())) {
                        removeIterOrg.remove();
                    }
                }
            }
            //此时 dingOrgList 中剩下的就是新的组织机构了。
            dingOrgList.forEach(dingOrg -> {
                if (dingOrg.getCode().equals(deptTopArr.getString(0))) {
                    dingOrg.setParentId(0L);
                }
                //umsDepartService.fillPids(dingOrg);
                dingOrg.setStatus((short) 1);
                umsDepartService.saveOrUpdate(dingOrg);
            });
        }
        //此时 dingOrgList 中剩下的就是新的组织机构了。
        dingOrgList.forEach(dingOrg -> {
            if (dingOrg.getCode().equals(deptTopArr.getString(0))) {
                dingOrg.setParentId(0L);
            }
            //umsDepartService.fillPids(dingOrg);
            dingOrg.setStatus((short) 1);
            umsDepartService.saveOrUpdate(dingOrg);
        });
//        log.info(TAG + "update organization size " + dingOrgList.size());
        TimeInterval timer = DateUtil.timer();
        /**
@@ -187,6 +189,7 @@
        if (CollUtil.isNotEmpty(relations)) {
            umsAdminRoleRelationService.saveBatch(relations, IService.DEFAULT_BATCH_SIZE);
        }
        log.info("同步任务结束");
//        log.info(TAG + "update user size " + dingList.size());
//        getEmployeeAvatar();
    }