From a9166d72e2018d22b23e4f3ec179c5d64fba264d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Fri, 16 Jan 2026 18:27:14 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/business_approval_print_templates.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/yuthon_trade/report/business_approval_print_templates.xml b/yuthon_trade/report/business_approval_print_templates.xml index 98603d261..1dc9eec57 100644 --- a/yuthon_trade/report/business_approval_print_templates.xml +++ b/yuthon_trade/report/business_approval_print_templates.xml @@ -25,7 +25,10 @@ .attachment-list { text-align: left !important; }
业务审批单
-
部门:
+
+ 部门: + 流水号: +
@@ -35,8 +38,8 @@ - - + + From 13e1eec963e9f7d6b015f8653c5e8dc5258b8686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Fri, 16 Jan 2026 18:27:20 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_notice/controllers/main.py | 33 +++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/yuthon_notice/controllers/main.py b/yuthon_notice/controllers/main.py index 15731c1e2..516d1361d 100644 --- a/yuthon_notice/controllers/main.py +++ b/yuthon_notice/controllers/main.py @@ -3,6 +3,7 @@ import json from odoo import http, fields from odoo.http import request +from urllib.parse import quote class YuthonNotice(http.Controller): @@ -43,15 +44,43 @@ class YuthonNotice(http.Controller): @http.route('/yuthon/notice/list', methods=['POST'], type='http', auth='none', csrf=False) def yuthon_notice_list(self, **kwargs): - notice_ids = request.env['yuthon.notice'].sudo().search([('employee_id.id', "=", kwargs.get('employee_id'))]) + notice_ids = request.env['yuthon.notice'].sudo().search([('employee_ids.id', "=", kwargs.get('employee_id'))]) data_list = [] for notice in notice_ids: result = { 'id': notice.id, - 'create_data1': notice.create_data1, + 'create_date1': fields.Date.to_string(notice.create_date1) if notice.create_date1 else None, 'users_id': notice.users_id.name, 'name': notice.name, } data_list.append(result) return json.dumps({'data': data_list, 'code': 200, 'message': 'success'}) + @http.route('/yuthon/notice/detail', methods=['POST'], type='http', auth='none', csrf=False) + def yuthon_notice_detail(self, **kwargs): + notice = request.env['yuthon.notice'].sudo().search([('id', '=', kwargs.get('id'))]) + + result = { + 'id': notice.id, + 'create_date1': fields.Date.to_string(notice.create_date1), + 'users_id': notice.users_id.name, + 'name': notice.name, + 'notice_type_id': notice.notice_type_id.name, + 'notice_text': notice.notice_text, + } + + return json.dumps({ + 'code': 200, + 'message': 'success', + 'data': result + }) + + @http.route('/yuthon/notice/confirm', methods=['POST'], type='http', auth='none', csrf=False) + def yuthon_notice_confirm(self, **kwargs): + notice_id = kwargs.get('id') + employee_id = kwargs.get('employee_id') + confirm_id = request.env['yuthon.confirm.users'].sudo().search([('notice_id', '=', notice_id),('employee_id', '=', employee_id)]) + confirm_id.write({'state': 'yes'}) + return json.dumps({'code': 200, 'message': 'OK'}) + + From 6debca89b5310d5c84fc2c83e2e6e532d56e2576 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: Fri, 16 Jan 2026 19:05:31 +0800 Subject: [PATCH 3/3] =?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 --- soong_workflow/models/soong_workflow_mixin.py | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 29b427174..df236d802 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -125,12 +125,24 @@ class SoongWorkflowMixin(models.AbstractModel): for record in self: record.is_confirm = False record.is_end = False - domain = [('done_by', '=', self.env.user.id), ('workflow_id', '=', record.workflow_id.id), - ('res_id', '=', record.id), ('approval_state', 'in', ['0', '1']), ('name', '!=', '归档')] - lg2 = record.log_ids2.search(domain) - lg1 = record.log_ids.search(domain) - if lg2 or lg1: + log_ids_domain = [ + ('done_by', '=', self.env.user.id), + ('workflow_id', '=', record.workflow_id.id), + ('res_id', '=', record.id), + ('approval_state', 'in', ['0', '1']), + ('name', '=', '承办') + ] + log_ids2_domain = [ + ('done_by', '=', self.env.user.id), + ('workflow_id', '=', record.workflow_id.id), + ('res_id', '=', record.id), + ('approval_state', 'in', ['0', '1']) + ] + lg1 = record.log_ids.search(log_ids_domain) + lg2 = record.log_ids2.search(log_ids2_domain) + if lg1 or lg2: record.is_confirm = True + if (not lg1 and not lg2) or not record.is_confirm: record.is_end = True
事项标题
业务类型、
事项说明
用章类型、
用章范围、
用章类型、
用章范围、
附件清单
审批详情