ai动态报表
This commit is contained in:
@@ -217,10 +217,24 @@ class YuthonNotice(models.Model):
|
||||
# 对用户列表去重,防止重复发送
|
||||
unique_user_ids = list(set(self.users_ids.ids))
|
||||
_logger.info(f"公告 {self.name} (ID: {self.id}) 准备发送给 {len(unique_user_ids)} 个用户")
|
||||
|
||||
# 查询已存在的确认记录,用于去重
|
||||
existing_confirm = self.env['yuthon.confirm.users'].sudo().search([
|
||||
('notice_id', '=', self.id),
|
||||
('notice_code', '=', self.code),
|
||||
])
|
||||
existing_emp_ids = set(existing_confirm.mapped('employee_id.id'))
|
||||
|
||||
for user_id in unique_user_ids:
|
||||
employee = self.env['hr.employee'].sudo().search([('user_id', '=', user_id)], limit=1)
|
||||
if not employee:
|
||||
continue
|
||||
|
||||
# 方案B:用户级别去重——已存在确认记录的,不再重复发送
|
||||
if employee.id in existing_emp_ids:
|
||||
_logger.info(f"用户 {employee.name} 的确认记录已存在,跳过发送")
|
||||
continue
|
||||
|
||||
url = f'https://phone.thtzjt.com/phone/Notice/{self.id}?employee_id={employee.id}'
|
||||
result_data = self.sudo().env["wecom.apps"].sync_send_message_textcard(
|
||||
category='notice',
|
||||
@@ -241,26 +255,15 @@ class YuthonNotice(models.Model):
|
||||
for mapping in user_wecom_mapping:
|
||||
emp_id = mapping['emp_id']
|
||||
msg_id = mapping['msg_id']
|
||||
is_exist = self.env['yuthon.confirm.users'].sudo().search([
|
||||
('notice_id', '=', self.id),
|
||||
('notice_code', '=', self.code),
|
||||
('employee_id', '=', emp_id)
|
||||
], limit=1)
|
||||
if not is_exist:
|
||||
self.env['yuthon.confirm.users'].sudo().create({
|
||||
'notice_id': self.id,
|
||||
'employee_id': emp_id,
|
||||
'notice_code': self.code,
|
||||
'notice_name': self.name,
|
||||
'release_date': self.create_date1,
|
||||
'state': 'no',
|
||||
'msg_id': msg_id,
|
||||
})
|
||||
else:
|
||||
is_exist.sudo().write({
|
||||
'state': 'no',
|
||||
'msg_id': msg_id,
|
||||
})
|
||||
self.env['yuthon.confirm.users'].sudo().create({
|
||||
'notice_id': self.id,
|
||||
'employee_id': emp_id,
|
||||
'notice_code': self.code,
|
||||
'notice_name': self.name,
|
||||
'release_date': self.create_date1,
|
||||
'state': 'no',
|
||||
'msg_id': msg_id,
|
||||
})
|
||||
|
||||
def look_up_notice_users(self):
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user