From 688d4e27eadfc21259f9f1e4db9bebbaca7eb783 Mon Sep 17 00:00:00 2001 From: pengyuthon Date: Tue, 10 Mar 2026 16:35:09 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=A4=90=E9=A5=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_catering/controllers/restaurant.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/yuthon_catering/controllers/restaurant.py b/yuthon_catering/controllers/restaurant.py index 46bcca492..455c6b39b 100644 --- a/yuthon_catering/controllers/restaurant.py +++ b/yuthon_catering/controllers/restaurant.py @@ -78,11 +78,16 @@ class RestaurantController(Controller): @route('/phone/restaurant/update_catering', methods=['POST'], type='http', auth="none", csrf=False, cors='*') @exception_handle def update_catering(self, **kwargs): + # user_id = int(kwargs.get('user_id')) + # catering_id = int(kwargs.get('id')) + # user = request.env['res.users'].sudo().browse(user_id).exists() + # employee = request.env['hr.employee'].sudo().search([('user_id', '=', user_id)]) + # catering = request.env['yuthon.catering'].with_user(user).browse(catering_id).exists() + user_id = int(kwargs.get('user_id')) - catering_id = int(kwargs.get('id')) - user = request.env['res.users'].sudo().browse(user_id).exists() - employee = request.env['hr.employee'].sudo().search([('user_id', '=', user_id)]) - catering = request.env['yuthon.catering'].with_user(user).browse(catering_id).exists() + employee = request.env['hr.employee'].sudo().search([('id', '=', user_id)]) + catering = request.env['yuthon.catering'].search([('id', '=', int(kwargs.get('id')))]) + if not catering: return json.dumps({'data': '', 'code': 500, 'message': '修改失败,记录不存在'}) catering.write({ @@ -113,7 +118,7 @@ class RestaurantController(Controller): if not user_id or not menu_date or not menu_id: return json.dumps({'data': '', 'code': 500, 'message': '请求失败'}) - employee = request.env['hr.employee'].sudo().search([('user_id', '=', user_id)]) + employee = request.env['hr.employee'].sudo().search([('id', '=', user_id)]) catering = request.env['yuthon.catering'].sudo().search([ ('employee_id', '=', employee.id), ('date', '=', menu_date), From b0528aafb0413ea2e0ac75bb3746fb16dc3ad04d 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, 10 Mar 2026 16:36:28 +0800 Subject: [PATCH 2/4] =?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_holiday/models/inherit_hr_leave.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/yuthon_holiday/models/inherit_hr_leave.py b/yuthon_holiday/models/inherit_hr_leave.py index e60e7294a..14e5274af 100644 --- a/yuthon_holiday/models/inherit_hr_leave.py +++ b/yuthon_holiday/models/inherit_hr_leave.py @@ -1117,7 +1117,15 @@ class HolidaysRequestBatch(models.Model): # 5. 扣减有效待提交额度(优先扣上年) for leave in valid_pending_leaves: - leave_days = leave.number_of_days_display or 0.0 + start_datetime = leave.date_from + end_datetime = leave.date_to + if not start_datetime or not end_datetime: + leave_days = 0.0 + else: + time_diff_seconds = (end_datetime - start_datetime).total_seconds() + time_diff_hours = time_diff_seconds / 3600.0 + leave_days = round(time_diff_hours / 8, 2) + leave_type_name = leave.holiday_status_id.name if leave_type_name not in leave_type_mapping or leave_days <= 0: continue From f5e5ec6ebbc5c6f0cb545cb7f39cf6a1b33250b4 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, 10 Mar 2026 16:37:58 +0800 Subject: [PATCH 3/4] =?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_holiday/models/inherit_hr_leave.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/yuthon_holiday/models/inherit_hr_leave.py b/yuthon_holiday/models/inherit_hr_leave.py index 14e5274af..5182e413e 100644 --- a/yuthon_holiday/models/inherit_hr_leave.py +++ b/yuthon_holiday/models/inherit_hr_leave.py @@ -1117,15 +1117,7 @@ class HolidaysRequestBatch(models.Model): # 5. 扣减有效待提交额度(优先扣上年) for leave in valid_pending_leaves: - start_datetime = leave.date_from - end_datetime = leave.date_to - if not start_datetime or not end_datetime: - leave_days = 0.0 - else: - time_diff_seconds = (end_datetime - start_datetime).total_seconds() - time_diff_hours = time_diff_seconds / 3600.0 - leave_days = round(time_diff_hours / 8, 2) - + leave_days = leave.length_leave or 0.0 leave_type_name = leave.holiday_status_id.name if leave_type_name not in leave_type_mapping or leave_days <= 0: continue From 1311982947a2affb8200bb4031df2a442c592e26 Mon Sep 17 00:00:00 2001 From: pengyuthon Date: Tue, 10 Mar 2026 16:45:25 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E9=A4=90=E9=A5=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_catering/controllers/restaurant.py | 19 ++++++------------- yuthon_catering/models/yuthon_catering.py | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/yuthon_catering/controllers/restaurant.py b/yuthon_catering/controllers/restaurant.py index 455c6b39b..9fb187856 100644 --- a/yuthon_catering/controllers/restaurant.py +++ b/yuthon_catering/controllers/restaurant.py @@ -47,10 +47,8 @@ class RestaurantController(Controller): @exception_handle def collect_catering(self, **kwargs): user_id = int(kwargs.get('user_id')) - employee = request.env['hr.employee'].sudo().search([('id', '=', user_id)]) - _logger.info(f'---当前获取数据--{user_id}---') - _logger.info(f'---当前获取数据--{employee.id}---{employee.name}') menu_date = kwargs.get('menu_date', date.today()) + employee = request.env['hr.employee'].sudo().search([('user_id', '=', user_id)]) existing_record = request.env['yuthon.catering'].search([ ('date', '=', menu_date), ('employee_id', '=', employee.id) @@ -78,16 +76,11 @@ class RestaurantController(Controller): @route('/phone/restaurant/update_catering', methods=['POST'], type='http', auth="none", csrf=False, cors='*') @exception_handle def update_catering(self, **kwargs): - # user_id = int(kwargs.get('user_id')) - # catering_id = int(kwargs.get('id')) - # user = request.env['res.users'].sudo().browse(user_id).exists() - # employee = request.env['hr.employee'].sudo().search([('user_id', '=', user_id)]) - # catering = request.env['yuthon.catering'].with_user(user).browse(catering_id).exists() - user_id = int(kwargs.get('user_id')) - employee = request.env['hr.employee'].sudo().search([('id', '=', user_id)]) - catering = request.env['yuthon.catering'].search([('id', '=', int(kwargs.get('id')))]) - + catering_id = int(kwargs.get('id')) + user = request.env['res.users'].sudo().browse(user_id).exists() + employee = request.env['hr.employee'].sudo().search([('user_id', '=', user_id)]) + catering = request.env['yuthon.catering'].with_user(user).browse(catering_id).exists() if not catering: return json.dumps({'data': '', 'code': 500, 'message': '修改失败,记录不存在'}) catering.write({ @@ -118,7 +111,7 @@ class RestaurantController(Controller): if not user_id or not menu_date or not menu_id: return json.dumps({'data': '', 'code': 500, 'message': '请求失败'}) - employee = request.env['hr.employee'].sudo().search([('id', '=', user_id)]) + employee = request.env['hr.employee'].sudo().search([('user_id', '=', user_id)]) catering = request.env['yuthon.catering'].sudo().search([ ('employee_id', '=', employee.id), ('date', '=', menu_date), diff --git a/yuthon_catering/models/yuthon_catering.py b/yuthon_catering/models/yuthon_catering.py index bed3ff310..e21226ee7 100644 --- a/yuthon_catering/models/yuthon_catering.py +++ b/yuthon_catering/models/yuthon_catering.py @@ -47,7 +47,7 @@ class YuthonCatering(models.Model): def task_catering(self): employee_ids = self.env['yuthon.catering.conf'].search([])[0].employee_ids for emp in employee_ids: - url = f"https://phone.thtzjt.com/phone/Restaurant/{emp.id}" + url = f"https://phone.thtzjt.com/phone/Restaurant/{emp.user_id.id}" self.sudo().env["wecom.apps"].sync_send_message_textcard( category='can', user_id=emp.wecom_userid,