From 6189bc29120cf6100fefa52080e4095681915e4c Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 18 Oct 2024 14:45:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=9A=E6=B0=B4=E6=BD=AD=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 275060 -> 275060 bytes src/WMS.Web.Api/Controllers/TestController.cs | 14 +- src/WMS.Web.Api/appsettings.json | 6 + src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 86 +++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 24 ++ .../Dto/JuShuiTan/JuShuiTanInventoryRequst.cs | 36 +++ .../JuShuiTan/JuShuiTanInventoryResponse.cs | 55 +++++ .../Dto/JuShuiTan/JuShuiTanStockRequst.cs | 21 ++ .../JuShuiTan/JuShuiTanStockResResponse.cs | 13 ++ .../Dto/JuShuiTan/JuShuiTanStockResponse.cs | 21 ++ .../IService/Public/IJuShuiTanService.cs | 16 ++ .../Options/JuShuiTanOptions.cs | 14 ++ .../Services/ProductInventoryService.cs | 91 +++++++- .../Services/Public/JuShuiTanService.cs | 218 ++++++++++++++++++ .../DependencyInjection/AppBuilder.cs | 5 +- 15 files changed, 607 insertions(+), 13 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanInventoryRequst.cs create mode 100644 src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanInventoryResponse.cs create mode 100644 src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockRequst.cs create mode 100644 src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockResResponse.cs create mode 100644 src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockResponse.cs create mode 100644 src/WMS.Web.Domain/IService/Public/IJuShuiTanService.cs create mode 100644 src/WMS.Web.Domain/Options/JuShuiTanOptions.cs create mode 100644 src/WMS.Web.Domain/Services/Public/JuShuiTanService.cs diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index e1dbf467c2fed9dfe4596e91234d8ebac7117f45..49033e0ef335f56c508069ba2525917df47212ba 100644 GIT binary patch literal 275060 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

