From a2d2e8e89e9a898d42e33ff68e1c93c72b06ebed Mon Sep 17 00:00:00 2001 From: Admin Date: Thu, 22 Jan 2026 01:53:42 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=97=A5=E7=A8=8B=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_will_task/controllers/main.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/yuthon_will_task/controllers/main.py b/yuthon_will_task/controllers/main.py index 7a3983343..2857a875b 100644 --- a/yuthon_will_task/controllers/main.py +++ b/yuthon_will_task/controllers/main.py @@ -123,15 +123,21 @@ class YuthonWillTask(http.Controller): 'id': task.id, 'name': task.name, 'employee_id': task.employee_id.name, - 'employee_ids': ', '.join(task.employee_ids.mapped('name')), + 'employee_ids': ','.join(task.employee_ids.mapped('name')), + 'employee_ids2': ','.join(task.employee_ids2.mapped('name')), + 'task_time_ids': ','.join(task.task_time_ids.mapped('name')), + 'drivers': task.employee_ids2.read(['name']), + 'employee': task.employee_ids.read(['name']), + 'task_time': task.task_time_ids.read(['name']), 'employee_num': len(task.employee_ids), 'start_date': fields.Date.to_string(task.start_date), 'weekday': weekday_str, - 'request_hour_from': '', - 'request_hour_to': '', + 'request_hour_from': task.request_hour_from, + 'request_hour_to': task.request_hour_to, 'remarks': task.remarks, 'address': task.address, 'file_list': file_list, + 'priority': task.priority, } hour_dict = dict(request_hour_selection) From 3c5e12db2632d5efffcabb360af555036ed3da94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Sat, 24 Jan 2026 12:09:51 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4=EF=BC=8C=E5=88=86?= =?UTF-8?q?=E5=8F=91=E6=8E=92=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soong_workflow/models/soong_workflow_mixin.py | 27 +++++++++++++++---- .../models/soong_workflow_record.py | 3 +++ .../views/soong_workflow_record.xml | 2 +- .../soong_workflow_comment_wizard_view.xml | 24 ++++++++++++----- 4 files changed, 43 insertions(+), 13 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 743981bd0..fcd04ba59 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -659,11 +659,28 @@ class SoongWorkflowMixin(models.AbstractModel): self.env["soong.workflow.record"].create(values) if record_obj: - record_obj.update({"workflow_id": rec.workflow_id.id, - "node_id": rec.node_id.id, - "done_by": self.env.uid, - "write_date2": fields.Datetime.now(), - }) + # 获取上一节点的结束时间(即log_ids最后一条记录的lase_click_date) + node_update_time = False + try: + if hasattr(rec, 'log_ids') and rec.log_ids: + # 按ID排序获取最后一条日志 + sorted_logs = rec.log_ids.sorted(lambda log: log.id) + if sorted_logs and sorted_logs[-1].lase_click_date: + node_update_time = sorted_logs[-1].lase_click_date + except Exception as e: + _logger.debug(f"Failed to get node_update_time: {e}") + + # 更新记录 + update_vals = { + "workflow_id": rec.workflow_id.id, + "node_id": rec.node_id.id, + "done_by": self.env.uid, + "write_date2": fields.Datetime.now(), + } + if node_update_time: + update_vals["node_update_time"] = node_update_time + + record_obj.update(update_vals) def find_fields_by_string(self,record_id): """ diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index b54864820..b969a0ebe 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -82,6 +82,9 @@ class SoongWorkflowRecord(models.Model): is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company',search='_search_part_of_company') + # 节点更新时间(上一节点的结束时间) + node_update_time = fields.Datetime(string="节点更新时间") + @api.depends_context('uid', 'company') @api.depends('company_id') def _compute_is_company(self): diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index fe4111ea0..07ef8b71f 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -243,7 +243,7 @@ decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'"/> - + diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml b/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml index 9f3a8e2a1..329746b99 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml +++ b/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml @@ -105,13 +105,23 @@

当前流程是否收回,请确认

- - - - - - - + + + + + + + + + + + + + + + + +