Merge branch 'dev' into dev_zhou
This commit is contained in:
@@ -66,6 +66,13 @@ class HrAttendance(models.Model):
|
||||
'domain': [('id', '=', self.workflow_id.id)],
|
||||
}
|
||||
|
||||
def compute_attendance_ids(self):
|
||||
attendance_ids = self.env["hr.attendance"].browse(self._context.get('active_ids', self._context.get('active_id')))
|
||||
for att in attendance_ids:
|
||||
now_time = fields.Datetime.to_datetime(att.current_data) + timedelta(hours=8, days=1)
|
||||
start_time = now_time - timedelta(days=2)
|
||||
self.env["hr.attendance.detail"].get_hr_attendance_time(att.employee_id, now_time, start_time)
|
||||
|
||||
@api.depends('current_data')
|
||||
def _compute_month_status(self):
|
||||
today = fields.Date.today()
|
||||
@@ -135,15 +142,11 @@ class HrAttendance(models.Model):
|
||||
if has_abnormal:
|
||||
if employee.id not in [emp.id for emp in abnormal_employees]:
|
||||
abnormal_employees.append(employee)
|
||||
|
||||
for emp in abnormal_employees:
|
||||
url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance&view_type=list&menu_id={menu_id.id}'
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa',
|
||||
user_id=emp.wecom_userid,
|
||||
title="打卡异常提醒",
|
||||
description="您本月有打卡异常".format(
|
||||
url=url, btntxt="详细信息"))
|
||||
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att', user_id=emp.wecom_userid,
|
||||
title="打卡异常提醒", description="您本月有打卡异常",
|
||||
url=url, btntxt="详细信息")
|
||||
|
||||
@api.depends('employee_id', 'check_in', 'check_out')
|
||||
def _compute_display_name(self):
|
||||
|
||||
@@ -86,7 +86,9 @@ class HrAttendanceDetail(models.Model):
|
||||
def create(self, vals_list):
|
||||
res = super(HrAttendanceDetail, self).create(vals_list)
|
||||
employee_id = self.env['hr.employee'].search([('id', '=', vals_list[0]['employee_id'])])
|
||||
self.get_hr_attendance_time(employee_id)
|
||||
now_time = datetime.now() + timedelta(hours=8, days=1)
|
||||
start_time = now_time - timedelta(days=1)
|
||||
self.get_hr_attendance_time(employee_id, now_time, start_time)
|
||||
return res
|
||||
#
|
||||
# def write(self, vals):
|
||||
@@ -256,16 +258,13 @@ class HrAttendanceDetail(models.Model):
|
||||
_logger.error('检查保存之前的数据分析出想要的数据失败,异常:{0},数据信息{1},异常详情:{2}'.format(str(e), str(data),
|
||||
str(traceback.format_exc())))
|
||||
|
||||
def get_hr_attendance_time(self, employee_id):
|
||||
def get_hr_attendance_time(self, employee_id, now_time, start_time):
|
||||
"""
|
||||
获取企业微信打卡数据的核心逻辑
|
||||
:return: 处理结果
|
||||
"""
|
||||
# 从用户列表里获取企业微信的用户
|
||||
# user_list = self._get_wx_attendance_user_list()
|
||||
now_time = datetime.now() + timedelta(hours=8, days=1)
|
||||
start_time = now_time - timedelta(days=1)
|
||||
|
||||
# 企业微信获取打卡数据,要求用户分组100,分批获取打卡记录
|
||||
# for userid_limit in self.utils_list_page(user_list, 100):
|
||||
# # 获取企业微信的打卡信息
|
||||
@@ -302,6 +301,7 @@ class HrAttendanceDetail(models.Model):
|
||||
# employee_list = [emp.name for emp in employee_ids]
|
||||
# user_obj = self.sudo().env['res.users'].search([('name', 'not in', ['Administrator', '李鹏宇'] + employee_list),
|
||||
# ('employee_id.contract_id', '!=', False)]).sorted('id')
|
||||
|
||||
user_obj = self.sudo().env['res.users'].search([('id', '=', employee_id.user_id.id)])
|
||||
# 暂时先用for循环,如果后期加大频率,需改成并发
|
||||
total_users = len(user_obj)
|
||||
|
||||
Reference in New Issue
Block a user