From ab45fc483fca8cf9ca5c8d6fa984b4ab18afe4bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Tue, 28 Apr 2026 15:35:46 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_will_task/models/yuthon_will_task.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py index a60128f48..01bf39065 100644 --- a/yuthon_will_task/models/yuthon_will_task.py +++ b/yuthon_will_task/models/yuthon_will_task.py @@ -11,7 +11,7 @@ class YuthonWillTask(models.Model): _name = 'yuthon.will.task' _description = '日程' _rec_name = 'name' - _order = 'request_hour_from desc' + _order = 'task_time desc' time_list = [ ('0', '0:00'), ('0.25', '0:15'), ('0.5', '0:30'), ('0.75', '0:45'), From 6fd670b4c1cb663fa317aa7096cd39784a0a8011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 29 Apr 2026 09:56:31 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_will_task/models/yuthon_will_task.py | 7 ++++++- yuthon_will_task/views/yuthon_will_task_views.xml | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py index 01bf39065..39245cea5 100644 --- a/yuthon_will_task/models/yuthon_will_task.py +++ b/yuthon_will_task/models/yuthon_will_task.py @@ -11,7 +11,6 @@ class YuthonWillTask(models.Model): _name = 'yuthon.will.task' _description = '日程' _rec_name = 'name' - _order = 'task_time desc' time_list = [ ('0', '0:00'), ('0.25', '0:15'), ('0.5', '0:30'), ('0.75', '0:45'), @@ -93,6 +92,12 @@ class YuthonWillTask(models.Model): is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company', search='_search_part_of_company') + def update_task_state(self): + will_ids = self.env["yuthon.will.task"].browse( + self._context.get('active_ids', self._context.get('active_id'))) + for will in will_ids: + will.state = 'done' + def _compute_is_company(self): active_company_ids = self.env.companies for employee in self: diff --git a/yuthon_will_task/views/yuthon_will_task_views.xml b/yuthon_will_task/views/yuthon_will_task_views.xml index 861baabbe..456017c4a 100644 --- a/yuthon_will_task/views/yuthon_will_task_views.xml +++ b/yuthon_will_task/views/yuthon_will_task_views.xml @@ -401,4 +401,12 @@ code action = model.one_time() + + 状态改为已办 + + + code + action = model.update_task_state() + + From 0c50da6c468bbc725d46c55aeda1b60f18c8efe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 29 Apr 2026 11:07:22 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_will_task/views/yuthon_will_task_views.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yuthon_will_task/views/yuthon_will_task_views.xml b/yuthon_will_task/views/yuthon_will_task_views.xml index bb18c816d..2f80701d6 100644 --- a/yuthon_will_task/views/yuthon_will_task_views.xml +++ b/yuthon_will_task/views/yuthon_will_task_views.xml @@ -408,6 +408,6 @@ code action = model.update_task_state() - + From d69a48690fa767cf1a0e3a91ecfe8f7d91c6a4d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 29 Apr 2026 11:12:18 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_salary/models/yuthon_salary_active.py | 10 +++++----- yuthon_will_task/models/yuthon_will_task.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/yuthon_salary/models/yuthon_salary_active.py b/yuthon_salary/models/yuthon_salary_active.py index 4533ff9c6..3153d6ae8 100644 --- a/yuthon_salary/models/yuthon_salary_active.py +++ b/yuthon_salary/models/yuthon_salary_active.py @@ -128,11 +128,11 @@ class YuthonSalaryActive(models.Model): category='salary', user_id=self.employee_id.wecom_userid, url=url, title='工资条', description=f"{self.select_year}年{self.select_time}月的薪资条已经发放", btntxt="查看详情" ) - self.sudo().env["wecom.apps"].sync_send_message_textcard( - category='salary', user_id='18562027762', - url=url, title='工资条', description=f"{self.select_year}年{self.select_time}月的薪资条已经发放", - btntxt="查看详情" - ) + # self.sudo().env["wecom.apps"].sync_send_message_textcard( + # category='salary', user_id='18562027762', + # url=url, title='工资条', description=f"{self.select_year}年{self.select_time}月的薪资条已经发放", + # btntxt="查看详情" + # ) self.write({'confirm_status': 'un_confirm'}) def all_payslip_transmit(self): diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py index f7f252a5f..6b7753dee 100644 --- a/yuthon_will_task/models/yuthon_will_task.py +++ b/yuthon_will_task/models/yuthon_will_task.py @@ -98,7 +98,7 @@ class YuthonWillTask(models.Model): will_ids = self.env["yuthon.will.task"].browse( self._context.get('active_ids', self._context.get('active_id'))) for will in will_ids: - will.state = 'done' + will.task_state = 'done' def _compute_is_company(self): active_company_ids = self.env.companies From 3ef02258b630bc88ae37a1d0166bbb5759016de6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 29 Apr 2026 11:17:53 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/soong_workflow_entrust.py | 140 +++++++++--------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/soong_workflow/models/soong_workflow_entrust.py b/soong_workflow/models/soong_workflow_entrust.py index d9fcef88b..8473be4c7 100644 --- a/soong_workflow/models/soong_workflow_entrust.py +++ b/soong_workflow/models/soong_workflow_entrust.py @@ -44,76 +44,76 @@ class SoongWorkflowEntrust(models.Model): entrust_notice = fields.Boolean(string="发送事务提醒消息", default=True) workflow_data = fields.Char(string="委托流程记录方便到期删除") - @api.constrains('is_enable', 'entrust_user_id', 'entrust_user_id2') - def onchange_entrust(self): - # 如果是全部流程 - if self.is_enable: - all_work_list = [] - for model_id in self.model_ids: - if self.env['ir.model'].search([('id', '=', model_id.id)]).name == '全部流程': - all_work_ids = self.env['soong.workflow'].search([('is_enable', '=', True)]) - else: - all_work_ids = self.env['soong.workflow'].search([('is_enable', '=', True), ('model_id', '=', model_id.id)]) - # 便利出所有的记录集,查出与本人相关的 - for work_id in all_work_ids: - state_dict = {} - for state in work_id.node_ids: - node_data_list = [] - for node in state.button_ids: - if node.name == '转交': - if node.btn_hide: - if node.review_type == 'user_role': - node_data = {'users_role_id': node.users_role_id.id} - elif node.review_type == 'individual': - node_data = {'reviewer_id': node.reviewer_id.id, } - else: - node_data = [] - node_data_list.append(node_data) - state_dict[state.name + '-' + str(work_id.id)] = node_data_list - all_work_list.append(state_dict) - # 查找委托人当前关联的流程 - reviewer_id = self.env['res.users'].search([('id', '=', self.entrust_user_id.id)]) - users_role_id = reviewer_id.employee_id.user_role_id.id - for work in all_work_list: - # 判断角色是否在里面 - users_role = [ - key for key, items in work.items() - if any( - isinstance(item, dict) and item.get('users_role_id') == users_role_id - for item in items - ) - ] - for role in users_role: - workflow = int(role.split('-')[-1]) - work_code = role.split('-')[0] - workflow_id = self.env['soong.workflow'].search([('id', '=', workflow)]) - for flow in workflow_id.node_ids: - if flow.name == work_code and flow.button_ids[-1].name != '转交': - flow.write({ - 'button_ids': [(0, 0, { - "name": _("转交"), - "workflow_id": workflow_id.id, - "sequence": 999, - "review_type": "individual", - "btn_hide": True, - "action_type": 'code', - "reviewer_id": self.entrust_user_id2.id, - "has_comment": True, - })] - }) - if self.workflow_data: - self.workflow_data = self.workflow_data + work_code + '-' + str(workflow_id.id) + ',' - else: - self.workflow_data = work_code + '-' + str(workflow_id.id) + ',' - else: - for de in self: - work_ids_list = de.workflow_data.split(',')[0:-1] - for work in work_ids_list: - workflow_id = self.env['soong.workflow'].search([('id', '=', int(work.split('-')[-1]))]) - for flow in workflow_id.node_ids: - if flow.name == work.split('-')[0] and flow.button_ids[-1].name == '转交': - flow.button_ids[-1].unlink() - self.workflow_data = '' + # @api.constrains('is_enable', 'entrust_user_id', 'entrust_user_id2') + # def onchange_entrust(self): + # # 如果是全部流程 + # if self.is_enable: + # all_work_list = [] + # for model_id in self.model_ids: + # if self.env['ir.model'].search([('id', '=', model_id.id)]).name == '全部流程': + # all_work_ids = self.env['soong.workflow'].search([('is_enable', '=', True)]) + # else: + # all_work_ids = self.env['soong.workflow'].search([('is_enable', '=', True), ('model_id', '=', model_id.id)]) + # # 便利出所有的记录集,查出与本人相关的 + # for work_id in all_work_ids: + # state_dict = {} + # for state in work_id.node_ids: + # node_data_list = [] + # for node in state.button_ids: + # if node.name == '转交': + # if node.btn_hide: + # if node.review_type == 'user_role': + # node_data = {'users_role_id': node.users_role_id.id} + # elif node.review_type == 'individual': + # node_data = {'reviewer_id': node.reviewer_id.id, } + # else: + # node_data = [] + # node_data_list.append(node_data) + # state_dict[state.name + '-' + str(work_id.id)] = node_data_list + # all_work_list.append(state_dict) + # # 查找委托人当前关联的流程 + # reviewer_id = self.env['res.users'].search([('id', '=', self.entrust_user_id.id)]) + # users_role_id = reviewer_id.employee_id.user_role_id.id + # for work in all_work_list: + # # 判断角色是否在里面 + # users_role = [ + # key for key, items in work.items() + # if any( + # isinstance(item, dict) and item.get('users_role_id') == users_role_id + # for item in items + # ) + # ] + # for role in users_role: + # workflow = int(role.split('-')[-1]) + # work_code = role.split('-')[0] + # workflow_id = self.env['soong.workflow'].search([('id', '=', workflow)]) + # for flow in workflow_id.node_ids: + # if flow.name == work_code and flow.button_ids[-1].name != '转交': + # flow.write({ + # 'button_ids': [(0, 0, { + # "name": _("转交"), + # "workflow_id": workflow_id.id, + # "sequence": 999, + # "review_type": "individual", + # "btn_hide": True, + # "action_type": 'code', + # "reviewer_id": self.entrust_user_id2.id, + # "has_comment": True, + # })] + # }) + # if self.workflow_data: + # self.workflow_data = self.workflow_data + work_code + '-' + str(workflow_id.id) + ',' + # else: + # self.workflow_data = work_code + '-' + str(workflow_id.id) + ',' + # else: + # for de in self: + # work_ids_list = de.workflow_data.split(',')[0:-1] + # for work in work_ids_list: + # workflow_id = self.env['soong.workflow'].search([('id', '=', int(work.split('-')[-1]))]) + # for flow in workflow_id.node_ids: + # if flow.name == work.split('-')[0] and flow.button_ids[-1].name == '转交': + # flow.button_ids[-1].unlink() + # self.workflow_data = '' @api.depends('start_date', 'end_date', 'is_expiration_date') def compute_is_enable(self):