from pot_libs.logger import log from pot_libs.mysql_util.mysql_util import MysqlUtil async def get_annual_sunshine_hours(cid): sql = "SELECT pv.annual_effective_hours FROM " \ "`algo_distributed_pv_quick_check_list` pv " \ "LEFT JOIN company c on c.city =pv.city where c.cid=%s" async with MysqlUtil() as conn: hours = await conn.fetchone(sql, args=(cid,)) return hours async def get_p(cid): sql = "SELECT pv.hour, pv.p FROM `algo_distributed_pv` pv " \ "LEFT JOIN company c on c.city =pv.city where c.cid=%s" async with MysqlUtil() as conn: datas = await conn.fetchall(sql, args=(cid,)) return datas async def get_elec_price_dao(cid): sql = "select * from price_policy where cid=%s " \ "ORDER BY start_month desc limit 1" async with MysqlUtil() as conn: elec_price = await conn.fetchone(sql, args=(cid,)) return elec_price async def get_max_demand_by_inlid(inlids): sql = """SELECT '[]' as has_space,b.inlid as related_inlids FROM `algo_md_space_analysis_result` a LEFT JOIN algo_md_space_analysis_unit b on a.space_analysis_id=b.id WHERE b.inlid in %s ORDER BY a.month DESC LIMIT %s""" async with MysqlUtil() as conn: spaces = await conn.fetchall(sql, args=(inlids, len(inlids))) return spaces async def insert_price_policy_data_dao(cid, inline_id, start_month, quarters, price_s, price_p, price_f, price_v, price_md, price_tc, effect_date): sql = """INSERT INTO `price_policy` (`cid`, `inline_vc`, `start_month`, `time_range`,`quarters`,`price_p`,`price_s`,price_f, `price_v`, `price_md`, price_tc, `price_ttl_addition`, `price_type`, effect_date) VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s); """ async with MysqlUtil() as conn: await conn.execute(sql, args=(cid, inline_id, start_month, "1-12", quarters, price_p, price_s, price_f, price_v, price_md, price_tc, None, "工商业", effect_date)) async def inset_algorithm_power_factor_dao(inline_id, start_time, std_cos): sql = """INSERT INTO `algo_power_factor` (`inlid`, `start_time`, `valid`, `std_cos`) VALUES ( %s, %s, %s, %s); """ async with MysqlUtil() as conn: await conn.execute(sql, args=(inline_id, start_time, 1, std_cos)) log.info(sql % (inline_id, start_time, 1, std_cos)) async def get_algorithm_power_factor_dao(cid): sql = "select a.std_cos from algo_power_factor a " \ "LEFT JOIN inline_zdu line on line.inlid =a.inlid " \ "WHERE line.cid = %s ORDER BY a.start_time desc limit 1" async with MysqlUtil() as conn: datas = await conn.fetchone(sql, args=(cid,)) return datas