Merge pull request !4968 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-09-08 02:53:12 +00:00
committed by Gitee
5 changed files with 13 additions and 11 deletions
@@ -47,9 +47,15 @@ class SoongWorkflowRecord(models.Model):
department_id = fields.Many2one("hr.department", string="部门", required=True)
done_by = fields.Many2one(comodel_name="res.users", string="发起人")
active = fields.Boolean(string="归档", default=True)
is_manager = fields.Boolean(string="是否管理员", compute='_compute_part_of_department', store=True)
soong_state = fields.Selection([('to_do', '待办'), ('done', '已办')], string="流程状态", default="done")
member_of_department = fields.Boolean("是否是本部门数据", compute='_compute_part_of_department', search='_search_part_of_department')
@api.depends_context('uid')
def _compute_is_manager(self):
for record in self:
record.is_manager = self.env.user.has_group('soong_workflow.group_soong_workflow_manager')
def admin_end(self):
pass
@@ -72,9 +78,9 @@ class SoongWorkflowRecord(models.Model):
@api.depends_context('uid', 'company')
@api.depends('department_id')
def _compute_part_of_department(self):
user_employee = self._get_valid_employee_for_user()
self.is_manager = self.env.user.has_group('soong_workflow.group_soong_workflow_manager')
active_department = user_employee.department_id
parent_department = active_department.parent_id
# 递归获取父部门的所有子部门
@@ -83,7 +83,9 @@
<field name="soong_state"/>
<field name="reclaim_state" column_invisible="1"/>
<field name="member_of_department" optional="hide"/>
<button name="delete_record" type="object" string="删除" class="btn-primary" confirm="你确定要删除吗?" groups="soong_workflow.group_soong_workflow_manager"/>
<field name="is_manager" optional="hide"/>
<button name="delete_record" type="object" string="删除" class="btn-primary" confirm="你确定要删除吗?"
invisible="not (is_manager or approve_state == 'draft')"/>
<button name="reminders_record" type="object" string="催办" class="btn-primary"
groups="soong_workflow.group_soong_workflow_manager"/>
<button name="revoke_record" type="object" string="撤销" class="btn-primary"
+1 -6
View File
@@ -114,14 +114,9 @@ class HrAttendance(models.Model):
def compute_company_id(self):
employee_date_records = {}
for att in self.env["hr.attendance"].browse(self._context.get('active_ids', self._context.get('active_id'))):
if not (att.employee_id and att.current_data):
continue # 跳过缺少员工或日期的记录
# 获取员工ID和记录日期(忽略时间部分)
employee_id = att.employee_id.id
# 创建唯一分组键 (员工ID, 日期)
group_key = (employee_id, att.current_data)
# 将记录按员工+日期分组
if group_key not in employee_date_records:
employee_date_records[group_key] = []
@@ -224,7 +219,7 @@ class HrAttendance(models.Model):
if record.absenteeism_card:
absenteeism_card += 1
if has_abnormal:
url = "#小程序://天投云/XttsPpKg3MEpY7h"
url = f"http://oa.thtzjt.com/#/clock_in_staticstis?user_id={employee.user_id.id}"
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att', user_id=employee.wecom_userid, title="打卡异常提醒",
description="本月迟到: {}\n本月缺卡: {}\n本月早退: {}\n本月异常:{}\n 本月旷工: {}\n"
.format(is_late_card, is_no_card, is_early_card, is_abnormal, absenteeism_card),
+1 -1
View File
@@ -128,7 +128,7 @@ class YuthonNotice(models.Model):
menu_id = self.env['ir.ui.menu'].search([('name', '=', '通知公告'), ('parent_id', '!=', False)])
conf_old = self.env['yuthon.confirm.users'].search([('notice_id', '=', self.id), ('employee_id', 'in', self.users_ids.ids)])
for user_id in self.users_ids:
url = f'https://oa.thtzjt.com/web?login={user_id.login}&oauth_uid={user_id.employee_id.wecom_userid}#id={self.id}&cids=2&action={menu_id.action.id}&model=yuthon.notice&view_type=form&menu_id={menu_id.id}'
url = f'http://oa.thtzjt.com/webh5#/notice?id={self.id}'
if conf_old:
for co in conf_old:
co.write({'state': 'no'})
+1 -2
View File
@@ -174,8 +174,7 @@ class YuthonWillTask(models.Model):
for employee_id in self.env['hr.employee'].search([('id', 'in', employee_list)]):
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?login={employee_id.user_id.login}#id={self.id}&cids=2&action={menu_id.action.id}&model=yuthon.will.task&view_type=form&menu_id={menu_id.id}'
url = f'http:://oa.thtzjt.com/webh5#/journey?id={self.id}'
data_name = "事项名称: " + self.name + '\n'
# data_start_time = '开始时间:' + str(self.start_time + timedelta(hours=8)) + '\n'
data_user_ids = '参与人: ' + ', '.join(self.employee_ids.mapped('name')) + '\n'