$7F3K 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%0D8+kx@aMJsUa zApZ697rnbXea!ss`6uzhuR`Hf%ZCxK8-oEY8rJ9A zlR=_1tZISPfT)zURBU5BS_&Xy>MCygzUN;CZ!pM2czD%qx4RAmS`jikE+Nrw>1*vV5fg=G)#ed z5?IRZ#~XjNB5%ZK+!nmLPdO`zX{A9MS!}#LJ zbxO_(<7G{wCgq7B+G~vVnif3?87tX3i)X7a z=A=`&q}b#Sq~_D?905yx1i%nDr$qo?ZqD5|Ym5pneFwbtXH6Ef&zVnoP z&bXidqVJ4_OnoT^S>r2V0$!jJbM_iv;J?2VmKe*KnvGjyjn}z-LHOca1q(peaL}6#I@y;SC@Ju{8Q9u(usxM83GInOcXrdX!cvh1V4i++) z2#ovLuO~DR8F!piV}P+WP19hfaZoGZcJWh_RQFr%@CcY<5FU|?$3^Nd4vhxpBC^F{ zrmT3|_+1fg-|cl1ZR2;pd0(bU?S*NOqSw@D+BtSw;pHYUn@AI)f5jGE6=?8*`+dGR za2$`MoSXnEljzZ6%9V??u$;3gG*4OIWFwj-=PY!Si_R+(Y*`ue>M4BwNR;=D3;A0& zR?|}5O+m|eE8{XohI%dCRL9A}W$>nH&I`&QUeWyV@v-lD!|*!=G;8O$a;JBWQ09Ew zvoB=Fpgaed6jsi(CW)cTxJgMtD$Dws&tx!F*!#PoVb0EGD&=*v8%dvH=C`0JZESdo zeIfZZH#lJFBVnm`7eC8Jyt@k6(+XH<3qbgnbOlPqwi_Xa^WGdlBN~14Ih_F$mIGjyk-GVrtU8Vea zS)E&Cl|rR=UZ`5P5Wgoy_0Wce--a_Bv0q`y%OSjK*;2ZELI8+~#9AQ{;!CiJ1xlrG z21U727LJc7i_S^73`DV*ltiCcptKt@mRd2|b~v_ilN-_$a@M}nZ-ZShLZ`ZpxCsu+ z!*Ny1$tD^yUZms`u%cqUa2~aWIfMx3F*M5Iw;=)Hx5@x~4UB5O6%2haCXV2mYiFa| zz2rLGxW(?xIGhw_anRS3pt=i$w-aC!E))`I0`KT980IvM#_@v;Kv9xoaw-mgJ`Rrp zD&4T1Xg(&8;>{;W<7+$)mq0_v0=*&ptvJ>Sc)aQPBy3cS#49YNR!~JtycU?(qXVxs zq<=jQ6$+(zd+#J5RdE!Dej^SomV6vA!I%ONWk(!1F?4Y$5wB2>qoJ<#6hnQ2P_<6N zaG#hQt-Ofil^FI=TErm}oHfDF|I!Yiinm0~9VsyQS0vMva%K4|5YI;-aLp@)Pe%%s zf>&e#TitvQQ$SvpAP}t7^Wj3#cDf3H(lcK>O5vQWtt>2%N(zk9g94)fyrwo1U2zK3 zn;Ix}nJJ(zNKnDFN~zLaoJ$ob1#2?4-GEr`R$Bo$Cp&>}!%HRw;zbD&a*nkZw!B@@$WM$elifiL}AcuT=S3q6+FJ zR{;pFSrxeCuP{ld!>VGs zWKmcZ#x7hFfh_-;Xj&_cC0s~QxN>CKQ~c%u=R#aU06|ZSueW<}tF07-@T9S@!2baM zoPbBq09*jND!{PH*I^eV5|o1HMOzR1egmyH93o1^V^Oeej95lt#~m-=}SKFNF~LeNOhuhfZnzm9Va|gGF~a*}MXx zH1Vp^MCu;*^(0Wr7WaGzDdtG&OOCK8jLB1p%!C~feJ4<737UKpVA~UujNBsejvmHE zUzg+-CK*GvsG$8?yfN(tmOx9hf5`#h9mTh=L?dD;DCi`xjc#7A$FXHwQhdK%(1T6b zxe^WQH?G8JY4p>gD9SS7ST|(x7uTT^` zbJOaMfP>`zcyKZx=POY{GMU_?bR{UgFhb>sj{eW`)}T%kQ-$ob_blJ)VMkvTMWn;Z zDlhZz#p&}3C~+jsL~l=X0B**THJ^$W2>6%6ulXvb1qwNkj=VM^@`AQJUYmJ)^-wjV zdrZ8M#M+`$uBVG?Pw++~n2QkMK8)l?+{0P)Ey#DH0-bN-c=6a zN3?j&{UfK_k%RG~s7WeSlW{2XtV3#F*A;_OH}uh&&KHf(>A+}3%cjo7U`_(&mLMUX z6c8Y~?Fplx4 za$QAVG^R9~eh&sCNtZW~Ch_je$CUS58qZd$_{2pEyxiO1+XybSmfvPyzUz5#L^45+487K< zLtj3;(}U!Gc-o|oZ_AI{^z!@?NNVTU^KYX&vKb9*`ON!EUI1Zloy_}g_` z&Av0ll?Va`yy=u6wy3`%lQR1WA+ES6YDyKdbo`EFDa%aY$?wPT@v{@pOKW)V4D58t|)54<0`dpu$!vU?e(gg3c6VB9$(>eNY7x!y;WM z(*)SMGKiC*6L@`nN>%3IhBN!377~vygt5ZU%BX+_0}k|*dEC$sfq+P0rf*Of5fGy_ zEk*)@=|&^)O9t0i1tqNcsnK)??*6&>C?bKUGDF+Vc7fd zMud1m@r{mFQhdUmlKo=?LR|@F9DHq91}^*pzORFet0Mhwx&6gDc$y!At&p#5Mfzz< zzn2T8fX+Ukh4zO*G>_RNwAhJ>UQn|gMOh6DwFJaNSK*i{w1G#io`5i5yPuys^ z&hW(Cf_$K)o8X*2^l>n3V@MAC@Ho}rv*$4>^u+G=0YR&Z#uIYmH<9P4_A~J>FN%^Y znMMuO`{t6lYSzMMr0VeO0>@H64}^aWGPkSbRy3g-lt=J1V%1!VElqr|O3f?6LR~4( zPbze?qXRCLrgYv1sx@LF#04BEO+}x>nR=S=&=h=SchBvgxP3XpkL>PU+cB?Q`|#=& z8onplXIN+O6naTa{nP5VEIlb>x(BEL`+RhF;JGF@PZJW*)kkh0_yyARfo(lxs&jkp z03L$$L5PZ67dQG|2ObrH<%N)VDc!T2%3tHk%cEq&8J84NwD z{v|R3(Vq`8lP&%I6#qLmm~Zm0l{rt_WnWB!Dlsw*QOqm|?mgOff2<7|sB#k$oFzRw#k5>FFa5%-MMB;kxG(Jpc5~6loy1%^2sbX4Se?wyy1h# zWMm7c1xj0TsKTl{GVcmhW~#)^HF$ZAw0yW-gqg5e0zHA@nZQu!l+8|Q`&Vd<6 zehU2ETw@KAtLM^-$e6~R6a?WYf(#OMXqW~6rUJ~i?}dX5tE_Lk15kxPT(!O97>1f9 zCNT)B!U+JY5~5-jObt7)8}TU#m(z6`?u!uBfxu%ejsLaq6_;Qg?*OTG^66TW9{CyJXAZ^_ zJ>*W2^Ai;)E&jFHtCTzb=^B+5e{)9oa*;uqDhX2*EiDC$c`8*wMylF1 ziHzAQ{p_r>ftM%=*Gzt?6*NbE_in-$Ws0NbH&0djhndWS(%v>1f3P3UivBl3^mA06 zS=EoCZw7rAga>#<_Z$eB386rnDmLdWzt`-8_r@L75Jy*7(pPqWm-$Dm<*xZ-LIk?) z=OY4Z&MZ@Bo{5#E%yV%eJ{L38{jnhgM>Q`YShr-hx;w*|M%ikXnm;B)B-ch(BC42) zwUx{(BQ_H=)GT`@GNPiHi5Y6nyj{bd1g^n8cMay3VXAZy+nstHC~raF`YY~PEVpZA zzsp?vS7y~W7y;~BGva!zBSN{}i_^gF78N(-pE_*=%}km{JnpXCpuOO(V0-YGQrsp_ z;G^-i5WUH8-#sN3FutfJNMRVo1+GHh3Ne`u`<()?Q6y6Wm#;@~nFLt~CURv?!(;;F zpU=kfjK$4Nev9fThy@(_KZNdf8GINo7uM3fY%|ZCU)nks#}F0mAwp7>ba-6PUv(zG z!pUeW;!u%8+^1nHiFITvi_PL>2hZ=%GS+--Vh)Glh$&dBLY$+0ot-UA)%!4_(+RvY z*8R1a)`D&_^Zde%Ls53x6#iHB-G4b%<#OIHYZg>)~#}?fobp*=hcQ zA$FQ|AMxhm{-@x{#r+O%Db9o2#WeG~CDEoVvye#@N41HhZH1(rrj^;^h(k~0m+6F$ zFem7aNpUA;CgxS8)g3d}KHW2a44)l&=8s>Tqc_STDsuSXV#^8K!#)N}F}^7k$(wF4 zvby`jQ5&4zH|{~;QGC?^Ihi2wTmYF9ye|A}`G?LhfW$C0_&=uPq2J2;@EKY$tW1Jl z8n^Bch5^ISA`H<_n`1a642KLucsE9vJ%mrNAc+pXS2MoAe}5jo%$To2dGBUCr+Lo> zZR4vjY@2>Rp@GSmorof5Xy2R}*G?5xf-f)_D|q0-f@{2_#;wqlKbu-^+|OF5&5V*^ zrbU{Ex1^d}js_kfsR&J-22I0=EdISb4J+Qyr+Otkb2|2P z`7DT3_IeGgknggskUU{ctDHcham#6q4r2jAbkj_oypt*60!}Xpnt3J?FJM5UZ_k=~ z0b3Co#`NU0_rm5cq-M9CF5S_mUdcxrafMPI+lIM5MZY=bohN$?F*h6y@bASe8cRHw-bY#G^|Z##&Bc}V?MwAF^TwbK_tlQk&##N- zk%b0EtjeibXY4N_{|q$imD}e8k!L&|ISMN$;5Vktme?j=nH;(g6{V-sG^k9S;N97j zP7vg&O>b~=;DG=bKssdChljfm@Cs6bV_JB$1A9=+tkyDavBO22Z=cR@B;-JPM++aEZ#@xUceD5>m=*C7oT^aWqRIjj${^NcTr zI=1l;3;uP-L5MF&l)enf%SV0y{uxwNyvjG8-f}u_AA$e?JA4Z0huu6AE09e+5i8k6 z6yo3tMh6f@ZMYHK2%NU@MKG!1+jrw3n082>Jis_p#zXsC?}r#Ycxi-rS*g{B!`OgG zs{up=UiXgEzT|s7GbZ~10p@%CLqhVA>&$d5(D~vf#7G5` zjqxbX9A<_VB~R=G5d07#`n$vK35_BS$wt?O__%@bd1~z^_MM^e`S-ynW;`Icz<8Js z8;ZeU0E6cSgRXT#6&^<(yfHZNPGEzCDO`5vAa z5AXEt?g(P>v9=$E2rA0QN9EPd6}S}b8lR_u`#d%LC@1XN9mn_Gwu95_b#SI0W21+B z1wmN|_{qpuVo0zC@}2Pll5xee!R!Tebi3}5FoL|+kPsbbg`axZDiQmEu{dEP*z_P_ zk5J6<18g?~=+4-jP${DAi^}SkqLE2v0G0zS?3<@Vc`1z;d=kLJJ--VyQ2S5J|{QR@< z^UuN0KMz08LL2`A{Qei==U;-Ke;I!M75KsS{yzNttMK!$!Oy=AKmP{&{G0IeZ^6&M z4L|=5{QSG{^Y6jWzYjmy{(k^J{~`SRNAU9>!_R*LKmRHGd=C2g&*1le4nIi8e*wS6 z=lkIEe+i%Q_kYF9v2AP*+d%mLnt%Rp;P<2O8FBsx@Pl~%xA22FVx9jEez2|o9)A7@ z_)&5AAK~-=1V0Z#eXN^S?|)Y6eF0$q7x;|*{IBqXef)3mgYCY^@%Z22Zydk>1Af#o z{6FC{))V8Gb?o9a#K-ax=ojZ4dEjrs&n)weV~qHG9)AB{@Eia47Zwd;Z2ZFbzVYYA zKQaFN`2O)1{@As5^W=~2``z(V7Xj|U@lyc%)cC98r^nBXpB+E<|Gl{(58lW@G$TWBhhw{7z$hzA-i%x1xyAe%LHI-vJ{g3og7B#zd^!l93BqTC z@VOv-J_uh3!qq|eVi2wg!k2>Zz8!?`1mU|u zxGo6a3&Qn5_RR5PlJaUk2fZAp9x_HwNL?LHJD& zhCyh8@Y^8F1>tu=_*u6qq975uc<; zniP`^$&w1BBB?|wlM+%&s*tLr8rhaqC)<%4WP4JR>_BRf9Z7An6RAUXCUwa!q#oIo z)F-=<-N_!L0oju@BzuuYWN*@#>_eK6eaU`gf6|m3K$?*QNpo@#X+i!%T9SjwA>>ff ziUg!JIgGR+hm*FX9cfRFARWk&q$4?sbRtKS&g2-ay;oyP9QzViKHhv ziS!~TliuVM(ubT%`jXQ~KXN+hPtG6%$eCmyIg1P;XOqEX2pLMwA;ZYIWH>pGj3DQe zk>mn0id;xWlZ(h0axoc8E+ON{rDQz0j9gBxAQQ-yWFonWTurValgMN;g-j*W$hBlT znL%cf>&W%w1~QA>NM@6p$Q*JrnM-aV^T@4aKDmu7Ah(l+WD!|R?jTFZon$Gwi!38| zlY7X$WI4HytRVN32grluA@VSJggi=ClE=v79i2j(wX@#P{Wc@Y*-2jCSezFNd2FTx_~0K8_!wM9(w zA}pc~!0T3gqligfghkW=c+-k+6*0++u!uSUZ(H%5A|`ne7EuS_T`R6DVv;lOMS@7t z(iqlT?foLNzRdby5p@7Qu;PbBO!9XOi>L$ekrh8KVv-kO5p@7QvErviO!6Wuq7J}k zR{Xq(NnV6S)B*UyieDBn$&0XvIshB2_*D^;ya9+SKXi>L!oliraZioDD-E zx|teQ+umc6Umq;%(*dYy#T`5*c@Y*-2cVV}cl4O#MOZ`~fZA5v$zzfiVG(rz>R54S zk4avHMbrVPYsFnWCV3GSQ3s%&6?gTR7hw@~0CunETRrTLo4p(G0BUth&lj`thl$wBrn1u>Hsvh;yxaeyaqo7(#s~zl_maaxYwL`3SsAmpAOLkpgZc538N%nI5i2LA9P%JIOOWU5$cjy{vY!XL`9B1=V_6?G(@S zb~OsB^|9Kip6P>@Y+#t1lvM0%#nU{~*Ige4)%scObkFoFvp$%clvM0*#WOt9-(4RC z)dpDYOwSB(H43T?wAxvo8R%*hR2yWqvpqA&)hMVo*lI&OGuYKAs5aDU=XhqQt5HyG znAOhp%rIA@pxSV&o#&b1Xvrf1bCZ&aBdmD7XGXZ|qoCSIt6kukk*-ETwNX~P&@-c4 zje=^Ut#*-TM!OmX)y7!uV$Y0mH43VYwb~_~8S82kR2yftOFc8r)hMVo-fEY5X1uFW zQ0;Q7UE!I_U5$cj6RdWnXC}BB1=S{6?JCbqbTta9U2U~%Jae_HQBZA?)h2splB-cr zZHm>VdS;5NQBZA~)voo-G*_db+H|YU@XT~qqoCSMt6k@rnXX1bwd<{RgJ-TsOP;?l zHz}z&%ZfL8W|q4?3aZVv+D)FB?P?TMn`5<`Ju|1w-NM|Yq~csF-r||L?)oUGHqUCe zdS;%hQBZBZ)o%05d{?8O+5)TH?wJLyMnScOR$Jtmg|0?HwZ&Gu!!wIrje=@Rtahho zmbe-P)s|ZAF3&7=H43UNv)bLBS>|dKRJ+G&_j=|YSEHcXa;x3vndPoVLA4cDyWcY_ zT#bTi4_NI%&phC26jXc2Y7cwnAy=cI+9Otb)H9E`8U@u>TJ15S`2JTWht~J+s!; zD5&;^)!y{X8?Ht{wYRMHwrAdQH43V|W3_iZ^Ny=gP;H&n-t){lSEHcXdaJ$fnf0zl zLA4L8_MvA!a5W05ePp$dJ@b*PQBds@t9|O3Ph5?HYM)u{bI*L{Y7|ua!fIc7<_lM& zpxOqjedU=AXvsezFgGcwxY3GVduF4%J_@RRW3|vT-?$nD)r{4?^^9>f3aaI-_MK;P zu0}z%@2&QOXTEne3aV|g+K-;uf*neN)BND5zG=YTNpz zTA90rxk*XI>Q>y&H`U$sQBbXh)wcId4OgR}T1~6%;G3Fd?iS`IB^7H~aYx_Oa@R*e zwc1wO$v3rKje=@*thTdn>Xf-#n46STtZT(xd{ft59|hIwS#4L})GM<-n46STtZ&8L zd{f_D9|hHRx7r@Q*}csAU~W=Uv4Iu$^i2bIeH2t{Xtlk3)3D6?U~W=Uv5^(`_D!QQ zA}pc~Kw~TJ<1@)WO<@sr0Ge2FU!O@{ghkW=*w2dl`%Lm8ETRrTQ!5_eGs%mvh&lkx ztazZ$#QAGLA-b97Ry)XN;%F39Yhks&_@;%cQBbX=)eiPeOIM?y+96gu)HjE?8U@u_ zSuOBQD_5hST5GEv=9|{8MnSbURy*7`ZCs6lYHh97&Nppcje=_Jt#*WO+PfMB)jC-1 zNZ)jDH43VAwAxX=>F8<{RO@85qkYrK)hMXe*=oo5rn9S2P_2vAj`d9!SEHa>SF0W8 zo35@#LA7pHJKi_lT#bTi-K}|6jbYFwUd3* z%hf2T*4t{Q_@=k3QBbXq)lT(IA6KKGT3@T3=9|8*MnScHRy*A{{m_zs@?dUKQn9}k z&+tuucYPF88(_6FeKWw-D5y5jYG?UopsP_(ZIIQ@_RSzyqoCSgs}1qZU{|A{+EA;V z!(5GmYQwE|o^OV`8U@uxSnYh@jBqsys*SYT1-==HmOKtHHz}z& z%8D2IW|X@=3aX8^+C{z@U1ohSHz}z&#-Ca=)m-dzs0z7+*%UL*KRjnH_04!@Gs22( zd~*DCjxR*!)F3=)WR16a#X?w0XgbmqktS$@QuJXfDw?R0&)WKssHx^@~QqN0r}Ma zCjt3XezSml>b^xlK2`rsKt44u@_-_Cz~w-!2*MUp#npJVFJT|;R3^f5dtHC zkpd%uQ39iY(E_7^F#=xa(aRTFj@dD$4%LOh6CJ0ObCJIaht`@i&m?SU>m?AI* zm?kg{m@Y6Km?F0&9Sm1zrYT6?hd`E3g)LL*NbIErGXycLd%6)(NZw z)(fl$J`nf-_({R<02Kr(0F?wP0VM(@Kox;1KsAAC zKy`uYKn;N!Kuv*~KrMk_0$qTv0$qV_0^NY_0^NZg0zH790zH9V0=DYk-`U3+5*ezox3}DBL-7J7zD|Vy+cAnT(0@yubX9!>i zh}|84T^x330Cr;7KLOZDVV4A8H-tS5fZYtUQ2u$|&Mfkelsyi!Sob_ao=|tNbct{7 zjF&9UFS&~)%Y1WpyyTwzl6zUQ+&A~dOIGBU+|QB+eDh$uFm_fnS@Mo=-i?>6%dhP{maO;9`|*+w@=HEs$w$8V zI9~Eee#xgS`OG(;$4kD*FZq%s8+`NC)=M_B;!@=8r}5_yK1AWHgT-R_4z{ z^Z3DJ{z5d5A429YMf3Q9WByt+j~_1PZ#eU}o%wswJbpm%KaA$_!@&I0XdZ8T=3hqh zO}fdMZ*=CNGtW8mAES-=6aSxLuJVt{@jvr3+j+AeRyM!L!iz8dGCobm9KDU6ren7F zp>KZm!?gL$|8e{1)ElE~lHb+YW}B4$surc>H#R4~s$Pn}_$iZ$m!$Jcidm9LnQXkI zLVig_mQ+fa%JGuT(NAegQnJ2MmQ_ias`0XF`LEiRCDl`AyLd^Nr*I9HY@aeUw_dUX zOKPRej`5P(`L*rDk~%4~^VUo1vSgQ(skil#U0G5;^>==acZhS25Rl}5=?j)y3MZXEN*}n3N5N~j(IGV?snR&%%9&cRcrO{kBsr*&lHk!wq zk$H`1o`2%);LLZ5=JAHYuj|Zrb>{9b#vak~cmweD&J#O2@k^h8|68vFuQhw6cmcQ< z8@`c1BVccVy@BMlp`3d*)ih2;r<$34Ql?3a`=+AP&Z6@UwhSyX`=#2%Cm!sdVv>LT z4a@e`0cdK)15!-#A}pc~Kr<^Im|~I_VG(rznp^Rp6qCFNi>L$8!is-MG0BUth&li* zt$1*XNnV6S)B!leiif6{CwjiFo&m18-AE_XL?YGZlt5Hy` zqt%W|nU1bTLA6d+J33`Lp(Sr=!Q7;zVrMHJlQNy%^-)l*i`9-znJ%tILA9<{J1%9q zx*7%5x>@b`lux8+$_#fk3aX8;+W9Fn!qq6KHqvSrq|8WHqoCR-t6i8fqg;)G zYNM@oQOb;VH43VYvD(EcGse{@s5aJWm!!;CSEHcXIICTnGUHs0f@O-`9fu0}z% zDOQ`BGE-cQf@;&Oc5TW`Lreaw!rY{!;&dy{NSW#G`Y5P2(`whH%uH9KpxX6TyCG$+ zcQp#C&9d5!DKpE}D5y5uYB#0KY*(Y8+8nFhoHBD}nKLTVl04Q)UTT z^5DbVq@?0fE8dkdOWpNRP;Hsj?oOFyW!49Clah+}Sn=MJxu=W>i>L#z+=}<5m^gbR z6r!71VYT~HOdO4ZY7bcL!IXKR%-zD=q@?0QR(v>R9x5ZkBI*DP;Hgfo=TZju0}z%r>*u($~^6A z6jXcGYR{$2v#v%#wdbw&LdrbvY7|skZM7FuX0@wPP;HIXUP_rYu0}z%m#y|n%Dn7q z6jXcFYOkfttFA^twY64zJ!RIq8U@wfu-cm`^M1iIlI2^QYKeseXy)g2jF`v{*YplzhhWL9e_<% z{4vEOFTx_~0Q_XdpHocoA}pc~z-BA{l46nNZi8U@uVS*>!~RB|;6s+Cx+G;K;;je=@btX4H`s<;{j)&BSn3f1f#Z<{vN zxZ~t^80ID=z3b{$+%9dZyWb%N)oNI6`?RUyY7|tfX|)~FrlzY=P_35Lc1)XEu0}z% z+E&{sZECw31=Z?UZRfP9<7yOCt82Ag(x$GfQBbX()pkvrdag!6wfa`uEp6(%8U@vM zx7r?QvpZVyIKbSbq+$ar?wK|X-1SjVt)bQSN}GnRMnSbkR@*ym8o3$;)f!uEpR{T0 zY7|ua-K{Q~*!At3Hcj01QPB16XSMy)WpjuO_9gsFnU5$cjzq`LiGrPV6)25lb zJ_@?N=2kl>ZJN6p1=U(u?JsH5!qq6K*3xPRr%g*&qoCR$Ry#Cp4na$vConfDso2Vj zLE5x(*GECMKfaepYkS9srA=%1jw$FJx3SvcY15|64+3+Ol8SAu*e-3_mJwkQbpYC1 z@rX2&{HB3L)B)&V#Us;9@**sv4nRjM9+hU27hw@~06JOm=rj}O-!lr)&2+ZfF=-}_ zMnSbMRy#Irx|F$Fn46ST^zDfssefLRm9F-?J1%Xymig{r`R;T8D%kI?;(tgtmTq>_ z9G^Db%4`}~HjNHI4ZCT!FSKom4pEfNQ!hDFslMGjyZ!yPE#2(~--C`0Wi~i0Yt#Wa z!HPZ7O!B|Uu!uSU4eVX-`S<&~oM_kBGi^>Rvqo6fr~}Z@u5qvb`;A~uvOjgNv^lBF zPYugYtpjkf6%X*3IMmCKclbgISJG{`WCi!#J#cq^i3(aceS<>5XkW>DUW;OlnZ|v!5(~sZS za_<^Yh;AI9ojf^DEA+I{O)}JOl5_rmo;LmM<8VgW^e^+56Xqr*z1tD?ZqNUd_p}*c zH_4f4GoZ{Sfn}5E0F1Mn;{?oZ`b^0pnX)&N}GXY9#vSrcO8I2^BdV7 z+~iyjg@yKUT~ug(BU@&L-5`bLH}VwWe4OOp=|c0HXoD1*-^gZ&&Y4muG{1?q1Dk~N zz;u%on&0Sl;LJ9KLh~El4i(~aPdHaE`LkO2pV|Coklk0>mQ(!Q7iSdo+pKQCyY2q( zw!S&r{;Y%3=4|(8rJz4+q47=B7Ct&%lP&U}-1ugQeZ~w;n;~UhNx-scbO8R?);H(a zyB(G`=ajiySngH_;9M&XPczBC848Q215jvxBikc7zgMBq{zkV0XDlle+TZAgh|a>+ zO;Tuo6ZgIOhuhzrXa6pZNSpJ@{9S^%Nl7>H@9vW$r!7wnD|U*%?))?-*p7_XLM^PQ z3*`Uif^?#d679mg#-cKwoVPo5>+^O;r#X>#blP0R_dP}uX-SJ7>2|Yakeso|`Sts8 z3|v!zra&`+W>;X(MtQ z9RBl%HS+2%E9CGNj$8rch?WM@1*id?8%~sp z9FfvcDh;VL5@-Z87HAAK5oiMJC$JxIl6;jM(Q&eX9I??`fWt31vI5}n3XYrrIDF#I z*8Z!X{9Js@{KxkJ>o05OW7Gd(AFu)P<$T2W&u9oXQ0|Klz6uS&3Jt+{CY1Qn3k;|N z43g&tZ}t6S4Z+TquabAs{v{2;hRD6kJ2G201Up9-$-5@!3dp-6g@#}}%IC?};DuLM zv4god%?l=840SML)AE|gb_CC`_fWZ~o%qW*W6?$#gP<%p}*5>&Xpd7P*nkCO45eL9}t)g;8$cL`I>w~`JnhZ?k1#Q$hRa%z9Zk0 zAIK*1Bl(FhXerlwH$OAmOnxC-$gku#vQ06U?l58 zE6tlatYT-D_uvBH3@4VmR)8#KmZ}y_}`>scC8lgrPq&Iu>7&T`0zj#UdeYlGzWM7iv zGTdoWOfn=(_M={ru@b3FN=PZ$pL$br0BJ_5Q9F>aIXQ^5Ab%k($-(3hawus<0@9is zM%s|WNn6s6v?oW94&+GEksL)jk)ugxat!H0jwM~maikkLo^&U2S@9DXxvcob7jKB0 z-#yx?T=Tmg#WcS=v3Tp|cfV9MJ&U#b-ATpKTXoW{u2(UyS&B{Xc*!aGC4E?OYO(1X zFF7s0q#sL8FE;(-C1>Q93}DHb#b#i<7;i7OGXv{omQC_#$Pi!{~cV!*NiDP7spG+ z=9gT;l5xf6(s;@EXi41X?=qHMUTm(2m&KhN<-41}k}HeN#I4tN6-%xzHrK>UCgtyG zGE1fu$6d;&79XCIF6B-yJs!bc#nMbKe*B<5(L8?CnD>k3@ngk&Ks1jZA?AakdHlFA z9~#Z$M}zsf(LCR!azr$bw>--)i01j`dv2G?i=yT6w#C0Bn#Ws|`DM{uw72C9Di~&kGB(#eRk?LlmGe6_qJ-xF3tC*v3IA<_ofw_Yl{`97n>O|&MYp|hp)$< ztPkJ6uxnnS$6fiO{M#qJ0Xo18{{5opLSji19WE-yO-d?$V8suMq6>{B zA{QMKQ3v27D}G!QU5G3ZxhR>4Isk z@}%P8b=;&B-8lXy*>;5{Zt*55G;z}n5gn(c&yqqDw|JBAtHaS}x={*E++;h*Wi0ap z^WWLT?YiRR56|_*<~rW{PyRx|vOXPv-|U~VZM^7GnTg0{Gey(^D6;1cdtP)Y%|tAU z&I^=Mbo+x_uKD(EQ-w}yaxqff$W`oSsp>^nCQTlVD*9;Xz{6I}irae8l}i(`nuV8LiMDE%|G+w-+7Gnrt2pZRI8nvzZV@Yn}{4bE20j-AKxIY(4|baFgLk! zutK3r8C#>XKJ#>7-o-vek1cd5lc!6eOPT(<$hH`e{OSy}&yuse=xWyG{{0=8XoIYF zwijLNx|}vB(FR*>h!oIjvT*>JnI^StO9+sWVJ;nDp`DY|jYee&f+q~!!^W`+IIj`CRtKIHJ z7oabv6}pr;%`=xL+pW;0OrJkbBpamArA#--%gF{QbScvfvOd`$g)U{$2H`LL#$=Ne zx|Hd2q|l|z`FEz!rL3l(fBPHeW^@2*+2&|F`b?Z{M?s%ewXL?3Z)&?51=R{&%49p3 zhPsh;VBW}Xy}f;DNoGHcfW_AVXl%uOd?tAj7EuSFi52(tndC)SL>++rthm3=Brn1u z>Hsvg;sHLByaN^;kDd4r zb{_jXea8Oqu40{~AyQ`=B6Shy0(2GV3Um|b26Pwb4)hS{0rV8;3G@=^1@so^4fGM{ z1N0T>3-lA{2lN-{4-60(01Olu2n-S!1Pm4!3=9<*3Jen%1`HP%4vY{O0gMzF35*gL z1&kIL4U7>O1B?|I3yc#O2aFdO4_q#AIWR$B0x(fvB5<|9)xacyNx&3=DZq4r>A*~Z znZWe|*8{TzW&yJWW&?8s<^XdAIEeip>mjyOzG^97wM<|caF4(}z;c1*zzTsCz#{^W z04oJn0*?zk4*cmGg{_y?d>kao@t*((fpUB&z(JmcwqXB8ZNaW9=0TC8l75p%heM1w zdI;bUqQB7u%$G$zi_!vVAR~|g{y%$v)sXenU_CVjY67(cY5}zcY6Eoy>Hu{G>H_ry zIPSyL7pM>X6Iy;XllyAMeKi+o4zv(x0kjlo2^=DD2+&HP70_CM59hgh7|;f2E6^5b zFVG(7AkYEmD9{n;B+v=yEWpRue1Z*h0lErw1-c1z1G)=z2YLwf0D21a1bPYd0(uMd z2Kor}0si;;dJUJm7|vac5EucB6c`DN5*P)H78nhT5f}rE6&MTLAkR$soNk;{#!(qB zFdn#E;BsJszyx5Tz(n9`fvbT@0(^wUHFkh0z%+qrz;uD>z)XReK%uV}8{t*i8il@I zY=l2^U$0iuuT0)&Xe}V`Boz93u@ScJ>or=o&uBlV&Ae_bmS$cTq|J@Rh9(d<7SqgY zb}`MoZYnl&_#;K3Y%{MJs8JWMn~S4it`4{8Fi(eDb=a!4S0gXnB?#*U;jTegzg%Z8 zGoMa6|4nx<+tus8?dJ9G(#h)|?c(*fI(YqaJ9mZ6g7Cl~Z2o_yUDs_qZ`uZ7JKLn| zziH6*|JR)BpV5#jy!dbR<66MaS?I_0ZV;{u!uNu3eGtAMgdYU?eq7-vLHOxEr5o4Z z>cn+B9j*RWC$5FmlTKV!>3k)fxE4`cOzt2{$em;&@d4a4ZFOoInCGs+Pg}h2$BWua) zuy=p1e;!ARm&C$j9Up@+tX@d``X~Uy=>vE3%P%O}-%^G2~m4 zBj1tl$q!@``H}oYekPmAFJue(mHbAw$_qC2ok?A?3#mtTCH2W}WOuR$X+ZWQ4ar`l5!stG zCi{>kWM8r$*`G8e2asmuK+>EXL|Tx)ke1|NatJw;v?2j%O%5Y%$l;_dX-C?VBS;5w zB7Aj+lv!P5PRW=)37?uVeG@({WBMh0ddBn@X8+`jj2RH)nHjFD zpw)pHuB@PVR)%XUC=SYSbp^$lLra(7|4DLWXy&6tB#f&tjaIF<-=ZRfbOXDqPJS$JJ{xw4&GQqztE@Do)POFJ5s9 z_ZACN`F3KQ#vR9aEe}BKPUkM->Wqw;8UGa5W$5UxE4w~JPj|%|GIVuUoRy)kyW))* zI=d^*&d|wS@urNK6R+&%jF}tbEg4$4t1vIanNEtgX84#uaejt9W5wGtob;r)fFCo) z+cUhIqt%5Onz}14%9zFRUEIOL9pjxDvoyxLGQ9Vr?y?N;^(fw*;oTm^dosM=qj+zI zw}%v$XLy51@xBc211YY^@OF^m{TbT7D?X5+0leaa8Ll0o_)vy!@QM#-I7vqFkqoWj z6(7xTMvUUh4ClNkKE^LujE`r`EAh(yn&A`|6`sh@CSLK$42|LySMggN<5T=n$M`f4 zcf7J^GUnNMlRTF(&&T)zUlt3iGv>v(x`yA)7+>bsKVI1@8S`pfeT~OB{<5|FZpPI& z_}z^0EuN{d@OH+$6Ib8Om~}C}moe*Od_QA8i1EXW`6$MZ`4x%rQ+`Ea{G4Br7{BB$ zV*H9-%{Nlv;Bfm~D{><-C zjKA=U6XUNL^IMGDWKB_4SLS7nA7d(O(lHiiO(w={)>MeGV%AiOv2xaw#8{d&Rbs4~ zHPvF=HfyTKxLwxNh;jR@sTt!ASyL;<9kZr(j5}pbofvn{nz}LWk~Q^W+%;?J$GBV8 z>>lGDS<@iKJ+r1^jC*BGqZs$jn#M8ilQm6Z+&63Xi*f&~X&U1JS<@`W1GA=ij0a^+ zix~fsH7#R2IBO1x@zAVk6=RS!tz$eaYudzkc-FLyv0c`*kMW4C=@8?QS<^Abqq3$` zj7Mip=NOO4nl3ROn>AfyJT7ax#dv(ybdT|btmzTsiCNP##*^4Osi{Si&F}i~kbhEp zWyLOk^`eDbz34i#O-fs=7HKCDX$R`@$&Q~gCuem@?`-q|vn)9!%iFD4b85V#Z+^*X zEa{gur^ieB=a-zpk^x!sxvy*cLO-vTwSCDu78`u?)z(WkvgB*ue6#hEkR`@9-)_Am z$CB@Sd7opdIWv1SF$1&wpSL*9%9=r0b9UAY=6j(&Bx{Cd%{kd{XEQ7-?}+rz0J7gP zO!RZJydyF^YtF-_5Wgc5W~LTRF(a~_&H355?dizu;nMcBOxw(}|72}5TiOnB2dAQo zRwZW$w2YoEQi^WuW3}NbK%C-j4oyWDwMxW8RMdgR|H4L`t?c(0q@s&zCEsH!{T_AT zdu(mR!&1>jw-T|niaH<`T6>o7@$$da+Ov~=JdRF9mnushk52k{=)mJq=mDy~jXk67 z!Uiey0M!k`K_Lo-9-z7%ILt+%&;wMr0|)LX{O9xloo4^6UYm+8W0?F|ofd5iDd{FD zGz-=3FgMvCe}ZPAOYDPxXDYg!Wb)uI(Fb1#{t5Y$bQOKT{=5&Sq6=XrKkozj^XkCQ z`;ZkMPDK~WOvHy&)B&;3r&Rwu6#A6D!3*YcCnr*ftS2si*_uPgeXn z69eA!3I-kb>h_WrX zUbFtStYf>p?wpP;-dye<7p~^4TA}l)ZiqtXQ*&TCy3BUD=SiXSX_0h0wI>Jv4?CZ> zvA>Lmr=v@cC;#km8FFq?if(*zoxBC!E*)K(JQ2A}xrjOd?X7r3I=XauBDPmi2gD9m zJTe_!+B^}t%(<*l2cV-Bk4i_EK2Jn0gD#>DKqo66osKSzUhWygwbG*-*Gf-*lw;D- zh11JvTuEKEE>=4>9bHyExmzx=&P_@x7MiX`+oL3EuJLcsbhVp(;Eqp67pqSmI4)ez zO-j*?!yl3-!uDQtW=kU0&>uwyzG87E5iiIx$^X{DvPK<%B~~1jWs(bevdnN(MdPS_gGWEM;#DrS#d`%Iw>a+IYCF(r~^>jiaUAHNjr(i2|Oa| z0MxPK&R%pHsvfYuw9Yl3yb%q7FbKEB+@nhV5;)<0)wlzsYYNST>IiKp!ifnr4z0VG(rz z`daa{G?Tmti>L!o=t(QvgIl2|ZFJ^d@>hnl_++E#02F%C%Jzs(PgE%Mq>Z*iv{42` zPZqY$pP(mgfBTp7jI`-r<}WAAO-j-2Kd2||0J}-fOmpaF{vQ)qHi-^Ep(m|AH8`PH zq0p07Hv~;Bl1)D5$pFYWI0&xvNo7t+*qo8MfGf@(#!JEP~DBH#IU zhJtFo)l$CkU5$cjX{#0cChckzRLfW`>zj>lv8z8SDu`8U@vAT5Shk8qnIGRh!WkdeWNR%WM>wo0N3xHLzQ6Pv10fH!=m) z8d_~HU;5D6jSO>(ThjuCp0w^Z{8#s+J;(l14oh=dUjCtj<)PC7IM<59(@gRrETRrT zp)aj$58m}leme?%X?24X`qI*dw){VO6m;7Z`qKV;^`)KmJNwdJknR*ef}_%$B6(rF z6GM%zP`X6^ZyKi(Z*&&#B0cjnUR1{WAv)dEOLgRH;*(9GQ?fFTPcel~i{|l(rOeNW z=JDyI%)j)--xNQ&cx~X!Lua0I=GX9D%rcYw_GYqgrZ7zP%`}EGn?Ti-^^jS**9|;Zt=}LhFkrx?$n|!3yc2CW>;gf|827?GbtUI$?3p0 zy)siMOr@}I5bhU*`v+muz)YidEtyVckeTE<^6%0B>mk0Ef3ykKGkne8YJ~M7^)=+5 z+Yrla;4Z%+8_Cz?8yM1CYc@dYh|@L(F(FxyOi zAzR3=^NDZ<*sY!MqwaAW`?St@$AnZUl8zx5vVaFgmDhN9T;n6|Znf^9Zj|t4h*}#k? zm+++R5`@PFVb>r$E(p5?;qgJ(ogO%>ZfD#cw83FGF$jAG;YmT*D+o`fD-KKRkzGlB zvKz`NLD(kv9|JUa*n2jP$)92$h@ z1mUnCJU0l32jO|N)?q~>g7Ewx92tZc1mUP4yf6qy2jN9QIEJn}EFK$#mjvOsAiOjP z#|PnM^x>geXruLa+Gv@*d5jvfl|Bo?&x7!bAp9~2Hw58VLAWspzYfB0f-nq16NKLe zVJ-;23&QV%@P{DW6ofwp;ZH&Ma}aJ0!e4@LOA!7Vgun6prcqE4@rY0M;VznxeaSeU zS%0gc)}_?PlS=rNNeL+>mr=W%TtOy~rmW)t(u_!Rtt+WbBv+BE$u(pWnM|gTsbm_t zmP{uz$V_q_xt`oWW|14oY;qHsL!{Z!&5SfVGPm;&#+IS~V5jw#(jdDfXN4Rhz`5_7 z_71$j(TFbzyac==@CwjM9L_!GOml#9%Q>wac#TD`3%m}zDexxnw!qs!8@LngNb#{u}MxyT~GrJf_7v;PY^V>mfH6Oh9;PY{s9G8@PuIqdR8smNiK4W%N7O*Rr}1T+?C3^WmF0_-QS zA8?X<)k%ES$pR+>y#?g3!af3W*kE4)IV`Z5d{r~Ps<}XOpwK3sjWATU#!z6Gz%Zb{ zY%w_;=zrEGet>+r96D2I6VJwcM7HW9z)FFYz~cgs15XI>DY{uDunKru;A!AlfoFl| z1)c|13#!Uu!GxB;J;dh6Os@uERnd7U}Ry^tIA! zeyX|3Z)dLd&FFNyTv(k|UVO1Uo#kWI8UpgcX-xt7Xtb7qT#oZBc_N&}k6A}5b*R)8 zs0-8+s0Y*+s1NKeARi(&5a2UGKJEkLW57lNjey1ije#ZtO@RFbG@g ztS6gA(NlFCJj0x&Pu0cxbi6}{B|6-x!%`i7j=pvR|DS5E2`T)kk=~4=*;u zigV%mGH;SIk8Wl}ar;~-(#T@Cyu@6kQHeCV*o<-{<|>Uzq_M?jj3Y5u>C!|RUu-UQ zB<3nznMhX^n=2iOxk{50X=<^V>`2U2nvqB|i_Hv2Vy@DxMB?HUvmA-JN^=wG)?zc) zk(jG=dm=3^Hn$_KOv*A!MdwQsZCNor+RJZq<|^HnNGpnI)?Qv>uF^w^^hhz?+sjML zReC&;o+zf3dwGeuN>3-!bH(&^FE24y>4ijEQ%s}x@)C2EUP+|2#dLiyFELl?%|v>q zm=^HmCFUxvOQa8r=?Pz6Vy@DsiS&6fP2tN+%vIWuNE?gk5?@|ou2PstxnkPJmzS8U z^nD_2DyENod5O77KPJ-8#Wa{NFELkXb0Tdirt^GxiMdL@CQ?y`mh|=+1#**$YJMjE zEiTT`rM~>Sn5$GFkt)-$+L4&6^hRmCrs^5ju~3nm%l^iD%DA( zUFc5jNX%8*Es^%f(A?hMA;?WCs_m6%jWhJRFMo&3RoXX^nr3KxUtVIa(woUo_*SWT zGyfBU+@zw~A<4R0(P-LP7ju;kOQgdybjY{gJjhKds&z=Tj&vAz*2P?tlZtA+6YW&GZRa&mG#!A`6Ky~Sw%-{j znhwCAL>rQUtpopvSxk|MYiN5Q#k>Xt)kegIg ztCwhWU$5t^i@8dBBvQky*~5{TtJFA==)&IEk(jI0G?AJ~fA;blfw@WtB@&I<4{{{t zDjk|gG-p55k(jG=cp|mWn!_E5xk?=qiO%dD9f`S0$0ky@tU1<^n5)zyk$OtAcDv0% zZc=VN{UJ*ZfT3l1{G6g;`M~_TKv|a#z-7E7nHqgA%4eYAmC~8~-O@I> zaFS_MQC_AD%^ofOy3%NPPlxq7ysyItIyA$dVn)%{ym`fNItRyuGunnT!|U3H*M~Q> z4QGWnwhd>8H?RJ*?Q-GL zTzD75T{%9N@0N9#|m2+ZN^yfjfYw1)c_85O@K2OW-YFoxnQaLxB&0uLQmVjDP`r4wd46 zTx(V!15_5M3{(@S2GkI!0n`$x1?(iS6R@+u&cH4Ly8yci> z6Oc<_PY{q#RwoHe0A}U9Hyfjxk|1@;E^ z7uX+YA3NQ*7BfxtjycGiQ{s(V&0KCV+TN(iG zWAL^Gzos1C0lXsP z1sK4qE?!arysqM96u@gIUKjzqI^x9;z$+kL-T=JD;ROu9s~BFQ0K87&MF_wv5ng5h zyw>1_1i-5aUOWK2V&DY=a3%1z+&g>z?C1mR-Lo?fum{f$JHTE#JLSM4V3`1W+h&CT zd(`Ye1MD@klMJwD%#JYd9Pp9=d${b-0_?@I(+aSs%8n_(-Y7et0DGM5U;^w_vJ(lg z=g5vCz}_J{g8+Mg?C=4VfT{xQ$+6=Gu(!sp7{LA*yI%nNT{qcH1+eeLt`flh z5xYYG`#|jS0PN?mTLZ8!!>$X^5ja+WeG+y!0QNfA$pF~1V7CEa-$5=^^2>JS!_vc| zy@`+X)l*m}XFg_geo|^a)g|E(vOFgXK4Zb>rRIxx!AQH{OBQS>HDAT++L&M0*DU#_ zH0&AON!Tm-im-PsJjH~uZ}R@P__Vk7%%xLzvO3@Y%Vpw#7nm1 zm;B0--%8D%zW$7Qnojhi?8U#pd;4aaD!QboO7fiXp1E)9CHJ%B0gvn7@V0h1HF`39TzWV=it$qc`b_5W z6M*TL(NrIHre8;P{9xnt7Fi!+mVO&8jUQU(KScBR0cHMkG>;!f=D$Ys_`zeomoMK- z{E$Ij6`98m6qI)6S!Z53n#T_XeifO=4*=6<(dy&P&U~>atADv9+St%iXMV3UzrXxE ztR^20T)?)J{pTb2bCs2&-#Lahyf?fy`ap^`n;$D5kqa9En=8Zokxj+-rwesrwke4% zuLO213en9JCsw8eb}R~NRZOhPC8nZlQBbQiv8t4qQrDuOR<*>cUSg`b76rAoORVin z%yzCtL9HDUYsV6^gKJSxYp2B8xy0<`S`^f(pIEz>nEI|oL9IO#t5J#B)3qq5wNGO0 zTVnQcEedKiO{@b-OjE4M`s*vqEgpd8iPxe8b{-=Ny0(^yb!drc=~@)jYLi&)N=zHq zqM%lX#5$_PbZ{*SYIRDiV@gaX*P@_S*Tg!$#B{|b}b5O^-HYNOH4o4qM+6piFIa)Im5Lms5L0DhLo5=SjqPfbCZ&K=O*6yCFWdr zZ4}hHFtIKwF&CCu8_Z2g>Rpm}mzJ1I+_h0qYeHgOSz;!XSsTnvO6pBYyvZeIQW*~x zPX}On;>{?5^FJ#ro({kbi8reR&U>(UIsi8%-pwU&-h;){0k}2sZYzQF9xR>?!0m~* zs04O?6DUMCb4Oy`Spqv21+~@{#eW~~E}@fp{yt%DQc~~UWNr7Cn0wu|QBdpQ#Co*E zJnUK&)OtU;&nHXF`(^GE<|ZZeK1saQB^*ea|K4EnbO2sU?)A+Q*!f8*=-S>*toKXI zyRJn+t&bDyixTs(Yf(^ZLtnGzGa76r9(iS>Pn$+;E&pGhNkJ_?vC^f+cP$EPWfQAnsmZz)1+^+C zR%xlJ>{=Ams+L&WmYQm=MM13^iM2ziso`1_)Y>tzb}BVHx)uesc22BaO3lu$MM16l ziM3m)sqb18)M}7edzP98Sjk^Vn46T;Ym|6f?9_rR#0jVbu9{NwN9+VOHFInqM%m0#5$tX zv~w*AY8{zaN0pi*U5i3=3vY{`(w$4g+w8Unx#|CT2)ZO|>RJjr&wC2d&6wn`&he$N zU6(Mocwnsy<9j@zG+byckemJ=xo7FrqG_gAX=kZ2?_C-mVEV-OB!ymi=KU1woi5%P z`DHAMRuKKq47A=L@y^aKV^JAzF!z2P$02g`m$dfK8^>?SJZXv{$7;#Ewq3qkH0Lm_ z*l!%oha@XD2RQS0}0(NvU%7fm}%@ zlB>wo3GIBS$hulk+lNIEC@&I{|JWL)XkCP|JlVlZniabr8A2>E+C`GXflReOvaLNx8TgiN~fZR?Nl0{@O zxr5wEmXf>3-Q*r}FIi6RBP+=LBA7aqoNSS~!A;qYAe1;ZD)upL7?KHMofTK>nohs@dQIFjMWTzC}2QMvGF2L3xn zk_(SzIF`3VQ+!EPKA_uCU`L?7Kz(2@0Xd$0Ux9s7x$ro?<~ZKjc&T9}9d8gaRS(v%t@Q zp9XwB{3;PB0cr@;0O|_V1sVu60GbFi0h$Xm2M!fD6lf>q;8aeLlKB7@3>6p( zj1Z7d?=BR$5V%C(5@4dhL|~f0G~h;o8-aNO^MFMHi-5ZY?gkzfcoUchic&Kw~tID$1D zC2$nbS)em;oWOBF4}l&)ZvpuXuAe|ZV4%Q2V2HpFzLASq??t)rLWT=-;l&IW^DdPv zoq#q|Kt6q&BQOV8Ag}m-*`~cvs+E z;3I*LfX@Zw$gs;$FXLkdnSaZI9|V2?HVbUVxD?}3J}AgCPxD@UMS+SyRRQ?`uBJfE zY%aVK^-B5Vjkz2Gbp`V)a^Y1BSMj?l*bjL3jT z;t_Z$UV=B`4R|NsfeA4IzKAbiM$CX8;s^LGeuGeiU_)$x{6dh=e@!AH0s;|$1L6Q^ zb%(9&FzzJIsswu7EDl1(G5OdPOfti4@3)40tRagCQ{lUWr#=OpJj^F$uCF3ueVE$cY?S5DQ>Q zEP*w#1~$beC@2C2)PRMe5CkFsF%bi0q6}1uN-!;^!JL=_FTATSxT_0J7MLuGMX(}P zz`C$<%-aKO6?X}X!$M&<7!}rk#lnWKM3jL2!k+G+I0(vxZChN#L6xvGs}|MZsG#Pe z)dE&qCxq?QDM24a{RF6-sFMJl5)~4#M`{){Lli;4Ht3?D-=Vt!b~^2%9dwFLa8+2m zToZOHy~6UOPuPy!6V@O1h5g1uL0dsN0c>~gn??Er~}7^v1mdhz-e(hN>s@=!JtVc zuZ<`}?}aJk`Djy^49pA30-M6?fsr6_UsHG^F!fu0!j(_{hPQbXB^BNcPV#hMKsY#{ z22@(5RYqk3e$0voU{DN#XW|(c3j9myFz options, ILoginService loginService, ISendMessageService sendMessageService, ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories, IWebHostEnvironment env, IMaterialService materialService, IOutStockRepositories outStockRepositories, IInStockService inStockService, ILingXingService lingXingService - , IProductInventoryService productInventoryService) + , IProductInventoryService productInventoryService, IJuShuiTanService juShuiTanService) { _inStockService = inStockService; _redisConcurrentProcessService = redisConcurrentProcessService; @@ -94,6 +95,7 @@ namespace WMS.Web.Api.Controllers _env = env; _lingXingService = lingXingService; _productInventoryService = productInventoryService; + _juShuiTanService = juShuiTanService; } [HttpGet] @@ -108,10 +110,12 @@ namespace WMS.Web.Api.Controllers //var m2 = my2.Object; //var md = m2.code; - List<(string orgCode, string stockCode)> request = new List<(string orgCode, string stockCode)>(); - request.Add(("101", "CK001")); - request.Add(("101", "CK002")); - var list = await _erpService.BillQueryForInventory(request); + //List<(string orgCode, string stockCode)> request = new List<(string orgCode, string stockCode)>(); + //request.Add(("101", "CK001")); + //request.Add(("101", "CK002")); + //var list = await _erpService.BillQueryForInventory(request); + + await _juShuiTanService.GetTest(); //LingXingResponse r = new LingXingResponse(); diff --git a/src/WMS.Web.Api/appsettings.json b/src/WMS.Web.Api/appsettings.json index 7b63d062..0cfe7887 100644 --- a/src/WMS.Web.Api/appsettings.json +++ b/src/WMS.Web.Api/appsettings.json @@ -51,6 +51,12 @@ "AppId": "ak_QGK2J8TssERmu", "AppSecret": "n/HUKD2wVdTbvhnFZbVBPw==" }, + "JuShuiTanOptions": { + "Url": "https://openapi.jushuitan.com", + "AppKey": "17231841286c45f99eb9acf445404349", + "AppSecret": "5ce9641ae6db4abb8b96eea7df6a81e9", + "AccessToken": "4605358c37374780a8a4395e6cdb1c3f" //一年后过期(2025/10/18) + }, "Qiniu": { "AccessKey": "dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms", "SecretKey": "KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q", diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index d3357fe3..c2dee348 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -3979,6 +3979,92 @@ wms箱ID + +

