Merge pull request !11157 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2026-04-23 12:20:31 +00:00
committed by Gitee
@@ -217,34 +217,30 @@ class SoongWorkflowCommentWizard(models.TransientModel):
if record.node_btn_id.employee_ids and record.node_btn_id.is_carbon_copy:
record.circulated_employee_ids = record.node_btn_id.employee_ids
if not record_id or not record_id.workflow_id:
continue
# 排除规则:存在流程退回 直接放行不限制
has_exclude_log = record_id.log_ids.filtered(lambda l: l.node_btn_name == '1')
if has_exclude_log:
continue
# 1. 拿到所有必经节点
mandatory_nodes = record_id.workflow_id.node_ids.filtered(lambda n: n.is_mandatory_node)
if not mandatory_nodes:
return
# 取第一个必经节点
first_mandatory_node = mandatory_nodes[0]
# 2. 只允许选择:顺序 <= 必经节点的链接
allow_links = self.env['trans.link']
for link in valid_links:
link_node = record_id.workflow_id.node_ids.search([
('name', '=', link.name),
('workflow_id', '=', record_id.workflow_id.id)
], limit=1)
if link_node and link_node.sequence <= first_mandatory_node.sequence:
allow_links |= link
if record.trans_link_id and record.trans_link_id not in allow_links:
record.trans_link_id = False
raise UserError(f"节点【{first_mandatory_node.name}】是必经节点,不可选择必经节点之后的流程节点!")
if not record.trans_link_id:
continue
if record_id and record_id.workflow_id:
has_exclude_log = record_id.log_ids.filtered(lambda l: l.node_btn_name == '1')
if not has_exclude_log:
mandatory_nodes = record_id.workflow_id.node_ids.filtered(lambda n: n.is_mandatory_node)
if mandatory_nodes:
first_mandatory_node = mandatory_nodes[0]
allow_links = self.env['trans.link']
for link in valid_links:
link_node = record_id.workflow_id.node_ids.search([
('name', '=', link.name),
('workflow_id', '=', record_id.workflow_id.id)
], limit=1)
if link_node and link_node.sequence <= first_mandatory_node.sequence:
allow_links |= link
# 只做判断:选了非法的才报错
if record.trans_link_id and record.trans_link_id not in allow_links:
record.trans_link_id = False
raise UserError(
f"节点【{first_mandatory_node.name}】是必经节点,不可选择必经节点之后的流程节点!")
for link in record.trans_link_id:
employee_user_role_ids = self.env['hr.employee']
if link.name == '印章管理员':