From 88625f4782f5ea5147b6e427dc5bba4f4837f486 Mon Sep 17 00:00:00 2001 From: xiongyi <827523911@qq.com> Date: Thu, 13 Nov 2025 16:53:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=B4=BE=E5=8D=95=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 285 bytes API/__pycache__/client.cpython-312.pyc | Bin 0 -> 4025 bytes .../mix_weight_api.cpython-312.pyc | Bin 0 -> 3126 bytes config/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 129 bytes config/__pycache__/settings.cpython-312.pyc | Bin 0 -> 787 bytes database/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 293 bytes .../__pycache__/access_db.cpython-312.pyc | Bin 0 -> 2670 bytes .../__pycache__/sql_server.cpython-312.pyc | Bin 0 -> 3440 bytes .../sql_server_connection.cpython-312.pyc | Bin 0 -> 3094 bytes services/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 311 bytes .../monitoring_service.cpython-312.pyc | Bin 0 -> 10278 bytes .../__pycache__/task_service.cpython-312.pyc | Bin 0 -> 15251 bytes tcp/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 126 bytes tcp/__pycache__/server.cpython-312.pyc | Bin 0 -> 9071 bytes utils/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 128 bytes utils/__pycache__/helpers.cpython-312.pyc | Bin 0 -> 1676 bytes zjsh_mixing_sysytem/.idea/.gitignore | 3 + .../inspectionProfiles/Project_Default.xml | 18 + .../inspectionProfiles/profiles_settings.xml | 6 + zjsh_mixing_sysytem/.idea/misc.xml | 7 + zjsh_mixing_sysytem/.idea/modules.xml | 8 + .../.idea/中交三航背景界面.iml | 8 + .../bottom_control_widget.cpython-312.pyc | Bin 0 -> 2598 bytes .../bottom_control_widget.cpython-39.pyc | Bin 0 -> 1789 bytes .../__pycache__/dispatch_task.cpython-312.pyc | Bin 0 -> 25658 bytes .../__pycache__/dispatch_task.cpython-39.pyc | Bin 0 -> 15092 bytes .../system_nav_bar.cpython-312.pyc | Bin 0 -> 8093 bytes .../__pycache__/system_nav_bar.cpython-39.pyc | Bin 0 -> 4295 bytes zjsh_mixing_sysytem/bottom_control_widget.py | 41 ++ zjsh_mixing_sysytem/dispatch_task.py | 531 ++++++++++++++++++ zjsh_mixing_sysytem/main_window.py | 113 ++++ zjsh_mixing_sysytem/system_nav_bar.py | 141 +++++ zjsh_mixing_sysytem/主界面背景.png | Bin 0 -> 2354 bytes zjsh_mixing_sysytem/关闭图标.png | Bin 0 -> 229 bytes zjsh_mixing_sysytem/底部背景.png | Bin 0 -> 14745 bytes zjsh_mixing_sysytem/派单任务信息栏1.png | Bin 0 -> 510 bytes zjsh_mixing_sysytem/派单任务信息栏2.png | Bin 0 -> 509 bytes zjsh_mixing_sysytem/派单最底部.png | Bin 0 -> 1933 bytes zjsh_mixing_sysytem/生产取消按钮.png | Bin 0 -> 226 bytes zjsh_mixing_sysytem/生产异常按钮.png | Bin 0 -> 224 bytes zjsh_mixing_sysytem/系统logo.png | Bin 0 -> 2158 bytes zjsh_mixing_sysytem/系统主界面导航栏.png | Bin 0 -> 23632 bytes zjsh_mixing_sysytem/系统总标题.png | Bin 0 -> 6262 bytes zjsh_mixing_sysytem/系统消息喇叭.png | Bin 0 -> 348 bytes zjsh_mixing_sysytem/系统消息背景.png | Bin 0 -> 3267 bytes zjsh_mixing_sysytem/详情弹出背景.png | Bin 0 -> 19062 bytes zjsh_mixing_sysytem/详情标题.png | Bin 0 -> 1075 bytes 47 files changed, 876 insertions(+) create mode 100644 API/__pycache__/__init__.cpython-312.pyc create mode 100644 API/__pycache__/client.cpython-312.pyc create mode 100644 API/__pycache__/mix_weight_api.cpython-312.pyc create mode 100644 config/__pycache__/__init__.cpython-312.pyc create mode 100644 config/__pycache__/settings.cpython-312.pyc create mode 100644 database/__pycache__/__init__.cpython-312.pyc create mode 100644 database/__pycache__/access_db.cpython-312.pyc create mode 100644 database/__pycache__/sql_server.cpython-312.pyc create mode 100644 database/__pycache__/sql_server_connection.cpython-312.pyc create mode 100644 services/__pycache__/__init__.cpython-312.pyc create mode 100644 services/__pycache__/monitoring_service.cpython-312.pyc create mode 100644 services/__pycache__/task_service.cpython-312.pyc create mode 100644 tcp/__pycache__/__init__.cpython-312.pyc create mode 100644 tcp/__pycache__/server.cpython-312.pyc create mode 100644 utils/__pycache__/__init__.cpython-312.pyc create mode 100644 utils/__pycache__/helpers.cpython-312.pyc create mode 100644 zjsh_mixing_sysytem/.idea/.gitignore create mode 100644 zjsh_mixing_sysytem/.idea/inspectionProfiles/Project_Default.xml create mode 100644 zjsh_mixing_sysytem/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 zjsh_mixing_sysytem/.idea/misc.xml create mode 100644 zjsh_mixing_sysytem/.idea/modules.xml create mode 100644 zjsh_mixing_sysytem/.idea/中交三航背景界面.iml create mode 100644 zjsh_mixing_sysytem/__pycache__/bottom_control_widget.cpython-312.pyc create mode 100644 zjsh_mixing_sysytem/__pycache__/bottom_control_widget.cpython-39.pyc create mode 100644 zjsh_mixing_sysytem/__pycache__/dispatch_task.cpython-312.pyc create mode 100644 zjsh_mixing_sysytem/__pycache__/dispatch_task.cpython-39.pyc create mode 100644 zjsh_mixing_sysytem/__pycache__/system_nav_bar.cpython-312.pyc create mode 100644 zjsh_mixing_sysytem/__pycache__/system_nav_bar.cpython-39.pyc create mode 100644 zjsh_mixing_sysytem/bottom_control_widget.py create mode 100644 zjsh_mixing_sysytem/dispatch_task.py create mode 100644 zjsh_mixing_sysytem/main_window.py create mode 100644 zjsh_mixing_sysytem/system_nav_bar.py create mode 100644 zjsh_mixing_sysytem/主界面背景.png create mode 100644 zjsh_mixing_sysytem/关闭图标.png create mode 100644 zjsh_mixing_sysytem/底部背景.png create mode 100644 zjsh_mixing_sysytem/派单任务信息栏1.png create mode 100644 zjsh_mixing_sysytem/派单任务信息栏2.png create mode 100644 zjsh_mixing_sysytem/派单最底部.png create mode 100644 zjsh_mixing_sysytem/生产取消按钮.png create mode 100644 zjsh_mixing_sysytem/生产异常按钮.png create mode 100644 zjsh_mixing_sysytem/系统logo.png create mode 100644 zjsh_mixing_sysytem/系统主界面导航栏.png create mode 100644 zjsh_mixing_sysytem/系统总标题.png create mode 100644 zjsh_mixing_sysytem/系统消息喇叭.png create mode 100644 zjsh_mixing_sysytem/系统消息背景.png create mode 100644 zjsh_mixing_sysytem/详情弹出背景.png create mode 100644 zjsh_mixing_sysytem/详情标题.png diff --git a/API/__pycache__/__init__.cpython-312.pyc b/API/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1d63abf4e6153d13d40fc99ac713fcdedceb9ccd GIT binary patch literal 285 zcmX@j%ge<81X30vnN2|YF^B^LOi;#W4IpDWLkdF_LkeRGQx0P;Qxp>;h|QeCoXZl$ z0%WtKu%GT!0@a-DNBQ}arI93J1yityCT^o$aq zXc03|MG*^-@Y7_w#U3A@lAjzOe~T>{tQstPi!V2`BEB4~BR;Vp6RaAfG%+V9K7J*` zXP{<=U$QP%F`jwFsYN9&i6x0KK%-;g<1_OzOXB183Mzkb*yQG?l;)(`74ZO7gPc_? j0VF;!Gcq#XWZ=2WAbXcV;{mtW4899o>W%D0pilt-JdQ_T literal 0 HcmV?d00001 diff --git a/API/__pycache__/client.cpython-312.pyc b/API/__pycache__/client.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2a48fec524ef191744625cf9c99cf0a9f13b1f59 GIT binary patch literal 4025 zcmcJSe{2)y8OPuA-PxCz*hvgcuxW7kHLe2E#>MHXwMioK2eX}h;dHDo zqehj!bW};Cj>MALKH3&NuJs*DWfF2)W;oY>+uogZ9OLZth*J@XK(hwvV9@8W# z+gV$~T~?a_>?jWEJNN6oV_5H*f5e;T-f}KOND`^7GE^{AN(wGaf#jG8A~KZg zd)H?cuNNl9M*4RL%QwEeSbY5o5p9YK`WZqxtg7EiDYA;O{C>rat!+oc>QTvZWxML{ z)!=A{zN!PvDe|eiEALi1;JE=`#EB*~2I&F5HDu!}Q-@Aiu9`pOB$FfY8f?`@_{qVx zUXT5%QLv6%U&9n=iR0&PDiDiGNMm!3xn{E@;G`{Qi?3<)V@+mX-A;%y3|{;yO{JDC zn`7hn;!Q>7tURl6*5_E6$NXhGTG&D@))2@M1*oY^5N(~+Bs;8V-(f@{!1GZ_vb2w zV&zvCS40w>3a**KMN;WW1*bOzCHh(>s%omirBkY=VAh6H)xugvl_D^U(uFPTk*KD$ z;Zw`Lu&&~Cekdk+yr~@SI&riC-%mXU<`lWR zZeu~3lIGTJ%eT(=ZoShRDD?*3d+z;g>B;BjdJp7VFASE1p1U4jVR&k|xb|l~Gd=Ic zZ+k}a!o1US$GNfO+*k~Jb3LsKPd@;6FU1{}6;f_4s#B{eu*}q#RR-N&t$&O; z$!N9h5U=TOJuZw}4SePr+kp5g+d$?h;yVCwT)L*xfOu__)jPo{THT7WoyHLWaR)_Q zKnnoZ-?YW*3jnuf9s{?D9iFsr++6(O=|zyKGjHDg<4ooC8|B~qwsQUg;QbN^_W0;O zkg$6%K`eGGpMf#e(Lc~kN)Vur2~5B_Pk>OpdFeTDsp%Hfs#M){>!&L`~D-a zyL{7MoyrxzR_f~4+xsca{d2B>E(A=PSIRQ(Oe)@+9xlzuImT`(a6e&l%sb>Vdy@Se zNoRAmYg~%V;tq5ucVO}+YDcKEp;vukt(Hfqj-Beu% zs4LudWXh?*!rf>EtSBQWyO!{_A(Z9-xGk+b@*5nxV3>Lq%ol)lzGK~;j?JZx&3gNm z;@IrVv*Wrem}f19*;$}>_kTgJ-oBZFyL-+R)P>*!WO(hv1^53g!{Yxe!={|`Aj9;I z(ST~>4WbTO<;g&hc6 z!>v5)Yt+pKC*J{{oWXV^K*mS|yNuIg`NW zHInpNCY&%m3f`CLol4n?Pdm{(fhK^)g9a~>^d_X>2BiiMUeyogG+DCQdEZjIjqhF( zocz#|*U3M*MM8)O&JIgT4$E5oc;{JrV{z4xAr~Mg*8CW7{ HX&V0mpM7X zyKac(RH#Z@f}o+gT!TueKvktsP(yVR6<2hSZ>RQ45QlJAIo(MoyW~^dgsK&ls=l{t zZ=9&AL?_Dg{CV%q?7ZK+nXf77rm;hFwFhpgXl5TJvw6%ukQczjJc_ow1IW_T;C| z=gv;dqgqffrQPv}e%N&P>B&T_XDCR`>h67eyEXp0#&;$Y2`y^Gl8LD8)Rx5=$l@QN zJwY@Qrm#Lir6VNFQ~{)@GLRCkDC|<*sx(5wZdi|OdS8qkd0C6~9x`AhQCjAfK^^}W z`z)`9GiH?LBNvN(8KO9ShP&kBVzC0FrQIVL(zmKKzVuttq-2N$X;;w2abitWvnv8`BMqD?FJpH2nfKMO};c=(wK1{ia<{AJ~)7HE!&R7?A_; zVF&tSN0dS9GnL3dtaV@royQU}Ls8P}%eSDl)a?RSdJ~AFWUjh)vi7gf91~B-bL$?u zwXOwf?yT&+BRAZX8*a;+7D0_H+dQeROy%AMaQarBk zR9xfL(8V{Ps03k0nXkb%t~K4TJb)|UK;HBah@<3xvUf}#mF>9AHaBGouC`8=^#16_LD&hTqMAEMW9%o3x!_Fzx#1+?4xh5 zeQ@{P&vRq%=SPp`Cr9n%mK%ef_f@BT|y{%@DR`C`P;2nCtx)>F}_rt7At!eKV0Xfl;B=Klq2*?mFab?|FS8s|wq ze-BPS<_`Q)vw8(!u|!Xj(4M-ucjh@+%XvC8Ai*3?f7zBhQMrtM};+pU_%k3Bb6y)j$ADO($utMi|J zP&+KGU_C0P;)r_85+NnQz0Yl zBCq-h8D<%#QVd3h9{vL!(G%V>`UDtdWvq$F8YSICBxPEdrRW)QR#4q#x^j_iCwp0J zi{*BP2PU>kMs(ON_u(nBT`?@aAp+ahZyDRGQis9Z!EPDb`EytECqH$lwo!jzu;Cco z{p`FmgDLKWY!?dJ0CNl*hixRgQ^;9<@{|1NKXb<}JF^CO1N6tnfpESFYF$Ce!kh=7 zVPVZTW334U3|TCTm{55$^q6AI(E9m9P}MQ9SV!2#8k1_e={K-0WoGoOUj>15ulqH+ zf$Ie#Rr*hf+3K3puJ_u{J$|dYWv+g6wy7l>Xa;thHvqf-8eq515A6E=3xuur7bGyc zx0?9sv-N>&ee0Al)iYc7#ILblK-Pcv;b?)?zuD4JMLt;z;#xI`nJQ05JDaJi?bya< zwo-% zG{r+n-7v+0BsWY+)efe5P1!iawTP;zT>y)9H8P$`6l2UE21guUef$v=tsquLcnkEU ztCmF=9JHe*V&`0nW8P8k>E?5x%j<8{9`oLopSP|yxRBGHt!>*{ABDfIu~EP?6bi~5 zPn=nyDE&zlE@*h6c@^cgR3vV{*LW2STX%EW)r||eKrF8|dzgVZ3fycR0Usd?0+Rv@ z6{574E_kaX-$HYZlwQu(GtzRy+i(FG3u`_1<#zjPcJL>m51*3O4iy-s^lMW8UlRBa+3|z8 MoxVU92ujQL7Z7gudH?_b literal 0 HcmV?d00001 diff --git a/config/__pycache__/__init__.cpython-312.pyc b/config/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2e4a46dcc437d665f0e5c28206eff01a0845b12b GIT binary patch literal 129 zcmX@j%ge<81X30vnIQTxh(HIQS%4zb87dhx8U0o=6fpsLpFwJVDY#h0c;*$S7L~Xp zmL$d`=jWwmrpLs`XXa&=#K-FuRQ}?y$<0qG%}KQ@Vg+ho1ma>4<0CU8BV!RWkOcty C)Eegi literal 0 HcmV?d00001 diff --git a/config/__pycache__/settings.cpython-312.pyc b/config/__pycache__/settings.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3801a47deeaf7ca68c2a34cae810b3216d61d775 GIT binary patch literal 787 zcmYjO&2JJ>5PvLR%lAh?Ym+8T^}?Z)U7(c47-1J%lmfC;&8Ep_m)S)UV4Gd4DaHg3 z9zFL`554I{uO`O$2Y9Ks^?5N-Yq-($){_sdjq~#6{bt_GoB7TA6bN_`k-61a=RJkc z_o?wuT<74lO29q>BqFc@)wPK>u!|HpzzHsJ1AX8S?cfm|;1!+V13v^H2q6d`I7Juu zMK?r58ls{HW<)Q(w3Pb-B;cjI?P>n~b@pS09 zV1ivmflc#8OqnvaGi*BH#4a#8Bn-O3yx!-Zs_2pwn-g$(_A3`g%`? z-L87WxJD9eWSbqLCU%?6_65y;MV^TZ`LB-XZ=s0gy<|n^tZ?JR;|x+G?<9<(=~2*% zFCL*N2@B0z!7EmH)(Xe0aQwvQic?1@GKnJpW9LL-_4MP^0;i>RPA6Z?$92AMAU E4V~)gh5!Hn literal 0 HcmV?d00001 diff --git a/database/__pycache__/__init__.cpython-312.pyc b/database/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..87ebc67a8487edda41bd8a035e58fb84d921a098 GIT binary patch literal 293 zcmX@j%ge<81X30vnax1@F^B^LOi;#W4IpDWLkdF_LkeRGQx0P;Qxp>;h|QeCoXZl$ z0%WtKu%Sg$)_F#z|6?Vc#}csE`$7C2IU9bq7!N_aH%%37lA?t0FwqzdjJ3c literal 0 HcmV?d00001 diff --git a/database/__pycache__/access_db.cpython-312.pyc b/database/__pycache__/access_db.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4f325519cb78187c33beda0c0dc9a6deaeb47bc8 GIT binary patch literal 2670 zcmbtWZ%k8H6uoZHL1zZwzx8yneX$S5mypd^rpdXY$oq@U;|Nc090sWBuP zu93P|FF8VTbhr|%oq`}KO6sGVsmZUGemIjlGkNc)^Qo(smM$b7V&^VFpQ1}5W2|fe zC4nT=OTd>%kr+e0lt_X!;4k&kq5-5)q(PcSjGRej^bfgr3DhG2@p`bm;?m+pi74W8 z!%-5f>=$82U}e^i&bCi4X4e?3Ksq>Nhes7))g2+LT>qB(D2hX8wUj-g3bCs%Wt0|5jO72 zZFOxNMyLyPj0oXKTJzymP(?0r{~*@i8y0kN-<-Qt3C6Z^Q>4)?ADtr2?1{=@Fp zRbmH6uN}Q=92^OXeS&Jr03_oDaim-Te=37Jc_kz(c;hT9W2(y~AR;BXv(HQ{f?j10 zh*6X_5*B;X?nt!Ev`o9wh^W!5)|uAnrdeB>CM|Vo3KiJ?DMXbu7hUIES1T5rTLC6( z(rTYNIev1E*(jSK)MH3tlr*G%0VRRY4*v6-QUd+hE3aM4*u*pD`Euy3P0Y@T5mCa2 zd79V69HtPJ@Zl57YuN}QxgJJhWRx5wMH2r5##FcgIv;%S-O|*@c^KdO{(9>C=+fmc z?|(AZ>5-2wjs6&^I@rFiefOJe=gzkpa39C+>FMrd_sc;sEJ!j22!O@tX#lB4AuKCF zSv5(+k`N9_D$_58gk!;g#8Dc$vK@R?X23Jd4?w(Z5^5N$=A%*wy7i$*c@FGHyD>$T z9uT8w5#u&-GHEWE+Bd%Mbl0M-JW)MUeb-h$Z>wLhadBgkDV{1GFP?KW-(g-!+Se!A zX4)3)b+ZTN?e%eHvB*AGRGD;C#P=>*9dWCU{-fE3b4o*h7v$0ZK%Y=ZFJ#!$+4Ec$ zKtX*f3&>Co`L!&M0H3lMAEQJnNn-RSKKV3jFq5^0TJ3}{BIouac^fDlcwf@ne17-d>uPuWzvt*EGQ74+g7xV^H$}a`vGVG$$(c|}Xg?h0u4R{saD=NCXdC>0>q+>z9 zD9MUS4}~RpL^a8h6847_)dJ*}r9g-ed6eUdO3A?!ssXcDHT1($6Zd$Bx#w|&^a~V+u_3_dH-yt_g{-7dp zgoe9<36r^5UIaB#oC8I3dlmYW7eD|IMb@ddi8fqiy2rcknrr6GHFwOl$&H)h?#b>n zjm(wW_PaO+zY+qT0g30;LY^Oh8tKQnndgVX9=|>!<2=-grHr2pGKU3T!dFNOqu+K0 z+=~UiAr$;N8$-(^MOQBuG9b##bj9+9GP-J|(LmSg^RPF52JyTY6nI{?f~|#+o3Ms& pHZArl)1t5Jb@^rJ!v~?@qMD`%g7^c~{E0088n+X*%Ls%v?LVtETh#yn literal 0 HcmV?d00001 diff --git a/database/__pycache__/sql_server.cpython-312.pyc b/database/__pycache__/sql_server.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d55cedcd8485efbbbcf83a142657b7dc57e65410 GIT binary patch literal 3440 zcmbtWZ%kX)6~FJF{lEtECl~@0?9e2$ES?s;b$(?u$L6;=Oee(*jDrA(%9UPdoShF@!`L#vd(S!d+;i_ezjM!D%F0R+wE9=~1i!H&^e;Rx8*Oyfk3c7b1T>5ULLkG$Fadum zOpa2+6oE+eCKBiyNMIh4`ix;ZPI8u5GmL!i^t*hbbXk;EKL2Xv_HUQ}cxUC#?I+*d zTbX;XJd^nWPZ;0`wGtG0pLggz?-1WRIPgZ_n*rUHP6=bMeh4}lBqDGD4U+WW0`R<7LmO^L-InloXF&@t+rfeBhVG z^YVvb9=LEO?PGD3<@sPFsPKGZ&lXqPO)gvtk}H5*M}_*PG=0nQz4Kt2zHM6v9(ry^ zCBV>jv;ZC05s^e8thB8OQ4{Q1wkR20AL2@5*!0tHf3foM7du2&qQNuN2N867d{da}(xd9MYSGU; zQQGC{KG)sT?em^iS@Tj7OxL@89$>^kE8-s&fpPYI%oy{_@|CD0Y!F=>EwQk^Y8i`1 zg%1L%)rbQLUlK=37)om8W^nMbA_XHCWgI{*mt=#VR0AYYz4fLIeJqv7fm}zc7NX2q zaMou=rbcF4bI!xrnzmI$yi!-FYrJo}Yn%O1uC60ndjxn#s|(e&nXaj>=|ryjP`2tY z@Y=TX=8mqG&}Hqb6e_9zcR6Zs-*3O$p5;#E>$`A36&%%**CwuI*(RwB)(;fp9R_%3 zT1-8Ld&&SBc8Vyu0{F$-gBeD9X#9y?=7ktjbMtS`NddS+c=c^9NrZ5mZ)@f(Gn!J= zuCwtuZ)@gk51OO{_Gdgvqrl$l{tmLwU%2e+*y zEsDcrf!8ls*R*Zs&t1=}(zLhvH+_dWWTGDTk82LE; z)mbSj!~){e2XhIs&9yU12IKZ>2Oe1aIPF34Js-tMXv;+v53N1 zb>P^7TCU_VB&B-r6XPo!8;!^+!K?PMus&F@Sa~p4c`#qer7eXjXNH^N zrr%y{Y|Aya zq*BCak~HHOP~)IciqbH=16l=ADWV}snX?kGp4kWNQArx3Y=%nh@(%5UInz_Xq$N~D z9~_m@k_@b8=w@V63z(l2B+99yJZCigUR&xQ}R|7?71YxCQFK# zBd?g~V>R^QQe)*;*H`XudA*)Int$^3*UL8_tW5uI`IFx~{dRhJetP-d+y>Dm)q#HE zkk8xi?LFu6N@IN<*Be8FKQ3bO{kObBUPI6~;A)kyM-tv2SF#12lq@O$8AXyBK%`P( zF`@xXYQjVIf~W*8`NLsAwDy8oMQMx=3V>j}quLAxe$S-+c#bV_NeqneAI3x}ZeUds zsIAXjow_srIDg6q%sSGA1*+EdTgDp36?83+A*RnKYq&o9^XlJs-M8@@E{q5TIKY6 z7$m)4sIl_TVam> zF~G67`o+~2&#R?8KMD^~829ZwgqA<7OC&p3)t(vYAnqN<1bgu%(#+^?;bbLYf)k^R zj!A2MW2VYIYzbeybulWytD_#szWd3+W|5-er2t| y*9=QtAm3bZgMCf+_jT!Y5a2Ra#&}(&2!i+<+W&V{_7C*Re=H}7mNf)KoB3ZRR1FjW literal 0 HcmV?d00001 diff --git a/database/__pycache__/sql_server_connection.cpython-312.pyc b/database/__pycache__/sql_server_connection.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a546da8682b568d9cb214a1732965d9980ca64a0 GIT binary patch literal 3094 zcma)8T~J%c72dsn`o&nt28^kZ!JSw(!6>fr57-?8ibLzjEkE^`!M&ArFGL_Dxc4f6 zM)J_s9^(W8G_FPBxUnF@K2rJw9jkOHcml~LAj9ZE;WH!5m}Lb9Xq^ofU}S9g7&_n`97Wv(w4n&pHsD-C z0{s*@la;eik#kwO;VE)sR&IKV+?kjmKM$*B@_jA61RIV%2 z!hi~TdqrS;?=)fbd1ZMZBnhjy)=5j`{8g@RC?uTosfMfzAry>+Z(DOIFDsHi*d>#A zayTU7F=-2s$o40BH#?79IQgeQhEbYB`Gpfgyl1lK#_qYoy@{=rX@s9GTqrEr$SYnb zE`8hbhULb0=8E?vimCzUvM<<+;%xkdm(#V4d4p6YX4m`9qBZOFM$eXN46}!_M7DR)zszT z)LWOAE{>&Ut|Z5S^GfpKyUCgNlXtJAX2w%j-(R{kwsdLy;hPse|KMio$1}O<8h`Q5 z&4+j5088E*|Ki@8ZLZ|VY@6#Kz>_~4{o>xJr|sm)t>&7Zge+0>d$0Q z>m(9+RhG!@TOxt6?v|1}w;$@tb3nd}aOS3-g}5X)au|y7VGuP0TX#Y_{=$>!y{$y^m6pT3D(CI%6N3Wq zLSfSQ0wGycP3}RT*hfAOD%%I|yyCQK8Nj@j0i<%!MP>WLqBNu$BvB3r6j?QrV{kuhQ&z1CF(-R+Di$-=lhD;mCYPx8CmeC)ng7!lM-%m^|{ z$7ILrKO8YH*tUOaE1$EK&)as5aA~I8RF-B8TQ`rm(*-EcKJK~fnL6-^b>~81X*@I; znuia_iO-6*jl8f>v||~W^XwD!LQ%<-Yx3m@=E2_TS=(&=blsmy4&Crh?VswuR+A_> zG+_Yph(nGFaP51BPs)4d%X%iPpKUIV=TGJ@lsX<%?7m$(+dp4%_#Z62v*4eIw%OD9 zuy(o_Z7EG}LU~1>T1)4wrGK>U_-eTVZ9n|wqhhpq+cKg|g%7N@#1_}=&RKh+02HlR zux}l0f>iq0oUhXs0DcX2KgL{@kHe9?bF{t&eOP9#cX1!?JplcWTr8nArUobd(YNy( zcG34YVd&q_XBsNe{aq~SJ89CdEND1Jdz>8k$C2*?&#Pvh?+ppz0O?zKzCY{@XcCF! z`Aif_HKezl5R!GYZvx4O5+NK^nPiCzXqm$7?q$xzx>gGJuw@#WVBk+{;CUhB<9W#r zV>KTl5Wb^TvZyHJ1CsfqW|rHq&#JLbQ}38m2NTI_A{PTm(-`BwqHq2g<^2Uc`!D7& LE?Y)GGJF0TO<@l- literal 0 HcmV?d00001 diff --git a/services/__pycache__/__init__.cpython-312.pyc b/services/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb1b2e316b591d5a44547a03270d86a29e3910cc GIT binary patch literal 311 zcmX@j%ge<81X30vnR9{kV-N=hn4pZ$8bHQ$h7^VVy$G;WH03eDt|Vo_i5L{r#-DN8G$@a##`JWiN)E$sYPX($*DlDpl^O& zW=VcgW?ni}u!tF`u!sdn_-V4;Vvmnc$xn`tzr|Am)E8e2(Fj&^ODGqv7cK$P2hx<7 zlM^4mlHoIu%kWFd#VW=#52&}qC9xzi25LxgOniJM(DL|ry@JYL95%W6DWy57c11iu oEg;7hO9F`x%#4hTHyQZvGN|5VFnqu*aY0J=0+(JRdl4wS09hqf@Bjb+ literal 0 HcmV?d00001 diff --git a/services/__pycache__/monitoring_service.cpython-312.pyc b/services/__pycache__/monitoring_service.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..856b1f090b6512631d3098f252da82e55e325d66 GIT binary patch literal 10278 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 literal 0 HcmV?d00001 diff --git a/services/__pycache__/task_service.cpython-312.pyc b/services/__pycache__/task_service.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..144beb4dc5096f6b68cdd99b4caa3869758e1dcf GIT binary patch literal 15251 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 literal 0 HcmV?d00001 diff --git a/tcp/__pycache__/__init__.cpython-312.pyc b/tcp/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b8f9e10ee1af7eff0e66b3ade617054b57c45c3 GIT binary patch literal 126 zcmX@j%ge<81X30vnIQTxh(HIQS%4zb87dhx8U0o=6fpsLpFwJV$+}p@c;*$S7L~Xp zmL$fMBp1ZQ$7kkcmc+;F6;%G>u*uC&Da}c>D`EwzW(4A55aS~=BO_xGGmr%UmP8q~ literal 0 HcmV?d00001 diff --git a/tcp/__pycache__/server.cpython-312.pyc b/tcp/__pycache__/server.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..37bdc4b8f21a4e45784f57d9ed9e7e18d397411f GIT binary patch literal 9071 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 literal 0 HcmV?d00001 diff --git a/utils/__pycache__/__init__.cpython-312.pyc b/utils/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cfa42e774cc90e239d3756d12f2d723f28c52e61 GIT binary patch literal 128 zcmX@j%ge<81X30vnIQTxh(HIQS%4zb87dhx8U0o=6fpsLpFwJV$-7v^c;*$S7L~Xp zmL$fMmSpA>$Hd2H=4F<|$LkeT{^GF7%}*)KNwq6t1*&HR;$jfvBQql-V-Yiu1pwc> B8leCH literal 0 HcmV?d00001 diff --git a/utils/__pycache__/helpers.cpython-312.pyc b/utils/__pycache__/helpers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f0a69b7043e06dcefc82db8dadcbcaadb451055e GIT binary patch literal 1676 zcmZ`)ZA@EL7(S=B_qOG>Pz!8G5tS5*Hy3vcF6G(^?nm&3=&BTj(zkG%@?-ds|w&1>fYJd(L^E z_c`ah&wJ1P#b&EQV2#J?cngKlANrtVhJ()j5$Gfki~13ZM^HazjVv*O`wf>29#VFI zQ(O5)8(q<^uIHwgbBkYV^9esLvB2914*}1<0!;!9q9~Tieg)k+==Y+tZ3qp(vQa~n zP>3Nt<_TkQ3C$XYUqDF26HWyWkx#&2s2EB}j3zpaNWt$T4yEer;=gNu}Qmg#E*Pa_}4{sQ9FZP%T_Y4swD|;#6XglT^wV ziEts-V^nRAQK^91>N`tLBnZ)YISsd(_<9HE=2fnP7u>okKhcO$=??9kEjnkGd9~NgqA7hYX}^oQ~u8@eEx% z**)GpV@uP|Ew-lVj*PW_!`hUxHqE^Ez}m7)0&=8M8%r}79fpJAqU3)dxJs8ew>r8tHMV{4YHsc;sHt4yr+ng0 zF8<^8(z3QbT~)xmAq%xx2mcDJ)vy%+HQ#Q}La(32pL+d~CeT6ZBnVe1jZwAuJ1(%jM=`+RbmX z_vW{zzbx)yXDzNRPeOlZZ5(*=cW1VjZocwbajw9Z*AwT#s+ol^L_Y*?uSQ7Lua{yr zvOkZxi3^IVO$tlC03&k#aEKKJy*N}dBJd$e zB?4T?V^M3%r~NN~YTaRZQf-f&y11CNgw&%|n!6a`1&(DPttwq+=2_KJW>*PFoTwL` zu3o_etG=%z{s89-$q^vmy(zah?LM)GDDvf$xj9Zxo!O*YlJxV7-ek||U)xS+9L)<)ryMWF-`cEkY}B|? zHLi4xd*STz2dQT}(>0wLyK}?tPTAcH-Us$$yEfq2b)bgUJ%q`QIGwS!EYK-y`z`^) zKPhCceQ35#Rn5IRb0zI;OE$JA+uy$Lz2A|n{_r>RnJir$zmle%NuyH$MUltQmv7MD zglb|KHtc7Z!qrqb;diKjDWu|&xjPtUB3J G#QY0U=JcHa literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/.idea/.gitignore b/zjsh_mixing_sysytem/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/zjsh_mixing_sysytem/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/zjsh_mixing_sysytem/.idea/inspectionProfiles/Project_Default.xml b/zjsh_mixing_sysytem/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..78dfc6d --- /dev/null +++ b/zjsh_mixing_sysytem/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,18 @@ + + + + \ No newline at end of file diff --git a/zjsh_mixing_sysytem/.idea/inspectionProfiles/profiles_settings.xml b/zjsh_mixing_sysytem/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/zjsh_mixing_sysytem/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/zjsh_mixing_sysytem/.idea/misc.xml b/zjsh_mixing_sysytem/.idea/misc.xml new file mode 100644 index 0000000..62ef35e --- /dev/null +++ b/zjsh_mixing_sysytem/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/zjsh_mixing_sysytem/.idea/modules.xml b/zjsh_mixing_sysytem/.idea/modules.xml new file mode 100644 index 0000000..56ad756 --- /dev/null +++ b/zjsh_mixing_sysytem/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/zjsh_mixing_sysytem/.idea/中交三航背景界面.iml b/zjsh_mixing_sysytem/.idea/中交三航背景界面.iml new file mode 100644 index 0000000..53e58ed --- /dev/null +++ b/zjsh_mixing_sysytem/.idea/中交三航背景界面.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/zjsh_mixing_sysytem/__pycache__/bottom_control_widget.cpython-312.pyc b/zjsh_mixing_sysytem/__pycache__/bottom_control_widget.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fb90395b78b461f08a91f9547bb7571925eddbce GIT binary patch literal 2598 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 literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/__pycache__/dispatch_task.cpython-39.pyc b/zjsh_mixing_sysytem/__pycache__/dispatch_task.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d743f6b12ddc43b8c56b81c486be740b2f61587 GIT binary patch literal 15092 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 SRrAp=@l%Dqc^Tl>)&Bu4JR0}_ literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/__pycache__/system_nav_bar.cpython-312.pyc b/zjsh_mixing_sysytem/__pycache__/system_nav_bar.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6410e160d47db74155a65892c13a5e6d35b608e1 GIT binary patch literal 8093 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 Avj6}9 literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/__pycache__/system_nav_bar.cpython-39.pyc b/zjsh_mixing_sysytem/__pycache__/system_nav_bar.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..acbf850c2dc22fc9474a3d16a4ed7eff9c5bff1e GIT binary patch literal 4295 zcmbVP>yH~(6`z;w@pHYe?B>zd6$oJ<36v6{-BOX=(1%E@-E2gqQKiwuGx3h=@t8Z; z$?oDvi8d%z2x|KQN~x;O7TOY|Xa$89k)(eGpXMv|X8kE&QNO_N-0`mMCPj#`?(uz| zd*+_=JNGwMKA(~BT=~a@TR9*}|D?w7qoMIbl;C3sTe9VbS%aD-cg?d}QDXTyzsVzgdC78{++pZ=v5F~b zq%6}W=Ufk+>E%-vcc@+^JBA-RU3!A2ARNh%ZOKq<{kn8PwiR2wmNwM*lnhPu(Fy5B z;<}_sMiOt9j&f&$+9HgA0S>EF6`?K`q&$hDq6Ghf;L@fP${m>wrXz)ljZL-`S>md# zZpt0W)H+gK3lm!sdzvS0Z4>i&sv~X6mz9nZ>UJXjZE0AqglRiTns{at+RQB0W}!1> z>!ee(a?qUKjQ3OOdFtbZ`WQ-a0q*=I?L8h&Y)Rpyo!yczt31%l9A8R#h?Qdad_x1N2WKo+bDKewK_8*TZPpmQKM)_(Oc%i)r7_gUN7}OO7;!8|nsO)U z?SHZeO@s^4I_+HGtU#k<)iz@o+CxjEbAN@yj#{jpJ8L}3@0kz1d{s18_g&&cbQmg1%YYa zl0HARIQQ}r^XpEPzr0ZoR)sLzt{JQcNEva{bJt)nb*)ohJY+Vli{^QY9c!&Kia|Q{ z;A;?)oRf2EM$X8(s>?+=16fdt@~m1wE2re-DU5GS4}<*Jo-0SdPEH_iEusWxAqeb% zC172b1=Qs})B!C4XKhOgPKeP2Pj=AT2bLVBY*p0dP^a;I7-^N>6g0Ps5Z#}D)O+)G z_w7%2!s`^<)-14)DGfbCIkWV$krA47-m1P*V}847AMFP)f2l=BnPt1}V6OBOb{;i*uyr}j zQaH0H-48_GWCzg}=wpXzB!$4GtAk~!pF)F`Aj&E$TBNOW(xUpk2SBT?O z`#P;c2`CpyGKG^4SyYm;@^7uM@#JVIJpv$)3@Zw+;1tB@9a2|96}QD9%Ca1{M?bU@ zT&s(_0XZ4>N2qVneIV`{k&opHPGkn!qD+f!&L3R_5ZNJgh|^$1Nd&adI!$=}1x$&i zS3KY6t8r#IN3n9jXI_-CnRTh3ZZrmH-inVbN;ss{NQn&`#wfQBozr*GJc$xeVv+!~ zjI80La`MK^$O#SXE5qs(CDNwlIY^`#)AW41-Jp8TG=JK*8u5sLxNrocU7~zHiBz3N z!!(B+CQK4u8^b(`kbv%M`0Po2mQi07W#l1<)AL^lgCGh-t#m_+Db*-pSP|K(VqILY zzCaifP`pnV=x!Tz_Ww;7lKX@qMY)6s!)3LjLZ5D@MOI36KtL{Q9StNS6aT~-4I~4^ z0Bf=$o8=HjIjl>^>qILLl9B6YFRfmnK0a12+Ic}Q;&tQb9S><{VPxhwW=_O2I||mS zLn|l6j#Hu^v;rg3Ct zl7}hEgS$6(w?EnW-Ibkp-{1XYyZh<22Y0Xb(pcA zLZj^%Q6g3%A&7%6F7vJ`RXGB)8OlWGWRA9pzN)UJ5;ts2OQw zB6?0xO*s1dR1^7aa5d42b(DbU54|zoLfM!Zv44DQr;@;wJ~Syp1lev?Lo z-2>w*=(~y%hztyuY|M@rJ`^V6qG04!Hc#Ri669`i9Wc_wen4Wd#o#7*76W9|-c4{c zr!(rKi${c-St%<~Zuw-Zg-=t9yI|be= MAX_RECONNECT: + self.reconnect_timer.stop() # 停止重连定时器 + print(f"已达最大重连次数({MAX_RECONNECT}次),停止重连,请检查服务端状态") + + def _bind_tcp_signals(self): + """绑定TCP socket的核心信号(连接、断开、接收数据、错误)""" + # 连接成功信号 + self.tcp_socket.connected.connect(self._on_tcp_connected) + # 断开连接信号 + self.tcp_socket.disconnected.connect(self._on_tcp_disconnected) + # 接收数据信号(有新数据时触发) + self.tcp_socket.readyRead.connect(self._on_tcp_data_received) + # 错误信号(连接/通信出错时触发) + self.tcp_socket.errorOccurred.connect(self._on_tcp_error) + + # ----------------------- + # 界面初始化函数 + # ----------------------- + def _init_ui(self): + self.setWindowFlags(Qt.FramelessWindowHint) + self._load_background() + + main_layout = QVBoxLayout(self) + main_layout.setContentsMargins(32, 20, 32, 50) + main_layout.setSpacing(0) + + # 1. 顶部区域(标题 + 关闭按钮) + self._add_top_area(main_layout) + + # 2. 对应管片ID区域 + self._add_segment_id_area(main_layout) + + # 3. 网格信息区域(单列6行) + self._add_grid_info_area(main_layout) + main_layout.addSpacing(30) + + # 4. 操作按钮区域 + self._init_operation_buttons(main_layout) + + def _init_operation_buttons(self, parent_layout): + """初始化操作按钮(下料完成/生产异常/生产取消)""" + buttonContainer = QWidget() + buttonLayout = QHBoxLayout(buttonContainer) + buttonLayout.setSpacing(100) + + self.errorButton = QPushButton("生产异常") + self.cancelButton = QPushButton("生产取消") + + self.errorButton.setStyleSheet(""" + QPushButton { + color: #1E1E1E; + font-size: 18px; + font-weight: bold; + padding: 15px 50px; + border: 1px solid; + background-color: #FF0000; + border-color: transparent; + + } + QPushButton:hover { + opacity: 0.9; + background-color: #B71C1C; + } + QPushButton:pressed { + opacity: 0.8; + } + + """) + + self.cancelButton.setStyleSheet(""" + QPushButton { + color: #1E1E1E; + font-size: 18px; + font-weight: bold; + padding: 15px 50px; + border: 1px solid; + background-color: #FFD700; + border-color: transparent; + } + QPushButton:hover { + opacity: 0.9; + background-color: #FFB300 + } + QPushButton:pressed { + opacity: 0.8; + } + """) + + self.errorButton.clicked.connect(self.on_error_clicked) + self.cancelButton.clicked.connect(self.on_cancel_clicked) + + # 初始禁用“停止”和“异常”按钮(未连接时不可用) + self.errorButton.setDisabled(True) + self.cancelButton.setDisabled(True) + + buttonLayout.addStretch(1) + buttonLayout.addWidget(self.errorButton) + buttonLayout.addWidget(self.cancelButton) + buttonLayout.addStretch(1) + + parent_layout.addWidget(buttonContainer) + + def _load_background(self): + self.bg_pixmap = QPixmap("详情弹出背景.png") # 修改为派单任务背景图 + if self.bg_pixmap.isNull(): + print("错误:派单任务背景.png 加载失败,请检查路径!") + self.setFixedSize(800, 500) + else: + self.setFixedSize(self.bg_pixmap.size()) + + def _add_top_area(self, parent_layout): + top_layout = QHBoxLayout() + top_layout.setContentsMargins(0, 0, 0, 36) + + top_layout.addStretch() + + # 标题改为“任务派单” + title_label = QLabel("任务派单") + font = QFont() + font.setPixelSize(24) + font.setLetterSpacing(QFont.AbsoluteSpacing, 2) + font.setBold(True) + title_label.setFont(font) + title_label.setStyleSheet("color: #13fffc; font-weight: Bold;") + title_label.setAlignment(Qt.AlignCenter) + top_layout.addWidget(title_label, alignment=Qt.AlignTop) + + # 关闭按钮 + top_layout.addStretch() + + parent_layout.addLayout(top_layout) + + def _add_segment_id_area(self, parent_layout): + id_layout = QHBoxLayout() + + id_label = QLabel("对应管片ID") # 标签文字修改 + id_label.setFixedSize(318, 32) + id_font = QFont() + id_font.setPixelSize(18) + id_font.setLetterSpacing(QFont.AbsoluteSpacing, 2) + id_font.setBold(True) + id_label.setFont(id_font) + id_label.setStyleSheet( + """ + background-image: url("详情标题.png"); + background-repeat: no-repeat; + background-position: center; + color: #13ffff; + """ + ) + id_label.setContentsMargins(16, 0, 0, 0) + id_label.setAlignment(Qt.AlignLeft | Qt.AlignVCenter) + + self.id_value_label = QLabel("") # 初始管片ID值 + value_font = QFont() + value_font.setPixelSize(18) + value_font.setBold(True) + value_font.setLetterSpacing(QFont.AbsoluteSpacing, 2) + self.id_value_label.setFont(value_font) + self.id_value_label.setStyleSheet("color: #13ffff;") + self.id_value_label.setAlignment(Qt.AlignRight | Qt.AlignVCenter) + + id_layout.addWidget(id_label) + id_layout.addStretch() + id_layout.addWidget(self.id_value_label) + id_layout.setContentsMargins(0, 0, 0, 16) + parent_layout.addLayout(id_layout) + parent_layout.setAlignment(id_layout, Qt.AlignTop) + + def _add_grid_info_area(self, parent_layout): + grid_layout = QGridLayout() + grid_layout.setSpacing(12) + + # 初始化信息条目(6行) + info_items = [ + {"name":"任务单号", "value": "", "api_field": "task_id"}, + {"name": "工程名称", "value": "", "api_field": "project_name"}, + {"name": "配比编号", "value": "", "api_field": "produce_mix_id"}, + {"name": "要料状态", "value": "", "api_field": "flag"}, + {"name": "砼强度", "value": "", "api_field": "beton_grade"}, + {"name": "要料方量", "value": "", "api_field": "adjusted_volume"}, + ] + + self.rows.clear() + self.statusWidgets.clear() # 清空缓存 + + for row, item in enumerate(info_items): + cell_widget = self._create_info_cell(item["name"], item["value"]) + self.rows.append(cell_widget) + grid_layout.addWidget(cell_widget, row, 0) + + self.statusWidgets.append({ + 'api_field': item["api_field"], + 'valueLabel': cell_widget.value # 绑定实际UI控件 + } + ) + + parent_layout.addLayout(grid_layout) + + def _create_info_cell(self, label_text, value_text): + cell_widget = QWidget() + cell_bg = QPixmap("派单任务信息栏1.png") # 正常背景图 + cell_widget.setObjectName("infoCell") + if not cell_bg.isNull(): + cell_widget.setFixedSize(cell_bg.size()) + cell_widget.setStyleSheet( + """ + QWidget { + background-image: url(派单任务信息栏1.png); + background-repeat: no-repeat; + background-position: Center; + } + QWidget:hover { + background-image: url(派单任务信息栏2.png); + } + QWidget QLabel#valueLabel { + color: #9fbfd4; + background: none; + } + """ + ) + + cell_layout = QHBoxLayout(cell_widget) + cell_layout.setContentsMargins(0, 0, 0, 0) + + # 左侧标签 + label = QLabel(label_text) + label.setFixedSize(136, 60) + label_font = QFont() + label_font.setPixelSize(16) + label_font.setLetterSpacing(QFont.AbsoluteSpacing, 2) + label.setFont(label_font) + label.setStyleSheet("background: none;color: #fffffd; font-weight:Bold;") + label.setAlignment(Qt.AlignCenter) + cell_widget.label = label + + # 右侧值标签(设置objectName以便样式选择) + value = QLabel(value_text) + value.setObjectName("valueLabel") + value_font = QFont() + value_font.setPixelSize(20) + value.setFont(value_font) + value.setAlignment(Qt.AlignCenter) + cell_widget.value = value + + cell_layout.addWidget(label) # 左侧的标题标签 + cell_layout.addSpacing(60) + cell_layout.addWidget(value) # 右侧的值标签 + + cell_widget.installEventFilter(self) + return cell_widget + + def eventFilter(self, obj, event): + """ + 实现事件过滤器,动态修改右侧值颜色 + """ + # 只处理父控件(infoCell)的事件 + if obj.objectName() == "infoCell": + # 鼠标进入父控件 → 改#13f0f3 + if event.type() == QEvent.Enter: + if hasattr(obj, "value"): # 确保存在value控件 + obj.value.setStyleSheet("background: none; color: #13f0f3;") + # 鼠标离开父控件 → 恢复默认色 + elif event.type() == QEvent.Leave: + if hasattr(obj, "value"): + obj.value.setStyleSheet("background: none; color: #9fbfd4;") + return super().eventFilter(obj, event) + + def paintEvent(self, event): + if not self.bg_pixmap.isNull(): + painter = QPainter(self) + painter.drawPixmap(self.rect(), self.bg_pixmap) + super().paintEvent(event) + + def _update_ui_from_data(self, data): + """根据TCP获取的数据更新界面状态""" + # 1、更新顶部独立的“对应管片ID” + if "artifact_id" in data: + self.id_value_label.setText(str(data["artifact_id"])) + + # 2、更新网格中的所有字段 + for widget in self.statusWidgets: + api_field = widget['api_field'] + value_label = widget['valueLabel'] + if api_field in data: + new_value = str(data[api_field]) + value_label.setText(new_value) + + # ------------------- 对外修改接口 ------------------- + # row 对应行号(0-6),从0开始 + # -------------------------------------------------- + def set_segment_id(self, new_id): + """修改上方的 对应的管片ID的值""" + if self.id_value_label: + self.id_value_label.setText(str(new_id)) + + def set_row_label(self, row, new_label_text: str): + """修改左侧的显示的标签的文本,如: 创建时间、派单时间等""" + if 0 <= row < len(self.rows): + self.rows[row].label.setText(new_label_text) + + def set_row_value(self, row, new_value_text: str): + """修改右侧的显示的值, 如: 2025年9月9日 9:9:9""" + if 0 <= row < len(self.rows): + self.rows[row].value.setText(new_value_text) + + # ------------------ + # 按钮点击事件 + # ------------------ + def on_error_clicked(self): + """点击“生产异常”:向服务端发送异常指令""" + print("🔘 点击「生产异常」按钮") + self._clear_ui_info() + self._send_tcp_request("production_error") + + def on_cancel_clicked(self): + """点击“生产取消”:向服务端发送取消指令""" + print("🔘 点击「生产取消」按钮") + self._clear_ui_info() + self._send_tcp_request("cancel_feed") + + # -------------------- + # 清空界面信息的通用方法 + # -------------------- + def _clear_ui_info(self): + """清空管片ID和网格信息""" + if self.id_value_label: + self.id_value_label.setText("") + for widget in self.statusWidgets: + widget['valueLabel'].setText("") + print("ℹ️ 界面信息已清空") + + # ------------------ + # TCP客户端核心功能 + # ------------------ + @Slot() + def _on_tcp_connected(self): + """TCP连接成功回调""" + self.is_tcp_connected = True + self.has_connected_once = True + self.reconnect_timer.stop() # 停止重连定时器 + self.reconnect_count = 0 # 重连计数器清零 + self.is_running = True + print(f"TCP连接成功:{self.tcp_server_host}:{self.tcp_server_port}") + + # 连接成功后,向服务器发送“请求初始数据”指令 + self._send_tcp_request("get_initial_data") + + # 更新按钮状态:启用“生产异常”“生产取消” + self.errorButton.setDisabled(False) + self.cancelButton.setDisabled(False) + + @Slot() + def _on_tcp_disconnected(self): + """TCP连接断开回调""" + self.is_tcp_connected = False + self.is_running = False + print(f"TCP连接断开:{self.tcp_server_host}:{self.tcp_server_port}") + + # 启用/禁用按钮 + self.errorButton.setDisabled(True) + self.cancelButton.setDisabled(True) + + # 重置状态指示灯为“未连接”状态 + for widget in self.statusWidgets: + widget['indicator'].setStyleSheet(""" + QLabel { + background-color: #9E9E9E; + border-radius: 10px; + border: 2px solid #555555; + } + """) + + @Slot() + def _on_tcp_data_received(self): + """TCP数据接收回调(服务器发送数据时触发)""" + tcp_data = self.tcp_socket.readAll().data().decode("utf-8").strip() + print(f"TCP数据接收:{tcp_data}") + + # 解析数据 + try: + status_data = json.loads(tcp_data) + self.latest_json_data = status_data + self._update_ui_from_data(status_data) + except json.JSONDecodeError as e: + print(f"TCP数据解析失败(非JSON格式):{e}, 原始数据:{tcp_data}") + except Exception as e: + print(f"TCP数据处理异常:{e}") + + @Slot(QAbstractSocket.SocketError) + def _on_tcp_error(self, error): + """TCP错误回调""" + if not self.is_tcp_connected: + error_str = self.tcp_socket.errorString() + print(f"TCP错误:{error_str}") + self.is_tcp_connected = False + self.is_running = False + + # 启用/禁用按钮 + self.errorButton.setDisabled(True) + self.cancelButton.setDisabled(True) + + # 首次连接失败时,启动重连定时器 + if not self.has_connected_once and self.reconnect_count == 0: + print(f"将在{RECONNECT_INTERVAL / 1000}秒后启动重连(最多{MAX_RECONNECT}次)") + self.reconnect_timer.start() + + def _send_tcp_request(self, request_cmd="get_status"): + """向TCP服务器发送请求指令""" + if not self.is_tcp_connected: + print("TCP连接未建立,无法发送请求") + return + print(self.latest_json_data) + # 构造请求数据 + request_data = json.dumps({ + "cmd": request_cmd, + "erp_id": self.latest_json_data["erp_id"], + "artifact_id":self.latest_json_data["artifact_id"], + "timestamp": self.get_current_time(), + "client_info": "布料系统客户端" + }) + "\n" # 增加换行符作为数据结束标识 + + # 发送请求数据 + self.tcp_socket.write(request_data.encode("utf-8")) + print(f"TCP请求发送:{request_data.strip()}") + + # ------------------ + # 时间相关的通用方法 + # ------------------ + def get_current_time(self): + """获取格式化的当前时间""" + return datetime.now().strftime('%Y-%m-%d %H:%M:%S') + + +# 测试代码 +if __name__ == "__main__": + app = QApplication(sys.argv) + dialog = DispatchDetailsDialog() + dialog.show() + sys.exit(app.exec()) diff --git a/zjsh_mixing_sysytem/main_window.py b/zjsh_mixing_sysytem/main_window.py new file mode 100644 index 0000000..038d2e3 --- /dev/null +++ b/zjsh_mixing_sysytem/main_window.py @@ -0,0 +1,113 @@ +# coding: utf-8 +from typing import List +from PySide6.QtCore import Qt, Signal, QEasingCurve, QUrl, QSize, QTimer, QEvent +from PySide6.QtGui import QIcon, QDesktopServices, QColor, QPalette, QBrush, QImage +from PySide6.QtWidgets import (QApplication, QHBoxLayout, QVBoxLayout, + QFrame, QWidget, QSpacerItem, QSizePolicy, QMainWindow, QPushButton) + +from system_nav_bar import SystemNavBar +from bottom_control_widget import BottomControlWidget +from dispatch_task import DispatchDetailsDialog + + +class MainWindow(QWidget): + def __init__(self): + super().__init__() + self.initWindow() + self.createSubWidgets() # 创建子部件 + self.setupLayout() # 设置布局 + + def initWindow(self): + """初始化窗口基本属性""" + self.setWindowTitle("中交三航主界面") # 设置窗口标题 + # 设置最小尺寸(可根据需求调整) + # 触摸屏尺寸为 1280*800 + self.setMinimumSize(1280, 800) + self.setObjectName("MainWindow") + + # Qt.FramelessWindowHint + self.setWindowFlags(Qt.FramelessWindowHint) # 无边框窗口 + + # 设置主界面背景图片 + try: + self.background_image = QImage("主界面背景.png") + if self.background_image.isNull(): + raise Exception("图片为空,可能路径错误或格式不支持") + # print("图片加载成功") + except Exception as e: + print(f"主界面背景图片加载失败: {e}") + self.background_image = None + return # 加载背景失败 + + self.update_background() + + def createSubWidgets(self): + """创建所有子部件实例""" + self.system_nav_bar = SystemNavBar() # 最上方:系统导航栏 + self.bottom_control_widget = BottomControlWidget() # 最下方: 控制的按钮 (系统诊断、系统中心等) + + # 中间:任务派单 + self.dispatch_dialog = DispatchDetailsDialog(self) + + def setupLayout(self): + """设置垂直布局,从上到下排列部件""" + main_layout = QVBoxLayout(self) # 主布局:垂直布局 + main_layout.setSpacing(0) # 部件间距0px + main_layout.setContentsMargins(0, 0, 0, 0) # 左上右下边距0px + + # 添加最上方的 系统导航栏(包括系统标题、中交三航的logo等) + main_layout.addWidget(self.system_nav_bar, alignment=Qt.AlignTop) + # 添加中间内容区 + main_layout.addWidget(self.dispatch_dialog, alignment=Qt.AlignCenter) + # 添加最下方的 控制按钮控件 + main_layout.addWidget(self.bottom_control_widget, alignment=Qt.AlignBottom) + + # 关闭按钮 + self.system_nav_bar.msg_container.close_btn.clicked.connect(self.close) + # 将布局应用到主窗口 + self.setLayout(main_layout) + + def show_dispatch_dialog(self): + """显示派单详细弹窗(居中显示在主界面)""" + # 计算弹窗居中位置 + main_geometry = self.frameGeometry() + dialog_geometry = self.dispatch_dialog.frameGeometry() + dialog_geometry.moveCenter(main_geometry.center()) + self.dispatch_dialog.move(dialog_geometry.topLeft()) + + # 显示弹窗 + self.dispatch_dialog.show() + + def update_background(self): + """更新主界面背景图片""" + if self.background_image and not self.background_image.isNull(): + palette = self.palette() + # 按当前窗口尺寸缩放图片 + scaled_image = self.background_image.scaled( + self.size(), + Qt.IgnoreAspectRatio, + Qt.SmoothTransformation + ) + palette.setBrush(QPalette.Window, QBrush(scaled_image)) + self.setPalette(palette) + self.setAutoFillBackground(True) + + def resizeEvent(self, e): + """窗口大小变化时的回调""" + super().resizeEvent(e) + self.update_background() # 重新加载背景图片 + + + def keyPressEvent(self, event): + if event.key() == Qt.Key_Escape: # 按下Esc键, 退出界面 + self.close() + super().keyPressEvent(event) + + +if __name__ == "__main__": + import sys + app = QApplication([]) + window = MainWindow() + window.show() # 显示主界面 + # window.showFullScreen() # 全屏显示主界面 + sys.exit(app.exec()) diff --git a/zjsh_mixing_sysytem/system_nav_bar.py b/zjsh_mixing_sysytem/system_nav_bar.py new file mode 100644 index 0000000..35ed612 --- /dev/null +++ b/zjsh_mixing_sysytem/system_nav_bar.py @@ -0,0 +1,141 @@ +from PySide6.QtWidgets import (QWidget, QLabel, QHBoxLayout, + QSpacerItem, QSizePolicy, QPushButton) +from PySide6.QtGui import QPixmap, QFont, QPainter, QIcon +from PySide6.QtCore import Qt, QTimer, QDateTime + +# 自定义消息容器, 显示系统消息 +class MsgContainer(QWidget): + def __init__(self, parent=None): + super().__init__(parent) + self.setFixedSize(770, 24) + + # 加载消息区域背景图 + self.bg_pixmap = QPixmap("系统消息背景.png") # 替换为实际路径 + if self.bg_pixmap.isNull(): + print("警告:系统消息背景.png 加载失败") + + # 消息区域内部布局(喇叭+文本) + msg_layout = QHBoxLayout(self) + msg_layout.setContentsMargins(0, 0, 0, 0) # 调整内边距,避免内容贴边 + msg_layout.setSpacing(3) # 喇叭和文本的间距 + + # 消息喇叭图标 + self.msg_icon = QLabel() + self.msg_icon.setFixedSize(13, 18) + # self.msg_icon.setStyleSheet("background-color:red;") + self.msg_icon.setPixmap(QPixmap("系统消息喇叭.png")) # 替换为实际路径 + msg_layout.addWidget(self.msg_icon, alignment=Qt.AlignVCenter | Qt.AlignLeft) + + # 消息文本 + current_time = QDateTime.currentDateTime().toString("hh:mm:ss") + self.msg_text = QLabel(f"{current_time} 开始启动智能浇筑系统") + self.msg_text.setFixedWidth(740) + # self.msg_text.setStyleSheet("color: white; font-size: 14px;background-color:red;") # 文本样式 + self.msg_text.setStyleSheet("color: white; font-size: 16px;font-weight:Bold;") + self.msg_text.setAlignment(Qt.AlignLeft | Qt.AlignVCenter) + msg_layout.addWidget(self.msg_text) + + # 关闭按钮 + self._create_close_button(msg_layout) + + def _create_close_button(self, parent_layout): + self.close_btn = QPushButton() + self.close_btn.setFixedSize(20, 20) + + close_icon = QPixmap("关闭图标.png") + if not close_icon.isNull(): + self.close_btn.setIcon(QIcon(close_icon)) + + self.close_btn.setStyleSheet( + """ + QPushButton { + background-color: transparent; + border: none; + padding: 0px; + } + QPushButton:hover { + background-color: red; + border-radius: 2px; + } + """ + ) + + parent_layout.addWidget(self.close_btn) + + def paintEvent(self, event): + # 绘制消息区域背景图 + super().paintEvent(event) # 确保子控件正常绘制 + if self.bg_pixmap.isNull(): + return # 图片加载失败则不绘制 + + painter = QPainter(self) + painter.setRenderHint(QPainter.SmoothPixmapTransform) # 缩放平滑 + painter.drawPixmap(self.rect(), self.bg_pixmap) + +class SystemNavBar(QWidget): + def __init__(self, parent=None): + super().__init__(parent) + # 设置尺寸 + self.setFixedSize(1280, 80) + + # 1. 加载背景图 + self.bg_pixmap = QPixmap("系统主界面导航栏.png") # 替换为实际图片路径 + if self.bg_pixmap.isNull(): + print("警告:背景图加载失败,请检查路径!") + + main_layout = QHBoxLayout(self) + main_layout.setContentsMargins(9, 9, 9, 19) + main_layout.setSpacing(100) # 注意:左侧的logo+系统标题的容器 和 系统消息的间隔 + + # 左侧区域:logo + 系统标题 + left_container = QWidget() + left_container.setFixedSize(400, 53) + left_layout = QHBoxLayout(left_container) # 容器内部的水平布局 + left_layout.setContentsMargins(0, 0, 0, 0) # 容器内边距 + left_layout.setSpacing(6) # 设置logo和标题之间的间隙为6px + # 系统logo + self.logo = QLabel() + self.logo.setFixedSize(53, 53) + self.logo.setPixmap(QPixmap("系统logo.png")) + left_layout.addWidget(self.logo, alignment=Qt.AlignTop) + # 系统总标题 + self.title = QLabel() + self.title.setPixmap(QPixmap("系统总标题.png")) + left_layout.addWidget(self.title, alignment=Qt.AlignCenter) + main_layout.addWidget(left_container, alignment=Qt.AlignTop) + + # 中间区域:系统消息(喇叭+文本+背景) + self.msg_container = MsgContainer() + main_layout.addWidget(self.msg_container, alignment=Qt.AlignBottom | Qt.AlignRight) + + # 右侧区域:实时时间 + self.time_label = QLabel() + self.time_label.setStyleSheet("color: white; font-size: 16px;font-weight:Bold;") + main_layout.addWidget(self.time_label, alignment= Qt.AlignTop | Qt.AlignRight) + + # 启动时间更新定时器 + self.timer = QTimer(self) + self.timer.timeout.connect(self.update_time) + self.timer.start(1000) # 每秒更新一次 + + def paintEvent(self, event): + super().paintEvent(event) + + painter = QPainter(self) + painter.setRenderHint(QPainter.SmoothPixmapTransform) # 缩放时平滑 + + painter.drawPixmap(0, 0, self.bg_pixmap) + + def update_time(self): + current_time = QDateTime.currentDateTime().toString("yyyy/MM/dd hh:mm:ss") + self.time_label.setText(current_time) + +# 测试代码 +if __name__ == "__main__": + import sys + from PySide6.QtWidgets import QApplication, QMainWindow + + app = QApplication(sys.argv) + nav_bar = SystemNavBar() + nav_bar.show() + sys.exit(app.exec()) \ No newline at end of file diff --git a/zjsh_mixing_sysytem/主界面背景.png b/zjsh_mixing_sysytem/主界面背景.png new file mode 100644 index 0000000000000000000000000000000000000000..dc65b12a12f9a5b9c756fea55721793913efeb90 GIT binary patch literal 2354 zcmbVOeQZ-z6fYlRA21fMf`V+%w>b*fzSp;|ACDC*>tx;5(QS>}h=5(+Tl==Que5Kp zD>$VXA|{A95S)xuCQ>Ka9|A@on+e1a5{P3~q9bA^L|`}|CL06;c<$@kfI*3zr0xCq z-QPLqch0@(7E9&w%#1l15{V?!RBEh-U#&zkS&}vpMvKFl9q^OxEv@%UBvYS3p9zwV zJTJ6giMN%X|Y6vAMrzo0K(}e}txZ&W<$28K_ z##hIE!Ay@k1;I-bL?94Q1PT1Y1z<@#iKOjI7`8yMsOduE$w0Q}ofSc*)*3Y;2>}<(8 z2s0OD*2aLMeu8Hq$1LU$A-XtjVayK^z6g zF?3<0M#B_pD7jjrQ^_f?Lyn^=o;v8JE}j+;N#2OQ!5as4LDgK{g1wg z!~A@s5U}}Jg9FrhV&4%EJb^B3JP+cZDT;d!UG4-NUJNu$K2WrbcQi)Q9nPo|E>*6%K=i1c*`$BnSiTjm+WfnyZU{RyU~G7q1}0irF*DcOmf5|W;px8-imyb@qu?mtqkVR zC!XrODFchnSO{A5fBaW;Y%&~d%GrrlWziZVI_bWH^k@b2pX=`mZ&x$*A~mEPUC~0_ik8jFdUf=(-D&>q9@;S zsEs^~bRNsADo+=^&p`Cu+ZOg-s@yl&9*@~zaNOwnXr{6TW1GdE82+YRbeowYm8wp4KzHO? zQTn4*qTt!TR@_DVV9`rGmpiU3M!}WAdF%RWsJX>b8y)y$6iJoQM44is0a`q?I-vu7 zV@Ec01h@w~vZFM1HV+V)YZC2e(TF*2wTOA3a?cBtWpxiB0Y$sN2R~ngIQuQ_r>CZ& z5!jWlM2W-4uD=AHho#%&F{1CQL%;ozG8v7W2Txz#IUS84_~|I=!zWPxUx?QS=vS7( z^#DuVYI&H{t3N3xYBpBh?R+_Jr}Rw1D-n#auc4&HE0)HI^24Gm%5>= z+|zeU8e<(j61r?o%hp~j^Gn%a@ACL`6Gxb9og%;SM5&ZS-y=;~5yF{{L2*XOzAoRr z-fR{8d1}4u664j)@o%=dZSk+-=l)8VEO%v@oj9)U!c1gJYD@<);T3K0RY{-S^oe4 literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/底部背景.png b/zjsh_mixing_sysytem/底部背景.png new file mode 100644 index 0000000000000000000000000000000000000000..3a66c09eecf9e9bc4d85a3f6f8e7a2a4755c7c56 GIT binary patch literal 14745 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⪙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 literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/派单最底部.png b/zjsh_mixing_sysytem/派单最底部.png new file mode 100644 index 0000000000000000000000000000000000000000..92f9b557ea4a7985aa4eca56dd1dc034e3935c99 GIT binary patch literal 1933 zcmd5-%Wu?19G)OiXed%ELw3S%+jrokp8Q1Wujx%>4{$c+I>UZ(-H$SP@hv~|t9DoCditiM-dFu!Odq0gD8*(G~ zl7u2QC=*R?^y5^a0XTiOpVDxXOW5S?DDkv^e*H~@5%aW*c7TJl$~)1@PR7@FRvY2Y zX6Q2Q>=}5vPn3d~OA7mOH_1ug(*}BpS{KJig9C`%^t6S-AlwMnU{z!sItJE5j4fDk z4bz#Mo1Z@gEo@(>hY71fgE9XY^(bk+qTO zx-P;NvMgO8^n5#!w67=m$*~5X=V2D5G7U&jx@qdzX_z*#9b(yE;CX`a5E=*;wYHy!Is}`fVWEhq7m0%W**uH)#IVGi640#ZwI zNt2M*d{0y47*WIsvmM*D9jrGgt>_k=W4hZ69o=D=SFmmJiW`pQeGzUIB`}s}|5N^} zEK)5YJEWXPMZ*r`K>rSLa5vH1W4M|a#j+e#YEuq7o~Q|zsZnjj{Wa!Q5zjpZe9s87d`^=+n Qi$BcT(yIUS;@8)o0#cVF5dZ)H literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/生产取消按钮.png b/zjsh_mixing_sysytem/生产取消按钮.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff0693a7fbea7662d0518974bc8cf79f607c03b GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^8-Un^gAGV(P1`g9NUijAaSW-L^Y#)WFN31MfenvU zAIj>Us4UUR)XjN4?=Qbg?V-T5giAa=vl=~(4Kmr(&K_7IIm3i`GJOTFpRu{gz^v*e S$@vxNXa-MLKbLh*2~7YA6i$%< literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/生产异常按钮.png b/zjsh_mixing_sysytem/生产异常按钮.png new file mode 100644 index 0000000000000000000000000000000000000000..487422254799142e139028665faa7a140d8e50c3 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^8-UoDgAGWUPj1oxQp-JE978JRyuHN8%b+N5V8i3J z4fUQ8l_ffvx;d}kedc$mJrtOhaEZrfR->n}K_;8p*#k=?XP7Wgrla7lv}cUg&P-i% Td325doy_3r>gTe~DWM4fN$pL# literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/系统logo.png b/zjsh_mixing_sysytem/系统logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e50db7328fdf3b83da3565461df467c43fade506 GIT binary patch literal 2158 zcmV-!2$A=RP)y^5E!yp{GRj9n|tqjzx$cr z`Q6|9-S-qi2!5bA;8|cU5CypX@Pa{BCr}0C0~>*FubEB)?mj$(5FZF3Y~uEj#Ii{U z;dO=ciig!e9&qoE>`hm70C)f}E4y!a_cn%=G^d+U_HZn40#N<`xo#*MFiG<8@}B@K z-Hgj650?Yu2g0J=WhIlh;c5+1kMZ_EEZU(M@Hwn287rW5%>N`BD$h!F$#Wh-I5lP~UVJi`ilB&3B5> zgsKSe_aGrQoTQlpvP5L{%flU=MqdA;mWN(0q`IM<;6NX_-`fiU0(|K**?DhsB@35n zdF>4?Mw6xAz*3fQDkfaf2V3^@Nxp%}Lm?$Ol&Mp~_)nRE1zXB7XQap${*`lphkr4L zgN0}KM`k&t9gsSE2+uw-ug}1J3W+DyXenxjEvsUgF-?OIR_beYSgm$>yx_<=Ufx(r zm>a}SILoZN$H_-QQ3X$Ks-)zkmcOT`^a=QuLt@EFEoYjcJR?Phl~h;XB9&1nRSt7s z<(E?oq^(KBTdhE+YmobsW{jsYBZcx-cyyI^@PXglkV{!76l7fM9fd*;uAa89ucv(0 z>pM`nyP;5CJI$et6iyfu|M58{=B7ChN8!q{0AhT+XZ&J6`vuV zPWR+*n9D~e;B-ax-~g}RP{NBdy$B2#;xtxPb^(boEFws58#>JLIWjUx{v)T$E;`*4 z6zIzf)77kd>-fL}msQr#V1~4(?{^wIexd?{p^cEx(fnq8f!vo6;{Z>4?GU3PG_}aF5%9xj^76hOYl%BQMr3!>@p%0g8T3L z8H<)_*$@0K9zuL<{B}J2xdI+prscDY6u!(nenHDJI4RvM_npt$5g3YB!jF z&jddI@+2$r8Zpu+U!#(%>QnOXmnOi{WDSv;XjCdCw&4Lh^@tJm?kdvHLBKP4a{Sq^ zV_yoOW*`*!Jd~DBM zDwT?flP0m))J06Rfy!^YaQ9cqtHy4%5fJQ)0(VYVv~aKq7Kgy%C6l--A+m447K@Fi z*5;Dg>S*s=y$>mQX}VXc9U(`ev~OwYXd}>D&FHaR-6_r?W5;DK>AU!*po?MysB3I; zzm!8pVBpIw3s9)sc!MUYGk-SeN<0lQ#0#7ZjjqMmyP4$xzS{0 zeNA8WP+>^Q0}o@d5n$9}f0-6)@vrbco8%vq9VCE(%Vymfr_?ZYfeRN-}i5{PA|7rN=H!E*6Zc0;ihta?UAvwfYT=U{py7-!*VOY z3Z;T=Y4JS2tB%9P=dKwun=EpL=I!Mnw=EWPH@Fh3&5qS}?W!s~c9s`*H^jPV_sjU~ z$!HQ|Z~TzBuKMy~wctpFh)K;6kFCrR)jGXnVVXL{(iJ)4Z`%%t^WW9Wi*C>Ua?#RQ zBaiE9TSV&9IbvdJjwmWV--Jt&7tU)ASb^A&wx-Nd%-hqzb;z5!q~L2Z-cWpnYm zyQrrgFHfzra_kv(rpXot~oN3vyMbef$n)Civq&bmTxyAul@9 zKpFG)Rx?gBf(he>%k7|`0QCAcbhY&ZHHG{J-u3;7iy9ps#AqOW;}Ohe3&BBw17-Sx z1iW{kfrkeNP?$c4duO^4Juc?DPq{v7uN1=*L9SDN3ZD!TBoCJYn{ET3n@M6Uz526P zE^yy%3cC-OfAwcC>ESO`A@9qZxZ6ik7<>pk*v;7UVex9kbbncrKIDy&N`oI6U#d-| k%q1m*kEQoGJtM$>0a@j)Og_BNNB{r;07*qoM6N<$g3j6~DF6Tf literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/系统主界面导航栏.png b/zjsh_mixing_sysytem/系统主界面导航栏.png new file mode 100644 index 0000000000000000000000000000000000000000..7db6d8b2ef44ce7e7a48a1a5f6c6ce574611d7df GIT binary patch literal 23632 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 literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/系统总标题.png b/zjsh_mixing_sysytem/系统总标题.png new file mode 100644 index 0000000000000000000000000000000000000000..64f34be3e06c40a65fd53ea4f523cebbfe4850e2 GIT binary patch literal 6262 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 BcfbGu literal 0 HcmV?d00001 diff --git a/zjsh_mixing_sysytem/详情弹出背景.png b/zjsh_mixing_sysytem/详情弹出背景.png new file mode 100644 index 0000000000000000000000000000000000000000..7c003c296102c6b712a95145c0c41a34fd28cfd3 GIT binary patch literal 19062 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 literal 0 HcmV?d00001