95 lines
3.6 KiB
Python
95 lines
3.6 KiB
Python
from odoo.http import Controller, request, route
|
|
import logging
|
|
import json
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class EleWaterReading(Controller):
|
|
"""
|
|
水电抄表接口
|
|
"""
|
|
|
|
# @route('/yuthon/meter/reading', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
|
|
# def yuthon_meter_reading(self, **kw):
|
|
# """
|
|
# 水电表抄表
|
|
# :return:
|
|
# {
|
|
# 'code': 编号,
|
|
# 'last_dosage': '上次用量',
|
|
# 'current_meter': '本次用量',
|
|
# 'dosage': '用量',
|
|
# 'employee_name': 姓名,
|
|
# 'meter_type': '抄表类型 ('electric', '电表'), ('water', '水表'),
|
|
# }
|
|
# """
|
|
# _logger.info("----------------/yuthon/meter/reading---------接口收到响应-------------------------------")
|
|
# 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:
|
|
# record_data = {
|
|
# 'code': record.property_id.code,
|
|
# 'last_dosage': record.last_dosage,
|
|
# 'current_meter': record.current_meter,
|
|
# 'dosage': record.dosage,
|
|
# 'employee_name': record.employee_id.name,
|
|
# 'meter_type': 'electric', # 添加仪表类型
|
|
# }
|
|
# result_list.append(record_data)
|
|
# # 处理水表记录
|
|
# for record in water_records:
|
|
# record_data = {
|
|
# 'code': record.property_id.code,
|
|
# 'last_dosage': record.last_dosage,
|
|
# 'current_meter': record.current_meter,
|
|
# 'dosage': record.dosage,
|
|
# 'employee_list': record.employee_id.name,
|
|
# '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='http', auth='none', cors='*', 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) |