From 025368d66be9d7d99b6949fabde49ea2d213b3d2 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 28 Aug 2026 22:31:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=A1=E6=89=B9=E6=94=B9=E8=B5=B0?= =?UTF-8?q?=E9=92=89=E9=92=89=E5=AE=A1=E6=89=B9(dingdingflow)=E2=80=94?= =?UTF-8?q?=E2=80=94=E5=8F=91=E8=B5=B7=E6=97=B6=E6=8E=A8=E9=92=89=E9=92=89?= =?UTF-8?q?+=E5=9B=9E=E8=B0=83=E9=92=A9=E5=AD=90=E5=86=99=E5=9B=9E,?= =?UTF-8?q?=E6=97=A0=E9=85=8D=E7=BD=AE=E9=99=8D=E7=BA=A7=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?;=20=E8=A1=A5.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 179 -> 0 bytes .../__pycache__/init.cpython-310.pyc | Bin 1289 -> 0 bytes .../__pycache__/opp_ability.cpython-310.pyc | Bin 13739 -> 0 bytes .../__pycache__/opp_common.cpython-310.pyc | Bin 6870 -> 0 bytes .../opp_data_capability.cpython-310.pyc | Bin 1753 -> 0 bytes .../opp_report_capability.cpython-310.pyc | Bin 7582 -> 0 bytes pipeline_opportunity/opp_ability.py | 26 +++++++ pipeline_opportunity/opp_report_capability.py | 72 ++++++++++++++++-- 9 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 .gitignore delete mode 100644 pipeline_opportunity/__pycache__/__init__.cpython-310.pyc delete mode 100644 pipeline_opportunity/__pycache__/init.cpython-310.pyc delete mode 100644 pipeline_opportunity/__pycache__/opp_ability.cpython-310.pyc delete mode 100644 pipeline_opportunity/__pycache__/opp_common.cpython-310.pyc delete mode 100644 pipeline_opportunity/__pycache__/opp_data_capability.cpython-310.pyc delete mode 100644 pipeline_opportunity/__pycache__/opp_report_capability.cpython-310.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a60b85 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +*.pyc diff --git a/pipeline_opportunity/__pycache__/__init__.cpython-310.pyc b/pipeline_opportunity/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index a116116dfffd2123917a386416a4043198bfefc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmd1j<>g`k0%hNcSyn*$F^Gc(44TX@8G*u@ zjJG6n@)J|y3o;8*b29T%u00bGdfxfy3Lbd>3YPIH1cHVT!9-B;5SH;hfq05|$V0@aNW8>1gND3B z7(gL^@;w2egp!a|B`$xVB@&u$CgX}ZCfTJTz56@6pJt5)O|R4J{pS-?!5}RkH1}(? zdfT~OYS-spmqrtbc72`}N|FNQpM|96{wCX+29%^~Q4%=3wfGJ+dCyXn*k~)j6|;}Du@Fn5MviMK%QNA=t^~RGl$~J8JaG& z@_Y8pb@t#dS9WEGX1CbWin9W}a<7Z%_G+_w)1{>yOuL?;*^Smjjvd^fvuUTXBwZXF z{6@0(=Gbn=;WDxt8}!LG?@(Pn+~MaEE5gCfgAAv3x4FMa^Q(0B4luGi{{XDB8-O^q zWqWmo=L;o!bB(Ue&{`FGw3a97(_dkW?BEtFX6(YB95b1djNz;DNK~TPKkWRjO8^zn zi9OzGO_!X;zkrplBo&o}jjNod1wKNTQ|}&KUAXJ&E)4VJ(E}br+?-#-GE4|2(nW#? zP^y=J^;A3}j3bOp&pnZdMU2t6DE^^{Oz&7fM&t0EIte)+@tXdh@iZnr;!g{wQBmN? z?-22g<6kfd3>?0V;!!Yn)a}>9`*E&NF!>QszsXK>v@+#v!kKd047M=9LfAUi<*3xT z?~k_G?a&{jL&r(F98(Na)@5==>NVE1Ee;MxYjE_u00m~oZlOz)h>3r5LpQ^=TvTlh={722|Ie&dvPMC@oxBR0~ zJ+8!Kmd7ylkl>=R{5R5jq3*>8Z`x@eAKP$Z%sTznaXkse#`_RNkB9}&aeM-Pr(gvp zgqNZi#3I(;fpo|RQX@ngjzla!*T|*x#ANeQN3ZS&jPB)uqdS_q!U_1#3Y;C$NK%#0 S@vAbpwL}y+78FF`xaSq#5iFGe diff --git a/pipeline_opportunity/__pycache__/opp_ability.cpython-310.pyc b/pipeline_opportunity/__pycache__/opp_ability.cpython-310.pyc deleted file mode 100644 index 4ef77fcef880802c6d136e63ce63153ff319c99b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13739 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 diff --git a/pipeline_opportunity/__pycache__/opp_data_capability.cpython-310.pyc b/pipeline_opportunity/__pycache__/opp_data_capability.cpython-310.pyc deleted file mode 100644 index 786f66768d7d4aaaa152a565a539a8242b69e579..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1753 zcmZ8iTTdHD6yBNj4P(M3g!C?}Y9$<^(DtP-sA~F9HByzA=82cp*0W9A*j{UPE#%0N zY%Vc3$D{&Mg3|ygY10r4N>zvrK~?|7zT(;SKJng{_ROxG03*%loVo4!&i9>JwWA{_ zKzsk&dq4i|6@)|X9B(2xUqaWuf`JIb0zm}FQ34NRB#>U>CxLM^ERr@792bT?Tg!{z+Biei<^zHeKx&(wD+K1 zyX($alN+qG$X>o+r7d%23T$&`*<2~Ot4Dj2tn^2tQajq4I?Rm*gXUDuEKjk*KCD~M zU$MEOReMz5&4v3lm0k>AxR8>moX{did$Wy$dA9sZxL>__F`SY!aaAT+dw!`=snicv z&3q-oFKjH1v#osN@dU(VK3Z>7*35^i_1a%{u2kP!v1&^YUt{T+8y{S1mN(e;XnnWH z@(=3OS#x8RO|P(>bqLfNdv1-sH1GbzswHcF`}jd?^L`V64QUacBBMP@<&n5TrR$1r z2(}+)ui2l$81=!>YJA!Q{U7Ms*D&N!7H7Q#mGNy~7ST`^Wqkw>30aZ$WJRz=usyVo zc#?>C!S@Xbx{wu!KkFM4uLvaYjR5qtr9Xhn*u)EaezQ?2nvZkVpKEU3-P}NGBG~W{ zIinfgcq|dq4gXCgGon&r_%t<5ql$q(HP9!9Uroj{QcS-U8kAG9L0w4_g=$wRh7Uyi zh6uFKHn1tjLb(cQ2Ok137(SP+rvmK)_uqk3ETzO_NkvjqDV6H!WK7Qtf-MnQm!+tj zlE06|VeV2YW1P_xnMQ9&%`ftsHGT`u1+fPO5bs^62hkpwjPh_=joYuY+6PV^IXOaE z)F+H#$P#w4B&I)yMOIt@Nw~>rRGye)AeBir_l!+!uzS;N;&*egaG1-R57*7=TsTeR zF4MOcoI9NJ zIJ5y_=fSnPKyAJd<2+f%c#`7zp|P2T6uYaR2}S diff --git a/pipeline_opportunity/__pycache__/opp_report_capability.cpython-310.pyc b/pipeline_opportunity/__pycache__/opp_report_capability.cpython-310.pyc deleted file mode 100644 index b050d1b64ff9d457fcc013df03b901ae069cfffb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7582 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 wKq+j+Hy7|6Z %s", biz_id, result) + else: + logger.warning("钉钉审批结论回流失败: opp_approval=%s msg=%s", biz_id, msg) + + async def list_approvals(project_id="", status=""): db, dbname = get_db() async with db.sqlorContext(dbname) as sor: