From 253c22dbe9a8d9f66d0f9f402e955104a766e92e Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Tue, 15 Apr 2025 19:13:04 +0800 Subject: [PATCH] =?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_record.py | 4 +- .../wizard/soong_workflow_comment_wizard.py | 8 ++-- yuthon_hr_attendance/models/hr_attendance.py | 4 +- .../models/hr_attendance_month.py | 6 +-- .../yuthon_recruitment_approval_views.xml | 6 +-- yuthon_notice/models/yuthon_confirm_users.py | 4 +- yuthon_notice/models/yuthon_notice.py | 2 +- .../models/property_electric_reading.py | 2 +- .../models/property_water_reading.py | 2 +- .../models/property_lease_contract.py | 3 +- .../views/property_lease_contract.xml | 1 + yuthon_salary/models/inherit_hr_payslip.py | 2 +- yuthon_will_task/models/yuthon_will_task.py | 6 +-- .../views/yuthon_will_task_views.xml | 47 +++++++++++++------ 14 files changed, 59 insertions(+), 38 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index b47eb5ab8..2dcd05a8d 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -88,7 +88,7 @@ class SoongWorkflowRecord(models.Model): record_id = self.env[self.res_model].search([('id', '=', self.res_id)]) for rec in record_id.log_ids: if rec.approval_state in ['0', '1']: - url = f'https://oa.thtzjt.com/web?oauth_access_token={rec.done_by.employee_id.user_id.oauth_access_token}&oauth_uid={rec.done_by.employee_id.user_id.oauth_uid}#id={self.id}&cids=2&action={record_id.action.id}&model={self.res_model}&view_type=from&menu_id={record_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={record_id.action.id}&model={self.res_model}&view_type=from&menu_id={record_id.id}' description = "标题: {}\n".format(record_id.name) + self.env.user.name + ' ' + str(fields.Datetime.now() + timedelta(hours=8)) self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa', user_id=rec.done_by.employee_id.wecom_userid, title=record_id._description + '催办传阅/抄送,请尽快处理', @@ -96,7 +96,7 @@ class SoongWorkflowRecord(models.Model): btntxt="查看详情") for rec in record_id.log_ids2: if rec.approval_state == '0': - url = f'https://oa.thtzjt.com/web?oauth_access_token={rec.done_by.employee_id.user_id.oauth_access_token}&oauth_uid={rec.done_by.employee_id.user_id.oauth_uid}#id={self.id}&cids=2&action={record_id.action.id}&model={self.res_model}&view_type=from&menu_id={record_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={record_id.action.id}&model={self.res_model}&view_type=from&menu_id={record_id.id}' description = "标题: {}\n".format(record_id.name) + self.env.user.name + ' ' + str(fields.Datetime.now() + timedelta(hours=8)) self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa', user_id=rec.done_by.employee_id.wecom_userid, title=record_id._description + '催办传阅/抄送,请尽快查看', diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index bc667fc21..7ddfc4036 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -19,7 +19,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): node_btn_id = fields.Many2one(comodel_name="soong.workflow.node.button") node_btn_name = fields.Char(string="动作名称", related='node_btn_id.name') user_id = fields.Many2one('res.users',string='用户',default=lambda self: self.env.user) - user_role_id = fields.Many2one('soong.user.role', string="角色", compute='_compute_user_role_id') + user_role_id = fields.Many2one('soong.user.role', string="角色", compute='_compute_user_role_id', store=True) node_link_len = fields.Char(string="转交2") is_supervising = fields.Boolean(string="是否督办") comment_note_id = fields.Many2one('soong.note', string="意见", default='妥否,呈领导审批') @@ -171,7 +171,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): "node_btn_id": self.node_btn_id.id, "approval_state": "0", }) - url = f'https://oa.thtzjt.com/web?oauth_access_token={employee.user_id.oauth_access_token}&oauth_uid={employee.user_id.oauth_uid}#id={self.id}&cids=2&action={record_id.action.id}&model={self.res_model}&view_type=from&menu_id={record_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={record_id.action.id}&model={self.res_model}&view_type=from&menu_id={record_id.id}' description = "标题: {}\n".format(record_id.name) + self.env.user.name + ' ' + str( fields.Datetime.now() + timedelta(hours=8)) self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa', @@ -248,7 +248,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): "node_btn_id": self.node_btn_id.id, "approval_state": "0", }) - url = f'https://oa.thtzjt.com/web?oauth_access_token={employee.user_id.oauth_access_token}&oauth_uid={employee.user_id.oauth_uid}#id={self.id}&cids=2&action={record_id.action.id}&model={self.res_model}&view_type=from&menu_id={record_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={record_id.action.id}&model={self.res_model}&view_type=from&menu_id={record_id.id}' description = "标题: {}\n".format(record_id.name) + self.env.user.name + ' ' + str( fields.Datetime.now() + timedelta(hours=8)) self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa', @@ -265,7 +265,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): log_ids[-2].write({'approval_state': '1'}) record_id.write({'state': log_ids[-2].name}) for employee in self.employee_ids: - url = f'https://oa.thtzjt.com/web?oauth_access_token={employee.user_id.oauth_access_token}&oauth_uid={employee.user_id.oauth_uid}#id={self.id}&cids=2&action={record_id.action.id}&model={self._name}&view_type=from&menu_id={record_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={record_id.action.id}&model={self._name}&view_type=from&menu_id={record_id.id}' self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa', user_id=employee.wecom_userid, title=self._description, diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py index 38af77a91..09f73d652 100644 --- a/yuthon_hr_attendance/models/hr_attendance.py +++ b/yuthon_hr_attendance/models/hr_attendance.py @@ -96,7 +96,7 @@ class HrAttendance(models.Model): is_early_card += 1 if i.is_no_card: is_late_card += 1 - url = f'https://oa.thtzjt.com/web?oauth_access_token={rec.employee_id.user_id.oauth_access_token}&oauth_uid={rec.employee_id.user_id.oauth_uid}#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance&view_type=from&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance&view_type=from&menu_id={menu_id.id}' self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att', user_id=rec.employee_id.wecom_userid, title="打卡异常提醒", description="本月迟到: {}\n本月缺卡: {}\n本月早退: {}\n".format(is_late_card, is_no_card, is_early_card), url=url, btntxt="详细信息") @@ -275,7 +275,7 @@ class HrAttendance(models.Model): employee_ids = self.env['hr.employee'].search([('department_id.name', '=', '办公室')]) menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的异常')]) for employee_id in employee_ids: - url = f'https://oa.thtzjt.com/web?oauth_access_token={employee_id.user_id.oauth_access_token}&oauth_uid={employee_id.user_id.oauth_uid}#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance&view_type=from&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance&view_type=from&menu_id={menu_id.id}' self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att', user_id=employee_id.wecom_userid, title="打卡异常提醒", description="异常提醒", diff --git a/yuthon_hr_attendance/models/hr_attendance_month.py b/yuthon_hr_attendance/models/hr_attendance_month.py index 1330fbe7c..95b5d767c 100644 --- a/yuthon_hr_attendance/models/hr_attendance_month.py +++ b/yuthon_hr_attendance/models/hr_attendance_month.py @@ -381,7 +381,7 @@ class HrAttendanceMonthDetail(models.Model): def button_put(self): menu_id = self.env['ir.ui.menu'].search([('name', '=', '考勤确认'), ('parent_id', '!=', False)]) - url = f'https://oa.thtzjt.com/web?oauth_access_token={self.employee_id.user_id.oauth_access_token}&oauth_uid={self.employee_id.user_id.oauth_uid}#action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}' we_id = self.env['hr.employee'].search([('id', '=', self.employee_id.id)]).wecom_userid self.sudo().env["wecom.apps"].sync_send_message_textcard(category='default', user_id=we_id, title="考勤确认", description=self.employee_id.name + '请确认你的考勤:', @@ -400,7 +400,7 @@ class HrAttendanceMonthDetail(models.Model): detail_ids = self.env["hr.attendance.month.detail"].browse(self._context.get('active_ids', self._context.get('active_id'))) for detail in detail_ids: menu_id = self.env['ir.ui.menu'].search([('name', '=', '考勤确认'), ('parent_id', '!=', False)]) - url = f'https://oa.thtzjt.com/web?oauth_access_token={detail.employee_id.user_id.oauth_access_token}&oauth_uid={detail.employee_id.user_id.oauth_uid}#action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}' we_id = self.env['hr.employee'].search([('id', '=', detail.employee_id)]).wecom_userid self.sudo().env["wecom.apps"].sync_send_message_textcard(category='attendance', user_id=we_id, title="考勤确认", description=detail.employee_id.name + '请确认你的考勤:', @@ -676,7 +676,7 @@ class HrAttendanceMonthDetail(models.Model): attendance_details = self.env['hr.attendance.month.detail'].search([]) for detail in attendance_details: menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的确认'), ('parent_id', '!=', False)]) - url = f'https://oa.thtzjt.com/web?oauth_access_token={detail.employee_id.user_id.oauth_access_token}&oauth_uid={detail.employee_id.user_id.oauth_uid}#action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&#action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}' we_id = self.env['hr.employee'].search([('id', '=', detail.employee_id)]).wecom_userid self.sudo().env["wecom.apps"].sync_send_message_textcard(category='attendance', user_id=we_id, title="考勤确认", description=detail .employee_id.name + '请确认你的考勤:', diff --git a/yuthon_hr_employee_approval/views/yuthon_recruitment_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_recruitment_approval_views.xml index 7b81e9f82..76ba889dd 100644 --- a/yuthon_hr_employee_approval/views/yuthon_recruitment_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_recruitment_approval_views.xml @@ -17,9 +17,9 @@
-
-
+ + + + diff --git a/yuthon_salary/models/inherit_hr_payslip.py b/yuthon_salary/models/inherit_hr_payslip.py index 8b6e1206d..f78a0b16f 100644 --- a/yuthon_salary/models/inherit_hr_payslip.py +++ b/yuthon_salary/models/inherit_hr_payslip.py @@ -163,7 +163,7 @@ class InheritHrPayslip(models.Model): def put_payslip(self): menu_id = self.env['ir.ui.menu'].search([('name', '=', '工资条'), ('parent_id', '!=', False)]) - url = f'https://oa.thtzjt.com/web?oauth_access_token={self.employee_id.user_id.oauth_access_token}&oauth_uid={self.employee_id.user_id.oauth_uid}#action={menu_id.action.id}&model=hr.payslip&view_type=list&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.payslip&view_type=list&menu_id={menu_id.id}' we_id = self.env['hr.employee'].search([('id', '=', self.employee_id)]).wecom_userid self.sudo().env["wecom.apps"].sync_send_message_textcard(category='payslip', user_id=we_id, title="薪资确认", description=self.employee_id.name + '请确认你的薪资:', diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py index fc6d9bb82..beae96b82 100644 --- a/yuthon_will_task/models/yuthon_will_task.py +++ b/yuthon_will_task/models/yuthon_will_task.py @@ -17,6 +17,7 @@ class YuthonWillTask(models.Model): priority = fields.Selection([('general', '不紧急不重要'), ('important', '重要不紧急'), ('urgent', '紧急不重要'), ('very_urgent', '重要且紧急')], string='优先级') task_type = fields.Many2one('task.type.setting', string='任务类型') + user_id = fields.Many2one('res.users', string="创建人", default=lambda self: self.env.user) task_content = fields.Text(string='任务内容') remarks = fields.Text(string='备注') creation_time = fields.Date(string='创建时间', default=fields.Date.today()) @@ -95,8 +96,7 @@ class YuthonWillTask(models.Model): if not employee_id.wecom_userid: raise UserError("请同步{}的企业微信".format(employee_id.name)) menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的日程')]) - url = f'https://oa.thtzjt.com/web?oauth_access_token={employee_id.user_id.oauth_access_token}&oauth_uid={employee_id.user_id.oauth_uid}#action={menu_id.action.id}&model=yuthon.will.task&view_type=list&menu_id={menu_id.id}' - # url = f'http://82.156.218.102:8057/web?oauth_access_token={employee_id.user_id.oauth_access_token}&oauth_uid={employee_id.user_id.oauth_uid}#action={menu_id.action.id}&model=yuthon.will.task&view_type=list&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=yuthon.will.task&view_type=form&menu_id={menu_id.id}' data_name = "事项名称: " + self.task_content + '\n' data_start_time = '开始时间:' + str(self.start_time + timedelta(hours=8)) + '\n' data_user_ids = '参与人: ' + ', '.join(self.employee_ids.mapped('name')) + '\n' @@ -129,7 +129,7 @@ class YuthonWillTask(models.Model): if not employee_id.wecom_userid: raise UserError("请同步{}的企业微信".format(employee_id.name)) menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的日程')]) - url = f'https://oa.thtzjt.com/web?oauth_access_token={employee_id.user_id.oauth_access_token}&oauth_uid={employee_id.user_id.oauth_uid}#action={menu_id.action.id}&model=yuthon.will.task&view_type=list&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=yuthon.will.task&view_type=list&menu_id={menu_id.id}' self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task', user_id=employee_id.wecom_userid, title="日程事项提醒", description="事项名称: " + self.task_content + '\t' + '该事项已取消', url=url, btntxt="详细信息") diff --git a/yuthon_will_task/views/yuthon_will_task_views.xml b/yuthon_will_task/views/yuthon_will_task_views.xml index ddc5f16af..974b66981 100644 --- a/yuthon_will_task/views/yuthon_will_task_views.xml +++ b/yuthon_will_task/views/yuthon_will_task_views.xml @@ -47,23 +47,42 @@ - - - - +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +