Merge pull request !3547 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-06-28 09:08:27 +00:00
committed by Gitee
2 changed files with 28 additions and 16 deletions
@@ -17,6 +17,7 @@ patch(FormController.prototype, {
// if (this.isAdmin) {
// this.props.preventEdit = this.env.inDialog ? false : true;
// }
this.orm = useService("orm");
this.actionService =useService("action");
this.props.preventEdit = this.env.inDialog ? false : true;
originalSetup.call(this);
@@ -6,6 +6,7 @@ from geopy.distance import geodesic
from datetime import timedelta
import json
from dateutil.relativedelta import relativedelta
_logger = logging.getLogger(__name__)
@@ -21,11 +22,18 @@ class AppletAttendance(Controller):
uid = request.session.authenticate(request.env.cr.dbname, login, password)
user_id = request.env['res.users'].sudo().browse(uid)
employee_id = user_id.with_company(user_id.company_id.id).employee_id
data = {'name': employee_id.name, 'id': user_id.id}
return_data = {'data': data, 'code': 200, 'message': ''}
data = {
'name': employee_id.name,
'id': user_id.id,
'access': ['打卡'],
}
return_data = {'data': data,
'code': 200,
'message': ''}
return json.dumps(return_data)
@route('/yuthon/att/today', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
@route('/yuthon/att/today', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
def apple_yuthon_att_today(self, **kw):
"""
小程序获取当前用户打卡信息
@@ -50,7 +58,8 @@ class AppletAttendance(Controller):
return {'state': 'no', 'state_result': result}
user_id = request.env(user=SUPERUSER_ID)["res.users"].search([('id', '=', user_id.id)])
employee_id = request.env(user=SUPERUSER_ID)["hr.employee"].search([('name', '=', user_id.name)])
address_id = request.env(user=SUPERUSER_ID)["applet.address"].search([('address_name', '=', employee_id.company_id.name)])
address_id = request.env(user=SUPERUSER_ID)["applet.address"].search(
[('address_name', '=', employee_id.company_id.name)])
attendance_id = request.env(user=SUPERUSER_ID)["hr.attendance"].search(
[('employee_id', '=', employee_id.id), ('current_data', '=', current_data)])
group_id = attendance_id.shift_name
@@ -92,7 +101,8 @@ class AppletAttendance(Controller):
}
return json.dumps(return_data)
else:
attendance_id = request.env(user=SUPERUSER_ID)["hr.attendance"].search([('employee_id', '=', employee_id.id), ('current_data', '=', current_data)])
attendance_id = request.env(user=SUPERUSER_ID)["hr.attendance"].search(
[('employee_id', '=', employee_id.id), ('current_data', '=', current_data)])
check_in = attendance_id.check_in
check_out = attendance_id.check_out
attendance_class = attendance_id.shift_name
@@ -105,7 +115,7 @@ class AppletAttendance(Controller):
# 拼接成 datetime 对象
start_datetime = datetime.combine(current_data, datetime.min.time()).replace(
hour=start_hour, minute=start_minute, second=0, microsecond=0
) # 标准上班打卡时间
) # 标准上班打卡时间
end_datetime = datetime.combine(current_data, datetime.min.time()).replace(
hour=end_hour, minute=end_minute, second=0, microsecond=0
)
@@ -234,7 +244,8 @@ class AppletAttendance(Controller):
current_month_last = datetime(year + 1, 1, 1) - timedelta(days=1)
else:
current_month_last = datetime(year, month + 1, 1) - timedelta(days=1)
calendar_leaves = request.env(user=SUPERUSER_ID)['resource.calendar.leaves'].search([("calendar_id", "=", "行政考勤工作日")]) # 少一个search
calendar_leaves = request.env(user=SUPERUSER_ID)['resource.calendar.leaves'].search(
[("calendar_id", "=", "行政考勤工作日")]) # 少一个search
# 本月的节假日
holiday_data = self.get_holiday_data(current_month_first.date(), current_month_last.date())
# 本月考勤记录
@@ -302,8 +313,10 @@ class AppletAttendance(Controller):
# 格式化实际打卡时间
check_in_str = check_in.strftime('%H:%M:%S') if check_in else '未打卡'
check_out_str = check_out.strftime('%H:%M:%S') if check_out else '未打卡'
def get_status_color(status):
return 'red' if status in ['迟到', '早退', '未打卡'] else 'green'
check_in_html = f'<p style="color:{get_status_color(check_in_status)}">{check_in_status}</p>'
check_out_html = f'<p style="color:{get_status_color(check_out_status)}">{check_out_status}</p>'
@@ -373,13 +386,9 @@ class AppletAttendance(Controller):
"shift_days_list": shift_days_list,
}
# 水电表接口
@route('/yuthon/meter/reading', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
@route('/yuthon/meter/reading', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
def yuthon_meter_reading(self, **kw):
"""
水电表抄表
@@ -394,8 +403,10 @@ class AppletAttendance(Controller):
}
"""
_logger.info("----------------/yuthon/meter/reading---------接口收到响应-------------------------------")
electric_records = request.env(user=SUPERUSER_ID)['property.electric.reading'].search([('reading_state', '=', 'wait')])
water_records = request.env(user=SUPERUSER_ID)['property.water.reading'].search([('reading_state', '=', 'wait')])
electric_records = request.env(user=SUPERUSER_ID)['property.electric.reading'].search(
[('reading_state', '=', 'wait')])
water_records = request.env(user=SUPERUSER_ID)['property.water.reading'].search(
[('reading_state', '=', 'wait')])
result_list = []
# 处理电表记录
for record in electric_records:
@@ -427,7 +438,7 @@ class AppletAttendance(Controller):
}
return json.dumps(return_data)
@route('/yuthon/meter/dosage', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
@route('/yuthon/meter/dosage', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
def yuthon_meter_dosage(self, **kw):
"""
更新仪表用量
@@ -462,4 +473,4 @@ class AppletAttendance(Controller):
'message': message,
}
_logger.info(message)
return json.dumps(return_data)
return json.dumps(return_data)