- 创建者: 郑辰龙,上次更新时间:2020-2月-27 需要 2 分钟阅读时间
01.发送消息通知
发送消息通知 展开源码
class salary_entry_emp_warn(object): def execute(self,params): last_month = (datetime.datetime.now() + dateutil.relativedelta.relativedelta(months=-1)).strftime("%Y-%m") emp_list =self.get_entry_emp_list(month=last_month) if not emp_list: return role_list = self.get_salary_role_list() if not role_list: return emp_dict = {} for emp in emp_list: depart_id=emp.get("department").get("origin_id") if not depart_id: continue emp_dict[depart_id] = emp_dict.get(depart_id,"") + "{}({}) ".format(emp.get("name"),emp.get("number")) #组装消息 msg_list = [] for k, v in emp_dict.items(): #接收人id receiver_id_list = [p.get("object_id") for p in role_list if p.get("role_range").get("depart_id") == k] #消息内容 message = "{}-21号之后入职的员工有:{}".format(last_month,v) for receiver_id in receiver_id_list: msg_list.append({"sender": 0, "to": receiver_id, "content": message}) if not msg_list: return #发送消息 CustomerUtil.call_open_api(name="message.send.message", param={"msglist": msg_list}) def get_entry_emp_list(self,month): """ 获取人员数据 :param month: :return: """ return CustomerUtil.call_open_api( name="hcm.model.list", param={ "model": "Employee", "page_index": 1, "page_size": 9999, "filter_dict": { "entry_date": {"gte": "{}-21".format(month)} }, "extra_property": { "only_list": True, "state": "search_zcl", "sorts": [{"type": "asc", "key": "number"}], "fields": [ {"field": ["name"], "key": "employee_name"}, {"field": ["number"], "key": "employee_number"}, {"field": ["department", "origin_id"], "key": "depart_id"} ] } } )["list"] def get_salary_role_list(self): """ 获取薪酬专员角色信息 :return: """ return CustomerUtil.call_open_api( name="hcm.model.list", param={ "model": "SystemEmployeeRoles", "page_index": 1, "page_size": 9999, "filter_dict": { "object_type": 1, "role": "cm-salary" }, "extra_property": { "state": "search_zcl", "only_list": True, "fields": [ {"field": ["object_id"], "key": "object_id"}, {"field": ["object_type"], "key": "object_type"}, {"field": ["role"], "key": "role"}, {"field": ["role_range", "depart_id"], "key": "depart_id"} ], "relations": [ { "filter": { "role_range.object_type": 1, "role_range.role": "cm-salary", "object_id": ":role_range.object_id" }, "type": "outer", "model": "SystemRoleRange", "key": "role_range" } ] } } )["list"]
02.公有云发送邮件
邮件配置:参考wiki标准消息集成
公有云发送邮件 展开源码
class send_email_message(object): """ 发送邮件信息 """ def execute(self, params): self.send_birthday_card_info() def send_birthday_card_info(self): """ 发送生日卡片信息 :return: """ # 获取当天过生日的员工卡信息 emp_card_list = CustomerUtil.call_open_api( name="hcm.model.list", param={ "model": "emp_welfare_card", "page_index": 1, "page_size": 9999, "filter_dict": { "year": datetime.datetime.now().strftime("%Y"), "type_id": 1325849, # 生日卡片 "state": {"neq": 1}, # 未发送的数据 "employee.birthday": {"like": datetime.datetime.now().strftime("%m-%d")} }, "extra_property": { "state": "search_zcl", "only_list": True, "fields": [ {"field": ["employee_id"], "key": "employee_id"}, {"field": ["employee", "name"], "key": "employee_name"}, {"field": ["employee", "number"], "key": "employee_number"}, {"field": ["employee", "mail"], "key": "employee_mail"}, {"field": ["employee", "birthday"], "key": "employee_birthday"}, {"field": ["number"], "key": "number"}, {"field": ["password"], "key": "password"} ], "relations": [ { "filter": { "employee.id": ":employee_id" }, "model": "Employee", "key": "employee", "type": "outer" } ] } } ) for emp_card in emp_card_list: if not emp_card.get("employee").get("mail") or not emp_card.get("number") or not emp_card.get("password"): continue if str(emp_card.get("employee").get("birthday"))[-5:] == datetime.datetime.now().strftime("%m-%d"): #发送邮件 MessageService(CustomerUtil.get_current_context()).send_message( company=CustomerUtil.get_current_context().company.id, to=emp_card.get("employee_id"), content="{}({})生日快乐!你的生日福利卡账号:{},密码:{}".format(emp_card.get("employee").get("name"), emp_card.get("employee").get("number"), emp_card.get("number"), emp_card.get("password")), level=-3, message_category="send_email_message" ) CustomerUtil.call_open_api( name="hcm.model.edit", param={ 'id_': emp_card.get('id'), 'info': {'state': 1}, 'model': "emp_welfare_card" } )
- 无标签