pengyu
This commit is contained in:
@@ -31,9 +31,9 @@ class SoongWorkflowLog(models.Model):
|
||||
done_by = fields.Many2one(comodel_name="res.users", string="审批人")
|
||||
lase_click_date = fields.Datetime(string="操作时间")
|
||||
approval_state = fields.Selection([
|
||||
('0', '未审批'),
|
||||
('0', '待审批'),
|
||||
('1', '审批中'),
|
||||
('2', '审批通过'),
|
||||
('2', '已审批'),
|
||||
], string='审批状态', default='0')
|
||||
comment = fields.Char(string="意见")
|
||||
|
||||
|
||||
@@ -295,8 +295,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"default_is_automatic": next_state.is_automatic,
|
||||
"default_employee_ids": employee_ids,
|
||||
"default_node_btn_id": btn_rec.id,
|
||||
"default_node_link_len": '转交2' if len(
|
||||
btn_rec.node_id.out_link_ids) > 1 and btn_rec.name == '转交' else '',
|
||||
"default_node_link_len": '转交2' if len(btn_rec.node_id.out_link_ids) > 1 and btn_rec.name == '转交' else '',
|
||||
},
|
||||
}
|
||||
|
||||
@@ -306,38 +305,56 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
record_obj = self.env["soong.workflow.record"].search([("res_model", "=", rec._name), ("res_id", "=", rec.id)])
|
||||
current_user_id = self.env.user.id
|
||||
button_ids = self.workflow_id.node_ids.search([('node_name', '=', self.state), ('workflow_id', '=', self.workflow_id.id)]).button_ids
|
||||
user_ids_list = []
|
||||
if self.state != 'end':
|
||||
if button_ids:
|
||||
self_state = button_ids[0]
|
||||
else:
|
||||
raise UserError('请配置节点按钮')
|
||||
employee_user_role_ids = self.env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', self_state.users_role_id.id),
|
||||
('user_role_ids', 'in', self_state.users_role_id.id)])
|
||||
employee_user_role_id = self.env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', self_state.users_role_id.id),
|
||||
('user_role_ids', 'in', self_state.users_role_id.id), '|',
|
||||
('department_id', '=', self.department_id.id),
|
||||
('department_ids', 'in', self.department_id.id)])
|
||||
employee_ids = employee_user_role_ids if not self_state.is_automatic else employee_user_role_id
|
||||
for employee in employee_ids:
|
||||
if employee.user_id:
|
||||
user_ids_list.append((4, employee.user_id.id))
|
||||
if not record_obj:
|
||||
record_obj = self.env["soong.workflow.record"].create({
|
||||
"res_model": rec._name,
|
||||
"res_id": rec.id,
|
||||
"workflow_id": rec.workflow_id.id,
|
||||
"node_id": rec.node_id.id,
|
||||
"done_by": self.env.uid,
|
||||
"users_ids": [(4, current_user_id)],
|
||||
})
|
||||
record_obj.update({"workflow_id": rec.workflow_id.id,
|
||||
"node_id": rec.node_id.id,
|
||||
"done_by": self.env.uid,
|
||||
"users_ids": user_ids_list,
|
||||
})
|
||||
# state_list = [i.node_name for i in self.workflow_id.node_ids]
|
||||
# self_state = state_list.index(self.state)
|
||||
# next_state = self.workflow_id.node_ids[self_state + 1].button_ids[0]
|
||||
if self.state in ['申请人', 'start', '拟办']:
|
||||
if not record_obj:
|
||||
self.env["soong.workflow.record"].create({
|
||||
"res_model": rec._name,
|
||||
"res_id": rec.id,
|
||||
"workflow_id": rec.workflow_id.id,
|
||||
"node_id": rec.node_id.id,
|
||||
"done_by": self.env.uid,
|
||||
"users_ids": [(4, current_user_id)],
|
||||
"self_users": self.env.user.name,
|
||||
})
|
||||
else:
|
||||
if self.state not in ['end']:
|
||||
if button_ids:
|
||||
self_state = button_ids[0]
|
||||
else:
|
||||
raise UserError('请配置节点按钮')
|
||||
employee_user_role_ids = self.env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', self_state.users_role_id.id),
|
||||
('user_role_ids', 'in', self_state.users_role_id.id)])
|
||||
employee_user_role_id = self.env['hr.employee'].search(
|
||||
['|', ('user_role_id', '=', self_state.users_role_id.id),
|
||||
('user_role_ids', 'in', self_state.users_role_id.id), '|',
|
||||
('department_id', '=', self.department_id.id),
|
||||
('department_ids', 'in', self.department_id.id)])
|
||||
employee_ids = employee_user_role_ids if not self_state.is_automatic else employee_user_role_id
|
||||
user_ids_list = []
|
||||
for employee in employee_ids:
|
||||
if employee.user_id:
|
||||
user_ids_list.append((4, employee.user_id.id))
|
||||
if not record_obj:
|
||||
record_obj = self.env["soong.workflow.record"].create({
|
||||
"res_model": rec._name,
|
||||
"res_id": rec.id,
|
||||
"workflow_id": rec.workflow_id.id,
|
||||
"node_id": rec.node_id.id,
|
||||
"done_by": self.env.uid,
|
||||
"users_ids": [(4, current_user_id)],
|
||||
"self_users": self.env.user.name,
|
||||
})
|
||||
record_obj.update({"workflow_id": rec.workflow_id.id,
|
||||
"node_id": rec.node_id.id,
|
||||
"done_by": self.env.uid,
|
||||
"users_ids": user_ids_list,
|
||||
"self_users": ','.join([employee.name for employee in employee_ids]),
|
||||
})
|
||||
|
||||
|
||||
def unlink(self):
|
||||
self.mapped("log_ids").unlink()
|
||||
|
||||
@@ -13,7 +13,7 @@ class SoongWorkflowRecord(models.Model):
|
||||
_order = 'write_date'
|
||||
|
||||
def get_no_read_count(self):
|
||||
return self.search_count([('approve_state', '=', 'pending'), ('reclaim_state', '=', False), ('users_ids', 'in', [self.env.user_id])])
|
||||
return self.search_count([('approve_state', '=', 'pending'), ('self_users', '=', self.env.user.name)])
|
||||
|
||||
@api.depends("res_model", "res_id")
|
||||
def compute_name(self):
|
||||
@@ -27,6 +27,7 @@ class SoongWorkflowRecord(models.Model):
|
||||
res_model = fields.Char(string="Res Model", required=True)
|
||||
res_id = fields.Integer(string="Res ID", required=True)
|
||||
users_ids = fields.Many2many('res.users', string="用户")
|
||||
self_users = fields.Char(string="当前经办人")
|
||||
workflow_id = fields.Many2one(comodel_name="soong.workflow", string="审批类型", ondelete="restrict")
|
||||
node_id = fields.Many2one(comodel_name="soong.workflow.node", string="当前节点")
|
||||
approve_state = fields.Selection([("start", "开始"), ("pending", "审批中"), ("end", "结束")], default="start", string="审批状态", compute="_compute_node_id")
|
||||
|
||||
@@ -24,7 +24,8 @@
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="node_id" string="当前节点"/>
|
||||
<field name="approve_state" string="审批状态"/>
|
||||
<field name="users_ids" string="当前经办人" widget="many2many_tags"/>
|
||||
<field name="users_ids" string="用户" widget="many2many_tags" optional="hide"/>
|
||||
<field name="self_users" string="当前经办人"/>
|
||||
<field name="done_by" />
|
||||
<field name="write_date"/>
|
||||
<field name="reclaim_state" column_invisible="1"/>
|
||||
|
||||
@@ -169,7 +169,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
# "lase_click_date": fields.Datetime.now(),
|
||||
}
|
||||
)
|
||||
record_obj.update({"approval_state": "1"})
|
||||
record_obj.update({"approval_state": "0"})
|
||||
# partner_ids = self.employee_ids.user_id.partner_id.ids
|
||||
# self.with_context(lang=self.env.lang)._message_auto_subscribe_notify(partner_ids, 'soong_workflow.message_soong_workflow_distribute')
|
||||
return self.node_btn_id.with_context(cx).run()
|
||||
|
||||
Reference in New Issue
Block a user