添加功能

This commit is contained in:
李鹏宇
2026-08-20 16:01:59 +08:00
parent f197057db6
commit 173582677b
@@ -551,26 +551,30 @@ class SoongWorkflowCommentWizard(models.TransientModel):
('name', '=', self.trans_link_id.name),
('workflow_id', '=', record_id.workflow_id.id)
], limit=1)
all_user_ids = []
all_employee_ids = []
# 同一人可能兼任多枚章,先按 user 去重(只保留第一枚章),避免重复待办
user_stamp_map = {}
for stamp in record_id.type_stamp_ids:
for user in stamp.user_ids:
if user.id not in all_user_ids:
all_user_ids.append(user.id)
employee = self.env['hr.employee'].sudo().search([('user_id', '=', user.id)], limit=1)
if employee and employee.id not in all_employee_ids:
all_employee_ids.append(employee.id)
self.sudo().env["soong.workflow.log"].create({
"code": self.code,
"model": self.res_model,
"res_id": self.res_id,
"node_id": next_node_id.id,
"workflow_id": self.node_btn_id.workflow_id.id,
"done_by": user.id,
"node_btn_name": "4",
"stamp_id": stamp.id,
"approval_state": "0",
})
if user.id not in user_stamp_map:
user_stamp_map[user.id] = stamp
all_user_ids = []
all_employee_ids = []
for user, stamp in user_stamp_map.items():
employee = self.env['hr.employee'].sudo().search([('user_id', '=', user.id)], limit=1)
if employee and employee.id not in all_employee_ids:
all_employee_ids.append(employee.id)
all_user_ids.append(user.id)
self.sudo().env["soong.workflow.log"].create({
"code": self.code,
"model": self.res_model,
"res_id": self.res_id,
"node_id": next_node_id.id,
"workflow_id": self.node_btn_id.workflow_id.id,
"done_by": user.id,
"node_btn_name": "4",
"stamp_id": stamp.id,
"approval_state": "0",
})
related_record = self.env[self.res_model].browse(self.res_id)
if hasattr(related_record, 'self_users_ids'):
related_record.self_users_ids = [(6, 0, all_user_ids)] if all_user_ids else [(5,)]
@@ -978,8 +982,6 @@ class SoongWorkflowCommentWizard(models.TransientModel):
limit=1
)
# 印章分组审批:章内串审,删除同章其他人的待办
# 注意:必须在 record_id.log_ids 首次缓存之前执行 unlink,
# 否则后续访问 record_id.log_ids 会命中已删除记录的缓存而报 MissingError
if getattr(current_node_log, 'stamp_id', False):
same_stamp_logs = self.sudo().env["soong.workflow.log"].search(
[("model", "=", self.res_model),