正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史记录

版本 1 下一个 »

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"]


  • 无标签