diff --git a/yuthon_hr_attendance/controllers/applet_attendance.py b/yuthon_hr_attendance/controllers/applet_attendance.py index d1b221f8b..33d6d9bb1 100644 --- a/yuthon_hr_attendance/controllers/applet_attendance.py +++ b/yuthon_hr_attendance/controllers/applet_attendance.py @@ -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 }) # 按“楼盘->楼层”分组 diff --git a/yuthon_property/models/property_meter_archives.py b/yuthon_property/models/property_meter_archives.py index d2afbeb5a..917f9f0af 100644 --- a/yuthon_property/models/property_meter_archives.py +++ b/yuthon_property/models/property_meter_archives.py @@ -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') diff --git a/yuthon_property/models/property_meter_water.py b/yuthon_property/models/property_meter_water.py index 5023012d5..b94a8f4e1 100644 --- a/yuthon_property/models/property_meter_water.py +++ b/yuthon_property/models/property_meter_water.py @@ -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='最大位数')