!10206 Merge remote-tracking branch 'origin/dev' into dev

Merge pull request !10206 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2026-03-25 03:23:40 +00:00
committed by Gitee
@@ -398,47 +398,18 @@ class SoongWorkflowCommentWizard(models.TransientModel):
return record_id.users_id.employee_id
return self.env['hr.employee'] # 默认返回空记录集
def _send_workflow_notifications(self, partners=None, user_partner_id=None):
def _send_workflow_notifications(self, partners=None):
""" 通知前端刷新红点、播放音频
:param partners: 需要通知的用户(res.partner),未传则通知所有
:param user_partner_id: 需要额外通知的 res.partner 记录集(传阅/加签/转交人员)
"""
if not partners:
partners = self.env['res.partner'].search([])
# 如果传入了额外的通知对象,将其合并进 partners 中(去重)
if user_partner_id:
partners = (partners | user_partner_id)
partners = self.env['res.partner'].search([])
bus_message = {'type': 'wkf_notify'}
notifications = [[partner, 'sun_badge_menu.reload_menu_data', [bus_message]] for partner in partners]
# self.env["bus.bus"]._sendmany(notifications) # 浏览器叮咚
self.env["bus.bus"]._sendmany(notifications) # 浏览器叮咚
def add_comment(self):
self.ensure_one()
# -------------------------------------------------------
# 收集传阅人员、加签人员、转交人员对应的 res.partner 记录集
# 用于通知这些人员刷新红点
# -------------------------------------------------------
# 传阅人员(circulated_employee_ids)-> 用户 -> partner
circulated_partners = self.circulated_employee_ids.filtered(
lambda e: e.user_id and e.user_id.partner_id
).mapped('user_id.partner_id')
# 加签人员(add_employee_ids)-> 用户 -> partner
add_partners = self.add_employee_ids.filtered(
lambda e: e.user_id and e.user_id.partner_id
).mapped('user_id.partner_id')
# 转交人员(employee_ids)-> 用户 -> partner
trans_partners = self.employee_ids.filtered(
lambda e: e.user_id and e.user_id.partner_id
).mapped('user_id.partner_id')
# 合并三类人员的 partner,作为 user_partner_id 传入通知方法
user_partner_id = circulated_partners | add_partners | trans_partners
self._send_workflow_notifications(user_partner_id=user_partner_id)
self._send_workflow_notifications()
# 如果选择了常用意见,将使用信息追加到 soong.note 记录
if self.comment_note_id:
import pytz
@@ -1047,7 +1018,6 @@ class SoongWorkflowCommentWizard(models.TransientModel):
'work_end': False,
})
self.node_btn_id.with_context(cx).run()
if self.node_btn_name == '归档':
menu_id = self.env['ir.ui.menu'].search([('name', '=', '行政收文')], limit=1)
action_id = self.env['ir.actions.act_window'].search([('res_model', '=', self.res_model)])[0]
@@ -1099,7 +1069,6 @@ class SoongWorkflowCommentWizard(models.TransientModel):
if result_data and 'msgid' in result_data[-1]:
msg_id = result_data[-1]['msgid']
log2_id.msg_id = msg_id
if self.node_btn_name != "收回":
tree_id = self.env.ref("soong_workflow.soong_workflow_record_my_tree").id
kanban_id = self.env.ref("soong_workflow.soong_workflow_record_kanban").id