添加功能

This commit is contained in:
李鹏宇
2025-09-25 19:55:58 +08:00
parent 6146340189
commit 74f0cf29bf
3 changed files with 51 additions and 34 deletions
@@ -764,13 +764,17 @@ class AppletAttendance(Controller):
('meter_date', '<=', last_day_str)
])
# 接口调整, 电表,水表数据拆分.
# 先根据状态,再根据楼层
# 电表数据
# 处理电表
electric_result_dict = {}
# 处理电表
for electric in electric_records:
property_infos = electric.yuthon_property_ids if electric.yuthon_property_ids else [None]
for property_info in property_infos:
# 处理物业信息
# 处理空物业信息的情况,所有关联字段设为空
if property_info:
building = property_info.property_building_id.name if property_info.property_building_id else ''
floor = property_info.property_floor_id.name if property_info.property_floor_id else ''
@@ -783,8 +787,7 @@ class AppletAttendance(Controller):
room = ''
address = ''
employee_name = ''
# 构建电表数据
state = electric.state
electric_value = {
'code': electric.name or '',
'last_dosage': electric.last_dosage or 0,
@@ -796,32 +799,39 @@ class AppletAttendance(Controller):
'building': '天河商贸大厦',
'floor': floor,
'room': room,
'epitope_values': electric.epitope_values,
'unit_number': electric.unit_number,
'epitope_values':electric.epitope_values,
'unit_number':electric.unit_number,
'state': electric.state, # 状态 reading unreading
}
electric_result_dict.setdefault(building, {}).setdefault(floor, []).append(electric_value)
electric_result_dict.setdefault(state, {}).setdefault(building,{}).setdefault(floor, []).append(electric_value)
# 整理电表结果
electric_result = []
for building, floor_dict in electric_result_dict.items():
floor_list = []
for floor, data_list in floor_dict.items():
floor_list.append({
'floor': floor,
'data_list': data_list
for state, building_dict in electric_result_dict.items():
building_list = []
for building, floor_dict in building_dict.items():
floor_list = []
for floor, data_list in floor_dict.items():
floor_list.append({
'floor': floor,
'data_list': data_list
})
building_list.append({
'building': building,
'floor_list': floor_list
})
electric_result.append({
'building': building,
'floor_list': floor_list
'state': state,
'building_list': building_list
})
# 处理水表
water_result_dict = {}
# 处理水表
for water in water_records:
property_infos = water.yuthon_property_ids if water.yuthon_property_ids else [None]
for property_info in property_infos:
# 处理物业信息
# 处理空物业信息的情况,所有关联字段设为空
if property_info:
building = property_info.property_building_id.name if property_info.property_building_id else ''
floor = property_info.property_floor_id.name if property_info.property_floor_id else ''
@@ -829,13 +839,12 @@ class AppletAttendance(Controller):
address = property_info.name or ''
employee_name = property_info.lessee_id.name if property_info.lessee_id else ''
else:
building = '天河商贸大厦'
building = ''
floor = ''
room = ''
address = ''
employee_name = ''
# 构建水表数据(保留state字段但不用于分组)
state = water.state
water_value = {
'code': water.name or '',
'last_dosage': water.last_dosage or 0,
@@ -844,26 +853,32 @@ class AppletAttendance(Controller):
'meter_type': 'water',
'employee_name': employee_name,
'address': address,
'building': '天河商贸大厦',
'building': building,
'floor': floor,
'room': room,
'epitope_values': water.epitope_values,
'unit_number': water.unit_number,
'epitope_values':water.epitope_values,
'unit_number':water.unit_number,
'state': water.state, # 状态 reading unreading
}
water_result_dict.setdefault(building, {}).setdefault(floor, []).append(water_value)
water_result_dict.setdefault(state, {}).setdefault(building,{}).setdefault(floor, []).append(water_value)
# 整理水表结果
water_result = []
for building, floor_dict in water_result_dict.items():
floor_list = []
for floor, data_list in floor_dict.items():
floor_list.append({
'floor': floor,
'data_list': data_list
for state, building_dict in water_result_dict.items():
building_list = []
for building, floor_dict in building_dict.items():
floor_list = []
for floor, data_list in floor_dict.items():
floor_list.append({
'floor': floor,
'data_list': data_list
})
building_list.append({
'building': building,
'floor_list': floor_list
})
water_result.append({
'building': building,
'floor_list': floor_list
'state': state,
'building_list': building_list
})
# 按“楼盘->楼层”分组
@@ -167,6 +167,7 @@ class MeterArchivesLine(models.Model):
is_push = fields.Boolean(string='已推送')
archives_state = fields.Selection([('stop', '停用'), ('use', '正常'), ('rent', '出租')], string='状态',
default='use')
state = fields.Selection([('reading', '已抄'), ('unreading', '未抄')], string='抄表状态', default='unreading')
maximum_count = fields.Integer(string='最大位数')
@api.depends('line_loss', 'current_meter', 'unit')
@@ -134,6 +134,7 @@ class MeterWaterLine(models.Model):
line_loss = fields.Float(string="线损", default=0.02)
end_time = fields.Date(string="拆除日期")
water_state = fields.Selection([('stop', '停用'), ('use', '使用'), ('rent', '出租')], string='状态')
state = fields.Selection([('reading', '已抄'), ('unreading', '未抄')], string='抄表状态', default='unreading')
remarks = fields.Text(string='备注')
employee_ids = fields.Many2many('hr.employee', string='抄表人')
maximum_count = fields.Integer(string='最大位数')