需求:公司每次有新员工入职的时候,都需要手动的把这些人加入相应的所在部门的邮件组,以方便他们能接收到部门领导发的最新指示。两三个人还好说,但是人多了手动一个一个的添加就没意思了。所以为了不想再做这些无用功,也为了自动化运维。所以编写了下面的代码。欢迎各位大神提出宝贵意见。

提示:跟据HR数据提取的人员信息

 1 #!/usr/bin/python2 # coding:utf-83 4 import sys5 sys.path.append('/sw/systems/shared/python')6 from DB import DB7 con,cur = DB().connect()8 9 from Company import Company      #导入公司员工模块
10 company = Company()          
11 users = company.employees      #获取所有人员
12 departments = company.departments  #获取所有人员所在的部门
13
14 from AD import AD           #导入AD模块
15 ad = AD()
16 ad_users = ad.get_users()      #获取所有ad域用户
17
18 user_list = {}
19 for key in users:
20     city = users[key]['location_code'].lower()
21     dep = users[key]['department'].lower()
22     username = users[key]['username'].strip()
23
24     if dep and city:
25         user_list.setdefault(dep,[])
26         user_list[dep].append(username)
27         user_list.setdefault(dep+city,[])     #以部门+城市命令形成新的邮件组 hrbj
28         user_list[dep+city].append(username)
29         user_list.setdefault('base%s' %city,[])
30         user_list['base%s' % city].append(username)
31         if username not in ['cbremble','nkovalevich','nrich','isugarman']:   #排除高管
32             user_list.setdefault('attendance%s' % city,[])
33             user_list['attendance%s'% city].append(username)
34
35
36         user_list.setdefault('prod',[])
37         user_list.setdefault('prod%s' % city,[])
38         user_list['prod%s'% city].append(username)
39         user_list['prod'].append(username)
40  #获取目前正在使用的邮箱组信息
41 def mail_forward():
42     query = """ SELECT  name,forward_name  from mail.forward """
43     cur.execute(query)
44     results = cur.fetchall()
45     forwards = {}
46     for result in results:
47         name = result['name']
48         forward_name = result['forward_name'].lower().strip()
49         forwards.setdefault(name,[])
50         forwards[name].append(forward_name)
51     return forwards
52
53 forwards = mail_forward()
54
55 try:
56     for dep in user_list:
57         if dep in forwards.keys():
58             if dep:
59                 need_add_alias = set(user_list[dep]) - set(forwards[dep])   #用hr数据库所有部门的人员和邮件数据库所有以部门命名的邮件组做比较
60         else:
61             need_add_alias = user_list[dep]
62         if need_add_alias:
63             for user in need_add_alias:
64                 if user not in ad_users:     #判断用户是否在AD里
65                     pass
66                 else:
67                     add_forward = """insert ignore into mail.forward(name,forward_name,status,description) values ('%s','%s','Enabled','script import') """  % (dep,user)
68                     cur.execute(add_forward)
69             con.commit()
70 except Exception,e:
71     print type(e),e

转载于:https://www.cnblogs.com/luck123/p/7562421.html

