From 6c70fe210921790861781d92e965b7f19a2f995b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=B3=E4=B8=AD=E4=BC=9F?= Date: Mon, 17 Mar 2025 18:31:20 +0800 Subject: [PATCH] update config --- .dockerignore | 52 + .env.example | 24 + .idea/vcs.xml | 6 + Dockerfile | 43 + README.md | 98 +- __pycache__/app.cpython-312.pyc | Bin 8261 -> 8321 bytes .../common_params_api.cpython-312.pyc | Bin 0 -> 3652 bytes api/__pycache__/component_api.cpython-312.pyc | Bin 4947 -> 4927 bytes api/__pycache__/models.cpython-312.pyc | Bin 5462 -> 5931 bytes api/__pycache__/task_api.cpython-312.pyc | Bin 14691 -> 18463 bytes api/__pycache__/workflow_api.cpython-312.pyc | Bin 9182 -> 9131 bytes api/common_params_api.py | 96 + api/component_api.py | 14 +- api/models.py | 93 - api/models/__init__.py | 22 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 731 bytes api/models/__pycache__/base.cpython-312.pyc | Bin 0 -> 1337 bytes .../__pycache__/component.cpython-312.pyc | Bin 0 -> 792 bytes api/models/__pycache__/task.cpython-312.pyc | Bin 0 -> 3084 bytes .../__pycache__/workflow.cpython-312.pyc | Bin 0 -> 1938 bytes api/models/base.py | 25 + api/models/component.py | 12 + api/models/task.py | 46 + api/models/workflow.py | 29 + api/task_api.py | 144 +- api/task_instance_api.py | 218 ++ api/workflow_api.py | 5 +- app.py | 4 +- .../common_params_config.cpython-312.pyc | Bin 0 -> 3580 bytes .../component_config.cpython-312.pyc | Bin 5312 -> 25183 bytes .../component_init_config.cpython-312.pyc | Bin 0 -> 4304 bytes .../__pycache__/task_config.cpython-312.pyc | Bin 9101 -> 13473 bytes config/component_config.py | 789 +++- config/component_detail_config.py | 472 --- config/component_registry.py | 23 - config/task_config.py | 169 +- data/__init__.py | 16 +- data/__pycache__/__init__.cpython-312.pyc | Bin 417 -> 795 bytes data/__pycache__/session.cpython-312.pyc | Bin 9791 -> 7305 bytes data/models/__init__.py | 5 +- .../__pycache__/__init__.cpython-312.pyc | Bin 1200 -> 1245 bytes .../__pycache__/subtask.cpython-312.pyc | Bin 0 -> 5463 bytes data/models/__pycache__/task.cpython-312.pyc | Bin 8971 -> 9033 bytes .../__pycache__/task_flow.cpython-312.pyc | Bin 0 -> 10596 bytes .../task_import_export.cpython-312.pyc | Bin 0 -> 5240 bytes .../__pycache__/task_input.cpython-312.pyc | Bin 0 -> 5297 bytes .../__pycache__/task_instance.cpython-312.pyc | Bin 0 -> 4027 bytes data/models/task.py | 1 + data/models/task_instance.py | 60 + data/session.py | 140 +- docker-compose.yml | 88 + logs/tianfeng_task.log | 3387 +++++++++++++++++ scripts/docker-entrypoint.sh | 26 + scripts/fix_instance_ids.py | 83 + scripts/init-db.sql | 13 + scripts/logs/migration_upgrade_20250317.log | 36 + scripts/logs/tianfeng_task.log | 186 + scripts/run_migration.py | 341 +- .../common_params_service.cpython-312.pyc | Bin 0 -> 3619 bytes .../task_instance_service.cpython-312.pyc | Bin 0 -> 12689 bytes services/common_params_service.py | 92 + services/task_instance_service.py | 281 ++ .../__pycache__/db_migration.cpython-312.pyc | Bin 0 -> 11620 bytes utils/db_migration.py | 218 ++ 天风任务模块需求文档.md | 22 +- 65 files changed, 6321 insertions(+), 1058 deletions(-) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .idea/vcs.xml create mode 100644 Dockerfile create mode 100644 api/__pycache__/common_params_api.cpython-312.pyc create mode 100644 api/common_params_api.py delete mode 100644 api/models.py create mode 100644 api/models/__init__.py create mode 100644 api/models/__pycache__/__init__.cpython-312.pyc create mode 100644 api/models/__pycache__/base.cpython-312.pyc create mode 100644 api/models/__pycache__/component.cpython-312.pyc create mode 100644 api/models/__pycache__/task.cpython-312.pyc create mode 100644 api/models/__pycache__/workflow.cpython-312.pyc create mode 100644 api/models/base.py create mode 100644 api/models/component.py create mode 100644 api/models/task.py create mode 100644 api/models/workflow.py create mode 100644 api/task_instance_api.py create mode 100644 config/__pycache__/common_params_config.cpython-312.pyc create mode 100644 config/__pycache__/component_init_config.cpython-312.pyc delete mode 100644 config/component_detail_config.py delete mode 100644 config/component_registry.py create mode 100644 data/models/__pycache__/subtask.cpython-312.pyc create mode 100644 data/models/__pycache__/task_flow.cpython-312.pyc create mode 100644 data/models/__pycache__/task_import_export.cpython-312.pyc create mode 100644 data/models/__pycache__/task_input.cpython-312.pyc create mode 100644 data/models/__pycache__/task_instance.cpython-312.pyc create mode 100644 data/models/task_instance.py create mode 100644 docker-compose.yml create mode 100644 scripts/docker-entrypoint.sh create mode 100644 scripts/fix_instance_ids.py create mode 100644 scripts/init-db.sql create mode 100644 scripts/logs/migration_upgrade_20250317.log create mode 100644 scripts/logs/tianfeng_task.log create mode 100644 services/__pycache__/common_params_service.cpython-312.pyc create mode 100644 services/__pycache__/task_instance_service.cpython-312.pyc create mode 100644 services/common_params_service.py create mode 100644 services/task_instance_service.py create mode 100644 utils/__pycache__/db_migration.cpython-312.pyc create mode 100644 utils/db_migration.py diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b2156c9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,52 @@ +# Git +.git +.gitignore + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# 虚拟环境 +venv/ +ENV/ +env/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# 日志 +logs/* +!logs/.gitkeep + +# 测试 +tests/ +.pytest_cache/ + +# 其他 +.DS_Store +Dockerfile +.dockerignore +docker-compose.yml +README.md +*.md \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..57341bb --- /dev/null +++ b/.env.example @@ -0,0 +1,24 @@ +# 应用配置 +DEBUG=false +HOST=0.0.0.0 +PORT=8000 + +# 数据库配置 +DB_HOST=localhost +DB_PORT=3306 +DB_USER=root +DB_PASSWORD=password +DB_NAME=tianfeng_task + +# Redis配置 +REDIS_HOST=localhost +REDIS_PORT=6379 +REDIS_DB=0 +REDIS_PASSWORD= + +# 环境配置 +TIANFENG_ENV=default + +# 日志配置 +LOG_LEVEL=INFO +LOG_FILE=logs/tianfeng_task.log \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..96d44b7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +# 使用Python 3.11作为基础镜像 +FROM python:3.11-slim + +# 设置工作目录 +WORKDIR /app + +# 设置环境变量 +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + TIANFENG_ENV=default \ + HOST=0.0.0.0 \ + PORT=8000 \ + DEBUG=false + +# 安装系统依赖 +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + default-libmysqlclient-dev \ + netcat-traditional \ + curl \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# 复制项目文件 +COPY . /app/ + +# 安装Python依赖 +RUN pip install --no-cache-dir -r requirements.txt + +# 创建日志目录 +RUN mkdir -p /app/logs && chmod 777 /app/logs + +# 设置启动脚本权限 +RUN chmod +x /app/scripts/docker-entrypoint.sh + +# 暴露端口 +EXPOSE 8000 + +# 设置启动脚本为入口点 +ENTRYPOINT ["/app/scripts/docker-entrypoint.sh"] + +# 启动命令 +CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/README.md b/README.md index fb94241..ec9a4c9 100644 --- a/README.md +++ b/README.md @@ -369,7 +369,7 @@ tianfeng_task/ ### 环境要求 -- Python 3.8+ +- Python 3.11+ - 数据库(MySQL/PostgreSQL) - Node.js 14+(前端开发) @@ -428,4 +428,98 @@ tianfeng_task/ ## 联系方式 -如有问题或建议,请联系系统管理员或开发团队。 \ No newline at end of file +如有问题或建议,请联系系统管理员或开发团队。 + +# Docker部署说明 + +## 使用Docker部署天风任务模块 + +本项目支持使用Docker进行部署,以下是部署步骤: + +### 前提条件 + +- 安装Docker和Docker Compose +- 确保端口8000、3306和6379未被占用 + +### 部署步骤 + +1. 克隆代码仓库 + +```bash +git clone <仓库地址> +cd tianfeng_task +``` + +2. 使用Docker Compose构建并启动服务 + +```bash +docker-compose up -d +``` + +这将启动三个容器: +- tianfeng-task: 应用服务 +- tianfeng-mysql: MySQL数据库 +- tianfeng-redis: Redis缓存 + +3. 验证服务是否正常运行 + +```bash +docker-compose ps +``` + +4. 访问API文档 + +打开浏览器,访问 http://localhost:8000/docs 查看API文档。 + +### 环境变量配置 + +可以通过修改`docker-compose.yml`文件中的环境变量来配置应用: + +```yaml +environment: + - TIANFENG_ENV=default # 环境名称 + - DEBUG=false # 是否开启调试模式 + - DB_HOST=db # 数据库主机 + - DB_PORT=3306 # 数据库端口 + - DB_USER=root # 数据库用户名 + - DB_PASSWORD=password # 数据库密码 + - DB_NAME=tianfeng_task # 数据库名称 + - REDIS_HOST=redis # Redis主机 + - REDIS_PORT=6379 # Redis端口 + - REDIS_DB=0 # Redis数据库索引 +``` + +### 单独构建Docker镜像 + +如果需要单独构建Docker镜像,可以使用以下命令: + +```bash +docker build -t tianfeng-task:latest . +``` + +### 停止服务 + +```bash +docker-compose down +``` + +如果需要同时删除数据卷(会删除所有数据): + +```bash +docker-compose down -v +``` + +### 查看日志 + +```bash +# 查看所有服务的日志 +docker-compose logs + +# 查看特定服务的日志 +docker-compose logs app +docker-compose logs db +docker-compose logs redis + +# 实时查看日志 +docker-compose logs -f app +``` \ No newline at end of file diff --git a/__pycache__/app.cpython-312.pyc b/__pycache__/app.cpython-312.pyc index a77215db65fb0709398aae4eb21a194c08085fa7..4857de9abb34d22c39cb51fc158115bff296d20d 100644 GIT binary patch delta 859 zcmZ`$&ubGw7@co-g|unfCfzjYZZ?~kH0jSIU{C2GsV&-r_ydH(P^_^#6}LMkq=IPC zAod{W!8j;_3ihCvhzNV|FX%-rBp_70sGwK>fF9K8hL|Yr9A@A5zVE$xGrN_)HPidv z&hp>IZbykF&z3HAk1ZV6Y{S5&s z_S=DT0C(&`|7(D%y*2m_;F*0t_zJ#WdIJ6c@yNSj delta 840 zcmZp4JnF!AnwOW00SF%6x|}{!d?KF&#*(8Nr3Tc;o1>nq5v7r<8Ks%46{VG{ z9i{ZZ1z1EG zlR)I;LPily{WXHCS)f{tQ;oASA#7wal|5A`D{JxxM$yTK8SN)aFbS$#riipKL|FmN zw1n9Jb_Oqk2Q;gEasZP!W5wh|b$sp-- z2I}iX*f&{dGy(Z`bG9_5~@mo*XOepZE4{;Wwr zm12{lxwu$>0q8!tfklKZMKM(%Yue-kz*yPOqPh7Wiz2h%*EpaJ&Q>v@#i>QbFqO+pH|Qj*+o{^ChuUjEu84 z&y|?U$hdN{vD8vVzsWbH3Zx{H^YhX&)Af?`a|`nGQu9jUi&E1wi%W_sCnrizo~$Ti vBza35Lk&b=bFj=pMy^>v4}l`2IBxPkS$Rg=$#Qbyn=Rxx88=7Et1$uqymi`} diff --git a/api/__pycache__/common_params_api.cpython-312.pyc b/api/__pycache__/common_params_api.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf3b6b8bc8add6e2bcd9780a90b410c7ee7155fe GIT binary patch literal 3652 zcmbW3Yit|G5rFqzd>kcGFG`{$OY}=JWj!p%ZEYnsKs}sCQ`wP}qGeSOEbk;xcGRr74g&a;hO^#;2d(@afswZ6KGDtA00MgW*v95*4s&^JjruOB{=nky9$Ggr?-vmR<$i$l%9` zi%xvVwgy zt|Mj7X133=eBlOi-RIoTX{%-xg)%wHP`ok;r{b|P&3v%ySt=pfi+rQTEjr&zQ z-g~3K&~E3t)l$V5kj2h_^~8xP++QLVOr6bl8#`7T4`mweX(++L|uB^l#uHRS9j z=dNX(PeH}AMxMnW&ESzWn-TcCb`SZ7P=|w${>+1bpqFZhEwjd;8R zlvMl3iSgj^6R(d9sqT${$a-E^on>=v%_Q~UHqwz8!(P(ugwDrmt5mDY5eY<+BA_iC z?*bi}WL7UUyqlPH8Qos;?lyEq_&gl{prvQEWjNb1{Q2}s%WD~%=dUjB1AS&QSwx)O@eM1ARh9w+_N+xt$D` zJM053%<_Sbfd=MI0|( zD+o5VG7u>?Nheu>UZ4Ry<^|AutDQB~xoPd{x6xc+k_ez>0aC757fWDkkaFc}XG#-Q z8@-Sx!J^a}(j>P5QmYA4TZ%iwZGzNpDtcS%qK*_?BjEmk_rVkiLe+Lv)C{0ea-48X z#X45Tmr(h?oovFA*Ra$p&weo0F(5SJZP~JDH4h&kO5_4tP6#?zB!>{Lie#xZ1lmoj z?E{@b_{o2Ot_WHafVQE^6)dQ!CGGs%&aOkG$9a=Zf}%747PNQe&!-NAI_FuI)PTtYkg^$HC93&yFu0&eRTVEs{Q1 zGmuq7&HLT{CbaA!!NJbY#a=>tqP-E%68@Jm~q%PUN=uoDhmBkuWBqj!7|7TZ;)%?s;mS#3bC+20h~u z6}aDuF~vxMoh~L|Fj{hdj)mfL(gT=bNA5RFVL}j=*2J4u5}CI zYcoxqi#?e>|6l9_XDuM{bgeXYXOR0oWqq^h$4%*%u6*xo(+btMPFGRI3$W(Y2n~BEJ0^LmUSH`|X@JAGnX@Ww3Q89h|%JW38cb#t06%J@4Op?lf0jVD6 AJOBUy literal 0 HcmV?d00001 diff --git a/api/__pycache__/component_api.cpython-312.pyc b/api/__pycache__/component_api.cpython-312.pyc index f83c0097fad241576c570ef2290fcd0fcde0d9bf..d5a3f9133a58a2c12378464bc0a94e03dd5dd27f 100644 GIT binary patch delta 1066 zcmZ`&O-~a+7@q0pZrj~{(gj;+BZ_Gx_<@9=d<5DOAQ6xPF?+$LJJjOtwwZ1dYhrrg zV7!^RdX$5Ki>V$w7{kSjC&Gbb6GJ>0IG9KxKfsygTjM7C?E60RJ~PkEJGtla?L>46ei~9XR}WWsA81Ly6MiK3euIT>3mQ_xSq0^{8+wophoP2jnfe0(J z7xD&frxETT9H%))Xc#8XxaU&Oj?}v)^}d)mbOD+~2ezUE+tGVXk*`45-)wk3LYN=} zz7*d{HPa~{7ReJ|{E_8|pPrdt8lPF1&fuGD@*sm-3~n>%Wxz4G!=R5s%8vV4Jj#G| zrfR2+;sk|SC(-;Jp&xJF?Z02Uo5V+EMBGL8{oN0*u`=f9 zFB_&OGnq@zEN17j8Pl#J{Xdp6Olqxl(GpPuZO$n=sFRn0U6>>*!5cBmvugG)nOvo= zS?6cflNKhF&`sXw4tE zV%!&v1~ab3O;uAN5CHP(lI}0S&A^7h3Id=dC>z)~aDdi`61UQTJPJhHgDAc!AIbF4 z8mNhyn24+gVqMA!O&B#V3wmU&uBL3E%3-dIo>0b+N|g=Alx>xGQY9FktqQI*F@NQ{ zwc;S`$}@|L^V4_o$aacWDG6O^GFL{|EFBrt31=+Rwo0hvEFipE%%h~>Mr+(uv7EP7 z5w5tA8kfmAs9@m=4UX5yDdgmeM#d^F7YoU)X5q63szmaBf-?E#?S(;d#y6&f=!jh3 z!crzPy|924V);g4BYEy?f~UwEUwcmzI~VhZ`CXrxv+ZK3fTN7}P#!l^3%3wOH0wvH znIQMXyNRCNMBlqa--DSSUO*i+{Z38qs6$(E$%b%f>%RX5gso&en5>?rF|)}amRUlz zfShdp==SC8%}Um(*a-73rP;Z~?B%(o*(u!5YAOr{7z{Ev&p>2wfkB!=(u0SXeTl&^ zg|df2M@I)9VazxMFUK2OUxKd%ZzE${$+nV`4%!OgPV!Yr#k<%6YvOoiG8m3u{eRU- zCgs`wsp`h`!v!9@D4t;fWIenO+sW<7K+qNKik>Su#XOeC%SZ?GllPI<-T;#YDY$KU zzSsWRu(CQ|H%-d+jb-vDlBn{Q*_>Q|&Mx+w?17bWm}QAD){FUj#GQ;e$AGPn&yLT< zt+TDN!@GM1zSASXC+CVIG}VfM#_$s5ApOhR6ux;Ngdag_2c-5vY7Z!Fd*I@4!2^Y# PB7hT+Jc&N8TcpCj=2ZiQ diff --git a/api/__pycache__/models.cpython-312.pyc b/api/__pycache__/models.cpython-312.pyc index a2be127a538255df50a010d1033ad6abac00c11f..d44e6ea2bfa7db0a46fa1e33314c78a850314635 100644 GIT binary patch delta 577 zcmcbnwOWtwG%qg~0}#Bpem(sY_eMTFA;y1`8#$#WhYOk4GclxcrLd&1u3=lv1X9Gn z5XGI!naU#xWTmpCu-gD>uo{jOP9!zFKs9Ws%&F{YOdyp|)m%ubxsg=!VO7loRBa41 zoEJ$sKUU>@Aj2y;H2Eh_5>l#v$q3|?@&kz{yLUhBTKHtojHj&~&vz{^QUi+J;wUJ} z%rD9;sq`xqf~$G4Z}QXDrBC~to=x3wizhR$ptK~uAh9Shw-{{D)49_@D%y8JRq!U| z-7AP+$UZ62E?xKj!6_&^%8IU_785lOZ3X3puWdeDi ZkSu;XIa%b1AUk6e;{?yI3?Le;5&&xvvrYg2 delta 100 zcmZ3jcTJ1$G%qg~0}#ybxt>0YYa^eY5M#jPMoy{8;X>vtl`NX9lO2SWnEf=lCjS&R zp6n$e%V;<`L&T8z3X9HWeoR@ diff --git a/api/__pycache__/task_api.cpython-312.pyc b/api/__pycache__/task_api.cpython-312.pyc index b027e8b35171ef76972d28682b1ec5f5b80a4b4a..3df85b6da042b7bb2ceb9f55438de1a0c35a19d3 100644 GIT binary patch delta 7512 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 diff --git a/api/__pycache__/workflow_api.cpython-312.pyc b/api/__pycache__/workflow_api.cpython-312.pyc index cfd0f5d93b89bd7a4e24297dd7e8172794ab9e6f..aab2c6330b4cf6ebbf0ca079273a82191343d7b1 100644 GIT binary patch delta 490 zcmccTzS^DlG%qg~0}wQSxSn1+k+)GfS2#*IS0qX#S2RjAS1d}5ks*a4g*`_+S0YLR z%;w0MxY2`AXyUIxMxn_*jOP48Yj{^Pfy`iFND)gFo;-RbKFr*rK-U$ig9x$7cX`7Z zZ8n?oH8Bf-g-wy`*YK`p0-3?UkRp~UF?kZBrZBRYNUA(gTypX`MoplO zAB^T0veKzilbx6}QB0Ccm7ZM11k$mDY3=0o%r=t)nBz9TW=>>c6qxMGmgM&}8)%`k zRZM7cYEf}amXWEkMT|>oadt_5LCn+bOP}nW^K4rClik~5Ue0NFwy_DwdA4wI%+n<+ zUoP%@vU~T_u7$`FlaH{OF$!+}&Gs2&{(H_?M%B%}Tt3X)0zg}e)Io&cXs(Coz$s*Hk@PfBDl)@?SC{K2 i2Aj(aHuo7+?=qO)Wzf9~5^=oGPSH=K|9-`ZyhL@oznarj&eJfcyy9;9A;oAScB*zJg_HR`B4~zVW-Cd_En7WFGa=LtcmdI7j$N(t5}&K2~B{htbT*H!jC}z EU$IK*j{pDw literal 0 HcmV?d00001 diff --git a/api/models/__pycache__/base.cpython-312.pyc b/api/models/__pycache__/base.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..06c4c620a503a7e109d447e2a44f4693319f6a15 GIT binary patch literal 1337 zcmZuw-)kII6uvWaXJ>YHV-nM7rHDU@(t+BS^g$&R*X&vqyDd%nGAs<^+-sORGdtdy zMHWFeC55OhELw>a)buS9vGt{e{tG@fV0%G)klnRU{zydd$#Z6RZBxAuALpL$+;h+U z?m6F2OjrcgAHV*v{DDfy&$t<{!pPV;2gW*K#34*!YN$l2qehyeMbx2@?&u2owXhHw zjuDxTneS;>j4a1eh)RwVrmqrK;3aNt(P37nocj&%n|u5dxxWa0iyK?oDEgsx$u75E zgPqm;>gM1|r*i7`{^ph5mmed3v2OJ)obPqF?shH@E^Q7juLAwc)f@fq&hqO;Ac{+#BE964AM-RCzC8_#$ITvviORZ@)J$QL#e+S z@Q~Sxq_wye`NO(~sEjr{`@vWzoHz=Ir833QnCeibIeMGgx-2d>MV6bL{)+;A! zUy~gy>+hr07aM2O_go)d(MUw|EcdfU7I^X7JYIG)FMX%sB|!tO;9=T$3*LJqX^RpZ z%>j*c8eo;&o_@UZ#t=%=D^>BxIOhMw*a!4~#b|4wc`n3B!MKo`m->=2p89oL7n7KB z3IVT#Us+s$52`ILh*@;zH$IBiV`IR$vzZq%>TYHGOF3Le@@#cv)yb2>czPBjhESNt=0b7Wl$IAHGUb4x=YfI`J$*-lcgf zA8^_cogd2J*Y-ch0%z2Ntvh2fBhTxS}q)k}kO!Jp;L4bh2(v&$+TL54q&zT}4+Q z5Wp<3GHqaGac*5qYw9C$PL*3V#+3d>`^(0Q^88%y;e+J0QD>Y^JlOxIH)+OfudD80e4* zA}jzbHsya4Q(Mnqw(fpLux!C8cE*A#(&B$z=7`^lXu&tkC8L26F}Mq*-B7g-XP0EVi*N<3?YLMFEaS{ zAwrM9fW^S?u<327d-Di4a(QZuqoq^5F9mD<8VRrN6VYj{fhCG!jb}~4?D0|i* nJj7s2gb;ogL@51I033e@j(h?KKZ400SqLj|?ZQvM&taWEV7TeR literal 0 HcmV?d00001 diff --git a/api/models/__pycache__/task.cpython-312.pyc b/api/models/__pycache__/task.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d6bbee44f28b203f7d13c0b1e208d3dd58f3b8fe GIT binary patch literal 3084 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 b;M3?5gt73^27ymQ7KFY~`wRMg{1pEJQ{L14 literal 0 HcmV?d00001 diff --git a/api/models/base.py b/api/models/base.py new file mode 100644 index 0000000..74cebe8 --- /dev/null +++ b/api/models/base.py @@ -0,0 +1,25 @@ +""" +基础API模型模块 +包含通用的API请求和响应的数据模型 +""" + +from typing import Dict, Any, List, Optional +from pydantic import BaseModel, Field +from enum import Enum + +# 排序字段枚举 +class SortField(str, Enum): + CREATED_AT = "created_at" + UPDATED_AT = "updated_at" + NAME = "name" + +# 排序方式枚举 +class SortOrder(str, Enum): + ASC = "asc" + DESC = "desc" + +# 通用响应模型 +class ApiResponse(BaseModel): + code: int = Field(..., description="状态码") + message: str = Field(..., description="消息") + data: Optional[dict] = Field(None, description="数据") \ No newline at end of file diff --git a/api/models/component.py b/api/models/component.py new file mode 100644 index 0000000..4a27c61 --- /dev/null +++ b/api/models/component.py @@ -0,0 +1,12 @@ +""" +组件API模型模块 +包含组件相关的API请求和响应的数据模型 +""" + +from typing import Dict, Any, List, Optional +from pydantic import BaseModel, Field +from config.component_config import ComponentDiscovery + +# 组件相关模型 +class ComponentDiscoverInput(BaseModel): + package_name: Optional[str] = ComponentDiscovery.DEFAULT_PACKAGE \ No newline at end of file diff --git a/api/models/task.py b/api/models/task.py new file mode 100644 index 0000000..079078b --- /dev/null +++ b/api/models/task.py @@ -0,0 +1,46 @@ +""" +任务API模型模块 +包含任务相关的API请求和响应的数据模型 +""" + +from typing import Dict, Any, List, Optional +from pydantic import BaseModel, Field +from config.task_config import TaskType, TaskStatus + +# 任务相关模型 +class TaskInput(BaseModel): + name: str = Field(..., description="任务名称") + task_type: TaskType = Field( + ..., + description="任务类型,可选值为:" + ", ".join([t.value for t in TaskType]), + example=TaskType.NORMAL + ) + +class TaskBatchInput(BaseModel): + tasks: List[TaskInput] + +class TaskIdList(BaseModel): + task_ids: List[str] + +class TaskTypeInfo(BaseModel): + key: str + name: str + description: str + +# 任务编辑相关模型 +class TaskUpdateInput(BaseModel): + name: Optional[str] = None + description: Optional[str] = None + task_type: Optional[TaskType] = None + blocks: Optional[List[Dict[str, Any]]] = None + variables: Optional[Dict[str, Any]] = None + schedule: Optional[Dict[str, Any]] = None + +class TaskEditInput(BaseModel): + task_id: str + blocks: List[Dict[str, Any]] + variables: Optional[Dict[str, Any]] = {} + priority: Optional[int] = Field(1, description="任务优先级") + input_params: Optional[Dict[str, Any]] = Field(None, description="任务输入参数") + block_outputs: Optional[Dict[str, Any]] = Field(None, description="块输出参数") + context_params: Optional[Dict[str, Any]] = Field(None, description="上下文参数") \ No newline at end of file diff --git a/api/models/workflow.py b/api/models/workflow.py new file mode 100644 index 0000000..5eb78f7 --- /dev/null +++ b/api/models/workflow.py @@ -0,0 +1,29 @@ +""" +工作流API模型模块 +包含工作流相关的API请求和响应的数据模型 +""" + +from typing import Dict, Any, List, Optional +from pydantic import BaseModel, Field + +# 工作流相关模型 +class WorkflowInput(BaseModel): + name: str + workflow_type: Optional[str] = "normal" + description: Optional[str] = "" + blocks: Optional[List[Dict[str, Any]]] = [] + variables: Optional[Dict[str, Any]] = {} + schedule: Optional[Dict[str, Any]] = None + +class WorkflowUpdateInput(BaseModel): + name: Optional[str] = None + description: Optional[str] = None + blocks: Optional[List[Dict[str, Any]]] = None + variables: Optional[Dict[str, Any]] = None + schedule: Optional[Dict[str, Any]] = None + +class WorkflowExecuteInput(BaseModel): + task_inputs: Optional[Dict[str, Any]] = None + +class WorkflowImportInput(BaseModel): + workflow_json: str \ No newline at end of file diff --git a/api/task_api.py b/api/task_api.py index b870358..1ecb402 100644 --- a/api/task_api.py +++ b/api/task_api.py @@ -3,6 +3,7 @@ from typing import Dict, Any, List, Optional from fastapi import APIRouter, HTTPException, Depends, Query from pydantic import BaseModel, Field from services.task_service import TaskService +from services.task_instance_service import TaskInstanceService from core.exceptions import TianfengTaskError from config.task_config import ( get_all_task_types, @@ -17,15 +18,21 @@ from config.task_config import ( DEFAULT_TASK_DESCRIPTION, DEFAULT_TEMPLATE_DESCRIPTION, TaskType, - TaskStatus + TaskStatus, + TaskInputParamConfig, + SystemParamKey +) +from api.models import ( + ApiResponse, TaskInput, TaskBatchInput, TaskIdList, + TaskTypeInfo, SortField, SortOrder, TaskUpdateInput, TaskEditInput ) -from api.models import ApiResponse, TaskInput, TaskBatchInput, TaskIdList, TaskTypeInfo, SortField, SortOrder, TaskUpdateInput, TaskEditInput # 创建路由器 router = APIRouter(tags=["任务管理"]) # 创建服务实例 task_service = TaskService() +task_instance_service = TaskInstanceService() @router.get("/tasks", response_model=ApiResponse) async def get_tasks( @@ -329,10 +336,48 @@ async def edit_task(task_edit: TaskEditInput): variables=task_edit.variables ) + # 获取编辑中的任务实例 + editing_instance = task_instance_service.get_editing_instance_by_task_id(task_edit.task_id) + + # 准备更新的参数 + update_params = { + "variables": task_edit.variables, + "priority": task_edit.priority if hasattr(task_edit, "priority") else None + } + + # 如果有自定义输入参数,添加到更新参数中 + if hasattr(task_edit, "input_params") and task_edit.input_params is not None: + update_params["input_params"] = task_edit.input_params + + # 如果有块输出参数,添加到更新参数中 + if hasattr(task_edit, "block_outputs") and task_edit.block_outputs is not None: + update_params["block_outputs"] = task_edit.block_outputs + + # 如果有上下文参数,添加到更新参数中 + if hasattr(task_edit, "context_params") and task_edit.context_params is not None: + update_params["context_params"] = task_edit.context_params + + if editing_instance: + # 更新编辑中的任务实例 + instance = task_instance_service.update_instance( + instance_id=editing_instance["instance_id"], + **update_params + ) + else: + # 创建新的任务实例 + instance = task_instance_service.create_instance( + task_id=task_edit.task_id, + name=task.get("name"), + **update_params + ) + return { "code": 200, "message": "编辑任务成功", - "data": {"task": updated_task} + "data": { + "task": updated_task, + "instance": instance + } } except Exception as e: raise HTTPException(status_code=500, detail=f"编辑任务失败: {str(e)}") @@ -350,6 +395,9 @@ async def get_task_edit_info(task_id: str): "data": None } + # 获取或创建编辑中的任务实例 + instance = task_instance_service.get_or_create_editing_instance(task_id) + # 获取可用的子任务列表(排除当前任务自身) available_subtasks = [] try: @@ -363,9 +411,11 @@ async def get_task_edit_info(task_id: str): except Exception as e: # 如果获取任务列表失败,记录错误但继续执行 print(f"获取可用子任务列表失败: {str(e)}") + # 获取组件详细信息 - from config.component_detail_config import ComponentDetailConfig + from config.component_config import ComponentDetailConfig component_details = ComponentDetailConfig.get_all_components() + # 获取组件类型中文名称映射 component_type_names = ComponentDetailConfig.get_component_type_names() @@ -387,17 +437,56 @@ async def get_task_edit_info(task_id: str): # 添加组件到对应类型下 component_types[component_type]["components"].append(component) - # 不再将子任务列表嵌入到组件类型对象中 - if "subtask" in component_types: - component_types["subtask"]["available_subtasks"] = available_subtasks + # 获取常用参数数据 + from services.common_params_service import CommonParamsService + from config.component_config import CommonParamsConfig + + common_params_service = CommonParamsService() + param_types = CommonParamsConfig.get_param_types() + + # 获取所有常用参数数据 + common_params = {} + for param_type_config in param_types: + param_type = param_type_config["type"] + param_data = common_params_service.get_param_data(param_type) + common_params[param_type] = { + "type_info": param_type_config, + "data": param_data + } + + # 从配置文件中获取系统默认参数 + task_input_params = TaskInputParamConfig.build_system_params_with_values(task_id, instance) + + # 如果实例中有自定义的输入参数,添加到列表中 + if instance.get("input_params"): + for key, value in instance["input_params"].items(): + # 检查是否已存在同名参数 + if not any(param["key"] == key for param in task_input_params): + task_input_params.append({ + "key": key, + "name": key, # 可以根据需要设置更友好的名称 + "value": value, + "type": "string", # 可以根据值的类型动态设置 + "is_system": False, + "is_readonly": False + }) + + # 获取块输出参数和上下文参数 + block_output_params = instance.get("block_outputs", {}) + context_params = instance.get("context_params", {}) return { "code": 200, "message": "获取任务编辑信息成功", "data": { "task": task, + "instance": instance, "component_types": component_types, - "available_subtasks": available_subtasks # 作为单独的字段返回 + "available_subtasks": available_subtasks, + "common_params": common_params, + "task_input_params": task_input_params, + "block_output_params": block_output_params, + "context_params": context_params } } except Exception as e: @@ -429,3 +518,42 @@ async def get_available_subtasks(current_task_id: Optional[str] = None): except Exception as e: raise HTTPException(status_code=500, detail=f"获取可用子任务列表失败: {str(e)}") +@router.post("/task/{task_id}/publish", response_model=ApiResponse) +async def publish_task(task_id: str): + """发布任务(将编辑中的任务实例状态更改为已发布)""" + try: + # 检查任务是否存在 + task = task_service.get_task_by_id(task_id) + if not task: + return { + "code": 404, + "message": f"任务 {task_id} 不存在", + "data": None + } + + # 获取编辑中的任务实例 + editing_instance = task_instance_service.get_editing_instance_by_task_id(task_id) + if not editing_instance: + return { + "code": 404, + "message": f"任务 {task_id} 没有编辑中的实例", + "data": None + } + + # 发布任务实例 + published_instance = task_instance_service.publish_instance(editing_instance["instance_id"]) + + # 构建响应数据 + response_data = { + "task": task, + "instance": published_instance + } + + return { + "code": 200, + "message": "发布任务成功", + "data": response_data + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"发布任务失败: {str(e)}") + diff --git a/api/task_instance_api.py b/api/task_instance_api.py new file mode 100644 index 0000000..22c80b3 --- /dev/null +++ b/api/task_instance_api.py @@ -0,0 +1,218 @@ +""" +任务实例API模块 +提供任务实例的增删改查接口 +""" +from typing import Dict, Any, List, Optional +from fastapi import APIRouter, HTTPException, Query +from pydantic import BaseModel, Field +from services.task_instance_service import TaskInstanceService, TaskInstanceStatus +from api.models import ApiResponse + +# 创建路由器 +router = APIRouter(prefix="/task-instances", tags=["任务实例"]) + +# 创建服务实例 +task_instance_service = TaskInstanceService() + +# 请求模型 +class TaskInstanceCreateInput(BaseModel): + """任务实例创建输入模型""" + task_id: str = Field(..., description="任务ID") + name: Optional[str] = Field(None, description="任务名称") + variables: Optional[Dict[str, Any]] = Field(None, description="任务变量") + priority: int = Field(1, description="任务优先级") + input_params: Optional[Dict[str, Any]] = Field(None, description="任务输入参数") + block_outputs: Optional[Dict[str, Any]] = Field(None, description="块输出参数") + context_params: Optional[Dict[str, Any]] = Field(None, description="上下文参数") + +class TaskInstanceUpdateInput(BaseModel): + """任务实例更新输入模型""" + variables: Optional[Dict[str, Any]] = Field(None, description="任务变量") + priority: Optional[int] = Field(None, description="任务优先级") + input_params: Optional[Dict[str, Any]] = Field(None, description="任务输入参数") + block_outputs: Optional[Dict[str, Any]] = Field(None, description="块输出参数") + context_params: Optional[Dict[str, Any]] = Field(None, description="上下文参数") + +# API接口 +@router.post("/create", response_model=ApiResponse) +async def create_task_instance(instance_input: TaskInstanceCreateInput): + """创建任务实例""" + try: + # 创建任务实例 + instance = task_instance_service.create_instance( + task_id=instance_input.task_id, + name=instance_input.name, + variables=instance_input.variables, + priority=instance_input.priority, + input_params=instance_input.input_params, + block_outputs=instance_input.block_outputs, + context_params=instance_input.context_params + ) + + return { + "code": 200, + "message": "创建任务实例成功", + "data": instance + } + except ValueError as e: + return { + "code": 400, + "message": str(e), + "data": None + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"创建任务实例失败: {str(e)}") + +@router.get("/{instance_id}", response_model=ApiResponse) +async def get_task_instance(instance_id: str): + """获取任务实例详情""" + try: + # 获取任务实例 + instance = task_instance_service.get_instance_by_id(instance_id) + if not instance: + return { + "code": 404, + "message": f"任务实例不存在: {instance_id}", + "data": None + } + + return { + "code": 200, + "message": "获取任务实例成功", + "data": instance + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"获取任务实例失败: {str(e)}") + +@router.get("/task/{task_id}", response_model=ApiResponse) +async def get_task_instances(task_id: str): + """获取任务的所有实例""" + try: + # 获取任务实例 + instances = task_instance_service.get_instances_by_task_id(task_id) + + return { + "code": 200, + "message": "获取任务实例列表成功", + "data": { + "instances": instances, + "total": len(instances) + } + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"获取任务实例列表失败: {str(e)}") + +@router.get("/task/{task_id}/latest", response_model=ApiResponse) +async def get_latest_task_instance(task_id: str): + """获取任务的最新实例""" + try: + # 获取最新任务实例 + instance = task_instance_service.get_latest_instance_by_task_id(task_id) + if not instance: + return { + "code": 404, + "message": f"任务 {task_id} 没有实例", + "data": None + } + + return { + "code": 200, + "message": "获取最新任务实例成功", + "data": instance + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"获取最新任务实例失败: {str(e)}") + +@router.put("/{instance_id}", response_model=ApiResponse) +async def update_task_instance(instance_id: str, instance_input: TaskInstanceUpdateInput): + """更新任务实例""" + try: + # 更新任务实例 + instance = task_instance_service.update_instance( + instance_id=instance_id, + variables=instance_input.variables, + priority=instance_input.priority, + input_params=instance_input.input_params, + block_outputs=instance_input.block_outputs, + context_params=instance_input.context_params + ) + + if not instance: + return { + "code": 404, + "message": f"任务实例不存在: {instance_id}", + "data": None + } + + return { + "code": 200, + "message": "更新任务实例成功", + "data": instance + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"更新任务实例失败: {str(e)}") + +@router.delete("/{instance_id}", response_model=ApiResponse) +async def delete_task_instance(instance_id: str): + """删除任务实例""" + try: + # 删除任务实例 + success = task_instance_service.delete_instance(instance_id) + + if not success: + return { + "code": 404, + "message": f"任务实例不存在: {instance_id}", + "data": None + } + + return { + "code": 200, + "message": "删除任务实例成功", + "data": None + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"删除任务实例失败: {str(e)}") + +@router.post("/{instance_id}/publish", response_model=ApiResponse) +async def publish_task_instance(instance_id: str): + """发布任务实例""" + try: + # 发布任务实例 + instance = task_instance_service.publish_instance(instance_id) + + if not instance: + return { + "code": 404, + "message": f"任务实例不存在: {instance_id}", + "data": None + } + + return { + "code": 200, + "message": "发布任务实例成功", + "data": instance + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"发布任务实例失败: {str(e)}") + +@router.get("/task/{task_id}/editing", response_model=ApiResponse) +async def get_or_create_editing_instance(task_id: str): + """获取或创建编辑中的任务实例""" + try: + # 获取或创建编辑中的任务实例 + instance = task_instance_service.get_or_create_editing_instance(task_id) + + return { + "code": 200, + "message": "获取编辑中的任务实例成功", + "data": instance + } + except ValueError as e: + return { + "code": 404, + "message": str(e), + "data": None + } + except Exception as e: + raise HTTPException(status_code=500, detail=f"获取编辑中的任务实例失败: {str(e)}") \ No newline at end of file diff --git a/api/workflow_api.py b/api/workflow_api.py index 9471bea..2c9e2ef 100644 --- a/api/workflow_api.py +++ b/api/workflow_api.py @@ -4,9 +4,12 @@ from fastapi import APIRouter, HTTPException, Depends, Query from pydantic import BaseModel, Field from services.workflow_service import WorkflowService from core.exceptions import TianfengTaskError +from api.models import ( + ApiResponse, WorkflowInput, WorkflowUpdateInput, + WorkflowExecuteInput, WorkflowImportInput +) from core.workflow import WorkflowDefinition from config.api_config import ApiResponseCode, ApiResponseMessage -from api.models import ApiResponse, WorkflowInput, WorkflowUpdateInput, WorkflowExecuteInput, WorkflowImportInput # 创建路由器 router = APIRouter(prefix="/workflow", tags=["工作流管理"]) diff --git a/app.py b/app.py index cd01204..ebe9022 100644 --- a/app.py +++ b/app.py @@ -5,13 +5,14 @@ from fastapi.middleware.cors import CORSMiddleware import logging import time from utils.logger import setup_logger -from config.component_registry import register_all_components +from config.component_config import register_all_components from config.settings import ( AppConfig, ServerConfig, ApiConfig, CorsConfig ) from api.task_api import router as task_router from api.workflow_api import router as workflow_router from api.component_api import router as component_router +from api.common_params_api import router as common_params_router from core.exceptions import TianfengTaskError from config.api_config import ApiResponseCode, ApiResponseMessage from config.component_config import ComponentCategoryConfig @@ -120,6 +121,7 @@ register_all_components() app.include_router(task_router, prefix=ApiConfig.PREFIX) app.include_router(workflow_router, prefix=ApiConfig.PREFIX) app.include_router(component_router, prefix=ApiConfig.PREFIX) +app.include_router(common_params_router, prefix=ApiConfig.PREFIX) # 请求中间件 @app.middleware("http") diff --git a/config/__pycache__/common_params_config.cpython-312.pyc b/config/__pycache__/common_params_config.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7510b4ff1039a4c163fbafed7b764fa23b0cb2f4 GIT binary patch literal 3580 zcmai1eQXrR72mzx`@Zw}3;PVlXB)7+jXwyukW^6=f0Z~OAF>anTG4Emo3%N(ukPM9 zx|1WFQm5bs5}LG_AQC~ON{$dHt<+-dfargf`bTx*54KZPs#M=O{?A~fNd2pCX7AFq zeG+5c+c$51^X9#oH}8%A=J$ITXh;73Wadx$m>2 z{`r@yOLxpUYuD$@X={I2DSq)`@smrSqICIgY59t0oh&5qm>-QrGnhXS(=wPFN@lSu zoX*5jNjWaCm>)~(iKuCkN!fB|^9^7Y7=;m8@ZN@4kwZ3-N1SL!yy!r7(TNRa_>1pgXI~jQf2eeE|m1h)5Ru!25eO3YHwOB^Mt~0Tul##Xb*!ylu zJ+EbC;xXpaDcA&F*Ax}oqjL1Dg6q!cu{bQ4l&1A$l%OVrTI`afq?}MB340_dkwSW$ z@IFcUxh}`cBTh*|sVInDli}fTL>eE(UXwdE89sFqyUk8y=ok)6MZ%Lq$Ht_g$*~~< z^jQU%pBj&hVb}2ZgcKQ?I*z?>hbNCuMTR2d;R(#23{OQce`;!M65B_HM&2C5b;GB| zPr!l`(vMF~j1bgU%qBUu|GqK$qtoZKcco|wDW}tF>YNhIoX*7Lg~{!ODkls|6N?#YiEP2Ksh(a@1U zVR-BEqn1(HrNq~eA2Wh475H6hcSY%zNFytdw)rz4TO&>3kxj8H4#lasrfn@SPJYui z#Le-yfg??H1BzFifb{G@^2lyMdb19}iR&$qsEtsM^60(X7l=b(33A+USg_@+um$TxF66F)t>hsK7@!e7ff&-T4bmM?(vRT4d=Mg{z8uHiZmTl z;t2auOiRb*tl8DcnSQ_2+RB_xHh7x_AkNiWO`y40(*xGIrJEPl?mVRTXxnsiBv)(I z00~^vNt_m!KP_G&o|AwvCsstcCOV^>)dxtLr{3%2E|?%{zI9gF&Mk8&e(m;WYwzE; z;7vi!W3Bld77?fwy8nAy%930Sg+Z^66cf!f;ok38A6&MmEK)(Pj$$q4rVRh% z!ZtV+lr10y$;816pmgz`MXf0)<4DOWYOY}4`%Bh+uS_U;@uEjN`9>>Pf9 z@)r#E6@q;g)4==vMn{)**Iq3IU#;xg4~@`)%BF5;HkqyUY%ntG_RwOEJ@nx~PcUk& zeWW_l3i%c=3(PEY&RRb~Mp~tUzh|4ZjWR!l6!0E5%ORH3_*wQmgo(yp^38Hl8_P^F zJd?EvoK9k@bn`wuZp|EOW?1X%*R0*@001WhRy_(|fme^fM|}kd_Ws{yNTunFMhbB| zG&3-pwg#PaCQIGR2``M#3N#P;v_nAh%!Y$$-u8u z?wa^G&}}rgeB$1)GYxG3t!<>cIwAN}QjpYULP)t$$(CSmG%jmeLdl#>A(a@dk}bxZ zmQhtZ=@M5}k{;F92V)7mJ#fHPk0ocQ-KGcBZelX#75EoKbportP6&O0Qk%E>fnBeeFY(vaA;6Ki(#TnF ta4gF{wQ(%}or_`n9y7iFVs<^}{cP`*=(WM;3^3odrCGM|8AB+w?tfD@GO7Ro literal 0 HcmV?d00001 diff --git a/config/__pycache__/component_config.cpython-312.pyc b/config/__pycache__/component_config.cpython-312.pyc index 8988d8f3ae79b14a3b664077b74c94ad4bea45dc..dca91952bed78cb63d008b6516bf2e0c865998d4 100644 GIT binary patch literal 25183 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 Qdku!XyZB15LG-!*33yXNrT_o{ delta 2123 zcmcJQU2GIp6vywKkNue44c)d|w)DGL=!g|6ia?>zF8#2`hizj?jpEW7%Hn?1nOT!f z(6-t_qqW7}1QlY44<;oom|W!w|gA2EXZ8>GeGhI7e;eWZ?a#`)8G{}7r+hh0Kl*H z1aNElVqTd;_WZ3dv5mrX^@M}E9#M^BF-7CS!s~{nZGi<)RoZqy4uC~37gWBJk-|eR z7QJI*Gx=m=@fX}{m@K^f1gYpM!yMU1$&*A^nM*L}Vr!61B|a>YnXWQ&zpEVEiF~Nc z2a+Xnzr^2PM15)n03VX)yU-)iA}kg5kI-^V)ON zjp^wL8bz!e5395uO)(mbsJad@EH8&_rAiz6U!wo?5sCryrvrH^XWjCQTb``D zSI@YsC##uUH{)J6>3%33E9Lqb_xedcvoa4`nFQ;!yq#&wTP9EPN+V*X0Ok0`6XeUX zJnSXkmlbl#V@S+ymKgeWE5J+67IPD-LxtKXx@ae#UA5bK~Rl-(Dhe#V4!T zT=M+2)aL`q_s`G2cf)EO`8=nwYli&38!o+AT}5ZF>x{?Z=Ar{}CLU zNM0LHLvKjKwMawdrQyz|MF7-#+75tzn1(Bx?xB!f)-`CPnl&El0%UK6)&LWmSPKe( zWNl*)?6fN1N`x(@DXO+S1>33uN8hB&^g)Vj3RvNKv(cTzDT(NS&G7n2@ z$$VASQVVqaXA7)@bGHKa0uBLI^ssuc0ru0M4(|+Ki{f9!oCVG!?!3n%n>Pb0Q%V)s z+Huy{jx#$Rm}{677SvcRk~x(n){IS?k?0FWds%C>8Y(1*yk6?pSu=v%X!!tkphpjB zI(E>nN<6IAYp>8HkZK)12pJw@yuk5TSacw~b_P}cjGkWEt%SXw|7i;Y|@ LuK5E|u(SOGk@O=} diff --git a/config/__pycache__/component_init_config.cpython-312.pyc b/config/__pycache__/component_init_config.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..05421dc9d58e7a6ff98a9307058aec610e1ef298 GIT binary patch literal 4304 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 I(m@yYA1~K5bpQYW literal 0 HcmV?d00001 diff --git a/config/__pycache__/task_config.cpython-312.pyc b/config/__pycache__/task_config.cpython-312.pyc index d9f6f6bffa6c72fefa701c29f217aacecba1e6cd..1e5ad472bdea413c5ae794a0734d6483d2ce5d7c 100644 GIT binary patch literal 13473 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 YYb83m=9*1MuexS4&{fx=PBi-e1M@eS#sB~S delta 2133 zcmaJ?Z){Ul6u-nLRyGnm@I_(5LC+^K1sScek^&M}ggnUFak{}w@q!F5u5)vg6*+n$d z6w%DONtZ5~F^7tOeng1)R&i8i3uk}wg=QuqD;3P4X@nFuM;ldYk8Qe8#U(?NvK*WphqhM^lIgR zm6{9Cr&R#@H8)_DrUC{gJQ45scK#!6;)+zwW0hX2@(&bG?Sv^}&e{3~jN!hCF+C^u zytsdFygOIY+p)W=^FVi3XHUe!FG;mYCPNX-3Xmm#VLcC103BQU4;VT#`j0j}*WB9Q zsT;$Y^jQDxuRpoVCU>1JPw_CAe#l4w<%(%gSS2|v@GaGJ}Am9YB zas(Gb1%ewvMerba5flWW>BLppBfu=94q%G#w;Z*y2q~M{XSyoUDqbcxQYVkgYiK<` z@~7$c-UP> zry-?|54*wanPcwlv}4&!whp7#13WU&DGW5kOcgw24JiA+ftV8If2-B>EcbdIxmZ!; zB8y?17$-4>jrjHHqlkTFO$bjnv;{*D4#H#1-1oH7yp1hzEBt(T?G9SUKVKUvFS-pe zesgX8=A!OwMKOd+D24@Mcl`5}{#mm+ABf&C`|{UgE03@Hw@)+^%ga($gBkEL-$6f4dd{}O_D{GII4bDYHlbs=i26!##wVCbAWI+|1I*VSBQ%_ zYR8m%`*>`YXS2F)^!mOM&`)L~wG>7OmzNNY5I1UHH&NB30 z7{|~Kh6iPM7Ew{r3ngdUno4WqBl List[Dict[str, Any]]: + """获取脚本组件列表""" + return [ + { + "type": "script", + "sub_type": cls.RUN_SCRIPT, + "name": "运行脚本", + "description": "执行JavaScript代码并返回结果", + "icon": "code", # 图标名称,前端可用 + "params": [ + { + "name": "function_name", + "label": "函数名", + "type": "string", + "required": False, + "description": "定义脚本中的主函数名称", + "value_types": [ + { + "type": "simple", + "label": "简单值", + "default": True + }, + { + "type": "expression", + "label": "表达式", + "default": False + } + ] + }, + { + "name": "params", + "label": "函数参数", + "type": "array", + "required": False, + "description": "传递给脚本的参数", + "value_types": [ + { + "type": "simple", + "label": "简单值", + "default": True + }, + { + "type": "expression", + "label": "表达式", + "default": False + } + ] + } + ] + }, + { + "type": "script", + "sub_type": cls.SET_VARIABLES, + "name": "设置task.variables", + "description": "设置和管理任务变量", + "icon": "variable", + "params": [ + { + "name": "function_name", + "label": "函数名", + "type": "string", + "required": False, + "description": "定义脚本中的主函数名称", + "value_types": [ + { + "type": "simple", + "label": "简单值", + "default": True + }, + { + "type": "expression", + "label": "表达式", + "default": False + } + ] + }, + { + "name": "params", + "label": "函数参数", + "type": "array", + "required": False, + "description": "传递给脚本的参数", + "value_types": [ + { + "type": "simple", + "label": "简单值", + "default": True + }, + { + "type": "expression", + "label": "表达式", + "default": False + } + ] + } + ] + } + ] + +class HttpComponentConfig: + """HTTP请求组件配置""" + + # HTTP请求组件类型 + HTTP_REQUEST = "http_request" # HTTP请求 + + # HTTP请求组件详细配置 + @classmethod + def get_components(cls) -> List[Dict[str, Any]]: + """获取HTTP请求组件列表""" + return [ + { + "type": "http", + "sub_type": cls.HTTP_REQUEST, + "name": "HTTP请求", + "description": "发送HTTP请求并处理响应", + "icon": "http", + "params": [ + { + "name": "method", + "label": "请求方法", + "type": "select", + "options": ["GET", "POST", "PUT", "DELETE", "PATCH"], + "required": True, + "description": "HTTP请求方法" + }, + { + "name": "url", + "label": "请求URL", + "type": "string", + "required": True, + "description": "请求的目标URL" + }, + { + "name": "headers", + "label": "请求头", + "type": "object", + "required": False, + "description": "HTTP请求头" + }, + { + "name": "body", + "label": "请求体", + "type": "object", + "required": False, + "description": "HTTP请求体" + }, + { + "name": "timeout", + "label": "超时时间", + "type": "number", + "required": False, + "description": "请求超时时间(毫秒)" + } + ] + } + ] + +class FlowComponentConfig: + """流程控制组件配置""" + + # 流程控制组件类型 + IF = "if" # 条件判断 + IF_ELSE = "if_else" # 条件分支 + FOR_EACH = "for_each" # 循环遍历 + WHILE = "while" # 条件循环 + + # 流程控制组件详细配置 + @classmethod + def get_components(cls) -> List[Dict[str, Any]]: + """获取流程控制组件列表""" + return [ + { + "type": "flow", + "sub_type": cls.IF, + "name": "条件判断", + "description": "根据条件执行不同的操作", + "icon": "branch", + "params": [ + { + "name": "condition", + "label": "条件表达式", + "type": "expression", + "required": True, + "description": "条件判断表达式" + } + ] + }, + { + "type": "flow", + "sub_type": cls.IF_ELSE, + "name": "条件分支", + "description": "根据条件执行不同的分支", + "icon": "branch-multiple", + "params": [ + { + "name": "condition", + "label": "条件表达式", + "type": "expression", + "required": True, + "description": "条件判断表达式" + } + ] + }, + { + "type": "flow", + "sub_type": cls.FOR_EACH, + "name": "循环遍历", + "description": "遍历数组或对象的每个元素", + "icon": "loop", + "params": [ + { + "name": "collection", + "label": "集合表达式", + "type": "expression", + "required": True, + "description": "要遍历的数组或对象" + }, + { + "name": "item_name", + "label": "元素变量名", + "type": "string", + "required": True, + "description": "当前元素的变量名" + }, + { + "name": "index_name", + "label": "索引变量名", + "type": "string", + "required": False, + "description": "当前索引的变量名" + } + ] + }, + { + "type": "flow", + "sub_type": cls.WHILE, + "name": "条件循环", + "description": "当条件为真时重复执行", + "icon": "loop-circular", + "params": [ + { + "name": "condition", + "label": "条件表达式", + "type": "expression", + "required": True, + "description": "循环条件表达式" + } + ] + } + ] + +class SubtaskComponentConfig: + """子任务组件配置""" + + # 子任务组件类型 + SUBTASK = "subtask" # 子任务 + + # 子任务组件详细配置 + @classmethod + def get_components(cls) -> List[Dict[str, Any]]: + """获取子任务组件列表""" + return [ + { + "type": "subtask", + "sub_type": cls.SUBTASK, + "name": "子任务", + "description": "执行已定义的任务作为子任务", + "icon": "subtask", + "params": [ + { + "name": "task_id", + "label": "选择子任务", + "type": "select", + "required": True, + "description": "选择要执行的子任务(从已创建的任务中选择)", + "data_source": "available_subtasks", # 指示前端从API返回的available_subtasks字段获取数据 + "display_field": "name", # 显示任务名称 + "value_field": "task_id" # 使用任务ID作为值 + }, + { + "name": "params", + "label": "任务参数", + "type": "object", + "required": False, + "description": "传递给子任务的参数" + }, + { + "name": "wait_complete", + "label": "等待完成", + "type": "boolean", + "required": False, + "default": True, + "description": "是否等待子任务完成后再继续执行" + } + ] + } + ] + +class ComponentDetailConfig: + """组件详细配置管理""" + + # 组件类型中文名称映射 + @classmethod + def get_component_type_names(cls) -> Dict[str, str]: + """获取组件类型的中文名称映射""" + return { + # 基础类型 + "script": "脚本", + "http": "HTTP请求", + "flow": "流程", + "robot": "机器人调度", + "site": "库位", + "device": "设备", + "subtask": "子任务", + "task": "任务", + "basic": "基础", + + # 脚本组件 + "run_script": "运行脚本", + "set_task_variables": "设置任务变量", + "runscript": "运行脚本", + "settaskvariables": "设置任务变量", + + # HTTP请求组件 + "http_get_request": "GET请求", + "http_post_request": "POST请求", + "httpgetrequest": "GET请求", + "httppostrequest": "POST请求", + + # 流程控制组件 + "if": "条件判断", + "if_else": "条件分支", + "if_else_if": "多条件分支", + "for_each": "循环遍历", + "while": "条件循环", + "break": "跳出循环", + "return": "返回", + "delay": "延时", + "parallel_execute": "并行执行", + "serial_execute": "串行执行", + "throw_exception": "抛出异常", + "foreach": "循环遍历", + "ifelse": "条件分支", + "ifelseif": "多条件分支", + "parallelexecute": "并行执行", + "serialexecute": "串行执行", + "throwexception": "抛出异常", + + # 机器人调度组件 + "select_robot": "选择机器人", + "get_robot_position": "获取机器人位置", + "robot_action": "机器人动作", + "change_robot_destination": "更改机器人目的地", + "get_robot_battery": "获取机器人电量", + "get_robot_pgv_code": "获取机器人PGV码", + "changerobotdestination": "更改机器人目的地", + "getrobotbattery": "获取机器人电量", + "getrobotpgvcode": "获取机器人PGV码", + "getrobotposition": "获取机器人位置", + "robotaction": "机器人动作", + "selectrobot": "选择机器人", + + # 库位组件 + "batch_set_site": "批量设置库位", + "get_dense_site": "获取密集库位", + "query_site": "查询库位", + "lock_site": "锁定库位", + "unlock_site": "解锁库位", + "get_locked_sites_by_task": "获取任务锁定的库位", + "get_site_extension_property": "获取库位扩展属性", + "set_site_extension_property": "设置库位扩展属性", + "set_site_goods": "设置库位货物", + "set_site_empty": "设置库位为空", + "set_site_occupied": "设置库位为占用", + "set_site_tag": "设置库位标签", + "batchsetsite": "批量设置库位", + "getdensesite": "获取密集库位", + "getlockedsitesbytask": "获取任务锁定的库位", + "getsiteextensionproperty": "获取库位扩展属性", + "locksite": "锁定库位", + "querysite": "查询库位", + "setsiteempty": "设置库位为空", + "setsiteextensionproperty": "设置库位扩展属性", + "setsitegoods": "设置库位货物", + "setsiteoccupied": "设置库位为占用", + "setsitetag": "设置库位标签", + "unlocksite": "解锁库位", + + # 任务组件 + "cache_data": "缓存数据", + "clear_cache_data": "清除缓存数据", + "get_cache_data": "获取缓存数据", + "set_task_status": "设置任务状态", + "jump_to_block": "跳转到块", + "get_task_input_param": "获取任务输入参数", + "cachedata": "缓存数据", + "clearcachedata": "清除缓存数据", + "getcachedata": "获取缓存数据", + "gettaskinputparam": "获取任务输入参数", + "jumptoblock": "跳转到块", + "settaskstatus": "设置任务状态", + + # 基础组件 + "check_task_instance_id_exists": "检查任务实例ID是否存在", + "create_unique_id": "创建唯一ID", + "current_timestamp": "当前时间戳", + "current_time": "当前时间", + "execute_sql": "执行SQL", + "query_sql": "查询SQL", + "string_md5_encrypt": "字符串MD5加密", + "string_to_json_array": "字符串转JSON数组", + "string_to_json_object": "字符串转JSON对象", + "print": "打印", + "checktaskinstanceidexists": "检查任务实例ID是否存在", + "createuniqueid": "创建唯一ID", + "currenttime": "当前时间", + "currenttimestamp": "当前时间戳", + "executesql": "执行SQL", + "querysql": "查询SQL", + "stringmd5encrypt": "字符串MD5加密", + "stringtojsonarray": "字符串转JSON数组", + "stringtojsonobject": "字符串转JSON对象", + + # 设备组件 + "wait_modbus_value": "等待Modbus值", + "write_modbus_value": "写入Modbus值", + "waitmodbusvalue": "等待Modbus值", + "writemodbusvalue": "写入Modbus值" + } + + @classmethod + def get_all_components(cls) -> List[Dict[str, Any]]: + """获取所有组件详细配置""" + all_components = [] + + # 添加子任务组件(放在第一位) + all_components.extend(SubtaskComponentConfig.get_components()) + + # 添加脚本组件 + all_components.extend(ScriptComponentConfig.get_components()) + + # 添加HTTP请求组件 + all_components.extend(HttpComponentConfig.get_components()) + + # 添加流程控制组件 + all_components.extend(FlowComponentConfig.get_components()) + + # 可以继续添加其他类型的组件... + + return all_components + + @classmethod + def get_components_by_type(cls, component_type: str) -> List[Dict[str, Any]]: + """根据组件类型获取组件列表""" + all_components = cls.get_all_components() + return [comp for comp in all_components if comp["type"] == component_type] + +################################################# +# 常用参数配置 +################################################# + +class CommonParamType(str, Enum): + """常用参数类型枚举""" + ROBOT_ID = "robot_id" # 机器人ID + ROBOT_GROUP = "robot_group" # 机器人组 + ROBOT_TAG = "robot_tag" # 机器人标签 + STORAGE_AREA_ID = "storage_area_id" # 库区ID + STORAGE_AREA = "storage_area" # 库区 + SITE = "site" # 站点 + BIN_TASK = "bin_task" # binTask + WORKSTATION = "workstation" # 工位 + POST = "post" # 岗位 + USER = "user" # 用户 + CACHE = "cache" # 缓存 + BUILT_IN_FUNCTION = "built_in_function" # 内置函数 + +class CommonParamsConfig: + """常用参数配置类""" + + @classmethod + def get_param_types(cls) -> List[Dict[str, Any]]: + """获取所有常用参数类型""" + return [ + { + "type": CommonParamType.ROBOT_ID, + "name": "机器人ID", + "description": "选择机器人ID", + "api_path": "/api/robots/ids", # 获取数据的API路径 + "value_field": "id", # 值字段 + "display_field": "name" # 显示字段 + }, + { + "type": CommonParamType.ROBOT_GROUP, + "name": "机器人组", + "description": "选择机器人组", + "api_path": "/api/robots/groups", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.ROBOT_TAG, + "name": "机器人标签", + "description": "选择机器人标签", + "api_path": "/api/robots/tags", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.STORAGE_AREA_ID, + "name": "库区ID", + "description": "选择库区ID", + "api_path": "/api/storage/areas/ids", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.STORAGE_AREA, + "name": "库区", + "description": "选择库区", + "api_path": "/api/storage/areas", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.SITE, + "name": "站点", + "description": "选择站点", + "api_path": "/api/sites", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.BIN_TASK, + "name": "binTask", + "description": "选择binTask", + "api_path": "/api/bin-tasks", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.WORKSTATION, + "name": "工位", + "description": "选择工位", + "api_path": "/api/workstations", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.POST, + "name": "岗位", + "description": "选择岗位", + "api_path": "/api/posts", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.USER, + "name": "用户", + "description": "选择用户", + "api_path": "/api/users", + "value_field": "id", + "display_field": "name" + }, + { + "type": CommonParamType.CACHE, + "name": "缓存", + "description": "选择缓存", + "api_path": "/api/caches", + "value_field": "key", + "display_field": "key" + }, + { + "type": CommonParamType.BUILT_IN_FUNCTION, + "name": "内置函数", + "description": "选择内置函数", + "api_path": "/api/built-in-functions", + "value_field": "name", + "display_field": "name" + } + ] + + @classmethod + def get_param_type_by_type(cls, param_type: str) -> Optional[Dict[str, Any]]: + """根据类型获取参数类型配置""" + param_types = cls.get_param_types() + for pt in param_types: + if pt["type"] == param_type: + return pt + return None \ No newline at end of file diff --git a/config/component_detail_config.py b/config/component_detail_config.py deleted file mode 100644 index f7f2ccc..0000000 --- a/config/component_detail_config.py +++ /dev/null @@ -1,472 +0,0 @@ -""" -组件详细配置文件 -包含各种组件类型及其子组件的配置信息 -""" -from typing import Dict, List, Any, Optional - -class ScriptComponentConfig: - """脚本组件配置""" - - # 脚本组件类型 - RUN_SCRIPT = "run_script" # 运行脚本 - SET_VARIABLES = "set_variables" # 设置task.variables - - # 脚本组件详细配置 - @classmethod - def get_components(cls) -> List[Dict[str, Any]]: - """获取脚本组件列表""" - return [ - { - "type": "script", - "sub_type": cls.RUN_SCRIPT, - "name": "运行脚本", - "description": "执行JavaScript代码并返回结果", - "icon": "code", # 图标名称,前端可用 - "params": [ - { - "name": "function_name", - "label": "函数名", - "type": "string", - "required": False, - "description": "定义脚本中的主函数名称", - "value_types": [ - { - "type": "simple", - "label": "简单值", - "default": True - }, - { - "type": "expression", - "label": "表达式", - "default": False - } - ] - }, - { - "name": "params", - "label": "函数参数", - "type": "array", - "required": False, - "description": "传递给脚本的参数", - "value_types": [ - { - "type": "simple", - "label": "简单值", - "default": True - }, - { - "type": "expression", - "label": "表达式", - "default": False - } - ] - } - ] - }, - { - "type": "script", - "sub_type": cls.SET_VARIABLES, - "name": "设置task.variables", - "description": "设置和管理任务变量", - "icon": "variable", - "params": [ - { - "name": "function_name", - "label": "函数名", - "type": "string", - "required": False, - "description": "定义脚本中的主函数名称", - "value_types": [ - { - "type": "simple", - "label": "简单值", - "default": True - }, - { - "type": "expression", - "label": "表达式", - "default": False - } - ] - }, - { - "name": "params", - "label": "函数参数", - "type": "array", - "required": False, - "description": "传递给脚本的参数", - "value_types": [ - { - "type": "simple", - "label": "简单值", - "default": True - }, - { - "type": "expression", - "label": "表达式", - "default": False - } - ] - } - ] - } - ] - -class HttpComponentConfig: - """HTTP请求组件配置""" - - # HTTP请求组件类型 - HTTP_REQUEST = "http_request" # HTTP请求 - - # HTTP请求组件详细配置 - @classmethod - def get_components(cls) -> List[Dict[str, Any]]: - """获取HTTP请求组件列表""" - return [ - { - "type": "http", - "sub_type": cls.HTTP_REQUEST, - "name": "HTTP请求", - "description": "发送HTTP请求并处理响应", - "icon": "http", - "params": [ - { - "name": "method", - "label": "请求方法", - "type": "select", - "options": ["GET", "POST", "PUT", "DELETE", "PATCH"], - "required": True, - "description": "HTTP请求方法" - }, - { - "name": "url", - "label": "请求URL", - "type": "string", - "required": True, - "description": "请求的目标URL" - }, - { - "name": "headers", - "label": "请求头", - "type": "object", - "required": False, - "description": "HTTP请求头" - }, - { - "name": "body", - "label": "请求体", - "type": "object", - "required": False, - "description": "HTTP请求体" - }, - { - "name": "timeout", - "label": "超时时间", - "type": "number", - "required": False, - "description": "请求超时时间(毫秒)" - } - ] - } - ] - -class FlowComponentConfig: - """流程控制组件配置""" - - # 流程控制组件类型 - IF = "if" # 条件判断 - IF_ELSE = "if_else" # 条件分支 - FOR_EACH = "for_each" # 循环遍历 - WHILE = "while" # 条件循环 - - # 流程控制组件详细配置 - @classmethod - def get_components(cls) -> List[Dict[str, Any]]: - """获取流程控制组件列表""" - return [ - { - "type": "flow", - "sub_type": cls.IF, - "name": "条件判断", - "description": "根据条件执行不同的操作", - "icon": "branch", - "params": [ - { - "name": "condition", - "label": "条件表达式", - "type": "expression", - "required": True, - "description": "条件判断表达式" - } - ] - }, - { - "type": "flow", - "sub_type": cls.IF_ELSE, - "name": "条件分支", - "description": "根据条件执行不同的分支", - "icon": "branch-multiple", - "params": [ - { - "name": "condition", - "label": "条件表达式", - "type": "expression", - "required": True, - "description": "条件判断表达式" - } - ] - }, - { - "type": "flow", - "sub_type": cls.FOR_EACH, - "name": "循环遍历", - "description": "遍历数组或对象的每个元素", - "icon": "loop", - "params": [ - { - "name": "collection", - "label": "集合表达式", - "type": "expression", - "required": True, - "description": "要遍历的数组或对象" - }, - { - "name": "item_name", - "label": "元素变量名", - "type": "string", - "required": True, - "description": "当前元素的变量名" - }, - { - "name": "index_name", - "label": "索引变量名", - "type": "string", - "required": False, - "description": "当前索引的变量名" - } - ] - }, - { - "type": "flow", - "sub_type": cls.WHILE, - "name": "条件循环", - "description": "当条件为真时重复执行", - "icon": "loop-circular", - "params": [ - { - "name": "condition", - "label": "条件表达式", - "type": "expression", - "required": True, - "description": "循环条件表达式" - } - ] - } - ] - -class SubtaskComponentConfig: - """子任务组件配置""" - - # 子任务组件类型 - SUBTASK = "subtask" # 子任务 - - # 子任务组件详细配置 - @classmethod - def get_components(cls) -> List[Dict[str, Any]]: - """获取子任务组件列表""" - return [ - { - "type": "subtask", - "sub_type": cls.SUBTASK, - "name": "子任务", - "description": "执行已定义的任务作为子任务", - "icon": "subtask", - "params": [ - { - "name": "task_id", - "label": "选择子任务", - "type": "select", - "required": True, - "description": "选择要执行的子任务(从已创建的任务中选择)", - "data_source": "available_subtasks", # 指示前端从API返回的available_subtasks字段获取数据 - "display_field": "name", # 显示任务名称 - "value_field": "task_id" # 使用任务ID作为值 - }, - { - "name": "params", - "label": "任务参数", - "type": "object", - "required": False, - "description": "传递给子任务的参数" - }, - { - "name": "wait_complete", - "label": "等待完成", - "type": "boolean", - "required": False, - "default": True, - "description": "是否等待子任务完成后再继续执行" - } - ] - } - ] - -# 组件配置管理类 -class ComponentDetailConfig: - """组件详细配置管理""" - - # 组件类型中文名称映射 - @classmethod - def get_component_type_names(cls) -> Dict[str, str]: - """获取组件类型的中文名称映射""" - return { - # 基础类型 - "script": "脚本", - "http": "HTTP请求", - "flow": "流程", - "robot": "机器人调度", - "site": "库位", - "device": "设备", - "subtask": "子任务", - "task": "任务", - "basic": "基础", - - # 脚本组件 - "run_script": "运行脚本", - "set_task_variables": "设置任务变量", - "runscript": "运行脚本", - "settaskvariables": "设置任务变量", - - # HTTP请求组件 - "http_get_request": "GET请求", - "http_post_request": "POST请求", - "httpgetrequest": "GET请求", - "httppostrequest": "POST请求", - - # 流程控制组件 - "if": "条件判断", - "if_else": "条件分支", - "if_else_if": "多条件分支", - "for_each": "循环遍历", - "while": "条件循环", - "break": "跳出循环", - "return": "返回", - "delay": "延时", - "parallel_execute": "并行执行", - "serial_execute": "串行执行", - "throw_exception": "抛出异常", - "foreach": "循环遍历", - "ifelse": "条件分支", - "ifelseif": "多条件分支", - "parallelexecute": "并行执行", - "serialexecute": "串行执行", - "throwexception": "抛出异常", - - # 机器人调度组件 - "select_robot": "选择机器人", - "get_robot_position": "获取机器人位置", - "robot_action": "机器人动作", - "change_robot_destination": "更改机器人目的地", - "get_robot_battery": "获取机器人电量", - "get_robot_pgv_code": "获取机器人PGV码", - "changerobotdestination": "更改机器人目的地", - "getrobotbattery": "获取机器人电量", - "getrobotpgvcode": "获取机器人PGV码", - "getrobotposition": "获取机器人位置", - "robotaction": "机器人动作", - "selectrobot": "选择机器人", - - # 库位组件 - "batch_set_site": "批量设置库位", - "get_dense_site": "获取密集库位", - "query_site": "查询库位", - "lock_site": "锁定库位", - "unlock_site": "解锁库位", - "get_locked_sites_by_task": "获取任务锁定的库位", - "get_site_extension_property": "获取库位扩展属性", - "set_site_extension_property": "设置库位扩展属性", - "set_site_goods": "设置库位货物", - "set_site_empty": "设置库位为空", - "set_site_occupied": "设置库位为占用", - "set_site_tag": "设置库位标签", - "batchsetsite": "批量设置库位", - "getdensesite": "获取密集库位", - "getlockedsitesbytask": "获取任务锁定的库位", - "getsiteextensionproperty": "获取库位扩展属性", - "locksite": "锁定库位", - "querysite": "查询库位", - "setsiteempty": "设置库位为空", - "setsiteextensionproperty": "设置库位扩展属性", - "setsitegoods": "设置库位货物", - "setsiteoccupied": "设置库位为占用", - "setsitetag": "设置库位标签", - "unlocksite": "解锁库位", - - # 任务组件 - "cache_data": "缓存数据", - "clear_cache_data": "清除缓存数据", - "get_cache_data": "获取缓存数据", - "set_task_status": "设置任务状态", - "jump_to_block": "跳转到块", - "get_task_input_param": "获取任务输入参数", - "cachedata": "缓存数据", - "clearcachedata": "清除缓存数据", - "getcachedata": "获取缓存数据", - "gettaskinputparam": "获取任务输入参数", - "jumptoblock": "跳转到块", - "settaskstatus": "设置任务状态", - - # 基础组件 - "check_task_instance_id_exists": "检查任务实例ID是否存在", - "create_unique_id": "创建唯一ID", - "current_timestamp": "当前时间戳", - "current_time": "当前时间", - "execute_sql": "执行SQL", - "query_sql": "查询SQL", - "string_md5_encrypt": "字符串MD5加密", - "string_to_json_array": "字符串转JSON数组", - "string_to_json_object": "字符串转JSON对象", - "print": "打印", - "checktaskinstanceidexists": "检查任务实例ID是否存在", - "createuniqueid": "创建唯一ID", - "currenttime": "当前时间", - "currenttimestamp": "当前时间戳", - "executesql": "执行SQL", - "querysql": "查询SQL", - "stringmd5encrypt": "字符串MD5加密", - "stringtojsonarray": "字符串转JSON数组", - "stringtojsonobject": "字符串转JSON对象", - - # 设备组件 - "wait_modbus_value": "等待Modbus值", - "write_modbus_value": "写入Modbus值", - "waitmodbusvalue": "等待Modbus值", - "writemodbusvalue": "写入Modbus值" - } - - @classmethod - def get_all_components(cls) -> List[Dict[str, Any]]: - """获取所有组件详细配置""" - all_components = [] - - # 添加子任务组件(放在第一位) - all_components.extend(SubtaskComponentConfig.get_components()) - - # 添加脚本组件 - all_components.extend(ScriptComponentConfig.get_components()) - - # 添加HTTP请求组件 - all_components.extend(HttpComponentConfig.get_components()) - - # 添加流程控制组件 - all_components.extend(FlowComponentConfig.get_components()) - - # 可以继续添加其他类型的组件... - - return all_components - - @classmethod - def get_components_by_type(cls, component_type: str) -> List[Dict[str, Any]]: - """根据组件类型获取组件列表""" - all_components = cls.get_all_components() - return [comp for comp in all_components if comp["type"] == component_type] \ No newline at end of file diff --git a/config/component_registry.py b/config/component_registry.py deleted file mode 100644 index 3cd5776..0000000 --- a/config/component_registry.py +++ /dev/null @@ -1,23 +0,0 @@ -""" -组件注册表 -""" -# config/component_registry.py -from core.component import ComponentFactory -import importlib -from config.settings import COMPONENT_PACKAGES -from utils.logger import get_logger - -# 获取日志记录器 -logger = get_logger(__name__) - -def register_all_components(): - """注册所有组件""" - - for package_name in COMPONENT_PACKAGES: - try: - ComponentFactory.auto_discover(package_name) - logger.info(f"自动注册组件包: {package_name}") - except ImportError: - logger.error(f"导入组件包失败: {package_name}") - except Exception as e: - logger.error(f"注册组件包失败: {package_name}, 错误: {str(e)}") \ No newline at end of file diff --git a/config/task_config.py b/config/task_config.py index 023af0b..b039d67 100644 --- a/config/task_config.py +++ b/config/task_config.py @@ -3,27 +3,21 @@ """ 任务配置模块 -包含任务类型、状态等配置信息 +包含任务类型、状态、输入参数等配置信息 """ from enum import Enum +from typing import Dict, Any, List, Optional + +################################################# +# 任务类型相关配置 +################################################# -# 任务类型枚举 class TaskType(str, Enum): + """任务类型枚举""" NORMAL = "NORMAL" SCHEDULED = "SCHEDULED" -# 任务状态枚举 -class TaskStatus(str, Enum): - PENDING = "PENDING" - RUNNING = "RUNNING" - COMPLETED = "COMPLETED" - CANCELLED = "CANCELLED" - FAILED = "FAILED" - PAUSED = "PAUSED" - WAITING = "WAITING" - -# 任务类型配置 class TaskTypeConfig: """任务类型配置""" NORMAL = TaskType.NORMAL.value @@ -84,8 +78,20 @@ class TaskTypeConfig: }) return task_types +################################################# +# 任务状态相关配置 +################################################# + +class TaskStatus(str, Enum): + """任务状态枚举""" + PENDING = "PENDING" + RUNNING = "RUNNING" + COMPLETED = "COMPLETED" + CANCELLED = "CANCELLED" + FAILED = "FAILED" + PAUSED = "PAUSED" + WAITING = "WAITING" -# 任务状态配置 class TaskStatusConfig: """任务状态配置""" PENDING = TaskStatus.PENDING.value @@ -171,15 +177,148 @@ class TaskStatusConfig: }) return task_statuses +################################################# +# 任务输入参数相关配置 +################################################# +class TaskInputParamType(str, Enum): + """任务输入参数类型枚举""" + STRING = "string" + INTEGER = "integer" + FLOAT = "float" + BOOLEAN = "boolean" + DATETIME = "datetime" + JSON = "json" + ARRAY = "array" + OBJECT = "object" + +class SystemParamKey(str, Enum): + """系统参数键名枚举""" + TASK_ID = "task_id" + INSTANCE_ID = "instance_id" + TASK_NAME = "task_name" + CREATED_AT = "created_at" + VARIABLES = "variables" + PRIORITY = "priority" + +class TaskInputParamConfig: + """任务输入参数配置类""" + + # 系统默认参数配置 + SYSTEM_PARAMS = [ + { + "key": SystemParamKey.TASK_ID, + "name": "任务ID", + "type": TaskInputParamType.STRING, + "is_system": True, + "is_readonly": True, + "description": "任务的唯一标识符" + }, + { + "key": SystemParamKey.INSTANCE_ID, + "name": "任务实例ID", + "type": TaskInputParamType.STRING, + "is_system": True, + "is_readonly": True, + "description": "任务实例的唯一标识符" + }, + { + "key": SystemParamKey.TASK_NAME, + "name": "任务名称", + "type": TaskInputParamType.STRING, + "is_system": True, + "is_readonly": True, + "description": "任务的名称" + }, + { + "key": SystemParamKey.CREATED_AT, + "name": "创建时间", + "type": TaskInputParamType.DATETIME, + "is_system": True, + "is_readonly": True, + "description": "任务实例的创建时间" + }, + { + "key": SystemParamKey.VARIABLES, + "name": "任务变量", + "type": TaskInputParamType.JSON, + "is_system": True, + "is_readonly": False, + "description": "任务的变量集合" + }, + { + "key": SystemParamKey.PRIORITY, + "name": "任务优先级", + "type": TaskInputParamType.INTEGER, + "is_system": True, + "is_readonly": False, + "description": "任务的优先级,数值越大优先级越高" + } + ] + + @classmethod + def get_system_params(cls) -> List[Dict[str, Any]]: + """获取系统默认参数配置""" + return cls.SYSTEM_PARAMS + + @classmethod + def get_system_param_by_key(cls, key: str) -> Optional[Dict[str, Any]]: + """根据键名获取系统参数配置""" + for param in cls.SYSTEM_PARAMS: + if param["key"] == key: + return param + return None + + @classmethod + def build_system_params_with_values(cls, task_id: str, instance: Dict[str, Any]) -> List[Dict[str, Any]]: + """ + 构建带有值的系统参数列表 + + Args: + task_id: 任务ID + instance: 任务实例数据 + + Returns: + 带有值的系统参数列表 + """ + params = [] + + # 复制系统参数配置并添加值 + for param_config in cls.SYSTEM_PARAMS: + param = param_config.copy() + + # 根据参数键名设置值 + if param["key"] == SystemParamKey.TASK_ID: + param["value"] = task_id + elif param["key"] == SystemParamKey.INSTANCE_ID: + param["value"] = instance.get("instance_id") + elif param["key"] == SystemParamKey.TASK_NAME: + param["value"] = instance.get("name") + elif param["key"] == SystemParamKey.CREATED_AT: + param["value"] = instance.get("created_at") + elif param["key"] == SystemParamKey.VARIABLES: + param["value"] = instance.get("variables") + elif param["key"] == SystemParamKey.PRIORITY: + param["value"] = instance.get("priority", 1) + + params.append(param) + + return params + +################################################# # 默认值配置 +################################################# + class DefaultConfig: """默认值配置""" TASK_DESCRIPTION = "" # 默认任务描述(备注) TEMPLATE_DESCRIPTION = "用户自有模板" # 默认模板描述 +################################################# +# 向后兼容的常量和函数 +################################################# -# 为了向后兼容,保留原有的函数和变量 +# 任务类型和状态配置常量 TASK_TYPE_CONFIG = TaskTypeConfig.DETAILS TASK_STATUS_CONFIG = TaskStatusConfig.DETAILS diff --git a/data/__init__.py b/data/__init__.py index a54ffc9..94cf78f 100644 --- a/data/__init__.py +++ b/data/__init__.py @@ -6,6 +6,20 @@ 包含数据库模型和数据访问功能 """ -from data.session import initialize_database, get_session, session_scope +# 避免循环导入 +# from data.session import initialize_database, get_session, session_scope __all__ = ['initialize_database', 'get_session', 'session_scope'] + +# 延迟导入 +def initialize_database(): + from data.session import initialize_database as init_db + return init_db() + +def get_session(): + from data.session import get_session as get_db_session + return get_db_session() + +def session_scope(): + from data.session import session_scope as db_session_scope + return db_session_scope() diff --git a/data/__pycache__/__init__.cpython-312.pyc b/data/__pycache__/__init__.cpython-312.pyc index e90d0efe588e65bc392faff22584deaa9c3d8b7a..5947d71f775672f4a21d1904c0886d7d45ec54c5 100644 GIT binary patch literal 795 zcmbtSziSjh6n?Y2xjS!jNk|k4mxx*j+oVXBC@I7`joq;@?Cp%lCY#%1XG2Jc5b#G~ zB8Vbasc5AH4(ovU2iP2>kQ=a)J(5oEtgL)9lT&LQm~Y;D`@Of{do!OZl``PE_TzKo zp#|_&IirQXUc;++w1Ghl8ogO~h&FQ&o$WENu(^c9a{u}J{^L&n?d$wS zyPO|9$e$dVP=54GMPKgcPY+Dwr1SB#-N_%lI=T0u?AdZAYDQTU#L*6?EXaa-Ah>iJ zJfngO5hYDoIWwpTlNJw+K!ZxIje9tUfO1h}3>)Mw5U^ku4h;)#gJ-XvD#s(K%JD2Y zu70*~R@wxKEGjXS)dfM)<)4eUmi;xcMZ<(~zm+CyJj{F)+q}b@4VndF-B(q7N_8Gx zXl?6C8YZ!Xs37dY7w3A2z`aTKii3hhE(}T*nHwTp(j|TYkV(B8 delta 272 zcmbQuwvd_cG%qg~0}$vmUQTCcoX97kr2^zlXGmd)Vn|_3Vaj35Wr||TWsYLbWr<>8 zWJqU7VOqo(#ahX%$uiN;j`bx-^TZzGdOuCJTkP@iDf!9q@wa$V5=#>Gic^b=GxPI` zn1M=)SU?0TkN~Ml%*lz5U&-(p$YuDN0VJHQVnT~ki;82ij7*I!Vq8*-vrF;|VxDea z`eg5%XVcoB?A{jha!$jujZHw#vxSReo-SGWa&h02-MgQ5Ed)t$z+@)dGs>IZ;;_lh wPbtkwwJYKQn$8Hs#S%c`12ZEd<3|o=Mwahf42+(P7a2SraXB`!7lFb609H_0$N&HU diff --git a/data/__pycache__/session.cpython-312.pyc b/data/__pycache__/session.cpython-312.pyc index 16ce81b63b755c0001658a78d71ce60ac78a366d..972b547ee55e876238b95216014936c35e91e731 100644 GIT binary patch delta 2502 zcmcImYiv|S6uxsGyW6|3?yK8vyKT2EEsNz*l%^2WK3o)}Eul?-23^YD3t7_b*0~q8 zNo%Vy#z)F)&;%a=qecx12q79{G&LbHAu&`C&HbZ41c`|T7mPwo^qjfdRt)i}TtrTj@LN^{N6$Q{kJPTf_T(<>Z23)z4fs&j$ zpyu2IZX#&P)53s9a{zjEQFA^m9K{cS4EQt`Sp8ZFV5z181~fNdQ1bwWG%sLS^8rRi z{mIh(`^Ga##R_-zc5mqIN%i!nyE^()_xEmGo9eSdJ9RUi$>&D$!}_q9Hb+Nv!-}BM z7&S~iH$P@rfv%3O2U6+O<_&8%rqcauyHl2Gn;uMU>0@5>#JI;v^v+_LEer z&;S@%KrV~%t-XeB7}@-A+Q{TbbXoy}$y4oeSaf?qr9K2dOFLpp0@T%P+|gQz#^RSj z193u=pj{K#myT|q=|UsQI5FL9%31H1v%;A4CfP&AO<{D8#%JL{P>lQmcSFf_hY)O>TzB2U-gmEQa)bSJqGORXy-4Y}+j)Dp z_7PU;`J&uJ>bQ(aNAdbV#$_|a;y&9$2lvo9rtFGv51)wEktle$6mZtNmUcXEkL{j^ zE`SbQf`De)h|mOJNrOW}mW+{WiCK*z#r$^YLe?Ctu9{!cj3bM1iNX^G+}{ywj&S#@ zaSS01%{VTww}YE}K!CUQhgKf|ESZ+7 zI~U8-ZHdn1(&x*SF6DnG=;!F-cJ%F5g4)1hvouE#U5d742rUR0bF&1^#A*}sOIF~> zodA|PS6eVhf)z!UYH$L=qtJ|#0_&?7K$e0{M|PhNEatItwsK{8Oz`USEXBW;t8da) zSi+W7m60|G{VsNQjh`K=I^AlPft`yc$KZENGRunw;XUOjCJP7=MjaWE2pMr)d`w6> z*>F5wRu2P7g*#=*!-F}UJIRi@VuL*D-zAnqe|#iM^`4~Hj-UC^;iPar?t#zP^xTVD zJAwjWNrrAxtpBtGASv5{hXF*JS+u&^PMjq65vHIS2iV%`iKPeEovT?f6K?&;e__Mm zMS1&;LdX%VGcXn3>hN?%~!B~;XI>@DsSl4!kw#c`T+Eba=+J;^fm(1H~cRulqaM|S6uxs->00cfya4qi@q$-pGAFP8r) zz$e%)BlzCg?+34`A-}pL zBLAier13kU<#*9R#NPyfLaCF~6@qROx>~{hS`cdpLU&<=#0yIzq^7XMM>3>PTS~T& MYYhRijqvUM27!eq^8f$< literal 9791 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 diff --git a/data/models/__init__.py b/data/models/__init__.py index b8ad30a..aebdc30 100644 --- a/data/models/__init__.py +++ b/data/models/__init__.py @@ -21,6 +21,7 @@ from data.models.component_parameter import ( from data.models.task_variable import TaskVariableDefinition from data.models.task_backup import TaskBackup from data.models.task_edit_history import TaskEditHistory +from data.models.task_instance import TaskInstance, TaskInstanceStatus __all__ = [ 'BaseModel', @@ -38,5 +39,7 @@ __all__ = [ 'ParameterValueFormat', 'TaskVariableDefinition', 'TaskBackup', - 'TaskEditHistory' + 'TaskEditHistory', + 'TaskInstance', + 'TaskInstanceStatus' ] diff --git a/data/models/__pycache__/__init__.cpython-312.pyc b/data/models/__pycache__/__init__.cpython-312.pyc index e96416983a39c233774bba0afaa4943d16107693..eac5382f00d11b564fde66b9f13d12c3ab32fd02 100644 GIT binary patch delta 229 zcmdnMd6$#-G%qg~0}u#5xSoD-BCjOlhKcGkWl|VZcygq3WujzqWus&n8PXY2co#87 z$yM@c@^3s7#i+`3izg(pINLL?xFj(zIrWwhGB3C!v81$EQ)sd}Qvh#~FwpcO5g_5G zDZjajDU#7sG9|GjQ7<K^A(tvpmJx`H9VTb9Sn}UzaQnm}%+1uuUZe~Z1pvwwLXZFe delta 184 zcmcc1xq*}SG%qg~0}w1ZemT8uBCjOlf{E%gdD0nDcos26Nmue}@@>2m#mFcyIhrYe z*-uku^A4s+##r|F_{5x?`1q9!pFx_x<^u_5tC-N@)S}{;EF)86ix`*G;_Q&VCP%Rtaw!2#WCY@3 V+sRW|EO|b$2y!zuvKJ`;g#b70M`Qp1 diff --git a/data/models/__pycache__/subtask.cpython-312.pyc b/data/models/__pycache__/subtask.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..24bb1c4c8774435a48f039f83c548e9a24ccffce GIT binary patch literal 5463 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 CoaGb% delta 901 zcmY+CL2DC16vy`^HEps9VcWFTHtA;5Y8#M1P9{}rlv=5_QfxI6tK04FCSBcZ;_L=Q zML}{1^kNxrUi2b}C)rQnQAF@i5Ek(uegu2gc^jI>IsEp$H}C)cGsAvf+Fgo$iNzuu zTR(&QwamxZtq?4_TIf4G*Tgngnbb~oxGHGrcDRz%Q<~J~K43Rnl_{2I`f`!w(|viG zQ`Cwar$X^4C>SplJ1{jfSI1i z;|*JO^m@}&9G#%p3o54h9>^*^k;sGNYibFA=_5^)X>4^z*IK5o`69B8RvUD8^nBv2OH3rY$D2tyNG*;Ed-i$ zUo($U6Y-G28&FBZ@<1p3R&P@!c;Ws^DePV8qL>r^zi`)Z2xoL%>7JMpw=nk|WsHta zF^H){zlw7T!M}=>7(8Az72B@s&Q3!k*Ri~YxQV!pc*fwxWZCaib<>pPERZX#Y6C-w zB(ZDu5T|kDjjN<*fWDIUqTSo+R;x}dn$H+;k-pB9V3+>LYzo@}NOXz^9Dd0pQ~m?m C7}jC{ diff --git a/data/models/__pycache__/task_flow.cpython-312.pyc b/data/models/__pycache__/task_flow.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9f49a79277719d3802ab250c22c428ea4789d37 GIT binary patch literal 10596 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 MUj7Y*--I#$1u;NJJpcdz literal 0 HcmV?d00001 diff --git a/data/models/__pycache__/task_import_export.cpython-312.pyc b/data/models/__pycache__/task_import_export.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cfee6444f6c7918dc8032b6b81823f9b88ae94a3 GIT binary patch literal 5240 zcmeHLU2q%K72ehFYONpJvYa>yi35S4G#Ch^(D2ieI8Gd6B_wj%3eW5)+O;F0mCW50 zj$CC%bR6PPz|I7)0|k;!+cZT9h;rfmTBa~PZ%7gGks~#xhu&V z*-ZP;$KJ8e-h1x3=l*@?yZ7q%E*H;0iVaTpdg~eH?^q}&Ybmq%Dr80(kqI**E1D8) zn1!!7VUo>Zvup`lWNX+e+rl>49=6L|n3El0hs=k0xh7o0VjD}sDZ9chnztt0vM20e z856Uc5p9EvXqVVH^j)1M%(^CAOD#FDbV#0xwk~4|@aYiP@Yk+fDZY5FcWMY z`1RcQx#HX3L;2PyUwr9!ab#k-(T#U67e9FI`kRx*zYTM<$6j65_MH$NUN$K060pASCxE9xcb_Lhs?KiGX{)Sd+ zwis=w*(BOD7_e!aAS5HQBnTQW2y#kHCou06glE%{M5)Fu2x2MnNiWkHn^O?zH+(I{Mw-f2w=7%*uz!FhT)uE7MzX@c zO|nmvmRK~4mW$R3q_~oWL$nzz>;?-SEuQwBy7YgN2K>b3;3)LF=h_ za~ZS%cREgo=&pD(iynhT-3k_*SZlDTr=GnqzdD1qq0+9t;+Ye@1`8i;*9hZmxag~_ z%POi}4cbP7ZBs?N%Aj2%t{!BR#pH3rQ(X|011*NbZny7eX9 zZ3bO)#vf?bYC`}QBjD3}z%7qpUmn?|AjV2P$aND4a${f=UwNT8{B!C;^DalD(w25Y z7jvgyzV^ZQ^&kqEG%lG=BqE0s5b)8IEK5ms{$F6Fo4$VH+LiZ;BQIY+e>s%K=$+Fw zKRjQ&JpAd^q2f3Pp_VwZ^kxAdb&kt>$bVG=jMO%QZaWmy%E$pE9t{-Z!Hdu z-Z(c74v{h zvSN+pE&D+xU=0rV9<4^s-7)d8f%+}YsXmENIu=wQ&&M_mxHoNS?uh~OA>l#UyeaT_ zz^s{KqUOHUSaVeDfX6M0l;}}#Zp~y3NMutY^$|fBXsYhKrChZc43!5!B~jy2L8`W8Wf5N)-G>dSgkr3Ir^g zIhs(&{V+mu4~iBL3T_pSRfk7SucU%60ec!)y9^5kY<-B9jYOdw~VPk5%C+{A4V8(mrl=sdV@8&7*=4tPi zY5tx|M=l(hZ2j=z@gvhMp#{6y(Zw!D6H)+0QzJb{>8+2E*<%(KF=50V7-EWJFju9l z<-f;q0+;SNTS1q@pD72LOLuy$G zg)5#jRVXAFImjA4>14ExY{8OK9Uo}9K?`oC7vt$gnBo{7oHFm?lRtE^h=C>##am|tb!L2I(DkUz>K{*glK?*9(xpex) z`Y16f>1Y)C&|DHBDI&;_M_z59juEPGF%tTS^ju8p2ae_7;xDPlmma9>iS@SNOW-g( zf5=W8AiecB;#kbdRKI49h@xi0`&CT6;GsCCb0E9WxD5pkoa{zHsdf+M+EMI9(ShPg z6rCur56woTDA2fqeNo^q37wYtM5?#+AQ|w7s;-+YOO-po!D0$Tj#+dvj@2J?EuYji z{MrAN8UNNP|JK>Y_4wzz4gXecm~HT5(SOH`f6J7A%Z&fNDgS-bVAgae)~?w!yJ6c+ zzq_6vvMn?-4)3u0qH8l<#S+kv-pM```%yfF;sA*M01f?-`X$iND+P4bg#urw0nB8V4=1n*AAMI z{_%$VLr)cI4?xl5JJmCG;BJ_ZCEq*Anl@Icdqjz|Aw<0FE`}Bez4#V z3%^C!>OMEwtzGP*8L|sByHHQH+>#cv3k{(Cn-KlnyvEvCvWDEk!`14~OrX}67#B8B zuVcd^!OuzL5nOMI3%dOj4RjyrF4MiGfZ@>&A)&dKE)*>(A`|2dtrlswMgIY&h0-q` zTRP0>mfpI}8uzIFThQYKk&R$h9tE*rW?A+#&dgdCd4_fVl@Vqb;ZKb4F|+Ao=B}F- bE894tj%H3}ZZeR)>6TbfWWHeVOK13R)em6? literal 0 HcmV?d00001 diff --git a/data/models/__pycache__/task_input.cpython-312.pyc b/data/models/__pycache__/task_input.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8bb874d49784afc21cf796f574bf48f35564beed GIT binary patch literal 5297 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 akF!IryA1x`ZDQB3jh3OVe=_(>?fq{GyOkUO literal 0 HcmV?d00001 diff --git a/data/models/__pycache__/task_instance.cpython-312.pyc b/data/models/__pycache__/task_instance.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b6ac130bc8bd42847cda70ab074559b1eed86b81 GIT binary patch literal 4027 zcmb7HYitwQ6`rxj??+zFJ2BxQs5d|a4WukA-3{hp9)T{DN~7#fjb{jxjO{QFAZ&h^ zEi_pkOCla|V3#BnErw)Cq^?i|ETa9hm8wb!xQa7fq*l#1$uB^m?W(_e?u>0r6sq%l(PfM z-5XPn&Lv|5%8hf@>C3UH`=2XcMU_uuTJ!YXf$6Sa&J4t+uboa_8A)Ea`~2bgnY$y( zH&>Fw7n4H+(+{uCJnBw?ubtLjXPrfp@K|KymM|v;L$b*i5}783myP>Ho((n0!~y1n zD4V^0kvYHy8QD}H4s(n@BwM$Id4_EY?PA(wV(0$74KlGcBn3UVZ08xyFS6l~aD;7z zx|xQ~B6MzmilyE!Fnhu@!v(bUYZ6aY=1M^6!5ECh!AUwAC-tj(y+_k$?-M;-hwt8=4b7;o@ z-t2w1u~|4y1z<&ut$etd35bm%>kl1fLQRwilWm06`x{{hh7%f*fnrnBU)|cq=fX== zVFyLX0dX3eB$gzc#gXla-11XCzATM+W4}ybMP=?4>|DnJJEp@J17oE1@J9?81_=#L znvflSX4*KI+H=~ZqRc~omq$+K%|4*ju4Ck zM#{~yI#sKY&ZF~(3NqN74Azx}&COT~v#fa;Yf+XJQc7KA0pm)~hjBH(qwPVqq>Ho0 zEmGfA%#<{*&BkatU6O??`)|m%^e-JM%j{RV+P?yJu{`Uom0)$#6?Em0dr+s1N-pZe z4&(Hq(`K@Yt~!m8i#xFsIJsm$=2OABRv{0?#RtadA5dx{ahMpLP zG8zs;Y)%Am1&5;#Z^w_}e3h6%iK!gLu;vs?05nquQ(8KY+Ho4+1U50vK$wUkN-gc! zg(3{2^(@wo-^4%1ajZ?}AtbaerSnVW);Z<;RV{$f+0=1IIUAe4+?VX^O0R}uY1x)l zY2ZttFVMAK5P6x9BxpAvSt}a^sg>dRN@z!9&W2c#q9C3Lf#D9z#+KuLzDbZR6cyn7 zfYUdE)vQ)@tj#NY z5sbKiy%}Z9yb^*S1M~v7CVshCoCYt9XhtD3ucU*R)}4feNQZK26m-DOEAvKK0P%m1 zQZa7`sM7i`96;oR$}KbB3?(o8YHIYp@>P#=X0(Bwfw=KFWF1TMH2{`PDXNqSbUl$R z$NW5tC{~coK;dDY729Mx8)}tAs@2c?gM#ch#D#$v!jcF^L3RehaJM^=X*R+o3a(GG z73dy#gQonVY}L3&(^-LnOA7-{o*Z=!{JSs_ej^fy0{Hik*o?%Fk$4}84?xIqgcl+)F0hYsTGcp1A8qK1@{C3~#)%v5W3$ z>28@QTJfZ4#i%#2)%Pv+d+Lj&QMxbO8=i32jl1ifx;Kn^$KCJ8%RU$*KmK1JW$wP3 z-kO)?&RpvY%xSTzq~Tf07r?@J6!Cl^5+jJ8w<6(M7TNPROHP-m|G=p0@yWR5!$|#P zeo1dpzwUZjj2ZR*ffzgZNj$$jvTM@m>OL5)zeEm{#r8g3yy>wtc94xbn`(c0Luu^;*3uAPxRlZE9`Z>)A~!_Ii&u1LeAqoCV6R$BekwQ_9zj*0dA z#@Fu~BSUdVII?XruQ+Os{a|?I?Uj$6@w~l}o!OR>Z!3ORG4?Yio_APlFvSW-0k%D| z^Q959mqd-RPvW+X5$`L4Fs%EhJ=dT`fx1y1m*#t`aFp|Nfg?qp3 zdSCT9a;@xq-Eno852}vSd`mF!fyS>vpj`A-vReBpS$zmT$#_KQT3Dz)LoBL&d!PeT zHgD2Ck~Z@{fhtN_0cH9NJ&xlqb$Xomml?x" diff --git a/data/models/task_instance.py b/data/models/task_instance.py new file mode 100644 index 0000000..97c8b10 --- /dev/null +++ b/data/models/task_instance.py @@ -0,0 +1,60 @@ +""" +任务实例模型 +用于存储任务管理表的数据,记录每次编辑任务的实例 +""" +from sqlalchemy import Column, Integer, String, Text, DateTime, Boolean, ForeignKey, JSON, Enum +from sqlalchemy.orm import relationship +from datetime import datetime +import enum +import uuid +from data.models.base import BaseModel + +class TaskInstanceStatus(enum.Enum): + """任务实例状态枚举""" + EDITING = "editing" # 编辑中 + PUBLISHED = "published" # 已发布 + +class TaskInstance(BaseModel): + """任务实例模型""" + __tablename__ = "task_instances" + + id = Column(Integer, primary_key=True, autoincrement=True, comment="主键ID") + instance_id = Column(String(36), nullable=False, unique=True, index=True, comment="实例唯一ID,用于外部引用") + task_id = Column(String(50), ForeignKey("tasks.task_id"), nullable=False, comment="关联的任务ID") + name = Column(String(100), nullable=False, comment="任务名称(复制自任务表)") + variables = Column(JSON, nullable=True, comment="任务变量") + priority = Column(Integer, default=1, comment="任务优先级") + input_params = Column(JSON, nullable=True, comment="任务输入参数") + block_outputs = Column(JSON, nullable=True, comment="块输出参数") + context_params = Column(JSON, nullable=True, comment="上下文参数") + status = Column(Enum(TaskInstanceStatus), default=TaskInstanceStatus.EDITING, comment="任务实例状态") + created_at = Column(DateTime, default=datetime.now, comment="创建时间") + updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now, comment="更新时间") + is_deleted = Column(Boolean, default=False, comment="是否删除") + + # 关联关系 + task = relationship("Task", back_populates="instances") + + def __init__(self, **kwargs): + """初始化实例,自动生成instance_id""" + if 'instance_id' not in kwargs: + kwargs['instance_id'] = str(uuid.uuid4()) + super(TaskInstance, self).__init__(**kwargs) + + def to_dict(self): + """转换为字典""" + return { + "id": self.instance_id, # 使用instance_id作为对外ID + "instance_id": self.instance_id, + "task_id": self.task_id, + "name": self.name, + "variables": self.variables or {}, + "priority": self.priority, + "input_params": self.input_params or {}, + "block_outputs": self.block_outputs or {}, + "context_params": self.context_params or {}, + "status": self.status.value if self.status else None, + "created_at": int(self.created_at.timestamp() * 1000) if self.created_at else None, + "updated_at": int(self.updated_at.timestamp() * 1000) if self.updated_at else None, + "is_deleted": self.is_deleted + } \ No newline at end of file diff --git a/data/session.py b/data/session.py index 416c80d..9f6837d 100644 --- a/data/session.py +++ b/data/session.py @@ -8,6 +8,13 @@ from contextlib import contextmanager from config.database import DBConfig, CacheConfig +from config.component_config import ( + COMPONENT_CATEGORIES, + get_component_types, + get_system_components, + CACHE_EXPIRE_TIME, + CACHE_KEYS +) def get_session(): """ @@ -18,6 +25,19 @@ def get_session(): """ return DBConfig.get_session() +def get_db(): + """ + 获取数据库会话生成器 + + Yields: + Session: 数据库会话对象 + """ + db = get_session() + try: + yield db + finally: + db.close() + @contextmanager def session_scope(): """ @@ -60,18 +80,8 @@ def _initialize_component_categories(): if ComponentCategory.query.count() > 0: return - # 定义基础组件类别 - categories = [ - {"name": "基础组件", "code": "basic", "description": "基础功能组件", "sort_order": 1}, - {"name": "流程组件", "code": "flow", "description": "流程控制组件", "sort_order": 2}, - {"name": "机器人组件", "code": "robot", "description": "机器人控制组件", "sort_order": 3}, - {"name": "库位组件", "code": "storage", "description": "库位管理组件", "sort_order": 4}, - {"name": "设备组件", "code": "device", "description": "设备控制组件", "sort_order": 5}, - {"name": "HTTP组件", "code": "http", "description": "HTTP请求组件", "sort_order": 6}, - {"name": "脚本组件", "code": "script", "description": "脚本执行组件", "sort_order": 7}, - {"name": "子任务组件", "code": "subtask", "description": "子任务组件", "sort_order": 8}, - {"name": "任务组件", "code": "task", "description": "任务管理组件", "sort_order": 9} - ] + # 从配置文件获取组件类别 + categories = COMPONENT_CATEGORIES # 批量创建 with session_scope() as session: @@ -93,34 +103,8 @@ def _initialize_component_types(): # 获取组件类别 categories = {category.code: category.id for category in ComponentCategory.query.all()} - # 定义基础组件类型 - types = [ - # 基础组件 - {"name": "变量赋值", "code": "variable_assign", "category_id": categories["basic"], "description": "为变量赋值", "icon": "variable", "sort_order": 1}, - {"name": "条件判断", "code": "condition", "category_id": categories["basic"], "description": "条件判断", "icon": "condition", "sort_order": 2}, - {"name": "延时等待", "code": "delay", "category_id": categories["basic"], "description": "延时等待", "icon": "delay", "sort_order": 3}, - - # 流程组件 - {"name": "If条件", "code": "if", "category_id": categories["flow"], "description": "If条件判断", "icon": "if", "sort_order": 1}, - {"name": "If-Else条件", "code": "if_else", "category_id": categories["flow"], "description": "If-Else条件判断", "icon": "if_else", "sort_order": 2}, - {"name": "循环", "code": "loop", "category_id": categories["flow"], "description": "循环执行", "icon": "loop", "sort_order": 3}, - {"name": "并行执行", "code": "parallel", "category_id": categories["flow"], "description": "并行执行多个分支", "icon": "parallel", "sort_order": 4}, - - # 机器人组件 - {"name": "选择机器人", "code": "select_robot", "category_id": categories["robot"], "description": "选择执行机器人", "icon": "robot", "sort_order": 1}, - {"name": "机器人移动", "code": "robot_move", "category_id": categories["robot"], "description": "控制机器人移动", "icon": "move", "sort_order": 2}, - {"name": "获取机器人状态", "code": "robot_status", "category_id": categories["robot"], "description": "获取机器人状态", "icon": "status", "sort_order": 3}, - - # HTTP组件 - {"name": "HTTP请求", "code": "http_request", "category_id": categories["http"], "description": "发送HTTP请求", "icon": "http", "sort_order": 1}, - {"name": "API调用", "code": "api_call", "category_id": categories["http"], "description": "调用系统API", "icon": "api", "sort_order": 2}, - - # 脚本组件 - {"name": "JavaScript脚本", "code": "javascript", "category_id": categories["script"], "description": "执行JavaScript脚本", "icon": "script", "sort_order": 1}, - - # 子任务组件 - {"name": "执行子任务", "code": "execute_subtask", "category_id": categories["subtask"], "description": "执行子任务", "icon": "subtask", "sort_order": 1} - ] + # 从配置文件获取组件类型 + types = get_component_types(categories) # 批量创建 with session_scope() as session: @@ -142,74 +126,8 @@ def _initialize_system_components(): # 获取组件类型 types = {component_type.code: component_type.id for component_type in ComponentType.query.all()} - # 定义系统组件 - components = [ - { - "name": "变量赋值", - "code": "variable_assign", - "type_id": types["variable_assign"], - "description": "为变量赋值", - "is_system": True, - "config_schema": { - "type": "object", - "properties": { - "variable_name": {"type": "string", "title": "变量名"}, - "value_type": {"type": "string", "enum": ["string", "number", "boolean", "object"], "title": "值类型"}, - "value": {"type": "string", "title": "值"} - }, - "required": ["variable_name", "value_type", "value"] - }, - "input_schema": {}, - "output_schema": { - "type": "object", - "properties": { - "result": {"type": "boolean", "title": "执行结果"} - } - } - }, - { - "name": "条件判断", - "code": "condition", - "type_id": types["condition"], - "description": "条件判断", - "is_system": True, - "config_schema": { - "type": "object", - "properties": { - "condition": {"type": "string", "title": "条件表达式"} - }, - "required": ["condition"] - }, - "input_schema": {}, - "output_schema": { - "type": "object", - "properties": { - "result": {"type": "boolean", "title": "判断结果"} - } - } - }, - { - "name": "If条件", - "code": "if", - "type_id": types["if"], - "description": "If条件判断", - "is_system": True, - "config_schema": { - "type": "object", - "properties": { - "condition": {"type": "string", "title": "条件表达式"} - }, - "required": ["condition"] - }, - "input_schema": {}, - "output_schema": { - "type": "object", - "properties": { - "result": {"type": "boolean", "title": "判断结果"} - } - } - } - ] + # 从配置文件获取系统组件 + components = get_system_components(types) # 批量创建 with session_scope() as session: @@ -234,7 +152,7 @@ def _cache_component_categories(): } for category in categories} # 使用Redis缓存 - CacheConfig.set("component_categories", categories_dict, expire=86400) # 缓存24小时 + CacheConfig.set(CACHE_KEYS["COMPONENT_CATEGORIES"], categories_dict, expire=CACHE_EXPIRE_TIME) def _cache_component_types(): """缓存组件类型""" @@ -252,7 +170,7 @@ def _cache_component_types(): } for type in types} # 使用Redis缓存 - CacheConfig.set("component_types", types_dict, expire=86400) # 缓存24小时 + CacheConfig.set(CACHE_KEYS["COMPONENT_TYPES"], types_dict, expire=CACHE_EXPIRE_TIME) def _cache_system_components(): """缓存系统组件""" @@ -271,4 +189,4 @@ def _cache_system_components(): } for component in components} # 使用Redis缓存 - CacheConfig.set("system_components", components_dict, expire=86400) # 缓存24小时 + CacheConfig.set(CACHE_KEYS["SYSTEM_COMPONENTS"], components_dict, expire=CACHE_EXPIRE_TIME) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..0c159e4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,88 @@ +version: '3.8' + +services: + # 应用服务 + app: + build: . + container_name: tianfeng-task + restart: always + ports: + - "8000:8000" + environment: + - TIANFENG_ENV=default + - DEBUG=false + - DB_HOST=db + - DB_PORT=3306 + - DB_USER=root + - DB_PASSWORD=password + - DB_NAME=tianfeng_task + - REDIS_HOST=redis + - REDIS_PORT=6379 + - REDIS_DB=0 + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + volumes: + - ./logs:/app/logs + networks: + - tianfeng-network + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/api/v1/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + # MySQL数据库服务 + db: + image: mysql:8.0 + container_name: tianfeng-mysql + restart: always + environment: + - MYSQL_ROOT_PASSWORD=password + - MYSQL_DATABASE=tianfeng_task + - MYSQL_USER=tianfeng + - MYSQL_PASSWORD=tianfeng + ports: + - "3306:3306" + volumes: + - mysql-data:/var/lib/mysql + - ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql + command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci + networks: + - tianfeng-network + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + + # Redis缓存服务 + redis: + image: redis:6.2-alpine + container_name: tianfeng-redis + restart: always + ports: + - "6379:6379" + volumes: + - redis-data:/data + command: redis-server --appendonly yes + networks: + - tianfeng-network + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + +volumes: + mysql-data: + redis-data: + +networks: + tianfeng-network: + driver: bridge \ No newline at end of file diff --git a/logs/tianfeng_task.log b/logs/tianfeng_task.log index 0929bc4..b75bc16 100644 --- a/logs/tianfeng_task.log +++ b/logs/tianfeng_task.log @@ -12216,3 +12216,3390 @@ WHERE tasks.is_deleted = false) AS anon_1] 2025-03-17 14:05:33,120 - config.component_registry - INFO - Զע: components 2025-03-17 14:05:33,136 - root - INFO - Ӧ 2025-03-17 14:43:06,083 - root - INFO - Ӧùر +2025-03-17 15:14:03,698 - root - INFO - ʼʼݿ... +2025-03-17 15:14:03,764 - root - INFO - ݿɹ +2025-03-17 15:14:03,764 - root - INFO - ʼʼ... +2025-03-17 15:14:03,777 - root - INFO - Ѵڣʼ +2025-03-17 15:14:03,793 - root - INFO - ݳʼɹ +2025-03-17 15:14:03,793 - core.component - INFO - Զ: components +2025-03-17 15:14:03,793 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: if -> IfComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 15:14:03,793 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 15:14:03,793 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 15:14:03,984 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 15:14:03,984 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 15:14:03,984 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 15:14:03,984 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 15:14:04,000 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 15:14:04,001 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 15:14:04,004 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 15:14:04,004 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 15:14:04,004 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 15:14:04,004 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 15:14:04,004 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 15:14:04,004 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 15:14:04,004 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 15:14:04,004 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 15:14:04,004 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 15:14:04,004 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 15:14:04,004 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 15:14:04,004 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 15:14:04,004 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 15:14:04,004 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 15:14:04,015 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 15:14:04,015 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 15:14:04,015 - config.component_registry - INFO - Զע: components +2025-03-17 15:14:04,046 - root - INFO - ģ񣬵ģʽ: True +2025-03-17 15:14:04,647 - root - INFO - ʼʼݿ... +2025-03-17 15:14:04,695 - root - INFO - ݿɹ +2025-03-17 15:14:04,695 - root - INFO - ʼʼ... +2025-03-17 15:14:04,720 - root - INFO - Ѵڣʼ +2025-03-17 15:14:04,720 - root - INFO - ݳʼɹ +2025-03-17 15:14:04,720 - core.component - INFO - Զ: components +2025-03-17 15:14:04,720 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 15:14:04,720 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 15:14:04,720 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 15:14:04,720 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 15:14:04,720 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 15:14:04,720 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 15:14:04,720 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: if -> IfComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 15:14:04,727 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 15:14:04,727 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 15:14:04,927 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 15:14:04,927 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 15:14:04,927 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 15:14:04,927 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 15:14:04,927 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 15:14:04,927 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 15:14:04,927 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 15:14:04,927 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 15:14:04,927 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 15:14:04,927 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 15:14:04,927 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 15:14:04,927 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 15:14:04,927 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 15:14:04,927 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 15:14:04,927 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 15:14:04,927 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 15:14:04,932 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 15:14:04,932 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 15:14:04,932 - config.component_registry - INFO - Զע: components +2025-03-17 15:14:04,996 - root - INFO - ʼʼݿ... +2025-03-17 15:14:05,027 - root - INFO - ݿɹ +2025-03-17 15:14:05,027 - root - INFO - ʼʼ... +2025-03-17 15:14:05,027 - root - INFO - Ѵڣʼ +2025-03-17 15:14:05,027 - root - INFO - ݳʼɹ +2025-03-17 15:14:05,027 - core.component - INFO - Զ: components +2025-03-17 15:14:05,027 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 15:14:05,027 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 15:14:05,027 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 15:14:05,042 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 15:14:05,042 - config.component_registry - INFO - Զע: components +2025-03-17 15:14:05,058 - root - INFO - Ӧ +2025-03-17 15:31:40,039 - root - INFO - Ӧùر +2025-03-17 15:31:41,294 - root - INFO - ʼʼݿ... +2025-03-17 15:31:41,352 - root - INFO - ݿɹ +2025-03-17 15:31:41,352 - root - INFO - ʼʼ... +2025-03-17 15:31:41,368 - root - INFO - Ѵڣʼ +2025-03-17 15:31:41,368 - root - INFO - ݳʼɹ +2025-03-17 15:31:41,368 - core.component - INFO - Զ: components +2025-03-17 15:31:41,368 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 15:31:41,383 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 15:31:41,383 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 15:31:41,383 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 15:31:41,383 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 15:31:41,383 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 15:31:41,383 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 15:31:41,383 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 15:31:41,383 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 15:31:41,399 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 15:31:41,399 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 15:31:41,399 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 15:31:41,399 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 15:31:41,399 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 15:31:41,399 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 15:31:41,399 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 15:31:41,415 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 15:31:41,415 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 15:31:41,415 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 15:31:41,415 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 15:31:41,415 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 15:31:41,415 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 15:31:41,415 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 15:31:41,415 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 15:31:41,415 - core.component - INFO - ע: if -> IfComponent +2025-03-17 15:31:41,415 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 15:31:41,431 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 15:31:41,431 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 15:31:41,684 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 15:31:41,684 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 15:31:41,684 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 15:31:41,684 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 15:31:41,684 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 15:31:41,684 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 15:31:41,684 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 15:31:41,684 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 15:31:41,684 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 15:31:41,700 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 15:31:41,700 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 15:31:41,700 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 15:31:41,700 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 15:31:41,700 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 15:31:41,700 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 15:31:41,700 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 15:31:41,700 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 15:31:41,700 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 15:31:41,700 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 15:31:41,700 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 15:31:41,700 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 15:31:41,700 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 15:31:41,700 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 15:31:41,716 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 15:31:41,716 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 15:31:41,716 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 15:31:41,716 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 15:31:41,716 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 15:31:41,716 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 15:31:41,716 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 15:31:41,716 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 15:31:41,732 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 15:31:41,733 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 15:31:41,733 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 15:31:41,733 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 15:31:41,733 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 15:31:41,734 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 15:31:41,734 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 15:31:41,734 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 15:31:41,734 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 15:31:41,734 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 15:31:41,734 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 15:31:41,734 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 15:31:41,748 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 15:31:41,748 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 15:31:41,748 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 15:31:41,748 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 15:31:41,748 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 15:31:41,748 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 15:31:41,748 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 15:31:41,748 - config.component_registry - INFO - Զע: components +2025-03-17 15:31:41,838 - root - INFO - ʼʼݿ... +2025-03-17 15:31:41,875 - root - INFO - ݿɹ +2025-03-17 15:31:41,875 - root - INFO - ʼʼ... +2025-03-17 15:31:41,892 - root - INFO - Ѵڣʼ +2025-03-17 15:31:41,892 - root - INFO - ݳʼɹ +2025-03-17 15:31:41,892 - core.component - INFO - Զ: components +2025-03-17 15:31:41,892 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 15:31:41,892 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 15:31:41,892 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 15:31:41,892 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 15:31:41,892 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 15:31:41,892 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 15:31:41,892 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 15:31:41,907 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 15:31:41,923 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 15:31:41,939 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 15:31:41,939 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 15:31:41,939 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 15:31:41,939 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 15:31:41,939 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 15:31:41,939 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 15:31:41,939 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 15:31:41,939 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 15:31:41,939 - config.component_registry - INFO - Զע: components +2025-03-17 15:31:41,971 - root - INFO - Ӧ +2025-03-17 16:08:52,287 - root - INFO - Ӧùر +2025-03-17 16:09:27,327 - root - INFO - ʼʼݿ... +2025-03-17 16:09:27,361 - root - INFO - ݿɹ +2025-03-17 16:09:27,361 - root - INFO - ʼʼ... +2025-03-17 16:09:27,381 - root - ERROR - ݳʼʧ: When initializing mapper Mapper[Task(tasks)], expression 'TaskInstance' failed to locate a name ('TaskInstance'). If this is a class name, consider adding this relationship() to the class after both dependent classes have been defined. +2025-03-17 16:09:27,381 - root - ERROR - ݿʼʧ: When initializing mapper Mapper[Task(tasks)], expression 'TaskInstance' failed to locate a name ('TaskInstance'). If this is a class name, consider adding this relationship() to the class after both dependent classes have been defined. +2025-03-17 16:09:58,030 - root - INFO - ʼʼݿ... +2025-03-17 16:09:58,078 - root - INFO - ݿɹ +2025-03-17 16:09:58,079 - root - INFO - ʼʼ... +2025-03-17 16:09:58,081 - root - ERROR - ݳʼʧ: When initializing mapper Mapper[Task(tasks)], expression 'TaskInstance' failed to locate a name ('TaskInstance'). If this is a class name, consider adding this relationship() to the class after both dependent classes have been defined. +2025-03-17 16:09:58,081 - root - ERROR - ݿʼʧ: When initializing mapper Mapper[Task(tasks)], expression 'TaskInstance' failed to locate a name ('TaskInstance'). If this is a class name, consider adding this relationship() to the class after both dependent classes have been defined. +2025-03-17 16:10:24,134 - root - INFO - ʼʼݿ... +2025-03-17 16:10:24,197 - root - INFO - ݿɹ +2025-03-17 16:10:24,197 - root - INFO - ʼʼ... +2025-03-17 16:10:24,197 - root - ERROR - ݳʼʧ: When initializing mapper Mapper[Task(tasks)], expression 'TaskInstance' failed to locate a name ('TaskInstance'). If this is a class name, consider adding this relationship() to the class after both dependent classes have been defined. +2025-03-17 16:10:24,197 - root - ERROR - ݿʼʧ: When initializing mapper Mapper[Task(tasks)], expression 'TaskInstance' failed to locate a name ('TaskInstance'). If this is a class name, consider adding this relationship() to the class after both dependent classes have been defined. +2025-03-17 16:16:28,449 - root - INFO - ʼʼݿ... +2025-03-17 16:16:28,643 - root - INFO - ݿɹ +2025-03-17 16:16:28,643 - root - INFO - ʼʼ... +2025-03-17 16:16:28,666 - root - INFO - Ѵڣʼ +2025-03-17 16:16:28,666 - root - INFO - ݳʼɹ +2025-03-17 16:16:28,666 - core.component - INFO - Զ: components +2025-03-17 16:16:28,666 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:16:28,671 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 16:16:28,671 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 16:16:28,674 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 16:16:28,674 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 16:16:28,675 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 16:16:28,675 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 16:16:28,675 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 16:16:28,675 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 16:16:28,675 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 16:16:28,675 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:16:28,682 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:16:28,682 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:16:28,682 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:16:28,682 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:16:28,682 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:16:28,682 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:16:28,682 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:16:28,682 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:16:28,688 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:16:28,688 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 16:16:28,690 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 16:16:28,690 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:16:28,690 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: if -> IfComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 16:16:28,692 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 16:16:28,692 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:16:28,699 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:16:28,699 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:16:28,699 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:16:28,699 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:16:28,699 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:16:28,699 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:16:28,702 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:16:28,702 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:16:28,702 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:16:28,702 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:16:28,882 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 16:16:28,882 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 16:16:28,898 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:16:28,901 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:16:28,901 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:16:28,901 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:16:28,901 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:16:28,901 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:16:28,914 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:16:28,914 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:16:28,914 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:16:28,914 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:16:28,914 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:16:28,916 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:16:28,916 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 16:16:28,916 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:16:28,916 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 16:16:28,916 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 16:16:28,916 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 16:16:28,916 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 16:16:28,916 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 16:16:28,920 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 16:16:28,920 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:16:28,920 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:16:28,920 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:16:28,920 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:16:28,920 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:16:28,920 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:16:28,920 - config.component_registry - INFO - Զע: components +2025-03-17 16:16:28,949 - root - INFO - ģ񣬵ģʽ: True +2025-03-17 16:16:29,533 - root - INFO - ʼʼݿ... +2025-03-17 16:16:29,582 - root - INFO - ݿɹ +2025-03-17 16:16:29,582 - root - INFO - ʼʼ... +2025-03-17 16:16:29,598 - root - INFO - Ѵڣʼ +2025-03-17 16:16:29,598 - root - INFO - ݳʼɹ +2025-03-17 16:16:29,598 - core.component - INFO - Զ: components +2025-03-17 16:16:29,598 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:16:29,614 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 16:16:29,614 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 16:16:29,614 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 16:16:29,615 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 16:16:29,615 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 16:16:29,615 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 16:16:29,615 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 16:16:29,615 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 16:16:29,615 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 16:16:29,615 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:16:29,615 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:16:29,617 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 16:16:29,617 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:16:29,617 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:16:29,617 - core.component - INFO - ע: if -> IfComponent +2025-03-17 16:16:29,617 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 16:16:29,617 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 16:16:29,617 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 16:16:29,617 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 16:16:29,617 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 16:16:29,621 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 16:16:29,621 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 16:16:29,621 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 16:16:29,621 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 16:16:29,621 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:16:29,621 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:16:29,805 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 16:16:29,818 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 16:16:29,818 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:16:29,818 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:16:29,818 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 16:16:29,818 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 16:16:29,820 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:16:29,820 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:16:29,820 - config.component_registry - INFO - Զע: components +2025-03-17 16:16:29,867 - root - INFO - ʼʼݿ... +2025-03-17 16:16:29,905 - root - INFO - ݿɹ +2025-03-17 16:16:29,905 - root - INFO - ʼʼ... +2025-03-17 16:16:29,916 - root - INFO - Ѵڣʼ +2025-03-17 16:16:29,916 - root - INFO - ݳʼɹ +2025-03-17 16:16:29,916 - core.component - INFO - Զ: components +2025-03-17 16:16:29,916 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:16:29,916 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:16:29,916 - config.component_registry - INFO - Զע: components +2025-03-17 16:16:29,937 - root - INFO - Ӧ +2025-03-17 16:24:13,758 - root - INFO - Ӧùر +2025-03-17 16:46:10,329 - root - INFO - ʼʼݿ... +2025-03-17 16:46:10,372 - root - INFO - ݿɹ +2025-03-17 16:46:10,372 - root - INFO - ʼʼ... +2025-03-17 16:46:10,393 - root - INFO - Ѵڣʼ +2025-03-17 16:46:10,393 - root - INFO - ݳʼɹ +2025-03-17 16:46:10,393 - core.component - INFO - Զ: components +2025-03-17 16:46:10,393 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:46:10,393 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 16:46:10,393 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 16:46:10,393 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 16:46:10,393 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 16:46:10,393 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 16:46:10,393 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 16:46:10,399 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 16:46:10,399 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 16:46:10,399 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:46:10,399 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 16:46:10,399 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:46:10,399 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:46:10,399 - core.component - INFO - ע: if -> IfComponent +2025-03-17 16:46:10,399 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 16:46:10,402 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:46:10,402 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 16:46:10,586 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:46:10,586 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:46:10,600 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 16:46:10,600 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:46:10,600 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 16:46:10,600 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 16:46:10,600 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 16:46:10,600 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 16:46:10,600 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 16:46:10,600 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 16:46:10,600 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:46:10,600 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:46:10,600 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:46:10,600 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:46:10,600 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:46:10,600 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:46:10,600 - config.component_registry - INFO - Զע: components +2025-03-17 16:46:10,648 - root - INFO - ģ񣬵ģʽ: True +2025-03-17 16:46:11,234 - root - INFO - ʼʼݿ... +2025-03-17 16:46:11,281 - root - INFO - ݿɹ +2025-03-17 16:46:11,281 - root - INFO - ʼʼ... +2025-03-17 16:46:11,313 - root - INFO - Ѵڣʼ +2025-03-17 16:46:11,313 - root - INFO - ݳʼɹ +2025-03-17 16:46:11,313 - core.component - INFO - Զ: components +2025-03-17 16:46:11,313 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: if -> IfComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 16:46:11,313 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:46:11,313 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:46:11,504 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 16:46:11,504 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 16:46:11,504 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:46:11,504 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:46:11,504 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 16:46:11,504 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 16:46:11,504 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 16:46:11,504 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 16:46:11,504 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 16:46:11,504 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 16:46:11,520 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:46:11,520 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:46:11,520 - config.component_registry - INFO - Զע: components +2025-03-17 16:46:11,595 - root - INFO - ʼʼݿ... +2025-03-17 16:46:11,617 - root - INFO - ݿɹ +2025-03-17 16:46:11,617 - root - INFO - ʼʼ... +2025-03-17 16:46:11,617 - root - INFO - Ѵڣʼ +2025-03-17 16:46:11,617 - root - INFO - ݳʼɹ +2025-03-17 16:46:11,617 - core.component - INFO - Զ: components +2025-03-17 16:46:11,617 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:46:11,617 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:46:11,632 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:46:11,632 - config.component_registry - INFO - Զע: components +2025-03-17 16:46:11,632 - root - INFO - Ӧ +2025-03-17 16:52:21,075 - root - INFO - Ӧùر +2025-03-17 16:52:23,067 - root - INFO - ʼʼݿ... +2025-03-17 16:52:23,210 - root - INFO - ݿɹ +2025-03-17 16:52:23,210 - root - INFO - ʼʼ... +2025-03-17 16:52:23,242 - root - INFO - Ѵڣʼ +2025-03-17 16:52:23,242 - root - INFO - ݳʼɹ +2025-03-17 16:52:23,242 - core.component - INFO - Զ: components +2025-03-17 16:52:23,242 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:52:23,242 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: if -> IfComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 16:52:23,242 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 16:52:23,258 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 16:52:23,258 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 16:52:23,258 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 16:52:23,258 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:52:23,258 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:52:23,429 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 16:52:23,429 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 16:52:23,429 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:52:23,429 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 16:52:23,433 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:52:23,433 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:52:23,433 - config.component_registry - INFO - Զע: components +2025-03-17 16:52:23,464 - root - INFO - ģ񣬵ģʽ: True +2025-03-17 16:52:24,052 - root - INFO - ʼʼݿ... +2025-03-17 16:52:24,131 - root - INFO - ݿɹ +2025-03-17 16:52:24,147 - root - INFO - ʼʼ... +2025-03-17 16:52:24,163 - root - INFO - Ѵڣʼ +2025-03-17 16:52:24,178 - root - INFO - ݳʼɹ +2025-03-17 16:52:24,178 - core.component - INFO - Զ: components +2025-03-17 16:52:24,178 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:52:24,178 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 16:52:24,178 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 16:52:24,178 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 16:52:24,178 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 16:52:24,178 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 16:52:24,194 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 16:52:24,194 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 16:52:24,194 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 16:52:24,194 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 16:52:24,194 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:52:24,210 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:52:24,210 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:52:24,210 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:52:24,210 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:52:24,210 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:52:24,226 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:52:24,226 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:52:24,226 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:52:24,226 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:52:24,226 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 16:52:24,226 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 16:52:24,242 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:52:24,242 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:52:24,242 - core.component - INFO - ע: if -> IfComponent +2025-03-17 16:52:24,247 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 16:52:24,247 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 16:52:24,258 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 16:52:24,258 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 16:52:24,258 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 16:52:24,258 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 16:52:24,261 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 16:52:24,266 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 16:52:24,274 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 16:52:24,274 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 16:52:24,274 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:52:24,274 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:52:24,280 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:52:24,290 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:52:24,292 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:52:24,292 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:52:24,292 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:52:24,293 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:52:24,293 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:52:24,293 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:52:24,294 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:52:24,476 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 16:52:24,476 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 16:52:24,476 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:52:24,476 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:52:24,476 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 16:52:24,476 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 16:52:24,476 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 16:52:24,476 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 16:52:24,476 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 16:52:24,491 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 16:52:24,491 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:52:24,491 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:52:24,491 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:52:24,491 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:52:24,491 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:52:24,491 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:52:24,491 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 16:52:24,491 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 16:52:24,491 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:52:24,491 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:52:24,491 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 16:52:24,491 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 16:52:24,491 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 16:52:24,507 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 16:52:24,507 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 16:52:24,507 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 16:52:24,507 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 16:52:24,507 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 16:52:24,507 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 16:52:24,523 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:52:24,523 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:52:24,538 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:52:24,538 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:52:24,541 - config.component_registry - INFO - Զע: components +2025-03-17 16:52:24,593 - root - INFO - ʼʼݿ... +2025-03-17 16:52:24,666 - root - INFO - ݿɹ +2025-03-17 16:52:24,666 - root - INFO - ʼʼ... +2025-03-17 16:52:24,666 - root - INFO - Ѵڣʼ +2025-03-17 16:52:24,666 - root - INFO - ݳʼɹ +2025-03-17 16:52:24,666 - core.component - INFO - Զ: components +2025-03-17 16:52:24,666 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 16:52:24,666 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 16:52:24,666 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 16:52:24,682 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 16:52:24,682 - config.component_registry - INFO - Զע: components +2025-03-17 16:52:24,714 - root - INFO - Ӧ +2025-03-17 17:02:22,757 - root - INFO - Ӧùر +2025-03-17 17:02:24,058 - root - INFO - ʼʼݿ... +2025-03-17 17:02:24,109 - root - INFO - ݿɹ +2025-03-17 17:02:24,113 - root - INFO - ʼʼ... +2025-03-17 17:02:24,131 - root - INFO - Ѵڣʼ +2025-03-17 17:02:24,131 - root - INFO - ݳʼɹ +2025-03-17 17:02:24,131 - core.component - INFO - Զ: components +2025-03-17 17:02:24,134 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:02:24,134 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:02:24,134 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:02:24,134 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:02:24,134 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:02:24,134 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:02:24,134 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:02:24,136 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:02:24,136 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:02:24,136 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:02:24,136 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:02:24,136 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:02:24,136 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:02:24,136 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:02:24,137 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:02:24,137 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:02:24,137 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:02:24,137 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:02:24,137 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:02:24,138 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:02:24,138 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:02:24,138 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:02:24,139 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:02:24,141 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:02:24,141 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:02:24,141 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:02:24,141 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:02:24,143 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:02:24,143 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:02:24,143 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:02:24,143 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:02:24,143 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:02:24,143 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:02:24,143 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:02:24,143 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:02:24,144 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:02:24,322 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:02:24,322 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:02:24,326 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:02:24,326 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:02:24,328 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:02:24,329 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:02:24,329 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:02:24,330 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:02:24,330 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:02:24,330 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:02:24,332 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:02:24,332 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:02:24,333 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:02:24,333 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:02:24,335 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:02:24,335 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:02:24,335 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:02:24,335 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:02:24,340 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:02:24,340 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:02:24,340 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:02:24,340 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:02:24,340 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:02:24,344 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:02:24,344 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:02:24,349 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:02:24,351 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:02:24,352 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:02:24,352 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:02:24,352 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:02:24,352 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:02:24,356 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:02:24,356 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:02:24,361 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:02:24,361 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:02:24,361 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:02:24,365 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:02:24,365 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:02:24,366 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:02:24,367 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:02:24,368 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:02:24,370 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:02:24,370 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:02:24,370 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:02:24,370 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:02:24,374 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:02:24,374 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:02:24,379 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:02:24,379 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:02:24,382 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:02:24,382 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:02:24,383 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:02:24,384 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:02:24,386 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:02:24,387 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:02:24,387 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:02:24,387 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:02:24,392 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:02:24,392 - config.component_registry - INFO - Զע: components +2025-03-17 17:02:24,445 - root - INFO - ʼʼݿ... +2025-03-17 17:02:24,518 - root - INFO - ݿɹ +2025-03-17 17:02:24,521 - root - INFO - ʼʼ... +2025-03-17 17:02:24,524 - root - INFO - Ѵڣʼ +2025-03-17 17:02:24,524 - root - INFO - ݳʼɹ +2025-03-17 17:02:24,524 - core.component - INFO - Զ: components +2025-03-17 17:02:24,524 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:02:24,529 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:02:24,529 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:02:24,534 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:02:24,536 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:02:24,538 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:02:24,538 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:02:24,539 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:02:24,540 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:02:24,541 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:02:24,541 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:02:24,542 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:02:24,542 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:02:24,545 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:02:24,547 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:02:24,549 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:02:24,551 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:02:24,553 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:02:24,553 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:02:24,554 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:02:24,554 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:02:24,555 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:02:24,555 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:02:24,555 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:02:24,555 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:02:24,556 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:02:24,558 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:02:24,558 - config.component_registry - INFO - Զע: components +2025-03-17 17:02:24,572 - root - INFO - Ӧ +2025-03-17 17:04:53,087 - root - INFO - Ӧùر +2025-03-17 17:04:54,853 - root - INFO - ʼʼݿ... +2025-03-17 17:04:54,926 - root - INFO - ݿɹ +2025-03-17 17:04:54,926 - root - INFO - ʼʼ... +2025-03-17 17:04:54,943 - root - INFO - Ѵڣʼ +2025-03-17 17:04:54,943 - root - INFO - ݳʼɹ +2025-03-17 17:04:54,943 - core.component - INFO - Զ: components +2025-03-17 17:04:54,943 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:04:54,947 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:04:54,947 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:04:54,951 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:04:54,951 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:04:54,955 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:04:54,955 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:04:54,959 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:04:54,959 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:04:54,959 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:04:54,964 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:04:54,964 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:04:54,964 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:04:54,968 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:04:54,972 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:04:54,972 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:04:54,972 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:04:54,972 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:04:54,972 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:04:54,976 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:04:54,976 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:04:54,980 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:04:54,980 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:04:54,980 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:04:54,984 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:04:54,984 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:04:54,989 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:04:54,989 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:04:54,993 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:04:54,993 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:04:54,997 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:04:54,997 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:04:55,001 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:04:55,001 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:04:55,001 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:04:55,001 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:04:55,005 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:04:55,174 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:04:55,174 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:04:55,174 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:04:55,178 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:04:55,178 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:04:55,183 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:04:55,183 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:04:55,183 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:04:55,183 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:04:55,187 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:04:55,187 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:04:55,187 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:04:55,187 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:04:55,187 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:04:55,187 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:04:55,187 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:04:55,191 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:04:55,191 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:04:55,191 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:04:55,195 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:04:55,195 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:04:55,195 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:04:55,195 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:04:55,195 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:04:55,195 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:04:55,200 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:04:55,200 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:04:55,200 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:04:55,200 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:04:55,200 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:04:55,200 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:04:55,200 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:04:55,200 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:04:55,200 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:04:55,200 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:04:55,200 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:04:55,200 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:04:55,200 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:04:55,200 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:04:55,204 - config.component_registry - INFO - Զע: components +2025-03-17 17:04:55,265 - root - INFO - ʼʼݿ... +2025-03-17 17:04:55,336 - root - INFO - ݿɹ +2025-03-17 17:04:55,336 - root - INFO - ʼʼ... +2025-03-17 17:04:55,336 - root - INFO - Ѵڣʼ +2025-03-17 17:04:55,338 - root - INFO - ݳʼɹ +2025-03-17 17:04:55,338 - core.component - INFO - Զ: components +2025-03-17 17:04:55,338 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:04:55,340 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:04:55,341 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:04:55,341 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:04:55,341 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:04:55,341 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:04:55,343 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:04:55,343 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:04:55,344 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:04:55,348 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:04:55,353 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:04:55,353 - config.component_registry - INFO - Զע: components +2025-03-17 17:04:55,370 - root - INFO - Ӧ +2025-03-17 17:09:54,367 - root - INFO - Ӧùر +2025-03-17 17:09:55,591 - root - INFO - ʼʼݿ... +2025-03-17 17:09:55,655 - root - INFO - ݿɹ +2025-03-17 17:09:55,655 - root - INFO - ʼʼ... +2025-03-17 17:09:55,675 - root - INFO - Ѵڣʼ +2025-03-17 17:09:55,675 - root - INFO - ݳʼɹ +2025-03-17 17:09:55,676 - core.component - INFO - Զ: components +2025-03-17 17:09:55,677 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:09:55,677 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:09:55,677 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:09:55,678 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:09:55,679 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:09:55,679 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:09:55,679 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:09:55,679 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:09:55,679 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:09:55,679 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:09:55,679 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:09:55,682 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:09:55,682 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:09:55,682 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:09:55,682 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:09:55,682 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:09:55,682 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:09:55,682 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:09:55,682 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:09:55,687 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:09:55,687 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:09:55,687 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:09:55,687 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:09:55,687 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:09:55,687 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:09:55,871 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:09:55,871 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:09:55,875 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:09:55,875 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:09:55,875 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:09:55,876 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:09:55,876 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:09:55,876 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:09:55,876 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:09:55,876 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:09:55,877 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:09:55,877 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:09:55,877 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:09:55,877 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:09:55,878 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:09:55,879 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:09:55,879 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:09:55,879 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:09:55,879 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:09:55,879 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:09:55,879 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:09:55,879 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:09:55,879 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:09:55,879 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:09:55,879 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:09:55,882 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:09:55,882 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:09:55,882 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:09:55,882 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:09:55,882 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:09:55,882 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:09:55,882 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:09:55,882 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:09:55,882 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:09:55,882 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:09:55,882 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:09:55,882 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:09:55,882 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:09:55,886 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:09:55,886 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:09:55,886 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:09:55,886 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:09:55,886 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:09:55,886 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:09:55,886 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:09:55,886 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:09:55,886 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:09:55,886 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:09:55,886 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:09:55,886 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:09:55,886 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:09:55,886 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:09:55,891 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:09:55,891 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:09:55,891 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:09:55,891 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:09:55,891 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:09:55,891 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:09:55,894 - config.component_registry - INFO - Զע: components +2025-03-17 17:09:55,950 - root - INFO - ʼʼݿ... +2025-03-17 17:09:56,031 - root - INFO - ݿɹ +2025-03-17 17:09:56,031 - root - INFO - ʼʼ... +2025-03-17 17:09:56,031 - root - INFO - Ѵڣʼ +2025-03-17 17:09:56,031 - root - INFO - ݳʼɹ +2025-03-17 17:09:56,031 - core.component - INFO - Զ: components +2025-03-17 17:09:56,031 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:09:56,031 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:09:56,031 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:09:56,031 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:09:56,031 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:09:56,035 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:09:56,039 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:09:56,043 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:09:56,043 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:09:56,043 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:09:56,043 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:09:56,044 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:09:56,044 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:09:56,044 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:09:56,045 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:09:56,045 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:09:56,045 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:09:56,045 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:09:56,046 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:09:56,046 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:09:56,046 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:09:56,047 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:09:56,047 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:09:56,047 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:09:56,047 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:09:56,047 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:09:56,047 - config.component_registry - INFO - Զע: components +2025-03-17 17:09:56,061 - root - INFO - Ӧ +2025-03-17 17:13:58,751 - root - INFO - Ӧùر +2025-03-17 17:14:00,291 - root - INFO - ʼʼݿ... +2025-03-17 17:14:00,332 - root - INFO - ݿɹ +2025-03-17 17:14:00,333 - root - INFO - ʼʼ... +2025-03-17 17:14:00,351 - root - INFO - Ѵڣʼ +2025-03-17 17:14:00,351 - root - INFO - ݳʼɹ +2025-03-17 17:14:00,352 - core.component - INFO - Զ: components +2025-03-17 17:14:00,353 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:14:00,353 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:14:00,353 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:14:00,353 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:14:00,353 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:14:00,353 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:14:00,354 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:14:00,354 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:14:00,354 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:14:00,354 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:14:00,354 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:14:00,354 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:14:00,355 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:14:00,355 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:14:00,355 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:14:00,356 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:14:00,357 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:14:00,357 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:14:00,357 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:14:00,357 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:14:00,358 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:14:00,358 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:14:00,358 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:14:00,358 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:14:00,359 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:14:00,359 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:14:00,359 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:14:00,359 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:14:00,360 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:14:00,360 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:14:00,360 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:14:00,360 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:14:00,360 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:14:00,360 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:14:00,360 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:14:00,360 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:14:00,360 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:14:00,361 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:14:00,538 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:14:00,538 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:14:00,539 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:14:00,540 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:14:00,544 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:14:00,545 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:14:00,546 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:14:00,547 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:14:00,547 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:14:00,548 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:14:00,549 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:14:00,550 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:14:00,550 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:14:00,550 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:14:00,551 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:14:00,551 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:14:00,552 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:14:00,552 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:14:00,552 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:14:00,552 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:14:00,554 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:14:00,554 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:14:00,554 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:14:00,554 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:14:00,554 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:14:00,555 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:14:00,555 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:14:00,555 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:14:00,556 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:14:00,556 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:14:00,556 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:14:00,556 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:14:00,557 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:14:00,557 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:14:00,557 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:14:00,557 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:14:00,557 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:14:00,557 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:14:00,557 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:14:00,557 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:14:00,558 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:14:00,558 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:14:00,558 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:14:00,558 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:14:00,558 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:14:00,558 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:14:00,559 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:14:00,559 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:14:00,560 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:14:00,560 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:14:00,560 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:14:00,560 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:14:00,560 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:14:00,560 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:14:00,560 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:14:00,560 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:14:00,560 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:14:00,560 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:14:00,561 - config.component_registry - INFO - Զע: components +2025-03-17 17:14:00,609 - root - INFO - ʼʼݿ... +2025-03-17 17:14:00,678 - root - INFO - ݿɹ +2025-03-17 17:14:00,679 - root - INFO - ʼʼ... +2025-03-17 17:14:00,682 - root - INFO - Ѵڣʼ +2025-03-17 17:14:00,684 - root - INFO - ݳʼɹ +2025-03-17 17:14:00,685 - core.component - INFO - Զ: components +2025-03-17 17:14:00,688 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:14:00,688 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:14:00,689 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:14:00,689 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:14:00,690 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:14:00,693 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:14:00,694 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:14:00,694 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:14:00,695 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:14:00,696 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:14:00,697 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:14:00,697 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:14:00,698 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:14:00,698 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:14:00,699 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:14:00,699 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:14:00,699 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:14:00,700 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:14:00,701 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:14:00,701 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:14:00,701 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:14:00,701 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:14:00,701 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:14:00,702 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:14:00,702 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:14:00,702 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:14:00,702 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:14:00,702 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:14:00,703 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:14:00,703 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:14:00,703 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:14:00,703 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:14:00,705 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:14:00,705 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:14:00,707 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:14:00,707 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:14:00,708 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:14:00,708 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:14:00,708 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:14:00,708 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:14:00,709 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:14:00,709 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:14:00,709 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:14:00,710 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:14:00,710 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:14:00,710 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:14:00,711 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:14:00,712 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:14:00,714 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:14:00,714 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:14:00,715 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:14:00,715 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:14:00,715 - config.component_registry - INFO - Զע: components +2025-03-17 17:14:00,729 - root - INFO - Ӧ +2025-03-17 17:39:05,740 - root - INFO - Ӧùر +2025-03-17 17:39:07,162 - root - INFO - ʼʼݿ... +2025-03-17 17:39:07,217 - root - INFO - ݿɹ +2025-03-17 17:39:07,218 - root - INFO - ʼʼ... +2025-03-17 17:39:07,234 - root - INFO - Ѵڣʼ +2025-03-17 17:39:07,234 - root - INFO - ݳʼɹ +2025-03-17 17:39:07,244 - core.component - INFO - Զ: components +2025-03-17 17:39:07,244 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:39:07,247 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:39:07,248 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:39:07,249 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:39:07,251 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:39:07,252 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:39:07,255 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:39:07,257 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:39:07,259 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:39:07,259 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:39:07,260 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:39:07,260 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:39:07,261 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:39:07,263 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:39:07,264 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:39:07,265 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:39:07,266 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:39:07,268 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:39:07,268 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:39:07,268 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:39:07,268 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:39:07,268 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:39:07,269 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:39:07,269 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:39:07,270 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:39:07,270 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:39:07,270 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:39:07,271 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:39:07,271 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:39:07,271 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:39:07,271 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:39:07,271 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:39:07,272 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:39:07,272 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:39:07,272 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:39:07,272 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:39:07,272 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:39:07,272 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:39:07,273 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:39:07,273 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:39:07,273 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:39:07,273 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:39:07,273 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:39:07,273 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:39:07,273 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:39:07,273 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:39:07,477 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:39:07,477 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:39:07,477 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:39:07,477 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:39:07,477 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:39:07,477 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:39:07,477 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:39:07,488 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:39:07,488 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:39:07,498 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:39:07,498 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:39:07,498 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:39:07,498 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:39:07,498 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:39:07,498 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:39:07,498 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:39:07,498 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:39:07,498 - config.component_registry - INFO - Զע: components +2025-03-17 17:39:07,549 - root - INFO - ʼʼݿ... +2025-03-17 17:39:07,622 - root - INFO - ݿɹ +2025-03-17 17:39:07,625 - root - INFO - ʼʼ... +2025-03-17 17:39:07,625 - root - INFO - Ѵڣʼ +2025-03-17 17:39:07,625 - root - INFO - ݳʼɹ +2025-03-17 17:39:07,625 - core.component - INFO - Զ: components +2025-03-17 17:39:07,625 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:39:07,625 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:39:07,638 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:39:07,654 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:39:07,670 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:39:07,686 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:39:07,686 - config.component_registry - INFO - Զע: components +2025-03-17 17:39:07,701 - root - INFO - Ӧ +2025-03-17 17:44:06,554 - root - INFO - Ӧùر +2025-03-17 17:44:07,979 - root - INFO - ʼʼݿ... +2025-03-17 17:44:08,050 - root - INFO - ݿɹ +2025-03-17 17:44:08,051 - root - INFO - ʼʼ... +2025-03-17 17:44:08,068 - root - INFO - Ѵڣʼ +2025-03-17 17:44:08,068 - root - INFO - ݳʼɹ +2025-03-17 17:44:08,069 - core.component - INFO - Զ: components +2025-03-17 17:44:08,070 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:44:08,070 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:44:08,070 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:44:08,070 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:44:08,071 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:44:08,071 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:44:08,071 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:44:08,072 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:44:08,072 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:44:08,072 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:44:08,072 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:44:08,073 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:44:08,074 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:44:08,074 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:44:08,074 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:44:08,074 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:44:08,075 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:44:08,075 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:44:08,075 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:44:08,075 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:44:08,075 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:44:08,075 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:44:08,075 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:44:08,075 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:44:08,076 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:44:08,076 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:44:08,078 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:44:08,078 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:44:08,079 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:44:08,080 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:44:08,080 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:44:08,082 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:44:08,082 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:44:08,083 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:44:08,085 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:44:08,086 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:44:08,086 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:44:08,087 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:44:08,263 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:44:08,263 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:44:08,265 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:44:08,267 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:44:08,268 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:44:08,268 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:44:08,268 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:44:08,269 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:44:08,271 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:44:08,271 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:44:08,272 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:44:08,272 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:44:08,272 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:44:08,272 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:44:08,272 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:44:08,272 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:44:08,273 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:44:08,273 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:44:08,274 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:44:08,274 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:44:08,274 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:44:08,276 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:44:08,277 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:44:08,277 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:44:08,277 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:44:08,277 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:44:08,278 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:44:08,278 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:44:08,278 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:44:08,278 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:44:08,278 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:44:08,279 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:44:08,279 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:44:08,279 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:44:08,279 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:44:08,279 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:44:08,281 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:44:08,281 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:44:08,281 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:44:08,281 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:44:08,281 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:44:08,281 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:44:08,281 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:44:08,281 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:44:08,281 - config.component_config - INFO - Զע: components +2025-03-17 17:44:08,358 - root - INFO - ʼʼݿ... +2025-03-17 17:44:08,401 - root - INFO - ݿɹ +2025-03-17 17:44:08,401 - root - INFO - ʼʼ... +2025-03-17 17:44:08,402 - root - INFO - Ѵڣʼ +2025-03-17 17:44:08,402 - root - INFO - ݳʼɹ +2025-03-17 17:44:08,402 - core.component - INFO - Զ: components +2025-03-17 17:44:08,403 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:44:08,403 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:44:08,403 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:44:08,403 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:44:08,404 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:44:08,404 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:44:08,404 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:44:08,404 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:44:08,404 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:44:08,404 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:44:08,404 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:44:08,405 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:44:08,405 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:44:08,405 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:44:08,405 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:44:08,405 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:44:08,405 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:44:08,406 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:44:08,406 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:44:08,406 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:44:08,406 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:44:08,406 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:44:08,406 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:44:08,407 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:44:08,407 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:44:08,407 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:44:08,407 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:44:08,407 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:44:08,407 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:44:08,408 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:44:08,408 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:44:08,408 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:44:08,408 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:44:08,408 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:44:08,408 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:44:08,409 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:44:08,409 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:44:08,409 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:44:08,409 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:44:08,409 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:44:08,409 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:44:08,409 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:44:08,411 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:44:08,411 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:44:08,411 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:44:08,411 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:44:08,411 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:44:08,412 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:44:08,412 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:44:08,412 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:44:08,412 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:44:08,412 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:44:08,413 - config.component_config - INFO - Զע: components +2025-03-17 17:44:08,426 - root - INFO - Ӧ +2025-03-17 17:45:18,167 - root - INFO - Ӧùر +2025-03-17 17:45:19,385 - root - INFO - ʼʼݿ... +2025-03-17 17:45:19,433 - root - INFO - ݿɹ +2025-03-17 17:45:19,433 - root - INFO - ʼʼ... +2025-03-17 17:45:19,448 - root - INFO - Ѵڣʼ +2025-03-17 17:45:19,448 - root - INFO - ݳʼɹ +2025-03-17 17:45:19,448 - core.component - INFO - Զ: components +2025-03-17 17:45:19,448 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:45:19,448 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:45:19,448 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:45:19,448 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:45:19,465 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:45:19,465 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:45:19,465 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:45:19,465 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:45:19,465 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:45:19,465 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:45:19,465 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:45:19,465 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:45:19,465 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:45:19,481 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:45:19,481 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:45:19,497 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:45:19,497 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:45:19,497 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:45:19,497 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:45:19,497 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:45:19,500 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:45:19,500 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:45:19,500 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:45:19,500 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:45:19,500 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:45:19,672 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:45:19,672 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:45:19,672 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:45:19,672 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:45:19,672 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:45:19,672 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:45:19,672 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:45:19,672 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:45:19,672 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:45:19,672 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:45:19,672 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:45:19,672 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:45:19,688 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:45:19,688 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:45:19,688 - config.component_config - INFO - Զע: components +2025-03-17 17:45:19,736 - root - INFO - ʼʼݿ... +2025-03-17 17:45:19,800 - root - INFO - ݿɹ +2025-03-17 17:45:19,800 - root - INFO - ʼʼ... +2025-03-17 17:45:19,800 - root - INFO - Ѵڣʼ +2025-03-17 17:45:19,800 - root - INFO - ݳʼɹ +2025-03-17 17:45:19,800 - core.component - INFO - Զ: components +2025-03-17 17:45:19,800 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:45:19,800 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:45:19,800 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:45:19,800 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:45:19,800 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:45:19,800 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:45:19,800 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:45:19,800 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:45:19,816 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:45:19,816 - config.component_config - INFO - Զע: components +2025-03-17 17:45:19,831 - root - INFO - Ӧ +2025-03-17 17:50:18,938 - root - INFO - Ӧùر +2025-03-17 17:50:20,401 - root - INFO - ʼʼݿ... +2025-03-17 17:50:20,503 - root - INFO - ݿɹ +2025-03-17 17:50:20,504 - root - INFO - ʼʼ... +2025-03-17 17:50:20,522 - root - INFO - Ѵڣʼ +2025-03-17 17:50:20,529 - root - INFO - ݳʼɹ +2025-03-17 17:50:20,529 - core.component - INFO - Զ: components +2025-03-17 17:50:20,533 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:50:20,534 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:50:20,546 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:50:20,546 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:50:20,546 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:50:20,548 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:50:20,548 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:50:20,548 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:50:20,548 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:50:20,548 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:50:20,549 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:50:20,549 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:50:20,549 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:50:20,551 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:50:20,562 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:50:20,562 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:50:20,563 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:50:20,563 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:50:20,564 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:50:20,565 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:50:20,566 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:50:20,567 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:50:20,567 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:50:20,567 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:50:20,568 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:50:20,568 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:50:20,568 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:50:20,568 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:50:20,568 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:50:20,568 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:50:20,570 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:50:20,570 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:50:20,570 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:50:20,570 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:50:20,570 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:50:20,570 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:50:20,570 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:50:20,570 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:50:20,570 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:50:20,570 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:50:20,570 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:50:20,570 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:50:20,570 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:50:20,571 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:50:20,571 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:50:20,571 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:50:20,760 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:50:20,761 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:50:20,762 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:50:20,764 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:50:20,765 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:50:20,765 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:50:20,769 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:50:20,769 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:50:20,773 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:50:20,773 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:50:20,773 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:50:20,773 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:50:20,773 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:50:20,773 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:50:20,773 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:50:20,773 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:50:20,773 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:50:20,773 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:50:20,773 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:50:20,773 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:50:20,777 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:50:20,777 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:50:20,777 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:50:20,777 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:50:20,777 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:50:20,777 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:50:20,777 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:50:20,781 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:50:20,781 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:50:20,781 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:50:20,781 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:50:20,781 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:50:20,782 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:50:20,782 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:50:20,782 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:50:20,783 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:50:20,783 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:50:20,783 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:50:20,783 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:50:20,783 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:50:20,783 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:50:20,783 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:50:20,785 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:50:20,785 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:50:20,785 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:50:20,785 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:50:20,785 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:50:20,785 - config.component_config - INFO - Զע: components +2025-03-17 17:50:20,843 - root - INFO - ʼʼݿ... +2025-03-17 17:50:20,930 - root - INFO - ݿɹ +2025-03-17 17:50:20,932 - root - INFO - ʼʼ... +2025-03-17 17:50:20,934 - root - INFO - Ѵڣʼ +2025-03-17 17:50:20,935 - root - INFO - ݳʼɹ +2025-03-17 17:50:20,935 - core.component - INFO - Զ: components +2025-03-17 17:50:20,935 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:50:20,935 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:50:20,936 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:50:20,936 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:50:20,936 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:50:20,936 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:50:20,937 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:50:20,937 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:50:20,937 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:50:20,937 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:50:20,937 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:50:20,937 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:50:20,937 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:50:20,937 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:50:20,938 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:50:20,939 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:50:20,940 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:50:20,941 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:50:20,941 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:50:20,941 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:50:20,941 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:50:20,941 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:50:20,941 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:50:20,941 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:50:20,941 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:50:20,941 - config.component_config - INFO - Զע: components +2025-03-17 17:50:20,955 - root - INFO - Ӧ +2025-03-17 17:51:23,540 - root - INFO - Ӧùر +2025-03-17 17:51:24,780 - root - INFO - ʼʼݿ... +2025-03-17 17:51:24,820 - root - INFO - ݿɹ +2025-03-17 17:51:24,830 - root - INFO - ʼʼ... +2025-03-17 17:51:24,844 - root - INFO - Ѵڣʼ +2025-03-17 17:51:24,844 - root - INFO - ݳʼɹ +2025-03-17 17:51:24,851 - core.component - INFO - Զ: components +2025-03-17 17:51:24,851 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:51:24,851 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:51:24,851 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:51:24,851 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:51:24,851 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:51:24,851 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:51:24,851 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:51:24,861 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:51:24,861 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:51:24,861 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:51:24,861 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:51:24,861 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:51:24,861 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:51:24,861 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:51:24,861 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:51:24,861 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:51:24,872 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:51:24,872 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:51:24,872 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:51:24,872 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:51:24,872 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:51:24,872 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:51:24,872 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:51:24,882 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:51:24,882 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:51:24,892 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:51:24,892 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:51:24,892 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:51:24,892 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:51:24,892 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:51:24,892 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:51:24,892 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:51:24,892 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:51:24,892 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:51:24,902 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:51:24,902 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:51:24,902 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:51:25,076 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:51:25,076 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:51:25,076 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:51:25,086 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:51:25,086 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:51:25,096 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:51:25,096 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:51:25,096 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:51:25,096 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:51:25,096 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:51:25,096 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:51:25,096 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:51:25,096 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:51:25,096 - config.component_config - INFO - Զע: components +2025-03-17 17:51:25,156 - root - INFO - ʼʼݿ... +2025-03-17 17:51:25,210 - root - INFO - ݿɹ +2025-03-17 17:51:25,210 - root - INFO - ʼʼ... +2025-03-17 17:51:25,210 - root - INFO - Ѵڣʼ +2025-03-17 17:51:25,210 - root - INFO - ݳʼɹ +2025-03-17 17:51:25,210 - core.component - INFO - Զ: components +2025-03-17 17:51:25,210 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:51:25,210 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:51:25,220 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:51:25,220 - config.component_config - INFO - Զע: components +2025-03-17 17:51:25,241 - root - INFO - Ӧ +2025-03-17 17:55:34,891 - root - INFO - Ӧùر +2025-03-17 17:55:36,179 - root - INFO - ʼʼݿ... +2025-03-17 17:55:36,243 - root - INFO - ݿɹ +2025-03-17 17:55:36,243 - root - INFO - ʼʼ... +2025-03-17 17:55:36,261 - root - INFO - Ѵڣʼ +2025-03-17 17:55:36,261 - root - INFO - ݳʼɹ +2025-03-17 17:55:36,261 - core.component - INFO - Զ: components +2025-03-17 17:55:36,261 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:55:36,261 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 17:55:36,261 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 17:55:36,261 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 17:55:36,275 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 17:55:36,275 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 17:55:36,275 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 17:55:36,275 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 17:55:36,275 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 17:55:36,275 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 17:55:36,275 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:55:36,275 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:55:36,275 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:55:36,275 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:55:36,275 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:55:36,275 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:55:36,275 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:55:36,290 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:55:36,290 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:55:36,290 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 17:55:36,290 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:55:36,290 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: if -> IfComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 17:55:36,290 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 17:55:36,306 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 17:55:36,306 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 17:55:36,306 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 17:55:36,306 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:55:36,306 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:55:36,322 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:55:36,491 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 17:55:36,491 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 17:55:36,491 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:55:36,491 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:55:36,491 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 17:55:36,491 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 17:55:36,491 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 17:55:36,491 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 17:55:36,491 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 17:55:36,491 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 17:55:36,503 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:55:36,503 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:55:36,503 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:55:36,504 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:55:36,504 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:55:36,504 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:55:36,504 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 17:55:36,505 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 17:55:36,505 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:55:36,505 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:55:36,505 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 17:55:36,506 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 17:55:36,506 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 17:55:36,506 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 17:55:36,506 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 17:55:36,507 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 17:55:36,507 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 17:55:36,507 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 17:55:36,507 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 17:55:36,508 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 17:55:36,508 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 17:55:36,508 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 17:55:36,508 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:55:36,509 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:55:36,509 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:55:36,509 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:55:36,509 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:55:36,509 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:55:36,510 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:55:36,510 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:55:36,510 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:55:36,510 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:55:36,511 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:55:36,511 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:55:36,511 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 17:55:36,511 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:55:36,512 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 17:55:36,512 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 17:55:36,513 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 17:55:36,513 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 17:55:36,513 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 17:55:36,514 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 17:55:36,514 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:55:36,514 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:55:36,514 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:55:36,514 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:55:36,514 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:55:36,515 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:55:36,515 - config.component_config - INFO - Զע: components +2025-03-17 17:55:36,555 - root - INFO - ʼʼݿ... +2025-03-17 17:55:36,603 - root - INFO - ݿɹ +2025-03-17 17:55:36,603 - root - INFO - ʼʼ... +2025-03-17 17:55:36,619 - root - INFO - Ѵڣʼ +2025-03-17 17:55:36,619 - root - INFO - ݳʼɹ +2025-03-17 17:55:36,619 - core.component - INFO - Զ: components +2025-03-17 17:55:36,619 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 17:55:36,619 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 17:55:36,619 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 17:55:36,619 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 17:55:36,619 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 17:55:36,619 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 17:55:36,619 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 17:55:36,619 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 17:55:36,635 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 17:55:36,651 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 17:55:36,666 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 17:55:36,683 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 17:55:36,683 - config.component_config - INFO - Զע: components +2025-03-17 17:55:36,699 - root - INFO - Ӧ +2025-03-17 18:00:35,650 - root - INFO - Ӧùر +2025-03-17 18:04:24,228 - root - INFO - ʼʼݿ... +2025-03-17 18:04:24,280 - root - INFO - ݿɹ +2025-03-17 18:04:24,280 - root - INFO - ʼʼ... +2025-03-17 18:04:24,307 - root - INFO - Ѵڣʼ +2025-03-17 18:04:24,307 - root - INFO - ݳʼɹ +2025-03-17 18:04:24,311 - core.component - INFO - Զ: components +2025-03-17 18:04:24,313 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 18:04:24,313 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 18:04:24,313 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 18:04:24,313 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 18:04:24,313 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 18:04:24,323 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 18:04:24,323 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 18:04:24,323 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 18:04:24,323 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 18:04:24,323 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 18:04:24,323 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 18:04:24,328 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 18:04:24,329 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 18:04:24,329 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 18:04:24,330 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 18:04:24,330 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 18:04:24,331 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 18:04:24,331 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 18:04:24,331 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 18:04:24,331 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 18:04:24,331 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 18:04:24,331 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 18:04:24,331 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 18:04:24,331 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 18:04:24,331 - core.component - INFO - ע: if -> IfComponent +2025-03-17 18:04:24,341 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 18:04:24,341 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 18:04:24,341 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 18:04:24,344 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 18:04:24,344 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 18:04:24,344 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 18:04:24,344 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 18:04:24,344 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 18:04:24,354 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 18:04:24,354 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 18:04:24,354 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 18:04:24,354 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 18:04:24,354 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 18:04:24,362 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 18:04:24,363 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 18:04:24,363 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 18:04:24,363 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 18:04:24,363 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 18:04:24,363 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 18:04:24,363 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 18:04:24,363 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 18:04:24,547 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 18:04:24,557 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 18:04:24,563 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 18:04:24,563 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 18:04:24,564 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 18:04:24,564 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 18:04:24,564 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 18:04:24,564 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 18:04:24,564 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 18:04:24,564 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 18:04:24,564 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 18:04:24,564 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 18:04:24,564 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 18:04:24,564 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 18:04:24,564 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 18:04:24,564 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 18:04:24,564 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 18:04:24,564 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 18:04:24,571 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 18:04:24,571 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 18:04:24,575 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 18:04:24,579 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 18:04:24,579 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 18:04:24,580 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 18:04:24,580 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 18:04:24,580 - config.component_config - INFO - Զע: components +2025-03-17 18:04:24,630 - root - INFO - ʼʼݿ... +2025-03-17 18:04:24,679 - root - INFO - ݿɹ +2025-03-17 18:04:24,679 - root - INFO - ʼʼ... +2025-03-17 18:04:24,690 - root - INFO - Ѵڣʼ +2025-03-17 18:04:24,690 - root - INFO - ݳʼɹ +2025-03-17 18:04:24,694 - core.component - INFO - Զ: components +2025-03-17 18:04:24,695 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 18:04:24,696 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 18:04:24,696 - config.component_config - INFO - Զע: components +2025-03-17 18:04:24,713 - root - INFO - Ӧ +2025-03-17 18:07:14,743 - root - INFO - Ӧùر +2025-03-17 18:07:16,004 - root - INFO - ʼʼݿ... +2025-03-17 18:07:16,049 - root - INFO - ݿɹ +2025-03-17 18:07:16,049 - root - INFO - ʼʼ... +2025-03-17 18:07:16,070 - root - INFO - Ѵڣʼ +2025-03-17 18:07:16,070 - root - INFO - ݳʼɹ +2025-03-17 18:07:16,070 - core.component - INFO - Զ: components +2025-03-17 18:07:16,070 - core.component - INFO - ע: check_task_instance_id_exists -> CheckTaskInstanceIdExistsComponent +2025-03-17 18:07:16,070 - core.component - INFO - ע: create_unique_id -> CreateUniqueIdComponent +2025-03-17 18:07:16,070 - core.component - INFO - ע: current_timestamp -> CurrentTimestampComponent +2025-03-17 18:07:16,070 - core.component - INFO - ע: current_time -> CurrentTimeComponent +2025-03-17 18:07:16,070 - core.component - INFO - ע: execute_sql -> ExecuteSqlComponent +2025-03-17 18:07:16,070 - core.component - INFO - ע: query_sql -> QuerySqlComponent +2025-03-17 18:07:16,070 - core.component - INFO - ע: string_md5_encrypt -> StringMd5EncryptComponent +2025-03-17 18:07:16,070 - core.component - INFO - ע: string_to_json_array -> StringToJsonArrayComponent +2025-03-17 18:07:16,070 - core.component - INFO - ע: string_to_json_object -> StringToJsonObjectComponent +2025-03-17 18:07:16,080 - core.component - INFO - ע: print -> PrintComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 18:07:16,080 - core.component - INFO - ע: wait_modbus_value -> WaitModbusValueComponent +2025-03-17 18:07:16,080 - core.component - INFO - ע: write_modbus_value -> WriteModbusValueComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 18:07:16,080 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 18:07:16,091 - core.component - INFO - ע: if -> IfComponent +2025-03-17 18:07:16,091 - core.component - INFO - ע: if_else -> IfElseComponent +2025-03-17 18:07:16,091 - core.component - INFO - ע: if_else_if -> IfElseIfComponent +2025-03-17 18:07:16,091 - core.component - INFO - ע: for_each -> ForEachComponent +2025-03-17 18:07:16,091 - core.component - INFO - ע: while -> WhileComponent +2025-03-17 18:07:16,091 - core.component - INFO - ע: break -> BreakComponent +2025-03-17 18:07:16,101 - core.component - INFO - ע: return -> ReturnComponent +2025-03-17 18:07:16,101 - core.component - INFO - ע: delay -> DelayComponent +2025-03-17 18:07:16,101 - core.component - INFO - ע: parallel_execute -> ParallelExecuteComponent +2025-03-17 18:07:16,101 - core.component - INFO - ע: serial_execute -> SerialExecuteComponent +2025-03-17 18:07:16,101 - core.component - INFO - ע: throw_exception -> ThrowExceptionComponent +2025-03-17 18:07:16,101 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 18:07:16,101 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 18:07:16,101 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 18:07:16,111 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 18:07:16,111 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 18:07:16,111 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 18:07:16,111 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 18:07:16,111 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 18:07:16,111 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 18:07:16,122 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 18:07:16,122 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 18:07:16,298 - core.component - INFO - ע: http_get_request -> HttpGetRequestComponent +2025-03-17 18:07:16,298 - core.component - INFO - ע: http_post_request -> HttpPostRequestComponent +2025-03-17 18:07:16,298 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 18:07:16,308 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 18:07:16,308 - core.component - INFO - ע: select_robot -> SelectRobotComponent +2025-03-17 18:07:16,308 - core.component - INFO - ע: get_robot_position -> GetRobotPositionComponent +2025-03-17 18:07:16,308 - core.component - INFO - ע: robot_action -> RobotActionComponent +2025-03-17 18:07:16,308 - core.component - INFO - ע: change_robot_destination -> ChangeRobotDestinationComponent +2025-03-17 18:07:16,308 - core.component - INFO - ע: get_robot_battery -> GetRobotBatteryComponent +2025-03-17 18:07:16,308 - core.component - INFO - ע: get_robot_pgv_code -> GetRobotPGVCodeComponent +2025-03-17 18:07:16,308 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 18:07:16,308 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 18:07:16,308 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 18:07:16,308 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 18:07:16,308 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 18:07:16,313 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 18:07:16,313 - core.component - INFO - ע: run_script -> RunScriptComponent +2025-03-17 18:07:16,313 - core.component - INFO - ע: set_task_variables -> SetTaskVariablesComponent +2025-03-17 18:07:16,313 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 18:07:16,313 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 18:07:16,313 - core.component - INFO - ע: batch_set_site -> BatchSetSiteComponent +2025-03-17 18:07:16,313 - core.component - INFO - ע: get_dense_site -> GetDenseSiteComponent +2025-03-17 18:07:16,313 - core.component - INFO - ע: query_site -> QuerySiteComponent +2025-03-17 18:07:16,313 - core.component - INFO - ע: lock_site -> LockSiteComponent +2025-03-17 18:07:16,313 - core.component - INFO - ע: unlock_site -> UnlockSiteComponent +2025-03-17 18:07:16,313 - core.component - INFO - ע: get_locked_sites_by_task -> GetLockedSitesByTaskComponent +2025-03-17 18:07:16,318 - core.component - INFO - ע: get_site_extension_property -> GetSiteExtensionPropertyComponent +2025-03-17 18:07:16,318 - core.component - INFO - ע: set_site_extension_property -> SetSiteExtensionPropertyComponent +2025-03-17 18:07:16,318 - core.component - INFO - ע: set_site_goods -> SetSiteGoodsComponent +2025-03-17 18:07:16,318 - core.component - INFO - ע: set_site_empty -> SetSiteEmptyComponent +2025-03-17 18:07:16,318 - core.component - INFO - ע: set_site_occupied -> SetSiteOccupiedComponent +2025-03-17 18:07:16,318 - core.component - INFO - ע: set_site_tag -> SetSiteTagComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 18:07:16,318 - core.component - INFO - ע: subtask -> SubtaskComponent +2025-03-17 18:07:16,318 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 18:07:16,318 - core.component - INFO - ע: cache_data -> CacheDataComponent +2025-03-17 18:07:16,328 - core.component - INFO - ע: clear_cache_data -> ClearCacheDataComponent +2025-03-17 18:07:16,328 - core.component - INFO - ע: get_cache_data -> GetCacheDataComponent +2025-03-17 18:07:16,328 - core.component - INFO - ע: set_task_status -> SetTaskStatusComponent +2025-03-17 18:07:16,328 - core.component - INFO - ע: jump_to_block -> JumpToBlockComponent +2025-03-17 18:07:16,328 - core.component - INFO - ע: get_task_input_param -> GetTaskInputParamComponent +2025-03-17 18:07:16,328 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 18:07:16,328 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 18:07:16,328 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 18:07:16,328 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 18:07:16,328 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 18:07:16,328 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 18:07:16,328 - config.component_config - INFO - Զע: components +2025-03-17 18:07:16,399 - root - INFO - ʼʼݿ... +2025-03-17 18:07:16,450 - root - INFO - ݿɹ +2025-03-17 18:07:16,450 - root - INFO - ʼʼ... +2025-03-17 18:07:16,450 - root - INFO - Ѵڣʼ +2025-03-17 18:07:16,450 - root - INFO - ݳʼɹ +2025-03-17 18:07:16,450 - core.component - INFO - Զ: components +2025-03-17 18:07:16,450 - core.component - INFO - Զע: checktaskinstanceidexists -> CheckTaskInstanceIdExistsComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: createuniqueid -> CreateUniqueIdComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: currenttime -> CurrentTimeComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: currenttimestamp -> CurrentTimestampComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: executesql -> ExecuteSqlComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: print -> PrintComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: querysql -> QuerySqlComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: stringmd5encrypt -> StringMd5EncryptComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: stringtojsonarray -> StringToJsonArrayComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: stringtojsonobject -> StringToJsonObjectComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: waitmodbusvalue -> WaitModbusValueComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: writemodbusvalue -> WriteModbusValueComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: break -> BreakComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: delay -> DelayComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: foreach -> ForEachComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: if -> IfComponent +2025-03-17 18:07:16,450 - core.component - INFO - Զע: ifelse -> IfElseComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: ifelseif -> IfElseIfComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: parallelexecute -> ParallelExecuteComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: return -> ReturnComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: serialexecute -> SerialExecuteComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: throwexception -> ThrowExceptionComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: while -> WhileComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: httpgetrequest -> HttpGetRequestComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: httppostrequest -> HttpPostRequestComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: changerobotdestination -> ChangeRobotDestinationComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: getrobotbattery -> GetRobotBatteryComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: getrobotpgvcode -> GetRobotPGVCodeComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: getrobotposition -> GetRobotPositionComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: robotaction -> RobotActionComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: selectrobot -> SelectRobotComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: runscript -> RunScriptComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: settaskvariables -> SetTaskVariablesComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: batchsetsite -> BatchSetSiteComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: getdensesite -> GetDenseSiteComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: getlockedsitesbytask -> GetLockedSitesByTaskComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: getsiteextensionproperty -> GetSiteExtensionPropertyComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: locksite -> LockSiteComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: querysite -> QuerySiteComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: setsiteempty -> SetSiteEmptyComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: setsiteextensionproperty -> SetSiteExtensionPropertyComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: setsitegoods -> SetSiteGoodsComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: setsiteoccupied -> SetSiteOccupiedComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: setsitetag -> SetSiteTagComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: unlocksite -> UnlockSiteComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: subtask -> SubtaskComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: cachedata -> CacheDataComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: clearcachedata -> ClearCacheDataComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: getcachedata -> GetCacheDataComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: gettaskinputparam -> GetTaskInputParamComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: jumptoblock -> JumpToBlockComponent +2025-03-17 18:07:16,461 - core.component - INFO - Զע: settaskstatus -> SetTaskStatusComponent +2025-03-17 18:07:16,461 - config.component_config - INFO - Զע: components +2025-03-17 18:07:16,472 - root - INFO - Ӧ +2025-03-17 18:30:42,641 - root - INFO - Ӧùر diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh new file mode 100644 index 0000000..779ff49 --- /dev/null +++ b/scripts/docker-entrypoint.sh @@ -0,0 +1,26 @@ +#!/bin/bash +set -e + +# 等待数据库服务就绪 +echo "等待数据库服务就绪..." +until nc -z ${DB_HOST} ${DB_PORT}; do + echo "数据库服务未就绪 - 等待..." + sleep 2 +done +echo "数据库服务已就绪!" + +# 等待Redis服务就绪 +echo "等待Redis服务就绪..." +until nc -z ${REDIS_HOST} ${REDIS_PORT}; do + echo "Redis服务未就绪 - 等待..." + sleep 2 +done +echo "Redis服务已就绪!" + +# 初始化数据库(如果需要) +echo "初始化数据库..." +python -c "from app import init_database; init_database()" + +# 启动应用 +echo "启动应用..." +exec "$@" \ No newline at end of file diff --git a/scripts/fix_instance_ids.py b/scripts/fix_instance_ids.py new file mode 100644 index 0000000..1b7ec75 --- /dev/null +++ b/scripts/fix_instance_ids.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +任务实例ID修复脚本 +为所有现有的任务实例记录生成并设置instance_id + +用法: + python scripts/fix_instance_ids.py +""" + +import os +import sys +import logging +import uuid +from sqlalchemy import text + +# 添加项目根目录到系统路径 +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) + +# 导入项目模块 +from data.session import get_db +from data.models.task_instance import TaskInstance + +# 设置日志 +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", + handlers=[ + logging.StreamHandler(sys.stdout), # 输出到控制台 + logging.FileHandler("fix_instance_ids.log") # 输出到文件 + ] +) +logger = logging.getLogger("fix_instance_ids") + +def fix_instance_ids(): + """为所有现有的任务实例记录生成并设置instance_id""" + try: + # 获取数据库会话 + db = next(get_db()) + + # 查询所有没有instance_id的任务实例记录 + instances = db.query(TaskInstance).filter( + (TaskInstance.instance_id == None) | + (TaskInstance.instance_id == '') + ).all() + + logger.info(f"发现 {len(instances)} 条没有instance_id的任务实例记录") + + # 为每条记录生成并设置instance_id + for instance in instances: + instance_id = str(uuid.uuid4()) + instance.instance_id = instance_id + logger.info(f"为任务实例 ID={instance.id} 设置instance_id={instance_id}") + + # 提交更改 + db.commit() + logger.info("所有任务实例记录的instance_id已更新") + + return True + except Exception as e: + logger.error(f"修复任务实例ID失败: {str(e)}") + if 'db' in locals(): + db.rollback() + return False + +def main(): + """主函数""" + logger.info("开始修复任务实例ID...") + + # 修复任务实例ID + success = fix_instance_ids() + + if success: + logger.info("任务实例ID修复成功!") + else: + logger.error("任务实例ID修复失败!") + + # 根据修复结果设置退出码 + sys.exit(0 if success else 1) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/scripts/init-db.sql b/scripts/init-db.sql new file mode 100644 index 0000000..385bbb0 --- /dev/null +++ b/scripts/init-db.sql @@ -0,0 +1,13 @@ +-- 创建数据库(如果不存在) +CREATE DATABASE IF NOT EXISTS tianfeng_task CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- 使用数据库 +USE tianfeng_task; + +-- 创建用户并授权(如果不存在) +CREATE USER IF NOT EXISTS 'tianfeng'@'%' IDENTIFIED BY 'tianfeng'; +GRANT ALL PRIVILEGES ON tianfeng_task.* TO 'tianfeng'@'%'; +FLUSH PRIVILEGES; + +-- 初始化基础数据可以在这里添加 +-- 注意:大部分表结构会由SQLAlchemy自动创建,这里主要是为了初始化一些基础数据 \ No newline at end of file diff --git a/scripts/logs/migration_upgrade_20250317.log b/scripts/logs/migration_upgrade_20250317.log new file mode 100644 index 0000000..6481212 --- /dev/null +++ b/scripts/logs/migration_upgrade_20250317.log @@ -0,0 +1,36 @@ +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +执行时间: 2025-03-17 16:48:29 +执行命令: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +执行时间: 2025-03-17 16:50:12 +执行命令: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +执行时间: 2025-03-17 16:51:14 +执行命令: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +执行时间: 2025-03-17 16:51:54 +执行命令: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + diff --git a/scripts/logs/tianfeng_task.log b/scripts/logs/tianfeng_task.log new file mode 100644 index 0000000..2da2c48 --- /dev/null +++ b/scripts/logs/tianfeng_task.log @@ -0,0 +1,186 @@ +2025-03-17 16:48:29,929 - migration - INFO - Ǩƣ: {'revision': None, 'downgrade': False, 'verbose': False, 'message': None, 'branch': None, 'history': False, 'current': False, 'show': False, 'table': None, 'list_tables': False} +2025-03-17 16:48:29,929 - migration - INFO - ʹѴڵʱļ: D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp +2025-03-17 16:48:29,930 - migration - INFO - : {'revision': None, 'downgrade': False, 'verbose': False, 'message': None, 'branch': None, 'history': False, 'current': False, 'show': False, 'table': None, 'list_tables': False} +2025-03-17 16:48:29,930 - migration - INFO - ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +2025-03-17 16:48:29,930 - migration - INFO - Ŀ¼: D:\jsw_code\project\tianfeng_task +2025-03-17 16:48:29,930 - migration - INFO - Python : utf-8 +2025-03-17 16:48:29,930 - migration - INFO - ļϵͳ: utf-8 +2025-03-17 16:48:29,930 - migration - INFO - ϵͳĬϱ: cp936 +2025-03-17 16:48:29,930 - migration - INFO - ִǨƣ־д logs\migration_upgrade_20250317.log... +2025-03-17 16:48:30,704 - migration - INFO - ִ״̬: ɹ +2025-03-17 16:48:30,704 - migration - INFO - (󲿷): +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:48:29 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + + +2025-03-17 16:50:12,449 - migration - INFO - Ǩƣ: {'revision': None, 'downgrade': False, 'verbose': False, 'message': None, 'branch': None, 'history': False, 'current': False, 'show': False, 'table': None, 'list_tables': False} +2025-03-17 16:50:12,450 - migration - INFO - ʹѴڵʱļ: D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp +2025-03-17 16:50:12,450 - migration - INFO - : {'revision': None, 'downgrade': False, 'verbose': False, 'message': None, 'branch': None, 'history': False, 'current': False, 'show': False, 'table': None, 'list_tables': False} +2025-03-17 16:50:12,450 - migration - INFO - ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +2025-03-17 16:50:12,450 - migration - INFO - Ŀ¼: D:\jsw_code\project\tianfeng_task +2025-03-17 16:50:12,450 - migration - INFO - Python : utf-8 +2025-03-17 16:50:12,450 - migration - INFO - ļϵͳ: utf-8 +2025-03-17 16:50:12,450 - migration - INFO - ϵͳĬϱ: cp936 +2025-03-17 16:50:12,450 - migration - INFO - ִǨƣ־д logs\migration_upgrade_20250317.log... +2025-03-17 16:50:13,150 - migration - INFO - ִ״̬: ɹ +2025-03-17 16:50:13,150 - migration - INFO - (󲿷): +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:48:29 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:50:12 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + + +2025-03-17 16:51:14,892 - migration - INFO - Ǩƣ: {'revision': None, 'downgrade': False, 'verbose': False, 'message': None, 'branch': None, 'history': False, 'current': False, 'show': False, 'table': None, 'list_tables': False} +2025-03-17 16:51:14,892 - migration - INFO - ʹѴڵʱļ: D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp +2025-03-17 16:51:14,892 - migration - INFO - : {'revision': None, 'downgrade': False, 'verbose': False, 'message': None, 'branch': None, 'history': False, 'current': False, 'show': False, 'table': None, 'list_tables': False} +2025-03-17 16:51:14,892 - migration - INFO - ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +2025-03-17 16:51:14,908 - migration - INFO - Ŀ¼: D:\jsw_code\project\tianfeng_task +2025-03-17 16:51:14,908 - migration - INFO - Python : utf-8 +2025-03-17 16:51:14,908 - migration - INFO - ļϵͳ: utf-8 +2025-03-17 16:51:14,908 - migration - INFO - ϵͳĬϱ: cp936 +2025-03-17 16:51:14,908 - migration - INFO - ִǨƣ־д logs\migration_upgrade_20250317.log... +2025-03-17 16:51:15,435 - migration - INFO - ִ״̬: ɹ +2025-03-17 16:51:15,435 - migration - INFO - (󲿷): +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:48:29 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:50:12 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:51:14 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + + +2025-03-17 16:51:54,260 - migration - INFO - Ǩƣ: {'revision': None, 'downgrade': False, 'verbose': False, 'message': None, 'branch': None, 'history': False, 'current': False, 'show': False, 'table': None, 'list_tables': False} +2025-03-17 16:51:54,260 - migration - INFO - ʹѴڵʱļ: D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp +2025-03-17 16:51:54,260 - migration - INFO - : {'revision': None, 'downgrade': False, 'verbose': False, 'message': None, 'branch': None, 'history': False, 'current': False, 'show': False, 'table': None, 'list_tables': False} +2025-03-17 16:51:54,260 - migration - INFO - ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +2025-03-17 16:51:54,260 - migration - INFO - Ŀ¼: D:\jsw_code\project\tianfeng_task +2025-03-17 16:51:54,260 - migration - INFO - Python : utf-8 +2025-03-17 16:51:54,260 - migration - INFO - ļϵͳ: utf-8 +2025-03-17 16:51:54,260 - migration - INFO - ϵͳĬϱ: cp936 +2025-03-17 16:51:54,260 - migration - INFO - ִǨƣ־д logs\migration_upgrade_20250317.log... +2025-03-17 16:51:54,809 - migration - INFO - ִ״̬: ɹ +2025-03-17 16:51:54,809 - migration - INFO - (󲿷): +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:48:29 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:50:12 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:51:14 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + +INFO [alembic.runtime.migration] Context impl MySQLImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + + +================================================================================ +ִʱ: 2025-03-17 16:51:54 +ִ: alembic -c D:\jsw_code\project\tianfeng_task\migrations\alembic.ini.tmp upgrade head +================================================================================ + + +2025-03-17 17:11:12,595 - migration - INFO - ʼִݿԶǨ... +2025-03-17 17:11:12,595 - utils.db_migration - INFO - ʼݿǨ +2025-03-17 17:11:12,657 - utils.db_migration - INFO - 23 ģ +2025-03-17 17:11:12,669 - utils.db_migration - INFO - subtasks ڣ׼ +2025-03-17 17:11:12,733 - utils.db_migration - INFO - subtasks ɹ +2025-03-17 17:11:12,734 - utils.db_migration - INFO - subtask_versions ڣ׼ +2025-03-17 17:11:12,785 - utils.db_migration - INFO - subtask_versions ɹ +2025-03-17 17:11:12,792 - utils.db_migration - INFO - task_flow_connections ڣ׼ +2025-03-17 17:11:12,794 - utils.db_migration - ERROR - task_flow_connections ʧ: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'task_flow_nodes'") +[SQL: +CREATE TABLE task_flow_connections ( + task_id INTEGER NOT NULL COMMENT 'ID', + version_id INTEGER NOT NULL COMMENT '汾ID', + source_node_id INTEGER NOT NULL COMMENT 'ԴڵID', + target_node_id INTEGER NOT NULL COMMENT 'ĿڵID', + label VARCHAR(100) COMMENT 'ӱǩ', + `condition` VARCHAR(500) COMMENT '', + config JSON COMMENT '', + is_default BOOL COMMENT 'ǷΪĬ', + id INTEGER NOT NULL COMMENT 'ID' AUTO_INCREMENT, + created_at DATETIME COMMENT 'ʱ', + updated_at DATETIME COMMENT 'ʱ', + is_deleted BOOL COMMENT 'Ƿɾɾǣ', + PRIMARY KEY (id), + FOREIGN KEY(task_id) REFERENCES tasks (id), + FOREIGN KEY(version_id) REFERENCES task_versions (id), + FOREIGN KEY(source_node_id) REFERENCES task_flow_nodes (id), + FOREIGN KEY(target_node_id) REFERENCES task_flow_nodes (id) +) + +] +(Background on this error at: https://sqlalche.me/e/20/e3q8) +2025-03-17 17:11:12,794 - utils.db_migration - INFO - task_flow_nodes ڣ׼ +2025-03-17 17:11:12,864 - utils.db_migration - INFO - task_flow_nodes ɹ +2025-03-17 17:11:12,867 - utils.db_migration - INFO - task_import_exports ڣ׼ +2025-03-17 17:11:12,915 - utils.db_migration - INFO - task_import_exports ɹ +2025-03-17 17:11:12,916 - utils.db_migration - INFO - task_inputs ڣ׼ +2025-03-17 17:11:12,968 - utils.db_migration - INFO - task_inputs ɹ +2025-03-17 17:11:12,969 - utils.db_migration - INFO - task_input_values ڣ׼ +2025-03-17 17:11:13,027 - utils.db_migration - INFO - task_input_values ɹ +2025-03-17 17:11:13,028 - utils.db_migration - INFO - task_instances.instance_id׼ +2025-03-17 17:11:13,029 - utils.db_migration - INFO - ִSQL: ALTER TABLE task_instances ADD COLUMN instance_id VARCHAR(36) NOT NULL +2025-03-17 17:11:13,061 - utils.db_migration - INFO - task_instances.instance_id ɹ +2025-03-17 17:11:13,074 - utils.db_migration - INFO - user_operations ڣ׼ +2025-03-17 17:11:13,111 - utils.db_migration - INFO - user_operations ɹ +2025-03-17 17:11:13,111 - utils.db_migration - INFO - ݿǨ +2025-03-17 17:11:13,111 - utils.db_migration - INFO - ݿǨƳɹ +2025-03-17 17:11:13,111 - migration - INFO - ݿǨƳɹɣ diff --git a/scripts/run_migration.py b/scripts/run_migration.py index d84349b..d8dfc37 100644 --- a/scripts/run_migration.py +++ b/scripts/run_migration.py @@ -2,340 +2,63 @@ # -*- coding: utf-8 -*- """ -数据库迁移执行脚本 +数据库迁移脚本 +用于自动检测模型变更并应用到数据库 用法: - python scripts/run_migration.py [--revision 版本号] + python scripts/run_migration.py [--verbose] 示例: - # 升级到最新版本 + # 执行自动迁移 python scripts/run_migration.py - # 升级到指定版本 - python scripts/run_migration.py --revision 001 - - # 降级到指定版本 - python scripts/run_migration.py --revision 001 --downgrade - - # 生成新的迁移脚本 - python scripts/run_migration.py --generate "添加新字段" - - # 为特定表生成迁移脚本 - python scripts/run_migration.py --generate "为用户表添加邮箱字段" --table users - - # 为多个表生成迁移脚本 - python scripts/run_migration.py --generate "添加审计字段" --table users,orders,products + # 显示详细日志 + python scripts/run_migration.py --verbose """ import argparse import os import sys +import logging from pathlib import Path -import subprocess -import shutil -import tempfile -import locale -import datetime -# 将项目根目录添加到 Python 路径 -root_dir = Path(__file__).parent.parent -sys.path.insert(0, str(root_dir)) +# 添加项目根目录到系统路径 +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) # 导入项目日志模块 -from utils.logger import get_logger, setup_logger +from utils.logger import setup_logger +from utils.db_migration import run_migration, DBMigration # 设置日志 setup_logger() -logger = get_logger('migration') - -def create_ascii_config(original_config_path): - """ - 创建一个 ASCII 编码的配置文件副本 - - Args: - original_config_path (Path): 原始配置文件路径 - - Returns: - Path: 临时配置文件路径 - """ - # 如果临时文件已存在,直接使用 - temp_config_path = original_config_path.with_suffix('.ini.tmp') - if temp_config_path.exists(): - logger.info(f"使用已存在的临时配置文件: {temp_config_path}") - return temp_config_path - - # 创建临时文件 - logger.info(f"创建 ASCII 编码的临时配置文件: {temp_config_path}") - - # 复制配置文件内容,去除中文注释 - with open(temp_config_path, 'w', encoding='ascii', errors='ignore') as temp_file: - temp_file.write(""" -# Alembic Configuration File -# This file contains basic configuration for Alembic - -[alembic] -# Path to migration scripts -script_location = migrations - -# Template uses jinja2 format -output_encoding = utf-8 - -# Database connection configuration -# In practice, this value will be overridden by the configuration in env.py -sqlalchemy.url = driver://user:pass@localhost/dbname - -# Logging configuration -[loggers] -keys = root,sqlalchemy,alembic - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S -""") - - return temp_config_path - -def run_migration_command(command, args): - """ - 执行迁移命令 - - Args: - command (str): 命令名称,如 'upgrade', 'downgrade', 'revision' - args (argparse.Namespace): 命令行参数 - - Returns: - bool: 是否成功执行命令 - """ - # 获取项目根目录 - root_dir = Path(__file__).parent.parent - - # 原始配置文件路径 - original_config_path = root_dir / "migrations" / "alembic.ini" - - # 创建 ASCII 编码的临时配置文件 - temp_config_path = create_ascii_config(original_config_path) - - # 构建命令 - cmd = ["alembic", "-c", str(temp_config_path)] - - if args.verbose: - cmd.append("--verbose") - - # 打印所有参数,帮助调试 - logger.info(f"命令参数: {vars(args)}") - - if command == 'upgrade': - cmd.extend(["upgrade", args.revision or "head"]) - elif command == 'downgrade': - cmd.extend(["downgrade", args.revision or "base"]) - elif command == 'revision': - logger.info(f"生成迁移脚本,描述: {args.message}") - cmd.extend(["revision", "--autogenerate", "-m", args.message]) - - # 如果指定了表名,创建一个临时的 env.py 文件,只包含指定的表 - if args.table: - # 将表名列表转换为 Python 列表字符串 - tables = [f"'{table.strip()}'" for table in args.table.split(',')] - tables_str = f"[{', '.join(tables)}]" - - # 创建临时环境变量,传递表名列表 - os.environ["ALEMBIC_TABLES"] = args.table - logger.info(f"指定迁移表: {args.table}") - - if args.branch: - cmd.extend(["--branch", args.branch]) - elif command == 'history': - cmd.append("history") - if args.verbose: - cmd.append("-v") - elif command == 'current': - cmd.append("current") - elif command == 'show': - cmd.extend(["show", args.revision or "head"]) - elif command == 'list_tables': - # 这不是 alembic 命令,而是我们自定义的命令 - return list_database_tables() - else: - logger.error(f"未知命令: {command}") - return False - - # 执行命令 - logger.info(f"执行命令: {' '.join(cmd)}") - logger.info(f"工作目录: {root_dir}") - logger.info(f"Python 编码: {sys.getdefaultencoding()}") - logger.info(f"文件系统编码: {sys.getfilesystemencoding()}") - logger.info(f"系统默认编码: {locale.getpreferredencoding()}") - - # 设置环境变量,确保使用 UTF-8 编码 - env = os.environ.copy() - env["PYTHONIOENCODING"] = "utf-8" - - # 创建命令输出日志文件 - 使用项目日志目录 - from config.settings import LogConfig - log_config = LogConfig.as_dict() - log_dir = Path(os.path.dirname(log_config["file"])) - log_dir.mkdir(exist_ok=True) - - # 使用日期和命令类型命名日志文件 - today = datetime.datetime.now().strftime('%Y%m%d') - log_file = log_dir / f"migration_{command}_{today}.log" - - try: - # 使用直接执行命令的方式,避免 subprocess 的编码问题 - logger.info(f"正在执行迁移,日志将写入 {log_file}...") - - # 使用 subprocess.Popen 而不是 subprocess.run - with open(log_file, "a", encoding="utf-8") as f_out: - # 添加分隔线和时间戳 - f_out.write(f"\n\n{'='*80}\n") - f_out.write(f"执行时间: {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") - f_out.write(f"执行命令: {' '.join(cmd)}\n") - f_out.write(f"{'='*80}\n\n") - - process = subprocess.Popen( - cmd, - cwd=str(root_dir), - env=env, - stdout=f_out, - stderr=subprocess.STDOUT, - text=True, - encoding="utf-8", - errors="replace" # 使用 replace 策略处理无法解码的字符 - ) - process.wait() - - # 读取日志文件 - with open(log_file, "r", encoding="utf-8") as f: - # 只读取最后 50 行,避免日志过长 - lines = f.readlines() - output = ''.join(lines[-50:]) if len(lines) > 50 else ''.join(lines) - - logger.info(f"命令执行状态: {'成功' if process.returncode == 0 else '失败'}") - logger.info(f"输出(最后部分):\n{output}") - - # 清理环境变量 - if 'ALEMBIC_TABLES' in os.environ: - del os.environ['ALEMBIC_TABLES'] - - return process.returncode == 0 - except Exception as e: - logger.error(f"执行命令时发生错误: {e}", exc_info=True) - - # 清理环境变量 - if 'ALEMBIC_TABLES' in os.environ: - del os.environ['ALEMBIC_TABLES'] - - return False - -def list_database_tables(): - """ - 列出数据库中的所有表 - - Returns: - bool: 是否成功执行命令 - """ - try: - # 导入数据库配置 - from config.database import DBConfig - - # 获取数据库连接 - engine = DBConfig.engine - - # 获取所有表名 - from sqlalchemy import inspect - inspector = inspect(engine) - tables = inspector.get_table_names() - - logger.info("数据库中的表:") - for i, table in enumerate(tables, 1): - logger.info(f"{i}. {table}") - - return True - except Exception as e: - logger.error(f"获取数据库表时发生错误: {e}", exc_info=True) - return False - -def run_migration(args): - """ - 执行数据库迁移 - - Args: - args (argparse.Namespace): 命令行参数 - - Returns: - bool: 是否成功执行迁移 - """ - # 打印所有参数,帮助调试 - logger.info(f"运行迁移,参数: {vars(args)}") - - if args.list_tables: - # 列出数据库中的所有表 - return run_migration_command('list_tables', args) - elif args.message: - # 生成新的迁移脚本 - logger.info(f"生成新的迁移脚本,描述: {args.message}") - return run_migration_command('revision', args) - elif args.history: - # 显示迁移历史 - return run_migration_command('history', args) - elif args.current: - # 显示当前版本 - return run_migration_command('current', args) - elif args.show: - # 显示指定版本的详细信息 - return run_migration_command('show', args) - elif args.downgrade: - # 降级到指定版本 - return run_migration_command('downgrade', args) - else: - # 升级到指定版本 - return run_migration_command('upgrade', args) +logger = logging.getLogger('migration') def main(): - parser = argparse.ArgumentParser(description="执行数据库迁移") - parser.add_argument("--revision", help="版本号,为空表示升级到最新版本") - parser.add_argument("--downgrade", action="store_true", help="是否降级") + """主函数""" + parser = argparse.ArgumentParser(description="执行数据库自动迁移") parser.add_argument("--verbose", "-v", action="store_true", help="显示详细日志") - parser.add_argument("--generate", "--gen", "-m", dest="message", help="生成新的迁移脚本,需要提供描述信息") - parser.add_argument("--branch", "-b", help="分支名称,用于生成迁移脚本") - parser.add_argument("--history", action="store_true", help="显示迁移历史") - parser.add_argument("--current", action="store_true", help="显示当前版本") - parser.add_argument("--show", action="store_true", help="显示指定版本的详细信息") - parser.add_argument("--table", "-t", help="指定要迁移的表名,多个表用逗号分隔") - parser.add_argument("--list-tables", action="store_true", help="列出数据库中的所有表") args = parser.parse_args() - success = run_migration(args) + # 设置日志级别 + log_level = logging.DEBUG if args.verbose else logging.INFO + logging.basicConfig( + level=log_level, + format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" + ) + + logger.info("开始执行数据库自动迁移...") + + # 运行迁移 + success = run_migration() + + if success: + logger.info("数据库迁移成功完成!") + else: + logger.error("数据库迁移失败!") + + # 根据迁移结果设置退出码 sys.exit(0 if success else 1) - if __name__ == "__main__": main() \ No newline at end of file diff --git a/services/__pycache__/common_params_service.cpython-312.pyc b/services/__pycache__/common_params_service.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3558626b0d934615e1e799b6040d3784f6b3cd6b GIT binary patch literal 3619 zcma)9U2Gdw7QW*d|HPRjh8EI5**g8%#7&cp?NT5uEY1&UXxHv0j#jcFja=V}*Qq@Y zGho`i?`oY}UVH{oTF15G0AT1MFYsl$w(XkTIj zp2BHpd5w*Y>N{m)?TyMGZdBG+jo)3bl&>2fl)RO-EBEjG>ATG{EQ{oK!_MlM_Mj8q4Q$ zdFfnIPUhlEi(<;`oB4KIjRz+{DIpOh7#Io%W)duRETaU6S<#6((IvV?r|6k?^Z<_h z<~i(K<`Qj7u7F$LQRfdaokPiKHRg5N9SfE7ZctS_{nt^6Xt%Z5$;n&Yp9ZMWRe#C89sph zl+%k3;zLwBjE~@-?_zhhVE5sE+SdR+O634PwyV#+7Q8_`MDf4C!&C-wXczC%7Q8S% zPVrCU6I4EfpWVgV+k*ET9-;V?_!O1T;}>@E9&f?>C4Lb{VD60KF)GLL1d$D+x~~QA zB|M2w18)kyOywDTmdG@l;V&Yg!)7e~DiAHeE`yAf4~&oBHZH$wuGnImoIjse2Zx7) z1p=qdU%~u;3gky47Tw1|_>h<=UIo&+Y_mW2mrW4B5tToiSYWBxNyK;~Se-jmw+C zn$-+oT0=Ff8NsxMbuI#<7GPyE*<~_#I+x00k=jG_4Ox_oD%P@8KYg$I#@~WEHv`O? z&&*}|fCoOvXz|R9rVlcLFI;q=&qy>RS)-#F>He)-uwO&%rae?>utWK#J=|yy7hSI@ zwVoL_Kf3?bYS6M-)l*x@vRSoL8`QO!SIk*M2HNA2Vvf_7sMsq`D!v- zfSGIK%#o?#LOULFY-*mc-kBEFv4Sj%k{XADsz9~~>k$0vs`1uprS#YDOMeMC%7&Z} zhtWW%Om=MDGaVa^#RXuro7&`bZ1$YqW;WuHNxf?(9-EF#P6(0di3kDm^#+(KQ}GGi zGddL&;*ps%di!r;(`RPlk@!?Bs&nUJGjW}potc={onw))(-Zn5qq9?IAz@T_X*N1W zQEj<=>Vg1gbrQ~LP7$;73OO77KaGu#%q=Ld31qgse4rspP%@T0^Hf})U2e!I< z%g<@Pr<*0>OTabN zexTf=`NCV>jS_IR+H2Wc*Hp{<|KfTzzISWip>kI9ootqn_pn{ZpvDhw^#tyYL^WS* ztEX>+Cqvb9?`pM3NVE)0pRspkGbe8m)|r#e;;m##-HDY+it_f zkzRpo_?i-t)5=J#MWXE#Fyc3F+GfB8P^~ddOKb{ZUC?PtW2N-n^>Pgldr=>BTxVhD z0=*w}`53$uGDv>E93W1zt(j|)uIu8#R!grDbB@G#5?+_k_CDm>yY~89uixwH)w+7G z9W9^#x+{3s6O;$Q9}RfPq9&IGLD0Q|kjvvjmgu}7yi!PJEst9ea6Tmn@=?+wR#9cy z37SkkjZD6xJPfZ-5DiMZEtBn?zS==iNL9<|U)+HoxEC3xcYEByJ459?+X%#sy*Kbi z_#f=XvtLMBaN;4cnSn@*052a0p}SxfWu$anO4ffO ejgEbT+P^^^-=e3!Md2U0Uo%YT2Sna9*8c#(j5CD* literal 0 HcmV?d00001 diff --git a/services/__pycache__/task_instance_service.cpython-312.pyc b/services/__pycache__/task_instance_service.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83202ff7f5e977d49b3dbd02c712e174421beaf3 GIT binary patch literal 12689 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 List[Dict[str, Any]]: + """ + 获取指定类型的常用参数数据 + + Args: + param_type: 参数类型 + + Returns: + 参数数据列表 + """ + # 实际项目中,应该根据param_type调用相应的API或查询数据库 + # 这里使用模拟数据 + return self.mock_data.get(param_type, []) \ No newline at end of file diff --git a/services/task_instance_service.py b/services/task_instance_service.py new file mode 100644 index 0000000..926445d --- /dev/null +++ b/services/task_instance_service.py @@ -0,0 +1,281 @@ +""" +任务实例服务模块 +提供任务实例的增删改查服务 +""" +from typing import Dict, Any, List, Optional, Tuple +from sqlalchemy.orm import Session +from data.session import get_db +from data.models.task_instance import TaskInstance, TaskInstanceStatus +from data.models.task import Task +from datetime import datetime + +class TaskInstanceService: + """任务实例服务类""" + + def __init__(self): + """初始化服务""" + self.db = next(get_db()) + + def create_instance(self, task_id: str, name: Optional[str] = None, variables: Optional[Dict[str, Any]] = None, + priority: int = 1, input_params: Optional[Dict[str, Any]] = None, + block_outputs: Optional[Dict[str, Any]] = None, context_params: Optional[Dict[str, Any]] = None, + status: TaskInstanceStatus = TaskInstanceStatus.EDITING) -> Dict[str, Any]: + """ + 创建任务实例 + + Args: + task_id: 任务ID + name: 任务名称(如果为空,则从任务表中获取) + variables: 任务变量 + priority: 任务优先级 + input_params: 任务输入参数 + block_outputs: 块输出参数 + context_params: 上下文参数 + status: 任务实例状态 + + Returns: + 任务实例字典 + """ + # 检查任务是否存在 + task = self.db.query(Task).filter(Task.task_id == task_id, Task.is_deleted == False).first() + if not task: + raise ValueError(f"任务不存在: {task_id}") + + # 如果名称为空,则使用任务表中的名称 + if not name: + name = task.name + + # 创建任务实例 + instance = TaskInstance( + task_id=task_id, + name=name, + variables=variables or {}, + priority=priority, + input_params=input_params or {}, + block_outputs=block_outputs or {}, + context_params=context_params or {}, + status=status + ) + + # 保存到数据库 + self.db.add(instance) + self.db.commit() + self.db.refresh(instance) + + return instance.to_dict() + + def get_instance_by_id(self, instance_id: str) -> Optional[Dict[str, Any]]: + """ + 根据实例ID获取任务实例 + + Args: + instance_id: 任务实例ID + + Returns: + 任务实例字典,如果不存在则返回None + """ + instance = self.db.query(TaskInstance).filter(TaskInstance.instance_id == instance_id, TaskInstance.is_deleted == False).first() + if not instance: + return None + + return instance.to_dict() + + def get_instances_by_task_id(self, task_id: str) -> List[Dict[str, Any]]: + """ + 根据任务ID获取所有任务实例 + + Args: + task_id: 任务ID + + Returns: + 任务实例字典列表 + """ + instances = self.db.query(TaskInstance).filter(TaskInstance.task_id == task_id, TaskInstance.is_deleted == False).all() + return [instance.to_dict() for instance in instances] + + def get_latest_instance_by_task_id(self, task_id: str) -> Optional[Dict[str, Any]]: + """ + 根据任务ID获取最新的任务实例 + + Args: + task_id: 任务ID + + Returns: + 最新的任务实例字典,如果不存在则返回None + """ + instance = self.db.query(TaskInstance).filter( + TaskInstance.task_id == task_id, + TaskInstance.is_deleted == False + ).order_by(TaskInstance.created_at.desc()).first() + + if not instance: + return None + + return instance.to_dict() + + def get_editing_instance_by_task_id(self, task_id: str) -> Optional[Dict[str, Any]]: + """ + 根据任务ID获取编辑中的任务实例 + + Args: + task_id: 任务ID + + Returns: + 编辑中的任务实例字典,如果不存在则返回None + """ + instance = self.db.query(TaskInstance).filter( + TaskInstance.task_id == task_id, + TaskInstance.status == TaskInstanceStatus.EDITING, + TaskInstance.is_deleted == False + ).order_by(TaskInstance.created_at.desc()).first() + + if not instance: + return None + + return instance.to_dict() + + def get_latest_published_instance_by_task_id(self, task_id: str) -> Optional[Dict[str, Any]]: + """ + 根据任务ID获取最新的已发布任务实例 + + Args: + task_id: 任务ID + + Returns: + 最新的已发布任务实例字典,如果不存在则返回None + """ + instance = self.db.query(TaskInstance).filter( + TaskInstance.task_id == task_id, + TaskInstance.status == TaskInstanceStatus.PUBLISHED, + TaskInstance.is_deleted == False + ).order_by(TaskInstance.created_at.desc()).first() + + if not instance: + return None + + return instance.to_dict() + + def update_instance(self, instance_id: str, variables: Optional[Dict[str, Any]] = None, + priority: Optional[int] = None, input_params: Optional[Dict[str, Any]] = None, + block_outputs: Optional[Dict[str, Any]] = None, context_params: Optional[Dict[str, Any]] = None, + status: Optional[TaskInstanceStatus] = None) -> Optional[Dict[str, Any]]: + """ + 更新任务实例 + + Args: + instance_id: 任务实例ID + variables: 任务变量 + priority: 任务优先级 + input_params: 任务输入参数 + block_outputs: 块输出参数 + context_params: 上下文参数 + status: 任务实例状态 + + Returns: + 更新后的任务实例字典,如果不存在则返回None + """ + # 获取任务实例 + instance = self.db.query(TaskInstance).filter(TaskInstance.instance_id == instance_id, TaskInstance.is_deleted == False).first() + if not instance: + return None + + # 更新字段 + if variables is not None: + instance.variables = variables + if priority is not None: + instance.priority = priority + if input_params is not None: + instance.input_params = input_params + if block_outputs is not None: + instance.block_outputs = block_outputs + if context_params is not None: + instance.context_params = context_params + if status is not None: + instance.status = status + + # 保存到数据库 + self.db.commit() + self.db.refresh(instance) + + return instance.to_dict() + + def publish_instance(self, instance_id: str) -> Optional[Dict[str, Any]]: + """ + 发布任务实例 + + Args: + instance_id: 任务实例ID + + Returns: + 发布后的任务实例字典,如果不存在则返回None + """ + return self.update_instance(instance_id, status=TaskInstanceStatus.PUBLISHED) + + def delete_instance(self, instance_id: str) -> bool: + """ + 删除任务实例 + + Args: + instance_id: 任务实例ID + + Returns: + 是否删除成功 + """ + # 获取任务实例 + instance = self.db.query(TaskInstance).filter(TaskInstance.instance_id == instance_id, TaskInstance.is_deleted == False).first() + if not instance: + return False + + # 标记为已删除 + instance.is_deleted = True + self.db.commit() + + return True + + def get_or_create_editing_instance(self, task_id: str) -> Dict[str, Any]: + """ + 获取或创建编辑中的任务实例 + + 如果任务已有编辑中的实例,则返回该实例 + 如果任务没有编辑中的实例,但有已发布的实例,则基于最新的已发布实例创建新的编辑中实例 + 如果任务没有任何实例,则创建新的编辑中实例 + + Args: + task_id: 任务ID + + Returns: + 编辑中的任务实例字典 + """ + # 检查是否有编辑中的实例 + editing_instance = self.get_editing_instance_by_task_id(task_id) + if editing_instance: + return editing_instance + + # 检查是否有已发布的实例 + published_instance = self.get_latest_published_instance_by_task_id(task_id) + if published_instance: + # 基于已发布实例创建新的编辑中实例 + return self.create_instance( + task_id=task_id, + name=published_instance.get("name"), + variables=published_instance.get("variables"), + priority=published_instance.get("priority", 1), + input_params=published_instance.get("input_params"), + block_outputs=published_instance.get("block_outputs"), + context_params=published_instance.get("context_params"), + status=TaskInstanceStatus.EDITING + ) + + # 获取任务信息 + task = self.db.query(Task).filter(Task.task_id == task_id, Task.is_deleted == False).first() + if not task: + raise ValueError(f"任务不存在: {task_id}") + + # 创建新的编辑中实例 + return self.create_instance( + task_id=task_id, + name=task.name, + variables=task.variables if hasattr(task, "variables") else {}, + priority=1, + status=TaskInstanceStatus.EDITING + ) \ No newline at end of file diff --git a/utils/__pycache__/db_migration.cpython-312.pyc b/utils/__pycache__/db_migration.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8afd00196a596fb1f8e5bfadb45f2ce8fc13dd7d GIT binary patch literal 11620 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