添加功能
This commit is contained in:
@@ -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,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user