SCLP
This commit is contained in:
95
SCLP/models/spaces.py
Normal file
95
SCLP/models/spaces.py
Normal file
@@ -0,0 +1,95 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
"""
|
||||
@Author : xuxingchen
|
||||
@Contact : xuxingchen@sinochem.com
|
||||
@Desc : 子系统映射表 增&改&查
|
||||
"""
|
||||
import csv
|
||||
import os
|
||||
|
||||
from models.houses import HousesTable
|
||||
from utils.database import BaseTable
|
||||
from utils.misc import now_datetime_second, sql_export_xls
|
||||
|
||||
|
||||
class SpacesTable(BaseTable):
|
||||
|
||||
@staticmethod
|
||||
def get_sub_system_name_by_room_id(table_handler: BaseTable, room_id: str):
|
||||
table_handler.query(
|
||||
"""
|
||||
SELECT sub_space_name
|
||||
FROM subsystem
|
||||
WHERE room_id = ?
|
||||
""", (room_id,)
|
||||
)
|
||||
res = table_handler.cursor.fetchall()
|
||||
if res:
|
||||
return res[0][0]
|
||||
else:
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def get_space_info_by_sub_space_name(table_handler: BaseTable, sub_space_name: str):
|
||||
"""根据第三方ID获取对应的房产信息"""
|
||||
table_handler.query(
|
||||
"""
|
||||
SELECT subsystem.room_id, house_name, project_id, sub_system_id
|
||||
FROM subsystem
|
||||
LEFT JOIN houses ON subsystem.room_id = houses.room_id
|
||||
WHERE sub_space_name = ?
|
||||
""", (sub_space_name,)
|
||||
)
|
||||
res = table_handler.cursor.fetchall()
|
||||
if res:
|
||||
return {
|
||||
"room_id": res[0][0],
|
||||
"house_name": res[0][1],
|
||||
"project_id": res[0][2],
|
||||
"sub_system_id": res[0][3]
|
||||
}
|
||||
else:
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def get_aiot_platform_data(table_handler: BaseTable):
|
||||
query = """
|
||||
SELECT project_id, houses.room_id, house_name, COALESCE(subsystem_id, ''), COALESCE(sub_space_name, '')
|
||||
FROM houses
|
||||
LEFT JOIN subsystem ON subsystem.room_id = houses.room_id
|
||||
"""
|
||||
file_path = os.path.join(f"data/AIOT平台空间数据{now_datetime_second().replace(':', '_')}.xls")
|
||||
sql_export_xls(query, table_handler.connection, file_path,
|
||||
"房屋子系统映射数据表",
|
||||
["项目id", "房屋id", "房屋名称", "子系统id", "子系统空间名称"])
|
||||
return file_path
|
||||
|
||||
@staticmethod
|
||||
def get_sub_system_data(table_handler: BaseTable):
|
||||
query = "SELECT subsystem_id, sub_space_name FROM subsystem"
|
||||
file_path = os.path.join(f"data/子系统空间数据{now_datetime_second().replace(':', '_')}.xls")
|
||||
sql_export_xls(query, table_handler.connection, file_path,
|
||||
"子系统数据表",
|
||||
["子系统id", "子系统空间名称"])
|
||||
return file_path
|
||||
|
||||
@staticmethod
|
||||
def update(table_handler: BaseTable, objs: list):
|
||||
data = []
|
||||
for obj in objs:
|
||||
data.append((obj[0], now_datetime_second(), obj[1], obj[2]))
|
||||
table_handler.executemany(
|
||||
f"""
|
||||
UPDATE subsystem
|
||||
SET room_id = ?, update_datetime = ?
|
||||
WHERE subsystem_id = ? and sub_space_name = ?
|
||||
""", data
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def exits_room_id(table_handler: BaseTable, room_id: str):
|
||||
table_handler.query("SELECT room_id FROM spaces WHERE room_id = ?", (room_id,))
|
||||
if table_handler.cursor.fetchone() is not None:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
Reference in New Issue
Block a user