添加功能

This commit is contained in:
zhou
2025-06-13 16:10:37 +08:00
parent 22547063cf
commit 684e36ec2e
@@ -132,4 +132,105 @@ class EleWaterReading(Controller):
'message': 'OK',
}
_logger.info("-----------------测试成功----------------")
return json.dumps(return_data)
return json.dumps(return_data)
@route('/yuthon/meter/reading', methods=['POST'], type='json', auth='none', csrf=False)
def yuthon_meter_reading(self, **kw):
"""
水电表抄表
:return:
{
'code': 编号,
'property_id': '物业地址'
'contract_id': '合同'
'lessee_id': '承租方'
'last_dosage': '上次用量',
'current_meter': '本次用量',
'dosage': '用量',
'employee_list': [抄表人姓名],
'meter_type': '抄表类型(电表或水表)',
}
"""
electric_records = request.env['property.electric.reading'].search([('reading_type', '=', '待抄')])
water_records = request.env['property.water.reading'].search([('reading_type', '=', '待抄')])
result_list = []
# 处理电表记录
for record in electric_records:
employee_names = [emp.name for emp in record.employee_ids]
employee_list = ", ".join(employee_names)
record_data = {
'code': record.property_id.code,
'property_id': record.property_id.name,
'contract_id': record.contract_id.name,
'lessee_id': record.contract_id.lessee_id.name,
'last_dosage': record.last_dosage,
'current_meter': record.current_meter,
'dosage': record.dosage,
'employee_list': employee_list,
'meter_type': 'electric', # 添加仪表类型
}
result_list.append(record_data)
# 处理水表记录
for record in water_records:
employee_names = [emp.name for emp in record.employee_ids]
employee_list = ", ".join(employee_names)
record_data = {
'code': record.property_id.code,
'property_id': record.property_id.name,
'contract_id': record.contract_id.name,
'lessee_id': record.contract_id.lessee_id.name,
'last_dosage': record.last_dosage,
'current_meter': record.current_meter,
'dosage': record.dosage,
'employee_list': employee_list,
'meter_type': 'water',
}
result_list.append(record_data)
return_data = {
'data': result_list,
'code': '200',
'message': 'OK',
}
return json.dumps(return_data)
@route('/yuthon/meter/dosage', methods=['POST'], type='json', auth='none', csrf=False)
def yuthon_meter_dosage(self, **kw):
"""
更新仪表用量
:param code: 编号
:param dosage: 用量
:param meter_type: 仪表类型
"""
code = kw.get('code') # 编号
dosage = kw.get('dosage') # 用量
meter_type = kw.get('meter_type')
if meter_type == 'electric':
model_name = 'property.electric.reading'
meter_type_name = '电表'
elif meter_type == 'water':
model_name = 'property.water.reading'
meter_type_name = '水表'
else:
return json.dumps({
'data': {},
'code': '400',
'message': f"不支持的仪表类型: {meter_type}"
})
record = request.env[model_name].search([('code', '=', code)], limit=1)
if record:
record.write({'dosage': dosage})
message = f"成功更新{meter_type_name}用量: {code}"
else:
message = f"未找到{meter_type_name}记录: {code}"
return_data = {
'data': {},
'code': '200',
'message': message,
}
_logger.info(message)
return json.dumps(return_data)