From f2e2ae8aa00815b3a5ebec556ce32cee8c1b6a35 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Wed, 24 Apr 2024 10:27:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 240109 -> 240109 bytes src/WMS.Web.Api/Controllers/TestController.cs | 8 + src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 35 +++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 48 ++++++ .../Dto/Erp/ErpPurchaseInStockSaveDto.cs | 36 +++++ .../IService/Public/IErpService.cs | 7 + src/WMS.Web.Domain/Services/InStockService.cs | 138 ++++++++++++++++-- .../Services/Public/ErpService.cs | 46 ++++++ src/WMS.Web.Domain/Values/ErpOrderStatus.cs | 33 +++++ .../InStockTaskRepositories.cs | 20 +-- 10 files changed, 350 insertions(+), 21 deletions(-) create mode 100644 src/WMS.Web.Domain/Values/ErpOrderStatus.cs diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 663fedcc4089bf81bf04bf7958179a3030964a45..165aa46766f3ac9131df5a79f6be67e745ed049d 100644 GIT binary patch literal 240109 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ᰵjF=V&6ZV$s*aW9~ z4b^cb2$5ttmz_`L*_F<{aO1O4t2#_pnK;5zTj#M3Q>=}+TCz%)T4bR*GaBZUwN9lV zs7|pr65n9Ry7E*;IMoefEnnB5GNh>T7nYqG+?wG~hOEk82{2dOZsl3E&Ja|uc#@A! zQ-%W5y=v*#XJ=QGYN_K_nlG={&R3guf5%+rBu@I-GLpG;7GE@-$5}a+>7Zi<6%ku* zJbUrd7A~ahJKcK2#40bG5P`B>q|)Y`T;SQ4+}>K-9Onw(lc`=V$A+>e1@d+|2wOtn#Uu*&5QIOjoC;=~?yY%)B)}HM=l7RY!jPN#oS=vC4~s z4kf>@Ts*U0aeFoTNlP2-i}vh_Q+=hv=jJLQ+CqiQdaGsJrhmpy-l#t@j%LMV%w{6c z__gbnj#Vh}v0Et}MVge^$+@|?$%@$-Kv*hW$8cr3SA1cW1L%dPxY9JxnWud{2Y3PvM&>XwWxDN)2pGN&Y z7+_3X8cQaYBKRv~U|e3jB1y}dLpVD}eqbLQX&|(q>t`C?hx|}PK72k2DT`TXvgbL@ z&X+IkgD+cjC>ICe_Q8>)oV?776m_l zE4+}X^z4Qbtp|yL#==!+?L&N?s8V?_)$K9jpvVNpjFpV*#gE5Qd|{kTHNFzfm72Vov2C}V z-cCgzolQonr;H7yvSyMejfoLIGhW&U-63K^GXclk8IK3VBpq3u;8Uu`!@HL5(;39=u)f*i3GS=$|Y0>cRm1~l+`@#Bs9D`P$#maa&LNCOr_ zm}{1dX-P^(>{%WRV*@jN?ayiufv1G}NQ ziQV+$2Jz4+rNZC<~ zn8bMh&;rKtD44M*44iT%4++uM2NH~*39^sp7mOR^&pQ*!7~hx*J*Md)c9`*2Ic@W` zARY9v*qhdpe6dhX8jtQ-&^Vor7%`dF=pGV6D6}0m@Ep485UXHew;8ufgxn8g`d|!; zA2(}nQjTF)AZ3<|N)E|N(CKtCOEg;qL`<-uC9q8z4-7A8oEW9W=zYQ@+FR$)3t`e3 z4=16Z=m|;5eZ$@xOPLASLiG}TA}h{ve1#++kq4s0K6rpp*sm!f4kxuy8IzKX2X`xD zJd>Fh%H)>(U@?1#@wU`HsKdAeMq6Xh3QG4unXsFUx0>dJdbrqaPHb;)_Z+A1KU*Sw zN(IxQ?bfTtUTCSzQxkQkb}TLK-@a}F%OxB68*BElRP1bj{kgGze7ubaFPilgP+$(G zai7t0=%@1`wJ2ZD*YY8EoGzG8j7*~MFUZwF(jRpo4WFY&@RhhDV-@q_zT76C9+~B? zz^c@4&Yq6XnFOzjfF0TEY9cpmRl3frFAh%ER)_8LM}xa@@H>Kcg*pYYs#|1*cty>- zLl)8TPtmg_&Ss6mlI@Ydqx4Lt|0bZXl=KlXID$;$+Wqv&iO!&nMNoeL#s{@A+fMYl zm8F5($5ORd!5`{(d`8W^n?FYxyrO+-`S=0-akJIp*2#B|B)y|hv9>JmuvTEDgUm=I zs_vlGm+$q;SCHJlg8{H3-`%Tyivwa+yC+|;bWmde=iqR_p#=HnaqW{;oUPqLGbCDK zoh+p{bamiv$;aH?vRW!lJn{K<21saKN;uW;@;jfLbG=O_skbTL%;6_Jshk`1x$X4F zGIkme*SK@mLEckay$NyUElJ<0l3GJ}s7C8ww^|8B{f<~2v=BbBjlSsV0`j0j>C?%- z$cFg+9K0P=^#VShXx|?RF<8FT@3InBRz&TFbqR+7APU3|{|~KQ4-qlslqN#u!DUU( zxh=8Rfv~d_MBc}T1ecP+K|z|NO|(BH(N7X7+T#k;GB%mrz7hgmzde;UMgK^hlL2W$hG;|e_^H;F+tfTZojEWe~^zUM&dG6D(obSR}th5aY zlutbq&lAV4<>T{ZjEONE+NjXwIU>tiDITbj3?)9)#kwv?DkIxZox#oFIW|&Hj7NHh zRRYehZ`m!~HVM_Gx+hvlm;DOq3W+?5ky{THeyBVX{O<b@q)?7Xx@+YphN#809PVe8f}nT#gZTM=eqg#+7478wtckdLrAZVG5VyPS6T!O$!QY?|D24lKK7R z=>R8ftyrBMtu#-5LrN2c7pAqstVD+thFPwaWc4$o%FSk8Jf+j2!*r+j@ z7dZl@dUJtB4cRo@JIa>SM{nrGy0o_G3m$Kz@7ccKWq;@|9&6DlowZGKGFZ+E>lj6fG`#Vy_~Yqk2i!`RMs%e5*qkSCw zs$pO*2X89DuX-EVb`4%t)WFv&V(VNlvg2ZLOU}MPWMdSuFFC@nD6aE0UX<(gM2SWb zsfqMbPt(Z73%Ay5R&DZYaHa@sQ&-5pnfOL)&@P{onCeo9n`w4?MVmA;do^VNgm1wDL# zAL7trlUD8226|v~^$&33E_nChY$so(D}T~=Zyxe)ie5f4#ERwej&B;mrDt~!RGY>))kJp_*Xl}X$HIC33rep zcoA8HjO)dZ=?pa(?@bk#V1YIfvuA4OYXT0{ZCnqGc*`0tQhr4wg+(wV(RSN$3ma8+ z`*gF45G;;m6F+VWUKq2fh^UI1=%kLQ;>Ze?0)0xVjC2KW!QuGxl(01rA4<2a>p zz4-CglwTQZsiEZApx5gBIVNFbC=R{$y97RC}c;9vla+1hXqyHQzgO5BMm| zq%ji+Apqz;mC^_poiO6qSM#MMZkvowR$yK+ zx4x1yg~3dawL>9uVtvT;eR&`Bg^wDNlHIne{)s~zf{b%dPcIQZ6iK=kPBPv%60U)7 z&yBQ}vk8~`CPZySqOd7NA2O#tmm4{7#~`{37Zs0A5d2o+QzmIYk^kY&^GPxtxHOt| z1ldw>?S2S^Beb(pmr=S*?tW(TFu7TUOp~r|c3n>_!g8=e$*T4+CWr}G#&Yv7kBTu^ z+4C_!vx*@Cq&S_KG_V4jz@)Kc9;bguNsg|tlh+?69&c{Kr^D+IMM6#3pg1yHNnZ1q zcub!$EuS5E5baLOrrpU%4x&?-q6`NQ5?5!6JA-CMg3hlnJ=>#7i982Umv?jHNMsvg zLbJnE%mDGzJgCdD5mtcGjCgc)D={YxO%pz};mSjvzza_Ra%{p2$mHnf9nvkD#d(lE zJhfOu!TAcs?V6a8m>2${O_x{kMJOW!C&pz0+8H~7382YP_JK^XGz2dXRT`zwYv^{# zHYHvB!_Nwe0^EYxR3|pp?5^X|!HOpKV2F~&s3$iJObyFyB7(!VLq|2j78(tv))iUeXCBZSwq$vI(y@9&aC*GGbegI zr^i<{K{=dh)^TMMTxq<^I+0X<6|PdcEOn8y&4xdiO8S5-Yn)mLE~N~&<{6ZuI#>@;OHVQ7lndTCiWskqh)X`VL#NDwI$~_Jluv z+%KTVMMkT+3nJC*M4#TL0=Hr#<-tg#R2b*ILFi2Q#hcZOq^2AO^Zh7E7+!SlB}&nQ zdYKqik0%C1MC-WEj|_;uc|c1|9DVoBy|$S{A4IpCU)W_z&_Aru#IRe+L%lF-`^k~$ zqWNL8FX;UEyDX7{F*%*TwvR3=$kY6-xsk~ByzkTU z?fD_HL~eS`0ZxjOQp$~z(=`vD@|Q<#esPZE4~@u<1j@wH&R^T5_i9sjd@&E!#CEfl zu1QZz#AE#VJjlx1P5kLmi3&RfNCD>R8~(`t=xOEQ5dOseXz*RG5aJQt(qS*~$O(SK zedE(HPS@|KlV_O39NfM3h{`6TkM~k4G&wnT(<#v19jFJK{?T^yp+`O{Yk+F{MimmLj*p~j+y%x>V3oAme%_W5G(*eGg z-M5X@OZmNU#Fp~+sfhB}o4bYXU6`Gjo|~OBPDY}_f;u_EI(6)Q*^l}PYTyX5)HS@ zcUquwfRlFMvazr+w0*&XG7mg22YABKNI~Tk$25flD@Vrfr^vu$IdO+ojzZ=!f#;f@~{57T%eqvE+y5 z=%_f)`QCC7yPc^z3=?fkVP_@}9Q9#1{KZoqSTywz=9!Phq!1844kizrnv{oeiXHSk zP;3OulMyUItsM1|W_V6FX6I+77iQ+B=jR%eGgHRJKs^T`Dtg5!73TD$RiA0tbJZyv zva{{FVIjmMAtYZ#o&+d3awQGzb5nD(^Elx*KeI47Kf5q()OSaLUGEH7>PKhl3k!|v zWNCVK7Old~7P~g&{7MESGgH%3wS|S!)O>ZiHZ?nAsH>R6F(5(BV&atu6c8frL@L(lIf1k zVz_NyG452iYD&Z4Y1}PteBw3lT&&|k92#`rb<0hM4!sjuvjYb< zKf=Rxq@AKb0-Q#*>+gE!MEGy|4uxJ`aZg;q?J|9<+Okn7{I@K$zU2&B_2afWKU`nb zKJqhk5{h&MndXTo(eIqtt)0ewbk!V%J0SevDaD}6uxyPR760CrwiApeQmu51vb}J$ zRGXQzak<^pBoyD#sfEc|3nFo}gat^gR-3Ki5<8@Co1C4k&(unD_Vm=0U0tvmrP+o0 zRLMBE3rVmud4o5^2>-Y*#ToVnFiP4;c1qzP95rY>tORJt`}>E!H?9{oltw1WFo&@# zxd{gCp+ZLEx9zy~OYG#InVhby*DvXZi_yC#9##5$gJQxPQ@-H@_xr6Kx2O17$|Yvw zK{taZkNoGw0^o1Pj=sp&6j zfo`dsIURWGIjMdrIqnrkBXjZnSt`~KcB@^167GqZQTsT)nw+ehB}`gC5B~I{!$(fl zO|7EnMExcaTW>XgiM_W1q5DF$JO-fz2HKiGl(*op@u4DdlfNN?A35q( z#A5-CC-0@x!49k&rGxTt_j^vOMR%135tG4F3T(sOwOSz&2N^t~5^oFsbffvBgI84Y zaPTKe@^LE+#Nc79wn$K2xa7mZpKb*=oAz*+SCJZ{T*lFbOHf>-&j2mbE_fWH+7GD< zmkH5=HZ?op_iqXQ#B8T$I1647E{gl~DN+%0!80oIMDVBU=g6XxP8E(Qm8 zfG{zJE+`OV27W&DV{aG8gKKi$d(GOq@I6PlakoX@|nLoM|OobYCP*vzHP znb5T1gfEBItgB8>=_Y?XEZc5#vqNciQr=vYb~by4W}9G1gLxsHH*vN!HEEY-YLnCT zNi1AzMmO~&o7Y_U(vXQVXie%AH?h{FyE8PG$@Ky^BRuN{O~~FMZ%re9H1R$H}jzL zx>)*$w;taaEMYD*-GS9w?+@y@wq^0^073AiJZb6QbIlD0rxVQ$v9Q9WgeA&pbc6h< zoQa53JNWzuoh6*XA0#44~OEI!kcNt@-<(jDdPsdqHW4}9X&KA zQ(@PXv++Q}@JHQbp;O)b^Uj1aDX-HTuA+?R)I6kjXrOsgD^Jc3Hm&6c)9dry2KqxO zHO9T6$xfT&ZdvU$FC(s=X2-s3+`NGV6#YdPQH^!uMvPhVHPJ6z$as)8zE3;Ix3-RN zTCJw|5P8(#h%#O&+;*>8m~Xq?DVlM zxrI-gZW9hILig&RiCd3A#+P-YJj9aNSlp|7AbmxkTePWz!Y4%$?%XWkO zbH$ttIwDG0u4Hy4^SKpiVm9 z-Einc3LQ|gd&V185&i&8f6m?!>^E*bNjw*S@Y|aNr$p5!aeD^;cHl7i(|eqZE8P{Ey%H_V!7 z@qi8z*#?V=XawOxetT}gU7<&+D{k>6g2f92yH4w}T|e1#+Qx0ZtkR#5Xvlce?Y68P zLB}b}6^Tis!gY`2p*(JM2Kl+r4M><6a&SryF4e7u+P#sQ{4Z~dyl^3e?pm|HC?#!I zpO6f4QEDg@%!2&N$120zLga1r6$|~L6v|#MM1_j%8ZmRd$q@fthaXpOG>nJv^Zoew z0l)_V9|C+B@J)b^06q%%7~tc8PXN9d@GXFE1$+|lZGcY!z8&ysz-IuT1$+)b^?wK8 z^MEe^z6kgd;5z}Y1z!4|zM<#0N;i_8&Jp3;3s|mvjC$1=KzG`e!L@I6Q6Y+Q`w&f`~pDn`4{nfT3$zaOMUxG`2G(3 z{AK+76~M0oehu*JfZqU&+AfkC;!75uybj;~CcdTre)qItc*aM)>%7-^uk~K{`*(WR zfBw49c{hCiy6^CAT=ZV=y@7ta>G(DN&%4=sqj!t=9shba`M+NC-t_tFzU1Aybj`c< zns*z1+;+{o9Y1cr=G}oGcU<%C#E(0#d3RC$cYpr6Ke)}iXPLhD?&Vs%`>uKSU-KUD z-YlLz=s$hvn)k5xh1{i^oeWUTfDc5r*HG0zWti_4)00v^eO-8 zk!zmmO^BzH{?pPmZ_1k%PiOq6v)8;iZ(ck->OWn$<{k6CK|Fn@|Mcl=-n+bS6i>_k z)5UAvac@aH<$teHi%(qhPI}LXr>Fd~E7!bdz30T!)Be*l*Sxddxo8cm*SzPwHSu)a zFS~KgJMUfi{B?hL_%+_eviCySd$H`jRQBFo_9|uXJ!S8`W$)#(_r9`cmAz`&tChWa z*|W=DqwH;#y{)p>EPJn%y-Q`URrcCtuT%D%vezwpua>=D*>lTYzw8al-sQ5lUG}b& zy`8dmwd}pW?0ul@eX#6(sO){X?0r+&`$*aQXxaN%+533e`$XCM=Cb!KW$#C{m-)Z`(^KcmA(I6_Wn=V`-8Ig zhh^{omc9R1{ypQm^6y;-cn#pSfY$-82iyR-5%7Az8vr)}ZU(#&a0}o~fLj5#0d5D} z0k{)z7vOHdJ%D=w_W|w)JOFqz;6cDcfQJE(01g2j1sn!E26!Cs1mG=zw*uY1%9&i+}05}Ht2EaQ3PXpcs_(nh(un0H~SOP2q zP5@24|k0RzBgz&79tU`N|fbR!<74S8{4*-4;@I!zf2K)%%M*%+u z_;J8b0DcniQ-Gfa{0!h{0Y3-$dB86Kei86XfL{ju3gA}(zXteqz;6J46Yxg>e-!Xr zfIkNK+L&2K*_&p9cIHz@G*DIl!L>`~|>Y1pFnyUk3aYz+VOYHNam7{0+e0 z1pF<)-v<00z~2S@J;2`w`~$#01pE%*9|8U`;GY2gDd3+0{yE@Z0RAQ5UjhC#;NJlL zE#Th){ypG70RAK3KLLIh@Sg$y1>gaG5Aa_B*8u+w@ZSOd1MoiqzYq9dfd38nKY%{~ z{2}1~0{$Pscn!us;5C5P0$vBW9&iKTM!@R-U@gd;O&5S0GHFsZ8SUt6htx|EEFIp>^nEDR`Oz^q`7m=y%GqM`(m zoJ9d82LTBJDnW8oL4w(F%<&xC9Phi0U!XtmxWMDU69P{F0|W*D0|f>Gg9HWvPYOHya>z|m<`Mkm;=lem(SO_c< zSOhE1<6jG5-ssK5G9N+{TkO(9|nLrtk7svza39JXK zFR(sPRiG+RO`sZ3U7$KpL!bswQ=leLOQ04|Tc9>jN1zU{fxrepU4gp5h5{P`^#tkx z8wqR#Y%H)bu!+DXz@`G50-FhJ25c^{Ik1Jm7QmJQTLN1NYz1sBur;uaz&60P0^0)H z32X;!FR(qZgTM~JjsiOZI|=Lr>@2V|u#3Phz^($j0=o(92J9}dJFthq9>AUgdjfk2 z>;>#Cus5)ez&^mf0{a5{3G4^#FR(vwfWQI3fdU5t2MHVm94v4!aEQPmz@Y+%0*474 z1{^MMIBF)90eRLa5PX5C;;^Z>I26J90MFHa4c|~z;VFw0>=Xl1R4M* z2%G?%C~zXsP@o}jlE6toBY{T1$pR+>rwE(^oGNfCaGJnrKx2W%!07^~17`@F0h}pt zCUBO(S-{x>X9MR5oCBOIa4vA3zp+Aw+P$Z&{?1}&_$pN&{d!- z&`qEl&|RQA&_kdH&{Lo%&`Y2f&|9E4&_|#T&{v=@&`+Qr@R-13K!1V$z~cgs15XG% z0Spir01Olu2n-S!1UxD5B=D5LQ@~(>!N3rKA;3_9p};VKVZd;K;lK!i5x_`+k-#W{ zQNU<{(ZCpiF~HLTPXl8G#scF6#sT96#skj?JOfM+m;g)^mfk8z;nR!0?z|42)qDH7nlyr5SRhX6qpIj5|{*x zS70tMPhcJ}Utm74Kwtr|P+%djNMI4LSYR=*L|_T9RA4EvOkf%ClE6#A%K|S0uL!&X zEEiY~tPofMyejZ2uu@uts1F@S4DD!0Q69=jhsPkiC(kgExCqw!F!% zw{r46<840Db-U>a<)P!YJl#_6`2O1RbX&ROyJ^eQ9p%mr<$6nZl{>yuwmjWa?)bjg z@^oLh?|Cgx50yK( zyCCvTPek7UZB6_!r|Y{8{knBf6wW=*C6sv zRz%+bolIQE>ATw?@=jMo-vFIWT-WKl-zrW7f0GS*pOivA8EY7_gZh$sycnQA8EY(_gWv*syXcoh%`C}yw=yW>P~wKB8{#Cuk|yn zhSPq8NTXxHYmb>$(`he5q|xo*wf?5na@q$GX>>|>?Qzp;JME!}G`cLj_JnD5oc3Qt z8XX#58(`W7PJ1^ZjqVPw4K%H;)4q>Lqcg;7gG}4dY0pTc(N*HLCrzv8wBIDs=t%L} zQ>Ja?v{xn4=w|WSVAD2s+UF8!gM&82v`w7$$VA$Zpba%`Q>Xnkkv24F!%W-EX>U%X z4GY?E(>8b7*Ar>OgEqpnEu8iQMcRm7b1@Z9AvESCK|{mj9lPGi`gPeOr-6XP4K; zo3?|~p07xwE6i)pn6{(Sez8cSqs(g)Oxww6uUVwgjpnt9rtR#sPc72uWb@i2({^#% z;}&Uj!Fg@6X}db@kBc-q=)Cru#z>>f(QDI9 z+t+FTW2Dg`>9rZA?dP<2GScX-^x90*_IKKM8EJH8dTo|z2RQB7j5NABz4oGM2RiNd zj5Inzy*AslgPit?h8G3&kaCkvUYuj%!A^TkgE+^FzTq?Gns|uQUe)M<=Z53WGwo2P zeXfxv?Zn;?X;&j(v}2msc8kL{m7BFG-%6AtM9azIntH|?IqKWaoPtR zX>>~aXZo^f$2#qyjx@Tgz4nS}$2sl4jx;*7y|&!6_#Wd{(Y^1rH%vR#X_y)oeq!PUPDf~h_=y*NgZQb57djomiO%AuYNLH-+C@&scOvbxpnY!I z#ZE_mBJJ~_ePP-qPRE8K?Tes&Y1*YuM~))x%bd*u`O=0$&25Zc(wE6T@_s| zjD3md8{k_Ln>ig13rA#ZOhn%R-XwGXtnRbKIak@xj;LdA5n|7nqQM^cFSkG&}n0AxXF}_G+ z(9dhXns&3(5x_`eNYHD)nRbiQ@xe%Az|d>Io7UXv=wbLi{H}&<^5QzVaDrPn9bJr$ zw~qfd%Wz}RZgqa_aqa$>b%R#Lw3bdsCZnTO30lsyR!+w)BP|y+XWDH}M>WHfaB9dV z|0EIw6dV(O}o?Sh-swdgSMV&cR3wT4PV`QYRD%4)va&h z-A>0_qvNd~w5q1v<8(AO(y9innrZhs9jlGBYC)@R+I>z(awDyJ&}x|0+UYoNcoH?# zkWKzc)HLyar{loU@oEOGmT3<-9VHIOtL2a98-D+5oA{v9QRE=j_M&eP>zLTa=_qsb zz;(g{Z(!O(PRF3b@iy?s^9{$VYvRLB$Ebr?*NeVE+|b0fPRFo=xS!Rh#Tq-`9uO-y^l>F9Z+Z4$IiP3!1%Y(3I84cca= zJ?eDiJv`UV)R0a7$6#|4J2@Sh58~!t^bIFv3llp#9l4Jlc#CknElumAZj-ZtX?iAZ}w~cc=3PqOWk9@D*-rS`VkQ3c~TW z^~duK$J@@to=#^S1aUhr`UY`(6MH$Gl@P@3z33an9Zc-)bk;%;ckrTb5O*}OkJDKV zLEO=czCql{#J)~vJp^$lFZu>?XA}E5ofQ$poxSKA#9d5$%;~I&AnxKt-yrU4Vt=Qz zDuTGH7kz`cn~9G*oplk!-Mr`<#NADN!s)DxAnxu(-yrT`;sB?!HiEc^7kz`cr-=id z&gux_o?i3~;$9{WaysiHhvhi2HicH;DV0IK=6!lOXQrMc*LqZ{kp=vr>Y%zZZRjcz}t+oX%Q_eq#<$8|^^T zhC7|p5@`np?I6=eIGynlX$J-EVADoAoevXf2M6sC(?&U+Efb!^A!^7b{}=2~6GuCp zO%omO(4ZY=+8C#EZ6fWkpdD`7(@tmNgoi!cKdf&!DMy$%*6B>0=y*qj;~i<*IH&V? zBJIea9c9{hr?Y$_?Wmv~ZQ3(V=Kw|8(LpPiHo@r(p-3wPt-fg!oz5Q$&$Yf9vdN#~ zV@#anbbe8EykmlPtZ9>-&OVB?V}o{_Y0o;Hn-pos1?_m#rZ}Cs6luo?t$}G%oz82D zv<5*t!L(^kXFWyQ2|+v2wC9}8iHfungVxZr=bg@&inNA7JIS;coX)2TC-@{aWRpL^ zjZB>GbiP$|yhcGg*|Zr>XJbX$$w52Cw3$xlYK4bA#XqcX_!&Oc#92<~az)2GH5~6W z(_VBs(<{k+7HN%xcDiYEoX!%9w9|ujhG}!1&LNAmGlF)eY4e=UFpIP^ zgLal_^PSE=i?p+XcD88?oX$=QXYOn@WRw4fonzucr?c0hCDJTyEbUonfA8Rd6VH`uk#P<8~!p~Z{j;n=T%0>yFMK62GibkI_omhZV1|q zrv1(7oXkkOF=#iL_MX!jn~`=?&~7&E?@s4)M%v9myT!EkozC`*v|EDK+_Vpz&IOIM z=0R&=+J{bOibh(CpxtWPM^5LFM%t}GYiZiYPG^}$TFaodGVK$mb5J9#RnTrT?Ng^S zR3q)SpxtiTXHMs@M%wK`yTi24oz8BJv^#=!r)gg}o%Cw0lfTozAL_w0nYfuW6anIk%B^Z_w^D?Q5qqawF}&ptUxw-06JXNNXLm z`%U}C>1^IeyFX|TnD(vHxxSJ1K+qmE?K`J4fg|m~ptUjWd#Ce+Bdtx)9y09*r?ZG7 z?V+GOY}$`b=NL!Y!$E6n+D}erAV*r;ptUpYXQ%U%BduM~+MD)^)7i_B);?$*O#9X8 z+~!E@5VS{3`_1Xh=SX`bXdO-a-RZpONb4B1M@?HN(OJ`x_Gr*LnYM1CbE+e)Q_wn_ zRwdCH*OAsaXkARpB|0BF(z*n#t7$IL+1lZ6c~>=Llm8de&BP?p+1%0bx&^JfX=RDd z^^UaeLF-{!KGB)rk=7$%z{D`>q^GNF*v_7U) zOLPW$r1c3}U(>25IzK(q`Ub6^X*Cj^y&h@(g7%ncH4~lN9%+vSt-oot5}o-TY5jxt zxM{T$ofjWzj|c4u)9NHTYd+GR2-*PCHb`_%eWVQt+CbClCOYFj(gp@?kZBtxIv+p$ z#0^qIHu;~pCrzxE=zRU?cuxlHDbqGebT)saJr%UUrfr<)T>nTL9JC>(ZIb9pfJhq> zw4tVLn&>)#NE;foVWw@C=qiHnT!*P4oBVSfZsO*Nt}=*@H#}$~Oxq&SH3*S5B4{H` z+cMD=3XwK4XroNqD$(@|kv1x5qfOg7(bWy%NsLxQHu)zp#>8zBUHuRpZ%ojhHf`HP z*G7cnJ?)R@8(uz+HF3K{*G@#o8yk){&a~|lU0D&1H_ji=Hym%gi8~~^@*;@iz33an zXH48N(UloNe8!8uL7ZUXPKmDE2;u}U`UY{Li908{vLlESz33anNha=+=*o{EPV%B} z5GR|sYoaSdqLVXOZM0`i+b!Wv@l3p+O)+ivL|2uBhn?ad);An)s)>6fy6Pl)*s0-o z(@fhl(KRWNHZ5q+nYLG=D^?=yxu897+TMw-XNk1ugZ6@H`y{&BCDL99+H}+QO>`|x zq)iXn4Ab^YbfrwB%?R2|)Amnv9ZjUo4B9Ny4oGyBO{C2V+KZ+gnCKduNP978vrRiF z(G@z8Halo@OglKy^*fO^Cunm`J0#K7J&`syX!A@vG|{y`kv1=A^G!P}(Un1wHa}~TS9e9)s-Uel?W9E4enr~qpsg{jQKBou!uMf~8nVfMA6_%@PAdYn(L7PEWEkXwFQsvuMsv zvU6z8O|tW7&QG!?G)>`?rlh&=D%dexiLHn;$apAK~Se|uB^1}udYrrl| zSOb<;%`Q!{%M$s>60pk?Sps%Nl3kgwyf%rJfceE=vasuyHKnCc|9B}>X=WkQ{KF4+ z@yx=%en#6>NtpR`b&_4hk8XHqSbq6@12i-7nuI%*A}peBfNM>>F5yn42#e?&;Cd5p zNVroe!Xo+xaQ1tD+drNtwVsK0{o^@HwM_i0=JC|EBmPzMZZ@_f{vVtvv$;KJX#$M@ zr?PGM@3Wnqn$iRqekphHr^h$kztMi1nE-R+TEES({5Jar*xkE*2vBFFa4GzyLqjD z=`c6hA*ER(MJJ>*YlKN6@r6Lx;QyR- zxBoPyStD{rm?#onv6g0y=n44`%^GQLua%fJ(tNGgO0ayNd;|Pf%o}N8&-T_NYq8d| zh2`1$1}M!O@qf8w7Kxmg|A%Lew6vd@R!P>9pP6W|lnr_-%^RsW52bk{ML!{>c_T$9 zq%?1YX(I7ok^ioFBmeAl5UEes#g{9N z!}*VUo?y=arXl}v&mi_Z$xPvjJ%cNcHiSJxnWyXbR9u=_&gF1+j9?~h#ixv_{FKq` z8N)2riald1_l#rDcxI3OanA(yOk{HBANNdV&$G?O%;-YhTYRT z6fOMI5{4B8cchGt&imma+3lFz@$VJJ`5#sb`D0Cws}jB*neov~KxTAYD0N*TLaq&Yy)g7z(D-}wB*H&^1NhhdUrYC?i_GWfjxn}1oi^<7T6ouM_?ad zUx9sro8;3OsAY^6IDjn&3LFR=BybRLu)x8Il#FB=K|*moClmQa6ZsPpb5}apeb;nz=gm?0v7=n3tS9b zB5(W8P+Ofu_3PwDFYE+EXpfFsR~h1ih`Gc za<8I#ME0Pn6|V*3Y7|*p-B?np#Vb6@yXf7DmvvNf(YqC|;CU54`;KIxb*Nfe^zVwPfPA`HbcyOTZ1USw~w580RONA@QNkORp< zl1-X)3MXn~z$Tj3zaviyz+(2$5 zH<6pkEu=YVL2e~2Nh@+2xt-iW?j(1SyU9J|UUDC4P3|WTkOxT{vXJNdFl}4Xj8E40)Q2CF96=@(h_kCXz{HGI^FvAydgT@&cJoW{{a=7FojAHk)=1 znM>x8`D7{E7t<~gCd;`05_y@tLY9*ioxDNbByW+o$vfm-@;CAx z`8#=^d_X=VACZsAC*)J|8Tp)iLB1qkk(6ZQYf?_WA>Wek$oJ$2@+0|){7il!zmng` z?_`}aD&3MQBu5-cNEykK^~n09Dyc@QlNzKZsYPm&I%ES`wL|dy>7#-ee!LFWHamPYxgll7q;> zGdT zYIx=&Rjlkrai9D1p50bf(e>mHs$EZIbUl@2cUA1UyK>Jx?76oryRTwT>&iX%v*&@b z?7@mXU-@AaIa(X`JXDrFT(PHZ<>$0xPy4d0gWt1Ox6C8#=vbCL`iC8z*wMKx>r!#7 zu9e5?#-8qFS&u*N>B*j6Wm)e(?&-sxzGeTQW2#@p=R8*VIQ{vY$IJfrJx2N}Voc?$ zi0p~7LfW*DUQkFcETk93FCnfdq*oTws|xAWg|r!eg82~|h#p>9WP{l7Bpa?Tq&F1O z8w=@8h4kh^dP^Z~UPxOM(p&j6&F+?kv{fO!t&rYcNbe}5cNWsS3hCX2^qxX`Zy~*} zkhU(Q_ZQL!3h9G|v`ry>sE|HfNZS_Dc7?QkA?;8|A1S0A3+bbUv{NDNTu8eV(yoQH zTOsXUNP860o`tj*{|tDf-i5SJA?;g8`xVm13TgjB`gkFIqL25xJ?w2%(t{|C=w7@LO|(h-GpWFZ|@NJkgaF@^N$LOQmPjw__&3+Xe3bV4DW zSV$)o(#eJN*+M#{kWMY6(+cTxh4lGC`a&U{UPxyY(wT*HRv~?{kk00R62~4vMv_rv zG>FPqdrjWi? zNMA3cZxqru3+Y>h^zB0WP9c4_kp8WZzE?>9UP#~97i}LF(vJ%1$NK8+(?a@LA^p6N zeo;ujETmtB*K=R0KBjfqHzAL2P^WPErp^*MqNPjA%KNr$p3hA$f^tVF# zJO2^*@3tg$d+U)vNhR;Y)iHy+mjv0j$|jYGueggN_Hc=lRe0uWG}Ke*@x^) z_9Od~1IU5oS-y^gX%8WXlEcX1r$IgK!^sFTl8hpw$r$o98B4~I@#GmYflMTm$Yk;?nL?(LY2-QbytF+2 zpS?PKp6#>QKZndE^T>Si0^1kTE+W(6CA3S)40tA)MP4Mc$s975%p>#30#OKY;Rn6!QZp;77SWpc~L#pgZu19Ql(n#(rc=54Q9a z=n3=^pk^Kw@_^nz9|7v#QRNPxvK@8o0BYA!sScnz9ku8H>d#Sa4xqvu_2d9*$Wbv4 z7yt|u7zhj!pwb(4-2iI2QMnCx3K%Rf7#Jcz#Wm`y0n}8Zf*L^8G-{*)!+{Y3BY=?t z)Hb7%89?OL*wS|GB8;#-v30w}LVF)e@sT9nHID3L`$EPx_dl)M5cb45`rfI?Q3 ztpX@jMPVv{VpNo#0%ia+1!e-X1SlDmeI^h3Ss4{#Wee4zDEtIa{fSyn0M(tSJcbA1H1#gD?o)Biq8O4 zprPIjK#iH~OF0Q&mQhDl;42^%NP$cs1HKmc8u(B?i>fcwcmb&DLJb$-W8f13sPzwd1{t4Ai04khN&jg@`2^C8Ks+3TZ1o#>#7og4v zB}4$~h)^N~piT%?K>#X&Q1=6%)(4e60IGRVy91zJ2h}+MDsoVN1EA&x6*d5>YEVN1 zpl$|LG5{)LQ1k+z@&$D+fOY8pTvuRSpo%~hASaLmY-BHyEeTu71j>NCKpwC`zx8Fy z`fRBxP!*^qPz|UqP#vftPy?tbP!ss$P+=X}Rfk>W@=Yl(`wQ$3{3KuVPi6d|2>cBEBJd0FUp8XdNS<;dp7LKl zbor~Cv0pi3|K8B$Z}REC@#+5u#xR@7NodAND2-uq5=vv3oCF)g94tQ@gW2*gjbV)AP896R;9k zC9n$k2V#RSURy^RF<{I)EE|+DT%>#JthV$!n@|G~HANeN79bTeTOjw7x$tJyJZA|y*Mf45O*2Euk+^G~{5q$%EP!^s{KCf?G z!;|4{tcbn=J~VN?yuP&!B5!j=^bOF?9{Q)8zV!_vZ-Yhj4ba}ipL5)){2E~qeFJnb z@s}KTDn(dC-vA%k*SJ34>at1^7ST7r$0ks#;eHS#uGMBf09*hBxC)3@e9$!v`Zq==%eu3C-(iQ zme&r8a8l^J;3k{A*u##OciN#59giLkuk|!-J*V9rkw*WA*Ls<@zSGW-NTYYeYrRdY z>a?pQ(&#(!S|8J@IqgV^G8V5*%fI+gEq{x&75|HMcS~S4L5CbryXUHHaut}Oxwa~ zH(I2P2---~wshLb7HK1cHp;ZEoOZ!Q+Nhw7Hf?LC9dwa4I%s1|+s0}4U8Ic(+S8_O z>$Gz((&+8;-_xFVg4>^x8Pnws+bw7-{qrdTqREJ2>q&j5PWYz4nZ0J38%D zj5K-~y*9zLot$<#MjCyPUYlsz&Q3cdBaI$PuT3&-7pL8okw*We*FLpBtJU+`nHm19 z(y_@+HhFQf9dB2sot@F~=>7ECv!?ClGU*D9G&Xo`ifOw$?I?{jdQQDI)wDgFcB4ib z{i=YK3T6lZ`$5YJ7^>A`JlaE+CEOZZzGNVTz|Cb zrtRyrb2rlH?e*FW)An=P^&4sQ1$%9#Y5P0v7>+c0ioG_=v;&-W8%G-b$X@%*zWFus z+Nm7A`E)RIlTBWH(T;bZ(@y8;c=SShZMJC#Iqi}T$D6H&Z1Un96AyOUWgWyhUi1xL z!CVs$aoVLFJ@DLcym_V_>a@c<(&h#2b9=ru^V%IA9+s|gZnDXLeP5VZE3e(vKZTb}JI3h% zLZmUG;I)@cJJ#v&LZmU?;I&swJI?9gL!>bp;kD(a9q)8#BGMSE@Y)K~8aN%eh%`nr zy!NVTCpaC}h&0AIytdM`6P*rvL>i+YURz~aL#IO`k;WK_*H)W$lG6c`NLwAWHKsLk zI-C+|jIa2ky=L0UP6t~ejnNmcy>8kmPKRP5jjZjjgEtspYgC8BSD%*48R9sUX;Lt!HN2Kd^<4f8rY7DR^1MDz{tp`D!boerM` z@k4)de1rIriA|giuLbcVFZu@YV-uS?9exYq$6oXe;wL6v;Bj*-R~q}MXju5daa8EK4AdhKh|u5>zF8EK4PdhM^j z>h!nvz|EWvhKBDf1EbtzlYi*%OuWYFU}^LfGJ5K@?@hbb=}>Bza0}^8?S$?~#wPL2ryihadKqPKTwVqcKkHwVY|KoDNz?8l%`=`=>7tp4jnjcRJ)9 z9gi_^f4nl&?r=IF9%+n_do6F;olb|#BaQKMul>{4Bwyc-cem5Q_UL$wzWd`stN^e5_19moV-MWM=@f(LfthpQAGqB9?bXZc1cdNJn2f+pHhJ+I6F18H2@3uY z!Xo+x_}0XY^E!bc9FfTkBKijS&csdfI>8}`Om+~_H^BEMZkpE#5J6-zgowTY>e+K{ z=X8QZ^qlL3=e&_=?VV1ah&1L?=#BXl;g@o=yiTqN56eUgd05{7|B(yRZ)Q*8QK!>7 z!dJ%>5BchR1N^^t1^XZE8@G90r>uli!}Jw7HNFA1wR70R>2mrYZtKsXZxBnDx|hq_ z+gKkg=g~L7u67>#JDt)K&Lh)%MDz`?n~9G*o$?bzrvHfO8{nV5CjK6F!~ssH422^y zeMpYz8{og{;`#g8vmWAf%2RmOOn;JR?Hgc!6NfsT5*0+IM~Ubg;3xZ?*&?q~rh>@y zDG_}G{A}Wud7V-fM5b4X=o{b{6SvCil&c^z{YpgN0Hq83%lY6Y*TV2ny1+kYqrU$U z^$qt+7x?!-94CgKlE3-_|BdXA#dN2W38U9V%r5kgU#bJ(PlR6V#h;SDwhq9r_Lp<( zyiUCge>s_k$xSx-hdsx>VGEsJRVMm|ahVyfoom`6r`Mc`G%iBpwew6{?DUE>k;Wxz zymr26OPpS>CepZojo1F#Ism`fDcL5k(@DcAVQMKi+2kL#R4~AwhyN=I1~juDr8k^T z+zsE=X8KbkoBXpW6%6nvf~#$XQ&K7z;D0n)g%fg{{V;v%vfFsK68&9bgZFPY?K79% zUaYafYj>FTxy$Y-*4W^+J5Bq-Wp@^9Z1CD$rhVzMyNWe7cx)lgru`Yi#gZJJWu4S-WD54PI+++Al6^U#zjgYaLAc)ny%uH8yzd5z~Hi*(1do z8@$%hwBKFUu~=h+*B&)(9WK3Dtg*psolILd$vPElZ17rV)2bv{=VFZwUh867F3GwS zYi#gZSJNC9|3nM_LSSyP$&1}gOp>fy@$uN;wNk+Ve;)dV6H+P|;7`cFa67ckPE>y}&`xA?iT!9Ukgrfrq5LZ|4Iu)%AiP1`!jMx%v4 z5imE|eMmWRn-inz&t(jV(SN8@x8owC$5@+*-$j zxydFkjyG|KL@EQ=6M;qa4e*SKJ944mwM1A%-vAR#+$rHse;T^5Q!AFqX7kUYBbH zk)>NA`UZHx9(bQbmvcp5AM3mP@ur)$Z=#F6B8}BwUYlXseu*vxi!|1Td2Oa?`zN|k zEYfBMZI)>VB)W_&(q;wiMbi#Ubdg!4vFgk}=xoytN^}WYq|FZ69McX?bb(r=%?a9E z(+){=`C6p0p3Oh#Jkt(Mba7jxvD(dR^G!P}(WP&Z##%V9EimoyL>IJ^m+LE9xHLZ~7a=l1f8nk7m z)lYOWU-^ycME^`zns#EM3lt-5Wzbfc)-ciKi;=b} zXsb;-DPe_U(H|T(_y=8MTB9Uev)11^n44_!;%g?JoMf*RACC=Qd)>5C5?MHD|59LX zvdN48Y;A%6+4bYI?enslafkfLtY+LXpY4>-cFt!PB;4B}ENR>&pY58@c4J8+o7P&= z*t+%e6<5AXPFwrRcf03*sHfMPt62AW2Unl(lF72kZrL9BQ%JUFUOuv7a<6>0cRt%E zpY6-x*|c9i+drQj!1{q)cAze?JSY!j2kS>Z;SgP7d1yX6j89<4T3?S|iEVi0mDtiI z(S_Ku!}Fz!v6U{y_OD!w?T9>=uOvs292b~!Bq3!aPu3&rld7Z|sZMH;nxqz~P3n*h zNL{iaDP5SYbYZstn=Z_DG(Y=)c5$`>+v}6!i?bcWwqwb0fv9x-=w0fS` zRDRifY4to;*($A`_ph!?tLOcBD6O6^dgE7GJzsP}N~`CKPDp9>Jd5Sy!I0AG`Jxk2 zT0NhYR?q8|Z~ed7(&~AC9!jg{i~dlQR?k=VfR|R!msZc0R?o{HN*2tA(d*Lcd6t`o zHQ=Sy^ZwsxY4v<*^}PQ{sBXi_rPcHDhqJVLo|8~oJ+Fn`{cp&Y_8Zd0X_fadk!DLj z;lekZwXIC->a+@c5V!K8ZxFXOv76H>@j=|$i@rhJ#>DPUtH?()QML&)J^uRD^B36U zw+orf!9uW(chf|^$c-p z4zhDN!f~faV}stZgH0RhxKpID!E1+@Hp*p(to0p%xydFk9%|xfmmOMsJT`dkFw@33 zS*IUA2{w4Gv~Ztu>sRboG~6#O-1k2mCx)Mr(!zcJ>%zzEv~W@y+i%!xmo+Z_4P%2p ziKm-3$7QD%Yi#h^8K%v3*%`$e8@yIpxbIIyxvb>(r=*FUxuq^^Qhesv;I*cvEpu7Z zVvP-6D=pmjC!##NES!?d?aZxm8SC`peS@U9z4PI+u+J`P{QLM4SYqy&Ak;`r^*4W^+mZp8| zvX;df8@$%av`<{ts#s%#*Gdcb{dp)Y+%Ni-X%l`zN(=Y>Pe^Iuez)SkB5d&Irn~*I zDNC~M#TpyD*2A=XlJzLo*xnB;SVvP-6>up-qBj}>cd@LGScbg~NDLQv-@TYi$XTmUMnr!m-A4uV!yO-KP%@4BP%W3*TSs+ zH>9+1-=Bxl!u_H@wWWpo%ZvZ5u)+VZlosy$6HzWJ`TZ&R>lg0(TEKU)I=)wSQ2u!S za9^e$FV~M(=*KJd<5lu8O<35NmTBeS`ssR<3a(FQE*tw~jgv;%=}C45&6!Dd7R}j7 zb`H(CNp>F1`AODXiF_ypcBwpfReNnpam#8ONm*aE6`1V!m*Tz1t<+m)mMPhuM~O(DDFxrSD+`* zOMn8clw$>Y1APSg0DT4e0{sLiluB7tfKsRwJ_RUtN@-Joa;6k71z2)Lc~W2iFi>D1 zFi3#1q7)GYC>%FNMS^PVu+MJ1Soe%aYJA_ zFhgJlFjIhK6_g+ZC_6|+L4dM?6cGd{97s(-fWm;30R$-gN0~o>(tZ^31Lgsr%V$xX zkGgvR#rG(+2h3;J0)Yj3HI!chPYpy(SV-T=zFQN#^c39J&JG#iE3fYrbn0Var3ObvJqcwK-J zX%s{QD1t`GGk`K@6g2}VWJcLC;BDX?0p?UwWelLy7*)goN{LZL40sRtQceQJz^L;D zQ0$93UI4|ssM7^dtcyBa0L8c{y#-Kgi_%&E#k44$1yC%D(pUh+uqb^6Q0|K2R={V# z=K`MtUkFf?iV{=+Wv3`I1yERuGExAgqnP&!WWd(~lz+;~11ag2Aa6lrE0A&JYKwcmZtS7J@u)e_hKvjXNKsAACKy`uYKn;N! zKuv*~KrMklFq>BV(w$UX5GMi{Sakj(RUSNA*2Z0@c9R+p-b`sbL z*jZp_U>AX1fL#T41$GnI4cJ{^cVG{JJ%Bw0_5}74U}_4pPJq3EeFXLa_7&I{*iT?T zV1I%AfuH2*P?Ldj3jj42D5n5WQ-N{{zyUZ13LFR=BybRLumDpenEe1S1%e3=z@fll z0*3*I3mgs{A#en6q`;BDQ36K+M++Pc6a)%DeF4V(8S4j*0ge?o7C27eIN*4JGX%~6 z&J;KkI7{Fx;8!_gTuYrRrvvA(aJ}8+$nG;aF@Vcz}*6O1NR8r1KcZcFL0m0eL!o0*1-J& z_X7_IJODf>@F37epbhYlz(c^p0uKXi1=<4b1lj@Z1=<501UdkZ2s{FG6zB*%D)1=K zNuU$ZS)en}MW74NRiG=-O`sdlU7$PALx7HAx`lzBKrew_KyQKGKp%lVKwp8rKtF+g zz+(cB0sRH&IHj8ucpP{_;0a)WzyM&Nz(8P-z#!mBfhU2d1fBv03k(K^2n+#+3Je8? z2@C^<3k(NF2#f$m3XB9s35)_p3ycQF2#f)q7I+#MD=-!qCom2eFEAc>M&KD>g1`h| zqQFF8lE5TjvcP2ES%GJPDFRb~sRC1hX#&%L-{see>n3tZL|`5M8owaBUSQXBf$6{u zff>L|ftkQ8fmy(d0xtry1!eH6K)?VeUWMjxa+ zt;QR|8lL4rs~XD5sgSZ;%XkCXvf?_N7;?hw#wiQlZSqF*cK^&|zno3GWp8u2xIUb_ z6Dm)poG`gtaR&Kws&^|+8-F?VZpFFcw.ReSuccess(tt2); } + + [HttpGet] + [Route("lst3")] + public async Task lst3() + { + var data=await _erpService.BillQueryForPurchaseInStockBy("1541693"); + return true; + } } } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 3e653133..d9a8b0d4 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -1076,6 +1076,41 @@ 批号 + + + 入库订单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 511d4777..8e65e3d2 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3917,6 +3917,13 @@ + + + + + + + erp:单据查询-采购入库单 @@ -5156,6 +5163,17 @@ + + + 金蝶已有的入库单进行不同处理:保存、提交、审核 + + + + + + + + 任务单的箱收货记录服务 @@ -6421,6 +6439,36 @@ 出库单 + + + erp订单状态 + + + + + 创建 + + + + + 审核中 + + + + + 已审核 + + + + + 重新审核 + + + + + 暂存 + + 业务对象表单Id:对应erp的单据表的名称 diff --git a/src/WMS.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs index b0c30582..d66efa48 100644 --- a/src/WMS.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs @@ -68,4 +68,40 @@ namespace WMS.Web.Core.Dto.Erp [JsonProperty("FNumber")] public string Number { get; set; } } + + public class ErpPurchaseInStockDetailsDto + { + /// + /// 入库订单ID + /// + public string OrderId { get; set; } + + /// + /// 状态 + /// + public string DocumentStatus { get; set; } + + /// + /// 入库单订单号 + /// + public string OrderBillNo { get; set; } + + /// + /// 采购订单号 + /// + public string PurchaseBillNo { get; set; } + + /// + /// 入库单明细Id + /// + public string DetailId { get; set; } + /// + /// 采购订单明细Id + /// + public string PurchaseDetailId { get; set; } + /// + /// 入库数量 + /// + public decimal Qty { get; set; } + } } diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 03862446..523c3013 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -27,6 +27,13 @@ namespace WMS.Web.Domain.IService.Public /// Task> BillQueryForPurchaseInStock(string id); + /// + /// + /// + /// + /// + Task>> BillQueryForPurchaseInStockBy(string purchaseDetailId); + /// /// erp:单据查询-采购入库单 /// diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 5197a88d..11e5b5cc 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -124,7 +124,7 @@ namespace WMS.Web.Domain.Services // 构建 Redis 锁的值,用于标识锁的持有者 string lockValue = Guid.NewGuid().ToString(); // 获取 Redis 锁,设置超时时间为 10 秒 - if (await _redisDb.LockTakeAsync(lockKey, lockValue, TimeSpan.FromSeconds(10))) + if (await _redisDb.LockTakeAsync(lockKey, lockValue, TimeSpan.FromSeconds(10))) { try { @@ -203,7 +203,7 @@ namespace WMS.Web.Domain.Services await _redisDb.LockReleaseAsync(lockKey, lockValue); } } - else + else { return Result.ReFailure(ResultCodes.Concurrent_Instock); } @@ -856,30 +856,50 @@ namespace WMS.Web.Domain.Services if (erpDetails.Count != 0) { - foreach (var s in erpDetails) + foreach (var det in erpDetails) { var erp_details = entity.ErpDetails - .Where(w => w.SourceBillNo.Equals(s)).Select(s => s.ErpDetailId).ToList(); + .Where(w => w.SourceBillNo.Equals(det)).Select(t => t.ErpDetailId).ToList(); var erpDto = new ErpPushDto() { RuleId = "PUR_PurchaseOrder-STK_InStock",//转换规则内码 采购订单下推采购入库单 FormId = FormIdParam.PUR_PurchaseOrder.ToString(), TargetFormId = FormIdParam.STK_InStock.ToString(), - DetailsId = s.ErpDetailId.ToString(), + DetailsId = det.ErpDetailId.ToString(), IsDraftWhenSaveFail = true//是否需要暂存 }; - //下推金蝶 - var res = await this.Push(erpDto, s, entity.BillNo, sc_erpService, sc_inStockRepositories); - if (res.result.IsSuccess) - entity.SyncSuccess(s.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo); + + List details = new List(); + var resPurchaseInStockDetails_result = await sc_erpService.BillQueryForPurchaseInStockBy(det.ErpDetailId.ToString()); + if (resPurchaseInStockDetails_result.IsSuccess) + details = resPurchaseInStockDetails_result.Data; + + //金蝶已有的单;进行金蝶不同操作处理:保存,提交,审核 + var currentDet = details.Where(x => x.Qty == det.Qty).FirstOrDefault(); + if (currentDet != null) + { + var res= await this.QueryFirst(currentDet, erpDto.FormId, entity.BillNo, det, sc_erpService); + if (res.result.IsSuccess) + entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo); + else + entity.SyncFail(res.result.Message, det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus); + } else - entity.SyncFail(res.result.Message, s.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus); + { + //下推金蝶 + var res = await this.Push(erpDto, det, entity.BillNo, sc_erpService, sc_inStockRepositories); + if (res.result.IsSuccess) + entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo); + else + entity.SyncFail(res.result.Message, det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus); + } + } } else { erpDetails_tags.ForEach(x => { x.SuccessSync = SyncStatus.Fail; }); - entity.SyncFailAll("同步金蝶失败,金蝶存在已审核的采购入库单", loginInfo?.UserInfo?.StaffId ?? 0); + entity.SyncFailAll("同步金蝶失败,该采购单已存在采购入库单", loginInfo?.UserInfo?.StaffId ?? 0); } //最好一条一条执行,否则执行失败 但是金蝶那边又同步成功 就会造成数据比价乱 var isSuccess = await sc_InStockRepositories.Update(entity, true); @@ -975,6 +995,102 @@ namespace WMS.Web.Domain.Services } + /// + /// 金蝶已有的入库单进行不同处理:保存、提交、审核 + /// + /// + /// + /// + /// + /// + /// + private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> QueryFirst(ErpPurchaseInStockDetailsDto currentDet, string formId, string billNo, InStockErpDetails erpDetail, IErpService sc_erpService) + { + try + { + var purchaseInstock = new ErpPurchaseInStockSaveDto(currentDet.OrderId); + var det = new ErpPurchaseInStockDetailsSaveDto(); + det.DetailId = currentDet.DetailId; + det.Qty = currentDet.Qty; + purchaseInstock.Details.Add(det); + ErpOperateDto o_dto = new ErpOperateDto(formId, currentDet.OrderBillNo);//res_s.Data + if (currentDet.DocumentStatus == ErpOrderStatus.Z.ToString()) + { + //保存 + _logger.LogInformation($"入库单->查询到已有暂存的入库单 开始保存 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 数据: {JsonConvert.SerializeObject(purchaseInstock)}"); + var res_s = await sc_erpService.Save(purchaseInstock, formId); + if (!res_s.IsSuccess) + { + _logger.LogInformation($"入库单->保存失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{res_s.Message}"); + return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.SubmitFail, currentDet.OrderId); + } + + //提交 + _logger.LogInformation($"入库单->保存成功 开始提交 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); + var resSubmit = await sc_erpService.Submit(o_dto, formId); + if (!resSubmit.IsSuccess) + { + _logger.LogInformation($"入库单->提交失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}"); + return (resSubmit, SyncStatus.SubmitFail, o_dto.Numbers.First()); + } + + //审核 + _logger.LogInformation($"入库单->提交成功 开始审核 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); + resSubmit = await sc_erpService.Audit(o_dto, formId); + if (!resSubmit.IsSuccess) + { + _logger.LogInformation($"入库单->审核失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}"); + return (resSubmit, SyncStatus.CheckFail, o_dto.Numbers.First()); + } + } + else if (currentDet.DocumentStatus == ErpOrderStatus.A.ToString()) + { + //提交 + _logger.LogInformation($"入库单->查询到已有保存的入库单 开始提交 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); + var resSubmit = await sc_erpService.Submit(o_dto, formId); + if (!resSubmit.IsSuccess) + { + _logger.LogInformation($"入库单->提交失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}"); + return (resSubmit, SyncStatus.SubmitFail, o_dto.Numbers.First()); + } + + //审核 + _logger.LogInformation($"入库单->提交成功 开始审核 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); + resSubmit = await sc_erpService.Audit(o_dto, formId); + if (!resSubmit.IsSuccess) + { + _logger.LogInformation($"入库单->审核失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}"); + return (resSubmit, SyncStatus.CheckFail, o_dto.Numbers.First()); + } + } + else if (currentDet.DocumentStatus == ErpOrderStatus.B.ToString()) + { + //审核 + _logger.LogInformation($"入库单->查询到已有提交的入库单 开始审核 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); + var resSubmit = await sc_erpService.Audit(o_dto, formId); + if (!resSubmit.IsSuccess) + { + _logger.LogInformation($"入库单->审核失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}"); + return (resSubmit, SyncStatus.CheckFail, o_dto.Numbers.First()); + } + } + else if (currentDet.DocumentStatus == ErpOrderStatus.C.ToString()) + { + _logger.LogInformation($"入库单->存在已审核的ERP入库单 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:存在已审核的ERP入库单"); + return (Result.ReFailure("存在已审核的ERP入库单", 2001), SyncStatus.CheckFail, o_dto.Numbers.First()); + } + _logger.LogInformation($"入库单->同步金蝶成功->单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); + return (Result.ReSuccess(), SyncStatus.Success, o_dto.Numbers.First()); + } + catch (Exception ex) + { + + _logger.LogInformation($"入库单-同步:错误:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{ex.Message}"); + var result = Result.ReFailure(ex.Message, 50001); + return (result, SyncStatus.Fail, ""); + } + + } } } diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 89a4d1ec..ca1f489d 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -2510,6 +2510,52 @@ namespace WMS.Web.Domain.Services.Public } } + public async Task>> BillQueryForPurchaseInStockBy(string purchaseDetailId) + { + try + { + //1.先登录金蝶-拿到token + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return Result>.ReFailure(token_result); + + + //3.获取金蝶采购订单:拼接参数和条件 + var query = new ErpBillQueryDto(token_result.Data); + var param = new ErpBillQueryParamDto(FormIdParam.STK_InStock.ToString()); + param.FieldKeys = "FID,FInStockEntry_FEntryID,FRealQty,FPOOrderNo,FBillNo,FDocumentStatus"; + param.Limit = 10000; + param.FilterString = $"FPOORDERENTRYID={purchaseDetailId}"; + + query.Data = JsonConvert.SerializeObject(param); + var json = JsonConvert.SerializeObject(query); + + //4.请求查询接口 + var result_json = await _client.ExecuteBillQueryAsync(json); + var result = JsonConvert.DeserializeObject>>(result_json); + + //5.返回数据的组装 + var erp_list = new List(); + foreach (var item in result) + { + var lis = new ErpPurchaseInStockDetailsDto(); + lis.OrderId =item[0]; + lis.DetailId = item[1]; + lis.Qty = Convert.ToDecimal(item[2]); + lis.PurchaseBillNo = item[3]; + lis.OrderBillNo = item[4]; + lis.DocumentStatus = item[5]; + lis.PurchaseDetailId = purchaseDetailId; + erp_list.Add(lis); + } + return Result>.ReSuccess(erp_list); + } + catch (Exception ex) + { + return Result>.ReFailure(ResultCodes.Erp_BillQuery_Error); + } + } + public async Task> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode, int subStockId)> request) { try diff --git a/src/WMS.Web.Domain/Values/ErpOrderStatus.cs b/src/WMS.Web.Domain/Values/ErpOrderStatus.cs new file mode 100644 index 00000000..11ba0344 --- /dev/null +++ b/src/WMS.Web.Domain/Values/ErpOrderStatus.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Domain.Values +{ + /// + /// erp订单状态 + /// + public enum ErpOrderStatus + { + /// + /// 创建 + /// + A, + /// + /// 审核中 + /// + B, + /// + /// 已审核 + /// + C, + /// + /// 重新审核 + /// + D, + /// + /// 暂存 + /// + Z + } +} diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index fa5b888d..e8a0656d 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -139,21 +139,21 @@ namespace WMS.Web.Repositories //1.获取物料集合和组织集合和供应商的集合 var materials = new List(); - var materials_result = await _erpService.BillQueryForMaterial(); - if (materials_result.IsSuccess) - materials = materials_result.Data.ToList(); + //var materials_result = await _erpService.BillQueryForMaterial(); + //if (materials_result.IsSuccess) + // materials = materials_result.Data.ToList(); //组织集合 var orgs = new List(); - var orgs_result = await _erpService.BillQueryForOrg(); - if (orgs_result.IsSuccess) - orgs = orgs_result.Data.ToList(); + //var orgs_result = await _erpService.BillQueryForOrg(); + //if (orgs_result.IsSuccess) + // orgs = orgs_result.Data.ToList(); //供应商集合 var suppliers = new List(); - var suppliers_result = await _erpService.BillQueryForSupplier(); - if (suppliers_result.IsSuccess) - suppliers = suppliers_result.Data.ToList(); + //var suppliers_result = await _erpService.BillQueryForSupplier(); + //if (suppliers_result.IsSuccess) + // suppliers = suppliers_result.Data.ToList(); var entity = await _context.InStockTask.Include(x => x.Details).Where(x => x.Id == id).FirstOrDefaultAsync(); @@ -238,7 +238,7 @@ namespace WMS.Web.Repositories if (current_box != null) { var current_boxDet = current_box.Details.Where(d => d.MaterialNumber == x.MaterialNumber).FirstOrDefault(); - if (x.MethodForInt == (int)InventoryInOutMethod.Product && current_boxDet.Qty != 0) + if (current_boxDet!=null && x.MethodForInt == (int)InventoryInOutMethod.Product && current_boxDet.Qty != 0) x.Qty = current_boxDet.Qty; } });