From e44854ed8850be2362cc90f8cc49d29c420bc86c Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Wed, 15 May 2024 10:52:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/slnx.sqlite | Bin 204800 -> 212992 bytes .../KittingIssueJobAppService.cs | 22 +++++++++++++++++ .../TransferLibJobAppService.cs | 23 ++++++++++++++++++ .../Jobs/KittingIssueJobEventHandler.cs | 2 +- 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index a481eadbd6b857515aabf10080b7ea7958199c5a..2e7ede825e3012b9159e9e4fb8550177eea4c6c6 100644 GIT binary patch delta 8906 zcmbVR2~-qUy1q+wRrOL;h#(+pYY;aC#3fM(3Zfz?i-LlRLW|8J2uOoVTv{|SlRT%y zbdqZlor#GP7Z8wc(wRJy@y)zRGR`C#6P=hv=jF{zoIGPsbUxCRj~)0Rk0KFXyx51o&jB2`56^EK&OhQL5GT`z-b-UBXG)jp)PeM z&NAF~aL?{C80Q+N7)Kb9;WlkUg~1+P$N~f*3;Gb|KeT-{``hRl;RRZmODnt6HZDA0 zD|2dPw_c44&(q3!wX&P}Vc|=)vTm*HE!5sPvFzl@?0z z5-)xtz9ya&AEX`05tGG8;XC2Kh2INjg(rnA!YX05U=~=@XQp>e|89ED^n_`fX``vk zlx`Yh{Lc8P@q)2~YNgh=$T-2s8$LDs!O#V>3NdyRdAb+a$9d)W$h zE<2fxfWKln-9L37>R#1#>K@ju*QM*CnY+w2=C@2IbCi*p9ZU_gh#Aiq@jvn3@I`zc zci;nf6VArtupOZ{Q7?KL?L;MLIvNJQfbYV?bWnW$jm23g(`K`7T3>I?vDsR!xsB^> zS&a=X&5iZ-)@E+UXq=A9TW!|nlE&t`?B>SSrp%_MB5U)O+Da?;fD&GA85Hkz;Hk%U zT30%$J`U%^MBoIJWof9i))!mqteLj$4VB#P{yB4BJPubP#AQ43uiQf>o`CNV?m0M- z+&uxulkZMIc}k%8=0Js2q~jzUM^2xlgxp+m=Oip8tDb{V?u=8g49*>c=k<4axpi}^ z)z;$E;eycSrR2zI`0%(N8@6rkxDL1o+Cz?BLrClTkk-n@ca3eb& zFQFPC$4rU(T z>GE_lbrC3y@I7!ogW6Fu$?btFS(Jcc;UnbP9yorX^DA#&7xV1^4EpM4lZY|q2v!{~w& z7Bm(&TN-RtR;9BJ_~u9i6Wn87gdfG2zM6gG-PrZ^g8wu)vIXwtu=ok7}b; zN3>02K_s;)X%BRIi>J0FvtXg8%XT$4hN$9?um3QrEr|v3-YPU-a7Lx0<`Hd)EQq1z zqL#*HtG6C%h;5t7f;egzNI*8w;cdmlwgeWWl~Qv_Z9{o&LsC(dEvaOaEvayWC24V^ ztp%L+y2iFm@eomSzx9;YI=pQ%3!?Nqs|4A+rS3ylpe@yY6dnYKhc{6wzJ;&gSMdql zj<@4VT!_>0ME)rMFyF|RFt4ER(PQuuzlfj4hw}{gEwhD*L7$@s;jftonThBcYJi>G zHSQd91)W37;6bK?$;XlCG@8U6{*a z3I>xugrO;9{xFp1NWU68f!n9-`q|c&`P=hbH?6led)D(_C3(roz|vwV-ri)zwIreszD6t~QA7?`?#Hw)U~Oxays_BQu%TW{ zLS;j0TBFge@S`gZNLMtNZutHr8^U?vC80++DLgA27TSfM2z!KWLX%J< zR0yR)p|DuUpr@~C!X#m=5G{lWyZ}u9FnwXViT{ePZ$VBOp zni#>UF-$syWZB1X1ZmoU_QAX4>ka7S_&6p@iB!)Ffj0us>ppKqCIs`zo7E^Yemt`f z1wUk}+Y{(^w6(^#m)4+%5Zq5LZ$x|ZCNMbzVg1|HK%3QF5cI_}+5PPa>g94Dt3#E{ z{p;A>K)NRVPWq*EN+RrWX|J?ds*nn#`=!b3Z=^^*LcA;95&tTFAYSC&;&-wya?is(y@9{U|B@#hM~@3H z>+EXd0`BAk8#!TDo(LvhGxu+%pi8714)SiH;Eb6`Lukm( z80Xy@L5Diwej6eH>jN$pY_S0FV=9=IIE{;8&$16$|k8Ayi)Bl;ux<^&y2!pLq)1-v_qLcMW90efliq#k327*K+{X{ zRIvXE4i~Yo5d0bJKXhn9!x}l?0ATuN2(am3LE;gi5U){%esWmsljAn&9E@oPNN}tQ{Vn z5V0XlNg-^sl33GP`2ku)aCLk*$&*{gvlC zd%*X*q@a&;^leTD`l6;Ul(#9>Wce@E016Dz6VMka3ajO%XK$&qa+R6W<;^tMyuuSqmxmgb=o{v< zW?ak6S#lE%h+pFgP}c&nTtUMV26fMOHPK<5oK-G2(!k8EG>{ycgN9cO)VCs97PFfGZ}sLf+(Qqq+neESb>NeXV# z181yhRGGYAmc$(`;-*sd&k0*-0JuLUUuG?uIb}9<4Q2Z4I z|3AA2oRMO#TuxaM%jv47X*I{T*ka4KZl#M(&4&RG;dJ9@P8#f~2fbk5#5wXh$~L;7 zKe+^FQAp^NX=%52+rk`qt+yq#Kh)%x$$eUqIPpK6MYNy8p?La@?0aPhRb1BW^u{Dt$t9FLX9w*${a;?` z^OMPPa=i<(%C9~#LCMLbE*PP>DEjV=nl(>eskAlSqwip0!OB5zq_{+0K^YR2jWvL_ zy~mRw%CH9zcQ+Mxs$5LzMlbUhcTgH1b$4%Dlq(l`+Y&(Cek69^pBDqjySsW(hP<4z z#c5jgQL-PAACHfd9(0$P=gZ3|MZ9*U@RfW2#bC(DD2?$EeD{5eGvq>_hWKbXctd=g zXhRarWpV+fm}m10D~&4){QF68#-J9;KgOio)vy!}r1Mgf6i#pNj3lf%h-sZ^N}Zmg zXa8k2z&Tbuh1%&E9=w#AcM#FQM5{+qgHw;UA%RE+`zm}#=BFQoly9_>r#z=xH6I4x PiSoWe`pBvew9o%v`?9n1 delta 1945 zcmX}tdr%eE9S89J{m$7vyL<2M;flypK_!5+3E~3{D&dOaBoTtq#*D>qZwbo7z*Vk| z786l2rZP?nU7cgpSWFc`9wJxWB-O^4Os1t((d6o=QPW5rn=wXw#CFCpT{2AekMlWu zcK4h!-}&useZ5hC!rc_7XxAl4n$(<>gWB~&zMKqr-uhEUy3_V$q(NKgUWR9)-sb9) z_#^(19}PwLo`aAlVwE21tID22a$GN3tmO@7U6i&G85Qi`E9p zNQL$BwOEK3w-3V;p~u(AiS^E{^)MjuyZjPA$q(>GUdapiFS*P7&itp@Yi>8+#6EKw z_L}p}Ofm)s%oyWGspUiulclGEYgy-NDb9N z45+8n4t2A-POVWFsFT&P>=Cg{00n28oOva~_TgqjnPw7$iC|i`* zltLv3gMqvi6=l`Ie1B=MX4P6YO=NUKjLNc-NFJ6{Su68nkxdneT@bCXDG6i-4sA3B zCROp~7%NIz;U)2TD?Dqh4M*8?_CpSc6K(LeSlqY57s2ufE zApTWles3TEVcki!89$apau3WFl|4i2_dvS1-vjySibo#A`|>6EQ@K;#Cch~!my6_V zIaMA>OuU0(`~Y`i9WKRZMfM?h!On@oEU@~+N#a^B#9Cv|$05tzKQaU;W<}!XqA3zb z!8~j9`6RyU2)rsl|m9ih$MRtsa*&epZDboTrm3fr!m8;@+5x7Idcrbmw?3FX* z(Xxj=pcm<9^Z?yXH_;&d4V_Q3Xc~>9Zt|GiA>WWw3?#Cf^yZ=~FzsT`*}b~{dV>~c(V>~u_W>~M^6 zJm47N*zTx0w%N{9Kd1 zp5R9dVUjprimNHTD~-3Zg2zzaCGNk9ZB%|FC0i}4i|t2c*biWeQ_Imy)k5hBv9cQz zt;{u}?ZR?wK=?wOtHh1gojOfh^V*8^U%0QrN~^yv&3dOU(%w^rrF6<-7BBIO{O|lj z-p&Qz$X9Y7e}T{B6L^$5(tKnNnm5eL<{5TcUB}|h4s$EZ6}bT{7P|u&qiZuXUA?J( zs0ycE$`m=7&P5c1l*HNDuVbG|8t|lG^*F)Ks>c#+Zka3!8ZpJbxe*f#r2v*l@@Zi< z4W-aDl)}HT&Z;aL=T<^=H`c0GWEV-WyPL2YMtBNqf@QT*md?foPA z(5d+M7ggAPvzM^L5`VzI<=6N}yp!+dO?(5d<|Vv{dwC{L;-=bc zJ~VHe|2Dre&zXNy7qP=;tJ%!Xi~JTW9;c?WTdK$T4}7HW)NAxS-O#?!{;bt%g<7Ke zqk2y5brSopLdTN1!-1XKkCR>|6JYB$Miw4w&IWrckbp^krPc}-L8jWd5#%0gZka>J PkY|2+Cf06>Ap!P(m=H*3 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 441c35645..6376a2716 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -207,6 +207,11 @@ public class KittingIssueJobAppService if (kittingIssueJob.EnumIssueSendType == EnumIssueSendType.BoxQtyType) //按箱叫料 因为任务只有1箱 所以可以直接完成 { + if (issueJobDetailDto.RecommendToPackingCode != issueJobDetailDto.HandledToPackingCode) + { + await CheckPackingCodeIsUserAsync(issueJobDetailDto.HandledToPackingCode, kittingIssueJob.Number).ConfigureAwait(false); + } + await UpdateRequestAndjobStatusDoneAsync(kittingIssueJob, issueJobDetailDto, issueJobDetailDto.HandledToQty) .ConfigureAwait(false); await _expectOutAppService.RemoveByNumberAsync(kittingIssueJob.Number).ConfigureAwait(false); @@ -560,6 +565,23 @@ public class KittingIssueJobAppService await Task.CompletedTask.ConfigureAwait(false); } + /// + /// 判断实际TO的箱码是否被占用 + /// + /// + /// + /// + /// + private async Task CheckPackingCodeIsUserAsync(string packingCode,string jobNumber) + { + var list = await _expectOutAppService.GetListByPackingCodeAsync(packingCode).ConfigureAwait(false); + list=list.Where(p => p.JobNumber != jobNumber).ToList(); + if (list.Any()) + { + throw new UserFriendlyException($"任务号【{list.First().JobNumber}】已占用,【{packingCode}】箱码"); + } + } + private async Task RemoveExpectOutAsync(KittingIssueJob kittingIssueJob, KittingIssueJobDetailDTO kittingIssueJobDetailDto, decimal handledToQty) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs index d67a779d7..ea33a207d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -75,6 +76,11 @@ public class TransferLibJobAppService foreach (var detailObj in dto.Details) { + if (detailObj.RecommendToPackingCode != detailObj.HandledToPackingCode) + { + await CheckPackingCodeIsUserAsync(detailObj.HandledToPackingCode, dto.CallJobNumber).ConfigureAwait(false); + } + if (detailObj.IsPackingCodeFrom) { if (detailObj.RecommendFromPackingCode != detailObj.HandledFromPackingCode) @@ -284,4 +290,21 @@ public class TransferLibJobAppService } } } + + /// + /// 判断实际TO的箱码是否被占用 + /// + /// + /// + /// + /// + private async Task CheckPackingCodeIsUserAsync(string packingCode, string jobNumber) + { + var list = await _expectOutAppService.GetListByPackingCodeAsync(packingCode).ConfigureAwait(false); + list = list.Where(p => p.JobNumber != jobNumber).ToList(); + if (list.Any()) + { + throw new UserFriendlyException($"任务号【{list.First().JobNumber}】已占用,【{packingCode}】箱码"); + } + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/KittingIssueJobEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/KittingIssueJobEventHandler.cs index 8573a076a..308cb2a0c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/KittingIssueJobEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/KittingIssueJobEventHandler.cs @@ -190,7 +190,7 @@ public class KittingIssueJobEventHandler : detailInput.RecommendToQty = detail.RecommendToQty; detailInput.RecommendToLot = detail.RecommendToLot; - detailInput.RecommendToPackingCode = detailInput.RecommendToPackingCode; + detailInput.RecommendToPackingCode = detail.RecommendToPackingCode; detailInput.RecommendToLot = detail.RecommendToLot; detailInput.RecommendToArriveDate = detail.RecommendToArriveDate;