添加功能

This commit is contained in:
李鹏宇
2026-04-23 17:51:04 +08:00
parent 45adea0f03
commit 1da1944181
+17 -17
View File
@@ -135,10 +135,11 @@ class YuthonNotice(models.Model):
notice.with_context(skip_constrains=True).users_ids = [(6, 0, list(all_users))]
if notice.users_ids and notice.is_change_notice:
conf_old = self.env['yuthon.confirm.users'].search([('notice_id', '=', notice.id)])
conf_old = self.env['yuthon.confirm.users'].sudo().search([('notice_id', '=', notice.id)])
old_employee_ids = conf_old.mapped('employee_id.id')
new_employee_ids = notice.users_ids.mapped('employee_ids.id')
new_employee_ids = self.env['hr.employee'].sudo().search([
('user_id', 'in', notice.users_ids.ids)
]).ids
add_employee_ids = list(set(new_employee_ids) - set(old_employee_ids))
del_employee_ids = list(set(old_employee_ids) - set(new_employee_ids))
@@ -148,11 +149,13 @@ class YuthonNotice(models.Model):
del_conf.unlink()
if add_employee_ids:
# add_users = self.users_ids.filtered(lambda u: u.employee_ids[0].id in add_employee_ids)
for user in self.users_ids:
all_employees = self.env['hr.employee'].sudo().search([
('user_id', 'in', self.users_ids.ids)
])
for employee in all_employees:
self.env['yuthon.confirm.users'].create({
'notice_id': self.id,
'employee_id': user.employee_id.id,
'employee_id': employee.id,
'notice_code': self.code,
'notice_name': self.name,
'release_date': self.create_date1,
@@ -198,9 +201,9 @@ class YuthonNotice(models.Model):
self.ensure_one()
if self.is_change_notice:
self.notice_state = 'yes'
conf_old = self.env['yuthon.confirm.users'].search([
conf_old = self.env['yuthon.confirm.users'].sudo().search([
('notice_id', '=', self.id),
('employee_id', 'in', self.users_ids.mapped('employee_ids.id'))
('employee_id.user_id', 'in', self.users_ids.ids)
])
if conf_old:
conf_old.write({'state': 'no'})
@@ -210,36 +213,33 @@ class YuthonNotice(models.Model):
if not employee:
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',
touser=user_id.employee_ids.wecom_userid,
touser=employee.wecom_userid,
title="通知公告",
description=f"{self.name} 发布人: {self.users_id.name}",
description=f"{self.name} 发布人: {self.users_id.name if self.users_id else ''}",
url=url,
btntxt="详细信息"
)
msg_id = None
if result_data:
res_dict = result_data[1]
msg_id = res_dict.get('msgid')
user_wecom_mapping.append({
'emp_id': employee.id,
'msg_id': msg_id
})
for mapping in user_wecom_mapping:
emp_id = mapping['emp_id']
msg_id = mapping['msg_id']
is_exist = self.env['yuthon.confirm.users'].search([
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'].create({
self.env['yuthon.confirm.users'].sudo().create({
'notice_id': self.id,
'employee_id': emp_id,
'notice_code': self.code,
@@ -249,7 +249,7 @@ class YuthonNotice(models.Model):
'msg_id': msg_id,
})
else:
is_exist.write({
is_exist.sudo().write({
'state': 'no',
'msg_id': msg_id,
})