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):