From 98e13cba9977fa19e5b9f0e656e9fc7ad478044d Mon Sep 17 00:00:00 2001 From: guanhuan Date: Sat, 14 Sep 2024 17:45:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=91=98=E5=B7=A5=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=BC=81=E5=BE=AEid=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_hr/__manifest__.py | 2 ++ sf_hr/data/cron_data.xml | 15 ++++++++++++ sf_hr/models/__init__.py | 2 ++ sf_hr/models/hr_employee.py | 26 ++++++++++++++++++++ sf_hr/models/res_config_setting.py | 30 +++++++++++++++++++++++ sf_hr/views/hr_employee.xml | 11 ++++++++- sf_hr/views/res_config_settings_views.xml | 28 +++++++++++++++++++++ 7 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 sf_hr/data/cron_data.xml create mode 100644 sf_hr/models/hr_employee.py create mode 100644 sf_hr/models/res_config_setting.py create mode 100644 sf_hr/views/res_config_settings_views.xml diff --git a/sf_hr/__manifest__.py b/sf_hr/__manifest__.py index aaf9cfc7..c0bd63ef 100644 --- a/sf_hr/__manifest__.py +++ b/sf_hr/__manifest__.py @@ -10,6 +10,8 @@ 'depends': ['hr'], 'data': [ 'views/hr_employee.xml', + 'views/res_config_settings_views.xml', + 'data/cron_data.xml', ], 'demo': [ ], diff --git a/sf_hr/data/cron_data.xml b/sf_hr/data/cron_data.xml new file mode 100644 index 00000000..4757b5c2 --- /dev/null +++ b/sf_hr/data/cron_data.xml @@ -0,0 +1,15 @@ + + + + 员工企微id同步 + + code + model._employee_info_sync() + 1 + days + -1 + + + + + \ No newline at end of file diff --git a/sf_hr/models/__init__.py b/sf_hr/models/__init__.py index 633f8661..ffe76391 100644 --- a/sf_hr/models/__init__.py +++ b/sf_hr/models/__init__.py @@ -1,2 +1,4 @@ # -*- coding: utf-8 -*- +from . import hr_employee +from . import res_config_setting diff --git a/sf_hr/models/hr_employee.py b/sf_hr/models/hr_employee.py new file mode 100644 index 00000000..8cf5595d --- /dev/null +++ b/sf_hr/models/hr_employee.py @@ -0,0 +1,26 @@ +import logging +import requests +from odoo import models, fields, api, _ + +_logger = logging.getLogger(__name__) + + +class JkmPracticeEmployee(models.Model): + _inherit = 'hr.employee' + _description = '员工信息' + + we_id = fields.Char(string='企微ID', index=True) + + def _employee_info_sync(self): + url = '/api/get/organization' + config = self.env['res.config.settings'].get_values() + ret = requests.post((config['ims_url'] + url), json={}, data={}) + result = ret.json()['result'] + if result['code'] == 200: + if result['employee_list']: + for employee_info in result['employee_list']: + if employee_info['work_email']: + self.sudo().search([('work_email', '=', employee_info['work_email'])]).write( + {'we_id': employee_info['we_id']}) + else: + logging.info('_employee_info_sync error:%s' % result['message']) diff --git a/sf_hr/models/res_config_setting.py b/sf_hr/models/res_config_setting.py new file mode 100644 index 00000000..57cbe5e4 --- /dev/null +++ b/sf_hr/models/res_config_setting.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +import logging +from odoo import api, fields, models + +_logger = logging.getLogger(__name__) + + +class ResIMSConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + ims_url = fields.Char('财务平台接口路径') + + @api.model + def get_values(self): + """ + 重载获取参数的方法,参数都存在系统参数中 + :return: + """ + values = super(ResIMSConfigSettings, self).get_values() + config = self.env['ir.config_parameter'].sudo() + ims_url = config.get_param('ims_url', default='') + values.update( + ims_url=ims_url, + ) + return values + + def set_values(self): + super(ResIMSConfigSettings, self).set_values() + ir_config = self.env['ir.config_parameter'].sudo() + ir_config.set_param("ims_url", self.ims_url or "") diff --git a/sf_hr/views/hr_employee.xml b/sf_hr/views/hr_employee.xml index a3db9076..c2b39112 100644 --- a/sf_hr/views/hr_employee.xml +++ b/sf_hr/views/hr_employee.xml @@ -7,7 +7,16 @@ - 1 + 1 + + + + + + + + + diff --git a/sf_hr/views/res_config_settings_views.xml b/sf_hr/views/res_config_settings_views.xml new file mode 100644 index 00000000..94de8b95 --- /dev/null +++ b/sf_hr/views/res_config_settings_views.xml @@ -0,0 +1,28 @@ + + + + + res.config.settings.finance.view.form.extend + res.config.settings + + + +
+

财务平台接口配置

+
+
+
+
+
+
+
+
+
+
+ + + + + From 0cee6ebd77ea3f6714243f5ba7adf897846440e3 Mon Sep 17 00:00:00 2001 From: guanhuan Date: Thu, 19 Sep 2024 09:48:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=91=98=E5=B7=A5=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_hr/models/res_config_setting.py | 2 +- sf_hr/views/res_config_settings_views.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sf_hr/models/res_config_setting.py b/sf_hr/models/res_config_setting.py index 57cbe5e4..f0d6dae4 100644 --- a/sf_hr/models/res_config_setting.py +++ b/sf_hr/models/res_config_setting.py @@ -8,7 +8,7 @@ _logger = logging.getLogger(__name__) class ResIMSConfigSettings(models.TransientModel): _inherit = 'res.config.settings' - ims_url = fields.Char('财务平台接口路径') + ims_url = fields.Char('综合管理系统访问地址') @api.model def get_values(self): diff --git a/sf_hr/views/res_config_settings_views.xml b/sf_hr/views/res_config_settings_views.xml index 94de8b95..75ee6551 100644 --- a/sf_hr/views/res_config_settings_views.xml +++ b/sf_hr/views/res_config_settings_views.xml @@ -8,7 +8,7 @@
-

财务平台接口配置

+

综合管理系统接口配置