| 
					
				 | 
			
			
				@@ -4,7 +4,7 @@ import pymysql 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from sqlalchemy import text, create_engine 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from crossborder.utils.crypto_utils import AESCryptor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from crossborder.utils.log import  get_logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from crossborder.utils.log import get_logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 log = get_logger(__name__) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -336,65 +336,9 @@ def _update_shandong_new_yoy_origin(region_name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info(f"{region_name} 新数据更新数: {result.rowcount}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result.rowcount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def generate_sql_file(results, prov_name, year_month): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    filename = f"export_{prov_name}_{year_month}.sql" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    with open(filename, 'w', encoding='utf-8') as f: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for row in results: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            # 过滤掉不需要的字段(如 id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            filtered_row = {k: v for k, v in row.items() if k != 'id'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            # 构建INSERT语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            columns = ', '.join([f"`{k}`" for k in filtered_row.keys()]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            values = ', '.join([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                f"'{v}'" if isinstance(v, (str,)) else str(v) if v is not None else 'NULL' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for v in filtered_row.values() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sql = f"INSERT INTO `t_yujin_crossborder_prov_commodity_trade` ({columns}) VALUES ({values});\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            f.write(sql) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    log.info(f"成功生成SQL文件:{filename}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def get_commodity_trade_by_prov_year_month(prov_name, year_month): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    connection = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        # 连接数据库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        db_config = DB_CONFIG.copy() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        db_config['password'] = get_decrypted_password() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        connection = pymysql.connect(**db_config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        # 使用 DictCursor 来获取字典形式的结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        with connection.cursor(pymysql.cursors.DictCursor) as cursor: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            # 执行查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sql = "SELECT * FROM t_yujin_crossborder_prov_commodity_trade WHERE prov_name = %s AND crossborder_year_month = %s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            cursor.execute(sql, (prov_name, year_month)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            # 获取结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            results = cursor.fetchall() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            # 生成SQL文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if results: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                generate_sql_file(results, prov_name, year_month) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return results 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        log.error(f"get_commodity_trade_by_prov_year_month error: {str(e)}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    finally: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if connection: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            connection.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if __name__ == '__main__': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    res = get_commodity_trade_by_prov_year_month('江苏省','2025-04') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if res is not None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        print(f"查询到 {len(res)} 条记录") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        print("未查询到任何记录或发生错误") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # commodity_code, commodity_name_fix = get_commodity_id('农产品') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # print(commodity_code, commodity_name_fix) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    commodity_code, commodity_name_fix = get_commodity_id('农产品') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    print(commodity_code, commodity_name_fix) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # check_year, check_month = 2024, 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # count = get_code_exist(f'{check_year}-{check_month:02d}', "340000") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(count) 
			 |