新员工入职自动加入所在部门的邮件组。相关推荐

  1. 华为新员工入职时信息安全保密手册

    一.新员工入职信息安全须知 新员工入职后,在信息安全方面有哪些注意事项? 接受"信息安全与保密意识"培训: 每年应至少参加一次信息安全网上考试: 办理员工卡: 签署劳动合同(含保密 ...

  2. 员工入职管理系统|员工管理系统|基于SpringBoot+Vue的企业新员工入职系统

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...

  3. 中秋国庆假期富士康疯狂加班生产iPhone 12:新员工入职奖励9000元!

    相比往年,金秋的苹果iPhone"晚熟".所以,对于现在的苹果来说,其目前要做的事情,就是让代工厂尽可能多的生产iPhone 12.相信大家都知道,富士康一直都是全球最大手机代工厂 ...

  4. 华为新员工入职培训计划曝光!你留不住员工的原因就在这! zz

    华为新员工入职培训计划曝光!你留不住员工的原因就在这! 中铭智云商 百家号18-04-1212:59 新员工的前6个月的培养周期往往体现出企业对于人才培养的重视程度,但许多企业往往只将重点放在前15天 ...

  5. 新员工入职,了解工作信息

    新员工入职,了解工作信息标题 新员工入职第一周,不必忙着马上开展工作.先花一点时间了解关于工作的基本概念.入职后,你将要长期在这个公司.推荐给大家一本书<新员工入职第一课>章哲. 关于工作 ...

  6. 知识点滴 - 新员工入职培训 New Employee Orientation (NEO)

    新员工指导NEO的介绍 新员工指导,通常由人力资源部门的会议牵头,一般包含以下方面的信息. 安全 工作环境 新的工作描述 福利和福利资格 员工的新经理和同事 公司文化 公司历史 组织结构图 其他与新员 ...

  7. 新员工入职培训感受总结

    为什么80%的码农都做不了架构师?>>>    这个事情虽然已经过去快有一个月了,我把给我留下深刻意义的点点滴滴都写下来. 01:刚进入公司时,公司的行政人员会把公司的规章制度都会发 ...

  8. 新员工入职一个月总结

    新员工入职一个月总结 ​ 从X月X号入职到今天差不多X周时间,其实每天都有很多收获,只能想到哪里写哪里了. ​ 来公司第一天就是人事办理入职和发放员工手册,接下来详细了解公司架构.业务,了解一些学习资 ...

  9. 寿光农商行计算机机房,寿光农商银行 举办2021年新员工入职仪式

    大众网·海报新闻记者 孙晓娜 袁靖翔 潍坊报道 3月25日上午,寿光农商银行举办2021年新员工入职仪式.寿光农商银行董事长韩奎成为新入职员工讲授"入职第一课". 韩奎成董事长首先 ...

最新文章

  1. Go-技篇第一 技巧杂烩
  2. Intellij IDEA 2020.1 的Plugins 搜索不了插件,连接超时
  3. 3*3卷积+1*3卷积+3*1卷积=白给的精度提升
  4. 中dubbo所需要的依赖_Dubbo介绍、dubbo架构图、dubbo运行和执行流程、dubbo支持的协议以及支持的注册中心...
  5. c语言逆序数输三个数,C语言求助!一个三位数的逆序数,总是编不对
  6. Gym102832K. Ragdoll(CCPC长春)
  7. PHP程序显示时出现乱码
  8. 图像特征计算与表示——基于内容的图像检索
  9. 各种波形文件(wlf/vcd/fsdb/shm/vpd)的区别及生成方法(转)
  10. Centos系统新建文本文档.txt
  11. c# vs2019 AForge简单使用
  12. 【毕业设计】基于单片机的太空游戏机 - 嵌入式 物联网 stm32 51
  13. 阿里云ace认证内容有哪些?
  14. 无人机航拍VR全景图拍摄制作教程
  15. ERROR: Cannot uninstall ‘certifi‘. It is a distutils installed project and thus we cannot accurately
  16. php草莓派,甜品控的减脂早餐,这样做低卡又裹腹,草莓派香蕉派,好吃分享了...
  17. pycharm配色方案
  18. 【媒体聚焦】“我们为什么要为景安点赞”——记景安网络十四年峥嵘岁月
  19. 综合架构(备份部分)
  20. apk多开制作方法 试用ApkEditor 1.8 旗舰版轻松制作apk多开双开

热门文章

  1. 桦仔 笔记3-徐 设置数据库自动增长注意要点
  2. flutter 弹框 dialog,flutter提示框
  3. 精通Android自定义View(四)自定义属性使用详解
  4. Java 8.if语句
  5. 二级指针做输入_第2种内存模型
  6. J - Fill (UVA - 10603)
  7. 将一个包含汉字的字符串逐个转化为数字,并得出该字符串的十进制和
  8. 原生js浏览器兼容性问题
  9. 软考——(1)J2SE
  10. gdb 打印vector 等stl数据