+ 页码 + + + + + 页条数 + + + + + 仓库Id + + + + + 开始时间 + + + + + 结算时间 + + + + + 商品 + + + + + 总量 + + + + + 可用数:可用数[同步线上的库存数]= + 主仓实际库存-订单占有数+虚拟库存+采购在途(业务设置)+进货仓(业务设置)+销退仓库存(业务设置) + + + + + 订单占有数 + + + + + 虚拟库存 + + + + + 采购在途 + + + + + 销退仓库存 + + + + + 进货仓 + + + + + 页码 + + + + + 页条数 + + + + + 仓库id + + + + + 仓库名 + + 领星即时库存 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 9b51cd52..431439ff 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -5821,6 +5821,25 @@ + + + 金蝶 + + + + + + 聚水潭 + + + + + + + 领星 + + + 同步erp基础数据 @@ -6299,6 +6318,11 @@ + + + 调用接口 + + 领星服务接口 diff --git a/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanInventoryRequst.cs b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanInventoryRequst.cs new file mode 100644 index 00000000..591b36f5 --- /dev/null +++ b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanInventoryRequst.cs @@ -0,0 +1,36 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.JuShuiTan +{ + public class JuShuiTanInventoryRequst + { + /// + /// 页码 + /// + [JsonProperty("page_index")] + public int page_index { get; set; } = 1; + /// + /// 页条数 + /// + [JsonProperty("page_size")] + public int page_size { get; set; } = 30; + /// + /// 仓库Id + /// + [JsonProperty("wms_co_id")] + public int wms_co_id { get; set; } + /// + /// 开始时间 + /// + [JsonProperty("modified_begin")] + public string modified_begin { get; set; } + /// + /// 结算时间 + /// + [JsonProperty("modified_end")] + public string modified_end { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanInventoryResponse.cs b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanInventoryResponse.cs new file mode 100644 index 00000000..7b570426 --- /dev/null +++ b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanInventoryResponse.cs @@ -0,0 +1,55 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; +using Ubiety.Dns.Core.Common; + +namespace WMS.Web.Core.Dto.JuShuiTan +{ + public class JuShuiTanInventoryResponse + { + /// + /// 商品 + /// + [JsonProperty("sku_id")] + public string sku_id { get; set; } + [JsonProperty("wms_co_id")] + public int wms_co_id { get; set; } + /// + /// 总量 + /// + [JsonProperty("qty")] + public int? qty { get; set; } + /// + /// 可用数:可用数[同步线上的库存数]= + /// 主仓实际库存-订单占有数+虚拟库存+采购在途(业务设置)+进货仓(业务设置)+销退仓库存(业务设置) + /// + [JsonProperty("ky_qty")] + public int ky_qty { get; set; } + /// + /// 订单占有数 + /// + [JsonProperty("order_lock")] + public int? order_lock { get; set; } + /// + /// 虚拟库存 + /// + [JsonProperty("virtual_qty")] + public int? virtual_qty { get; set; } + /// + /// 采购在途 + /// + [JsonProperty("purchase_qty")] + public int? purchase_qty { get; set; } + /// + /// 销退仓库存 + /// + [JsonProperty("return_qty")] + public int? return_qty { get; set; } + /// + /// 进货仓 + /// + [JsonProperty("in_qty")] + public int? in_qty { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockRequst.cs b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockRequst.cs new file mode 100644 index 00000000..d18528a1 --- /dev/null +++ b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockRequst.cs @@ -0,0 +1,21 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.JuShuiTan +{ + public class JuShuiTanStockRequst + { + /// + /// 页码 + /// + [JsonProperty("page_index")] + public int page_index { get; set; } = 1; + /// + /// 页条数 + /// + [JsonProperty("page_size")] + public int page_size { get; set; } = 30; + } +} diff --git a/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockResResponse.cs b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockResResponse.cs new file mode 100644 index 00000000..2f187e00 --- /dev/null +++ b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockResResponse.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.JuShuiTan +{ + public class JuShuiTanStockResResponse + { + public int code { get; set; } + public string msg { get; set; } + public object data { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockResponse.cs b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockResponse.cs new file mode 100644 index 00000000..3cfebdc3 --- /dev/null +++ b/src/WMS.Web.Core/Dto/JuShuiTan/JuShuiTanStockResponse.cs @@ -0,0 +1,21 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.JuShuiTan +{ + public class JuShuiTanStockResponse + { + /// + /// 仓库id + /// + [JsonProperty("wms_co_id")] + public int Id { get; set; } + /// + /// 仓库名 + /// + [JsonProperty("name")] + public string Name { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/Public/IJuShuiTanService.cs b/src/WMS.Web.Domain/IService/Public/IJuShuiTanService.cs new file mode 100644 index 00000000..9b6af1ca --- /dev/null +++ b/src/WMS.Web.Domain/IService/Public/IJuShuiTanService.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Core.Dto.JuShuiTan; +using WMS.Web.Core.Internal.Results; + +namespace WMS.Web.Domain.IService.Public +{ + public interface IJuShuiTanService + { + Task GetTest(); + Task>> GetStock(); + Task>> GetInventory(List StockId); + } +} diff --git a/src/WMS.Web.Domain/Options/JuShuiTanOptions.cs b/src/WMS.Web.Domain/Options/JuShuiTanOptions.cs new file mode 100644 index 00000000..960b6ac9 --- /dev/null +++ b/src/WMS.Web.Domain/Options/JuShuiTanOptions.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Domain.Options +{ + public class JuShuiTanOptions + { + public string Url { get; set; } + public string AppKey { get; set; } + public string AppSecret { get; set; } + public string AccessToken { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Services/ProductInventoryService.cs b/src/WMS.Web.Domain/Services/ProductInventoryService.cs index 096d6cce..e4366235 100644 --- a/src/WMS.Web.Domain/Services/ProductInventoryService.cs +++ b/src/WMS.Web.Domain/Services/ProductInventoryService.cs @@ -27,13 +27,15 @@ namespace WMS.Web.Domain.Services private readonly ILingXingService _lingXingService; private readonly IBasicsRepositories _basicsRepositories; public readonly IBasicsRepositories _transactionRepositories; + public readonly IJuShuiTanService _juShuiTanService; public ProductInventoryService(IErpService erpService, ISingleDataService singleDataService, IErpBasicDataExtendService erpBasicDataExtendService, IProductInventoryRepositories repositories, ILingXingService lingXingService, IBasicsRepositories basicsRepositories, - IBasicsRepositories transactionRepositories) + IBasicsRepositories transactionRepositories, + IJuShuiTanService juShuiTanService) { _erpService = erpService; _singleDataService = singleDataService; @@ -42,9 +44,13 @@ namespace WMS.Web.Domain.Services _lingXingService = lingXingService; _basicsRepositories = basicsRepositories; _transactionRepositories = transactionRepositories; + _juShuiTanService = juShuiTanService; } - + /// + /// 金蝶 + /// + /// public async Task Erp() { //获取单点配置 @@ -93,12 +99,85 @@ namespace WMS.Web.Domain.Services return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReSuccess(); } - - public Task JuShuiTan() + /// + /// 聚水潭 + /// + /// + /// + public async Task JuShuiTan() { - throw new NotImplementedException(); - } + //获取单点配置 + var r = await _basicsRepositories.GetUcStockByHeadOfficeAsync("", 1); + var listNames = r.Where(w => + w.ManagementSystem == 2 && !string.IsNullOrEmpty(w.WarehouseCodeOfJushuitan)) + .Select(s => s.WarehouseCodeOfJushuitan) + .ToList(); + //获取领星仓库 + var resStock = await _juShuiTanService.GetStock(); + if (!resStock.IsSuccess) return resStock; + var ids = resStock.Data.Where(w => listNames.Contains(w.Name)).Select(s => s.Id).ToList(); + //获取领星库存 + var resInventory = await _juShuiTanService.GetInventory(ids); + if (!resInventory.IsSuccess) return resStock; + + //物料 + var materials_result = await _erpService.BillQueryForMaterial(); + List materials = new List(); + if (materials_result.IsSuccess) + materials = materials_result.Data.ToList(); + + List inventoryList = new List(); + foreach (var item in resInventory.Data) + { + //如果物料不匹配 过滤 + var m = materials.FirstOrDefault(f => f.Specifications.Equals(item.sku_id)); + if (m == null) continue; + //找仓库 + var l_stock = resStock.Data.FirstOrDefault(f => f.Id == item.wms_co_id); + if (l_stock == null) continue; + var stock = r.FirstOrDefault(f => f.WarehouseCodeOfLingxing.Equals(l_stock.Name)); + if (stock == null) continue; + + var entity = new ProductInventory() + { + Type = ProductInventoryType.JushuiTan, + MaterialNumber = m.MaterialNumber, + Customer = "", + OrgCode = stock.Code, + StockCode = stock.ErpOrgCode, + Qty = item.ky_qty, + BeforeQty = item.qty ?? 0 + }; + inventoryList.Add(entity); + } + IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); + Result res_Rollback = Result.ReSuccess(); + bool isSuccess = true; + //修改库存 + //先删除之前的再添加 + if (res_Rollback.IsSuccess) + { + isSuccess = await _repositories.Delete(ProductInventoryType.LingXing, false); + if (isSuccess == false) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError); + } + if (res_Rollback.IsSuccess) + { + isSuccess = await _repositories.AddRange(inventoryList, false); + if (isSuccess == false) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError); + } + //提交事务 + isSuccess = _transactionRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction); + if (!res_Rollback.IsSuccess) return res_Rollback; + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + + return Result.ReSuccess(); + } + /// + /// 领星 + /// + /// public async Task LingXing() { //获取单点配置 diff --git a/src/WMS.Web.Domain/Services/Public/JuShuiTanService.cs b/src/WMS.Web.Domain/Services/Public/JuShuiTanService.cs new file mode 100644 index 00000000..7fdf76ca --- /dev/null +++ b/src/WMS.Web.Domain/Services/Public/JuShuiTanService.cs @@ -0,0 +1,218 @@ +using Microsoft.Extensions.Caching.Memory; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Core.Dto.JuShuiTan; +using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.IService.Public; +using WMS.Web.Domain.Options; + +namespace WMS.Web.Domain.Services.Public +{ + public class JuShuiTanService : IJuShuiTanService + { + private readonly IHttpClientService _httpClientService; + private readonly ILogger _logger; + private readonly IMemoryCache _memoryCache; + private int hours = 10;//过期时间 默认10小时 + private readonly JuShuiTanOptions _option; + + public JuShuiTanService(IHttpClientService httpClientService, ILogger logger, + IMemoryCache memoryCache, IOptions option) + { + this._memoryCache = memoryCache; + this._httpClientService = httpClientService; + this._logger = logger; + _option = option?.Value; + } + public async Task GetTest() + { + //await GetStock(); + var list = new List(); + list.Add(10923342); + await GetInventory(list); + } + + public async Task>> GetStock() + { + List list = new List(); + + JuShuiTanStockRequst request = new JuShuiTanStockRequst(); + var resContent = PostUrl("/open/wms/partner/query", JsonConvert.SerializeObject(request)); + JObject resData = JObject.Parse(resContent); + + if (Convert.ToInt32(resData["code"]) != 0) + _logger.LogInformation($"聚水潭获取仓库失败:{resData["msg"].ToString()}"); + string json = resData["data"]["datas"].ToString(); + var datas = JsonConvert.DeserializeObject>(json); + list.AddRange(datas); + + int count = Convert.ToInt32(resData["data"]["page_count"]); + for (int i = 1; i < count; i++) + { + request.page_index++; + resContent = PostUrl("/open/wms/partner/query", JsonConvert.SerializeObject(request)); + resData = JObject.Parse(resContent); + + if (Convert.ToInt32(resData["code"]) != 0) + _logger.LogInformation($"聚水潭获取仓库失败:{resData["msg"].ToString()}"); + json = resData["data"]["datas"].ToString(); + datas = JsonConvert.DeserializeObject>(json); + list.AddRange(datas); + } + return Result>.ReSuccess(list); + } + + + public async Task>> GetInventory(List StockId) + { + List list = new List(); + foreach (var id in StockId) + { + JuShuiTanInventoryRequst request = new JuShuiTanInventoryRequst(); + request.wms_co_id = id;//10923342; + request.page_size = 100; + request.modified_begin = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd HH:mm:ss"); + request.modified_end = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var resContent = PostUrl("/open/inventory/query", JsonConvert.SerializeObject(request)); + JObject resData = JObject.Parse(resContent); + + if (Convert.ToInt32(resData["code"]) != 0) + _logger.LogInformation($"聚水潭获取即时库存失败:{resData["msg"].ToString()}"); + string json = resData["data"]["inventorys"].ToString(); + var datas = JsonConvert.DeserializeObject>(json); + list.AddRange(datas); + + int count = Convert.ToInt32(resData["data"]["page_count"]); + for (int i = 1; i < count; i++) + { + request.page_index++; + resContent = PostUrl("/open/inventory/query", JsonConvert.SerializeObject(request)); + resData = JObject.Parse(resContent); + + if (Convert.ToInt32(resData["code"]) != 0) + _logger.LogInformation($"聚水潭获取即时库存失败:{resData["msg"].ToString()}"); + json = resData["data"]["inventorys"].ToString(); + datas = JsonConvert.DeserializeObject>(json); + list.AddRange(datas); + } + } + //主仓实际库存-订单占有数+虚拟库存+采购在途(业务设置)+进货仓(业务设置)+销退仓库存(业务设置) + foreach (var item in list) + { + item.qty = item.qty == null ? 0 : item.qty; + item.ky_qty = (item.qty ?? 0) - (item.order_lock ?? 0) + (item.virtual_qty ?? 0) + + (item.purchase_qty ?? 0) + (item.in_qty ?? 0) + (item.return_qty ?? 0); + } + var resList = list.Where(w => w.qty > 0 || w.ky_qty > 0).ToList(); + return Result>.ReSuccess(resList); + } + + /// + /// 调用接口 + /// + private string PostUrl(string urlStr, string biz) + { + Hashtable ht = new Hashtable(); + System.DateTime starttime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); + string time = Math.Floor((System.DateTime.Now - starttime).TotalSeconds).ToString(); + string app_key = _option.AppKey;// "17231841286c45f99eb9acf445404349"; + string app_secret = _option.AppSecret;// "5ce9641ae6db4abb8b96eea7df6a81e9"; + string access_token = _option.AccessToken;// "4605358c37374780a8a4395e6cdb1c3f"; + + + //string biz = "{\"modified_begin\":\"2022-06-10 00:00:00\",\"modified_end\":\"2022-06-12 00:00:00\",\"page_index\":1,\"page_size\":30}"; + + ht.Add("access_token", access_token); + ht.Add("app_key", app_key); + ht.Add("biz", biz); + ht.Add("charset", "utf-8"); + ht.Add("timestamp", time); + ht.Add("version", "2"); + string sign = getSign(app_secret, ht); + ht.Add("sign", sign); + string posturl = _option.Url + urlStr; + Encoding datacode = Encoding.UTF8; + string paramData = GetParamData(ht); + return PostWebRequest(posturl, paramData, datacode); + } + + string getSign(string signKey, Hashtable param) + { + + ArrayList keys = new ArrayList(param.Keys); + keys.Sort(); //按字母顺序进行排序 + string resultStr = ""; + foreach (string key in keys) + { + if (key != null && key != "" && key != "sign") + { + resultStr = resultStr + key + param[key]; + } + } + resultStr = signKey + resultStr; + MD5 md5 = MD5.Create(); + byte[] rstRes = md5.ComputeHash(Encoding.UTF8.GetBytes(resultStr)); + string hex = BitConverter.ToString(rstRes, 0).Replace("-", string.Empty).ToLower(); + + return hex; + + } + + + private string PostWebRequest(string postUrl, string paramData, Encoding dataEncode) + { + string ret = string.Empty; + try + { + + byte[] byteArray = dataEncode.GetBytes(paramData); + //转化 + HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl)); + webReq.Method = "POST"; + webReq.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; + webReq.ContentLength = byteArray.Length; + + Stream newStream = webReq.GetRequestStream(); + newStream.Write(byteArray, 0, byteArray.Length); + //写入参数 + newStream.Close(); + + HttpWebResponse response = (HttpWebResponse)webReq.GetResponse(); + StreamReader sr = new StreamReader(response.GetResponseStream(), dataEncode); + ret = sr.ReadToEnd(); + sr.Close(); + response.Close(); + newStream.Close(); + } + catch (Exception ex) + { + + } + return ret; + } + + private string GetParamData(Hashtable ht) + { + string str = ""; + foreach (DictionaryEntry items in ht) + { + + str += items.Key.ToString() + "=" + System.Web.HttpUtility.UrlEncode(items.Value.ToString(), System.Text.Encoding.UTF8) + "&"; + } + + return str.Substring(0, str.Length - 1); + } + + } +} diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs index d8490860..1d24b33e 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs @@ -184,7 +184,8 @@ namespace WMS.Web.Repositories.DependencyInjection Services.Configure(Configuration.GetSection("SmsOptions")); Services.AddOptions(); Services.Configure(Configuration.GetSection("LingXingOptions")); - + Services.AddOptions(); + Services.Configure(Configuration.GetSection("JuShuiTanOptions")); } @@ -349,7 +350,7 @@ namespace WMS.Web.Repositories.DependencyInjection Services.AddTransient(); Services.AddTransient(); Services.AddTransient(); - + Services.AddTransient(); } } }