ai动态报表

This commit is contained in:
李鹏宇
2026-05-29 14:06:44 +08:00
parent 6565c7859b
commit 805e26300c
+23 -20
View File
@@ -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 {