diff --git a/soong_workflow/models/soong_workflow_log.py b/soong_workflow/models/soong_workflow_log.py
index 85da32668..409383330 100644
--- a/soong_workflow/models/soong_workflow_log.py
+++ b/soong_workflow/models/soong_workflow_log.py
@@ -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="意见")
diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py
index 538a6f001..7bfdc8012 100644
--- a/soong_workflow/models/soong_workflow_mixin.py
+++ b/soong_workflow/models/soong_workflow_mixin.py
@@ -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()
diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py
index 1f7962332..b4a6692b1 100644
--- a/soong_workflow/models/soong_workflow_record.py
+++ b/soong_workflow/models/soong_workflow_record.py
@@ -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")
diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml
index 6eff957c6..5b8c28c11 100644
--- a/soong_workflow/views/soong_workflow_record.xml
+++ b/soong_workflow/views/soong_workflow_record.xml
@@ -24,7 +24,8 @@
-
+
+
diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py
index c05f0ae2d..8e3434bee 100644
--- a/soong_workflow/wizard/soong_workflow_comment_wizard.py
+++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py
@@ -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()