From 684e36ec2e7cc649c5bca5ceeb1523f106b64bc0 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Fri, 13 Jun 2025 16:10:37 +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 --- .../controllers/ele_water_reading.py | 103 +++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/yuthon_property_approval/controllers/ele_water_reading.py b/yuthon_property_approval/controllers/ele_water_reading.py index b165aeeba..5c682e4cc 100644 --- a/yuthon_property_approval/controllers/ele_water_reading.py +++ b/yuthon_property_approval/controllers/ele_water_reading.py @@ -132,4 +132,105 @@ class EleWaterReading(Controller): 'message': 'OK', } _logger.info("-----------------测试成功----------------") - return json.dumps(return_data) \ No newline at end of file + 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) \ No newline at end of file