commit 68069cd92bbcb9ad10523c4d514679945298c1af Author: zdzerg Date: Thu Sep 11 10:13:03 2025 +0800 Initial commit with all project files including zzbdataprod diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e4be9c --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +logs/ +*.log +pdf/ +zzb_data_prod/nohup.out +zzb_data_prod/logs/ +zzb_data_prod/app.log diff --git a/milvus_init.py b/milvus_init.py new file mode 100644 index 0000000..3cfcf12 --- /dev/null +++ b/milvus_init.py @@ -0,0 +1,33 @@ +from pymilvus import connections, CollectionSchema, Collection,utility,FieldSchema,DataType +# 连接到 B 服务器上的 Milvus +# connections.connect(host='124.70.129.232', port='19530')# 测试服务器 +connections.connect(host='127.0.0.1', port='19530')# 测试服务器 +# # 获取集合列表 +utility.drop_collection("pdf_measure_v4") + +# 定义字段 +fields = [ + FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True), + FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=1536), + FieldSchema(name="table_num", dtype=DataType.INT16), + FieldSchema(name="table_index", dtype=DataType.INT16), + FieldSchema(name="measure_name", dtype=DataType.VARCHAR, max_length=200), + FieldSchema(name="measure_value", dtype=DataType.VARCHAR, max_length=200), + FieldSchema(name="file_id", dtype=DataType.VARCHAR, max_length=200), + FieldSchema(name="measure_unit", dtype=DataType.VARCHAR, max_length=200) +] + +# 定义集合的 schema +schema = CollectionSchema(fields=fields, description="My Milvus collection") + +# 创建集合 +collection = Collection(name="pdf_measure_v4", schema=schema) + +collection = Collection("pdf_measure_v4") +index_params = { + "index_type": "IVF_FLAT", + "metric_type": "COSINE", + "params": {"nlist": 128} +} +collection.create_index(field_name="vector", index_params=index_params) +collection.load() \ No newline at end of file diff --git a/monitor_milvus.py b/monitor_milvus.py new file mode 100644 index 0000000..5ac7859 --- /dev/null +++ b/monitor_milvus.py @@ -0,0 +1,125 @@ +import socket +import subprocess +import time +from datetime import datetime +import os +import mysql.connector +from zzb_data_prod.config import MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB + +def get_time(): + return datetime.now().strftime('%Y-%m-%d %H:%M:%S') + + +def check_port(host, port): + try: + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((host, port)) + sock.close() + return result == 0 # 返回布尔值,表示端口是否可用 + except Exception as e: + print(f"[{get_time()}] 端口检测异常: {str(e)}") + return False + + +def restart_service(): + try: + subprocess.run(["bash", "/root/docker/milvus/standalone_embed.sh", "restart"]) + print(f"[{get_time()}] milvus服务重启成功") + return True + except subprocess.CalledProcessError as e: + print(f"[{get_time()}] 服务重启失败: {str(e)}") + return False + + +def start_application_process(): + """启动8000端口对应的应用进程""" + try: + # 先尝试停止可能存在的旧进程 + time.sleep(2) # 给进程停止的时间 + # 进入应用目录 + # 启动新进程 + subprocess.run( + ["bash", "/root/pdf_parser/restart_app.sh"], + ) + print(f"[{get_time()}] 应用进程(8000端口)已成功启动") + return True + + except Exception as e: + print(f"[{get_time()}] 启动应用进程失败: {str(e)}") + return False + + +def get_local_ip(): + try: + # 创建一个 UDP 套接字 + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + # 连接到一个外部地址(这里使用 Google 的公共 DNS 服务器) + s.connect(("8.8.8.8", 80)) + # 获取本地套接字的 IP 地址 + local_ip = s.getsockname()[0] + except Exception as e: + print(f"[{get_time()}] 获取内网 IP 失败: {e}") + local_ip = "127.0.0.1" # 如果失败,返回本地回环地址 + finally: + s.close() # 关闭套接字 + return local_ip + +def monitor_port_8000(): + """监控8000端口,如果异常则启动应用进程""" + print(f"[{get_time()}] 检查8000端口状态...") + port_available = check_port("127.0.0.1", 8000) + + if not port_available: + print(f"[{get_time()}] 检测到8000端口异常,尝试启动应用进程...") + success = start_application_process() + + if success: + # 启动后检查是否成功 + time.sleep(10) # 等待应用启动 + if check_port("127.0.0.1", 8000): + print(f"[{get_time()}] 应用进程启动成功,8000端口已正常") + # INSERT_YOUR_CODE + # 检查并修改数据库字段 + try: + + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, # 请替换为实际密码 + database=MYSQL_DB # 请替换为实际数据库名 + ) + cursor = conn.cursor() + local_ip = get_local_ip() + sql = f"update model_ip set status = 0 where ip = '{local_ip}:8000';" + print(f"[{get_time()}] 执行sql: {sql}") + cursor.execute(sql) + conn.commit() + print(f"[{get_time()}] 数据库字段已成功修改") + except Exception as e: + print(f"[{get_time()}] 修改数据库字段失败: {str(e)}") + finally: + try: + cursor.close() + conn.close() + except: + pass + else: + print(f"[{get_time()}] 应用进程启动后,8000端口仍未正常") + else: + print(f"[{get_time()}] 8000端口状态正常") + + + +if __name__ == '__main__': + print(f"[{get_time()}] 启动Milvus监控服务") + port_ok = check_port("127.0.0.1", 19530) + if not port_ok: + print("检测到Milvus服务异常,尝试重启...") + restart_service() + + print(f"[{get_time()}] 启动 8000 端口监控服务") + # 开始监控8000端口,每60秒检查一次 + monitor_port_8000() + + diff --git a/restart_app.sh b/restart_app.sh new file mode 100755 index 0000000..a84fce0 --- /dev/null +++ b/restart_app.sh @@ -0,0 +1,76 @@ +#!/bin/bash + + + +# 切换到 /root/docker/milvus 目录 +cd /root/docker/milvus || { echo "无法进入目录 /root/docker/milvus"; exit 1; } +# 运行 standalone_embed.sh restart 指令 +bash standalone_embed.sh restart + + +#!/bin/bash + +# 目标目录(根据实际路径修改) +TARGET_DIR="/root/pdf_parser/pdf" +LOG_FILE="/root/pdf_parser/logs/pdf_clean.log" + +# 创建日志目录 +mkdir -p "$(dirname "$LOG_FILE")" + +# 带时间戳的日志函数 +log() { + echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE" +} + +# 检查目标目录是否存在 +if [ ! -d "$TARGET_DIR" ]; then + log "错误:目标目录不存在 $TARGET_DIR" + exit 1 +fi + +# 执行清理并记录 +log "开始清理PDF文件..." +find "$TARGET_DIR" -iname "*.pdf" -print0 | while IFS= read -r -d $'\0' file; do + log "删除文件: $file" + rm -f "$file" +done + +log "清理完成,共删除 $(find "$TARGET_DIR" -iname "*.pdf" | wc -l) 个残留文件" + +# 设置工作目录和日志路径 +WORK_DIR="/root/pdf_parser/zzb_data_prod" +LOG_FILE="$WORK_DIR/app.log" + +# 终止现有进程 +pids=$(ps -ef | grep app.py | grep -v grep | awk '{print $2}') +if [ -n "$pids" ]; then + echo "[$(date '+%Y-%m-%d %H:%M:%S')] 正在停止现有进程: $pids" + kill -9 $pids +else + echo "[$(date '+%Y-%m-%d %H:%M:%S')] 未找到正在运行的进程" +fi + +# 进入工作目录 +cd $WORK_DIR || { echo "无法进入目录 $WORK_DIR"; exit 1; } + +# 启动服务 +echo "[$(date '+%Y-%m-%d %H:%M:%S')] 启动服务..." +nohup python3 app.py > $LOG_FILE 2>&1 & + +# 等待进程启动 +sleep 2 + +# 检查进程状态 +new_pid=$(ps -ef | grep app.py | grep -v grep | awk '{print $2}') +if [ -n "$new_pid" ]; then + echo "[$(date '+%Y-%m-%d %H:%M:%S')] 服务启动成功,进程ID: $new_pid" + echo "--------------------------------" + tail -n 10 $LOG_FILE +else + echo "[$(date '+%Y-%m-%d %H:%M:%S')] 服务启动失败!" + echo "--------------------------------" + cat $LOG_FILE + exit 1 +fi + + diff --git a/zzb_data_prod/.DS_Store b/zzb_data_prod/.DS_Store new file mode 100644 index 0000000..b458acc Binary files /dev/null and b/zzb_data_prod/.DS_Store differ diff --git a/zzb_data_prod/.Mil_unit.py.swp b/zzb_data_prod/.Mil_unit.py.swp new file mode 100644 index 0000000..4326fac Binary files /dev/null and b/zzb_data_prod/.Mil_unit.py.swp differ diff --git a/zzb_data_prod/.config.py.swp b/zzb_data_prod/.config.py.swp new file mode 100644 index 0000000..ca6051b Binary files /dev/null and b/zzb_data_prod/.config.py.swp differ diff --git a/zzb_data_prod/LICENSE b/zzb_data_prod/LICENSE new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/zzb_data_prod/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/zzb_data_prod/Mil_unit.py b/zzb_data_prod/Mil_unit.py new file mode 100644 index 0000000..d03879d --- /dev/null +++ b/zzb_data_prod/Mil_unit.py @@ -0,0 +1,73 @@ +from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection,MilvusClient +from config import MILVUS_CLIENT +import time +from datetime import datetime, timedelta +from log_config import logger + +def create_partition_by_hour(file_id): + # 连接到 Milvus 服务器 + connections.connect(uri=MILVUS_CLIENT) + # 获取集合 + collection_name = "pdf_measure_v4" + collection = Collection(collection_name) + + # 创建当前id的分区 + partition_name = f"partition_{file_id}" + if not collection.has_partition(partition_name): + collection.create_partition(partition_name) + logger.info(f"Created partition: {partition_name}") + partition = collection.partition(partition_name) + partition.load() + + # 获取所有分区 + partitions = collection.partitions + # 删除所有分区(除了默认分区和当前分区) + for partition in partitions: + name = partition.name + if name not in ["_default", partition_name]: # 保留默认分区 + pre_partition = collection.partition(name) + pre_partition.release() + collection.drop_partition(name) + logger.info(f"Partition '{name}' deleted.") + connections.disconnect("default") + + + + + + + + +# from pymilvus import connections, CollectionSchema, Collection,utility,FieldSchema,DataType +# # 连接到 B 服务器上的 Milvus +# # connections.connect(host='124.70.129.232', port='19530')# 测试服务器 +# connections.connect(host='1.94.60.103', port='19530')# 测试服务器 +# # # 获取集合列表 +# utility.drop_collection("pdf_measure_v4") +# +# # 定义字段 +# fields = [ +# FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True), +# FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=1536), +# FieldSchema(name="table_num", dtype=DataType.INT16), +# FieldSchema(name="table_index", dtype=DataType.INT16), +# FieldSchema(name="measure_name", dtype=DataType.VARCHAR, max_length=200), +# FieldSchema(name="measure_value", dtype=DataType.VARCHAR, max_length=200), +# FieldSchema(name="file_id", dtype=DataType.VARCHAR, max_length=200), +# FieldSchema(name="measure_unit", dtype=DataType.VARCHAR, max_length=200) +# ] +# +# # 定义集合的 schema +# schema = CollectionSchema(fields=fields, description="My Milvus collection") +# +# # 创建集合 +# collection = Collection(name="pdf_measure_v4", schema=schema) +# +# collection = Collection("pdf_measure_v4") +# index_params = { +# "index_type": "IVF_FLAT", +# "metric_type": "COSINE", +# "params": {"nlist": 128} +# } +# collection.create_index(field_name="vector", index_params=index_params) +# collection.load() diff --git a/zzb_data_prod/__pycache__/Mil_unit.cpython-310.pyc b/zzb_data_prod/__pycache__/Mil_unit.cpython-310.pyc new file mode 100644 index 0000000..4b1d1d0 Binary files /dev/null and b/zzb_data_prod/__pycache__/Mil_unit.cpython-310.pyc differ diff --git a/zzb_data_prod/__pycache__/config.cpython-310.pyc b/zzb_data_prod/__pycache__/config.cpython-310.pyc new file mode 100644 index 0000000..44de287 Binary files /dev/null and b/zzb_data_prod/__pycache__/config.cpython-310.pyc differ diff --git a/zzb_data_prod/__pycache__/db_service.cpython-310.pyc b/zzb_data_prod/__pycache__/db_service.cpython-310.pyc new file mode 100644 index 0000000..bd0136e Binary files /dev/null and b/zzb_data_prod/__pycache__/db_service.cpython-310.pyc differ diff --git a/zzb_data_prod/__pycache__/llm_service.cpython-310.pyc b/zzb_data_prod/__pycache__/llm_service.cpython-310.pyc new file mode 100644 index 0000000..10490d7 Binary files /dev/null and b/zzb_data_prod/__pycache__/llm_service.cpython-310.pyc differ diff --git a/zzb_data_prod/__pycache__/log_config.cpython-310.pyc b/zzb_data_prod/__pycache__/log_config.cpython-310.pyc new file mode 100644 index 0000000..5c5acb8 Binary files /dev/null and b/zzb_data_prod/__pycache__/log_config.cpython-310.pyc differ diff --git a/zzb_data_prod/__pycache__/main.cpython-310.pyc b/zzb_data_prod/__pycache__/main.cpython-310.pyc new file mode 100644 index 0000000..6ecd0db Binary files /dev/null and b/zzb_data_prod/__pycache__/main.cpython-310.pyc differ diff --git a/zzb_data_prod/__pycache__/pdf_title.cpython-310.pyc b/zzb_data_prod/__pycache__/pdf_title.cpython-310.pyc new file mode 100644 index 0000000..b6f8ce2 Binary files /dev/null and b/zzb_data_prod/__pycache__/pdf_title.cpython-310.pyc differ diff --git a/zzb_data_prod/__pycache__/redis_service.cpython-310.pyc b/zzb_data_prod/__pycache__/redis_service.cpython-310.pyc new file mode 100644 index 0000000..d20e4a9 Binary files /dev/null and b/zzb_data_prod/__pycache__/redis_service.cpython-310.pyc differ diff --git a/zzb_data_prod/__pycache__/utils.cpython-310.pyc b/zzb_data_prod/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000..c0230e4 Binary files /dev/null and b/zzb_data_prod/__pycache__/utils.cpython-310.pyc differ diff --git a/zzb_data_prod/app.py b/zzb_data_prod/app.py new file mode 100644 index 0000000..0271bd1 --- /dev/null +++ b/zzb_data_prod/app.py @@ -0,0 +1,254 @@ +from fastapi import FastAPI, HTTPException +from pydantic import BaseModel +import os +import utils +import queue +from multiprocessing import Process,Manager +import pdf_title +import main +import time +import threading +import config +import requests +import db_service +import threading +from Mil_unit import create_partition_by_hour +from datetime import datetime, timedelta +from log_config import logger + +app = FastAPI() +cpu_count = 4 +job_queue = queue.Queue() + +# 定义请求体模型 +class FileItem(BaseModel): + file_path: str + file_id: str + +def run_job(): + #判断是否有任务在执行 + if_run = True + + if job_queue.empty(): + logger.info(f"job_queue为空: {file_path}") + if_run = False + + if if_run: + job_config = job_queue.get() + page_list = [] + file_path = job_config['file_path'] + file_id = job_config['file_id'] + job_status = True + continue_execution = True + try: + #下载pdf + start_time = time.time() + logger.info(f"开始启动文件解析任务: {file_path}") + if file_path.startswith('http'): + file_path = utils.save_pdf_from_url(file_path, config.FILE_PATH) + try: + file_info = pdf_title.create_text_outline(file_path,file_id) + except Exception as e: + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 7}) + logger.info(f'通知任务状态url:{file_id}:{response.url}') + logger.info(f'通知任务状态任务:{file_id}:{response.text}') + logger.info(f"{file_id}运行失败: {e}") + continue_execution = False + + # + db_service.delete_MYSQL_DB_APP(file_id) + db_service.delete_MYSQL_DB(file_id) + + if continue_execution: + parent_table_pages = file_info['parent_table_pages'] + page_num = file_info['page_count'] + if page_num < cpu_count: + p_count = page_num + else : + p_count = cpu_count + + for i in range(p_count): + page_list.append({ + 'type': 'table', + 'page_num': file_info['split_parts']['table_split_parts'][i], + # 'page_num': page_nums[i], + 'path': file_path, + 'file_id': file_id, + 'parent_table_pages': parent_table_pages, + 'page_count': file_info['page_count'], + 'tables_range': {}, + }) + + + # 通知开始解析 + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 5}) + logger.info(f'通知pdf开始解析url:{file_id}:{response.url}') + logger.info(f'通知pdf开始解析状态:{file_id}:{response.text}') + parser_start_time = time.time() + processes = [] + time_dispatch_job = time.time() + + for job_info in page_list: + p = Process(target=main.dispatch_job, args=(job_info,)) + processes.append(p) + p.start() + + logger.info(f'等待所有子任务完成,任务ID:{file_id}') + for p in processes: + p.join() + logger.info(f'pdf解析任务完成任务完成,任务ID:{file_id}') + time_dispatch_job_end = time.time() + process_time = time_dispatch_job_end - time_dispatch_job + db_service.process_time(file_id,'1',process_time,time_dispatch_job,time_dispatch_job_end) + parser_end_time = time.time() + logger.info(f"解析任务 {file_id} 完成,耗时{(parser_end_time - parser_start_time):.2f} 秒。") + #这里做一步判断,看看是否还要继续。 + if db_service.file_type_check(file_id): + logger.info(f"文本较真表格生成已结束") + else: + # 通知抽取指标 + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 6}) + logger.info(f'通知开始抽取指标url:{file_id}:{response.url}') + logger.info(f'通知开始抽取指标状态:{file_id}:{response.text}') + + parser_start_time = time.time() + logger.info(f'开始表格指标抽取,任务ID:{file_id}') + time_start = time.time() + + + # 获取当前时间 + + partition_name = f"partition_{file_id}" + # 判断是否创建新的分区 + create_partition_by_hour(file_id) + time.sleep(10) + # 判断是否为3季报 + + if db_service.file_type_check_v2(file_id) == 3: + main.start_table_measure_job(file_id,partition_name) + time_start_end = time.time() + process_time = time_start_end - time_start + db_service.process_time(file_id,'2',process_time,time_start,time_start_end) + logger.info(f'表格指标抽取完成,任务ID:{file_id}') + parser_end_time = time.time() + logger.info(f"表格指标抽取 {file_id} 完成,耗时{(parser_end_time - parser_start_time):.2f} 秒。") + + logger.info(f'启动这个指标归一化任务ID-修改测试:{file_id}') + time_update = time.time() + main.update_measure_data(file_id,file_path,parent_table_pages,partition_name) + + logger.info(f'归一化完成任务ID:{file_id}') + end_time = time.time() + logger.info(f"任务 {file_id} 完成,耗时{(end_time - start_time):.2f} 秒。") + time_update_end = time.time() + process_time = time_update_end - time_update + db_service.process_time(file_id,'3',process_time,time_update,time_update_end) + # 不是三季报就直接按照年报和半年报走 + else: + main.start_table_measure_job(file_id,partition_name) + time_start_end = time.time() + process_time = time_start_end - time_start + db_service.process_time(file_id,'2',process_time,time_start,time_start_end) + logger.info(f'表格指标抽取完成,任务ID:{file_id}') + parser_end_time = time.time() + logger.info(f"表格指标抽取 {file_id} 完成,耗时{(parser_end_time - parser_start_time):.2f} 秒。") + + logger.info(f'启动这个指标归一化任务ID-修改测试:{file_id}') + time_update = time.time() + main.update_measure_data(file_id,file_path,parent_table_pages,partition_name) + + logger.info(f'归一化完成任务ID:{file_id}') + end_time = time.time() + logger.info(f"任务 {file_id} 完成,耗时{(end_time - start_time):.2f} 秒。") + time_update_end = time.time() + process_time = time_update_end - time_update + db_service.process_time(file_id,'3',process_time,time_update,time_update_end) + #通知任务完成 + response_time = time.time() + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 1}) + logger.info(f'通知任务状态url:{file_id}:{response.url}') + logger.info(f'通知任务状态任务:{file_id}:{response.text}') + response_time_end = time.time() + process_time = response_time_end - response_time + db_service.process_time(file_id,'4',process_time,response_time,response_time_end) + except Exception as e: + #通知任务完成 + response_time = time.time() + if "integer division or modulo by zero" in str(e): + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id, 'status': 4}) + else: + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id, 'status': 4}) + #response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 4}) + response_time_end = time.time() + process_time = response_time_end - response_time + db_service.process_time(file_id,'4',process_time,response_time,response_time_end) + logger.info(f'通知任务状态url:{file_id}:{response.url}') + logger.info(f'通知任务状态任务:{file_id}:{response.text}') + logger.info(f"Response status code: {response.status_code}") + logger.info(f"{file_id}运行失败: {e}") + finally: + logger.info(f"任务 {file_id} 完成,运行状态:{job_status}") + + #pdf_company_0824.name_code_fix(file_id,file_path) + #print('公司名与编码填充完毕') + else: + logger.info(f"有任务运行中,需要等待.....") + +def parse_pdf_route(fileItem: FileItem): + + # 创建一个队列,保证每次只执行一个文件解析任务 + job_queue.put({ + 'file_path' : fileItem.file_path, + 'file_id' : fileItem.file_id + }) + logger.info(f"增加 {fileItem.file_id} 到队列.") + + threading.Thread(target=run_job, args=()).start() + + return {"success": True, "msg": "文件解析开始"} + +app.post("/parser/start", + tags=["parser"], + summary="解析Pdf文件", + )(parse_pdf_route) + +def get_local_ip(): + try: + # 创建一个 UDP 套接字 + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + # 连接到一个外部地址(这里使用 Google 的公共 DNS 服务器) + s.connect(("8.8.8.8", 80)) + # 获取本地套接字的 IP 地址 + local_ip = s.getsockname()[0] + except Exception as e: + logger.info(f"获取内网 IP 失败: {e}") + local_ip = "127.0.0.1" # 如果失败,返回本地回环地址 + finally: + s.close() # 关闭套接字 + return local_ip + +# 运行 FastAPI 应用 +if __name__ == "__main__": + # 服务器启动服务 + import uvicorn + uvicorn.run(app, host="0.0.0.0", port=config.PORT) + try: + # 获取内网IP + ip = get_local_ip() + logger.info(f"内网IP地址: {ip}") + # 假设 config.NOTIFY_ADDR 是一个字符串,我们可以使用 rpartition 方法来替换最后一个 / 后面的值 + url = config.NOTIFY_ADDR.rpartition('/')[0] + '/restart?address' + address = f"{ip}:{config.PORT}" + logger.info(address) + response = requests.get(url, params={'address':address}) + logger.info(f"Response status code: {response.status_code}") + except KeyboardInterrupt: + logger.info("Shutdown server") + + # 本地调试任务 + # job_queue.put({ + # 'file_path' : '1.pdf', + # 'file_id' : '2222222' + # }) + + # run_job() diff --git a/zzb_data_prod/combined_v61.pdf b/zzb_data_prod/combined_v61.pdf new file mode 100644 index 0000000..d33d0ad Binary files /dev/null and b/zzb_data_prod/combined_v61.pdf differ diff --git a/zzb_data_prod/config.py b/zzb_data_prod/config.py new file mode 100644 index 0000000..9bd9a5e --- /dev/null +++ b/zzb_data_prod/config.py @@ -0,0 +1,24 @@ +MILVUS_CLIENT='http://127.0.0.1:19530' +MILVUS_HOST = '127.0.0.1' +MILVUS_PORT = 19530 +MYSQL_HOST = '10.127.2.207' +MYSQL_PORT = 3306 +MYSQL_USER = 'financial_prod' +MYSQL_PASSWORD = 'mmTFncqmDal5HLRGY0BV' +MYSQL_DB = 'financial_report_prod' +NOTIFY_ADDR = 'http://10.127.2.202:8100/api/tenant/report/notify' +FILE_PATH = '/root/pdf_parser/pdf/' +REDIS_HOST = '10.127.2.209' +REDIS_PORT = 6379 +REDIS_PASSWORD = 'dMrt4kmwiW6LDJXy' +PORT = 8000 +MEASURE_COUNT = 4 + + +MYSQL_HOST_APP = '10.127.2.208' +MYSQL_PORT_APP = 3306 +MYSQL_USER_APP = 'financial_report' +MYSQL_PASSWORD_APP = 'mmTFncqmDal5HLRGY0BV' +MYSQL_DB_APP = 'financial_report_prod' +# api_key = 'sk-2c695c8bdc5c4bb5b48feffa5d9e1de7' +api_key = 'sk-f8413fcfa63a40e49dbb8ac1d0239f6d' diff --git a/zzb_data_prod/db_service.py b/zzb_data_prod/db_service.py new file mode 100644 index 0000000..91e05bd --- /dev/null +++ b/zzb_data_prod/db_service.py @@ -0,0 +1,1110 @@ +from datetime import datetime +import re,os,json +import utils +import ast +import time +import redis_service +from multiprocessing import Process +from config import MILVUS_CLIENT,MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB,REDIS_HOST,REDIS_PORT,REDIS_PASSWORD,MEASURE_COUNT,MYSQL_HOST_APP,MYSQL_USER_APP,MYSQL_PASSWORD_APP,MYSQL_DB_APP +from pymilvus import MilvusClient +import mysql.connector +import threading +import redis +from log_config import logger + + + +measure_name_keywords = ["营业","季度","利润","归属于","扣非","经营","现金","活动","损益","收益","资产","费用","销售","管理","财务","研发","货币资金","应收账款","存货","固定资产","在建工程","商誉","短期借款","应付账款","合同负债","长期借款","营业成本"] +# 解析大模型抽取的指标,并插入到数据库 +def parse_llm_measure_to_db(measure_info,type,conn,cursor): + + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + check_query = ''' + select id from ori_measure_list + WHERE file_id = %s and type = %s and page_number = %s and ori_measure_value = %s + ''' + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO ori_measure_list + (file_id, file_name, type, page_number, table_index, ori_measure_id, ori_measure_name, ori_measure_value, create_time, update_time) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + ''' + file_id = measure_info['file_id'] + file_name = measure_info['path'] + llm_measure = measure_info['llm_measure'] + page_num = measure_info['page_num'] + table_index = '0' + if type == 'table': + table_index = measure_info['table_index'] + for measure_obj in llm_measure: + measure_obj = measure_obj.replace('\n', '').replace('\r', '').replace(' ', '').replace(':', ':') + if ':' in measure_obj: + ori_measure_name = measure_obj.split(':')[0].replace('-', '') + if len(ori_measure_name) > 30 : + continue + ori_measure_value = measure_obj.split(':')[1].replace('+', '').replace(',', '').replace('元', '').replace('%', '') + if '-' in ori_measure_value: + ori_measure_value = "-" + if '.' in ori_measure_name: + ori_measure_name = ori_measure_name.split('.')[1] + ori_measure_id = utils.get_md5(ori_measure_name) + if re.match(r'^[+-]?(\d+(\.\d*)?|\.\d+)(%?)$', ori_measure_value): + # 判断数据库中是否有数据 + check_query_data = (file_id, 'text', int(page_num), ori_measure_value) + cursor.execute(check_query, check_query_data) + check_records = cursor.fetchall() + if(len(check_records)) > 0: + continue + data_to_insert = (file_id, file_name, type, int(page_num), int(table_index), ori_measure_id, ori_measure_name, ori_measure_value, create_time, create_time) + cursor.execute(insert_query, data_to_insert) + conn.commit() + +def insert_measure_parser_info(parser_info,conn,cursor): + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO measure_parser_info + (file_id, type, content, create_time) + VALUES (%s, %s, %s, %s) + ''' + file_id = parser_info['file_id'] + type = parser_info['type'] + content = parser_info['content'] + data_to_insert = (file_id, type, content, create_time) + cursor.execute(insert_query, data_to_insert) + conn.commit() +def insert_measure_parser_info_measure(parser_info, conn, cursor, line_text): + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + insert_query = ''' + INSERT INTO measure_parser_info_linetext + (file_id, type, content,text, create_time) + VALUES (%s, %s, %s, %s,%s) + ''' + file_id = parser_info['file_id'] + type = parser_info['type'] + content = parser_info['content'] + text = line_text + data_to_insert = (file_id, type, content,text, create_time) + cursor.execute(insert_query, data_to_insert) + conn.commit() +def insert_table_unit_info(table_info,conn,cursor): + + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO table_unit_info + (file_id, page_num, table_index, unit) + VALUES (%s, %s, %s, %s) + ''' + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + table_index = int(table_info['table_index']) + unit = table_info['unit'] + data_to_insert = (file_id, page_num, table_index, unit) + cursor.execute(insert_query, data_to_insert) + conn.commit() + +def insert_table_unit_info_v1(table_info, conn, cursor): + """ + 插入数据到 table_unit_info 表之前,检查是否存在相同的 file_id, page_num 和 table_index。 + 如果存在且 unit 不同,更新现有记录,否则插入新记录。 + """ + + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + table_index = int(table_info['table_index']) + unit = table_info['unit'] + + # 查询现有记录 + check_query = ''' + SELECT unit + FROM table_unit_info + WHERE file_id = %s AND page_num = %s AND table_index = %s + ''' + cursor.execute(check_query, (file_id, page_num, table_index)) + existing_record = cursor.fetchone() + + if existing_record: + existing_unit = existing_record[0] + + if unit != existing_unit: + # 更新现有记录 + update_query = ''' + UPDATE table_unit_info + SET unit = %s + WHERE file_id = %s AND page_num = %s AND table_index = %s + ''' + cursor.execute(update_query, (unit, file_id, page_num, table_index)) + logger.info(f'Updated existing record with file_id={file_id}, page_num={page_num}, table_index={table_index}.') + else: + logger.info(f'No change needed. Existing unit={existing_unit} is the same as new unit={unit}.') + else: + # 插入新的记录 + insert_query = ''' + INSERT INTO table_unit_info + (file_id, page_num, table_index, unit) + VALUES (%s, %s, %s, %s) + ''' + data_to_insert = (file_id, page_num, table_index, unit) + cursor.execute(insert_query, data_to_insert) + logger.info(f'Inserted new record with file_id={file_id}, page_num={page_num}, table_index={table_index}, unit={unit}.') + + conn.commit() + +def insert_table_text_info(table_info,conn,cursor): + + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO table_text_info + (file_id, page_num, table_index, text) + VALUES (%s, %s, %s, %s) + ''' + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + table_index = int(table_info['table_index']) + text = table_info['text_info'] + data_to_insert = (file_id, page_num, table_index, text) + cursor.execute(insert_query, data_to_insert) + conn.commit() + +def update_ori_measure(conn,cursor,file_id): + + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + # 执行SQL语句,更新数据 + update_query = ''' + UPDATE ori_measure_list + SET measure_id = %s, measure_name = %s + WHERE ori_measure_id = %s and file_id = %s + ''' + + select_query = ''' + SELECT t2.measure_id,t2.measure_name,t1.ori_measure_id + FROM ori_measure_list t1 + left join + measure_config t2 + on t1.ori_measure_id = t2.ori_measure_id + where t2.measure_id is not null and (t1.measure_id is null or t1.measure_id ='') + and t1.file_id = '{file_id}' + and t2.year = '{year}' + '''.format(file_id=file_id, year=report_year) + select_query_first = ''' + SELECT t2.measure_id,t2.measure_name,t1.ori_measure_id + FROM ori_measure_list t1 + left join + measure_config_first_quarter t2 + on t1.ori_measure_id = t2.ori_measure_id + where t2.measure_id is not null and (t1.measure_id is null or t1.measure_id ='') + and t1.file_id = '{file_id}' + and t2.year = '{year}' + '''.format(file_id=file_id, year=report_year) + select_query_half_year = ''' + SELECT t2.measure_id,t2.measure_name,t1.ori_measure_id + FROM ori_measure_list t1 + left join + measure_config_half_year t2 + on t1.ori_measure_id = t2.ori_measure_id + where t2.measure_id is not null and (t1.measure_id is null or t1.measure_id ='') + and t1.file_id = '{file_id}' + and t2.year = '{year}' + '''.format(file_id=file_id, year=report_year) + select_query_thrid = ''' + SELECT t2.measure_id,t2.measure_name,t1.ori_measure_id + FROM ori_measure_list t1 + left join + measure_config_third_quarter t2 + on t1.ori_measure_id = t2.ori_measure_id + where t2.measure_id is not null and (t1.measure_id is null or t1.measure_id ='') + and t1.file_id = '{file_id}' + and t2.year = '{year}' + '''.format(file_id=file_id, year=report_year) + + if report_type == 1:#半年报 + start_time = time.time() + cursor.execute(select_query_half_year) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"更新数据查询 {(end_time - start_time):.2f} 秒。") + logger.info(f'update_ori_measure方法走的是半年报') + elif report_type == 2: # 一季报 + start_time = time.time() + cursor.execute(select_query_first) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"更新数据查询 {(end_time - start_time):.2f} 秒。") + logger.info(f'update_ori_measure方法走的是一季报') + elif report_type == 3: # 三季报 + start_time = time.time() + cursor.execute(select_query_thrid) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"更新数据查询 {(end_time - start_time):.2f} 秒。") + logger.info(f'update_ori_measure方法走的是三季报') + else:# 年报 + start_time = time.time() + cursor.execute(select_query) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"更新数据查询 {(end_time - start_time):.2f} 秒。") + logger.info(f'update_ori_measure方法走的是全年报') + start_time = time.time() + for record in records: + data_to_update = (record[0], record[1], record[2], file_id) + cursor.execute(update_query, data_to_update) + conn.commit() + end_time = time.time() + logger.info(f"更新数据更新 {(end_time - start_time):.2f} 秒。") + #更新measure_list表,增加此次文件的显示指标 + start_time = time.time() + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + if report_type == 0:#全年报 + insert_query = ''' + INSERT INTO measure_list + (measure_id, measure_name, create_time, update_time, file_id) + select distinct measure_id,measure_name, %s,%s,%s from measure_config + where year = '{year}' + '''.format(year=report_year) + elif report_type == 2:# 一季报 + insert_query = ''' + INSERT INTO measure_list + (measure_id, measure_name, create_time, update_time, file_id) + select distinct measure_id,measure_name, %s,%s,%s from measure_config_first_quarter + where year = '{year}' + '''.format(year=report_year) + elif report_type == 3:# 三季报 + insert_query = ''' + INSERT INTO measure_list + (measure_id, measure_name, create_time, update_time, file_id) + select distinct measure_id,measure_name, %s,%s,%s from measure_config_third_quarter + where year = '{year}' + '''.format(year=report_year) + else:# 半年报 + insert_query = ''' + INSERT INTO measure_list + (measure_id, measure_name, create_time, update_time, file_id) + select distinct measure_id,measure_name, %s,%s,%s from measure_config_half_year + where year = '{year}' + '''.format(year=report_year) + + data_to_update = (create_time, create_time, file_id) + cursor.execute(insert_query, data_to_update) + conn.commit() + end_time = time.time() + logger.info(f"更新数据写入 {(end_time - start_time):.2f} 秒。") + +def insert_table_from_vector_mul_process(parent_table_pages,file_id,file_name,records,record_range,black_array,partition_name,): + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + logger.info(f'Run task {record_range} ({os.getpid()})...') + logger.info(f"插入数据 {len(records)}") + + + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + conn_app = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + cursor_app = conn_app.cursor(buffered=True) + + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + check_query = ''' + select id from ori_measure_list + WHERE file_id = %s and measure_name = %s and page_number = %s and table_index = %s and ori_measure_value = %s + ''' + insert_query = ''' + INSERT INTO ori_measure_list + (file_id, file_name, type, page_number, table_index, ori_measure_id, ori_measure_name, ori_measure_value, create_time, update_time, distance, pdf_measure,measure_id,measure_name,unit) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + ''' + #获取表格上方文字包含母公司字样的页码 + select_parent_query = ''' + select distinct content from measure_parser_info WHERE file_id = '{file_id}' and type='parent_com' + '''.format(file_id=file_id) + + #获取表格上方文字黑名单关键词的页码和表格下标 + select_table_index_query = ''' + select distinct content from measure_parser_info WHERE file_id = '{file_id}' and type='table_index' + '''.format(file_id=file_id) + # #获取表格上方文字黑名单关键词的页码和表格下标----标题下的详细指标 + select_measure_index_query = ''' + SELECT content FROM measure_parser_info_linetext WHERE file_id = %s AND type = 'measure_index' + ''' + unit_query = ''' + select unit from table_unit_info + WHERE file_id = %s and page_num = %s and table_index = %s + ''' + + cursor_app.execute(select_parent_query) + parent_records = cursor_app.fetchall() + + + for parent_record in parent_records: + parent_id = parent_record[0] + parent_table_pages.append(int(parent_id)) + + + #表格上方文字黑名单关键词的页码和表格下标转成数组 + table_index_array = [] + cursor_app.execute(select_table_index_query) + table_index_records = cursor_app.fetchall() + for table_index_record in table_index_records: + table_index_array.append(table_index_record[0]) + # #仿照写法,指标的黑名单转化 + measure_index_array = [] + cursor_app.execute(select_measure_index_query, (file_id,)) + measure_index_records = cursor_app.fetchall() + logger.info(f"Executing SQL:{select_measure_index_query}") + logger.info(f"With file_id:{file_id}") + for measure_index_record in measure_index_records: + measure_index_array.append(measure_index_record[0]) + logger.info(f'黑名单的值是{parent_table_pages}和{table_index_array}以及新增的{measure_index_array}') + #print(f'黑名单的值是{parent_table_pages}和{table_index_array}') + record_start = record_range.split('-')[0] + record_end = record_range.split('-')[1] + + if str(report_type) == "2": + table_index_array = [] + measure_index_array = [] + + client = MilvusClient( + uri=MILVUS_CLIENT, + ) + + try: + for index in range(int(record_start),int(record_end)): + record = records[index] + ori_measure_name = record[0] + measure_name = record[1] + distance = record[2] + ori_measure_id = record[3] + measure_id = record[4] + measure_vector = redis_service.read_from_redis(redis_client,ori_measure_id) + + + measure_list = ast.literal_eval(measure_vector) + data = [measure_list] + filter_str = 'file_id == "'+file_id+'"' + res = client.search( + collection_name="pdf_measure_v4", # Replace with the actual name of your collection + # Replace with your query vector + data=data, + limit=3, # Max. number of search results to return + search_params={"metric_type": "COSINE", "params": {}}, # Search parameters + output_fields=["measure_name", "measure_value", "table_num", "table_index", "measure_unit"], + filter=filter_str, + partition_name=partition_name + ) + + # Convert the output to a formatted JSON string + # for i in range(len(res[0])): + + for i in range(len(res[0])): + + vector_distance = float(res[0][i]["distance"]) + pdf_measure = res[0][i]["entity"]["measure_name"] + measure_value = res[0][i]["entity"]["measure_value"] + table_num = res[0][i]["entity"]["table_num"] + table_index = res[0][i]["entity"]["table_index"] + unit = res[0][i]["entity"]["measure_unit"] + # if pdf_measure == '2023年6月30日货币资金合计': + # print(f'{pdf_measure} 的相似度是 {vector_distance},其值为 {measure_value},页码在 {table_num}') + + #先过滤页码为0的情况,暂时不知道原因 + if table_num == 0: + continue + + #过滤表格上方文字黑名单关键词的页码和表格下标 + if f"{table_num}_{table_index}" in table_index_array: + continue + #if f"{table_num}_{table_index}" in table_index_array and pdf_measure in (): + + #过滤指标中包含黑名单关键词 + if utils.check_pdf_measure_black_list(pdf_measure): + continue + if f"{table_num}_{table_index}" in measure_index_array and utils.check_pdf_measure_black_list_v3(file_id,table_num,table_index,pdf_measure,conn_app,cursor_app): + logger.info(f'经过第三层规则去除了{table_num}页的{pdf_measure}指标') + continue + + + + if vector_distance > distance and table_num not in parent_table_pages: + #检测规则开始 + #判断抽取指标和财报指标周期是否相同 + ori_period = utils.get_period_type(ori_measure_name, report_year) + pdf_period = utils.get_period_type(pdf_measure, report_year) + if pdf_measure == '2023年6月30日货币资金合计': + logger.info(f'第1处{ori_period}和{pdf_period}') + if(ori_period != pdf_period): + continue + + #判断抽取指标和财报指标是否期初指标 + start_ori_period = utils.get_start_period_type(ori_measure_name) + start_pdf_period = utils.get_start_period_type(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + logger.info(f'第2处{start_ori_period}和{start_pdf_period}') + if(start_ori_period != start_pdf_period): + continue + + #判断抽取指标和财报指标类型是否相同,是否都是季度 + ori_season_type = utils.get_season_flag(ori_measure_name) + pdf_season_type = utils.get_season_flag(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + logger.info(f'第3处{ori_season_type}和{pdf_season_type}') + if(ori_season_type != pdf_season_type): + continue + + #判断是否都是扣非指标 + ori_kf_type = utils.get_kf_flag(ori_measure_name) + pdf_kf_type = utils.get_kf_flag(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + logger.info(f'第4处{ori_kf_type}和{pdf_kf_type}') + if(ori_kf_type != pdf_kf_type): + continue + + #判断抽取指标和财报指标类型是否相同,是否都是百分比 + ori_type = utils.get_percent_flag(ori_measure_name) + pdf_type = utils.get_percent_flag(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + logger.info(f'第5处{ori_type}和{pdf_type}') + if(ori_type != pdf_type): + continue + + #判断抽取指标和财报指标类型是否相同,是否都是占比同比变动类 + ori_growth_type = utils.get_percent_growth(ori_measure_name) + pdf_growth_type = utils.get_percent_growth(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + logger.info(f'第6处{ori_growth_type}和{pdf_growth_type}') + if(ori_growth_type != pdf_growth_type): + continue + + #解决指标语义是比率,但值为非比率的情况 + if ori_growth_type == '1': + check_measure_value = abs(float(measure_value)) + if(check_measure_value > 10000): + continue + + # 判断数据库中是否有数据 + check_query_data = (file_id, measure_name, int(table_num), int(table_index), measure_value) + cursor.execute(check_query, check_query_data) + check_records = cursor.fetchall() + if(len(check_records)) > 0: + continue + + #判断是否包含黑名单 + if(utils.check_black_list(measure_name,pdf_measure,black_array)): + continue + if(utils.check_white_list(measure_name,pdf_measure)): + continue + + #判断抽取指标和财报指标类型是否都是增长类,比如同比变动为增长类 + ori_change_type = utils.get_change_rate_flag(ori_measure_name) + pdf_change_type = utils.get_change_rate_flag(pdf_measure) + if(ori_change_type != pdf_change_type): + continue + + #处理调整前,调整前、后同时出现,如果有调整前过滤 + if pdf_measure.find('调整前') != -1 or pdf_measure.find('重述前') != -1: + continue + + #判断指标是否报告期初 + ori_report_start = utils.get_report_start(ori_measure_name) + pdf_report_start = utils.get_report_start(pdf_measure) + # if pdf_measure == '2023年6月30日货币资金合计': + # print(f'第7处{ori_report_start}和{pdf_report_start}') + if(ori_report_start != pdf_report_start): + continue + + # #表格描述文字黑名单判断 + # text_query_data = (file_id, int(table_num), int(table_index)) + # cursor.execute(text_query, text_query_data) + # text_records = cursor.fetchall() + # if(len(text_records)) > 0: + # text_info = '' + # for text_record in text_records: + # text_info += text_record[0] + + # if(utils.check_title_black_list(measure_name,text_info)): + # continue + + #检测规则结束 + #获取指标单位数据,除了百分比 + if(utils.get_percent_flag(measure_name) == '0'): + unit_query_data = (file_id, int(table_num), int(table_index)) + cursor.execute(unit_query, unit_query_data) + unit_records = cursor.fetchall() + if unit != '' : + pass + elif unit == '' and (len(unit_records)) > 0: + unit = unit_records[0][0] + else: + unit = '元' + + data_to_insert = (file_id, file_name, "table", int(table_num), int(table_index), ori_measure_id, ori_measure_name, measure_value, create_time, create_time, vector_distance, pdf_measure,measure_id,measure_name,unit) + cursor.execute(insert_query, data_to_insert) + conn.commit() + except Exception as e: + logger.info(e) + finally: + parent_table_pages = [] + client.close() + redis_client.close() + cursor.close() + conn.close() + +def insert_table_measure_from_vector_async_process(cursor,parent_table_pages,file_id,file_name, partition_name): + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + select_query = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config + where year = '{year}' + '''.format(year=report_year) + select_query_first_quarter = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config_first_quarter + where year = '{year}' + '''.format(year=report_year) + select_query_half_year = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config_half_year + where year = '{year}' + '''.format(year=report_year) + select_query_thrid = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config_third_quarter + where year = '{year}' + '''.format(year=report_year) + select_black_array_query = ''' + SELECT measure_name, keywords FROM measure_black_list where isdel = 0 and find_in_set('{year}',year) and find_in_set('{flag}',flag) + '''.format(year=report_year,flag = report_type) + black_array = [] + cursor.execute(select_black_array_query) + results = cursor.fetchall() + for row in results: + category = row[0] + keywords = row[1].split(',') + black_array.append(f"{category}:{','.join(keywords)}") + + if report_type == 1: + start_time = time.time() + cursor.execute(select_query_half_year) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + logger.info(f'insert_table_measure_from_vector_async_process方法走的半年报') + start_time = time.time() + records_range_parts = utils.get_range(len(records),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=insert_table_from_vector_mul_process, args=(parent_table_pages,file_id,file_name,records,record_range,black_array, partition_name)) + processes.append(p) + p.start() + elif report_type == 2: + start_time = time.time() + cursor.execute(select_query_first_quarter) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + logger.info(f'insert_table_measure_from_vector_async_process方法走的一季报') + start_time = time.time() + records_range_parts = utils.get_range(len(records),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=insert_table_from_vector_mul_process, args=(parent_table_pages,file_id,file_name,records,record_range,black_array,partition_name)) + processes.append(p) + p.start() + elif report_type == 3: + start_time = time.time() + cursor.execute(select_query_thrid) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + logger.info(f'insert_table_measure_from_vector_async_process方法走的三季报') + start_time = time.time() + records_range_parts = utils.get_range(len(records),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=insert_table_from_vector_mul_process, args=(parent_table_pages,file_id,file_name,records,record_range,black_array,partition_name)) + processes.append(p) + p.start() + # p.apply_async(insert_table_from_vector_mul, args=(parent_table_pages,file_id,file_name,records,record_range,)) + else: + start_time = time.time() + cursor.execute(select_query) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + logger.info(f'insert_table_measure_from_vector_async_process方法走的全年报') + start_time = time.time() + records_range_parts = utils.get_range(len(records),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=insert_table_from_vector_mul_process, args=(parent_table_pages,file_id,file_name,records,record_range,black_array,partition_name)) + processes.append(p) + p.start() + + logger.info(f'等待所有子任务完成,任务ID:{file_id}' ) + for p in processes: + p.join() + logger.info(f'所有子任务完成,任务ID:{file_id}') + logger.info(f'启动指标归一化任务ID:{file_id}') + end_time = time.time() + logger.info(f"向量更新时间 {(end_time - start_time):.2f} 秒。") + +def insert_table_measure_from_vector(conn,cursor,client,parent_table_pages,file_id,file_name): + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + select_query = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config + ''' + + check_query = ''' + select id from ori_measure_list + WHERE file_id = %s and measure_name = %s and page_number = %s and table_index = %s and ori_measure_value = %s + ''' + insert_query = ''' + INSERT INTO ori_measure_list + (file_id, file_name, type, page_number, table_index, ori_measure_id, ori_measure_name, ori_measure_value, create_time, update_time, distance, pdf_measure,measure_id,measure_name,unit) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s ,%s) + ''' + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + start_time = time.time() + cursor.execute(select_query) + records = cursor.fetchall() + end_time = time.time() + logger.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + start_time = time.time() + + + + try: + for record in records: + ori_measure_name = record[0] + measure_name = record[1] + distance = record[2] + ori_measure_id = record[3] + measure_id = record[4] + measure_vector = redis_service.read_from_redis(ori_measure_id) + measure_list = ast.literal_eval(measure_vector) + data = [measure_list] + filter_str = 'file_id == "'+file_id+'"' + res = client.search( + collection_name="pdf_measure_v4", # Replace with the actual name of your collection + # Replace with your query vector + data=data, + limit=3, # Max. number of search results to return + search_params={"metric_type": "COSINE", "params": {}}, # Search parameters + output_fields=["measure_name","measure_value","table_num","table_index","measure_unit"], + filter=filter_str + ) + + # Convert the output to a formatted JSON string + for i in range(len(res[0])): + + vector_distance = float(res[0][i]["distance"]) + pdf_measure = res[0][i]["entity"]["measure_name"] + measure_value = res[0][i]["entity"]["measure_value"] + table_num = res[0][i]["entity"]["table_num"] + table_index = res[0][i]["entity"]["table_index"] + measure_unit = res[0][i]["entity"]["measure_unit"] + + if vector_distance > distance and table_num not in parent_table_pages: + #检测规则开始 + #判断抽取指标和财报指标周期是否相同 + ori_period = utils.get_period_type(ori_measure_name, report_year) + pdf_period = utils.get_period_type(pdf_measure, report_year) + if(ori_period != pdf_period): + continue + + #判断抽取指标和财报指标类型是否相同,是否都是百分比 + ori_type = utils.get_percent_flag(ori_measure_name) + pdf_type = utils.get_percent_flag(pdf_measure) + if(ori_type != pdf_type): + continue + + # 判断数据库中是否有数据 + check_query_data = (file_id, measure_name, int(table_num), int(table_index), measure_value) + cursor.execute(check_query, check_query_data) + check_records = cursor.fetchall() + if(len(check_records)) > 0: + continue + #检测规则结束 + + data_to_insert = (file_id, file_name, "table", int(table_num), int(table_index), ori_measure_id, ori_measure_name, measure_value, create_time, create_time, vector_distance, pdf_measure,measure_id,measure_name,measure_unit) + cursor.execute(insert_query, data_to_insert) + conn.commit() + except Exception as e: + logger.info(e) + end_time = time.time() + logger.info(f"向量更新数据时间 {(end_time - start_time):.2f} 秒。") + start_time = time.time() + + +def insert_measure_data_to_milvus(client,partition_name,table_info,cursor,conn): + insert_query = ''' + INSERT INTO measure_parse_process + (file_id, page_num, content) + VALUES (%s, %s, %s) + ''' + + for table in table_info: + try: + data=[] + table_num = table['page_num'].split("_")[0] + file_id = table['file_id'] + table_index = table['page_num'].split("_")[1] + + measure_list = table['measure_list'] + for measure in measure_list: + measure_name = measure['measure_name'] + + # 需要跳过的一些指标 + black_list = ["营业总成本"] + if any(black in measure_name for black in black_list): + continue + + measure_value = measure['measure_value'].replace("(", "").replace(")", "") + measure_name = utils.get_clean_text(measure_name) + measure_name = measure_name.replace('2023','2023年').replace('2022','2022年').replace('(','').replace(')','')#这个真绝了,怎么都删不掉 + #measure_name_1 = measure_name.replace('调整后','') + quarters = ['第一季度', '第二季度', '第三季度', '第四季度','增减','2023年','2022年','2021年','年'] + for quarter in quarters: + measure_name = measure_name.replace(quarter * 2, quarter) + pattern_dup = re.compile(r'(\w{3,})\1+')#去掉任意超过两个字且重复的字符 + matches = pattern_dup.findall(measure_name) + # for match in matches: + # print(f"被删除的字符: {match * 2}") + measure_name = pattern_dup.sub(r'\1', measure_name) + measure_name_1 = measure_name.replace('调整后','').replace('上年期末数','上年期末').replace('上年期末','上年年末') + measure_unit = measure['measure_unit'] + if re.match(r'^[+-]?(\d+(\.\d*)?|\.\d+)(%?)$', measure_value) and any(key_word in measure_name for key_word in measure_name_keywords): + + vector_obj = utils.embed_with_str(measure_name_1) + + vector = vector_obj.output["embeddings"][0]["embedding"] + measure_data = {} + measure_data['vector'] = vector + measure_data['table_num'] = int(table_num) + measure_data['table_index'] = int(table_index) + measure_data['measure_name'] = measure_name + measure_data['measure_value'] = measure_value + measure_data['measure_unit'] = measure_unit + measure_data['file_id'] = file_id + + + data.append(measure_data) + + # 指标数据写入指标解析过程表,用于前端展示 + content = f"{measure_name}:{measure_value}" + data_to_insert = (file_id, table_num, content) + cursor.execute(insert_query, data_to_insert) + conn.commit() + elif re.match(r'(增加|减少|下降|上升)[了]?(\d+\.\d+)[个]?百分点', measure_value) and any(key_word in measure_name for key_word in measure_name_keywords): + #特殊处理指标值为增加了/减少了 XXX 个百分点 + unit_pattern = re.compile(r'(增加|减少|下降|上升)[了]?(\d+\.\d+)[个]?百分点') + match = unit_pattern.search(measure_value) + if match and len(match.groups()) == 2: + crease_type = match.group(1) + measure_value = match.group(2) + if crease_type == '减少' or crease_type == '下降': + measure_value = f'-{match.group(2)}' + + vector_obj = utils.embed_with_str(measure_name_1) + vector = vector_obj.output["embeddings"][0]["embedding"] + measure_data = {} + measure_data['vector'] = vector + measure_data['table_num'] = int(table_num) + measure_data['table_index'] = int(table_index) + measure_data['measure_name'] = measure_name + measure_data['measure_value'] = measure_value + measure_data['measure_unit'] = measure_unit + measure_data['file_id'] = file_id + + data.append(measure_data) + + # 指标数据写入指标解析过程表,用于前端展示 + content = f"{measure_name}:{measure_value}" + data_to_insert = (file_id, table_num, content) + cursor.execute(insert_query, data_to_insert) + conn.commit() + + else: + pass#print(f"数据值的格式错误:{measure_value}。或者字段名不在名单内{measure_name}") + res = client.insert( + collection_name="pdf_measure_v4", + data=data, + partition_name=partition_name + ) + logger.info(f"向量插入结束") + + except Exception as e: + logger.info(e) + +def runing_job(): + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + select_query = ''' + SELECT * FROM report_check where status = 0 and isdel=0 + ''' + cursor.execute(select_query) + records = cursor.fetchall() + if(len(records)) > 1: + return True + return False + +def insert_pdf_parse_process(parser_info,conn,cursor): + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO pdf_parse_process + (file_id, page_num, page_count, content, type) + VALUES (%s, %s, %s, %s, %s) + ''' + file_id = parser_info['file_id'] + page_num = int(parser_info['page_num']) + page_count = int(parser_info['page_count']) + content = json.dumps(parser_info['content'], ensure_ascii=False) + type = parser_info['type'] + data_to_insert = (file_id, page_num, page_count, content, type) + cursor.execute(insert_query, data_to_insert) + conn.commit() + + +def delete_MYSQL_DB_APP(file_id): + conn = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + try: + truncate_query = [ + "delete from ori_measure_list where file_id = %s;", + "delete from measure_list where file_id = %s;", + "delete from check_measure_list where file_id = %s;", + "delete from check_measure_detail_list where file_id = %s;", + "delete from measure_parse_process where file_id = %s;", + "delete from measure_parser_info where file_id = %s;", + "delete from pdf_parse_process where file_id = %s;", + "delete from table_unit_info where file_id = %s;", + ] + #file_id = file_id + for truncate in truncate_query: + cursor.execute(truncate,(file_id,)) + conn.commit() + except Exception as e: + logger.info(f'删除失败,原因是{e}') + +def delete_MYSQL_DB(file_id): + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + try: + truncate_query = [ + + "delete from measure_list where file_id = %s;", + "delete from check_measure_list where file_id = %s;", + "delete from check_measure_detail_list where file_id = %s;", + "delete from measure_parse_process where file_id = %s;", + "delete from measure_parser_info where file_id = %s;", + "delete from pdf_parse_process where file_id = %s;", + "delete from table_unit_info where file_id = %s;", + ] + #file_id = file_id + for truncate in truncate_query: + cursor.execute(truncate,(file_id,)) + conn.commit() + except Exception as e: + logger.info(f'删除失败,原因是{e}') + +def insert_pdf_text_info(table_info,conn,cursor): + + insert_query = ''' + INSERT INTO pdf_text_info + (file_id, page_num, text) + VALUES (%s, %s, %s) + ''' + file_id = table_info['file_id'] + page_num = table_info['page_num'] + text = table_info['text'] + data_to_insert = (file_id, page_num, text) + cursor.execute(insert_query, data_to_insert) + conn.commit() + + +def process_time(file_id,type,time,start_time,end_time): + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + time = round(time, 2) + start_time = datetime.fromtimestamp(start_time).strftime('%Y-%m-%d %H:%M:%S') + end_time = datetime.fromtimestamp(end_time).strftime('%Y-%m-%d %H:%M:%S') + insert_query = ''' + insert into pdf_process_time + (file_id,type,time,start_time,end_time) + values (%s, %s, %s,%s,%s) + ''' + data_insert = (file_id,type,time,start_time,end_time) + cursor.execute(insert_query,data_insert) + conn.commit() + +def batch_insert_page_text_nocheck(table_info, conn, cursor): + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + text_lines = table_info['text'] + insert_query = ''' + INSERT INTO pdf_text_info + (file_id, page_num, text) + VALUES (%s, %s, %s) + ''' + data_to_insert = [(file_id, page_num, text) for text in text_lines] + cursor.executemany(insert_query, data_to_insert) + conn.commit() + +def batch_insert_page_text(table_info, conn, cursor): + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + text_lines = table_info['text'] + + # 1. 检查表是否为空 + check_if_empty_query = f"SELECT COUNT(*) FROM pdf_text_info where file_id = '{file_id}' and page_num = {page_num}" + cursor.execute(check_if_empty_query) + is_table_empty = cursor.fetchone()[0] == 0 + + if is_table_empty: + # 表为空,直接插入数据 + insert_query = ''' + INSERT INTO pdf_text_info + (file_id, page_num, text) + VALUES (%s, %s, %s) + ''' + data_to_insert = [(file_id, page_num, text) for text in text_lines] + cursor.executemany(insert_query, data_to_insert) + else: + pass + conn.commit() + +def file_type_check(file_id): + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + try: + select_query = ''' + SELECT report_type FROM report_check WHERE id = %s + ''' + cursor.execute(select_query, (file_id,)) + record = cursor.fetchone() + if record and record[0] == 5: + return True + return False + finally: + cursor.close() + conn.close() + +def file_type_check_v2(file_id): + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + try: + select_query = ''' + SELECT report_type FROM report_check WHERE id = %s + ''' + cursor.execute(select_query, (file_id,)) + record = cursor.fetchone() + return record[0] + # if record and == 5: + # return True + # return False + finally: + cursor.close() + conn.close() + +def pdf_title_insert_mysql(file_id,title_array): + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + for item in title_array: + # 注意这里的缩进,它是循环体的一部分 + cursor.execute("INSERT INTO pdf_title_info (file_id,title, page_num, depth) VALUES (%s,%s, %s, %s)", + (file_id,item['title'], item['page_num'], item['depth'])) + conn.commit() + cursor.close() + conn.close() + +def get_file_info_from_mysql(file_id): + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + #cursor = conn.cursor(buffered=True) + cursor = conn.cursor(dictionary=True) + select_query = """ + SELECT title, page_num, depth + FROM pdf_title_info + WHERE file_id = %s + """ + + cursor.execute(select_query, (file_id,)) + result = cursor.fetchall() + cursor.close() + conn.close() + return result diff --git a/zzb_data_prod/delete_pdf.py b/zzb_data_prod/delete_pdf.py new file mode 100644 index 0000000..a85e6e6 --- /dev/null +++ b/zzb_data_prod/delete_pdf.py @@ -0,0 +1,84 @@ +#报错提示 +import paramiko +import time +import threading + +# 执行命令的函数 +def execute_commands_on_server(hostname, username, password, host): + try: + # 连接到服务器 + client = paramiko.SSHClient() + client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + client.connect(hostname=hostname, username=username, password=password) + + # 执行命令 + shell = client.invoke_shell() + #启动docker + shell.send("cd /root/pdf_parser/pdf\n") + time.sleep(1) + shell.send("rm -f *.pdf\n") + time.sleep(10) + shell.send("rm -f *.PDF\n") + time.sleep(10) + # 读取输出 + output = shell.recv(2048).decode() + print(f"Output from {hostname}:\n{output}") + + except paramiko.SSHException as e: + print(f"SSH connection error with {hostname}: {e}") + + finally: + client.close() + +# 创建线程函数 +def thread_function(server): + execute_commands_on_server(server['hostname'], server['username'], server['password'], server['host']) + +# 服务器列表 +# servers = [ +# {'hostname': 'server1.example.com', 'username': 'user1', 'password': 'pass1', 'host': 'host1'}, +# {'hostname': 'server2.example.com', 'username': 'user2', 'password': 'pass2', 'host': 'host2'}, +# # 添加更多服务器 +# ] +servers = [ + #{'hostname': '124.70.129.232', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'测试服务器'}, + # {'hostname': '1.94.179.121', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器'},#废弃 + +#旧10台 + {'hostname': '113.44.72.157', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器1'}, + {'hostname': '1.94.101.237', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器2'}, + {'hostname': '123.60.16.225', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器3'}, + {'hostname': '124.71.157.162', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器4'}, + + {'hostname': '1.94.60.103', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器5'}, + {'hostname': '1.94.143.23', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器6'},#都往这里存 + {'hostname': '124.71.149.225', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器7'}, + {'hostname': '113.44.52.221', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器8'}, + {'hostname': '121.37.137.13', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器9'}, + {'hostname': '123.60.28.83', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器10'}, +#新10台 + {'hostname': '192.168.0.19', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器1'}, + {'hostname': '192.168.0.53', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器2'}, + {'hostname': '192.168.0.150', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器3'}, + {'hostname': '192.168.0.210', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器4'}, + + {'hostname': '192.168.0.129', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器5'}, + {'hostname': '192.168.0.24', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器6'}, + {'hostname': '192.168.0.250', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器7'}, + {'hostname': '192.168.0.162', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器8'}, + {'hostname': '192.168.0.86', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器9'}, + {'hostname': '192.168.0.88', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器10'}, +] + +# 创建并启动线程 +threads = [] +for server in servers: + thread = threading.Thread(target=thread_function, args=(server,)) + threads.append(thread) + thread.start() + +# 等待所有线程完成 +for thread in threads: + thread.join() + +print("All commands executed.") diff --git a/zzb_data_prod/excel.py b/zzb_data_prod/excel.py new file mode 100644 index 0000000..e497120 --- /dev/null +++ b/zzb_data_prod/excel.py @@ -0,0 +1,121 @@ +import pandas as pd +import json +import utils +from config import MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB +import mysql.connector + +# 读取 Excel 文件 +df = pd.read_excel('/Users/zhengfei/Desktop/ttt.xlsx', header=0) + +# 将 DataFrame 转换为字典列表 +data_list = df.to_dict(orient='records') + +period_exra_arr =['当期:本期,本报告期,报告期,报告期内,本年度,本期发生额,2023年,2023年全年,2023年金额','上年同期:上期,上年度,2022年,2022年全年,2022年金额','前年同期:2021年,2021年全年,2021年金额','同比变动:同比增减,同比上升,同比下降,变化幅度,变动比例,本期比上年同期增减,本年比上年增减','报告期末:本报告期末,期末,期末数,期末金额,2023年年末,2023年12月31日','年初至报告期末:上年年末,上年末,2022年年末,2022年12月31日','报告期初:期初,期初数,期初金额,2023年1月1日','当期第一季度:第一季度,1-3月,第一季度(1-3月),2023年第一季度','当期第二季度:第二季度,4-6月,第二季度(4-6月),2023年第二季度','当期第三季度:第三季度,7-9月,第三季度(7-9月),2023年第三季度','当期第四季度:第四季度,10-12月,第四季度(10-12月),2023年第四季度'] + +year = 2023 + +conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB +) + +# 创建一个cursor对象来执行SQL语句 +cursor = conn.cursor() + +# insert_query = ''' +# INSERT INTO measure_create_config +# (config_id, meta_measure, same_mean_measure, measure_period, change_type, black_list) +# VALUES (%s, %s, %s, %s, %s, %s) +# ''' + +# for data in data_list: +# show_measure = str(data['指标']) +# same_mean_measure = str(data['同义表述']) +# period_measure = str(data['周期']) +# change_measure = str(data['变动']) +# black_list = str(data['黑名单词']) +# config_id = utils.get_md5(show_measure) +# insert_query_data = (config_id, show_measure, same_mean_measure, period_measure, change_measure, black_list) +# cursor.execute(insert_query, insert_query_data) +# conn.commit() + +# 读取 Excel 文件 +# df_period = pd.read_excel('/Users/zhengfei/Desktop/period.xlsx', header=0) + +# # 将 DataFrame 转换为字典列表 +# period_list = df_period.to_dict(orient='records') + +# period_insert_query = ''' +# INSERT INTO measure_create_period +# (period_name, same_mean_period) +# VALUES (%s, %s) +# ''' + +# for data in period_list: +# period_name = str(data['标准表述']) +# same_mean_period = str(data['同义表述']) + +# insert_query_data = (period_name, same_mean_period) +# cursor.execute(period_insert_query, insert_query_data) +# conn.commit() + +data_query = ''' + SELECT * FROM measure_create_config where delete_status = 0 + ''' +period_query = ''' + SELECT * FROM measure_create_period + ''' + +cursor.execute(data_query) +data_list = cursor.fetchall() + +cursor.execute(period_query) +period_list = cursor.fetchall() + +for data in data_list: + config_id = data[0] + show_measure = data[1] + same_mean_measure = data[2] + period_measure = data[3] + change_measure = data[4] + same_mean_measure_arr = [] + period_measure_arr = [] + change_measure_arr = [] + if same_mean_measure != 'nan' : + same_mean_measure_arr = same_mean_measure.split(',') + + if period_measure != 'nan' : + period_measure_arr = period_measure.split(',') + if change_measure != 'nan' : + change_measure_arr = change_measure.split(',') + + for c in change_measure_arr: + period_measure_arr.append(c) + + for x in period_measure_arr: + if x in change_measure_arr: + show_name = show_measure+x + else: + show_name = x+show_measure + for y in same_mean_measure_arr: + if x in change_measure: + parser_name = y+x + else: + parser_name = x+y + + print(f'{show_name},{parser_name}') + for p in period_list: + period_exra_name = p[0] + period_exra_value = p[1] + if x.find(period_exra_name) != -1: + for v in period_exra_value.split(','): + if x in change_measure: + parser_name = y + x.replace(period_exra_name, v) + else: + parser_name = x.replace(period_exra_name, v) + y + print(f'{show_name},{parser_name}') + +cursor.close() +conn.close() \ No newline at end of file diff --git a/zzb_data_prod/insert_redis.py b/zzb_data_prod/insert_redis.py new file mode 100644 index 0000000..16bf992 --- /dev/null +++ b/zzb_data_prod/insert_redis.py @@ -0,0 +1,246 @@ +import pandas as pd +import mysql.connector +import utils +#from config import MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB +import re +import redis + +def process_excel_and_db(input_excel_path1, input_excel_path2, output_file_path): + # 读取第一个 Excel 文件 + df = pd.read_excel(input_excel_path1, sheet_name='Sheet2', header=0)#对应ttt表 + # 将 DataFrame 转换为字典列表 + data_list = df.to_dict(orient='records') + + # 连接到 MySQL 数据库 + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) + cursor = conn.cursor() + + # 插入数据到 measure_create_config 表 + insert_query = ''' + INSERT INTO measure_create_config + (config_id, meta_measure, same_mean_measure, measure_period, change_type, black_list) + VALUES (%s, %s, %s, %s, %s, %s) + ''' + for data in data_list: + show_measure = str(data['指标']) + same_mean_measure = str(data['同义表述']) + period_measure = str(data['周期']) + change_measure = str(data['变动']) + black_list = str(data['黑名单词']) + config_id = utils.get_md5(show_measure) + insert_query_data = (config_id, show_measure, same_mean_measure, period_measure, change_measure, black_list) + cursor.execute(insert_query, insert_query_data) + conn.commit() + + # 读取第二个 Excel 文件 + df_period = pd.read_excel(input_excel_path2, sheet_name='Sheet2', header=0)#对应周期表 + # 将 DataFrame 转换为字典列表 + period_list = df_period.to_dict(orient='records') + + # 插入数据到 measure_create_period 表 + period_insert_query = ''' + INSERT INTO measure_create_period + (period_name, same_mean_period) + VALUES (%s, %s) + ''' + for data in period_list: + period_name = str(data['标准表述']) + same_mean_period = str(data['同义表述']) + insert_query_data = (period_name, same_mean_period) + cursor.execute(period_insert_query, insert_query_data) + conn.commit() + + # 查询数据库 + data_query = ''' + SELECT * FROM measure_create_config WHERE delete_status = 0 + ''' + period_query = ''' + SELECT * FROM measure_create_period + ''' + + cursor.execute(data_query) + data_list = cursor.fetchall() + + cursor.execute(period_query) + period_list = cursor.fetchall() + + # 输出到文件 + with open(output_file_path, 'w', encoding='utf-8') as file: + for data in data_list: + config_id = data[0] + show_measure = data[1] + same_mean_measure = data[2] + period_measure = data[3] + change_measure = data[4] + same_mean_measure_arr = [] + period_measure_arr = [] + change_measure_arr = [] + + if same_mean_measure != 'nan': + same_mean_measure_arr = same_mean_measure.split(',') + same_mean_measure_arr.append(show_measure) + if period_measure != 'nan': + period_measure_arr = period_measure.split(',') + if change_measure != 'nan': + change_measure_arr = change_measure.split(',') + + for c in change_measure_arr: + period_measure_arr.append(c) + + for x in period_measure_arr: + if x in change_measure_arr: + show_name = show_measure + x + else: + show_name = x + show_measure + for y in same_mean_measure_arr: + if x in change_measure: + parser_name = y + x + else: + parser_name = x + y + + file.write(f'{show_name},{parser_name}\n') + + for p in period_list: + period_exra_name = p[0] + period_exra_value = p[1] + if period_exra_name in x: + for v in period_exra_value.split(','): + if x in change_measure: + parser_name = y + x.replace(period_exra_name, v) + else: + parser_name = x.replace(period_exra_name, v) + y + file.write(f'{show_name},{parser_name}\n') + + cursor.close() + conn.close() + + +# 根据老指标配置表生成新指标配置表 +def create_new_config(conn, cursor, table_name,old_year,new_year): + + select_query = f''' + SELECT measure_id, measure_name,ori_measure_id,ori_measure_name,delete_status,measure_vector,distance,year + FROM {table_name} + WHERE year = '{old_year}' + ''' + cursor.execute(select_query) + data_list = cursor.fetchall() + + insert_query = f''' + INSERT INTO {table_name} + (measure_id, measure_name,ori_measure_id,ori_measure_name,delete_status,measure_vector,distance, year) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s) + ''' + for data in data_list: + ori_measure_name = data[3] + if re.match(r'^\d{4}',ori_measure_name): + year = int(re.match(r'^\d{4}',ori_measure_name).group(0)) + year += 1 + ori_measure_name = str(year) + ori_measure_name[4:] + insert_data = (data[0],data[1],data[2],ori_measure_name,data[4],data[5],data[6],new_year) + cursor.execute(insert_query, insert_data) + conn.commit() + +def measure_config_to_db(conn, cursor, table_name): + year_list = ["2021","2022","2023","2024","2025"] + for year in year_list: + insert_query = f''' + INSERT INTO {table_name} + (measure_id, measure_name, ori_measure_id, ori_measure_name,delete_status,distance,year) + VALUES (%s, %s, %s, %s,%s,%s,%s) + ''' + check_query = f''' + SELECT ori_measure_id FROM {table_name} + WHERE year = '{year}' + ''' + # 新增指标 + lines = [ + f"当期营业收入,{year}年第一季度营业收入", + f"当期归母净利润,{year}年第一季度归母净利润", + f"当期扣非净利润,{year}年第一季度扣非净利润", + f"当期经营活动现金流净额,{year}年第一季度经营活动现金流净额", + f"当期筹资活动现金流净额,{year}年第一季度筹资活动现金流净额", + f"当期投资活动现金流净额,{year}年第一季度投资活动现金流净额", + f"当期非经常性损益,{year}年第一季度非经常性损益", + f"当期基本每股收益,{year}年第一季度基本每股收益", + f"当期稀释每股收益,{year}年第一季度稀释每股收益", + f"当期加权平均净资产收益率,{year}年第一季度加权平均净资产收益率", + f"当期扣非加权平均净资产收益率,{year}年第一季度扣非加权平均净资产收益率", + f"当期营业成本 ,{year}年第一季度营业成本", + f"当期销售费用,{year}年第一季度销售费用", + f"当期管理费用,{year}年第一季度管理费用", + f"当期财务费用,{year}年第一季度财务费用", + f"当期研发费用,{year}年第一季度研发费用"] + # 打印每一行 + for line in lines: + config_list = line.strip().split(',') + measure = config_list[0] + ori_measure = config_list[1] + ori_measure_id = utils.get_md5(ori_measure) + + # 判断数据库中是否有数据 + cursor.execute(check_query) + check_records = cursor.fetchall() + if any(record[0] == ori_measure_id for record in check_records): + continue + + data_to_insert = (utils.get_md5(measure), measure, ori_measure_id, ori_measure,0,0.94,year) + cursor.execute(insert_query, data_to_insert) + conn.commit() + +def insert_measure_vector(conn,cursor,table_name): + from config import REDIS_HOST,REDIS_PASSWORD,REDIS_PORT + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6)# 192.168.0.172 #测试123.60.153.169 + # 执行SQL语句,更新数据 + select_query = f''' + SELECT ori_measure_id,ori_measure_name FROM {table_name} + ''' + cursor.execute(select_query) + records = cursor.fetchall() + print(f"总计{len(records)}条数据") + for record in records: + if redis_client.hexists('measure_config', record[0]): + measure_vector = redis_client.hget('measure_config', record[0]) + else: + print('新增指标',record[1]) + vector_obj = utils.embed_with_str(record[1]) + measure_vector = str(vector_obj.output["embeddings"][0]["embedding"]) + + redis_client.hset('measure_config', record[0], measure_vector) + redis_client.close() + conn.close() +#from config import MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB +if __name__ == "__main__": + #需要先清空本地数据库的 measure_create_config 和 measure_create_period 表 + + # process_excel_and_db( + # 'F:\\11_pdf\\ttt_1.xlsx',#ttt文件 + # 'F:\\11_pdf\\period_1.xlsx',#period文件 + # 'F:\\11_pdf\\out_2022_new_year.txt'#输出文件 + # ) + from config import MYSQL_HOST_APP, MYSQL_USER_APP, MYSQL_PASSWORD_APP, MYSQL_DB_APP + conn = mysql.connector.connect( + host=MYSQL_HOST_APP, + user=MYSQL_USER_APP, + password=MYSQL_PASSWORD_APP, + database=MYSQL_DB_APP + ) + cursor = conn.cursor() + #file_path = r'F:\\11_pdf\\out_2022_new_year.txt' + + + + # 更新第一季度的measure_vector + table_name = 'measure_config_first_quarter' + # 写入mysql + measure_config_to_db(conn, cursor, table_name) + # create_new_config(conn, cursor, table_name,'2024','2025') + # 插入redies + insert_measure_vector(conn,cursor,table_name) + + diff --git a/zzb_data_prod/llm_service.py b/zzb_data_prod/llm_service.py new file mode 100644 index 0000000..632a3a5 --- /dev/null +++ b/zzb_data_prod/llm_service.py @@ -0,0 +1,98 @@ +#coding=utf-8 + +import random +from http import HTTPStatus +from dashscope import Generation +from datetime import datetime + +# 文本和表格数据给大模型,返回大模型抽取原始指标列表 +def get_measure_from_llm(user_prompt): + """ + :return: 文本和表格数据给大模型,返回大模型抽取原始指标列表 + """ + llm_measure_list = [] + system_prompt = ''' + 你是一个优秀的金融分析师,从给定的数据报告中自动提取以下关键财务指标。指标包括: + 2023年营业收入 + 2022年营业收入 + 2021年营业收入 + 2023年第一季度营业收入 + 2023年第二季度营业收入 + 2023年第三季度营业收入 + 2023年第四季度营业收入 + 营业收入同比变动 + 2023年归母净利润 + 2022年归母净利润 + 2021年归母净利润 + 2023年第一季度归母净利润 + 2023年第二季度归母净利润 + 2023年第三季度归母净利润 + 2023年第四季度归母净利润 + 归母净利润同比变动 + 2023年扣非净利润 + 2022年扣非净利润 + 2021年扣非净利润 + 2023年第一季度扣非净利润 + 2023年第二季度扣非净利润 + 2023年第三季度扣非净利润 + 2023年第四季度扣非净利润 + 扣非净利润同比变动 + 2023年经营活动现金流净额 + 2022年经营活动现金流净额 + 2021年经营活动现金流净额 + 经营活动现金流净额同比变动 + 2023年筹资活动现金流净额 + 2022年筹资活动现金流净额 + 2021年筹资活动现金流净额 + 2023年投资活动现金流净额 + 2022年投资活动现金流净额 + 2021年投资活动现金流净额 + 2023年非经常性损益 + 2022年非经常性损益 + 2021年非经常性损益 + 2023年基本每股收益 + 2022年基本每股收益 + 2021年基本每股收益 + 2023年稀释每股收益 + 2022年稀释每股收益 + 2021年稀释每股收益 + 2023年加权平均净资产收益率 + 2022年加权平均净资产收益率 + 2021年加权平均净资产收益率 + 2023年扣非加权平均净资产收益率 + 2022年扣非加权平均净资产收益率 + 2021年扣非加权平均净资产收益率 + <数据报告> + + + ''' + system_prompt = system_prompt.replace('', user_prompt) + response = Generation.call( + model='qwen-plus', + prompt = system_prompt, + seed=random.randint(1, 10000), + top_p=0.8, + result_format='message', + enable_search=False, + max_tokens=1500, + temperature=0.85, + repetition_penalty=1.0 + ) + if response.status_code == HTTPStatus.OK: + result = response['output']['choices'][0]['message']['content'] + llm_measure_list = result.split('\n') + return llm_measure_list + else: + print('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( + response.request_id, response.status_code, + response.code, response.message + )) + + return "llm_error" + +if __name__ == '__main__': + user_prompt = ''' + 二、 经营情况回顾 (一) 经营计划 2023 年,在国际环境复杂多变以及全球经济依旧下行的形势下,公司严格按照既定发展战略和经营计划,狠抓落实,迎难而上,业务经营整体保持稳定,如期完成全年既定经营目标。在全体职员的共同努力下,公司的营业收入、净利润等各项指标再创历史新高,营业收入较上年同期实现15.43%的增长,归属于上市公司股东的净利润较上年同期实现 26.47%的增长。 1、财务状况 报告期末,公司资产总额为 1,473,271,310.23 元,增幅为 19.17%,主要系:一方面随着销售规模的不断增长,公司应收账款及合同资产等流动资产增幅较大,另一方面,为解决基于销售规模扩大引致的产能跟不上的瓶颈,公司上马扩产建设项目,导致在建工程、固定资产等非流动资产增幅较报告期末公司负债总额为 800,619,067.70 元,增幅为 26.12%,主要系随着销售规模增加、工程建设项目推进、固定资产购置等,公司采购数额大幅增加,公司通过银行借款等方式筹集资金,导致长短期贷款期末余额增幅较大。 报告期末,归属于上市公司股东的净资产为 670,316,339.35 元,增幅为 11.45%,主要系报告期内经营积累。 2、经营成果 报告期内,公司实现营业收入 1,003,535,799.51 元,增幅为 15.43%。主要系公司本期持续优化生产经营,大力推进产品研发和创新,抓住“双碳”政策以及“能效”提升产生的市场需求旺盛的有利时机,且随着公司北交所上市,产品品牌效应凸显,产能增加,订单获取能力增强,变压器及户外成套设备销售增长较多。 营业成本为 810,779,075.89 元,增幅为 15.33%,主要系报告期内销售增长及主要原材料价格变动所致。归属于上市公司股东的净利润为 73,033,633.31 元,增幅为 26.47%,主要系:1)公司持续优化生产经营,大力推进产品研发和创新,抓住“双碳”政策以及“能效”提升产生的市场需求旺盛的有利时机,生产和销售均呈稳定增长;2)本期处置开源路 1-1 号土地及建筑物及其他附属物等,结转资产处置收益同比增加。 + ''' + measure_list = get_measure_from_llm(user_prompt) + print(measure_list) \ No newline at end of file diff --git a/zzb_data_prod/log_config.py b/zzb_data_prod/log_config.py new file mode 100644 index 0000000..8d1b177 --- /dev/null +++ b/zzb_data_prod/log_config.py @@ -0,0 +1,51 @@ +import logging +import os +from logging.handlers import RotatingFileHandler + +def setup_logging(): + # 创建logs目录(如果不存在) + log_dir = 'logs' + if not os.path.exists(log_dir): + os.makedirs(log_dir) + + # 配置根日志记录器 + root_logger = logging.getLogger() + + # 如果已经有handlers,先移除它们以防重复 + if root_logger.handlers: + for handler in root_logger.handlers[:]: + root_logger.removeHandler(handler) + + root_logger.setLevel(logging.INFO) + + # 创建格式化器 + formatter = logging.Formatter( + '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + ) + + # 创建文件处理器 + file_handler = RotatingFileHandler( + os.path.join(log_dir, 'app.log'), + maxBytes=10*1024*1024, # 10MB + backupCount=5 + ) + file_handler.setLevel(logging.INFO) + file_handler.setFormatter(formatter) + + # 创建控制台处理器 + console_handler = logging.StreamHandler() + console_handler.setLevel(logging.INFO) + console_handler.setFormatter(formatter) + + # 添加处理器到根日志记录器 + root_logger.addHandler(file_handler) + root_logger.addHandler(console_handler) + + # 设置propagate=False以防止日志消息向上传播 + for logger_name in logging.root.manager.loggerDict: + logger = logging.getLogger(logger_name) + logger.propagate = False + + return root_logger + +logger = setup_logging() \ No newline at end of file diff --git a/zzb_data_prod/main.py b/zzb_data_prod/main.py new file mode 100644 index 0000000..fae52fa --- /dev/null +++ b/zzb_data_prod/main.py @@ -0,0 +1,1134 @@ +import camelot +import re +from multiprocessing import Pool +import os, time, random +import json +from config import MILVUS_CLIENT,MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB,MEASURE_COUNT,MYSQL_HOST_APP,MYSQL_USER_APP,MYSQL_PASSWORD_APP,MYSQL_DB_APP +from datetime import datetime +# 读取PDF +import PyPDF2 +# 分析PDF的layout,提取文本 +from pdfminer.high_level import extract_pages +from pdfminer.layout import LTTextBoxHorizontal +import pdfplumber +import mysql.connector +import utils +from Mil_unit import create_partition_by_hour +import llm_service +import db_service +import pdf_title +import numpy as np +from multiprocessing import Process +from config import REDIS_HOST,REDIS_PORT,REDIS_PASSWORD +import redis +from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection,MilvusClient +from log_config import logger + +''' +已知发现问题: +1.表格和文本提取错误,表格和文本内容在同一页,文本在前表格在后的,文本数据提取不出来 +2.大模型抽取错,抽取2023年营业收入:主营业务收入、分产品的营业收入、变动比例被错误抽取 +3.表格中的指标被抽取成文本中 +4.大模型抽取指标时,语义完全不同的指标被放一起,考虑用向量相似度来判断 +''' + +# 数据处理流程 +# 1. get_table_range多进程获取所有表格及表格上下文,输出为一个完整的列表 +# 2. 单进程进行表格分页合并,输出一个新的表格对象数组 +# 3. 新表格对象数组多进程开始原来的解析指标流程 + + +STR_PATTERN = '营业收入|净利润|变动比例|损益|现金流量净额|现金净流量|现金流|每股收益|总资产|资产总额|收益率|货币资金|应收账款|存货|固定资产|在建工程|商誉|短期借款|应付账款|合同负债|长期借款|营业成本|销售费用|管理费用|财务费用|研发费用|研发投入|计入当期损益的政府补助' +PATTERN = '品牌类型|分门店|销售渠道|行业名称|产品名称|地区名称|子公司名称|业绩快报|调整情况说明|调整年初资产负债表|主要子公司|分部|母公司资产负债表|显示服务|渠道|商品类型|合同分类|会计政策变更|地区分类|研发项目名称|分类产品|表头不合规的表格|内部控制评价|关联方|国内地区|国外地区|销售区域|存货库龄|外币|逾期60天以上|欧元|英镑|(?<=\d)美元|\美元(?=\d)|日元' +MUILT_PATTERN = '调整前' +#unit_pattern = re.compile(r'单位[:|:]?(百万元|千万元|亿元|万元|千元|元)') +unit_pattern = re.compile(r'(单位|单元|人民币).{0,6}?(百万元|千万元|亿元|万元|千元|元).{0,3}?')#修改单位匹配规则,不限制冒号,只限制距离 +#获取指标的表头信息 +def get_col_num_info(array,row_num,col_num,x,y): + num_info="" + for j in range(col_num): + if len(str(array[x][j])) > 50: + continue + num_info += str(array[x][j]) + + return num_info.replace('%','') + +#获取指标的表头信息 +def get_row_num_info(array,row_num,col_num,x,y): + num_info="" + + for i in range(row_num): + if len(str(array[i][y])) > 50: + continue + num_info += str(array[i][y]) + + return num_info + +def table_converter(table): + table_string = '' + # 遍历表格的每一行 + for row_num in range(len(table)): + row = table[row_num] + # 从warp的文字删除线路断路器 + cleaned_row = [item.replace('\n', ' ') if item is not None and '\n' in item else 'None' if item is None else item for item in row] + # 将表格转换为字符串,注意'|'、'\n' + table_string+=(','.join(cleaned_row)) + # 删除最后一个换行符 + table_string = table_string[:-1] + return table_string +def safe_process_array(func, arr): + try: + return func(arr) + except Exception as e: + logger.info(f"这个函数出现了报错{func.__name__}: {e}") + return arr # 返回原数组以便继续后续处理 + +#单独针对三季报的资产负债表识别合并问题 + +def process_array(arr, years=['2022', '2023', '2024'], keyword='项目'): + # 确保 row 有足够的列来存储分割后的数据 + def ensure_columns(row, num_columns): + while len(row) < num_columns: + row.append('') + + def is_valid_header(header, years, keyword): + header_text = header.lower() # 转小写以提高匹配的鲁棒性 + return any(year in header_text for year in years) and keyword in header_text + + # 对字符串进行清理 + def clean_text(text): + # 去除“年”和“月”相邻的空格 + text = re.sub(r'\s*(年|月)\s*', r'\1', text) + # 去除“日”左侧相邻的空格 + text = re.sub(r'\s*日', '日', text) + return text + + # 将 numpy 数组转换为列表 + arr = arr.tolist() if isinstance(arr, np.ndarray) else arr + + if len(arr[0]) == 1 and is_valid_header(arr[0][0], years, keyword): + remaining_value = arr[0][0] + + # 清理字符串 + remaining_value = clean_text(remaining_value) + + parts = remaining_value.split() + + ensure_columns(arr[0], len(parts)) + for i in range(len(parts)): + arr[0][i] = parts[i] + + header_columns = len(arr[0]) + + for i in range(1, len(arr)): + if len(arr[i]) == 1: + remaining_value = arr[i][0] + parts = remaining_value.split() + if len(parts) > header_columns: + parts = parts[:header_columns] + ensure_columns(arr[i], header_columns) + for j in range(len(parts)): + arr[i][j] = parts[j] + # 如果分割出的值不足,填充空值 + if len(parts) < header_columns: + for j in range(len(parts), header_columns): + arr[i][j] = '' + + return arr +#三季报中针对性修改,本报告期和年初至报告期末的两个上年同期进行区分 +def process_array_with_annual_comparison(arr, keywords=['本报告期', '年初至报告期末', '上年同期']): + def contains_all_keywords(header, keywords): + return all(keyword in header for keyword in keywords) + + def split_and_replace_occurrences(header, target, replacement): + # 找到所有 target 出现的位置 + indices = [i for i, x in enumerate(header) if x == target] + if len(indices) > 1: + split_index = len(indices) // 2 + for i in range(split_index): + header[indices[i]] = replacement + return header + + # 将 numpy 数组转换为列表 + arr = arr.tolist() if isinstance(arr, np.ndarray) else arr + + if len(arr) > 0 and len(arr[0]) > 0: + first_row = arr[0] + + if contains_all_keywords(first_row, keywords): + # 将 "上年同期" 拆分并替换 + first_row = split_and_replace_occurrences(first_row, '上年同期', '三季报中无需识别的上年同期') + arr[0] = first_row + + return arr + + +#三季报的非经常损益的单独处理 +def process_array_with_grants(arr, keywords=['本报告期', '年初至报告期'], target='计入当期损益的政府补助', replacement='非经常性损益'): + # 检查第一行是否包含所有关键词 + def contains_all_keywords(header, keywords): + #return all(keyword in header for keyword in keywords) + return all(any(keyword in str(cell) for cell in header) for keyword in keywords) + + + # 检查第一列中是否存在目标文本 + def contains_target_in_first_column(arr, target): + return any(target in str(item[0]) for item in arr) + + # 替换第一列中的特定值 + def replace_in_first_column(arr, target, replacement): + for i in range(len(arr)): + if arr[i][0] == target: + + arr[i][0] = replacement + return arr + + # 将 numpy 数组转换为列表 + arr = arr.tolist() if isinstance(arr, np.ndarray) else arr + + if len(arr) > 0 and len(arr[0]) > 0: + first_row = arr[0] + + # 检查第一行和第一列的条件 + if contains_all_keywords(first_row, keywords) and contains_target_in_first_column(arr, target): + # 替换第一列中的 "合计" + arr = replace_in_first_column(arr, '合计', replacement) + + return arr + +def get_table_range(file_path, file_id, pages, tables_range): + + logger.info(f'Run task 解析表格--{pages} {os.getpid()}') + start = time.time() + + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + conn_app = mysql.connector.connect( + host= MYSQL_HOST_APP, + user= MYSQL_USER_APP, + password= MYSQL_PASSWORD_APP, + database= MYSQL_DB_APP + ) + cursor_app = conn_app.cursor(buffered=True) + + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + try: + tables = camelot.read_pdf(file_path, pages=pages, strip_text=',\n', copy_text=['v','h'],shift_text = ['l']) + for t in tables: + + top = t._bbox[3] + buttom = t._bbox[1] + page_num = int(t.page) + table_index = int(t.order) + arr = np.array(t.data) + + + if page_num != 0: + # 表格数据写入 + line_texts = [] + for lines in t.data: + for line in lines: + line_texts.append(line) + + db_service.batch_insert_page_text_nocheck({ + 'file_id': file_id, + 'page_num' : page_num, + 'text' : line_texts + },conn,cursor) + + arr = safe_process_array(process_array, arr) #部分资产负债表合并问题 + arr = safe_process_array(process_array_with_annual_comparison, arr) #复杂表格的优化"多个上年同期时处理" + arr = safe_process_array(process_array_with_grants, arr) #三季报的非经常损益 + if len(arr[0]) == 6 and arr[0][0]== "项目" and arr[0][1] == '' and '2022' in arr[0][2] and '2021' in arr[0][2]: + remaining_value = arr[0][2]#initial_value.replace("项目", "", 1) + split_index = len(remaining_value) // 2 + arr[0][1] = remaining_value[:split_index] + arr[0][2] = remaining_value[split_index:] + if len(arr[0]) == 3 and arr[0][0]== "项目" and arr[0][1] == '' and '2022' in arr[0][2] and '2023' in arr[0][2]: + remaining_value = arr[0][2]#initial_value.replace("项目", "", 1) + split_index = len(remaining_value) // 2 + arr[0][1] = remaining_value[:split_index] + arr[0][2] = remaining_value[split_index:] + if len(arr[0]) == 5 and arr[0][0]== "项目" and arr[0][2] == arr[0][4] and '同比' in arr[0][2] and arr[0][1] != arr[0][3]: + arr[0][2] = arr[0][1]+arr[0][2] + arr[0][4] = arr[0][3]+arr[0][4] + if len(arr[0]) == 4 and all(value == arr[0][0] for value in arr[0]) and all("项目" in arr[0][0] and "附注" in arr[0][0] for value in arr[0]): + initial_value = arr[0][0].replace(' ','') + project_value = "项目" + note_value = "附注" + remaining_value = initial_value.replace("项目", "", 1).replace("附注", "", 1) + split_index = len(remaining_value) // 2 + first_half = remaining_value[:split_index] + second_half = remaining_value[split_index:] + # 判断 "项目" 在 original_value 中的位置 + if "项目" in initial_value and first_half in initial_value and second_half in initial_value : + project_index = initial_value.index("项目") + year_index = initial_value.index(first_half) + year_index_2 = initial_value.index(second_half) + + # 判断 "项目" 是否在 first_half 的前面 + if project_index > year_index and project_index < year_index_2: + first_half, second_half = second_half, first_half + arr[0] = [project_value, note_value, first_half, second_half] + if len(arr[0]) == 3 and all(value == arr[0][0] for value in arr[0]) and all("项目" in arr[0][0] for value in arr[0]): + initial_value = arr[0][0] + project_value = "项目" + #note_value = "附注" + remaining_value = initial_value.replace("项目", "", 1).replace("(1-9 月) (1-9 月)","") + split_index = len(remaining_value) // 2 + first_half = remaining_value[:split_index] + second_half = remaining_value[split_index:] + arr[0] = [project_value, first_half, second_half] + #for i in range(len(arr[0])): + #if arr[0][i] == arr[1][i] and len(arr[0][i])<5: + #print(f'{arr[0][i]}') + #arr[1][i] = '' + #保留camelot中的空格,在这里依据空格进行手动表格拆分 + #for line in arr: + for line in arr: + if not line[0].replace('.', '', 1).isdigit() and any(line[i] == line[i+1] and ' ' in line[i] for i in range(1, len(line) - 1)): + for i in range(1, len(line) - 1): + if line[i] == line[i+1] and ' ' in line[i]: + split_value = line[i] + split_parts = split_value.split(' ', 1) # 使用 split 方法进行分割 + if len(split_parts) == 2: # 确保确实进行了分割 + first_half, second_half = split_parts + line[i] = first_half + line[i+1] = second_half + break + + #处理完之后保证arr中不再存在空格 + #arr = [[item.rieplace(' ', '') for item in line] for line in arr] + arr = np.char.replace(arr, ' ', '') + + #这里是防止出现表格左右拼接的情况 + first_row = arr[0] + if len(first_row) % 2 == 0 and all(cell.strip() for cell in first_row): + mid_point = len(first_row) // 2 + if np.array_equal(first_row[:mid_point], first_row[mid_point:]): + new_arr = [] + for i in range(mid_point): + new_row = np.concatenate([arr[:, i], arr[:, i + mid_point]]) + new_arr.append(new_row) + arr = np.array(new_arr).T + #这里开始对无效的表头进行处理 + try: + invalid_headers = ["上年年末余额"] + non_empty_values = [value for value in first_row if value]#要求就是首行除了空值外的值都必须是一致的 + if len(set(non_empty_values)) == 1 and non_empty_values[0] in invalid_headers: + arr[0] = ["表头不合规的表格"] * len(first_row) + except Exception as e: + print(f'在识别表头是否合规时出现了报错:{e}') + #这里是防止出现'2023年度2022年度'camelot识别错误 + if not arr[0][0].replace('.', '', 1).isdigit() and any(arr[0][i] == arr[0][i+1] and '2023' in arr[0][i] and '2022' in arr[0][i] for i in range(1, len(arr[0])-1)): + for i in range(1, len(arr[0])-1): + if arr[0][i] == arr[0][i+1] and '2023' in arr[0][i] and '2022' in arr[0][i]: + split_value = arr[0][i] + split_index = len(split_value) // 2 + first_half = split_value[:split_index] + second_half = split_value[split_index:] + arr[0][i] = first_half + arr[0][i+1] = second_half + break + #防止2023与2022同时出现 + if not arr[0][0].replace('.', '', 1).isdigit(): + # 遍历第一行的值 + for i in range(1, len(arr[0]) - 1): + # 检查相邻的两个值是否同时包含 '2023' 和 '2022'(且 '2023' 在 '2022' 之前) + if (('2023' in arr[0][i] and '2022' in arr[0][i+1]) and + (arr[0][i].index('2023') < arr[0][i+1].index('2022'))): + # 更新这两个值 + arr[0][i] = '2023年' + arr[0][i+1] = '2022年' + break + #这里开始对可能解析错误的值做判断: + for i, row in enumerate(arr): + if len(row) >= 4: + # 检查条件:第一列不为数字,第二列和第四列为空,第三列有三个小数点【三列的数字被识别到一起了】 + if (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 4 and len(row[2].rsplit('.', 1)[-1]) == 2) and (row[3] == ''): + split_values = row[2].split('.') + # 确保可以正确拆分成三个数值 + if len(split_values) == 4: + new_value1 = f"{split_values[0]}.{split_values[1][:2]}" + new_value2 = f"{split_values[1][2:]}.{split_values[2][:2]}" + new_value3 = f"{split_values[2][2:]}.{split_values[3]}" + row[1] = new_value1 + row[2] = new_value2 + row[3] = new_value3 + #检查条件:第一列不为数字,第二列第四列为空,第三列两个小数点,第五列两个小数点【两列的数字被识别到一起了】 + if len(row) >= 5 and (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 3) and (row[3] == '') and (len(row[4].split('.')) == 3) and len(row[2].rsplit('.', 1)[-1]) == 2 and len(row[4].rsplit('.', 1)[-1]) == 2: + split_value_3 = row[2].split('.') + split_value_5 = row[4].split('.') + + if len(split_value_3) == 3: + new_value2 = f"{split_value_3[0]}.{split_value_3[1][:2]}" + new_value3 = f"{split_value_3[1][2:]}.{split_value_3[2]}" + + if len(split_value_5) == 3: + new_value4 = f"{split_value_5[0]}.{split_value_5[1][:2]}" + new_value5 = f"{split_value_5[1][2:]}.{split_value_5[2]}" + + row[1] = new_value2 + row[2] = new_value3 + row[3] = new_value4 + row[4] = new_value5 + #检查条件:第一列不为数字,第二列为空,第三列有两个小数点,第四列为正常数字【两列的数字被识别到一起了】 + if len(row) >= 4 and (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 3) and len(row[2].rsplit('.', 1)[-1]) == 2 and (row[3].replace('-', '', 1).replace('.', '', 1).isdigit()): + split_values = row[2].split('.') + if len(split_values) == 3: + new_value2 = f"{split_values[0]}.{split_values[1][:2]}" + new_value3 = f"{split_values[1][2:]}.{split_values[2]}" + row[1] = new_value2 + row[2] = new_value3 + #检查条件:第一列不位数字,后面有一列中的值存在“%”并且"%"不是结尾,就进行拆分 + if not row[0].replace('.', '', 1).isdigit(): + for i in range(1, len(row) - 1): + if row[i] == '' and '%' in row[i + 1] and len(row[i + 1].split('%')) == 2: + split_values = row[i + 1].split('%') + new_value1 = f"{split_values[0]}%" + new_value2 = f"{split_values[1]}" + row[i] = new_value1 + row[i + 1] = new_value2 + break + + + new_data = arr.tolist()#用于后面保存到数据库中 + new_data = utils.check_black_table_list(new_data) + rows, cols = arr.shape + if rows == 1 and cols == 1: + continue + arr_str = ''.join([''.join(map(str, row)) for row in arr]) + + #过滤掉不包含需抽取指标表格的文本 + matches = re.findall(STR_PATTERN, arr_str) + pattern = re.findall(PATTERN,arr_str) + muilt_pattern = re.findall(MUILT_PATTERN,arr_str) + if len(matches) > 0 and len(pattern) == 0 and len(muilt_pattern)<5: + + if not tables_range.get(page_num): + tables_range[page_num] = [] + + tables_range[page_num].append({ + 'top' : top, + 'buttom' : buttom, + 'table_index' : table_index, + 'page_num' : page_num, + }) + + db_service.insert_pdf_parse_process({ + 'file_id': file_id, + 'page_num' : page_num, + 'page_count' : 100, + 'type' : 'parse_table', + 'content':{ + 'top' : top, + 'buttom' : buttom, + 'page_num' : page_num, + 'table_index' : table_index, + "type" : "table", + "data" : new_data, + 'sort_num' : page_num*1000 - top + }},conn_app,cursor_app) + + + + except Exception as e: + logger.info(f'camelot解析表格时出现了{e}') + + + + get_text_content(file_path, file_id, tables_range, pages, conn, cursor, redis_client, conn_app, cursor_app) + + cursor.close() + conn.close() + cursor_app.close() + conn_app.close() + redis_client.close() + + end = time.time() + logger.info('Task %s runs %0.2f seconds.' % (f'解析表格{pages}', (end - start))) + +def text_in_table(top, tables_range, page_num): + if tables_range.get(page_num): + for range in tables_range[page_num]: + if top < range['top'] and top > range['buttom']: + return True + return False + +def get_text_type(text: str): + text = re.sub(r"\s", "", text) + first_re = r'年度报告|季度报告' + page_number_pattern = re.compile(r'^\d+(/\d+)?$') + + if re.search(first_re, text.strip()): + return 'page_header' + + if page_number_pattern.match(text.strip()): + return 'page_footer' + + if len(text) < 20 and text.endswith('页'): + return 'page_footer' + + return 'text' + +# 读取pdf文件中文本内容,不包括表格 +def get_text_content(pdf_path,file_id,tables_range,pages,conn,cursor,redis_client, conn_app, cursor_app): + """ + :return: 返回pdf文件中文本内容,不包括表格 + """ + #print(f'tables_range 的值为{tables_range}') + #print('----------------') + #print(pages) + + page_start = pages.split('-')[0] + page_end = pages.split('-')[1] + logger.info(f'pages的值为{pages}') + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + select_pdf_text_check = f"""select count(1) from pdf_text_info where file_id = {file_id}""" + #check_if_empty_query = f"SELECT COUNT(*) FROM pdf_text_info where file_id = {file_id} and page_num = {page_num}" + cursor.execute(select_pdf_text_check) + is_empty = cursor.fetchone()[0] == 0 + query = "SELECT title_list,button_list FROM table_title_list WHERE report_year = %s" + cursor_dict = conn.cursor(dictionary=True) + cursor_dict.execute(query, (report_year,)) + result = cursor_dict.fetchone() + title_list = result['title_list'] + button_list = result['button_list'] + + + # 我们从PDF中提取页面,page_numbers=[4,5,6] + for pagenum, page in enumerate(extract_pages(pdf_path)): + try: + if pagenum+1 < int(page_start) or pagenum+1 > int(page_end): + continue + #更新redis已解析页码 + if not redis_client.exists(f'parsed_page_count_{file_id}'): + redis_client.set(f'parsed_page_count_{file_id}', 0) + + redis_client.incr(f'parsed_page_count_{file_id}') + + # 找到所有的元素 + page_elements = [(element.y1, element) for element in page._objs] + # 查找组成页面的元素 + line_texts = [] + #if not utils.pdf_text_flag(line_text): + # line_texts.append(line_text) + for i,component in enumerate(page_elements): + # 提取页面布局的元素 + element = component[1] + # 检查该元素是否为文本元素 + if isinstance(element, LTTextBoxHorizontal): + # 检查文本是否出现在表中 + line_text = element.get_text().replace('\n','') + line_text = re.sub(r"\s", "", line_text) + + #提取符合要求的文本写入pdf_text_info,用于文本书写错误识别 + # if not utils.pdf_text_flag(line_text): + line_texts.append(line_text) + #db_service.insert_pdf_text_info({ + # 'file_id': file_id, + # 'page_num' : pagenum+1, + # 'text' : line_text + # },conn,cursor) + + element_top = element.bbox[3] + element_buttom = element.bbox[1] + out_table_list = ['母公司现金流量表','母公司利润表','母公司资产负债表','子公司'] + + # 检查该文本是否出现在表中 + if tables_range.get(pagenum+1): + for range in tables_range[pagenum+1]: + if element_top < range['top'] and element_top > range['buttom']:#总是有母公司表被识别到上一个表里面: + pass + else: + if element_top - range['top'] < 150 and element_top - range['top'] > 5 and (not text_in_table(element_top, tables_range, pagenum+1) or any(word in line_text for word in out_table_list)):#or any(word in line_text for word in out_table_list) + text_type = get_text_type(line_text) + if text_type in ('page_header','page_footer'): + break + if pagenum ==44: + logger.info(f'line_text在第44页的值有{line_text}') + #这个对一整页都有用,会去掉很多正确的表 + # 记录需要过滤掉的页码 + if len(re.findall('母公司|现金流量表补充', line_text)) > 0 : + db_service.insert_measure_parser_info({ + 'file_id': file_id, + 'content': pagenum+1, + 'type': 'parent_com', + },conn_app,cursor_app) + + # 保存每个表格上方小范围区域的文字,这部分内容包含了表格的标题和指标单位 + table_info = {} + + if utils.check_table_title_black_list(line_text,title_list): + + db_service.insert_measure_parser_info({ + 'file_id': file_id, + 'content': f"{range['page_num']}_{range['table_index']}", + 'type': 'table_index', + },conn_app,cursor_app) + if utils.check_table_title_black_list_measure(line_text): + db_service.insert_measure_parser_info_measure({ + 'file_id': file_id, + 'content': f"{range['page_num']}_{range['table_index']}", + 'type': 'measure_index', + },conn_app,cursor_app,line_text) + + if re.findall(unit_pattern, line_text): + range['unit_flag'] = True + table_info = get_table_unit_info(file_id,line_text,range['page_num'],range['table_index']) + db_service.insert_table_unit_info_v1(table_info,conn,cursor) + # if utils.check_table_title_black_list(line_text): + # db_service.insert_measure_parser_info({ + # 'file_id': file_id, + # 'content': f"{range['page_num']}_{range['table_index']}", + # 'type': 'table_index', + # },conn,cursor) + else: + if len(line_text) <= 5 or len(re.findall('单位|适用', line_text)) > 0 : + pass + #else: + # table_info = get_table_text_info(file_id,line_text,range['page_num'],range['table_index']) + # db_service.insert_table_text_info(table_info,conn,cursor) + #通过关键词黑名单匹配表格上方的文本区域,提取需要过滤的表格 + # if utils.check_table_title_black_list(line_text): + # db_service.insert_measure_parser_info({ + # 'file_id': file_id, + # 'content': f"{range['page_num']}_{range['table_index']}", + # 'type': 'table_index', + # },conn,cursor) + if utils.check_line_text(line_text): + + db_service.insert_pdf_parse_process({ + 'file_id': file_id, + 'page_num' : pagenum+1, + 'page_count' : 100, + 'type' : 'parse_table', + 'content':{ + 'top' : element_top, + 'buttom' : element_buttom, + 'page_num' : range['page_num'], + 'table_index' : range['table_index'], + "type" : text_type, + 'content' : line_text, + 'sort_num' : range['page_num']*1000 - element_top + }},conn_app,cursor_app) + + break + #处理母公司表格标题在页面底部,完整表格在下一页 + if element_buttom < 150 and not text_in_table(element_top, tables_range, pagenum+1): + text_type = get_text_type(line_text) + + if text_type == 'page_footer': + continue + + table_info = {} + # 记录需要过滤掉的页码 + if len(re.findall('母公司|现金流量表补充', line_text)) > 0: + logger.info(f'line_text{line_text}') + logger.info(f'pagenum{pagenum}') + db_service.insert_measure_parser_info({ + 'file_id': file_id, + 'content': pagenum+2, + 'type': 'parent_com', + },conn_app,cursor_app) + + #通过关键词黑名单匹配本页面末尾文字,如果出现 + if utils.check_table_title_black_list_button(line_text,button_list): + db_service.insert_measure_parser_info({ + 'file_id': file_id, + 'content': f"{pagenum+2}_1", + 'type': 'table_index', + },conn_app,cursor_app) + if utils.check_table_title_black_list_measure(line_text): + db_service.insert_measure_parser_info_measure({ + 'file_id': file_id, + 'content': f"{pagenum+2}_1", + 'type': 'measure_index', + },conn_app,cursor_app,line_text) + + if re.findall(unit_pattern, line_text): + table_info = get_table_unit_info(file_id,line_text,pagenum+2,1) + db_service.insert_table_unit_info(table_info,conn,cursor) + + if utils.check_line_text(line_text): + db_service.insert_pdf_parse_process({ + 'file_id': file_id, + 'page_num' : pagenum+1, + 'page_count' : 100, + 'type' : 'parse_table', + 'content':{ + 'top' : element_top, + 'buttom' : element_buttom, + 'page_num' : pagenum+1, + "type" : text_type, + 'content' : line_text, + 'sort_num' : (pagenum+1)*1000 - element_top + }},conn_app,cursor_app) + if is_empty: + db_service.batch_insert_page_text_nocheck({ + 'file_id': file_id, + 'page_num' : pagenum+1, + 'text' : line_texts + },conn,cursor) + #print('文本这里没有重跑') + else: + db_service.batch_insert_page_text({ + 'file_id': file_id, + 'page_num' : pagenum+1, + 'text' : line_texts + },conn,cursor) + except Exception as e: + logger.info(f'{pagenum}页处理异常') + logger.info(e) + + +def get_table_unit_info(file_id,line_text,page_num,table_index): + table_info = {} + table_info['file_id'] = file_id + match = unit_pattern.search(line_text) + if match: + unit = match.group(2) + table_info['unit'] = unit + + table_info['page_num'] = page_num + table_info['table_index'] = table_index + #print(table_info) + return table_info + + +def get_table_text_info(file_id,line_text,page_num,table_index): + table_info = {} + table_info['file_id'] = file_id + table_info['text_info'] = line_text + table_info['page_num'] = page_num + table_info['table_index'] = table_index + #print(table_info) + return table_info + +# 读取pdf中的表格,并将表格中指标和表头合并,eg: 2022年1季度营业收入为xxxxx +def get_table_measure(file_id, pdf_tables, record_range,partition_name,): + """ + :return: pdf中的表格,并将表格中指标和表头合并,eg: 2022年1季度营业收入为xxxxx + """ + try: + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + conn_app = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + # 创建一个cursor对象来执行SQL语句 + cursor_app = conn_app.cursor(buffered=True) + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + client = MilvusClient( + uri=MILVUS_CLIENT, + ) + + logger.info('提取指标任务 %s (%s)...' % (record_range, os.getpid())) + start = time.time() + record_start = record_range.split('-')[0] + record_end = record_range.split('-')[1] + for index in range(int(record_start),int(record_end)): + t = pdf_tables[index] + measure_obj =[] + data_dict = {} + measure_list = [] + try: + arr = np.array(t['data']) + rows, cols = arr.shape + if rows == 1 and cols == 1: + continue + row_num , col_num = -1 , -1 + # 使用嵌套循环遍历数组,获取第一个数值位置 + for i in range(rows): + for j in range(cols): + if j == 0 or i == 0:#防止第一列识别出数字 + continue + measure_value_config = str(arr[i, j]).replace('(','').replace(')','') + + if re.match(r'^[+-]?(\d+(\.\d*)?|\.\d+)(%?)$', measure_value_config): + if j == cols-1: + row_num , col_num = i , j + break + elif (re.match(r'^[+-]?(\d+(\.\d*)?|\.\d+)(%?)$', measure_value_config) + or measure_value_config == '-'): + row_num , col_num = i , j + break + else: + continue + break + # 遍历数值二维数组,转成带语义的指标 + if row_num != -1 and col_num != -1: + for i in range(row_num,arr.shape[0]): + for j in range(col_num,arr.shape[1]): + measure_value = str(arr[i, j]).replace('%','').replace('(','-').replace(')','') + if measure_value == '-' or measure_value == '' or len(measure_value) > 20: + continue + else: + row_num_info = get_row_num_info(arr,row_num,col_num,i,j) + col_num_info = get_col_num_info(arr,row_num,col_num,i,j) + + #如果上表头为空则认为是被截断,除了研发投入特殊处理其它过滤 + if row_num_info in ('','-',')',')'): + continue + + #特殊处理非经常性损益合计和非经常性损益净额同时出现时保留净额 + if col_num_info == '非经常性损益合计': + continue + + if utils.check_pdf_measure_black_list(f"{col_num_info}{row_num_info}"): + continue + + #去掉没有周期的指标 + if utils.check_pdf_measure(f"{col_num_info}{row_num_info}"): + continue + + #判断上表头和左表头周期是否一致,不一致过滤 + row_period = utils.get_period_type_other(row_num_info, report_year) + col_period = utils.get_period_type_other(col_num_info, report_year) + if(row_period != col_period and row_period != 'c_n' and col_period != 'c_n'): + continue + units_mapping = { + "百万元": "百万元", + "千万元": "千万元", + "亿元": "亿元", + "万元": "万元", + "千元": "千元", + "元": "元", + "元/股": "元" + } + row_num_info = row_num_info.replace('%','增减') + #num_info = f"{col_num_info}{row_num_info}".replace('()','').replace('加:','').replace('减:','').replace('%','') + num_info = utils.get_clean_text(f"{row_num_info}{col_num_info}") + num_info_bak = utils.get_clean_text(f"{col_num_info}{row_num_info}") + measure_unit = '' + #"%": "同期增减" + combined_info = f"{row_num_info} {col_num_info}" + # for unit in units_mapping: + # if unit in row_num_info: + # measure_unit = units_mapping[unit] + # break + if utils.get_percent_flag(row_num_info) == '1': + measure_unit = '' + else: + for unit in units_mapping: + if re.search(rf'\(\s*{unit}(\s*人民币)?\s*\)|\(\s*{unit}(\s*人民币)?\s*\)', combined_info) or (re.search(rf'{unit}', combined_info) and any(re.search('单位', item) for item in arr[0])): + measure_unit = units_mapping[unit] + break + measure_list.append({ + 'measure_name': num_info, + 'measure_value': measure_value, + 'measure_unit':measure_unit, + }) + measure_list.append({ + 'measure_name': num_info_bak, + 'measure_value': measure_value, + 'measure_unit':measure_unit, + }) + + if not redis_client.exists(f'parsed_measure_count_{file_id}'): + redis_client.set(f'parsed_measure_count_{file_id}', 0) + + redis_client.incr(f'parsed_measure_count_{file_id}') + + + + if len(measure_list) > 0: + data_dict["measure_list"] = measure_list + data_dict["page_num"] = f"{str(t['page_num'])}_{str(t['table_index'])}" + data_dict['file_id'] = file_id + measure_obj.append(data_dict) + db_service.insert_measure_data_to_milvus(client,partition_name,measure_obj,cursor_app,conn_app) + except Exception as e: + logger.info(f"循环获取表格数据这里报错了,数据是{t['data']},位置在{index}") + logger.info(f"错误是:{e}") + end = time.time() + logger.info('提取指标 %s runs %0.2f seconds.' % (record_range, (end - start))) + except Exception as e: + logger.info(f'这个错误是{e},所在的位置是{record_start}-{record_end}') + record_start = record_range.split('-')[0] + record_end = record_range.split('-')[1] + for index in range(int(record_start),int(record_end)): + t = pdf_tables[index] + measure_obj =[] + data_dict = {} + measure_list = [] + try: + arr = np.array(t['data']) + except Exception as e: + logger.info(f'这个错误是{e}的arr的值是{arr}') + finally: + redis_client.close() + cursor.close() + conn.close() + cursor_app.close() + conn_app.close() + +#多进程任务分发,根据参数判断是调表格还是正文 +def dispatch_job(job_info): + try: + type = job_info['type'] + path = job_info['path'] + file_id = job_info['file_id'] + page_num = job_info['page_num'] + tables_range = job_info['tables_range'] + if type == 'table': + get_table_range(path, file_id, page_num, tables_range) + + except Exception as e: + logger.info(e) + +#指标归一化处理 + +def update_measure_data(file_id,file_path,parent_table_pages,partition_name): + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + # #通过向量查询指标 + conn_app = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + + # 创建一个cursor对象来执行SQL语句 + cursor_app = conn_app.cursor(buffered=True) + logger.info(f'目录黑名单为:{parent_table_pages}') + db_service.insert_table_measure_from_vector_async_process(cursor,parent_table_pages,file_id,file_path, partition_name) + + db_service.delete_MYSQL_DB_APP(file_id) + db_service.delete_MYSQL_DB(file_id) + + + # #指标归一化处理 + db_service.update_ori_measure(conn,cursor,file_id) + + cursor.close() + conn.close() + cursor_app.close() + conn_app.close() + + +# def merge_consecutive_arrays(word_info): +# merged_objects = [] +# temp_list = [] + +# for info_obj in word_info: +# try: +# if info_obj['type'] == 'table': +# # 如果对象是表格,将其元素添加到临时列表中 +# data = info_obj['data'] +# if not data: +# continue +# first_row = data[0] +# if all(re.search(r'[\u4e00-\u9fa5]', cell) for cell in first_row[1:]) and len(temp_list) == 0: +# temp_list.append(info_obj) +# elif all(re.search(r'[\u4e00-\u9fa5]', cell) for cell in first_row[1:]) and len(temp_list) > 0: +# merged_objects.append(temp_list) +# temp_list = [] +# temp_list.append(info_obj) +# elif not all(re.search(r'[\u4e00-\u9fa5]', cell) for cell in first_row[1:]) and len(temp_list) > 0: +# temp_data = temp_list[-1]['data'] +# temp_data = list(temp_data) +# for row in list(info_obj['data']): +# temp_data.append(row) +# info_obj['data'] = temp_data +# temp_list.clear() +# temp_list.append(info_obj) + + +# except Exception as e: + +# applog.error(f"解析数据错误: {e}") + +# if temp_list: +# merged_objects.append(temp_list) + +# return merged_objects + +def merge_consecutive_arrays(pdf_info): + merged_objects = [] + temp_array = {} + + for info_obj in pdf_info: + + try: + if info_obj['type'] == 'table': + # 如果对象是表格,将其元素添加到临时列表中 + if not temp_array.get('page_num'): + temp_array = info_obj + #else: + # temp_array['data'].extend(info_obj['data']) + elif len(temp_array['data'][0]) == len(info_obj['data'][0]): + temp_array['data'].extend(info_obj['data']) + else: + if temp_array: + # 将临时列表中的元素合并成一个数组,并添加到新的对象列表中 + merged_objects.append(temp_array) + temp_array = {} # 重置临时列表 + else: + # 如果对象不是表格,检查临时列表是否为空 + if temp_array: + # 将临时列表中的元素合并成一个数组,并添加到新的对象列表中 + merged_objects.append(temp_array) + temp_array = {} # 重置临时列表 + except Exception as e: + #print(info_obj) + logger.info(f"解析数据错误: {e}") + + if temp_array: + merged_objects.append(temp_array) + + return merged_objects + +def merge_consecutive_arrays_v1(pdf_info): + merged_objects = [] + temp_array = {} + + def is_same_dimension(data1, data2): + # 检查两个表的每行长度是否相同 + if len(data1) != len(data2): + return False + return all(len(row1) == len(row2) for row1, row2 in zip(data1, data2)) + + for info_obj in pdf_info: + try: + if info_obj['type'] == 'table': + if not temp_array: + # 如果临时列表为空,则初始化临时列表 + temp_array = info_obj + else: + # 检查当前表与临时列表中的表是否同维度 + if is_same_dimension(temp_array['data'], info_obj['data']): + # 如果是同维度,则合并数据 + temp_array['data'].extend(info_obj['data']) + else: + # 如果不是同维度,将现有临时列表添加到结果中,并重置临时列表 + merged_objects.append(temp_array) + temp_array = info_obj + else: + # 如果对象不是表格,检查临时列表是否非空 + if temp_array: + # 将临时列表中的元素合并成一个数组,并添加到新的对象列表中 + merged_objects.append(temp_array) + temp_array = {} # 重置临时列表 + except Exception as e: + logger.info(f"解析数据错误: {e}") + + # 循环结束后,检查临时列表是否非空,如果非空,则添加到结果中 + if temp_array: + merged_objects.append(temp_array) + + return merged_objects +def start_table_measure_job(file_id,partition_name): + conn_app = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + # 创建一个cursor对象来执行SQL语句 + cursor_app = conn_app.cursor(buffered=True) + + select_process_query = ''' + select content from pdf_parse_process WHERE file_id = '{file_id}' and type='parse_table' + '''.format(file_id=file_id) + cursor_app.execute(select_process_query) + records = cursor_app.fetchall() + pdf_info = [] + + for record in records: + try: + pdf_info.append(eval(record[0])) + except Exception as e: + logger.info(f'文本报错{e}') + + sorted_pdf_info = sorted(pdf_info, key=lambda k: k['sort_num']) + pdf_tables = merge_consecutive_arrays(sorted_pdf_info) + + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + redis_client.set(f'measure_count_{file_id}', len(pdf_tables)) + + cursor_app.close() + conn_app.close() + redis_client.close() + + records_range_parts = utils.get_range(len(pdf_tables),MEASURE_COUNT) + logger.info(f'records_range_part识别页码的值为{records_range_parts}') + processes = [] + + + + for record_range in records_range_parts: + p = Process(target=get_table_measure, args=(file_id,pdf_tables,record_range,partition_name,)) + processes.append(p) + p.start() + + for p in processes: + p.join() + +if __name__ == "__main__": + + file_id = '1778' + page_num = 11 + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + + select_process_query = ''' + select content from pdf_parse_process WHERE file_id = '{file_id}' and type='parse_table' + and page_num in(41,42,43) + '''.format(file_id=file_id, page_num=page_num) + cursor.execute(select_process_query) + records = cursor.fetchall() + pdf_info = [] + for record in records: + pdf_info.append(eval(record[0])) + + sorted_pdf_info = sorted(pdf_info, key=lambda k: k['sort_num']) + pdf_tables = merge_consecutive_arrays(sorted_pdf_info) + + get_table_measure(file_id,pdf_tables,'0-2') + # sorted_pdf_info = sorted(pdf_info, key=lambda k: k['sort_num']) + + # pdf_tables = merge_consecutive_arrays(sorted_pdf_info) + # for table in pdf_tables: + # print(table)#修改测试 diff --git a/zzb_data_prod/measure_config_all.txt b/zzb_data_prod/measure_config_all.txt new file mode 100644 index 0000000..dc901d0 --- /dev/null +++ b/zzb_data_prod/measure_config_all.txt @@ -0,0 +1,2768 @@ +当期营业收入,当期营业收入 +当期营业收入,本期营业收入 +当期营业收入,本报告期营业收入 +当期营业收入,报告期营业收入 +当期营业收入,报告期内营业收入 +当期营业收入,本年度营业收入 +当期营业收入,本期金额营业收入 +当期营业收入,本期发生额营业收入 +当期营业收入,2023年营业收入 +当期营业收入,2023年全年营业收入 +当期营业收入,2023年金额营业收入 +当期营业收入,当期营业收入总额 +当期营业收入,本期营业收入总额 +当期营业收入,本报告期营业收入总额 +当期营业收入,报告期营业收入总额 +当期营业收入,报告期内营业收入总额 +当期营业收入,本年度营业收入总额 +当期营业收入,本期金额营业收入总额 +当期营业收入,本期发生额营业收入总额 +当期营业收入,2023年营业收入总额 +当期营业收入,2023年全年营业收入总额 +当期营业收入,2023年金额营业收入总额 +当期营业收入,当期营业收入金额 +当期营业收入,本期营业收入金额 +当期营业收入,本报告期营业收入金额 +当期营业收入,报告期营业收入金额 +当期营业收入,报告期内营业收入金额 +当期营业收入,本年度营业收入金额 +当期营业收入,本期金额营业收入金额 +当期营业收入,本期发生额营业收入金额 +当期营业收入,2023年营业收入金额 +当期营业收入,2023年全年营业收入金额 +当期营业收入,2023年金额营业收入金额 +当期营业收入,当期调整后营业收入 +当期营业收入,本期调整后营业收入 +当期营业收入,本报告期调整后营业收入 +当期营业收入,报告期调整后营业收入 +当期营业收入,报告期内调整后营业收入 +当期营业收入,本年度调整后营业收入 +当期营业收入,本期金额调整后营业收入 +当期营业收入,本期发生额调整后营业收入 +当期营业收入,2023年调整后营业收入 +当期营业收入,2023年全年调整后营业收入 +当期营业收入,2023年金额调整后营业收入 +上年同期营业收入,上年同期营业收入 +上年同期营业收入,上期营业收入 +上年同期营业收入,上期金额营业收入 +上年同期营业收入,上年营业收入 +上年同期营业收入,上年度营业收入 +上年同期营业收入,2022年营业收入 +上年同期营业收入,2022年全年营业收入 +上年同期营业收入,2022年金额营业收入 +上年同期营业收入,上年同期营业收入总额 +上年同期营业收入,上期营业收入总额 +上年同期营业收入,上期金额营业收入总额 +上年同期营业收入,上年营业收入总额 +上年同期营业收入,上年度营业收入总额 +上年同期营业收入,2022年营业收入总额 +上年同期营业收入,2022年全年营业收入总额 +上年同期营业收入,2022年金额营业收入总额 +上年同期营业收入,上年同期营业收入金额 +上年同期营业收入,上期营业收入金额 +上年同期营业收入,上期金额营业收入金额 +上年同期营业收入,上年营业收入金额 +上年同期营业收入,上年度营业收入金额 +上年同期营业收入,2022年营业收入金额 +上年同期营业收入,2022年全年营业收入金额 +上年同期营业收入,2022年金额营业收入金额 +上年同期营业收入,上年同期调整后营业收入 +上年同期营业收入,上期调整后营业收入 +上年同期营业收入,上期金额调整后营业收入 +上年同期营业收入,上年调整后营业收入 +上年同期营业收入,上年度调整后营业收入 +上年同期营业收入,2022年调整后营业收入 +上年同期营业收入,2022年全年调整后营业收入 +上年同期营业收入,2022年金额调整后营业收入 +前年同期营业收入,前年同期营业收入 +前年同期营业收入,2021年营业收入 +前年同期营业收入,2021年全年营业收入 +前年同期营业收入,2021年金额营业收入 +前年同期营业收入,前年同期营业收入总额 +前年同期营业收入,2021年营业收入总额 +前年同期营业收入,2021年全年营业收入总额 +前年同期营业收入,2021年金额营业收入总额 +前年同期营业收入,前年同期营业收入金额 +前年同期营业收入,2021年营业收入金额 +前年同期营业收入,2021年全年营业收入金额 +前年同期营业收入,2021年金额营业收入金额 +前年同期营业收入,前年同期调整后营业收入 +前年同期营业收入,2021年调整后营业收入 +前年同期营业收入,2021年全年调整后营业收入 +前年同期营业收入,2021年金额调整后营业收入 +当期第一季度营业收入,当期第一季度营业收入 +当期第一季度营业收入,本期第一季度营业收入 +当期第一季度营业收入,本报告期第一季度营业收入 +当期第一季度营业收入,报告期第一季度营业收入 +当期第一季度营业收入,报告期内第一季度营业收入 +当期第一季度营业收入,本年度第一季度营业收入 +当期第一季度营业收入,本期金额第一季度营业收入 +当期第一季度营业收入,本期发生额第一季度营业收入 +当期第一季度营业收入,2023年第一季度营业收入 +当期第一季度营业收入,2023年全年第一季度营业收入 +当期第一季度营业收入,2023年金额第一季度营业收入 +当期第一季度营业收入,第一季度营业收入 +当期第一季度营业收入,1-3月营业收入 +当期第一季度营业收入,第一季度(1-3月)营业收入 +当期第一季度营业收入,2023年第一季度营业收入 +当期第一季度营业收入,当期第一季度营业收入总额 +当期第一季度营业收入,本期第一季度营业收入总额 +当期第一季度营业收入,本报告期第一季度营业收入总额 +当期第一季度营业收入,报告期第一季度营业收入总额 +当期第一季度营业收入,报告期内第一季度营业收入总额 +当期第一季度营业收入,本年度第一季度营业收入总额 +当期第一季度营业收入,本期金额第一季度营业收入总额 +当期第一季度营业收入,本期发生额第一季度营业收入总额 +当期第一季度营业收入,2023年第一季度营业收入总额 +当期第一季度营业收入,2023年全年第一季度营业收入总额 +当期第一季度营业收入,2023年金额第一季度营业收入总额 +当期第一季度营业收入,第一季度营业收入总额 +当期第一季度营业收入,1-3月营业收入总额 +当期第一季度营业收入,第一季度(1-3月)营业收入总额 +当期第一季度营业收入,2023年第一季度营业收入总额 +当期第一季度营业收入,当期第一季度营业收入金额 +当期第一季度营业收入,本期第一季度营业收入金额 +当期第一季度营业收入,本报告期第一季度营业收入金额 +当期第一季度营业收入,报告期第一季度营业收入金额 +当期第一季度营业收入,报告期内第一季度营业收入金额 +当期第一季度营业收入,本年度第一季度营业收入金额 +当期第一季度营业收入,本期金额第一季度营业收入金额 +当期第一季度营业收入,本期发生额第一季度营业收入金额 +当期第一季度营业收入,2023年第一季度营业收入金额 +当期第一季度营业收入,2023年全年第一季度营业收入金额 +当期第一季度营业收入,2023年金额第一季度营业收入金额 +当期第一季度营业收入,第一季度营业收入金额 +当期第一季度营业收入,1-3月营业收入金额 +当期第一季度营业收入,第一季度(1-3月)营业收入金额 +当期第一季度营业收入,2023年第一季度营业收入金额 +当期第一季度营业收入,当期第一季度调整后营业收入 +当期第一季度营业收入,本期第一季度调整后营业收入 +当期第一季度营业收入,本报告期第一季度调整后营业收入 +当期第一季度营业收入,报告期第一季度调整后营业收入 +当期第一季度营业收入,报告期内第一季度调整后营业收入 +当期第一季度营业收入,本年度第一季度调整后营业收入 +当期第一季度营业收入,本期金额第一季度调整后营业收入 +当期第一季度营业收入,本期发生额第一季度调整后营业收入 +当期第一季度营业收入,2023年第一季度调整后营业收入 +当期第一季度营业收入,2023年全年第一季度调整后营业收入 +当期第一季度营业收入,2023年金额第一季度调整后营业收入 +当期第一季度营业收入,第一季度调整后营业收入 +当期第一季度营业收入,1-3月调整后营业收入 +当期第一季度营业收入,第一季度(1-3月)调整后营业收入 +当期第一季度营业收入,2023年第一季度调整后营业收入 +当期第二季度营业收入,当期第二季度营业收入 +当期第二季度营业收入,本期第二季度营业收入 +当期第二季度营业收入,本报告期第二季度营业收入 +当期第二季度营业收入,报告期第二季度营业收入 +当期第二季度营业收入,报告期内第二季度营业收入 +当期第二季度营业收入,本年度第二季度营业收入 +当期第二季度营业收入,本期金额第二季度营业收入 +当期第二季度营业收入,本期发生额第二季度营业收入 +当期第二季度营业收入,2023年第二季度营业收入 +当期第二季度营业收入,2023年全年第二季度营业收入 +当期第二季度营业收入,2023年金额第二季度营业收入 +当期第二季度营业收入,第二季度营业收入 +当期第二季度营业收入,4-6月营业收入 +当期第二季度营业收入,第二季度(4-6月)营业收入 +当期第二季度营业收入,2023年第二季度营业收入 +当期第二季度营业收入,当期第二季度营业收入总额 +当期第二季度营业收入,本期第二季度营业收入总额 +当期第二季度营业收入,本报告期第二季度营业收入总额 +当期第二季度营业收入,报告期第二季度营业收入总额 +当期第二季度营业收入,报告期内第二季度营业收入总额 +当期第二季度营业收入,本年度第二季度营业收入总额 +当期第二季度营业收入,本期金额第二季度营业收入总额 +当期第二季度营业收入,本期发生额第二季度营业收入总额 +当期第二季度营业收入,2023年第二季度营业收入总额 +当期第二季度营业收入,2023年全年第二季度营业收入总额 +当期第二季度营业收入,2023年金额第二季度营业收入总额 +当期第二季度营业收入,第二季度营业收入总额 +当期第二季度营业收入,4-6月营业收入总额 +当期第二季度营业收入,第二季度(4-6月)营业收入总额 +当期第二季度营业收入,2023年第二季度营业收入总额 +当期第二季度营业收入,当期第二季度营业收入金额 +当期第二季度营业收入,本期第二季度营业收入金额 +当期第二季度营业收入,本报告期第二季度营业收入金额 +当期第二季度营业收入,报告期第二季度营业收入金额 +当期第二季度营业收入,报告期内第二季度营业收入金额 +当期第二季度营业收入,本年度第二季度营业收入金额 +当期第二季度营业收入,本期金额第二季度营业收入金额 +当期第二季度营业收入,本期发生额第二季度营业收入金额 +当期第二季度营业收入,2023年第二季度营业收入金额 +当期第二季度营业收入,2023年全年第二季度营业收入金额 +当期第二季度营业收入,2023年金额第二季度营业收入金额 +当期第二季度营业收入,第二季度营业收入金额 +当期第二季度营业收入,4-6月营业收入金额 +当期第二季度营业收入,第二季度(4-6月)营业收入金额 +当期第二季度营业收入,2023年第二季度营业收入金额 +当期第二季度营业收入,当期第二季度调整后营业收入 +当期第二季度营业收入,本期第二季度调整后营业收入 +当期第二季度营业收入,本报告期第二季度调整后营业收入 +当期第二季度营业收入,报告期第二季度调整后营业收入 +当期第二季度营业收入,报告期内第二季度调整后营业收入 +当期第二季度营业收入,本年度第二季度调整后营业收入 +当期第二季度营业收入,本期金额第二季度调整后营业收入 +当期第二季度营业收入,本期发生额第二季度调整后营业收入 +当期第二季度营业收入,2023年第二季度调整后营业收入 +当期第二季度营业收入,2023年全年第二季度调整后营业收入 +当期第二季度营业收入,2023年金额第二季度调整后营业收入 +当期第二季度营业收入,第二季度调整后营业收入 +当期第二季度营业收入,4-6月调整后营业收入 +当期第二季度营业收入,第二季度(4-6月)调整后营业收入 +当期第二季度营业收入,2023年第二季度调整后营业收入 +当期第三季度营业收入,当期第三季度营业收入 +当期第三季度营业收入,本期第三季度营业收入 +当期第三季度营业收入,本报告期第三季度营业收入 +当期第三季度营业收入,报告期第三季度营业收入 +当期第三季度营业收入,报告期内第三季度营业收入 +当期第三季度营业收入,本年度第三季度营业收入 +当期第三季度营业收入,本期金额第三季度营业收入 +当期第三季度营业收入,本期发生额第三季度营业收入 +当期第三季度营业收入,2023年第三季度营业收入 +当期第三季度营业收入,2023年全年第三季度营业收入 +当期第三季度营业收入,2023年金额第三季度营业收入 +当期第三季度营业收入,第三季度营业收入 +当期第三季度营业收入,7-9月营业收入 +当期第三季度营业收入,第三季度(7-9月)营业收入 +当期第三季度营业收入,2023年第三季度营业收入 +当期第三季度营业收入,当期第三季度营业收入总额 +当期第三季度营业收入,本期第三季度营业收入总额 +当期第三季度营业收入,本报告期第三季度营业收入总额 +当期第三季度营业收入,报告期第三季度营业收入总额 +当期第三季度营业收入,报告期内第三季度营业收入总额 +当期第三季度营业收入,本年度第三季度营业收入总额 +当期第三季度营业收入,本期金额第三季度营业收入总额 +当期第三季度营业收入,本期发生额第三季度营业收入总额 +当期第三季度营业收入,2023年第三季度营业收入总额 +当期第三季度营业收入,2023年全年第三季度营业收入总额 +当期第三季度营业收入,2023年金额第三季度营业收入总额 +当期第三季度营业收入,第三季度营业收入总额 +当期第三季度营业收入,7-9月营业收入总额 +当期第三季度营业收入,第三季度(7-9月)营业收入总额 +当期第三季度营业收入,2023年第三季度营业收入总额 +当期第三季度营业收入,当期第三季度营业收入金额 +当期第三季度营业收入,本期第三季度营业收入金额 +当期第三季度营业收入,本报告期第三季度营业收入金额 +当期第三季度营业收入,报告期第三季度营业收入金额 +当期第三季度营业收入,报告期内第三季度营业收入金额 +当期第三季度营业收入,本年度第三季度营业收入金额 +当期第三季度营业收入,本期金额第三季度营业收入金额 +当期第三季度营业收入,本期发生额第三季度营业收入金额 +当期第三季度营业收入,2023年第三季度营业收入金额 +当期第三季度营业收入,2023年全年第三季度营业收入金额 +当期第三季度营业收入,2023年金额第三季度营业收入金额 +当期第三季度营业收入,第三季度营业收入金额 +当期第三季度营业收入,7-9月营业收入金额 +当期第三季度营业收入,第三季度(7-9月)营业收入金额 +当期第三季度营业收入,2023年第三季度营业收入金额 +当期第三季度营业收入,当期第三季度调整后营业收入 +当期第三季度营业收入,本期第三季度调整后营业收入 +当期第三季度营业收入,本报告期第三季度调整后营业收入 +当期第三季度营业收入,报告期第三季度调整后营业收入 +当期第三季度营业收入,报告期内第三季度调整后营业收入 +当期第三季度营业收入,本年度第三季度调整后营业收入 +当期第三季度营业收入,本期金额第三季度调整后营业收入 +当期第三季度营业收入,本期发生额第三季度调整后营业收入 +当期第三季度营业收入,2023年第三季度调整后营业收入 +当期第三季度营业收入,2023年全年第三季度调整后营业收入 +当期第三季度营业收入,2023年金额第三季度调整后营业收入 +当期第三季度营业收入,第三季度调整后营业收入 +当期第三季度营业收入,7-9月调整后营业收入 +当期第三季度营业收入,第三季度(7-9月)调整后营业收入 +当期第三季度营业收入,2023年第三季度调整后营业收入 +当期第四季度营业收入,当期第四季度营业收入 +当期第四季度营业收入,本期第四季度营业收入 +当期第四季度营业收入,本报告期第四季度营业收入 +当期第四季度营业收入,报告期第四季度营业收入 +当期第四季度营业收入,报告期内第四季度营业收入 +当期第四季度营业收入,本年度第四季度营业收入 +当期第四季度营业收入,本期金额第四季度营业收入 +当期第四季度营业收入,本期发生额第四季度营业收入 +当期第四季度营业收入,2023年第四季度营业收入 +当期第四季度营业收入,2023年全年第四季度营业收入 +当期第四季度营业收入,2023年金额第四季度营业收入 +当期第四季度营业收入,第四季度营业收入 +当期第四季度营业收入,10-12月营业收入 +当期第四季度营业收入,第四季度(10-12月)营业收入 +当期第四季度营业收入,2023年第四季度营业收入 +当期第四季度营业收入,当期第四季度营业收入总额 +当期第四季度营业收入,本期第四季度营业收入总额 +当期第四季度营业收入,本报告期第四季度营业收入总额 +当期第四季度营业收入,报告期第四季度营业收入总额 +当期第四季度营业收入,报告期内第四季度营业收入总额 +当期第四季度营业收入,本年度第四季度营业收入总额 +当期第四季度营业收入,本期金额第四季度营业收入总额 +当期第四季度营业收入,本期发生额第四季度营业收入总额 +当期第四季度营业收入,2023年第四季度营业收入总额 +当期第四季度营业收入,2023年全年第四季度营业收入总额 +当期第四季度营业收入,2023年金额第四季度营业收入总额 +当期第四季度营业收入,第四季度营业收入总额 +当期第四季度营业收入,10-12月营业收入总额 +当期第四季度营业收入,第四季度(10-12月)营业收入总额 +当期第四季度营业收入,2023年第四季度营业收入总额 +当期第四季度营业收入,当期第四季度营业收入金额 +当期第四季度营业收入,本期第四季度营业收入金额 +当期第四季度营业收入,本报告期第四季度营业收入金额 +当期第四季度营业收入,报告期第四季度营业收入金额 +当期第四季度营业收入,报告期内第四季度营业收入金额 +当期第四季度营业收入,本年度第四季度营业收入金额 +当期第四季度营业收入,本期金额第四季度营业收入金额 +当期第四季度营业收入,本期发生额第四季度营业收入金额 +当期第四季度营业收入,2023年第四季度营业收入金额 +当期第四季度营业收入,2023年全年第四季度营业收入金额 +当期第四季度营业收入,2023年金额第四季度营业收入金额 +当期第四季度营业收入,第四季度营业收入金额 +当期第四季度营业收入,10-12月营业收入金额 +当期第四季度营业收入,第四季度(10-12月)营业收入金额 +当期第四季度营业收入,2023年第四季度营业收入金额 +当期第四季度营业收入,当期第四季度调整后营业收入 +当期第四季度营业收入,本期第四季度调整后营业收入 +当期第四季度营业收入,本报告期第四季度调整后营业收入 +当期第四季度营业收入,报告期第四季度调整后营业收入 +当期第四季度营业收入,报告期内第四季度调整后营业收入 +当期第四季度营业收入,本年度第四季度调整后营业收入 +当期第四季度营业收入,本期金额第四季度调整后营业收入 +当期第四季度营业收入,本期发生额第四季度调整后营业收入 +当期第四季度营业收入,2023年第四季度调整后营业收入 +当期第四季度营业收入,2023年全年第四季度调整后营业收入 +当期第四季度营业收入,2023年金额第四季度调整后营业收入 +当期第四季度营业收入,第四季度调整后营业收入 +当期第四季度营业收入,10-12月调整后营业收入 +当期第四季度营业收入,第四季度(10-12月)调整后营业收入 +当期第四季度营业收入,2023年第四季度调整后营业收入 +营业收入同比变动,营业收入同比变动 +营业收入同比变动,营业收入同比增减 +营业收入同比变动,营业收入同比上升 +营业收入同比变动,营业收入同比下降 +营业收入同比变动,营业收入变化幅度 +营业收入同比变动,营业收入变动比例 +营业收入同比变动,营业收入本期比上年同期增减 +营业收入同比变动,营业收入本年比上年增减 +营业收入同比变动,营业收入本期期末金额较上期期末变动比例 +营业收入同比变动,营业收入总额同比变动 +营业收入同比变动,营业收入总额同比增减 +营业收入同比变动,营业收入总额同比上升 +营业收入同比变动,营业收入总额同比下降 +营业收入同比变动,营业收入总额变化幅度 +营业收入同比变动,营业收入总额变动比例 +营业收入同比变动,营业收入总额本期比上年同期增减 +营业收入同比变动,营业收入总额本年比上年增减 +营业收入同比变动,营业收入总额本期期末金额较上期期末变动比例 +营业收入同比变动,营业收入金额同比变动 +营业收入同比变动,营业收入金额同比增减 +营业收入同比变动,营业收入金额同比上升 +营业收入同比变动,营业收入金额同比下降 +营业收入同比变动,营业收入金额变化幅度 +营业收入同比变动,营业收入金额变动比例 +营业收入同比变动,营业收入金额本期比上年同期增减 +营业收入同比变动,营业收入金额本年比上年增减 +营业收入同比变动,营业收入金额本期期末金额较上期期末变动比例 +营业收入同比变动,调整后营业收入同比变动 +营业收入同比变动,调整后营业收入同比增减 +营业收入同比变动,调整后营业收入同比上升 +营业收入同比变动,调整后营业收入同比下降 +营业收入同比变动,调整后营业收入变化幅度 +营业收入同比变动,调整后营业收入变动比例 +营业收入同比变动,调整后营业收入本期比上年同期增减 +营业收入同比变动,调整后营业收入本年比上年增减 +营业收入同比变动,调整后营业收入本期期末金额较上期期末变动比例 +当期归母净利润,当期归母净利润 +当期归母净利润,本期归母净利润 +当期归母净利润,本报告期归母净利润 +当期归母净利润,报告期归母净利润 +当期归母净利润,报告期内归母净利润 +当期归母净利润,本年度归母净利润 +当期归母净利润,本期金额归母净利润 +当期归母净利润,本期发生额归母净利润 +当期归母净利润,2023年归母净利润 +当期归母净利润,2023年全年归母净利润 +当期归母净利润,2023年金额归母净利润 +当期归母净利润,当期归属于上市公司股东的净利润 +当期归母净利润,本期归属于上市公司股东的净利润 +当期归母净利润,本报告期归属于上市公司股东的净利润 +当期归母净利润,报告期归属于上市公司股东的净利润 +当期归母净利润,报告期内归属于上市公司股东的净利润 +当期归母净利润,本年度归属于上市公司股东的净利润 +当期归母净利润,本期金额归属于上市公司股东的净利润 +当期归母净利润,本期发生额归属于上市公司股东的净利润 +当期归母净利润,2023年归属于上市公司股东的净利润 +当期归母净利润,2023年全年归属于上市公司股东的净利润 +当期归母净利润,2023年金额归属于上市公司股东的净利润 +当期归母净利润,当期归属于母公司所有者的净利润 +当期归母净利润,本期归属于母公司所有者的净利润 +当期归母净利润,本报告期归属于母公司所有者的净利润 +当期归母净利润,报告期归属于母公司所有者的净利润 +当期归母净利润,报告期内归属于母公司所有者的净利润 +当期归母净利润,本年度归属于母公司所有者的净利润 +当期归母净利润,本期金额归属于母公司所有者的净利润 +当期归母净利润,本期发生额归属于母公司所有者的净利润 +当期归母净利润,2023年归属于母公司所有者的净利润 +当期归母净利润,2023年全年归属于母公司所有者的净利润 +当期归母净利润,2023年金额归属于母公司所有者的净利润 +当期归母净利润,当期归属于母公司股东的净利润 +当期归母净利润,本期归属于母公司股东的净利润 +当期归母净利润,本报告期归属于母公司股东的净利润 +当期归母净利润,报告期归属于母公司股东的净利润 +当期归母净利润,报告期内归属于母公司股东的净利润 +当期归母净利润,本年度归属于母公司股东的净利润 +当期归母净利润,本期金额归属于母公司股东的净利润 +当期归母净利润,本期发生额归属于母公司股东的净利润 +当期归母净利润,2023年归属于母公司股东的净利润 +当期归母净利润,2023年全年归属于母公司股东的净利润 +当期归母净利润,2023年金额归属于母公司股东的净利润 +上年同期归母净利润,上年同期归母净利润 +上年同期归母净利润,上期归母净利润 +上年同期归母净利润,上期金额归母净利润 +上年同期归母净利润,上年归母净利润 +上年同期归母净利润,上年度归母净利润 +上年同期归母净利润,2022年归母净利润 +上年同期归母净利润,2022年全年归母净利润 +上年同期归母净利润,2022年金额归母净利润 +上年同期归母净利润,上年同期归属于上市公司股东的净利润 +上年同期归母净利润,上期归属于上市公司股东的净利润 +上年同期归母净利润,上期金额归属于上市公司股东的净利润 +上年同期归母净利润,上年归属于上市公司股东的净利润 +上年同期归母净利润,上年度归属于上市公司股东的净利润 +上年同期归母净利润,2022年归属于上市公司股东的净利润 +上年同期归母净利润,2022年全年归属于上市公司股东的净利润 +上年同期归母净利润,2022年金额归属于上市公司股东的净利润 +上年同期归母净利润,上年同期归属于母公司所有者的净利润 +上年同期归母净利润,上期归属于母公司所有者的净利润 +上年同期归母净利润,上期金额归属于母公司所有者的净利润 +上年同期归母净利润,上年归属于母公司所有者的净利润 +上年同期归母净利润,上年度归属于母公司所有者的净利润 +上年同期归母净利润,2022年归属于母公司所有者的净利润 +上年同期归母净利润,2022年全年归属于母公司所有者的净利润 +上年同期归母净利润,2022年金额归属于母公司所有者的净利润 +上年同期归母净利润,上年同期归属于母公司股东的净利润 +上年同期归母净利润,上期归属于母公司股东的净利润 +上年同期归母净利润,上期金额归属于母公司股东的净利润 +上年同期归母净利润,上年归属于母公司股东的净利润 +上年同期归母净利润,上年度归属于母公司股东的净利润 +上年同期归母净利润,2022年归属于母公司股东的净利润 +上年同期归母净利润,2022年全年归属于母公司股东的净利润 +上年同期归母净利润,2022年金额归属于母公司股东的净利润 +前年同期归母净利润,前年同期归母净利润 +前年同期归母净利润,2021年归母净利润 +前年同期归母净利润,2021年全年归母净利润 +前年同期归母净利润,2021年金额归母净利润 +前年同期归母净利润,前年同期归属于上市公司股东的净利润 +前年同期归母净利润,2021年归属于上市公司股东的净利润 +前年同期归母净利润,2021年全年归属于上市公司股东的净利润 +前年同期归母净利润,2021年金额归属于上市公司股东的净利润 +前年同期归母净利润,前年同期归属于母公司所有者的净利润 +前年同期归母净利润,2021年归属于母公司所有者的净利润 +前年同期归母净利润,2021年全年归属于母公司所有者的净利润 +前年同期归母净利润,2021年金额归属于母公司所有者的净利润 +前年同期归母净利润,前年同期归属于母公司股东的净利润 +前年同期归母净利润,2021年归属于母公司股东的净利润 +前年同期归母净利润,2021年全年归属于母公司股东的净利润 +前年同期归母净利润,2021年金额归属于母公司股东的净利润 +当期第一季度归母净利润,当期第一季度归母净利润 +当期第一季度归母净利润,本期第一季度归母净利润 +当期第一季度归母净利润,本报告期第一季度归母净利润 +当期第一季度归母净利润,报告期第一季度归母净利润 +当期第一季度归母净利润,报告期内第一季度归母净利润 +当期第一季度归母净利润,本年度第一季度归母净利润 +当期第一季度归母净利润,本期金额第一季度归母净利润 +当期第一季度归母净利润,本期发生额第一季度归母净利润 +当期第一季度归母净利润,2023年第一季度归母净利润 +当期第一季度归母净利润,2023年全年第一季度归母净利润 +当期第一季度归母净利润,2023年金额第一季度归母净利润 +当期第一季度归母净利润,第一季度归母净利润 +当期第一季度归母净利润,1-3月归母净利润 +当期第一季度归母净利润,第一季度(1-3月)归母净利润 +当期第一季度归母净利润,2023年第一季度归母净利润 +当期第一季度归母净利润,当期第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,本期第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,本报告期第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,报告期第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,报告期内第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,本年度第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,本期金额第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,本期发生额第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,2023年第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,2023年全年第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,2023年金额第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,1-3月归属于上市公司股东的净利润 +当期第一季度归母净利润,第一季度(1-3月)归属于上市公司股东的净利润 +当期第一季度归母净利润,2023年第一季度归属于上市公司股东的净利润 +当期第一季度归母净利润,当期第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,本期第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,本报告期第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,报告期第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,报告期内第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,本年度第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,本期金额第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,本期发生额第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,2023年第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,2023年全年第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,2023年金额第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,1-3月归属于母公司所有者的净利润 +当期第一季度归母净利润,第一季度(1-3月)归属于母公司所有者的净利润 +当期第一季度归母净利润,2023年第一季度归属于母公司所有者的净利润 +当期第一季度归母净利润,当期第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,本期第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,本报告期第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,报告期第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,报告期内第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,本年度第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,本期金额第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,本期发生额第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,2023年第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,2023年全年第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,2023年金额第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,第一季度归属于母公司股东的净利润 +当期第一季度归母净利润,1-3月归属于母公司股东的净利润 +当期第一季度归母净利润,第一季度(1-3月)归属于母公司股东的净利润 +当期第一季度归母净利润,2023年第一季度归属于母公司股东的净利润 +当期第二季度归母净利润,当期第二季度归母净利润 +当期第二季度归母净利润,本期第二季度归母净利润 +当期第二季度归母净利润,本报告期第二季度归母净利润 +当期第二季度归母净利润,报告期第二季度归母净利润 +当期第二季度归母净利润,报告期内第二季度归母净利润 +当期第二季度归母净利润,本年度第二季度归母净利润 +当期第二季度归母净利润,本期金额第二季度归母净利润 +当期第二季度归母净利润,本期发生额第二季度归母净利润 +当期第二季度归母净利润,2023年第二季度归母净利润 +当期第二季度归母净利润,2023年全年第二季度归母净利润 +当期第二季度归母净利润,2023年金额第二季度归母净利润 +当期第二季度归母净利润,第二季度归母净利润 +当期第二季度归母净利润,4-6月归母净利润 +当期第二季度归母净利润,第二季度(4-6月)归母净利润 +当期第二季度归母净利润,2023年第二季度归母净利润 +当期第二季度归母净利润,当期第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,本期第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,本报告期第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,报告期第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,报告期内第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,本年度第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,本期金额第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,本期发生额第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,2023年第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,2023年全年第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,2023年金额第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,4-6月归属于上市公司股东的净利润 +当期第二季度归母净利润,第二季度(4-6月)归属于上市公司股东的净利润 +当期第二季度归母净利润,2023年第二季度归属于上市公司股东的净利润 +当期第二季度归母净利润,当期第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,本期第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,本报告期第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,报告期第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,报告期内第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,本年度第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,本期金额第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,本期发生额第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,2023年第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,2023年全年第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,2023年金额第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,4-6月归属于母公司所有者的净利润 +当期第二季度归母净利润,第二季度(4-6月)归属于母公司所有者的净利润 +当期第二季度归母净利润,2023年第二季度归属于母公司所有者的净利润 +当期第二季度归母净利润,当期第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,本期第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,本报告期第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,报告期第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,报告期内第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,本年度第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,本期金额第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,本期发生额第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,2023年第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,2023年全年第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,2023年金额第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,第二季度归属于母公司股东的净利润 +当期第二季度归母净利润,4-6月归属于母公司股东的净利润 +当期第二季度归母净利润,第二季度(4-6月)归属于母公司股东的净利润 +当期第二季度归母净利润,2023年第二季度归属于母公司股东的净利润 +当期第三季度归母净利润,当期第三季度归母净利润 +当期第三季度归母净利润,本期第三季度归母净利润 +当期第三季度归母净利润,本报告期第三季度归母净利润 +当期第三季度归母净利润,报告期第三季度归母净利润 +当期第三季度归母净利润,报告期内第三季度归母净利润 +当期第三季度归母净利润,本年度第三季度归母净利润 +当期第三季度归母净利润,本期金额第三季度归母净利润 +当期第三季度归母净利润,本期发生额第三季度归母净利润 +当期第三季度归母净利润,2023年第三季度归母净利润 +当期第三季度归母净利润,2023年全年第三季度归母净利润 +当期第三季度归母净利润,2023年金额第三季度归母净利润 +当期第三季度归母净利润,第三季度归母净利润 +当期第三季度归母净利润,7-9月归母净利润 +当期第三季度归母净利润,第三季度(7-9月)归母净利润 +当期第三季度归母净利润,2023年第三季度归母净利润 +当期第三季度归母净利润,当期第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,本期第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,本报告期第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,报告期第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,报告期内第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,本年度第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,本期金额第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,本期发生额第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,2023年第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,2023年全年第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,2023年金额第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,7-9月归属于上市公司股东的净利润 +当期第三季度归母净利润,第三季度(7-9月)归属于上市公司股东的净利润 +当期第三季度归母净利润,2023年第三季度归属于上市公司股东的净利润 +当期第三季度归母净利润,当期第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,本期第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,本报告期第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,报告期第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,报告期内第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,本年度第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,本期金额第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,本期发生额第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,2023年第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,2023年全年第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,2023年金额第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,7-9月归属于母公司所有者的净利润 +当期第三季度归母净利润,第三季度(7-9月)归属于母公司所有者的净利润 +当期第三季度归母净利润,2023年第三季度归属于母公司所有者的净利润 +当期第三季度归母净利润,当期第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,本期第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,本报告期第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,报告期第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,报告期内第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,本年度第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,本期金额第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,本期发生额第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,2023年第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,2023年全年第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,2023年金额第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,第三季度归属于母公司股东的净利润 +当期第三季度归母净利润,7-9月归属于母公司股东的净利润 +当期第三季度归母净利润,第三季度(7-9月)归属于母公司股东的净利润 +当期第三季度归母净利润,2023年第三季度归属于母公司股东的净利润 +当期第四季度归母净利润,当期第四季度归母净利润 +当期第四季度归母净利润,本期第四季度归母净利润 +当期第四季度归母净利润,本报告期第四季度归母净利润 +当期第四季度归母净利润,报告期第四季度归母净利润 +当期第四季度归母净利润,报告期内第四季度归母净利润 +当期第四季度归母净利润,本年度第四季度归母净利润 +当期第四季度归母净利润,本期金额第四季度归母净利润 +当期第四季度归母净利润,本期发生额第四季度归母净利润 +当期第四季度归母净利润,2023年第四季度归母净利润 +当期第四季度归母净利润,2023年全年第四季度归母净利润 +当期第四季度归母净利润,2023年金额第四季度归母净利润 +当期第四季度归母净利润,第四季度归母净利润 +当期第四季度归母净利润,10-12月归母净利润 +当期第四季度归母净利润,第四季度(10-12月)归母净利润 +当期第四季度归母净利润,2023年第四季度归母净利润 +当期第四季度归母净利润,当期第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,本期第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,本报告期第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,报告期第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,报告期内第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,本年度第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,本期金额第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,本期发生额第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,2023年第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,2023年全年第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,2023年金额第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,10-12月归属于上市公司股东的净利润 +当期第四季度归母净利润,第四季度(10-12月)归属于上市公司股东的净利润 +当期第四季度归母净利润,2023年第四季度归属于上市公司股东的净利润 +当期第四季度归母净利润,当期第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,本期第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,本报告期第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,报告期第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,报告期内第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,本年度第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,本期金额第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,本期发生额第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,2023年第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,2023年全年第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,2023年金额第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,10-12月归属于母公司所有者的净利润 +当期第四季度归母净利润,第四季度(10-12月)归属于母公司所有者的净利润 +当期第四季度归母净利润,2023年第四季度归属于母公司所有者的净利润 +当期第四季度归母净利润,当期第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,本期第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,本报告期第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,报告期第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,报告期内第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,本年度第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,本期金额第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,本期发生额第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,2023年第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,2023年全年第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,2023年金额第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,第四季度归属于母公司股东的净利润 +当期第四季度归母净利润,10-12月归属于母公司股东的净利润 +当期第四季度归母净利润,第四季度(10-12月)归属于母公司股东的净利润 +当期第四季度归母净利润,2023年第四季度归属于母公司股东的净利润 +归母净利润同比变动,归母净利润同比变动 +归母净利润同比变动,归母净利润同比增减 +归母净利润同比变动,归母净利润同比上升 +归母净利润同比变动,归母净利润同比下降 +归母净利润同比变动,归母净利润变化幅度 +归母净利润同比变动,归母净利润变动比例 +归母净利润同比变动,归母净利润本期比上年同期增减 +归母净利润同比变动,归母净利润本年比上年增减 +归母净利润同比变动,归母净利润本期期末金额较上期期末变动比例 +归母净利润同比变动,归属于上市公司股东的净利润同比变动 +归母净利润同比变动,归属于上市公司股东的净利润同比增减 +归母净利润同比变动,归属于上市公司股东的净利润同比上升 +归母净利润同比变动,归属于上市公司股东的净利润同比下降 +归母净利润同比变动,归属于上市公司股东的净利润变化幅度 +归母净利润同比变动,归属于上市公司股东的净利润变动比例 +归母净利润同比变动,归属于上市公司股东的净利润本期比上年同期增减 +归母净利润同比变动,归属于上市公司股东的净利润本年比上年增减 +归母净利润同比变动,归属于上市公司股东的净利润本期期末金额较上期期末变动比例 +归母净利润同比变动,归属于母公司所有者的净利润同比变动 +归母净利润同比变动,归属于母公司所有者的净利润同比增减 +归母净利润同比变动,归属于母公司所有者的净利润同比上升 +归母净利润同比变动,归属于母公司所有者的净利润同比下降 +归母净利润同比变动,归属于母公司所有者的净利润变化幅度 +归母净利润同比变动,归属于母公司所有者的净利润变动比例 +归母净利润同比变动,归属于母公司所有者的净利润本期比上年同期增减 +归母净利润同比变动,归属于母公司所有者的净利润本年比上年增减 +归母净利润同比变动,归属于母公司所有者的净利润本期期末金额较上期期末变动比例 +归母净利润同比变动,归属于母公司股东的净利润同比变动 +归母净利润同比变动,归属于母公司股东的净利润同比增减 +归母净利润同比变动,归属于母公司股东的净利润同比上升 +归母净利润同比变动,归属于母公司股东的净利润同比下降 +归母净利润同比变动,归属于母公司股东的净利润变化幅度 +归母净利润同比变动,归属于母公司股东的净利润变动比例 +归母净利润同比变动,归属于母公司股东的净利润本期比上年同期增减 +归母净利润同比变动,归属于母公司股东的净利润本年比上年增减 +归母净利润同比变动,归属于母公司股东的净利润本期期末金额较上期期末变动比例 +当期扣非净利润,当期扣非净利润 +当期扣非净利润,本期扣非净利润 +当期扣非净利润,本报告期扣非净利润 +当期扣非净利润,报告期扣非净利润 +当期扣非净利润,报告期内扣非净利润 +当期扣非净利润,本年度扣非净利润 +当期扣非净利润,本期金额扣非净利润 +当期扣非净利润,本期发生额扣非净利润 +当期扣非净利润,2023年扣非净利润 +当期扣非净利润,2023年全年扣非净利润 +当期扣非净利润,2023年金额扣非净利润 +当期扣非净利润,当期归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本期归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本报告期归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,报告期归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,报告期内归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本年度归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本期金额归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本期发生额归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,2023年归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,2023年全年归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,2023年金额归属于上市公司股东的扣除非经常性损益的净利润 +当期扣非净利润,当期归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,本期归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,本报告期归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,报告期归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,报告期内归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,本年度归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,本期金额归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,本期发生额归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,2023年归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,2023年全年归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,2023年金额归属于母公司所有者的扣除非经常性损益的净利润 +当期扣非净利润,当期归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本期归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本报告期归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,报告期归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,报告期内归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本年度归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本期金额归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,本期发生额归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,2023年归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,2023年全年归属于母公司股东的扣除非经常性损益的净利润 +当期扣非净利润,2023年金额归属于母公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上年同期扣非净利润 +上年同期扣非净利润,上期扣非净利润 +上年同期扣非净利润,上期金额扣非净利润 +上年同期扣非净利润,上年扣非净利润 +上年同期扣非净利润,上年度扣非净利润 +上年同期扣非净利润,2022年扣非净利润 +上年同期扣非净利润,2022年全年扣非净利润 +上年同期扣非净利润,2022年金额扣非净利润 +上年同期扣非净利润,上年同期归属于上市公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上期归属于上市公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上期金额归属于上市公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上年归属于上市公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上年度归属于上市公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年归属于上市公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年全年归属于上市公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年金额归属于上市公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上年同期归属于母公司所有者的扣除非经常性损益的净利润 +上年同期扣非净利润,上期归属于母公司所有者的扣除非经常性损益的净利润 +上年同期扣非净利润,上期金额归属于母公司所有者的扣除非经常性损益的净利润 +上年同期扣非净利润,上年归属于母公司所有者的扣除非经常性损益的净利润 +上年同期扣非净利润,上年度归属于母公司所有者的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年归属于母公司所有者的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年全年归属于母公司所有者的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年金额归属于母公司所有者的扣除非经常性损益的净利润 +上年同期扣非净利润,上年同期归属于母公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上期归属于母公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上期金额归属于母公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上年归属于母公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,上年度归属于母公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年归属于母公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年全年归属于母公司股东的扣除非经常性损益的净利润 +上年同期扣非净利润,2022年金额归属于母公司股东的扣除非经常性损益的净利润 +前年同期扣非净利润,前年同期扣非净利润 +前年同期扣非净利润,2021年扣非净利润 +前年同期扣非净利润,2021年全年扣非净利润 +前年同期扣非净利润,2021年金额扣非净利润 +前年同期扣非净利润,前年同期归属于上市公司股东的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年归属于上市公司股东的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年全年归属于上市公司股东的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年金额归属于上市公司股东的扣除非经常性损益的净利润 +前年同期扣非净利润,前年同期归属于母公司所有者的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年归属于母公司所有者的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年全年归属于母公司所有者的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年金额归属于母公司所有者的扣除非经常性损益的净利润 +前年同期扣非净利润,前年同期归属于母公司股东的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年归属于母公司股东的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年全年归属于母公司股东的扣除非经常性损益的净利润 +前年同期扣非净利润,2021年金额归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,当期第一季度扣非净利润 +当期第一季度扣非净利润,本期第一季度扣非净利润 +当期第一季度扣非净利润,本报告期第一季度扣非净利润 +当期第一季度扣非净利润,报告期第一季度扣非净利润 +当期第一季度扣非净利润,报告期内第一季度扣非净利润 +当期第一季度扣非净利润,本年度第一季度扣非净利润 +当期第一季度扣非净利润,本期金额第一季度扣非净利润 +当期第一季度扣非净利润,本期发生额第一季度扣非净利润 +当期第一季度扣非净利润,2023年第一季度扣非净利润 +当期第一季度扣非净利润,2023年全年第一季度扣非净利润 +当期第一季度扣非净利润,2023年金额第一季度扣非净利润 +当期第一季度扣非净利润,第一季度扣非净利润 +当期第一季度扣非净利润,1-3月扣非净利润 +当期第一季度扣非净利润,第一季度(1-3月)扣非净利润 +当期第一季度扣非净利润,2023年第一季度扣非净利润 +当期第一季度扣非净利润,当期第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本报告期第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,报告期第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,报告期内第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本年度第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期金额第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期发生额第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年全年第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年金额第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,1-3月归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,第一季度(1-3月)归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年第一季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,当期第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本报告期第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,报告期第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,报告期内第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本年度第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期金额第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期发生额第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年全年第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年金额第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,1-3月归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,第一季度(1-3月)归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年第一季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第一季度扣非净利润,当期第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本报告期第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,报告期第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,报告期内第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本年度第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期金额第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,本期发生额第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年全年第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年金额第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,1-3月归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,第一季度(1-3月)归属于母公司股东的扣除非经常性损益的净利润 +当期第一季度扣非净利润,2023年第一季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,当期第二季度扣非净利润 +当期第二季度扣非净利润,本期第二季度扣非净利润 +当期第二季度扣非净利润,本报告期第二季度扣非净利润 +当期第二季度扣非净利润,报告期第二季度扣非净利润 +当期第二季度扣非净利润,报告期内第二季度扣非净利润 +当期第二季度扣非净利润,本年度第二季度扣非净利润 +当期第二季度扣非净利润,本期金额第二季度扣非净利润 +当期第二季度扣非净利润,本期发生额第二季度扣非净利润 +当期第二季度扣非净利润,2023年第二季度扣非净利润 +当期第二季度扣非净利润,2023年全年第二季度扣非净利润 +当期第二季度扣非净利润,2023年金额第二季度扣非净利润 +当期第二季度扣非净利润,第二季度扣非净利润 +当期第二季度扣非净利润,4-6月扣非净利润 +当期第二季度扣非净利润,第二季度(4-6月)扣非净利润 +当期第二季度扣非净利润,2023年第二季度扣非净利润 +当期第二季度扣非净利润,当期第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本报告期第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,报告期第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,报告期内第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本年度第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期金额第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期发生额第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年全年第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年金额第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,4-6月归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,第二季度(4-6月)归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年第二季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,当期第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本报告期第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,报告期第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,报告期内第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本年度第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期金额第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期发生额第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年全年第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年金额第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,4-6月归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,第二季度(4-6月)归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年第二季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第二季度扣非净利润,当期第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本报告期第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,报告期第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,报告期内第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本年度第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期金额第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,本期发生额第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年全年第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年金额第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,4-6月归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,第二季度(4-6月)归属于母公司股东的扣除非经常性损益的净利润 +当期第二季度扣非净利润,2023年第二季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,当期第三季度扣非净利润 +当期第三季度扣非净利润,本期第三季度扣非净利润 +当期第三季度扣非净利润,本报告期第三季度扣非净利润 +当期第三季度扣非净利润,报告期第三季度扣非净利润 +当期第三季度扣非净利润,报告期内第三季度扣非净利润 +当期第三季度扣非净利润,本年度第三季度扣非净利润 +当期第三季度扣非净利润,本期金额第三季度扣非净利润 +当期第三季度扣非净利润,本期发生额第三季度扣非净利润 +当期第三季度扣非净利润,2023年第三季度扣非净利润 +当期第三季度扣非净利润,2023年全年第三季度扣非净利润 +当期第三季度扣非净利润,2023年金额第三季度扣非净利润 +当期第三季度扣非净利润,第三季度扣非净利润 +当期第三季度扣非净利润,7-9月扣非净利润 +当期第三季度扣非净利润,第三季度(7-9月)扣非净利润 +当期第三季度扣非净利润,2023年第三季度扣非净利润 +当期第三季度扣非净利润,当期第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本报告期第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,报告期第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,报告期内第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本年度第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期金额第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期发生额第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年全年第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年金额第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,7-9月归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,第三季度(7-9月)归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年第三季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,当期第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本报告期第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,报告期第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,报告期内第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本年度第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期金额第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期发生额第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年全年第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年金额第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,7-9月归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,第三季度(7-9月)归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年第三季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第三季度扣非净利润,当期第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本报告期第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,报告期第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,报告期内第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本年度第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期金额第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,本期发生额第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年全年第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年金额第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,7-9月归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,第三季度(7-9月)归属于母公司股东的扣除非经常性损益的净利润 +当期第三季度扣非净利润,2023年第三季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,当期第四季度扣非净利润 +当期第四季度扣非净利润,本期第四季度扣非净利润 +当期第四季度扣非净利润,本报告期第四季度扣非净利润 +当期第四季度扣非净利润,报告期第四季度扣非净利润 +当期第四季度扣非净利润,报告期内第四季度扣非净利润 +当期第四季度扣非净利润,本年度第四季度扣非净利润 +当期第四季度扣非净利润,本期金额第四季度扣非净利润 +当期第四季度扣非净利润,本期发生额第四季度扣非净利润 +当期第四季度扣非净利润,2023年第四季度扣非净利润 +当期第四季度扣非净利润,2023年全年第四季度扣非净利润 +当期第四季度扣非净利润,2023年金额第四季度扣非净利润 +当期第四季度扣非净利润,第四季度扣非净利润 +当期第四季度扣非净利润,10-12月扣非净利润 +当期第四季度扣非净利润,第四季度(10-12月)扣非净利润 +当期第四季度扣非净利润,2023年第四季度扣非净利润 +当期第四季度扣非净利润,当期第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本报告期第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,报告期第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,报告期内第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本年度第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期金额第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期发生额第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年全年第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年金额第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,10-12月归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,第四季度(10-12月)归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年第四季度归属于上市公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,当期第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本报告期第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,报告期第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,报告期内第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本年度第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期金额第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期发生额第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年全年第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年金额第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,10-12月归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,第四季度(10-12月)归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年第四季度归属于母公司所有者的扣除非经常性损益的净利润 +当期第四季度扣非净利润,当期第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本报告期第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,报告期第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,报告期内第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本年度第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期金额第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,本期发生额第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年全年第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年金额第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,第四季度归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,10-12月归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,第四季度(10-12月)归属于母公司股东的扣除非经常性损益的净利润 +当期第四季度扣非净利润,2023年第四季度归属于母公司股东的扣除非经常性损益的净利润 +扣非净利润同比变动,扣非净利润同比变动 +扣非净利润同比变动,扣非净利润同比增减 +扣非净利润同比变动,扣非净利润同比上升 +扣非净利润同比变动,扣非净利润同比下降 +扣非净利润同比变动,扣非净利润变化幅度 +扣非净利润同比变动,扣非净利润变动比例 +扣非净利润同比变动,扣非净利润本期比上年同期增减 +扣非净利润同比变动,扣非净利润本年比上年增减 +扣非净利润同比变动,扣非净利润本期期末金额较上期期末变动比例 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润同比变动 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润同比增减 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润同比上升 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润同比下降 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润变化幅度 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润变动比例 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润本期比上年同期增减 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润本年比上年增减 +扣非净利润同比变动,归属于上市公司股东的扣除非经常性损益的净利润本期期末金额较上期期末变动比例 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润同比变动 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润同比增减 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润同比上升 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润同比下降 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润变化幅度 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润变动比例 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润本期比上年同期增减 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润本年比上年增减 +扣非净利润同比变动,归属于母公司所有者的扣除非经常性损益的净利润本期期末金额较上期期末变动比例 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润同比变动 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润同比增减 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润同比上升 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润同比下降 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润变化幅度 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润变动比例 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润本期比上年同期增减 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润本年比上年增减 +扣非净利润同比变动,归属于母公司股东的扣除非经常性损益的净利润本期期末金额较上期期末变动比例 +当期经营活动现金流净额,当期经营活动产生的现金流量净额 +当期经营活动现金流净额,本期经营活动产生的现金流量净额 +当期经营活动现金流净额,本报告期经营活动产生的现金流量净额 +当期经营活动现金流净额,报告期经营活动产生的现金流量净额 +当期经营活动现金流净额,报告期内经营活动产生的现金流量净额 +当期经营活动现金流净额,本年度经营活动产生的现金流量净额 +当期经营活动现金流净额,本期金额经营活动产生的现金流量净额 +当期经营活动现金流净额,本期发生额经营活动产生的现金流量净额 +当期经营活动现金流净额,2023年经营活动产生的现金流量净额 +当期经营活动现金流净额,2023年全年经营活动产生的现金流量净额 +当期经营活动现金流净额,2023年金额经营活动产生的现金流量净额 +当期经营活动现金流净额,当期经营活动现金净流量 +当期经营活动现金流净额,本期经营活动现金净流量 +当期经营活动现金流净额,本报告期经营活动现金净流量 +当期经营活动现金流净额,报告期经营活动现金净流量 +当期经营活动现金流净额,报告期内经营活动现金净流量 +当期经营活动现金流净额,本年度经营活动现金净流量 +当期经营活动现金流净额,本期金额经营活动现金净流量 +当期经营活动现金流净额,本期发生额经营活动现金净流量 +当期经营活动现金流净额,2023年经营活动现金净流量 +当期经营活动现金流净额,2023年全年经营活动现金净流量 +当期经营活动现金流净额,2023年金额经营活动现金净流量 +当期经营活动现金流净额,当期经营性活动现金流 +当期经营活动现金流净额,本期经营性活动现金流 +当期经营活动现金流净额,本报告期经营性活动现金流 +当期经营活动现金流净额,报告期经营性活动现金流 +当期经营活动现金流净额,报告期内经营性活动现金流 +当期经营活动现金流净额,本年度经营性活动现金流 +当期经营活动现金流净额,本期金额经营性活动现金流 +当期经营活动现金流净额,本期发生额经营性活动现金流 +当期经营活动现金流净额,2023年经营性活动现金流 +当期经营活动现金流净额,2023年全年经营性活动现金流 +当期经营活动现金流净额,2023年金额经营性活动现金流 +上年同期经营活动现金流净额,上年同期经营活动产生的现金流量净额 +上年同期经营活动现金流净额,上期经营活动产生的现金流量净额 +上年同期经营活动现金流净额,上期金额经营活动产生的现金流量净额 +上年同期经营活动现金流净额,上年经营活动产生的现金流量净额 +上年同期经营活动现金流净额,上年度经营活动产生的现金流量净额 +上年同期经营活动现金流净额,2022年经营活动产生的现金流量净额 +上年同期经营活动现金流净额,2022年全年经营活动产生的现金流量净额 +上年同期经营活动现金流净额,2022年金额经营活动产生的现金流量净额 +上年同期经营活动现金流净额,上年同期经营活动现金净流量 +上年同期经营活动现金流净额,上期经营活动现金净流量 +上年同期经营活动现金流净额,上期金额经营活动现金净流量 +上年同期经营活动现金流净额,上年经营活动现金净流量 +上年同期经营活动现金流净额,上年度经营活动现金净流量 +上年同期经营活动现金流净额,2022年经营活动现金净流量 +上年同期经营活动现金流净额,2022年全年经营活动现金净流量 +上年同期经营活动现金流净额,2022年金额经营活动现金净流量 +上年同期经营活动现金流净额,上年同期经营性活动现金流 +上年同期经营活动现金流净额,上期经营性活动现金流 +上年同期经营活动现金流净额,上期金额经营性活动现金流 +上年同期经营活动现金流净额,上年经营性活动现金流 +上年同期经营活动现金流净额,上年度经营性活动现金流 +上年同期经营活动现金流净额,2022年经营性活动现金流 +上年同期经营活动现金流净额,2022年全年经营性活动现金流 +上年同期经营活动现金流净额,2022年金额经营性活动现金流 +前年同期经营活动现金流净额,前年同期经营活动产生的现金流量净额 +前年同期经营活动现金流净额,2021年经营活动产生的现金流量净额 +前年同期经营活动现金流净额,2021年全年经营活动产生的现金流量净额 +前年同期经营活动现金流净额,2021年金额经营活动产生的现金流量净额 +前年同期经营活动现金流净额,前年同期经营活动现金净流量 +前年同期经营活动现金流净额,2021年经营活动现金净流量 +前年同期经营活动现金流净额,2021年全年经营活动现金净流量 +前年同期经营活动现金流净额,2021年金额经营活动现金净流量 +前年同期经营活动现金流净额,前年同期经营性活动现金流 +前年同期经营活动现金流净额,2021年经营性活动现金流 +前年同期经营活动现金流净额,2021年全年经营性活动现金流 +前年同期经营活动现金流净额,2021年金额经营性活动现金流 +当期第一季度经营活动现金流净额,当期第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,本期第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,本报告期第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,报告期第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,报告期内第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,本年度第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,本期金额第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,本期发生额第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,2023年第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,2023年全年第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,2023年金额第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,1-3月经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,第一季度(1-3月)经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,2023年第一季度经营活动产生的现金流量净额 +当期第一季度经营活动现金流净额,当期第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,本期第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,本报告期第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,报告期第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,报告期内第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,本年度第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,本期金额第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,本期发生额第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,2023年第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,2023年全年第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,2023年金额第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,1-3月经营活动现金净流量 +当期第一季度经营活动现金流净额,第一季度(1-3月)经营活动现金净流量 +当期第一季度经营活动现金流净额,2023年第一季度经营活动现金净流量 +当期第一季度经营活动现金流净额,当期第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,本期第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,本报告期第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,报告期第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,报告期内第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,本年度第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,本期金额第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,本期发生额第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,2023年第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,2023年全年第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,2023年金额第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,第一季度经营性活动现金流 +当期第一季度经营活动现金流净额,1-3月经营性活动现金流 +当期第一季度经营活动现金流净额,第一季度(1-3月)经营性活动现金流 +当期第一季度经营活动现金流净额,2023年第一季度经营性活动现金流 +当期第二季度经营活动现金流净额,当期第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,本期第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,本报告期第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,报告期第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,报告期内第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,本年度第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,本期金额第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,本期发生额第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,2023年第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,2023年全年第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,2023年金额第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,4-6月经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,第二季度(4-6月)经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,2023年第二季度经营活动产生的现金流量净额 +当期第二季度经营活动现金流净额,当期第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,本期第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,本报告期第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,报告期第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,报告期内第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,本年度第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,本期金额第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,本期发生额第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,2023年第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,2023年全年第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,2023年金额第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,4-6月经营活动现金净流量 +当期第二季度经营活动现金流净额,第二季度(4-6月)经营活动现金净流量 +当期第二季度经营活动现金流净额,2023年第二季度经营活动现金净流量 +当期第二季度经营活动现金流净额,当期第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,本期第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,本报告期第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,报告期第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,报告期内第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,本年度第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,本期金额第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,本期发生额第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,2023年第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,2023年全年第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,2023年金额第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,第二季度经营性活动现金流 +当期第二季度经营活动现金流净额,4-6月经营性活动现金流 +当期第二季度经营活动现金流净额,第二季度(4-6月)经营性活动现金流 +当期第二季度经营活动现金流净额,2023年第二季度经营性活动现金流 +当期第三季度经营活动现金流净额,当期第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,本期第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,本报告期第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,报告期第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,报告期内第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,本年度第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,本期金额第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,本期发生额第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,2023年第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,2023年全年第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,2023年金额第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,7-9月经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,第三季度(7-9月)经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,2023年第三季度经营活动产生的现金流量净额 +当期第三季度经营活动现金流净额,当期第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,本期第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,本报告期第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,报告期第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,报告期内第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,本年度第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,本期金额第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,本期发生额第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,2023年第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,2023年全年第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,2023年金额第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,7-9月经营活动现金净流量 +当期第三季度经营活动现金流净额,第三季度(7-9月)经营活动现金净流量 +当期第三季度经营活动现金流净额,2023年第三季度经营活动现金净流量 +当期第三季度经营活动现金流净额,当期第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,本期第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,本报告期第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,报告期第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,报告期内第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,本年度第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,本期金额第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,本期发生额第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,2023年第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,2023年全年第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,2023年金额第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,第三季度经营性活动现金流 +当期第三季度经营活动现金流净额,7-9月经营性活动现金流 +当期第三季度经营活动现金流净额,第三季度(7-9月)经营性活动现金流 +当期第三季度经营活动现金流净额,2023年第三季度经营性活动现金流 +当期第四季度经营活动现金流净额,当期第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,本期第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,本报告期第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,报告期第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,报告期内第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,本年度第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,本期金额第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,本期发生额第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,2023年第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,2023年全年第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,2023年金额第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,10-12月经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,第四季度(10-12月)经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,2023年第四季度经营活动产生的现金流量净额 +当期第四季度经营活动现金流净额,当期第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,本期第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,本报告期第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,报告期第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,报告期内第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,本年度第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,本期金额第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,本期发生额第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,2023年第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,2023年全年第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,2023年金额第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,10-12月经营活动现金净流量 +当期第四季度经营活动现金流净额,第四季度(10-12月)经营活动现金净流量 +当期第四季度经营活动现金流净额,2023年第四季度经营活动现金净流量 +当期第四季度经营活动现金流净额,当期第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,本期第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,本报告期第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,报告期第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,报告期内第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,本年度第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,本期金额第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,本期发生额第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,2023年第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,2023年全年第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,2023年金额第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,第四季度经营性活动现金流 +当期第四季度经营活动现金流净额,10-12月经营性活动现金流 +当期第四季度经营活动现金流净额,第四季度(10-12月)经营性活动现金流 +当期第四季度经营活动现金流净额,2023年第四季度经营性活动现金流 +经营活动现金流净额同比变动,经营活动产生的现金流量净额同比变动 +经营活动现金流净额同比变动,经营活动产生的现金流量净额同比增减 +经营活动现金流净额同比变动,经营活动产生的现金流量净额同比上升 +经营活动现金流净额同比变动,经营活动产生的现金流量净额同比下降 +经营活动现金流净额同比变动,经营活动产生的现金流量净额变化幅度 +经营活动现金流净额同比变动,经营活动产生的现金流量净额变动比例 +经营活动现金流净额同比变动,经营活动产生的现金流量净额本期比上年同期增减 +经营活动现金流净额同比变动,经营活动产生的现金流量净额本年比上年增减 +经营活动现金流净额同比变动,经营活动产生的现金流量净额本期期末金额较上期期末变动比例 +经营活动现金流净额同比变动,经营活动现金净流量同比变动 +经营活动现金流净额同比变动,经营活动现金净流量同比增减 +经营活动现金流净额同比变动,经营活动现金净流量同比上升 +经营活动现金流净额同比变动,经营活动现金净流量同比下降 +经营活动现金流净额同比变动,经营活动现金净流量变化幅度 +经营活动现金流净额同比变动,经营活动现金净流量变动比例 +经营活动现金流净额同比变动,经营活动现金净流量本期比上年同期增减 +经营活动现金流净额同比变动,经营活动现金净流量本年比上年增减 +经营活动现金流净额同比变动,经营活动现金净流量本期期末金额较上期期末变动比例 +经营活动现金流净额同比变动,经营性活动现金流同比变动 +经营活动现金流净额同比变动,经营性活动现金流同比增减 +经营活动现金流净额同比变动,经营性活动现金流同比上升 +经营活动现金流净额同比变动,经营性活动现金流同比下降 +经营活动现金流净额同比变动,经营性活动现金流变化幅度 +经营活动现金流净额同比变动,经营性活动现金流变动比例 +经营活动现金流净额同比变动,经营性活动现金流本期比上年同期增减 +经营活动现金流净额同比变动,经营性活动现金流本年比上年增减 +经营活动现金流净额同比变动,经营性活动现金流本期期末金额较上期期末变动比例 +当期筹资活动现金流净额,当期筹资活动产生的现金流量净额 +当期筹资活动现金流净额,本期筹资活动产生的现金流量净额 +当期筹资活动现金流净额,本报告期筹资活动产生的现金流量净额 +当期筹资活动现金流净额,报告期筹资活动产生的现金流量净额 +当期筹资活动现金流净额,报告期内筹资活动产生的现金流量净额 +当期筹资活动现金流净额,本年度筹资活动产生的现金流量净额 +当期筹资活动现金流净额,本期金额筹资活动产生的现金流量净额 +当期筹资活动现金流净额,本期发生额筹资活动产生的现金流量净额 +当期筹资活动现金流净额,2023年筹资活动产生的现金流量净额 +当期筹资活动现金流净额,2023年全年筹资活动产生的现金流量净额 +当期筹资活动现金流净额,2023年金额筹资活动产生的现金流量净额 +当期筹资活动现金流净额,当期筹资活动现金净流量 +当期筹资活动现金流净额,本期筹资活动现金净流量 +当期筹资活动现金流净额,本报告期筹资活动现金净流量 +当期筹资活动现金流净额,报告期筹资活动现金净流量 +当期筹资活动现金流净额,报告期内筹资活动现金净流量 +当期筹资活动现金流净额,本年度筹资活动现金净流量 +当期筹资活动现金流净额,本期金额筹资活动现金净流量 +当期筹资活动现金流净额,本期发生额筹资活动现金净流量 +当期筹资活动现金流净额,2023年筹资活动现金净流量 +当期筹资活动现金流净额,2023年全年筹资活动现金净流量 +当期筹资活动现金流净额,2023年金额筹资活动现金净流量 +当期筹资活动现金流净额,当期筹资性活动现金流 +当期筹资活动现金流净额,本期筹资性活动现金流 +当期筹资活动现金流净额,本报告期筹资性活动现金流 +当期筹资活动现金流净额,报告期筹资性活动现金流 +当期筹资活动现金流净额,报告期内筹资性活动现金流 +当期筹资活动现金流净额,本年度筹资性活动现金流 +当期筹资活动现金流净额,本期金额筹资性活动现金流 +当期筹资活动现金流净额,本期发生额筹资性活动现金流 +当期筹资活动现金流净额,2023年筹资性活动现金流 +当期筹资活动现金流净额,2023年全年筹资性活动现金流 +当期筹资活动现金流净额,2023年金额筹资性活动现金流 +上年同期筹资活动现金流净额,上年同期筹资活动产生的现金流量净额 +上年同期筹资活动现金流净额,上期筹资活动产生的现金流量净额 +上年同期筹资活动现金流净额,上期金额筹资活动产生的现金流量净额 +上年同期筹资活动现金流净额,上年筹资活动产生的现金流量净额 +上年同期筹资活动现金流净额,上年度筹资活动产生的现金流量净额 +上年同期筹资活动现金流净额,2022年筹资活动产生的现金流量净额 +上年同期筹资活动现金流净额,2022年全年筹资活动产生的现金流量净额 +上年同期筹资活动现金流净额,2022年金额筹资活动产生的现金流量净额 +上年同期筹资活动现金流净额,上年同期筹资活动现金净流量 +上年同期筹资活动现金流净额,上期筹资活动现金净流量 +上年同期筹资活动现金流净额,上期金额筹资活动现金净流量 +上年同期筹资活动现金流净额,上年筹资活动现金净流量 +上年同期筹资活动现金流净额,上年度筹资活动现金净流量 +上年同期筹资活动现金流净额,2022年筹资活动现金净流量 +上年同期筹资活动现金流净额,2022年全年筹资活动现金净流量 +上年同期筹资活动现金流净额,2022年金额筹资活动现金净流量 +上年同期筹资活动现金流净额,上年同期筹资性活动现金流 +上年同期筹资活动现金流净额,上期筹资性活动现金流 +上年同期筹资活动现金流净额,上期金额筹资性活动现金流 +上年同期筹资活动现金流净额,上年筹资性活动现金流 +上年同期筹资活动现金流净额,上年度筹资性活动现金流 +上年同期筹资活动现金流净额,2022年筹资性活动现金流 +上年同期筹资活动现金流净额,2022年全年筹资性活动现金流 +上年同期筹资活动现金流净额,2022年金额筹资性活动现金流 +前年同期筹资活动现金流净额,前年同期筹资活动产生的现金流量净额 +前年同期筹资活动现金流净额,2021年筹资活动产生的现金流量净额 +前年同期筹资活动现金流净额,2021年全年筹资活动产生的现金流量净额 +前年同期筹资活动现金流净额,2021年金额筹资活动产生的现金流量净额 +前年同期筹资活动现金流净额,前年同期筹资活动现金净流量 +前年同期筹资活动现金流净额,2021年筹资活动现金净流量 +前年同期筹资活动现金流净额,2021年全年筹资活动现金净流量 +前年同期筹资活动现金流净额,2021年金额筹资活动现金净流量 +前年同期筹资活动现金流净额,前年同期筹资性活动现金流 +前年同期筹资活动现金流净额,2021年筹资性活动现金流 +前年同期筹资活动现金流净额,2021年全年筹资性活动现金流 +前年同期筹资活动现金流净额,2021年金额筹资性活动现金流 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额同比变动 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额同比增减 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额同比上升 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额同比下降 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额变化幅度 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额变动比例 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额本期比上年同期增减 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额本年比上年增减 +筹资活动现金流净额同比变动,筹资活动产生的现金流量净额本期期末金额较上期期末变动比例 +筹资活动现金流净额同比变动,筹资活动现金净流量同比变动 +筹资活动现金流净额同比变动,筹资活动现金净流量同比增减 +筹资活动现金流净额同比变动,筹资活动现金净流量同比上升 +筹资活动现金流净额同比变动,筹资活动现金净流量同比下降 +筹资活动现金流净额同比变动,筹资活动现金净流量变化幅度 +筹资活动现金流净额同比变动,筹资活动现金净流量变动比例 +筹资活动现金流净额同比变动,筹资活动现金净流量本期比上年同期增减 +筹资活动现金流净额同比变动,筹资活动现金净流量本年比上年增减 +筹资活动现金流净额同比变动,筹资活动现金净流量本期期末金额较上期期末变动比例 +筹资活动现金流净额同比变动,筹资性活动现金流同比变动 +筹资活动现金流净额同比变动,筹资性活动现金流同比增减 +筹资活动现金流净额同比变动,筹资性活动现金流同比上升 +筹资活动现金流净额同比变动,筹资性活动现金流同比下降 +筹资活动现金流净额同比变动,筹资性活动现金流变化幅度 +筹资活动现金流净额同比变动,筹资性活动现金流变动比例 +筹资活动现金流净额同比变动,筹资性活动现金流本期比上年同期增减 +筹资活动现金流净额同比变动,筹资性活动现金流本年比上年增减 +筹资活动现金流净额同比变动,筹资性活动现金流本期期末金额较上期期末变动比例 +当期投资活动现金流净额,当期投资活动产生的现金流量净额 +当期投资活动现金流净额,本期投资活动产生的现金流量净额 +当期投资活动现金流净额,本报告期投资活动产生的现金流量净额 +当期投资活动现金流净额,报告期投资活动产生的现金流量净额 +当期投资活动现金流净额,报告期内投资活动产生的现金流量净额 +当期投资活动现金流净额,本年度投资活动产生的现金流量净额 +当期投资活动现金流净额,本期金额投资活动产生的现金流量净额 +当期投资活动现金流净额,本期发生额投资活动产生的现金流量净额 +当期投资活动现金流净额,2023年投资活动产生的现金流量净额 +当期投资活动现金流净额,2023年全年投资活动产生的现金流量净额 +当期投资活动现金流净额,2023年金额投资活动产生的现金流量净额 +当期投资活动现金流净额,当期投资活动现金净流量 +当期投资活动现金流净额,本期投资活动现金净流量 +当期投资活动现金流净额,本报告期投资活动现金净流量 +当期投资活动现金流净额,报告期投资活动现金净流量 +当期投资活动现金流净额,报告期内投资活动现金净流量 +当期投资活动现金流净额,本年度投资活动现金净流量 +当期投资活动现金流净额,本期金额投资活动现金净流量 +当期投资活动现金流净额,本期发生额投资活动现金净流量 +当期投资活动现金流净额,2023年投资活动现金净流量 +当期投资活动现金流净额,2023年全年投资活动现金净流量 +当期投资活动现金流净额,2023年金额投资活动现金净流量 +当期投资活动现金流净额,当期投资性活动现金流 +当期投资活动现金流净额,本期投资性活动现金流 +当期投资活动现金流净额,本报告期投资性活动现金流 +当期投资活动现金流净额,报告期投资性活动现金流 +当期投资活动现金流净额,报告期内投资性活动现金流 +当期投资活动现金流净额,本年度投资性活动现金流 +当期投资活动现金流净额,本期金额投资性活动现金流 +当期投资活动现金流净额,本期发生额投资性活动现金流 +当期投资活动现金流净额,2023年投资性活动现金流 +当期投资活动现金流净额,2023年全年投资性活动现金流 +当期投资活动现金流净额,2023年金额投资性活动现金流 +上年同期投资活动现金流净额,上年同期投资活动产生的现金流量净额 +上年同期投资活动现金流净额,上期投资活动产生的现金流量净额 +上年同期投资活动现金流净额,上期金额投资活动产生的现金流量净额 +上年同期投资活动现金流净额,上年投资活动产生的现金流量净额 +上年同期投资活动现金流净额,上年度投资活动产生的现金流量净额 +上年同期投资活动现金流净额,2022年投资活动产生的现金流量净额 +上年同期投资活动现金流净额,2022年全年投资活动产生的现金流量净额 +上年同期投资活动现金流净额,2022年金额投资活动产生的现金流量净额 +上年同期投资活动现金流净额,上年同期投资活动现金净流量 +上年同期投资活动现金流净额,上期投资活动现金净流量 +上年同期投资活动现金流净额,上期金额投资活动现金净流量 +上年同期投资活动现金流净额,上年投资活动现金净流量 +上年同期投资活动现金流净额,上年度投资活动现金净流量 +上年同期投资活动现金流净额,2022年投资活动现金净流量 +上年同期投资活动现金流净额,2022年全年投资活动现金净流量 +上年同期投资活动现金流净额,2022年金额投资活动现金净流量 +上年同期投资活动现金流净额,上年同期投资性活动现金流 +上年同期投资活动现金流净额,上期投资性活动现金流 +上年同期投资活动现金流净额,上期金额投资性活动现金流 +上年同期投资活动现金流净额,上年投资性活动现金流 +上年同期投资活动现金流净额,上年度投资性活动现金流 +上年同期投资活动现金流净额,2022年投资性活动现金流 +上年同期投资活动现金流净额,2022年全年投资性活动现金流 +上年同期投资活动现金流净额,2022年金额投资性活动现金流 +前年同期投资活动现金流净额,前年同期投资活动产生的现金流量净额 +前年同期投资活动现金流净额,2021年投资活动产生的现金流量净额 +前年同期投资活动现金流净额,2021年全年投资活动产生的现金流量净额 +前年同期投资活动现金流净额,2021年金额投资活动产生的现金流量净额 +前年同期投资活动现金流净额,前年同期投资活动现金净流量 +前年同期投资活动现金流净额,2021年投资活动现金净流量 +前年同期投资活动现金流净额,2021年全年投资活动现金净流量 +前年同期投资活动现金流净额,2021年金额投资活动现金净流量 +前年同期投资活动现金流净额,前年同期投资性活动现金流 +前年同期投资活动现金流净额,2021年投资性活动现金流 +前年同期投资活动现金流净额,2021年全年投资性活动现金流 +前年同期投资活动现金流净额,2021年金额投资性活动现金流 +投资活动现金流净额同比变动,投资活动产生的现金流量净额同比变动 +投资活动现金流净额同比变动,投资活动产生的现金流量净额同比增减 +投资活动现金流净额同比变动,投资活动产生的现金流量净额同比上升 +投资活动现金流净额同比变动,投资活动产生的现金流量净额同比下降 +投资活动现金流净额同比变动,投资活动产生的现金流量净额变化幅度 +投资活动现金流净额同比变动,投资活动产生的现金流量净额变动比例 +投资活动现金流净额同比变动,投资活动产生的现金流量净额本期比上年同期增减 +投资活动现金流净额同比变动,投资活动产生的现金流量净额本年比上年增减 +投资活动现金流净额同比变动,投资活动产生的现金流量净额本期期末金额较上期期末变动比例 +投资活动现金流净额同比变动,投资活动现金净流量同比变动 +投资活动现金流净额同比变动,投资活动现金净流量同比增减 +投资活动现金流净额同比变动,投资活动现金净流量同比上升 +投资活动现金流净额同比变动,投资活动现金净流量同比下降 +投资活动现金流净额同比变动,投资活动现金净流量变化幅度 +投资活动现金流净额同比变动,投资活动现金净流量变动比例 +投资活动现金流净额同比变动,投资活动现金净流量本期比上年同期增减 +投资活动现金流净额同比变动,投资活动现金净流量本年比上年增减 +投资活动现金流净额同比变动,投资活动现金净流量本期期末金额较上期期末变动比例 +投资活动现金流净额同比变动,投资性活动现金流同比变动 +投资活动现金流净额同比变动,投资性活动现金流同比增减 +投资活动现金流净额同比变动,投资性活动现金流同比上升 +投资活动现金流净额同比变动,投资性活动现金流同比下降 +投资活动现金流净额同比变动,投资性活动现金流变化幅度 +投资活动现金流净额同比变动,投资性活动现金流变动比例 +投资活动现金流净额同比变动,投资性活动现金流本期比上年同期增减 +投资活动现金流净额同比变动,投资性活动现金流本年比上年增减 +投资活动现金流净额同比变动,投资性活动现金流本期期末金额较上期期末变动比例 +当期非经常性损益,当期非经常性损益 +当期非经常性损益,本期非经常性损益 +当期非经常性损益,本报告期非经常性损益 +当期非经常性损益,报告期非经常性损益 +当期非经常性损益,报告期内非经常性损益 +当期非经常性损益,本年度非经常性损益 +当期非经常性损益,本期金额非经常性损益 +当期非经常性损益,本期发生额非经常性损益 +当期非经常性损益,2023年非经常性损益 +当期非经常性损益,2023年全年非经常性损益 +当期非经常性损益,2023年金额非经常性损益 +当期非经常性损益,当期非经常性损益合计 +当期非经常性损益,本期非经常性损益合计 +当期非经常性损益,本报告期非经常性损益合计 +当期非经常性损益,报告期非经常性损益合计 +当期非经常性损益,报告期内非经常性损益合计 +当期非经常性损益,本年度非经常性损益合计 +当期非经常性损益,本期金额非经常性损益合计 +当期非经常性损益,本期发生额非经常性损益合计 +当期非经常性损益,2023年非经常性损益合计 +当期非经常性损益,2023年全年非经常性损益合计 +当期非经常性损益,2023年金额非经常性损益合计 +当期非经常性损益,当期非经常性损益项目合计 +当期非经常性损益,本期非经常性损益项目合计 +当期非经常性损益,本报告期非经常性损益项目合计 +当期非经常性损益,报告期非经常性损益项目合计 +当期非经常性损益,报告期内非经常性损益项目合计 +当期非经常性损益,本年度非经常性损益项目合计 +当期非经常性损益,本期金额非经常性损益项目合计 +当期非经常性损益,本期发生额非经常性损益项目合计 +当期非经常性损益,2023年非经常性损益项目合计 +当期非经常性损益,2023年全年非经常性损益项目合计 +当期非经常性损益,2023年金额非经常性损益项目合计 +当期非经常性损益,当期非经常性损益项目净额 +当期非经常性损益,本期非经常性损益项目净额 +当期非经常性损益,本报告期非经常性损益项目净额 +当期非经常性损益,报告期非经常性损益项目净额 +当期非经常性损益,报告期内非经常性损益项目净额 +当期非经常性损益,本年度非经常性损益项目净额 +当期非经常性损益,本期金额非经常性损益项目净额 +当期非经常性损益,本期发生额非经常性损益项目净额 +当期非经常性损益,2023年非经常性损益项目净额 +当期非经常性损益,2023年全年非经常性损益项目净额 +当期非经常性损益,2023年金额非经常性损益项目净额 +上年同期非经常性损益,上年同期非经常性损益 +上年同期非经常性损益,上期非经常性损益 +上年同期非经常性损益,上期金额非经常性损益 +上年同期非经常性损益,上年非经常性损益 +上年同期非经常性损益,上年度非经常性损益 +上年同期非经常性损益,2022年非经常性损益 +上年同期非经常性损益,2022年全年非经常性损益 +上年同期非经常性损益,2022年金额非经常性损益 +上年同期非经常性损益,上年同期非经常性损益合计 +上年同期非经常性损益,上期非经常性损益合计 +上年同期非经常性损益,上期金额非经常性损益合计 +上年同期非经常性损益,上年非经常性损益合计 +上年同期非经常性损益,上年度非经常性损益合计 +上年同期非经常性损益,2022年非经常性损益合计 +上年同期非经常性损益,2022年全年非经常性损益合计 +上年同期非经常性损益,2022年金额非经常性损益合计 +上年同期非经常性损益,上年同期非经常性损益项目合计 +上年同期非经常性损益,上期非经常性损益项目合计 +上年同期非经常性损益,上期金额非经常性损益项目合计 +上年同期非经常性损益,上年非经常性损益项目合计 +上年同期非经常性损益,上年度非经常性损益项目合计 +上年同期非经常性损益,2022年非经常性损益项目合计 +上年同期非经常性损益,2022年全年非经常性损益项目合计 +上年同期非经常性损益,2022年金额非经常性损益项目合计 +上年同期非经常性损益,上年同期非经常性损益项目净额 +上年同期非经常性损益,上期非经常性损益项目净额 +上年同期非经常性损益,上期金额非经常性损益项目净额 +上年同期非经常性损益,上年非经常性损益项目净额 +上年同期非经常性损益,上年度非经常性损益项目净额 +上年同期非经常性损益,2022年非经常性损益项目净额 +上年同期非经常性损益,2022年全年非经常性损益项目净额 +上年同期非经常性损益,2022年金额非经常性损益项目净额 +前年同期非经常性损益,前年同期非经常性损益 +前年同期非经常性损益,2021年非经常性损益 +前年同期非经常性损益,2021年全年非经常性损益 +前年同期非经常性损益,2021年金额非经常性损益 +前年同期非经常性损益,前年同期非经常性损益合计 +前年同期非经常性损益,2021年非经常性损益合计 +前年同期非经常性损益,2021年全年非经常性损益合计 +前年同期非经常性损益,2021年金额非经常性损益合计 +前年同期非经常性损益,前年同期非经常性损益项目合计 +前年同期非经常性损益,2021年非经常性损益项目合计 +前年同期非经常性损益,2021年全年非经常性损益项目合计 +前年同期非经常性损益,2021年金额非经常性损益项目合计 +前年同期非经常性损益,前年同期非经常性损益项目净额 +前年同期非经常性损益,2021年非经常性损益项目净额 +前年同期非经常性损益,2021年全年非经常性损益项目净额 +前年同期非经常性损益,2021年金额非经常性损益项目净额 +非经常性损益同比变动,非经常性损益同比变动 +非经常性损益同比变动,非经常性损益同比增减 +非经常性损益同比变动,非经常性损益同比上升 +非经常性损益同比变动,非经常性损益同比下降 +非经常性损益同比变动,非经常性损益变化幅度 +非经常性损益同比变动,非经常性损益变动比例 +非经常性损益同比变动,非经常性损益本期比上年同期增减 +非经常性损益同比变动,非经常性损益本年比上年增减 +非经常性损益同比变动,非经常性损益本期期末金额较上期期末变动比例 +非经常性损益同比变动,非经常性损益合计同比变动 +非经常性损益同比变动,非经常性损益合计同比增减 +非经常性损益同比变动,非经常性损益合计同比上升 +非经常性损益同比变动,非经常性损益合计同比下降 +非经常性损益同比变动,非经常性损益合计变化幅度 +非经常性损益同比变动,非经常性损益合计变动比例 +非经常性损益同比变动,非经常性损益合计本期比上年同期增减 +非经常性损益同比变动,非经常性损益合计本年比上年增减 +非经常性损益同比变动,非经常性损益合计本期期末金额较上期期末变动比例 +非经常性损益同比变动,非经常性损益项目合计同比变动 +非经常性损益同比变动,非经常性损益项目合计同比增减 +非经常性损益同比变动,非经常性损益项目合计同比上升 +非经常性损益同比变动,非经常性损益项目合计同比下降 +非经常性损益同比变动,非经常性损益项目合计变化幅度 +非经常性损益同比变动,非经常性损益项目合计变动比例 +非经常性损益同比变动,非经常性损益项目合计本期比上年同期增减 +非经常性损益同比变动,非经常性损益项目合计本年比上年增减 +非经常性损益同比变动,非经常性损益项目合计本期期末金额较上期期末变动比例 +非经常性损益同比变动,非经常性损益项目净额同比变动 +非经常性损益同比变动,非经常性损益项目净额同比增减 +非经常性损益同比变动,非经常性损益项目净额同比上升 +非经常性损益同比变动,非经常性损益项目净额同比下降 +非经常性损益同比变动,非经常性损益项目净额变化幅度 +非经常性损益同比变动,非经常性损益项目净额变动比例 +非经常性损益同比变动,非经常性损益项目净额本期比上年同期增减 +非经常性损益同比变动,非经常性损益项目净额本年比上年增减 +非经常性损益同比变动,非经常性损益项目净额本期期末金额较上期期末变动比例 +当期基本每股收益,当期基本每股收益 +当期基本每股收益,本期基本每股收益 +当期基本每股收益,本报告期基本每股收益 +当期基本每股收益,报告期基本每股收益 +当期基本每股收益,报告期内基本每股收益 +当期基本每股收益,本年度基本每股收益 +当期基本每股收益,本期金额基本每股收益 +当期基本每股收益,本期发生额基本每股收益 +当期基本每股收益,2023年基本每股收益 +当期基本每股收益,2023年全年基本每股收益 +当期基本每股收益,2023年金额基本每股收益 +当期基本每股收益,当期归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,本期归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,本报告期归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,报告期归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,报告期内归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,本年度归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,本期金额归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,本期发生额归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,2023年归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,2023年全年归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,2023年金额归属于公司普通股股东的净利润基本每股收益 +当期基本每股收益,当期归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,本期归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,本报告期归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,报告期归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,报告期内归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,本年度归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,本期金额归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,本期发生额归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,2023年归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,2023年全年归属于公司普通股股东的净利润每股收益基本每股收益 +当期基本每股收益,2023年金额归属于公司普通股股东的净利润每股收益基本每股收益 +上年同期基本每股收益,上年同期基本每股收益 +上年同期基本每股收益,上期基本每股收益 +上年同期基本每股收益,上期金额基本每股收益 +上年同期基本每股收益,上年基本每股收益 +上年同期基本每股收益,上年度基本每股收益 +上年同期基本每股收益,2022年基本每股收益 +上年同期基本每股收益,2022年全年基本每股收益 +上年同期基本每股收益,2022年金额基本每股收益 +上年同期基本每股收益,上年同期归属于公司普通股股东的净利润基本每股收益 +上年同期基本每股收益,上期归属于公司普通股股东的净利润基本每股收益 +上年同期基本每股收益,上期金额归属于公司普通股股东的净利润基本每股收益 +上年同期基本每股收益,上年归属于公司普通股股东的净利润基本每股收益 +上年同期基本每股收益,上年度归属于公司普通股股东的净利润基本每股收益 +上年同期基本每股收益,2022年归属于公司普通股股东的净利润基本每股收益 +上年同期基本每股收益,2022年全年归属于公司普通股股东的净利润基本每股收益 +上年同期基本每股收益,2022年金额归属于公司普通股股东的净利润基本每股收益 +上年同期基本每股收益,上年同期归属于公司普通股股东的净利润每股收益基本每股收益 +上年同期基本每股收益,上期归属于公司普通股股东的净利润每股收益基本每股收益 +上年同期基本每股收益,上期金额归属于公司普通股股东的净利润每股收益基本每股收益 +上年同期基本每股收益,上年归属于公司普通股股东的净利润每股收益基本每股收益 +上年同期基本每股收益,上年度归属于公司普通股股东的净利润每股收益基本每股收益 +上年同期基本每股收益,2022年归属于公司普通股股东的净利润每股收益基本每股收益 +上年同期基本每股收益,2022年全年归属于公司普通股股东的净利润每股收益基本每股收益 +上年同期基本每股收益,2022年金额归属于公司普通股股东的净利润每股收益基本每股收益 +前年同期基本每股收益,前年同期基本每股收益 +前年同期基本每股收益,2021年基本每股收益 +前年同期基本每股收益,2021年全年基本每股收益 +前年同期基本每股收益,2021年金额基本每股收益 +前年同期基本每股收益,前年同期归属于公司普通股股东的净利润基本每股收益 +前年同期基本每股收益,2021年归属于公司普通股股东的净利润基本每股收益 +前年同期基本每股收益,2021年全年归属于公司普通股股东的净利润基本每股收益 +前年同期基本每股收益,2021年金额归属于公司普通股股东的净利润基本每股收益 +前年同期基本每股收益,前年同期归属于公司普通股股东的净利润每股收益基本每股收益 +前年同期基本每股收益,2021年归属于公司普通股股东的净利润每股收益基本每股收益 +前年同期基本每股收益,2021年全年归属于公司普通股股东的净利润每股收益基本每股收益 +前年同期基本每股收益,2021年金额归属于公司普通股股东的净利润每股收益基本每股收益 +基本每股收益同比变动,基本每股收益同比变动 +基本每股收益同比变动,基本每股收益同比增减 +基本每股收益同比变动,基本每股收益同比上升 +基本每股收益同比变动,基本每股收益同比下降 +基本每股收益同比变动,基本每股收益变化幅度 +基本每股收益同比变动,基本每股收益变动比例 +基本每股收益同比变动,基本每股收益本期比上年同期增减 +基本每股收益同比变动,基本每股收益本年比上年增减 +基本每股收益同比变动,基本每股收益本期期末金额较上期期末变动比例 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益同比变动 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益同比增减 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益同比上升 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益同比下降 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益变化幅度 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益变动比例 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益本期比上年同期增减 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益本年比上年增减 +基本每股收益同比变动,归属于公司普通股股东的净利润基本每股收益本期期末金额较上期期末变动比例 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益同比变动 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益同比增减 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益同比上升 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益同比下降 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益变化幅度 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益变动比例 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益本期比上年同期增减 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益本年比上年增减 +基本每股收益同比变动,归属于公司普通股股东的净利润每股收益基本每股收益本期期末金额较上期期末变动比例 +当期稀释每股收益,当期稀释每股收益 +当期稀释每股收益,本期稀释每股收益 +当期稀释每股收益,本报告期稀释每股收益 +当期稀释每股收益,报告期稀释每股收益 +当期稀释每股收益,报告期内稀释每股收益 +当期稀释每股收益,本年度稀释每股收益 +当期稀释每股收益,本期金额稀释每股收益 +当期稀释每股收益,本期发生额稀释每股收益 +当期稀释每股收益,2023年稀释每股收益 +当期稀释每股收益,2023年全年稀释每股收益 +当期稀释每股收益,2023年金额稀释每股收益 +当期稀释每股收益,当期归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,本期归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,本报告期归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,报告期归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,报告期内归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,本年度归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,本期金额归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,本期发生额归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,2023年归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,2023年全年归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,2023年金额归属于公司普通股股东的净利润稀释每股收益 +当期稀释每股收益,当期归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,本期归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,本报告期归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,报告期归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,报告期内归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,本年度归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,本期金额归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,本期发生额归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,2023年归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,2023年全年归属于公司普通股股东的净利润每股收益稀释每股收益 +当期稀释每股收益,2023年金额归属于公司普通股股东的净利润每股收益稀释每股收益 +上年同期稀释每股收益,上年同期稀释每股收益 +上年同期稀释每股收益,上期稀释每股收益 +上年同期稀释每股收益,上期金额稀释每股收益 +上年同期稀释每股收益,上年稀释每股收益 +上年同期稀释每股收益,上年度稀释每股收益 +上年同期稀释每股收益,2022年稀释每股收益 +上年同期稀释每股收益,2022年全年稀释每股收益 +上年同期稀释每股收益,2022年金额稀释每股收益 +上年同期稀释每股收益,上年同期归属于公司普通股股东的净利润稀释每股收益 +上年同期稀释每股收益,上期归属于公司普通股股东的净利润稀释每股收益 +上年同期稀释每股收益,上期金额归属于公司普通股股东的净利润稀释每股收益 +上年同期稀释每股收益,上年归属于公司普通股股东的净利润稀释每股收益 +上年同期稀释每股收益,上年度归属于公司普通股股东的净利润稀释每股收益 +上年同期稀释每股收益,2022年归属于公司普通股股东的净利润稀释每股收益 +上年同期稀释每股收益,2022年全年归属于公司普通股股东的净利润稀释每股收益 +上年同期稀释每股收益,2022年金额归属于公司普通股股东的净利润稀释每股收益 +上年同期稀释每股收益,上年同期归属于公司普通股股东的净利润每股收益稀释每股收益 +上年同期稀释每股收益,上期归属于公司普通股股东的净利润每股收益稀释每股收益 +上年同期稀释每股收益,上期金额归属于公司普通股股东的净利润每股收益稀释每股收益 +上年同期稀释每股收益,上年归属于公司普通股股东的净利润每股收益稀释每股收益 +上年同期稀释每股收益,上年度归属于公司普通股股东的净利润每股收益稀释每股收益 +上年同期稀释每股收益,2022年归属于公司普通股股东的净利润每股收益稀释每股收益 +上年同期稀释每股收益,2022年全年归属于公司普通股股东的净利润每股收益稀释每股收益 +上年同期稀释每股收益,2022年金额归属于公司普通股股东的净利润每股收益稀释每股收益 +前年同期稀释每股收益,前年同期稀释每股收益 +前年同期稀释每股收益,2021年稀释每股收益 +前年同期稀释每股收益,2021年全年稀释每股收益 +前年同期稀释每股收益,2021年金额稀释每股收益 +前年同期稀释每股收益,前年同期归属于公司普通股股东的净利润稀释每股收益 +前年同期稀释每股收益,2021年归属于公司普通股股东的净利润稀释每股收益 +前年同期稀释每股收益,2021年全年归属于公司普通股股东的净利润稀释每股收益 +前年同期稀释每股收益,2021年金额归属于公司普通股股东的净利润稀释每股收益 +前年同期稀释每股收益,前年同期归属于公司普通股股东的净利润每股收益稀释每股收益 +前年同期稀释每股收益,2021年归属于公司普通股股东的净利润每股收益稀释每股收益 +前年同期稀释每股收益,2021年全年归属于公司普通股股东的净利润每股收益稀释每股收益 +前年同期稀释每股收益,2021年金额归属于公司普通股股东的净利润每股收益稀释每股收益 +稀释每股收益同比变动,稀释每股收益同比变动 +稀释每股收益同比变动,稀释每股收益同比增减 +稀释每股收益同比变动,稀释每股收益同比上升 +稀释每股收益同比变动,稀释每股收益同比下降 +稀释每股收益同比变动,稀释每股收益变化幅度 +稀释每股收益同比变动,稀释每股收益变动比例 +稀释每股收益同比变动,稀释每股收益本期比上年同期增减 +稀释每股收益同比变动,稀释每股收益本年比上年增减 +稀释每股收益同比变动,稀释每股收益本期期末金额较上期期末变动比例 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益同比变动 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益同比增减 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益同比上升 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益同比下降 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益变化幅度 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益变动比例 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益本期比上年同期增减 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益本年比上年增减 +稀释每股收益同比变动,归属于公司普通股股东的净利润稀释每股收益本期期末金额较上期期末变动比例 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益同比变动 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益同比增减 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益同比上升 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益同比下降 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益变化幅度 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益变动比例 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益本期比上年同期增减 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益本年比上年增减 +稀释每股收益同比变动,归属于公司普通股股东的净利润每股收益稀释每股收益本期期末金额较上期期末变动比例 +当期加权平均净资产收益率,当期加权平均净资产收益率 +当期加权平均净资产收益率,本期加权平均净资产收益率 +当期加权平均净资产收益率,本报告期加权平均净资产收益率 +当期加权平均净资产收益率,报告期加权平均净资产收益率 +当期加权平均净资产收益率,报告期内加权平均净资产收益率 +当期加权平均净资产收益率,本年度加权平均净资产收益率 +当期加权平均净资产收益率,本期金额加权平均净资产收益率 +当期加权平均净资产收益率,本期发生额加权平均净资产收益率 +当期加权平均净资产收益率,2023年加权平均净资产收益率 +当期加权平均净资产收益率,2023年全年加权平均净资产收益率 +当期加权平均净资产收益率,2023年金额加权平均净资产收益率 +当期加权平均净资产收益率,当期归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本期归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本报告期归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,报告期归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,报告期内归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本年度归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本期金额归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本期发生额归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,2023年归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,2023年全年归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,2023年金额归属于公司普通股股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,当期归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本期归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本报告期归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,报告期归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,报告期内归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本年度归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本期金额归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,本期发生额归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,2023年归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,2023年全年归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,2023年金额归属于上市公司股东的净利润加权平均净资产收益率 +当期加权平均净资产收益率,当期加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,本期加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,本报告期加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,报告期加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,报告期内加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,本年度加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,本期金额加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,本期发生额加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,2023年加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,2023年全年加权平均净资产收益率(扣非前) +当期加权平均净资产收益率,2023年金额加权平均净资产收益率(扣非前) +上年同期加权平均净资产收益率,上年同期加权平均净资产收益率 +上年同期加权平均净资产收益率,上期加权平均净资产收益率 +上年同期加权平均净资产收益率,上期金额加权平均净资产收益率 +上年同期加权平均净资产收益率,上年加权平均净资产收益率 +上年同期加权平均净资产收益率,上年度加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年全年加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年金额加权平均净资产收益率 +上年同期加权平均净资产收益率,上年同期归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上期归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上期金额归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上年归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上年度归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年全年归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年金额归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上年同期归属于上市公司股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上期归属于上市公司股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上期金额归属于上市公司股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上年归属于上市公司股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上年度归属于上市公司股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年归属于上市公司股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年全年归属于上市公司股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,2022年金额归属于上市公司股东的净利润加权平均净资产收益率 +上年同期加权平均净资产收益率,上年同期加权平均净资产收益率(扣非前) +上年同期加权平均净资产收益率,上期加权平均净资产收益率(扣非前) +上年同期加权平均净资产收益率,上期金额加权平均净资产收益率(扣非前) +上年同期加权平均净资产收益率,上年加权平均净资产收益率(扣非前) +上年同期加权平均净资产收益率,上年度加权平均净资产收益率(扣非前) +上年同期加权平均净资产收益率,2022年加权平均净资产收益率(扣非前) +上年同期加权平均净资产收益率,2022年全年加权平均净资产收益率(扣非前) +上年同期加权平均净资产收益率,2022年金额加权平均净资产收益率(扣非前) +前年同期加权平均净资产收益率,前年同期加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年全年加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年金额加权平均净资产收益率 +前年同期加权平均净资产收益率,前年同期归属于公司普通股股东的净利润加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年归属于公司普通股股东的净利润加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年全年归属于公司普通股股东的净利润加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年金额归属于公司普通股股东的净利润加权平均净资产收益率 +前年同期加权平均净资产收益率,前年同期归属于上市公司股东的净利润加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年归属于上市公司股东的净利润加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年全年归属于上市公司股东的净利润加权平均净资产收益率 +前年同期加权平均净资产收益率,2021年金额归属于上市公司股东的净利润加权平均净资产收益率 +前年同期加权平均净资产收益率,前年同期加权平均净资产收益率(扣非前) +前年同期加权平均净资产收益率,2021年加权平均净资产收益率(扣非前) +前年同期加权平均净资产收益率,2021年全年加权平均净资产收益率(扣非前) +前年同期加权平均净资产收益率,2021年金额加权平均净资产收益率(扣非前) +加权平均净资产收益率同比变动,加权平均净资产收益率同比变动 +加权平均净资产收益率同比变动,加权平均净资产收益率同比增减 +加权平均净资产收益率同比变动,加权平均净资产收益率同比上升 +加权平均净资产收益率同比变动,加权平均净资产收益率同比下降 +加权平均净资产收益率同比变动,加权平均净资产收益率变化幅度 +加权平均净资产收益率同比变动,加权平均净资产收益率变动比例 +加权平均净资产收益率同比变动,加权平均净资产收益率本期比上年同期增减 +加权平均净资产收益率同比变动,加权平均净资产收益率本年比上年增减 +加权平均净资产收益率同比变动,加权平均净资产收益率本期期末金额较上期期末变动比例 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率同比变动 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率同比增减 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率同比上升 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率同比下降 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率变化幅度 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率变动比例 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率本期比上年同期增减 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率本年比上年增减 +加权平均净资产收益率同比变动,归属于公司普通股股东的净利润加权平均净资产收益率本期期末金额较上期期末变动比例 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率同比变动 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率同比增减 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率同比上升 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率同比下降 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率变化幅度 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率变动比例 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率本期比上年同期增减 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率本年比上年增减 +加权平均净资产收益率同比变动,归属于上市公司股东的净利润加权平均净资产收益率本期期末金额较上期期末变动比例 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)同比变动 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)同比增减 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)同比上升 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)同比下降 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)变化幅度 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)变动比例 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)本期比上年同期增减 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)本年比上年增减 +加权平均净资产收益率同比变动,加权平均净资产收益率(扣非前)本期期末金额较上期期末变动比例 +当期扣非加权平均净资产收益率,当期扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,本报告期扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,报告期扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,报告期内扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,本年度扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期金额扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期发生额扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年全年扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年金额扣非加权平均净资产收益率 +当期扣非加权平均净资产收益率,当期扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,本报告期扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,报告期扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,报告期内扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,本年度扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期金额扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期发生额扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年全年扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年金额扣除非经常性损益后的加权平均净资产收益率 +当期扣非加权平均净资产收益率,当期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本报告期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,报告期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,报告期内扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本年度扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期金额扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期发生额扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年全年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年金额扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,当期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本报告期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,报告期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,报告期内归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本年度归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期金额归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,本期发生额归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年全年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,2023年金额归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +当期扣非加权平均净资产收益率,当期加权平均净资产收益率( +当期扣非加权平均净资产收益率,本期加权平均净资产收益率( +当期扣非加权平均净资产收益率,本报告期加权平均净资产收益率( +当期扣非加权平均净资产收益率,报告期加权平均净资产收益率( +当期扣非加权平均净资产收益率,报告期内加权平均净资产收益率( +当期扣非加权平均净资产收益率,本年度加权平均净资产收益率( +当期扣非加权平均净资产收益率,本期金额加权平均净资产收益率( +当期扣非加权平均净资产收益率,本期发生额加权平均净资产收益率( +当期扣非加权平均净资产收益率,2023年加权平均净资产收益率( +当期扣非加权平均净资产收益率,2023年全年加权平均净资产收益率( +当期扣非加权平均净资产收益率,2023年金额加权平均净资产收益率( +上年同期扣非加权平均净资产收益率,上年同期扣非加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上期扣非加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上期金额扣非加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年扣非加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年度扣非加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年扣非加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年全年扣非加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年金额扣非加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年同期扣除非经常性损益后的加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上期扣除非经常性损益后的加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上期金额扣除非经常性损益后的加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年扣除非经常性损益后的加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年度扣除非经常性损益后的加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年扣除非经常性损益后的加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年全年扣除非经常性损益后的加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年金额扣除非经常性损益后的加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年同期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上期金额扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年度扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年全年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年金额扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年同期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上期金额归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年度归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年全年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,2022年金额归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +上年同期扣非加权平均净资产收益率,上年同期加权平均净资产收益率( +上年同期扣非加权平均净资产收益率,上期加权平均净资产收益率( +上年同期扣非加权平均净资产收益率,上期金额加权平均净资产收益率( +上年同期扣非加权平均净资产收益率,上年加权平均净资产收益率( +上年同期扣非加权平均净资产收益率,上年度加权平均净资产收益率( +上年同期扣非加权平均净资产收益率,2022年加权平均净资产收益率( +上年同期扣非加权平均净资产收益率,2022年全年加权平均净资产收益率( +上年同期扣非加权平均净资产收益率,2022年金额加权平均净资产收益率( +前年同期扣非加权平均净资产收益率,前年同期扣非加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年扣非加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年全年扣非加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年金额扣非加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,前年同期扣除非经常性损益后的加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年扣除非经常性损益后的加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年全年扣除非经常性损益后的加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年金额扣除非经常性损益后的加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,前年同期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年全年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年金额扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,前年同期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年全年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,2021年金额归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率 +前年同期扣非加权平均净资产收益率,前年同期加权平均净资产收益率( +前年同期扣非加权平均净资产收益率,2021年加权平均净资产收益率( +前年同期扣非加权平均净资产收益率,2021年全年加权平均净资产收益率( +前年同期扣非加权平均净资产收益率,2021年金额加权平均净资产收益率( +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率同比变动 +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率同比增减 +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率同比上升 +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率同比下降 +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率变化幅度 +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率变动比例 +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率本期比上年同期增减 +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率本年比上年增减 +扣非加权平均净资产收益率同比变动,扣非加权平均净资产收益率本期期末金额较上期期末变动比例 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率同比变动 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率同比增减 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率同比上升 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率同比下降 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率变化幅度 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率变动比例 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率本期比上年同期增减 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率本年比上年增减 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后的加权平均净资产收益率本期期末金额较上期期末变动比例 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率同比变动 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率同比增减 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率同比上升 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率同比下降 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率变化幅度 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率变动比例 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率本期比上年同期增减 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率本年比上年增减 +扣非加权平均净资产收益率同比变动,扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率本期期末金额较上期期末变动比例 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率同比变动 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率同比增减 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率同比上升 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率同比下降 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率变化幅度 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率变动比例 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率本期比上年同期增减 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率本年比上年增减 +扣非加权平均净资产收益率同比变动,归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率本期期末金额较上期期末变动比例 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(同比变动 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(同比增减 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(同比上升 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(同比下降 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(变化幅度 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(变动比例 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(本期比上年同期增减 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(本年比上年增减 +扣非加权平均净资产收益率同比变动,加权平均净资产收益率(本期期末金额较上期期末变动比例 +报告期末总资产,报告期末总资产 +报告期末总资产,本报告期末总资产 +报告期末总资产,期末总资产 +报告期末总资产,期末数总资产 +报告期末总资产,期末金额总资产 +报告期末总资产,2023年年末总资产 +报告期末总资产,2023年12月31日总资产 +报告期末总资产,2023年总资产 +报告期末总资产,报告期末资产总计 +报告期末总资产,本报告期末资产总计 +报告期末总资产,期末资产总计 +报告期末总资产,期末数资产总计 +报告期末总资产,期末金额资产总计 +报告期末总资产,2023年年末资产总计 +报告期末总资产,2023年12月31日资产总计 +报告期末总资产,2023年资产总计 +报告期末总资产,报告期末资产总额 +报告期末总资产,本报告期末资产总额 +报告期末总资产,期末资产总额 +报告期末总资产,期末数资产总额 +报告期末总资产,期末金额资产总额 +报告期末总资产,2023年年末资产总额 +报告期末总资产,2023年12月31日资产总额 +报告期末总资产,2023年资产总额 +报告期末总资产,报告期末公司总资产 +报告期末总资产,本报告期末公司总资产 +报告期末总资产,期末公司总资产 +报告期末总资产,期末数公司总资产 +报告期末总资产,期末金额公司总资产 +报告期末总资产,2023年年末公司总资产 +报告期末总资产,2023年12月31日公司总资产 +报告期末总资产,2023年公司总资产 +上年年末总资产,上年年末总资产 +上年年末总资产,上年末总资产 +上年年末总资产,2022年年末总资产 +上年年末总资产,2022年12月31日总资产 +上年年末总资产,2022年总资产 +上年年末总资产,上年年末资产总计 +上年年末总资产,上年末资产总计 +上年年末总资产,2022年年末资产总计 +上年年末总资产,2022年12月31日资产总计 +上年年末总资产,2022年资产总计 +上年年末总资产,上年年末资产总额 +上年年末总资产,上年末资产总额 +上年年末总资产,2022年年末资产总额 +上年年末总资产,2022年12月31日资产总额 +上年年末总资产,2022年资产总额 +上年年末总资产,上年年末公司总资产 +上年年末总资产,上年末公司总资产 +上年年末总资产,2022年年末公司总资产 +上年年末总资产,2022年12月31日公司总资产 +上年年末总资产,2022年公司总资产 +报告期初总资产,报告期初总资产 +报告期初总资产,期初总资产 +报告期初总资产,期初数总资产 +报告期初总资产,期初金额总资产 +报告期初总资产,2023年1月1日总资产 +报告期初总资产,报告期初资产总计 +报告期初总资产,期初资产总计 +报告期初总资产,期初数资产总计 +报告期初总资产,期初金额资产总计 +报告期初总资产,2023年1月1日资产总计 +报告期初总资产,报告期初资产总额 +报告期初总资产,期初资产总额 +报告期初总资产,期初数资产总额 +报告期初总资产,期初金额资产总额 +报告期初总资产,2023年1月1日资产总额 +报告期初总资产,报告期初公司总资产 +报告期初总资产,期初公司总资产 +报告期初总资产,期初数公司总资产 +报告期初总资产,期初金额公司总资产 +报告期初总资产,2023年1月1日公司总资产 +总资产同比变动,总资产同比变动 +总资产同比变动,总资产同比增减 +总资产同比变动,总资产同比上升 +总资产同比变动,总资产同比下降 +总资产同比变动,总资产变化幅度 +总资产同比变动,总资产变动比例 +总资产同比变动,总资产本期比上年同期增减 +总资产同比变动,总资产本年比上年增减 +总资产同比变动,总资产本期期末金额较上期期末变动比例 +总资产同比变动,资产总计同比变动 +总资产同比变动,资产总计同比增减 +总资产同比变动,资产总计同比上升 +总资产同比变动,资产总计同比下降 +总资产同比变动,资产总计变化幅度 +总资产同比变动,资产总计变动比例 +总资产同比变动,资产总计本期比上年同期增减 +总资产同比变动,资产总计本年比上年增减 +总资产同比变动,资产总计本期期末金额较上期期末变动比例 +总资产同比变动,资产总额同比变动 +总资产同比变动,资产总额同比增减 +总资产同比变动,资产总额同比上升 +总资产同比变动,资产总额同比下降 +总资产同比变动,资产总额变化幅度 +总资产同比变动,资产总额变动比例 +总资产同比变动,资产总额本期比上年同期增减 +总资产同比变动,资产总额本年比上年增减 +总资产同比变动,资产总额本期期末金额较上期期末变动比例 +总资产同比变动,公司总资产同比变动 +总资产同比变动,公司总资产同比增减 +总资产同比变动,公司总资产同比上升 +总资产同比变动,公司总资产同比下降 +总资产同比变动,公司总资产变化幅度 +总资产同比变动,公司总资产变动比例 +总资产同比变动,公司总资产本期比上年同期增减 +总资产同比变动,公司总资产本年比上年增减 +总资产同比变动,公司总资产本期期末金额较上期期末变动比例 +当期研发投入,当期研发投入 +当期研发投入,本期研发投入 +当期研发投入,本报告期研发投入 +当期研发投入,报告期研发投入 +当期研发投入,报告期内研发投入 +当期研发投入,本年度研发投入 +当期研发投入,本期金额研发投入 +当期研发投入,本期发生额研发投入 +当期研发投入,2023年研发投入 +当期研发投入,2023年全年研发投入 +当期研发投入,2023年金额研发投入 +当期研发投入,当期研发投入金额 +当期研发投入,本期研发投入金额 +当期研发投入,本报告期研发投入金额 +当期研发投入,报告期研发投入金额 +当期研发投入,报告期内研发投入金额 +当期研发投入,本年度研发投入金额 +当期研发投入,本期金额研发投入金额 +当期研发投入,本期发生额研发投入金额 +当期研发投入,2023年研发投入金额 +当期研发投入,2023年全年研发投入金额 +当期研发投入,2023年金额研发投入金额 +当期研发投入,当期研发支出金额 +当期研发投入,本期研发支出金额 +当期研发投入,本报告期研发支出金额 +当期研发投入,报告期研发支出金额 +当期研发投入,报告期内研发支出金额 +当期研发投入,本年度研发支出金额 +当期研发投入,本期金额研发支出金额 +当期研发投入,本期发生额研发支出金额 +当期研发投入,2023年研发支出金额 +当期研发投入,2023年全年研发支出金额 +当期研发投入,2023年金额研发支出金额 +当期研发投入,当期研发投入合计 +当期研发投入,本期研发投入合计 +当期研发投入,本报告期研发投入合计 +当期研发投入,报告期研发投入合计 +当期研发投入,报告期内研发投入合计 +当期研发投入,本年度研发投入合计 +当期研发投入,本期金额研发投入合计 +当期研发投入,本期发生额研发投入合计 +当期研发投入,2023年研发投入合计 +当期研发投入,2023年全年研发投入合计 +当期研发投入,2023年金额研发投入合计 +上年同期研发投入,上年同期研发投入 +上年同期研发投入,上期研发投入 +上年同期研发投入,上期金额研发投入 +上年同期研发投入,上年研发投入 +上年同期研发投入,上年度研发投入 +上年同期研发投入,2022年研发投入 +上年同期研发投入,2022年全年研发投入 +上年同期研发投入,2022年金额研发投入 +上年同期研发投入,上年同期研发投入金额 +上年同期研发投入,上期研发投入金额 +上年同期研发投入,上期金额研发投入金额 +上年同期研发投入,上年研发投入金额 +上年同期研发投入,上年度研发投入金额 +上年同期研发投入,2022年研发投入金额 +上年同期研发投入,2022年全年研发投入金额 +上年同期研发投入,2022年金额研发投入金额 +上年同期研发投入,上年同期研发支出金额 +上年同期研发投入,上期研发支出金额 +上年同期研发投入,上期金额研发支出金额 +上年同期研发投入,上年研发支出金额 +上年同期研发投入,上年度研发支出金额 +上年同期研发投入,2022年研发支出金额 +上年同期研发投入,2022年全年研发支出金额 +上年同期研发投入,2022年金额研发支出金额 +上年同期研发投入,上年同期研发投入合计 +上年同期研发投入,上期研发投入合计 +上年同期研发投入,上期金额研发投入合计 +上年同期研发投入,上年研发投入合计 +上年同期研发投入,上年度研发投入合计 +上年同期研发投入,2022年研发投入合计 +上年同期研发投入,2022年全年研发投入合计 +上年同期研发投入,2022年金额研发投入合计 +前年同期研发投入,前年同期研发投入 +前年同期研发投入,2021年研发投入 +前年同期研发投入,2021年全年研发投入 +前年同期研发投入,2021年金额研发投入 +前年同期研发投入,前年同期研发投入金额 +前年同期研发投入,2021年研发投入金额 +前年同期研发投入,2021年全年研发投入金额 +前年同期研发投入,2021年金额研发投入金额 +前年同期研发投入,前年同期研发支出金额 +前年同期研发投入,2021年研发支出金额 +前年同期研发投入,2021年全年研发支出金额 +前年同期研发投入,2021年金额研发支出金额 +前年同期研发投入,前年同期研发投入合计 +前年同期研发投入,2021年研发投入合计 +前年同期研发投入,2021年全年研发投入合计 +前年同期研发投入,2021年金额研发投入合计 +研发投入同比变动,研发投入同比变动 +研发投入同比变动,研发投入同比增减 +研发投入同比变动,研发投入同比上升 +研发投入同比变动,研发投入同比下降 +研发投入同比变动,研发投入变化幅度 +研发投入同比变动,研发投入变动比例 +研发投入同比变动,研发投入本期比上年同期增减 +研发投入同比变动,研发投入本年比上年增减 +研发投入同比变动,研发投入本期期末金额较上期期末变动比例 +研发投入同比变动,研发投入金额同比变动 +研发投入同比变动,研发投入金额同比增减 +研发投入同比变动,研发投入金额同比上升 +研发投入同比变动,研发投入金额同比下降 +研发投入同比变动,研发投入金额变化幅度 +研发投入同比变动,研发投入金额变动比例 +研发投入同比变动,研发投入金额本期比上年同期增减 +研发投入同比变动,研发投入金额本年比上年增减 +研发投入同比变动,研发投入金额本期期末金额较上期期末变动比例 +研发投入同比变动,研发支出金额同比变动 +研发投入同比变动,研发支出金额同比增减 +研发投入同比变动,研发支出金额同比上升 +研发投入同比变动,研发支出金额同比下降 +研发投入同比变动,研发支出金额变化幅度 +研发投入同比变动,研发支出金额变动比例 +研发投入同比变动,研发支出金额本期比上年同期增减 +研发投入同比变动,研发支出金额本年比上年增减 +研发投入同比变动,研发支出金额本期期末金额较上期期末变动比例 +研发投入同比变动,研发投入合计同比变动 +研发投入同比变动,研发投入合计同比增减 +研发投入同比变动,研发投入合计同比上升 +研发投入同比变动,研发投入合计同比下降 +研发投入同比变动,研发投入合计变化幅度 +研发投入同比变动,研发投入合计变动比例 +研发投入同比变动,研发投入合计本期比上年同期增减 +研发投入同比变动,研发投入合计本年比上年增减 +研发投入同比变动,研发投入合计本期期末金额较上期期末变动比例 +当期资本化研发投入,当期资本化研发投入 +当期资本化研发投入,本期资本化研发投入 +当期资本化研发投入,本报告期资本化研发投入 +当期资本化研发投入,报告期资本化研发投入 +当期资本化研发投入,报告期内资本化研发投入 +当期资本化研发投入,本年度资本化研发投入 +当期资本化研发投入,本期金额资本化研发投入 +当期资本化研发投入,本期发生额资本化研发投入 +当期资本化研发投入,2023年资本化研发投入 +当期资本化研发投入,2023年全年资本化研发投入 +当期资本化研发投入,2023年金额资本化研发投入 +当期资本化研发投入,当期研发投入资本化的金额 +当期资本化研发投入,本期研发投入资本化的金额 +当期资本化研发投入,本报告期研发投入资本化的金额 +当期资本化研发投入,报告期研发投入资本化的金额 +当期资本化研发投入,报告期内研发投入资本化的金额 +当期资本化研发投入,本年度研发投入资本化的金额 +当期资本化研发投入,本期金额研发投入资本化的金额 +当期资本化研发投入,本期发生额研发投入资本化的金额 +当期资本化研发投入,2023年研发投入资本化的金额 +当期资本化研发投入,2023年全年研发投入资本化的金额 +当期资本化研发投入,2023年金额研发投入资本化的金额 +当期资本化研发投入,当期研发支出资本化的金额 +当期资本化研发投入,本期研发支出资本化的金额 +当期资本化研发投入,本报告期研发支出资本化的金额 +当期资本化研发投入,报告期研发支出资本化的金额 +当期资本化研发投入,报告期内研发支出资本化的金额 +当期资本化研发投入,本年度研发支出资本化的金额 +当期资本化研发投入,本期金额研发支出资本化的金额 +当期资本化研发投入,本期发生额研发支出资本化的金额 +当期资本化研发投入,2023年研发支出资本化的金额 +当期资本化研发投入,2023年全年研发支出资本化的金额 +当期资本化研发投入,2023年金额研发支出资本化的金额 +当期资本化研发投入,当期资本化研发投入 +当期资本化研发投入,本期资本化研发投入 +当期资本化研发投入,本报告期资本化研发投入 +当期资本化研发投入,报告期资本化研发投入 +当期资本化研发投入,报告期内资本化研发投入 +当期资本化研发投入,本年度资本化研发投入 +当期资本化研发投入,本期金额资本化研发投入 +当期资本化研发投入,本期发生额资本化研发投入 +当期资本化研发投入,2023年资本化研发投入 +当期资本化研发投入,2023年全年资本化研发投入 +当期资本化研发投入,2023年金额资本化研发投入 +当期资本化研发投入,当期本期资本化研发投入 +当期资本化研发投入,本期本期资本化研发投入 +当期资本化研发投入,本报告期本期资本化研发投入 +当期资本化研发投入,报告期本期资本化研发投入 +当期资本化研发投入,报告期内本期资本化研发投入 +当期资本化研发投入,本年度本期资本化研发投入 +当期资本化研发投入,本期金额本期资本化研发投入 +当期资本化研发投入,本期发生额本期资本化研发投入 +当期资本化研发投入,2023年本期资本化研发投入 +当期资本化研发投入,2023年全年本期资本化研发投入 +当期资本化研发投入,2023年金额本期资本化研发投入 +上年同期资本化研发投入,上年同期资本化研发投入 +上年同期资本化研发投入,上期资本化研发投入 +上年同期资本化研发投入,上期金额资本化研发投入 +上年同期资本化研发投入,上年资本化研发投入 +上年同期资本化研发投入,上年度资本化研发投入 +上年同期资本化研发投入,2022年资本化研发投入 +上年同期资本化研发投入,2022年全年资本化研发投入 +上年同期资本化研发投入,2022年金额资本化研发投入 +上年同期资本化研发投入,上年同期研发投入资本化的金额 +上年同期资本化研发投入,上期研发投入资本化的金额 +上年同期资本化研发投入,上期金额研发投入资本化的金额 +上年同期资本化研发投入,上年研发投入资本化的金额 +上年同期资本化研发投入,上年度研发投入资本化的金额 +上年同期资本化研发投入,2022年研发投入资本化的金额 +上年同期资本化研发投入,2022年全年研发投入资本化的金额 +上年同期资本化研发投入,2022年金额研发投入资本化的金额 +上年同期资本化研发投入,上年同期研发支出资本化的金额 +上年同期资本化研发投入,上期研发支出资本化的金额 +上年同期资本化研发投入,上期金额研发支出资本化的金额 +上年同期资本化研发投入,上年研发支出资本化的金额 +上年同期资本化研发投入,上年度研发支出资本化的金额 +上年同期资本化研发投入,2022年研发支出资本化的金额 +上年同期资本化研发投入,2022年全年研发支出资本化的金额 +上年同期资本化研发投入,2022年金额研发支出资本化的金额 +上年同期资本化研发投入,上年同期资本化研发投入 +上年同期资本化研发投入,上期资本化研发投入 +上年同期资本化研发投入,上期金额资本化研发投入 +上年同期资本化研发投入,上年资本化研发投入 +上年同期资本化研发投入,上年度资本化研发投入 +上年同期资本化研发投入,2022年资本化研发投入 +上年同期资本化研发投入,2022年全年资本化研发投入 +上年同期资本化研发投入,2022年金额资本化研发投入 +上年同期资本化研发投入,上年同期本期资本化研发投入 +上年同期资本化研发投入,上期本期资本化研发投入 +上年同期资本化研发投入,上期金额本期资本化研发投入 +上年同期资本化研发投入,上年本期资本化研发投入 +上年同期资本化研发投入,上年度本期资本化研发投入 +上年同期资本化研发投入,2022年本期资本化研发投入 +上年同期资本化研发投入,2022年全年本期资本化研发投入 +上年同期资本化研发投入,2022年金额本期资本化研发投入 +前年同期资本化研发投入,前年同期资本化研发投入 +前年同期资本化研发投入,2021年资本化研发投入 +前年同期资本化研发投入,2021年全年资本化研发投入 +前年同期资本化研发投入,2021年金额资本化研发投入 +前年同期资本化研发投入,前年同期研发投入资本化的金额 +前年同期资本化研发投入,2021年研发投入资本化的金额 +前年同期资本化研发投入,2021年全年研发投入资本化的金额 +前年同期资本化研发投入,2021年金额研发投入资本化的金额 +前年同期资本化研发投入,前年同期研发支出资本化的金额 +前年同期资本化研发投入,2021年研发支出资本化的金额 +前年同期资本化研发投入,2021年全年研发支出资本化的金额 +前年同期资本化研发投入,2021年金额研发支出资本化的金额 +前年同期资本化研发投入,前年同期资本化研发投入 +前年同期资本化研发投入,2021年资本化研发投入 +前年同期资本化研发投入,2021年全年资本化研发投入 +前年同期资本化研发投入,2021年金额资本化研发投入 +前年同期资本化研发投入,前年同期本期资本化研发投入 +前年同期资本化研发投入,2021年本期资本化研发投入 +前年同期资本化研发投入,2021年全年本期资本化研发投入 +前年同期资本化研发投入,2021年金额本期资本化研发投入 +资本化研发投入同比变动,资本化研发投入同比变动 +资本化研发投入同比变动,资本化研发投入同比增减 +资本化研发投入同比变动,资本化研发投入同比上升 +资本化研发投入同比变动,资本化研发投入同比下降 +资本化研发投入同比变动,资本化研发投入变化幅度 +资本化研发投入同比变动,资本化研发投入变动比例 +资本化研发投入同比变动,资本化研发投入本期比上年同期增减 +资本化研发投入同比变动,资本化研发投入本年比上年增减 +资本化研发投入同比变动,资本化研发投入本期期末金额较上期期末变动比例 +资本化研发投入同比变动,研发投入资本化的金额同比变动 +资本化研发投入同比变动,研发投入资本化的金额同比增减 +资本化研发投入同比变动,研发投入资本化的金额同比上升 +资本化研发投入同比变动,研发投入资本化的金额同比下降 +资本化研发投入同比变动,研发投入资本化的金额变化幅度 +资本化研发投入同比变动,研发投入资本化的金额变动比例 +资本化研发投入同比变动,研发投入资本化的金额本期比上年同期增减 +资本化研发投入同比变动,研发投入资本化的金额本年比上年增减 +资本化研发投入同比变动,研发投入资本化的金额本期期末金额较上期期末变动比例 +资本化研发投入同比变动,研发支出资本化的金额同比变动 +资本化研发投入同比变动,研发支出资本化的金额同比增减 +资本化研发投入同比变动,研发支出资本化的金额同比上升 +资本化研发投入同比变动,研发支出资本化的金额同比下降 +资本化研发投入同比变动,研发支出资本化的金额变化幅度 +资本化研发投入同比变动,研发支出资本化的金额变动比例 +资本化研发投入同比变动,研发支出资本化的金额本期比上年同期增减 +资本化研发投入同比变动,研发支出资本化的金额本年比上年增减 +资本化研发投入同比变动,研发支出资本化的金额本期期末金额较上期期末变动比例 +资本化研发投入同比变动,资本化研发投入同比变动 +资本化研发投入同比变动,资本化研发投入同比增减 +资本化研发投入同比变动,资本化研发投入同比上升 +资本化研发投入同比变动,资本化研发投入同比下降 +资本化研发投入同比变动,资本化研发投入变化幅度 +资本化研发投入同比变动,资本化研发投入变动比例 +资本化研发投入同比变动,资本化研发投入本期比上年同期增减 +资本化研发投入同比变动,资本化研发投入本年比上年增减 +资本化研发投入同比变动,资本化研发投入本期期末金额较上期期末变动比例 +资本化研发投入同比变动,本期资本化研发投入同比变动 +资本化研发投入同比变动,本期资本化研发投入同比增减 +资本化研发投入同比变动,本期资本化研发投入同比上升 +资本化研发投入同比变动,本期资本化研发投入同比下降 +资本化研发投入同比变动,本期资本化研发投入变化幅度 +资本化研发投入同比变动,本期资本化研发投入变动比例 +资本化研发投入同比变动,本期资本化研发投入本期比上年同期增减 +资本化研发投入同比变动,本期资本化研发投入本年比上年增减 +资本化研发投入同比变动,本期资本化研发投入本期期末金额较上期期末变动比例 +当期资本化研发投入占比,当期资本化研发投入占比 +当期资本化研发投入占比,本期资本化研发投入占比 +当期资本化研发投入占比,本报告期资本化研发投入占比 +当期资本化研发投入占比,报告期资本化研发投入占比 +当期资本化研发投入占比,报告期内资本化研发投入占比 +当期资本化研发投入占比,本年度资本化研发投入占比 +当期资本化研发投入占比,本期金额资本化研发投入占比 +当期资本化研发投入占比,本期发生额资本化研发投入占比 +当期资本化研发投入占比,2023年资本化研发投入占比 +当期资本化研发投入占比,2023年全年资本化研发投入占比 +当期资本化研发投入占比,2023年金额资本化研发投入占比 +当期资本化研发投入占比,当期资本化研发投入占研发投入的比例 +当期资本化研发投入占比,本期资本化研发投入占研发投入的比例 +当期资本化研发投入占比,本报告期资本化研发投入占研发投入的比例 +当期资本化研发投入占比,报告期资本化研发投入占研发投入的比例 +当期资本化研发投入占比,报告期内资本化研发投入占研发投入的比例 +当期资本化研发投入占比,本年度资本化研发投入占研发投入的比例 +当期资本化研发投入占比,本期金额资本化研发投入占研发投入的比例 +当期资本化研发投入占比,本期发生额资本化研发投入占研发投入的比例 +当期资本化研发投入占比,2023年资本化研发投入占研发投入的比例 +当期资本化研发投入占比,2023年全年资本化研发投入占研发投入的比例 +当期资本化研发投入占比,2023年金额资本化研发投入占研发投入的比例 +当期资本化研发投入占比,当期资本化研发支出占研发支出的比例 +当期资本化研发投入占比,本期资本化研发支出占研发支出的比例 +当期资本化研发投入占比,本报告期资本化研发支出占研发支出的比例 +当期资本化研发投入占比,报告期资本化研发支出占研发支出的比例 +当期资本化研发投入占比,报告期内资本化研发支出占研发支出的比例 +当期资本化研发投入占比,本年度资本化研发支出占研发支出的比例 +当期资本化研发投入占比,本期金额资本化研发支出占研发支出的比例 +当期资本化研发投入占比,本期发生额资本化研发支出占研发支出的比例 +当期资本化研发投入占比,2023年资本化研发支出占研发支出的比例 +当期资本化研发投入占比,2023年全年资本化研发支出占研发支出的比例 +当期资本化研发投入占比,2023年金额资本化研发支出占研发支出的比例 +当期资本化研发投入占比,当期研发投入资本化的比重 +当期资本化研发投入占比,本期研发投入资本化的比重 +当期资本化研发投入占比,本报告期研发投入资本化的比重 +当期资本化研发投入占比,报告期研发投入资本化的比重 +当期资本化研发投入占比,报告期内研发投入资本化的比重 +当期资本化研发投入占比,本年度研发投入资本化的比重 +当期资本化研发投入占比,本期金额研发投入资本化的比重 +当期资本化研发投入占比,本期发生额研发投入资本化的比重 +当期资本化研发投入占比,2023年研发投入资本化的比重 +当期资本化研发投入占比,2023年全年研发投入资本化的比重 +当期资本化研发投入占比,2023年金额研发投入资本化的比重 +上年同期资本化研发投入占比,上年同期资本化研发投入占比 +上年同期资本化研发投入占比,上期资本化研发投入占比 +上年同期资本化研发投入占比,上期金额资本化研发投入占比 +上年同期资本化研发投入占比,上年资本化研发投入占比 +上年同期资本化研发投入占比,上年度资本化研发投入占比 +上年同期资本化研发投入占比,2022年资本化研发投入占比 +上年同期资本化研发投入占比,2022年全年资本化研发投入占比 +上年同期资本化研发投入占比,2022年金额资本化研发投入占比 +上年同期资本化研发投入占比,上年同期资本化研发投入占研发投入的比例 +上年同期资本化研发投入占比,上期资本化研发投入占研发投入的比例 +上年同期资本化研发投入占比,上期金额资本化研发投入占研发投入的比例 +上年同期资本化研发投入占比,上年资本化研发投入占研发投入的比例 +上年同期资本化研发投入占比,上年度资本化研发投入占研发投入的比例 +上年同期资本化研发投入占比,2022年资本化研发投入占研发投入的比例 +上年同期资本化研发投入占比,2022年全年资本化研发投入占研发投入的比例 +上年同期资本化研发投入占比,2022年金额资本化研发投入占研发投入的比例 +上年同期资本化研发投入占比,上年同期资本化研发支出占研发支出的比例 +上年同期资本化研发投入占比,上期资本化研发支出占研发支出的比例 +上年同期资本化研发投入占比,上期金额资本化研发支出占研发支出的比例 +上年同期资本化研发投入占比,上年资本化研发支出占研发支出的比例 +上年同期资本化研发投入占比,上年度资本化研发支出占研发支出的比例 +上年同期资本化研发投入占比,2022年资本化研发支出占研发支出的比例 +上年同期资本化研发投入占比,2022年全年资本化研发支出占研发支出的比例 +上年同期资本化研发投入占比,2022年金额资本化研发支出占研发支出的比例 +上年同期资本化研发投入占比,上年同期研发投入资本化的比重 +上年同期资本化研发投入占比,上期研发投入资本化的比重 +上年同期资本化研发投入占比,上期金额研发投入资本化的比重 +上年同期资本化研发投入占比,上年研发投入资本化的比重 +上年同期资本化研发投入占比,上年度研发投入资本化的比重 +上年同期资本化研发投入占比,2022年研发投入资本化的比重 +上年同期资本化研发投入占比,2022年全年研发投入资本化的比重 +上年同期资本化研发投入占比,2022年金额研发投入资本化的比重 +前年同期资本化研发投入占比,前年同期资本化研发投入占比 +前年同期资本化研发投入占比,2021年资本化研发投入占比 +前年同期资本化研发投入占比,2021年全年资本化研发投入占比 +前年同期资本化研发投入占比,2021年金额资本化研发投入占比 +前年同期资本化研发投入占比,前年同期资本化研发投入占研发投入的比例 +前年同期资本化研发投入占比,2021年资本化研发投入占研发投入的比例 +前年同期资本化研发投入占比,2021年全年资本化研发投入占研发投入的比例 +前年同期资本化研发投入占比,2021年金额资本化研发投入占研发投入的比例 +前年同期资本化研发投入占比,前年同期资本化研发支出占研发支出的比例 +前年同期资本化研发投入占比,2021年资本化研发支出占研发支出的比例 +前年同期资本化研发投入占比,2021年全年资本化研发支出占研发支出的比例 +前年同期资本化研发投入占比,2021年金额资本化研发支出占研发支出的比例 +前年同期资本化研发投入占比,前年同期研发投入资本化的比重 +前年同期资本化研发投入占比,2021年研发投入资本化的比重 +前年同期资本化研发投入占比,2021年全年研发投入资本化的比重 +前年同期资本化研发投入占比,2021年金额研发投入资本化的比重 +资本化研发投入占比同比变动,资本化研发投入占比同比变动 +资本化研发投入占比同比变动,资本化研发投入占比同比增减 +资本化研发投入占比同比变动,资本化研发投入占比同比上升 +资本化研发投入占比同比变动,资本化研发投入占比同比下降 +资本化研发投入占比同比变动,资本化研发投入占比变化幅度 +资本化研发投入占比同比变动,资本化研发投入占比变动比例 +资本化研发投入占比同比变动,资本化研发投入占比本期比上年同期增减 +资本化研发投入占比同比变动,资本化研发投入占比本年比上年增减 +资本化研发投入占比同比变动,资本化研发投入占比本期期末金额较上期期末变动比例 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例同比变动 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例同比增减 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例同比上升 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例同比下降 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例变化幅度 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例变动比例 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例本期比上年同期增减 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例本年比上年增减 +资本化研发投入占比同比变动,资本化研发投入占研发投入的比例本期期末金额较上期期末变动比例 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例同比变动 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例同比增减 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例同比上升 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例同比下降 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例变化幅度 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例变动比例 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例本期比上年同期增减 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例本年比上年增减 +资本化研发投入占比同比变动,资本化研发支出占研发支出的比例本期期末金额较上期期末变动比例 +资本化研发投入占比同比变动,研发投入资本化的比重同比变动 +资本化研发投入占比同比变动,研发投入资本化的比重同比增减 +资本化研发投入占比同比变动,研发投入资本化的比重同比上升 +资本化研发投入占比同比变动,研发投入资本化的比重同比下降 +资本化研发投入占比同比变动,研发投入资本化的比重变化幅度 +资本化研发投入占比同比变动,研发投入资本化的比重变动比例 +资本化研发投入占比同比变动,研发投入资本化的比重本期比上年同期增减 +资本化研发投入占比同比变动,研发投入资本化的比重本年比上年增减 +资本化研发投入占比同比变动,研发投入资本化的比重本期期末金额较上期期末变动比例 +当期研发投入占营业收入比例,当期研发投入占营业收入比例 +当期研发投入占营业收入比例,本期研发投入占营业收入比例 +当期研发投入占营业收入比例,本报告期研发投入占营业收入比例 +当期研发投入占营业收入比例,报告期研发投入占营业收入比例 +当期研发投入占营业收入比例,报告期内研发投入占营业收入比例 +当期研发投入占营业收入比例,本年度研发投入占营业收入比例 +当期研发投入占营业收入比例,本期金额研发投入占营业收入比例 +当期研发投入占营业收入比例,本期发生额研发投入占营业收入比例 +当期研发投入占营业收入比例,2023年研发投入占营业收入比例 +当期研发投入占营业收入比例,2023年全年研发投入占营业收入比例 +当期研发投入占营业收入比例,2023年金额研发投入占营业收入比例 +当期研发投入占营业收入比例,当期研发投入总额占营业收入比例 +当期研发投入占营业收入比例,本期研发投入总额占营业收入比例 +当期研发投入占营业收入比例,本报告期研发投入总额占营业收入比例 +当期研发投入占营业收入比例,报告期研发投入总额占营业收入比例 +当期研发投入占营业收入比例,报告期内研发投入总额占营业收入比例 +当期研发投入占营业收入比例,本年度研发投入总额占营业收入比例 +当期研发投入占营业收入比例,本期金额研发投入总额占营业收入比例 +当期研发投入占营业收入比例,本期发生额研发投入总额占营业收入比例 +当期研发投入占营业收入比例,2023年研发投入总额占营业收入比例 +当期研发投入占营业收入比例,2023年全年研发投入总额占营业收入比例 +当期研发投入占营业收入比例,2023年金额研发投入总额占营业收入比例 +上年同期研发投入占营业收入比例,上年同期研发投入占营业收入比例 +上年同期研发投入占营业收入比例,上期研发投入占营业收入比例 +上年同期研发投入占营业收入比例,上期金额研发投入占营业收入比例 +上年同期研发投入占营业收入比例,上年研发投入占营业收入比例 +上年同期研发投入占营业收入比例,上年度研发投入占营业收入比例 +上年同期研发投入占营业收入比例,2022年研发投入占营业收入比例 +上年同期研发投入占营业收入比例,2022年全年研发投入占营业收入比例 +上年同期研发投入占营业收入比例,2022年金额研发投入占营业收入比例 +上年同期研发投入占营业收入比例,上年同期研发投入总额占营业收入比例 +上年同期研发投入占营业收入比例,上期研发投入总额占营业收入比例 +上年同期研发投入占营业收入比例,上期金额研发投入总额占营业收入比例 +上年同期研发投入占营业收入比例,上年研发投入总额占营业收入比例 +上年同期研发投入占营业收入比例,上年度研发投入总额占营业收入比例 +上年同期研发投入占营业收入比例,2022年研发投入总额占营业收入比例 +上年同期研发投入占营业收入比例,2022年全年研发投入总额占营业收入比例 +上年同期研发投入占营业收入比例,2022年金额研发投入总额占营业收入比例 +前年同期研发投入占营业收入比例,前年同期研发投入占营业收入比例 +前年同期研发投入占营业收入比例,2021年研发投入占营业收入比例 +前年同期研发投入占营业收入比例,2021年全年研发投入占营业收入比例 +前年同期研发投入占营业收入比例,2021年金额研发投入占营业收入比例 +前年同期研发投入占营业收入比例,前年同期研发投入总额占营业收入比例 +前年同期研发投入占营业收入比例,2021年研发投入总额占营业收入比例 +前年同期研发投入占营业收入比例,2021年全年研发投入总额占营业收入比例 +前年同期研发投入占营业收入比例,2021年金额研发投入总额占营业收入比例 +研发投入占营业收入比例同比变动,研发投入占营业收入比例同比变动 +研发投入占营业收入比例同比变动,研发投入占营业收入比例同比增减 +研发投入占营业收入比例同比变动,研发投入占营业收入比例同比上升 +研发投入占营业收入比例同比变动,研发投入占营业收入比例同比下降 +研发投入占营业收入比例同比变动,研发投入占营业收入比例变化幅度 +研发投入占营业收入比例同比变动,研发投入占营业收入比例变动比例 +研发投入占营业收入比例同比变动,研发投入占营业收入比例本期比上年同期增减 +研发投入占营业收入比例同比变动,研发投入占营业收入比例本年比上年增减 +研发投入占营业收入比例同比变动,研发投入占营业收入比例本期期末金额较上期期末变动比例 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例同比变动 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例同比增减 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例同比上升 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例同比下降 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例变化幅度 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例变动比例 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例本期比上年同期增减 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例本年比上年增减 +研发投入占营业收入比例同比变动,研发投入总额占营业收入比例本期期末金额较上期期末变动比例 \ No newline at end of file diff --git a/zzb_data_prod/not_match.txt b/zzb_data_prod/not_match.txt new file mode 100644 index 0000000..079ac57 --- /dev/null +++ b/zzb_data_prod/not_match.txt @@ -0,0 +1,4164 @@ +当期营业收入:当期营业收入:合计合计营业收入:0.8610458970069885:1529440280.25:200:3 +当期营业收入:当期营业收入:合计合计营业收入:0.8610458970069885:1908540816.12:160:1 +当期营业收入:本期营业收入:合计合计营业收入:0.9017857909202576:1529440280.25:200:3 +当期营业收入:本期营业收入:合计合计营业收入:0.9017857909202576:1908540816.12:160:1 +当期营业收入:本报告期营业收入:合计合计营业收入:0.8669588565826416:1529440280.25:200:3 +当期营业收入:本报告期营业收入:合计合计营业收入:0.8669588565826416:1908540816.12:160:1 +当期营业收入:报告期营业收入:合计合计营业收入:0.867494523525238:1529440280.25:200:3 +当期营业收入:报告期营业收入:合计合计营业收入:0.867494523525238:1908540816.12:160:1 +当期营业收入:报告期内营业收入:合计合计营业收入:0.839704692363739:1529440280.25:200:3 +当期营业收入:报告期内营业收入:合计合计营业收入:0.839704692363739:1908540816.12:160:1 +当期营业收入:本年度营业收入:合计合计营业收入:0.8656280636787415:1529440280.25:200:3 +当期营业收入:本年度营业收入:合计合计营业收入:0.8656280636787415:1908540816.12:160:1 +当期营业收入:本期发生额营业收入:合计本期发生额收入:0.8915550708770752:1529440280.25:200:2 +当期营业收入:本期发生额营业收入:合计上期发生额收入:0.8578814268112183:1316036204.14:200:2 +当期营业收入:2023年营业收入:一、营业收入2023年度:0.9160630106925964:1529440280.25:82:1 +当期营业收入:2023年营业收入:一、营业收入2022年度:0.8875380754470825:1316036204.14:82:1 +当期营业收入:2023年全年营业收入:一、营业收入2023年度:0.8905119895935059:1529440280.25:82:1 +当期营业收入:2023年全年营业收入:一、营业收入2022年度:0.86033695936203:1316036204.14:82:1 +当期营业收入:2023年金额营业收入:一、营业收入2023年度:0.8880469799041748:1529440280.25:82:1 +当期营业收入:2023年金额营业收入:一、营业收入2022年度:0.8613478541374207:1316036204.14:82:1 +当期营业收入:当期营业收入合计:合计合计营业收入:0.89673912525177:1529440280.25:200:3 +当期营业收入:当期营业收入合计:合计合计营业收入:0.89673912525177:1908540816.12:160:1 +当期营业收入:本期营业收入合计:合计合计营业收入:0.9155963659286499:1529440280.25:200:3 +当期营业收入:本期营业收入合计:合计合计营业收入:0.9155963659286499:1908540816.12:160:1 +当期营业收入:本报告期营业收入合计:合计合计营业收入:0.8868198394775391:1529440280.25:200:3 +当期营业收入:本报告期营业收入合计:合计合计营业收入:0.8868198394775391:1908540816.12:160:1 +当期营业收入:报告期营业收入合计:合计合计营业收入:0.8908512592315674:1529440280.25:200:3 +当期营业收入:报告期营业收入合计:合计合计营业收入:0.8908512592315674:1908540816.12:160:1 +当期营业收入:报告期内营业收入合计:合计合计营业收入:0.8486268520355225:1529440280.25:200:3 +当期营业收入:报告期内营业收入合计:合计合计营业收入:0.8486268520355225:1908540816.12:160:1 +当期营业收入:本年度营业收入合计:合计合计营业收入:0.8922575116157532:1529440280.25:200:3 +当期营业收入:本年度营业收入合计:合计合计营业收入:0.8922575116157532:1908540816.12:160:1 +当期营业收入:本期发生额营业收入合计:合计本期发生额收入:0.9093244671821594:1529440280.25:200:2 +当期营业收入:本期发生额营业收入合计:合计上期发生额收入:0.873894214630127:1316036204.14:200:2 +当期营业收入:2023年营业收入合计:一、营业收入2023年度:0.9312591552734375:1529440280.25:82:1 +当期营业收入:2023年营业收入合计:一、营业收入2022年度:0.903525710105896:1316036204.14:82:1 +当期营业收入:2023年全年营业收入合计:一、营业收入2023年度:0.906334638595581:1529440280.25:82:1 +当期营业收入:2023年全年营业收入合计:一、营业收入2022年度:0.876448392868042:1316036204.14:82:1 +当期营业收入:2023年金额营业收入合计:一、营业收入2023年度:0.9001771807670593:1529440280.25:82:1 +当期营业收入:2023年金额营业收入合计:一、营业收入2022年度:0.8718213438987732:1316036204.14:82:1 +当期营业收入:当期营业收入总额:合计合计营业收入:0.8806697130203247:1529440280.25:200:3 +当期营业收入:当期营业收入总额:合计合计营业收入:0.8806697130203247:1908540816.12:160:1 +当期营业收入:本期营业收入总额:合计合计营业收入:0.9177300930023193:1529440280.25:200:3 +当期营业收入:本期营业收入总额:合计合计营业收入:0.9177300930023193:1908540816.12:160:1 +当期营业收入:本报告期营业收入总额:合计合计营业收入:0.8722314238548279:1529440280.25:200:3 +当期营业收入:本报告期营业收入总额:合计合计营业收入:0.8722314238548279:1908540816.12:160:1 +当期营业收入:报告期营业收入总额:合计合计营业收入:0.8806651830673218:1529440280.25:200:3 +当期营业收入:报告期营业收入总额:合计合计营业收入:0.8806651830673218:1908540816.12:160:1 +当期营业收入:报告期内营业收入总额:合计合计营业收入:0.8475635051727295:1529440280.25:200:3 +当期营业收入:报告期内营业收入总额:合计合计营业收入:0.8475635051727295:1908540816.12:160:1 +当期营业收入:本年度营业收入总额:合计合计营业收入:0.8710759878158569:1529440280.25:200:3 +当期营业收入:本年度营业收入总额:合计合计营业收入:0.8710759878158569:1908540816.12:160:1 +当期营业收入:本期发生额营业收入总额:合计本期发生额收入:0.8800533413887024:1529440280.25:200:2 +当期营业收入:本期发生额营业收入总额:合计上期发生额收入:0.8599944114685059:1316036204.14:200:2 +当期营业收入:2023年营业收入总额:一、营业收入2023年度:0.8955725431442261:1529440280.25:82:1 +当期营业收入:2023年营业收入总额:一、营业收入2022年度:0.8661902546882629:1316036204.14:82:1 +当期营业收入:2023年全年营业收入总额:一、营业收入2023年度:0.8664432764053345:1529440280.25:82:1 +当期营业收入:2023年全年营业收入总额:一、营业收入2022年度:0.8337422609329224:1316036204.14:82:1 +当期营业收入:2023年金额营业收入总额:一、营业收入2023年度:0.8738443851470947:1529440280.25:82:1 +当期营业收入:2023年金额营业收入总额:一、营业收入2022年度:0.8441925048828125:1316036204.14:82:1 +当期营业收入:当期营业收入金额:合计合计营业收入:0.8530008792877197:1529440280.25:200:3 +当期营业收入:当期营业收入金额:合计合计营业收入:0.8530008792877197:1908540816.12:160:1 +当期营业收入:本期营业收入金额:合计合计营业收入:0.896445631980896:1529440280.25:200:3 +当期营业收入:本期营业收入金额:合计合计营业收入:0.896445631980896:1908540816.12:160:1 +当期营业收入:本报告期营业收入金额:合计合计营业收入:0.8719156980514526:1529440280.25:200:3 +当期营业收入:本报告期营业收入金额:合计合计营业收入:0.8719156980514526:1908540816.12:160:1 +当期营业收入:报告期营业收入金额:合计合计营业收入:0.8575512170791626:1529440280.25:200:3 +当期营业收入:报告期营业收入金额:合计合计营业收入:0.8575512170791626:1908540816.12:160:1 +当期营业收入:报告期内营业收入金额:合计合计营业收入:0.831983208656311:1529440280.25:200:3 +当期营业收入:报告期内营业收入金额:合计合计营业收入:0.831983208656311:1908540816.12:160:1 +当期营业收入:本年度营业收入金额:合计合计营业收入:0.8666725754737854:1529440280.25:200:3 +当期营业收入:本年度营业收入金额:合计合计营业收入:0.8666725754737854:1908540816.12:160:1 +当期营业收入:本期发生额营业收入金额:合计本期发生额收入:0.8912511467933655:1529440280.25:200:2 +当期营业收入:本期发生额营业收入金额:合计上期发生额收入:0.8549070358276367:1316036204.14:200:2 +当期营业收入:2023年营业收入金额:一、营业收入2023年度:0.912598729133606:1529440280.25:82:1 +当期营业收入:2023年营业收入金额:一、营业收入2022年度:0.8884025812149048:1316036204.14:82:1 +当期营业收入:2023年全年营业收入金额:一、营业收入2023年度:0.8916991949081421:1529440280.25:82:1 +当期营业收入:2023年全年营业收入金额:一、营业收入2022年度:0.8640561103820801:1316036204.14:82:1 +当期营业收入:2023年金额营业收入金额:一、营业收入2023年度:0.8787837624549866:1529440280.25:82:1 +当期营业收入:2023年金额营业收入金额:一、营业收入2022年度:0.8538839221000671:1316036204.14:82:1 +当期营业收入:当期调整后营业收入:合计上期发生额收入:0.7667926549911499:1316036204.14:200:2 +当期营业收入:当期调整后营业收入:合计本期发生额收入:0.7629632353782654:1529440280.25:200:2 +当期营业收入:本期调整后营业收入:其他合计营业收入:0.8122152090072632:199722062.45:200:3 +当期营业收入:本期调整后营业收入:其他合计营业收入:0.8118422627449036:130449651.32:160:1 +当期营业收入:本报告期调整后营业收入:合计合计营业收入:0.7881966829299927:1529440280.25:200:3 +当期营业收入:本报告期调整后营业收入:合计合计营业收入:0.7881966829299927:1908540816.12:160:1 +当期营业收入:报告期调整后营业收入:合计合计营业收入:0.741988480091095:1529440280.25:200:3 +当期营业收入:报告期调整后营业收入:合计合计营业收入:0.741988480091095:1908540816.12:160:1 +当期营业收入:报告期内调整后营业收入:其他合计营业收入:0.7605239152908325:199722062.45:200:3 +当期营业收入:报告期内调整后营业收入:其他合计营业收入:0.7602180242538452:130449651.32:160:1 +当期营业收入:本年度调整后营业收入:其他合计营业收入:0.8297399282455444:199722062.45:200:3 +当期营业收入:本年度调整后营业收入:其他合计营业收入:0.8294879794120789:130449651.32:160:1 +当期营业收入:本期发生额调整后营业收入:合计本期发生额收入:0.7762886881828308:1529440280.25:200:2 +当期营业收入:本期发生额调整后营业收入:合计上期发生额收入:0.763839066028595:1316036204.14:200:2 +当期营业收入:2023年调整后营业收入:一、营业收入2023年度:0.8640714883804321:1529440280.25:82:1 +当期营业收入:2023年调整后营业收入:一、营业收入2022年度:0.8288634419441223:1316036204.14:82:1 +当期营业收入:2023年全年调整后营业收入:一、营业收入2023年度:0.85761559009552:1529440280.25:82:1 +当期营业收入:2023年全年调整后营业收入:一、营业收入2022年度:0.8226447105407715:1316036204.14:82:1 +当期营业收入:2023年金额调整后营业收入:一、营业收入2023年度:0.847604513168335:1529440280.25:82:1 +当期营业收入:2023年金额调整后营业收入:一、营业收入2022年度:0.8176367282867432:1316036204.14:82:1 +上年同期营业收入:上年同期营业收入:合计合计营业收入:0.8060787320137024:1529440280.25:200:3 +上年同期营业收入:上年同期营业收入:合计合计营业收入:0.8060787320137024:1908540816.12:160:1 +上年同期营业收入:上期营业收入:合计合计营业收入:0.8613735437393188:1529440280.25:200:3 +上年同期营业收入:上期营业收入:合计合计营业收入:0.8613735437393188:1908540816.12:160:1 +上年同期营业收入:上年度营业收入:合计合计营业收入:0.8574678897857666:1529440280.25:200:3 +上年同期营业收入:上年度营业收入:合计合计营业收入:0.8574678897857666:1908540816.12:160:1 +上年同期营业收入:2022年营业收入:一、营业收入2022年度:0.914231538772583:1316036204.14:82:1 +上年同期营业收入:2022年营业收入:一、营业收入2023年度:0.8908048272132874:1529440280.25:82:1 +上年同期营业收入:2022年全年营业收入:一、营业收入2022年度:0.8867119550704956:1316036204.14:82:1 +上年同期营业收入:2022年全年营业收入:一、营业收入2023年度:0.8636507987976074:1529440280.25:82:1 +上年同期营业收入:2022年金额营业收入:一、营业收入2022年度:0.8848048448562622:1316036204.14:82:1 +上年同期营业收入:2022年金额营业收入:一、营业收入2023年度:0.8598030805587769:1529440280.25:82:1 +上年同期营业收入:上年同期营业收入合计:合计合计营业收入:0.8287221789360046:1529440280.25:200:3 +上年同期营业收入:上年同期营业收入合计:合计合计营业收入:0.8287221789360046:1908540816.12:160:1 +上年同期营业收入:上期营业收入合计:合计合计营业收入:0.871444821357727:1529440280.25:200:3 +上年同期营业收入:上期营业收入合计:合计合计营业收入:0.871444821357727:1908540816.12:160:1 +上年同期营业收入:上年度营业收入合计:合计合计营业收入:0.8706979751586914:1529440280.25:200:3 +上年同期营业收入:上年度营业收入合计:合计合计营业收入:0.8706979751586914:1908540816.12:160:1 +上年同期营业收入:2022年营业收入合计:一、营业收入2022年度:0.9328346848487854:1316036204.14:82:1 +上年同期营业收入:2022年营业收入合计:一、营业收入2023年度:0.9121715426445007:1529440280.25:82:1 +上年同期营业收入:2022年全年营业收入合计:一、营业收入2022年度:0.9026998281478882:1316036204.14:82:1 +上年同期营业收入:2022年全年营业收入合计:一、营业收入2023年度:0.8838035464286804:1529440280.25:82:1 +上年同期营业收入:2022年金额营业收入合计:一、营业收入2022年度:0.8977106809616089:1316036204.14:82:1 +上年同期营业收入:2022年金额营业收入合计:一、营业收入2023年度:0.8735229969024658:1529440280.25:82:1 +上年同期营业收入:上年同期营业收入总额:合计合计营业收入:0.8015921711921692:1529440280.25:200:3 +上年同期营业收入:上年同期营业收入总额:合计合计营业收入:0.8015921711921692:1908540816.12:160:1 +上年同期营业收入:上期营业收入总额:合计合计营业收入:0.8666763305664062:1529440280.25:200:3 +上年同期营业收入:上期营业收入总额:合计合计营业收入:0.8666763305664062:1908540816.12:160:1 +上年同期营业收入:上年度营业收入总额:合计合计营业收入:0.8517194986343384:1529440280.25:200:3 +上年同期营业收入:上年度营业收入总额:合计合计营业收入:0.8517194986343384:1908540816.12:160:1 +上年同期营业收入:2022年营业收入总额:一、营业收入2022年度:0.8954847455024719:1316036204.14:82:1 +上年同期营业收入:2022年营业收入总额:一、营业收入2023年度:0.8717348575592041:1529440280.25:82:1 +上年同期营业收入:2022年全年营业收入总额:一、营业收入2022年度:0.8614148497581482:1316036204.14:82:1 +上年同期营业收入:2022年全年营业收入总额:一、营业收入2023年度:0.839020848274231:1529440280.25:82:1 +上年同期营业收入:2022年金额营业收入总额:一、营业收入2022年度:0.8681352138519287:1316036204.14:82:1 +上年同期营业收入:2022年金额营业收入总额:一、营业收入2023年度:0.8430963158607483:1529440280.25:82:1 +上年同期营业收入:上年同期营业收入金额:合计合计营业收入:0.8020575046539307:1529440280.25:200:3 +上年同期营业收入:上年同期营业收入金额:合计合计营业收入:0.8020575046539307:1908540816.12:160:1 +上年同期营业收入:上期营业收入金额:合计合计营业收入:0.8557167053222656:1529440280.25:200:3 +上年同期营业收入:上期营业收入金额:合计合计营业收入:0.8557167053222656:1908540816.12:160:1 +上年同期营业收入:上年度营业收入金额:合计合计营业收入:0.8484126329421997:1529440280.25:200:3 +上年同期营业收入:上年度营业收入金额:合计合计营业收入:0.8484126329421997:1908540816.12:160:1 +上年同期营业收入:2022年营业收入金额:一、营业收入2022年度:0.9142215251922607:1316036204.14:82:1 +上年同期营业收入:2022年营业收入金额:一、营业收入2023年度:0.8867112994194031:1529440280.25:82:1 +上年同期营业收入:2022年全年营业收入金额:一、营业收入2022年度:0.8891880512237549:1316036204.14:82:1 +上年同期营业收入:2022年全年营业收入金额:一、营业收入2023年度:0.8633373975753784:1529440280.25:82:1 +上年同期营业收入:2022年金额营业收入金额:一、营业收入2022年度:0.8767227530479431:1316036204.14:82:1 +上年同期营业收入:2022年金额营业收入金额:一、营业收入2023年度:0.8487356901168823:1529440280.25:82:1 +上年同期营业收入:上年同期调整后营业收入:合计上期发生额收入:0.732888400554657:1316036204.14:200:2 +上年同期营业收入:上年同期调整后营业收入:其他合计营业收入:0.7136104702949524:199722062.45:200:3 +上年同期营业收入:上期调整后营业收入:合计上期发生额收入:0.7804560661315918:1316036204.14:200:2 +上年同期营业收入:上期调整后营业收入:主营业务上期发生额收入:0.7750575542449951:1197550470.11:200:2 +上年同期营业收入:上年度调整后营业收入:其他合计营业收入:0.790281355381012:199722062.45:200:3 +上年同期营业收入:上年度调整后营业收入:其他合计营业收入:0.7898871898651123:130449651.32:160:1 +上年同期营业收入:2022年调整后营业收入:一、营业收入2022年度:0.860779881477356:1316036204.14:82:1 +上年同期营业收入:2022年调整后营业收入:一、营业收入2023年度:0.8434334397315979:1529440280.25:82:1 +上年同期营业收入:2022年全年调整后营业收入:一、营业收入2022年度:0.8514148592948914:1316036204.14:82:1 +上年同期营业收入:2022年全年调整后营业收入:一、营业收入2023年度:0.8355211615562439:1529440280.25:82:1 +上年同期营业收入:2022年金额调整后营业收入:一、营业收入2022年度:0.8458725810050964:1316036204.14:82:1 +上年同期营业收入:2022年金额调整后营业收入:一、营业收入2023年度:0.8251128196716309:1529440280.25:82:1 +前年同期营业收入:前年同期营业收入:合计合计营业收入:0.7806070446968079:1529440280.25:200:3 +前年同期营业收入:前年同期营业收入:合计合计营业收入:0.7806070446968079:1908540816.12:160:1 +前年同期营业收入:2021年营业收入:一、营业收入2022年度:0.855738639831543:1316036204.14:82:1 +前年同期营业收入:2021年营业收入:一、营业收入2023年度:0.8386956453323364:1529440280.25:82:1 +前年同期营业收入:2021年全年营业收入:一、营业收入2022年度:0.8338724374771118:1316036204.14:82:1 +前年同期营业收入:2021年全年营业收入:一、营业收入2023年度:0.8168089985847473:1529440280.25:82:1 +前年同期营业收入:2021年金额营业收入:一、营业收入2022年度:0.8244103789329529:1316036204.14:82:1 +前年同期营业收入:2021年金额营业收入:合计合计营业收入:0.8073233366012573:1908540816.12:160:1 +前年同期营业收入:前年同期营业收入合计:合计合计营业收入:0.7979026436805725:1529440280.25:200:3 +前年同期营业收入:前年同期营业收入合计:合计合计营业收入:0.7979026436805725:1908540816.12:160:1 +前年同期营业收入:2021年营业收入合计:一、营业收入2022年度:0.8727076053619385:1316036204.14:82:1 +前年同期营业收入:2021年营业收入合计:一、营业收入2023年度:0.8574000597000122:1529440280.25:82:1 +前年同期营业收入:2021年全年营业收入合计:一、营业收入2022年度:0.8482247591018677:1316036204.14:82:1 +前年同期营业收入:2021年全年营业收入合计:一、营业收入2023年度:0.8331912755966187:1529440280.25:82:1 +前年同期营业收入:2021年金额营业收入合计:一、营业收入2022年度:0.8368359208106995:1316036204.14:82:1 +前年同期营业收入:2021年金额营业收入合计:合计合计营业收入:0.8322687149047852:1908540816.12:160:1 +前年同期营业收入:前年同期营业收入总额:合计合计营业收入:0.7826546430587769:1529440280.25:200:3 +前年同期营业收入:前年同期营业收入总额:合计合计营业收入:0.7826546430587769:1908540816.12:160:1 +前年同期营业收入:2021年营业收入总额:一、营业收入2022年度:0.8376330733299255:1316036204.14:82:1 +前年同期营业收入:2021年营业收入总额:一、营业收入2023年度:0.8197631239891052:1529440280.25:82:1 +前年同期营业收入:2021年全年营业收入总额:一、营业收入2022年度:0.809916079044342:1316036204.14:82:1 +前年同期营业收入:2021年全年营业收入总额:一、营业收入2023年度:0.7929474711418152:1529440280.25:82:1 +前年同期营业收入:2021年金额营业收入总额:一、营业收入2022年度:0.8078598380088806:1316036204.14:82:1 +前年同期营业收入:2021年金额营业收入总额:合计合计营业收入:0.7985869646072388:1908540816.12:160:1 +前年同期营业收入:前年同期营业收入金额:合计合计营业收入:0.7736518979072571:1529440280.25:200:3 +前年同期营业收入:前年同期营业收入金额:合计合计营业收入:0.7736518979072571:1908540816.12:160:1 +前年同期营业收入:2021年营业收入金额:一、营业收入2022年度:0.8542253971099854:1316036204.14:82:1 +前年同期营业收入:2021年营业收入金额:一、营业收入2023年度:0.8339762687683105:1529440280.25:82:1 +前年同期营业收入:2021年全年营业收入金额:一、营业收入2022年度:0.8372402191162109:1316036204.14:82:1 +前年同期营业收入:2021年全年营业收入金额:一、营业收入2023年度:0.8180217742919922:1529440280.25:82:1 +前年同期营业收入:2021年金额营业收入金额:一、营业收入2022年度:0.8158104419708252:1316036204.14:82:1 +前年同期营业收入:2021年金额营业收入金额:一、营业收入2023年度:0.7961994409561157:1529440280.25:82:1 +前年同期营业收入:前年同期调整后营业收入:合计上期发生额收入:0.7168758511543274:1316036204.14:200:2 +前年同期营业收入:前年同期调整后营业收入:合计合计营业收入:0.6960475444793701:1908540816.12:160:1 +前年同期营业收入:2021年调整后营业收入:一、营业收入2022年度:0.8079087138175964:1316036204.14:82:1 +前年同期营业收入:2021年调整后营业收入:一、营业收入2023年度:0.7973334789276123:1529440280.25:82:1 +前年同期营业收入:2021年全年调整后营业收入:一、营业收入2022年度:0.7959243059158325:1316036204.14:82:1 +前年同期营业收入:2021年全年调整后营业收入:一、营业收入2023年度:0.7849537134170532:1529440280.25:82:1 +前年同期营业收入:2021年金额调整后营业收入:一、营业收入2022年度:0.7939000129699707:1316036204.14:82:1 +前年同期营业收入:2021年金额调整后营业收入:一、营业收入2023年度:0.7781789302825928:1529440280.25:82:1 +当期第一季度营业收入:当期第一季度营业收入:合计合计营业收入:0.7697231769561768:1529440280.25:200:3 +当期第一季度营业收入:当期第一季度营业收入:合计合计营业收入:0.7697231769561768:1908540816.12:160:1 +当期第一季度营业收入:本期第一季度营业收入:合计合计营业收入:0.8152278661727905:1529440280.25:200:3 +当期第一季度营业收入:本期第一季度营业收入:合计合计营业收入:0.8152278661727905:1908540816.12:160:1 +当期第一季度营业收入:本报告期第一季度营业收入:一、营业收入2023年度:0.7537218332290649:1529440280.25:82:1 +当期第一季度营业收入:本报告期第一季度营业收入:一、营业收入2022年度:0.7472591996192932:1316036204.14:82:1 +当期第一季度营业收入:报告期第一季度营业收入:一、营业收入2023年度:0.7371903657913208:1529440280.25:82:1 +当期第一季度营业收入:报告期第一季度营业收入:一、营业收入2022年度:0.7287268042564392:1316036204.14:82:1 +当期第一季度营业收入:报告期内第一季度营业收入:一、营业收入2022年度:0.7574669122695923:1316036204.14:82:1 +当期第一季度营业收入:报告期内第一季度营业收入:一、营业收入2023年度:0.7564677000045776:1529440280.25:82:1 +当期第一季度营业收入:本年度第一季度营业收入:一、营业收入2023年度:0.8088279962539673:1529440280.25:82:1 +当期第一季度营业收入:本年度第一季度营业收入:合计合计营业收入:0.8056900501251221:1908540816.12:160:1 +当期第一季度营业收入:本期发生额第一季度营业收入:合计本期发生额收入:0.7815280556678772:1529440280.25:200:2 +当期第一季度营业收入:本期发生额第一季度营业收入:合计上期发生额收入:0.7723479270935059:1316036204.14:200:2 +当期第一季度营业收入:2023年第一季度营业收入:一、营业收入2023年度:0.8834003210067749:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度营业收入:一、营业收入2022年度:0.8478075265884399:1316036204.14:82:1 +当期第一季度营业收入:2023年全年第一季度营业收入:一、营业收入2023年度:0.8552464246749878:1529440280.25:82:1 +当期第一季度营业收入:2023年全年第一季度营业收入:一、营业收入2022年度:0.8176230192184448:1316036204.14:82:1 +当期第一季度营业收入:2023年金额第一季度营业收入:一、营业收入2023年度:0.8435201644897461:1529440280.25:82:1 +当期第一季度营业收入:2023年金额第一季度营业收入:一、营业收入2022年度:0.8087093830108643:1316036204.14:82:1 +当期第一季度营业收入:第一季度营业收入:合计合计营业收入:0.80265212059021:1529440280.25:200:3 +当期第一季度营业收入:第一季度营业收入:合计合计营业收入:0.80265212059021:1908540816.12:160:1 +当期第一季度营业收入:1-3月营业收入:合计合计营业收入:0.8387395143508911:1529440280.25:200:3 +当期第一季度营业收入:1-3月营业收入:合计合计营业收入:0.8387395143508911:1908540816.12:160:1 +当期第一季度营业收入:第一季度(1-3月)营业收入:一、营业收入2023年度:0.7705226540565491:1529440280.25:82:1 +当期第一季度营业收入:第一季度(1-3月)营业收入:合计合计营业收入:0.7654190063476562:1908540816.12:160:1 +当期第一季度营业收入:2023年第一季度营业收入:一、营业收入2023年度:0.8834003210067749:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度营业收入:一、营业收入2022年度:0.8478075265884399:1316036204.14:82:1 +当期第一季度营业收入:当期第一季度营业收入合计:合计合计营业收入:0.7799856662750244:1529440280.25:200:3 +当期第一季度营业收入:当期第一季度营业收入合计:合计合计营业收入:0.7799856662750244:1908540816.12:160:1 +当期第一季度营业收入:本期第一季度营业收入合计:合计合计营业收入:0.8200230002403259:1529440280.25:200:3 +当期第一季度营业收入:本期第一季度营业收入合计:合计合计营业收入:0.8200230002403259:1908540816.12:160:1 +当期第一季度营业收入:本报告期第一季度营业收入合计:合计合计营业收入:0.7485299110412598:1529440280.25:200:3 +当期第一季度营业收入:本报告期第一季度营业收入合计:合计合计营业收入:0.7485299110412598:1908540816.12:160:1 +当期第一季度营业收入:报告期第一季度营业收入合计:一、营业收入2023年度:0.7333774566650391:1529440280.25:82:1 +当期第一季度营业收入:报告期第一季度营业收入合计:合计合计营业收入:0.7319813966751099:1908540816.12:160:1 +当期第一季度营业收入:报告期内第一季度营业收入合计:一、营业收入2023年度:0.739218533039093:1529440280.25:82:1 +当期第一季度营业收入:报告期内第一季度营业收入合计:一、营业收入2022年度:0.7388214468955994:1316036204.14:82:1 +当期第一季度营业收入:本年度第一季度营业收入合计:合计合计营业收入:0.8091668486595154:1529440280.25:200:3 +当期第一季度营业收入:本年度第一季度营业收入合计:合计合计营业收入:0.8091668486595154:1908540816.12:160:1 +当期第一季度营业收入:本期发生额第一季度营业收入合计:合计本期发生额收入:0.7877371311187744:1529440280.25:200:2 +当期第一季度营业收入:本期发生额第一季度营业收入合计:合计上期发生额收入:0.7841843366622925:1316036204.14:200:2 +当期第一季度营业收入:2023年第一季度营业收入合计:一、营业收入2023年度:0.8855074644088745:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度营业收入合计:一、营业收入2022年度:0.8490433692932129:1316036204.14:82:1 +当期第一季度营业收入:2023年全年第一季度营业收入合计:一、营业收入2023年度:0.8593831062316895:1529440280.25:82:1 +当期第一季度营业收入:2023年全年第一季度营业收入合计:一、营业收入2022年度:0.8207172155380249:1316036204.14:82:1 +当期第一季度营业收入:2023年金额第一季度营业收入合计:一、营业收入2023年度:0.8379248380661011:1529440280.25:82:1 +当期第一季度营业收入:2023年金额第一季度营业收入合计:一、营业收入2022年度:0.800845205783844:1316036204.14:82:1 +当期第一季度营业收入:第一季度营业收入合计:合计合计营业收入:0.8174300193786621:1529440280.25:200:3 +当期第一季度营业收入:第一季度营业收入合计:合计合计营业收入:0.8174300193786621:1908540816.12:160:1 +当期第一季度营业收入:1-3月营业收入合计:合计合计营业收入:0.8656914234161377:1529440280.25:200:3 +当期第一季度营业收入:1-3月营业收入合计:合计合计营业收入:0.8656914234161377:1908540816.12:160:1 +当期第一季度营业收入:第一季度(1-3月)营业收入合计:合计合计营业收入:0.7723628282546997:1529440280.25:200:3 +当期第一季度营业收入:第一季度(1-3月)营业收入合计:合计合计营业收入:0.7723628282546997:1908540816.12:160:1 +当期第一季度营业收入:2023年第一季度营业收入合计:一、营业收入2023年度:0.8855074644088745:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度营业收入合计:一、营业收入2022年度:0.8490433692932129:1316036204.14:82:1 +当期第一季度营业收入:当期第一季度营业收入总额:合计合计营业收入:0.7583635449409485:1529440280.25:200:3 +当期第一季度营业收入:当期第一季度营业收入总额:合计合计营业收入:0.7583635449409485:1908540816.12:160:1 +当期第一季度营业收入:本期第一季度营业收入总额:合计合计营业收入:0.8089246153831482:1529440280.25:200:3 +当期第一季度营业收入:本期第一季度营业收入总额:合计合计营业收入:0.8089246153831482:1908540816.12:160:1 +当期第一季度营业收入:本报告期第一季度营业收入总额:合计合计营业收入:0.7500815391540527:1529440280.25:200:3 +当期第一季度营业收入:本报告期第一季度营业收入总额:合计合计营业收入:0.7500815391540527:1908540816.12:160:1 +当期第一季度营业收入:报告期第一季度营业收入总额:合计合计营业收入:0.72684246301651:1529440280.25:200:3 +当期第一季度营业收入:报告期第一季度营业收入总额:合计合计营业收入:0.72684246301651:1908540816.12:160:1 +当期第一季度营业收入:报告期内第一季度营业收入总额:一、营业收入2022年度:0.735292375087738:1316036204.14:82:1 +当期第一季度营业收入:报告期内第一季度营业收入总额:一、营业收入2023年度:0.7336913347244263:1529440280.25:82:1 +当期第一季度营业收入:本年度第一季度营业收入总额:合计合计营业收入:0.7954764366149902:1529440280.25:200:3 +当期第一季度营业收入:本年度第一季度营业收入总额:合计合计营业收入:0.7954764366149902:1908540816.12:160:1 +当期第一季度营业收入:本期发生额第一季度营业收入总额:合计上期发生额收入:0.7692383527755737:1316036204.14:200:2 +当期第一季度营业收入:本期发生额第一季度营业收入总额:合计本期发生额收入:0.7645208835601807:1529440280.25:200:2 +当期第一季度营业收入:2023年第一季度营业收入总额:一、营业收入2023年度:0.8623106479644775:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度营业收入总额:一、营业收入2022年度:0.8253326416015625:1316036204.14:82:1 +当期第一季度营业收入:2023年全年第一季度营业收入总额:一、营业收入2023年度:0.8307556509971619:1529440280.25:82:1 +当期第一季度营业收入:2023年全年第一季度营业收入总额:一、营业收入2022年度:0.7919290065765381:1316036204.14:82:1 +当期第一季度营业收入:2023年金额第一季度营业收入总额:一、营业收入2023年度:0.8188217878341675:1529440280.25:82:1 +当期第一季度营业收入:2023年金额第一季度营业收入总额:一、营业收入2022年度:0.7819104194641113:1316036204.14:82:1 +当期第一季度营业收入:第一季度营业收入总额:合计合计营业收入:0.7851467132568359:1529440280.25:200:3 +当期第一季度营业收入:第一季度营业收入总额:合计合计营业收入:0.7851467132568359:1908540816.12:160:1 +当期第一季度营业收入:1-3月营业收入总额:合计合计营业收入:0.8494647741317749:1529440280.25:200:3 +当期第一季度营业收入:1-3月营业收入总额:合计合计营业收入:0.8494647741317749:1908540816.12:160:1 +当期第一季度营业收入:第一季度(1-3月)营业收入总额:合计合计营业收入:0.7452437281608582:1529440280.25:200:3 +当期第一季度营业收入:第一季度(1-3月)营业收入总额:合计合计营业收入:0.7452437281608582:1908540816.12:160:1 +当期第一季度营业收入:2023年第一季度营业收入总额:一、营业收入2023年度:0.8623106479644775:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度营业收入总额:一、营业收入2022年度:0.8253326416015625:1316036204.14:82:1 +当期第一季度营业收入:当期第一季度营业收入金额:合计本期发生额收入:0.765932559967041:1529440280.25:200:2 +当期第一季度营业收入:当期第一季度营业收入金额:合计合计营业收入:0.764467716217041:1908540816.12:160:1 +当期第一季度营业收入:本期第一季度营业收入金额:合计合计营业收入:0.8108253479003906:1529440280.25:200:3 +当期第一季度营业收入:本期第一季度营业收入金额:合计合计营业收入:0.8108253479003906:1908540816.12:160:1 +当期第一季度营业收入:本报告期第一季度营业收入金额:一、营业收入2023年度:0.7475394010543823:1529440280.25:82:1 +当期第一季度营业收入:本报告期第一季度营业收入金额:一、营业收入2022年度:0.7443409562110901:1316036204.14:82:1 +当期第一季度营业收入:报告期第一季度营业收入金额:一、营业收入2023年度:0.7268572449684143:1529440280.25:82:1 +当期第一季度营业收入:报告期第一季度营业收入金额:一、营业收入2022年度:0.7239212393760681:1316036204.14:82:1 +当期第一季度营业收入:报告期内第一季度营业收入金额:一、营业收入2022年度:0.7445072531700134:1316036204.14:82:1 +当期第一季度营业收入:报告期内第一季度营业收入金额:一、营业收入2023年度:0.7396459579467773:1529440280.25:82:1 +当期第一季度营业收入:本年度第一季度营业收入金额:一、营业收入2023年度:0.7978973388671875:1529440280.25:82:1 +当期第一季度营业收入:本年度第一季度营业收入金额:合计合计营业收入:0.7968685626983643:1908540816.12:160:1 +当期第一季度营业收入:本期发生额第一季度营业收入金额:合计本期发生额收入:0.7903047800064087:1529440280.25:200:2 +当期第一季度营业收入:本期发生额第一季度营业收入金额:合计上期发生额收入:0.782638669013977:1316036204.14:200:2 +当期第一季度营业收入:2023年第一季度营业收入金额:一、营业收入2023年度:0.8811375498771667:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度营业收入金额:一、营业收入2022年度:0.8500213623046875:1316036204.14:82:1 +当期第一季度营业收入:2023年全年第一季度营业收入金额:一、营业收入2023年度:0.8536269068717957:1529440280.25:82:1 +当期第一季度营业收入:2023年全年第一季度营业收入金额:一、营业收入2022年度:0.8204106092453003:1316036204.14:82:1 +当期第一季度营业收入:2023年金额第一季度营业收入金额:一、营业收入2023年度:0.8287789225578308:1529440280.25:82:1 +当期第一季度营业收入:2023年金额第一季度营业收入金额:一、营业收入2022年度:0.7971701622009277:1316036204.14:82:1 +当期第一季度营业收入:第一季度营业收入金额:合计合计营业收入:0.7936832308769226:1529440280.25:200:3 +当期第一季度营业收入:第一季度营业收入金额:合计合计营业收入:0.7936832308769226:1908540816.12:160:1 +当期第一季度营业收入:1-3月营业收入金额:合计合计营业收入:0.8434877395629883:1529440280.25:200:3 +当期第一季度营业收入:1-3月营业收入金额:合计合计营业收入:0.8434877395629883:1908540816.12:160:1 +当期第一季度营业收入:第一季度(1-3月)营业收入金额:一、营业收入2023年度:0.7523388862609863:1529440280.25:82:1 +当期第一季度营业收入:第一季度(1-3月)营业收入金额:合计合计营业收入:0.7487790584564209:1908540816.12:160:1 +当期第一季度营业收入:2023年第一季度营业收入金额:一、营业收入2023年度:0.8811375498771667:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度营业收入金额:一、营业收入2022年度:0.8500213623046875:1316036204.14:82:1 +当期第一季度营业收入:当期第一季度调整后营业收入:主营业务上期发生额收入:0.6975336670875549:1197550470.11:200:2 +当期第一季度营业收入:当期第一季度调整后营业收入:主营业务本期发生额收入:0.6885730624198914:1375217915.12:200:2 +当期第一季度营业收入:本期第一季度调整后营业收入:主营业务本期发生额收入:0.730546772480011:1375217915.12:200:2 +当期第一季度营业收入:本期第一季度调整后营业收入:主营业务上期发生额收入:0.7030433416366577:1197550470.11:200:2 +当期第一季度营业收入:本报告期第一季度调整后营业收入:主营业务本期发生额收入:0.6922404766082764:1375217915.12:200:2 +当期第一季度营业收入:本报告期第一季度调整后营业收入:一、营业收入2023年度:0.6787075996398926:1529440280.25:82:1 +当期第一季度营业收入:报告期第一季度调整后营业收入:主营业务上期发生额收入:0.652681827545166:1197550470.11:200:2 +当期第一季度营业收入:报告期第一季度调整后营业收入:主营业务本期发生额收入:0.652046263217926:1375217915.12:200:2 +当期第一季度营业收入:报告期内第一季度调整后营业收入:主营业务本期发生额收入:0.6876260042190552:1375217915.12:200:2 +当期第一季度营业收入:报告期内第一季度调整后营业收入:一、营业收入2023年度:0.671130895614624:1529440280.25:82:1 +当期第一季度营业收入:本年度第一季度调整后营业收入:主营业务本期发生额收入:0.7529772520065308:1375217915.12:200:2 +当期第一季度营业收入:本年度第一季度调整后营业收入:一、营业收入2023年度:0.7504528760910034:1529440280.25:82:1 +当期第一季度营业收入:本期发生额第一季度调整后营业收入:主营业务本期发生额收入:0.7152487635612488:1375217915.12:200:2 +当期第一季度营业收入:本期发生额第一季度调整后营业收入:主营业务上期发生额收入:0.709247350692749:1197550470.11:200:2 +当期第一季度营业收入:2023年第一季度调整后营业收入:一、营业收入2023年度:0.816794753074646:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度调整后营业收入:二、营业利润2023年度:0.7783002853393555:168108294.15:82:1 +当期第一季度营业收入:2023年全年第一季度调整后营业收入:一、营业收入2023年度:0.803075909614563:1529440280.25:82:1 +当期第一季度营业收入:2023年全年第一季度调整后营业收入:二、营业利润2023年度:0.7689988613128662:168108294.15:82:1 +当期第一季度营业收入:2023年金额第一季度调整后营业收入:一、营业收入2023年度:0.7715905904769897:1529440280.25:82:1 +当期第一季度营业收入:2023年金额第一季度调整后营业收入:二、营业利润2023年度:0.7457960844039917:168108294.15:82:1 +当期第一季度营业收入:第一季度调整后营业收入:一、营业收入2023年度:0.6810765266418457:1529440280.25:82:1 +当期第一季度营业收入:第一季度调整后营业收入:一、营业收入2022年度:0.6661894917488098:1316036204.14:82:1 +当期第一季度营业收入:1-3月调整后营业收入:合计合计营业收入:0.7766377925872803:1529440280.25:200:3 +当期第一季度营业收入:1-3月调整后营业收入:合计合计营业收入:0.7766377925872803:1908540816.12:160:1 +当期第一季度营业收入:第一季度(1-3月)调整后营业收入:一、营业收入2023年度:0.6824878454208374:1529440280.25:82:1 +当期第一季度营业收入:第一季度(1-3月)调整后营业收入:二、营业利润2023年度:0.6608095765113831:168108294.15:82:1 +当期第一季度营业收入:2023年第一季度调整后营业收入:一、营业收入2023年度:0.816794753074646:1529440280.25:82:1 +当期第一季度营业收入:2023年第一季度调整后营业收入:二、营业利润2023年度:0.7783002853393555:168108294.15:82:1 +当期第二季度营业收入:当期第二季度营业收入:一、营业收入2022年度:0.7499927878379822:1316036204.14:82:1 +当期第二季度营业收入:当期第二季度营业收入:合计合计营业收入:0.7478433847427368:1908540816.12:160:1 +当期第二季度营业收入:本期第二季度营业收入:一、营业收入2022年度:0.7947524785995483:1316036204.14:82:1 +当期第二季度营业收入:本期第二季度营业收入:合计合计营业收入:0.7798612117767334:1908540816.12:160:1 +当期第二季度营业收入:本报告期第二季度营业收入:一、营业收入2022年度:0.7616323828697205:1316036204.14:82:1 +当期第二季度营业收入:本报告期第二季度营业收入:二、营业利润2022年度:0.7258411049842834:140290776.93:82:1 +当期第二季度营业收入:报告期第二季度营业收入:一、营业收入2022年度:0.7443479299545288:1316036204.14:82:1 +当期第二季度营业收入:报告期第二季度营业收入:二、营业利润2022年度:0.7303050756454468:140290776.93:82:1 +当期第二季度营业收入:报告期内第二季度营业收入:一、营业收入2022年度:0.7629543542861938:1316036204.14:82:1 +当期第二季度营业收入:报告期内第二季度营业收入:一、营业收入2023年度:0.7259098887443542:1529440280.25:82:1 +当期第二季度营业收入:本年度第二季度营业收入:一、营业收入2022年度:0.8174691796302795:1316036204.14:82:1 +当期第二季度营业收入:本年度第二季度营业收入:合计合计营业收入:0.795146644115448:1908540816.12:160:1 +当期第二季度营业收入:本期发生额第二季度营业收入:合计本期发生额收入:0.7458164095878601:1529440280.25:200:2 +当期第二季度营业收入:本期发生额第二季度营业收入:主营业务本期发生额收入:0.7422898411750793:1375217915.12:200:2 +当期第二季度营业收入:2023年第二季度营业收入:一、营业收入2023年度:0.8507882356643677:1529440280.25:82:1 +当期第二季度营业收入:2023年第二季度营业收入:一、营业收入2022年度:0.844813346862793:1316036204.14:82:1 +当期第二季度营业收入:2023年全年第二季度营业收入:一、营业收入2023年度:0.8153694868087769:1529440280.25:82:1 +当期第二季度营业收入:2023年全年第二季度营业收入:一、营业收入2022年度:0.8123082518577576:1316036204.14:82:1 +当期第二季度营业收入:2023年金额第二季度营业收入:一、营业收入2023年度:0.8177069425582886:1529440280.25:82:1 +当期第二季度营业收入:2023年金额第二季度营业收入:二、营业利润2023年度:0.8068555593490601:168108294.15:82:1 +当期第二季度营业收入:第二季度营业收入:一、营业收入2022年度:0.7727704048156738:1316036204.14:82:1 +当期第二季度营业收入:第二季度营业收入:合计合计营业收入:0.7596870064735413:1908540816.12:160:1 +当期第二季度营业收入:4-6月营业收入:合计合计营业收入:0.8240814208984375:1529440280.25:200:3 +当期第二季度营业收入:4-6月营业收入:合计合计营业收入:0.8240814208984375:1908540816.12:160:1 +当期第二季度营业收入:第二季度(4-6月)营业收入:合计合计营业收入:0.7300079464912415:1529440280.25:200:3 +当期第二季度营业收入:第二季度(4-6月)营业收入:合计合计营业收入:0.7300079464912415:1908540816.12:160:1 +当期第二季度营业收入:2023年第二季度营业收入:一、营业收入2023年度:0.8507882356643677:1529440280.25:82:1 +当期第二季度营业收入:2023年第二季度营业收入:一、营业收入2022年度:0.844813346862793:1316036204.14:82:1 +当期第二季度营业收入:当期第二季度营业收入合计:合计合计营业收入:0.7526664733886719:1529440280.25:200:3 +当期第二季度营业收入:当期第二季度营业收入合计:合计合计营业收入:0.7526664733886719:1908540816.12:160:1 +当期第二季度营业收入:本期第二季度营业收入合计:一、营业收入2022年度:0.788034975528717:1316036204.14:82:1 +当期第二季度营业收入:本期第二季度营业收入合计:合计合计营业收入:0.7869771122932434:1908540816.12:160:1 +当期第二季度营业收入:本报告期第二季度营业收入合计:一、营业收入2022年度:0.7516578435897827:1316036204.14:82:1 +当期第二季度营业收入:本报告期第二季度营业收入合计:合计合计营业收入:0.7332464456558228:1908540816.12:160:1 +当期第二季度营业收入:报告期第二季度营业收入合计:一、营业收入2022年度:0.7387418150901794:1316036204.14:82:1 +当期第二季度营业收入:报告期第二季度营业收入合计:合计合计营业收入:0.725396990776062:1908540816.12:160:1 +当期第二季度营业收入:报告期内第二季度营业收入合计:一、营业收入2022年度:0.7430994510650635:1316036204.14:82:1 +当期第二季度营业收入:报告期内第二季度营业收入合计:主营业务本期发生额收入:0.7191089987754822:1375217915.12:200:2 +当期第二季度营业收入:本年度第二季度营业收入合计:一、营业收入2022年度:0.8172376155853271:1316036204.14:82:1 +当期第二季度营业收入:本年度第二季度营业收入合计:合计合计营业收入:0.8059536218643188:1908540816.12:160:1 +当期第二季度营业收入:本期发生额第二季度营业收入合计:合计本期发生额收入:0.7550836801528931:1529440280.25:200:2 +当期第二季度营业收入:本期发生额第二季度营业收入合计:合计上期发生额收入:0.7542705535888672:1316036204.14:200:2 +当期第二季度营业收入:2023年第二季度营业收入合计:一、营业收入2023年度:0.8483396768569946:1529440280.25:82:1 +当期第二季度营业收入:2023年第二季度营业收入合计:一、营业收入2022年度:0.8451250195503235:1316036204.14:82:1 +当期第二季度营业收入:2023年全年第二季度营业收入合计:一、营业收入2023年度:0.8185504674911499:1529440280.25:82:1 +当期第二季度营业收入:2023年全年第二季度营业收入合计:一、营业收入2022年度:0.8174605965614319:1316036204.14:82:1 +当期第二季度营业收入:2023年金额第二季度营业收入合计:一、营业收入2023年度:0.8076238632202148:1529440280.25:82:1 +当期第二季度营业收入:2023年金额第二季度营业收入合计:二、营业利润2023年度:0.8000048398971558:168108294.15:82:1 +当期第二季度营业收入:第二季度营业收入合计:合计合计营业收入:0.7834554314613342:1529440280.25:200:3 +当期第二季度营业收入:第二季度营业收入合计:合计合计营业收入:0.7834554314613342:1908540816.12:160:1 +当期第二季度营业收入:4-6月营业收入合计:合计合计营业收入:0.8484752774238586:1529440280.25:200:3 +当期第二季度营业收入:4-6月营业收入合计:合计合计营业收入:0.8484752774238586:1908540816.12:160:1 +当期第二季度营业收入:第二季度(4-6月)营业收入合计:合计合计营业收入:0.7500355243682861:1529440280.25:200:3 +当期第二季度营业收入:第二季度(4-6月)营业收入合计:合计合计营业收入:0.7500355243682861:1908540816.12:160:1 +当期第二季度营业收入:2023年第二季度营业收入合计:一、营业收入2023年度:0.8483396768569946:1529440280.25:82:1 +当期第二季度营业收入:2023年第二季度营业收入合计:一、营业收入2022年度:0.8451250195503235:1316036204.14:82:1 +当期第二季度营业收入:当期第二季度营业收入总额:合计合计营业收入:0.7338167428970337:1529440280.25:200:3 +当期第二季度营业收入:当期第二季度营业收入总额:合计合计营业收入:0.7338167428970337:1908540816.12:160:1 +当期第二季度营业收入:本期第二季度营业收入总额:合计合计营业收入:0.7710273265838623:1529440280.25:200:3 +当期第二季度营业收入:本期第二季度营业收入总额:合计合计营业收入:0.7710273265838623:1908540816.12:160:1 +当期第二季度营业收入:本报告期第二季度营业收入总额:一、营业收入2022年度:0.7423689961433411:1316036204.14:82:1 +当期第二季度营业收入:本报告期第二季度营业收入总额:合计合计营业收入:0.7265745401382446:1908540816.12:160:1 +当期第二季度营业收入:报告期第二季度营业收入总额:一、营业收入2022年度:0.7217438817024231:1316036204.14:82:1 +当期第二季度营业收入:报告期第二季度营业收入总额:二、营业利润2022年度:0.7133337259292603:140290776.93:82:1 +当期第二季度营业收入:报告期内第二季度营业收入总额:一、营业收入2022年度:0.7412555813789368:1316036204.14:82:1 +当期第二季度营业收入:报告期内第二季度营业收入总额:主营业务本期发生额收入:0.7150699496269226:1375217915.12:200:2 +当期第二季度营业收入:本年度第二季度营业收入总额:一、营业收入2022年度:0.7823840379714966:1316036204.14:82:1 +当期第二季度营业收入:本年度第二季度营业收入总额:合计合计营业收入:0.7819265127182007:1908540816.12:160:1 +当期第二季度营业收入:本期发生额第二季度营业收入总额:合计上期发生额收入:0.737359881401062:1316036204.14:200:2 +当期第二季度营业收入:本期发生额第二季度营业收入总额:合计本期发生额收入:0.7289069890975952:1529440280.25:200:2 +当期第二季度营业收入:2023年第二季度营业收入总额:一、营业收入2023年度:0.825644314289093:1529440280.25:82:1 +当期第二季度营业收入:2023年第二季度营业收入总额:一、营业收入2022年度:0.8193683624267578:1316036204.14:82:1 +当期第二季度营业收入:2023年全年第二季度营业收入总额:一、营业收入2023年度:0.7884039878845215:1529440280.25:82:1 +当期第二季度营业收入:2023年全年第二季度营业收入总额:二、营业利润2023年度:0.7865155935287476:168108294.15:82:1 +当期第二季度营业收入:2023年金额第二季度营业收入总额:一、营业收入2023年度:0.7900369763374329:1529440280.25:82:1 +当期第二季度营业收入:2023年金额第二季度营业收入总额:二、营业利润2023年度:0.7863979339599609:168108294.15:82:1 +当期第二季度营业收入:第二季度营业收入总额:合计合计营业收入:0.7447060346603394:1529440280.25:200:3 +当期第二季度营业收入:第二季度营业收入总额:合计合计营业收入:0.7447060346603394:1908540816.12:160:1 +当期第二季度营业收入:4-6月营业收入总额:合计合计营业收入:0.8334307670593262:1529440280.25:200:3 +当期第二季度营业收入:4-6月营业收入总额:合计合计营业收入:0.8334307670593262:1908540816.12:160:1 +当期第二季度营业收入:第二季度(4-6月)营业收入总额:合计合计营业收入:0.723671019077301:1529440280.25:200:3 +当期第二季度营业收入:第二季度(4-6月)营业收入总额:合计合计营业收入:0.723671019077301:1908540816.12:160:1 +当期第二季度营业收入:2023年第二季度营业收入总额:一、营业收入2023年度:0.825644314289093:1529440280.25:82:1 +当期第二季度营业收入:2023年第二季度营业收入总额:一、营业收入2022年度:0.8193683624267578:1316036204.14:82:1 +当期第二季度营业收入:当期第二季度营业收入金额:合计本期发生额收入:0.7495960593223572:1529440280.25:200:2 +当期第二季度营业收入:当期第二季度营业收入金额:合计上期发生额收入:0.7492785453796387:1316036204.14:200:2 +当期第二季度营业收入:本期第二季度营业收入金额:一、营业收入2022年度:0.787724494934082:1316036204.14:82:1 +当期第二季度营业收入:本期第二季度营业收入金额:合计合计营业收入:0.775987982749939:1908540816.12:160:1 +当期第二季度营业收入:本报告期第二季度营业收入金额:一、营业收入2022年度:0.7568432092666626:1316036204.14:82:1 +当期第二季度营业收入:本报告期第二季度营业收入金额:主营业务本期发生额收入:0.7351803183555603:1375217915.12:200:2 +当期第二季度营业收入:报告期第二季度营业收入金额:一、营业收入2022年度:0.7350449562072754:1316036204.14:82:1 +当期第二季度营业收入:报告期第二季度营业收入金额:二、营业利润2022年度:0.7158986926078796:140290776.93:82:1 +当期第二季度营业收入:报告期内第二季度营业收入金额:一、营业收入2022年度:0.7480529546737671:1316036204.14:82:1 +当期第二季度营业收入:报告期内第二季度营业收入金额:主营业务本期发生额收入:0.7207555770874023:1375217915.12:200:2 +当期第二季度营业收入:本年度第二季度营业收入金额:一、营业收入2022年度:0.8088082671165466:1316036204.14:82:1 +当期第二季度营业收入:本年度第二季度营业收入金额:合计合计营业收入:0.7861825227737427:1908540816.12:160:1 +当期第二季度营业收入:本期发生额第二季度营业收入金额:合计本期发生额收入:0.7586398720741272:1529440280.25:200:2 +当期第二季度营业收入:本期发生额第二季度营业收入金额:合计上期发生额收入:0.754821240901947:1316036204.14:200:2 +当期第二季度营业收入:2023年第二季度营业收入金额:一、营业收入2023年度:0.8457608222961426:1529440280.25:82:1 +当期第二季度营业收入:2023年第二季度营业收入金额:一、营业收入2022年度:0.8448918461799622:1316036204.14:82:1 +当期第二季度营业收入:2023年全年第二季度营业收入金额:一、营业收入2022年度:0.8145211935043335:1316036204.14:82:1 +当期第二季度营业收入:2023年全年第二季度营业收入金额:一、营业收入2023年度:0.8122960329055786:1529440280.25:82:1 +当期第二季度营业收入:2023年金额第二季度营业收入金额:一、营业收入2023年度:0.8008171319961548:1529440280.25:82:1 +当期第二季度营业收入:2023年金额第二季度营业收入金额:二、营业利润2023年度:0.7947495579719543:168108294.15:82:1 +当期第二季度营业收入:第二季度营业收入金额:一、营业收入2022年度:0.7657380700111389:1316036204.14:82:1 +当期第二季度营业收入:第二季度营业收入金额:合计合计营业收入:0.7592512369155884:1908540816.12:160:1 +当期第二季度营业收入:4-6月营业收入金额:合计合计营业收入:0.8379848003387451:1529440280.25:200:3 +当期第二季度营业收入:4-6月营业收入金额:合计合计营业收入:0.8379848003387451:1908540816.12:160:1 +当期第二季度营业收入:第二季度(4-6月)营业收入金额:合计合计营业收入:0.7242875099182129:1529440280.25:200:3 +当期第二季度营业收入:第二季度(4-6月)营业收入金额:合计合计营业收入:0.7242875099182129:1908540816.12:160:1 +当期第二季度营业收入:2023年第二季度营业收入金额:一、营业收入2023年度:0.8457608222961426:1529440280.25:82:1 +当期第二季度营业收入:2023年第二季度营业收入金额:一、营业收入2022年度:0.8448918461799622:1316036204.14:82:1 +当期第二季度营业收入:当期第二季度调整后营业收入:二、营业利润2022年度:0.6747086644172668:140290776.93:82:1 +当期第二季度营业收入:当期第二季度调整后营业收入:主营业务上期发生额收入:0.6746410131454468:1197550470.11:200:2 +当期第二季度营业收入:本期第二季度调整后营业收入:主营业务本期发生额收入:0.7074909806251526:1375217915.12:200:2 +当期第二季度营业收入:本期第二季度调整后营业收入:二、营业利润2022年度:0.6946765780448914:140290776.93:82:1 +当期第二季度营业收入:本报告期第二季度调整后营业收入:二、营业利润2022年度:0.6885138750076294:140290776.93:82:1 +当期第二季度营业收入:本报告期第二季度调整后营业收入:主营业务本期发生额收入:0.6884127259254456:1375217915.12:200:2 +当期第二季度营业收入:报告期第二季度调整后营业收入:二、营业利润2022年度:0.6760711073875427:140290776.93:82:1 +当期第二季度营业收入:报告期第二季度调整后营业收入:主营业务本期发生额收入:0.653654932975769:1375217915.12:200:2 +当期第二季度营业收入:报告期内第二季度调整后营业收入:主营业务本期发生额收入:0.6870577931404114:1375217915.12:200:2 +当期第二季度营业收入:报告期内第二季度调整后营业收入:二、营业利润2022年度:0.6811116337776184:140290776.93:82:1 +当期第二季度营业收入:本年度第二季度调整后营业收入:一、营业收入2022年度:0.7471107840538025:1316036204.14:82:1 +当期第二季度营业收入:本年度第二季度调整后营业收入:主营业务本期发生额收入:0.7469735741615295:1375217915.12:200:2 +当期第二季度营业收入:本期发生额第二季度调整后营业收入:主营业务本期发生额收入:0.6911863684654236:1375217915.12:200:2 +当期第二季度营业收入:本期发生额第二季度调整后营业收入:主营业务上期发生额收入:0.6795547008514404:1197550470.11:200:2 +当期第二季度营业收入:2023年第二季度调整后营业收入:二、营业利润2023年度:0.7828860878944397:168108294.15:82:1 +当期第二季度营业收入:2023年第二季度调整后营业收入:一、营业收入2023年度:0.7736827731132507:1529440280.25:82:1 +当期第二季度营业收入:2023年全年第二季度调整后营业收入:二、营业利润2023年度:0.7750164270401001:168108294.15:82:1 +当期第二季度营业收入:2023年全年第二季度调整后营业收入:二、营业利润2022年度:0.7677729725837708:140290776.93:82:1 +当期第二季度营业收入:2023年金额第二季度调整后营业收入:二、营业利润2023年度:0.7565282583236694:168108294.15:82:1 +当期第二季度营业收入:2023年金额第二季度调整后营业收入:一、营业收入2023年度:0.748762845993042:1529440280.25:82:1 +当期第二季度营业收入:第二季度调整后营业收入:二、营业利润2022年度:0.6847309470176697:140290776.93:82:1 +当期第二季度营业收入:第二季度调整后营业收入:一、营业收入2022年度:0.664497435092926:1316036204.14:82:1 +当期第二季度营业收入:4-6月调整后营业收入:合计合计营业收入:0.7378706932067871:1529440280.25:200:3 +当期第二季度营业收入:4-6月调整后营业收入:合计合计营业收入:0.7378706932067871:1908540816.12:160:1 +当期第二季度营业收入:第二季度(4-6月)调整后营业收入:二、营业利润2022年度:0.6652938723564148:140290776.93:82:1 +当期第二季度营业收入:第二季度(4-6月)调整后营业收入:二、营业利润2023年度:0.6523925065994263:168108294.15:82:1 +当期第二季度营业收入:2023年第二季度调整后营业收入:二、营业利润2023年度:0.7828860878944397:168108294.15:82:1 +当期第二季度营业收入:2023年第二季度调整后营业收入:一、营业收入2023年度:0.7736827731132507:1529440280.25:82:1 +当期第三季度营业收入:当期第三季度营业收入:合计合计营业收入:0.769263505935669:1529440280.25:200:3 +当期第三季度营业收入:当期第三季度营业收入:合计合计营业收入:0.769263505935669:1908540816.12:160:1 +当期第三季度营业收入:本期第三季度营业收入:一、营业收入2023年度:0.7927300930023193:1529440280.25:82:1 +当期第三季度营业收入:本期第三季度营业收入:合计合计营业收入:0.791613757610321:1908540816.12:160:1 +当期第三季度营业收入:本报告期第三季度营业收入:一、营业收入2023年度:0.7477922439575195:1529440280.25:82:1 +当期第三季度营业收入:本报告期第三季度营业收入:合计合计营业收入:0.721315324306488:1908540816.12:160:1 +当期第三季度营业收入:报告期第三季度营业收入:一、营业收入2023年度:0.7363279461860657:1529440280.25:82:1 +当期第三季度营业收入:报告期第三季度营业收入:合计合计营业收入:0.7129923701286316:1908540816.12:160:1 +当期第三季度营业收入:报告期内第三季度营业收入:一、营业收入2023年度:0.7613742351531982:1529440280.25:82:1 +当期第三季度营业收入:报告期内第三季度营业收入:一、营业收入2022年度:0.7329131960868835:1316036204.14:82:1 +当期第三季度营业收入:本年度第三季度营业收入:一、营业收入2023年度:0.8162500858306885:1529440280.25:82:1 +当期第三季度营业收入:本年度第三季度营业收入:合计合计营业收入:0.8092461824417114:1908540816.12:160:1 +当期第三季度营业收入:本期发生额第三季度营业收入:合计本期发生额收入:0.7406390309333801:1529440280.25:200:2 +当期第三季度营业收入:本期发生额第三季度营业收入:合计上期发生额收入:0.7384792566299438:1316036204.14:200:2 +当期第三季度营业收入:2023年第三季度营业收入:一、营业收入2023年度:0.8720533847808838:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度营业收入:一、营业收入2022年度:0.8199886679649353:1316036204.14:82:1 +当期第三季度营业收入:2023年全年第三季度营业收入:一、营业收入2023年度:0.8407455682754517:1529440280.25:82:1 +当期第三季度营业收入:2023年全年第三季度营业收入:二、营业利润2023年度:0.7892609238624573:168108294.15:82:1 +当期第三季度营业收入:2023年金额第三季度营业收入:一、营业收入2023年度:0.834031879901886:1529440280.25:82:1 +当期第三季度营业收入:2023年金额第三季度营业收入:二、营业利润2023年度:0.7901297807693481:168108294.15:82:1 +当期第三季度营业收入:第三季度营业收入:一、营业收入2023年度:0.8007388114929199:1529440280.25:82:1 +当期第三季度营业收入:第三季度营业收入:合计合计营业收入:0.7866935729980469:1908540816.12:160:1 +当期第三季度营业收入:7-9月营业收入:合计合计营业收入:0.789618968963623:1529440280.25:200:3 +当期第三季度营业收入:7-9月营业收入:合计合计营业收入:0.789618968963623:1908540816.12:160:1 +当期第三季度营业收入:第三季度(7-9月)营业收入:合计合计营业收入:0.7456334233283997:1529440280.25:200:3 +当期第三季度营业收入:第三季度(7-9月)营业收入:合计合计营业收入:0.7456334233283997:1908540816.12:160:1 +当期第三季度营业收入:2023年第三季度营业收入:一、营业收入2023年度:0.8720533847808838:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度营业收入:一、营业收入2022年度:0.8199886679649353:1316036204.14:82:1 +当期第三季度营业收入:当期第三季度营业收入合计:合计合计营业收入:0.7686006426811218:1529440280.25:200:3 +当期第三季度营业收入:当期第三季度营业收入合计:合计合计营业收入:0.7686006426811218:1908540816.12:160:1 +当期第三季度营业收入:本期第三季度营业收入合计:合计合计营业收入:0.7919051647186279:1529440280.25:200:3 +当期第三季度营业收入:本期第三季度营业收入合计:合计合计营业收入:0.7919051647186279:1908540816.12:160:1 +当期第三季度营业收入:本报告期第三季度营业收入合计:一、营业收入2023年度:0.7381394505500793:1529440280.25:82:1 +当期第三季度营业收入:本报告期第三季度营业收入合计:合计合计营业收入:0.7331779599189758:1908540816.12:160:1 +当期第三季度营业收入:报告期第三季度营业收入合计:合计合计营业收入:0.7329857349395752:1529440280.25:200:3 +当期第三季度营业收入:报告期第三季度营业收入合计:合计合计营业收入:0.7329857349395752:1908540816.12:160:1 +当期第三季度营业收入:报告期内第三季度营业收入合计:一、营业收入2023年度:0.7388105392456055:1529440280.25:82:1 +当期第三季度营业收入:报告期内第三季度营业收入合计:合计合计营业收入:0.7207770347595215:1908540816.12:160:1 +当期第三季度营业收入:本年度第三季度营业收入合计:一、营业收入2023年度:0.8094370365142822:1529440280.25:82:1 +当期第三季度营业收入:本年度第三季度营业收入合计:合计合计营业收入:0.8080731630325317:1908540816.12:160:1 +当期第三季度营业收入:本期发生额第三季度营业收入合计:合计上期发生额收入:0.7480552196502686:1316036204.14:200:2 +当期第三季度营业收入:本期发生额第三季度营业收入合计:合计本期发生额收入:0.7478901743888855:1529440280.25:200:2 +当期第三季度营业收入:2023年第三季度营业收入合计:一、营业收入2023年度:0.8664562702178955:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度营业收入合计:一、营业收入2022年度:0.812240719795227:1316036204.14:82:1 +当期第三季度营业收入:2023年全年第三季度营业收入合计:一、营业收入2023年度:0.8405865430831909:1529440280.25:82:1 +当期第三季度营业收入:2023年全年第三季度营业收入合计:二、营业利润2023年度:0.7887902855873108:168108294.15:82:1 +当期第三季度营业收入:2023年金额第三季度营业收入合计:一、营业收入2023年度:0.8251793384552002:1529440280.25:82:1 +当期第三季度营业收入:2023年金额第三季度营业收入合计:二、营业利润2023年度:0.7828586101531982:168108294.15:82:1 +当期第三季度营业收入:第三季度营业收入合计:合计合计营业收入:0.8011897802352905:1529440280.25:200:3 +当期第三季度营业收入:第三季度营业收入合计:合计合计营业收入:0.8011897802352905:1908540816.12:160:1 +当期第三季度营业收入:7-9月营业收入合计:合计合计营业收入:0.7989908456802368:1529440280.25:200:3 +当期第三季度营业收入:7-9月营业收入合计:合计合计营业收入:0.7989908456802368:1908540816.12:160:1 +当期第三季度营业收入:第三季度(7-9月)营业收入合计:合计合计营业收入:0.7625550031661987:1529440280.25:200:3 +当期第三季度营业收入:第三季度(7-9月)营业收入合计:合计合计营业收入:0.7625550031661987:1908540816.12:160:1 +当期第三季度营业收入:2023年第三季度营业收入合计:一、营业收入2023年度:0.8664562702178955:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度营业收入合计:一、营业收入2022年度:0.812240719795227:1316036204.14:82:1 +当期第三季度营业收入:当期第三季度营业收入总额:合计合计营业收入:0.7570466995239258:1529440280.25:200:3 +当期第三季度营业收入:当期第三季度营业收入总额:合计合计营业收入:0.7570466995239258:1908540816.12:160:1 +当期第三季度营业收入:本期第三季度营业收入总额:合计合计营业收入:0.7855948805809021:1529440280.25:200:3 +当期第三季度营业收入:本期第三季度营业收入总额:合计合计营业收入:0.7855948805809021:1908540816.12:160:1 +当期第三季度营业收入:本报告期第三季度营业收入总额:合计合计营业收入:0.733095645904541:1529440280.25:200:3 +当期第三季度营业收入:本报告期第三季度营业收入总额:合计合计营业收入:0.733095645904541:1908540816.12:160:1 +当期第三季度营业收入:报告期第三季度营业收入总额:合计合计营业收入:0.724324643611908:1529440280.25:200:3 +当期第三季度营业收入:报告期第三季度营业收入总额:合计合计营业收入:0.724324643611908:1908540816.12:160:1 +当期第三季度营业收入:报告期内第三季度营业收入总额:一、营业收入2023年度:0.7395795583724976:1529440280.25:82:1 +当期第三季度营业收入:报告期内第三季度营业收入总额:合计合计营业收入:0.7300584316253662:1908540816.12:160:1 +当期第三季度营业收入:本年度第三季度营业收入总额:合计合计营业收入:0.7921741008758545:1529440280.25:200:3 +当期第三季度营业收入:本年度第三季度营业收入总额:合计合计营业收入:0.7921741008758545:1908540816.12:160:1 +当期第三季度营业收入:本期发生额第三季度营业收入总额:合计上期发生额收入:0.7384077310562134:1316036204.14:200:2 +当期第三季度营业收入:本期发生额第三季度营业收入总额:合计本期发生额收入:0.7277502417564392:1529440280.25:200:2 +当期第三季度营业收入:2023年第三季度营业收入总额:一、营业收入2023年度:0.8452322483062744:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度营业收入总额:一、营业收入2022年度:0.791549801826477:1316036204.14:82:1 +当期第三季度营业收入:2023年全年第三季度营业收入总额:一、营业收入2023年度:0.8138190507888794:1529440280.25:82:1 +当期第三季度营业收入:2023年全年第三季度营业收入总额:三、利润总额2023年度:0.7784105539321899:167670367.08:82:1 +当期第三季度营业收入:2023年金额第三季度营业收入总额:一、营业收入2023年度:0.8080453872680664:1529440280.25:82:1 +当期第三季度营业收入:2023年金额第三季度营业收入总额:三、利润总额2023年度:0.7795206904411316:167670367.08:82:1 +当期第三季度营业收入:第三季度营业收入总额:合计合计营业收入:0.7695404291152954:1529440280.25:200:3 +当期第三季度营业收入:第三季度营业收入总额:合计合计营业收入:0.7695404291152954:1908540816.12:160:1 +当期第三季度营业收入:7-9月营业收入总额:合计合计营业收入:0.7842753529548645:1529440280.25:200:3 +当期第三季度营业收入:7-9月营业收入总额:合计合计营业收入:0.7842753529548645:1908540816.12:160:1 +当期第三季度营业收入:第三季度(7-9月)营业收入总额:合计合计营业收入:0.7400246858596802:1529440280.25:200:3 +当期第三季度营业收入:第三季度(7-9月)营业收入总额:合计合计营业收入:0.7400246858596802:1908540816.12:160:1 +当期第三季度营业收入:2023年第三季度营业收入总额:一、营业收入2023年度:0.8452322483062744:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度营业收入总额:一、营业收入2022年度:0.791549801826477:1316036204.14:82:1 +当期第三季度营业收入:当期第三季度营业收入金额:合计合计营业收入:0.768082857131958:1529440280.25:200:3 +当期第三季度营业收入:当期第三季度营业收入金额:合计合计营业收入:0.768082857131958:1908540816.12:160:1 +当期第三季度营业收入:本期第三季度营业收入金额:合计合计营业收入:0.7909643650054932:1529440280.25:200:3 +当期第三季度营业收入:本期第三季度营业收入金额:合计合计营业收入:0.7909643650054932:1908540816.12:160:1 +当期第三季度营业收入:本报告期第三季度营业收入金额:一、营业收入2023年度:0.7463234663009644:1529440280.25:82:1 +当期第三季度营业收入:本报告期第三季度营业收入金额:合计合计营业收入:0.7316365838050842:1908540816.12:160:1 +当期第三季度营业收入:报告期第三季度营业收入金额:一、营业收入2023年度:0.7307418584823608:1529440280.25:82:1 +当期第三季度营业收入:报告期第三季度营业收入金额:合计合计营业收入:0.7188594937324524:1908540816.12:160:1 +当期第三季度营业收入:报告期内第三季度营业收入金额:一、营业收入2023年度:0.7476052045822144:1529440280.25:82:1 +当期第三季度营业收入:报告期内第三季度营业收入金额:一、营业收入2022年度:0.7246643900871277:1316036204.14:82:1 +当期第三季度营业收入:本年度第三季度营业收入金额:一、营业收入2023年度:0.8054132461547852:1529440280.25:82:1 +当期第三季度营业收入:本年度第三季度营业收入金额:合计合计营业收入:0.7970657348632812:1908540816.12:160:1 +当期第三季度营业收入:本期发生额第三季度营业收入金额:合计本期发生额收入:0.7572265267372131:1529440280.25:200:2 +当期第三季度营业收入:本期发生额第三季度营业收入金额:合计上期发生额收入:0.7552800178527832:1316036204.14:200:2 +当期第三季度营业收入:2023年第三季度营业收入金额:一、营业收入2023年度:0.8679349422454834:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度营业收入金额:一、营业收入2022年度:0.8199768662452698:1316036204.14:82:1 +当期第三季度营业收入:2023年全年第三季度营业收入金额:一、营业收入2023年度:0.8384668231010437:1529440280.25:82:1 +当期第三季度营业收入:2023年全年第三季度营业收入金额:一、营业收入2022年度:0.7875922918319702:1316036204.14:82:1 +当期第三季度营业收入:2023年金额第三季度营业收入金额:一、营业收入2023年度:0.8213504552841187:1529440280.25:82:1 +当期第三季度营业收入:2023年金额第三季度营业收入金额:二、营业利润2023年度:0.7790818214416504:168108294.15:82:1 +当期第三季度营业收入:第三季度营业收入金额:一、营业收入2023年度:0.7889006733894348:1529440280.25:82:1 +当期第三季度营业收入:第三季度营业收入金额:合计合计营业收入:0.7851214408874512:1908540816.12:160:1 +当期第三季度营业收入:7-9月营业收入金额:合计合计营业收入:0.7897228002548218:1529440280.25:200:3 +当期第三季度营业收入:7-9月营业收入金额:合计合计营业收入:0.7897228002548218:1908540816.12:160:1 +当期第三季度营业收入:第三季度(7-9月)营业收入金额:合计合计营业收入:0.7413833141326904:1529440280.25:200:3 +当期第三季度营业收入:第三季度(7-9月)营业收入金额:合计合计营业收入:0.7413833141326904:1908540816.12:160:1 +当期第三季度营业收入:2023年第三季度营业收入金额:一、营业收入2023年度:0.8679349422454834:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度营业收入金额:一、营业收入2022年度:0.8199768662452698:1316036204.14:82:1 +当期第三季度营业收入:当期第三季度调整后营业收入:主营业务上期发生额收入:0.6910350918769836:1197550470.11:200:2 +当期第三季度营业收入:当期第三季度调整后营业收入:主营业务本期发生额收入:0.6798544526100159:1375217915.12:200:2 +当期第三季度营业收入:本期第三季度调整后营业收入:主营业务本期发生额收入:0.7100983262062073:1375217915.12:200:2 +当期第三季度营业收入:本期第三季度调整后营业收入:一、营业收入2023年度:0.6951716542243958:1529440280.25:82:1 +当期第三季度营业收入:本报告期第三季度调整后营业收入:一、营业收入2023年度:0.6885741949081421:1529440280.25:82:1 +当期第三季度营业收入:本报告期第三季度调整后营业收入:主营业务本期发生额收入:0.6819039583206177:1375217915.12:200:2 +当期第三季度营业收入:报告期第三季度调整后营业收入:一、营业收入2023年度:0.662473201751709:1529440280.25:82:1 +当期第三季度营业收入:报告期第三季度调整后营业收入:主营业务上期发生额收入:0.6561844348907471:1197550470.11:200:2 +当期第三季度营业收入:报告期内第三季度调整后营业收入:一、营业收入2023年度:0.6937515139579773:1529440280.25:82:1 +当期第三季度营业收入:报告期内第三季度调整后营业收入:主营业务本期发生额收入:0.6888586282730103:1375217915.12:200:2 +当期第三季度营业收入:本年度第三季度调整后营业收入:一、营业收入2023年度:0.7615238428115845:1529440280.25:82:1 +当期第三季度营业收入:本年度第三季度调整后营业收入:主营业务本期发生额收入:0.7385498881340027:1375217915.12:200:2 +当期第三季度营业收入:本期发生额第三季度调整后营业收入:主营业务本期发生额收入:0.7050449252128601:1375217915.12:200:2 +当期第三季度营业收入:本期发生额第三季度调整后营业收入:主营业务上期发生额收入:0.7003759741783142:1197550470.11:200:2 +当期第三季度营业收入:2023年第三季度调整后营业收入:一、营业收入2023年度:0.803479790687561:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度调整后营业收入:二、营业利润2023年度:0.7725194692611694:168108294.15:82:1 +当期第三季度营业收入:2023年全年第三季度调整后营业收入:一、营业收入2023年度:0.7982802987098694:1529440280.25:82:1 +当期第三季度营业收入:2023年全年第三季度调整后营业收入:二、营业利润2023年度:0.7716906070709229:168108294.15:82:1 +当期第三季度营业收入:2023年金额第三季度调整后营业收入:一、营业收入2023年度:0.7748178839683533:1529440280.25:82:1 +当期第三季度营业收入:2023年金额第三季度调整后营业收入:二、营业利润2023年度:0.7517119646072388:168108294.15:82:1 +当期第三季度营业收入:第三季度调整后营业收入:一、营业收入2023年度:0.7038530111312866:1529440280.25:82:1 +当期第三季度营业收入:第三季度调整后营业收入:二、营业利润2023年度:0.6789634227752686:168108294.15:82:1 +当期第三季度营业收入:7-9月调整后营业收入:合计合计营业收入:0.6678023338317871:1529440280.25:200:3 +当期第三季度营业收入:7-9月调整后营业收入:合计合计营业收入:0.6678023338317871:1908540816.12:160:1 +当期第三季度营业收入:第三季度(7-9月)调整后营业收入:一、营业收入2023年度:0.6416842341423035:1529440280.25:82:1 +当期第三季度营业收入:第三季度(7-9月)调整后营业收入:二、营业利润2023年度:0.6365066766738892:168108294.15:82:1 +当期第三季度营业收入:2023年第三季度调整后营业收入:一、营业收入2023年度:0.803479790687561:1529440280.25:82:1 +当期第三季度营业收入:2023年第三季度调整后营业收入:二、营业利润2023年度:0.7725194692611694:168108294.15:82:1 +当期第四季度营业收入:当期第四季度营业收入:合计合计营业收入:0.7603604793548584:1529440280.25:200:3 +当期第四季度营业收入:当期第四季度营业收入:合计合计营业收入:0.7603604793548584:1908540816.12:160:1 +当期第四季度营业收入:本期第四季度营业收入:合计合计营业收入:0.7972708344459534:1529440280.25:200:3 +当期第四季度营业收入:本期第四季度营业收入:合计合计营业收入:0.7972708344459534:1908540816.12:160:1 +当期第四季度营业收入:本报告期第四季度营业收入:其他合计营业收入:0.7203537821769714:199722062.45:200:3 +当期第四季度营业收入:本报告期第四季度营业收入:其他合计营业收入:0.7200483679771423:130449651.32:160:1 +当期第四季度营业收入:报告期第四季度营业收入:合计合计营业收入:0.7143528461456299:1529440280.25:200:3 +当期第四季度营业收入:报告期第四季度营业收入:合计合计营业收入:0.7143528461456299:1908540816.12:160:1 +当期第四季度营业收入:报告期内第四季度营业收入:其他合计营业收入:0.724917471408844:199722062.45:200:3 +当期第四季度营业收入:报告期内第四季度营业收入:其他合计营业收入:0.7246915698051453:130449651.32:160:1 +当期第四季度营业收入:本年度第四季度营业收入:合计合计营业收入:0.8142565488815308:1529440280.25:200:3 +当期第四季度营业收入:本年度第四季度营业收入:合计合计营业收入:0.8142565488815308:1908540816.12:160:1 +当期第四季度营业收入:本期发生额第四季度营业收入:合计本期发生额收入:0.7373542189598083:1529440280.25:200:2 +当期第四季度营业收入:本期发生额第四季度营业收入:主营业务本期发生额收入:0.7337989211082458:1375217915.12:200:2 +当期第四季度营业收入:2023年第四季度营业收入:一、营业收入2023年度:0.8597952723503113:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度营业收入:一、营业收入2022年度:0.8199125528335571:1316036204.14:82:1 +当期第四季度营业收入:2023年全年第四季度营业收入:一、营业收入2023年度:0.8296882510185242:1529440280.25:82:1 +当期第四季度营业收入:2023年全年第四季度营业收入:二、营业利润2023年度:0.7868268489837646:168108294.15:82:1 +当期第四季度营业收入:2023年金额第四季度营业收入:一、营业收入2023年度:0.825751781463623:1529440280.25:82:1 +当期第四季度营业收入:2023年金额第四季度营业收入:二、营业利润2023年度:0.7912517786026001:168108294.15:82:1 +当期第四季度营业收入:第四季度营业收入:合计合计营业收入:0.7910569906234741:1529440280.25:200:3 +当期第四季度营业收入:第四季度营业收入:合计合计营业收入:0.7910569906234741:1908540816.12:160:1 +当期第四季度营业收入:10-12月营业收入:合计合计营业收入:0.8215368986129761:1529440280.25:200:3 +当期第四季度营业收入:10-12月营业收入:合计合计营业收入:0.8215368986129761:1908540816.12:160:1 +当期第四季度营业收入:第四季度(10-12月)营业收入:合计合计营业收入:0.7315033674240112:1529440280.25:200:3 +当期第四季度营业收入:第四季度(10-12月)营业收入:合计合计营业收入:0.7315033674240112:1908540816.12:160:1 +当期第四季度营业收入:2023年第四季度营业收入:一、营业收入2023年度:0.8597952723503113:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度营业收入:一、营业收入2022年度:0.8199125528335571:1316036204.14:82:1 +当期第四季度营业收入:当期第四季度营业收入合计:合计合计营业收入:0.7503138780593872:1529440280.25:200:3 +当期第四季度营业收入:当期第四季度营业收入合计:合计合计营业收入:0.7503138780593872:1908540816.12:160:1 +当期第四季度营业收入:本期第四季度营业收入合计:合计合计营业收入:0.7854681015014648:1529440280.25:200:3 +当期第四季度营业收入:本期第四季度营业收入合计:合计合计营业收入:0.7854681015014648:1908540816.12:160:1 +当期第四季度营业收入:本报告期第四季度营业收入合计:合计合计营业收入:0.7257453203201294:1529440280.25:200:3 +当期第四季度营业收入:本报告期第四季度营业收入合计:合计合计营业收入:0.7257453203201294:1908540816.12:160:1 +当期第四季度营业收入:报告期第四季度营业收入合计:合计合计营业收入:0.7250546216964722:1529440280.25:200:3 +当期第四季度营业收入:报告期第四季度营业收入合计:合计合计营业收入:0.7250546216964722:1908540816.12:160:1 +当期第四季度营业收入:报告期内第四季度营业收入合计:合计合计营业收入:0.7136080861091614:1529440280.25:200:3 +当期第四季度营业收入:报告期内第四季度营业收入合计:合计合计营业收入:0.7136080861091614:1908540816.12:160:1 +当期第四季度营业收入:本年度第四季度营业收入合计:合计合计营业收入:0.8028281927108765:1529440280.25:200:3 +当期第四季度营业收入:本年度第四季度营业收入合计:合计合计营业收入:0.8028281927108765:1908540816.12:160:1 +当期第四季度营业收入:本期发生额第四季度营业收入合计:合计本期发生额收入:0.7409648299217224:1529440280.25:200:2 +当期第四季度营业收入:本期发生额第四季度营业收入合计:合计上期发生额收入:0.7384856939315796:1316036204.14:200:2 +当期第四季度营业收入:2023年第四季度营业收入合计:一、营业收入2023年度:0.84425288438797:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度营业收入合计:一、营业收入2022年度:0.8034347891807556:1316036204.14:82:1 +当期第四季度营业收入:2023年全年第四季度营业收入合计:一、营业收入2023年度:0.8218407034873962:1529440280.25:82:1 +当期第四季度营业收入:2023年全年第四季度营业收入合计:二、营业利润2023年度:0.7795587778091431:168108294.15:82:1 +当期第四季度营业收入:2023年金额第四季度营业收入合计:一、营业收入2023年度:0.8096730709075928:1529440280.25:82:1 +当期第四季度营业收入:2023年金额第四季度营业收入合计:二、营业利润2023年度:0.7782320380210876:168108294.15:82:1 +当期第四季度营业收入:第四季度营业收入合计:合计合计营业收入:0.7957438230514526:1529440280.25:200:3 +当期第四季度营业收入:第四季度营业收入合计:合计合计营业收入:0.7957438230514526:1908540816.12:160:1 +当期第四季度营业收入:10-12月营业收入合计:合计合计营业收入:0.8334983587265015:1529440280.25:200:3 +当期第四季度营业收入:10-12月营业收入合计:合计合计营业收入:0.8334983587265015:1908540816.12:160:1 +当期第四季度营业收入:第四季度(10-12月)营业收入合计:合计合计营业收入:0.7381260395050049:1529440280.25:200:3 +当期第四季度营业收入:第四季度(10-12月)营业收入合计:合计合计营业收入:0.7381260395050049:1908540816.12:160:1 +当期第四季度营业收入:2023年第四季度营业收入合计:一、营业收入2023年度:0.84425288438797:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度营业收入合计:一、营业收入2022年度:0.8034347891807556:1316036204.14:82:1 +当期第四季度营业收入:当期第四季度营业收入总额:合计合计营业收入:0.741837203502655:1529440280.25:200:3 +当期第四季度营业收入:当期第四季度营业收入总额:合计合计营业收入:0.741837203502655:1908540816.12:160:1 +当期第四季度营业收入:本期第四季度营业收入总额:合计合计营业收入:0.7835760116577148:1529440280.25:200:3 +当期第四季度营业收入:本期第四季度营业收入总额:合计合计营业收入:0.7835760116577148:1908540816.12:160:1 +当期第四季度营业收入:本报告期第四季度营业收入总额:合计合计营业收入:0.7252967357635498:1529440280.25:200:3 +当期第四季度营业收入:本报告期第四季度营业收入总额:合计合计营业收入:0.7252967357635498:1908540816.12:160:1 +当期第四季度营业收入:报告期第四季度营业收入总额:合计合计营业收入:0.7185975313186646:1529440280.25:200:3 +当期第四季度营业收入:报告期第四季度营业收入总额:合计合计营业收入:0.7185975313186646:1908540816.12:160:1 +当期第四季度营业收入:报告期内第四季度营业收入总额:合计合计营业收入:0.7248662710189819:1529440280.25:200:3 +当期第四季度营业收入:报告期内第四季度营业收入总额:合计合计营业收入:0.7248662710189819:1908540816.12:160:1 +当期第四季度营业收入:本年度第四季度营业收入总额:合计合计营业收入:0.7930546402931213:1529440280.25:200:3 +当期第四季度营业收入:本年度第四季度营业收入总额:合计合计营业收入:0.7930546402931213:1908540816.12:160:1 +当期第四季度营业收入:本期发生额第四季度营业收入总额:合计上期发生额收入:0.7289645671844482:1316036204.14:200:2 +当期第四季度营业收入:本期发生额第四季度营业收入总额:合计本期发生额收入:0.7224181294441223:1529440280.25:200:2 +当期第四季度营业收入:2023年第四季度营业收入总额:一、营业收入2023年度:0.8300965428352356:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度营业收入总额:三、利润总额2023年度:0.7919918298721313:167670367.08:82:1 +当期第四季度营业收入:2023年全年第四季度营业收入总额:一、营业收入2023年度:0.8002972602844238:1529440280.25:82:1 +当期第四季度营业收入:2023年全年第四季度营业收入总额:三、利润总额2023年度:0.7805718779563904:167670367.08:82:1 +当期第四季度营业收入:2023年金额第四季度营业收入总额:一、营业收入2023年度:0.795529305934906:1529440280.25:82:1 +当期第四季度营业收入:2023年金额第四季度营业收入总额:三、利润总额2023年度:0.7797204852104187:167670367.08:82:1 +当期第四季度营业收入:第四季度营业收入总额:合计合计营业收入:0.7699557542800903:1529440280.25:200:3 +当期第四季度营业收入:第四季度营业收入总额:合计合计营业收入:0.7699557542800903:1908540816.12:160:1 +当期第四季度营业收入:10-12月营业收入总额:合计合计营业收入:0.8208649158477783:1529440280.25:200:3 +当期第四季度营业收入:10-12月营业收入总额:合计合计营业收入:0.8208649158477783:1908540816.12:160:1 +当期第四季度营业收入:第四季度(10-12月)营业收入总额:合计合计营业收入:0.7240397930145264:1529440280.25:200:3 +当期第四季度营业收入:第四季度(10-12月)营业收入总额:合计合计营业收入:0.7240397930145264:1908540816.12:160:1 +当期第四季度营业收入:2023年第四季度营业收入总额:一、营业收入2023年度:0.8300965428352356:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度营业收入总额:三、利润总额2023年度:0.7919918298721313:167670367.08:82:1 +当期第四季度营业收入:当期第四季度营业收入金额:合计合计营业收入:0.7504016757011414:1529440280.25:200:3 +当期第四季度营业收入:当期第四季度营业收入金额:合计合计营业收入:0.7504016757011414:1908540816.12:160:1 +当期第四季度营业收入:本期第四季度营业收入金额:合计合计营业收入:0.7863020896911621:1529440280.25:200:3 +当期第四季度营业收入:本期第四季度营业收入金额:合计合计营业收入:0.7863020896911621:1908540816.12:160:1 +当期第四季度营业收入:本报告期第四季度营业收入金额:合计合计营业收入:0.7201334834098816:1529440280.25:200:3 +当期第四季度营业收入:本报告期第四季度营业收入金额:合计合计营业收入:0.7201334834098816:1908540816.12:160:1 +当期第四季度营业收入:报告期第四季度营业收入金额:合计合计营业收入:0.7123322486877441:1529440280.25:200:3 +当期第四季度营业收入:报告期第四季度营业收入金额:合计合计营业收入:0.7123322486877441:1908540816.12:160:1 +当期第四季度营业收入:报告期内第四季度营业收入金额:合计合计营业收入:0.7159790396690369:1529440280.25:200:3 +当期第四季度营业收入:报告期内第四季度营业收入金额:合计合计营业收入:0.7159790396690369:1908540816.12:160:1 +当期第四季度营业收入:本年度第四季度营业收入金额:合计合计营业收入:0.7975038886070251:1529440280.25:200:3 +当期第四季度营业收入:本年度第四季度营业收入金额:合计合计营业收入:0.7975038886070251:1908540816.12:160:1 +当期第四季度营业收入:本期发生额第四季度营业收入金额:合计本期发生额收入:0.751495897769928:1529440280.25:200:2 +当期第四季度营业收入:本期发生额第四季度营业收入金额:合计上期发生额收入:0.7463408708572388:1316036204.14:200:2 +当期第四季度营业收入:2023年第四季度营业收入金额:一、营业收入2023年度:0.8537982702255249:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度营业收入金额:一、营业收入2022年度:0.8174853324890137:1316036204.14:82:1 +当期第四季度营业收入:2023年全年第四季度营业收入金额:一、营业收入2023年度:0.8260546922683716:1529440280.25:82:1 +当期第四季度营业收入:2023年全年第四季度营业收入金额:一、营业收入2022年度:0.7866559624671936:1316036204.14:82:1 +当期第四季度营业收入:2023年金额第四季度营业收入金额:一、营业收入2023年度:0.8113242387771606:1529440280.25:82:1 +当期第四季度营业收入:2023年金额第四季度营业收入金额:二、营业利润2023年度:0.778986930847168:168108294.15:82:1 +当期第四季度营业收入:第四季度营业收入金额:合计合计营业收入:0.7804969549179077:1529440280.25:200:3 +当期第四季度营业收入:第四季度营业收入金额:合计合计营业收入:0.7804969549179077:1908540816.12:160:1 +当期第四季度营业收入:10-12月营业收入金额:合计合计营业收入:0.8265209794044495:1529440280.25:200:3 +当期第四季度营业收入:10-12月营业收入金额:合计合计营业收入:0.8265209794044495:1908540816.12:160:1 +当期第四季度营业收入:第四季度(10-12月)营业收入金额:合计合计营业收入:0.7268815040588379:1529440280.25:200:3 +当期第四季度营业收入:第四季度(10-12月)营业收入金额:合计合计营业收入:0.7268815040588379:1908540816.12:160:1 +当期第四季度营业收入:2023年第四季度营业收入金额:一、营业收入2023年度:0.8537982702255249:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度营业收入金额:一、营业收入2022年度:0.8174853324890137:1316036204.14:82:1 +当期第四季度营业收入:当期第四季度调整后营业收入:主营业务本期发生额收入:0.6726846098899841:1375217915.12:200:2 +当期第四季度营业收入:当期第四季度调整后营业收入:主营业务上期发生额收入:0.6724674105644226:1197550470.11:200:2 +当期第四季度营业收入:本期第四季度调整后营业收入:主营业务本期发生额收入:0.7064892649650574:1375217915.12:200:2 +当期第四季度营业收入:本期第四季度调整后营业收入:主营业务上期发生额收入:0.6737675070762634:1197550470.11:200:2 +当期第四季度营业收入:本报告期第四季度调整后营业收入:主营业务本期发生额收入:0.6824942231178284:1375217915.12:200:2 +当期第四季度营业收入:本报告期第四季度调整后营业收入:其他合计营业收入:0.6499877572059631:199722062.45:200:3 +当期第四季度营业收入:报告期第四季度调整后营业收入:主营业务本期发生额收入:0.6565211415290833:1375217915.12:200:2 +当期第四季度营业收入:报告期第四季度调整后营业收入:主营业务上期发生额收入:0.6483442783355713:1197550470.11:200:2 +当期第四季度营业收入:报告期内第四季度调整后营业收入:主营业务本期发生额收入:0.6822859644889832:1375217915.12:200:2 +当期第四季度营业收入:报告期内第四季度调整后营业收入:主营业务上期发生额收入:0.6469816565513611:1197550470.11:200:2 +当期第四季度营业收入:本年度第四季度调整后营业收入:主营业务本期发生额收入:0.7385895848274231:1375217915.12:200:2 +当期第四季度营业收入:本年度第四季度调整后营业收入:其他合计营业收入:0.7271462082862854:199722062.45:200:3 +当期第四季度营业收入:本期发生额第四季度调整后营业收入:主营业务本期发生额收入:0.7025066018104553:1375217915.12:200:2 +当期第四季度营业收入:本期发生额第四季度调整后营业收入:主营业务上期发生额收入:0.687468409538269:1197550470.11:200:2 +当期第四季度营业收入:2023年第四季度调整后营业收入:一、营业收入2023年度:0.7873923778533936:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度调整后营业收入:二、营业利润2023年度:0.7684570550918579:168108294.15:82:1 +当期第四季度营业收入:2023年全年第四季度调整后营业收入:一、营业收入2023年度:0.7854971885681152:1529440280.25:82:1 +当期第四季度营业收入:2023年全年第四季度调整后营业收入:二、营业利润2023年度:0.7677143812179565:168108294.15:82:1 +当期第四季度营业收入:2023年金额第四季度调整后营业收入:一、营业收入2023年度:0.7653443217277527:1529440280.25:82:1 +当期第四季度营业收入:2023年金额第四季度调整后营业收入:二、营业利润2023年度:0.7518373131752014:168108294.15:82:1 +当期第四季度营业收入:第四季度调整后营业收入:主营业务本期发生额收入:0.6608868837356567:1375217915.12:200:2 +当期第四季度营业收入:第四季度调整后营业收入:其他合计营业收入:0.6530666947364807:199722062.45:200:3 +当期第四季度营业收入:10-12月调整后营业收入:合计合计营业收入:0.7260074019432068:1529440280.25:200:3 +当期第四季度营业收入:10-12月调整后营业收入:合计合计营业收入:0.7260074019432068:1908540816.12:160:1 +当期第四季度营业收入:第四季度(10-12月)调整后营业收入:主营业务上期发生额收入:0.6270554065704346:1197550470.11:200:2 +当期第四季度营业收入:第四季度(10-12月)调整后营业收入:主营业务本期发生额收入:0.624918520450592:1375217915.12:200:2 +当期第四季度营业收入:2023年第四季度调整后营业收入:一、营业收入2023年度:0.7873923778533936:1529440280.25:82:1 +当期第四季度营业收入:2023年第四季度调整后营业收入:二、营业利润2023年度:0.7684570550918579:168108294.15:82:1 +营业收入同比变动:营业收入同比变动:其他合计营业收入:0.7964301109313965:199722062.45:200:3 +营业收入同比变动:营业收入同比变动:其他合计营业收入:0.7959229946136475:130449651.32:160:1 +营业收入同比变动:营业收入同比增减:主营业务本期发生额收入:0.7442557215690613:1375217915.12:200:2 +营业收入同比变动:营业收入同比增减:其他合计营业收入:0.7367358803749084:199722062.45:200:3 +营业收入同比变动:营业收入同比上升:合计合计营业收入:0.7325971126556396:1529440280.25:200:3 +营业收入同比变动:营业收入同比上升:合计合计营业收入:0.7325971126556396:1908540816.12:160:1 +营业收入同比变动:营业收入同比下降:其他合计营业收入:0.727997362613678:199722062.45:200:3 +营业收入同比变动:营业收入同比下降:其他合计营业收入:0.7272600531578064:130449651.32:160:1 +营业收入同比变动:营业收入变化幅度:其他合计营业收入:0.7663354277610779:199722062.45:200:3 +营业收入同比变动:营业收入变化幅度:其他合计营业收入:0.7656325101852417:130449651.32:160:1 +营业收入同比变动:营业收入变动比例:其他合计营业收入:0.7564198970794678:199722062.45:200:3 +营业收入同比变动:营业收入变动比例:其他合计营业收入:0.7556273937225342:130449651.32:160:1 +营业收入同比变动:营业收入本期比上年同期增减:主营业务本期发生额收入:0.7713901996612549:1375217915.12:200:2 +营业收入同比变动:营业收入本期比上年同期增减:主营业务上期发生额收入:0.7349048852920532:1197550470.11:200:2 +营业收入同比变动:营业收入本年比上年增减:主营业务本期发生额收入:0.7583015561103821:1375217915.12:200:2 +营业收入同比变动:营业收入本年比上年增减:主营业务上期发生额收入:0.7375572919845581:1197550470.11:200:2 +营业收入同比变动:营业收入合计同比变动:合计合计营业收入:0.8081464767456055:1529440280.25:200:3 +营业收入同比变动:营业收入合计同比变动:合计合计营业收入:0.8081464767456055:1908540816.12:160:1 +营业收入同比变动:营业收入合计同比增减:合计合计营业收入:0.7611291408538818:1529440280.25:200:3 +营业收入同比变动:营业收入合计同比增减:合计合计营业收入:0.7611291408538818:1908540816.12:160:1 +营业收入同比变动:营业收入合计同比上升:合计合计营业收入:0.7756347060203552:1529440280.25:200:3 +营业收入同比变动:营业收入合计同比上升:合计合计营业收入:0.7756347060203552:1908540816.12:160:1 +营业收入同比变动:营业收入合计同比下降:其他合计营业收入:0.741646945476532:199722062.45:200:3 +营业收入同比变动:营业收入合计同比下降:合计合计营业收入:0.7410433292388916:1908540816.12:160:1 +营业收入同比变动:营业收入合计变化幅度:合计合计营业收入:0.7935448884963989:1529440280.25:200:3 +营业收入同比变动:营业收入合计变化幅度:合计合计营业收入:0.7935448884963989:1908540816.12:160:1 +营业收入同比变动:营业收入合计变动比例:合计合计营业收入:0.7641727328300476:1529440280.25:200:3 +营业收入同比变动:营业收入合计变动比例:合计合计营业收入:0.7641727328300476:1908540816.12:160:1 +营业收入同比变动:营业收入合计本期比上年同期增减:主营业务本期发生额收入:0.7555931806564331:1375217915.12:200:2 +营业收入同比变动:营业收入合计本期比上年同期增减:合计上期发生额收入:0.7304872870445251:1316036204.14:200:2 +营业收入同比变动:营业收入合计本年比上年增减:主营业务本期发生额收入:0.7561755776405334:1375217915.12:200:2 +营业收入同比变动:营业收入合计本年比上年增减:其他合计营业收入:0.74008709192276:199722062.45:200:3 +营业收入同比变动:营业收入总额同比变动:合计合计营业收入:0.7866408228874207:1529440280.25:200:3 +营业收入同比变动:营业收入总额同比变动:合计合计营业收入:0.7866408228874207:1908540816.12:160:1 +营业收入同比变动:营业收入总额同比增减:主营业务本期发生额收入:0.7469238638877869:1375217915.12:200:2 +营业收入同比变动:营业收入总额同比增减:合计合计营业收入:0.7435719966888428:1908540816.12:160:1 +营业收入同比变动:营业收入总额同比上升:合计合计营业收入:0.7519562840461731:1529440280.25:200:3 +营业收入同比变动:营业收入总额同比上升:合计合计营业收入:0.7519562840461731:1908540816.12:160:1 +营业收入同比变动:营业收入总额同比下降:合计合计营业收入:0.7205502986907959:1529440280.25:200:3 +营业收入同比变动:营业收入总额同比下降:合计合计营业收入:0.7205502986907959:1908540816.12:160:1 +营业收入同比变动:营业收入总额变化幅度:合计合计营业收入:0.7583358287811279:1529440280.25:200:3 +营业收入同比变动:营业收入总额变化幅度:合计合计营业收入:0.7583358287811279:1908540816.12:160:1 +营业收入同比变动:营业收入总额变动比例:利润总额本期发生额:0.7305872440338135:180147657.60:165:1 +营业收入同比变动:营业收入总额变动比例:合计合计营业收入:0.7294603586196899:1529440280.25:200:3 +营业收入同比变动:营业收入总额本期比上年同期增减:主营业务本期发生额收入:0.7695547342300415:1375217915.12:200:2 +营业收入同比变动:营业收入总额本期比上年同期增减:主营业务上期发生额收入:0.730354368686676:1197550470.11:200:2 +营业收入同比变动:营业收入总额本年比上年增减:主营业务本期发生额收入:0.7630562782287598:1375217915.12:200:2 +营业收入同比变动:营业收入总额本年比上年增减:主营业务上期发生额收入:0.7329850196838379:1197550470.11:200:2 +营业收入同比变动:营业收入金额同比变动:其他合计营业收入:0.7794734239578247:199722062.45:200:3 +营业收入同比变动:营业收入金额同比变动:其他合计营业收入:0.7788528800010681:130449651.32:160:1 +营业收入同比变动:营业收入金额同比增减:主营业务本期发生额收入:0.7543478012084961:1375217915.12:200:2 +营业收入同比变动:营业收入金额同比增减:主营业务上期发生额收入:0.7453909516334534:1197550470.11:200:2 +营业收入同比变动:营业收入金额同比上升:主营业务上期发生额收入:0.7364201545715332:1197550470.11:200:2 +营业收入同比变动:营业收入金额同比上升:合计合计营业收入:0.7230720520019531:1908540816.12:160:1 +营业收入同比变动:营业收入金额同比下降:其他合计营业收入:0.7163727879524231:199722062.45:200:3 +营业收入同比变动:营业收入金额同比下降:其他合计营业收入:0.715494692325592:130449651.32:160:1 +营业收入同比变动:营业收入金额变化幅度:其他合计营业收入:0.7605170011520386:199722062.45:200:3 +营业收入同比变动:营业收入金额变化幅度:其他合计营业收入:0.7597715854644775:130449651.32:160:1 +营业收入同比变动:营业收入金额变动比例:其他合计营业收入:0.7345818877220154:199722062.45:200:3 +营业收入同比变动:营业收入金额变动比例:其他合计营业收入:0.7337643504142761:130449651.32:160:1 +营业收入同比变动:营业收入金额本期比上年同期增减:主营业务本期发生额收入:0.7647278308868408:1375217915.12:200:2 +营业收入同比变动:营业收入金额本期比上年同期增减:合计上期发生额收入:0.7222485542297363:1316036204.14:200:2 +营业收入同比变动:营业收入金额本年比上年增减:主营业务本期发生额收入:0.7637135982513428:1375217915.12:200:2 +营业收入同比变动:营业收入金额本年比上年增减:主营业务上期发生额收入:0.7325354814529419:1197550470.11:200:2 +营业收入同比变动:调整后营业收入同比变动:主营业务本期发生额收入:0.6880272626876831:1375217915.12:200:2 +营业收入同比变动:调整后营业收入同比变动:其他合计营业收入:0.6830971837043762:199722062.45:200:3 +营业收入同比变动:调整后营业收入同比增减:主营业务本期发生额收入:0.6582975387573242:1375217915.12:200:2 +营业收入同比变动:调整后营业收入同比增减:主营业务上期发生额收入:0.6478844881057739:1197550470.11:200:2 +营业收入同比变动:调整后营业收入同比上升:主营业务上期发生额收入:0.6459109783172607:1197550470.11:200:2 +营业收入同比变动:调整后营业收入同比上升:主营业务本期发生额收入:0.6372413039207458:1375217915.12:200:2 +营业收入同比变动:调整后营业收入同比下降:主营业务本期发生额收入:0.635448157787323:1375217915.12:200:2 +营业收入同比变动:调整后营业收入同比下降:其他合计营业收入:0.6316241025924683:199722062.45:200:3 +营业收入同比变动:调整后营业收入变化幅度:其他合计营业收入:0.682273805141449:199722062.45:200:3 +营业收入同比变动:调整后营业收入变化幅度:其他合计营业收入:0.6815574765205383:130449651.32:160:1 +营业收入同比变动:调整后营业收入变动比例:利润总额本期发生额:0.6578234434127808:180147657.60:165:1 +营业收入同比变动:调整后营业收入变动比例:其他合计营业收入:0.6540434956550598:199722062.45:200:3 +营业收入同比变动:调整后营业收入本期比上年同期增减:主营业务本期发生额收入:0.6927846074104309:1375217915.12:200:2 +营业收入同比变动:调整后营业收入本期比上年同期增减:主营业务上期发生额收入:0.659822404384613:1197550470.11:200:2 +营业收入同比变动:调整后营业收入本年比上年增减:主营业务本期发生额收入:0.6867462992668152:1375217915.12:200:2 +营业收入同比变动:调整后营业收入本年比上年增减:主营业务上期发生额收入:0.6611533164978027:1197550470.11:200:2 +当期归母净利润:当期归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.8028674721717834:0.60:202:3 +当期归母净利润:当期归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.785799503326416:15.47:202:3 +当期归母净利润:本期归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.8064982891082764:0.60:202:3 +当期归母净利润:本期归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.802304208278656:129475371.52:159:1 +当期归母净利润:本报告期归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7749238014221191:0.60:202:3 +当期归母净利润:本报告期归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7704647183418274:129475371.52:159:1 +当期归母净利润:报告期归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7713543772697449:0.60:202:3 +当期归母净利润:报告期归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7594220638275146:129475371.52:159:1 +当期归母净利润:报告期内归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7350048422813416:0.60:202:3 +当期归母净利润:报告期内归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7205787301063538:129475371.52:159:1 +当期归母净利润:本年度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7849406003952026:0.60:202:3 +当期归母净利润:本年度归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.7508789896965027:15.47:202:3 +当期归母净利润:本期发生额归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7408241033554077:0.60:202:3 +当期归母净利润:本期发生额归属于上市公司股东的净利润:利润总额本期发生额:0.7298848628997803:180147657.60:165:1 +当期归母净利润:2023年归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7957285642623901:5585927.73:202:2 +当期归母净利润:2023年归属于上市公司股东的净利润:持续经营净利润2023年度:0.7938098907470703:153819180.44:82:1 +当期归母净利润:2023年全年归属于上市公司股东的净利润:持续经营净利润2023年度:0.8055073618888855:153819180.44:82:1 +当期归母净利润:2023年全年归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7838633060455322:5585927.73:202:2 +当期归母净利润:2023年金额归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7900206446647644:5585927.73:202:2 +当期归母净利润:2023年金额归属于上市公司股东的净利润:持续经营净利润2023年度:0.7754835486412048:153819180.44:82:1 +当期归母净利润:当期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8290497660636902:129475371.52:159:1 +当期归母净利润:当期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.8180009126663208:161483822.70:159:1 +当期归母净利润:本期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8935956954956055:129475371.52:159:1 +当期归母净利润:本期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.8917974829673767:161483822.70:159:1 +当期归母净利润:本报告期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8475449681282043:129475371.52:159:1 +当期归母净利润:本报告期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.8385649919509888:161483822.70:159:1 +当期归母净利润:报告期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8342593908309937:129475371.52:159:1 +当期归母净利润:报告期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.8186957240104675:161483822.70:159:1 +当期归母净利润:报告期内归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8065775036811829:129475371.52:159:1 +当期归母净利润:报告期内归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.8009099960327148:161483822.70:159:1 +当期归母净利润:本年度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.8437925577163696:161483822.70:159:1 +当期归母净利润:本年度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8415836095809937:129475371.52:159:1 +当期归母净利润:本期发生额归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8222904205322266:129475371.52:159:1 +当期归母净利润:本期发生额归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.811489462852478:161483822.70:159:1 +当期归母净利润:2023年归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.834814190864563:5585927.73:202:2 +当期归母净利润:2023年归属于母公司所有者的净利润:持续经营净利润2023年度:0.7693860530853271:153819180.44:82:1 +当期归母净利润:2023年全年归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8276131749153137:5585927.73:202:2 +当期归母净利润:2023年全年归属于母公司所有者的净利润:持续经营净利润2023年度:0.8085770010948181:153819180.44:82:1 +当期归母净利润:2023年金额归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8432153463363647:5585927.73:202:2 +当期归母净利润:2023年金额归属于母公司所有者的净利润:持续经营净利润2023年度:0.7801703214645386:153819180.44:82:1 +当期归母净利润:当期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.8107418417930603:129475371.52:159:1 +当期归母净利润:当期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7943345904350281:161483822.70:159:1 +当期归母净利润:本期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.8577258586883545:129475371.52:159:1 +当期归母净利润:本期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.8516240119934082:161483822.70:159:1 +当期归母净利润:本报告期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.8147250413894653:129475371.52:159:1 +当期归母净利润:本报告期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.8033404350280762:161483822.70:159:1 +当期归母净利润:报告期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.8070048093795776:129475371.52:159:1 +当期归母净利润:报告期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.788409948348999:161483822.70:159:1 +当期归母净利润:报告期内归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7778647541999817:129475371.52:159:1 +当期归母净利润:报告期内归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7700713872909546:161483822.70:159:1 +当期归母净利润:本年度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.8051185011863708:129475371.52:159:1 +当期归母净利润:本年度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.8046579360961914:161483822.70:159:1 +当期归母净利润:本期发生额归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7906359434127808:129475371.52:159:1 +当期归母净利润:本期发生额归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7764902114868164:161483822.70:159:1 +当期归母净利润:2023年归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.833087682723999:5585927.73:202:2 +当期归母净利润:2023年归属于母公司股东的净利润:持续经营净利润2023年度:0.7738577723503113:153819180.44:82:1 +当期归母净利润:2023年全年归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8208580017089844:5585927.73:202:2 +当期归母净利润:2023年全年归属于母公司股东的净利润:持续经营净利润2023年度:0.8044244647026062:153819180.44:82:1 +当期归母净利润:2023年金额归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8311514854431152:5585927.73:202:2 +当期归母净利润:2023年金额归属于母公司股东的净利润:持续经营净利润2023年度:0.7732164263725281:153819180.44:82:1 +上年同期归母净利润:上年同期归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7249244451522827:0.60:202:3 +上年同期归母净利润:上年同期归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7163729071617126:129475371.52:159:1 +上年同期归母净利润:上期归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7886401414871216:129475371.52:159:1 +上年同期归母净利润:上期归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7564921379089355:0.60:202:3 +上年同期归母净利润:上年度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7570856809616089:0.60:202:3 +上年同期归母净利润:上年度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7459165453910828:129475371.52:159:1 +上年同期归母净利润:2022年归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8441194891929626:5585927.73:202:2 +上年同期归母净利润:2022年归属于上市公司股东的净利润:持续经营净利润2022年度:0.7847490310668945:132340330.02:82:1 +上年同期归母净利润:2022年全年归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8334119319915771:5585927.73:202:2 +上年同期归母净利润:2022年全年归属于上市公司股东的净利润:持续经营净利润2022年度:0.8003338575363159:132340330.02:82:1 +上年同期归母净利润:2022年金额归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8363657593727112:5585927.73:202:2 +上年同期归母净利润:2022年金额归属于上市公司股东的净利润:持续经营净利润2022年度:0.7643235325813293:132340330.02:82:1 +上年同期归母净利润:上年同期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8037625551223755:129475371.52:159:1 +上年同期归母净利润:上年同期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7750084400177002:161483822.70:159:1 +上年同期归母净利润:上期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.868194580078125:129475371.52:159:1 +上年同期归母净利润:上期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.8264331221580505:161483822.70:159:1 +上年同期归母净利润:上年度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.8369626998901367:129475371.52:159:1 +上年同期归母净利润:上年度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.814411997795105:161483822.70:159:1 +上年同期归母净利润:2022年归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8771682977676392:5585927.73:202:2 +上年同期归母净利润:2022年归属于母公司所有者的净利润:持续经营净利润2022年度:0.7637945413589478:132340330.02:82:1 +上年同期归母净利润:2022年全年归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8709458112716675:5585927.73:202:2 +上年同期归母净利润:2022年全年归属于母公司所有者的净利润:持续经营净利润2022年度:0.8039829730987549:132340330.02:82:1 +上年同期归母净利润:2022年金额归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8834580183029175:5585927.73:202:2 +上年同期归母净利润:2022年金额归属于母公司所有者的净利润:持续经营净利润2022年度:0.7696642279624939:132340330.02:82:1 +上年同期归母净利润:上年同期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7724498510360718:129475371.52:159:1 +上年同期归母净利润:上年同期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7405427098274231:161483822.70:159:1 +上年同期归母净利润:上期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.8462290167808533:129475371.52:159:1 +上年同期归母净利润:上期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7987242937088013:161483822.70:159:1 +上年同期归母净利润:上年度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.803996205329895:129475371.52:159:1 +上年同期归母净利润:上年度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7781832218170166:161483822.70:159:1 +上年同期归母净利润:2022年归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8777350187301636:5585927.73:202:2 +上年同期归母净利润:2022年归属于母公司股东的净利润:持续经营净利润2022年度:0.7635823488235474:132340330.02:82:1 +上年同期归母净利润:2022年全年归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8667734265327454:5585927.73:202:2 +上年同期归母净利润:2022年全年归属于母公司股东的净利润:持续经营净利润2022年度:0.7977515459060669:132340330.02:82:1 +上年同期归母净利润:2022年金额归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8715700507164001:5585927.73:202:2 +上年同期归母净利润:2022年金额归属于母公司股东的净利润:持续经营净利润2022年度:0.7589723467826843:132340330.02:82:1 +前年同期归母净利润:前年同期归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7100985050201416:0.60:202:3 +前年同期归母净利润:前年同期归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.696662962436676:15.47:202:3 +前年同期归母净利润:2021年归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.770248293876648:0.60:202:3 +前年同期归母净利润:2021年归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.7561279535293579:15.47:202:3 +前年同期归母净利润:2021年全年归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7370827794075012:0.60:202:3 +前年同期归母净利润:2021年全年归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7356768250465393:5585927.73:202:2 +前年同期归母净利润:2021年金额归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7368848919868469:5585927.73:202:2 +前年同期归母净利润:2021年金额归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.6992290019989014:15.47:202:3 +前年同期归母净利润:前年同期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7666953802108765:129475371.52:159:1 +前年同期归母净利润:前年同期归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7450094819068909:161483822.70:159:1 +前年同期归母净利润:2021年归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7787916660308838:5585927.73:202:2 +前年同期归母净利润:2021年归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7558644413948059:129475371.52:159:1 +前年同期归母净利润:2021年全年归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.779625654220581:5585927.73:202:2 +前年同期归母净利润:2021年全年归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7409384846687317:129475371.52:159:1 +前年同期归母净利润:2021年金额归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7891783714294434:5585927.73:202:2 +前年同期归母净利润:2021年金额归属于母公司所有者的净利润:利润分配2022年度所有者权益合计:0.7018505930900574:-63250000.00:90:1 +前年同期归母净利润:前年同期归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7314403653144836:129475371.52:159:1 +前年同期归母净利润:前年同期归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7090657353401184:0.60:202:3 +前年同期归母净利润:2021年归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7812971472740173:5585927.73:202:2 +前年同期归母净利润:2021年归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7440325021743774:0.60:202:3 +前年同期归母净利润:2021年全年归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7726505994796753:5585927.73:202:2 +前年同期归母净利润:2021年全年归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7151908874511719:0.60:202:3 +前年同期归母净利润:2021年金额归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7759644985198975:5585927.73:202:2 +前年同期归母净利润:2021年金额归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6903880834579468:0.60:202:3 +当期第一季度归母净利润:当期第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7187562584877014:0.60:202:3 +当期第一季度归母净利润:当期第一季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6968415975570679:129475371.52:159:1 +当期第一季度归母净利润:本期第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.716156542301178:0.60:202:3 +当期第一季度归母净利润:本期第一季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7059796452522278:129475371.52:159:1 +当期第一季度归母净利润:本报告期第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6866360306739807:0.60:202:3 +当期第一季度归母净利润:本报告期第一季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6839459538459778:129475371.52:159:1 +当期第一季度归母净利润:报告期第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6691415905952454:0.60:202:3 +当期第一季度归母净利润:报告期第一季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6600385308265686:129475371.52:159:1 +当期第一季度归母净利润:报告期内第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6604865789413452:0.60:202:3 +当期第一季度归母净利润:报告期内第一季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6533492207527161:129475371.52:159:1 +当期第一季度归母净利润:本年度第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7148755788803101:0.60:202:3 +当期第一季度归母净利润:本年度第一季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.67888343334198:129475371.52:159:1 +当期第一季度归母净利润:本期发生额第一季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6717690825462341:129475371.52:159:1 +当期第一季度归母净利润:本期发生额第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6701218485832214:0.60:202:3 +当期第一季度归母净利润:2023年第一季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7816153168678284:153819180.44:82:1 +当期第一季度归母净利润:2023年第一季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.753075122833252:5585927.73:202:2 +当期第一季度归母净利润:2023年全年第一季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7828239798545837:153819180.44:82:1 +当期第一季度归母净利润:2023年全年第一季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.74666428565979:5585927.73:202:2 +当期第一季度归母净利润:2023年金额第一季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7562834024429321:5585927.73:202:2 +当期第一季度归母净利润:2023年金额第一季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7547509074211121:153819180.44:82:1 +当期第一季度归母净利润:第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7239022254943848:0.60:202:3 +当期第一季度归母净利润:第一季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.6959034204483032:15.47:202:3 +当期第一季度归母净利润:1-3月归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7045990228652954:0.60:202:3 +当期第一季度归母净利润:1-3月归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.6879079937934875:15.47:202:3 +当期第一季度归母净利润:第一季度(1-3月)归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6878000497817993:0.60:202:3 +当期第一季度归母净利润:第一季度(1-3月)归属于上市公司股东的净利润:持续经营净利润2023年度:0.6704537272453308:153819180.44:82:1 +当期第一季度归母净利润:2023年第一季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7816153168678284:153819180.44:82:1 +当期第一季度归母净利润:2023年第一季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.753075122833252:5585927.73:202:2 +当期第一季度归母净利润:当期第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7737770080566406:129475371.52:159:1 +当期第一季度归母净利润:当期第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7513977289199829:161483822.70:159:1 +当期第一季度归母净利润:本期第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7875482439994812:129475371.52:159:1 +当期第一季度归母净利润:本期第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7731223702430725:161483822.70:159:1 +当期第一季度归母净利润:本报告期第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7515453696250916:129475371.52:159:1 +当期第一季度归母净利润:本报告期第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7349542379379272:161483822.70:159:1 +当期第一季度归母净利润:报告期第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7239340543746948:129475371.52:159:1 +当期第一季度归母净利润:报告期第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.701576292514801:161483822.70:159:1 +当期第一季度归母净利润:报告期内第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7159051299095154:129475371.52:159:1 +当期第一季度归母净利润:报告期内第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7016980648040771:161483822.70:159:1 +当期第一季度归母净利润:本年度第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7577534914016724:129475371.52:159:1 +当期第一季度归母净利润:本年度第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7482946515083313:161483822.70:159:1 +当期第一季度归母净利润:本期发生额第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7502695322036743:129475371.52:159:1 +当期第一季度归母净利润:本期发生额第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7277587652206421:161483822.70:159:1 +当期第一季度归母净利润:2023年第一季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7915817499160767:5585927.73:202:2 +当期第一季度归母净利润:2023年第一季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7769023776054382:153819180.44:82:1 +当期第一季度归母净利润:2023年全年第一季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7875904440879822:153819180.44:82:1 +当期第一季度归母净利润:2023年全年第一季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7873051166534424:5585927.73:202:2 +当期第一季度归母净利润:2023年金额第一季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8021488189697266:5585927.73:202:2 +当期第一季度归母净利润:2023年金额第一季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.765546977519989:153819180.44:82:1 +当期第一季度归母净利润:第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.74302738904953:129475371.52:159:1 +当期第一季度归母净利润:第一季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7282759547233582:161483822.70:159:1 +当期第一季度归母净利润:1-3月归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7545367479324341:129475371.52:159:1 +当期第一季度归母净利润:1-3月归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7413634061813354:161483822.70:159:1 +当期第一季度归母净利润:第一季度(1-3月)归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.6948752403259277:129475371.52:159:1 +当期第一季度归母净利润:第一季度(1-3月)归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.6754453778266907:161483822.70:159:1 +当期第一季度归母净利润:2023年第一季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7915817499160767:5585927.73:202:2 +当期第一季度归母净利润:2023年第一季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7769023776054382:153819180.44:82:1 +当期第一季度归母净利润:当期第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7447994351387024:129475371.52:159:1 +当期第一季度归母净利润:当期第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7207556962966919:161483822.70:159:1 +当期第一季度归母净利润:本期第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7502148747444153:129475371.52:159:1 +当期第一季度归母净利润:本期第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7341763973236084:161483822.70:159:1 +当期第一季度归母净利润:本报告期第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7200952172279358:129475371.52:159:1 +当期第一季度归母净利润:本报告期第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7022727131843567:161483822.70:159:1 +当期第一季度归母净利润:报告期第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6993361115455627:129475371.52:159:1 +当期第一季度归母净利润:报告期第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6761243343353271:161483822.70:159:1 +当期第一季度归母净利润:报告期内第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6915109753608704:129475371.52:159:1 +当期第一季度归母净利润:报告期内第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6760281920433044:161483822.70:159:1 +当期第一季度归母净利润:本年度第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7205243706703186:129475371.52:159:1 +当期第一季度归母净利润:本年度第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7093966603279114:161483822.70:159:1 +当期第一季度归母净利润:本期发生额第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7232764363288879:129475371.52:159:1 +当期第一季度归母净利润:本期发生额第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6996036171913147:161483822.70:159:1 +当期第一季度归母净利润:2023年第一季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7855675220489502:5585927.73:202:2 +当期第一季度归母净利润:2023年第一季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7723284363746643:153819180.44:82:1 +当期第一季度归母净利润:2023年全年第一季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7809089422225952:5585927.73:202:2 +当期第一季度归母净利润:2023年全年第一季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7782613635063171:153819180.44:82:1 +当期第一季度归母净利润:2023年金额第一季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7917386293411255:5585927.73:202:2 +当期第一季度归母净利润:2023年金额第一季度归属于母公司股东的净利润:持续经营净利润2023年度:0.753246009349823:153819180.44:82:1 +当期第一季度归母净利润:第一季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7126432061195374:129475371.52:159:1 +当期第一季度归母净利润:第一季度归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7052251696586609:0.60:202:3 +当期第一季度归母净利润:1-3月归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7331128716468811:129475371.52:159:1 +当期第一季度归母净利润:1-3月归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7156203389167786:161483822.70:159:1 +当期第一季度归母净利润:第一季度(1-3月)归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6792692542076111:0.60:202:3 +当期第一季度归母净利润:第一季度(1-3月)归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6724595427513123:129475371.52:159:1 +当期第一季度归母净利润:2023年第一季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7855675220489502:5585927.73:202:2 +当期第一季度归母净利润:2023年第一季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7723284363746643:153819180.44:82:1 +当期第二季度归母净利润:当期第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7086758613586426:5585927.73:202:2 +当期第二季度归母净利润:当期第二季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6911107301712036:0.60:202:3 +当期第二季度归母净利润:本期第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7079583406448364:5585927.73:202:2 +当期第二季度归母净利润:本期第二季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6958333253860474:0.60:202:3 +当期第二季度归母净利润:本报告期第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7039374709129333:5585927.73:202:2 +当期第二季度归母净利润:本报告期第二季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6735385656356812:0.60:202:3 +当期第二季度归母净利润:报告期第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7110356688499451:5585927.73:202:2 +当期第二季度归母净利润:报告期第二季度归属于上市公司股东的净利润:持续经营净利润2022年度:0.6786938309669495:132340330.02:82:1 +当期第二季度归母净利润:报告期内第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6864894032478333:5585927.73:202:2 +当期第二季度归母净利润:报告期内第二季度归属于上市公司股东的净利润:持续经营净利润2022年度:0.6630820035934448:132340330.02:82:1 +当期第二季度归母净利润:本年度第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7230498790740967:5585927.73:202:2 +当期第二季度归母净利润:本年度第二季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7102383375167847:0.60:202:3 +当期第二季度归母净利润:本期发生额第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7008306384086609:5585927.73:202:2 +当期第二季度归母净利润:本期发生额第二季度归属于上市公司股东的净利润:持续经营净利润2022年度:0.6661792397499084:132340330.02:82:1 +当期第二季度归母净利润:2023年第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8029505014419556:5585927.73:202:2 +当期第二季度归母净利润:2023年第二季度归属于上市公司股东的净利润:持续经营净利润2022年度:0.7647544741630554:132340330.02:82:1 +当期第二季度归母净利润:2023年全年第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7966136336326599:5585927.73:202:2 +当期第二季度归母净利润:2023年全年第二季度归属于上市公司股东的净利润:持续经营净利润2022年度:0.7725580930709839:132340330.02:82:1 +当期第二季度归母净利润:2023年金额第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7972257137298584:5585927.73:202:2 +当期第二季度归母净利润:2023年金额第二季度归属于上市公司股东的净利润:持续经营净利润2022年度:0.74419766664505:132340330.02:82:1 +当期第二季度归母净利润:第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7103371620178223:5585927.73:202:2 +当期第二季度归母净利润:第二季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7033981084823608:0.60:202:3 +当期第二季度归母净利润:4-6月归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7338278889656067:0.60:202:3 +当期第二季度归母净利润:4-6月归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.6973808407783508:15.47:202:3 +当期第二季度归母净利润:第二季度(4-6月)归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.668260931968689:5585927.73:202:2 +当期第二季度归母净利润:第二季度(4-6月)归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6679310202598572:0.60:202:3 +当期第二季度归母净利润:2023年第二季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8029505014419556:5585927.73:202:2 +当期第二季度归母净利润:2023年第二季度归属于上市公司股东的净利润:持续经营净利润2022年度:0.7647544741630554:132340330.02:82:1 +当期第二季度归母净利润:当期第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7470957636833191:5585927.73:202:2 +当期第二季度归母净利润:当期第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7443849444389343:129475371.52:159:1 +当期第二季度归母净利润:本期第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7576596736907959:129475371.52:159:1 +当期第二季度归母净利润:本期第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7475774884223938:161483822.70:159:1 +当期第二季度归母净利润:本报告期第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7293089628219604:129475371.52:159:1 +当期第二季度归母净利润:本报告期第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7282747626304626:5585927.73:202:2 +当期第二季度归母净利润:报告期第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7366414070129395:5585927.73:202:2 +当期第二季度归母净利润:报告期第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7101609110832214:129475371.52:159:1 +当期第二季度归母净利润:报告期内第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7137160897254944:5585927.73:202:2 +当期第二季度归母净利润:报告期内第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7000223994255066:129475371.52:159:1 +当期第二季度归母净利润:本年度第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7607619166374207:5585927.73:202:2 +当期第二季度归母净利润:本年度第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7468956112861633:129475371.52:159:1 +当期第二季度归母净利润:本期发生额第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7409271001815796:5585927.73:202:2 +当期第二季度归母净利润:本期发生额第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7168562412261963:129475371.52:159:1 +当期第二季度归母净利润:2023年第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8401396870613098:5585927.73:202:2 +当期第二季度归母净利润:2023年第二季度归属于母公司所有者的净利润:持续经营净利润2022年度:0.7657784223556519:132340330.02:82:1 +当期第二季度归母净利润:2023年全年第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8319931626319885:5585927.73:202:2 +当期第二季度归母净利润:2023年全年第二季度归属于母公司所有者的净利润:持续经营净利润2022年度:0.7785845994949341:132340330.02:82:1 +当期第二季度归母净利润:2023年金额第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8391985297203064:5585927.73:202:2 +当期第二季度归母净利润:2023年金额第二季度归属于母公司所有者的净利润:持续经营净利润2022年度:0.7553006410598755:132340330.02:82:1 +当期第二季度归母净利润:第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7419966459274292:5585927.73:202:2 +当期第二季度归母净利润:第二季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7262850403785706:129475371.52:159:1 +当期第二季度归母净利润:4-6月归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7645702958106995:129475371.52:159:1 +当期第二季度归母净利润:4-6月归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7570635080337524:161483822.70:159:1 +当期第二季度归母净利润:第二季度(4-6月)归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7038043737411499:5585927.73:202:2 +当期第二季度归母净利润:第二季度(4-6月)归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.6938727498054504:129475371.52:159:1 +当期第二季度归母净利润:2023年第二季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8401396870613098:5585927.73:202:2 +当期第二季度归母净利润:2023年第二季度归属于母公司所有者的净利润:持续经营净利润2022年度:0.7657784223556519:132340330.02:82:1 +当期第二季度归母净利润:当期第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7378498315811157:5585927.73:202:2 +当期第二季度归母净利润:当期第二季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7118373513221741:129475371.52:159:1 +当期第二季度归母净利润:本期第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7366816997528076:5585927.73:202:2 +当期第二季度归母净利润:本期第二季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7184471487998962:129475371.52:159:1 +当期第二季度归母净利润:本报告期第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7246233820915222:5585927.73:202:2 +当期第二季度归母净利润:本报告期第二季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6958752274513245:129475371.52:159:1 +当期第二季度归母净利润:报告期第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.732404887676239:5585927.73:202:2 +当期第二季度归母净利润:报告期第二季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6823998093605042:129475371.52:159:1 +当期第二季度归母净利润:报告期内第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7128849029541016:5585927.73:202:2 +当期第二季度归母净利润:报告期内第二季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6720611453056335:129475371.52:159:1 +当期第二季度归母净利润:本年度第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7501725554466248:5585927.73:202:2 +当期第二季度归母净利润:本年度第二季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7070726752281189:129475371.52:159:1 +当期第二季度归母净利润:本期发生额第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7329778671264648:5585927.73:202:2 +当期第二季度归母净利润:本期发生额第二季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6878337264060974:129475371.52:159:1 +当期第二季度归母净利润:2023年第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8307589292526245:5585927.73:202:2 +当期第二季度归母净利润:2023年第二季度归属于母公司股东的净利润:持续经营净利润2022年度:0.7570165991783142:132340330.02:82:1 +当期第二季度归母净利润:2023年全年第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.823672354221344:5585927.73:202:2 +当期第二季度归母净利润:2023年全年第二季度归属于母公司股东的净利润:持续经营净利润2022年度:0.7667562961578369:132340330.02:82:1 +当期第二季度归母净利润:2023年金额第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8272571563720703:5585927.73:202:2 +当期第二季度归母净利润:2023年金额第二季度归属于母公司股东的净利润:持续经营净利润2022年度:0.7429331541061401:132340330.02:82:1 +当期第二季度归母净利润:第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7353835701942444:5585927.73:202:2 +当期第二季度归母净利润:第二季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6915437579154968:129475371.52:159:1 +当期第二季度归母净利润:4-6月归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7426586747169495:129475371.52:159:1 +当期第二季度归母净利润:4-6月归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7305812239646912:161483822.70:159:1 +当期第二季度归母净利润:第二季度(4-6月)归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6982223987579346:5585927.73:202:2 +当期第二季度归母净利润:第二季度(4-6月)归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6687219738960266:129475371.52:159:1 +当期第二季度归母净利润:2023年第二季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8307589292526245:5585927.73:202:2 +当期第二季度归母净利润:2023年第二季度归属于母公司股东的净利润:持续经营净利润2022年度:0.7570165991783142:132340330.02:82:1 +当期第三季度归母净利润:当期第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.6926841139793396:153819180.44:82:1 +当期第三季度归母净利润:当期第三季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6912212371826172:0.60:202:3 +当期第三季度归母净利润:本期第三季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6836984157562256:0.60:202:3 +当期第三季度归母净利润:本期第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.6803387999534607:153819180.44:82:1 +当期第三季度归母净利润:本报告期第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.679696261882782:153819180.44:82:1 +当期第三季度归母净利润:本报告期第三季度归属于上市公司股东的净利润:四、净利润2023年度:0.6701368093490601:153819180.44:82:1 +当期第三季度归母净利润:报告期第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.6882501244544983:153819180.44:82:1 +当期第三季度归母净利润:报告期第三季度归属于上市公司股东的净利润:四、净利润2023年度:0.6631377935409546:153819180.44:82:1 +当期第三季度归母净利润:报告期内第三季度归属于上市公司股东的净利润:四、净利润2023年度:0.6831995248794556:153819180.44:82:1 +当期第三季度归母净利润:报告期内第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.6811846494674683:153819180.44:82:1 +当期第三季度归母净利润:本年度第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.6978244185447693:153819180.44:82:1 +当期第三季度归母净利润:本年度第三季度归属于上市公司股东的净利润:四、净利润2023年度:0.6965727210044861:153819180.44:82:1 +当期第三季度归母净利润:本期发生额第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.6797056794166565:153819180.44:82:1 +当期第三季度归母净利润:本期发生额第三季度归属于上市公司股东的净利润:四、净利润2023年度:0.6436919569969177:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7893810868263245:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于上市公司股东的净利润:四、净利润2023年度:0.7543668150901794:153819180.44:82:1 +当期第三季度归母净利润:2023年全年第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7969455718994141:153819180.44:82:1 +当期第三季度归母净利润:2023年全年第三季度归属于上市公司股东的净利润:四、净利润2023年度:0.7533584833145142:153819180.44:82:1 +当期第三季度归母净利润:2023年金额第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7747374773025513:153819180.44:82:1 +当期第三季度归母净利润:2023年金额第三季度归属于上市公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7537038922309875:5585927.73:202:2 +当期第三季度归母净利润:第三季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7038630247116089:0.60:202:3 +当期第三季度归母净利润:第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.6927933692932129:153819180.44:82:1 +当期第三季度归母净利润:7-9月归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.68834388256073:0.60:202:3 +当期第三季度归母净利润:7-9月归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.6585885882377625:15.47:202:3 +当期第三季度归母净利润:第三季度(7-9月)归属于上市公司股东的净利润:持续经营净利润2023年度:0.6820962429046631:153819180.44:82:1 +当期第三季度归母净利润:第三季度(7-9月)归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6667340993881226:0.60:202:3 +当期第三季度归母净利润:2023年第三季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7893810868263245:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于上市公司股东的净利润:四、净利润2023年度:0.7543668150901794:153819180.44:82:1 +当期第三季度归母净利润:当期第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7409422993659973:129475371.52:159:1 +当期第三季度归母净利润:当期第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7177186608314514:161483822.70:159:1 +当期第三季度归母净利润:本期第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7520835399627686:129475371.52:159:1 +当期第三季度归母净利润:本期第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.736441433429718:161483822.70:159:1 +当期第三季度归母净利润:本报告期第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7152828574180603:129475371.52:159:1 +当期第三季度归母净利润:本报告期第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.6982182860374451:161483822.70:159:1 +当期第三季度归母净利润:报告期第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7028361558914185:129475371.52:159:1 +当期第三季度归母净利润:报告期第三季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.6864389181137085:153819180.44:82:1 +当期第三季度归母净利润:报告期内第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.6982385516166687:129475371.52:159:1 +当期第三季度归母净利润:报告期内第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.6831712126731873:161483822.70:159:1 +当期第三季度归母净利润:本年度第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7333389520645142:129475371.52:159:1 +当期第三季度归母净利润:本年度第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7231953740119934:161483822.70:159:1 +当期第三季度归母净利润:本期发生额第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7144978046417236:129475371.52:159:1 +当期第三季度归母净利润:本期发生额第三季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.6915976405143738:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7845614552497864:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7793440818786621:5585927.73:202:2 +当期第三季度归母净利润:2023年全年第三季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7993225455284119:153819180.44:82:1 +当期第三季度归母净利润:2023年全年第三季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7751630544662476:5585927.73:202:2 +当期第三季度归母净利润:2023年金额第三季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7955163717269897:5585927.73:202:2 +当期第三季度归母净利润:2023年金额第三季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.782647967338562:153819180.44:82:1 +当期第三季度归母净利润:第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7219532132148743:129475371.52:159:1 +当期第三季度归母净利润:第三季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7071595788002014:161483822.70:159:1 +当期第三季度归母净利润:7-9月归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7075353264808655:129475371.52:159:1 +当期第三季度归母净利润:7-9月归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.702448308467865:161483822.70:159:1 +当期第三季度归母净利润:第三季度(7-9月)归属于母公司所有者的净利润:持续经营净利润2023年度:0.6845756769180298:153819180.44:82:1 +当期第三季度归母净利润:第三季度(7-9月)归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.6832063794136047:129475371.52:159:1 +当期第三季度归母净利润:2023年第三季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7845614552497864:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7793440818786621:5585927.73:202:2 +当期第三季度归母净利润:当期第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.713043212890625:129475371.52:159:1 +当期第三季度归母净利润:当期第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6878709197044373:161483822.70:159:1 +当期第三季度归母净利润:本期第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7181746363639832:129475371.52:159:1 +当期第三季度归母净利润:本期第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7008261680603027:161483822.70:159:1 +当期第三季度归母净利润:本报告期第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6849614977836609:129475371.52:159:1 +当期第三季度归母净利润:本报告期第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.670137882232666:153819180.44:82:1 +当期第三季度归母净利润:报告期第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.6795235276222229:153819180.44:82:1 +当期第三季度归母净利润:报告期第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6773868203163147:129475371.52:159:1 +当期第三季度归母净利润:报告期内第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.6720688939094543:153819180.44:82:1 +当期第三季度归母净利润:报告期内第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6714288592338562:129475371.52:159:1 +当期第三季度归母净利润:本年度第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.696815013885498:129475371.52:159:1 +当期第三季度归母净利润:本年度第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.6871383190155029:153819180.44:82:1 +当期第三季度归母净利润:本期发生额第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6880837678909302:129475371.52:159:1 +当期第三季度归母净利润:本期发生额第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.6786707043647766:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7782911658287048:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7714003324508667:5585927.73:202:2 +当期第三季度归母净利润:2023年全年第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7894948720932007:153819180.44:82:1 +当期第三季度归母净利润:2023年全年第三季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7662340998649597:5585927.73:202:2 +当期第三季度归母净利润:2023年金额第三季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7842385172843933:5585927.73:202:2 +当期第三季度归母净利润:2023年金额第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7714957594871521:153819180.44:82:1 +当期第三季度归母净利润:第三季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6912115216255188:129475371.52:159:1 +当期第三季度归母净利润:第三季度归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6801078915596008:0.60:202:3 +当期第三季度归母净利润:7-9月归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.681071937084198:129475371.52:159:1 +当期第三季度归母净利润:7-9月归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6713521480560303:161483822.70:159:1 +当期第三季度归母净利润:第三季度(7-9月)归属于母公司股东的净利润:持续经营净利润2023年度:0.6752702593803406:153819180.44:82:1 +当期第三季度归母净利润:第三季度(7-9月)归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6556637287139893:129475371.52:159:1 +当期第三季度归母净利润:2023年第三季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7782911658287048:153819180.44:82:1 +当期第三季度归母净利润:2023年第三季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7714003324508667:5585927.73:202:2 +当期第四季度归母净利润:当期第四季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6910527944564819:0.60:202:3 +当期第四季度归母净利润:当期第四季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6794469952583313:129475371.52:159:1 +当期第四季度归母净利润:本期第四季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6960679888725281:0.60:202:3 +当期第四季度归母净利润:本期第四季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6899072527885437:129475371.52:159:1 +当期第四季度归母净利润:本报告期第四季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6702765226364136:0.60:202:3 +当期第四季度归母净利润:本报告期第四季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6696900129318237:129475371.52:159:1 +当期第四季度归母净利润:报告期第四季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6642804741859436:0.60:202:3 +当期第四季度归母净利润:报告期第四季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6580012440681458:129475371.52:159:1 +当期第四季度归母净利润:报告期内第四季度归属于上市公司股东的净利润:四、净利润2023年度:0.6671268343925476:153819180.44:82:1 +当期第四季度归母净利润:报告期内第四季度归属于上市公司股东的净利润:四、净利润2022年度:0.6616407632827759:132340330.02:82:1 +当期第四季度归母净利润:本年度第四季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7036772966384888:0.60:202:3 +当期第四季度归母净利润:本年度第四季度归属于上市公司股东的净利润:四、净利润2023年度:0.6917981505393982:153819180.44:82:1 +当期第四季度归母净利润:本期发生额第四季度归属于上市公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6525300741195679:129475371.52:159:1 +当期第四季度归母净利润:本期发生额第四季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6493793725967407:0.60:202:3 +当期第四季度归母净利润:2023年第四季度归属于上市公司股东的净利润:四、净利润2023年度:0.787380039691925:153819180.44:82:1 +当期第四季度归母净利润:2023年第四季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7833274602890015:153819180.44:82:1 +当期第四季度归母净利润:2023年全年第四季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7927423715591431:153819180.44:82:1 +当期第四季度归母净利润:2023年全年第四季度归属于上市公司股东的净利润:四、净利润2023年度:0.7887088656425476:153819180.44:82:1 +当期第四季度归母净利润:2023年金额第四季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7734578251838684:153819180.44:82:1 +当期第四季度归母净利润:2023年金额第四季度归属于上市公司股东的净利润:四、净利润2023年度:0.7664165496826172:153819180.44:82:1 +当期第四季度归母净利润:第四季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7132358551025391:0.60:202:3 +当期第四季度归母净利润:第四季度归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.6849732995033264:15.47:202:3 +当期第四季度归母净利润:10-12月归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7161235809326172:0.60:202:3 +当期第四季度归母净利润:10-12月归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.7067767977714539:15.47:202:3 +当期第四季度归母净利润:第四季度(10-12月)归属于上市公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.680266261100769:0.60:202:3 +当期第四季度归母净利润:第四季度(10-12月)归属于上市公司股东的净利润:归属于公司普通股股东的净利润加权平均净资产收益率:0.6575480699539185:15.47:202:3 +当期第四季度归母净利润:2023年第四季度归属于上市公司股东的净利润:四、净利润2023年度:0.787380039691925:153819180.44:82:1 +当期第四季度归母净利润:2023年第四季度归属于上市公司股东的净利润:持续经营净利润2023年度:0.7833274602890015:153819180.44:82:1 +当期第四季度归母净利润:当期第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.745606005191803:129475371.52:159:1 +当期第四季度归母净利润:当期第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.727260172367096:161483822.70:159:1 +当期第四季度归母净利润:本期第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7558269500732422:129475371.52:159:1 +当期第四季度归母净利润:本期第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7453409433364868:161483822.70:159:1 +当期第四季度归母净利润:本报告期第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7233520150184631:129475371.52:159:1 +当期第四季度归母净利润:本报告期第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7114351391792297:161483822.70:159:1 +当期第四季度归母净利润:报告期第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7121344804763794:129475371.52:159:1 +当期第四季度归母净利润:报告期第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.6955616474151611:161483822.70:159:1 +当期第四季度归母净利润:报告期内第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7053281664848328:129475371.52:159:1 +当期第四季度归母净利润:报告期内第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.6952465176582336:161483822.70:159:1 +当期第四季度归母净利润:本年度第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7427846789360046:129475371.52:159:1 +当期第四季度归母净利润:本年度第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7363105416297913:161483822.70:159:1 +当期第四季度归母净利润:本期发生额第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7190817594528198:129475371.52:159:1 +当期第四季度归母净利润:本期发生额第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7008680105209351:161483822.70:159:1 +当期第四季度归母净利润:2023年第四季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7749979496002197:5585927.73:202:2 +当期第四季度归母净利润:2023年第四季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7716075778007507:153819180.44:82:1 +当期第四季度归母净利润:2023年全年第四季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7888966202735901:153819180.44:82:1 +当期第四季度归母净利润:2023年全年第四季度归属于母公司所有者的净利润:四、净利润2023年度:0.7756247520446777:153819180.44:82:1 +当期第四季度归母净利润:2023年金额第四季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7895681858062744:5585927.73:202:2 +当期第四季度归母净利润:2023年金额第四季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7771846652030945:153819180.44:82:1 +当期第四季度归母净利润:第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.7345982193946838:129475371.52:159:1 +当期第四季度归母净利润:第四季度归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7246183753013611:161483822.70:159:1 +当期第四季度归母净利润:10-12月归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.72686368227005:129475371.52:159:1 +当期第四季度归母净利润:10-12月归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.7188295722007751:161483822.70:159:1 +当期第四季度归母净利润:第四季度(10-12月)归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润上期:0.6951080560684204:129475371.52:159:1 +当期第四季度归母净利润:第四季度(10-12月)归属于母公司所有者的净利润:加:本期归属于母公司所有者的净利润本期:0.6793581247329712:161483822.70:159:1 +当期第四季度归母净利润:2023年第四季度归属于母公司所有者的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7749979496002197:5585927.73:202:2 +当期第四季度归母净利润:2023年第四季度归属于母公司所有者的净利润:持续经营净利润2023年度:0.7716075778007507:153819180.44:82:1 +当期第四季度归母净利润:当期第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7205035090446472:129475371.52:159:1 +当期第四季度归母净利润:当期第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7004092335700989:161483822.70:159:1 +当期第四季度归母净利润:本期第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7255468964576721:129475371.52:159:1 +当期第四季度归母净利润:本期第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7133107781410217:161483822.70:159:1 +当期第四季度归母净利润:本报告期第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6979462504386902:129475371.52:159:1 +当期第四季度归母净利润:本报告期第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6846320033073425:161483822.70:159:1 +当期第四季度归母净利润:报告期第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6900572180747986:129475371.52:159:1 +当期第四季度归母净利润:报告期第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6721572279930115:161483822.70:159:1 +当期第四季度归母净利润:报告期内第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6827349662780762:129475371.52:159:1 +当期第四季度归母净利润:报告期内第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6710553765296936:161483822.70:159:1 +当期第四季度归母净利润:本年度第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7098951935768127:129475371.52:159:1 +当期第四季度归母净利润:本年度第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.7015925645828247:161483822.70:159:1 +当期第四季度归母净利润:本期发生额第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6970845460891724:129475371.52:159:1 +当期第四季度归母净利润:本期发生额第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.6775472164154053:161483822.70:159:1 +当期第四季度归母净利润:2023年第四季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7698075771331787:5585927.73:202:2 +当期第四季度归母净利润:2023年第四季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7691933512687683:153819180.44:82:1 +当期第四季度归母净利润:2023年全年第四季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7824531197547913:153819180.44:82:1 +当期第四季度归母净利润:2023年全年第四季度归属于母公司股东的净利润:四、净利润2023年度:0.7680412530899048:153819180.44:82:1 +当期第四季度归母净利润:2023年金额第四季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7808513045310974:5585927.73:202:2 +当期第四季度归母净利润:2023年金额第四季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7680474519729614:153819180.44:82:1 +当期第四季度归母净利润:第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.7088702321052551:129475371.52:159:1 +当期第四季度归母净利润:第四季度归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润本期:0.697106659412384:161483822.70:159:1 +当期第四季度归母净利润:10-12月归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6920111775398254:129475371.52:159:1 +当期第四季度归母净利润:10-12月归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.690847635269165:0.60:202:3 +当期第四季度归母净利润:第四季度(10-12月)归属于母公司股东的净利润:加:本期归属于母公司所有者的净利润上期:0.6691854596138:129475371.52:159:1 +当期第四季度归母净利润:第四季度(10-12月)归属于母公司股东的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.667631208896637:0.60:202:3 +当期第四季度归母净利润:2023年第四季度归属于母公司股东的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7698075771331787:5585927.73:202:2 +当期第四季度归母净利润:2023年第四季度归属于母公司股东的净利润:持续经营净利润2023年度:0.7691933512687683:153819180.44:82:1 +归母净利润同比变动:归属于上市公司股东的净利润同比变动:归属于公司普通股股东的净利润每股收益基本每股收益:0.8128572106361389:0.60:202:3 +归母净利润同比变动:归属于上市公司股东的净利润同比变动:归属于公司普通股股东的净利润加权平均净资产收益率:0.7952916622161865:15.47:202:3 +归母净利润同比变动:归属于上市公司股东的净利润同比增减:归属于公司普通股股东的净利润每股收益基本每股收益:0.7923576831817627:0.60:202:3 +归母净利润同比变动:归属于上市公司股东的净利润同比增减:归属于公司普通股股东的净利润加权平均净资产收益率:0.781089723110199:15.47:202:3 +归母净利润同比变动:归属于上市公司股东的净利润同比上升:归属于公司普通股股东的净利润每股收益基本每股收益:0.7905913591384888:0.60:202:3 +归母净利润同比变动:归属于上市公司股东的净利润同比上升:归属于公司普通股股东的净利润加权平均净资产收益率:0.7887871861457825:15.47:202:3 +归母净利润同比变动:归属于上市公司股东的净利润同比下降:归属于公司普通股股东的净利润每股收益基本每股收益:0.7994415163993835:0.60:202:3 +归母净利润同比变动:归属于上市公司股东的净利润同比下降:归属于公司普通股股东的净利润加权平均净资产收益率:0.7787846326828003:15.47:202:3 +归母净利润同比变动:归属于上市公司股东的净利润变化幅度:归属于公司普通股股东的净利润每股收益基本每股收益:0.7935919165611267:0.60:202:3 +归母净利润同比变动:归属于上市公司股东的净利润变化幅度:归属于公司普通股股东的净利润加权平均净资产收益率:0.7919749617576599:15.47:202:3 +归母净利润同比变动:归属于上市公司股东的净利润变动比例:归属于公司普通股股东的净利润加权平均净资产收益率:0.7985426783561707:15.47:202:3 +归母净利润同比变动:归属于上市公司股东的净利润变动比例:归属于公司普通股股东的净利润每股收益基本每股收益:0.7850022315979004:0.60:202:3 +归母净利润同比变动:归属于上市公司股东的净利润本期比上年同期增减:加:本期归属于母公司所有者的净利润上期:0.7956866025924683:129475371.52:159:1 +归母净利润同比变动:归属于上市公司股东的净利润本期比上年同期增减:归属于公司普通股股东的净利润每股收益基本每股收益:0.7880350351333618:0.60:202:3 +归母净利润同比变动:归属于上市公司股东的净利润本年比上年增减:归属于公司普通股股东的净利润每股收益基本每股收益:0.7922088503837585:0.60:202:3 +归母净利润同比变动:归属于上市公司股东的净利润本年比上年增减:归属于公司普通股股东的净利润加权平均净资产收益率:0.7753792405128479:15.47:202:3 +归母净利润同比变动:归属于母公司所有者的净利润同比变动:加:本期归属于母公司所有者的净利润上期:0.7952879071235657:129475371.52:159:1 +归母净利润同比变动:归属于母公司所有者的净利润同比变动:加:本期归属于母公司所有者的净利润本期:0.7875750660896301:161483822.70:159:1 +归母净利润同比变动:归属于母公司所有者的净利润同比增减:加:本期归属于母公司所有者的净利润上期:0.7835025787353516:129475371.52:159:1 +归母净利润同比变动:归属于母公司所有者的净利润同比增减:加:本期归属于母公司所有者的净利润本期:0.7750980257987976:161483822.70:159:1 +归母净利润同比变动:归属于母公司所有者的净利润同比上升:加:本期归属于母公司所有者的净利润上期:0.7802532315254211:129475371.52:159:1 +归母净利润同比变动:归属于母公司所有者的净利润同比上升:加:本期归属于母公司所有者的净利润本期:0.7709714770317078:161483822.70:159:1 +归母净利润同比变动:归属于母公司所有者的净利润同比下降:加:本期归属于母公司所有者的净利润上期:0.7454100847244263:129475371.52:159:1 +归母净利润同比变动:归属于母公司所有者的净利润同比下降:加:本期归属于母公司所有者的净利润本期:0.7367985248565674:161483822.70:159:1 +归母净利润同比变动:归属于母公司所有者的净利润变化幅度:加:本期归属于母公司所有者的净利润上期:0.784371018409729:129475371.52:159:1 +归母净利润同比变动:归属于母公司所有者的净利润变化幅度:加:本期归属于母公司所有者的净利润本期:0.7733875513076782:161483822.70:159:1 +归母净利润同比变动:归属于母公司所有者的净利润变动比例:加:本期归属于母公司所有者的净利润上期:0.7778427600860596:129475371.52:159:1 +归母净利润同比变动:归属于母公司所有者的净利润变动比例:加:本期归属于母公司所有者的净利润本期:0.7696747779846191:161483822.70:159:1 +归母净利润同比变动:归属于母公司所有者的净利润本期比上年同期增减:加:本期归属于母公司所有者的净利润上期:0.8588618636131287:129475371.52:159:1 +归母净利润同比变动:归属于母公司所有者的净利润本期比上年同期增减:加:本期归属于母公司所有者的净利润本期:0.8472709655761719:161483822.70:159:1 +归母净利润同比变动:归属于母公司所有者的净利润本年比上年增减:加:本期归属于母公司所有者的净利润上期:0.8193546533584595:129475371.52:159:1 +归母净利润同比变动:归属于母公司所有者的净利润本年比上年增减:加:本期归属于母公司所有者的净利润本期:0.812470555305481:161483822.70:159:1 +归母净利润同比变动:归属于母公司股东的净利润同比变动:归属于公司普通股股东的净利润每股收益基本每股收益:0.7871293425559998:0.60:202:3 +归母净利润同比变动:归属于母公司股东的净利润同比变动:加:本期归属于母公司所有者的净利润上期:0.7699754238128662:129475371.52:159:1 +归母净利润同比变动:归属于母公司股东的净利润同比增减:加:本期归属于母公司所有者的净利润上期:0.7636816501617432:129475371.52:159:1 +归母净利润同比变动:归属于母公司股东的净利润同比增减:归属于公司普通股股东的净利润每股收益基本每股收益:0.7625918984413147:0.60:202:3 +归母净利润同比变动:归属于母公司股东的净利润同比上升:加:本期归属于母公司所有者的净利润上期:0.7620748281478882:129475371.52:159:1 +归母净利润同比变动:归属于母公司股东的净利润同比上升:归属于公司普通股股东的净利润每股收益基本每股收益:0.7558120489120483:0.60:202:3 +归母净利润同比变动:归属于母公司股东的净利润同比下降:归属于公司普通股股东的净利润每股收益基本每股收益:0.7579268217086792:0.60:202:3 +归母净利润同比变动:归属于母公司股东的净利润同比下降:归属于公司普通股股东的净利润加权平均净资产收益率:0.7346307635307312:15.47:202:3 +归母净利润同比变动:归属于母公司股东的净利润变化幅度:归属于公司普通股股东的净利润每股收益基本每股收益:0.7762891054153442:0.60:202:3 +归母净利润同比变动:归属于母公司股东的净利润变化幅度:归属于公司普通股股东的净利润加权平均净资产收益率:0.7704852223396301:15.47:202:3 +归母净利润同比变动:归属于母公司股东的净利润变动比例:归属于公司普通股股东的净利润加权平均净资产收益率:0.7788648009300232:15.47:202:3 +归母净利润同比变动:归属于母公司股东的净利润变动比例:归属于公司普通股股东的净利润每股收益基本每股收益:0.7717896699905396:0.60:202:3 +归母净利润同比变动:归属于母公司股东的净利润本期比上年同期增减:加:本期归属于母公司所有者的净利润上期:0.8289036154747009:129475371.52:159:1 +归母净利润同比变动:归属于母公司股东的净利润本期比上年同期增减:加:本期归属于母公司所有者的净利润本期:0.8133425116539001:161483822.70:159:1 +归母净利润同比变动:归属于母公司股东的净利润本年比上年增减:加:本期归属于母公司所有者的净利润上期:0.7906356453895569:129475371.52:159:1 +归母净利润同比变动:归属于母公司股东的净利润本年比上年增减:加:本期归属于母公司所有者的净利润本期:0.7806462645530701:161483822.70:159:1 +当期扣非净利润:当期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8260324001312256:0.68:202:3 +当期扣非净利润:当期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8218532800674438:17.47:202:3 +当期扣非净利润:本期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8214054107666016:0.68:202:3 +当期扣非净利润:本期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8058961629867554:17.47:202:3 +当期扣非净利润:本报告期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8208826184272766:0.68:202:3 +当期扣非净利润:本报告期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.801645040512085:17.47:202:3 +当期扣非净利润:报告期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8050671815872192:0.68:202:3 +当期扣非净利润:报告期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7943629026412964:17.47:202:3 +当期扣非净利润:报告期内归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.788760781288147:0.68:202:3 +当期扣非净利润:报告期内归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7711490988731384:17.47:202:3 +当期扣非净利润:本年度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8230684995651245:0.68:202:3 +当期扣非净利润:本年度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8013383150100708:17.47:202:3 +当期扣非净利润:本期发生额归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.77236008644104:0.68:202:3 +当期扣非净利润:本期发生额归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7714359760284424:17.47:202:3 +当期扣非净利润:2023年归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8290841579437256:5585927.73:202:2 +当期扣非净利润:2023年归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7567102313041687:153819180.44:82:1 +当期扣非净利润:2023年全年归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.809709906578064:5585927.73:202:2 +当期扣非净利润:2023年全年归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7687634825706482:153819180.44:82:1 +当期扣非净利润:2023年金额归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.803936243057251:5585927.73:202:2 +当期扣非净利润:2023年金额归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7419195175170898:153819180.44:82:1 +当期扣非净利润:当期归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.778207540512085:129475371.52:159:1 +当期扣非净利润:当期归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7714349031448364:5585927.73:202:2 +当期扣非净利润:本期归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.8236414194107056:129475371.52:159:1 +当期扣非净利润:本期归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润本期:0.8185257911682129:161483822.70:159:1 +当期扣非净利润:本报告期归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.7740985751152039:129475371.52:159:1 +当期扣非净利润:本报告期归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7649232745170593:5585927.73:202:2 +当期扣非净利润:报告期归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7847274541854858:5585927.73:202:2 +当期扣非净利润:报告期归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.7648850679397583:129475371.52:159:1 +当期扣非净利润:报告期内归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7634366154670715:5585927.73:202:2 +当期扣非净利润:报告期内归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7536602020263672:0.68:202:3 +当期扣非净利润:本年度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7952741384506226:5585927.73:202:2 +当期扣非净利润:本年度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7863665223121643:0.68:202:3 +当期扣非净利润:本期发生额归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.754381537437439:129475371.52:159:1 +当期扣非净利润:本期发生额归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7467377781867981:5585927.73:202:2 +当期扣非净利润:2023年归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8770966529846191:5585927.73:202:2 +当期扣非净利润:2023年归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.747880756855011:153819180.44:82:1 +当期扣非净利润:2023年全年归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8592305779457092:5585927.73:202:2 +当期扣非净利润:2023年全年归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7856741547584534:153819180.44:82:1 +当期扣非净利润:2023年金额归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8641873598098755:5585927.73:202:2 +当期扣非净利润:2023年金额归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7590561509132385:153819180.44:82:1 +当期扣非净利润:当期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7940608263015747:0.68:202:3 +当期扣非净利润:当期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7888748645782471:17.47:202:3 +当期扣非净利润:本期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7899999618530273:0.68:202:3 +当期扣非净利润:本期归属于母公司股东的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.7864871621131897:129475371.52:159:1 +当期扣非净利润:本报告期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7955249547958374:0.68:202:3 +当期扣非净利润:本报告期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7764073610305786:17.47:202:3 +当期扣非净利润:报告期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7829486727714539:0.68:202:3 +当期扣非净利润:报告期归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7747037410736084:5585927.73:202:2 +当期扣非净利润:报告期内归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7759708166122437:0.68:202:3 +当期扣非净利润:报告期内归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7585774660110474:17.47:202:3 +当期扣非净利润:本年度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8041948080062866:0.68:202:3 +当期扣非净利润:本年度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7822554707527161:17.47:202:3 +当期扣非净利润:本期发生额归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7604752779006958:17.47:202:3 +当期扣非净利润:本期发生额归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7589712142944336:0.68:202:3 +当期扣非净利润:2023年归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.862610936164856:5585927.73:202:2 +当期扣非净利润:2023年归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7451398968696594:153819180.44:82:1 +当期扣非净利润:2023年全年归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8424838781356812:5585927.73:202:2 +当期扣非净利润:2023年全年归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7717002034187317:153819180.44:82:1 +当期扣非净利润:2023年金额归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8391104936599731:5585927.73:202:2 +当期扣非净利润:2023年金额归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.741020917892456:153819180.44:82:1 +上年同期扣非净利润:上年同期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7548560500144958:0.68:202:3 +上年同期扣非净利润:上年同期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7452707290649414:17.47:202:3 +上年同期扣非净利润:上期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7942405939102173:0.68:202:3 +上年同期扣非净利润:上期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7885165214538574:17.47:202:3 +上年同期扣非净利润:上年度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7981031537055969:0.68:202:3 +上年同期扣非净利润:上年度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7868907451629639:17.47:202:3 +上年同期扣非净利润:2022年归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.872164249420166:5585927.73:202:2 +上年同期扣非净利润:2022年归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7621406316757202:0.68:202:3 +上年同期扣非净利润:2022年全年归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8538346886634827:5585927.73:202:2 +上年同期扣非净利润:2022年全年归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7638880610466003:132340330.02:82:1 +上年同期扣非净利润:2022年金额归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8466895222663879:5585927.73:202:2 +上年同期扣非净利润:2022年金额归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.729620635509491:132340330.02:82:1 +上年同期扣非净利润:上年同期归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.741065263748169:5585927.73:202:2 +上年同期扣非净利润:上年同期归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.7352265119552612:129475371.52:159:1 +上年同期扣非净利润:上期归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.8193849325180054:129475371.52:159:1 +上年同期扣非净利润:上期归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润本期:0.7746807932853699:161483822.70:159:1 +上年同期扣非净利润:上年度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.773900032043457:5585927.73:202:2 +上年同期扣非净利润:上年度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7657840251922607:0.68:202:3 +上年同期扣非净利润:2022年归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.910628080368042:5585927.73:202:2 +上年同期扣非净利润:2022年归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7426932454109192:132340330.02:82:1 +上年同期扣非净利润:2022年全年归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.897840142250061:5585927.73:202:2 +上年同期扣非净利润:2022年全年归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7821420431137085:132340330.02:82:1 +上年同期扣非净利润:2022年金额归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.899556040763855:5585927.73:202:2 +上年同期扣非净利润:2022年金额归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7486404180526733:132340330.02:82:1 +上年同期扣非净利润:上年同期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7373479604721069:0.68:202:3 +上年同期扣非净利润:上年同期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7291423678398132:17.47:202:3 +上年同期扣非净利润:上期归属于母公司股东的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.7872282266616821:129475371.52:159:1 +上年同期扣非净利润:上期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7547740340232849:0.68:202:3 +上年同期扣非净利润:上年度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7793703675270081:0.68:202:3 +上年同期扣非净利润:上年度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7672699689865112:17.47:202:3 +上年同期扣非净利润:2022年归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.9012906551361084:5585927.73:202:2 +上年同期扣非净利润:2022年归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7357385754585266:132340330.02:82:1 +上年同期扣非净利润:2022年全年归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8855236768722534:5585927.73:202:2 +上年同期扣非净利润:2022年全年归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7669968605041504:132340330.02:82:1 +上年同期扣非净利润:2022年金额归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8773795366287231:5585927.73:202:2 +上年同期扣非净利润:2022年金额归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7259218692779541:132340330.02:82:1 +前年同期扣非净利润:前年同期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7573065161705017:0.68:202:3 +前年同期扣非净利润:前年同期归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7463235259056091:17.47:202:3 +前年同期扣非净利润:2021年归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7877549529075623:5585927.73:202:2 +前年同期扣非净利润:2021年归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7589492201805115:0.68:202:3 +前年同期扣非净利润:2021年全年归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7659774422645569:5585927.73:202:2 +前年同期扣非净利润:2021年全年归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7461708784103394:0.68:202:3 +前年同期扣非净利润:2021年金额归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7524067163467407:5585927.73:202:2 +前年同期扣非净利润:2021年金额归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7118262648582458:17.47:202:3 +前年同期扣非净利润:前年同期归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.733273983001709:0.68:202:3 +前年同期扣非净利润:前年同期归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7300455570220947:5585927.73:202:2 +前年同期扣非净利润:2021年归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8297970294952393:5585927.73:202:2 +前年同期扣非净利润:2021年归属于母公司所有者的扣除非经常性损益的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.7191462516784668:0.60:202:3 +前年同期扣非净利润:2021年全年归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.818113386631012:5585927.73:202:2 +前年同期扣非净利润:2021年全年归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7108972072601318:0.68:202:3 +前年同期扣非净利润:2021年金额归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8113875985145569:5585927.73:202:2 +前年同期扣非净利润:2021年金额归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6956484317779541:17.47:202:3 +前年同期扣非净利润:前年同期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7437196373939514:0.68:202:3 +前年同期扣非净利润:前年同期归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7336279153823853:17.47:202:3 +前年同期扣非净利润:2021年归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8224283456802368:5585927.73:202:2 +前年同期扣非净利润:2021年归属于母公司股东的扣除非经常性损益的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.729047417640686:0.60:202:3 +前年同期扣非净利润:2021年全年归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8030088543891907:5585927.73:202:2 +前年同期扣非净利润:2021年全年归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7223715782165527:0.68:202:3 +前年同期扣非净利润:2021年金额归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7889076471328735:5585927.73:202:2 +前年同期扣非净利润:2021年金额归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6948143243789673:17.47:202:3 +当期第一季度扣非净利润:当期第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.767905056476593:0.68:202:3 +当期第一季度扣非净利润:当期第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7549147605895996:17.47:202:3 +当期第一季度扣非净利润:本期第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7416095733642578:0.68:202:3 +当期第一季度扣非净利润:本期第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7218694686889648:17.47:202:3 +当期第一季度扣非净利润:本报告期第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7334794402122498:0.68:202:3 +当期第一季度扣非净利润:本报告期第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7100176811218262:17.47:202:3 +当期第一季度扣非净利润:报告期第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7095497250556946:0.68:202:3 +当期第一季度扣非净利润:报告期第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6926803588867188:17.47:202:3 +当期第一季度扣非净利润:报告期内第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.713228702545166:0.68:202:3 +当期第一季度扣非净利润:报告期内第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6933720111846924:17.47:202:3 +当期第一季度扣非净利润:本年度第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7324343323707581:0.68:202:3 +当期第一季度扣非净利润:本年度第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7056698799133301:17.47:202:3 +当期第一季度扣非净利润:本期发生额第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7226996421813965:0.68:202:3 +当期第一季度扣非净利润:本期发生额第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7168682813644409:17.47:202:3 +当期第一季度扣非净利润:2023年第一季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7794428467750549:5585927.73:202:2 +当期第一季度扣非净利润:2023年第一季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.751716673374176:153819180.44:82:1 +当期第一季度扣非净利润:2023年全年第一季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7669144868850708:5585927.73:202:2 +当期第一季度扣非净利润:2023年全年第一季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.75190669298172:153819180.44:82:1 +当期第一季度扣非净利润:2023年金额第一季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7741759419441223:5585927.73:202:2 +当期第一季度扣非净利润:2023年金额第一季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.730492115020752:153819180.44:82:1 +当期第一季度扣非净利润:第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7544645667076111:0.68:202:3 +当期第一季度扣非净利润:第一季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7398481369018555:17.47:202:3 +当期第一季度扣非净利润:1-3月归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7202138900756836:0.68:202:3 +当期第一季度扣非净利润:1-3月归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7153781056404114:17.47:202:3 +当期第一季度扣非净利润:第一季度(1-3月)归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7132245302200317:0.68:202:3 +当期第一季度扣非净利润:第一季度(1-3月)归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7011710405349731:17.47:202:3 +当期第一季度扣非净利润:2023年第一季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7794428467750549:5585927.73:202:2 +当期第一季度扣非净利润:2023年第一季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.751716673374176:153819180.44:82:1 +当期第一季度扣非净利润:当期第一季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7409253716468811:0.68:202:3 +当期第一季度扣非净利润:当期第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7359491586685181:5585927.73:202:2 +当期第一季度扣非净利润:本期第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7252757549285889:5585927.73:202:2 +当期第一季度扣非净利润:本期第一季度归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.7202525734901428:129475371.52:159:1 +当期第一季度扣非净利润:本报告期第一季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7075161933898926:0.68:202:3 +当期第一季度扣非净利润:本报告期第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7012758255004883:5585927.73:202:2 +当期第一季度扣非净利润:报告期第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7004905939102173:5585927.73:202:2 +当期第一季度扣非净利润:报告期第一季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6869458556175232:0.68:202:3 +当期第一季度扣非净利润:报告期内第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6961095929145813:5585927.73:202:2 +当期第一季度扣非净利润:报告期内第一季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6882385611534119:0.68:202:3 +当期第一季度扣非净利润:本年度第一季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7115415334701538:0.68:202:3 +当期第一季度扣非净利润:本年度第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7086257934570312:5585927.73:202:2 +当期第一季度扣非净利润:本期发生额第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7133246660232544:5585927.73:202:2 +当期第一季度扣非净利润:本期发生额第一季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7128772139549255:0.68:202:3 +当期第一季度扣非净利润:2023年第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8176008462905884:5585927.73:202:2 +当期第一季度扣非净利润:2023年第一季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7595938444137573:153819180.44:82:1 +当期第一季度扣非净利润:2023年全年第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8045014142990112:5585927.73:202:2 +当期第一季度扣非净利润:2023年全年第一季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7661638855934143:153819180.44:82:1 +当期第一季度扣非净利润:2023年金额第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8162972331047058:5585927.73:202:2 +当期第一季度扣非净利润:2023年金额第一季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7479175925254822:153819180.44:82:1 +当期第一季度扣非净利润:第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7403302192687988:5585927.73:202:2 +当期第一季度扣非净利润:第一季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7166064977645874:0.68:202:3 +当期第一季度扣非净利润:1-3月归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7220721244812012:5585927.73:202:2 +当期第一季度扣非净利润:1-3月归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.7072504162788391:129475371.52:159:1 +当期第一季度扣非净利润:第一季度(1-3月)归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.698861837387085:5585927.73:202:2 +当期第一季度扣非净利润:第一季度(1-3月)归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.689150333404541:0.68:202:3 +当期第一季度扣非净利润:2023年第一季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8176008462905884:5585927.73:202:2 +当期第一季度扣非净利润:2023年第一季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7595938444137573:153819180.44:82:1 +当期第一季度扣非净利润:当期第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7562214732170105:0.68:202:3 +当期第一季度扣非净利润:当期第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7436284422874451:17.47:202:3 +当期第一季度扣非净利润:本期第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7320147752761841:0.68:202:3 +当期第一季度扣非净利润:本期第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7169272303581238:5585927.73:202:2 +当期第一季度扣非净利润:本报告期第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7248311042785645:0.68:202:3 +当期第一季度扣非净利润:本报告期第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7015214562416077:17.47:202:3 +当期第一季度扣非净利润:报告期第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7032231092453003:0.68:202:3 +当期第一季度扣非净利润:报告期第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6945376396179199:5585927.73:202:2 +当期第一季度扣非净利润:报告期内第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.707632839679718:0.68:202:3 +当期第一季度扣非净利润:报告期内第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6937413215637207:5585927.73:202:2 +当期第一季度扣非净利润:本年度第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7249913811683655:0.68:202:3 +当期第一季度扣非净利润:本年度第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7008354663848877:5585927.73:202:2 +当期第一季度扣非净利润:本期发生额第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.724163830280304:0.68:202:3 +当期第一季度扣非净利润:本期发生额第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7193063497543335:17.47:202:3 +当期第一季度扣非净利润:2023年第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.808871328830719:5585927.73:202:2 +当期第一季度扣非净利润:2023年第一季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7487149834632874:153819180.44:82:1 +当期第一季度扣非净利润:2023年全年第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.79681795835495:5585927.73:202:2 +当期第一季度扣非净利润:2023年全年第一季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7522115111351013:153819180.44:82:1 +当期第一季度扣非净利润:2023年金额第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8046144843101501:5585927.73:202:2 +当期第一季度扣非净利润:2023年金额第一季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7319774627685547:153819180.44:82:1 +当期第一季度扣非净利润:第一季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7345343828201294:0.68:202:3 +当期第一季度扣非净利润:第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.73394376039505:5585927.73:202:2 +当期第一季度扣非净利润:1-3月归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7153244018554688:5585927.73:202:2 +当期第一季度扣非净利润:1-3月归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6941787004470825:0.68:202:3 +当期第一季度扣非净利润:第一季度(1-3月)归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.702540397644043:0.68:202:3 +当期第一季度扣非净利润:第一季度(1-3月)归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6943689584732056:5585927.73:202:2 +当期第一季度扣非净利润:2023年第一季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.808871328830719:5585927.73:202:2 +当期第一季度扣非净利润:2023年第一季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7487149834632874:153819180.44:82:1 +当期第二季度扣非净利润:当期第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7488448619842529:17.47:202:3 +当期第二季度扣非净利润:当期第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.747643232345581:0.68:202:3 +当期第二季度扣非净利润:本期第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7248224020004272:5585927.73:202:2 +当期第二季度扣非净利润:本期第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7232562303543091:0.68:202:3 +当期第二季度扣非净利润:本报告期第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7226262092590332:0.68:202:3 +当期第二季度扣非净利润:本报告期第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7219334840774536:5585927.73:202:2 +当期第二季度扣非净利润:报告期第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7297585010528564:5585927.73:202:2 +当期第二季度扣非净利润:报告期第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7118540406227112:17.47:202:3 +当期第二季度扣非净利润:报告期内第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7137273550033569:5585927.73:202:2 +当期第二季度扣非净利润:报告期内第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.706540584564209:0.68:202:3 +当期第二季度扣非净利润:本年度第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7381573915481567:5585927.73:202:2 +当期第二季度扣非净利润:本年度第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7372666597366333:0.68:202:3 +当期第二季度扣非净利润:本期发生额第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7189936637878418:17.47:202:3 +当期第二季度扣非净利润:本期发生额第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7110331058502197:0.68:202:3 +当期第二季度扣非净利润:2023年第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8224098086357117:5585927.73:202:2 +当期第二季度扣非净利润:2023年第二季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7318723201751709:132340330.02:82:1 +当期第二季度扣非净利润:2023年全年第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8118973970413208:5585927.73:202:2 +当期第二季度扣非净利润:2023年全年第二季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7386520504951477:132340330.02:82:1 +当期第二季度扣非净利润:2023年金额第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8122127056121826:5585927.73:202:2 +当期第二季度扣非净利润:2023年金额第二季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7177448868751526:132340330.02:82:1 +当期第二季度扣非净利润:第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7471832036972046:5585927.73:202:2 +当期第二季度扣非净利润:第二季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7448639869689941:0.68:202:3 +当期第二季度扣非净利润:4-6月归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7709733247756958:0.68:202:3 +当期第二季度扣非净利润:4-6月归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7548789978027344:17.47:202:3 +当期第二季度扣非净利润:第二季度(4-6月)归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7278618812561035:0.68:202:3 +当期第二季度扣非净利润:第二季度(4-6月)归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7191697359085083:17.47:202:3 +当期第二季度扣非净利润:2023年第二季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8224098086357117:5585927.73:202:2 +当期第二季度扣非净利润:2023年第二季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7318723201751709:132340330.02:82:1 +当期第二季度扣非净利润:当期第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7655659914016724:5585927.73:202:2 +当期第二季度扣非净利润:当期第二季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7234159111976624:17.47:202:3 +当期第二季度扣非净利润:本期第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7634021043777466:5585927.73:202:2 +当期第二季度扣非净利润:本期第二季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7002172470092773:17.47:202:3 +当期第二季度扣非净利润:本报告期第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7496358156204224:5585927.73:202:2 +当期第二季度扣非净利润:本报告期第二季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6953058838844299:0.68:202:3 +当期第二季度扣非净利润:报告期第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7584412097930908:5585927.73:202:2 +当期第二季度扣非净利润:报告期第二季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6888888478279114:17.47:202:3 +当期第二季度扣非净利润:报告期内第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7404178380966187:5585927.73:202:2 +当期第二季度扣非净利润:报告期内第二季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6787667870521545:0.68:202:3 +当期第二季度扣非净利润:本年度第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7726746797561646:5585927.73:202:2 +当期第二季度扣非净利润:本年度第二季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7132642865180969:0.68:202:3 +当期第二季度扣非净利润:本期发生额第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7480325698852539:5585927.73:202:2 +当期第二季度扣非净利润:本期发生额第二季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7078745365142822:17.47:202:3 +当期第二季度扣非净利润:2023年第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.860842227935791:5585927.73:202:2 +当期第二季度扣非净利润:2023年第二季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7453109622001648:132340330.02:82:1 +当期第二季度扣非净利润:2023年全年第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8482345342636108:5585927.73:202:2 +当期第二季度扣非净利润:2023年全年第二季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7555850744247437:132340330.02:82:1 +当期第二季度扣非净利润:2023年金额第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8516152501106262:5585927.73:202:2 +当期第二季度扣非净利润:2023年金额第二季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7358811497688293:132340330.02:82:1 +当期第二季度扣非净利润:第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7838269472122192:5585927.73:202:2 +当期第二季度扣非净利润:第二季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7089864015579224:17.47:202:3 +当期第二季度扣非净利润:4-6月归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.7216601371765137:129475371.52:159:1 +当期第二季度扣非净利润:4-6月归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.714760959148407:5585927.73:202:2 +当期第二季度扣非净利润:第二季度(4-6月)归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.735552191734314:5585927.73:202:2 +当期第二季度扣非净利润:第二季度(4-6月)归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7027977705001831:0.68:202:3 +当期第二季度扣非净利润:2023年第二季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.860842227935791:5585927.73:202:2 +当期第二季度扣非净利润:2023年第二季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7453109622001648:132340330.02:82:1 +当期第二季度扣非净利润:当期第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7581855654716492:5585927.73:202:2 +当期第二季度扣非净利润:当期第二季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7363142371177673:17.47:202:3 +当期第二季度扣非净利润:本期第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7543686032295227:5585927.73:202:2 +当期第二季度扣非净利润:本期第二季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7131959199905396:0.68:202:3 +当期第二季度扣非净利润:本报告期第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7441877126693726:5585927.73:202:2 +当期第二季度扣非净利润:本报告期第二季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7129217386245728:0.68:202:3 +当期第二季度扣非净利润:报告期第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7526469826698303:5585927.73:202:2 +当期第二季度扣非净利润:报告期第二季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7033296227455139:17.47:202:3 +当期第二季度扣非净利润:报告期内第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.737880289554596:5585927.73:202:2 +当期第二季度扣非净利润:报告期内第二季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6988483667373657:0.68:202:3 +当期第二季度扣非净利润:本年度第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7637202739715576:5585927.73:202:2 +当期第二季度扣非净利润:本年度第二季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7278707027435303:0.68:202:3 +当期第二季度扣非净利润:本期发生额第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7417184114456177:5585927.73:202:2 +当期第二季度扣非净利润:本期发生额第二季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7179303169250488:17.47:202:3 +当期第二季度扣非净利润:2023年第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8480798006057739:5585927.73:202:2 +当期第二季度扣非净利润:2023年第二季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7302036285400391:132340330.02:82:1 +当期第二季度扣非净利润:2023年全年第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8385475873947144:5585927.73:202:2 +当期第二季度扣非净利润:2023年全年第二季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7391971945762634:132340330.02:82:1 +当期第二季度扣非净利润:2023年金额第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8387558460235596:5585927.73:202:2 +当期第二季度扣非净利润:2023年金额第二季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7187263369560242:132340330.02:82:1 +当期第二季度扣非净利润:第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7740365266799927:5585927.73:202:2 +当期第二季度扣非净利润:第二季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7255761623382568:0.68:202:3 +当期第二季度扣非净利润:4-6月归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7342696189880371:0.68:202:3 +当期第二季度扣非净利润:4-6月归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7170719504356384:17.47:202:3 +当期第二季度扣非净利润:第二季度(4-6月)归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7315372228622437:5585927.73:202:2 +当期第二季度扣非净利润:第二季度(4-6月)归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7153224945068359:0.68:202:3 +当期第二季度扣非净利润:2023年第二季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8480798006057739:5585927.73:202:2 +当期第二季度扣非净利润:2023年第二季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2022年度:0.7302036285400391:132340330.02:82:1 +当期第三季度扣非净利润:当期第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.743847131729126:0.68:202:3 +当期第三季度扣非净利润:当期第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.734261155128479:17.47:202:3 +当期第三季度扣非净利润:本期第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7099366784095764:0.68:202:3 +当期第三季度扣非净利润:本期第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6950927972793579:17.47:202:3 +当期第三季度扣非净利润:本报告期第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6966383457183838:0.68:202:3 +当期第三季度扣非净利润:本报告期第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6782435774803162:17.47:202:3 +当期第三季度扣非净利润:报告期第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6925972700119019:0.68:202:3 +当期第三季度扣非净利润:报告期第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6803387403488159:17.47:202:3 +当期第三季度扣非净利润:报告期内第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6944278478622437:0.68:202:3 +当期第三季度扣非净利润:报告期内第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6782753467559814:17.47:202:3 +当期第三季度扣非净利润:本年度第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7104353904724121:0.68:202:3 +当期第三季度扣非净利润:本年度第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6895853281021118:17.47:202:3 +当期第三季度扣非净利润:本期发生额第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6953012347221375:0.68:202:3 +当期第三季度扣非净利润:本期发生额第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6929285526275635:17.47:202:3 +当期第三季度扣非净利润:2023年第三季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7626144886016846:5585927.73:202:2 +当期第三季度扣非净利润:2023年第三季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7530378699302673:153819180.44:82:1 +当期第三季度扣非净利润:2023年全年第三季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.76097172498703:153819180.44:82:1 +当期第三季度扣非净利润:2023年全年第三季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7523415684700012:5585927.73:202:2 +当期第三季度扣非净利润:2023年金额第三季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7654486894607544:5585927.73:202:2 +当期第三季度扣非净利润:2023年金额第三季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7453370690345764:153819180.44:82:1 +当期第三季度扣非净利润:第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7388668060302734:0.68:202:3 +当期第三季度扣非净利润:第三季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7269162535667419:17.47:202:3 +当期第三季度扣非净利润:7-9月归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7313854098320007:0.68:202:3 +当期第三季度扣非净利润:7-9月归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7186033725738525:17.47:202:3 +当期第三季度扣非净利润:第三季度(7-9月)归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7079127430915833:0.68:202:3 +当期第三季度扣非净利润:第三季度(7-9月)归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6961119771003723:17.47:202:3 +当期第三季度扣非净利润:2023年第三季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7626144886016846:5585927.73:202:2 +当期第三季度扣非净利润:2023年第三季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7530378699302673:153819180.44:82:1 +当期第三季度扣非净利润:当期第三季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7180739045143127:0.68:202:3 +当期第三季度扣非净利润:当期第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7121220827102661:5585927.73:202:2 +当期第三季度扣非净利润:本期第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.698891818523407:5585927.73:202:2 +当期第三季度扣非净利润:本期第三季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6872739195823669:0.68:202:3 +当期第三季度扣非净利润:本报告期第三季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6714487075805664:0.68:202:3 +当期第三季度扣非净利润:本报告期第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6712555885314941:5585927.73:202:2 +当期第三季度扣非净利润:报告期第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6865938901901245:5585927.73:202:2 +当期第三季度扣非净利润:报告期第三季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.6732601523399353:153819180.44:82:1 +当期第三季度扣非净利润:报告期内第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6799982786178589:5585927.73:202:2 +当期第三季度扣非净利润:报告期内第三季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6696537137031555:0.68:202:3 +当期第三季度扣非净利润:本年度第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6987884044647217:5585927.73:202:2 +当期第三季度扣非净利润:本年度第三季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.690321683883667:0.68:202:3 +当期第三季度扣非净利润:本期发生额第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6886657476425171:5585927.73:202:2 +当期第三季度扣非净利润:本期发生额第三季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6867343783378601:17.47:202:3 +当期第三季度扣非净利润:2023年第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.797795832157135:5585927.73:202:2 +当期第三季度扣非净利润:2023年第三季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7602532505989075:153819180.44:82:1 +当期第三季度扣非净利润:2023年全年第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7876362800598145:5585927.73:202:2 +当期第三季度扣非净利润:2023年全年第三季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7733147740364075:153819180.44:82:1 +当期第三季度扣非净利润:2023年金额第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.8030797839164734:5585927.73:202:2 +当期第三季度扣非净利润:2023年金额第三季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7591418027877808:153819180.44:82:1 +当期第三季度扣非净利润:第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7285078763961792:5585927.73:202:2 +当期第三季度扣非净利润:第三季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7024917602539062:0.68:202:3 +当期第三季度扣非净利润:7-9月归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6892725229263306:5585927.73:202:2 +当期第三季度扣非净利润:7-9月归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.6714909076690674:129475371.52:159:1 +当期第三季度扣非净利润:第三季度(7-9月)归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6883418560028076:5585927.73:202:2 +当期第三季度扣非净利润:第三季度(7-9月)归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6854289770126343:0.68:202:3 +当期第三季度扣非净利润:2023年第三季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.797795832157135:5585927.73:202:2 +当期第三季度扣非净利润:2023年第三季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7602532505989075:153819180.44:82:1 +当期第三季度扣非净利润:当期第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7323101162910461:0.68:202:3 +当期第三季度扣非净利润:当期第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.722990870475769:17.47:202:3 +当期第三季度扣非净利润:本期第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7002736926078796:0.68:202:3 +当期第三季度扣非净利润:本期第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6927783489227295:5585927.73:202:2 +当期第三季度扣非净利润:本报告期第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6873817443847656:0.68:202:3 +当期第三季度扣非净利润:本报告期第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6690260767936707:17.47:202:3 +当期第三季度扣非净利润:报告期第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6849058866500854:0.68:202:3 +当期第三季度扣非净利润:报告期第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6814860105514526:5585927.73:202:2 +当期第三季度扣非净利润:报告期内第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6874883770942688:0.68:202:3 +当期第三季度扣非净利润:报告期内第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6791142225265503:5585927.73:202:2 +当期第三季度扣非净利润:本年度第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7025926113128662:0.68:202:3 +当期第三季度扣非净利润:本年度第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6920628547668457:5585927.73:202:2 +当期第三季度扣非净利润:本期发生额第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6968339085578918:0.68:202:3 +当期第三季度扣非净利润:本期发生额第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6949604153633118:17.47:202:3 +当期第三季度扣非净利润:2023年第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7887687683105469:5585927.73:202:2 +当期第三季度扣非净利润:2023年第三季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7493119239807129:153819180.44:82:1 +当期第三季度扣非净利润:2023年全年第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7795279026031494:5585927.73:202:2 +当期第三季度扣非净利润:2023年全年第三季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.760225236415863:153819180.44:82:1 +当期第三季度扣非净利润:2023年金额第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7926426529884338:5585927.73:202:2 +当期第三季度扣非净利润:2023年金额第三季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7450754046440125:153819180.44:82:1 +当期第三季度扣非净利润:第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7239104509353638:5585927.73:202:2 +当期第三季度扣非净利润:第三季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7207947373390198:0.68:202:3 +当期第三季度扣非净利润:7-9月归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6994860172271729:0.68:202:3 +当期第三季度扣非净利润:7-9月归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.687427282333374:5585927.73:202:2 +当期第三季度扣非净利润:第三季度(7-9月)归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6938578486442566:0.68:202:3 +当期第三季度扣非净利润:第三季度(7-9月)归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6828607320785522:5585927.73:202:2 +当期第三季度扣非净利润:2023年第三季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7887687683105469:5585927.73:202:2 +当期第三季度扣非净利润:2023年第三季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7493119239807129:153819180.44:82:1 +当期第四季度扣非净利润:当期第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7406319379806519:0.68:202:3 +当期第四季度扣非净利润:当期第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7278617024421692:17.47:202:3 +当期第四季度扣非净利润:本期第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7199193239212036:0.68:202:3 +当期第四季度扣非净利润:本期第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7014930844306946:17.47:202:3 +当期第四季度扣非净利润:本报告期第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7105863094329834:0.68:202:3 +当期第四季度扣非净利润:本报告期第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6907421946525574:17.47:202:3 +当期第四季度扣非净利润:报告期第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7018581628799438:0.68:202:3 +当期第四季度扣非净利润:报告期第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6868033409118652:17.47:202:3 +当期第四季度扣非净利润:报告期内第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6983160972595215:0.68:202:3 +当期第四季度扣非净利润:报告期内第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6805451512336731:17.47:202:3 +当期第四季度扣非净利润:本年度第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7238023281097412:0.68:202:3 +当期第四季度扣非净利润:本年度第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.700843095779419:17.47:202:3 +当期第四季度扣非净利润:本期发生额第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7065432667732239:0.68:202:3 +当期第四季度扣非净利润:本期发生额第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6997087001800537:17.47:202:3 +当期第四季度扣非净利润:2023年第四季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7595480680465698:5585927.73:202:2 +当期第四季度扣非净利润:2023年第四季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7497620582580566:153819180.44:82:1 +当期第四季度扣非净利润:2023年全年第四季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7602201700210571:153819180.44:82:1 +当期第四季度扣非净利润:2023年全年第四季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7498235106468201:5585927.73:202:2 +当期第四季度扣非净利润:2023年金额第四季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7599033713340759:5585927.73:202:2 +当期第四季度扣非净利润:2023年金额第四季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7468363642692566:153819180.44:82:1 +当期第四季度扣非净利润:第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7459908723831177:0.68:202:3 +当期第四季度扣非净利润:第四季度归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7312794923782349:17.47:202:3 +当期第四季度扣非净利润:10-12月归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7385393977165222:0.68:202:3 +当期第四季度扣非净利润:10-12月归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.737189769744873:17.47:202:3 +当期第四季度扣非净利润:第四季度(10-12月)归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7133760452270508:0.68:202:3 +当期第四季度扣非净利润:第四季度(10-12月)归属于上市公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7007712125778198:17.47:202:3 +当期第四季度扣非净利润:2023年第四季度归属于上市公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7595480680465698:5585927.73:202:2 +当期第四季度扣非净利润:2023年第四季度归属于上市公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7497620582580566:153819180.44:82:1 +当期第四季度扣非净利润:当期第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7142255306243896:0.68:202:3 +当期第四季度扣非净利润:当期第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7037301659584045:17.47:202:3 +当期第四季度扣非净利润:本期第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6955821514129639:0.68:202:3 +当期第四季度扣非净利润:本期第四季度归属于母公司所有者的扣除非经常性损益的净利润:加:本期归属于母公司所有者的净利润上期:0.6896200776100159:129475371.52:159:1 +当期第四季度扣非净利润:本报告期第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6837426424026489:0.68:202:3 +当期第四季度扣非净利润:本报告期第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6663782596588135:17.47:202:3 +当期第四季度扣非净利润:报告期第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6796470284461975:0.68:202:3 +当期第四季度扣非净利润:报告期第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6675900220870972:17.47:202:3 +当期第四季度扣非净利润:报告期内第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6720786094665527:0.68:202:3 +当期第四季度扣非净利润:报告期内第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6555536389350891:17.47:202:3 +当期第四季度扣非净利润:本年度第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.700650691986084:0.68:202:3 +当期第四季度扣非净利润:本年度第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6806323528289795:17.47:202:3 +当期第四季度扣非净利润:本期发生额第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6932766437530518:0.68:202:3 +当期第四季度扣非净利润:本期发生额第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6890180706977844:17.47:202:3 +当期第四季度扣非净利润:2023年第四季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7926119565963745:5585927.73:202:2 +当期第四季度扣非净利润:2023年第四季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.752826452255249:153819180.44:82:1 +当期第四季度扣非净利润:2023年全年第四季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7830111980438232:5585927.73:202:2 +当期第四季度扣非净利润:2023年全年第四季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7681547999382019:153819180.44:82:1 +当期第四季度扣非净利润:2023年金额第四季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7962586879730225:5585927.73:202:2 +当期第四季度扣非净利润:2023年金额第四季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7582496404647827:153819180.44:82:1 +当期第四季度扣非净利润:第四季度归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7078337073326111:0.68:202:3 +当期第四季度扣非净利润:第四季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.701402485370636:5585927.73:202:2 +当期第四季度扣非净利润:10-12月归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.6979886293411255:5585927.73:202:2 +当期第四季度扣非净利润:10-12月归属于母公司所有者的扣除非经常性损益的净利润:归属于公司普通股股东的净利润每股收益基本每股收益:0.6903701424598694:0.60:202:3 +当期第四季度扣非净利润:第四季度(10-12月)归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6909375786781311:0.68:202:3 +当期第四季度扣非净利润:第四季度(10-12月)归属于母公司所有者的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.680225133895874:17.47:202:3 +当期第四季度扣非净利润:2023年第四季度归属于母公司所有者的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7926119565963745:5585927.73:202:2 +当期第四季度扣非净利润:2023年第四季度归属于母公司所有者的扣除非经常性损益的净利润:持续经营净利润2023年度:0.752826452255249:153819180.44:82:1 +当期第四季度扣非净利润:当期第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7301681041717529:0.68:202:3 +当期第四季度扣非净利润:当期第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7175829410552979:17.47:202:3 +当期第四季度扣非净利润:本期第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7110024690628052:0.68:202:3 +当期第四季度扣非净利润:本期第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6929327845573425:17.47:202:3 +当期第四季度扣非净利润:本报告期第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7017512321472168:0.68:202:3 +当期第四季度扣非净利润:本报告期第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6815284490585327:17.47:202:3 +当期第四季度扣非净利润:报告期第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6956130862236023:0.68:202:3 +当期第四季度扣非净利润:报告期第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6809860467910767:17.47:202:3 +当期第四季度扣非净利润:报告期内第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.6918914318084717:0.68:202:3 +当期第四季度扣非净利润:报告期内第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6733983159065247:17.47:202:3 +当期第四季度扣非净利润:本年度第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.715309202671051:0.68:202:3 +当期第四季度扣非净利润:本年度第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6929366588592529:17.47:202:3 +当期第四季度扣非净利润:本期发生额第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7060917615890503:0.68:202:3 +当期第四季度扣非净利润:本期发生额第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6997462511062622:17.47:202:3 +当期第四季度扣非净利润:2023年第四季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7851074934005737:5585927.73:202:2 +当期第四季度扣非净利润:2023年第四季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7449992299079895:153819180.44:82:1 +当期第四季度扣非净利润:2023年全年第四季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7767080664634705:5585927.73:202:2 +当期第四季度扣非净利润:2023年全年第四季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7579862475395203:153819180.44:82:1 +当期第四季度扣非净利润:2023年金额第四季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7869263887405396:5585927.73:202:2 +当期第四季度扣非净利润:2023年金额第四季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7459722757339478:153819180.44:82:1 +当期第四季度扣非净利润:第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7276483774185181:0.68:202:3 +当期第四季度扣非净利润:第四季度归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7128092050552368:17.47:202:3 +当期第四季度扣非净利润:10-12月归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7057144045829773:0.68:202:3 +当期第四季度扣非净利润:10-12月归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7027064561843872:17.47:202:3 +当期第四季度扣非净利润:第四季度(10-12月)归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.701322078704834:0.68:202:3 +当期第四季度扣非净利润:第四季度(10-12月)归属于母公司股东的扣除非经常性损益的净利润:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.6890910863876343:17.47:202:3 +当期第四季度扣非净利润:2023年第四季度归属于母公司股东的扣除非经常性损益的净利润:2022年度归属于母公司所有者的非经常性损益净额金额:0.7851074934005737:5585927.73:202:2 +当期第四季度扣非净利润:2023年第四季度归属于母公司股东的扣除非经常性损益的净利润:持续经营净利润2023年度:0.7449992299079895:153819180.44:82:1 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润同比变动:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7988709211349487:0.68:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润同比变动:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7967780232429504:17.47:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润同比增减:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7778099179267883:17.47:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润同比增减:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7777659893035889:0.68:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润同比上升:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7829717397689819:17.47:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润同比上升:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7731540203094482:0.68:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润同比下降:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7857997417449951:0.68:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润同比下降:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7800267934799194:17.47:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润变化幅度:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7991597056388855:17.47:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润变化幅度:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7882792949676514:0.68:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润变动比例:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8018311858177185:17.47:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润变动比例:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7752537727355957:0.68:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润本期比上年同期增减:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7700045704841614:0.68:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润本期比上年同期增减:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7663306593894958:17.47:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润本年比上年增减:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7764275074005127:0.68:202:3 +扣非净利润同比变动:归属于上市公司股东的扣除非经常性损益的净利润本年比上年增减:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7739900350570679:17.47:202:3 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润同比变动:2022年度归属于母公司所有者的非经常性损益净额金额:0.7842721343040466:5585927.73:202:2 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润同比变动:加:本期归属于母公司所有者的净利润上期:0.7538594007492065:129475371.52:159:1 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润同比增减:2022年度归属于母公司所有者的非经常性损益净额金额:0.765417218208313:5585927.73:202:2 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润同比增减:加:本期归属于母公司所有者的净利润上期:0.765049934387207:129475371.52:159:1 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润同比上升:加:本期归属于母公司所有者的净利润上期:0.7592365145683289:129475371.52:159:1 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润同比上升:2022年度归属于母公司所有者的非经常性损益净额金额:0.7539896965026855:5585927.73:202:2 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润同比下降:2022年度归属于母公司所有者的非经常性损益净额金额:0.766386866569519:5585927.73:202:2 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润同比下降:加:本期归属于母公司所有者的净利润上期:0.7299516797065735:129475371.52:159:1 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润变化幅度:2022年度归属于母公司所有者的非经常性损益净额金额:0.7786229252815247:5585927.73:202:2 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润变化幅度:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.741756796836853:17.47:202:3 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润变动比例:2022年度归属于母公司所有者的非经常性损益净额金额:0.7646045684814453:5585927.73:202:2 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润变动比例:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.739445686340332:17.47:202:3 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润本期比上年同期增减:加:本期归属于母公司所有者的净利润上期:0.8032207489013672:129475371.52:159:1 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润本期比上年同期增减:加:本期归属于母公司所有者的净利润本期:0.7885921001434326:161483822.70:159:1 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润本年比上年增减:加:本期归属于母公司所有者的净利润上期:0.7794903516769409:129475371.52:159:1 +扣非净利润同比变动:归属于母公司所有者的扣除非经常性损益的净利润本年比上年增减:2022年度归属于母公司所有者的非经常性损益净额金额:0.7764232158660889:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润同比变动:2022年度归属于母公司所有者的非经常性损益净额金额:0.7844582200050354:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润同比变动:归属于公司普通股股东的净利润每股收益基本每股收益:0.7669461965560913:0.60:202:3 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润同比增减:2022年度归属于母公司所有者的非经常性损益净额金额:0.7629066705703735:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润同比增减:归属于公司普通股股东的净利润每股收益基本每股收益:0.7503648996353149:0.60:202:3 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润同比上升:2022年度归属于母公司所有者的非经常性损益净额金额:0.7517353296279907:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润同比上升:归属于公司普通股股东的净利润每股收益基本每股收益:0.744448184967041:0.60:202:3 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润同比下降:2022年度归属于母公司所有者的非经常性损益净额金额:0.7646483182907104:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润同比下降:归属于公司普通股股东的净利润每股收益基本每股收益:0.7505547404289246:0.60:202:3 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润变化幅度:2022年度归属于母公司所有者的非经常性损益净额金额:0.7761825323104858:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润变化幅度:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7695308327674866:17.47:202:3 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润变动比例:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7678375244140625:17.47:202:3 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润变动比例:2022年度归属于母公司所有者的非经常性损益净额金额:0.7601466774940491:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润本期比上年同期增减:加:本期归属于母公司所有者的净利润上期:0.7736004590988159:129475371.52:159:1 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润本期比上年同期增减:2022年度归属于母公司所有者的非经常性损益净额金额:0.7571174502372742:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润本年比上年增减:2022年度归属于母公司所有者的非经常性损益净额金额:0.7703106999397278:5585927.73:202:2 +扣非净利润同比变动:归属于母公司股东的扣除非经常性损益的净利润本年比上年增减:归属于公司普通股股东的净利润每股收益基本每股收益:0.7524517774581909:0.60:202:3 +当期经营活动现金流净额:当期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8399946689605713:72206529.17:84:2 +当期经营活动现金流净额:当期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8399946689605713:96403230.58:83:2 +当期经营活动现金流净额:本期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8516885638237:72206529.17:84:2 +当期经营活动现金流净额:本期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8516885638237:96403230.58:83:2 +当期经营活动现金流净额:本报告期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8163775205612183:103460734.18:84:2 +当期经营活动现金流净额:本报告期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8163775205612183:137243172.01:83:2 +当期经营活动现金流净额:报告期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8194200396537781:103460734.18:84:2 +当期经营活动现金流净额:报告期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8194200396537781:137243172.01:83:2 +当期经营活动现金流净额:报告期内经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7884940505027771:103460734.18:84:2 +当期经营活动现金流净额:报告期内经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7884940505027771:137243172.01:83:2 +当期经营活动现金流净额:本年度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8303256630897522:103460734.18:84:2 +当期经营活动现金流净额:本年度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8303256630897522:137243172.01:83:2 +当期经营活动现金流净额:本期发生额经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8410243988037109:72206529.17:84:2 +当期经营活动现金流净额:本期发生额经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8410243988037109:96403230.58:83:2 +当期经营活动现金流净额:2023年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8690390586853027:103460734.18:84:2 +当期经营活动现金流净额:2023年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8690390586853027:137243172.01:83:2 +当期经营活动现金流净额:2023年全年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8255732655525208:103460734.18:84:2 +当期经营活动现金流净额:2023年全年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8255732655525208:137243172.01:83:2 +当期经营活动现金流净额:2023年金额经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8542194366455078:72206529.17:84:2 +当期经营活动现金流净额:2023年金额经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8542194366455078:96403230.58:83:2 +当期经营活动现金流净额:当期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7695506811141968:72206529.17:84:2 +当期经营活动现金流净额:当期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7695506811141968:96403230.58:83:2 +当期经营活动现金流净额:本期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7731218338012695:72206529.17:84:2 +当期经营活动现金流净额:本期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7731218338012695:96403230.58:83:2 +当期经营活动现金流净额:本报告期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7481679916381836:103460734.18:84:2 +当期经营活动现金流净额:本报告期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7481679916381836:137243172.01:83:2 +当期经营活动现金流净额:报告期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7557547092437744:72206529.17:84:2 +当期经营活动现金流净额:报告期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7557547092437744:96403230.58:83:2 +当期经营活动现金流净额:报告期内经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7225486636161804:103460734.18:84:2 +当期经营活动现金流净额:报告期内经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7225486636161804:137243172.01:83:2 +当期经营活动现金流净额:本年度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7647061944007874:103460734.18:84:2 +当期经营活动现金流净额:本年度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7647061944007874:137243172.01:83:2 +当期经营活动现金流净额:本期发生额经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7815693616867065:72206529.17:84:2 +当期经营活动现金流净额:本期发生额经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7815693616867065:96403230.58:83:2 +当期经营活动现金流净额:2023年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8210266828536987:72206529.17:84:2 +当期经营活动现金流净额:2023年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8210266828536987:96403230.58:83:2 +当期经营活动现金流净额:2023年全年经营活动现金净流量:持续经营净利润2023年度:0.7826700210571289:153819180.44:82:1 +当期经营活动现金流净额:2023年全年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7726075649261475:137243172.01:83:2 +当期经营活动现金流净额:2023年金额经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8120062351226807:72206529.17:84:2 +当期经营活动现金流净额:2023年金额经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8120062351226807:96403230.58:83:2 +当期经营活动现金流净额:当期经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6946997046470642:1266437216.92:84:2 +当期经营活动现金流净额:当期经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6946997046470642:1809494459.14:83:2 +当期经营活动现金流净额:本期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7033042907714844:72206529.17:84:2 +当期经营活动现金流净额:本期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7033042907714844:96403230.58:83:2 +当期经营活动现金流净额:本报告期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7131535410881042:103460734.18:84:2 +当期经营活动现金流净额:本报告期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7131535410881042:137243172.01:83:2 +当期经营活动现金流净额:报告期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7156774401664734:72206529.17:84:2 +当期经营活动现金流净额:报告期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7156774401664734:96403230.58:83:2 +当期经营活动现金流净额:报告期内经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7021319270133972:103460734.18:84:2 +当期经营活动现金流净额:报告期内经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7021319270133972:137243172.01:83:2 +当期经营活动现金流净额:本年度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7216082215309143:103460734.18:84:2 +当期经营活动现金流净额:本年度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7216082215309143:137243172.01:83:2 +当期经营活动现金流净额:本期发生额经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7391992807388306:72206529.17:84:2 +当期经营活动现金流净额:本期发生额经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7391992807388306:96403230.58:83:2 +当期经营活动现金流净额:2023年经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7620757818222046:72206529.17:84:2 +当期经营活动现金流净额:2023年经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7620757818222046:96403230.58:83:2 +当期经营活动现金流净额:2023年全年经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7345247864723206:103460734.18:84:2 +当期经营活动现金流净额:2023年全年经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7345247864723206:137243172.01:83:2 +当期经营活动现金流净额:2023年金额经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7684880495071411:1266437216.92:84:2 +当期经营活动现金流净额:2023年金额经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7684880495071411:1809494459.14:83:2 +上年同期经营活动现金流净额:上年同期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7772907018661499:103460734.18:84:2 +上年同期经营活动现金流净额:上年同期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7772907018661499:137243172.01:83:2 +上年同期经营活动现金流净额:上期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8271266222000122:72206529.17:84:2 +上年同期经营活动现金流净额:上期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8271266222000122:96403230.58:83:2 +上年同期经营活动现金流净额:上年度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8149641752243042:103460734.18:84:2 +上年同期经营活动现金流净额:上年度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8149641752243042:137243172.01:83:2 +上年同期经营活动现金流净额:2022年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8791653513908386:103460734.18:84:2 +上年同期经营活动现金流净额:2022年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8791653513908386:137243172.01:83:2 +上年同期经营活动现金流净额:2022年全年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8355849981307983:103460734.18:84:2 +上年同期经营活动现金流净额:2022年全年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8355849981307983:137243172.01:83:2 +上年同期经营活动现金流净额:2022年金额经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8612352609634399:72206529.17:84:2 +上年同期经营活动现金流净额:2022年金额经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8612352609634399:96403230.58:83:2 +上年同期经营活动现金流净额:上年同期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7167509198188782:103460734.18:84:2 +上年同期经营活动现金流净额:上年同期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7167509198188782:137243172.01:83:2 +上年同期经营活动现金流净额:上期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7547105550765991:72206529.17:84:2 +上年同期经营活动现金流净额:上期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7547105550765991:96403230.58:83:2 +上年同期经营活动现金流净额:上年度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.750397801399231:72206529.17:84:2 +上年同期经营活动现金流净额:上年度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.750397801399231:96403230.58:83:2 +上年同期经营活动现金流净额:2022年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8301065564155579:103460734.18:84:2 +上年同期经营活动现金流净额:2022年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8301065564155579:137243172.01:83:2 +上年同期经营活动现金流净额:2022年全年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7811682224273682:103460734.18:84:2 +上年同期经营活动现金流净额:2022年全年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7811682224273682:137243172.01:83:2 +上年同期经营活动现金流净额:2022年金额经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8148775100708008:72206529.17:84:2 +上年同期经营活动现金流净额:2022年金额经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8148775100708008:96403230.58:83:2 +上年同期经营活动现金流净额:上年同期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6886841654777527:103460734.18:84:2 +上年同期经营活动现金流净额:上年同期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6886841654777527:137243172.01:83:2 +上年同期经营活动现金流净额:上期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7039361596107483:72206529.17:84:2 +上年同期经营活动现金流净额:上期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7039361596107483:96403230.58:83:2 +上年同期经营活动现金流净额:上年度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7153657674789429:72206529.17:84:2 +上年同期经营活动现金流净额:上年度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7153657674789429:96403230.58:83:2 +上年同期经营活动现金流净额:2022年经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7808305025100708:1266437216.92:84:2 +上年同期经营活动现金流净额:2022年经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7808305025100708:1809494459.14:83:2 +上年同期经营活动现金流净额:2022年全年经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7442411780357361:103460734.18:84:2 +上年同期经营活动现金流净额:2022年全年经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7442411780357361:137243172.01:83:2 +上年同期经营活动现金流净额:2022年金额经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7775881290435791:1266437216.92:84:2 +上年同期经营活动现金流净额:2022年金额经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7775881290435791:1809494459.14:83:2 +前年同期经营活动现金流净额:前年同期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7609868049621582:72206529.17:84:2 +前年同期经营活动现金流净额:前年同期经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7609868049621582:96403230.58:83:2 +前年同期经营活动现金流净额:2021年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8282190561294556:72206529.17:84:2 +前年同期经营活动现金流净额:2021年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8282190561294556:96403230.58:83:2 +前年同期经营活动现金流净额:2021年全年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7900218367576599:72206529.17:84:2 +前年同期经营活动现金流净额:2021年全年经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7900218367576599:96403230.58:83:2 +前年同期经营活动现金流净额:2021年金额经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.804916262626648:72206529.17:84:2 +前年同期经营活动现金流净额:2021年金额经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.804916262626648:96403230.58:83:2 +前年同期经营活动现金流净额:前年同期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7006931304931641:72206529.17:84:2 +前年同期经营活动现金流净额:前年同期经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7006931304931641:96403230.58:83:2 +前年同期经营活动现金流净额:2021年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7760300636291504:72206529.17:84:2 +前年同期经营活动现金流净额:2021年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7760300636291504:96403230.58:83:2 +前年同期经营活动现金流净额:2021年全年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7295911312103271:72206529.17:84:2 +前年同期经营活动现金流净额:2021年全年经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7295911312103271:96403230.58:83:2 +前年同期经营活动现金流净额:2021年金额经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7556101679801941:72206529.17:84:2 +前年同期经营活动现金流净额:2021年金额经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7556101679801941:96403230.58:83:2 +前年同期经营活动现金流净额:前年同期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6842694282531738:72206529.17:84:2 +前年同期经营活动现金流净额:前年同期经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6842694282531738:96403230.58:83:2 +前年同期经营活动现金流净额:2021年经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7176082134246826:1266437216.92:84:2 +前年同期经营活动现金流净额:2021年经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7176082134246826:1809494459.14:83:2 +前年同期经营活动现金流净额:2021年全年经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6877075433731079:72206529.17:84:2 +前年同期经营活动现金流净额:2021年全年经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6877075433731079:96403230.58:83:2 +前年同期经营活动现金流净额:2021年金额经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7203717231750488:1266437216.92:84:2 +前年同期经营活动现金流净额:2021年金额经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7203717231750488:1809494459.14:83:2 +当期第一季度经营活动现金流净额:当期第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7834084033966064:72206529.17:84:2 +当期第一季度经营活动现金流净额:当期第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7834084033966064:96403230.58:83:2 +当期第一季度经营活动现金流净额:本期第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7789040207862854:103460734.18:84:2 +当期第一季度经营活动现金流净额:本期第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7789040207862854:137243172.01:83:2 +当期第一季度经营活动现金流净额:本报告期第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7495941519737244:103460734.18:84:2 +当期第一季度经营活动现金流净额:本报告期第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7495941519737244:137243172.01:83:2 +当期第一季度经营活动现金流净额:报告期第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7442473769187927:72206529.17:84:2 +当期第一季度经营活动现金流净额:报告期第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7442473769187927:96403230.58:83:2 +当期第一季度经营活动现金流净额:报告期内第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7249159812927246:103460734.18:84:2 +当期第一季度经营活动现金流净额:报告期内第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7249159812927246:137243172.01:83:2 +当期第一季度经营活动现金流净额:本年度第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7687292695045471:103460734.18:84:2 +当期第一季度经营活动现金流净额:本年度第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7687292695045471:137243172.01:83:2 +当期第一季度经营活动现金流净额:本期发生额第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8114621043205261:72206529.17:84:2 +当期第一季度经营活动现金流净额:本期发生额第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8114621043205261:96403230.58:83:2 +当期第一季度经营活动现金流净额:2023年第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8257237672805786:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8257237672805786:137243172.01:83:2 +当期第一季度经营活动现金流净额:2023年全年第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7925756573677063:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年全年第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7925756573677063:137243172.01:83:2 +当期第一季度经营活动现金流净额:2023年金额第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8288159370422363:72206529.17:84:2 +当期第一季度经营活动现金流净额:2023年金额第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8288159370422363:96403230.58:83:2 +当期第一季度经营活动现金流净额:第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.772646427154541:72206529.17:84:2 +当期第一季度经营活动现金流净额:第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.772646427154541:96403230.58:83:2 +当期第一季度经营活动现金流净额:1-3月经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7851661443710327:72206529.17:84:2 +当期第一季度经营活动现金流净额:1-3月经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7851661443710327:96403230.58:83:2 +当期第一季度经营活动现金流净额:第一季度(1-3月)经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7881900072097778:72206529.17:84:2 +当期第一季度经营活动现金流净额:第一季度(1-3月)经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7881900072097778:96403230.58:83:2 +当期第一季度经营活动现金流净额:2023年第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8257237672805786:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年第一季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8257237672805786:137243172.01:83:2 +当期第一季度经营活动现金流净额:当期第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7153689861297607:72206529.17:84:2 +当期第一季度经营活动现金流净额:当期第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7153689861297607:96403230.58:83:2 +当期第一季度经营活动现金流净额:本期第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7053120732307434:72206529.17:84:2 +当期第一季度经营活动现金流净额:本期第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7053120732307434:96403230.58:83:2 +当期第一季度经营活动现金流净额:本报告期第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6858313679695129:103460734.18:84:2 +当期第一季度经营活动现金流净额:本报告期第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6858313679695129:137243172.01:83:2 +当期第一季度经营活动现金流净额:报告期第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6791421175003052:72206529.17:84:2 +当期第一季度经营活动现金流净额:报告期第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6791421175003052:96403230.58:83:2 +当期第一季度经营活动现金流净额:报告期内第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6615161299705505:103460734.18:84:2 +当期第一季度经营活动现金流净额:报告期内第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6615161299705505:137243172.01:83:2 +当期第一季度经营活动现金流净额:本年度第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7042670845985413:103460734.18:84:2 +当期第一季度经营活动现金流净额:本年度第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7042670845985413:137243172.01:83:2 +当期第一季度经营活动现金流净额:本期发生额第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7523605823516846:72206529.17:84:2 +当期第一季度经营活动现金流净额:本期发生额第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7523605823516846:96403230.58:83:2 +当期第一季度经营活动现金流净额:2023年第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7660543322563171:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7660543322563171:137243172.01:83:2 +当期第一季度经营活动现金流净额:2023年全年第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7359169125556946:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年全年第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7359169125556946:137243172.01:83:2 +当期第一季度经营活动现金流净额:2023年金额第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.776792049407959:72206529.17:84:2 +当期第一季度经营活动现金流净额:2023年金额第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.776792049407959:96403230.58:83:2 +当期第一季度经营活动现金流净额:第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7004868984222412:72206529.17:84:2 +当期第一季度经营活动现金流净额:第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7004868984222412:96403230.58:83:2 +当期第一季度经营活动现金流净额:1-3月经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7071112394332886:72206529.17:84:2 +当期第一季度经营活动现金流净额:1-3月经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7071112394332886:96403230.58:83:2 +当期第一季度经营活动现金流净额:第一季度(1-3月)经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7302182912826538:72206529.17:84:2 +当期第一季度经营活动现金流净额:第一季度(1-3月)经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7302182912826538:96403230.58:83:2 +当期第一季度经营活动现金流净额:2023年第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7660543322563171:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年第一季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7660543322563171:137243172.01:83:2 +当期第一季度经营活动现金流净额:当期第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6876266002655029:72206529.17:84:2 +当期第一季度经营活动现金流净额:当期第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6876266002655029:96403230.58:83:2 +当期第一季度经营活动现金流净额:本期第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6864259839057922:72206529.17:84:2 +当期第一季度经营活动现金流净额:本期第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6864259839057922:96403230.58:83:2 +当期第一季度经营活动现金流净额:本报告期第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6680917143821716:103460734.18:84:2 +当期第一季度经营活动现金流净额:本报告期第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6680917143821716:137243172.01:83:2 +当期第一季度经营活动现金流净额:报告期第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6631760597229004:72206529.17:84:2 +当期第一季度经营活动现金流净额:报告期第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6631760597229004:96403230.58:83:2 +当期第一季度经营活动现金流净额:报告期内第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6456843018531799:103460734.18:84:2 +当期第一季度经营活动现金流净额:报告期内第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6456843018531799:137243172.01:83:2 +当期第一季度经营活动现金流净额:本年度第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6796085834503174:103460734.18:84:2 +当期第一季度经营活动现金流净额:本年度第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6796085834503174:137243172.01:83:2 +当期第一季度经营活动现金流净额:本期发生额第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7416543960571289:72206529.17:84:2 +当期第一季度经营活动现金流净额:本期发生额第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7416543960571289:96403230.58:83:2 +当期第一季度经营活动现金流净额:2023年第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7403048872947693:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7403048872947693:137243172.01:83:2 +当期第一季度经营活动现金流净额:2023年全年第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7128514647483826:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年全年第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7128514647483826:137243172.01:83:2 +当期第一季度经营活动现金流净额:2023年金额第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7512692213058472:72206529.17:84:2 +当期第一季度经营活动现金流净额:2023年金额第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7512692213058472:96403230.58:83:2 +当期第一季度经营活动现金流净额:第一季度经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.677559494972229:1266437216.92:84:2 +当期第一季度经营活动现金流净额:第一季度经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.677559494972229:1809494459.14:83:2 +当期第一季度经营活动现金流净额:1-3月经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6815695762634277:72206529.17:84:2 +当期第一季度经营活动现金流净额:1-3月经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6815695762634277:96403230.58:83:2 +当期第一季度经营活动现金流净额:第一季度(1-3月)经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7041655778884888:72206529.17:84:2 +当期第一季度经营活动现金流净额:第一季度(1-3月)经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7041655778884888:96403230.58:83:2 +当期第一季度经营活动现金流净额:2023年第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7403048872947693:103460734.18:84:2 +当期第一季度经营活动现金流净额:2023年第一季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7403048872947693:137243172.01:83:2 +当期第二季度经营活动现金流净额:当期第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7736657857894897:72206529.17:84:2 +当期第二季度经营活动现金流净额:当期第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7736657857894897:96403230.58:83:2 +当期第二季度经营活动现金流净额:本期第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7715607285499573:103460734.18:84:2 +当期第二季度经营活动现金流净额:本期第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7715607285499573:137243172.01:83:2 +当期第二季度经营活动现金流净额:本报告期第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7497390508651733:103460734.18:84:2 +当期第二季度经营活动现金流净额:本报告期第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7497390508651733:137243172.01:83:2 +当期第二季度经营活动现金流净额:报告期第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7522462010383606:103460734.18:84:2 +当期第二季度经营活动现金流净额:报告期第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7522462010383606:137243172.01:83:2 +当期第二季度经营活动现金流净额:报告期内第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7254213094711304:103460734.18:84:2 +当期第二季度经营活动现金流净额:报告期内第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7254213094711304:137243172.01:83:2 +当期第二季度经营活动现金流净额:本年度第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7767255902290344:103460734.18:84:2 +当期第二季度经营活动现金流净额:本年度第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7767255902290344:137243172.01:83:2 +当期第二季度经营活动现金流净额:本期发生额第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7988326549530029:72206529.17:84:2 +当期第二季度经营活动现金流净额:本期发生额第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7988326549530029:96403230.58:83:2 +当期第二季度经营活动现金流净额:2023年第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8321700692176819:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8321700692176819:137243172.01:83:2 +当期第二季度经营活动现金流净额:2023年全年第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7950235605239868:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年全年第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7950235605239868:137243172.01:83:2 +当期第二季度经营活动现金流净额:2023年金额第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8332099318504333:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年金额第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8332099318504333:137243172.01:83:2 +当期第二季度经营活动现金流净额:第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7691527605056763:103460734.18:84:2 +当期第二季度经营活动现金流净额:第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7691527605056763:137243172.01:83:2 +当期第二季度经营活动现金流净额:4-6月经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7947551012039185:72206529.17:84:2 +当期第二季度经营活动现金流净额:4-6月经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7947551012039185:96403230.58:83:2 +当期第二季度经营活动现金流净额:第二季度(4-6月)经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7638459801673889:72206529.17:84:2 +当期第二季度经营活动现金流净额:第二季度(4-6月)经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7638459801673889:96403230.58:83:2 +当期第二季度经营活动现金流净额:2023年第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8321700692176819:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年第二季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8321700692176819:137243172.01:83:2 +当期第二季度经营活动现金流净额:当期第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7094893455505371:72206529.17:84:2 +当期第二季度经营活动现金流净额:当期第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7094893455505371:96403230.58:83:2 +当期第二季度经营活动现金流净额:本期第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7041306495666504:72206529.17:84:2 +当期第二季度经营活动现金流净额:本期第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7041306495666504:96403230.58:83:2 +当期第二季度经营活动现金流净额:本报告期第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6884360313415527:103460734.18:84:2 +当期第二季度经营活动现金流净额:本报告期第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6884360313415527:137243172.01:83:2 +当期第二季度经营活动现金流净额:报告期第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6906895637512207:103460734.18:84:2 +当期第二季度经营活动现金流净额:报告期第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6906895637512207:137243172.01:83:2 +当期第二季度经营活动现金流净额:报告期内第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.665481686592102:103460734.18:84:2 +当期第二季度经营活动现金流净额:报告期内第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.665481686592102:137243172.01:83:2 +当期第二季度经营活动现金流净额:本年度第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7168223261833191:103460734.18:84:2 +当期第二季度经营活动现金流净额:本年度第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7168223261833191:137243172.01:83:2 +当期第二季度经营活动现金流净额:本期发生额第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7437124848365784:72206529.17:84:2 +当期第二季度经营活动现金流净额:本期发生额第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7437124848365784:96403230.58:83:2 +当期第二季度经营活动现金流净额:2023年第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7760810256004333:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7760810256004333:137243172.01:83:2 +当期第二季度经营活动现金流净额:2023年全年第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7404198050498962:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年全年第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7404198050498962:137243172.01:83:2 +当期第二季度经营活动现金流净额:2023年金额第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7856565117835999:72206529.17:84:2 +当期第二季度经营活动现金流净额:2023年金额第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7856565117835999:96403230.58:83:2 +当期第二季度经营活动现金流净额:第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7023295760154724:103460734.18:84:2 +当期第二季度经营活动现金流净额:第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7023295760154724:137243172.01:83:2 +当期第二季度经营活动现金流净额:4-6月经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7230963706970215:72206529.17:84:2 +当期第二季度经营活动现金流净额:4-6月经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7230963706970215:96403230.58:83:2 +当期第二季度经营活动现金流净额:第二季度(4-6月)经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7082515954971313:72206529.17:84:2 +当期第二季度经营活动现金流净额:第二季度(4-6月)经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7082515954971313:96403230.58:83:2 +当期第二季度经营活动现金流净额:2023年第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7760810256004333:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年第二季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7760810256004333:137243172.01:83:2 +当期第二季度经营活动现金流净额:当期第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.683647871017456:72206529.17:84:2 +当期第二季度经营活动现金流净额:当期第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.683647871017456:96403230.58:83:2 +当期第二季度经营活动现金流净额:本期第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.682981014251709:103460734.18:84:2 +当期第二季度经营活动现金流净额:本期第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.682981014251709:137243172.01:83:2 +当期第二季度经营活动现金流净额:本报告期第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6705912947654724:103460734.18:84:2 +当期第二季度经营活动现金流净额:本报告期第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6705912947654724:137243172.01:83:2 +当期第二季度经营活动现金流净额:报告期第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6717692017555237:103460734.18:84:2 +当期第二季度经营活动现金流净额:报告期第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6717692017555237:137243172.01:83:2 +当期第二季度经营活动现金流净额:报告期内第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6513920426368713:103460734.18:84:2 +当期第二季度经营活动现金流净额:报告期内第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6513920426368713:137243172.01:83:2 +当期第二季度经营活动现金流净额:本年度第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.691369354724884:103460734.18:84:2 +当期第二季度经营活动现金流净额:本年度第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.691369354724884:137243172.01:83:2 +当期第二季度经营活动现金流净额:本期发生额第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7312328815460205:72206529.17:84:2 +当期第二季度经营活动现金流净额:本期发生额第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7312328815460205:96403230.58:83:2 +当期第二季度经营活动现金流净额:2023年第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7445881962776184:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7445881962776184:137243172.01:83:2 +当期第二季度经营活动现金流净额:2023年全年第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7145717740058899:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年全年第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7145717740058899:137243172.01:83:2 +当期第二季度经营活动现金流净额:2023年金额第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7568594217300415:72206529.17:84:2 +当期第二季度经营活动现金流净额:2023年金额第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7568594217300415:96403230.58:83:2 +当期第二季度经营活动现金流净额:第二季度经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6793113946914673:1266437216.92:84:2 +当期第二季度经营活动现金流净额:第二季度经营性活动现金流:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6793113946914673:1809494459.14:83:2 +当期第二季度经营活动现金流净额:4-6月经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6796566247940063:72206529.17:84:2 +当期第二季度经营活动现金流净额:4-6月经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6796566247940063:96403230.58:83:2 +当期第二季度经营活动现金流净额:第二季度(4-6月)经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6796213388442993:72206529.17:84:2 +当期第二季度经营活动现金流净额:第二季度(4-6月)经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6796213388442993:96403230.58:83:2 +当期第二季度经营活动现金流净额:2023年第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7445881962776184:103460734.18:84:2 +当期第二季度经营活动现金流净额:2023年第二季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7445881962776184:137243172.01:83:2 +当期第三季度经营活动现金流净额:当期第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7756008505821228:72206529.17:84:2 +当期第三季度经营活动现金流净额:当期第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7756008505821228:96403230.58:83:2 +当期第三季度经营活动现金流净额:本期第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.765664279460907:103460734.18:84:2 +当期第三季度经营活动现金流净额:本期第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.765664279460907:137243172.01:83:2 +当期第三季度经营活动现金流净额:本报告期第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7352154850959778:103460734.18:84:2 +当期第三季度经营活动现金流净额:本报告期第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7352154850959778:137243172.01:83:2 +当期第三季度经营活动现金流净额:报告期第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7421324253082275:103460734.18:84:2 +当期第三季度经营活动现金流净额:报告期第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7421324253082275:137243172.01:83:2 +当期第三季度经营活动现金流净额:报告期内第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.728070855140686:103460734.18:84:2 +当期第三季度经营活动现金流净额:报告期内第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.728070855140686:137243172.01:83:2 +当期第三季度经营活动现金流净额:本年度第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7607164978981018:103460734.18:84:2 +当期第三季度经营活动现金流净额:本年度第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7607164978981018:137243172.01:83:2 +当期第三季度经营活动现金流净额:本期发生额第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7964656949043274:72206529.17:84:2 +当期第三季度经营活动现金流净额:本期发生额第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7964656949043274:96403230.58:83:2 +当期第三季度经营活动现金流净额:2023年第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8113766312599182:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8113766312599182:137243172.01:83:2 +当期第三季度经营活动现金流净额:2023年全年第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7780672907829285:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年全年第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7780672907829285:137243172.01:83:2 +当期第三季度经营活动现金流净额:2023年金额第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8191104531288147:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年金额第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8191104531288147:137243172.01:83:2 +当期第三季度经营活动现金流净额:第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7734482884407043:103460734.18:84:2 +当期第三季度经营活动现金流净额:第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7734482884407043:137243172.01:83:2 +当期第三季度经营活动现金流净额:7-9月经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.745712399482727:72206529.17:84:2 +当期第三季度经营活动现金流净额:7-9月经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.745712399482727:96403230.58:83:2 +当期第三季度经营活动现金流净额:第三季度(7-9月)经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7562373876571655:72206529.17:84:2 +当期第三季度经营活动现金流净额:第三季度(7-9月)经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7562373876571655:96403230.58:83:2 +当期第三季度经营活动现金流净额:2023年第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8113766312599182:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年第三季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8113766312599182:137243172.01:83:2 +当期第三季度经营活动现金流净额:当期第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7100602984428406:72206529.17:84:2 +当期第三季度经营活动现金流净额:当期第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7100602984428406:96403230.58:83:2 +当期第三季度经营活动现金流净额:本期第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6957334280014038:103460734.18:84:2 +当期第三季度经营活动现金流净额:本期第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6957334280014038:137243172.01:83:2 +当期第三季度经营活动现金流净额:本报告期第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6706667542457581:103460734.18:84:2 +当期第三季度经营活动现金流净额:本报告期第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6706667542457581:137243172.01:83:2 +当期第三季度经营活动现金流净额:报告期第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.679035484790802:103460734.18:84:2 +当期第三季度经营活动现金流净额:报告期第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.679035484790802:137243172.01:83:2 +当期第三季度经营活动现金流净额:报告期内第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6648772358894348:103460734.18:84:2 +当期第三季度经营活动现金流净额:报告期内第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6648772358894348:137243172.01:83:2 +当期第三季度经营活动现金流净额:本年度第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6978175044059753:103460734.18:84:2 +当期第三季度经营活动现金流净额:本年度第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6978175044059753:137243172.01:83:2 +当期第三季度经营活动现金流净额:本期发生额第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7409676313400269:72206529.17:84:2 +当期第三季度经营活动现金流净额:本期发生额第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7409676313400269:96403230.58:83:2 +当期第三季度经营活动现金流净额:2023年第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7572323679924011:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7572323679924011:137243172.01:83:2 +当期第三季度经营活动现金流净额:2023年全年第三季度经营活动现金净流量:持续经营净利润2023年度:0.7526537775993347:153819180.44:82:1 +当期第三季度经营活动现金流净额:2023年全年第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7249948978424072:137243172.01:83:2 +当期第三季度经营活动现金流净额:2023年金额第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.774736762046814:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年金额第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.774736762046814:137243172.01:83:2 +当期第三季度经营活动现金流净额:第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.704445481300354:103460734.18:84:2 +当期第三季度经营活动现金流净额:第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.704445481300354:137243172.01:83:2 +当期第三季度经营活动现金流净额:7-9月经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6607980132102966:72206529.17:84:2 +当期第三季度经营活动现金流净额:7-9月经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6607980132102966:96403230.58:83:2 +当期第三季度经营活动现金流净额:第三季度(7-9月)经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6923367977142334:72206529.17:84:2 +当期第三季度经营活动现金流净额:第三季度(7-9月)经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6923367977142334:96403230.58:83:2 +当期第三季度经营活动现金流净额:2023年第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7572323679924011:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年第三季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7572323679924011:137243172.01:83:2 +当期第三季度经营活动现金流净额:当期第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6788573861122131:72206529.17:84:2 +当期第三季度经营活动现金流净额:当期第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6788573861122131:96403230.58:83:2 +当期第三季度经营活动现金流净额:本期第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6701276898384094:103460734.18:84:2 +当期第三季度经营活动现金流净额:本期第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6701276898384094:137243172.01:83:2 +当期第三季度经营活动现金流净额:本报告期第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6502850651741028:103460734.18:84:2 +当期第三季度经营活动现金流净额:本报告期第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6502850651741028:137243172.01:83:2 +当期第三季度经营活动现金流净额:报告期第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6552742123603821:103460734.18:84:2 +当期第三季度经营活动现金流净额:报告期第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6552742123603821:137243172.01:83:2 +当期第三季度经营活动现金流净额:报告期内第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.646312952041626:103460734.18:84:2 +当期第三季度经营活动现金流净额:报告期内第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.646312952041626:137243172.01:83:2 +当期第三季度经营活动现金流净额:本年度第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6689830422401428:103460734.18:84:2 +当期第三季度经营活动现金流净额:本年度第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6689830422401428:137243172.01:83:2 +当期第三季度经营活动现金流净额:本期发生额第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.724909782409668:72206529.17:84:2 +当期第三季度经营活动现金流净额:本期发生额第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.724909782409668:96403230.58:83:2 +当期第三季度经营活动现金流净额:2023年第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7254926562309265:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7254926562309265:137243172.01:83:2 +当期第三季度经营活动现金流净额:2023年全年第三季度经营性活动现金流:持续经营净利润2023年度:0.699832022190094:153819180.44:82:1 +当期第三季度经营活动现金流净额:2023年全年第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6979538798332214:137243172.01:83:2 +当期第三季度经营活动现金流净额:2023年金额第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7477968335151672:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年金额第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7477968335151672:137243172.01:83:2 +当期第三季度经营活动现金流净额:第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.674629271030426:103460734.18:84:2 +当期第三季度经营活动现金流净额:第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.674629271030426:137243172.01:83:2 +当期第三季度经营活动现金流净额:7-9月经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6471729874610901:72206529.17:84:2 +当期第三季度经营活动现金流净额:7-9月经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6471729874610901:96403230.58:83:2 +当期第三季度经营活动现金流净额:第三季度(7-9月)经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.663939893245697:72206529.17:84:2 +当期第三季度经营活动现金流净额:第三季度(7-9月)经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.663939893245697:96403230.58:83:2 +当期第三季度经营活动现金流净额:2023年第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7254926562309265:103460734.18:84:2 +当期第三季度经营活动现金流净额:2023年第三季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7254926562309265:137243172.01:83:2 +当期第四季度经营活动现金流净额:当期第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7456432580947876:72206529.17:84:2 +当期第四季度经营活动现金流净额:当期第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7456432580947876:96403230.58:83:2 +当期第四季度经营活动现金流净额:本期第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7401652336120605:103460734.18:84:2 +当期第四季度经营活动现金流净额:本期第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7401652336120605:137243172.01:83:2 +当期第四季度经营活动现金流净额:本报告期第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7176844477653503:103460734.18:84:2 +当期第四季度经营活动现金流净额:本报告期第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7176844477653503:137243172.01:83:2 +当期第四季度经营活动现金流净额:报告期第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7246822714805603:103460734.18:84:2 +当期第四季度经营活动现金流净额:报告期第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7246822714805603:137243172.01:83:2 +当期第四季度经营活动现金流净额:报告期内第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7006620168685913:103460734.18:84:2 +当期第四季度经营活动现金流净额:报告期内第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7006620168685913:137243172.01:83:2 +当期第四季度经营活动现金流净额:本年度第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7376666069030762:103460734.18:84:2 +当期第四季度经营活动现金流净额:本年度第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7376666069030762:137243172.01:83:2 +当期第四季度经营活动现金流净额:本期发生额第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7732998728752136:72206529.17:84:2 +当期第四季度经营活动现金流净额:本期发生额第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7732998728752136:96403230.58:83:2 +当期第四季度经营活动现金流净额:2023年第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8110312819480896:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8110312819480896:137243172.01:83:2 +当期第四季度经营活动现金流净额:2023年全年第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7785190343856812:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年全年第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7785190343856812:137243172.01:83:2 +当期第四季度经营活动现金流净额:2023年金额第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8189374208450317:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年金额第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8189374208450317:137243172.01:83:2 +当期第四季度经营活动现金流净额:第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7464290261268616:103460734.18:84:2 +当期第四季度经营活动现金流净额:第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7464290261268616:137243172.01:83:2 +当期第四季度经营活动现金流净额:10-12月经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7557798027992249:72206529.17:84:2 +当期第四季度经营活动现金流净额:10-12月经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7557798027992249:96403230.58:83:2 +当期第四季度经营活动现金流净额:第四季度(10-12月)经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7422123551368713:72206529.17:84:2 +当期第四季度经营活动现金流净额:第四季度(10-12月)经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7422123551368713:96403230.58:83:2 +当期第四季度经营活动现金流净额:2023年第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8110312819480896:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年第四季度经营活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8110312819480896:137243172.01:83:2 +当期第四季度经营活动现金流净额:当期第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6902490258216858:72206529.17:84:2 +当期第四季度经营活动现金流净额:当期第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6902490258216858:96403230.58:83:2 +当期第四季度经营活动现金流净额:本期第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6819332242012024:103460734.18:84:2 +当期第四季度经营活动现金流净额:本期第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6819332242012024:137243172.01:83:2 +当期第四季度经营活动现金流净额:本报告期第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6625370979309082:103460734.18:84:2 +当期第四季度经营活动现金流净额:本报告期第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6625370979309082:137243172.01:83:2 +当期第四季度经营活动现金流净额:报告期第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6702380776405334:103460734.18:84:2 +当期第四季度经营活动现金流净额:报告期第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6702380776405334:137243172.01:83:2 +当期第四季度经营活动现金流净额:报告期内第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6463814973831177:103460734.18:84:2 +当期第四季度经营活动现金流净额:报告期内第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6463814973831177:137243172.01:83:2 +当期第四季度经营活动现金流净额:本年度第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6847479343414307:103460734.18:84:2 +当期第四季度经营活动现金流净额:本年度第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6847479343414307:137243172.01:83:2 +当期第四季度经营活动现金流净额:本期发生额第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7208194136619568:72206529.17:84:2 +当期第四季度经营活动现金流净额:本期发生额第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7208194136619568:96403230.58:83:2 +当期第四季度经营活动现金流净额:2023年第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7621285319328308:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7621285319328308:137243172.01:83:2 +当期第四季度经营活动现金流净额:2023年全年第四季度经营活动现金净流量:持续经营净利润2023年度:0.7586382627487183:153819180.44:82:1 +当期第四季度经营活动现金流净额:2023年全年第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7290136814117432:137243172.01:83:2 +当期第四季度经营活动现金流净额:2023年金额第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7775333523750305:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年金额第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7775333523750305:137243172.01:83:2 +当期第四季度经营活动现金流净额:第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6888599991798401:103460734.18:84:2 +当期第四季度经营活动现金流净额:第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6888599991798401:137243172.01:83:2 +当期第四季度经营活动现金流净额:10-12月经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6784265637397766:72206529.17:84:2 +当期第四季度经营活动现金流净额:10-12月经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6784265637397766:96403230.58:83:2 +当期第四季度经营活动现金流净额:第四季度(10-12月)经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6929306983947754:72206529.17:84:2 +当期第四季度经营活动现金流净额:第四季度(10-12月)经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6929306983947754:96403230.58:83:2 +当期第四季度经营活动现金流净额:2023年第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7621285319328308:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年第四季度经营活动现金净流量:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7621285319328308:137243172.01:83:2 +当期第四季度经营活动现金流净额:当期第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6607277989387512:72206529.17:84:2 +当期第四季度经营活动现金流净额:当期第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6607277989387512:96403230.58:83:2 +当期第四季度经营活动现金流净额:本期第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6587761044502258:103460734.18:84:2 +当期第四季度经营活动现金流净额:本期第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6587761044502258:137243172.01:83:2 +当期第四季度经营活动现金流净额:本报告期第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.643967866897583:103460734.18:84:2 +当期第四季度经营活动现金流净额:本报告期第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.643967866897583:137243172.01:83:2 +当期第四季度经营活动现金流净额:报告期第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6486228704452515:103460734.18:84:2 +当期第四季度经营活动现金流净额:报告期第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6486228704452515:137243172.01:83:2 +当期第四季度经营活动现金流净额:报告期内第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6284465193748474:103460734.18:84:2 +当期第四季度经营活动现金流净额:报告期内第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6284465193748474:137243172.01:83:2 +当期第四季度经营活动现金流净额:本年度第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6576710343360901:103460734.18:84:2 +当期第四季度经营活动现金流净额:本年度第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6576710343360901:137243172.01:83:2 +当期第四季度经营活动现金流净额:本期发生额第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.706596314907074:72206529.17:84:2 +当期第四季度经营活动现金流净额:本期发生额第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.706596314907074:96403230.58:83:2 +当期第四季度经营活动现金流净额:2023年第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7337139844894409:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7337139844894409:137243172.01:83:2 +当期第四季度经营活动现金流净额:2023年全年第四季度经营性活动现金流:持续经营净利润2023年度:0.7082571983337402:153819180.44:82:1 +当期第四季度经营活动现金流净额:2023年全年第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7053039073944092:137243172.01:83:2 +当期第四季度经营活动现金流净额:2023年金额第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7538027167320251:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年金额第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7538027167320251:137243172.01:83:2 +当期第四季度经营活动现金流净额:第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6572646498680115:103460734.18:84:2 +当期第四季度经营活动现金流净额:第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6572646498680115:137243172.01:83:2 +当期第四季度经营活动现金流净额:10-12月经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6494277715682983:72206529.17:84:2 +当期第四季度经营活动现金流净额:10-12月经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6494277715682983:96403230.58:83:2 +当期第四季度经营活动现金流净额:第四季度(10-12月)经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6597775220870972:72206529.17:84:2 +当期第四季度经营活动现金流净额:第四季度(10-12月)经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6597775220870972:96403230.58:83:2 +当期第四季度经营活动现金流净额:2023年第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7337139844894409:103460734.18:84:2 +当期第四季度经营活动现金流净额:2023年第四季度经营性活动现金流:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7337139844894409:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额同比变动:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8243131041526794:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额同比变动:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8243131041526794:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额同比增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8082700371742249:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额同比增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8082700371742249:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额同比上升:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7919213771820068:72206529.17:84:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额同比上升:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7919213771820068:96403230.58:83:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额同比下降:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.769437313079834:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额同比下降:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.769437313079834:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额变化幅度:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8205978274345398:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额变化幅度:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8205978274345398:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额变动比例:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7852696180343628:72206529.17:84:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额变动比例:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7852696180343628:96403230.58:83:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额本期比上年同期增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8378245830535889:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额本期比上年同期增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8378245830535889:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额本年比上年增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8377158045768738:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动产生的现金流量净额本年比上年增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.8377158045768738:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动现金净流量同比变动:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7817670702934265:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动现金净流量同比变动:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7817670702934265:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动现金净流量同比增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7672666311264038:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动现金净流量同比增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7672666311264038:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动现金净流量同比上升:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7482216954231262:72206529.17:84:2 +经营活动现金流净额同比变动:经营活动现金净流量同比上升:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7482216954231262:96403230.58:83:2 +经营活动现金流净额同比变动:经营活动现金净流量同比下降:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7253959774971008:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动现金净流量同比下降:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7253959774971008:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动现金净流量变化幅度:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7694886922836304:72206529.17:84:2 +经营活动现金流净额同比变动:经营活动现金净流量变化幅度:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7694886922836304:96403230.58:83:2 +经营活动现金流净额同比变动:经营活动现金净流量变动比例:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7335890531539917:72206529.17:84:2 +经营活动现金流净额同比变动:经营活动现金净流量变动比例:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7335890531539917:96403230.58:83:2 +经营活动现金流净额同比变动:经营活动现金净流量本期比上年同期增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7817979454994202:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动现金净流量本期比上年同期增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7817979454994202:137243172.01:83:2 +经营活动现金流净额同比变动:经营活动现金净流量本年比上年增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7900387048721313:103460734.18:84:2 +经营活动现金流净额同比变动:经营活动现金净流量本年比上年增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7900387048721313:137243172.01:83:2 +经营活动现金流净额同比变动:经营性活动现金流同比变动:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7279603481292725:103460734.18:84:2 +经营活动现金流净额同比变动:经营性活动现金流同比变动:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7279603481292725:137243172.01:83:2 +经营活动现金流净额同比变动:经营性活动现金流同比增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7100152373313904:72206529.17:84:2 +经营活动现金流净额同比变动:经营性活动现金流同比增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7100152373313904:96403230.58:83:2 +经营活动现金流净额同比变动:经营性活动现金流同比上升:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6903976202011108:1266437216.92:84:2 +经营活动现金流净额同比变动:经营性活动现金流同比上升:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6903976202011108:1809494459.14:83:2 +经营活动现金流净额同比变动:经营性活动现金流同比下降:经营活动现金流出小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6739140748977661:1194230687.75:84:2 +经营活动现金流净额同比变动:经营性活动现金流同比下降:经营活动现金流出小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6737958788871765:1440744149.92:83:2 +经营活动现金流净额同比变动:经营性活动现金流变化幅度:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7015219926834106:1266437216.92:84:2 +经营活动现金流净额同比变动:经营性活动现金流变化幅度:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7015219926834106:1809494459.14:83:2 +经营活动现金流净额同比变动:经营性活动现金流变动比例:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6808460354804993:1266437216.92:84:2 +经营活动现金流净额同比变动:经营性活动现金流变动比例:经营活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6808460354804993:1809494459.14:83:2 +经营活动现金流净额同比变动:经营性活动现金流本期比上年同期增减:经营性应付项目的增加补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.731671154499054:73651944.24:168:2 +经营活动现金流净额同比变动:经营性活动现金流本期比上年同期增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7264462113380432:103460734.18:84:2 +经营活动现金流净额同比变动:经营性活动现金流本年比上年增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7358051538467407:72206529.17:84:2 +经营活动现金流净额同比变动:经营性活动现金流本年比上年增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7358051538467407:96403230.58:83:2 +当期筹资活动现金流净额:当期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7134994268417358:72206529.17:84:2 +当期筹资活动现金流净额:当期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7134994268417358:96403230.58:83:2 +当期筹资活动现金流净额:本期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7072893381118774:72206529.17:84:2 +当期筹资活动现金流净额:本期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7072893381118774:96403230.58:83:2 +当期筹资活动现金流净额:本报告期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7070844769477844:103460734.18:84:2 +当期筹资活动现金流净额:本报告期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7070844769477844:137243172.01:83:2 +当期筹资活动现金流净额:报告期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7032897472381592:72206529.17:84:2 +当期筹资活动现金流净额:报告期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7032897472381592:96403230.58:83:2 +当期筹资活动现金流净额:报告期内筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6799458861351013:103460734.18:84:2 +当期筹资活动现金流净额:报告期内筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6799458861351013:137243172.01:83:2 +当期筹资活动现金流净额:本年度筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.716513991355896:103460734.18:84:2 +当期筹资活动现金流净额:本年度筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.716513991355896:137243172.01:83:2 +当期筹资活动现金流净额:本期发生额筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7209375500679016:72206529.17:84:2 +当期筹资活动现金流净额:本期发生额筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7209375500679016:96403230.58:83:2 +当期筹资活动现金流净额:2023年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7210845947265625:103460734.18:84:2 +当期筹资活动现金流净额:2023年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7210845947265625:137243172.01:83:2 +当期筹资活动现金流净额:2023年全年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7033896446228027:103460734.18:84:2 +当期筹资活动现金流净额:2023年全年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7033896446228027:137243172.01:83:2 +当期筹资活动现金流净额:2023年金额筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7230772972106934:103460734.18:84:2 +当期筹资活动现金流净额:2023年金额筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7230772972106934:137243172.01:83:2 +当期筹资活动现金流净额:当期筹资活动现金净流量:收到其他与投资活动有关的现金本期增加金额:0.6469791531562805:23000000.00:167:2 +当期筹资活动现金流净额:当期筹资活动现金净流量:支付其他与投资活动有关的现金本期增加金额:0.6466296315193176:23000000.00:167:2 +当期筹资活动现金流净额:本期筹资活动现金净流量:收到其他与投资活动有关的现金本期增加金额:0.6268237233161926:23000000.00:167:2 +当期筹资活动现金流净额:本期筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6235358119010925:877120845.62:168:2 +当期筹资活动现金流净额:本报告期筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6443918943405151:877120845.62:168:2 +当期筹资活动现金流净额:本报告期筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.6420029997825623:58749188.40:168:2 +当期筹资活动现金流净额:报告期筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6374691128730774:877120845.62:168:2 +当期筹资活动现金流净额:报告期筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6309181451797485:17356324.23:83:2 +当期筹资活动现金流净额:报告期内筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6169821619987488:877120845.62:168:2 +当期筹资活动现金流净额:报告期内筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.612309992313385:58749188.40:168:2 +当期筹资活动现金流净额:本年度筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6301690936088562:877120845.62:168:2 +当期筹资活动现金流净额:本年度筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.6281577944755554:58749188.40:168:2 +当期筹资活动现金流净额:本期发生额筹资活动现金净流量:收到其他与投资活动有关的现金本期增加金额:0.6777949929237366:23000000.00:167:2 +当期筹资活动现金流净额:本期发生额筹资活动现金净流量:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.675747275352478:877120845.62:168:2 +当期筹资活动现金流净额:2023年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6524487733840942:17356324.23:83:2 +当期筹资活动现金流净额:2023年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6524487733840942:9224707.73:83:2 +当期筹资活动现金流净额:2023年全年筹资活动现金净流量:持续经营净利润2023年度:0.6549877524375916:153819180.44:82:1 +当期筹资活动现金流净额:2023年全年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.63190096616745:9224707.73:83:2 +当期筹资活动现金流净额:2023年金额筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6745457649230957:17356324.23:83:2 +当期筹资活动现金流净额:2023年金额筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6745457649230957:9224707.73:83:2 +当期筹资活动现金流净额:当期筹资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.6356825232505798:23000000.00:167:2 +当期筹资活动现金流净额:当期筹资性活动现金流:收到其他与投资活动有关的现金本期增加金额:0.628440797328949:23000000.00:167:2 +当期筹资活动现金流净额:本期筹资性活动现金流:捐赠支出本期发生额:0.6174135208129883:100000.00:164:2 +当期筹资活动现金流净额:本期筹资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.6155363917350769:23000000.00:167:2 +当期筹资活动现金流净额:本报告期筹资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.6152085065841675:23000000.00:167:2 +当期筹资活动现金流净额:本报告期筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6090860366821289:17356324.23:83:2 +当期筹资活动现金流净额:报告期筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6028099656105042:17356324.23:83:2 +当期筹资活动现金流净额:报告期筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6028099656105042:9224707.73:83:2 +当期筹资活动现金流净额:报告期内筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.5991261005401611:17356324.23:83:2 +当期筹资活动现金流净额:报告期内筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.5991261005401611:9224707.73:83:2 +当期筹资活动现金流净额:本年度筹资性活动现金流:捐赠支出本期发生额:0.6303250193595886:100000.00:164:2 +当期筹资活动现金流净额:本年度筹资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.5999639630317688:23000000.00:167:2 +当期筹资活动现金流净额:本期发生额筹资性活动现金流:收到其他与投资活动有关的现金本期增加金额:0.690146267414093:23000000.00:167:2 +当期筹资活动现金流净额:本期发生额筹资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.6833252310752869:23000000.00:167:2 +当期筹资活动现金流净额:2023年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.612002432346344:17356324.23:83:2 +当期筹资活动现金流净额:2023年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.612002432346344:9224707.73:83:2 +当期筹资活动现金流净额:2023年全年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6005733013153076:17356324.23:83:2 +当期筹资活动现金流净额:2023年全年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6005733013153076:9224707.73:83:2 +当期筹资活动现金流净额:2023年金额筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.638752818107605:17356324.23:83:2 +当期筹资活动现金流净额:2023年金额筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.638752818107605:9224707.73:83:2 +上年同期筹资活动现金流净额:上年同期筹资活动产生的现金流量净额:收到其他与投资活动有关的现金上年同期增加金额:0.6928414702415466:93400000.00:167:2 +上年同期筹资活动现金流净额:上年同期筹资活动产生的现金流量净额:支付其他与投资活动有关的现金上年同期增加金额:0.6876144409179688:93400000.00:167:2 +上年同期筹资活动现金流净额:上期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6818708181381226:72206529.17:84:2 +上年同期筹资活动现金流净额:上期筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6818708181381226:96403230.58:83:2 +上年同期筹资活动现金流净额:上年度筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6755340099334717:103460734.18:84:2 +上年同期筹资活动现金流净额:上年度筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6755340099334717:137243172.01:83:2 +上年同期筹资活动现金流净额:2022年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7341418266296387:103460734.18:84:2 +上年同期筹资活动现金流净额:2022年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7341418266296387:137243172.01:83:2 +上年同期筹资活动现金流净额:2022年全年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7134503126144409:103460734.18:84:2 +上年同期筹资活动现金流净额:2022年全年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7134503126144409:137243172.01:83:2 +上年同期筹资活动现金流净额:2022年金额筹资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7337448596954346:17356324.23:83:2 +上年同期筹资活动现金流净额:2022年金额筹资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7337448596954346:9224707.73:83:2 +上年同期筹资活动现金流净额:上年同期筹资活动现金净流量:支付其他与投资活动有关的现金上年同期增加金额:0.6493481993675232:93400000.00:167:2 +上年同期筹资活动现金流净额:上年同期筹资活动现金净流量:收到其他与投资活动有关的现金上年同期增加金额:0.6468276381492615:93400000.00:167:2 +上年同期筹资活动现金流净额:上期筹资活动现金净流量:支付其他与投资活动有关的现金上年同期增加金额:0.6177698373794556:93400000.00:167:2 +上年同期筹资活动现金流净额:上期筹资活动现金净流量:收到其他与投资活动有关的现金上年同期增加金额:0.6176666021347046:93400000.00:167:2 +上年同期筹资活动现金流净额:上年度筹资活动现金净流量:收到其他与投资活动有关的现金上年同期增加金额:0.6173229813575745:93400000.00:167:2 +上年同期筹资活动现金流净额:上年度筹资活动现金净流量:捐赠支出上期发生额:0.6165221333503723:100000.00:164:2 +上年同期筹资活动现金流净额:2022年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6812108755111694:17356324.23:83:2 +上年同期筹资活动现金流净额:2022年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6812108755111694:9224707.73:83:2 +上年同期筹资活动现金流净额:2022年全年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.656927227973938:17356324.23:83:2 +上年同期筹资活动现金流净额:2022年全年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.656927227973938:9224707.73:83:2 +上年同期筹资活动现金流净额:2022年金额筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6972696781158447:17356324.23:83:2 +上年同期筹资活动现金流净额:2022年金额筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6972696781158447:9224707.73:83:2 +上年同期筹资活动现金流净额:上年同期筹资性活动现金流:支付其他与投资活动有关的现金上年同期增加金额:0.6455070972442627:93400000.00:167:2 +上年同期筹资活动现金流净额:上年同期筹资性活动现金流:收到其他与投资活动有关的现金上年同期增加金额:0.6424838304519653:93400000.00:167:2 +上年同期筹资活动现金流净额:上期筹资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.6146412491798401:23000000.00:167:2 +上年同期筹资活动现金流净额:上期筹资性活动现金流:收到其他与投资活动有关的现金本期增加金额:0.6076006293296814:23000000.00:167:2 +上年同期筹资活动现金流净额:上年度筹资性活动现金流:收到其他与投资活动有关的现金上年同期增加金额:0.6153243780136108:93400000.00:167:2 +上年同期筹资活动现金流净额:上年度筹资性活动现金流:捐赠支出上期发生额:0.6150528788566589:100000.00:164:2 +上年同期筹资活动现金流净额:2022年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6429991722106934:17356324.23:83:2 +上年同期筹资活动现金流净额:2022年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6429991722106934:9224707.73:83:2 +上年同期筹资活动现金流净额:2022年全年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6264861822128296:17356324.23:83:2 +上年同期筹资活动现金流净额:2022年全年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6264861822128296:9224707.73:83:2 +上年同期筹资活动现金流净额:2022年金额筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.653853178024292:17356324.23:83:2 +上年同期筹资活动现金流净额:2022年金额筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.653853178024292:9224707.73:83:2 +前年同期筹资活动现金流净额:前年同期筹资活动产生的现金流量净额:收到其他与投资活动有关的现金上年同期增加金额:0.6748863458633423:93400000.00:167:2 +前年同期筹资活动现金流净额:前年同期筹资活动产生的现金流量净额:支付其他与投资活动有关的现金上年同期增加金额:0.666386067867279:93400000.00:167:2 +前年同期筹资活动现金流净额:2021年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6863301992416382:72206529.17:84:2 +前年同期筹资活动现金流净额:2021年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6863301992416382:96403230.58:83:2 +前年同期筹资活动现金流净额:2021年全年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.677590012550354:72206529.17:84:2 +前年同期筹资活动现金流净额:2021年全年筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.677590012550354:96403230.58:83:2 +前年同期筹资活动现金流净额:2021年金额筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6813347935676575:72206529.17:84:2 +前年同期筹资活动现金流净额:2021年金额筹资活动产生的现金流量净额:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6813347935676575:96403230.58:83:2 +前年同期筹资活动现金流净额:前年同期筹资活动现金净流量:收到其他与投资活动有关的现金上年同期增加金额:0.6255922317504883:93400000.00:167:2 +前年同期筹资活动现金流净额:前年同期筹资活动现金净流量:支付其他与投资活动有关的现金上年同期增加金额:0.6243862509727478:93400000.00:167:2 +前年同期筹资活动现金流净额:2021年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6259444952011108:17356324.23:83:2 +前年同期筹资活动现金流净额:2021年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6259444952011108:9224707.73:83:2 +前年同期筹资活动现金流净额:2021年全年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6122364401817322:17356324.23:83:2 +前年同期筹资活动现金流净额:2021年全年筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6122364401817322:9224707.73:83:2 +前年同期筹资活动现金流净额:2021年金额筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6396418809890747:17356324.23:83:2 +前年同期筹资活动现金流净额:2021年金额筹资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6396418809890747:9224707.73:83:2 +前年同期筹资活动现金流净额:前年同期筹资性活动现金流:收到其他与投资活动有关的现金上年同期增加金额:0.6188945770263672:93400000.00:167:2 +前年同期筹资活动现金流净额:前年同期筹资性活动现金流:支付其他与投资活动有关的现金上年同期增加金额:0.6183110475540161:93400000.00:167:2 +前年同期筹资活动现金流净额:2021年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.5884088277816772:17356324.23:83:2 +前年同期筹资活动现金流净额:2021年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.5884088277816772:9224707.73:83:2 +前年同期筹资活动现金流净额:2021年全年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.5779449939727783:17356324.23:83:2 +前年同期筹资活动现金流净额:2021年全年筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.5779449939727783:9224707.73:83:2 +前年同期筹资活动现金流净额:2021年金额筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6082034111022949:17356324.23:83:2 +前年同期筹资活动现金流净额:2021年金额筹资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6082034111022949:9224707.73:83:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额同比变动:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6862221956253052:103460734.18:84:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额同比变动:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6862221956253052:137243172.01:83:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额同比增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6707387566566467:103460734.18:84:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额同比增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6707387566566467:137243172.01:83:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额同比上升:收到其他与投资活动有关的现金上年同期增加金额:0.6482082009315491:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额同比上升:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6452349424362183:72206529.17:84:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额同比下降:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6396295428276062:103460734.18:84:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额同比下降:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6396295428276062:137243172.01:83:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额变化幅度:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6814216375350952:72206529.17:84:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额变化幅度:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6814216375350952:96403230.58:83:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额变动比例:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6638022661209106:72206529.17:84:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额变动比例:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.6638022661209106:96403230.58:83:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额本期比上年同期增减:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.7166196703910828:877120845.62:168:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额本期比上年同期增减:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.7091936469078064:58749188.40:168:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额本年比上年增减:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.7085593938827515:877120845.62:168:2 +筹资活动现金流净额同比变动:筹资活动产生的现金流量净额本年比上年增减:经营活动产生的现金流量净额项目附注2023年度2022年度一、经营活动产生的现金流量::0.7028395533561707:103460734.18:84:2 +筹资活动现金流净额同比变动:筹资活动现金净流量同比变动:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6351475715637207:17356324.23:83:2 +筹资活动现金流净额同比变动:筹资活动现金净流量同比变动:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6351475715637207:9224707.73:83:2 +筹资活动现金流净额同比变动:筹资活动现金净流量同比增减:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6299943923950195:877120845.62:168:2 +筹资活动现金流净额同比变动:筹资活动现金净流量同比增减:收到其他与投资活动有关的现金本期增加金额:0.6266226172447205:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资活动现金净流量同比上升:收到其他与投资活动有关的现金本期增加金额:0.6140739321708679:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资活动现金净流量同比上升:收到其他与投资活动有关的现金上年同期增加金额:0.6112463474273682:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资活动现金净流量同比下降:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.5954445004463196:17356324.23:83:2 +筹资活动现金流净额同比变动:筹资活动现金净流量同比下降:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.5954445004463196:9224707.73:83:2 +筹资活动现金流净额同比变动:筹资活动现金净流量变化幅度:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6405988931655884:17356324.23:83:2 +筹资活动现金流净额同比变动:筹资活动现金净流量变化幅度:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6405988931655884:9224707.73:83:2 +筹资活动现金流净额同比变动:筹资活动现金净流量变动比例:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6208592057228088:877120845.62:168:2 +筹资活动现金流净额同比变动:筹资活动现金净流量变动比例:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6163809299468994:17356324.23:83:2 +筹资活动现金流净额同比变动:筹资活动现金净流量本期比上年同期增减:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6750417947769165:877120845.62:168:2 +筹资活动现金流净额同比变动:筹资活动现金净流量本期比上年同期增减:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.6731933951377869:58749188.40:168:2 +筹资活动现金流净额同比变动:筹资活动现金净流量本年比上年增减:现金及现金等价物净增加额补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.6686350107192993:877120845.62:168:2 +筹资活动现金流净额同比变动:筹资活动现金净流量本年比上年增减:收到其他与投资活动有关的现金上年同期增加金额:0.6615862846374512:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流同比变动:收到其他与投资活动有关的现金上年同期增加金额:0.639898419380188:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流同比变动:收到其他与投资活动有关的现金本期增加金额:0.6351804137229919:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流同比增减:收到其他与投资活动有关的现金本期增加金额:0.6459431052207947:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流同比增减:收到其他与投资活动有关的现金上年同期增加金额:0.641255259513855:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流同比上升:收到其他与投资活动有关的现金本期增加金额:0.6208968758583069:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流同比上升:收到其他与投资活动有关的现金上年同期增加金额:0.6145533323287964:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流同比下降:收到其他与投资活动有关的现金上年同期增加金额:0.5972611904144287:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流同比下降:收到其他与投资活动有关的现金本期增加金额:0.5969285368919373:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流变化幅度:收到其他与投资活动有关的现金本期增加金额:0.6090983748435974:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流变化幅度:支付其他与投资活动有关的现金本期增加金额:0.5942316651344299:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流变动比例:收到其他与投资活动有关的现金本期增加金额:0.6191003918647766:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流变动比例:支付其他与投资活动有关的现金本期增加金额:0.6178688406944275:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流本期比上年同期增减:收到其他与投资活动有关的现金本期增加金额:0.672512948513031:23000000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流本期比上年同期增减:收到其他与投资活动有关的现金上年同期增加金额:0.6616216897964478:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流本年比上年增减:收到其他与投资活动有关的现金上年同期增加金额:0.6720849275588989:93400000.00:167:2 +筹资活动现金流净额同比变动:筹资性活动现金流本年比上年增减:收到其他与投资活动有关的现金本期增加金额:0.6588045954704285:23000000.00:167:2 +当期投资活动现金流净额:当期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7645931243896484:17356324.23:83:2 +当期投资活动现金流净额:当期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7645931243896484:9224707.73:83:2 +当期投资活动现金流净额:本期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7680643796920776:17356324.23:83:2 +当期投资活动现金流净额:本期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7680643796920776:9224707.73:83:2 +当期投资活动现金流净额:本报告期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7569208741188049:17356324.23:83:2 +当期投资活动现金流净额:本报告期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7569208741188049:9224707.73:83:2 +当期投资活动现金流净额:报告期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7559165954589844:17356324.23:83:2 +当期投资活动现金流净额:报告期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7559165954589844:9224707.73:83:2 +当期投资活动现金流净额:报告期内投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7341994643211365:17356324.23:83:2 +当期投资活动现金流净额:报告期内投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7341994643211365:9224707.73:83:2 +当期投资活动现金流净额:本年度投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7626076936721802:17356324.23:83:2 +当期投资活动现金流净额:本年度投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7626076936721802:9224707.73:83:2 +当期投资活动现金流净额:本期发生额投资活动产生的现金流量净额:收到其他与投资活动有关的现金本期增加金额:0.7655451893806458:23000000.00:167:2 +当期投资活动现金流净额:本期发生额投资活动产生的现金流量净额:取得投资收益收到的现金项目附注2023年度2022年度一、经营活动产生的现金流量::0.7580834627151489:30000000.00:84:2 +当期投资活动现金流净额:2023年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.794794499874115:17356324.23:83:2 +当期投资活动现金流净额:2023年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.794794499874115:9224707.73:83:2 +当期投资活动现金流净额:2023年全年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7628719806671143:17356324.23:83:2 +当期投资活动现金流净额:2023年全年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7628719806671143:9224707.73:83:2 +当期投资活动现金流净额:2023年金额投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7876217365264893:17356324.23:83:2 +当期投资活动现金流净额:2023年金额投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7876217365264893:9224707.73:83:2 +当期投资活动现金流净额:当期投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7224342823028564:17356324.23:83:2 +当期投资活动现金流净额:当期投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7224342823028564:9224707.73:83:2 +当期投资活动现金流净额:本期投资活动现金净流量:收到其他与投资活动有关的现金本期增加金额:0.7119739651679993:23000000.00:167:2 +当期投资活动现金流净额:本期投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7088167667388916:17356324.23:83:2 +当期投资活动现金流净额:本报告期投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7211778163909912:17356324.23:83:2 +当期投资活动现金流净额:本报告期投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7211778163909912:9224707.73:83:2 +当期投资活动现金流净额:报告期投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7170063853263855:17356324.23:83:2 +当期投资活动现金流净额:报告期投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7170063853263855:9224707.73:83:2 +当期投资活动现金流净额:报告期内投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6926631927490234:17356324.23:83:2 +当期投资活动现金流净额:报告期内投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6926631927490234:9224707.73:83:2 +当期投资活动现金流净额:本年度投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.714650571346283:17356324.23:83:2 +当期投资活动现金流净额:本年度投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.714650571346283:9224707.73:83:2 +当期投资活动现金流净额:本期发生额投资活动现金净流量:收到其他与投资活动有关的现金本期增加金额:0.752701461315155:23000000.00:167:2 +当期投资活动现金流净额:本期发生额投资活动现金净流量:支付其他与投资活动有关的现金本期增加金额:0.7351470589637756:23000000.00:167:2 +当期投资活动现金流净额:2023年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7435398101806641:17356324.23:83:2 +当期投资活动现金流净额:2023年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7435398101806641:9224707.73:83:2 +当期投资活动现金流净额:2023年全年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7134151458740234:17356324.23:83:2 +当期投资活动现金流净额:2023年全年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7134151458740234:9224707.73:83:2 +当期投资活动现金流净额:2023年金额投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7503656148910522:17356324.23:83:2 +当期投资活动现金流净额:2023年金额投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7503656148910522:9224707.73:83:2 +当期投资活动现金流净额:当期投资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.6976973414421082:23000000.00:167:2 +当期投资活动现金流净额:当期投资性活动现金流:收到其他与投资活动有关的现金本期增加金额:0.6931183338165283:23000000.00:167:2 +当期投资活动现金流净额:本期投资性活动现金流:收到其他与投资活动有关的现金本期增加金额:0.7099927067756653:23000000.00:167:2 +当期投资活动现金流净额:本期投资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.7085216045379639:23000000.00:167:2 +当期投资活动现金流净额:本报告期投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7096385955810547:17356324.23:83:2 +当期投资活动现金流净额:本报告期投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7096385955810547:9224707.73:83:2 +当期投资活动现金流净额:报告期投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6931438446044922:17356324.23:83:2 +当期投资活动现金流净额:报告期投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6931438446044922:9224707.73:83:2 +当期投资活动现金流净额:报告期内投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6907038688659668:17356324.23:83:2 +当期投资活动现金流净额:报告期内投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6907038688659668:9224707.73:83:2 +当期投资活动现金流净额:本年度投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7074317932128906:17356324.23:83:2 +当期投资活动现金流净额:本年度投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7074317932128906:9224707.73:83:2 +当期投资活动现金流净额:本期发生额投资性活动现金流:收到其他与投资活动有关的现金本期增加金额:0.7681307792663574:23000000.00:167:2 +当期投资活动现金流净额:本期发生额投资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.7632301449775696:23000000.00:167:2 +当期投资活动现金流净额:2023年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7331262826919556:17356324.23:83:2 +当期投资活动现金流净额:2023年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7331262826919556:9224707.73:83:2 +当期投资活动现金流净额:2023年全年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7087669372558594:17356324.23:83:2 +当期投资活动现金流净额:2023年全年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7087669372558594:9224707.73:83:2 +当期投资活动现金流净额:2023年金额投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7443609833717346:17356324.23:83:2 +当期投资活动现金流净额:2023年金额投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7443609833717346:9224707.73:83:2 +上年同期投资活动现金流净额:上年同期投资活动产生的现金流量净额:收到其他与投资活动有关的现金上年同期增加金额:0.7801203727722168:93400000.00:167:2 +上年同期投资活动现金流净额:上年同期投资活动产生的现金流量净额:支付其他与投资活动有关的现金上年同期增加金额:0.7695399522781372:93400000.00:167:2 +上年同期投资活动现金流净额:上期投资活动产生的现金流量净额:收到其他与投资活动有关的现金上年同期增加金额:0.7557996511459351:93400000.00:167:2 +上年同期投资活动现金流净额:上期投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7457217574119568:17356324.23:83:2 +上年同期投资活动现金流净额:上年度投资活动产生的现金流量净额:收到其他与投资活动有关的现金上年同期增加金额:0.7564236521720886:93400000.00:167:2 +上年同期投资活动现金流净额:上年度投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7454832792282104:17356324.23:83:2 +上年同期投资活动现金流净额:2022年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.8167271614074707:17356324.23:83:2 +上年同期投资活动现金流净额:2022年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.8167271614074707:9224707.73:83:2 +上年同期投资活动现金流净额:2022年全年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7857856750488281:17356324.23:83:2 +上年同期投资活动现金流净额:2022年全年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7857856750488281:9224707.73:83:2 +上年同期投资活动现金流净额:2022年金额投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.8061516284942627:17356324.23:83:2 +上年同期投资活动现金流净额:2022年金额投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.8061516284942627:9224707.73:83:2 +上年同期投资活动现金流净额:上年同期投资活动现金净流量:收到其他与投资活动有关的现金上年同期增加金额:0.7404148578643799:93400000.00:167:2 +上年同期投资活动现金流净额:上年同期投资活动现金净流量:支付其他与投资活动有关的现金上年同期增加金额:0.7363752126693726:93400000.00:167:2 +上年同期投资活动现金流净额:上期投资活动现金净流量:收到其他与投资活动有关的现金上年同期增加金额:0.7034775614738464:93400000.00:167:2 +上年同期投资活动现金流净额:上期投资活动现金净流量:支付其他与投资活动有关的现金上年同期增加金额:0.6970949172973633:93400000.00:167:2 +上年同期投资活动现金流净额:上年度投资活动现金净流量:收到其他与投资活动有关的现金上年同期增加金额:0.7125698328018188:93400000.00:167:2 +上年同期投资活动现金流净额:上年度投资活动现金净流量:支付其他与投资活动有关的现金上年同期增加金额:0.7008534073829651:93400000.00:167:2 +上年同期投资活动现金流净额:2022年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7683202028274536:17356324.23:83:2 +上年同期投资活动现金流净额:2022年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7683202028274536:9224707.73:83:2 +上年同期投资活动现金流净额:2022年全年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7358429431915283:17356324.23:83:2 +上年同期投资活动现金流净额:2022年全年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7358429431915283:9224707.73:83:2 +上年同期投资活动现金流净额:2022年金额投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7694318294525146:17356324.23:83:2 +上年同期投资活动现金流净额:2022年金额投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7694318294525146:9224707.73:83:2 +上年同期投资活动现金流净额:上年同期投资性活动现金流:支付其他与投资活动有关的现金上年同期增加金额:0.7458711862564087:93400000.00:167:2 +上年同期投资活动现金流净额:上年同期投资性活动现金流:收到其他与投资活动有关的现金上年同期增加金额:0.7415148019790649:93400000.00:167:2 +上年同期投资活动现金流净额:上期投资性活动现金流:支付其他与投资活动有关的现金本期增加金额:0.6945338845252991:23000000.00:167:2 +上年同期投资活动现金流净额:上期投资性活动现金流:支付其他与投资活动有关的现金上年同期增加金额:0.691474974155426:93400000.00:167:2 +上年同期投资活动现金流净额:上年度投资性活动现金流:收到其他与投资活动有关的现金上年同期增加金额:0.714279055595398:93400000.00:167:2 +上年同期投资活动现金流净额:上年度投资性活动现金流:支付其他与投资活动有关的现金上年同期增加金额:0.7097010612487793:93400000.00:167:2 +上年同期投资活动现金流净额:2022年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7611790895462036:17356324.23:83:2 +上年同期投资活动现金流净额:2022年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7611790895462036:9224707.73:83:2 +上年同期投资活动现金流净额:2022年全年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7342512011528015:17356324.23:83:2 +上年同期投资活动现金流净额:2022年全年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7342512011528015:9224707.73:83:2 +上年同期投资活动现金流净额:2022年金额投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7638453245162964:17356324.23:83:2 +上年同期投资活动现金流净额:2022年金额投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7638453245162964:9224707.73:83:2 +前年同期投资活动现金流净额:前年同期投资活动产生的现金流量净额:收到其他与投资活动有关的现金上年同期增加金额:0.7635918855667114:93400000.00:167:2 +前年同期投资活动现金流净额:前年同期投资活动产生的现金流量净额:支付其他与投资活动有关的现金上年同期增加金额:0.7500888705253601:93400000.00:167:2 +前年同期投资活动现金流净额:2021年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7586477398872375:17356324.23:83:2 +前年同期投资活动现金流净额:2021年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7586477398872375:9224707.73:83:2 +前年同期投资活动现金流净额:2021年全年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7367861270904541:17356324.23:83:2 +前年同期投资活动现金流净额:2021年全年投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7367861270904541:9224707.73:83:2 +前年同期投资活动现金流净额:2021年金额投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7464069128036499:17356324.23:83:2 +前年同期投资活动现金流净额:2021年金额投资活动产生的现金流量净额:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7464069128036499:9224707.73:83:2 +前年同期投资活动现金流净额:前年同期投资活动现金净流量:收到其他与投资活动有关的现金上年同期增加金额:0.7140518426895142:93400000.00:167:2 +前年同期投资活动现金流净额:前年同期投资活动现金净流量:支付其他与投资活动有关的现金上年同期增加金额:0.7078875303268433:93400000.00:167:2 +前年同期投资活动现金流净额:2021年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7057977318763733:17356324.23:83:2 +前年同期投资活动现金流净额:2021年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7057977318763733:9224707.73:83:2 +前年同期投资活动现金流净额:2021年全年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6842389106750488:17356324.23:83:2 +前年同期投资活动现金流净额:2021年全年投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6842389106750488:9224707.73:83:2 +前年同期投资活动现金流净额:2021年金额投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7035008668899536:17356324.23:83:2 +前年同期投资活动现金流净额:2021年金额投资活动现金净流量:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7035008668899536:9224707.73:83:2 +前年同期投资活动现金流净额:前年同期投资性活动现金流:支付其他与投资活动有关的现金上年同期增加金额:0.7145386338233948:93400000.00:167:2 +前年同期投资活动现金流净额:前年同期投资性活动现金流:收到其他与投资活动有关的现金上年同期增加金额:0.7126213312149048:93400000.00:167:2 +前年同期投资活动现金流净额:2021年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6938494443893433:17356324.23:83:2 +前年同期投资活动现金流净额:2021年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6938494443893433:9224707.73:83:2 +前年同期投资活动现金流净额:2021年全年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6768910884857178:17356324.23:83:2 +前年同期投资活动现金流净额:2021年全年投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.6768910884857178:9224707.73:83:2 +前年同期投资活动现金流净额:2021年金额投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7020545601844788:17356324.23:83:2 +前年同期投资活动现金流净额:2021年金额投资性活动现金流:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7020545601844788:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额同比变动:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7723762392997742:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额同比变动:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7723762392997742:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额同比增减:收到其他与投资活动有关的现金上年同期增加金额:0.7746255397796631:93400000.00:167:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额同比增减:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7634896039962769:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额同比上升:收到其他与投资活动有关的现金上年同期增加金额:0.7634437084197998:93400000.00:167:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额同比上升:收到其他与投资活动有关的现金本期增加金额:0.7475484013557434:23000000.00:167:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额同比下降:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7450748682022095:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额同比下降:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7450748682022095:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额变化幅度:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7583867311477661:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额变化幅度:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7583867311477661:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额变动比例:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.730800986289978:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额变动比例:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.730800986289978:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额本期比上年同期增减:收到其他与投资活动有关的现金上年同期增加金额:0.7897047996520996:93400000.00:167:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额本期比上年同期增减:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7835431098937988:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额本年比上年增减:收到其他与投资活动有关的现金上年同期增加金额:0.7998234629631042:93400000.00:167:2 +投资活动现金流净额同比变动:投资活动产生的现金流量净额本年比上年增减:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.778876781463623:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动现金净流量同比变动:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.744168758392334:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动现金净流量同比变动:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.744168758392334:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动现金净流量同比增减:收到其他与投资活动有关的现金上年同期增加金额:0.7422252893447876:93400000.00:167:2 +投资活动现金流净额同比变动:投资活动现金净流量同比增减:收到其他与投资活动有关的现金本期增加金额:0.7307281494140625:23000000.00:167:2 +投资活动现金流净额同比变动:投资活动现金净流量同比上升:收到其他与投资活动有关的现金上年同期增加金额:0.7246070504188538:93400000.00:167:2 +投资活动现金流净额同比变动:投资活动现金净流量同比上升:收到其他与投资活动有关的现金本期增加金额:0.7158752083778381:23000000.00:167:2 +投资活动现金流净额同比变动:投资活动现金净流量同比下降:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7102575302124023:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动现金净流量同比下降:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7102575302124023:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动现金净流量变化幅度:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7284985184669495:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动现金净流量变化幅度:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7284985184669495:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动现金净流量变动比例:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7006490230560303:17356324.23:83:2 +投资活动现金流净额同比变动:投资活动现金净流量变动比例:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7006490230560303:9224707.73:83:2 +投资活动现金流净额同比变动:投资活动现金净流量本期比上年同期增减:收到其他与投资活动有关的现金上年同期增加金额:0.765455961227417:93400000.00:167:2 +投资活动现金流净额同比变动:投资活动现金净流量本期比上年同期增减:收到其他与投资活动有关的现金本期增加金额:0.7559592723846436:23000000.00:167:2 +投资活动现金流净额同比变动:投资活动现金净流量本年比上年增减:收到其他与投资活动有关的现金上年同期增加金额:0.7803136110305786:93400000.00:167:2 +投资活动现金流净额同比变动:投资活动现金净流量本年比上年增减:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7520980834960938:17356324.23:83:2 +投资活动现金流净额同比变动:投资性活动现金流同比变动:收到其他与投资活动有关的现金上年同期增加金额:0.7351154088973999:93400000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流同比变动:投资活动现金流入小计项目附注2023年度2022年度一、经营活动产生的现金流量::0.7269288301467896:17356324.23:83:2 +投资活动现金流净额同比变动:投资性活动现金流同比增减:收到其他与投资活动有关的现金上年同期增加金额:0.7482986450195312:93400000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流同比增减:收到其他与投资活动有关的现金本期增加金额:0.7409780621528625:23000000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流同比上升:收到其他与投资活动有关的现金上年同期增加金额:0.718496561050415:93400000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流同比上升:收到其他与投资活动有关的现金本期增加金额:0.7129499316215515:23000000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流同比下降:收到其他与投资活动有关的现金上年同期增加金额:0.6938232183456421:93400000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流同比下降:收到其他与投资活动有关的现金本期增加金额:0.6813248991966248:23000000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流变化幅度:收到其他与投资活动有关的现金本期增加金额:0.6843140125274658:23000000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流变化幅度:收到其他与投资活动有关的现金上年同期增加金额:0.6769682168960571:93400000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流变动比例:收到其他与投资活动有关的现金本期增加金额:0.6802611351013184:23000000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流变动比例:支付其他与投资活动有关的现金本期增加金额:0.6763988137245178:23000000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流本期比上年同期增减:收到其他与投资活动有关的现金本期增加金额:0.7678791880607605:23000000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流本期比上年同期增减:收到其他与投资活动有关的现金上年同期增加金额:0.7671341300010681:93400000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流本年比上年增减:收到其他与投资活动有关的现金上年同期增加金额:0.773790717124939:93400000.00:167:2 +投资活动现金流净额同比变动:投资性活动现金流本年比上年增减:支付其他与投资活动有关的现金上年同期增加金额:0.7519544363021851:93400000.00:167:2 +当期非经常性损益:当期非经常性损益合计:合计计入当期非经常性损益的金额:0.8909862041473389:1737140.60:164:2 +当期非经常性损益:当期非经常性损益合计:合计计入当期非经常性损益的金额:0.8909862041473389:1089178.18:164:1 +当期非经常性损益:本期非经常性损益合计:合计计入当期非经常性损益的金额:0.86122727394104:1737140.60:164:2 +当期非经常性损益:本期非经常性损益合计:合计计入当期非经常性损益的金额:0.86122727394104:1089178.18:164:1 +当期非经常性损益:本报告期非经常性损益合计:合计计入当期非经常性损益的金额:0.8297645449638367:1737140.60:164:2 +当期非经常性损益:本报告期非经常性损益合计:合计计入当期非经常性损益的金额:0.8297645449638367:1089178.18:164:1 +当期非经常性损益:报告期非经常性损益合计:合计计入当期非经常性损益的金额:0.8356654644012451:1737140.60:164:2 +当期非经常性损益:报告期非经常性损益合计:合计计入当期非经常性损益的金额:0.8356654644012451:1089178.18:164:1 +当期非经常性损益:报告期内非经常性损益合计:合计计入当期非经常性损益的金额:0.8219770193099976:1737140.60:164:2 +当期非经常性损益:报告期内非经常性损益合计:合计计入当期非经常性损益的金额:0.8219770193099976:1089178.18:164:1 +当期非经常性损益:本年度非经常性损益合计:合计计入当期非经常性损益的金额:0.8607388138771057:1737140.60:164:2 +当期非经常性损益:本年度非经常性损益合计:合计计入当期非经常性损益的金额:0.8607388138771057:1089178.18:164:1 +当期非经常性损益:本期发生额非经常性损益合计:合计计入当期非经常性损益的金额:0.8536848425865173:1737140.60:164:2 +当期非经常性损益:本期发生额非经常性损益合计:合计计入当期非经常性损益的金额:0.8536848425865173:1089178.18:164:1 +当期非经常性损益:2023年非经常性损益合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.7704401016235352:5585927.73:202:2 +当期非经常性损益:2023年非经常性损益合计:合计计入当期非经常性损益的金额:0.7637211084365845:1737140.60:164:2 +当期非经常性损益:2023年全年非经常性损益合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.7768527269363403:5585927.73:202:2 +当期非经常性损益:2023年全年非经常性损益合计:持续经营净利润2023年度:0.7485563158988953:153819180.44:82:1 +当期非经常性损益:2023年金额非经常性损益合计:合计计入当期非经常性损益的金额:0.7790354490280151:1737140.60:164:2 +当期非经常性损益:2023年金额非经常性损益合计:合计计入当期非经常性损益的金额:0.7790354490280151:1089178.18:164:1 +当期非经常性损益:当期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8875844478607178:1737140.60:164:2 +当期非经常性损益:当期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8875844478607178:1089178.18:164:1 +当期非经常性损益:本期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8583180904388428:1737140.60:164:2 +当期非经常性损益:本期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8583180904388428:1089178.18:164:1 +当期非经常性损益:本报告期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8221633434295654:1737140.60:164:2 +当期非经常性损益:本报告期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8221633434295654:1089178.18:164:1 +当期非经常性损益:报告期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8262042999267578:1737140.60:164:2 +当期非经常性损益:报告期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8262042999267578:1089178.18:164:1 +当期非经常性损益:报告期内非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8094679713249207:1737140.60:164:2 +当期非经常性损益:报告期内非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8094679713249207:1089178.18:164:1 +当期非经常性损益:本年度非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8412634134292603:1737140.60:164:2 +当期非经常性损益:本年度非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8412634134292603:1089178.18:164:1 +当期非经常性损益:本期发生额非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8533920645713806:1737140.60:164:2 +当期非经常性损益:本期发生额非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8533920645713806:1089178.18:164:1 +当期非经常性损益:2023年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7607364654541016:1737140.60:164:2 +当期非经常性损益:2023年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7607364654541016:1089178.18:164:1 +当期非经常性损益:2023年全年非经常性损益项目合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.7577162384986877:5585927.73:202:2 +当期非经常性损益:2023年全年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7349141240119934:1737140.60:164:2 +当期非经常性损益:2023年金额非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7710221409797668:1737140.60:164:2 +当期非经常性损益:2023年金额非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7710221409797668:1089178.18:164:1 +当期非经常性损益:当期非经常性损益项目净额:其他计入当期非经常性损益的金额:0.8517057299613953:0.02:164:2 +当期非经常性损益:当期非经常性损益项目净额:其他计入当期非经常性损益的金额:0.8517057299613953:137953.14:164:1 +当期非经常性损益:本期非经常性损益项目净额:合计计入当期非经常性损益的金额:0.8397589921951294:1737140.60:164:2 +当期非经常性损益:本期非经常性损益项目净额:合计计入当期非经常性损益的金额:0.8397589921951294:1089178.18:164:1 +当期非经常性损益:本报告期非经常性损益项目净额:其他计入当期非经常性损益的金额:0.8172892928123474:0.02:164:2 +当期非经常性损益:本报告期非经常性损益项目净额:其他计入当期非经常性损益的金额:0.8172892928123474:137953.14:164:1 +当期非经常性损益:报告期非经常性损益项目净额:其他计入当期非经常性损益的金额:0.8126702904701233:0.02:164:2 +当期非经常性损益:报告期非经常性损益项目净额:其他计入当期非经常性损益的金额:0.8126702904701233:137953.14:164:1 +当期非经常性损益:报告期内非经常性损益项目净额:其他计入当期非经常性损益的金额:0.810255229473114:0.02:164:2 +当期非经常性损益:报告期内非经常性损益项目净额:其他计入当期非经常性损益的金额:0.810255229473114:137953.14:164:1 +当期非经常性损益:本年度非经常性损益项目净额:合计计入当期非经常性损益的金额:0.8327562808990479:1737140.60:164:2 +当期非经常性损益:本年度非经常性损益项目净额:合计计入当期非经常性损益的金额:0.8327562808990479:1089178.18:164:1 +当期非经常性损益:本期发生额非经常性损益项目净额:合计计入当期非经常性损益的金额:0.8432623744010925:1737140.60:164:2 +当期非经常性损益:本期发生额非经常性损益项目净额:合计计入当期非经常性损益的金额:0.8432623744010925:1089178.18:164:1 +当期非经常性损益:2023年非经常性损益项目净额:2022年度归属于母公司所有者的非经常性损益净额金额:0.7683847546577454:5585927.73:202:2 +当期非经常性损益:2023年非经常性损益项目净额:其他计入当期非经常性损益的金额:0.731882631778717:0.02:164:2 +当期非经常性损益:2023年全年非经常性损益项目净额:2022年度归属于母公司所有者的非经常性损益净额金额:0.7742663621902466:5585927.73:202:2 +当期非经常性损益:2023年全年非经常性损益项目净额:持续经营净利润2023年度:0.7151979207992554:153819180.44:82:1 +当期非经常性损益:2023年金额非经常性损益项目净额:2022年度归属于母公司所有者的非经常性损益净额金额:0.7750458121299744:5585927.73:202:2 +当期非经常性损益:2023年金额非经常性损益项目净额:其他计入当期非经常性损益的金额:0.7504972815513611:0.02:164:2 +上年同期非经常性损益:上年同期非经常性损益合计:合计计入当期非经常性损益的金额:0.807886004447937:1737140.60:164:2 +上年同期非经常性损益:上年同期非经常性损益合计:合计计入当期非经常性损益的金额:0.807886004447937:1089178.18:164:1 +上年同期非经常性损益:上期非经常性损益合计:合计计入当期非经常性损益的金额:0.8362947702407837:1737140.60:164:2 +上年同期非经常性损益:上期非经常性损益合计:合计计入当期非经常性损益的金额:0.8362947702407837:1089178.18:164:1 +上年同期非经常性损益:上年度非经常性损益合计:合计计入当期非经常性损益的金额:0.8457139730453491:1737140.60:164:2 +上年同期非经常性损益:上年度非经常性损益合计:合计计入当期非经常性损益的金额:0.8457139730453491:1089178.18:164:1 +上年同期非经常性损益:2022年非经常性损益合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.8073281645774841:5585927.73:202:2 +上年同期非经常性损益:2022年非经常性损益合计:合计计入当期非经常性损益的金额:0.7684100866317749:1737140.60:164:2 +上年同期非经常性损益:2022年全年非经常性损益合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.8160032033920288:5585927.73:202:2 +上年同期非经常性损益:2022年全年非经常性损益合计:合计计入当期非经常性损益的金额:0.7444778084754944:1737140.60:164:2 +上年同期非经常性损益:2022年金额非经常性损益合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.8194971680641174:5585927.73:202:2 +上年同期非经常性损益:2022年金额非经常性损益合计:合计计入当期非经常性损益的金额:0.7947731018066406:1737140.60:164:2 +上年同期非经常性损益:上年同期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.809596836566925:1737140.60:164:2 +上年同期非经常性损益:上年同期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.809596836566925:1089178.18:164:1 +上年同期非经常性损益:上期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8402646780014038:1737140.60:164:2 +上年同期非经常性损益:上期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8402646780014038:1089178.18:164:1 +上年同期非经常性损益:上年度非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8325670957565308:1737140.60:164:2 +上年同期非经常性损益:上年度非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8325670957565308:1089178.18:164:1 +上年同期非经常性损益:2022年非经常性损益项目合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.7838752269744873:5585927.73:202:2 +上年同期非经常性损益:2022年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7660536766052246:1737140.60:164:2 +上年同期非经常性损益:2022年全年非经常性损益项目合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.7914266586303711:5585927.73:202:2 +上年同期非经常性损益:2022年全年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7410244345664978:1737140.60:164:2 +上年同期非经常性损益:2022年金额非经常性损益项目合计:2022年度归属于母公司所有者的非经常性损益净额金额:0.799791157245636:5585927.73:202:2 +上年同期非经常性损益:2022年金额非经常性损益项目合计:合计计入当期非经常性损益的金额:0.781523585319519:1737140.60:164:2 +上年同期非经常性损益:上年同期非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7972128391265869:1737140.60:164:2 +上年同期非经常性损益:上年同期非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7972128391265869:1089178.18:164:1 +上年同期非经常性损益:上期非经常性损益项目净额:合计计入当期非经常性损益的金额:0.820035994052887:1737140.60:164:2 +上年同期非经常性损益:上期非经常性损益项目净额:合计计入当期非经常性损益的金额:0.820035994052887:1089178.18:164:1 +上年同期非经常性损益:上年度非经常性损益项目净额:合计计入当期非经常性损益的金额:0.8211049437522888:1737140.60:164:2 +上年同期非经常性损益:上年度非经常性损益项目净额:合计计入当期非经常性损益的金额:0.8211049437522888:1089178.18:164:1 +上年同期非经常性损益:2022年非经常性损益项目净额:2022年度归属于母公司所有者的非经常性损益净额金额:0.8056309819221497:5585927.73:202:2 +上年同期非经常性损益:2022年非经常性损益项目净额:其他计入当期非经常性损益的金额:0.7447986602783203:0.02:164:2 +上年同期非经常性损益:2022年全年非经常性损益项目净额:2022年度归属于母公司所有者的非经常性损益净额金额:0.8148632645606995:5585927.73:202:2 +上年同期非经常性损益:2022年全年非经常性损益项目净额:其他计入当期非经常性损益的金额:0.724946916103363:0.02:164:2 +上年同期非经常性损益:2022年金额非经常性损益项目净额:2022年度归属于母公司所有者的非经常性损益净额金额:0.8201967477798462:5585927.73:202:2 +上年同期非经常性损益:2022年金额非经常性损益项目净额:其他计入当期非经常性损益的金额:0.7684067487716675:0.02:164:2 +前年同期非经常性损益:前年同期非经常性损益合计:合计计入当期非经常性损益的金额:0.8044193983078003:1737140.60:164:2 +前年同期非经常性损益:前年同期非经常性损益合计:合计计入当期非经常性损益的金额:0.8044193983078003:1089178.18:164:1 +前年同期非经常性损益:2021年非经常性损益合计:合计计入当期非经常性损益的金额:0.7696065902709961:1737140.60:164:2 +前年同期非经常性损益:2021年非经常性损益合计:合计计入当期非经常性损益的金额:0.7696065902709961:1089178.18:164:1 +前年同期非经常性损益:2021年全年非经常性损益合计:合计计入当期非经常性损益的金额:0.7509975433349609:1737140.60:164:2 +前年同期非经常性损益:2021年全年非经常性损益合计:合计计入当期非经常性损益的金额:0.7509975433349609:1089178.18:164:1 +前年同期非经常性损益:2021年金额非经常性损益合计:合计计入当期非经常性损益的金额:0.7984808087348938:1737140.60:164:2 +前年同期非经常性损益:2021年金额非经常性损益合计:合计计入当期非经常性损益的金额:0.7984808087348938:1089178.18:164:1 +前年同期非经常性损益:前年同期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8044611215591431:1737140.60:164:2 +前年同期非经常性损益:前年同期非经常性损益项目合计:合计计入当期非经常性损益的金额:0.8044611215591431:1089178.18:164:1 +前年同期非经常性损益:2021年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7686000466346741:1737140.60:164:2 +前年同期非经常性损益:2021年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7686000466346741:1089178.18:164:1 +前年同期非经常性损益:2021年全年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7465613484382629:1737140.60:164:2 +前年同期非经常性损益:2021年全年非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7465613484382629:1089178.18:164:1 +前年同期非经常性损益:2021年金额非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7860339283943176:1737140.60:164:2 +前年同期非经常性损益:2021年金额非经常性损益项目合计:合计计入当期非经常性损益的金额:0.7860339283943176:1089178.18:164:1 +前年同期非经常性损益:前年同期非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7947374582290649:1737140.60:164:2 +前年同期非经常性损益:前年同期非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7947374582290649:1089178.18:164:1 +前年同期非经常性损益:2021年非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7404066324234009:1737140.60:164:2 +前年同期非经常性损益:2021年非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7404066324234009:1089178.18:164:1 +前年同期非经常性损益:2021年全年非经常性损益项目净额:2022年度归属于母公司所有者的非经常性损益净额金额:0.7317115068435669:5585927.73:202:2 +前年同期非经常性损益:2021年全年非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7283496260643005:1737140.60:164:2 +前年同期非经常性损益:2021年金额非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7680081129074097:1737140.60:164:2 +前年同期非经常性损益:2021年金额非经常性损益项目净额:合计计入当期非经常性损益的金额:0.7680081129074097:1089178.18:164:1 +非经常性损益同比变动:非经常性损益合计同比变动:合计计入当期非经常性损益的金额:0.8170526027679443:1737140.60:164:2 +非经常性损益同比变动:非经常性损益合计同比变动:合计计入当期非经常性损益的金额:0.8170526027679443:1089178.18:164:1 +非经常性损益同比变动:非经常性损益合计同比增减:合计计入当期非经常性损益的金额:0.8012609481811523:1737140.60:164:2 +非经常性损益同比变动:非经常性损益合计同比增减:合计计入当期非经常性损益的金额:0.8012609481811523:1089178.18:164:1 +非经常性损益同比变动:非经常性损益合计同比上升:合计计入当期非经常性损益的金额:0.7838822603225708:1737140.60:164:2 +非经常性损益同比变动:非经常性损益合计同比上升:合计计入当期非经常性损益的金额:0.7838822603225708:1089178.18:164:1 +非经常性损益同比变动:非经常性损益合计同比下降:合计计入当期非经常性损益的金额:0.7801190614700317:1737140.60:164:2 +非经常性损益同比变动:非经常性损益合计同比下降:合计计入当期非经常性损益的金额:0.7801190614700317:1089178.18:164:1 +非经常性损益同比变动:非经常性损益合计变化幅度:合计计入当期非经常性损益的金额:0.7853020429611206:1737140.60:164:2 +非经常性损益同比变动:非经常性损益合计变化幅度:合计计入当期非经常性损益的金额:0.7853020429611206:1089178.18:164:1 +非经常性损益同比变动:非经常性损益合计变动比例:合计计入当期非经常性损益的金额:0.8160135746002197:1737140.60:164:2 +非经常性损益同比变动:非经常性损益合计变动比例:合计计入当期非经常性损益的金额:0.8160135746002197:1089178.18:164:1 +非经常性损益同比变动:非经常性损益合计本期比上年同期增减:合计计入当期非经常性损益的金额:0.8164406418800354:1737140.60:164:2 +非经常性损益同比变动:非经常性损益合计本期比上年同期增减:合计计入当期非经常性损益的金额:0.8164406418800354:1089178.18:164:1 +非经常性损益同比变动:非经常性损益合计本年比上年增减:合计计入当期非经常性损益的金额:0.8148890733718872:1737140.60:164:2 +非经常性损益同比变动:非经常性损益合计本年比上年增减:合计计入当期非经常性损益的金额:0.8148890733718872:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目合计同比变动:合计计入当期非经常性损益的金额:0.8170335292816162:1737140.60:164:2 +非经常性损益同比变动:非经常性损益项目合计同比变动:合计计入当期非经常性损益的金额:0.8170335292816162:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目合计同比增减:合计计入当期非经常性损益的金额:0.8085120320320129:1737140.60:164:2 +非经常性损益同比变动:非经常性损益项目合计同比增减:合计计入当期非经常性损益的金额:0.8085120320320129:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目合计同比上升:合计计入当期非经常性损益的金额:0.7944532632827759:1737140.60:164:2 +非经常性损益同比变动:非经常性损益项目合计同比上升:合计计入当期非经常性损益的金额:0.7944532632827759:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目合计同比下降:合计计入当期非经常性损益的金额:0.7860510349273682:1737140.60:164:2 +非经常性损益同比变动:非经常性损益项目合计同比下降:合计计入当期非经常性损益的金额:0.7860510349273682:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目合计变化幅度:合计计入当期非经常性损益的金额:0.7996537089347839:1737140.60:164:2 +非经常性损益同比变动:非经常性损益项目合计变化幅度:合计计入当期非经常性损益的金额:0.7996537089347839:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目合计变动比例:合计计入当期非经常性损益的金额:0.8177168369293213:1737140.60:164:2 +非经常性损益同比变动:非经常性损益项目合计变动比例:合计计入当期非经常性损益的金额:0.8177168369293213:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目合计本期比上年同期增减:合计计入当期非经常性损益的金额:0.8262964487075806:1737140.60:164:2 +非经常性损益同比变动:非经常性损益项目合计本期比上年同期增减:合计计入当期非经常性损益的金额:0.8262964487075806:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目合计本年比上年增减:合计计入当期非经常性损益的金额:0.8209706544876099:1737140.60:164:2 +非经常性损益同比变动:非经常性损益项目合计本年比上年增减:合计计入当期非经常性损益的金额:0.8209706544876099:1089178.18:164:1 +非经常性损益同比变动:非经常性损益项目净额同比变动:其他计入当期非经常性损益的金额:0.7984821796417236:0.02:164:2 +非经常性损益同比变动:非经常性损益项目净额同比变动:其他计入当期非经常性损益的金额:0.7984821796417236:137953.14:164:1 +非经常性损益同比变动:非经常性损益项目净额同比增减:其他计入当期非经常性损益的金额:0.7883921265602112:0.02:164:2 +非经常性损益同比变动:非经常性损益项目净额同比增减:其他计入当期非经常性损益的金额:0.7883921265602112:137953.14:164:1 +非经常性损益同比变动:非经常性损益项目净额同比上升:其他计入当期非经常性损益的金额:0.7677901983261108:0.02:164:2 +非经常性损益同比变动:非经常性损益项目净额同比上升:其他计入当期非经常性损益的金额:0.7677901983261108:137953.14:164:1 +非经常性损益同比变动:非经常性损益项目净额同比下降:其他计入当期非经常性损益的金额:0.7685742974281311:0.02:164:2 +非经常性损益同比变动:非经常性损益项目净额同比下降:其他计入当期非经常性损益的金额:0.7685742974281311:137953.14:164:1 +非经常性损益同比变动:非经常性损益项目净额变化幅度:其他计入当期非经常性损益的金额:0.7634208798408508:0.02:164:2 +非经常性损益同比变动:非经常性损益项目净额变化幅度:其他计入当期非经常性损益的金额:0.7634208798408508:137953.14:164:1 +非经常性损益同比变动:非经常性损益项目净额变动比例:其他计入当期非经常性损益的金额:0.7819502353668213:0.02:164:2 +非经常性损益同比变动:非经常性损益项目净额变动比例:其他计入当期非经常性损益的金额:0.7819502353668213:137953.14:164:1 +非经常性损益同比变动:非经常性损益项目净额本期比上年同期增减:其他计入当期非经常性损益的金额:0.809641420841217:0.02:164:2 +非经常性损益同比变动:非经常性损益项目净额本期比上年同期增减:其他计入当期非经常性损益的金额:0.809641420841217:137953.14:164:1 +非经常性损益同比变动:非经常性损益项目净额本年比上年增减:其他计入当期非经常性损益的金额:0.7984848618507385:0.02:164:2 +非经常性损益同比变动:非经常性损益项目净额本年比上年增减:其他计入当期非经常性损益的金额:0.7984848618507385:137953.14:164:1 +上年同期基本每股收益:上年同期归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8641513586044312:0.60:202:3 +上年同期基本每股收益:上年同期归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润加权平均净资产收益率:0.7940235733985901:15.47:202:3 +上年同期基本每股收益:上期归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8888118267059326:0.60:202:3 +上年同期基本每股收益:上期归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8206071257591248:0.60:202:3 +上年同期基本每股收益:上年度归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.9154144525527954:0.60:202:3 +上年同期基本每股收益:上年度归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润加权平均净资产收益率:0.8384168744087219:15.47:202:3 +上年同期基本每股收益:2022年归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8687353134155273:0.60:202:3 +上年同期基本每股收益:2022年归属于公司普通股股东的净利润基本每股收益:2022年度归属于母公司所有者的非经常性损益净额金额:0.8129934072494507:5585927.73:202:2 +上年同期基本每股收益:2022年全年归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8164439797401428:0.60:202:3 +上年同期基本每股收益:2022年全年归属于公司普通股股东的净利润基本每股收益:2022年度归属于母公司所有者的非经常性损益净额金额:0.8103559017181396:5585927.73:202:2 +上年同期基本每股收益:2022年金额归属于公司普通股股东的净利润基本每股收益:2022年度归属于母公司所有者的非经常性损益净额金额:0.8186773061752319:5585927.73:202:2 +上年同期基本每股收益:2022年金额归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8095484972000122:0.60:202:3 +上年同期基本每股收益:上年同期归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8713048696517944:0.60:202:3 +上年同期基本每股收益:上年同期归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.7977699041366577:0.60:202:3 +上年同期基本每股收益:上期归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8955386281013489:0.60:202:3 +上年同期基本每股收益:上期归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8246742486953735:0.60:202:3 +上年同期基本每股收益:上年度归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.9225068092346191:0.60:202:3 +上年同期基本每股收益:上年度归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.839860200881958:0.60:202:3 +上年同期基本每股收益:2022年归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8738360404968262:0.60:202:3 +上年同期基本每股收益:2022年归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8143877983093262:0.60:202:3 +上年同期基本每股收益:2022年全年归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8226883411407471:0.60:202:3 +上年同期基本每股收益:2022年全年归属于公司普通股股东的净利润每股收益基本每股收益:2022年度归属于母公司所有者的非经常性损益净额金额:0.7990677952766418:5585927.73:202:2 +上年同期基本每股收益:2022年金额归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.814613938331604:0.60:202:3 +上年同期基本每股收益:2022年金额归属于公司普通股股东的净利润每股收益基本每股收益:2022年度归属于母公司所有者的非经常性损益净额金额:0.8104848861694336:5585927.73:202:2 +前年同期基本每股收益:前年同期归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.851165235042572:0.60:202:3 +前年同期基本每股收益:前年同期归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润加权平均净资产收益率:0.7856865525245667:15.47:202:3 +前年同期基本每股收益:2021年归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8762575387954712:0.60:202:3 +前年同期基本每股收益:2021年归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8182271122932434:0.60:202:3 +前年同期基本每股收益:2021年全年归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8347380757331848:0.60:202:3 +前年同期基本每股收益:2021年全年归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.7702171802520752:0.60:202:3 +前年同期基本每股收益:2021年金额归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8105592727661133:0.60:202:3 +前年同期基本每股收益:2021年金额归属于公司普通股股东的净利润基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.7617323398590088:0.60:202:3 +前年同期基本每股收益:前年同期归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8577830195426941:0.60:202:3 +前年同期基本每股收益:前年同期归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.790778636932373:0.60:202:3 +前年同期基本每股收益:2021年归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8858486413955688:0.60:202:3 +前年同期基本每股收益:2021年归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8263423442840576:0.60:202:3 +前年同期基本每股收益:2021年全年归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8438820838928223:0.60:202:3 +前年同期基本每股收益:2021年全年归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.7794286012649536:0.60:202:3 +前年同期基本每股收益:2021年金额归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8196594715118408:0.60:202:3 +前年同期基本每股收益:2021年金额归属于公司普通股股东的净利润每股收益基本每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.7691078186035156:0.60:202:3 +前年同期稀释每股收益:前年同期归属于公司普通股股东的净利润稀释每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8953182697296143:0.60:202:3 +前年同期稀释每股收益:前年同期归属于公司普通股股东的净利润稀释每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8330262899398804:0.60:202:3 +前年同期稀释每股收益:2021年归属于公司普通股股东的净利润稀释每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8997717499732971:0.60:202:3 +前年同期稀释每股收益:2021年归属于公司普通股股东的净利润稀释每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8469684720039368:0.60:202:3 +前年同期稀释每股收益:2021年全年归属于公司普通股股东的净利润稀释每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.863892674446106:0.60:202:3 +前年同期稀释每股收益:2021年全年归属于公司普通股股东的净利润稀释每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8136484026908875:0.60:202:3 +前年同期稀释每股收益:2021年金额归属于公司普通股股东的净利润稀释每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8498620986938477:0.60:202:3 +前年同期稀释每股收益:2021年金额归属于公司普通股股东的净利润稀释每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.7949496507644653:0.60:202:3 +前年同期稀释每股收益:前年同期归属于公司普通股股东的净利润每股收益稀释每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8980120420455933:0.60:202:3 +前年同期稀释每股收益:前年同期归属于公司普通股股东的净利润每股收益稀释每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8353408575057983:0.60:202:3 +前年同期稀释每股收益:2021年归属于公司普通股股东的净利润每股收益稀释每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.9111474752426147:0.60:202:3 +前年同期稀释每股收益:2021年归属于公司普通股股东的净利润每股收益稀释每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8616248965263367:0.60:202:3 +前年同期稀释每股收益:2021年全年归属于公司普通股股东的净利润每股收益稀释每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.872390627861023:0.60:202:3 +前年同期稀释每股收益:2021年全年归属于公司普通股股东的净利润每股收益稀释每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8251075744628906:0.60:202:3 +前年同期稀释每股收益:2021年金额归属于公司普通股股东的净利润每股收益稀释每股收益:归属于公司普通股股东的净利润每股收益稀释每股收益:0.8600435256958008:0.60:202:3 +前年同期稀释每股收益:2021年金额归属于公司普通股股东的净利润每股收益稀释每股收益:归属于公司普通股股东的净利润每股收益基本每股收益:0.8081976175308228:0.60:202:3 +上年同期加权平均净资产收益率:上年同期归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8827868700027466:15.47:202:3 +上年同期加权平均净资产收益率:上年同期归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.8109948039054871:0.60:202:3 +上年同期加权平均净资产收益率:上期归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.9059704542160034:15.47:202:3 +上年同期加权平均净资产收益率:上期归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.8311629295349121:0.60:202:3 +上年同期加权平均净资产收益率:上年度归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.9306432008743286:15.47:202:3 +上年同期加权平均净资产收益率:上年度归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.855692982673645:0.60:202:3 +上年同期加权平均净资产收益率:2022年归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8819858431816101:15.47:202:3 +上年同期加权平均净资产收益率:2022年归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.8135912418365479:0.60:202:3 +上年同期加权平均净资产收益率:2022年全年归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8306741118431091:15.47:202:3 +上年同期加权平均净资产收益率:2022年全年归属于公司普通股股东的净利润加权平均净资产收益率:2022年度归属于母公司所有者的非经常性损益净额金额:0.8023531436920166:5585927.73:202:2 +上年同期加权平均净资产收益率:2022年金额归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8271300196647644:15.47:202:3 +上年同期加权平均净资产收益率:2022年金额归属于公司普通股股东的净利润加权平均净资产收益率:2022年度归属于母公司所有者的非经常性损益净额金额:0.8094289302825928:5585927.73:202:2 +上年同期加权平均净资产收益率:上年同期归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8524937033653259:15.47:202:3 +上年同期加权平均净资产收益率:上年同期归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.7717680931091309:0.60:202:3 +上年同期加权平均净资产收益率:上期归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8830907940864563:15.47:202:3 +上年同期加权平均净资产收益率:上期归属于上市公司股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7990968823432922:17.47:202:3 +上年同期加权平均净资产收益率:上年度归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.9012112021446228:15.47:202:3 +上年同期加权平均净资产收益率:上年度归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.8136614561080933:0.60:202:3 +上年同期加权平均净资产收益率:2022年归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8613432049751282:15.47:202:3 +上年同期加权平均净资产收益率:2022年归属于上市公司股东的净利润加权平均净资产收益率:2022年度归属于母公司所有者的非经常性损益净额金额:0.8082143664360046:5585927.73:202:2 +上年同期加权平均净资产收益率:2022年全年归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8176946640014648:15.47:202:3 +上年同期加权平均净资产收益率:2022年全年归属于上市公司股东的净利润加权平均净资产收益率:2022年度归属于母公司所有者的非经常性损益净额金额:0.8024790287017822:5585927.73:202:2 +上年同期加权平均净资产收益率:2022年金额归属于上市公司股东的净利润加权平均净资产收益率:2022年度归属于母公司所有者的非经常性损益净额金额:0.8092328310012817:5585927.73:202:2 +上年同期加权平均净资产收益率:2022年金额归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8062190413475037:15.47:202:3 +上年同期加权平均净资产收益率:上年同期加权平均净资产收益率(扣非前):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7380785942077637:17.47:202:3 +上年同期加权平均净资产收益率:上年同期加权平均净资产收益率(扣非前):归属于公司普通股股东的净利润加权平均净资产收益率:0.7334461808204651:15.47:202:3 +上年同期加权平均净资产收益率:上期加权平均净资产收益率(扣非前):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7833205461502075:17.47:202:3 +上年同期加权平均净资产收益率:上期加权平均净资产收益率(扣非前):归属于公司普通股股东的净利润加权平均净资产收益率:0.769528329372406:15.47:202:3 +上年同期加权平均净资产收益率:上年度加权平均净资产收益率(扣非前):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7704448699951172:17.47:202:3 +上年同期加权平均净资产收益率:上年度加权平均净资产收益率(扣非前):归属于公司普通股股东的净利润加权平均净资产收益率:0.7605705261230469:15.47:202:3 +上年同期加权平均净资产收益率:2022年加权平均净资产收益率(扣非前):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7401102185249329:17.47:202:3 +上年同期加权平均净资产收益率:2022年加权平均净资产收益率(扣非前):归属于公司普通股股东的净利润加权平均净资产收益率:0.7259166836738586:15.47:202:3 +上年同期加权平均净资产收益率:2022年全年加权平均净资产收益率(扣非前):综合收益总额2022年度所有者权益合计:0.7546960115432739:132340330.02:90:1 +上年同期加权平均净资产收益率:2022年全年加权平均净资产收益率(扣非前):综合收益总额2022年度未分配利润:0.7327196002006531:132340330.02:90:1 +上年同期加权平均净资产收益率:2022年金额加权平均净资产收益率(扣非前):综合收益总额2022年度所有者权益合计:0.7447577118873596:132340330.02:90:1 +上年同期加权平均净资产收益率:2022年金额加权平均净资产收益率(扣非前):综合收益总额2022年度未分配利润:0.7313406467437744:132340330.02:90:1 +前年同期加权平均净资产收益率:前年同期归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8722242712974548:15.47:202:3 +前年同期加权平均净资产收益率:前年同期归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.7949244379997253:0.60:202:3 +前年同期加权平均净资产收益率:2021年归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.892853319644928:15.47:202:3 +前年同期加权平均净资产收益率:2021年归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.8341692686080933:0.60:202:3 +前年同期加权平均净资产收益率:2021年全年归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8532336354255676:15.47:202:3 +前年同期加权平均净资产收益率:2021年全年归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.7947027683258057:0.60:202:3 +前年同期加权平均净资产收益率:2021年金额归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8309763073921204:15.47:202:3 +前年同期加权平均净资产收益率:2021年金额归属于公司普通股股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.7646823525428772:0.60:202:3 +前年同期加权平均净资产收益率:前年同期归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8398890495300293:15.47:202:3 +前年同期加权平均净资产收益率:前年同期归属于上市公司股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7574605941772461:17.47:202:3 +前年同期加权平均净资产收益率:2021年归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8761062026023865:15.47:202:3 +前年同期加权平均净资产收益率:2021年归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.805146336555481:0.60:202:3 +前年同期加权平均净资产收益率:2021年全年归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.83992999792099:15.47:202:3 +前年同期加权平均净资产收益率:2021年全年归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润每股收益基本每股收益:0.7711949944496155:0.60:202:3 +前年同期加权平均净资产收益率:2021年金额归属于上市公司股东的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8161693811416626:15.47:202:3 +前年同期加权平均净资产收益率:2021年金额归属于上市公司股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7459229230880737:17.47:202:3 +前年同期加权平均净资产收益率:前年同期加权平均净资产收益率(扣非前):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7472833395004272:17.47:202:3 +前年同期加权平均净资产收益率:前年同期加权平均净资产收益率(扣非前):归属于公司普通股股东的净利润加权平均净资产收益率:0.7292420268058777:15.47:202:3 +前年同期加权平均净资产收益率:2021年加权平均净资产收益率(扣非前):归属于公司普通股股东的净利润加权平均净资产收益率:0.7495368719100952:15.47:202:3 +前年同期加权平均净资产收益率:2021年加权平均净资产收益率(扣非前):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7467817068099976:17.47:202:3 +前年同期加权平均净资产收益率:2021年全年加权平均净资产收益率(扣非前):归属于公司普通股股东的净利润加权平均净资产收益率:0.7417020797729492:15.47:202:3 +前年同期加权平均净资产收益率:2021年全年加权平均净资产收益率(扣非前):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.732979953289032:17.47:202:3 +前年同期加权平均净资产收益率:2021年金额加权平均净资产收益率(扣非前):归属于公司普通股股东的净利润加权平均净资产收益率:0.7233011722564697:15.47:202:3 +前年同期加权平均净资产收益率:2021年金额加权平均净资产收益率(扣非前):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7204035520553589:17.47:202:3 +前年同期扣非加权平均净资产收益率:前年同期扣除非经常性损益后的加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8125909566879272:17.47:202:3 +前年同期扣非加权平均净资产收益率:前年同期扣除非经常性损益后的加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.7144697308540344:15.47:202:3 +前年同期扣非加权平均净资产收益率:2021年扣除非经常性损益后的加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8481913208961487:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年扣除非经常性损益后的加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7538158297538757:0.68:202:3 +前年同期扣非加权平均净资产收益率:2021年全年扣除非经常性损益后的加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8138609528541565:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年全年扣除非经常性损益后的加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7202578186988831:0.68:202:3 +前年同期扣非加权平均净资产收益率:2021年金额扣除非经常性损益后的加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7708470225334167:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年金额扣除非经常性损益后的加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.6845069527626038:15.47:202:3 +前年同期扣非加权平均净资产收益率:前年同期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8990662693977356:17.47:202:3 +前年同期扣非加权平均净资产收益率:前年同期扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8344263434410095:0.68:202:3 +前年同期扣非加权平均净资产收益率:2021年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8934484124183655:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8392876386642456:0.68:202:3 +前年同期扣非加权平均净资产收益率:2021年全年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8552215695381165:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年全年扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.8009082078933716:0.68:202:3 +前年同期扣非加权平均净资产收益率:2021年金额扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8300220966339111:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年金额扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润每股收益基本每股收益:0.7713981866836548:0.68:202:3 +前年同期扣非加权平均净资产收益率:前年同期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8588160276412964:17.47:202:3 +前年同期扣非加权平均净资产收益率:前年同期归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8117743730545044:15.47:202:3 +前年同期扣非加权平均净资产收益率:2021年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8342223167419434:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.8289521336555481:15.47:202:3 +前年同期扣非加权平均净资产收益率:2021年全年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.8187755346298218:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年全年归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.7939671277999878:15.47:202:3 +前年同期扣非加权平均净资产收益率:2021年金额归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率:扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7981807589530945:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年金额归属于上市公司股东的扣除非经常性损益后的净利润加权平均净资产收益率:归属于公司普通股股东的净利润加权平均净资产收益率:0.7543877363204956:15.47:202:3 +前年同期扣非加权平均净资产收益率:前年同期加权平均净资产收益率(扣非后):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7481780052185059:17.47:202:3 +前年同期扣非加权平均净资产收益率:前年同期加权平均净资产收益率(扣非后):归属于公司普通股股东的净利润加权平均净资产收益率:0.7292217016220093:15.47:202:3 +前年同期扣非加权平均净资产收益率:2021年加权平均净资产收益率(扣非后):归属于公司普通股股东的净利润加权平均净资产收益率:0.7483988404273987:15.47:202:3 +前年同期扣非加权平均净资产收益率:2021年加权平均净资产收益率(扣非后):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7456885576248169:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年全年加权平均净资产收益率(扣非后):归属于公司普通股股东的净利润加权平均净资产收益率:0.7418086528778076:15.47:202:3 +前年同期扣非加权平均净资产收益率:2021年全年加权平均净资产收益率(扣非后):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7339495420455933:17.47:202:3 +前年同期扣非加权平均净资产收益率:2021年金额加权平均净资产收益率(扣非后):归属于公司普通股股东的净利润加权平均净资产收益率:0.7176316380500793:15.47:202:3 +前年同期扣非加权平均净资产收益率:2021年金额加权平均净资产收益率(扣非后):扣除非经常性损益后归属于公司普通股股东的净利润加权平均净资产收益率:0.7140576839447021:17.47:202:3 +报告期末总资产:报告期末资产总计:合计期末余额:0.8034055829048157:1118004552.25:115:1 +报告期末总资产:报告期末资产总计:合计期末余额:0.8034055829048157:524158828.57:150:1 +报告期末总资产:本报告期末资产总计:合计期末余额:0.7535401582717896:1118004552.25:115:1 +报告期末总资产:本报告期末资产总计:合计期末余额:0.7535401582717896:524158828.57:150:1 +报告期末总资产:期末资产总计:合计期末数:0.8474330902099609:0.18:21:1 +报告期末总资产:期末资产总计:合计期末余额:0.8411272764205933:2379380.51:132:1 +报告期末总资产:期末数资产总计:合计期末数:0.8346810936927795:0.18:21:1 +报告期末总资产:期末数资产总计:固定资产上期期末数:0.8318822979927063:23771.18:18:1 +报告期末总资产:期末金额资产总计:合计期末金额:0.8664836883544922:26440421.67:148:1 +报告期末总资产:期末金额资产总计:合计期末余额:0.8559979200363159:1118004552.25:115:1 +报告期末总资产:2023年年末资产总计:2024年期末金额:0.8003131151199341:693038.67:148:1 +报告期末总资产:2023年年末资产总计:2027年期末金额:0.787048876285553:19820645.33:148:1 +报告期末总资产:2023年12月31日资产总计:2023年1月1日余额合计:0.8335059881210327:151671.00:197:3 +报告期末总资产:2023年12月31日资产总计:2024年期末金额:0.795393168926239:693038.67:148:1 +报告期末总资产:报告期末资产总额:合计期末账面余额:0.7888314127922058:28690.97:19:1 +报告期末总资产:报告期末资产总额:合计期末余额:0.7879525423049927:1118004552.25:115:1 +报告期末总资产:本报告期末资产总额:合计期末余额:0.7586439847946167:1118004552.25:115:1 +报告期末总资产:本报告期末资产总额:合计期末余额:0.7586439847946167:524158828.57:150:1 +报告期末总资产:期末资产总额:固定资产期末余额:0.8425536751747131:616592585.20:138:1 +报告期末总资产:期末资产总额:合计期末余额:0.8218733668327332:1118004552.25:115:1 +报告期末总资产:期末数资产总额:固定资产上期期末数:0.8210349678993225:23771.18:18:1 +报告期末总资产:期末数资产总额:合计期末数:0.7981336712837219:0.18:21:1 +报告期末总资产:期末金额资产总额:固定资产期末余额:0.8442015647888184:616592585.20:138:1 +报告期末总资产:期末金额资产总额:合计期末金额:0.8340120315551758:26440421.67:148:1 +报告期末总资产:2023年年末资产总额:2024年期末金额:0.8052576184272766:693038.67:148:1 +报告期末总资产:2023年年末资产总额:2027年期末金额:0.8009334802627563:19820645.33:148:1 +报告期末总资产:2023年12月31日资产总额:2023年1月1日余额合计:0.8290035128593445:151671.00:197:3 +报告期末总资产:2023年12月31日资产总额:2027年期末金额:0.7963895797729492:19820645.33:148:1 +报告期末总资产:报告期末公司总资产:合计期末账面余额:0.692314088344574:28690.97:19:1 +报告期末总资产:报告期末公司总资产:合计期末账面价值:0.6865399479866028:24129.81:19:1 +报告期末总资产:本报告期末公司总资产:合计期末账面余额:0.6664191484451294:28690.97:19:1 +报告期末总资产:本报告期末公司总资产:合计期末账面价值:0.6640529036521912:24129.81:19:1 +报告期末总资产:期末公司总资产:股份总数期末余额:0.75873863697052:337335000:156:1 +报告期末总资产:期末公司总资产:合计期末余额:0.7477667331695557:1118004552.25:115:1 +报告期末总资产:期末数公司总资产:股份总数期末余额:0.759932279586792:337335000:156:1 +报告期末总资产:期末数公司总资产:合计期末数:0.7463799118995667:0.18:21:1 +报告期末总资产:期末金额公司总资产:合计期末账面价值:0.7714545130729675:24129.81:19:1 +报告期末总资产:期末金额公司总资产:股份总数期末余额:0.7712440490722656:337335000:156:1 +报告期末总资产:2023年年末公司总资产:2027年期末金额:0.7030313611030579:19820645.33:148:1 +报告期末总资产:2023年年末公司总资产:2024年期末金额:0.7017164826393127:693038.67:148:1 +报告期末总资产:2023年12月31日公司总资产:一、营业收入2023年度:0.7267325520515442:1529440280.25:82:1 +报告期末总资产:2023年12月31日公司总资产:一、营业收入2022年度:0.7181971073150635:1316036204.14:82:1 +年初至报告期末总资产:年初至报告期末资产总计:固定资产上期期末数:0.7152193188667297:23771.18:18:1 +年初至报告期末总资产:年初至报告期末资产总计:合计期初账面余额:0.7106441855430603:633810.00:197:2 +年初至报告期末总资产:年初至本报告期末资产总计:固定资产本期期末数:0.6737830638885498:35036.52:18:1 +年初至报告期末总资产:年初至本报告期末资产总计:其他流动资产本期期末数:0.6720746159553528:5079.93:18:1 +年初至报告期末总资产:年初至期末资产总计:固定资产上期期末数:0.782211184501648:23771.18:18:1 +年初至报告期末总资产:年初至期末资产总计:合计期末数:0.7821078300476074:0.18:21:1 +年初至报告期末总资产:年初至期末数资产总计:固定资产上期期末数:0.7946824431419373:23771.18:18:1 +年初至报告期末总资产:年初至期末数资产总计:合计期初数:0.7659837007522583:0:21:1 +年初至报告期末总资产:年初至期末金额资产总计:合计期初金额:0.806937575340271:26834365.63:148:1 +年初至报告期末总资产:年初至期末金额资产总计:合计期初余额:0.7998080849647522:3939395.02:155:1 +年初至报告期末总资产:年初至2023年年末资产总计:2024年期末金额:0.7262924313545227:693038.67:148:1 +年初至报告期末总资产:年初至2023年年末资产总计:2025年期末金额:0.7156385779380798:1739524.15:148:1 +年初至报告期末总资产:年初至2023年12月31日资产总计:2023年1月1日余额合计:0.7888622879981995:151671.00:197:3 +年初至报告期末总资产:年初至2023年12月31日资产总计:2024年期末金额:0.7471668124198914:693038.67:148:1 +年初至报告期末总资产:上年年末资产总计:固定资产上期期末数:0.7458370327949524:23771.18:18:1 +年初至报告期末总资产:上年年末资产总计:合计期末数:0.737171471118927:0.18:21:1 +年初至报告期末总资产:上年末资产总计:合计期末余额:0.7571682929992676:1118004552.25:115:1 +年初至报告期末总资产:上年末资产总计:合计期末余额:0.7571682929992676:524158828.57:150:1 +年初至报告期末总资产:2022年年末资产总计:2024年期末金额:0.7923240661621094:693038.67:148:1 +年初至报告期末总资产:2022年年末资产总计:2026年期末金额:0.780467689037323:2192390.77:148:1 +年初至报告期末总资产:2022年12月31日资产总计:2023年1月1日余额合计:0.7841861844062805:151671.00:197:3 +年初至报告期末总资产:2022年12月31日资产总计:2024年期末金额:0.7802205085754395:693038.67:148:1 +年初至报告期末总资产:年初至报告期末资产总额:固定资产上期期末数占总资产的比例:0.7043234705924988:14.92:18:1 +年初至报告期末总资产:年初至报告期末资产总额:合计期初账面余额:0.7034945487976074:633810.00:197:2 +年初至报告期末总资产:年初至本报告期末资产总额:固定资产本期期末数占总资产的比例:0.6788447499275208:12.38:18:1 +年初至报告期末总资产:年初至本报告期末资产总额:固定资产本期期末数:0.6663997173309326:35036.52:18:1 +年初至报告期末总资产:年初至期末资产总额:固定资产上期期末数:0.77234947681427:23771.18:18:1 +年初至报告期末总资产:年初至期末资产总额:固定资产期末余额:0.7705315947532654:616592585.20:138:1 +年初至报告期末总资产:年初至期末数资产总额:固定资产上期期末数:0.7894395589828491:23771.18:18:1 +年初至报告期末总资产:年初至期末数资产总额:固定资产上期期末数占总资产的比例:0.7679818272590637:14.92:18:1 +年初至报告期末总资产:年初至期末金额资产总额:合计期末余额账面余额金额:0.7813317775726318:544907094.21:192:1 +年初至报告期末总资产:年初至期末金额资产总额:固定资产期末余额:0.779523491859436:616592585.20:138:1 +年初至报告期末总资产:年初至2023年年末资产总额:2024年期末金额:0.727732241153717:693038.67:148:1 +年初至报告期末总资产:年初至2023年年末资产总额:2025年期末金额:0.722752571105957:1739524.15:148:1 +年初至报告期末总资产:年初至2023年12月31日资产总额:2023年1月1日余额合计:0.7920926213264465:151671.00:197:3 +年初至报告期末总资产:年初至2023年12月31日资产总额:2024年期末金额:0.7492849230766296:693038.67:148:1 +年初至报告期末总资产:上年年末资产总额:固定资产上期期末数:0.7422801852226257:23771.18:18:1 +年初至报告期末总资产:上年年末资产总额:固定资产期末余额:0.7319319844245911:616592585.20:138:1 +年初至报告期末总资产:上年末资产总额:合计期末余额:0.7540695667266846:1118004552.25:115:1 +年初至报告期末总资产:上年末资产总额:合计期末余额:0.7540695667266846:524158828.57:150:1 +年初至报告期末总资产:2022年年末资产总额:2024年期末金额:0.8026893734931946:693038.67:148:1 +年初至报告期末总资产:2022年年末资产总额:2026年期末金额:0.792368471622467:2192390.77:148:1 +年初至报告期末总资产:2022年12月31日资产总额:2024年期末金额:0.7890821099281311:693038.67:148:1 +年初至报告期末总资产:2022年12月31日资产总额:2023年1月1日余额合计:0.7869315147399902:151671.00:197:3 +年初至报告期末总资产:年初至报告期末公司总资产:一、上年年末余额253000000.00274601631.7971671.1974200516.65211940397.172023年度归属于母公司所有者权益小计:0.6485457420349121:813814216.80:86:1 +年初至报告期末总资产:年初至报告期末公司总资产:固定资产本期期末数占总资产的比例:0.6406510472297668:12.38:18:1 +年初至报告期末总资产:年初至本报告期末公司总资产:固定资产本期期末数占总资产的比例:0.6070743203163147:12.38:18:1 +年初至报告期末总资产:年初至本报告期末公司总资产:合计期末账面余额:0.5954676866531372:28690.97:19:1 +年初至报告期末总资产:年初至期末公司总资产:股份总数期末余额:0.7074944972991943:337335000:156:1 +年初至报告期末总资产:年初至期末公司总资产:合计期末账面余额:0.6901988983154297:28690.97:19:1 +年初至报告期末总资产:年初至期末数公司总资产:固定资产上期期末数占总资产的比例:0.714147686958313:14.92:18:1 +年初至报告期末总资产:年初至期末数公司总资产:固定资产本期期末数占总资产的比例:0.6979820132255554:12.38:18:1 +年初至报告期末总资产:年初至期末金额公司总资产:合计期末余额账面余额金额:0.7243325114250183:544907094.21:192:1 +年初至报告期末总资产:年初至期末金额公司总资产:股份总数期末余额:0.7221023440361023:337335000:156:1 +年初至报告期末总资产:年初至2023年年末公司总资产:一、上年年末余额253000000.00274601631.7971671.1974200516.65211940397.172023年度归属于母公司所有者权益小计:0.6489337682723999:813814216.80:86:1 +年初至报告期末总资产:年初至2023年年末公司总资产:一、上年年末余额253000000.00274601631.7971671.1974200516.65211940397.172023年度所有者权益合计:0.647895872592926:818205888.04:86:1 +年初至报告期末总资产:年初至2023年12月31日公司总资产:一、营业收入2023年度:0.6736809611320496:1529440280.25:82:1 +年初至报告期末总资产:年初至2023年12月31日公司总资产:一、营业收入2022年度:0.668239414691925:1316036204.14:82:1 +年初至报告期末总资产:上年年末公司总资产:一、上年年末余额253000000.00274601631.7971671.1974200516.65211940397.172023年度所有者权益合计:0.7084210515022278:818205888.04:86:1 +年初至报告期末总资产:上年年末公司总资产:一、上年年末余额253000000.00274601631.7971671.1974200516.65211940397.172023年度归属于母公司所有者权益小计:0.7048448920249939:813814216.80:86:1 +年初至报告期末总资产:上年末公司总资产:一、上年年末余额253000000.00274601631.7971671.1974200516.65211940397.172023年度所有者权益合计:0.6930123567581177:818205888.04:86:1 +年初至报告期末总资产:上年末公司总资产:股份总数期末余额:0.6883984208106995:337335000:156:1 +年初至报告期末总资产:2022年年末公司总资产:2026年期末金额:0.7001519799232483:2192390.77:148:1 +年初至报告期末总资产:2022年年末公司总资产:2024年期末金额:0.6971119046211243:693038.67:148:1 +年初至报告期末总资产:2022年12月31日公司总资产:一、营业收入2022年度:0.7281304597854614:1316036204.14:82:1 +年初至报告期末总资产:2022年12月31日公司总资产:一、营业收入2023年度:0.698906421661377:1529440280.25:82:1 +上年年末总资产:上年年末资产总计:固定资产上期期末数:0.7458370327949524:23771.18:18:1 +上年年末总资产:上年年末资产总计:合计期末数:0.737171471118927:0.18:21:1 +上年年末总资产:上年年末资产总额:固定资产上期期末数:0.7422801852226257:23771.18:18:1 +上年年末总资产:上年年末资产总额:固定资产期末余额:0.7319319844245911:616592585.20:138:1 +上年年末总资产:上年年末公司总资产:一、上年年末余额253000000.00274601631.7971671.1974200516.65211940397.172023年度所有者权益合计:0.7084210515022278:818205888.04:86:1 +上年年末总资产:上年年末公司总资产:一、上年年末余额253000000.00274601631.7971671.1974200516.65211940397.172023年度归属于母公司所有者权益小计:0.7048448920249939:813814216.80:86:1 +报告期初总资产:报告期初资产总计:合计期初余额:0.757774829864502:122250.00:118:2 +报告期初总资产:报告期初资产总计:合计期初余额:0.757774829864502:218333706.63:115:1 +报告期初总资产:期初资产总计:合计期初数:0.816834032535553:0:21:1 +报告期初总资产:期初资产总计:固定资产期初余额:0.8074356913566589:482499313.46:138:1 +报告期初总资产:期初数资产总计:合计期初数:0.8051103949546814:0:21:1 +报告期初总资产:期初数资产总计:固定资产上期期末数:0.7712562680244446:23771.18:18:1 +报告期初总资产:期初金额资产总计:合计期初金额:0.8508333563804626:26834365.63:148:1 +报告期初总资产:期初金额资产总计:合计期初余额:0.8289123773574829:122250.00:118:2 +报告期初总资产:2023年1月1日资产总计:2023年1月1日余额合计:0.8853997588157654:151671.00:197:3 +报告期初总资产:2023年1月1日资产总计:2024年期末金额:0.7541033625602722:693038.67:148:1 +报告期初总资产:报告期初资产总额:合计上期发生额收入:0.7550577521324158:1316036204.14:200:2 +报告期初总资产:报告期初资产总额:固定资产期末余额:0.7423659563064575:616592585.20:138:1 +报告期初总资产:期初资产总额:固定资产期初余额:0.8169195652008057:482499313.46:138:1 +报告期初总资产:期初资产总额:固定资产期末余额:0.7961166501045227:616592585.20:138:1 +报告期初总资产:期初数资产总额:固定资产期初余额:0.7721706628799438:482499313.46:138:1 +报告期初总资产:期初数资产总额:固定资产上期期末数:0.7713271379470825:23771.18:18:1 +报告期初总资产:期初金额资产总额:固定资产期初余额:0.8180246949195862:482499313.46:138:1 +报告期初总资产:期初金额资产总额:合计期初金额:0.8068811893463135:26834365.63:148:1 +报告期初总资产:2023年1月1日资产总额:2023年1月1日余额合计:0.8785151839256287:151671.00:197:3 +报告期初总资产:2023年1月1日资产总额:2027年期末金额:0.7754600048065186:19820645.33:148:1 +报告期初总资产:报告期初公司总资产:固定资产本期期末数占总资产的比例:0.6601637005805969:12.38:18:1 +报告期初总资产:报告期初公司总资产:固定资产上期期末数占总资产的比例:0.6502805948257446:14.92:18:1 +报告期初总资产:期初公司总资产:固定资产期初余额:0.717126727104187:482499313.46:138:1 +报告期初总资产:期初公司总资产:固定资产期末余额:0.7092400789260864:616592585.20:138:1 +报告期初总资产:期初数公司总资产:固定资产上期期末数占总资产的比例:0.7208409309387207:14.92:18:1 +报告期初总资产:期初数公司总资产:股份总数期初余额:0.7152382135391235:253000000:156:1 +报告期初总资产:期初金额公司总资产:股份总数期初余额:0.7262371182441711:253000000:156:1 +报告期初总资产:期初金额公司总资产:固定资产期初余额:0.7121995091438293:482499313.46:138:1 +报告期初总资产:2023年1月1日公司总资产:一、营业收入2023年度:0.7498003244400024:1529440280.25:82:1 +报告期初总资产:2023年1月1日公司总资产:一、营业收入2022年度:0.7359612584114075:1316036204.14:82:1 +报告期末应收账款:报告期末应收账款合计:合计期末余额应收账款:0.8969576358795166:571845719.20:121:2 +报告期末应收账款:报告期末应收账款合计:合计期末余额应收账款:0.8964501619338989:544907094.21:193:1 +报告期末应收账款:本报告期末应收账款合计:合计期末余额应收账款:0.8996017575263977:571845719.20:121:2 +报告期末应收账款:本报告期末应收账款合计:合计期末余额应收账款:0.8994593620300293:544907094.21:193:1 +报告期末应收账款:期末应收账款合计:合计期末余额应收账款:0.9043871760368347:571845719.20:121:2 +报告期末应收账款:期末应收账款合计:合计期末余额应收账款:0.9041203856468201:544907094.21:193:1 +报告期末应收账款:期末数应收账款合计:合计期末余额应收账款:0.8979073762893677:571845719.20:121:2 +报告期末应收账款:期末数应收账款合计:合计期末余额应收账款:0.8975533246994019:544907094.21:193:1 +报告期末应收账款:期末金额应收账款合计:合计期末余额应收账款:0.9265770316123962:571845719.20:121:2 +报告期末应收账款:期末金额应收账款合计:合计期末余额应收账款:0.9262375235557556:544907094.21:193:1 +报告期末应收账款:2023年年末应收账款合计:合计期末余额应收账款:0.7952982783317566:571845719.20:121:2 +报告期末应收账款:2023年年末应收账款合计:合计期末余额应收账款:0.7950059175491333:544907094.21:193:1 +报告期末应收账款:2023年12月31日应收账款合计:合计期末余额应收账款:0.7864966988563538:571845719.20:121:2 +报告期末应收账款:2023年12月31日应收账款合计:合计期末余额应收账款:0.7860802412033081:544907094.21:193:1 +报告期末应收账款:报告期末应收账款余额:合计期末余额应收账款:0.8717659711837769:571845719.20:121:2 +报告期末应收账款:报告期末应收账款余额:合计期末余额应收账款:0.8709506392478943:544907094.21:193:1 +报告期末应收账款:本报告期末应收账款余额:合计期末余额应收账款:0.8827681541442871:571845719.20:121:2 +报告期末应收账款:本报告期末应收账款余额:合计期末余额应收账款:0.8822731375694275:544907094.21:193:1 +报告期末应收账款:期末应收账款余额:1-2年期末余额应收账款:0.894814133644104:5251065.35:121:2 +报告期末应收账款:期末应收账款余额:1-2年期末余额应收账款:0.8944545984268188:21980836.86:193:1 +报告期末应收账款:期末数应收账款余额:合计期末余额应收账款:0.8806336522102356:571845719.20:121:2 +报告期末应收账款:期末数应收账款余额:合计期末余额应收账款:0.8799927234649658:544907094.21:193:1 +报告期末应收账款:期末金额应收账款余额:合计期末余额应收账款:0.8985991477966309:571845719.20:121:2 +报告期末应收账款:期末金额应收账款余额:合计期末余额应收账款:0.8979535102844238:544907094.21:193:1 +报告期末应收账款:2023年年末应收账款余额:2-3年期末余额应收账款:0.7852213382720947:104153.67:121:2 +报告期末应收账款:2023年年末应收账款余额:2-3年期末余额应收账款:0.7852149605751038:104153.67:193:1 +报告期末应收账款:2023年12月31日应收账款余额:合计期末余额应收账款:0.7599267959594727:571845719.20:121:2 +报告期末应收账款:2023年12月31日应收账款余额:合计期末余额应收账款:0.7592548131942749:544907094.21:193:1 +年初至报告期末应收账款:年初至报告期末应收账款合计:合计期末余额应收账款:0.8253859281539917:571845719.20:121:2 +年初至报告期末应收账款:年初至报告期末应收账款合计:合计期末余额应收账款:0.8249209523200989:544907094.21:193:1 +年初至报告期末应收账款:年初至本报告期末应收账款合计:合计期末余额应收账款:0.8199940919876099:571845719.20:121:2 +年初至报告期末应收账款:年初至本报告期末应收账款合计:合计期末余额应收账款:0.8197895288467407:544907094.21:193:1 +年初至报告期末应收账款:年初至期末应收账款合计:1-2年期末余额应收账款:0.8752605319023132:5251065.35:121:2 +年初至报告期末应收账款:年初至期末应收账款合计:1-2年期末余额应收账款:0.8751815557479858:21980836.86:193:1 +年初至报告期末应收账款:年初至期末数应收账款合计:合计期末余额应收账款:0.8517359495162964:571845719.20:121:2 +年初至报告期末应收账款:年初至期末数应收账款合计:合计期末余额应收账款:0.8513017892837524:544907094.21:193:1 +年初至报告期末应收账款:年初至期末金额应收账款合计:合计期末余额应收账款:0.8789396286010742:571845719.20:121:2 +年初至报告期末应收账款:年初至期末金额应收账款合计:合计期末余额应收账款:0.8784923553466797:544907094.21:193:1 +年初至报告期末应收账款:年初至2023年年末应收账款合计:1-2年期末余额应收账款:0.7874090671539307:5251065.35:121:2 +年初至报告期末应收账款:年初至2023年年末应收账款合计:1-2年期末余额应收账款:0.7873268723487854:21980836.86:193:1 +年初至报告期末应收账款:年初至2023年12月31日应收账款合计:合计期末余额应收账款:0.7699342966079712:571845719.20:121:2 +年初至报告期末应收账款:年初至2023年12月31日应收账款合计:合计期末余额应收账款:0.769444465637207:544907094.21:193:1 +年初至报告期末应收账款:上年年末应收账款合计:1-2年期末余额应收账款:0.8422863483428955:5251065.35:121:2 +年初至报告期末应收账款:上年年末应收账款合计:1-2年期末余额应收账款:0.8421115279197693:21980836.86:193:1 +年初至报告期末应收账款:上年末应收账款合计:1-2年期末余额应收账款:0.8443710207939148:5251065.35:121:2 +年初至报告期末应收账款:上年末应收账款合计:1-2年期末余额应收账款:0.8441755771636963:21980836.86:193:1 +年初至报告期末应收账款:2022年年末应收账款合计:合计期末余额应收账款:0.815313458442688:571845719.20:121:2 +年初至报告期末应收账款:2022年年末应收账款合计:合计期末余额应收账款:0.8150294423103333:544907094.21:193:1 +年初至报告期末应收账款:2022年12月31日应收账款合计:合计期末余额应收账款:0.8126327991485596:571845719.20:121:2 +年初至报告期末应收账款:2022年12月31日应收账款合计:合计期末余额应收账款:0.8122707605361938:544907094.21:193:1 +年初至报告期末应收账款:年初至报告期末应收账款余额:合计期末余额应收账款:0.8144029378890991:571845719.20:121:2 +年初至报告期末应收账款:年初至报告期末应收账款余额:合计期末余额应收账款:0.8136770725250244:544907094.21:193:1 +年初至报告期末应收账款:年初至本报告期末应收账款余额:合计期末余额应收账款:0.8149298429489136:571845719.20:121:2 +年初至报告期末应收账款:年初至本报告期末应收账款余额:合计期末余额应收账款:0.8143709897994995:544907094.21:193:1 +年初至报告期末应收账款:年初至期末应收账款余额:1-2年期末余额应收账款:0.8935086131095886:5251065.35:121:2 +年初至报告期末应收账款:年初至期末应收账款余额:1-2年期末余额应收账款:0.893358588218689:21980836.86:193:1 +年初至报告期末应收账款:年初至期末数应收账款余额:1-2年期末余额应收账款:0.8677477836608887:5251065.35:121:2 +年初至报告期末应收账款:年初至期末数应收账款余额:1-2年期末余额应收账款:0.8676351308822632:21980836.86:193:1 +年初至报告期末应收账款:年初至期末金额应收账款余额:1-2年期末余额应收账款:0.8640316724777222:5251065.35:121:2 +年初至报告期末应收账款:年初至期末金额应收账款余额:1-2年期末余额应收账款:0.8639309406280518:21980836.86:193:1 +年初至报告期末应收账款:年初至2023年年末应收账款余额:1-2年期末余额应收账款:0.7970596551895142:5251065.35:121:2 +年初至报告期末应收账款:年初至2023年年末应收账款余额:1-2年期末余额应收账款:0.796920895576477:21980836.86:193:1 +年初至报告期末应收账款:年初至2023年12月31日应收账款余额:1-2年期末余额应收账款:0.768119752407074:5251065.35:121:2 +年初至报告期末应收账款:年初至2023年12月31日应收账款余额:1-2年期末余额应收账款:0.7680410742759705:21980836.86:193:1 +年初至报告期末应收账款:上年年末应收账款余额:1-2年期末余额应收账款:0.8562723994255066:5251065.35:121:2 +年初至报告期末应收账款:上年年末应收账款余额:1-2年期末余额应收账款:0.8559784889221191:21980836.86:193:1 +年初至报告期末应收账款:上年末应收账款余额:1-2年期末余额应收账款:0.864892840385437:5251065.35:121:2 +年初至报告期末应收账款:上年末应收账款余额:1-2年期末余额应收账款:0.8645954132080078:21980836.86:193:1 +年初至报告期末应收账款:2022年年末应收账款余额:合计期末余额应收账款:0.7913275957107544:571845719.20:121:2 +年初至报告期末应收账款:2022年年末应收账款余额:合计期末余额应收账款:0.7907556295394897:544907094.21:193:1 +年初至报告期末应收账款:2022年12月31日应收账款余额:合计期末余额应收账款:0.7852776050567627:571845719.20:121:2 +年初至报告期末应收账款:2022年12月31日应收账款余额:合计期末余额应收账款:0.7846431732177734:544907094.21:193:1 +上年年末应收账款:上年年末应收账款合计:1-2年期末余额应收账款:0.8422863483428955:5251065.35:121:2 +上年年末应收账款:上年年末应收账款合计:1-2年期末余额应收账款:0.8421115279197693:21980836.86:193:1 +上年年末应收账款:上年年末应收账款余额:1-2年期末余额应收账款:0.8562723994255066:5251065.35:121:2 +上年年末应收账款:上年年末应收账款余额:1-2年期末余额应收账款:0.8559784889221191:21980836.86:193:1 +报告期初应收账款:报告期初应收账款合计:合计期末余额应收账款:0.84457927942276:571845719.20:121:2 +报告期初应收账款:报告期初应收账款合计:合计期末余额应收账款:0.8440734148025513:544907094.21:193:1 +报告期初应收账款:期初应收账款合计:1-2年期末余额应收账款:0.8622738122940063:5251065.35:121:2 +报告期初应收账款:期初应收账款合计:1-2年期末余额应收账款:0.8620949983596802:21980836.86:193:1 +报告期初应收账款:期初数应收账款合计:1-2年期末余额应收账款:0.8323848247528076:5251065.35:121:2 +报告期初应收账款:期初数应收账款合计:1-2年期末余额应收账款:0.8323042392730713:21980836.86:193:1 +报告期初应收账款:期初金额应收账款合计:合计期末余额应收账款:0.8562630414962769:571845719.20:121:2 +报告期初应收账款:期初金额应收账款合计:合计期末余额应收账款:0.855879545211792:544907094.21:193:1 +报告期初应收账款:2023年1月1日应收账款合计:2023年1月1日余额合计:0.8157468438148499:151671.00:197:3 +报告期初应收账款:2023年1月1日应收账款合计:1年以内期末余额应收账款:0.7626504302024841:522748029.23:193:1 +报告期初应收账款:报告期初应收账款余额:1-2年期末余额应收账款:0.8217716217041016:5251065.35:121:2 +报告期初应收账款:报告期初应收账款余额:1-2年期末余额应收账款:0.8214777708053589:21980836.86:193:1 +报告期初应收账款:期初应收账款余额:1-2年期末余额应收账款:0.8802130222320557:5251065.35:121:2 +报告期初应收账款:期初应收账款余额:1-2年期末余额应收账款:0.8799636363983154:21980836.86:193:1 +报告期初应收账款:期初数应收账款余额:1-2年期末余额应收账款:0.8532726168632507:5251065.35:121:2 +报告期初应收账款:期初数应收账款余额:1-2年期末余额应收账款:0.8531012535095215:21980836.86:193:1 +报告期初应收账款:期初金额应收账款余额:1-2年期末余额应收账款:0.8555550575256348:5251065.35:121:2 +报告期初应收账款:期初金额应收账款余额:1-2年期末余额应收账款:0.8554052114486694:21980836.86:193:1 +报告期初应收账款:2023年1月1日应收账款余额:2023年1月1日余额合计:0.8124623894691467:151671.00:197:3 +报告期初应收账款:2023年1月1日应收账款余额:1年以内期末余额应收账款:0.762741208076477:522748029.23:193:1 +报告期末存货:报告期末存货合计:合计期末账面余额:0.7419212460517883:28690.97:19:1 +报告期末存货:报告期末存货合计:合计期末余额账面余额:0.7315249443054199:287182.00:121:1 +报告期末存货:本报告期末存货合计:合计期末账面余额:0.7173601388931274:28690.97:19:1 +报告期末存货:本报告期末存货合计:其中:库存现金期末余额:0.7033385634422302:23443.16:169:1 +报告期末存货:期末存货合计:合计期末余额:0.7826568484306335:2379380.51:132:1 +报告期末存货:期末存货合计:合计期末余额:0.7826568484306335:6424309.84:155:2 +报告期末存货:期末数存货合计:合计期末数:0.7757528424263:0.18:21:1 +报告期末存货:期末数存货合计:库存现金期末余额:0.7597318887710571:23443.16:115:1 +报告期末存货:期末金额存货合计:合计期末余额账面余额金额:0.8352677822113037:544907094.21:192:1 +报告期末存货:期末金额存货合计:合计期末余额账面余额:0.8260056376457214:287182.00:121:1 +报告期末存货:2023年年末存货合计:2024年期末金额:0.67825847864151:693038.67:148:1 +报告期末存货:2023年年末存货合计:2027年期末金额:0.6689973473548889:19820645.33:148:1 +报告期末存货:2023年12月31日存货合计:2023年1月1日余额合计:0.7745243906974792:151671.00:197:3 +报告期末存货:2023年12月31日存货合计:2024年期末金额:0.7116486430168152:693038.67:148:1 +报告期末存货:报告期末存货余额:库存现金期末余额:0.7283424139022827:23443.16:115:1 +报告期末存货:报告期末存货余额:合计期末账面余额:0.7239798307418823:28690.97:19:1 +报告期末存货:本报告期末存货余额:库存现金期末余额:0.7288166880607605:23443.16:115:1 +报告期末存货:本报告期末存货余额:合计期末账面余额:0.7195266485214233:28690.97:19:1 +报告期末存货:期末存货余额:库存现金期末余额:0.8115779161453247:23443.16:115:1 +报告期末存货:期末存货余额:固定资产期末余额:0.7676447033882141:616592585.20:138:1 +报告期末存货:期末数存货余额:库存现金期末余额:0.7969129681587219:23443.16:115:1 +报告期末存货:期末数存货余额:库存现金期初余额:0.7510433197021484:43244.16:115:1 +报告期末存货:期末金额存货余额:库存现金期末余额:0.8113296627998352:23443.16:115:1 +报告期末存货:期末金额存货余额:合计期末余额账面余额金额:0.7904300689697266:544907094.21:192:1 +报告期末存货:2023年年末存货余额:2023年1月1日余额合计:0.6972479224205017:151671.00:197:3 +报告期末存货:2023年年末存货余额:库存现金期末余额:0.6922735571861267:23443.16:115:1 +报告期末存货:2023年12月31日存货余额:2023年1月1日余额合计:0.7721742987632751:151671.00:197:3 +报告期末存货:2023年12月31日存货余额:2027年期末金额:0.6865925192832947:19820645.33:148:1 +年初至报告期末存货:年初至报告期末存货合计:合计期初账面余额:0.6492487192153931:633810.00:197:2 +年初至报告期末存货:年初至报告期末存货合计:库存现金期初余额:0.6404813528060913:43244.16:115:1 +年初至报告期末存货:年初至本报告期末存货合计:库存现金期初余额:0.6155139207839966:43244.16:115:1 +年初至报告期末存货:年初至本报告期末存货合计:库存现金期末余额:0.6126390695571899:23443.16:115:1 +年初至报告期末存货:年初至期末存货合计:其中:库存现金期初余额:0.7111393809318542:43244.16:169:1 +年初至报告期末存货:年初至期末存货合计:合计期初账面余额:0.7107130885124207:633810.00:197:2 +年初至报告期末存货:年初至期末数存货合计:库存现金期初余额:0.7096043825149536:43244.16:115:1 +年初至报告期末存货:年初至期末数存货合计:合计期初账面余额:0.7076025009155273:633810.00:197:2 +年初至报告期末存货:年初至期末金额存货合计:合计期初账面余额:0.7745214104652405:633810.00:197:2 +年初至报告期末存货:年初至期末金额存货合计:合计期初余额:0.7616404891014099:3939395.02:155:1 +年初至报告期末存货:年初至2023年年末存货合计:库存现金期初余额:0.6323002576828003:43244.16:115:1 +年初至报告期末存货:年初至2023年年末存货合计:库存现金期末余额:0.6282182335853577:23443.16:115:1 +年初至报告期末存货:年初至2023年12月31日存货合计:2023年1月1日余额合计:0.7052847743034363:151671.00:197:3 +年初至报告期末存货:年初至2023年12月31日存货合计:2024年期末金额:0.6452690958976746:693038.67:148:1 +年初至报告期末存货:上年年末存货合计:库存现金期末余额:0.6363542079925537:23443.16:115:1 +年初至报告期末存货:上年年末存货合计:固定资产上期期末数:0.6189294457435608:23771.18:18:1 +年初至报告期末存货:上年末存货合计:库存现金期末余额:0.6467581987380981:23443.16:115:1 +年初至报告期末存货:上年末存货合计:合计期末余额:0.6423467993736267:6424309.84:155:2 +年初至报告期末存货:2022年年末存货合计:2024年期末金额:0.6816664934158325:693038.67:148:1 +年初至报告期末存货:2022年年末存货合计:库存现金期末余额:0.6731631755828857:23443.16:115:1 +年初至报告期末存货:2022年12月31日存货合计:2023年1月1日余额合计:0.7332677245140076:151671.00:197:3 +年初至报告期末存货:2022年12月31日存货合计:2024年期末金额:0.6994050145149231:693038.67:148:1 +年初至报告期末存货:年初至报告期末存货余额:库存现金期初余额:0.6881812810897827:43244.16:115:1 +年初至报告期末存货:年初至报告期末存货余额:库存现金期末余额:0.6637402772903442:23443.16:115:1 +年初至报告期末存货:年初至本报告期末存货余额:库存现金期初余额:0.6693066954612732:43244.16:115:1 +年初至报告期末存货:年初至本报告期末存货余额:库存现金期末余额:0.6500466465950012:23443.16:115:1 +年初至报告期末存货:年初至期末存货余额:库存现金期初余额:0.7547615766525269:43244.16:115:1 +年初至报告期末存货:年初至期末存货余额:库存现金期末余额:0.7375847101211548:23443.16:115:1 +年初至报告期末存货:年初至期末数存货余额:库存现金期初余额:0.7550692558288574:43244.16:115:1 +年初至报告期末存货:年初至期末数存货余额:库存现金期末余额:0.7306348085403442:23443.16:115:1 +年初至报告期末存货:年初至期末金额存货余额:库存现金期初余额:0.7654070258140564:43244.16:115:1 +年初至报告期末存货:年初至期末金额存货余额:库存现金期末余额:0.750079870223999:23443.16:115:1 +年初至报告期末存货:年初至2023年年末存货余额:库存现金期初余额:0.6834300756454468:43244.16:115:1 +年初至报告期末存货:年初至2023年年末存货余额:库存现金期末余额:0.6645985841751099:23443.16:115:1 +年初至报告期末存货:年初至2023年12月31日存货余额:2023年1月1日余额合计:0.7223694920539856:151671.00:197:3 +年初至报告期末存货:年初至2023年12月31日存货余额:库存现金期初余额:0.6826246976852417:43244.16:115:1 +年初至报告期末存货:上年年末存货余额:库存现金期末余额:0.6774221062660217:23443.16:115:1 +年初至报告期末存货:上年年末存货余额:库存现金期初余额:0.6501494646072388:43244.16:115:1 +年初至报告期末存货:上年末存货余额:库存现金期末余额:0.6904462575912476:23443.16:115:1 +年初至报告期末存货:上年末存货余额:库存现金期初余额:0.6579556465148926:43244.16:115:1 +年初至报告期末存货:2022年年末存货余额:库存现金期末余额:0.6996060609817505:23443.16:115:1 +年初至报告期末存货:2022年年末存货余额:2024年期末金额:0.684524416923523:693038.67:148:1 +年初至报告期末存货:2022年12月31日存货余额:2023年1月1日余额合计:0.7336928844451904:151671.00:197:3 +年初至报告期末存货:2022年12月31日存货余额:库存现金期末余额:0.6818348169326782:23443.16:115:1 +上年年末存货:上年年末存货合计:库存现金期末余额:0.6363542079925537:23443.16:115:1 +上年年末存货:上年年末存货合计:固定资产上期期末数:0.6189294457435608:23771.18:18:1 +上年年末存货:上年年末存货余额:库存现金期末余额:0.6774221062660217:23443.16:115:1 +上年年末存货:上年年末存货余额:库存现金期初余额:0.6501494646072388:43244.16:115:1 +报告期初存货:报告期初存货合计:合计期初账面余额:0.6952295303344727:633810.00:197:2 +报告期初存货:报告期初存货合计:其中:库存现金期初余额:0.6715774536132812:43244.16:169:1 +报告期初存货:期初存货合计:合计期初余额:0.7339316010475159:3939395.02:155:1 +报告期初存货:期初存货合计:合计期初余额:0.7339316010475159:441363806.63:150:1 +报告期初存货:期初数存货合计:合计期初数:0.7295008897781372:0:21:1 +报告期初存货:期初数存货合计:库存现金期初余额:0.7134703993797302:43244.16:115:1 +报告期初存货:期初金额存货合计:合计期初金额:0.799241840839386:26834365.63:148:1 +报告期初存货:期初金额存货合计:合计期初余额:0.788472592830658:3939395.02:155:1 +报告期初存货:2023年1月1日存货合计:2023年1月1日余额合计:0.8410807251930237:151671.00:197:3 +报告期初存货:2023年1月1日存货合计:2027年期末金额:0.6908064484596252:19820645.33:148:1 +报告期初存货:报告期初存货余额:库存现金期初余额:0.7213222980499268:43244.16:115:1 +报告期初存货:报告期初存货余额:其中:库存现金期初余额:0.7038559913635254:43244.16:169:1 +报告期初存货:期初存货余额:库存现金期初余额:0.7973576784133911:43244.16:115:1 +报告期初存货:期初存货余额:其中:库存现金期初余额:0.7665843963623047:43244.16:169:1 +报告期初存货:期初数存货余额:库存现金期初余额:0.7768783569335938:43244.16:115:1 +报告期初存货:期初数存货余额:其中:库存现金期初余额:0.7203554511070251:43244.16:169:1 +报告期初存货:期初金额存货余额:库存现金期初余额:0.7832807898521423:43244.16:115:1 +报告期初存货:期初金额存货余额:固定资产期初余额:0.7588052749633789:482499313.46:138:1 +报告期初存货:2023年1月1日存货余额:2023年1月1日余额合计:0.8501741290092468:151671.00:197:3 +报告期初存货:2023年1月1日存货余额:2027年期末金额:0.6882811188697815:19820645.33:148:1 +报告期末应付账款:报告期末应付账款合计:合计期末余额应收账款:0.8277978897094727:571845719.20:121:2 +报告期末应付账款:报告期末应付账款合计:合计期末余额应收账款:0.8272995948791504:544907094.21:193:1 +报告期末应付账款:本报告期末应付账款合计:合计期末余额应收账款:0.8102726936340332:571845719.20:121:2 +报告期末应付账款:本报告期末应付账款合计:合计期末余额应收账款:0.8100638389587402:544907094.21:193:1 +报告期末应付账款:期末应付账款合计:合计期末余额应收账款:0.8572800159454346:571845719.20:121:2 +报告期末应付账款:期末应付账款合计:合计期末余额应收账款:0.8569366931915283:544907094.21:193:1 +报告期末应付账款:期末数应付账款合计:合计期末余额应收账款:0.848789393901825:571845719.20:121:2 +报告期末应付账款:期末数应付账款合计:合计期末余额应收账款:0.8483284115791321:544907094.21:193:1 +报告期末应付账款:期末金额应付账款合计:合计期末余额应收账款:0.8604987859725952:571845719.20:121:2 +报告期末应付账款:期末金额应付账款合计:合计期末余额应收账款:0.8599948883056641:544907094.21:193:1 +报告期末应付账款:2023年年末应付账款合计:2024年期末金额:0.7897460460662842:693038.67:148:1 +报告期末应付账款:2023年年末应付账款合计:2027年期末金额:0.7852571606636047:19820645.33:148:1 +报告期末应付账款:2023年12月31日应付账款合计:2023年1月1日余额合计:0.7803754210472107:151671.00:197:3 +报告期末应付账款:2023年12月31日应付账款合计:2024年期末金额:0.7752457857131958:693038.67:148:1 +报告期末应付账款:报告期末应付账款余额:合计期末余额应收账款:0.8146867156028748:571845719.20:121:2 +报告期末应付账款:报告期末应付账款余额:合计期末余额应收账款:0.8138965368270874:544907094.21:193:1 +报告期末应付账款:本报告期末应付账款余额:合计期末余额应收账款:0.8085877299308777:571845719.20:121:2 +报告期末应付账款:本报告期末应付账款余额:合计期末余额应收账款:0.8081188201904297:544907094.21:193:1 +报告期末应付账款:期末应付账款余额:1-2年期末余额应收账款:0.8296377658843994:5251065.35:121:2 +报告期末应付账款:期末应付账款余额:合计期末余额应收账款:0.8294065594673157:571845719.20:121:2 +报告期末应付账款:期末数应付账款余额:合计期末余额应收账款:0.8291071057319641:571845719.20:121:2 +报告期末应付账款:期末数应付账款余额:合计期末余额应收账款:0.8283445239067078:544907094.21:193:1 +报告期末应付账款:期末金额应付账款余额:应付账款期末折算人民币余额:0.8408025503158569:7677713.04:170:1 +报告期末应付账款:期末金额应付账款余额:合计期末余额应收账款:0.8394204378128052:571845719.20:121:2 +报告期末应付账款:2023年年末应付账款余额:2024年期末金额:0.7679375410079956:693038.67:148:1 +报告期末应付账款:2023年年末应付账款余额:2027年期末金额:0.7642313241958618:19820645.33:148:1 +报告期末应付账款:2023年12月31日应付账款余额:2023年1月1日余额合计:0.7799515724182129:151671.00:197:3 +报告期末应付账款:2023年12月31日应付账款余额:2024年期末金额:0.7460556626319885:693038.67:148:1 +年初至报告期末应付账款:年初至报告期末应付账款合计:合计期末余额应收账款:0.7694746255874634:571845719.20:121:2 +年初至报告期末应付账款:年初至报告期末应付账款合计:合计期末余额应收账款:0.7688839435577393:544907094.21:193:1 +年初至报告期末应付账款:年初至本报告期末应付账款合计:合计期末余额应收账款:0.7337818741798401:571845719.20:121:2 +年初至报告期末应付账款:年初至本报告期末应付账款合计:合计期末余额应收账款:0.733391284942627:544907094.21:193:1 +年初至报告期末应付账款:年初至期末应付账款合计:合计期末余额应收账款:0.8108749389648438:571845719.20:121:2 +年初至报告期末应付账款:年初至期末应付账款合计:合计期末余额应收账款:0.8104475736618042:544907094.21:193:1 +年初至报告期末应付账款:年初至期末数应付账款合计:合计期初账面余额:0.8117387890815735:633810.00:197:2 +年初至报告期末应付账款:年初至期末数应付账款合计:合计期末余额应收账款:0.7999585866928101:571845719.20:121:2 +年初至报告期末应付账款:年初至期末金额应付账款合计:合计期初账面余额:0.8145468235015869:633810.00:197:2 +年初至报告期末应付账款:年初至期末金额应付账款合计:合计期末余额应收账款:0.8135396242141724:571845719.20:121:2 +年初至报告期末应付账款:年初至2023年年末应付账款合计:2024年期末金额:0.7496059536933899:693038.67:148:1 +年初至报告期末应付账款:年初至2023年年末应付账款合计:2027年期末金额:0.7403320670127869:19820645.33:148:1 +年初至报告期末应付账款:年初至2023年12月31日应付账款合计:2023年1月1日余额合计:0.7537567019462585:151671.00:197:3 +年初至报告期末应付账款:年初至2023年12月31日应付账款合计:2024年期末金额:0.7430242896080017:693038.67:148:1 +年初至报告期末应付账款:上年年末应付账款合计:1年以内期末余额应收账款:0.7952505350112915:522748029.23:193:1 +年初至报告期末应付账款:上年年末应付账款合计:1年以内期末余额应收账款:0.7952505350112915:566236260.65:121:2 +年初至报告期末应付账款:上年末应付账款合计:1年以内期末余额应收账款:0.7997880578041077:522748029.23:193:1 +年初至报告期末应付账款:上年末应付账款合计:1年以内期末余额应收账款:0.7997880578041077:566236260.65:121:2 +年初至报告期末应付账款:2022年年末应付账款合计:2024年期末金额:0.7891518473625183:693038.67:148:1 +年初至报告期末应付账款:2022年年末应付账款合计:2026年期末金额:0.7801999449729919:2192390.77:148:1 +年初至报告期末应付账款:2022年12月31日应付账款合计:2024年期末金额:0.7738385200500488:693038.67:148:1 +年初至报告期末应付账款:2022年12月31日应付账款合计:2027年期末金额:0.7659085988998413:19820645.33:148:1 +年初至报告期末应付账款:年初至报告期末应付账款余额:合计期末余额应收账款:0.7567396759986877:571845719.20:121:2 +年初至报告期末应付账款:年初至报告期末应付账款余额:合计期末余额应收账款:0.7558783292770386:544907094.21:193:1 +年初至报告期末应付账款:年初至本报告期末应付账款余额:合计期末余额应收账款:0.7365757822990417:571845719.20:121:2 +年初至报告期末应付账款:年初至本报告期末应付账款余额:合计期末余额应收账款:0.7358938455581665:544907094.21:193:1 +年初至报告期末应付账款:年初至期末应付账款余额:1-2年期末余额应收账款:0.8178719282150269:5251065.35:121:2 +年初至报告期末应付账款:年初至期末应付账款余额:1-2年期末余额应收账款:0.8178008794784546:21980836.86:193:1 +年初至报告期末应付账款:年初至期末数应付账款余额:1-2年期末余额应收账款:0.7965426445007324:21980836.86:193:1 +年初至报告期末应付账款:年初至期末数应付账款余额:1-2年期末余额应收账款:0.7965412735939026:5251065.35:121:2 +年初至报告期末应付账款:年初至期末金额应付账款余额:应付账款期末折算人民币余额:0.8022675514221191:7677713.04:170:1 +年初至报告期末应付账款:年初至期末金额应付账款余额:合计期末余额账面余额金额:0.7959034442901611:544907094.21:192:1 +年初至报告期末应付账款:年初至2023年年末应付账款余额:2024年期末金额:0.7305707335472107:693038.67:148:1 +年初至报告期末应付账款:年初至2023年年末应付账款余额:2-3年期末余额应收账款:0.7299743294715881:104153.67:193:1 +年初至报告期末应付账款:年初至2023年12月31日应付账款余额:2023年1月1日余额合计:0.7553520202636719:151671.00:197:3 +年初至报告期末应付账款:年初至2023年12月31日应付账款余额:2024年期末金额:0.7188413739204407:693038.67:148:1 +年初至报告期末应付账款:上年年末应付账款余额:1-2年期末余额应收账款:0.807725191116333:5251065.35:121:2 +年初至报告期末应付账款:上年年末应付账款余额:1-2年期末余额应收账款:0.8075681924819946:21980836.86:193:1 +年初至报告期末应付账款:上年末应付账款余额:1-2年期末余额应收账款:0.8150061368942261:5251065.35:121:2 +年初至报告期末应付账款:上年末应付账款余额:1-2年期末余额应收账款:0.8148264288902283:21980836.86:193:1 +年初至报告期末应付账款:2022年年末应付账款余额:2024年期末金额:0.7680654525756836:693038.67:148:1 +年初至报告期末应付账款:2022年年末应付账款余额:2027年期末金额:0.7573504447937012:19820645.33:148:1 +年初至报告期末应付账款:2022年12月31日应付账款余额:2024年期末金额:0.7519962191581726:693038.67:148:1 +年初至报告期末应付账款:2022年12月31日应付账款余额:2027年期末金额:0.7448115348815918:19820645.33:148:1 +上年年末应付账款:上年年末应付账款合计:1年以内期末余额应收账款:0.7952505350112915:522748029.23:193:1 +上年年末应付账款:上年年末应付账款合计:1年以内期末余额应收账款:0.7952505350112915:566236260.65:121:2 +上年年末应付账款:上年年末应付账款余额:1-2年期末余额应收账款:0.807725191116333:5251065.35:121:2 +上年年末应付账款:上年年末应付账款余额:1-2年期末余额应收账款:0.8075681924819946:21980836.86:193:1 +报告期初应付账款:报告期初应付账款合计:合计期末余额应收账款:0.7783821821212769:571845719.20:121:2 +报告期初应付账款:报告期初应付账款合计:合计期末余额应收账款:0.777859628200531:544907094.21:193:1 +报告期初应付账款:期初应付账款合计:1-2年期末余额应收账款:0.8026183843612671:5251065.35:121:2 +报告期初应付账款:期初应付账款合计:1-2年期末余额应收账款:0.8025661110877991:21980836.86:193:1 +报告期初应付账款:期初数应付账款合计:合计期初账面余额:0.8037099838256836:633810.00:197:2 +报告期初应付账款:期初数应付账款合计:合计期末余额应收账款:0.7810590267181396:571845719.20:121:2 +报告期初应付账款:期初金额应付账款合计:合计期初金额:0.8071702122688293:26834365.63:148:1 +报告期初应付账款:期初金额应付账款合计:合计期初账面余额:0.7994604110717773:633810.00:197:2 +报告期初应付账款:2023年1月1日应付账款合计:2023年1月1日余额合计:0.8344029784202576:151671.00:197:3 +报告期初应付账款:2023年1月1日应付账款合计:2027年期末金额:0.7837668061256409:19820645.33:148:1 +报告期初应付账款:报告期初应付账款余额:合计期末余额应收账款:0.7573323249816895:571845719.20:121:2 +报告期初应付账款:报告期初应付账款余额:应付账款期末折算人民币余额:0.756885290145874:7677713.04:170:1 +报告期初应付账款:期初应付账款余额:1-2年期末余额应收账款:0.8168371915817261:5251065.35:121:2 +报告期初应付账款:期初应付账款余额:1-2年期末余额应收账款:0.8166757822036743:21980836.86:193:1 +报告期初应付账款:期初数应付账款余额:1-2年期末余额应收账款:0.7867940664291382:5251065.35:121:2 +报告期初应付账款:期初数应付账款余额:1-2年期末余额应收账款:0.7867732048034668:21980836.86:193:1 +报告期初应付账款:期初金额应付账款余额:应付账款期末折算人民币余额:0.7952132225036621:7677713.04:170:1 +报告期初应付账款:期初金额应付账款余额:1-2年期末余额应收账款:0.7925553917884827:5251065.35:121:2 +报告期初应付账款:2023年1月1日应付账款余额:2023年1月1日余额合计:0.8463598489761353:151671.00:197:3 +报告期初应付账款:2023年1月1日应付账款余额:2027年期末金额:0.7613712549209595:19820645.33:148:1 +当期销售费用:当期销售费用合计:销售服务费本期发生额:0.8502888083457947:11213141.21:161:2 +当期销售费用:当期销售费用合计:销售服务费上期发生额:0.8354504704475403:9812253.11:161:2 +当期销售费用:本期销售费用合计:销售服务费本期发生额:0.8515200018882751:11213141.21:161:2 +当期销售费用:本期销售费用合计:销售费用2022年度:0.8202098608016968:22310693.51:82:1 +当期销售费用:本报告期销售费用合计:销售费用2022年度:0.746112048625946:22310693.51:82:1 +当期销售费用:本报告期销售费用合计:合计合计营业成本:0.7345873713493347:1512177971.43:160:1 +当期销售费用:报告期销售费用合计:销售费用2022年度:0.7755853533744812:22310693.51:82:1 +当期销售费用:报告期销售费用合计:销售服务费本期发生额:0.7641952037811279:11213141.21:161:2 +当期销售费用:报告期内销售费用合计:销售费用2022年度:0.7319629192352295:22310693.51:82:1 +当期销售费用:报告期内销售费用合计:销售服务费本期发生额:0.7169700860977173:11213141.21:161:2 +当期销售费用:本年度销售费用合计:其他合计营业成本:0.7890352606773376:168869933.15:200:3 +当期销售费用:本年度销售费用合计:其他合计营业成本:0.7890352606773376:73050912.12:160:1 +当期销售费用:本期发生额销售费用合计:销售服务费本期发生额:0.8606821298599243:11213141.21:161:2 +当期销售费用:本期发生额销售费用合计:销售服务费上期发生额:0.8409159779548645:9812253.11:161:2 +当期销售费用:2023年销售费用合计:销售费用2023年度:0.9486556053161621:24094794.79:82:1 +当期销售费用:2023年销售费用合计:销售费用2022年度:0.9145612716674805:22310693.51:82:1 +当期销售费用:2023年全年销售费用合计:销售费用2023年度:0.8935838937759399:24094794.79:82:1 +当期销售费用:2023年全年销售费用合计:销售费用2022年度:0.8574691414833069:22310693.51:82:1 +当期销售费用:2023年金额销售费用合计:销售费用2023年度:0.91605544090271:24094794.79:82:1 +当期销售费用:2023年金额销售费用合计:销售费用2022年度:0.8804787397384644:22310693.51:82:1 +上年同期销售费用:上年同期销售费用合计:合计上期发生额成本:0.753637433052063:1094701926.60:200:2 +上年同期销售费用:上年同期销售费用合计:销售服务费上期发生额:0.7394947409629822:9812253.11:161:2 +上年同期销售费用:上期销售费用合计:销售服务费上期发生额:0.853717029094696:9812253.11:161:2 +上年同期销售费用:上期销售费用合计:销售服务费本期发生额:0.8262584805488586:11213141.21:161:2 +上年同期销售费用:上年度销售费用合计:销售服务费上期发生额:0.7742466926574707:9812253.11:161:2 +上年同期销售费用:上年度销售费用合计:其他合计营业成本:0.7716014385223389:73050912.12:160:1 +上年同期销售费用:2022年销售费用合计:销售费用2022年度:0.9522322416305542:22310693.51:82:1 +上年同期销售费用:2022年销售费用合计:销售费用2023年度:0.9198381900787354:24094794.79:82:1 +上年同期销售费用:2022年全年销售费用合计:销售费用2022年度:0.8900285959243774:22310693.51:82:1 +上年同期销售费用:2022年全年销售费用合计:销售费用2023年度:0.8609659671783447:24094794.79:82:1 +上年同期销售费用:2022年金额销售费用合计:销售费用2022年度:0.9200883507728577:22310693.51:82:1 +上年同期销售费用:2022年金额销售费用合计:销售费用2023年度:0.8846222162246704:24094794.79:82:1 +前年同期销售费用:前年同期销售费用合计:合计上期发生额成本:0.7404971122741699:1094701926.60:200:2 +前年同期销售费用:前年同期销售费用合计:合计上期发生额收入:0.7266584634780884:1316036204.14:200:2 +前年同期销售费用:2021年销售费用合计:销售费用2022年度:0.8809715509414673:22310693.51:82:1 +前年同期销售费用:2021年销售费用合计:销售费用2023年度:0.8596804141998291:24094794.79:82:1 +前年同期销售费用:2021年全年销售费用合计:销售费用2022年度:0.8279953598976135:22310693.51:82:1 +前年同期销售费用:2021年全年销售费用合计:销售费用2023年度:0.8075697422027588:24094794.79:82:1 +前年同期销售费用:2021年金额销售费用合计:销售费用2022年度:0.8479146361351013:22310693.51:82:1 +前年同期销售费用:2021年金额销售费用合计:销售费用2023年度:0.8245225548744202:24094794.79:82:1 +销售费用同比变动:销售费用合计同比变动:销售服务费本期发生额:0.7936614751815796:11213141.21:161:2 +销售费用同比变动:销售费用合计同比变动:销售费用2022年度:0.7908707857131958:22310693.51:82:1 +销售费用同比变动:销售费用合计同比增减:销售服务费上期发生额:0.7833792567253113:9812253.11:161:2 +销售费用同比变动:销售费用合计同比增减:销售服务费本期发生额:0.7758016586303711:11213141.21:161:2 +销售费用同比变动:销售费用合计同比上升:销售服务费上期发生额:0.797362744808197:9812253.11:161:2 +销售费用同比变动:销售费用合计同比上升:销售费用2022年度:0.7819875478744507:22310693.51:82:1 +销售费用同比变动:销售费用合计同比下降:销售费用2022年度:0.759334921836853:22310693.51:82:1 +销售费用同比变动:销售费用合计同比下降:销售服务费上期发生额:0.7496047616004944:9812253.11:161:2 +销售费用同比变动:销售费用合计变化幅度:销售服务费上期发生额:0.8110959529876709:9812253.11:161:2 +销售费用同比变动:销售费用合计变化幅度:销售服务费本期发生额:0.8030269145965576:11213141.21:161:2 +销售费用同比变动:销售费用合计变动比例:销售服务费上期发生额:0.8046965003013611:9812253.11:161:2 +销售费用同比变动:销售费用合计变动比例:销售服务费本期发生额:0.7927078008651733:11213141.21:161:2 +销售费用同比变动:销售费用合计本期比上年同期增减:销售服务费本期发生额:0.7833332419395447:11213141.21:161:2 +销售费用同比变动:销售费用合计本期比上年同期增减:销售服务费上期发生额:0.7628648281097412:9812253.11:161:2 +销售费用同比变动:销售费用合计本年比上年增减:销售服务费本期发生额:0.7777131199836731:11213141.21:161:2 +销售费用同比变动:销售费用合计本年比上年增减:销售服务费上期发生额:0.7675108313560486:9812253.11:161:2 +当期管理费用:当期管理费用合计:付现管理费用本期发生额:0.7994791865348816:32317215.83:165:3 +当期管理费用:当期管理费用合计:付现管理费用上期发生额:0.7956627607345581:24861866.25:165:3 +当期管理费用:本期管理费用合计:管理费用2022年度:0.8170056343078613:49722467.87:82:1 +当期管理费用:本期管理费用合计:管理费用2023年度:0.8064616918563843:53859861.08:82:1 +当期管理费用:本报告期管理费用合计:管理费用2022年度:0.7367563247680664:49722467.87:82:1 +当期管理费用:本报告期管理费用合计:管理费用2023年度:0.7225094437599182:53859861.08:82:1 +当期管理费用:报告期管理费用合计:管理费用2022年度:0.7646634578704834:49722467.87:82:1 +当期管理费用:报告期管理费用合计:管理费用2023年度:0.7497279047966003:53859861.08:82:1 +当期管理费用:报告期内管理费用合计:管理费用2022年度:0.7127650380134583:49722467.87:82:1 +当期管理费用:报告期内管理费用合计:管理费用2023年度:0.6938031315803528:53859861.08:82:1 +当期管理费用:本年度管理费用合计:管理费用2022年度:0.8102744817733765:49722467.87:82:1 +当期管理费用:本年度管理费用合计:管理费用2023年度:0.804446816444397:53859861.08:82:1 +当期管理费用:本期发生额管理费用合计:合计本期发生额成本:0.7881571054458618:1266195618.25:200:2 +当期管理费用:本期发生额管理费用合计:付现管理费用上期发生额:0.7844264507293701:24861866.25:165:3 +当期管理费用:2023年管理费用合计:管理费用2023年度:0.9533434510231018:53859861.08:82:1 +当期管理费用:2023年管理费用合计:管理费用2022年度:0.9280987977981567:49722467.87:82:1 +当期管理费用:2023年全年管理费用合计:管理费用2023年度:0.9158065319061279:53859861.08:82:1 +当期管理费用:2023年全年管理费用合计:管理费用2022年度:0.8902058601379395:49722467.87:82:1 +当期管理费用:2023年金额管理费用合计:管理费用2023年度:0.8810473084449768:53859861.08:82:1 +当期管理费用:2023年金额管理费用合计:管理费用2022年度:0.8550890684127808:49722467.87:82:1 +上年同期管理费用:上年同期管理费用合计:管理费用2022年度:0.7676732540130615:49722467.87:82:1 +上年同期管理费用:上年同期管理费用合计:管理费用2023年度:0.7616453170776367:53859861.08:82:1 +上年同期管理费用:上期管理费用合计:管理费用2022年度:0.7992925047874451:49722467.87:82:1 +上年同期管理费用:上期管理费用合计:管理费用2023年度:0.7942320108413696:53859861.08:82:1 +上年同期管理费用:上年度管理费用合计:管理费用2022年度:0.7958676218986511:49722467.87:82:1 +上年同期管理费用:上年度管理费用合计:管理费用2023年度:0.7898702621459961:53859861.08:82:1 +上年同期管理费用:2022年管理费用合计:管理费用2022年度:0.9580146074295044:49722467.87:82:1 +上年同期管理费用:2022年管理费用合计:管理费用2023年度:0.9245465993881226:53859861.08:82:1 +上年同期管理费用:2022年全年管理费用合计:管理费用2022年度:0.9156702756881714:49722467.87:82:1 +上年同期管理费用:2022年全年管理费用合计:管理费用2023年度:0.8866477608680725:53859861.08:82:1 +上年同期管理费用:2022年金额管理费用合计:管理费用2022年度:0.8825558423995972:49722467.87:82:1 +上年同期管理费用:2022年金额管理费用合计:管理费用2023年度:0.8457334041595459:53859861.08:82:1 +前年同期管理费用:前年同期管理费用合计:管理费用2022年度:0.7457094788551331:49722467.87:82:1 +前年同期管理费用:前年同期管理费用合计:管理费用2023年度:0.739607036113739:53859861.08:82:1 +前年同期管理费用:2021年管理费用合计:管理费用2022年度:0.8995745182037354:49722467.87:82:1 +前年同期管理费用:2021年管理费用合计:管理费用2023年度:0.8791611194610596:53859861.08:82:1 +前年同期管理费用:2021年全年管理费用合计:管理费用2022年度:0.8660081624984741:49722467.87:82:1 +前年同期管理费用:2021年全年管理费用合计:管理费用2023年度:0.8460116982460022:53859861.08:82:1 +前年同期管理费用:2021年金额管理费用合计:管理费用2022年度:0.8359576463699341:49722467.87:82:1 +前年同期管理费用:2021年金额管理费用合计:管理费用2023年度:0.8127288818359375:53859861.08:82:1 +管理费用同比变动:管理费用合计同比变动:管理费用2022年度:0.7915716171264648:49722467.87:82:1 +管理费用同比变动:管理费用合计同比变动:管理费用2023年度:0.7742828130722046:53859861.08:82:1 +管理费用同比变动:管理费用合计同比增减:管理费用2022年度:0.780850350856781:49722467.87:82:1 +管理费用同比变动:管理费用合计同比增减:管理费用2023年度:0.7627355456352234:53859861.08:82:1 +管理费用同比变动:管理费用合计同比上升:管理费用2022年度:0.7927466034889221:49722467.87:82:1 +管理费用同比变动:管理费用合计同比上升:管理费用2023年度:0.7741130590438843:53859861.08:82:1 +管理费用同比变动:管理费用合计同比下降:管理费用2022年度:0.7757989168167114:49722467.87:82:1 +管理费用同比变动:管理费用合计同比下降:管理费用2023年度:0.7532684803009033:53859861.08:82:1 +管理费用同比变动:管理费用合计变化幅度:管理费用2022年度:0.7891071438789368:49722467.87:82:1 +管理费用同比变动:管理费用合计变化幅度:管理费用2023年度:0.7764127254486084:53859861.08:82:1 +管理费用同比变动:管理费用合计变动比例:管理费用2022年度:0.760614275932312:49722467.87:82:1 +管理费用同比变动:管理费用合计变动比例:管理费用2023年度:0.7521030306816101:53859861.08:82:1 +管理费用同比变动:管理费用合计本期比上年同期增减:管理费用2022年度:0.7375778555870056:49722467.87:82:1 +管理费用同比变动:管理费用合计本期比上年同期增减:管理费用2023年度:0.722387969493866:53859861.08:82:1 +管理费用同比变动:管理费用合计本年比上年增减:管理费用2022年度:0.7562362551689148:49722467.87:82:1 +管理费用同比变动:管理费用合计本年比上年增减:管理费用2023年度:0.744993269443512:53859861.08:82:1 +当期财务费用:当期财务费用合计:合计本期发生额成本:0.7826632261276245:1266195618.25:200:2 +当期财务费用:当期财务费用合计:财务费用2022年度:0.7776362895965576:1344301.6:82:1 +当期财务费用:本期财务费用合计:合计本期发生额成本:0.7928518652915955:1266195618.25:200:2 +当期财务费用:本期财务费用合计:财务费用2022年度:0.7903631925582886:1344301.6:82:1 +当期财务费用:本报告期财务费用合计:财务费用2022年度:0.7446427941322327:1344301.6:82:1 +当期财务费用:本报告期财务费用合计:财务费用2023年度:0.7289769053459167:3635779.49:82:1 +当期财务费用:报告期财务费用合计:财务费用2022年度:0.7740914225578308:1344301.6:82:1 +当期财务费用:报告期财务费用合计:财务费用2023年度:0.759307324886322:3635779.49:82:1 +当期财务费用:报告期内财务费用合计:财务费用2022年度:0.7265269756317139:1344301.6:82:1 +当期财务费用:报告期内财务费用合计:财务费用2023年度:0.7055230736732483:3635779.49:82:1 +当期财务费用:本年度财务费用合计:财务费用2022年度:0.7742157578468323:1344301.6:82:1 +当期财务费用:本年度财务费用合计:财务费用2023年度:0.7715103626251221:3635779.49:82:1 +当期财务费用:本期发生额财务费用合计:合计本期发生额成本:0.8520136475563049:1266195618.25:200:2 +当期财务费用:本期发生额财务费用合计:合计上期发生额成本:0.8061702251434326:1094701926.60:200:2 +当期财务费用:2023年财务费用合计:财务费用2023年度:0.9600544571876526:3635779.49:82:1 +当期财务费用:2023年财务费用合计:财务费用2022年度:0.9102057218551636:1344301.6:82:1 +当期财务费用:2023年全年财务费用合计:财务费用2023年度:0.9209787845611572:3635779.49:82:1 +当期财务费用:2023年全年财务费用合计:财务费用2022年度:0.867030143737793:1344301.6:82:1 +当期财务费用:2023年金额财务费用合计:财务费用2023年度:0.9175599813461304:3635779.49:82:1 +当期财务费用:2023年金额财务费用合计:财务费用2022年度:0.8661676645278931:1344301.6:82:1 +上年同期财务费用:上年同期财务费用合计:合计上期发生额成本:0.7293047904968262:1094701926.60:200:2 +上年同期财务费用:上年同期财务费用合计:财务费用2022年度:0.7283450961112976:1344301.6:82:1 +上年同期财务费用:上期财务费用合计:合计上期发生额成本:0.8128847479820251:1094701926.60:200:2 +上年同期财务费用:上期财务费用合计:合计本期发生额成本:0.7831109762191772:1266195618.25:200:2 +上年同期财务费用:上年度财务费用合计:合计上期发生额成本:0.7704497575759888:1094701926.60:200:2 +上年同期财务费用:上年度财务费用合计:合计本期发生额成本:0.7616614103317261:1266195618.25:200:2 +上年同期财务费用:2022年财务费用合计:财务费用2022年度:0.9606430530548096:1344301.6:82:1 +上年同期财务费用:2022年财务费用合计:财务费用2023年度:0.9100829362869263:3635779.49:82:1 +上年同期财务费用:2022年全年财务费用合计:财务费用2022年度:0.9192928671836853:1344301.6:82:1 +上年同期财务费用:2022年全年财务费用合计:财务费用2023年度:0.8717846274375916:3635779.49:82:1 +上年同期财务费用:2022年金额财务费用合计:财务费用2022年度:0.9169302582740784:1344301.6:82:1 +上年同期财务费用:2022年金额财务费用合计:财务费用2023年度:0.861065685749054:3635779.49:82:1 +前年同期财务费用:前年同期财务费用合计:合计上期发生额成本:0.7038044929504395:1094701926.60:200:2 +前年同期财务费用:前年同期财务费用合计:财务费用2022年度:0.7002814412117004:1344301.6:82:1 +前年同期财务费用:2021年财务费用合计:财务费用2022年度:0.8741729855537415:1344301.6:82:1 +前年同期财务费用:2021年财务费用合计:财务费用2023年度:0.8464341163635254:3635779.49:82:1 +前年同期财务费用:2021年全年财务费用合计:财务费用2022年度:0.8360084295272827:1344301.6:82:1 +前年同期财务费用:2021年全年财务费用合计:财务费用2023年度:0.8081990480422974:3635779.49:82:1 +前年同期财务费用:2021年金额财务费用合计:财务费用2022年度:0.8238554000854492:1344301.6:82:1 +前年同期财务费用:2021年金额财务费用合计:财务费用2023年度:0.7925317287445068:3635779.49:82:1 +财务费用同比变动:财务费用合计同比变动:财务费用2022年度:0.7725768685340881:1344301.6:82:1 +财务费用同比变动:财务费用合计同比变动:财务费用2023年度:0.7574034929275513:3635779.49:82:1 +财务费用同比变动:财务费用合计同比增减:财务费用补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.741489589214325:-1869908.34:168:2 +财务费用同比变动:财务费用合计同比增减:财务费用补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.7409719824790955:-172751.41:168:2 +财务费用同比变动:财务费用合计同比上升:财务费用2022年度:0.7476550340652466:1344301.6:82:1 +财务费用同比变动:财务费用合计同比上升:财务费用2023年度:0.7344062924385071:3635779.49:82:1 +财务费用同比变动:财务费用合计同比下降:财务费用2022年度:0.735169529914856:1344301.6:82:1 +财务费用同比变动:财务费用合计同比下降:财务费用2023年度:0.7120358347892761:3635779.49:82:1 +财务费用同比变动:财务费用合计变化幅度:财务费用2022年度:0.7482195496559143:1344301.6:82:1 +财务费用同比变动:财务费用合计变化幅度:财务费用2023年度:0.7342737317085266:3635779.49:82:1 +财务费用同比变动:财务费用合计变动比例:财务费用2022年度:0.7253965735435486:1344301.6:82:1 +财务费用同比变动:财务费用合计变动比例:合计上期发生额成本:0.7195844650268555:1094701926.60:200:2 +财务费用同比变动:财务费用合计本期比上年同期增减:财务费用补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.7817389965057373:-172751.41:168:2 +财务费用同比变动:财务费用合计本期比上年同期增减:财务费用补充资料本期金额上期金额1.将净利润调节为经营活动现金流量::0.7650370001792908:-1869908.34:168:2 +财务费用同比变动:财务费用合计本年比上年增减:财务费用补充资料本期金额上期金额1.将净利润调节为经营活动现金流量:160945884.96128488991.57:0.7553203701972961:-172751.41:168:2 +财务费用同比变动:财务费用合计本年比上年增减:财务费用2022年度:0.7459166646003723:1344301.6:82:1 +当期研发费用:当期研发费用合计:其中:费用化研发支出本期发生额:0.8482924699783325:59488138.59:171:1 +当期研发费用:当期研发费用合计:其中:费用化研发支出上期发生额:0.8278329372406006:62189328.77:171:1 +当期研发费用:本期研发费用合计:其中:费用化研发支出本期发生额:0.8590143918991089:59488138.59:171:1 +当期研发费用:本期研发费用合计:其中:费用化研发支出上期发生额:0.8108137249946594:62189328.77:171:1 +当期研发费用:本报告期研发费用合计:其中:费用化研发支出本期发生额:0.7906324863433838:59488138.59:171:1 +当期研发费用:本报告期研发费用合计:其中:费用化研发支出上期发生额:0.7619344592094421:62189328.77:171:1 +当期研发费用:报告期研发费用合计:其中:费用化研发支出本期发生额:0.8011545538902283:59488138.59:171:1 +当期研发费用:报告期研发费用合计:其中:费用化研发支出上期发生额:0.7846811413764954:62189328.77:171:1 +当期研发费用:报告期内研发费用合计:其中:费用化研发支出本期发生额:0.7646077871322632:59488138.59:171:1 +当期研发费用:报告期内研发费用合计:其中:费用化研发支出上期发生额:0.7321047186851501:62189328.77:171:1 +当期研发费用:本年度研发费用合计:其中:费用化研发支出本期发生额:0.7972168922424316:59488138.59:171:1 +当期研发费用:本年度研发费用合计:研发费用2022年度:0.7714356184005737:46492323.47:82:1 +当期研发费用:本期发生额研发费用合计:其中:费用化研发支出本期发生额:0.841005802154541:59488138.59:171:1 +当期研发费用:本期发生额研发费用合计:付现研发费用本期发生额:0.8131992816925049:15714448.39:165:3 +当期研发费用:2023年研发费用合计:研发费用2023年度:0.9553529024124146:40413176.50:82:1 +当期研发费用:2023年研发费用合计:研发费用2022年度:0.9252932071685791:46492323.47:82:1 +当期研发费用:2023年全年研发费用合计:研发费用2023年度:0.9241452813148499:40413176.50:82:1 +当期研发费用:2023年全年研发费用合计:研发费用2022年度:0.891770601272583:46492323.47:82:1 +当期研发费用:2023年金额研发费用合计:研发费用2023年度:0.9075791239738464:40413176.50:82:1 +当期研发费用:2023年金额研发费用合计:研发费用2022年度:0.8714181184768677:46492323.47:82:1 +当期研发费用:当期费用化研发投入:其中:费用化研发支出上期发生额:0.8134006857872009:62189328.77:171:1 +当期研发费用:当期费用化研发投入:其中:费用化研发支出本期发生额:0.7867863774299622:59488138.59:171:1 +当期研发费用:本期费用化研发投入:其中:费用化研发支出上期发生额:0.7989080548286438:62189328.77:171:1 +当期研发费用:本期费用化研发投入:其中:费用化研发支出本期发生额:0.7895255088806152:59488138.59:171:1 +当期研发费用:本报告期费用化研发投入:其中:费用化研发支出上期发生额:0.8490074872970581:62189328.77:171:1 +当期研发费用:本报告期费用化研发投入:其中:费用化研发支出本期发生额:0.824533224105835:59488138.59:171:1 +当期研发费用:报告期费用化研发投入:其中:费用化研发支出上期发生额:0.8347005844116211:62189328.77:171:1 +当期研发费用:报告期费用化研发投入:其中:费用化研发支出本期发生额:0.8031103014945984:59488138.59:171:1 +当期研发费用:报告期内费用化研发投入:其中:费用化研发支出上期发生额:0.8660442233085632:62189328.77:171:1 +当期研发费用:报告期内费用化研发投入:其中:费用化研发支出本期发生额:0.8517147898674011:59488138.59:171:1 +当期研发费用:本年度费用化研发投入:其中:费用化研发支出上期发生额:0.8285514116287231:62189328.77:171:1 +当期研发费用:本年度费用化研发投入:其中:费用化研发支出本期发生额:0.8180673718452454:59488138.59:171:1 +当期研发费用:本期发生额费用化研发投入:其中:费用化研发支出上期发生额:0.8243467211723328:62189328.77:171:1 +当期研发费用:本期发生额费用化研发投入:其中:费用化研发支出本期发生额:0.8150284886360168:59488138.59:171:1 +当期研发费用:2023年费用化研发投入:研发费用2023年度:0.8054366707801819:40413176.50:82:1 +当期研发费用:2023年费用化研发投入:研发费用2022年度:0.7762700915336609:46492323.47:82:1 +当期研发费用:2023年全年费用化研发投入:研发费用2023年度:0.8287012577056885:40413176.50:82:1 +当期研发费用:2023年全年费用化研发投入:研发费用2022年度:0.7991495728492737:46492323.47:82:1 +当期研发费用:2023年金额费用化研发投入:研发费用2023年度:0.8049963712692261:40413176.50:82:1 +当期研发费用:2023年金额费用化研发投入:研发费用2022年度:0.7737802267074585:46492323.47:82:1 +上年同期研发费用:上年同期研发费用合计:其中:费用化研发支出上期发生额:0.7782645225524902:62189328.77:171:1 +上年同期研发费用:上年同期研发费用合计:其中:费用化研发支出本期发生额:0.7635209560394287:59488138.59:171:1 +上年同期研发费用:上期研发费用合计:其中:费用化研发支出上期发生额:0.8464184999465942:62189328.77:171:1 +上年同期研发费用:上期研发费用合计:其中:费用化研发支出本期发生额:0.8386982083320618:59488138.59:171:1 +上年同期研发费用:上年度研发费用合计:其中:费用化研发支出本期发生额:0.7832903861999512:59488138.59:171:1 +上年同期研发费用:上年度研发费用合计:其中:费用化研发支出上期发生额:0.7745546698570251:62189328.77:171:1 +上年同期研发费用:2022年研发费用合计:研发费用2022年度:0.9585002660751343:46492323.47:82:1 +上年同期研发费用:2022年研发费用合计:研发费用2023年度:0.9245561957359314:40413176.50:82:1 +上年同期研发费用:2022年全年研发费用合计:研发费用2022年度:0.9226511716842651:46492323.47:82:1 +上年同期研发费用:2022年全年研发费用合计:研发费用2023年度:0.891923725605011:40413176.50:82:1 +上年同期研发费用:2022年金额研发费用合计:研发费用2022年度:0.900986909866333:46492323.47:82:1 +上年同期研发费用:2022年金额研发费用合计:研发费用2023年度:0.8684234023094177:40413176.50:82:1 +上年同期研发费用:上年同期费用化研发投入:其中:费用化研发支出上期发生额:0.8453018665313721:62189328.77:171:1 +上年同期研发费用:上年同期费用化研发投入:其中:费用化研发支出本期发生额:0.7988941669464111:59488138.59:171:1 +上年同期研发费用:上期费用化研发投入:其中:费用化研发支出上期发生额:0.8431870341300964:62189328.77:171:1 +上年同期研发费用:上期费用化研发投入:其中:费用化研发支出本期发生额:0.7950496673583984:59488138.59:171:1 +上年同期研发费用:上年度费用化研发投入:其中:费用化研发支出上期发生额:0.8647117018699646:62189328.77:171:1 +上年同期研发费用:上年度费用化研发投入:其中:费用化研发支出本期发生额:0.8251071572303772:59488138.59:171:1 +上年同期研发费用:2022年费用化研发投入:研发费用2022年度:0.7987691760063171:46492323.47:82:1 +上年同期研发费用:2022年费用化研发投入:研发费用2023年度:0.780080258846283:40413176.50:82:1 +上年同期研发费用:2022年全年费用化研发投入:研发费用2022年度:0.825167715549469:46492323.47:82:1 +上年同期研发费用:2022年全年费用化研发投入:研发费用2023年度:0.808775782585144:40413176.50:82:1 +上年同期研发费用:2022年金额费用化研发投入:研发费用2022年度:0.7927082777023315:46492323.47:82:1 +上年同期研发费用:2022年金额费用化研发投入:其中:费用化研发支出上期发生额:0.7715504765510559:62189328.77:171:1 +前年同期研发费用:前年同期研发费用合计:其中:费用化研发支出上期发生额:0.7456375956535339:62189328.77:171:1 +前年同期研发费用:前年同期研发费用合计:其中:费用化研发支出本期发生额:0.7341616153717041:59488138.59:171:1 +前年同期研发费用:2021年研发费用合计:研发费用2022年度:0.8766095638275146:46492323.47:82:1 +前年同期研发费用:2021年研发费用合计:研发费用2023年度:0.8497543931007385:40413176.50:82:1 +前年同期研发费用:2021年全年研发费用合计:研发费用2022年度:0.8454886674880981:46492323.47:82:1 +前年同期研发费用:2021年全年研发费用合计:研发费用2023年度:0.820156455039978:40413176.50:82:1 +前年同期研发费用:2021年金额研发费用合计:研发费用2022年度:0.8148799538612366:46492323.47:82:1 +前年同期研发费用:2021年金额研发费用合计:研发费用2023年度:0.7916519641876221:40413176.50:82:1 +前年同期研发费用:前年同期费用化研发投入:其中:费用化研发支出上期发生额:0.8419346213340759:62189328.77:171:1 +前年同期研发费用:前年同期费用化研发投入:其中:费用化研发支出本期发生额:0.7998185157775879:59488138.59:171:1 +前年同期研发费用:2021年费用化研发投入:其中:费用化研发支出上期发生额:0.7515115141868591:62189328.77:171:1 +前年同期研发费用:2021年费用化研发投入:研发费用2022年度:0.7364245057106018:46492323.47:82:1 +前年同期研发费用:2021年全年费用化研发投入:研发费用2022年度:0.757165789604187:46492323.47:82:1 +前年同期研发费用:2021年全年费用化研发投入:其中:费用化研发支出上期发生额:0.751413881778717:62189328.77:171:1 +前年同期研发费用:2021年金额费用化研发投入:其中:费用化研发支出上期发生额:0.7624894380569458:62189328.77:171:1 +前年同期研发费用:2021年金额费用化研发投入:其中:费用化研发支出本期发生额:0.7370168566703796:59488138.59:171:1 +研发费用同比变动:研发费用合计同比变动:其中:费用化研发支出上期发生额:0.7876659035682678:62189328.77:171:1 +研发费用同比变动:研发费用合计同比变动:其中:费用化研发支出本期发生额:0.786831259727478:59488138.59:171:1 +研发费用同比变动:研发费用合计同比增减:其中:费用化研发支出上期发生额:0.8126370310783386:62189328.77:171:1 +研发费用同比变动:研发费用合计同比增减:其中:费用化研发支出本期发生额:0.8030186295509338:59488138.59:171:1 +研发费用同比变动:研发费用合计同比上升:其中:费用化研发支出上期发生额:0.820818305015564:62189328.77:171:1 +研发费用同比变动:研发费用合计同比上升:其中:费用化研发支出本期发生额:0.8008311986923218:59488138.59:171:1 +研发费用同比变动:研发费用合计同比下降:其中:费用化研发支出上期发生额:0.7808071374893188:62189328.77:171:1 +研发费用同比变动:研发费用合计同比下降:其中:费用化研发支出本期发生额:0.7647489309310913:59488138.59:171:1 +研发费用同比变动:研发费用合计变化幅度:其中:费用化研发支出本期发生额:0.7803255915641785:59488138.59:171:1 +研发费用同比变动:研发费用合计变化幅度:其中:费用化研发支出上期发生额:0.7783536911010742:62189328.77:171:1 +研发费用同比变动:研发费用合计变动比例:其中:费用化研发支出本期发生额:0.7721972465515137:59488138.59:171:1 +研发费用同比变动:研发费用合计变动比例:其中:费用化研发支出上期发生额:0.7708457708358765:62189328.77:171:1 +研发费用同比变动:研发费用合计本期比上年同期增减:其中:费用化研发支出本期发生额:0.7943031191825867:59488138.59:171:1 +研发费用同比变动:研发费用合计本期比上年同期增减:其中:费用化研发支出上期发生额:0.7875047922134399:62189328.77:171:1 +研发费用同比变动:研发费用合计本年比上年增减:其中:费用化研发支出本期发生额:0.7955412864685059:59488138.59:171:1 +研发费用同比变动:研发费用合计本年比上年增减:其中:费用化研发支出上期发生额:0.7883235812187195:62189328.77:171:1 +研发费用同比变动:费用化研发投入同比变动:其中:费用化研发支出上期发生额:0.8635380864143372:62189328.77:171:1 +研发费用同比变动:费用化研发投入同比变动:其中:费用化研发支出本期发生额:0.8283059597015381:59488138.59:171:1 +研发费用同比变动:费用化研发投入同比增减:其中:费用化研发支出上期发生额:0.848540723323822:62189328.77:171:1 +研发费用同比变动:费用化研发投入同比增减:其中:费用化研发支出本期发生额:0.8094174265861511:59488138.59:171:1 +研发费用同比变动:费用化研发投入同比上升:其中:费用化研发支出上期发生额:0.8192704319953918:62189328.77:171:1 +研发费用同比变动:费用化研发投入同比上升:其中:费用化研发支出本期发生额:0.7746274471282959:59488138.59:171:1 +研发费用同比变动:费用化研发投入同比下降:其中:费用化研发支出上期发生额:0.814490556716919:62189328.77:171:1 +研发费用同比变动:费用化研发投入同比下降:其中:费用化研发支出本期发生额:0.77069091796875:59488138.59:171:1 +研发费用同比变动:费用化研发投入变化幅度:其中:费用化研发支出上期发生额:0.8113885521888733:62189328.77:171:1 +研发费用同比变动:费用化研发投入变化幅度:其中:费用化研发支出本期发生额:0.7745591402053833:59488138.59:171:1 +研发费用同比变动:费用化研发投入变动比例:其中:费用化研发支出上期发生额:0.8423951268196106:62189328.77:171:1 +研发费用同比变动:费用化研发投入变动比例:其中:费用化研发支出本期发生额:0.8073174953460693:59488138.59:171:1 +研发费用同比变动:费用化研发投入本期比上年同期增减:其中:费用化研发支出上期发生额:0.889008641242981:62189328.77:171:1 +研发费用同比变动:费用化研发投入本期比上年同期增减:其中:费用化研发支出本期发生额:0.8691677451133728:59488138.59:171:1 +研发费用同比变动:费用化研发投入本年比上年增减:其中:费用化研发支出上期发生额:0.8511839509010315:62189328.77:171:1 +研发费用同比变动:费用化研发投入本年比上年增减:其中:费用化研发支出本期发生额:0.8216643929481506:59488138.59:171:1 +当期研发投入:当期研发投入金额:其中:费用化研发支出本期发生额:0.8011746406555176:59488138.59:171:1 +当期研发投入:当期研发投入金额:其中:费用化研发支出上期发生额:0.7848328351974487:62189328.77:171:1 +当期研发投入:本期研发投入金额:其中:费用化研发支出本期发生额:0.7976077795028687:59488138.59:171:1 +当期研发投入:本期研发投入金额:其中:费用化研发支出上期发生额:0.7582603693008423:62189328.77:171:1 +当期研发投入:本报告期研发投入金额:其中:费用化研发支出本期发生额:0.7776451110839844:59488138.59:171:1 +当期研发投入:本报告期研发投入金额:其中:费用化研发支出上期发生额:0.7592961192131042:62189328.77:171:1 +当期研发投入:报告期研发投入金额:其中:费用化研发支出本期发生额:0.7780441045761108:59488138.59:171:1 +当期研发投入:报告期研发投入金额:其中:费用化研发支出上期发生额:0.7689294815063477:62189328.77:171:1 +当期研发投入:报告期内研发投入金额:其中:费用化研发支出本期发生额:0.7618732452392578:59488138.59:171:1 +当期研发投入:报告期内研发投入金额:其中:费用化研发支出上期发生额:0.7341662049293518:62189328.77:171:1 +当期研发投入:本年度研发投入金额:其中:费用化研发支出本期发生额:0.7582212686538696:59488138.59:171:1 +当期研发投入:本年度研发投入金额:研发费用2022年度:0.7173565626144409:46492323.47:82:1 +当期研发投入:本期发生额研发投入金额:其中:费用化研发支出本期发生额:0.8158197402954102:59488138.59:171:1 +当期研发投入:本期发生额研发投入金额:其中:费用化研发支出上期发生额:0.7907412052154541:62189328.77:171:1 +当期研发投入:2023年研发投入金额:研发费用2023年度:0.868328869342804:40413176.50:82:1 +当期研发投入:2023年研发投入金额:研发费用2022年度:0.8333661556243896:46492323.47:82:1 +当期研发投入:2023年全年研发投入金额:研发费用2023年度:0.8649724125862122:40413176.50:82:1 +当期研发投入:2023年全年研发投入金额:研发费用2022年度:0.830211877822876:46492323.47:82:1 +当期研发投入:2023年金额研发投入金额:研发费用2023年度:0.825864315032959:40413176.50:82:1 +当期研发投入:2023年金额研发投入金额:研发费用2022年度:0.7938939332962036:46492323.47:82:1 +当期研发投入:当期研发支出金额:其中:费用化研发支出本期发生额:0.8371860980987549:59488138.59:171:1 +当期研发投入:当期研发支出金额:其中:费用化研发支出上期发生额:0.8286018371582031:62189328.77:171:1 +当期研发投入:本期研发支出金额:其中:费用化研发支出本期发生额:0.8633166551589966:59488138.59:171:1 +当期研发投入:本期研发支出金额:其中:费用化研发支出上期发生额:0.8305703997612:62189328.77:171:1 +当期研发投入:本报告期研发支出金额:其中:费用化研发支出本期发生额:0.8024144768714905:59488138.59:171:1 +当期研发投入:本报告期研发支出金额:其中:费用化研发支出上期发生额:0.78697270154953:62189328.77:171:1 +当期研发投入:报告期研发支出金额:其中:费用化研发支出本期发生额:0.8029383420944214:59488138.59:171:1 +当期研发投入:报告期研发支出金额:其中:费用化研发支出上期发生额:0.799511730670929:62189328.77:171:1 +当期研发投入:报告期内研发支出金额:其中:费用化研发支出本期发生额:0.7740678787231445:59488138.59:171:1 +当期研发投入:报告期内研发支出金额:其中:费用化研发支出上期发生额:0.7498541474342346:62189328.77:171:1 +当期研发投入:本年度研发支出金额:其中:费用化研发支出本期发生额:0.8081645965576172:59488138.59:171:1 +当期研发投入:本年度研发支出金额:其中:费用化研发支出上期发生额:0.7703669667243958:62189328.77:171:1 +当期研发投入:本期发生额研发支出金额:其中:费用化研发支出本期发生额:0.8544797897338867:59488138.59:171:1 +当期研发投入:本期发生额研发支出金额:其中:费用化研发支出上期发生额:0.8329595923423767:62189328.77:171:1 +当期研发投入:2023年研发支出金额:研发费用2023年度:0.8923414349555969:40413176.50:82:1 +当期研发投入:2023年研发支出金额:研发费用2022年度:0.8593515157699585:46492323.47:82:1 +当期研发投入:2023年全年研发支出金额:研发费用2023年度:0.8747934103012085:40413176.50:82:1 +当期研发投入:2023年全年研发支出金额:研发费用2022年度:0.8411500453948975:46492323.47:82:1 +当期研发投入:2023年金额研发支出金额:研发费用2023年度:0.8475143909454346:40413176.50:82:1 +当期研发投入:2023年金额研发支出金额:研发费用2022年度:0.814691424369812:46492323.47:82:1 +上年同期研发投入:上年同期研发投入金额:其中:费用化研发支出上期发生额:0.7716317772865295:62189328.77:171:1 +上年同期研发投入:上年同期研发投入金额:其中:费用化研发支出本期发生额:0.7471718788146973:59488138.59:171:1 +上年同期研发投入:上期研发投入金额:其中:费用化研发支出上期发生额:0.809795081615448:62189328.77:171:1 +上年同期研发投入:上期研发投入金额:其中:费用化研发支出本期发生额:0.8006811141967773:59488138.59:171:1 +上年同期研发投入:上年度研发投入金额:其中:费用化研发支出本期发生额:0.7596837282180786:59488138.59:171:1 +上年同期研发投入:上年度研发投入金额:其中:费用化研发支出上期发生额:0.7532347440719604:62189328.77:171:1 +上年同期研发投入:2022年研发投入金额:研发费用2022年度:0.8732930421829224:46492323.47:82:1 +上年同期研发投入:2022年研发投入金额:研发费用2023年度:0.8414447903633118:40413176.50:82:1 +上年同期研发投入:2022年全年研发投入金额:研发费用2022年度:0.8680919408798218:46492323.47:82:1 +上年同期研发投入:2022年全年研发投入金额:研发费用2023年度:0.8384578227996826:40413176.50:82:1 +上年同期研发投入:2022年金额研发投入金额:研发费用2022年度:0.8216285705566406:46492323.47:82:1 +上年同期研发投入:2022年金额研发投入金额:研发费用2023年度:0.7905395030975342:40413176.50:82:1 +上年同期研发投入:上年同期研发支出金额:其中:费用化研发支出上期发生额:0.7897493243217468:62189328.77:171:1 +上年同期研发投入:上年同期研发支出金额:其中:费用化研发支出本期发生额:0.761771023273468:59488138.59:171:1 +上年同期研发投入:上期研发支出金额:其中:费用化研发支出上期发生额:0.856290876865387:62189328.77:171:1 +上年同期研发投入:上期研发支出金额:其中:费用化研发支出本期发生额:0.8367624282836914:59488138.59:171:1 +上年同期研发投入:上年度研发支出金额:其中:费用化研发支出上期发生额:0.7887541651725769:62189328.77:171:1 +上年同期研发投入:上年度研发支出金额:其中:费用化研发支出本期发生额:0.7886950969696045:59488138.59:171:1 +上年同期研发投入:2022年研发支出金额:研发费用2022年度:0.8960452675819397:46492323.47:82:1 +上年同期研发投入:2022年研发支出金额:研发费用2023年度:0.8642931580543518:40413176.50:82:1 +上年同期研发投入:2022年全年研发支出金额:研发费用2022年度:0.8757795095443726:46492323.47:82:1 +上年同期研发投入:2022年全年研发支出金额:研发费用2023年度:0.8456503748893738:40413176.50:82:1 +上年同期研发投入:2022年金额研发支出金额:研发费用2022年度:0.8425536155700684:46492323.47:82:1 +上年同期研发投入:2022年金额研发支出金额:研发费用2023年度:0.8110005855560303:40413176.50:82:1 +前年同期研发投入:前年同期研发投入金额:其中:费用化研发支出上期发生额:0.7326213121414185:62189328.77:171:1 +前年同期研发投入:前年同期研发投入金额:其中:费用化研发支出本期发生额:0.7100021243095398:59488138.59:171:1 +前年同期研发投入:2021年研发投入金额:研发费用2022年度:0.7941097021102905:46492323.47:82:1 +前年同期研发投入:2021年研发投入金额:研发费用2023年度:0.7726119756698608:40413176.50:82:1 +前年同期研发投入:2021年全年研发投入金额:研发费用2022年度:0.7931640148162842:46492323.47:82:1 +前年同期研发投入:2021年全年研发投入金额:研发费用2023年度:0.7714583873748779:40413176.50:82:1 +前年同期研发投入:2021年金额研发投入金额:研发费用2022年度:0.7456508278846741:46492323.47:82:1 +前年同期研发投入:2021年金额研发投入金额:研发费用2023年度:0.7263417840003967:40413176.50:82:1 +前年同期研发投入:前年同期研发支出金额:其中:费用化研发支出上期发生额:0.7619628310203552:62189328.77:171:1 +前年同期研发投入:前年同期研发支出金额:其中:费用化研发支出本期发生额:0.7351360321044922:59488138.59:171:1 +前年同期研发投入:2021年研发支出金额:研发费用2022年度:0.8142543435096741:46492323.47:82:1 +前年同期研发投入:2021年研发支出金额:研发费用2023年度:0.7945753931999207:40413176.50:82:1 +前年同期研发投入:2021年全年研发支出金额:研发费用2022年度:0.8010973930358887:46492323.47:82:1 +前年同期研发投入:2021年全年研发支出金额:研发费用2023年度:0.7808692455291748:40413176.50:82:1 +前年同期研发投入:2021年金额研发支出金额:研发费用2022年度:0.7599626779556274:46492323.47:82:1 +前年同期研发投入:2021年金额研发支出金额:研发费用2023年度:0.7419766187667847:40413176.50:82:1 +研发投入同比变动:研发投入金额同比变动:其中:费用化研发支出上期发生额:0.7543234825134277:62189328.77:171:1 +研发投入同比变动:研发投入金额同比变动:其中:费用化研发支出本期发生额:0.7492598295211792:59488138.59:171:1 +研发投入同比变动:研发投入金额同比增减:其中:费用化研发支出上期发生额:0.7613822221755981:62189328.77:171:1 +研发投入同比变动:研发投入金额同比增减:其中:费用化研发支出本期发生额:0.7442132234573364:59488138.59:171:1 +研发投入同比变动:研发投入金额同比上升:其中:费用化研发支出上期发生额:0.7526810169219971:62189328.77:171:1 +研发投入同比变动:研发投入金额同比上升:其中:费用化研发支出本期发生额:0.7269998788833618:59488138.59:171:1 +研发投入同比变动:研发投入金额同比下降:其中:费用化研发支出上期发生额:0.7304876446723938:62189328.77:171:1 +研发投入同比变动:研发投入金额同比下降:其中:费用化研发支出本期发生额:0.7060518264770508:59488138.59:171:1 +研发投入同比变动:研发投入金额变化幅度:其中:费用化研发支出上期发生额:0.7614496350288391:62189328.77:171:1 +研发投入同比变动:研发投入金额变化幅度:其中:费用化研发支出本期发生额:0.7522437572479248:59488138.59:171:1 +研发投入同比变动:研发投入金额变动比例:其中:费用化研发支出上期发生额:0.7516428828239441:62189328.77:171:1 +研发投入同比变动:研发投入金额变动比例:其中:费用化研发支出本期发生额:0.7449641823768616:59488138.59:171:1 +研发投入同比变动:研发投入金额本期比上年同期增减:其中:费用化研发支出本期发生额:0.7621433734893799:59488138.59:171:1 +研发投入同比变动:研发投入金额本期比上年同期增减:其中:费用化研发支出上期发生额:0.7612549662590027:62189328.77:171:1 +研发投入同比变动:研发投入金额本年比上年增减:其中:费用化研发支出上期发生额:0.7641503214836121:62189328.77:171:1 +研发投入同比变动:研发投入金额本年比上年增减:其中:费用化研发支出本期发生额:0.761948823928833:59488138.59:171:1 +研发投入同比变动:研发支出金额同比变动:其中:费用化研发支出上期发生额:0.7883933186531067:62189328.77:171:1 +研发投入同比变动:研发支出金额同比变动:其中:费用化研发支出本期发生额:0.7773956060409546:59488138.59:171:1 +研发投入同比变动:研发支出金额同比增减:其中:费用化研发支出上期发生额:0.8042576909065247:62189328.77:171:1 +研发投入同比变动:研发支出金额同比增减:其中:费用化研发支出本期发生额:0.7828094959259033:59488138.59:171:1 +研发投入同比变动:研发支出金额同比上升:其中:费用化研发支出上期发生额:0.8033867478370667:62189328.77:171:1 +研发投入同比变动:研发支出金额同比上升:其中:费用化研发支出本期发生额:0.7722020149230957:59488138.59:171:1 +研发投入同比变动:研发支出金额同比下降:其中:费用化研发支出上期发生额:0.7748376727104187:62189328.77:171:1 +研发投入同比变动:研发支出金额同比下降:其中:费用化研发支出本期发生额:0.7471243143081665:59488138.59:171:1 +研发投入同比变动:研发支出金额变化幅度:其中:费用化研发支出上期发生额:0.8078420758247375:62189328.77:171:1 +研发投入同比变动:研发支出金额变化幅度:其中:费用化研发支出本期发生额:0.7927571535110474:59488138.59:171:1 +研发投入同比变动:研发支出金额变动比例:其中:费用化研发支出上期发生额:0.7890496850013733:62189328.77:171:1 +研发投入同比变动:研发支出金额变动比例:其中:费用化研发支出本期发生额:0.7774198055267334:59488138.59:171:1 +研发投入同比变动:研发支出金额本期比上年同期增减:其中:费用化研发支出上期发生额:0.7922061681747437:62189328.77:171:1 +研发投入同比变动:研发支出金额本期比上年同期增减:其中:费用化研发支出本期发生额:0.7877682447433472:59488138.59:171:1 +研发投入同比变动:研发支出金额本年比上年增减:其中:费用化研发支出上期发生额:0.8003973364830017:62189328.77:171:1 +研发投入同比变动:研发支出金额本年比上年增减:其中:费用化研发支出本期发生额:0.7926489114761353:59488138.59:171:1 +当期资本化研发投入:当期研发投入资本化的金额:其中:费用化研发支出上期发生额:0.7040315270423889:62189328.77:171:1 +当期资本化研发投入:当期研发投入资本化的金额:其中:费用化研发支出本期发生额:0.6884761452674866:59488138.59:171:1 +当期资本化研发投入:本期研发投入资本化的金额:其中:费用化研发支出本期发生额:0.7262288331985474:59488138.59:171:1 +当期资本化研发投入:本期研发投入资本化的金额:其中:费用化研发支出上期发生额:0.7202708125114441:62189328.77:171:1 +当期资本化研发投入:本报告期研发投入资本化的金额:其中:费用化研发支出上期发生额:0.6992024779319763:62189328.77:171:1 +当期资本化研发投入:本报告期研发投入资本化的金额:其中:费用化研发支出本期发生额:0.6881996393203735:59488138.59:171:1 +当期资本化研发投入:报告期研发投入资本化的金额:其中:费用化研发支出上期发生额:0.6996340155601501:62189328.77:171:1 +当期资本化研发投入:报告期研发投入资本化的金额:其中:费用化研发支出本期发生额:0.6811620593070984:59488138.59:171:1 +当期资本化研发投入:报告期内研发投入资本化的金额:其中:费用化研发支出上期发生额:0.7275335192680359:62189328.77:171:1 +当期资本化研发投入:报告期内研发投入资本化的金额:其中:费用化研发支出本期发生额:0.7273496985435486:59488138.59:171:1 +当期资本化研发投入:本年度研发投入资本化的金额:其中:费用化研发支出本期发生额:0.7095011472702026:59488138.59:171:1 +当期资本化研发投入:本年度研发投入资本化的金额:其中:费用化研发支出上期发生额:0.7001384496688843:62189328.77:171:1 +当期资本化研发投入:本期发生额研发投入资本化的金额:其中:费用化研发支出本期发生额:0.7263201475143433:59488138.59:171:1 +当期资本化研发投入:本期发生额研发投入资本化的金额:其中:费用化研发支出上期发生额:0.7221813201904297:62189328.77:171:1 +当期资本化研发投入:2023年研发投入资本化的金额:研发费用2023年度:0.7363513708114624:40413176.50:82:1 +当期资本化研发投入:2023年研发投入资本化的金额:研发费用2022年度:0.7016579508781433:46492323.47:82:1 +当期资本化研发投入:2023年全年研发投入资本化的金额:研发费用2023年度:0.7624906301498413:40413176.50:82:1 +当期资本化研发投入:2023年全年研发投入资本化的金额:研发费用2022年度:0.7295544743537903:46492323.47:82:1 +当期资本化研发投入:2023年金额研发投入资本化的金额:研发费用2023年度:0.7127232551574707:40413176.50:82:1 +当期资本化研发投入:2023年金额研发投入资本化的金额:研发费用2022年度:0.6776072382926941:46492323.47:82:1 +当期资本化研发投入:当期研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7516232132911682:62189328.77:171:1 +当期资本化研发投入:当期研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7313761711120605:59488138.59:171:1 +当期资本化研发投入:本期研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7693076729774475:62189328.77:171:1 +当期资本化研发投入:本期研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7656526565551758:59488138.59:171:1 +当期资本化研发投入:本报告期研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7334250807762146:62189328.77:171:1 +当期资本化研发投入:本报告期研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7200056314468384:59488138.59:171:1 +当期资本化研发投入:报告期研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7373440861701965:62189328.77:171:1 +当期资本化研发投入:报告期研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7150998115539551:59488138.59:171:1 +当期资本化研发投入:报告期内研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7563024163246155:62189328.77:171:1 +当期资本化研发投入:报告期内研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7523415088653564:59488138.59:171:1 +当期资本化研发投入:本年度研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7455784678459167:62189328.77:171:1 +当期资本化研发投入:本年度研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7451550960540771:59488138.59:171:1 +当期资本化研发投入:本期发生额研发支出资本化的金额:其中:费用化研发支出本期发生额:0.768402636051178:59488138.59:171:1 +当期资本化研发投入:本期发生额研发支出资本化的金额:其中:费用化研发支出上期发生额:0.768030047416687:62189328.77:171:1 +当期资本化研发投入:2023年研发支出资本化的金额:研发费用2023年度:0.7612175941467285:40413176.50:82:1 +当期资本化研发投入:2023年研发支出资本化的金额:研发费用2022年度:0.7259216904640198:46492323.47:82:1 +当期资本化研发投入:2023年全年研发支出资本化的金额:研发费用2023年度:0.7781775593757629:40413176.50:82:1 +当期资本化研发投入:2023年全年研发支出资本化的金额:研发费用2022年度:0.7443914413452148:46492323.47:82:1 +当期资本化研发投入:2023年金额研发支出资本化的金额:研发费用2023年度:0.7459957003593445:40413176.50:82:1 +当期资本化研发投入:2023年金额研发支出资本化的金额:研发费用2022年度:0.7083063125610352:46492323.47:82:1 +当期资本化研发投入:当期资本化研发投入:其中:费用化研发支出上期发生额:0.674224853515625:62189328.77:171:1 +当期资本化研发投入:当期资本化研发投入:其中:费用化研发支出本期发生额:0.648833692073822:59488138.59:171:1 +当期资本化研发投入:本期资本化研发投入:其中:费用化研发支出上期发生额:0.666975200176239:62189328.77:171:1 +当期资本化研发投入:本期资本化研发投入:其中:费用化研发支出本期发生额:0.6525300741195679:59488138.59:171:1 +当期资本化研发投入:本报告期资本化研发投入:其中:费用化研发支出上期发生额:0.6880849003791809:62189328.77:171:1 +当期资本化研发投入:本报告期资本化研发投入:其中:费用化研发支出本期发生额:0.666390061378479:59488138.59:171:1 +当期资本化研发投入:报告期资本化研发投入:其中:费用化研发支出上期发生额:0.6872408986091614:62189328.77:171:1 +当期资本化研发投入:报告期资本化研发投入:其中:费用化研发支出本期发生额:0.6598919034004211:59488138.59:171:1 +当期资本化研发投入:报告期内资本化研发投入:其中:费用化研发支出上期发生额:0.7201206684112549:62189328.77:171:1 +当期资本化研发投入:报告期内资本化研发投入:其中:费用化研发支出本期发生额:0.7111191153526306:59488138.59:171:1 +当期资本化研发投入:本年度资本化研发投入:其中:费用化研发支出上期发生额:0.672764003276825:62189328.77:171:1 +当期资本化研发投入:本年度资本化研发投入:其中:费用化研发支出本期发生额:0.6637065410614014:59488138.59:171:1 +当期资本化研发投入:本期发生额资本化研发投入:其中:费用化研发支出上期发生额:0.7180575728416443:62189328.77:171:1 +当期资本化研发投入:本期发生额资本化研发投入:其中:费用化研发支出本期发生额:0.7067016959190369:59488138.59:171:1 +当期资本化研发投入:2023年资本化研发投入:研发费用2023年度:0.6773908138275146:40413176.50:82:1 +当期资本化研发投入:2023年资本化研发投入:研发费用2022年度:0.6480236053466797:46492323.47:82:1 +当期资本化研发投入:2023年全年资本化研发投入:研发费用2023年度:0.7116182446479797:40413176.50:82:1 +当期资本化研发投入:2023年全年资本化研发投入:研发费用2022年度:0.6779475212097168:46492323.47:82:1 +当期资本化研发投入:2023年金额资本化研发投入:研发费用2023年度:0.6702579855918884:40413176.50:82:1 +当期资本化研发投入:2023年金额资本化研发投入:研发费用2022年度:0.6371675133705139:46492323.47:82:1 +上年同期资本化研发投入:上年同期研发投入资本化的金额:其中:费用化研发支出上期发生额:0.7401091456413269:62189328.77:171:1 +上年同期资本化研发投入:上年同期研发投入资本化的金额:其中:费用化研发支出本期发生额:0.7073288559913635:59488138.59:171:1 +上年同期资本化研发投入:上期研发投入资本化的金额:其中:费用化研发支出上期发生额:0.758450448513031:62189328.77:171:1 +上年同期资本化研发投入:上期研发投入资本化的金额:其中:费用化研发支出本期发生额:0.7242143750190735:59488138.59:171:1 +上年同期资本化研发投入:上年度研发投入资本化的金额:其中:费用化研发支出上期发生额:0.7369818091392517:62189328.77:171:1 +上年同期资本化研发投入:上年度研发投入资本化的金额:其中:费用化研发支出本期发生额:0.7196356654167175:59488138.59:171:1 +上年同期资本化研发投入:2022年研发投入资本化的金额:研发费用2022年度:0.7325294613838196:46492323.47:82:1 +上年同期资本化研发投入:2022年研发投入资本化的金额:研发费用2023年度:0.706552267074585:40413176.50:82:1 +上年同期资本化研发投入:2022年全年研发投入资本化的金额:研发费用2022年度:0.759177565574646:46492323.47:82:1 +上年同期资本化研发投入:2022年全年研发投入资本化的金额:研发费用2023年度:0.735794723033905:40413176.50:82:1 +上年同期资本化研发投入:2022年金额研发投入资本化的金额:研发费用2022年度:0.699307382106781:46492323.47:82:1 +上年同期资本化研发投入:2022年金额研发投入资本化的金额:研发费用2023年度:0.6736913323402405:40413176.50:82:1 +上年同期资本化研发投入:上年同期研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7720836997032166:62189328.77:171:1 +上年同期资本化研发投入:上年同期研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7355310916900635:59488138.59:171:1 +上年同期资本化研发投入:上期研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7982574105262756:62189328.77:171:1 +上年同期资本化研发投入:上期研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7582351565361023:59488138.59:171:1 +上年同期资本化研发投入:上年度研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7727710604667664:62189328.77:171:1 +上年同期资本化研发投入:上年度研发支出资本化的金额:其中:费用化研发支出本期发生额:0.7472457885742188:59488138.59:171:1 +上年同期资本化研发投入:2022年研发支出资本化的金额:研发费用2022年度:0.7549300789833069:46492323.47:82:1 +上年同期资本化研发投入:2022年研发支出资本化的金额:研发费用2023年度:0.7340965867042542:40413176.50:82:1 +上年同期资本化研发投入:2022年全年研发支出资本化的金额:研发费用2022年度:0.7730686664581299:46492323.47:82:1 +上年同期资本化研发投入:2022年全年研发支出资本化的金额:研发费用2023年度:0.7527860999107361:40413176.50:82:1 +上年同期资本化研发投入:2022年金额研发支出资本化的金额:研发费用2022年度:0.726545512676239:46492323.47:82:1 +上年同期资本化研发投入:2022年金额研发支出资本化的金额:研发费用2023年度:0.703262209892273:40413176.50:82:1 +上年同期资本化研发投入:上年同期资本化研发投入:其中:费用化研发支出上期发生额:0.7037675380706787:62189328.77:171:1 +上年同期资本化研发投入:上年同期资本化研发投入:其中:费用化研发支出本期发生额:0.6625241041183472:59488138.59:171:1 +上年同期资本化研发投入:上期资本化研发投入:其中:费用化研发支出上期发生额:0.695621132850647:62189328.77:171:1 +上年同期资本化研发投入:上期资本化研发投入:其中:费用化研发支出本期发生额:0.6502957940101624:59488138.59:171:1 +上年同期资本化研发投入:上年度资本化研发投入:其中:费用化研发支出上期发生额:0.7284855246543884:62189328.77:171:1 +上年同期资本化研发投入:上年度资本化研发投入:其中:费用化研发支出本期发生额:0.6957793235778809:59488138.59:171:1 +上年同期资本化研发投入:2022年资本化研发投入:研发费用2022年度:0.6663859486579895:46492323.47:82:1 +上年同期资本化研发投入:2022年资本化研发投入:研发费用2023年度:0.6566985845565796:40413176.50:82:1 +上年同期资本化研发投入:2022年全年资本化研发投入:研发费用2022年度:0.7073492407798767:46492323.47:82:1 +上年同期资本化研发投入:2022年全年资本化研发投入:研发费用2023年度:0.7004823088645935:40413176.50:82:1 +上年同期资本化研发投入:2022年金额资本化研发投入:研发费用2022年度:0.6548672914505005:46492323.47:82:1 +上年同期资本化研发投入:2022年金额资本化研发投入:研发费用2023年度:0.6448048949241638:40413176.50:82:1 +前年同期资本化研发投入:前年同期研发投入资本化的金额:其中:费用化研发支出上期发生额:0.7110123634338379:62189328.77:171:1 +前年同期资本化研发投入:前年同期研发投入资本化的金额:其中:费用化研发支出本期发生额:0.6780908703804016:59488138.59:171:1 +前年同期资本化研发投入:2021年研发投入资本化的金额:研发费用2022年度:0.6719006896018982:46492323.47:82:1 +前年同期资本化研发投入:2021年研发投入资本化的金额:研发费用2023年度:0.6583369374275208:40413176.50:82:1 +前年同期资本化研发投入:2021年全年研发投入资本化的金额:研发费用2022年度:0.6874759793281555:46492323.47:82:1 +前年同期资本化研发投入:2021年全年研发投入资本化的金额:研发费用2023年度:0.673445463180542:40413176.50:82:1 +前年同期资本化研发投入:2021年金额研发投入资本化的金额:研发费用2022年度:0.6362329125404358:46492323.47:82:1 +前年同期资本化研发投入:2021年金额研发投入资本化的金额:研发费用2023年度:0.623939573764801:40413176.50:82:1 +前年同期资本化研发投入:前年同期研发支出资本化的金额:其中:费用化研发支出上期发生额:0.7507959604263306:62189328.77:171:1 +前年同期资本化研发投入:前年同期研发支出资本化的金额:其中:费用化研发支出本期发生额:0.714769184589386:59488138.59:171:1 +前年同期资本化研发投入:2021年研发支出资本化的金额:研发费用2022年度:0.6955376863479614:46492323.47:82:1 +前年同期资本化研发投入:2021年研发支出资本化的金额:研发费用2023年度:0.686894953250885:40413176.50:82:1 +前年同期资本化研发投入:2021年全年研发支出资本化的金额:研发费用2022年度:0.7095136046409607:46492323.47:82:1 +前年同期资本化研发投入:2021年全年研发支出资本化的金额:研发费用2023年度:0.69923996925354:40413176.50:82:1 +前年同期资本化研发投入:2021年金额研发支出资本化的金额:研发费用2022年度:0.6596825122833252:46492323.47:82:1 +前年同期资本化研发投入:2021年金额研发支出资本化的金额:其中:费用化研发支出上期发生额:0.653965175151825:62189328.77:171:1 +前年同期资本化研发投入:前年同期资本化研发投入:其中:费用化研发支出上期发生额:0.6918579936027527:62189328.77:171:1 +前年同期资本化研发投入:前年同期资本化研发投入:其中:费用化研发支出本期发生额:0.6563490629196167:59488138.59:171:1 +前年同期资本化研发投入:2021年资本化研发投入:研发费用2022年度:0.611398458480835:46492323.47:82:1 +前年同期资本化研发投入:2021年资本化研发投入:研发费用2023年度:0.608823299407959:40413176.50:82:1 +前年同期资本化研发投入:2021年全年资本化研发投入:研发费用2022年度:0.6379700303077698:46492323.47:82:1 +前年同期资本化研发投入:2021年全年资本化研发投入:研发费用2023年度:0.6368879675865173:40413176.50:82:1 +前年同期资本化研发投入:2021年金额资本化研发投入:研发费用2022年度:0.5958791375160217:46492323.47:82:1 +前年同期资本化研发投入:2021年金额资本化研发投入:研发费用2023年度:0.5934922099113464:40413176.50:82:1 +资本化研发投入同比变动:研发投入资本化的金额同比变动:其中:费用化研发支出上期发生额:0.6932308077812195:62189328.77:171:1 +资本化研发投入同比变动:研发投入资本化的金额同比变动:其中:费用化研发支出本期发生额:0.6738178730010986:59488138.59:171:1 +资本化研发投入同比变动:研发投入资本化的金额同比增减:其中:费用化研发支出上期发生额:0.6905614733695984:62189328.77:171:1 +资本化研发投入同比变动:研发投入资本化的金额同比增减:其中:费用化研发支出本期发生额:0.6658340692520142:59488138.59:171:1 +资本化研发投入同比变动:研发投入资本化的金额同比上升:其中:费用化研发支出上期发生额:0.6802895069122314:62189328.77:171:1 +资本化研发投入同比变动:研发投入资本化的金额同比上升:其中:费用化研发支出本期发生额:0.6514178514480591:59488138.59:171:1 +资本化研发投入同比变动:研发投入资本化的金额同比下降:其中:费用化研发支出上期发生额:0.6775098443031311:62189328.77:171:1 +资本化研发投入同比变动:研发投入资本化的金额同比下降:其中:费用化研发支出本期发生额:0.6473228931427002:59488138.59:171:1 +资本化研发投入同比变动:研发投入资本化的金额变化幅度:其中:费用化研发支出上期发生额:0.6620462536811829:62189328.77:171:1 +资本化研发投入同比变动:研发投入资本化的金额变化幅度:其中:费用化研发支出本期发生额:0.6382988691329956:59488138.59:171:1 +资本化研发投入同比变动:研发投入资本化的金额变动比例:其中:费用化研发支出上期发生额:0.6742682456970215:62189328.77:171:1 +资本化研发投入同比变动:研发投入资本化的金额变动比例:其中:费用化研发支出本期发生额:0.6542381644248962:59488138.59:171:1 +资本化研发投入同比变动:研发投入资本化的金额本期比上年同期增减:其中:费用化研发支出上期发生额:0.7097933888435364:62189328.77:171:1 +资本化研发投入同比变动:研发投入资本化的金额本期比上年同期增减:其中:费用化研发支出本期发生额:0.7013245820999146:59488138.59:171:1 +资本化研发投入同比变动:研发投入资本化的金额本年比上年增减:其中:费用化研发支出上期发生额:0.7041659951210022:62189328.77:171:1 +资本化研发投入同比变动:研发投入资本化的金额本年比上年增减:其中:费用化研发支出本期发生额:0.690773069858551:59488138.59:171:1 +资本化研发投入同比变动:研发支出资本化的金额同比变动:其中:费用化研发支出上期发生额:0.7355541586875916:62189328.77:171:1 +资本化研发投入同比变动:研发支出资本化的金额同比变动:其中:费用化研发支出本期发生额:0.7104172706604004:59488138.59:171:1 +资本化研发投入同比变动:研发支出资本化的金额同比增减:其中:费用化研发支出上期发生额:0.7387428283691406:62189328.77:171:1 +资本化研发投入同比变动:研发支出资本化的金额同比增减:其中:费用化研发支出本期发生额:0.7088135480880737:59488138.59:171:1 +资本化研发投入同比变动:研发支出资本化的金额同比上升:其中:费用化研发支出上期发生额:0.7329922914505005:62189328.77:171:1 +资本化研发投入同比变动:研发支出资本化的金额同比上升:其中:费用化研发支出本期发生额:0.6985768675804138:59488138.59:171:1 +资本化研发投入同比变动:研发支出资本化的金额同比下降:其中:费用化研发支出上期发生额:0.7278560996055603:62189328.77:171:1 +资本化研发投入同比变动:研发支出资本化的金额同比下降:其中:费用化研发支出本期发生额:0.6930238604545593:59488138.59:171:1 +资本化研发投入同比变动:研发支出资本化的金额变化幅度:其中:费用化研发支出上期发生额:0.7113882899284363:62189328.77:171:1 +资本化研发投入同比变动:研发支出资本化的金额变化幅度:其中:费用化研发支出本期发生额:0.6822489500045776:59488138.59:171:1 +资本化研发投入同比变动:研发支出资本化的金额变动比例:其中:费用化研发支出上期发生额:0.7152115702629089:62189328.77:171:1 +资本化研发投入同比变动:研发支出资本化的金额变动比例:其中:费用化研发支出本期发生额:0.688707172870636:59488138.59:171:1 +资本化研发投入同比变动:研发支出资本化的金额本期比上年同期增减:其中:费用化研发支出上期发生额:0.7388390302658081:62189328.77:171:1 +资本化研发投入同比变动:研发支出资本化的金额本期比上年同期增减:其中:费用化研发支出本期发生额:0.7243691086769104:59488138.59:171:1 +资本化研发投入同比变动:研发支出资本化的金额本年比上年增减:其中:费用化研发支出上期发生额:0.7399269342422485:62189328.77:171:1 +资本化研发投入同比变动:研发支出资本化的金额本年比上年增减:其中:费用化研发支出本期发生额:0.7207632064819336:59488138.59:171:1 +资本化研发投入同比变动:资本化研发投入同比变动:其中:费用化研发支出上期发生额:0.7077454924583435:62189328.77:171:1 +资本化研发投入同比变动:资本化研发投入同比变动:其中:费用化研发支出本期发生额:0.6807712316513062:59488138.59:171:1 +资本化研发投入同比变动:资本化研发投入同比增减:其中:费用化研发支出上期发生额:0.7054114937782288:62189328.77:171:1 +资本化研发投入同比变动:资本化研发投入同比增减:其中:费用化研发支出本期发生额:0.6745649576187134:59488138.59:171:1 +资本化研发投入同比变动:资本化研发投入同比上升:其中:费用化研发支出上期发生额:0.6776103377342224:62189328.77:171:1 +资本化研发投入同比变动:资本化研发投入同比上升:其中:费用化研发支出本期发生额:0.6421412825584412:59488138.59:171:1 +资本化研发投入同比变动:资本化研发投入同比下降:其中:费用化研发支出上期发生额:0.6849082708358765:62189328.77:171:1 +资本化研发投入同比变动:资本化研发投入同比下降:其中:费用化研发支出本期发生额:0.6484125852584839:59488138.59:171:1 +资本化研发投入同比变动:资本化研发投入变化幅度:其中:费用化研发支出上期发生额:0.6706559062004089:62189328.77:171:1 +资本化研发投入同比变动:资本化研发投入变化幅度:其中:费用化研发支出本期发生额:0.6391206979751587:59488138.59:171:1 +资本化研发投入同比变动:资本化研发投入变动比例:其中:费用化研发支出上期发生额:0.7027855515480042:62189328.77:171:1 +资本化研发投入同比变动:资本化研发投入变动比例:其中:费用化研发支出本期发生额:0.6740719079971313:59488138.59:171:1 +资本化研发投入同比变动:资本化研发投入本期比上年同期增减:其中:费用化研发支出上期发生额:0.7135870456695557:62189328.77:171:1 +资本化研发投入同比变动:资本化研发投入本期比上年同期增减:其中:费用化研发支出本期发生额:0.6999106407165527:59488138.59:171:1 +资本化研发投入同比变动:资本化研发投入本年比上年增减:其中:费用化研发支出上期发生额:0.6896443963050842:62189328.77:171:1 +资本化研发投入同比变动:资本化研发投入本年比上年增减:其中:费用化研发支出本期发生额:0.6681532859802246:59488138.59:171:1 +当期资本化研发投入占比:当期资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.6913068294525146:62189328.77:171:1 +当期资本化研发投入占比:当期资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.661847710609436:59488138.59:171:1 +当期资本化研发投入占比:本期资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.6858418583869934:62189328.77:171:1 +当期资本化研发投入占比:本期资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6645534634590149:59488138.59:171:1 +当期资本化研发投入占比:本报告期资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.6785212159156799:62189328.77:171:1 +当期资本化研发投入占比:本报告期资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6546223163604736:59488138.59:171:1 +当期资本化研发投入占比:报告期资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.6815398335456848:62189328.77:171:1 +当期资本化研发投入占比:报告期资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6521741151809692:59488138.59:171:1 +当期资本化研发投入占比:报告期内资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.6923779845237732:62189328.77:171:1 +当期资本化研发投入占比:报告期内资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6743389964103699:59488138.59:171:1 +当期资本化研发投入占比:本年度资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.6790412068367004:62189328.77:171:1 +当期资本化研发投入占比:本年度资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6636756658554077:59488138.59:171:1 +当期资本化研发投入占比:本期发生额资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.7084001898765564:62189328.77:171:1 +当期资本化研发投入占比:本期发生额资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6887836456298828:59488138.59:171:1 +当期资本化研发投入占比:2023年资本化研发投入占研发投入的比例:研发费用2023年度:0.7002663612365723:40413176.50:82:1 +当期资本化研发投入占比:2023年资本化研发投入占研发投入的比例:研发费用2022年度:0.6709545850753784:46492323.47:82:1 +当期资本化研发投入占比:2023年全年资本化研发投入占研发投入的比例:研发费用2023年度:0.7302125692367554:40413176.50:82:1 +当期资本化研发投入占比:2023年全年资本化研发投入占研发投入的比例:研发费用2022年度:0.6954445242881775:46492323.47:82:1 +当期资本化研发投入占比:2023年金额资本化研发投入占研发投入的比例:研发费用2023年度:0.6988831758499146:40413176.50:82:1 +当期资本化研发投入占比:2023年金额资本化研发投入占研发投入的比例:研发费用2022年度:0.6666131615638733:46492323.47:82:1 +当期资本化研发投入占比:当期资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7601867914199829:62189328.77:171:1 +当期资本化研发投入占比:当期资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7252825498580933:59488138.59:171:1 +当期资本化研发投入占比:本期资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7589678168296814:62189328.77:171:1 +当期资本化研发投入占比:本期资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7315105199813843:59488138.59:171:1 +当期资本化研发投入占比:本报告期资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7450704574584961:62189328.77:171:1 +当期资本化研发投入占比:本报告期资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.71622633934021:59488138.59:171:1 +当期资本化研发投入占比:报告期资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7451675534248352:62189328.77:171:1 +当期资本化研发投入占比:报告期资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7100793123245239:59488138.59:171:1 +当期资本化研发投入占比:报告期内资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7496164441108704:62189328.77:171:1 +当期资本化研发投入占比:报告期内资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7269117832183838:59488138.59:171:1 +当期资本化研发投入占比:本年度资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7522842288017273:62189328.77:171:1 +当期资本化研发投入占比:本年度资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7309399843215942:59488138.59:171:1 +当期资本化研发投入占比:本期发生额资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7791966199874878:62189328.77:171:1 +当期资本化研发投入占比:本期发生额资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7531725168228149:59488138.59:171:1 +当期资本化研发投入占比:2023年资本化研发支出占研发支出的比例:研发费用2023年度:0.7420212030410767:40413176.50:82:1 +当期资本化研发投入占比:2023年资本化研发支出占研发支出的比例:研发费用2022年度:0.7119235396385193:46492323.47:82:1 +当期资本化研发投入占比:2023年全年资本化研发支出占研发支出的比例:研发费用2023年度:0.7651351094245911:40413176.50:82:1 +当期资本化研发投入占比:2023年全年资本化研发支出占研发支出的比例:研发费用2022年度:0.7301470637321472:46492323.47:82:1 +当期资本化研发投入占比:2023年金额资本化研发支出占研发支出的比例:研发费用2023年度:0.733086347579956:40413176.50:82:1 +当期资本化研发投入占比:2023年金额资本化研发支出占研发支出的比例:研发费用2022年度:0.6991769671440125:46492323.47:82:1 +上年同期资本化研发投入占比:上年同期资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.7171524167060852:62189328.77:171:1 +上年同期资本化研发投入占比:上年同期资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6753838062286377:59488138.59:171:1 +上年同期资本化研发投入占比:上期资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.7175729870796204:62189328.77:171:1 +上年同期资本化研发投入占比:上期资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6691127419471741:59488138.59:171:1 +上年同期资本化研发投入占比:上年度资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.7205886840820312:62189328.77:171:1 +上年同期资本化研发投入占比:上年度资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6852710843086243:59488138.59:171:1 +上年同期资本化研发投入占比:2022年资本化研发投入占研发投入的比例:研发费用2022年度:0.6905239224433899:46492323.47:82:1 +上年同期资本化研发投入占比:2022年资本化研发投入占研发投入的比例:研发费用2023年度:0.6761232614517212:40413176.50:82:1 +上年同期资本化研发投入占比:2022年全年资本化研发投入占研发投入的比例:研发费用2022年度:0.7200315594673157:46492323.47:82:1 +上年同期资本化研发投入占比:2022年全年资本化研发投入占研发投入的比例:研发费用2023年度:0.70856773853302:40413176.50:82:1 +上年同期资本化研发投入占比:2022年金额资本化研发投入占研发投入的比例:研发费用2022年度:0.6858579516410828:46492323.47:82:1 +上年同期资本化研发投入占比:2022年金额资本化研发投入占研发投入的比例:研发费用2023年度:0.6730085015296936:40413176.50:82:1 +上年同期资本化研发投入占比:上年同期资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.774750828742981:62189328.77:171:1 +上年同期资本化研发投入占比:上年同期资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7275823354721069:59488138.59:171:1 +上年同期资本化研发投入占比:上期资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7783069014549255:62189328.77:171:1 +上年同期资本化研发投入占比:上期资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7244986891746521:59488138.59:171:1 +上年同期资本化研发投入占比:上年度资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7813200354576111:62189328.77:171:1 +上年同期资本化研发投入占比:上年度资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7408679127693176:59488138.59:171:1 +上年同期资本化研发投入占比:2022年资本化研发支出占研发支出的比例:研发费用2022年度:0.7313217520713806:46492323.47:82:1 +上年同期资本化研发投入占比:2022年资本化研发支出占研发支出的比例:研发费用2023年度:0.7179096937179565:40413176.50:82:1 +上年同期资本化研发投入占比:2022年全年资本化研发支出占研发支出的比例:研发费用2022年度:0.7543909549713135:46492323.47:82:1 +上年同期资本化研发投入占比:2022年全年资本化研发支出占研发支出的比例:研发费用2023年度:0.7431010007858276:40413176.50:82:1 +上年同期资本化研发投入占比:2022年金额资本化研发支出占研发支出的比例:研发费用2022年度:0.7192618250846863:46492323.47:82:1 +上年同期资本化研发投入占比:2022年金额资本化研发支出占研发支出的比例:研发费用2023年度:0.7072563767433167:40413176.50:82:1 +前年同期资本化研发投入占比:前年同期资本化研发投入占研发投入的比例:其中:费用化研发支出上期发生额:0.690614640712738:62189328.77:171:1 +前年同期资本化研发投入占比:前年同期资本化研发投入占研发投入的比例:其中:费用化研发支出本期发生额:0.6524224281311035:59488138.59:171:1 +前年同期资本化研发投入占比:2021年资本化研发投入占研发投入的比例:研发费用2022年度:0.6402491927146912:46492323.47:82:1 +前年同期资本化研发投入占比:2021年资本化研发投入占研发投入的比例:研发费用2023年度:0.6332999467849731:40413176.50:82:1 +前年同期资本化研发投入占比:2021年全年资本化研发投入占研发投入的比例:研发费用2022年度:0.6556764245033264:46492323.47:82:1 +前年同期资本化研发投入占比:2021年全年资本化研发投入占研发投入的比例:研发费用2023年度:0.6515828371047974:40413176.50:82:1 +前年同期资本化研发投入占比:2021年金额资本化研发投入占研发投入的比例:研发费用2022年度:0.6376383304595947:46492323.47:82:1 +前年同期资本化研发投入占比:2021年金额资本化研发投入占研发投入的比例:研发费用2023年度:0.6326647996902466:40413176.50:82:1 +前年同期资本化研发投入占比:前年同期资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.7513870596885681:62189328.77:171:1 +前年同期资本化研发投入占比:前年同期资本化研发支出占研发支出的比例:其中:费用化研发支出本期发生额:0.7070838212966919:59488138.59:171:1 +前年同期资本化研发投入占比:2021年资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.6879241466522217:62189328.77:171:1 +前年同期资本化研发投入占比:2021年资本化研发支出占研发支出的比例:研发费用2022年度:0.6825991868972778:46492323.47:82:1 +前年同期资本化研发投入占比:2021年全年资本化研发支出占研发支出的比例:研发费用2022年度:0.6946429014205933:46492323.47:82:1 +前年同期资本化研发投入占比:2021年全年资本化研发支出占研发支出的比例:研发费用2023年度:0.6915282011032104:40413176.50:82:1 +前年同期资本化研发投入占比:2021年金额资本化研发支出占研发支出的比例:其中:费用化研发支出上期发生额:0.685718834400177:62189328.77:171:1 +前年同期资本化研发投入占比:2021年金额资本化研发支出占研发支出的比例:研发费用2022年度:0.6732593178749084:46492323.47:82:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例同比变动:其中:费用化研发支出上期发生额:0.6873283982276917:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例同比变动:其中:费用化研发支出本期发生额:0.6583584547042847:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例同比增减:其中:费用化研发支出上期发生额:0.6975170373916626:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例同比增减:其中:费用化研发支出本期发生额:0.6652538776397705:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例同比上升:其中:费用化研发支出上期发生额:0.6790310740470886:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例同比上升:其中:费用化研发支出本期发生额:0.6435939073562622:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例同比下降:其中:费用化研发支出上期发生额:0.6813059449195862:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例同比下降:其中:费用化研发支出本期发生额:0.6452513933181763:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例变化幅度:其中:费用化研发支出上期发生额:0.6674928069114685:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例变化幅度:其中:费用化研发支出本期发生额:0.6353918313980103:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例变动比例:其中:费用化研发支出上期发生额:0.674227774143219:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例变动比例:其中:费用化研发支出本期发生额:0.6428543329238892:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例本期比上年同期增减:其中:费用化研发支出上期发生额:0.705160915851593:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例本期比上年同期增减:其中:费用化研发支出本期发生额:0.6883405447006226:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例本年比上年增减:其中:费用化研发支出上期发生额:0.702910840511322:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发投入占研发投入的比例本年比上年增减:其中:费用化研发支出本期发生额:0.6810764074325562:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例同比变动:其中:费用化研发支出上期发生额:0.7437787055969238:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例同比变动:其中:费用化研发支出本期发生额:0.7091113328933716:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例同比增减:其中:费用化研发支出上期发生额:0.7520627379417419:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例同比增减:其中:费用化研发支出本期发生额:0.7134777307510376:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例同比上升:其中:费用化研发支出上期发生额:0.7400727868080139:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例同比上升:其中:费用化研发支出本期发生额:0.6985464096069336:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例同比下降:其中:费用化研发支出上期发生额:0.7368139624595642:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例同比下降:其中:费用化研发支出本期发生额:0.695686936378479:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例变化幅度:其中:费用化研发支出上期发生额:0.7391538023948669:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例变化幅度:其中:费用化研发支出本期发生额:0.7016798853874207:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例变动比例:其中:费用化研发支出上期发生额:0.7410556674003601:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例变动比例:其中:费用化研发支出本期发生额:0.7044199705123901:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例本期比上年同期增减:其中:费用化研发支出上期发生额:0.7558754086494446:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例本期比上年同期增减:其中:费用化研发支出本期发生额:0.7314084768295288:59488138.59:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例本年比上年增减:其中:费用化研发支出上期发生额:0.7583093047142029:62189328.77:171:1 +资本化研发投入占比同比变动:资本化研发支出占研发支出的比例本年比上年增减:其中:费用化研发支出本期发生额:0.7285597920417786:59488138.59:171:1 +当期研发投入占营业收入比例:当期研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.7264764308929443:62189328.77:171:1 +当期研发投入占营业收入比例:当期研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.7118239402770996:59488138.59:171:1 +当期研发投入占营业收入比例:本期研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.7228354811668396:59488138.59:171:1 +当期研发投入占营业收入比例:本期研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.7172864079475403:62189328.77:171:1 +当期研发投入占营业收入比例:本报告期研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.7093595862388611:62189328.77:171:1 +当期研发投入占营业收入比例:本报告期研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.7014721632003784:59488138.59:171:1 +当期研发投入占营业收入比例:报告期研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.7133808135986328:62189328.77:171:1 +当期研发投入占营业收入比例:报告期研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.6965571641921997:59488138.59:171:1 +当期研发投入占营业收入比例:报告期内研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.7008248567581177:59488138.59:171:1 +当期研发投入占营业收入比例:报告期内研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.6993891596794128:62189328.77:171:1 +当期研发投入占营业收入比例:本年度研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.6906678676605225:59488138.59:171:1 +当期研发投入占营业收入比例:本年度研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.6823857426643372:62189328.77:171:1 +当期研发投入占营业收入比例:本期发生额研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.7166961431503296:62189328.77:171:1 +当期研发投入占营业收入比例:本期发生额研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.713179886341095:59488138.59:171:1 +当期研发投入占营业收入比例:2023年研发投入总额占营业收入比例:研发费用2023年度:0.7692245841026306:40413176.50:82:1 +当期研发投入占营业收入比例:2023年研发投入总额占营业收入比例:研发费用2022年度:0.742644727230072:46492323.47:82:1 +当期研发投入占营业收入比例:2023年全年研发投入总额占营业收入比例:研发费用2023年度:0.7758121490478516:40413176.50:82:1 +当期研发投入占营业收入比例:2023年全年研发投入总额占营业收入比例:研发费用2022年度:0.7475318312644958:46492323.47:82:1 +当期研发投入占营业收入比例:2023年金额研发投入总额占营业收入比例:研发费用2023年度:0.7497574090957642:40413176.50:82:1 +当期研发投入占营业收入比例:2023年金额研发投入总额占营业收入比例:研发费用2022年度:0.7225124835968018:46492323.47:82:1 +上年同期研发投入占营业收入比例:上年同期研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.7279837727546692:62189328.77:171:1 +上年同期研发投入占营业收入比例:上年同期研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.6944128274917603:59488138.59:171:1 +上年同期研发投入占营业收入比例:上期研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.7575743198394775:62189328.77:171:1 +上年同期研发投入占营业收入比例:上期研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.7249627113342285:59488138.59:171:1 +上年同期研发投入占营业收入比例:上年度研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.7156901955604553:62189328.77:171:1 +上年同期研发投入占营业收入比例:上年度研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.6985364556312561:59488138.59:171:1 +上年同期研发投入占营业收入比例:2022年研发投入总额占营业收入比例:研发费用2022年度:0.7728416919708252:46492323.47:82:1 +上年同期研发投入占营业收入比例:2022年研发投入总额占营业收入比例:研发费用2023年度:0.7371199727058411:40413176.50:82:1 +上年同期研发投入占营业收入比例:2022年全年研发投入总额占营业收入比例:研发费用2022年度:0.7799626588821411:46492323.47:82:1 +上年同期研发投入占营业收入比例:2022年全年研发投入总额占营业收入比例:研发费用2023年度:0.7463829517364502:40413176.50:82:1 +上年同期研发投入占营业收入比例:2022年金额研发投入总额占营业收入比例:研发费用2022年度:0.7459007501602173:46492323.47:82:1 +上年同期研发投入占营业收入比例:2022年金额研发投入总额占营业收入比例:研发费用2023年度:0.7080227136611938:40413176.50:82:1 +前年同期研发投入占营业收入比例:前年同期研发投入总额占营业收入比例:其中:费用化研发支出上期发生额:0.6949669122695923:62189328.77:171:1 +前年同期研发投入占营业收入比例:前年同期研发投入总额占营业收入比例:其中:费用化研发支出本期发生额:0.6621950268745422:59488138.59:171:1 +前年同期研发投入占营业收入比例:2021年研发投入总额占营业收入比例:研发费用2022年度:0.6998984217643738:46492323.47:82:1 +前年同期研发投入占营业收入比例:2021年研发投入总额占营业收入比例:研发费用2023年度:0.6787154674530029:40413176.50:82:1 +前年同期研发投入占营业收入比例:2021年全年研发投入总额占营业收入比例:研发费用2022年度:0.6999029517173767:46492323.47:82:1 +前年同期研发投入占营业收入比例:2021年全年研发投入总额占营业收入比例:研发费用2023年度:0.6790218353271484:40413176.50:82:1 +前年同期研发投入占营业收入比例:2021年金额研发投入总额占营业收入比例:研发费用2022年度:0.6728917956352234:46492323.47:82:1 +前年同期研发投入占营业收入比例:2021年金额研发投入总额占营业收入比例:研发费用2023年度:0.6510370969772339:40413176.50:82:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例同比变动:其中:费用化研发支出上期发生额:0.6874906420707703:62189328.77:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例同比变动:其中:费用化研发支出本期发生额:0.6670337319374084:59488138.59:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例同比增减:其中:费用化研发支出上期发生额:0.685393750667572:62189328.77:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例同比增减:其中:费用化研发支出本期发生额:0.6588724255561829:59488138.59:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例同比上升:其中:费用化研发支出上期发生额:0.6837812066078186:62189328.77:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例同比上升:其中:费用化研发支出本期发生额:0.6512950658798218:59488138.59:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例同比下降:其中:费用化研发支出上期发生额:0.6744316220283508:62189328.77:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例同比下降:其中:费用化研发支出本期发生额:0.6413045525550842:59488138.59:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例变化幅度:其中:费用化研发支出上期发生额:0.6922248601913452:62189328.77:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例变化幅度:其中:费用化研发支出本期发生额:0.6715036630630493:59488138.59:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例变动比例:其中:费用化研发支出上期发生额:0.6732086539268494:62189328.77:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例变动比例:其中:费用化研发支出本期发生额:0.6548466682434082:59488138.59:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例本期比上年同期增减:其中:费用化研发支出上期发生额:0.6802437901496887:62189328.77:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例本期比上年同期增减:其中:费用化研发支出本期发生额:0.671461820602417:59488138.59:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例本年比上年增减:其中:费用化研发支出上期发生额:0.6839109063148499:62189328.77:171:1 +研发投入占营业收入比例同比变动:研发投入总额占营业收入比例本年比上年增减:其中:费用化研发支出本期发生额:0.6765210032463074:59488138.59:171:1 diff --git a/zzb_data_prod/pdf_company.py b/zzb_data_prod/pdf_company.py new file mode 100644 index 0000000..67bb945 --- /dev/null +++ b/zzb_data_prod/pdf_company.py @@ -0,0 +1,108 @@ +from config import MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB +import mysql.connector +from http import HTTPStatus +import dashscope +import random,re +from pdfminer.high_level import extract_pages +from pdfminer.layout import LTTextBoxHorizontal + +dashscope.api_key='sk-63c02fbb9b7d4b0494a3200bec1ae286' + +def get_company_name(file_path): + line_text = '' + # 我们从PDF中提取页面,page_numbers=[4,5,6] + for pagenum, page in enumerate(extract_pages(file_path)): + if pagenum > 1: + break + # 找到所有的元素 + page_elements = [(element.y1, element) for element in page._objs] + # 查找组成页面的元素 + for i,component in enumerate(page_elements): + # 提取页面布局的元素 + element = component[1] + # 检查该元素是否为文本元素 + if isinstance(element, LTTextBoxHorizontal): + # 检查文本是否出现在表中 + line_text += element.get_text() + + return llm_service(line_text) + +def llm_service(user_prompt): + + system_prompt = ''' + 从以下数据报告中提取公司全称,只需要提取中文公司全称,不要增加其他内容,如果提取不到公司全称,请返回-。 + <数据报告> + + + ''' + system_prompt = system_prompt.replace('', user_prompt) + response = dashscope.Generation.call( + model='qwen-plus', + prompt = system_prompt, + seed=random.randint(1, 10000), + top_p=0.8, + result_format='message', + enable_search=False, + max_tokens=1500, + temperature=0.85, + repetition_penalty=1.0 + ) + if response.status_code == HTTPStatus.OK: + result = response['output']['choices'][0]['message']['content'] + return result + else: + print('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( + response.request_id, response.status_code, + response.code, response.message + )) + + return "llm_error" + +def update_company_name(file_id, company_name, cursor, conn): + update_sql = f''' + UPDATE report_check + SET c_name = '{company_name}' + WHERE id = {file_id} + ''' + cursor.execute(update_sql) + conn.commit() + +if __name__ == '__main__': + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor() + + data_query = ''' + SELECT id,file_path FROM report_check where c_name is null + ''' + + cursor.execute(data_query) + data_list = cursor.fetchall() + + for data in data_list: + try: + file_id = data[0] + file_path = f'/usr/local/zhanglei/financial/{data[1]}' + print(f'财报{file_id}开始解析') + # file_id = '1329' + # file_path = '/Users/zhengfei/Desktop/cb/zhangjun-600271-2023-nb-nb.pdf' + + company_name = get_company_name(file_path) + contains_newline = '\n' in company_name + if contains_newline: + lines = company_name.splitlines(True) + company_name = lines[0] + + if company_name != "llm_error": + update_company_name(file_id, company_name, cursor, conn) + except Exception as e: + print(f'财报{file_id}解析失败',e) + + cursor.close() + conn.close() diff --git a/zzb_data_prod/pdf_company_0824.py b/zzb_data_prod/pdf_company_0824.py new file mode 100644 index 0000000..3cbe302 --- /dev/null +++ b/zzb_data_prod/pdf_company_0824.py @@ -0,0 +1,268 @@ +from config import MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB +import mysql.connector +from http import HTTPStatus +import dashscope +import random,re +from pdfminer.high_level import extract_pages +from pdfminer.layout import LTTextBoxHorizontal +import PyPDF2 +dashscope.api_key='sk-63c02fbb9b7d4b0494a3200bec1ae286' + +def get_company_name(file_path): + line_text = '' + # 我们从PDF中提取页面,page_numbers=[4,5,6] + for pagenum, page in enumerate(extract_pages(file_path)): + if pagenum > 1: + break + # 找到所有的元素 + page_elements = [(element.y1, element) for element in page._objs] + # 查找组成页面的元素 + for i,component in enumerate(page_elements): + # 提取页面布局的元素 + element = component[1] + # 检查该元素是否为文本元素 + if isinstance(element, LTTextBoxHorizontal): + # 检查文本是否出现在表中 + line_text += element.get_text() + + return llm_service(line_text) +def get_company_code(file_path): + line_text = '' + # 我们从PDF中提取页面,page_numbers=[4,5,6] + for pagenum, page in enumerate(extract_pages(file_path)): + if pagenum > 1: + break + # 找到所有的元素 + page_elements = [(element.y1, element) for element in page._objs] + # 查找组成页面的元素 + for i,component in enumerate(page_elements): + # 提取页面布局的元素 + element = component[1] + # 检查该元素是否为文本元素 + if isinstance(element, LTTextBoxHorizontal): + # 检查文本是否出现在表中 + line_text += element.get_text() + + return llm_service_code(line_text) +#获取公司简介的那一页 +# def get_code_page(pdf_path): +# with open(pdf_path, 'rb') as file: +# reader = PyPDF2.PdfReader(file) +# outlines = reader.outline +# company_profile_page = None + +# def find_page_from_outlines(outlines): +# nonlocal company_profile_page +# for item in outlines: +# if isinstance(item, list): # 如果是子目录,则递归 +# find_page_from_outlines(item) +# else: +# title = item.title +# if title is not None and '公司简介' in title: +# # 获取页面的实际页码 +# page_num = reader.get_destination_page_number(item) +# company_profile_page = page_num +# return +# # 处理没有标题的情况 +# elif item.page is not None: +# page_num = reader.get_destination_page_number(item) +# if page_num is not None: +# pass + +# find_page_from_outlines(outlines) + +# return company_profile_page + +# def get_company_code(file_path): +# line_text = '' +# # 我们从PDF中提取页面,page_numbers=[4,5,6] +# for pagenum, page in enumerate(extract_pages(file_path)): +# print(f'页码是{get_code_page(file_path)+1}') +# if pagenum > 1 and pagenum != get_code_page(file_path)+1: +# break +# # 找到所有的元素 +# #print(pagenum) +# page_elements = [(element.y1, element) for element in page._objs] +# # 查找组成页面的元素 +# # for i,component in enumerate(page_elements): +# # # 提取页面布局的元素 +# # element = component[1] +# # # 检查该元素是否为文本元素 +# # if isinstance(element, LTTextBoxHorizontal): +# # # 检查文本是否出现在表中 +# # line_text += element.get_text() +# for _, element in page_elements: +# if isinstance(element, LTTextBoxHorizontal): +# # 提取文本并添加到 line_text +# line_text += element.get_text() + +# return llm_service_code(line_text) +def llm_service(user_prompt): + + system_prompt = ''' + 从以下数据报告中提取公司全称,只需要提取中文公司全称,不要增加其他内容,如果提取不到公司全称,请返回-,不要返回其他任何内容。 + <数据报告> + + + ''' + system_prompt = system_prompt.replace('', user_prompt) + response = dashscope.Generation.call( + model='qwen-plus', + prompt = system_prompt, + seed=random.randint(1, 10000), + top_p=0.8, + result_format='message', + enable_search=False, + max_tokens=1500, + temperature=0.85, + repetition_penalty=1.0 + ) + if response.status_code == HTTPStatus.OK: + result = response['output']['choices'][0]['message']['content'] + return result + else: + print('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( + response.request_id, response.status_code, + response.code, response.message + )) + + return "llm_error" +def llm_service_code(user_prompt): + + system_prompt = ''' + 从以下数据报告中提取6位数字的股票代码,只需要提取股票代码,如果有多个则以','隔开,不要增加其他内容,如果提取不到股票代码,请返回-,不要返回其他任何内容。 + <数据报告> + + + ''' + system_prompt = system_prompt.replace('', user_prompt) + response = dashscope.Generation.call( + model='qwen-plus', + prompt = system_prompt, + seed=random.randint(1, 10000), + top_p=0.8, + result_format='message', + enable_search=False, + max_tokens=1500, + temperature=0.85, + repetition_penalty=1.0 + ) + if response.status_code == HTTPStatus.OK: + result = response['output']['choices'][0]['message']['content'] + return result + else: + print('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( + response.request_id, response.status_code, + response.code, response.message + )) + + return "llm_error" +def update_company_name(file_id, company_name,company_code, cursor, conn): + update_sql = f''' + UPDATE report_check + SET c_name = '{company_name}',c_code = '{company_code}' + WHERE id = {file_id} + ''' + cursor.execute(update_sql) + conn.commit() +def name_code_fix(file_id,file_path): + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor() + + try: + # file_id = data[0] + # #生产环境地址 + # file_path = f'/usr/local/zhanglei/financial{data[1]}' + # #测试环境地址 + # # file_path_1 = f'/root/pdf_parser/pdf/{data[1]}' + # # file_path = file_path_1.replace('/upload/file/','') + # print(f'财报{file_id}开始解析') + # #file_id = '305' + # #file_path = r"F:\11_pdf\7874.pdf" + company_name = get_company_name(file_path) + contains_newline = '\n' in company_name + if contains_newline: + lines = company_name.splitlines(True) + company_name = lines[0] + + company_code = get_company_code(file_path) + contains_newline1 = '\n' in company_code + if contains_newline1: + lines = company_code.splitlines(True) + company_code = lines[0] + + if company_name != "llm_error" or company_code != "llm_error": + #print(company_code) + pattern = re.compile(r'^(\d{6}|\d{6}(,\d{6})*)$') + if not pattern.match(company_code): + company_code = '-' + if len(company_name) > 15 or company_name == '-': + company_name = '' + update_company_name(file_id, company_name,company_code, cursor, conn) + except Exception as e: + print(f'财报解析失败',e) + + cursor.close() + conn.close() + + + +if __name__ == '__main__': + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor() + + data_query = ''' + SELECT id,file_path FROM report_check where c_code is null + ''' + + cursor.execute(data_query) + data_list = cursor.fetchall() + + for data in data_list: + try: + file_id = data[0] + #生产环境地址 + file_path = f'/usr/local/zhanglei/financial{data[1]}' + #测试环境地址 + # file_path_1 = f'/root/pdf_parser/pdf/{data[1]}' + # file_path = file_path_1.replace('/upload/file/','') + print(f'财报{file_id}开始解析') + #file_id = '305' + #file_path = r"F:\11_pdf\7874.pdf" + + company_name = get_company_name(file_path) + contains_newline = '\n' in company_name + if contains_newline: + lines = company_name.splitlines(True) + company_name = lines[0] + + company_code = get_company_code(file_path) + contains_newline1 = '\n' in company_code + if contains_newline1: + lines = company_code.splitlines(True) + company_code = lines[0] + + if company_name != "llm_error" or company_code != "llm_error": + #print(company_code) + pattern = re.compile(r'^(\d{6}|\d{6}(,\d{6})*)$') + if not pattern.match(company_code): + company_code = '-' + update_company_name(file_id, company_name,company_code, cursor, conn) + except Exception as e: + print(f'财报解析失败',e) + + cursor.close() + conn.close() diff --git a/zzb_data_prod/pdf_delete.py b/zzb_data_prod/pdf_delete.py new file mode 100644 index 0000000..713e46d --- /dev/null +++ b/zzb_data_prod/pdf_delete.py @@ -0,0 +1,98 @@ +#报错提示 +import paramiko +import time +import threading + +# 执行命令的函数 +def execute_commands_on_server(hostname, username, password, host): + try: + # 连接到服务器 + client = paramiko.SSHClient() + client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + client.connect(hostname=hostname, username=username, password=password) + + # 执行命令 + shell = client.invoke_shell() + #启动docker + shell.send("cd /root/pdf_parser/pdf\n") + time.sleep(1) + shell.send("rm -f *.pdf\n") + time.sleep(10) + shell.send("rm -f *.PDF\n") + time.sleep(10) + # 读取输出 + output = shell.recv(2048).decode() + print(f"Output from {hostname}:\n{output}") + + except paramiko.SSHException as e: + print(f"SSH connection error with {hostname}: {e}") + + finally: + client.close() + +# 创建线程函数 +def thread_function(server): + execute_commands_on_server(server['hostname'], server['username'], server['password'], server['host']) + +# 服务器列表 +# servers = [ +# {'hostname': 'server1.example.com', 'username': 'user1', 'password': 'pass1', 'host': 'host1'}, +# {'hostname': 'server2.example.com', 'username': 'user2', 'password': 'pass2', 'host': 'host2'}, +# # 添加更多服务器 +# ] +servers = [ + #{'hostname': '124.70.129.232', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'测试服务器'}, + # {'hostname': '1.94.179.121', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器'},#废弃 + +#旧10台 + {'hostname': '113.44.72.157', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器1'}, + {'hostname': '1.94.101.237', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器2'}, + {'hostname': '123.60.16.225', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器3'}, + {'hostname': '124.71.157.162', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器4'}, + + {'hostname': '1.94.60.103', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器5'}, + # {'hostname': '1.94.143.23', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器6'},#都往这里存 + {'hostname': '124.71.149.225', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器7'}, + {'hostname': '113.44.52.221', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器8'}, + {'hostname': '121.37.137.13', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器9'}, + {'hostname': '123.60.28.83', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'生产服务器10'}, +#新10台 + {'hostname': '192.168.0.19', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器1'}, + {'hostname': '192.168.0.53', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器2'}, + {'hostname': '192.168.0.150', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器3'}, + {'hostname': '192.168.0.210', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器4'}, + + {'hostname': '192.168.0.129', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器5'}, + {'hostname': '192.168.0.24', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器6'}, + {'hostname': '192.168.0.250', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器7'}, + {'hostname': '192.168.0.162', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器8'}, + {'hostname': '192.168.0.86', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器9'}, + {'hostname': '192.168.0.88', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新生产服务器10'}, +#再来11台新的 + {'hostname': '192.168.0.93', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器1'}, + {'hostname': '192.168.0.228', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器2'}, + {'hostname': '192.168.0.155', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器3'}, + {'hostname': '192.168.0.186', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器4'}, + + {'hostname': '192.168.0.56', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器5'}, + {'hostname': '192.168.0.185', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器6'}, + {'hostname': '192.168.0.72', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器7'}, + {'hostname': '192.168.0.35', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器8'}, + {'hostname': '192.168.0.230', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器9'}, + {'hostname': '192.168.0.125', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器10'}, + {'hostname': '192.168.0.46', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'新1生产服务器11'}, +# +] + +# 创建并启动线程 +threads = [] +for server in servers: + thread = threading.Thread(target=thread_function, args=(server,)) + threads.append(thread) + thread.start() + +# 等待所有线程完成 +for thread in threads: + thread.join() + +print("All commands executed.") diff --git a/zzb_data_prod/pdf_title.py b/zzb_data_prod/pdf_title.py new file mode 100644 index 0000000..0d96f66 --- /dev/null +++ b/zzb_data_prod/pdf_title.py @@ -0,0 +1,240 @@ +import PyPDF2 +import re +import os,threading +from config import REDIS_HOST,REDIS_PORT,REDIS_PASSWORD +import redis +import db_service +def get_tree_pages(root, info, depth=0,title_array=[]): + """ + Recursively iterate the outline tree + Find the pages pointed by the outline item + and get the assigned physical order id + + Decrement with padding if necessary + """ + + if isinstance(root, dict): + # print(root) + page = root['/Page'].get_object() + # print(id(page)) + t = root['/Title'] + title = t + if isinstance(t, PyPDF2.generic.ByteStringObject): + title = t.original_bytes.decode('utf8') + title = title.strip() + title = title.replace('\n', '') + title = title.replace('\r', '') + + page_num = info['all_pages'].get(id(page), 0) + if page_num == 0: + print('Not found page number for /Page!', page) + elif page_num < info['padding']: + page_num = 0 + else: + page_num -= info['padding'] + + + # str_val = '%-5d' % page_num + # str_val += '\t' * depth + # str_val += title + '\t' + '%3d' % page_num + # print(str_val) + title_array.append({ + 'title': title, + 'page_num': page_num, + 'depth': depth + }) + for elem in root: + get_tree_pages(elem, info, depth+1,title_array) + return title_array + + +def recursive_numbering(obj, info): + """ + Recursively iterate through all the pages in order and assign them a physical + order number + """ + # print(id(obj), obj) + if obj['/Type'] == '/Page': + obj_id = id(obj) + if obj_id not in info['all_pages']: + info['all_pages'][obj_id] = info['current_page_id'] + info['current_page_id'] += 1 + return + elif obj['/Type'] == '/Pages': + for page in obj['/Kids']: + recursive_numbering(page.get_object(), info) + +def get_numbers_between(numbers_between,start, end): + # 初始化一个空列表来存储两个数字之间的所有数字 + + # 遍历从开始数字到结束数字之间的每个数字 + for i in range(start, end + 1): + # 将每个数字添加到列表中 + numbers_between.append(i) + return numbers_between + +def get_page_end(start, depth, title_array): + page_end = -1 + for i in range(start, len(title_array)): + if title_array[i]['depth'] == depth: + page_end = title_array[i]['page_num'] + break + return page_end + +def get_file_split(page_count): + # 获取 CPU 核数 + cpu_count = 4 + if page_count < cpu_count: + cpu_count = page_count + # 使用 divmod() 函数计算除法结果和余数 + quotient, remainder = divmod(page_count, cpu_count) + table_split_parts = [] + text_split_parts = [] + for i in range(cpu_count): + start_num = i * quotient + if i < cpu_count-1: + start_num = i * quotient + end_num = start_num+quotient + else: + end_num = page_count + table_split_parts.append(f'{start_num}-{end_num}') + text_split_parts.append(get_numbers_between([],start_num, end_num)) + + # 返回除法结果和余数 + return { + 'table_split_parts': table_split_parts, + 'text_split_parts': text_split_parts + } + +def create_text_outline(pdf_path, file_id): + # print('Running the script for [%s] with padding [%d]' % (pdf_path, page_number_padding)) + # creating an object + with open(pdf_path, 'rb') as file: + file_info = {} + fileReader = PyPDF2.PdfReader(file) + page_count = len(fileReader.pages) + + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + redis_client.set(f'page_count_{file_id}', page_count) + + info = { + 'page_count': page_count, + 'all_pages': {}, + 'current_page_id': 1, + 'padding': 0 + } + + print('Number of pages: %d' % info['page_count']) + + pages = fileReader.trailer['/Root']['/Pages'].get_object() + recursive_numbering(pages, info) + #for page_num, page in enumerate(pages['/Kids']): + # page_obj = page.getObject() + # all_pages[id(page_obj)] = page_num + 1 # who starts counting from 0 anyways? + title_array = get_tree_pages(fileReader.outline, info, 0, []) + db_service.pdf_title_insert_mysql(file_id,title_array) + title_array = db_service.get_file_info_from_mysql(file_id) + + parent_table_pages_local = {} + parent_table_pages_local[file_id] = [] + print(f'{file_id}:{len(title_array)}') + for i in range(len(title_array)): + title_obj = title_array[i] + title = title_obj['title'] + #print(f'标题分别是{title}') + if len(re.findall('母公司|现金流量表补充|重要会计政策|会计估计变更|公允价值的披露|合营安排或联营企业中的权益|与金融工具相关的风险|税项|主要控股参股公司|结构化主体情况|公司股份总数及股东结构变动及公司资产和负债结构的变动情况|所有权或使用权受到限制的资产|在建工程|固定资产|其他主体中的权益|分部信息|与金融工具相关的风险|其他关联交易|公司子公司重大事项', title)) >0 : + page_start = title_obj['page_num'] + depth = title_obj['depth'] + if i < len(title_array) - 1: + page_end = title_array[i+1]['page_num'] + if title_array[i]['depth'] in [1,2]: + page_end = get_page_end(i+1, depth, title_array) + else: + page_end = page_count + print(f'目录识别时被丢弃的页码:{page_start}-{page_end}') + + #当标题为母公司财务报表主要项目注释时,最后一页不过滤,避免核心roe指标无法召回 + if len(re.findall('财务报表主要项目注释', title)) == 0: + page_end = page_end - 1 + # print(title,page_start,page_end) + for i in range(page_start, page_end + 1): + # 将每个数字添加到列表中 + parent_table_pages_local[file_id].append(i) + file_info['page_count'] = page_count + file_info['parent_table_pages'] = parent_table_pages_local[file_id] + file_info['split_parts'] = get_file_split(page_count) + + redis_client.close() + + return file_info + + +def create_text_outline_disclosure(pdf_path, file_id): + # print('Running the script for [%s] with padding [%d]' % (pdf_path, page_number_padding)) + # creating an object + with open(pdf_path, 'rb') as file: + file_info = {} + fileReader = PyPDF2.PdfReader(file) + page_count = len(fileReader.pages) + + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + redis_client.set(f'page_count_{file_id}', page_count) + + info = { + 'page_count': page_count, + 'all_pages': {}, + 'current_page_id': 1, + 'padding': 0 + } + + print('Number of pages: %d' % info['page_count']) + + pages = fileReader.trailer['/Root']['/Pages'].get_object() + recursive_numbering(pages, info) + #for page_num, page in enumerate(pages['/Kids']): + # page_obj = page.getObject() + # all_pages[id(page_obj)] = page_num + 1 # who starts counting from 0 anyways? + title_array = get_tree_pages(fileReader.outline, info, 0, []) + #db_service.pdf_title_insert_mysql(file_id,title_array) + #title_array = db_service.get_file_info_from_mysql(file_id) + + parent_table_pages_local = {} + parent_table_pages_local[file_id] = [] + print(f'{file_id}:{len(title_array)}') + for i in range(len(title_array)): + title_obj = title_array[i] + title = title_obj['title'] + #print(f'标题分别是{title}') + if len(re.findall('母公司|现金流量表补充|重要会计政策|会计估计变更|公允价值的披露|合营安排或联营企业中的权益|与金融工具相关的风险|税项|主要控股参股公司|结构化主体情况|公司股份总数及股东结构变动及公司资产和负债结构的变动情况|所有权或使用权受到限制的资产|在建工程|固定资产|其他主体中的权益|分部信息|与金融工具相关的风险|其他关联交易|公司子公司重大事项', title)) >0 : + page_start = title_obj['page_num'] + depth = title_obj['depth'] + if i < len(title_array) - 1: + page_end = title_array[i+1]['page_num'] + if title_array[i]['depth'] in [1,2]: + page_end = get_page_end(i+1, depth, title_array) + else: + page_end = page_count + print(f'目录识别时被丢弃的页码:{page_start}-{page_end}') + + #当标题为母公司财务报表主要项目注释时,最后一页不过滤,避免核心roe指标无法召回 + if len(re.findall('财务报表主要项目注释', title)) == 0: + page_end = page_end - 1 + # print(title,page_start,page_end) + for i in range(page_start, page_end + 1): + # 将每个数字添加到列表中 + parent_table_pages_local[file_id].append(i) + file_info['page_count'] = page_count + file_info['parent_table_pages'] = parent_table_pages_local[file_id] + file_info['split_parts'] = get_file_split(page_count) + + redis_client.close() + + return file_info +if __name__ == '__main__': + import time + path = "/Users/zhengfei/Desktop/cb/2023年报检测/安妮股份.pdf" + + threading.Thread(target=create_text_outline, args=(path,'111')).start() + time.sleep(5) + threading.Thread(target=create_text_outline, args=(path,'222')).start() + diff --git a/zzb_data_prod/put_code.sh b/zzb_data_prod/put_code.sh new file mode 100644 index 0000000..7905408 --- /dev/null +++ b/zzb_data_prod/put_code.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# 设置文件路径和目标目录# 请注意这列的config文件是不可以进行传输的 /root/pdf_parser/zzb_data_prod/utils.py /root/pdf_parser/zzb_data_prod/db_service.py +#FILES="/root/pdf_parser/zzb_data_prod/utils.py /root/pdf_parser/zzb_data_prod/db_service.py /root/pdf_parser/zzb_data_prod/app.py /root/pdf_parser/zzb_data_prod/main.py /root/pdf_parser/zzb_data_prod/pdf_title.py" +FILES="/root/pdf_parser/zzb_data_prod/put_code.sh" +DEST_PATH="/root/pdf_parser/zzb_data_prod" + +# 设置服务器列表 主服务器 "1.94.143.23" "113.44.72.157" "1.94.101.237" "123.60.16.225" "124.71.157.162" "1.94.60.103" "1.94.143.23" "124.71.149.225" "113.44.52.221" "121.37.137.13" +#SERVERS=("113.44.72.157" "1.94.101.237" "123.60.16.225" "124.71.157.162" "1.94.60.103" "124.71.149.225" "113.44.52.221" "121.37.137.13" "123.60.28.83" "192.168.0.19" "192.168.0.53" "192.168.0.150" "192.168.0.210" "192.168.0.129" "192.168.0.24" "192.168.0.250" "192.168.0.162" "192.168.0.86" "192.168.0.88" "192.168.0.93" "192.168.0.228" "192.168.0.155" "192.168.0.186" "192.168.0.56" "192.168.0.185" "192.168.0.72" "192.168.0.35" "192.168.0.230" "192.168.0.125" "192.168.0.46" "192.168.0.131") +#SERVERS=("192.168.0.228" "192.168.0.155" "192.168.0.186" "192.168.0.56" "192.168.0.185") +#监管服务器 +#SERVERS=("192.168.0.108" "192.168.0.131") +#企业服务器 +#SERVERS=("192.168.0.163" "192.168.0.26" "192.168.0.2" "192.168.0.128" "192.168.0.136" "192.168.0.239") +#两者一起 +SERVERS=("192.168.0.163" "192.168.0.26" "192.168.0.2" "192.168.0.128" "192.168.0.136" "192.168.0.239" "192.168.0.108" "192.168.0.131") +# 遍历每个服务器并上传文件 +for SERVER in "${SERVERS[@]}"; do + echo "Uploading files to $SERVER" + scp -r $FILES root@$SERVER:$DEST_PATH + echo "Finished uploading to $SERVER" +done + + diff --git a/zzb_data_prod/redis_service.py b/zzb_data_prod/redis_service.py new file mode 100644 index 0000000..0bec300 --- /dev/null +++ b/zzb_data_prod/redis_service.py @@ -0,0 +1,16 @@ +import redis +# 从 MySQL 表中读取数据并写入 Redis +def read_from_file_and_write_to_redis(redis_client,ori_measure_id,measure_vector): + # Redis 连接配置 + redis_client.hset('measure_config',ori_measure_id, measure_vector) + +# 从 Redis 中读取数据 +def read_from_redis(redis_client,ori_measure_id): + # 获取所有键 + return redis_client.hget('measure_config',ori_measure_id).decode() + +if __name__ == "__main__": + redis_client = redis.Redis(host='192.168.0.175', port=6379, password='Xgf_redis', db=6) + + value = read_from_redis(redis_client,"bb3cf43f3dba147373c706c6567b5a") + print(value) diff --git a/zzb_data_prod/requirements.txt b/zzb_data_prod/requirements.txt new file mode 100644 index 0000000..3be1870 --- /dev/null +++ b/zzb_data_prod/requirements.txt @@ -0,0 +1,15 @@ +camelot-py==0.11.0 +pdfminer.six==20221105 +PyPDF2==3.0.1 +pdfplumber==0.10.3 +pymilvus==2.3.3 +mysql-connector-python==8.3.0 +dashscope==1.17.0 +fastapi +pydantic +uvicorn +redis +ghostscript +opencv-python-headless +python-docx +docx2pdf \ No newline at end of file diff --git a/zzb_data_prod/requirements_lite.txt b/zzb_data_prod/requirements_lite.txt new file mode 100644 index 0000000..10e93b0 --- /dev/null +++ b/zzb_data_prod/requirements_lite.txt @@ -0,0 +1,6 @@ +pdfminer.six==20221105 +PyPDF2==3.0.1 +pdfplumber==0.10.3 +pymilvus==2.3.3 +mysql-connector-python==8.3.0 +dashscope==1.17.0 diff --git a/zzb_data_prod/test.pdf b/zzb_data_prod/test.pdf new file mode 100644 index 0000000..cc0b07a --- /dev/null +++ b/zzb_data_prod/test.pdf @@ -0,0 +1,3 @@ +--2024-12-27 11:23:36-- https://financial-report.obs.cn-east-3.myhuaweicloud.com/upload/file/44b374ac0fe140a2922c360db47335a1.PDF?AccessKeyId=WMBIZTLULUR24OBUIRC4 +Resolving financial-report.obs.cn-east-3.myhuaweicloud.com (financial-report.obs.cn-east-3.myhuaweicloud.com)... failed: Name or service not known. +wget: unable to resolve host address ‘financial-report.obs.cn-east-3.myhuaweicloud.com’ diff --git a/zzb_data_prod/test.py b/zzb_data_prod/test.py new file mode 100644 index 0000000..f514947 --- /dev/null +++ b/zzb_data_prod/test.py @@ -0,0 +1,154 @@ +#coding=utf-8 +import sys,ast +from pdfminer.high_level import extract_text +from pdfminer.pdfparser import PDFParser +from pdfminer.pdfdocument import PDFDocument +from pdfminer.pdfpage import PDFPage +import utils +import mysql.connector +from pymilvus import connections,MilvusClient +import json +import db_service +import ast +import numpy as np +import config +import redis_service +from config import MILVUS_CLIENT,MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB +import main +import redis + +def measure_config_to_db(conn,cursor): + insert_query = ''' + INSERT INTO measure_config + (measure_id, measure_name, ori_measure_id, ori_measure_name) + VALUES (%s, %s, %s, %s) + ''' + check_query = ''' + select ori_measure_id from measure_config + ''' + # 打开文本文件 + with open('/Users/zhengfei/work/zzb_data/measure_config_all.txt', 'r') as file: + # 读取所有行到一个列表中 + lines = file.readlines() + + # 打印每一行 + for line in lines: + config_list = line.strip().split(',') + measure = config_list[0] + ori_measure = config_list[1] + ori_measure_id = utils.get_md5(ori_measure) + # 判断数据库中是否有数据 + # cursor.execute(check_query.format(ori_measure_id=ori_measure_id)) + # check_records = cursor.fetchall() + # if(len(check_records)) > 0: + # continue + data_to_insert = (utils.get_md5(measure), measure, ori_measure_id, ori_measure) + cursor.execute(insert_query, data_to_insert) + conn.commit() + +def insert_measure_vector(conn,cursor): + + redis_client = redis.Redis(host='192.168.0.172', port=6379, password='Xgf_redis', db=6) + # 执行SQL语句,更新数据 + select_query = ''' + SELECT ori_measure_id,ori_measure_name FROM measure_config + ''' + cursor.execute(select_query) + records = cursor.fetchall() + for record in records: + if redis_client.hexists('measure_config', record[0]): + measure_vector = redis_client.hget('measure_config', record[0]) + else: + print('新增指标',record[1]) + vector_obj = utils.embed_with_str(record[1]) + measure_vector = str(vector_obj.output["embeddings"][0]["embedding"]) + + redis_client.hset('measure_config', record[0], measure_vector) + redis_client.close() + conn.close() + +def contains_financial_indicators(text): + import re + # 正则表达式模式匹配千分位格式的数字和百分比 + pattern = r"\d{1,3}(,\d{3})+(\.\d{1,3})?" + + pattern1 = r"\d+(.\d+)+%?" + # 使用 re.search 函数查找匹配项 + match = re.search(pattern1, text) + + # 如果找到匹配项,返回 True,否则返回 False + return bool(match) + +def get_clean_text(text): + import re + pattern = r"\([^)]*?\)" + matches = re.findall(pattern, text) + for match in matches: + # 使用 re.findall 函数查找括号内的内容中是否包含月份或关键词 + month_keywords_found = re.search(r"归属于|扣非", match) + if not month_keywords_found: + # 如果包含,则从文本中删除该部分 + text = re.sub(pattern,"", text) + else: + # 如果不包含,删除所有标点符号和中文数字 + text = re.sub(r"[^\w\s]", "", text) + print(text) + +def insert_and_update(conn,cursor,client,parent_table_pages,file_id,path): + # #通过向量查询指标 + db_service.insert_table_measure_from_vector(conn,cursor,client,parent_table_pages,file_id,path) + + # #指标归一化处理 + db_service.update_ori_measure(conn,cursor,file_id) + +def print_measure_data(cursor,client): + select_query = ''' + SELECT ori_measure_name,measure_name,ori_measure_id FROM measure_config + where measure_id not in(select distinct measure_id from ori_measure_list where file_id='64') + ''' + cursor.execute(select_query) + records = cursor.fetchall() + for record in records: + ori_measure_name = record[0] + measure_name = record[1] + ori_measure_id = record[2] + measure_vector = redis_service.read_from_redis(ori_measure_id) + + measure_list = ast.literal_eval(measure_vector) + data = [measure_list] + res = client.search( + collection_name="pdf_measure_v4", # Replace with the actual name of your collection + # Replace with your query vector + data=data, + limit=2, # Max. number of search results to return + search_params={"metric_type": "COSINE", "params": {}}, # Search parameters + output_fields=["measure_name","measure_value","table_num","table_index"], + filter = 'file_id == "64"' + ) + vector_str = measure_name+":"+ori_measure_name + # Convert the output to a formatted JSON string + for i in range(len(res[0])): + + vector_distance = float(res[0][i]["distance"]) + vector_measure_name = res[0][i]["entity"]["measure_name"] + measure_value = res[0][i]["entity"]["measure_value"] + table_num = res[0][i]["entity"]["table_num"] + table_index = res[0][i]["entity"]["table_index"] + table_num_list = [106] + print(vector_str +":"+vector_measure_name+":"+str(vector_distance) +":"+measure_value +":"+str(table_num) +":"+str(table_index)) + # if vector_distance > 0.89 and table_num not in table_num_list: + # print(vector_str +":"+vector_measure_name+":"+str(vector_distance) +":"+measure_value +":"+str(table_num) +":"+str(table_index)+":"+str(0.94)) + # if vector_distance > distance and table_num not in table_num_list: + # print(vector_str +":"+vector_measure_name +":"+measure_value +":"+str(table_num) +":"+str(table_index)+":"+str(vector_distance)+":"+str(distance)) + + +if __name__ == "__main__": + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) + cursor = conn.cursor() + + insert_measure_vector(conn,cursor) diff --git a/zzb_data_prod/test0710.py b/zzb_data_prod/test0710.py new file mode 100644 index 0000000..b199df5 --- /dev/null +++ b/zzb_data_prod/test0710.py @@ -0,0 +1 @@ +import re diff --git a/zzb_data_prod/test_0711.py b/zzb_data_prod/test_0711.py new file mode 100644 index 0000000..578010c --- /dev/null +++ b/zzb_data_prod/test_0711.py @@ -0,0 +1,92 @@ +#import camelot +import re +#from multiprocessing import Pool +import os, time, random +import json +#from config import MILVUS_CLIENT,MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB,MEASURE_COUNT +from datetime import datetime +# 读取PDF +import PyPDF2 +# 分析PDF的layout,提取文本 +from pdfminer.high_level import extract_pages +from pdfminer.layout import LTTextBoxHorizontal +import pdfplumber +import mysql.connector +#import utils +from pymilvus import MilvusClient +#import llm_service +#import db_service +#import pdf_title +import numpy as np +#from multiprocessing import Process + + + + +def text_in_table(top, tables_range, page_num): + if tables_range.get(page_num): + for range in tables_range[page_num]: + if top < range['top'] and top > range['buttom']: + return True + return False + +def get_text_type(text: str): + text = re.sub(r"\s", "", text) + first_re = '年度报告' + page_number_pattern = re.compile(r'^\d+(/\d+)?$') + + if re.search(first_re, text.strip()): + return 'page_header' + + if page_number_pattern.match(text.strip()): + return 'page_footer' + + return 'text' +def get_text_content_test(file_path,file_id,pages,tables_range): + page_start = pages.split('-')[0] + page_end = pages.split('-')[1] + + + # 我们从PDF中提取页面,page_numbers=[4,5,6] + for pagenum, page in enumerate(extract_pages(pdf_path)): + try: + if pagenum+1 < int(page_start) or pagenum+1 > int(page_end): + continue + # 找到所有的元素 + page_elements = [(element.y1, element) for element in page._objs] + # 查找组成页面的元素 + for i,component in enumerate(page_elements): + # 提取页面布局的元素 + element = component[1] + # 检查该元素是否为文本元素 + if isinstance(element, LTTextBoxHorizontal): + # 检查文本是否出现在表中 + line_text = element.get_text().replace('\n','') + line_text = re.sub(r"\s", "", line_text) + #print(f'line_text 的值是{line_text}') + + element_top = element.bbox[3] + element_buttom = element.bbox[1] + + # 检查该文本是否出现在表中 + if tables_range.get(pagenum+1): + for range in tables_range[pagenum+1]: + if element_top < range['top'] and element_top > range['buttom']: + pass + else: + if element_top - range['top'] < 150 and element_top - range['top'] > 5 and not text_in_table(element_top, tables_range, pagenum+1): + text_type = get_text_type(line_text) + if text_type == 'page_header': + break + + # 记录需要过滤掉的页码 + if len(re.findall('母公司|现金流量表补充', line_text)) > 0: + print('成功识别到了') + except Exception as e: + print(f"Error processing page {pagenum+1}: {e}") + +pdf_path = r"combined_v61.pdf" +file_id = 1 +tables_range = {1: [{'top': 727.0118072976055, 'buttom': 77.52552451539339, 'table_index': 1, 'page_num': 1}], 2: [{'top': 687.408985176739, 'buttom': 77.04549030786774, 'table_index': 1, 'page_num': 2}]} +pages = '1-2' +get_text_content_test(pdf_path,file_id,pages,tables_range) diff --git a/zzb_data_prod/test_0711_v2.py b/zzb_data_prod/test_0711_v2.py new file mode 100644 index 0000000..e6f1089 --- /dev/null +++ b/zzb_data_prod/test_0711_v2.py @@ -0,0 +1,325 @@ +import camelot +import re +#from multiprocessing import Pool +import os, time, random +import json +#from config import MILVUS_CLIENT,MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB,MEASURE_COUNT +from datetime import datetime +# 读取PDF +import PyPDF2 +# 分析PDF的layout,提取文本 +from pdfminer.high_level import extract_pages +from pdfminer.layout import LTTextBoxHorizontal +import pdfplumber +import mysql.connector +#import utils +from pymilvus import MilvusClient +#import llm_service +#import db_service +#import pdf_title +import numpy as np +#from multiprocessing import Process + +STR_PATTERN = '营业收入|净利润|变动比例|损益|现金流量净额|现金净流量|现金流|每股收益|总资产|资产总额|收益率|货币资金|应收账款|存货|固定资产|在建工程|商誉|短期借款|应付账款|合同负债|长期借款|营业成本|销售费用|管理费用|财务费用|研发费用|研发投入' +#负责表内一旦出现某个字符,整个表丢弃 +PATTERN = '品牌类型|分门店|销售渠道|行业名称|产品名称|地区名称|子公司名称|业绩快报|调整情况说明|调整年初资产负债表|计入当期损益的政府补助|主要子公司|分部|母公司资产负债表|显示服务|渠道|商品类型|合同分类|会计政策变更|地区分类' +#unit_pattern = re.compile(r'单位[:|:]?(百万元|千万元|亿元|万元|千元|元)') +MUILT_PATTERN = '调整前' +file_path = r"combined_v61.pdf" +file_id = 1 +pages = '1-2' +tables_range = {} +# def get_table_range_test(file_path, file_id, pages, tables_range): + +# print('Run task %s (%s)...' % (f'解析表格{pages}', os.getpid())) +# #(f'file_path: {file_path},file_id:{file_id},pages:{pages},tables_range:{tables_range}') +# start = time.time() +# import tempfile +# temp_dir_path = "F:\\temp" + +# # 检查并创建临时文件夹 +# if not os.path.exists(temp_dir_path): +# os.makedirs(temp_dir_path) + +# # 创建临时文件夹 +# temp_dir = tempfile.mkdtemp(prefix="camelot_temp_", dir=temp_dir_path) +# # 设置全局临时文件夹路径 +# os.environ["TMP"] = temp_dir +# os.environ["TEMP"] = temp_dir +# # conn = mysql.connector.connect( +# # host= MYSQL_HOST, +# # user= MYSQL_USER, +# # password= MYSQL_PASSWORD, +# # database= MYSQL_DB +# # ) + +# # 创建一个cursor对象来执行SQL语句 +# #print(f'file_path的值是{file_path}') +# #cursor = conn.cursor() +# # try: +# # tables = camelot.read_pdf(file_path, pages=pages, strip_text=' ,\n', copy_text=['h']) +# # print('读取成功') +# # except Exception as e: +# # print(f'错误在{e}') +# #print(f'file_path的值是{file_path}') +# #file_path = "F:\\11_pdf\\688670-2023-nb-nb.pdf" +# os.environ["GHOSTSCRIPT_BINARY"] = "gswin64c" +# try: +# # 确保 file_path 是正确的,并且文件是可访问的 +# if not os.path.exists(file_path): +# print(f'文件路径不正确或文件不存在: {file_path}') +# raise FileNotFoundError(f"文件不存在:{file_path}") +# else: +# pass#(f'file_path是存在的就是{file_path}') + +# # 读取 PDF 文件 +# #tables = camelot.read_pdf(file_path, pages=pages, strip_text=' ,\n')#, copy_text=['h'] +# #tables = camelot.read_pdf(file_path, pages=pages, flavor='lattice', strip_text=' ,\n', temp_dir=temp_dir) +# tables = camelot.read_pdf(file_path, pages=pages, strip_text=' ,\n', copy_text=['h'], temp_dir=temp_dir)#line_scale=10, + +# print('读取成功') +# print("检测到的表格数量:", tables.n) +# except FileNotFoundError as fe: +# print(fe) +# except Exception as e: +# print(f'处理PDF时出错: {e}') +# for t in tables: + +# top = t._bbox[3] +# buttom = t._bbox[1] +# page_num = int(t.page) +# table_index = int(t.order) +# arr = np.array(t.data) +# #recent_value = None +# #这里开始对可能解析错误的值做判断: +# for i, row in enumerate(arr): +# if len(row) >= 4: +# # first_value = row[0] +# # if ("2023年度" in first_value or "2022年度" in first_value) and len(first_value) <= 12: +# # recent_value = first_value +# # if first_value == '' and recent_value: +# # row[0] = recent_value +# # 检查条件:第一列不为数字,第二列和第四列为空,第三列有三个小数点【三列的数字被识别到一起了】 +# if (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 4 and len(row[2].rsplit('.', 1)[-1]) == 2) and (row[3] == ''): +# split_values = row[2].split('.') +# # 确保可以正确拆分成三个数值 +# if len(split_values) == 4: +# new_value1 = f"{split_values[0]}.{split_values[1][:2]}" +# new_value2 = f"{split_values[1][2:]}.{split_values[2][:2]}" +# new_value3 = f"{split_values[2][2:]}.{split_values[3]}" +# row[1] = new_value1 +# row[2] = new_value2 +# row[3] = new_value3 +# #检查条件:第一列不为数字,第二列第四列为空,第三列两个小数点,第五列两个小数点【两列的数字被识别到一起了】 +# if len(row) >= 5 and (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 3) and (row[3] == '') and (len(row[4].split('.')) == 3) and len(row[2].rsplit('.', 1)[-1]) == 2 and len(row[4].rsplit('.', 1)[-1]) == 2: +# split_value_3 = row[2].split('.') +# split_value_5 = row[4].split('.') + +# if len(split_value_3) == 3: +# new_value2 = f"{split_value_3[0]}.{split_value_3[1][:2]}" +# new_value3 = f"{split_value_3[1][2:]}.{split_value_3[2]}" + +# if len(split_value_5) == 3: +# new_value4 = f"{split_value_5[0]}.{split_value_5[1][:2]}" +# new_value5 = f"{split_value_5[1][2:]}.{split_value_5[2]}" + +# row[1] = new_value2 +# row[2] = new_value3 +# row[3] = new_value4 +# row[4] = new_value5 +# #检查条件:第一列不为数字,第二列为空,第三列有两个小数点,第四列为正常数字【两列的数字被识别到一起了】 +# if len(row) >= 4 and (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 3) and len(row[2].rsplit('.', 1)[-1]) == 2 and (row[3].replace('-', '', 1).replace('.', '', 1).isdigit()): +# split_values = row[2].split('.') +# if len(split_values) == 3: +# new_value2 = f"{split_values[0]}.{split_values[1][:2]}" +# new_value3 = f"{split_values[1][2:]}.{split_values[2]}" +# row[1] = new_value2 +# row[2] = new_value3 +# #检查条件:第一列不位数字,后面有一列中的值存在“%”并且"%"不是结尾,就进行拆分 +# if not row[0].replace('.', '', 1).isdigit(): +# for i in range(1, len(row) - 1): +# if row[i] == '' and '%' in row[i + 1] and len(row[i + 1].split('%')) == 2: +# split_values = row[i + 1].split('%') +# new_value1 = f"{split_values[0]}%" +# new_value2 = f"{split_values[1]}" +# row[i] = new_value1 +# row[i + 1] = new_value2 +# break + +# #检查条件:当一个列表中同时出现了2022年12月31日和2023年1月1日时【并且都只出现1次】,在2022年12月31日后面增加“调整前”字段 +# # if sum(1 for item in row if item.strip() == "2023年1月1日") == 1 and sum(1 for item in row if item.strip() == "2022年12月31日") == 1: +# # for i, item in enumerate(row): +# # stripped_item = item.strip() #去空格 +# # if stripped_item == "2022年12月31日": +# # row[i] = stripped_item + '调整前' + +# new_data = arr.tolist()#用于后面保存到数据库中 + + +# rows, cols = arr.shape +# if rows == 1 and cols == 1: +# continue +# arr_str = ''.join([''.join(map(str, row)) for row in arr]) +# #print(f'arr_str的值是 {arr_str}') +# #过滤掉不包含需抽取指标表格的文本 +# matches = re.findall(STR_PATTERN, arr_str) +# pattern = re.findall(PATTERN,arr_str) +# muilt_pattern = re.findall(MUILT_PATTERN,arr_str) +# if len(matches) > 0 and len(pattern) == 0 and len(muilt_pattern)<5: +# if not tables_range.get(page_num): +# tables_range[page_num] = [] + +# tables_range[page_num].append({ +# 'top' : top, +# 'buttom' : buttom, +# 'table_index' : table_index, +# 'page_num' : page_num, +# }) +# print(f"tables_range的值是{tables_range}") +# #(f'file_id是{file_id}') + +# # db_service.insert_pdf_parse_process({ +# # 'file_id': file_id, +# # 'page_num' : page_num, +# # 'page_count' : 100, +# # 'type' : 'parse_table', +# # 'content':{ +# # 'top' : top, +# # 'buttom' : buttom, +# # 'page_num' : page_num, +# # 'table_index' : table_index, +# # "type" : "table", +# # "data" : new_data, +# # 'sort_num' : page_num*1000 - top +# # }},conn,cursor) + +# #get_text_content(file_path, file_id, tables_range, pages, conn, cursor) + +# # cursor.close() +# # conn.close() + +# end = time.time() +# print('Task %s runs %0.2f seconds.' % (f'解析表格{pages}', (end - start))) +def get_table_range_test(file_path, file_id, pages, tables_range): + + print('Run task %s (%s)...' % (f'解析表格{pages}', os.getpid())) + start = time.time() + + # conn = mysql.connector.connect( + # host= MYSQL_HOST, + # user= MYSQL_USER, + # password= MYSQL_PASSWORD, + # database= MYSQL_DB + # ) + + # 创建一个cursor对象来执行SQL语句 + #cursor = conn.cursor() + + #redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + + tables = camelot.read_pdf(file_path, pages=pages, strip_text=' ,\n', copy_text=['h']) + for t in tables: + + top = t._bbox[3] + buttom = t._bbox[1] + page_num = int(t.page) + table_index = int(t.order) + arr = np.array(t.data) + #这里开始对可能解析错误的值做判断: + for i, row in enumerate(arr): + if len(row) >= 4: + # 检查条件:第一列不为数字,第二列和第四列为空,第三列有三个小数点【三列的数字被识别到一起了】 + if (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 4 and len(row[2].rsplit('.', 1)[-1]) == 2) and (row[3] == ''): + split_values = row[2].split('.') + # 确保可以正确拆分成三个数值 + if len(split_values) == 4: + new_value1 = f"{split_values[0]}.{split_values[1][:2]}" + new_value2 = f"{split_values[1][2:]}.{split_values[2][:2]}" + new_value3 = f"{split_values[2][2:]}.{split_values[3]}" + row[1] = new_value1 + row[2] = new_value2 + row[3] = new_value3 + #检查条件:第一列不为数字,第二列第四列为空,第三列两个小数点,第五列两个小数点【两列的数字被识别到一起了】 + if len(row) >= 5 and (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 3) and (row[3] == '') and (len(row[4].split('.')) == 3) and len(row[2].rsplit('.', 1)[-1]) == 2 and len(row[4].rsplit('.', 1)[-1]) == 2: + split_value_3 = row[2].split('.') + split_value_5 = row[4].split('.') + + if len(split_value_3) == 3: + new_value2 = f"{split_value_3[0]}.{split_value_3[1][:2]}" + new_value3 = f"{split_value_3[1][2:]}.{split_value_3[2]}" + + if len(split_value_5) == 3: + new_value4 = f"{split_value_5[0]}.{split_value_5[1][:2]}" + new_value5 = f"{split_value_5[1][2:]}.{split_value_5[2]}" + + row[1] = new_value2 + row[2] = new_value3 + row[3] = new_value4 + row[4] = new_value5 + #检查条件:第一列不为数字,第二列为空,第三列有两个小数点,第四列为正常数字【两列的数字被识别到一起了】 + if len(row) >= 4 and (not row[0].replace('.', '', 1).isdigit()) and (row[1] == '') and (len(row[2].split('.')) == 3) and len(row[2].rsplit('.', 1)[-1]) == 2 and (row[3].replace('-', '', 1).replace('.', '', 1).isdigit()): + split_values = row[2].split('.') + if len(split_values) == 3: + new_value2 = f"{split_values[0]}.{split_values[1][:2]}" + new_value3 = f"{split_values[1][2:]}.{split_values[2]}" + row[1] = new_value2 + row[2] = new_value3 + #检查条件:第一列不位数字,后面有一列中的值存在“%”并且"%"不是结尾,就进行拆分 + if not row[0].replace('.', '', 1).isdigit(): + for i in range(1, len(row) - 1): + if row[i] == '' and '%' in row[i + 1] and len(row[i + 1].split('%')) == 2: + split_values = row[i + 1].split('%') + new_value1 = f"{split_values[0]}%" + new_value2 = f"{split_values[1]}" + row[i] = new_value1 + row[i + 1] = new_value2 + break + + new_data = arr.tolist()#用于后面保存到数据库中 + rows, cols = arr.shape + if rows == 1 and cols == 1: + continue + arr_str = ''.join([''.join(map(str, row)) for row in arr]) + + #过滤掉不包含需抽取指标表格的文本 + matches = re.findall(STR_PATTERN, arr_str) + pattern = re.findall(PATTERN,arr_str) + muilt_pattern = re.findall(MUILT_PATTERN,arr_str) + if len(matches) > 0 and len(pattern) == 0 and len(muilt_pattern)<5: + if not tables_range.get(page_num): + tables_range[page_num] = [] + + tables_range[page_num].append({ + 'top' : top, + 'buttom' : buttom, + 'table_index' : table_index, + 'page_num' : page_num, + }) + print(f"tables_range的值是{tables_range}") + + # db_service.insert_pdf_parse_process({ + # 'file_id': file_id, + # 'page_num' : page_num, + # 'page_count' : 100, + # 'type' : 'parse_table', + # 'content':{ + # 'top' : top, + # 'buttom' : buttom, + # 'page_num' : page_num, + # 'table_index' : table_index, + # "type" : "table", + # "data" : new_data, + # 'sort_num' : page_num*1000 - top + # }},conn,cursor) + + # get_text_content(file_path, file_id, tables_range, pages, conn, cursor, redis_client) + + # cursor.close() + # conn.close() + # redis_client.close() + + end = time.time() + print('Task %s runs %0.2f seconds.' % (f'解析表格{pages}', (end - start))) + + +get_table_range_test(file_path, file_id, pages, tables_range) diff --git a/zzb_data_prod/utils.py b/zzb_data_prod/utils.py new file mode 100644 index 0000000..8e2beae --- /dev/null +++ b/zzb_data_prod/utils.py @@ -0,0 +1,780 @@ +#coding=utf-8 + +import dashscope +from http import HTTPStatus +from pymilvus import MilvusClient +import json +from datetime import datetime +import re,os,time +import requests +import config +import numpy as np +from docx2pdf import convert +from config import api_key +import logging +logger = logging.getLogger(__name__) + +dashscope.api_key = api_key + + +def get_md5(str): + import hashlib + m = hashlib.md5() + m.update(str.encode('utf-8')) + return m.hexdigest() + +def embed_with_str(input): + retry = 0 + max_retry = 5 + t = 0.2 + while retry < max_retry: + # time.sleep(t) + #阿里接口限流 + resp = dashscope.TextEmbedding.call( + model=dashscope.TextEmbedding.Models.text_embedding_v2, + input=input) + if resp.status_code == HTTPStatus.OK: + return resp + elif resp.status_code == 429: + logger.info(f'触发限流,等待{t}秒后重试') + retry += 1 + t+=0.1 + else: + logger.error(f'请求失败,状态码:{resp.status_code}') + return None + logger.error('重试超过上限') + return None + + + +#如果存在‘归属于|扣非’,就保留括号内的内容,并去掉标点符号和中文数字。 +#如果存在季度关键词,就将括号内容替换为季度 +#如果存在‘±’,就将括号内容替换为同期增减 +#其他情况,就删掉括号内全部内容 +def get_clean_text(text): + text = text.replace('流动资产:','').replace('半年度','上半年') + #先对几个半年报的词做整理,防止向量识别不出来 + terms = ["货币资金", "应收账款",'应付账款'] + #这个是不要合计的 + terms_2 = ["固定资产","短期借款","合同负债","在建工程","商誉","存货"] + #这个是需要调换位置的指标 + #terms_3 = ["固定资产","短期借款","合同负债","在建工程","商誉"] + #不可以出现同比之类的 + terms_4 = ['比', '率', '占','至','年以内','年以上','年内','1-2年','2-3年','3-4年','4-5年','准备','在途','增值','评估','利息','应计','改良','跌价','补助','投资'] + dates = [ "2021年12月31日","2022年12月31日","2022年1月1日","2023年1月1日", "2023年12月31日", "2022年6月30日","2023年6月30日","2024年6月30日","2024年半年度","2023年半年度","2022年半年度"] + #dates = [ "2021年12月31日","2022年12月31日","2023年12月31日","2022年1月1日","2023年1月1日", "2024年1月1日", "2022年6月30日","2023年6月30日","2024年6月30日","2021年初","2022年初","2023年初","2024年初",'2021年末','2022年末','2023年末','2024年末',"2023年","2022年","2021年"] + if any(term in text for term in terms_4): + return text + if len(text) <= 20: + for term in terms: + for date in dates: + if term in text and date in text: + text = f"{date}{term}合计" + return text + if len(text) <= 20: + for term in terms_2: + for date in dates: + if term in text and date in text: + text = f"{date}{term}" + return text + + import re + replacement_dict = { + '加:': '', + '减:': '', + '%' : '', + '其中:': '', + '实际': '', + '/': '', + '重述后':'', + '年末金额':'年末', + '比重增减':'同比增减', + '比例':'同比', + } + #针对整个text做替换 + def replace_all(text, replacements): + pattern = re.compile("|".join(map(re.escape, replacements.keys()))) + return pattern.sub(lambda match: replacements[match.group(0)], text) + text = replace_all(text, replacement_dict) + #单独出现12月31日时,就剔除掉 + pattern_year = r'(? 0: + return 'c' + elif len(re.findall(l_period, text)) > 0: + return 'l' + elif len(re.findall(bl_period, text)) > 0: + return 'bl' + else: + return 'c' + +def get_period_type_other(text, year): + l_year = f'{int(year)-1}' + bl_year = f'{int(year)-2}' + c_period = f'当期|本期|本报告期|报告期|本年|本期|{year}' + l_period = f'上年|上期|上年度|{l_year}' + bl_period = f'前年|{bl_year}' + + if len(re.findall(c_period, text)) > 0: + return 'c' + elif len(re.findall(l_period, text)) > 0: + return 'l' + elif len(re.findall(bl_period, text)) > 0: + return 'bl' + else: + return 'c_n' + +def get_start_period_type(text): + s_period = '期初|1月1日|年初' + + if len(re.findall(s_period, text)) > 0: + return '' + else: + return '0' + +def get_season_flag(text): + season_period = '第1季度|第2季度|第3季度|第4季度|一季度|二季度|三季度|四季度|1-3月|4-6月|7-9月|10-12月' + if len(re.findall(season_period, text)) > 0: + return '1' + else: + return '0' + +def get_percent_flag(text): + percent_word = '收益率|占比|比重|比例|同比增减|同比上升|同比下降|变化幅度|同期增减|本年比上年增减|同比变动|本期期末金额较上期期末变动比例' + if len(re.findall(percent_word, text)) > 0: + return '1' + else: + return '0' + +def get_kf_flag(text): + kf_word = '扣非|扣除非经常性损益' + if len(re.findall(kf_word, text)) > 0: + return '1' + else: + return '0' + +def get_report_start(text): + kf_word = '报告期初|1月1日' + if len(re.findall(kf_word, text)) > 0: + return '1' + else: + return '0' + +def get_percent_growth(text): + percent_growth_word = '变动|本年比上年|比例同比增减|比例同比上升|比例同比下降|比例变化幅度|比例变动比例|比例本期比上年同期增减|比例本年比上年增减|比例同比变动|比例本期期末金额较上期期末变动比例|比率同比增减|比率同比上升|比率同比下降|比率变化幅度|比率变动比例|比率本期比上年同期增减|比率本年比上年增减|比率同比变动|比率本期期末金额较上期期末变动比例|占比同比增减|占比同比上升|占比同比下降|占比变化幅度|占比变动比例|占比本期比上年同期增减|占比本年比上年增减|占比同比变动|占比本期期末金额较上期期末变动比例|费用同比增减|费用同比上升|费用同比下降|费用变化幅度|费用变动比例|费用本期比上年同期增减|费用本年比上年增减|费用同比变动|费用本期期末金额较上期期末变动比例' + if len(re.findall(percent_growth_word, text)) > 0: + return '1' + else: + return '0' +def check_black_list(meta_measure, pdf_measure, black_array): + # 获取黑名单数据 + #black_array = fetch_black_list_data(cursor) + + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if meta_measure==black_meta: + for pdf in black_pdfs: + if pdf_measure.find(pdf) >= 0: + return True + return False + +def check_black_list_old(meta_measure,pdf_measure): + # 判断指标名是否包含黑名单词 + black_array = ['非经常性损益:非经常性损益合计,非经常性损益总额','营业收入:营业外收入,主营业务,营业总收入,扣除,年底公司','归母净利润:净资产,净利率,扣除,年度公司','扣非净利润:净资产,净利率,年度公司','经营活动现金流净额:筹资活动,投资活动,流入小计,流出小计','筹资活动现金流净额:经营活动,投资活动,流入小计,流出小计','投资活动现金流净额:经营活动,筹资活动,流入小计,流出小计','非经常性损益:扣除非经常性损益','基本每股收益:稀释每股收益','稀释每股收益:基本每股收益','总资产:净资产','应收账款:应付账款','短期借款:长期借款','应付账款:应收账款','长期借款:短期借款','研发投入:比例,比率,占比,费用','资本化研发投入:比例,比率,占比,费用','资本化研发投入占比:金额,费用','研发投入占营业收入比例:金额,费用'] + # current_period = f'当期:{report_year}年1-6月' + # black_array.append(current_period) + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if meta_measure.find(black_meta) >= 0: + for pdf in black_pdfs: + if pdf_measure.find(pdf) >= 0: + return True + return False +def check_white_list(meta_measure,pdf_measure): + white_array = ['基本每股收益:每股收益','加权平均净资产收益率同比变动:比','季度变动比例:比'] + for black in white_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if meta_measure.find(black_meta) >= 0: + for pdf in black_pdfs: + if pdf_measure.find(pdf) < 0: + return True + return False + +def check_title_black_list(meta_measure,text_info): + # 判断指标名是否包含黑名单词 + black_array = ['营业收入:前五名,前5名,合计','营业成本:合计','财务费用:现金流','销售费用:现金流','管理费用:现金流','研发费用:现金流','非经常性损益:合计'] + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if meta_measure.find(black_meta) >= 0: + for pdf in black_pdfs: + if text_info.find(pdf) >= 0: + return True + return False + +# 文本中数字的占比 +def under_non_alpha_ratio(text: str, threshold: float = 0.6): + + if len(text) == 0: + return False + + alpha_count = len([char for char in text if char.strip() and char.isalpha()]) + total_count = len([char for char in text if char.strip()]) + try: + ratio = alpha_count / total_count + return ratio <= threshold + except: + return False +def check_table_title_black_list(text,table_title_black_list):#report_year + #previous_year = int(report_year) - 1 + if table_title_black_list is None: + return False + if len(re.findall(table_title_black_list, text)) > 0: + return True + if re.search(r'上年度\s*$', text): + return True + return False +#通过关键词黑名单匹配表格上方的文本区域,提取需要过滤的表格 +def check_table_title_black_list_old(text,report_year):#report_year + previous_year = int(report_year) - 1 + table_title_black_list = f"""所有权或使用权受到限制的资产|持有待售资产|关联交易|未确认递延所得税资产明细|{previous_year}年度|{previous_year}年1-6月|自{previous_year}年1月1日至6月30日止期间|流动性风险|关联交易|账龄超过|流动风险|公司资产负债表|按账龄组合|线上直营|线上直销|公司现金流量表|公司利润表|应收账款|在建工程|固定资产|其他与筹资活动有关的现金|汇率风险|市场风险|主营业务收入|主营收入|其他收入|前五名|前5名|经营活动有关的现金|股份变动对最近一年和最近一期每股收益、每股净资产等财务指标的影响|合同产生的收入情况|子公司|参股公司|控股公司|分解信息|经营活动产生的现金|行业分类|产品分类|地区分类|业绩快报|销售渠道|调整情况说明|合同分类|计入当期损益的政府补助|股份变动对最近一年和最近一期|分部的财务信息|显示服务创收|线上销售情况|试运行销售|会计政策变更|品牌经营业务|工程施工业务|开发业务|制造业务|合营安排或联营企业中的权益|联营企业的主要财务信息|汇率及通货膨胀|与金融工具相关的风险|运营业务|B端业务|终止经营现金流量|终止经营|公司股份总数及股东结构变动及公司资产和负债结构的变动情况|母公司|现金流量表补充|直营店店效情况|担保人2023年度未经审计的|外汇风险|公司各业务板块经营情况|报告期确认的包括在合同负债期初账面价值中的收入|资产受限情况|资产权利受限情况|内控自我评价报告|所有权或使用权受限资产|合并日被合并方资产、负债的账面价值|经营租赁资产|前5|前五|②|不属于现金及现金等价物的货币资金|按销售模式分|按产品类别分|按照销售区域|产品类别|销售模式|经销模式|关键管理人员|截至{previous_year}年6月30日止六个月期间|关联方提供的存款及贷款服务|报告期内各销售渠道的盈利情况|报告期内各地区的盈利情况|报告期内各产品的盈利情况|其他非流动负债|关联方提供的存款及贷款服务|自营销售分商品类别数据|组合计提|考核指标|不属于现金及现金等价物的货币资金|应收款项融资|本期计提、收回或转回的坏账准备情况|存货跌价准备|持有待售负债""" + + if len(re.findall(table_title_black_list, text)) > 0: + return True + if re.search(r'上年度\s*$', text): + return True + return False +#通过关键词黑名单匹配页面下方的文本区域,提取需要过滤的表格 + +def check_table_title_black_list_button(text,table_title_black_list): + + if table_title_black_list is None: + return False + + if len(re.findall(table_title_black_list, text)) > 0: + return True + if re.search(r'上年度\s*$', text): + return True + return False +def check_table_title_black_list_button_old(text): + + table_title_black_list = """公司资产负债表|公司现金流量表|公司利润表|主营业务收入|主营收入|其他收入|前五名|前5名|经营活动有关的现金|股份变动对最近一年和最近一期每股收益、每股净资产等财务指标的影响|合同产生的收入情况|子公司|参股公司|控股公司|分解信息|经营活动产生的现金|2022年度|行业分类|产品分类|地区分类|业绩快报|销售渠道|调整情况说明|合同分类|计入当期损益政府补助|股份变动对最近一年和最近一期|分部的财务信息|显示服务创收|线上销售情况|试运行销售|品牌经营业务|工程施工业务|开发业务|制造业务|合营安排或联营企业中的权益|联营企业的主要财务信息|汇率及通货膨胀|与金融工具相关的风险|运营业务|B端业务|终止经营现金流量|终止经营|公司股份总数及股东结构变动及公司资产和负债结构的变动情况|不属于现金及现金等价物的货币资金|经营租赁资产|分地区|分产品|分行业|使用权受限资产|资产受限情况|经销模式|持续的第三层次公允价值计量项目,期初与期末账面价值间的调节信息及不可观察参数敏感|权利受限情况|应收款项融资|本期计提、收回或转回的坏账准备情况""" + + + if len(re.findall(table_title_black_list, text)) > 0: + return True + if re.search(r'上年度\s*$', text): + return True + return False +def check_table_title_black_list_measure(text): + #black_array = ['补充资料:研发费用,管理费用,财务费用' + # ,'营业收入:营业外收入,主营业务,营业总收入,扣除,年底公司,合计,汇总' + #] + table_title_black_list = """补充资料|测试文本|其他非流动负债|应收款项融资|本期计提、收回或转回的坏账准备情况|筹资活动产生的各项负债变动情况|持有待售资产|账龄超过 1 年或逾期的重要应付账款|经营租赁资产|计息金融工具|坏账准备""" + if len(re.findall(table_title_black_list, text)) > 0: + return True + return False +#过滤原始指标中包含黑名单 +def check_pdf_measure_black_list(text): + pdf_measure_black_list = '股权变动前|股权变动后|含股份支付|境内|境外|调整前|有限公司|责任公司|其他|变更前|差异|同口径|调整金额' + if len(re.findall(pdf_measure_black_list, text)) > 0: + return True + if "其中:营业收入" in text: + return False + if "同比" in text and "额" in text: + #if text.find("同比") < text.find("额"): + if text.endswith("额"): + return True + return False + + +def check_pdf_measure(pdf_measure): + keywords_1 = [ + '2022年', '2023年', '2021年', '第一季度', '第二季度', '第三季度', '第四季度', '增减', '变动', '本期','同期', '当期', '报告期', '前年', + '上年', '上期', '本年', '1-3月', '4-6月', '7-9月', '10-12月' + ] + + keywords_2 = ['这里是一个测试文本'] + + contain_keyword_1 = any(keyword in pdf_measure for keyword in keywords_1) + contain_keyword_2 = any(keyword in pdf_measure for keyword in keywords_2) + #只有 未出现周期,同时出现了'调整后'才会删掉指标 + if not contain_keyword_1 and contain_keyword_2: + return True + return False +# def check_white_list(meta_measure,pdf_measure): +# # 判断指标名是否包含白名单词 +# black_array = ['营业收入:营业外收入,主营业务,营业总收入,扣除','归母净利润:净资产,净利率,扣除','扣非净利润:净资产,净利率','经营活动现金流净额:筹资活动,投资活动,流入小计,流出小计','筹资活动现金流净额:经营活动,投资活动,流入小计,流出小计','投资活动现金流净额:经营活动,筹资活动,流入小计,流出小计','非经常性损益:扣除非经常性损益','基本每股收益:稀释每股收益','稀释每股收益:基本每股收益','总资产:净资产','应收账款:应付账款','短期借款:长期借款','应付账款:应收账款','长期借款:短期借款','研发投入:比例,比率,占比,费用','资本化研发投入:比例,比率,占比,费用','资本化研发投入占比:金额,费用','研发投入占营业收入比例:金额,费用'] +# for black in black_array: +# black_meta = black.split(':')[0] +# black_pdfs = black.split(':')[1].split(',') +# if meta_measure.find(black_meta) >= 0: +# for pdf in black_pdfs: +# if pdf_measure.find(pdf) >= 0: +# return True +# return False +def check_line_text(line_text): + if line_text == 'PAGE': + return False + if line_text == '(续)': + return False + if line_text.endswith('(续)'): + return False + if line_text.endswith("年度财务报表") and "有限公司" in line_text: + return False + if len(line_text) < 20 and line_text.endswith("有限公司"): + return False + substrings = [ + '对内加快发展方式绿色转型、对外形成绿色生产和生活方式', + '可持续发展、创新发展;“8”是八大绿色行动', + '色新赋能、催生绿色新科技、筑牢绿色新支撑', + '接上表','续上表', + ] + for substring in substrings: + if substring in line_text: + return False + return True + +def pdf_text_flag(text : str): + if under_non_alpha_ratio(text) and len(text) < 25: + return True + + if len(text) < 5: + return True + + if not re.findall(',|,|。|、|(|)|:|:|;|;',text): + return True + + if text.find('适用') != -1 and text.find('不适用') != -1: + return True + + if text.find('是') != -1 and text.find('否') != -1: + return True + + return False + +def get_change_rate_flag(text): + percent_word = '同比增减|同比上升|同比下降|变化幅度|变动比例|本期比上年同期增减|本年比上年增减|同比变动|本期期末金额较上期期末变动比例' + if len(re.findall(percent_word, text)) > 0: + return '1' + else: + return '0' + +def check_pdf_measure_black_list_v3(file_id,table_num,table_index,pdf_measure,conn_app,cursor_app): + content_value = f"{table_num}_{table_index}" + measure_index_array = [] + select_measure_index_query = ''' + SELECT DISTINCT text FROM measure_parser_info_linetext WHERE file_id = %s AND type = 'measure_index' and content = %s + ''' + cursor_app.execute(select_measure_index_query, (file_id,content_value,)) + measure_index_records = cursor_app.fetchall() + for measure_index_record in measure_index_records: + measure_index_array.append(measure_index_record[0]) + black_array = ['补充资料:研发费用,管理费用,财务费用,销售费用' + ,'测试标题:测试指标' + ,'其他非流动负债:合同负债' + ,'应收款项融资:应收账款' + ,'本期计提、收回或转回的坏账准备情况:应收账款' + ,'筹资活动产生的各项负债变动情况:短期借款,长期借款' + ,'持有待售资产:固定资产' + ,'账龄超过 1 年或逾期的重要应付账款:应付账款' + ,'经营租赁资产:固定资产' + ,'计息金融工具:货币资金,短期借款,交易性金融资产' + ,'坏账准备:应收账款' + ] + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + #if measure_index_array.find(black_meta) >= 0: + #if black_meta in measure_index_array: + if any(black_meta in measure_index for measure_index in measure_index_array): + if any(pdf in pdf_measure for pdf in black_pdfs): + #for pdf in black_pdfs: + #if pdf in pdf_measure: + #if pdf_measure.find(pdf) >= 0: + return True + return False +def check_black_table_list(data): + black_array = ['补充资料:研发费用,管理费用,财务费用,销售费用', + #'补充目录:母公司' + ] + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if any(black_meta in cell for row in data for cell in row): + logger.debug(data) + for pdf in black_pdfs: + data = [row for row in data if not any(pdf in cell for cell in row)] + return data + +if __name__ == '__main__': + + logger.debug(len('我是我')) + + # logger.debug(under_non_alpha_ratio('202水电费水电费水电费是的205月')) + # title = '母公司财务报表主要项目注释' + # if len(re.findall('母公司|现金流量表补充', title)) >0 and len(re.findall('项目注释', title)) == 0: + # logger.debug('1') + # else: + # logger.debug('0') + + # logger.debug(check_black_list('当期投资活动现金流净额','当前筹资活动现金流净额')) + # test = '2023年1-12月' + # logger.debug(get_period_type('上年度本期费用化研发投入')) + # logger.debug(get_period_type('费用化研发投入本年度')) + # vector_a = embed_with_str('第一季度营业收入') + # vector = vector_a.output["embeddings"][0]["embedding"] + + # vector_b = embed_with_str('营业收入第一季度') + # vector1 = vector_b.output["embeddings"][0]["embedding"] + + # similarity = cosine_similarity(vector, vector1) + # logger.debug(f"余弦相似度: {similarity}") + + # measure_data = [ + # '1,1,营业收入2023年金额,1003535799.51', + # '1,1,营业收入2022年金额,869401513.71', + # '1,1,营业收入变动比例,15.43%', + # '1,1,营业成本2023年金额,810779075.89', + # '1,1,营业成本2023年占营业收入的比重,80.79%', + # '1,1,营业成本2022年金额,702990363.57', + # '1,1,营业成本2022年占营业收入的比重,80.86%', + # '1,1,营业成本变动比例,15.33%', + # '1,1,毛利率2023年金额,19.21%', + # '1,1,毛利率2022年金额,19.14%', + # '1,1,销售费用2023年金额,34065464.60', + # '1,1,销售费用2023年占营业收入的比重,3.39%', + # '1,1,销售费用2022年金额,28038106.19', + # '1,1,销售费用2022年占营业收入的比重,3.22%', + # '1,1,销售费用变动比例,21.50%', + # '1,1,管理费用2023年金额,50807308.69', + # '1,1,管理费用2023年占营业收入的比重,5.06%', + # '1,1,管理费用2022年金额,38251704.48', + # '1,1,管理费用2022年占营业收入的比重,4.40%', + # '1,1,管理费用变动比例,32.82%', + # '1,1,研发费用2023年金额,35312198.23', + # '1,1,研发费用2023年占营业收入的比重,3.52%', + # '1,1,研发费用2022年金额,30081787.99', + # '1,1,研发费用2022年占营业收入的比重,3.46%', + # '1,1,研发费用变动比例,17.39%', + # '1,1,财务费用2023年金额,8015604.52', + # '1,1,财务费用2023年占营业收入的比重,0.80%', + # '1,1,财务费用2022年金额,5739677.85', + # '1,1,财务费用2022年占营业收入的比重,0.66%', + # '1,1,财务费用变动比例,39.65%', + # '1,1,信用减值损失2023年金额,-11873626.82', + # '1,1,信用减值损失2023年占营业收入的比重,-1.18%', + # '1,1,信用减值损失2022年金额,-8903293.61', + # '1,1,信用减值损失2022年占营业收入的比重,-1.02%', + # '1,1,信用减值损失变动比例,33.36%', + # '1,1,资产减值损失2023年金额,-2328729.46', + # '1,1,资产减值损失2023年占营业收入的比重,-0.23%', + # '1,1,资产减值损失2022年金额,-2285987.53', + # '1,1,资产减值损失2022年占营业收入的比重,-0.26%', + # '1,1,资产减值损失变动比例,1.87%', + # '1,1,其他收益2023年金额,17886048.88', + # '1,1,其他收益2023年占营业收入的比重,1.78%', + # '1,1,其他收益2022年金额,11025908.32', + # '1,1,其他收益2022年占营业收入的比重,1.27%', + # '1,1,其他收益变动比例,62.22%', + # '1,1,投资收益2023年金额,323361.47', + # '1,1,投资收益2023年占营业收入的比重,0.03%', + # '1,1,投资收益2022年金额,1119730.43', + # '1,1,投资收益2022年占营业收入的比重,0.13%', + # '1,1,投资收益变动比例,-71.12%', + # '1,1,公允价值变动收益2023年占营业收入的比重,0.00%', + # '1,1,公允价值变动收益2022年金额,10183.62', + # '1,1,公允价值变动收益2022年占营业收入的比重,0.00%', + # '1,1,公允价值变动收益变动比例,-100.00%', + # '1,1,资产处置收益2023年金额,12782544.48', + # '1,1,资产处置收益2023年占营业收入的比重,1.27%', + # '1,1,资产处置收益2022年金额,-59.56', + # '1,1,资产处置收益2022年占营业收入的比重,0.00%', + # '1,1,资产处置收益变动比例,21461726.06%', + # '1,1,汇兑收益2023年金额,0', + # '1,1,汇兑收益2023年占营业收入的比重,0%', + # '1,1,汇兑收益2022年金额,0', + # '1,1,汇兑收益2022年占营业收入的比重,0%', + # '1,1,汇兑收益变动比例,0%', + # '1,1,营业利润2023年金额,76175407.00', + # '1,1,营业利润2023年占营业收入的比重,7.59%', + # '1,1,营业利润2022年金额,63332601.81', + # '1,1,营业利润2022年占营业收入的比重,7.28%', + # '1,1,营业利润变动比例,20.28%', + # '1,1,营业外收入2023年金额,5788307.99', + # '1,1,营业外收入2023年占营业收入的比重,0.58%', + # '1,1,营业外收入2022年金额,1083997.19', + # '1,1,营业外收入2022年占营业收入的比重,0.12%', + # '1,1,营业外收入变动比例,433.98%', + # '1,1,营业外支出2023年金额,687271.68', + # '1,1,营业外支出2023年占营业收入的比重,0.07%', + # '1,1,营业外支出2022年金额,1554243.54', + # '1,1,营业外支出2022年占营业收入的比重,0.18%', + # '1,1,营业外支出变动比例,-55.78%', + # '1,1,净利润2023年金额,72975283.09', + # '1,1,净利润2023年占营业收入的比重,7.27%', + # '1,1,净利润2022年金额,57747603.98', + # '1,1,净利润2022年占营业收入的比重,6.64%', + # '1,1,净利润变动比例,26.37%', + # '1,1,税金及附加2023年金额,5170339.13', + # '1,1,税金及附加2023年占营业收入的比重,0.52%', + # '1,1,税金及附加2022年金额,1933753.49', + # '1,1,税金及附加2022年占营业收入的比重,0.22%', + # '1,1,税金及附加变动比例,167.37%', + # '1,1,所得税费用2023年金额,8301160.22', + # '1,1,所得税费用2023年占营业收入的比重,0.83%', + # '1,1,所得税费用2022年金额,5114751.48', + # '1,1,所得税费用2022年占营业收入的比重,0.59%', + # '1,1,所得税费用变动比例,62.30%', + # '1,1,少数股东损益2023年金额,-58350.22', + # '1,1,少数股东损益2023年占营业收入的比重,-0.01%', + # '1,1,少数股东损益2022年金额,-946.60', + # '1,1,少数股东损益2022年占营业收入的比重,0.00%', + # '1,1,少数股东损益变动比例,-6064.19%', + # '1,1,归属于母公司所有者的净利润2023年金额,73033633.31', + # '1,1,归属于母公司所有者的净利润2023年占营业收入的比重,7.28%', + # '1,1,归属于母公司所有者的净利润2022年金额,57748550.58', + # '1,1,归属于母公司所有者的净利润2022年占营业收入的比重,6.64%', + # '1,1,归属于母公司所有者的净利润变动比例,26.47%', + # '1,1,归属于少数股东的综合收益总额2023年金额,-58350.22', + # '1,1,归属于少数股东的综合收益总额2023年占营业收入的比重,-0.01%', + # '1,1,归属于少数股东的综合收益总额2022年金额,-946.60', + # '1,1,归属于少数股东的综合收益总额2022年占营业收入的比重,0.00%', + # '1,1,归属于少数股东的综合收益总额变动比例,-6064.19%', + # '1,1,归属于母公司所有者的综合收益总额2023年金额,73033633.31', + # '1,1,归属于母公司所有者的综合收益总额2023年占营业收入的比重,7.28%', + # '1,1,归属于母公司所有者的综合收益总额2022年金额,57748550.58', + # '1,1,归属于母公司所有者的综合收益总额2022年占营业收入的比重,6.64%', + # '1,1,归属于母公司所有者的综合收益总额变动比例,26.47%', + # '2,1,主营业务收入2023年,983698831.48', + # '2,1,主营业务收入2022年,854682261.31', + # '2,1,主营业务收入变动比例,15.10%', + # '2,1,其他业务收入2023年,19836968.03', + # '2,1,其他业务收入2022年,14719252.40', + # '2,1,其他业务收入变动比例,34.77%', + # '2,1,主营业务成本2023年,793604607.43', + # '2,1,主营业务成本2022年,690932741.27', + # '2,1,主营业务成本变动比例,14.86%', + # '2,1,其他业务成本2023年,17174468.46', + # '2,1,其他业务成本2022年,12057622.30', + # '2,1,其他业务成本变动比例,42.44%', + # '3,1,变压器营业收入,490028234.05', + # '3,1,变压器营业成本,402179824.08', + # '3,1,变压器毛利率,17.93%', + # '3,1,变压器营业收入比上年同期增减,16.22%', + # '3,1,变压器营业成本比上年同期增减,16.33%', + # '3,1,变压器毛利率比上年同期增减,减少0.07个百分点', + # '3,1,高低压成套开关设备营业收入,261342442.26', + # '3,1,高低压成套开关设备营业成本,206645237.99', + # '3,1,高低压成套开关设备毛利率,20.93%', + # '3,1,高低压成套开关设备营业收入比上年同期增减,-8.93%', + # '3,1,高低压成套开关设备营业成本比上年同期增减,-9.91%', + # '3,1,高低压成套开关设备毛利率比上年同期增减,增加0.86个百分点', + # '3,1,户外成套设备营业收入,198013248.27', + # '3,1,户外成套设备营业成本,157856817.84', + # '3,1,户外成套设备毛利率,20.28%', + # '3,1,户外成套设备营业收入比上年同期增减,62.25%', + # '3,1,户外成套设备营业成本比上年同期增减,65.30%', + # '3,1,户外成套设备毛利率比上年同期增减,减少1.47个百分点', + # '3,1,其他营业收入,54151874.93', + # '3,1,其他营业成本,44097195.98', + # '3,1,其他毛利率,18.57%', + # '3,1,其他营业收入比上年同期增减,39.68%', + # '3,1,其他营业成本比上年同期增减,36.10%', + # '3,1,其他毛利率比上年同期增减,增加2.14个百分点', + # '3,1,合计营业收入,1003535799.51', + # '3,1,合计营业成本,810779075.89', + # '3,2,东北地区营业收入,2425280.53', + # '3,2,东北地区营业成本,1427939.37', + # '3,2,东北地区毛利率,41.12%', + # '3,2,东北地区营业收入比上年同期增减,-69.51%', + # '3,2,东北地区营业成本比上年同期增减,-77.58%', + # '3,2,东北地区毛利率比上年同期增减,增加21.20个百分点', + # '3,2,华北地区营业收入,70542020.62', + # '3,2,华北地区营业成本,53044055.18', + # '3,2,华北地区毛利率,24.81%', + # '3,2,华北地区营业收入比上年同期增减,205.32%', + # '3,2,华北地区营业成本比上年同期增减,203.18%', + # '3,2,华北地区毛利率比上年同期增减,增加0.54个百分点', + # '3,2,华东地区营业收入,770352353.33', + # '3,2,华东地区营业成本,636803535.34', + # '3,2,华东地区毛利率,17.34%', + # '3,2,华东地区营业收入比上年同期增减,24.17%', + # '3,2,华东地区营业成本比上年同期增减,25.30%', + # '3,2,华东地区毛利率比上年同期增减,减少0.74个百分点', + # '3,2,华南地区营业收入,18509519.71', + # '3,2,华南地区营业成本,14496855.46', + # '3,2,华南地区毛利率,21.68%', + # '3,2,华南地区营业收入比上年同期增减,-57.08%', + # '3,2,华南地区营业成本比上年同期增减,-57.98%', + # '3,2,华南地区毛利率比上年同期增减,增加1.67个百分点', + # '3,2,华中地区营业收入,60588394.64', + # '3,2,华中地区营业成本,44559969.21', + # '3,2,华中地区毛利率,26.45%', + # '3,2,华中地区营业收入比上年同期增减,-51.24%', + # '3,2,华中地区营业成本比上年同期增减,-55.13%', + # '3,2,华中地区毛利率比上年同期增减,增加6.38个百分点', + # '3,2,西北地区营业收入,58618014.32', + # '3,2,西北地区营业成本,42844719.81', + # '3,2,西北地区毛利率,26.91%', + # '3,2,西北地区营业收入比上年同期增减,178.59%', + # '3,2,西北地区营业成本比上年同期增减,173.62%', + # '3,2,西北地区毛利率比上年同期增减,增加1.33个百分点', + # '3,2,西南地区营业收入,22500216.36', + # '3,2,西南地区营业成本,17602001.52', + # '3,2,西南地区毛利率,21.77%', + # '3,2,西南地区营业收入比上年同期增减,-23.74%', + # '3,2,西南地区营业成本比上年同期增减,-17.89%', + # '3,2,西南地区毛利率比上年同期增减,减少5.57个百分点', + # '3,2,合计营业收入,1003535799.51', + # '3,2,合计营业成本,810779075.89', + # '5,2,经营活动产生的现金流量净额2023年,-44713443.44', + # '5,2,经营活动产生的现金流量净额2022年,-53241071.45', + # '5,2,经营活动产生的现金流量净额变动比例,16.02%', + # '5,2,投资活动产生的现金流量净额2023年,-88649920.50', + # '5,2,投资活动产生的现金流量净额2022年,-94251741.15', + # '5,2,投资活动产生的现金流量净额变动比例,5.94%', + # '5,2,筹资活动产生的现金流量净额2023年,96607197.26', + # '5,2,筹资活动产生的现金流量净额2022年,210537586.22', + # '5,2,筹资活动产生的现金流量净额变动比例,-54.11%' + # ] + + # client = MilvusClient( + # uri="http://localhost:19530" + # ) + # vector_obj = embed_with_str('2023年营业收入') + # vector = vector_obj.output["embeddings"][0]["embedding"] + + # vector_b = embed_with_str('营业收入第一季度') + # vector1 = vector_b.output["embeddings"][0]["embedding"] + + # similarity = cosine_similarity(vector, vector1) + # logger.debug(f"余弦相似度: {similarity}") + + # insert_measure_data(client, measure_data) + # text = '营业收入第一季度(1-3月份)' + # new_text = re.sub(r'([^)]*)', '',text) + # logger.debug(new_text) diff --git a/zzb_data_prod/wget-log b/zzb_data_prod/wget-log new file mode 100644 index 0000000..ee281c6 --- /dev/null +++ b/zzb_data_prod/wget-log @@ -0,0 +1,3 @@ +--2024-12-27 11:22:17-- https://financial-report.obs.cn-east-3.myhuaweicloud.com/upload/file/44b374ac0fe140a2922c360db47335a1.PDF?AccessKeyId=WMBIZTLULUR24OBUIRC4 +Resolving financial-report.obs.cn-east-3.myhuaweicloud.com (financial-report.obs.cn-east-3.myhuaweicloud.com)... failed: Name or service not known. +wget: unable to resolve host address ‘financial-report.obs.cn-east-3.myhuaweicloud.com’ diff --git a/zzb_data_word/Mil_unit.py b/zzb_data_word/Mil_unit.py new file mode 100644 index 0000000..130243a --- /dev/null +++ b/zzb_data_word/Mil_unit.py @@ -0,0 +1,30 @@ +from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection,MilvusClient +from config import MILVUS_CLIENT +import time +from datetime import datetime, timedelta + +def create_partition_by_hour(current_hour): + # 连接到 Milvus 服务器 + connections.connect("default",uri=MILVUS_CLIENT) + # 获取集合 + collection_name = "pdf_measure_v4" + collection = Collection(collection_name) + + # 创建当前小时的分区 + partition_name = f"partition_{current_hour}" + if not collection.has_partition(partition_name): + collection.create_partition(partition_name) + print(f"Created partition: {partition_name}") + partition = collection.partition(partition_name) + partition.load() + + # 获取所有分区 + partitions = collection.partitions + # 删除所有分区(除了默认分区和当前分区) + for partition in partitions: + name = partition.name + if name not in ["_default", partition_name]: # 保留默认分区 + pre_partition = collection.partition(name) + pre_partition.release() + collection.drop_partition(name) + print(f"Partition '{name}' deleted.") \ No newline at end of file diff --git a/zzb_data_word/__pycache__/config.cpython-310.pyc b/zzb_data_word/__pycache__/config.cpython-310.pyc new file mode 100644 index 0000000..49f15b4 Binary files /dev/null and b/zzb_data_word/__pycache__/config.cpython-310.pyc differ diff --git a/zzb_data_word/__pycache__/db_service_word.cpython-310.pyc b/zzb_data_word/__pycache__/db_service_word.cpython-310.pyc new file mode 100644 index 0000000..95849e4 Binary files /dev/null and b/zzb_data_word/__pycache__/db_service_word.cpython-310.pyc differ diff --git a/zzb_data_word/__pycache__/main_word.cpython-310.pyc b/zzb_data_word/__pycache__/main_word.cpython-310.pyc new file mode 100644 index 0000000..40217a6 Binary files /dev/null and b/zzb_data_word/__pycache__/main_word.cpython-310.pyc differ diff --git a/zzb_data_word/__pycache__/parse_word.cpython-310.pyc b/zzb_data_word/__pycache__/parse_word.cpython-310.pyc new file mode 100644 index 0000000..a58b0dc Binary files /dev/null and b/zzb_data_word/__pycache__/parse_word.cpython-310.pyc differ diff --git a/zzb_data_word/__pycache__/redis_service.cpython-310.pyc b/zzb_data_word/__pycache__/redis_service.cpython-310.pyc new file mode 100644 index 0000000..7365bdd Binary files /dev/null and b/zzb_data_word/__pycache__/redis_service.cpython-310.pyc differ diff --git a/zzb_data_word/__pycache__/utils.cpython-310.pyc b/zzb_data_word/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000..0e38ff3 Binary files /dev/null and b/zzb_data_word/__pycache__/utils.cpython-310.pyc differ diff --git a/zzb_data_word/__pycache__/word_title.cpython-310.pyc b/zzb_data_word/__pycache__/word_title.cpython-310.pyc new file mode 100644 index 0000000..d8f248f Binary files /dev/null and b/zzb_data_word/__pycache__/word_title.cpython-310.pyc differ diff --git a/zzb_data_word/__pycache__/zzb_logger.cpython-310.pyc b/zzb_data_word/__pycache__/zzb_logger.cpython-310.pyc new file mode 100644 index 0000000..5eb8089 Binary files /dev/null and b/zzb_data_word/__pycache__/zzb_logger.cpython-310.pyc differ diff --git a/zzb_data_word/app_word.py b/zzb_data_word/app_word.py new file mode 100644 index 0000000..e71e1a2 --- /dev/null +++ b/zzb_data_word/app_word.py @@ -0,0 +1,225 @@ +from fastapi import FastAPI +from pydantic import BaseModel +import os +import utils +import queue +from multiprocessing import Process +import word_title +import time +import config +import requests +import threading +from parse_word import parse_docx, split_text_table +import json +import db_service_word +import main_word +from zzb_logger import applog + + +app = FastAPI() +cpu_count = os.cpu_count() +job_queue = queue.Queue() + +# 定义请求体模型 +class FileItem(BaseModel): + file_path: str + file_id: str + +def split_list(lst, n): + k, m = divmod(len(lst), n) + return [lst[i * k + min(i, m):(i + 1) * k + min(i + 1, m)] for i in range(n)] + +def run_job(): + #判断是否有任务在执行 + if_run = True + + if job_queue.empty(): + applog.info(f"job_queue为空:") + if_run = False + + if if_run: + job_config = job_queue.get() + file_path = job_config['file_path'] + file_id = job_config['file_id'] + continue_execution = True + try: + + start_time = time.time() + applog.info(f"开始启动文件解析任务: {file_path}") + if file_path.startswith('http'): + file_path = utils.save_pdf_from_url(file_path, config.FILE_PATH) + try: + time_dispatch_job = time.time() + # 通知开始解析 暂时不通知 + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 5}) + applog.info(f'通知pdf开始解析url:{file_id}:{response.url}') + applog.info(f'通知pdf开始解析状态:{file_id}:{response.text}') + parsed_content, catalog_content = parse_docx(file_path) + + json_parsed_content = json.loads(parsed_content) + json_catalog_content = json.loads(catalog_content) + + db_service_word.word_title_insert_mysql(file_id, json_catalog_content) + + parent_table_pages = word_title.get_parent_table_pages(json_catalog_content,file_id) + + text_elements_json, table_elements_json = split_text_table(json_parsed_content) + # + processes = [] + text_list = split_list(json.loads(text_elements_json), cpu_count) + applog.info(f'text,任务ID:{file_id}') + for job_info in text_list: + p = Process(target=main_word.process_text_content, args=(file_id, job_info,json.loads(table_elements_json),json.loads(text_elements_json))) + processes.append(p) + p.start() + applog.info(f'等待所有子任务完成,任务ID:{file_id}') + for p in processes: + p.join() + applog.info(f'word表格中 text解析完成,任务ID:{file_id}',) + + processes = [] + table_list = split_list(json.loads(table_elements_json), cpu_count) + applog.info(f'开始解析word表表格中的table,任务ID:{file_id}') + for job_info in table_list: + p = Process(target=main_word.process_table, args=(file_id, job_info,)) + processes.append(p) + p.start() + applog.info(f'等待所有子任务完成,任务ID:{file_id}' ) + for p in processes: + p.join() + + # main_word.process_table(file_id, json.loads(table_elements_json)) + applog.info(f'word表格中 table解析完成,任务ID:{file_id}') + + + time_dispatch_job_end = time.time() + process_time = time_dispatch_job_end - time_dispatch_job + db_service_word.process_time(file_id, '1', process_time, time_dispatch_job, time_dispatch_job_end) + parser_end_time = time.time() + applog.info(f"解析任务 {file_id} 完成,耗时{(parser_end_time - time_dispatch_job):.2f} 秒。") + + except Exception as e: + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 7}) + applog.info(f'通知任务状态url:{file_id}:{response.url}') + applog.info(f'通知任务状态任务:{file_id}:{response.text}') + applog.info(f"{file_id}运行失败: {e}") + continue_execution = False + if continue_execution : + #这里做一步判断,看看是否还要继续。 + if db_service_word.file_type_check(file_id): + applog.info("文本较真表格生成已结束") + else: + # 通知抽取指标--------------------------------- + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 6}) + applog.info(f'通知开始抽取指标url:{file_id}:{response.url}') + applog.info(f'通知开始抽取指标状态:{file_id}:{response.text}') + + parser_start_time = time.time() + applog.info(f'开始表格指标抽取,任务ID:{file_id}') + time_start = time.time() + if db_service_word.file_type_check_v2(file_id) == 3 : #判断是否为3季报 + main_word.start_table_measure_job(file_id) + #time_start_end = time.time() + #process_time = time_start_end - time_start + #db_service.process_time(file_id,'2',process_time) + time_start_end = time.time() + process_time = time_start_end - time_start + db_service_word.process_time(file_id,'2',process_time,time_start,time_start_end) + applog.info(f'表格指标抽取完成,任务ID:{file_id}') + parser_end_time = time.time() + applog.info(f"表格指标抽取 {file_id} 完成,耗时{(parser_end_time - parser_start_time):.2f} 秒。") + + applog.info(f'启动这个指标归一化任务ID-修改测试:{file_id}') + time_update = time.time() + main_word.update_measure_data(file_id,file_path,parent_table_pages) + #time_update_end = time.time() + #process_time = time_update_end - time_update + #db_service.process_time(file_id,'3',process_time) + applog.info(f'归一化完成任务ID:{file_id}') + end_time = time.time() + applog.info(f"任务 {file_id} 完成,耗时{(end_time - start_time):.2f} 秒。") + time_update_end = time.time() + process_time = time_update_end - time_update + db_service_word.process_time(file_id,'3',process_time,time_update,time_update_end) + else:#不是三季报就直接按照年报和半年报走 + main_word.start_table_measure_job(file_id) + #time_start_end = time.time() + #process_time = time_start_end - time_start + #db_service.process_time(file_id,'2',process_time) + time_start_end = time.time() + process_time = time_start_end - time_start + db_service_word.process_time(file_id,'2',process_time,time_start,time_start_end) + applog.info(f'表格指标抽取完成,任务ID:{file_id}' ) + parser_end_time = time.time() + applog.info(f"表格指标抽取 {file_id} 完成,耗时{(parser_end_time - parser_start_time):.2f} 秒。") + + applog.info(f'启动这个指标归一化任务ID-修改测试:{file_id}' ) + time_update = time.time() + main_word.update_measure_data(file_id,file_path,parent_table_pages) + #time_update_end = time.time() + #process_time = time_update_end - time_update + #db_service.process_time(file_id,'3',process_time) + applog.info(f'归一化完成任务ID:{file_id}') + end_time = time.time() + applog.info(f"任务 {file_id} 完成,耗时{(end_time - start_time):.2f} 秒。") + time_update_end = time.time() + process_time = time_update_end - time_update + db_service_word.process_time(file_id,'3',process_time,time_update,time_update_end) + #通知任务完成 + response_time = time.time() + + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 1}) + applog.info(f'通知任务状态url:{file_id}:{response.url}') + applog.info(f'通知任务状态任务:{file_id}:{response.text}') + + response_time_end = time.time() + process_time = response_time_end - response_time + db_service_word.process_time(file_id,'4',process_time,response_time,response_time_end) + except Exception as e: + #通知任务完成 + response_time = time.time() + response = requests.get(config.NOTIFY_ADDR, params={'fileId': file_id,'status': 4}) + response_time_end = time.time() + process_time = response_time_end - response_time + db_service_word.process_time(file_id,'4',process_time,response_time,response_time_end) + applog.info(f'通知任务状态url:{file_id}:{response.url}') + applog.info(f'通知任务状态任务:{file_id}:{response.text}') + applog.info(f"Response status code: {response.status_code}") + applog.info(f"{file_id}运行失败: {e}") + finally: + applog.info(f"任务 {file_id} 完成") + + else: + applog.info("有任务运行中,需要等待.....") + +def parse_route(fileItem: FileItem): + # 创建一个队列,保证每次只执行一个文件解析任务 + job_queue.put({ + 'file_path' : fileItem.file_path, + 'file_id' : fileItem.file_id, + # 'type': fileItem.type + }) + applog.info(f"增加 {fileItem.file_id} 到队列.") + threading.Thread(target=run_job, args=()).start() + + return {"success": True, "msg": "文件解析开始"} + +app.post("/parser/start", + tags=["parser"], + summary="解析Pdf文件", + )(parse_route) + +# 运行 FastAPI 应用 +if __name__ == "__main__": + # 服务器启动服务 + import uvicorn + + uvicorn.run(app, host="0.0.0.0", port=config.PORT) + # 本地调试任务 + # file_id = "201837" + # job_queue.put({ + # 'file_path': '西部建设.docx', + # 'file_id': file_id, + # }) + # db_service_word.delete_database(file_id) + # run_job() diff --git a/zzb_data_word/config.py b/zzb_data_word/config.py new file mode 100644 index 0000000..1a3d2da --- /dev/null +++ b/zzb_data_word/config.py @@ -0,0 +1,23 @@ +MILVUS_CLIENT='http://127.0.0.1:19530' +MILVUS_HOST = '127.0.0.1' +MILVUS_PORT = 19530 +MYSQL_HOST = '10.127.2.207' +MYSQL_PORT = 3306 +MYSQL_USER = 'financial_prod' +MYSQL_PASSWORD = 'mmTFncqmDal5HLRGY0BV' +MYSQL_DB = 'financial_report_prod' +NOTIFY_ADDR = 'http://10.127.2.202:8100/api/tenant/report/notify' +FILE_PATH = '/root/pdf_parser/word/' +REDIS_HOST = '10.127.2.209' +REDIS_PORT = 6379 +REDIS_PASSWORD = 'dMrt4kmwiW6LDJXy' +PORT = 8001 +MEASURE_COUNT = 8 + + +MYSQL_HOST_APP = '10.127.2.207' +MYSQL_PORT_APP = 3306 +MYSQL_USER_APP = 'financial_prod' +MYSQL_PASSWORD_APP = 'mmTFncqmDal5HLRGY0BV' +MYSQL_DB_APP = 'financial_report_prod' +api_key = 'sk-f8413fcfa63a40e49dbb8ac1d0239f6d' diff --git a/zzb_data_word/db_service_word.py b/zzb_data_word/db_service_word.py new file mode 100644 index 0000000..35b7814 --- /dev/null +++ b/zzb_data_word/db_service_word.py @@ -0,0 +1,1054 @@ +from datetime import datetime +import re,os,json +import utils +import ast +import time +import redis_service +from multiprocessing import Process +from config import MILVUS_CLIENT,MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB,REDIS_HOST,REDIS_PORT,REDIS_PASSWORD,MEASURE_COUNT,MYSQL_HOST_APP,MYSQL_USER_APP,MYSQL_PASSWORD_APP,MYSQL_DB_APP +from pymilvus import MilvusClient +import mysql.connector +import redis +from zzb_logger import applog +measure_name_keywords = ["营业","季度","利润","归属于","扣非","经营","现金","活动","损益","收益","资产","费用","销售","管理","财务","研发","货币资金","应收账款","存货","固定资产","在建工程","商誉","短期借款","应付账款","合同负债","长期借款","营业成本"] +# 解析大模型抽取的指标,并插入到数据库 +def parse_llm_measure_to_db(measure_info,type,conn,cursor): + + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + check_query = ''' + select id from ori_measure_list + WHERE file_id = %s and type = %s and page_number = %s and ori_measure_value = %s + ''' + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO ori_measure_list + (file_id, file_name, type, page_number, table_index, ori_measure_id, ori_measure_name, ori_measure_value, create_time, update_time) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + ''' + file_id = measure_info['file_id'] + file_name = measure_info['path'] + llm_measure = measure_info['llm_measure'] + page_num = measure_info['page_num'] + table_index = '0' + if type == 'table': + table_index = measure_info['table_index'] + for measure_obj in llm_measure: + measure_obj = measure_obj.replace('\n', '').replace('\r', '').replace(' ', '').replace(':', ':') + if ':' in measure_obj: + ori_measure_name = measure_obj.split(':')[0].replace('-', '') + if len(ori_measure_name) > 30 : + continue + ori_measure_value = measure_obj.split(':')[1].replace('+', '').replace(',', '').replace('元', '').replace('%', '') + if '-' in ori_measure_value: + ori_measure_value = "-" + if '.' in ori_measure_name: + ori_measure_name = ori_measure_name.split('.')[1] + ori_measure_id = utils.get_md5(ori_measure_name) + if re.match(r'^[+-]?(\d+(\.\d*)?|\.\d+)(%?)$', ori_measure_value): + # 判断数据库中是否有数据 + check_query_data = (file_id, 'text', int(page_num), ori_measure_value) + cursor.execute(check_query, check_query_data) + check_records = cursor.fetchall() + if(len(check_records)) > 0: + continue + data_to_insert = (file_id, file_name, type, int(page_num), int(table_index), ori_measure_id, ori_measure_name, ori_measure_value, create_time, create_time) + cursor.execute(insert_query, data_to_insert) + conn.commit() + +def insert_measure_parser_info(parser_info,conn,cursor): + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO measure_parser_info + (file_id, type, content, create_time) + VALUES (%s, %s, %s, %s) + ''' + file_id = parser_info['file_id'] + type = parser_info['type'] + content = parser_info['content'] + data_to_insert = (file_id, type, content, create_time) + cursor.execute(insert_query, data_to_insert) + conn.commit() +def insert_measure_parser_info_measure(parser_info, conn, cursor, line_text): + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + insert_query = ''' + INSERT INTO word_measure_parser_info_linetext + (file_id, type, content,text, create_time) + VALUES (%s, %s, %s, %s,%s) + ''' + file_id = parser_info['file_id'] + type = parser_info['type'] + content = parser_info['content'] + text = line_text + data_to_insert = (file_id, type, content,text, create_time) + cursor.execute(insert_query, data_to_insert) + conn.commit() +def insert_table_unit_info(table_info,conn,cursor): + + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO table_unit_info + (file_id, page_num, table_index, unit) + VALUES (%s, %s, %s, %s) + ''' + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + table_index = int(table_info['table_index']) + unit = table_info['unit'] + data_to_insert = (file_id, page_num, table_index, unit) + cursor.execute(insert_query, data_to_insert) + conn.commit() + +def insert_table_unit_info_v1(table_info, conn, cursor): + """ + 插入数据到 table_unit_info 表之前,检查是否存在相同的 file_id, page_num 和 table_index。 + 如果存在且 unit 不同,更新现有记录,否则插入新记录。 + """ + + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + table_index = int(table_info['table_index']) + unit = table_info['unit'] + + # 查询现有记录 + check_query = ''' + SELECT unit + FROM table_unit_info + WHERE file_id = %s AND page_num = %s AND table_index = %s + ''' + cursor.execute(check_query, (file_id, page_num, table_index)) + existing_record = cursor.fetchone() + + if existing_record: + existing_unit = existing_record[0] + + if unit != existing_unit: + # 更新现有记录 + update_query = ''' + UPDATE table_unit_info + SET unit = %s + WHERE file_id = %s AND page_num = %s AND table_index = %s + ''' + cursor.execute(update_query, (unit, file_id, page_num, table_index)) + + else: + applog.info(f'No change needed. Existing unit={existing_unit} is the same as new unit={unit}.') + else: + # 插入新的记录 + insert_query = ''' + INSERT INTO table_unit_info + (file_id, page_num, table_index, unit) + VALUES (%s, %s, %s, %s) + ''' + data_to_insert = (file_id, page_num, table_index, unit) + cursor.execute(insert_query, data_to_insert) + + conn.commit() + +def insert_table_text_info(table_info,conn,cursor): + + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO table_text_info + (file_id, page_num, table_index, text) + VALUES (%s, %s, %s, %s) + ''' + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + table_index = int(table_info['table_index']) + text = table_info['text_info'] + data_to_insert = (file_id, page_num, table_index, text) + cursor.execute(insert_query, data_to_insert) + conn.commit() + +def update_ori_measure(conn,cursor,file_id): + + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + # 执行SQL语句,更新数据 + update_query = ''' + UPDATE ori_measure_list + SET measure_id = %s, measure_name = %s + WHERE ori_measure_id = %s and file_id = %s + ''' + + select_query = ''' + SELECT t2.measure_id,t2.measure_name,t1.ori_measure_id + FROM ori_measure_list t1 + left join + measure_config t2 + on t1.ori_measure_id = t2.ori_measure_id + where t2.measure_id is not null and (t1.measure_id is null or t1.measure_id ='') + and t1.file_id = '{file_id}' + and t2.year = '{year}' + '''.format(file_id=file_id, year=report_year) + select_query_half_year = ''' + SELECT t2.measure_id,t2.measure_name,t1.ori_measure_id + FROM ori_measure_list t1 + left join + measure_config_half_year t2 + on t1.ori_measure_id = t2.ori_measure_id + where t2.measure_id is not null and (t1.measure_id is null or t1.measure_id ='') + and t1.file_id = '{file_id}' + and t2.year = '{year}' + '''.format(file_id=file_id, year=report_year) + select_query_thrid = ''' + SELECT t2.measure_id,t2.measure_name,t1.ori_measure_id + FROM ori_measure_list t1 + left join + measure_config_third_quarter t2 + on t1.ori_measure_id = t2.ori_measure_id + where t2.measure_id is not null and (t1.measure_id is null or t1.measure_id ='') + and t1.file_id = '{file_id}' + and t2.year = '{year}' + '''.format(file_id=file_id, year=report_year) + + select_query_first_quarter = ''' + SELECT t2.measure_id,t2.measure_name,t1.ori_measure_id + FROM ori_measure_list t1 + left join + measure_config_first_quarter t2 + on t1.ori_measure_id = t2.ori_measure_id + where t2.measure_id is not null and (t1.measure_id is null or t1.measure_id ='') + and t1.file_id = '{file_id}' + and t2.year = '{year}' + '''.format(file_id=file_id, year=report_year) + + if report_type == 1: + start_time = time.time() + cursor.execute(select_query_half_year) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"更新数据查询 {(end_time - start_time):.2f} 秒。") + applog.info(f'update_ori_measure方法走的是半年报') + elif report_type == 2: + start_time = time.time() + cursor.execute(select_query_first_quarter) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"更新数据查询 {(end_time - start_time):.2f} 秒。") + applog.info(f'update_ori_measure方法走的是一季报') + elif report_type == 3: + start_time = time.time() + cursor.execute(select_query_thrid) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"更新数据查询 {(end_time - start_time):.2f} 秒。") + applog.info(f'update_ori_measure方法走的是三季报') + else: + start_time = time.time() + cursor.execute(select_query) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"更新数据查询 {(end_time - start_time):.2f} 秒。") + applog.info(f'update_ori_measure方法走的是全年报') + start_time = time.time() + for record in records: + data_to_update = (record[0], record[1], record[2], file_id) + cursor.execute(update_query, data_to_update) + conn.commit() + end_time = time.time() + applog.info(f"更新数据更新 {(end_time - start_time):.2f} 秒。") + #更新measure_list表,增加此次文件的显示指标 + start_time = time.time() + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + if report_type == 0: + table_name = "measure_config" + elif report_type == 2: + table_name = "measure_config_first_quarter" + + elif report_type == 3: + table_name = "measure_config_third_quarter" + else: + table_name = "measure_config_half_year" + + insert_query = f''' + INSERT INTO measure_list + (measure_id, measure_name, create_time, update_time, file_id) + select distinct measure_id,measure_name, %s,%s,%s from {table_name} + where year = {report_year} + ''' + + data_to_update = (create_time, create_time, file_id) + cursor.execute(insert_query, data_to_update) + conn.commit() + end_time = time.time() + applog.info(f"更新数据写入 {(end_time - start_time):.2f} 秒。") + +def insert_table_from_vector_mul_process(parent_table_pages,file_id,file_name,records,record_range,black_array): + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + applog.info('Run task %s (%s)...' % (record_range, os.getpid())) + applog.info(f"插入数据 {len(records)}") + client = MilvusClient( + uri=MILVUS_CLIENT + ) + + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + conn_app = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + cursor_app = conn_app.cursor(buffered=True) + + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + check_query = ''' + select id from ori_measure_list + WHERE file_id = %s and measure_name = %s and page_number = %s and table_index = %s and ori_measure_value = %s + ''' + insert_query = ''' + INSERT INTO ori_measure_list + (file_id, file_name, type, page_number, table_index, ori_measure_id, ori_measure_name, ori_measure_value, create_time, update_time, distance, pdf_measure,measure_id,measure_name,unit) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + ''' + #获取表格上方文字包含母公司字样的文本index + select_parent_query = ''' + select distinct content from measure_parser_info WHERE file_id = '{file_id}' and type='parent_com' + '''.format(file_id=file_id) + + #获取表格上方文字黑名单关键词的页码和表格下标 + select_table_index_query = ''' + select distinct content from measure_parser_info WHERE file_id = '{file_id}' and type='table_index' + '''.format(file_id=file_id) + # #获取表格上方文字黑名单关键词的页码和表格下标----标题下的详细指标 + select_measure_index_query = ''' + SELECT content FROM measure_parser_info_linetext WHERE file_id = %s AND type = 'measure_index' + ''' + unit_query = ''' + select unit from table_unit_info + WHERE file_id = %s and page_num = %s and table_index = %s + ''' + + cursor_app.execute(select_parent_query) + parent_records = cursor_app.fetchall() + + for parent_record in parent_records: + parent_id = parent_record[0] + parent_table_pages.append(int(parent_id)) + + #表格上方文字黑名单关键词的页码和表格下标转成数组 + table_index_array = [] + cursor_app.execute(select_table_index_query) + table_index_records = cursor_app.fetchall() + for table_index_record in table_index_records: + table_index_array.append(table_index_record[0]) + # #仿照写法,指标的黑名单转化 + measure_index_array = [] + cursor_app.execute(select_measure_index_query, (file_id,)) + measure_index_records = cursor_app.fetchall() + for measure_index_record in measure_index_records: + measure_index_array.append(measure_index_record[0]) + + + if str(report_type) == "2": + parent_table_pages = [] + table_index_array = [] + measure_index_array = [] + applog.info(f'黑名单的值是{parent_table_pages}和{table_index_array}以及新增的{measure_index_array}') + applog.info(f"black_array:{black_array}") + + record_start = record_range.split('-')[0] + record_end = record_range.split('-')[1] + try: + for index in range(int(record_start),int(record_end)): + record = records[index] + ori_measure_name = record[0] + measure_name = record[1] + distance = record[2] + ori_measure_id = record[3] + measure_id = record[4] + measure_vector = redis_service.read_from_redis(redis_client,ori_measure_id) + measure_list = ast.literal_eval(measure_vector) + data = [measure_list] + # data.append(measure_list) + filter_str = 'file_id == "'+file_id+'"' + res = client.search( + collection_name="pdf_measure_v4", # Replace with the actual name of your collection + # Replace with your query vector + data=data, + limit=3, # Max. number of search results to return + search_params={"metric_type": "COSINE", "params": {}}, # Search parameters + output_fields=["measure_name","measure_value","table_num","table_index","measure_unit"], + filter=filter_str + ) + + + + # Convert the output to a formatted JSON string + # for i in range(len(res[0])): + for i in range(len(res[0])): + + vector_distance = float(res[0][i]["distance"]) + pdf_measure = res[0][i]["entity"]["measure_name"] + measure_value = res[0][i]["entity"]["measure_value"] + table_num = res[0][i]["entity"]["table_num"] + table_index = res[0][i]["entity"]["table_index"] + unit = res[0][i]["entity"]["measure_unit"] + + #先过滤页码为0的情况,暂时不知道原因 + if table_num == 0: + continue + + #过滤表格上方文字黑名单关键词的页码和表格下标 + if f"{table_num}" in table_index_array: + continue + + + #过滤指标中包含黑名单关键词 + if utils.check_pdf_measure_black_list(pdf_measure): + continue + + if f"{table_num}" in measure_index_array and utils.check_pdf_measure_black_list_v3(file_id,table_num,table_index,pdf_measure,conn_app,cursor_app): + #if utils.check_pdf_measure_black_list_v3(file_id,table_num,table_index,pdf_measure,conn_app,cursor_app): + applog.info(f'经过第三层规则去除了{table_num}页的{pdf_measure}指标') + continue + + + if vector_distance > distance and table_num not in parent_table_pages: + #检测规则开始 + #判断抽取指标和财报指标周期是否相同 + ori_period = utils.get_period_type(ori_measure_name, report_year) + pdf_period = utils.get_period_type(pdf_measure, report_year) + if pdf_measure == '2023年6月30日货币资金合计': + applog.info(f'第1处{ori_period}和{pdf_period}') + if(ori_period != pdf_period): + continue + + + #判断抽取指标和财报指标是否期初指标 + start_ori_period = utils.get_start_period_type(ori_measure_name) + start_pdf_period = utils.get_start_period_type(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + applog.info(f'第2处{start_ori_period}和{start_pdf_period}') + if(start_ori_period != start_pdf_period): + continue + + #判断抽取指标和财报指标类型是否相同,是否都是季度 + ori_season_type = utils.get_season_flag(ori_measure_name) + pdf_season_type = utils.get_season_flag(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + applog.info(f'第3处{ori_season_type}和{pdf_season_type}') + if(ori_season_type != pdf_season_type): + continue + + + #判断是否都是扣非指标 + ori_kf_type = utils.get_kf_flag(ori_measure_name) + pdf_kf_type = utils.get_kf_flag(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + applog.info(f'第4处{ori_kf_type}和{pdf_kf_type}') + if(ori_kf_type != pdf_kf_type): + applog.info(f'扣非指标{table_num}页的{pdf_measure}指标') + continue + + #判断抽取指标和财报指标类型是否相同,是否都是百分比 + ori_type = utils.get_percent_flag(ori_measure_name) + pdf_type = utils.get_percent_flag(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + applog.info(f'第5处{ori_type}和{pdf_type}') + if(ori_type != pdf_type): + continue + + #判断抽取指标和财报指标类型是否相同,是否都是占比同比变动类 + ori_growth_type = utils.get_percent_growth(ori_measure_name) + pdf_growth_type = utils.get_percent_growth(pdf_measure) + if pdf_measure == '2023年6月30日货币资金合计': + applog.info(f'第6处{ori_growth_type}和{pdf_growth_type}') + if(ori_growth_type != pdf_growth_type): + continue + + #解决指标语义是比率,但值为非比率的情况 + if ori_growth_type == '1': + check_measure_value = abs(float(measure_value)) + if(check_measure_value > 10000): + continue + + # 判断数据库中是否有数据 + check_query_data = (file_id, measure_name, int(table_num), int(table_index), measure_value) + cursor.execute(check_query, check_query_data) + check_records = cursor.fetchall() + if(len(check_records)) > 0: + continue + + #判断是否包含黑名单 + if(utils.check_black_list(measure_name,pdf_measure,black_array)): + continue + + if(utils.check_white_list(measure_name,pdf_measure)): + applog.info(f"measure_name{measure_name},pdf_measure{pdf_measure}") + continue + + #判断抽取指标和财报指标类型是否都是增长类,比如同比变动为增长类 + ori_change_type = utils.get_change_rate_flag(ori_measure_name) + pdf_change_type = utils.get_change_rate_flag(pdf_measure) + if(ori_change_type != pdf_change_type): + continue + + #处理调整前,调整前、后同时出现,如果有调整前过滤 + if pdf_measure.find('调整前') != -1 or pdf_measure.find('重述前') != -1: + continue + + #判断指标是否报告期初 + ori_report_start = utils.get_report_start(ori_measure_name) + pdf_report_start = utils.get_report_start(pdf_measure) + + if(ori_report_start != pdf_report_start): + continue + + #检测规则结束 + #获取指标单位数据,除了百分比 + if(utils.get_percent_flag(measure_name) == '0'): + unit_query_data = (file_id, int(table_num), int(table_index)) + cursor.execute(unit_query, unit_query_data) + unit_records = cursor.fetchall() + if unit != '' : + pass + elif unit == '' and (len(unit_records)) > 0: + unit = unit_records[0][0] + else: + unit = '元' + + data_to_insert = (file_id, file_name, "table", int(table_num), int(table_index), ori_measure_id, ori_measure_name, measure_value, create_time, create_time, vector_distance, pdf_measure,measure_id,measure_name,unit) + cursor.execute(insert_query, data_to_insert) + conn.commit() + except Exception as e: + applog.error(e) + finally: + redis_client.close() + cursor.close() + conn.close() + client.close() + +# +def insert_table_measure_from_vector_async_process(cursor,parent_table_pages,file_id,file_name): + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + select_query = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config + where year = '{year}' + '''.format(year=report_year) + select_query_half_year = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config_half_year + where year = '{year}' + '''.format(year=report_year) + select_query_thrid = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config_third_quarter + where year = '{year}' + '''.format(year=report_year) + select_query_first_quarter = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config_first_quarter + where year = '{year}' + '''.format(year=report_year) + # select_black_array_query = 'SELECT measure_name, keywords FROM measure_black_list where isdel = 0' + select_black_array_query = ''' + SELECT measure_name, keywords FROM measure_black_list where isdel = 0 and find_in_set('{year}',year) and find_in_set('{flag}',flag) + '''.format(year=report_year, flag=report_type) + + + black_array = [] + cursor.execute(select_black_array_query) + results = cursor.fetchall() + for row in results: + category = row[0] + keywords = row[1].split(',') + black_array.append(f"{category}:{','.join(keywords)}") + + if report_type == 1: + start_time = time.time() + cursor.execute(select_query_half_year) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + applog.info('insert_table_measure_from_vector_async_process方法走的半年报') + start_time = time.time() + records_range_parts = utils.get_range(len(records),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=insert_table_from_vector_mul_process, args=(parent_table_pages,file_id,file_name,records,record_range,black_array,)) + processes.append(p) + p.start() + elif report_type == 2: + start_time = time.time() + cursor.execute(select_query_first_quarter) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + applog.info('insert_table_measure_from_vector_async_process方法走的一季报') + start_time = time.time() + records_range_parts = utils.get_range(len(records),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=insert_table_from_vector_mul_process, args=(parent_table_pages,file_id,file_name,records,record_range,black_array,)) + processes.append(p) + p.start() + elif report_type == 3: + start_time = time.time() + cursor.execute(select_query_thrid) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + applog.info('insert_table_measure_from_vector_async_process方法走的三季报') + start_time = time.time() + records_range_parts = utils.get_range(len(records),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=insert_table_from_vector_mul_process, args=(parent_table_pages,file_id,file_name,records,record_range,black_array,)) + processes.append(p) + p.start() + + else: + start_time = time.time() + cursor.execute(select_query) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + applog.info('insert_table_measure_from_vector_async_process方法走的全年报') + start_time = time.time() + records_range_parts = utils.get_range(len(records),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=insert_table_from_vector_mul_process, args=(parent_table_pages,file_id,file_name,records,record_range,black_array,)) + processes.append(p) + p.start() + + applog.info(f'等待所有子任务完成,任务ID:{file_id}') + for p in processes: + p.join() + applog.info(f'所有子任务完成,任务ID:{file_id}') + applog.info(f'启动指标归一化任务ID:{file_id}') + end_time = time.time() + applog.info(f"向量更新时间 {(end_time - start_time):.2f} 秒。") + +def insert_table_measure_from_vector(conn,cursor,client,parent_table_pages,file_id,file_name): + create_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + select_query = ''' + SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config + ''' + + check_query = ''' + select id from ori_measure_list + WHERE file_id = %s and measure_name = %s and page_number = %s and table_index = %s and ori_measure_value = %s + ''' + insert_query = ''' + INSERT INTO ori_measure_list + (file_id, file_name, type, page_number, table_index, ori_measure_id, ori_measure_name, ori_measure_value, create_time, update_time, distance, pdf_measure,measure_id,measure_name,unit) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s ,%s) + ''' + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + start_time = time.time() + cursor.execute(select_query) + records = cursor.fetchall() + end_time = time.time() + applog.info(f"向量配置数据查询 {(end_time - start_time):.2f} 秒。") + start_time = time.time() + + try: + for record in records: + ori_measure_name = record[0] + measure_name = record[1] + distance = record[2] + ori_measure_id = record[3] + measure_id = record[4] + measure_vector = redis_service.read_from_redis(ori_measure_id) + measure_list = ast.literal_eval(measure_vector) + data = [measure_list] + filter_str = 'file_id == "'+file_id+'"' + res = client.search( + collection_name="pdf_measure_v4", # Replace with the actual name of your collection + # Replace with your query vector + data=data, + limit=3, # Max. number of search results to return + search_params={"metric_type": "COSINE", "params": {}}, # Search parameters + output_fields=["measure_name","measure_value","table_num","table_index","measure_unit"], + filter=filter_str + ) + + # Convert the output to a formatted JSON string + for i in range(len(res[0])): + + vector_distance = float(res[0][i]["distance"]) + pdf_measure = res[0][i]["entity"]["measure_name"] + measure_value = res[0][i]["entity"]["measure_value"] + table_num = res[0][i]["entity"]["table_num"] + table_index = res[0][i]["entity"]["table_index"] + measure_unit = res[0][i]["entity"]["measure_unit"] + + if vector_distance > distance and table_num not in parent_table_pages: + #检测规则开始 + #判断抽取指标和财报指标周期是否相同 + ori_period = utils.get_period_type(ori_measure_name, report_year) + pdf_period = utils.get_period_type(pdf_measure, report_year) + if(ori_period != pdf_period): + continue + + #判断抽取指标和财报指标类型是否相同,是否都是百分比 + ori_type = utils.get_percent_flag(ori_measure_name) + pdf_type = utils.get_percent_flag(pdf_measure) + if(ori_type != pdf_type): + continue + + # 判断数据库中是否有数据 + check_query_data = (file_id, measure_name, int(table_num), int(table_index), measure_value) + cursor.execute(check_query, check_query_data) + check_records = cursor.fetchall() + if(len(check_records)) > 0: + continue + #检测规则结束 + + data_to_insert = (file_id, file_name, "table", int(table_num), int(table_index), ori_measure_id, ori_measure_name, measure_value, create_time, create_time, vector_distance, pdf_measure,measure_id,measure_name,measure_unit) + cursor.execute(insert_query, data_to_insert) + conn.commit() + except Exception as e: + applog.info(e) + end_time = time.time() + applog.info(f"向量更新数据时间 {(end_time - start_time):.2f} 秒。") + start_time = time.time() + + +def insert_measure_data_to_milvus(client,table_info,cursor,conn): + insert_query = ''' + INSERT INTO word_measure_parse_process + (file_id, page_num, content) + VALUES (%s, %s, %s) + ''' + for table in table_info: + try: + data=[] + table_num = table['page_num'].split("_")[0] + file_id = table['file_id'] + table_index = table['page_num'].split("_")[1] + + measure_list = table['measure_list'] + for measure in measure_list: + measure_name = measure['measure_name'] + # 需要跳过的一些指标 + black_list = ["营业总成本"] + if any(black in measure_name for black in black_list): + continue + measure_value = measure['measure_value'].replace("(", "").replace(")", "") + measure_name = utils.get_clean_text(measure_name) + measure_name = measure_name.replace('2023','2023年').replace('2022','2022年').replace('(','').replace(')','')#这个真绝了,怎么都删不掉 + #measure_name_1 = measure_name.replace('调整后','') + quarters = ['第一季度', '第二季度', '第三季度', '第四季度','增减','2023年','2022年','2021年','年'] + for quarter in quarters: + measure_name = measure_name.replace(quarter * 2, quarter) + pattern_dup = re.compile(r'(\w{3,})\1+')#去掉任意超过两个字且重复的字符 + matches = pattern_dup.findall(measure_name) + for match in matches: + applog.info(f"被删除的字符: {match * 2}") + measure_name = pattern_dup.sub(r'\1', measure_name) + measure_name_1 = measure_name.replace('调整后','').replace('上年期末数','上年期末').replace('上年期末','上年年末') + measure_unit = measure['measure_unit'] + if re.match(r'^[+-]?(\d+(\.\d*)?|\.\d+)(%?)$', measure_value) and any(key_word in measure_name for key_word in measure_name_keywords): + vector_obj = utils.embed_with_str(measure_name_1) + vector = vector_obj.output["embeddings"][0]["embedding"] + measure_data = {} + measure_data['vector'] = vector + measure_data['table_num'] = int(table_num) + measure_data['table_index'] = int(table_index) + measure_data['measure_name'] = measure_name + measure_data['measure_value'] = measure_value + measure_data['measure_unit'] = measure_unit + measure_data['file_id'] = file_id + data.append(measure_data) + + # 指标数据写入指标解析过程表,用于前端展示 + content = f"{measure_name}:{measure_value}" + data_to_insert = (file_id, table_num, content) + cursor.execute(insert_query, data_to_insert) + conn.commit() + elif re.match(r'(增加|减少|下降|上升)[了]?(\d+\.\d+)[个]?百分点', measure_value) and any(key_word in measure_name for key_word in measure_name_keywords): + #特殊处理指标值为增加了/减少了 XXX 个百分点 + unit_pattern = re.compile(r'(增加|减少|下降|上升)[了]?(\d+\.\d+)[个]?百分点') + match = unit_pattern.search(measure_value) + if match and len(match.groups()) == 2: + crease_type = match.group(1) + measure_value = match.group(2) + if crease_type == '减少' or crease_type == '下降': + measure_value = f'-{match.group(2)}' + + vector_obj = utils.embed_with_str(measure_name_1) + vector = vector_obj.output["embeddings"][0]["embedding"] + measure_data = {} + measure_data['vector'] = vector + measure_data['table_num'] = int(table_num) + measure_data['table_index'] = int(table_index) + measure_data['measure_name'] = measure_name + measure_data['measure_value'] = measure_value + measure_data['measure_unit'] = measure_unit + measure_data['file_id'] = file_id + data.append(measure_data) + + # 指标数据写入指标解析过程表,用于前端展示 + content = f"{measure_name}:{measure_value}" + data_to_insert = (file_id, table_num, content) + cursor.execute(insert_query, data_to_insert) + conn.commit() + res = client.insert( + collection_name="pdf_measure_v4", + data=data + ) + + + except Exception as e: + applog.error(f"异常信息=={e}") + +def runing_job(): + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + select_query = ''' + SELECT * FROM report_check where status = 0 and isdel=0 + ''' + cursor.execute(select_query) + records = cursor.fetchall() + if(len(records)) > 1: + return True + return False + +def insert_word_parse_process(parser_info,conn,cursor,table_name): + # 执行SQL语句,插入数据 + insert_query = f''' + INSERT INTO {table_name} + (file_id, page_num, page_count, content, type) + VALUES (%s, %s, %s, %s, %s) + ''' + file_id = parser_info['file_id'] + page_num = int(parser_info['page_num']) + page_count = int(parser_info['page_count']) + content = json.dumps(parser_info['content'], ensure_ascii=False) + type = parser_info['type'] + data_to_insert = (file_id, page_num, page_count, content, type) + cursor.execute(insert_query, data_to_insert) + conn.commit() + + +def delete_database(file_id): + try: + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + + truncate_query = [ + "delete from measure_parse_process where file_id = %s;", + "delete from measure_parser_info where file_id = %s;", + "delete from ori_measure_list where file_id = %s;", + "delete from measure_list where file_id = %s;", + "delete from word_parse_process where file_id = %s;", + "delete from table_unit_info where file_id = %s;", + # "delete from a where file_id = %s;", + # "delete from b where file_id = %s;", + ] + #file_id = file_id + for truncate in truncate_query: + cursor.execute(truncate,(file_id,)) + conn.commit() + except Exception as e: + applog.error(f'删除失败,原因是{e}') +def delete_to_run(conn,cursor,file_id): + try: + truncate_query = [ + "delete from ori_measure_list where file_id = %s;", + "delete from measure_list where file_id = %s;", + "delete from check_measure_list where file_id = %s;", + "delete from check_measure_detail_list where file_id = %s;", + # "delete from table_unit_info where file_id = %s;", + # "delete from pdf_parse_process where file_id = %s;", + # "delete from table_unit_info where file_id = %s;", + # "delete from a where file_id = %s;", + # "delete from b where file_id = %s;", + ] + #file_id = file_id + for truncate in truncate_query: + cursor.execute(truncate,(file_id,)) + conn.commit() + except Exception as e: + applog.error(f'删除失败,原因是{e}') + +def insert_word_text_info(file_id,table_info): + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + + # 执行SQL语句,插入数据 + insert_query = ''' + INSERT INTO word_text_info + (file_id, page_num, text) + VALUES (%s, %s, %s) + ''' + + data_to_insert = [(file_id, int(line["index"]),int(line["data"])) for line in table_info] + cursor.executemany(insert_query,data_to_insert) + + conn.commit() + +def process_time(file_id,type,time,start_time,end_time): + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + time = round(time, 2) + start_time = datetime.fromtimestamp(start_time).strftime('%Y-%m-%d %H:%M:%S') + end_time = datetime.fromtimestamp(end_time).strftime('%Y-%m-%d %H:%M:%S') + insert_query = ''' + insert into word_process_time + (file_id,type,time,start_time,end_time) + values (%s, %s, %s,%s,%s) + ''' + data_insert = (file_id,type,time,start_time,end_time) + cursor.execute(insert_query,data_insert) + conn.commit() + + +def batch_insert_page_text(table_info, conn, cursor, table_name): + file_id = table_info['file_id'] + page_num = int(table_info['page_num']) + text_lines = table_info['text'] + + insert_query = f''' + INSERT INTO {table_name} + (file_id, page_num, text) + VALUES (%s, %s, %s) + ''' + data_to_insert = [(file_id, page_num, text_lines) ] + cursor.executemany(insert_query, data_to_insert) + + conn.commit() +def file_type_check(file_id): + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + try: + select_query = ''' + SELECT report_type FROM report_check WHERE id = %s + ''' + cursor.execute(select_query, (file_id,)) + record = cursor.fetchone() + if record and record[0] == 5: + return True + return False + finally: + cursor.close() + conn.close() +def file_type_check_v2(file_id): + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + try: + select_query = ''' + SELECT report_type FROM report_check WHERE id = %s + ''' + cursor.execute(select_query, (file_id,)) + record = cursor.fetchone() + return record[0] + # if record and == 5: + # return True + # return False + finally: + cursor.close() + conn.close() + +def word_title_insert_mysql(file_id,title_array): + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) + cursor = conn.cursor(buffered=True) + data_to_insert = [(file_id, line["data"], int(line["index"]),int(line["depth"])) for line in title_array] + + # 插入语句 + insert_query = """ + INSERT INTO word_title_info (file_id, title, page_num, depth) + VALUES (%s, %s, %s, %s) + """ + + cursor.executemany(insert_query, data_to_insert) + + conn.commit() + cursor.close() + conn.close() + + +def get_file_info_from_mysql(file_id): + conn = mysql.connector.connect( + host= MYSQL_HOST, + user= MYSQL_USER, + password= MYSQL_PASSWORD, + database= MYSQL_DB + ) + #cursor = conn.cursor(buffered=True) + cursor = conn.cursor(dictionary=True) + select_query = """ + SELECT title, page_num, depth + FROM pdf_title_info + WHERE file_id = %s + """ + + cursor.execute(select_query, (file_id,)) + result = cursor.fetchall() + cursor.close() + conn.close() + return result diff --git a/zzb_data_word/main_word.py b/zzb_data_word/main_word.py new file mode 100644 index 0000000..44a0f26 --- /dev/null +++ b/zzb_data_word/main_word.py @@ -0,0 +1,823 @@ +import re +import os,time +from config import MILVUS_CLIENT,MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB,MEASURE_COUNT,MYSQL_HOST_APP,MYSQL_USER_APP,MYSQL_PASSWORD_APP,MYSQL_DB_APP +import mysql.connector +import utils +from pymilvus import MilvusClient + +import numpy as np +from multiprocessing import Process +from config import REDIS_HOST,REDIS_PORT,REDIS_PASSWORD +import redis +import db_service_word +from zzb_logger import applog + + + +''' +已知发现问题: +1.表格和文本提取错误,表格和文本内容在同一页,文本在前表格在后的,文本数据提取不出来 +2.大模型抽取错,抽取2023年营业收入:主营业务收入、分产品的营业收入、变动比例被错误抽取 +3.表格中的指标被抽取成文本中 +4.大模型抽取指标时,语义完全不同的指标被放一起,考虑用向量相似度来判断 +''' + +# 数据处理流程 +# 1. get_table_range多进程获取所有表格及表格上下文,输出为一个完整的列表 +# 2. 单进程进行表格分页合并,输出一个新的表格对象数组 +# 3. 新表格对象数组多进程开始原来的解析指标流程 + + +STR_PATTERN = '营业收入|净利润|变动比例|损益|现金流量净额|现金净流量|现金流|每股收益|总资产|资产总额|收益率|货币资金|应收账款|存货|固定资产|在建工程|商誉|短期借款|应付账款|合同负债|长期借款|营业成本|销售费用|管理费用|财务费用|研发费用|研发投入' +PATTERN = '品牌类型|分门店|销售渠道|行业名称|产品名称|地区名称|子公司名称|业绩快报|调整情况说明|调整年初资产负债表|计入当期损益的政府补助|主要子公司|分部|母公司资产负债表|显示服务|渠道|商品类型|合同分类|会计政策变更|地区分类|研发项目|分类产品|表头不合规的表格|内部控制评价|关联方|国内地区|国外地区|销售区域|存货库龄|外币|逾期60天以上|欧元|英镑|美元|日元' +MUILT_PATTERN = '调整前' +#unit_pattern = re.compile(r'单位[:|:]?(百万元|千万元|亿元|万元|千元|元)') +unit_pattern = re.compile(r'(单位|单元|人民币).{0,6}?(百万元|千万元|亿元|万元|千元|元).{0,3}?')#修改单位匹配规则,不限制冒号,只限制距离 +#获取指标的表头信息 +def get_col_num_info(array,row_num,col_num,x,y): + num_info="" + for j in range(col_num): + if len(str(array[x][j])) > 50: + continue + num_info += str(array[x][j]) + + return num_info.replace('%','') + +#获取指标的表头信息 +def get_row_num_info(array,row_num,col_num,x,y): + num_info="" + + for i in range(row_num): + if len(str(array[i][y])) > 50: + continue + num_info += str(array[i][y]) + + return num_info + +def table_converter(table): + table_string = '' + # 遍历表格的每一行 + for row_num in range(len(table)): + row = table[row_num] + # 从warp的文字删除线路断路器 + cleaned_row = [item.replace('\n', ' ') if item is not None and '\n' in item else 'None' if item is None else item for item in row] + # 将表格转换为字符串,注意'|'、'\n' + table_string+=(','.join(cleaned_row)) + # 删除最后一个换行符 + table_string = table_string[:-1] + return table_string + +# 检查第二列是否为中文字符的函数 +def is_chinese(s): + return bool(re.search('[\u4e00-\u9fff]', s)) + +def check_table(arr): + split_index = None + for i in range(arr.shape[0]): + # 过滤掉第一行 + if arr[i, 0] == "" and is_chinese(arr[i, 1]) and i > 1: + split_index = i + break + if split_index is not None: + arr1 = arr[:split_index] + arr2 = arr[split_index:] + return [arr1, arr2] + else: + return [arr] + +def safe_process_array(func, arr): + try: + return func(arr) + except Exception as e: + print(f"这个函数出现了报错{func.__name__}: {e}") + return arr # 返回原数组以便继续后续处理 + + +# 单独针对三季报的资产负债表识别合并问题 +def process_array(arr, years=['2022', '2023', '2024'], keyword='项目'): + # 确保 row 有足够的列来存储分割后的数据 + def ensure_columns(row, num_columns): + while len(row) < num_columns: + row.append('') + + def is_valid_header(header, years, keyword): + header_text = header.lower() # 转小写以提高匹配的鲁棒性 + return any(year in header_text for year in years) and keyword in header_text + + # 对字符串进行清理 + def clean_text(text): + # 去除“年”和“月”相邻的空格 + text = re.sub(r'\s*(年|月)\s*', r'\1', text) + # 去除“日”左侧相邻的空格 + text = re.sub(r'\s*日', '日', text) + return text + + # 将 numpy 数组转换为列表 + arr = arr.tolist() if isinstance(arr, np.ndarray) else arr + + if len(arr[0]) == 1 and is_valid_header(arr[0][0], years, keyword): + remaining_value = arr[0][0] + + # 清理字符串 + remaining_value = clean_text(remaining_value) + + parts = remaining_value.split() + + ensure_columns(arr[0], len(parts)) + for i in range(len(parts)): + arr[0][i] = parts[i] + + header_columns = len(arr[0]) + + for i in range(1, len(arr)): + if len(arr[i]) == 1: + remaining_value = arr[i][0] + parts = remaining_value.split() + if len(parts) > header_columns: + parts = parts[:header_columns] + ensure_columns(arr[i], header_columns) + for j in range(len(parts)): + arr[i][j] = parts[j] + # 如果分割出的值不足,填充空值 + if len(parts) < header_columns: + for j in range(len(parts), header_columns): + arr[i][j] = '' + + return arr + + +# 三季报中针对性修改,本报告期和年初至报告期末的两个上年同期进行区分 +def process_array_with_annual_comparison(arr, keywords=['本报告期', '年初至报告期末', '上年同期']): + def contains_all_keywords(header, keywords): + return all(keyword in header for keyword in keywords) + + def split_and_replace_occurrences(header, target, replacement): + # 找到所有 target 出现的位置 + indices = [i for i, x in enumerate(header) if x == target] + if len(indices) > 1: + split_index = len(indices) // 2 + for i in range(split_index): + header[indices[i]] = replacement + return header + + # 将 numpy 数组转换为列表 + arr = arr.tolist() if isinstance(arr, np.ndarray) else arr + + if len(arr) > 0 and len(arr[0]) > 0: + first_row = arr[0] + + if contains_all_keywords(first_row, keywords): + # 将 "上年同期" 拆分并替换 + first_row = split_and_replace_occurrences(first_row, '上年同期', '三季报中无需识别的上年同期') + arr[0] = first_row + + return arr + + +# 三季报的非经常损益的单独处理 +def process_array_with_grants(arr, keywords=['本报告期', '年初至报告期'], target='计入当期损益的政府补助', + replacement='非经常性损益'): + # 检查第一行是否包含所有关键词 + def contains_all_keywords(header, keywords): + # return all(keyword in header for keyword in keywords) + return all(any(keyword in str(cell) for cell in header) for keyword in keywords) + + # 检查第一列中是否存在目标文本 + def contains_target_in_first_column(arr, target): + return any(target in str(item[0]) for item in arr) + + # 替换第一列中的特定值 + def replace_in_first_column(arr, target, replacement): + for i in range(len(arr)): + if arr[i][0] == target: + arr[i][0] = replacement + return arr + + # 将 numpy 数组转换为列表 + arr = arr.tolist() if isinstance(arr, np.ndarray) else arr + + if len(arr) > 0 and len(arr[0]) > 0: + first_row = arr[0] + + # 检查第一行和第一列的条件 + if contains_all_keywords(first_row, keywords) and contains_target_in_first_column(arr, target): + # 替换第一列中的 "合计" + arr = replace_in_first_column(arr, '合计', replacement) + + return arr + +# 处理表格数据 +def process_table(file_id, tables): + applog.info('Run task %s (%s)...' % (f'处理word文件中的table file_id:{file_id}', os.getpid())) + start = time.time() + + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + + for t in tables: + try: + arr = np.array(t["data"]) + + arr = safe_process_array(process_array, arr) # 部分资产负债表合并问题 + arr = safe_process_array(process_array_with_annual_comparison, arr) # 复杂表格的优化"多个上年同期时处理" + arr = safe_process_array(process_array_with_grants, arr) # 三季报的非经常损益 + + arr = np.char.replace(arr, ' ', '') + arr = np.char.replace(arr, '\n', '') + arr = np.char.replace(arr, ',', '') + + arr_list = check_table(arr) + + for a in arr_list: + new_data = a.tolist() # 用于后面保存到数据库中 + new_data = utils.check_black_table_list(new_data) + rows, cols = a.shape + if rows == 1 and cols == 1: + continue + arr_str = ''.join([''.join(map(str, row)) for row in a]) + # 全量的数据先存入 word_parse_data表中 + db_service_word.insert_word_parse_process({ + 'file_id': file_id, + 'page_num': t["index"], + 'page_count': 100, + 'type': 'table', + 'content': { + 'page_num': t["index"], + 'table_index': t["index"], + "type": "table", + "data": new_data, + }}, conn, cursor, "word_parse_data") + + # 过滤掉不包含需抽取指标表格的文本 + matches = re.findall(STR_PATTERN, arr_str) + pattern = re.findall(PATTERN, arr_str) + muilt_pattern = re.findall(MUILT_PATTERN, arr_str) + + if len(matches) > 0 and len(muilt_pattern) < 5: + # if len(matches) > 0 and len(pattern) == 0 and len(muilt_pattern) < 5: + db_service_word.insert_word_parse_process({ + 'file_id': file_id, + 'page_num': t["index"], + 'page_count': 100, + 'type': 'parse_table', + 'content': { + 'page_num': t["index"], + 'table_index': t["index"], + "type": "table", + "data": new_data, + }}, conn, cursor,"word_parse_process") + except Exception as e: + applog.info(f'解析表格时出现了异常 {e} 内容为{t}') + cursor.close() + conn.close() + end = time.time() + applog.info('Task %s runs %0.2f seconds.' % (f'解析表格{file_id}', (end - start))) + +def text_in_table(top, tables_range, page_num): + if tables_range.get(page_num): + for range in tables_range[page_num]: + if top < range['top'] and top > range['buttom']: + return True + return False + +def get_text_type(text: str): + text = re.sub(r"\s", "", text) + first_re = '年度报告' + page_number_pattern = re.compile(r'^\d+(/\d+)?$') + + if re.search(first_re, text.strip()): + return 'page_header' + + if page_number_pattern.match(text.strip()): + return 'page_footer' + + if len(text) < 20 and text.endswith('页'): + return 'page_footer' + + return 'text' + +def check_report_type(file_id): + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + """ + :return: 返回pdf文件中文本内容,不包括表格 + """ + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + if record_select: + report_type = record_select[0][0] + report_year = record_select[0][1] + cursor.close() + conn.close() + return int(report_type),report_year + else: + return None + + + +# 通过text的index 获取最近的一个table的index,并校验中间text文本的长度和数量 +def get_next_table_index(text_index, texts, tables): + try: + for table in tables: + if table["index"] > text_index and table["type"] == "table": + table_index = table["index"] + total_len = sum(len(texts.get(key).get("data").replace(" " ,"")) for key in range(text_index + 1, table_index)) + # 最近一个表格的索引 在10个以内 + if (table_index - text_index) < 10 and total_len < 50: + # 在判断所有的字符串加起来有是否小于50个字 + return table_index + else: + return text_index + except StopIteration: + applog.error("Target not found") + return text_index + + +#处理文本数据 +def process_text_content(file_id,texts,tables,full_texts,type =0): + applog.info('Run task %s (%s)...' % (f'处理word文件中的 text file_id:{file_id}', os.getpid())) + conn = mysql.connector.connect( + host=MYSQL_HOST, + user=MYSQL_USER, + password=MYSQL_PASSWORD, + database=MYSQL_DB + ) + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + """ + :return: 返回pdf文件中文本内容,不包括表格 + """ + report_type, report_year = check_report_type(file_id) + texts_dict = {t["index"]:t for t in full_texts} + + query = "SELECT title_list,button_list FROM table_title_list WHERE report_year = %s" + cursor_dict = conn.cursor(dictionary=True) + cursor_dict.execute(query, (report_year,)) + result = cursor_dict.fetchone() + title_list = result['title_list'] + button_list = result['button_list'] + + try: + for t in texts: + line_text = t["data"] + line_text = re.sub(r"\s", "", line_text) + line_text = re.sub(r":", ":", line_text) + index = t["index"] + + if len(re.findall('母公司|现金流量表补充', line_text)) > 0: + db_service_word.insert_measure_parser_info({ + 'file_id': file_id, + 'content': get_next_table_index(index,texts_dict,tables), + 'type': 'parent_com', + }, conn, cursor) + + # 保存每个表格上方小范围区域的文字,这部分内容包含了表格的标题和指标单位 + table_info = {} + if (utils.check_table_title_black_list(line_text, title_list) + or utils.check_table_title_black_list_button(line_text,button_list)): + db_service_word.insert_measure_parser_info({ + 'file_id': file_id, + 'content': get_next_table_index(index,texts_dict,tables), + 'type': 'table_index', + }, conn, cursor) + if utils.check_table_title_black_list_measure(line_text): + db_service_word.insert_measure_parser_info_measure({ + 'file_id': file_id, + 'content': get_next_table_index(index, texts_dict,tables), + 'type': 'measure_index', + }, conn, cursor, line_text) + + + if re.findall(unit_pattern, line_text): + # 为单位 + table_info = get_table_unit_info(file_id,line_text,t["index"],t["index"]+1) + + db_service_word.insert_table_unit_info_v1(table_info,conn,cursor) + + if utils.check_table_title_black_list_measure(line_text): + db_service_word.insert_measure_parser_info_measure({ + 'file_id': file_id, + 'content': f"{t['index']}_1", + 'type': 'measure_index', + }, conn, cursor, line_text) + + if not utils.pdf_text_flag(line_text): + if utils.check_line_text(line_text): + db_service_word.insert_word_parse_process({ + 'file_id': file_id, + 'page_num' : t["index"], + 'page_count' : 100, + 'type' : 'parse_table', + 'content':{ + 'page_num' : t["index"], + 'table_index' : t["index"], + "type" : "text", + 'content' : line_text, + }},conn,cursor,"word_parse_process") + # 给慎用词校验用 + db_service_word.insert_word_parse_process({ + 'file_id': file_id, + 'page_num': t["index"], + 'page_count': 100, + 'type': 'text', + 'content': { + 'page_num': t["index"], + 'table_index': t["index"], + "type": "text", + 'content': line_text, + }}, conn, cursor, "word_parse_data") + + table_name = "word_text_info" + if type == 1: + table_name = "id_text_info" + # 写入数据库 传入表名 + db_service_word.batch_insert_page_text({ + 'file_id': file_id, + 'page_num' : t["index"], + 'text' : line_text + },conn,cursor, table_name) + + + for t in tables: + page_num = t["index"] + for lines in t["data"]: + lines = list(set(lines)) + for line in lines: + if len(line) == 0: + continue + db_service_word.batch_insert_page_text({ + 'file_id': file_id, + 'page_num' : page_num, + 'text' : line + },conn,cursor,"word_text_info") + + + except Exception as e: + applog.error(f'文本处理异常{e}') + + + +def get_table_unit_info(file_id,line_text,page_num,table_index): + table_info = {} + table_info['file_id'] = file_id + match = unit_pattern.search(line_text) + if match: + unit = match.group(2) + table_info['unit'] = unit + + table_info['page_num'] = page_num + table_info['table_index'] = table_index + + return table_info + + +def get_table_text_info(file_id,line_text,page_num,table_index): + table_info = {} + table_info['file_id'] = file_id + table_info['text_info'] = line_text + table_info['page_num'] = page_num + table_info['table_index'] = table_index + + return table_info + +# 读取pdf中的表格,并将表格中指标和表头合并,eg: 2022年1季度营业收入为xxxxx +def get_table_measure(file_id, word_tables, record_range): + """ + :return: pdf中的表格,并将表格中指标和表头合并,eg: 2022年1季度营业收入为xxxxx + """ + try: + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + conn_app = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + + # 创建一个cursor对象来执行SQL语句 + cursor_app = conn_app.cursor(buffered=True) + + select_year_select = f"""select report_type,year from report_check where id = {file_id}""" + cursor.execute(select_year_select) + record_select = cursor.fetchall() + report_type = record_select[0][0] + report_year = record_select[0][1] + + client = MilvusClient( + uri= MILVUS_CLIENT + ) + applog.info('提取指标任务 %s (%s)...' % (record_range, os.getpid())) + start = time.time() + + record_start = record_range.split('-')[0] + record_end = record_range.split('-')[1] + for index in range(int(record_start),int(record_end)): + t = word_tables[index][0] + measure_obj =[] + data_dict = {} + measure_list = [] + try: + arr = np.array(t["data"]) + rows, cols = arr.shape + if rows == 1 and cols == 1: + continue + + row_num , col_num = -1 , -1 + + # 使用嵌套循环遍历数组,获取第一个数值位置 + for i in range(rows): + for j in range(cols): + if j == 0 or i == 0:#防止第一列识别出数字 + continue + measure_value_config = str(arr[i, j]).replace('(','').replace(')','') + + + if re.match(r'^[+-]?(\d+(\.\d*)?|\.\d+)(%?)$', measure_value_config): + if j == cols-1: + row_num, col_num = i, j + break + elif (re.match(r'^[+-]?(\d+(\.\d*)?|\.\d+)(%?)$', measure_value_config) + or measure_value_config == '-'): + row_num, col_num = i, j + break + else: + continue + break + # 遍历数值二维数组,转成带语义的指标 + if row_num != -1 and col_num != -1: + for i in range(row_num,arr.shape[0]): + for j in range(col_num,arr.shape[1]): + measure_value = str(arr[i, j]).replace('%','').replace('(','-').replace(')','') + if measure_value == '-' or measure_value == '' or len(measure_value) > 20: + continue + else: + row_num_info = get_row_num_info(arr,row_num,col_num,i,j) + col_num_info = get_col_num_info(arr,row_num,col_num,i,j) + + #如果上表头为空则认为是被截断,除了研发投入特殊处理其它过滤 + if row_num_info in ('','-',')',')'): + continue + + #特殊处理非经常性损益合计和非经常性损益净额同时出现时保留净额 + if col_num_info == '非经常性损益合计': + continue + + if utils.check_pdf_measure_black_list(f"{col_num_info}{row_num_info}"): + continue + + #去掉没有周期的指标 + if utils.check_pdf_measure(f"{col_num_info}{row_num_info}"): + continue + + #判断上表头和左表头周期是否一致,不一致过滤 + row_period = utils.get_period_type_other(row_num_info, report_year) + col_period = utils.get_period_type_other(col_num_info, report_year) + if(row_period != col_period and row_period != 'c_n' and col_period != 'c_n'): + continue + units_mapping = { + "百万元": "百万元", + "千万元": "千万元", + "亿元": "亿元", + "万元": "万元", + "千元": "千元", + "元": "元", + "元/股": "元" + } + row_num_info = row_num_info.replace('%','增减') + #num_info = f"{col_num_info}{row_num_info}".replace('()','').replace('加:','').replace('减:','').replace('%','') + num_info = utils.get_clean_text(f"{row_num_info}{col_num_info}") + num_info_bak = utils.get_clean_text(f"{col_num_info}{row_num_info}") + measure_unit = '' + #"%": "同期增减" + combined_info = f"{row_num_info} {col_num_info}" + # for unit in units_mapping: + # if unit in row_num_info: + # measure_unit = units_mapping[unit] + # break + if utils.get_percent_flag(row_num_info) == '1': + measure_unit = '' + else: + for unit in units_mapping: + if re.search(rf'\(\s*{unit}(\s*人民币)?\s*\)|\(\s*{unit}(\s*人民币)?\s*\)', combined_info) or (re.search(rf'{unit}', combined_info) and any(re.search('单位', item) for item in arr[0])): + measure_unit = units_mapping[unit] + break + measure_list.append({ + 'measure_name': num_info, + 'measure_value': measure_value, + 'measure_unit':measure_unit, + }) + measure_list.append({ + 'measure_name': num_info_bak, + 'measure_value': measure_value, + 'measure_unit':measure_unit, + }) + + if not redis_client.exists(f'parsed_measure_count_{file_id}'): + redis_client.set(f'parsed_measure_count_{file_id}', 0) + + redis_client.incr(f'parsed_measure_count_{file_id}') + + if len(measure_list) > 0: + data_dict["measure_list"] = measure_list + data_dict["page_num"] = f"{str(t['page_num'])}_{str(t['table_index'])}" + data_dict['file_id'] = file_id + measure_obj.append(data_dict) + db_service_word.insert_measure_data_to_milvus(client,measure_obj,cursor_app,conn_app) + except Exception as e: + applog.error(f"循环获取表格数据这里报错了,数据是{t['data']},位置在{index}") + applog.error(f"错误是:{e}") + end = time.time() + applog.info('提取指标 %s runs %0.2f seconds.' % (record_range, (end - start))) + except Exception as e: + applog.error(f'这个错误是{e},所在的位置是{record_start}-{record_end}') + record_start = record_range.split('-')[0] + record_end = record_range.split('-')[1] + for index in range(int(record_start),int(record_end)): + t = word_tables[index] + try: + arr = np.array(t['data']) + except Exception as e: + applog.error(f'这个错误是{e}的arr的值是{arr}') + + + finally: + redis_client.close() + client.close() + cursor.close() + conn.close() + cursor_app.close() + conn_app.close() + + +#指标归一化处理 + +def update_measure_data(file_id,file_path,parent_table_pages): + conn = mysql.connector.connect( + host = MYSQL_HOST, + user = MYSQL_USER, + password = MYSQL_PASSWORD, + database = MYSQL_DB + ) + + # 创建一个cursor对象来执行SQL语句 + cursor = conn.cursor(buffered=True) + # #通过向量查询指标 + conn_app = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + + # 创建一个cursor对象来执行SQL语句 + cursor_app = conn_app.cursor(buffered=True) + applog.info(f'目录黑名单为:{parent_table_pages}') + # db_service_word.delete_to_run(conn,cursor,file_id) + db_service_word.insert_table_measure_from_vector_async_process(cursor,parent_table_pages,file_id,file_path) + + # #指标归一化处理 + db_service_word.update_ori_measure(conn,cursor,file_id) + # db_service.delete_database(conn_app,cursor_app,file_id) + cursor.close() + conn.close() + cursor_app.close() + conn_app.close() + +def merge_consecutive_arrays(word_info): + merged_objects = [] + temp_list = [] + + for info_obj in word_info: + try: + if info_obj['type'] == 'table': + # 如果对象是表格,将其元素添加到临时列表中 + data = info_obj['data'] + if not data: + continue + first_row = data[0] + if all(re.search(r'[\u4e00-\u9fa5]', cell) for cell in first_row[1:]) and len(temp_list) == 0: + temp_list.append(info_obj) + elif all(re.search(r'[\u4e00-\u9fa5]', cell) for cell in first_row[1:]) and len(temp_list) > 0: + merged_objects.append(temp_list) + temp_list = [] + temp_list.append(info_obj) + elif not all(re.search(r'[\u4e00-\u9fa5]', cell) for cell in first_row[1:]) and len(temp_list) > 0: + temp_data = temp_list[-1]['data'] + temp_data = list(temp_data) + for row in list(info_obj['data']): + temp_data.append(row) + info_obj['data'] = temp_data + temp_list.clear() + temp_list.append(info_obj) + + + except Exception as e: + + applog.error(f"解析数据错误: {e}") + + if temp_list: + merged_objects.append(temp_list) + + return merged_objects + +def merge_consecutive_arrays_v1(pdf_info): + merged_objects = [] + temp_array = {} + + def is_same_dimension(data1, data2): + # 检查两个表的每行长度是否相同 + if len(data1) != len(data2): + return False + return all(len(row1) == len(row2) for row1, row2 in zip(data1, data2)) + + for info_obj in pdf_info: + try: + if info_obj['type'] == 'table': + if not temp_array: + # 如果临时列表为空,则初始化临时列表 + temp_array = info_obj + else: + # 检查当前表与临时列表中的表是否同维度 + if is_same_dimension(temp_array['data'], info_obj['data']): + # 如果是同维度,则合并数据 + temp_array['data'].extend(info_obj['data']) + else: + # 如果不是同维度,将现有临时列表添加到结果中,并重置临时列表 + merged_objects.append(temp_array) + temp_array = info_obj + else: + # 如果对象不是表格,检查临时列表是否非空 + if temp_array: + # 将临时列表中的元素合并成一个数组,并添加到新的对象列表中 + merged_objects.append(temp_array) + temp_array = {} # 重置临时列表 + except Exception as e: + applog.error(f"解析数据错误: {e}") + + # 循环结束后,检查临时列表是否非空,如果非空,则添加到结果中 + if temp_array: + merged_objects.append(temp_array) + + return merged_objects +def start_table_measure_job(file_id): + conn_app = mysql.connector.connect( + host = MYSQL_HOST_APP, + user = MYSQL_USER_APP, + password = MYSQL_PASSWORD_APP, + database = MYSQL_DB_APP + ) + + # 创建一个cursor对象来执行SQL语句 + cursor_app = conn_app.cursor(buffered=True) + + select_process_query = ''' + select DISTINCT content from word_parse_process WHERE file_id = '{file_id}' and type='parse_table' order by page_num + '''.format(file_id=file_id) + cursor_app.execute(select_process_query) + records = cursor_app.fetchall() + word_info = [] + for record in records: + word_info.append(eval(record[0])) + + # 获取table 数据 + word_tables = merge_consecutive_arrays(word_info) + redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6) + + redis_client.set(f'measure_count_{file_id}', len(word_tables)) + + cursor_app.close() + conn_app.close() + redis_client.close() + + records_range_parts = utils.get_range(len(word_tables),MEASURE_COUNT) + processes = [] + for record_range in records_range_parts: + p = Process(target=get_table_measure, args=(file_id,word_tables,record_range,)) + processes.append(p) + p.start() + + for p in processes: + p.join() + diff --git a/zzb_data_word/parse_word.py b/zzb_data_word/parse_word.py new file mode 100644 index 0000000..a047544 --- /dev/null +++ b/zzb_data_word/parse_word.py @@ -0,0 +1,269 @@ +from docx import Document +import json +from docx.oxml.table import CT_Tbl +from docx.oxml.text.paragraph import CT_P +from lxml import etree +import os +import zipfile + +RESULT_TYPE_TEXT = 'text' +RESULT_TYPE_TABLE = 'table' + +def build_result(result_type, index, data): + return { + 'type': result_type, + 'index': index, + 'data': data + } + +def build_catalog_result(index, depth, data): + return { + 'index': index, + 'depth': depth, + 'data': data + } + +# 解析docx文件中的XML内容 +def get_xml_content(docx_filename, xml_filename): + with zipfile.ZipFile(docx_filename) as z: + return z.read(xml_filename) + +def parse_paragraph(paragraph, index, namespaces): + paragraph_text = paragraph.text.strip() if paragraph else '' + if paragraph_text: + return build_result(RESULT_TYPE_TEXT, index, paragraph_text) + return None + +def parse_table(table, index): + table_data = [] + for row in table.rows: + row_data = [cell.text for cell in row.cells] + table_data.append(row_data) + return build_result(RESULT_TYPE_TABLE, index, table_data) + +def parse_paragraph_element(paragraph_element, index, namespaces): + paragraph_xml = etree.fromstring(paragraph_element.xml) + paragraph_text = ''.join(paragraph_xml.xpath('//w:t/text()', namespaces=namespaces)).strip() + if paragraph_text: + return build_result(RESULT_TYPE_TEXT, index, paragraph_text) + return None + +def parse_table_element(table_element, index, namespaces): + table_xml = etree.fromstring(table_element.xml) + table_data = [] + for row in table_xml.xpath('//w:tr', namespaces=namespaces): + row_data = [] + for cell in row.xpath('./w:tc | ./w:sdt', namespaces=namespaces): + cell_text = ''.join(cell.xpath('.//w:t/text()', namespaces=namespaces)).strip() + grid_span_xpath = etree.XPath('.//w:tcPr/w:gridSpan/@w:val', namespaces=namespaces) + grid_span = int(grid_span_xpath(cell)[0]) if grid_span_xpath(cell) else 1 + if grid_span > 1: + row_data.extend([cell_text] * grid_span) + else: + row_data.append(cell_text) + table_data.append(row_data) + return build_result(RESULT_TYPE_TABLE, index, table_data) + +def add_to_catalog(element_xml, index, catalog_content, namespaces, paragraph_text, heading_styles): + p_element = etree.fromstring(element_xml) + # outlineLvl = p_element.xpath('.//w:outlineLvl', namespaces=namespaces) + # if outlineLvl: + # level = int(outlineLvl[0].get('{http://schemas.openxmlformats.org/wordprocessingml/2006/main}val')) + # catalog_content.append(build_catalog_result(index, level, paragraph_text)) + level = is_heading_paragraph(p_element, heading_styles, namespaces) + if level != -1: + catalog_content.append(build_catalog_result(index, level, paragraph_text)) +# 检查段落是否为标题样式 +def is_heading_paragraph(paragraph, heading_styles, namespaces): + pPr = paragraph.find('.//w:pPr', namespaces=namespaces) + if pPr is not None: + pStyle = pPr.find('.//w:pStyle', namespaces=namespaces) + pOutLineLvl = pPr.find('.//w:outlineLvl', namespaces=namespaces) + if pStyle is not None: + style_val = pStyle.get(f"{{{namespaces['w']}}}val") + if style_val.isdigit(): + return int(style_val) + if pOutLineLvl is not None: + outLineLvl_val = pOutLineLvl.get(f"{{{namespaces['w']}}}val") + if outLineLvl_val.isdigit(): + return int(outLineLvl_val) + 1 + # if pStyle is not None and pStyle.get(ns['w'] + 'val') in heading_styles: + # if style_val > 0: + # return True + return -1 + +def get_paragraph_text(paragraph_element, namespaces): + paragraph_text = '' + for run in paragraph_element.findall('.//w:r', namespaces=namespaces): + for text in run.findall('.//w:t', namespaces=namespaces): + paragraph_text += text.text if text.text is not None else '' + return paragraph_text + +def add_to_catalog_paragraph(text, index, catalog_content, namespaces): + # 添加段落到目录 + catalog_content.append(build_catalog_result(index, 1, text)) # 假设默认级别为1 + +def parse_sdt_catalog(sdt_element, catalog_content, index, namespaces): + sdt_content = sdt_element.find('.//w:sdtContent', namespaces=namespaces) + if sdt_content is not None: + for child in sdt_content: + if child.tag.endswith('p'): # 内容控件中的段落 + paragraph_text = get_paragraph_text(child, namespaces) + if paragraph_text.strip(): # 检查文本是否为空 + add_to_catalog_paragraph(paragraph_text, index, catalog_content, namespaces) + index += 1 # 更新索引 + elif child.tag.endswith('tbl'): # 内容控件中的表格 + # 处理表格内容(如果需要) + pass + elif child.tag.endswith('sdt'): # 嵌套的内容控件 + index = parse_sdt_catalog(child, catalog_content, index, namespaces) # 递归解析嵌套的内容控件 + return index + +def parse_docx(docx_path): + try: + document = Document(docx_path) + styles_xml = get_xml_content(docx_path, 'word/styles.xml') + except Exception as e: + print(f"Error loading document: {e}") + return None, None + + doc_content = [] # 内容(文本+表格) + catalog_content = [] # 目录 + current_index = 1 # 维护全局的 index 变量 + paragraph_index = 0 + table_index = 0 + # 获取整个文档的XML内容 + xml_root = document.part.element + namespaces = xml_root.nsmap + + # 获取所有标题样式 + styles_root = etree.fromstring(styles_xml) + heading_styles = set() + for style in styles_root.xpath('//w:style', namespaces=namespaces): + style_type = style.get(namespaces['w'] + 'type') + if style_type == 'paragraph' and style.get(namespaces['w'] + 'styleId').startswith('Heading'): + heading_styles.add(style.get(namespaces['w'] + 'styleId')) + + # 遍历文档中的所有元素 + for i, element in enumerate(document.element.body): + if isinstance(element, CT_P): # 段落 + paragraph_result = parse_paragraph_element(element, current_index, namespaces) + if paragraph_result: + doc_content.append(paragraph_result) + # 判断是否为目录,是就插入目录内容 + paragraph = document.paragraphs[paragraph_index] + add_to_catalog(paragraph._element.xml, current_index, catalog_content, namespaces, paragraph.text, heading_styles) + current_index += 1 # 更新 index + paragraph_index += 1 + elif isinstance(element, CT_Tbl): # 表格 + table_result = parse_table_element(element, current_index, namespaces) + if table_result: + doc_content.append(table_result) + current_index += 1 # 更新 index + table_index += 1 + elif element.tag.endswith('sdt'): # 内容控件 + current_index = parse_sdt(element, doc_content, current_index, namespaces, catalog_content, heading_styles) # 更新索引 + + return json.dumps(doc_content, indent=4, ensure_ascii=False), json.dumps(catalog_content, indent=4, ensure_ascii=False) + + + +def parse_sdt(sdt_element, doc_content, current_index, namespaces, catalog_content, heading_styles): + sdtContent = sdt_element.find('.//w:sdtContent', namespaces=namespaces) + if sdtContent is not None: + for child in sdtContent: + if child.tag.endswith('p'): # 内容控件中的段落 + paragraph_text = '' + for run in child.findall('.//w:r', namespaces=namespaces): + for text in run.findall('.//w:t', namespaces=namespaces): + paragraph_text += text.text if text.text is not None else '' + if paragraph_text.strip(): # 检查文本是否为空 + doc_content.append(build_result(RESULT_TYPE_TEXT, current_index, paragraph_text.strip())) + # 判断是否为目录,是就插入目录内容 + add_to_catalog(child.xml, current_index, catalog_content, namespaces, paragraph_text, heading_styles) + current_index += 1 # 更新索引 + elif child.tag.endswith('tbl'): # 内容控件中的表格 + table_data = [] + merged_cells = {} # 用于记录跨行单元格的信息 + for row_idx, row in enumerate(child.findall('.//w:tr', namespaces=namespaces)): + row_data = [] + for col_idx, cell in enumerate(row.findall('.//w:tc', namespaces=namespaces)): + cell_text = '' + for run in cell.findall('.//w:r', namespaces=namespaces): + for text in run.findall('.//w:t', namespaces=namespaces): + cell_text += text.text if text.text is not None else '' + + # 检查单元格是否跨列 + grid_span_xpath = etree.XPath('.//w:tcPr/w:gridSpan/@w:val', namespaces=namespaces) + grid_span = int(grid_span_xpath(cell)[0]) if grid_span_xpath(cell) else 1 + if grid_span > 1: + row_data.extend([cell_text.strip()] * grid_span) + else: + row_data.append(cell_text.strip()) + + # 检查单元格是否跨行 + v_merge_xpath = etree.XPath('.//w:tcPr/w:vMerge/@w:val', namespaces=namespaces) + v_merge = v_merge_xpath(cell) + if v_merge and v_merge[0] == 'restart': + merged_cells[(row_idx, col_idx)] = (int(grid_span), 1) + elif v_merge and v_merge[0] == 'continue': + if (row_idx - 1, col_idx) in merged_cells: + merged_cells[(row_idx - 1, col_idx)] = (merged_cells[(row_idx - 1, col_idx)][0], merged_cells[(row_idx - 1, col_idx)][1] + 1) + # 跨行单元格不需要再次添加到 row_data 中 + else: + # 只有非跨行单元格才需要添加到 row_data 中 + pass + + # 处理跨行单元格 + for (r, c), (col_span, row_span) in list(merged_cells.items()): + if r < row_idx: + for i in range(row_span): + if r + i == row_idx: + row_data[c:c] = [row_data[c]] * (col_span - 1) + break + if r + row_span - 1 == row_idx: + del merged_cells[(r, c)] + + table_data.append(row_data) + if table_data: # 检查表格数据是否为空 + doc_content.append(build_result(RESULT_TYPE_TABLE, current_index, table_data)) + current_index += 1 # 更新索引 + elif child.tag.endswith('sdt'): # 嵌套的内容控件 + current_index = parse_sdt(child, doc_content, current_index, namespaces, catalog_content, heading_styles) # 递归解析嵌套的内容控件 + return current_index # 返回更新后的索引 + +def split_text_table(json_data): + # 分组 + text_elements = [element for element in json_data if element['type'] == 'text'] + table_elements = [element for element in json_data if element['type'] == 'table'] + + # 转换为JSON字符串 + text_elements_json = json.dumps(text_elements, ensure_ascii=False, indent=4) + table_elements_json = json.dumps(table_elements, ensure_ascii=False, indent=4) + + return text_elements_json, table_elements_json + +def append_to_file(file_path, text): + try: + with open(file_path, 'a', encoding='utf-8') as file: + file.write(text + '\n') + except Exception as e: + print(f"Error writing to file: {e}") + +if __name__ == "__main__": + current_directory = os.getcwd() + docx_relative_path = '101.docx' + file_relative_path = 'file\\docx\\test1.txt' + docx_path = os.path.join(current_directory, docx_relative_path) + file_path = os.path.join(current_directory, file_relative_path) + try: + parsed_content, catalog_content = parse_docx(docx_path) + if parsed_content and catalog_content: + json_parsed_content = json.loads(parsed_content) + text_elements_json, table_elements_json = split_text_table(json_parsed_content) + + append_to_file(file_path, text_elements_json) + append_to_file(file_path, table_elements_json) + append_to_file(file_path, catalog_content) + except Exception as e: + print(f"Error parse_docx: {e}") \ No newline at end of file diff --git a/zzb_data_word/redis_service.py b/zzb_data_word/redis_service.py new file mode 100644 index 0000000..b767944 --- /dev/null +++ b/zzb_data_word/redis_service.py @@ -0,0 +1,17 @@ +import redis +# 从 MySQL 表中读取数据并写入 Redis +def read_from_file_and_write_to_redis(redis_client,ori_measure_id,measure_vector): + # Redis 连接配置 + redis_client.hset('measure_config',ori_measure_id, measure_vector) + +# 从 Redis 中读取数据 +def read_from_redis(redis_client,ori_measure_id): + # 获取所有键 + return redis_client.hget('measure_config',ori_measure_id).decode() + +# if __name__ == "__main__": +# # redis_client = redis.Redis(host='123.60.153.169', port=6379, password='Xgf_redis', db=6) +# redis_client = redis.Redis(host='124.70.129.232', port=6379, password='Xgf_redis', db=6) +# +# value = read_from_redis(redis_client,"92b44ffb50b6ab2068f5de447c9925") +# print(value) \ No newline at end of file diff --git a/zzb_data_word/requirements.txt b/zzb_data_word/requirements.txt new file mode 100644 index 0000000..a38c143 --- /dev/null +++ b/zzb_data_word/requirements.txt @@ -0,0 +1,14 @@ +camelot-py==0.11.0 +pdfminer.six==20221105 +PyPDF2==3.0.1 +pdfplumber==0.10.3 +pymilvus==2.3.3 +mysql-connector-python==8.3.0 +dashscope==1.17.0 +fastapi +pydantic +uvicorn +redis +ghostscript +opencv-python-headless +python-docx \ No newline at end of file diff --git a/zzb_data_word/utils.py b/zzb_data_word/utils.py new file mode 100644 index 0000000..a735aac --- /dev/null +++ b/zzb_data_word/utils.py @@ -0,0 +1,818 @@ +#coding=utf-8 + +import dashscope +from http import HTTPStatus +from pymilvus import MilvusClient +import json +from datetime import datetime +import re,os,time +import requests +import config +import numpy as np +from docx2pdf import convert +from config import api_key + + +dashscope.api_key = api_key + + +def get_md5(str): + import hashlib + m = hashlib.md5() + m.update(str.encode('utf-8')) + return m.hexdigest() + +def embed_with_str(input): + retry = 0 + max_retry = 5 + t = 0.1 + while retry < max_retry: + #阿里接口限流 + time.sleep(t) + resp = dashscope.TextEmbedding.call( + model=dashscope.TextEmbedding.Models.text_embedding_v2, + input=input) + if resp.status_code == HTTPStatus.OK: + return resp + elif resp.status_code == 429: + print(f'触发限流,等待{t}秒后重试') + retry += 1 + t+=0.1 + else: + print(f'请求失败,状态码:{resp.status_code}') + return None + print('重试超过上限') + return None + +#如果存在‘归属于|扣非’,就保留括号内的内容,并去掉标点符号和中文数字。 +#如果存在季度关键词,就将括号内容替换为季度 +#如果存在‘±’,就将括号内容替换为同期增减 +#其他情况,就删掉括号内全部内容 +def get_clean_text(text): + text = text.replace('流动资产:','').replace('半年度','上半年') + #先对几个半年报的词做整理,防止向量识别不出来 + terms = ["货币资金", "应收账款",'应付账款'] + #这个是不要合计的 + terms_2 = ["固定资产","短期借款","合同负债","在建工程","商誉","存货"] + #这个是需要调换位置的指标 + #terms_3 = ["固定资产","短期借款","合同负债","在建工程","商誉"] + #不可以出现同比之类的 + terms_4 = ['比', '率', '占','至','年以内','年以上','年内','1-2年','2-3年','3-4年','4-5年','准备','在途','增值','评估','利息','应计','改良','跌价','补助','投资'] + dates = [ "2021年12月31日","2022年12月31日","2022年1月1日","2023年1月1日", "2023年12月31日", "2022年6月30日","2023年6月30日","2024年6月30日","2024年半年度","2023年半年度","2022年半年度"] + #dates = [ "2021年12月31日","2022年12月31日","2023年12月31日","2022年1月1日","2023年1月1日", "2024年1月1日", "2022年6月30日","2023年6月30日","2024年6月30日","2021年初","2022年初","2023年初","2024年初",'2021年末','2022年末','2023年末','2024年末',"2023年","2022年","2021年"] + if any(term in text for term in terms_4): + return text + if len(text) <= 20: + for term in terms: + for date in dates: + if term in text and date in text: + text = f"{date}{term}合计" + return text + if len(text) <= 20: + for term in terms_2: + for date in dates: + if term in text and date in text: + text = f"{date}{term}" + return text + + import re + replacement_dict = { + '加:': '', + '减:': '', + '%' : '', + '其中:': '', + '实际': '', + '/': '', + '重述后':'', + '年末金额':'年末', + '比重增减':'同比增减', + '比例':'同比', + } + #针对整个text做替换 + def replace_all(text, replacements): + pattern = re.compile("|".join(map(re.escape, replacements.keys()))) + return pattern.sub(lambda match: replacements[match.group(0)], text) + text = replace_all(text, replacement_dict) + #单独出现12月31日时,就剔除掉 + pattern_year = r'(? 0: + return 'c' + elif len(re.findall(l_period, text)) > 0: + return 'l' + elif len(re.findall(bl_period, text)) > 0: + return 'bl' + else: + return 'c' + +def get_period_type_other(text, year): + l_year = f'{int(year)-1}' + bl_year = f'{int(year)-2}' + c_period = f'当期|本期|本报告期|报告期|本年|本期|{year}' + l_period = f'上年|上期|上年度|{l_year}' + bl_period = f'前年|{bl_year}' + + if len(re.findall(c_period, text)) > 0: + return 'c' + elif len(re.findall(l_period, text)) > 0: + return 'l' + elif len(re.findall(bl_period, text)) > 0: + return 'bl' + else: + return 'c_n' + +def get_start_period_type(text): + s_period = '期初|1月1日|年初' + + if len(re.findall(s_period, text)) > 0: + return '' + else: + return '0' + +def get_season_flag(text): + season_period = '第1季度|第2季度|第3季度|第4季度|一季度|二季度|三季度|四季度|1-3月|4-6月|7-9月|10-12月' + if len(re.findall(season_period, text)) > 0: + return '1' + else: + return '0' + +def get_percent_flag(text): + percent_word = '收益率|占比|比重|比例|同比增减|同比上升|同比下降|变化幅度|同期增减|本年比上年增减|同比变动|变动比例|本年度比上年度增减|增减' + if len(re.findall(percent_word, text)) > 0: + return '1' + else: + return '0' + +def get_kf_flag(text): + kf_word = '扣非|扣除非经常性损益' + if len(re.findall(kf_word, text)) > 0: + return '1' + else: + return '0' + +def get_report_start(text): + kf_word = '报告期初|1月1日' + if len(re.findall(kf_word, text)) > 0: + return '1' + else: + return '0' + +def get_percent_growth(text): + percent_growth_word = '变动|本年比上年|比例同比增减|比例同比上升|比例同比下降|比例变化幅度|比例变动比例|比例本期比上年同期增减|比例本年比上年增减|比例同比变动|比例本期期末金额较上期期末变动比例|比率同比增减|比率同比上升|比率同比下降|比率变化幅度|比率变动比例|比率本期比上年同期增减|比率本年比上年增减|比率同比变动|比率本期期末金额较上期期末变动比例|占比同比增减|占比同比上升|占比同比下降|占比变化幅度|占比变动比例|占比本期比上年同期增减|占比本年比上年增减|占比同比变动|占比本期期末金额较上期期末变动比例|费用同比增减|费用同比上升|费用同比下降|费用变化幅度|费用变动比例|费用本期比上年同期增减|费用本年比上年增减|费用同比变动|费用本期期末金额较上期期末变动比例' + if len(re.findall(percent_growth_word, text)) > 0: + return '1' + else: + return '0' +def check_black_list(meta_measure, pdf_measure, black_array): + # 获取黑名单数据 + #black_array = fetch_black_list_data(cursor) + + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if meta_measure==black_meta: + for pdf in black_pdfs: + if pdf_measure.find(pdf) >= 0: + return True + return False + +def check_black_list_old(meta_measure,pdf_measure): + # 判断指标名是否包含黑名单词 + #black_array = ['非经常性损益:非经常性损益合计,非经常性损益总额','营业收入:营业外收入,主营业务,营业总收入,扣除,年度公司','归母净利润:净资产,净利率,扣除,年度公司','扣非净利润:净资产,净利率,年度公司','经营活动现金流净额:筹资活动,投资活动,流入小计,流出小计','筹资活动现金流净额:经营活动,投资活动,流入小计,流出小计','投资活动现金流净额:经营活动,筹资活动,流入小计,流出小计','非经常性损益:扣除非经常性损益','基本每股收益:稀释每股收益','稀释每股收益:基本每股收益','总资产:净资产','应收账款:应付账款','短期借款:长期借款','应付账款:应收账款','长期借款:短期借款','研发投入:比例,比率,占比,费用','资本化研发投入:比例,比率,占比,费用','资本化研发投入占比:金额,费用','研发投入占营业收入比例:金额,费用','上年年末:1月1日'] + black_array = ['非经常性损益:非经常性损益合计,非经常性损益总额,合计' + ,'营业收入:营业外收入,主营业务,营业总收入,扣除,年底公司,合计,汇总' + ,'归母净利润:净资产,净利率,扣除,年度公司,归属于本公司普通股股东的净利润' + ,'扣非净利润:净资产,净利率,年度公司' + ,'经营活动现金流净额:筹资活动,投资活动,流入小计,流出小计,每股,扣除' + ,'筹资活动现金流净额:经营活动,投资活动,流入小计,流出小计,每股,扣除' + ,'投资活动现金流净额:经营活动,筹资活动,流入小计,流出小计,每股,扣除' + ,'非经常性损益:扣除非经常性损益' + ,'基本每股收益:稀释每股收益,发行新股' + ,'稀释每股收益:基本每股收益,发行新股' + ,'总资产:净资产','应收账款:应付账款,年以上,内,至,到' + ,'短期借款:长期借款,非流动负债,年以上,年以内,内,至,到' + ,'应付账款:应收账款,年以上,内,至,到' + ,'长期借款:短期借款,非流动负债,年以上,内,至,到,保证,抵押' + ,'研发投入:比例,比率,占比,费用,占' + ,'资本化研发投入:比例,比率,占比,费用,占' + ,'资本化研发投入占比:金额,费用' + ,'研发投入占营业收入比例:金额,费用' + ,'上年年末:1月1日' + ,'期加权平均净资产收益率:同比,扣除,扣非,年化,每股' + ,'期扣非加权平均净资产收益率:同比,年化,每股' + ,'加权平均净资产收益率同比变动:年化,每股' + ,'研发费用:制造,投入,直接,管理' + ,'应收账款:1-2年','货币资金:在途' + ,'当期:2023年1-6月,调整后' + ,'营业成本:营业总成本' + ,'长期借债:年内到期','研发投入:直接' + ,'第一季度:第二季度,第三季度,第四季度' + ,'第二季度:第一季度,第三季度,第四季度' + ,'第三季度:第二季度,第一季度,第四季度' + ,'第四季度:第二季度,第三季度,第一季度' + ,'研发费用:研发支出,研发投入','存货:跌价准备' + ,'费用:日常,付现','固定资产:改良,补助,投资'] + # current_period = f'当期:{report_year}年1-6月' + # black_array.append(current_period) + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if meta_measure.find(black_meta) >= 0: + for pdf in black_pdfs: + if pdf_measure.find(pdf) >= 0: + return True + return False + +def check_white_list(meta_measure,pdf_measure): + white_array = ['基本每股收益:每股收益','加权平均净资产收益率同比变动:比','季度变动比例:比'] + for black in white_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if black_meta in meta_measure: + for pdf in black_pdfs: + if pdf_measure.find(pdf) < 0: + return True + return False + +def check_title_black_list(meta_measure,text_info): + # 判断指标名是否包含黑名单词 + black_array = ['营业收入:前五名,前5名,合计','营业成本:合计','财务费用:现金流','销售费用:现金流','管理费用:现金流','研发费用:现金流','非经常性损益:合计'] + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if meta_measure.find(black_meta) >= 0: + for pdf in black_pdfs: + if text_info.find(pdf) >= 0: + return True + return False + +# 文本中数字的占比 +def under_non_alpha_ratio(text: str, threshold: float = 0.6): + + if len(text) == 0: + return False + + alpha_count = len([char for char in text if char.strip() and char.isalpha()]) + total_count = len([char for char in text if char.strip()]) + try: + ratio = alpha_count / total_count + return ratio <= threshold + except: + return False +def check_table_title_black_list(text,table_title_black_list):#report_year + #previous_year = int(report_year) - 1 + if table_title_black_list is None: + return False + if len(re.findall(table_title_black_list, text)) > 0: + return True + if re.search(r'上年度\s*$', text): + return True + return False +#通过关键词黑名单匹配表格上方的文本区域,提取需要过滤的表格 +def check_table_title_black_list_old(text,report_year):#report_year + previous_year = int(report_year) - 1 + table_title_black_list = f"""所有权或使用权受到限制的资产|持有待售资产|关联交易|未确认递延所得税资产明细|{previous_year}年度|{previous_year}年1-6月|自{previous_year}年1月1日至6月30日止期间|流动性风险|关联交易|账龄超过|流动风险|公司资产负债表|按账龄组合|线上直营|线上直销|公司现金流量表|公司利润表|应收账款|在建工程|固定资产|其他与筹资活动有关的现金|汇率风险|市场风险|主营业务收入|主营收入|其他收入|前五名|前5名|经营活动有关的现金|股份变动对最近一年和最近一期每股收益、每股净资产等财务指标的影响|合同产生的收入情况|子公司|参股公司|控股公司|分解信息|经营活动产生的现金|行业分类|产品分类|地区分类|业绩快报|销售渠道|调整情况说明|合同分类|计入当期损益的政府补助|股份变动对最近一年和最近一期|分部的财务信息|显示服务创收|线上销售情况|试运行销售|会计政策变更|品牌经营业务|工程施工业务|开发业务|制造业务|合营安排或联营企业中的权益|联营企业的主要财务信息|汇率及通货膨胀|与金融工具相关的风险|运营业务|B端业务|终止经营现金流量|终止经营|公司股份总数及股东结构变动及公司资产和负债结构的变动情况|母公司|现金流量表补充|直营店店效情况|担保人2023年度未经审计的|外汇风险|公司各业务板块经营情况|报告期确认的包括在合同负债期初账面价值中的收入|资产受限情况|资产权利受限情况|内控自我评价报告|所有权或使用权受限资产|合并日被合并方资产、负债的账面价值|经营租赁资产|前5|前五|②|不属于现金及现金等价物的货币资金|按销售模式分|按产品类别分|按照销售区域|产品类别|销售模式|经销模式|关键管理人员|截至{previous_year}年6月30日止六个月期间|关联方提供的存款及贷款服务|报告期内各销售渠道的盈利情况|报告期内各地区的盈利情况|报告期内各产品的盈利情况|其他非流动负债|关联方提供的存款及贷款服务|自营销售分商品类别数据|组合计提|考核指标|不属于现金及现金等价物的货币资金|应收款项融资|本期计提、收回或转回的坏账准备情况|存货跌价准备|持有待售负债""" + + if len(re.findall(table_title_black_list, text)) > 0: + return True + if re.search(r'上年度\s*$', text): + return True + return False +#通过关键词黑名单匹配页面下方的文本区域,提取需要过滤的表格 + +def check_table_title_black_list_button(text,table_title_black_list): + + if table_title_black_list is None: + return False + + if len(re.findall(table_title_black_list, text)) > 0: + return True + if re.search(r'上年度\s*$', text): + return True + return False +def check_table_title_black_list_button_old(text): + + table_title_black_list = """公司资产负债表|公司现金流量表|公司利润表|主营业务收入|主营收入|其他收入|前五名|前5名|经营活动有关的现金|股份变动对最近一年和最近一期每股收益、每股净资产等财务指标的影响|合同产生的收入情况|子公司|参股公司|控股公司|分解信息|经营活动产生的现金|2022年度|行业分类|产品分类|地区分类|业绩快报|销售渠道|调整情况说明|合同分类|计入当期损益政府补助|股份变动对最近一年和最近一期|分部的财务信息|显示服务创收|线上销售情况|试运行销售|品牌经营业务|工程施工业务|开发业务|制造业务|合营安排或联营企业中的权益|联营企业的主要财务信息|汇率及通货膨胀|与金融工具相关的风险|运营业务|B端业务|终止经营现金流量|终止经营|公司股份总数及股东结构变动及公司资产和负债结构的变动情况|不属于现金及现金等价物的货币资金|经营租赁资产|分地区|分产品|分行业|使用权受限资产|资产受限情况|经销模式|持续的第三层次公允价值计量项目,期初与期末账面价值间的调节信息及不可观察参数敏感|权利受限情况|应收款项融资|本期计提、收回或转回的坏账准备情况""" + + + if len(re.findall(table_title_black_list, text)) > 0: + return True + if re.search(r'上年度\s*$', text): + return True + return False +def check_table_title_black_list_measure(text): + #black_array = ['补充资料:研发费用,管理费用,财务费用' + # ,'营业收入:营业外收入,主营业务,营业总收入,扣除,年底公司,合计,汇总' + #] + table_title_black_list = """补充资料|测试文本|其他非流动负债|应收款项融资|本期计提、收回或转回的坏账准备情况|筹资活动产生的各项负债变动情况|持有待售资产|账龄超过 1 年或逾期的重要应付账款|经营租赁资产|计息金融工具|坏账准备""" + if len(re.findall(table_title_black_list, text)) > 0: + return True + return False +#过滤原始指标中包含黑名单 +def check_pdf_measure_black_list(text): + pdf_measure_black_list = '股权变动前|股权变动后|含股份支付|境内|境外|调整前|有限公司|责任公司|其他|变更前|差异|同口径|调整金额' + if len(re.findall(pdf_measure_black_list, text)) > 0: + return True + if "其中:营业收入" in text: + return False + if "同比" in text and "额" in text: + #if text.find("同比") < text.find("额"): + if text.endswith("额"): + return True + return False + + +def check_pdf_measure(pdf_measure): + keywords_1 = [ + '2022年', '2023年', '2021年', '第一季度', '第二季度', '第三季度', '第四季度', '增减', '变动', '本期','同期', '当期', '报告期', '前年', + '上年', '上期', '本年', '1-3月', '4-6月', '7-9月', '10-12月' + ] + + keywords_2 = ['这里是一个测试文本'] + + contain_keyword_1 = any(keyword in pdf_measure for keyword in keywords_1) + contain_keyword_2 = any(keyword in pdf_measure for keyword in keywords_2) + #只有 未出现周期,同时出现了'调整后'才会删掉指标 + if not contain_keyword_1 and contain_keyword_2: + return True + return False +# def check_white_list(meta_measure,pdf_measure): +# # 判断指标名是否包含白名单词 +# black_array = ['营业收入:营业外收入,主营业务,营业总收入,扣除','归母净利润:净资产,净利率,扣除','扣非净利润:净资产,净利率','经营活动现金流净额:筹资活动,投资活动,流入小计,流出小计','筹资活动现金流净额:经营活动,投资活动,流入小计,流出小计','投资活动现金流净额:经营活动,筹资活动,流入小计,流出小计','非经常性损益:扣除非经常性损益','基本每股收益:稀释每股收益','稀释每股收益:基本每股收益','总资产:净资产','应收账款:应付账款','短期借款:长期借款','应付账款:应收账款','长期借款:短期借款','研发投入:比例,比率,占比,费用','资本化研发投入:比例,比率,占比,费用','资本化研发投入占比:金额,费用','研发投入占营业收入比例:金额,费用'] +# for black in black_array: +# black_meta = black.split(':')[0] +# black_pdfs = black.split(':')[1].split(',') +# if meta_measure.find(black_meta) >= 0: +# for pdf in black_pdfs: +# if pdf_measure.find(pdf) >= 0: +# return True +# return False +def check_line_text(line_text): + if line_text == 'PAGE': + return False + if line_text == '(续)': + return False + if line_text.endswith('(续)'): + return False + if line_text.endswith("年度财务报表") and "有限公司" in line_text: + return False + if len(line_text) < 20 and line_text.endswith("有限公司"): + return False + substrings = [ + '对内加快发展方式绿色转型、对外形成绿色生产和生活方式', + '可持续发展、创新发展;“8”是八大绿色行动', + '色新赋能、催生绿色新科技、筑牢绿色新支撑', + '接上表','续上表', + ] + for substring in substrings: + if substring in line_text: + return False + return True + +def pdf_text_flag(text : str): + if under_non_alpha_ratio(text): + return True + + if len(text) < 5: + return True + + if not re.findall(',|,|。|、|(|)',text): + return True + + if text.find('适用') != -1 and text.find('不适用') != -1: + return True + + if text.find('是') != -1 and text.find('否') != -1: + return True + + return False + +def get_change_rate_flag(text): + percent_word = '同比增减|同比上升|同比下降|变化幅度|变动比例|本期比上年同期增减|本年比上年增减|同比变动|本期期末金额较上期期末变动比例' + if len(re.findall(percent_word, text)) > 0: + return '1' + else: + return '0' + +def check_pdf_measure_black_list_v3(file_id,table_num,table_index,pdf_measure,conn_app,cursor_app): + content_value = f"{table_num}_{table_index}" + measure_index_array = [] + select_measure_index_query = ''' + SELECT DISTINCT text FROM measure_parser_info_linetext WHERE file_id = %s AND type = 'measure_index' and content = %s + ''' + cursor_app.execute(select_measure_index_query, (file_id,content_value,)) + measure_index_records = cursor_app.fetchall() + for measure_index_record in measure_index_records: + measure_index_array.append(measure_index_record[0]) + black_array = ['补充资料:研发费用,管理费用,财务费用,销售费用' + ,'测试标题:测试指标' + ,'其他非流动负债:合同负债' + ,'应收款项融资:应收账款' + ,'本期计提、收回或转回的坏账准备情况:应收账款' + ,'筹资活动产生的各项负债变动情况:短期借款,长期借款' + ,'持有待售资产:固定资产' + ,'账龄超过 1 年或逾期的重要应付账款:应付账款' + ,'经营租赁资产:固定资产' + ,'计息金融工具:货币资金,短期借款,交易性金融资产' + ,'坏账准备:应收账款' + ] + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + #if measure_index_array.find(black_meta) >= 0: + #if black_meta in measure_index_array: + if any(black_meta in measure_index for measure_index in measure_index_array): + if any(pdf in pdf_measure for pdf in black_pdfs): + #for pdf in black_pdfs: + #if pdf in pdf_measure: + #if pdf_measure.find(pdf) >= 0: + return True + return False +def check_black_table_list(data): + black_array = ['补充资料:研发费用,管理费用,财务费用,销售费用', + #'补充目录:母公司' + ] + for black in black_array: + black_meta = black.split(':')[0] + black_pdfs = black.split(':')[1].split(',') + if any(black_meta in cell for row in data for cell in row): + print(data) + for pdf in black_pdfs: + data = [row for row in data if not any(pdf in cell for cell in row)] + return data + +if __name__ == '__main__': + + print(len('我是我')) + + # print(under_non_alpha_ratio('202水电费水电费水电费是的205月')) + # title = '母公司财务报表主要项目注释' + # if len(re.findall('母公司|现金流量表补充', title)) >0 and len(re.findall('项目注释', title)) == 0: + # print('1') + # else: + # print('0') + + # print(check_black_list('当期投资活动现金流净额','当前筹资活动现金流净额')) + # test = '2023年1-12月' + # print(get_period_type('上年度本期费用化研发投入')) + # print(get_period_type('费用化研发投入本年度')) + # vector_a = embed_with_str('第一季度营业收入') + # vector = vector_a.output["embeddings"][0]["embedding"] + + # vector_b = embed_with_str('营业收入第一季度') + # vector1 = vector_b.output["embeddings"][0]["embedding"] + + # similarity = cosine_similarity(vector, vector1) + # print(f"余弦相似度: {similarity}") + + # measure_data = [ + # '1,1,营业收入2023年金额,1003535799.51', + # '1,1,营业收入2022年金额,869401513.71', + # '1,1,营业收入变动比例,15.43%', + # '1,1,营业成本2023年金额,810779075.89', + # '1,1,营业成本2023年占营业收入的比重,80.79%', + # '1,1,营业成本2022年金额,702990363.57', + # '1,1,营业成本2022年占营业收入的比重,80.86%', + # '1,1,营业成本变动比例,15.33%', + # '1,1,毛利率2023年金额,19.21%', + # '1,1,毛利率2022年金额,19.14%', + # '1,1,销售费用2023年金额,34065464.60', + # '1,1,销售费用2023年占营业收入的比重,3.39%', + # '1,1,销售费用2022年金额,28038106.19', + # '1,1,销售费用2022年占营业收入的比重,3.22%', + # '1,1,销售费用变动比例,21.50%', + # '1,1,管理费用2023年金额,50807308.69', + # '1,1,管理费用2023年占营业收入的比重,5.06%', + # '1,1,管理费用2022年金额,38251704.48', + # '1,1,管理费用2022年占营业收入的比重,4.40%', + # '1,1,管理费用变动比例,32.82%', + # '1,1,研发费用2023年金额,35312198.23', + # '1,1,研发费用2023年占营业收入的比重,3.52%', + # '1,1,研发费用2022年金额,30081787.99', + # '1,1,研发费用2022年占营业收入的比重,3.46%', + # '1,1,研发费用变动比例,17.39%', + # '1,1,财务费用2023年金额,8015604.52', + # '1,1,财务费用2023年占营业收入的比重,0.80%', + # '1,1,财务费用2022年金额,5739677.85', + # '1,1,财务费用2022年占营业收入的比重,0.66%', + # '1,1,财务费用变动比例,39.65%', + # '1,1,信用减值损失2023年金额,-11873626.82', + # '1,1,信用减值损失2023年占营业收入的比重,-1.18%', + # '1,1,信用减值损失2022年金额,-8903293.61', + # '1,1,信用减值损失2022年占营业收入的比重,-1.02%', + # '1,1,信用减值损失变动比例,33.36%', + # '1,1,资产减值损失2023年金额,-2328729.46', + # '1,1,资产减值损失2023年占营业收入的比重,-0.23%', + # '1,1,资产减值损失2022年金额,-2285987.53', + # '1,1,资产减值损失2022年占营业收入的比重,-0.26%', + # '1,1,资产减值损失变动比例,1.87%', + # '1,1,其他收益2023年金额,17886048.88', + # '1,1,其他收益2023年占营业收入的比重,1.78%', + # '1,1,其他收益2022年金额,11025908.32', + # '1,1,其他收益2022年占营业收入的比重,1.27%', + # '1,1,其他收益变动比例,62.22%', + # '1,1,投资收益2023年金额,323361.47', + # '1,1,投资收益2023年占营业收入的比重,0.03%', + # '1,1,投资收益2022年金额,1119730.43', + # '1,1,投资收益2022年占营业收入的比重,0.13%', + # '1,1,投资收益变动比例,-71.12%', + # '1,1,公允价值变动收益2023年占营业收入的比重,0.00%', + # '1,1,公允价值变动收益2022年金额,10183.62', + # '1,1,公允价值变动收益2022年占营业收入的比重,0.00%', + # '1,1,公允价值变动收益变动比例,-100.00%', + # '1,1,资产处置收益2023年金额,12782544.48', + # '1,1,资产处置收益2023年占营业收入的比重,1.27%', + # '1,1,资产处置收益2022年金额,-59.56', + # '1,1,资产处置收益2022年占营业收入的比重,0.00%', + # '1,1,资产处置收益变动比例,21461726.06%', + # '1,1,汇兑收益2023年金额,0', + # '1,1,汇兑收益2023年占营业收入的比重,0%', + # '1,1,汇兑收益2022年金额,0', + # '1,1,汇兑收益2022年占营业收入的比重,0%', + # '1,1,汇兑收益变动比例,0%', + # '1,1,营业利润2023年金额,76175407.00', + # '1,1,营业利润2023年占营业收入的比重,7.59%', + # '1,1,营业利润2022年金额,63332601.81', + # '1,1,营业利润2022年占营业收入的比重,7.28%', + # '1,1,营业利润变动比例,20.28%', + # '1,1,营业外收入2023年金额,5788307.99', + # '1,1,营业外收入2023年占营业收入的比重,0.58%', + # '1,1,营业外收入2022年金额,1083997.19', + # '1,1,营业外收入2022年占营业收入的比重,0.12%', + # '1,1,营业外收入变动比例,433.98%', + # '1,1,营业外支出2023年金额,687271.68', + # '1,1,营业外支出2023年占营业收入的比重,0.07%', + # '1,1,营业外支出2022年金额,1554243.54', + # '1,1,营业外支出2022年占营业收入的比重,0.18%', + # '1,1,营业外支出变动比例,-55.78%', + # '1,1,净利润2023年金额,72975283.09', + # '1,1,净利润2023年占营业收入的比重,7.27%', + # '1,1,净利润2022年金额,57747603.98', + # '1,1,净利润2022年占营业收入的比重,6.64%', + # '1,1,净利润变动比例,26.37%', + # '1,1,税金及附加2023年金额,5170339.13', + # '1,1,税金及附加2023年占营业收入的比重,0.52%', + # '1,1,税金及附加2022年金额,1933753.49', + # '1,1,税金及附加2022年占营业收入的比重,0.22%', + # '1,1,税金及附加变动比例,167.37%', + # '1,1,所得税费用2023年金额,8301160.22', + # '1,1,所得税费用2023年占营业收入的比重,0.83%', + # '1,1,所得税费用2022年金额,5114751.48', + # '1,1,所得税费用2022年占营业收入的比重,0.59%', + # '1,1,所得税费用变动比例,62.30%', + # '1,1,少数股东损益2023年金额,-58350.22', + # '1,1,少数股东损益2023年占营业收入的比重,-0.01%', + # '1,1,少数股东损益2022年金额,-946.60', + # '1,1,少数股东损益2022年占营业收入的比重,0.00%', + # '1,1,少数股东损益变动比例,-6064.19%', + # '1,1,归属于母公司所有者的净利润2023年金额,73033633.31', + # '1,1,归属于母公司所有者的净利润2023年占营业收入的比重,7.28%', + # '1,1,归属于母公司所有者的净利润2022年金额,57748550.58', + # '1,1,归属于母公司所有者的净利润2022年占营业收入的比重,6.64%', + # '1,1,归属于母公司所有者的净利润变动比例,26.47%', + # '1,1,归属于少数股东的综合收益总额2023年金额,-58350.22', + # '1,1,归属于少数股东的综合收益总额2023年占营业收入的比重,-0.01%', + # '1,1,归属于少数股东的综合收益总额2022年金额,-946.60', + # '1,1,归属于少数股东的综合收益总额2022年占营业收入的比重,0.00%', + # '1,1,归属于少数股东的综合收益总额变动比例,-6064.19%', + # '1,1,归属于母公司所有者的综合收益总额2023年金额,73033633.31', + # '1,1,归属于母公司所有者的综合收益总额2023年占营业收入的比重,7.28%', + # '1,1,归属于母公司所有者的综合收益总额2022年金额,57748550.58', + # '1,1,归属于母公司所有者的综合收益总额2022年占营业收入的比重,6.64%', + # '1,1,归属于母公司所有者的综合收益总额变动比例,26.47%', + # '2,1,主营业务收入2023年,983698831.48', + # '2,1,主营业务收入2022年,854682261.31', + # '2,1,主营业务收入变动比例,15.10%', + # '2,1,其他业务收入2023年,19836968.03', + # '2,1,其他业务收入2022年,14719252.40', + # '2,1,其他业务收入变动比例,34.77%', + # '2,1,主营业务成本2023年,793604607.43', + # '2,1,主营业务成本2022年,690932741.27', + # '2,1,主营业务成本变动比例,14.86%', + # '2,1,其他业务成本2023年,17174468.46', + # '2,1,其他业务成本2022年,12057622.30', + # '2,1,其他业务成本变动比例,42.44%', + # '3,1,变压器营业收入,490028234.05', + # '3,1,变压器营业成本,402179824.08', + # '3,1,变压器毛利率,17.93%', + # '3,1,变压器营业收入比上年同期增减,16.22%', + # '3,1,变压器营业成本比上年同期增减,16.33%', + # '3,1,变压器毛利率比上年同期增减,减少0.07个百分点', + # '3,1,高低压成套开关设备营业收入,261342442.26', + # '3,1,高低压成套开关设备营业成本,206645237.99', + # '3,1,高低压成套开关设备毛利率,20.93%', + # '3,1,高低压成套开关设备营业收入比上年同期增减,-8.93%', + # '3,1,高低压成套开关设备营业成本比上年同期增减,-9.91%', + # '3,1,高低压成套开关设备毛利率比上年同期增减,增加0.86个百分点', + # '3,1,户外成套设备营业收入,198013248.27', + # '3,1,户外成套设备营业成本,157856817.84', + # '3,1,户外成套设备毛利率,20.28%', + # '3,1,户外成套设备营业收入比上年同期增减,62.25%', + # '3,1,户外成套设备营业成本比上年同期增减,65.30%', + # '3,1,户外成套设备毛利率比上年同期增减,减少1.47个百分点', + # '3,1,其他营业收入,54151874.93', + # '3,1,其他营业成本,44097195.98', + # '3,1,其他毛利率,18.57%', + # '3,1,其他营业收入比上年同期增减,39.68%', + # '3,1,其他营业成本比上年同期增减,36.10%', + # '3,1,其他毛利率比上年同期增减,增加2.14个百分点', + # '3,1,合计营业收入,1003535799.51', + # '3,1,合计营业成本,810779075.89', + # '3,2,东北地区营业收入,2425280.53', + # '3,2,东北地区营业成本,1427939.37', + # '3,2,东北地区毛利率,41.12%', + # '3,2,东北地区营业收入比上年同期增减,-69.51%', + # '3,2,东北地区营业成本比上年同期增减,-77.58%', + # '3,2,东北地区毛利率比上年同期增减,增加21.20个百分点', + # '3,2,华北地区营业收入,70542020.62', + # '3,2,华北地区营业成本,53044055.18', + # '3,2,华北地区毛利率,24.81%', + # '3,2,华北地区营业收入比上年同期增减,205.32%', + # '3,2,华北地区营业成本比上年同期增减,203.18%', + # '3,2,华北地区毛利率比上年同期增减,增加0.54个百分点', + # '3,2,华东地区营业收入,770352353.33', + # '3,2,华东地区营业成本,636803535.34', + # '3,2,华东地区毛利率,17.34%', + # '3,2,华东地区营业收入比上年同期增减,24.17%', + # '3,2,华东地区营业成本比上年同期增减,25.30%', + # '3,2,华东地区毛利率比上年同期增减,减少0.74个百分点', + # '3,2,华南地区营业收入,18509519.71', + # '3,2,华南地区营业成本,14496855.46', + # '3,2,华南地区毛利率,21.68%', + # '3,2,华南地区营业收入比上年同期增减,-57.08%', + # '3,2,华南地区营业成本比上年同期增减,-57.98%', + # '3,2,华南地区毛利率比上年同期增减,增加1.67个百分点', + # '3,2,华中地区营业收入,60588394.64', + # '3,2,华中地区营业成本,44559969.21', + # '3,2,华中地区毛利率,26.45%', + # '3,2,华中地区营业收入比上年同期增减,-51.24%', + # '3,2,华中地区营业成本比上年同期增减,-55.13%', + # '3,2,华中地区毛利率比上年同期增减,增加6.38个百分点', + # '3,2,西北地区营业收入,58618014.32', + # '3,2,西北地区营业成本,42844719.81', + # '3,2,西北地区毛利率,26.91%', + # '3,2,西北地区营业收入比上年同期增减,178.59%', + # '3,2,西北地区营业成本比上年同期增减,173.62%', + # '3,2,西北地区毛利率比上年同期增减,增加1.33个百分点', + # '3,2,西南地区营业收入,22500216.36', + # '3,2,西南地区营业成本,17602001.52', + # '3,2,西南地区毛利率,21.77%', + # '3,2,西南地区营业收入比上年同期增减,-23.74%', + # '3,2,西南地区营业成本比上年同期增减,-17.89%', + # '3,2,西南地区毛利率比上年同期增减,减少5.57个百分点', + # '3,2,合计营业收入,1003535799.51', + # '3,2,合计营业成本,810779075.89', + # '5,2,经营活动产生的现金流量净额2023年,-44713443.44', + # '5,2,经营活动产生的现金流量净额2022年,-53241071.45', + # '5,2,经营活动产生的现金流量净额变动比例,16.02%', + # '5,2,投资活动产生的现金流量净额2023年,-88649920.50', + # '5,2,投资活动产生的现金流量净额2022年,-94251741.15', + # '5,2,投资活动产生的现金流量净额变动比例,5.94%', + # '5,2,筹资活动产生的现金流量净额2023年,96607197.26', + # '5,2,筹资活动产生的现金流量净额2022年,210537586.22', + # '5,2,筹资活动产生的现金流量净额变动比例,-54.11%' + # ] + + # client = MilvusClient( + # uri="http://localhost:19530" + # ) + # vector_obj = embed_with_str('2023年营业收入') + # vector = vector_obj.output["embeddings"][0]["embedding"] + # data = [vector] + # res = client.search( + # collection_name="zzb_measure", # Replace with the actual name of your collection + # # Replace with your query vector + # data=data, + # limit=1, # Max. number of search results to return + # search_params={"metric_type": "COSINE", "params": {}}, # Search parameters + # output_fields=["measure_name","measure_value"] + # ) + + # # Convert the output to a formatted JSON string + # result = json.dumps(res, indent=4, ensure_ascii=False) + # print(result) + + # insert_measure_data(client, measure_data) + # text = '营业收入第一季度(1-3月份)' + # new_text = re.sub(r'([^)]*)', '',text) + # print(new_text) diff --git a/zzb_data_word/word_title.py b/zzb_data_word/word_title.py new file mode 100644 index 0000000..63c15e5 --- /dev/null +++ b/zzb_data_word/word_title.py @@ -0,0 +1,16 @@ + +import re +def get_parent_table_pages(title_array, file_id): + parent_table_pages_local = {} + parent_table_pages_local[file_id] = [] + print(f'{file_id}:{len(title_array)}') + for i in range(len(title_array)): + title_obj = title_array[i] + title = title_obj['data'] + if len(re.findall('母公司|现金流量表补充|重要会计政策|会计估计变更|公允价值的披露|合营安排或联营企业中的权益|与金融工具相关的风险|税项|主要控股参股公司|结构化主体情况|公司股份总数及股东结构变动及公司资产和负债结构的变动情况|所有权或使用权受到限制的资产|在建工程|固定资产|其他主体中的权益|分部信息|与金融工具相关的风险|其他关联交易|公司子公司重大事项', title)) >0 : + page_num = title_obj['index'] + parent_table_pages_local[file_id].append(page_num) + + parent_table_pages = parent_table_pages_local[file_id] + return parent_table_pages + diff --git a/zzb_data_word/zzb_logger.py b/zzb_data_word/zzb_logger.py new file mode 100644 index 0000000..f5c0777 --- /dev/null +++ b/zzb_data_word/zzb_logger.py @@ -0,0 +1,39 @@ +import time +import logging +import logging.handlers +import os + +# 如果日志文件夹不存在,则创建 +log_dir = "log-day" # 日志存放文件夹名称 +log_path = os.getcwd() + os.sep + log_dir +if not os.path.isdir(log_path): + os.makedirs(log_path) + +# logging初始化工作 +logging.basicConfig() + +# myapp的初始化工作 +applog = logging.getLogger(__name__) +applog.setLevel(logging.INFO) + +console_handler = logging.StreamHandler() +console_handler.setLevel(logging.INFO) + +# 添加TimedRotatingFileHandler +# 定义一个1天换一次log文件的handler +# 保留3个旧log文件 +timefilehandler = logging.handlers.TimedRotatingFileHandler( + log_dir + os.sep + "sec.log", + when='D', + interval=1, + backupCount=3 +) +# 设置后缀名称,跟strftime的格式一样 +timefilehandler.suffix = "%Y-%m-%d_%H-%M-%S.log" +# timefilehandler.suffix = "%Y-%m-%d.log" + +formatter = logging.Formatter('%(asctime)s|%(name)-12s: %(levelname)-8s %(message)s') +console_handler.setFormatter(formatter) +timefilehandler.setFormatter(formatter) +applog.addHandler(timefilehandler) +applog.addHandler(console_handler) \ No newline at end of file