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..f0d6dae4
--- /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..75ee6551
--- /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
+
+
+
+
+
+
+
+
+