From d3cc92898a716da850179213749de5320acb7744 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 1 Oct 2024 16:16:34 +0500 Subject: [PATCH 1/3] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BC=D0=B0=D0=BA=D0=B8=D1=81=D0=BC=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20=20"=D0=9C=D0=BE?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=20=D0=BD=D0=B0=20=D0=92=D0=A1=D0=9F,?= =?UTF-8?q?=20=D0=BA=D0=9D=D0=BC"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs | 4 ++-- .../Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs index 9835772a..590cb0ab 100644 --- a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs @@ -46,13 +46,13 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto /// /// Момент на ВСП, кН*м. Уставка /// - [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., уставка, должно быть в пределах от 0 до 35.0")] + [Range(0.0, 55.0, ErrorMessage = "Момент на ВСП, кН*м., уставка, должно быть в пределах от 0 до 35.0")] public double TopDriveTorque { get; set; } /// /// Момент на ВСП, кН*м. Ограничение /// - [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")] + [Range(0.0, 55.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")] public double TopDriveTorqueMax { get; set; } /// diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs index 3f0d5218..3dd83d5a 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs @@ -39,12 +39,12 @@ public class ProcessMapPlanRotor : ProcessMapPlanBase public double WeightOnBitMax { get; set; } [Column("top_drive_torque"), Comment("Момент на ВСП, кН*м. Уставка")] - [Range(0.0, 35.0)] + [Range(0.0, 55.0)] [Required] public double TopDriveTorque { get; set; } [Column("top_drive_torque_max"), Comment("Момент на ВСП, кН*м. Ограничение")] - [Range(0.0, 35.0)] + [Range(0.0, 55.0)] [Required] public double TopDriveTorqueMax { get; set; } From 2120dffa5b253dd381e3e2fa0399ce014d5f3087 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 1 Oct 2024 17:25:58 +0500 Subject: [PATCH 2/3] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE?= =?UTF-8?q?=D0=BD=20=D0=B4=D0=BB=D1=8F=20"=D0=A0=D0=A2=D0=9A-=D0=BF=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD-=D0=B1=D1=83=D1=80=D0=B5=D0=BD=D0=B8=D0=B5":=20?= =?UTF-8?q?=D0=BE=D0=B3=D1=80=D0=B0=D0=BD=D0=B8=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20"=D0=9C=D0=BE=D0=BC=D0=B5=D0=BD=D1=82=20=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=92=D0=A1=D0=9F"=20=D0=BD=D0=B5=20=D0=B1=D0=BE=D0=BB?= =?UTF-8?q?=D0=B5=D0=B5=2055=20(=D0=B1=D1=8B=D0=BB=D0=BE=2035)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Templates/ProcessMapPlanRotor.xlsx | Bin 49629 -> 60128 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotor.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotor.xlsx index c6afa71a039287776df14b37966265c2ec92a4d5..2a670c42eed97f02d72227a100cccee44132a8ee 100644 GIT binary patch literal 60128 zcmeEvcRZJG`!`b3l37MnWF;fnA_`d{6h&4>S&6KSib`goh|DsILXwh5LW3wPWF;%f z-sAHe=k>8F^>x3V`}f?>^SYn=kI(lruIs$c^O*1BeH^+~6_*iH5v(9sNkBlbg@9sX zL;Z0=0)map2?!_&RuUcEYi(s`Y-OjX;dIK_R+rn+(qeNgF%f$-0TEpP|Nr-2EP+?S zrB*L_*A(^y4X@LDpibY!t4w(@f0{w)P8!K;y1mRFS-jVJWJb~JhsCe++*2E;Mn5s( zW@AKF)KzG*-ODU{yG(A!l{Gr888!n4vsI!7#I9}ONVq<ygU( ztLvo|9i;X@+oIuiPX04lhTm-#`ubcphV>eB9?Rt1pSw-It*aOJ`}TUv@Rwc5J`_}9 z%#R)JUkVwwIYYw9disW}O>*-qa{J1m%Hf-G3Qp|y&jUDOFdThASShXEeg9Hwrcm^^pwe*n>KpN$YbCuzl)itwN&VW^ z(6r`(%WI1*Lt}KB>SiJ*QVk^H(#0JPyzdMP--FSm>kciwe0s=aMm4uEKJa|8Gus&^W zXl-qda@efT5JDn@RsOsGmmOGg@)hqI&z_4p9v`0D1Wv2I6+O#w@%iIA65ce5%gPo; zcO{)B!h(MYrrrrDyUns|fUnqOLS*pECgw8@9PAGnh_h?fSR`djXSChp0a=!ecH3Bl zZ>~Ue*a`0lwe=2dbg$gjycx5$Y}}>m7m(vdU)D#v`puQqLDBv@9$q*xd5lJzXt`5l zj80H$EC!w1rxeh`r^$G$4GB63SoP{=XN2A25e9!tE=Du|%1p;TjPhLHe zmQ*3XZ`&Ttj?!%*e$V|6>-L1z3&?w3UB%$MPn^j5+*QskEKSt6gbXc&ngSIp3-TIj za;;68zVoC_xuT(QYJ;|z^6~YIURV2{`uGPF`Z4YdE);*Ibm~hiwVGM!+0p3S z_5BvCuWk|&=sabw5SWjm>)ZmfT>eZBm~s-_(86ZZtoONtk@s;~Oy~xiy@a}Q< z7Zzdx{jmN10)5M?ujVIx$64nnSV+>m@aNl-vXhgPO6Hni3Yj~Duw(qXG=D#(og2p9 z4{Aw`sxz<#t6VnByLs+QXw^gCOpa{1NE=mR3+Y$a4_}|M9z2$t*i5NF^Ua#k=Wd#K zoH*6$4d=HW5;&{I9raPQ=xU8s63Ikmt-5r3n!Q?S?L`4U)1X)`-HH=8xNc^ID3HJK zX*KH&oSZBl&mR}hEq4Ff*sr*(II3%;H^PHpbqNDiF!Nqfsx?mQkI1-G6G*h@HdTd8 zZvULcZje*`qc-E2F<&S>PqZ03n}M1~le(pSYYm0d*xFA4jAV>;>n3XtH73_*ks40@ zpz%F4Vejix$NQtHsA$5lg4yFcap>~sbVK%)gt6PMMEb0+5KD7uA_?9urMvg#t`#q3 z{p|B7wZEAvgfOo>m(@`c^q_v|tnM=dvgAYg4`m|?-ID50_{z2LX@yW4Xv+w`2$YvrxcVJsdR zcMsp&rGED)$(pp27RPU$_;|1DS%=u*rmXL=J-h?5y9KZEMnv7Yc_6`f+2a67cL_;} zBI44+%hS2Nk`tS@^!w`^Cy(?B?ib&eQfhS8D_OxH(vVe{^h20NhtuHqsOW>{vhQg; z*;j9Nq>jCKu=SJ8z2j1=bT(ZHJhkzSCs*o)_~M9r!NdvIBQKcXQ0C} zagItWNB4&PR&R>!q6xnDGV-JkUGvrZsi> z-Y9P0;%!tdo)zA5p~8?Y(9ncsgVv$w3g?GEYz7|=eNp4R?7#L==7vEke$fy+vR*j? z!LQr(RcN~sAN=ql;*HrFSj2l$ps~G+!nY`|?psNI*?~@-FB#PXBT=fPvg(#eF0~m- z7L058b47R~=qA@0Thi|>&DIaG-J~+uRS><5JHwW(A^q%DKJYrJSsmva8IlQe3uW{#D zt<;)x_Nlu4vk*Vgqp=R}oz}!kh7QULf7cm|Z| zb+nwmuI-}z>Z0?tODjJHNOae#tbEXxzV1?1%+zzALq-k;6C}+?k}T3+ls@d=Ous9A zht3U)`;-^fz0VThBgud4`qJ$E>W|b;+b(Xsa&LgQ_p7HxUIgC57JYT^*!q5H6y=hjJ?k(o@qh(Kc zUfHefyS(DF_2)u2D_6g(+{b%FvKSMqCH+-Lj_>a6aN3$VNo_HqVr(I7Z+G8CQ8c%D zg7LJ!$4y3ad3E65!NgAKAM^ixMQb%j+5^0;X!HkW#qBlBZ{s& z`c{l{65bp&UhY8ZcvMk-?_jfCe~+0x-N^SCG1}TGqc3&L?mN?`rtNly7cghGACR=? zt|fb765dF7_2%>GCx)kJLrP5O`%UX|)}NshaJ3~Ts@45*yWz#|zTMUS0lK9>$a>2d z*ZI4O4L@(ND2uu^p4Qm>gQ>9Ic2j8*&e*JfTI<6F-nU1OX3%^azHlwtsg(6r6~+5u zJ;lLIiv@v%?9CT1Ln3VC05V`c8QPi|8{66PVE@^P;z4qlrER$E`l3dM_{Q_it}Mcl zo<*k%)4FPdUfX=DvKm--JIHex!-}s7Dvi&#ZRM_|j}v?AYt+}AHH|CXvV6-f5JipBBl$jSqaUfAu&_kfUAxfr3be-f^Q`$?>6(d^SyY^Fs$8 z)9hmpzx(`T-8X%4tB=>Y0!{94YQMa8@t)6}izUt?R`-su+EP)EX$cXA12)nh_Q$tMLrcn_Msq?Vtu)P1g~sV3$1jH|SE!l?acM?;Zsq-9TCMU?+2Zr3ReHxy+^5ShlUr}~d0W=*Hb;hlEgwHLi+hlFytAr2 z&6g2S?_pF;+THhI%dwbnB?$p*iK8hB)YT^f-zmDv+lF$HuqvwLM;vS%?A$PLw|mc5 z*|wdP8(t|iRo@oBCUVP-b8F~Zl3nFdd1jx*o=;`l?9RXY?B4ySIxJn;yVb@l1+5P^ zamilmdUcHIQ@DqFVuJ0>9fvI)sMa;fh=%6gddqt8?u80j>F{_?5|YtI&YiCB@~$6< z>>E+vpzA0ZE7a|iGahLf*A=f>z)D!0AHQ25>g-eNGtuW0 zPMN9bHjI2h_vqI0H(>WrJxW-eaau)2N{%kec}4Zq_1K<_4oltjmyX<7T@_iVpuudA zD4TV>`_1)4xtFQ|IuAE@bA8`8M1JX8OJJ*M!ZI~;&zPzw$J1&$_h`@E-Bvdi&(eMuXl}r^i=`FkY)E)487p5SSD5F5wVVVBC=D& z^SFD$vb?9JO*&U^_1J9=9bTifnx;IF?!CwP6M2SontMr>m0u{>b??%;74dyGZswg0 zB4otnIrtwv_(oU6FZVg2v3AoMrL$b|Y65n=yxnP`vXy0dFCGTERR?&%&95i7qHo~Q zUcOy&ui#mBZd?*uTgGE>Ss7EqXR7N6G(L>|_A7bX=pO2ujh-`)XDu8udO36N65lhM zU6_&wRV$cqK;%~FbW>W)`mzv4zYa=8EMNe*YJmx9PKgu>??XN3$ zxO(kHKefXdCxuG%#|~C%KjY*MB67a>pfsRyd6uUB^<7EfEPDAl>7_N}`O2qGOW5B| z_iQ->C(AlF+_kEM&-rl$(zQl`d_ zMC$moxVNP-+@s5PTuME0^xF@{6|rJG`aE{Q+s?#i-A}eSe!s4~>Y~*+k!B`|^T(_bkzKDc z`nyT%BTGnoTeB2yoW4<^sCwk7j{Y;c;9FVdCv0VVpK4yWGAu7GcDQ%Zc$cfn>EDPpSa*~z!9MQW z;{y+A+DM0UIfbuA9ikn4)%k8&M7ZS&1$ zuy$s~mc~5TD<8^R-?i(l=w+yKWX~|_NKYE zZN(y{IsB3vc;Z|oSN>h_Z}Ard#~^+B!5t+Ui@9L zt0%{n{C*$7pqlpbYrIel4I?Wz6apN{EuSgUuid{Nppc;exXM=cl2s!NAWNzxP2 z+0s2s$(qJECUIJC*V%hZUr@fOLTSF?L)KbdvM?RkT`A6uyKZzk>2t5# zvMOwcgTLmU&f8KBNgp{k2xQ0RW*ge(Q|HnhyKr#o{i>YuzC0iFKHI!kKJKd+_BQiE z3KiXsgxKb7?9nW>+EN>IQoi%ZKJ#2-lx5&qt&^b6QF7gs{q-f|$5*&7*}N(ZJG&)| zl5Nxa^%tmYD70Nf3-?xB-Zw(N?YXB`_;IQ|Tm99j_|3S3S4BwEPJ8RgNywAM2>4Q+ zFksUvJQU{XO4G%5ytr$4BD(U>W}bDq?lz;JoNXLWJ;Hr8!?oYOOcpTgu5{+a1$uV6 zyBFNuCf?}jNu*9YPF6+*NbtAZ^u`TcCUbWhze~H)qa?d`a=@c8l0h8z<#uE4+2iMg zC@R#Obtw!@bPLW_`3ZZb$@6sFXgSt@nxdY7T$yNjbX{~-$+ESMXS@?ht6yaeSZ&)Q z%-YoYW>ZO3_vV|Y3_HdY)}MTFUpT%*m`}9HyF;<>lmmrdaReJBwZpO)UG+u@??+{i z*^Km$86NB;(c&Kvl_8g7W-ze2V%@i{@Y08R)_ntAG@WdGK9@gdDJQdTl?}0zS5ds9 zWaiB2?ZBn@ydE*TiHO`E(emVc< zb@z#nhixniw|rz)GD_P0!uRI!2itg$ZRE0z=*RIHqoj=HnXkIelBy(6*A<#LsAj7-0>U!-vsO ztEW++o=5vO*MFe#F&qgCB;6}+&hzA*{U_I6s&37Py0r(Ne;)Dw`or1a+*Mav=HT~s z%x_mPbNa}7y_KZhB4^KisAA0_jf>+li8N|DSwu=lWtUf}(b<~6Hj$uvv;;mrGAoW>dq8?rg&}gIZrDjvuSX`HfmT`M3Un*X&b8Ov zWxRjOG}&BxzrcX!cAE4p{I?IfZc3xMbJ~~Q?9R^Re#y_Xy07aBt9ISCsb_pCPauBD z==CPnsyr|MrdRh%gX~`Bu1fc%EIjJ9{BHiX&N~+CDf}sY0#mJgnt9UC%LeYfV_874 z{w2M+&RVlpW&U*+9+1$IU4BwpnYw+)%ks|cye@C43sVkGR_00XjNJ1i(<3jk@^;YI z6&I*%x63rYAT&6&Swrc$$mUaDp0YgT!ueCji*(9_1$)@mtXa;oFr>a)yh`nWTdyPs>UF6Fp$vr@@Vb6@4Ipw6!C{ob0|VeLf-r) zjOC71a=F2+Is<=OdX471=2~{S!5S4k{EnYwmvC(Nv$w|^7&U<)tPyQI+UT{;alREo6`%FdcbXA1m$Ey*`WoIQ3|eS3A-u?L5& z>`os@(k`iVNx5n6Z$e7XB6Lez0GOKND@ium=G!2zH%TbL#Ke_I^BUd zHA^wSi2>s^zT$BKPkCNE|M*}icTvK-{EWdXtvmt(ZJQN;s?@NImmE=dnxQ(wxKS(? zM|ggOId+x9#Y9Sz_$xbil4>%IwBEe1`HDfHDrN6b*ICUdcvf zZTo11_bHD5ki_+MwtQ%0%n^5WoSYnY>??WG_aVQ1q9{tjWx92!4>ulVjcfTf+R-^S z)gIO0?lL*qJ3bmkrc#6(n{vllH%?9Uz0-?yb9Ho-@TQcId@eCPG&YuLt@qqH3pdnU zK9OL}=zeyT!ToD{5l>WuWRd$+|GT7w#vJi%+=+>@gn*PAY-}4+B%b4X#~dAAX6j8x z@H4tkkL6G0k2>P2Rmh^E94@;!jgC%>{J;%%U2cr*f21;kdv61K8GEPaJ`pfcq>@`e zF6lNp+B_Cjw>Ka_qTYQXK~F-`%?a01G@6A=6F%!6WonIE?T;I5o_^O--cnlH_{t{5 zenV@u%hb1V&0B+04t0!GdO5fsV^ab7Ek#8Y+Ze5DaK-9=4iwD836)8jA!*%9UtsM!MqZ)BTEw)r+?h=!Oljfh#jFq&0 z`8qz>KPilBa^F4eI+Xgf@kc-*(`a>mNRca5mzC`FaDux(naW6CJ@s0b^v|E0r~8b8 z>2V_+<(Es2QZzF3;K*^fg1!%p4(^YQuO4pq8SpW_H9k05s$7~-Bsb#j>g+ZdEc8)L z^y^NQE4XO&_wR8f>c_gR9!0ph;3lUhdUC|4r`V50KdDuxVn}KEQdcr0sMobqv|jh? zNKVBlozUe;16u`g2Nx<8$pWFg#vIA9AC--{v`Q0uTFP;<6}LX zc*)4ylJk-(10@f~r_`qhClWqSPji&_MD4^)bM(03f}b@?wq9+&!!=&+ZQE@AWbGxvjShK+X}FKm zPZV?PrysAis@2a}txzz#RJ6wD6%JV^?>>>KqE7P`k~Dm#kuCC?(+b;#>h^|habEPp>>&?ANo%h4+3nu-NG9zO8WWXS#ArQX-JISIc#sr!y0!QORE@oNt~ zgY8gc?%>OKl?{8eJe81i!~5uQUGgNymIt~L?1CiP1(v*z@}8_dS@7%*>|Dq)wHDUC z@x=1V-ED2?fgWPI85*Crc6n?#l1_#|&Pq%KO?E9y#bt@1GN+M4~c+cHdL;>=it_8(GEsMfd2Q_?rt z7H7@k;MDn1I66bBVN5n7%f)V=Wr>hrAmN+DSE7xZG{mff=ywla*XFnzk*QLD;pVCL z$#?8?#M;eIhlD(c$SkYf+~dN`>MGjEaUd;7CLBGbYV1c^tyB2tjvk6_R=?lkwPI{!Ox9xDu7R#8yjxFl=)J)e!(>~>*yvgjB{ijP zh6gK6UcN~WtQB$LY}rkYW!bNLv+K23 z<7>63_eXtP(#?V}F<&-cbuS`cu%P07bGSb1E%EJlBl1NCK4#czC4f>2Z@@uMwua9L zSLCa@YB$3;N4)(y!sYzUU$y1C87RU)7kl@vefU14Ufk|%pc6aN-yQo0iId|DZ`KB0 z5Bw++dX$$kR9n82;f?OGEW34PmRB7bO7@2Is`plMtEi%e|NlRf&jesCH)?9|F=M@PM*xyKV-? zlh|G}aeJ9@w5!OL^Up5*my3To7(Ct^9Vbso*y#}1)8)1}bJ)B`_J9>*mgnWIv{!u< zzgs#5`NCR5!*Q#y}zz_qX23u-VsV#oP5X5|0_3- zt|-YP!PjCvZ7~T;*4OTfOFfsmBW5nIL@!@PcDNVWAu<8X4i}ohzp&(_+rNL!|AB2T zWyz|sww~MFgPG%xs>V#tJ_g@Xlke71>r=%C()QUvYKsL@5fn(lU3Pmc5P!d`|M578 z7ht;0w~)g!B8Sc2i+2~=rP@_w-a;2-VB~}tfR@B!z<>Rc58szU>=|akk!)=m*_-DJ z;ltbe^46y)g@}^at~Md!-_8-i{Pdk-$a}(>NF}mB^w)cAS++x*M!~1O_}Ac5x)h&A zF>R3Hr|9>W5cOZV=^0;q0vJui?ij;)Mw>Q2lN;CEZeS= z0ikukC&w1%kueE53}YjJhOqs*g#c}E)l!35%0e%NMHa<8SbY3%TvEHe8V~jqj{vlS zLd;gCVDGiho3%MOB4AXF|NPDC!SAnqZjDoHKUal8<3YLwl7BlQ0vH}2%upF+`%^Hh zUUD#7yVUsjU%8~H-Yq-I5A|v$vA!#0jbt-Mi@p7JW*Izsn;5L}?MB7ElkXGPyy&oU zpV~>7mSI$~vcA~PhDgAeiusX-Z>oW&4m@b&=Z;{ zfj~h_8J{;2+GpqH_z_6jC)37+Z{ax*{n{5ho&B`{0_6k6vgg>@jG6abm&dmGsFt32 zPsj*TLb3nYN*}kv?A>quXg{Rx*=2H^d1X?eZwG7Cq{983_n4dVjvk~e4dcI8n4F#? z>oCz(O@8h^I)!Pmn&E)Z-W}@;R_-zZMfhoJxl&>uRIx+Amx9tsFZo^)8WjfdNf(5X zkJAoZDD-8Qjpp0lPi|KH(t?;So&7AOS#h)>yxU5DzVKFcrqKC93lOTL(Xp~n^0}o$ z{q`8q7&DiJN?~6K68VXMILkuUVjEda#~-`#d|~oyxoE!C>9BMxEX|*YeFaZz2SL)M z8a#ve+4tx{@5k~Rxm=$|r`(ip@$W;u> z_&kJ_7j6|kUJ_s)kSmq)uW1A_2V7q=bsV1Hv=4d`< zZ@ACf1$M*>C+2z!D|=vH!Jci8HNr=Fu-ekl4ZBSC@xcbK1;EiwU>O;-vMTl!Z1O$W z>n@Xg7f)kJqXx#-LSHkj&2;<^$vriVWbJ}f4jIvC%DwQ&9BVp!@{6{u>>1(+O+Rh5 z{ryQjxz8lW`^QH~B%U_7Uq6aJ>xl(tP0k_pI^>k&R~CuHVsps1>|39htOM=X%I+Y( zm+uO*znd1<-3}9qsccz9=#HRI@9)Y;>fP{4UzJS?VwYdK*cWc)?_%G!bg|!Ave-kG zBzDZ01AjASQ0N*?(BO7tDo(EOamJQEF2$Ay$PY}=4h*x85bw(;`Ve}}Z*wvjcDTz! zy7WX*BF5|zk|aKlu%LU)Uf_(ckFWjYjMHS~Z7WCKdyjUZI+Co3Vl^X?gA7IcLC6AY z{GfXfd{iX&?OtTDF!s^NHSf9e?xpOMmQqx-^8QGU5f$@ycCdX5tpS^g(omJZ=w(7U z7S!EUN-R#xB=?NX;V9-6>Pz;@vEU_3QX+22n*7_2@v&ykf&blG4GlO|RT`Qp_cVD6 z9gSC^uLZF|Whi<5*PzN!nM(5BCQAt|^vsVwa5BTLlSxo4W2cYNY<@O1)D?b?&4}3b`ehW3O~G>e zSW#>Xhlp`V(jWBu3|-Ej$ibA1B8{1*u&l6tvExqJM7&Z<|1ri1#S|ENhWL#oNAXz) zoRsiCvfKZk!xwV-G2f-@^!Ac<`p+Al(<%Sb&2LFt1)Vk^osOmWuV1@*pOLKKg;Y*+ zFRT7HCyQght#s@aWJ-Rx;^cvQ{+sVXHsd$Z@0vR7w5RGl^65kqEFm?Y{$(d>7=4x5(XH;Z@F#kCM1{AqZ{1P_bf3JMwKrmdSRKked*CtWXaLn z<-n4&$I`YsK+X+VWSAYdjWgEZyjk&U+4YBv*M3lz(Du{T*hEOy(B`38wWmbBl6;>g zr0~Ku7SC~NTUL+9z#4wy&eKo0>FeByd)(YXz4J-W$7?TZ|N{>X@~_&o&WBw7Rx=sP|0V? zIp6$7`cJ<3f|C1R^i2$FRbt9xo;3gj^X7C3<_{1VkXhR#C)slp1`$Y*@CQsZ+2U2m zl{~G4c^$ym8ApCjI)^$j&*b?%&jv6r4rZ~n5!#qX(|-aWIZFpXi);XI!E+EDvp9qz z6qg=imxPrd#8zTylWp@{+N50nr?hEOj8B_vIt$V!R2zp7SeClqkKpxexr$|a1aUe;25NXC7G&2f-b$dVfReI_;KOsIEBcnmZv-f?Lk>@q5D!x30M}EI|DHSbbuC}jv^M1qlj3)j8~JZ< zL=OodFhT?h9}p<`t+n}nHzo3Qa(A5&zQ892)p|*22pg}7EOt63xCICxqXR$y@dbIq zqiEsiZHUd;n2y*S5D*dC;)_uJe)tvfU2VX3At|A!!L1F5y!szpxQ+Q$>EP{z#s+sc zXV>ged-AB`xe`V0qBxTQp^?wHq0X_s@^8)gJaxUJ9ZWvyBO{H|gQb1Vozu;>=hzy# z0&;ObraRtswMcT!z~MWn#M!OAn-DP6*!3gE8i;zh!x|}Isv%dV-8vFFQk}v~a1@EE zH1zhX+n@RkaXntn>HB67=>6QB61J}JXf~``LB!ZRAv70wWH5M3tCmel;;VfV@+RKD zF{k~-(?1)|kv-s=+ShX7VuN8;UE^mI5c&wk7?u>N0ZBMZtYBqQ4Jv$%tr3N~%Y=am z9t;d3i7%~|Z!c&V!+J9so?qXQ(jHF%N@B#7DaI^XOZya{TI?ZK_2M(VeejGG{eg)K z3%EUV0F+m@{xfU%AEd8bJTcPf?eBV>uVn$O%+|6&0yDKN#!t=EvIcTvAY}tgsri6b z(itC-kDf);>olY7vD_R|pc%^WYIRWnU&9Q-j8UM7`c+iEiH+|KlJ|K;R z`;58TTfK!)n*jqGX4eJXc*_BhELJ!pQaEbP-cVI$f(o=ha=qB8=Zt^0(*La<|7lr7 zqtBCZi*elvOTq#!p6PhUJ>zMnwH4!qE18P_SP%^m&yp2b7+gqJ9EtNIuQj`V?N4-t z_TTA>IS{t36$}8;kJiBLOPK49mQeh{nGYjV0R9n7@Vm0vHc>oP)iBRKVew#8SQH>T z2BzoXI@0m;5qw_>d7nWES({s-3-qk;W|vEfWf(+AckyB!hcEDU`@#wu)ieKY$_VRY zNc_9mt+ACD-xG}cw(>*jK77L_S5*2>;QA&T!O@=Fx62~&^pyZuB&1A~LP4b~GTzSm zF1~9r>$#3Kp`{CoW2xMUBe);Ri}Dx0*SxnDsd>LMK7y{l5QYZ8OzUi5 zd`S5P*1>W4fKSdpSpsVIV38P4W_+keE!R1Z%|RN#5*rTU=jtTM`BtAYttQI4SmJ~= zW(r`RLjjFkkbZYiTVpjj{El_Ru=t0M_*CeZ6*Nq8kZJMM8ldqRynr$}Ua3<`qwdKO z^;UNB_BwjTykwh$k~ybWJ|+~p!YcESBj*Ay;I zhb-f&W=4Gb<$^T|Lgx#Sq=2~8q-7h9ydw8E$P*M1n@q!0R`fC*zw)GGz1_8wdF2AKu(x|uel^vx?vMby7?QJA9{H*f&d}kF%cL%tquDeLka)%GhJLOpM^*7M!3QDNK8CcXiigVj5e0<(Vr3LGua0pm~}Zsn7-^ zgSZISJa>c3Nvc?W+WEg@$r}`mBh&-JoVlTVyBiIh?{ctg3>PCTH{UI?A^om45u-~A zNxRmvA?*sTyb7J-$k@>Hu6nq)GHl{Mwzt`61Yv^qF&suaj&Ast3fda>m_29LP&+h) zwlzNqWkS!m2lDm^^pxQ{i&U?Q1RWPX^HMl?#&rsAevo_m3~~l$a0UrbXJkKU*1}@? zzzdeydyp~Um6JtUR51A@CA3Jbn{`n9#!u4w(vqkSPblm|FD#@!hAUX-u2v@Up$(Ss zrz!ZpL&D#A^qbF3ypKt__HxO0)K8GG$@g{@6_JC#4R@J=g*^ldV+BpLf-32KV9yJD zGbdELcxW7s%%ByNni9&ST^x$}?6%ZUKhRwI-B|-xfopV9m_ShH1xP2n$F3Fl%EO1q zIa69SbHZUN`1)U6GR`x>wLskeEsu#(sYB?oldDJz+u(i5&{v(}coR~`-sg11u?pyF9NgjT+W=+=Yhz-BD8?ZN zz-*gO{v}vcCo98-fpQciGVu1$bmJC|a;o7A>tJuC1B!Gm3~8a5cEF#I1uYBu!)7{J zCsjet5Di7=?Ie)bsJr?Dc%vbBBdE1T-3`|BgZkO0MgtufbG%VQ6L82Pcpg5?N~SF} z%u+5jaxZDg)uajGmIafx8ZLac&TWGS%ei76clz8c-=2^e#!7mpLEiQ1c=CzB7oA<> z<3YrRjaLLn>%7P8$_GY;4g{8QfRk0zP^cE)VQId+ij>{tVBk5!2OKQXp($W{qO7Es z3tX~l4i!s+tj`&;f{@y3rHQ<62E!Hdovbr2BAu+Gphj3X0{02n%#T za515)!*eKw>}{~9cUNW(pC_V(F0xB2ED+u`J;k8^9?2HEw;Bs-464NEE*S<=Bo~7l4Eas z`K4uLfsV#!Vk&+P`8|BqRB-s}>VO_%DqF*DF@vLgQC6zOx3I+&_V8^$vXQy?^TlMO z>}{{YJS{;qQhc_7aHlc{JX~u(Tu+V35^V)O>FG(r4k^tkW`zPj3dF(n23z0?4Y(o* zyBj{aKs-BVcz|nLN0hJCcz|L=q1sr)xz3vvippE^RNg}pJ=XO`ui~h3Iyi zvM4u#S6({7juN@(oM)nIrBE2-bJc}o0HjFy3Z+jy7RaAL8r+7UhBZoTpFIyC4<%Fh z*-cwIo`hP@Me>izC_O)!56cmF-*RCX^11;&+9EG6%-vRpqS8r}9as$1iW?xVV2+QE z09MkaEt0}02K3!wff&#|4-|U$wj%e`LY}W&kirbdtw#YKo`*8*0hA4MLSZvI!1;10 zml8*hMXNhs>VY-#`AVm_o3ml}= z+Ycj1w+W65Dy>m(04K<;4jL%B7UhegCWevl$!^^=H!xj7|66bCHw+0$SCr43&rtp6(pfZT^c zQ3PCl<%K}!FIWHo^uX4C0sy;D3>6d`4pZTuapo1g&4qkFG;RaBJfG3y>001YWLS6y z;8l9UB&eI-2fh7cHuYbM%20yt(ON=+j`PIQQL6({d^=@)NSO2ml)4Zqa=0*yiVRo$ zhKiCSemy4O9P2X(C{E;E#bUG3cvjA|3*|W^zbO3GAXZS|a4=K_fOLdkVn_!=yLfeC z*oD7J!XGZb^6N3Zk?x1oc!s+iA@a{BM+rW>U#X5*UUbG!pHTDvU!XV}nGwTnESIt9`l19={mge?6 zEUGdMH34=55VRni4$MW!EWotGG+;A$cl+}L5ZszQ06W+SLObBhKN(BUpBz~<4&k;0 zWITY4Ht-`zOnF9+FA8GmAZT(p7-`a|4=EK@KNzh46~LA*MNROp<`lS?fCVFm|637s zgMu3?LqSxLDlgPIXr)%snA*&|Acl!PI`O zSjqsGv>4_Rgb*8*h}@F$ zIz*ozP&@Yy=ue8GSb-sL^maj+ngj6R=VXFM+rM)U7k`aZi#f5vlg8h2D4RaYp@xDp zIh4UXTEZu6TWA<$Fe?7ko-Vzo>}?ajAGG4=CRBvF@q&XYVQ6|Mv$gHdd5wamV2zRx%4--L0%YI)uR)+u&%%Xq%-5**+WM z?|3A%2-`Ds=rSstnbyqY2%Q-O1jRn&?_Y~mESg~oKritrT^Oe_bv-E@RpXHC2Whzb|@T_gGvg#8Hh*-|Ri;9iVVLDkBbXJ=geRei+23?5N=FR7+nLeblF zcDHa5U1Djh32A&A;I@J_GrF|-Jy88cm)JvoCLaE-OJwCUx&*5oa3Dei-Y?m#Tp4sz zgy{xLjR=4OkFbDp_$9cu{2?~X`ulvo{u77wJ3hj5Qp(b$My_m#H9~<@%LU#-A#)q6 ztcnydFP@F?Gn<$x!G2ueu16Q7XYiWGTX zu}d-0a$NY!;M>mo@$y7>9S$oFQL z%lDWAKhy^C5>;~sd{NeqsRv4dO2sG`pl+^W{17lmS%{uNF9)(n-7r=oxgL=vIY5?t zR0hfg&%?y`5FY@t2{(qt{8N)2ZIOWVUPKfe-0Ib9e#)Pln)V~o0pK3px}r z!=oX7>S_Gwm0EQz5UR^T6u3oe4;8o5Q}MG+i6UAm*I%{xB3jy34VWM$1;i48@CSy5 zTG%*&R11!F-#MO;JJsVpHj+CPBH1|Ia$n-{bhqRnE^9Ks5tqN)eM}Pm5i#5l{4_2( zea6>)x*Yd>H}0L@bYCtmHzaquo5y|1;k*#;)JQx0V`xRVhOh2oP~?E8vkn0l(Hk_N zj6(KwY{N;^ngR0=?@Eu?zEB!AO$+-lC4G?tG}bV6`gFi3+tX~^fcwLc#`iPS^`P6- z^T=D)7ot!KR>hNwX92$f^MWx8^1$q7V$lj;;^QMM;+AH39f)poM6kj%e;c0J$p|kS z(879O{~Ih5K6TGi`YzA@fC*-k!+eOy#ci$~>Pl=+LjV}_*BW<3cdxrm@^~%0V5#WX@J@EJ`mm)t%~0r zz;jK(kdb}y899d(@rNQ+N;3(0ivEIAl_`*kQ34y%6UG{^m$2ocGM4fOzL4o~;sRZ& za3GEW?rr!sd9|z*h0^zdo(<34PmSN>fV|U{qJwnnfQpJTj(XIqLG6w?atV8*6xdW9 zCFy^zleJiDLKwIJhvygF#qfn&Hax@#Q8-YyVnIjv*iZ2h&jYz4I{%+B*0UvJtbb;r z=0f@c>TQu~YInd;mltZ&=oN25J%${N<68`h+kLwouZNRVknTAKmNo-}u{J|a*N$YQ zNhqcEwgPhrAP&q$kQzmNd_ULFZ?+ROOEiJAx)kC`#KvE0Ss&W@u8r0*tZS2Izkq>p zOGMSOAlx>`G`(;ygpAW01>3^v*$cS0*HL+m`X7)&e{Xs&=&j1MDt9d4gX)21gj!}n zZbGOS8lGumP%?k^Wc)B+(#~%R&mUrZz}(VU19!fwy7YX#FsCkT9{vuz7A2+@GR{FP z#T??(J7RFfSX&a0FEHTr2Zn?=*A3M}Bvpo%Kzg8Rq6_+pn19Ex-3L8>=RoLMsuT0# z1;sK)b2f@gPL#a6qxhg#E~(~MLh)zlB}$0(%3sxDT-5?F1&N1ZeDDw|wSYpL={ydN zLv#;96@NS4MIeko@WuBh!;RKrJvJ;HkxHy+*`k~LM>uz-8>iQXM2=0e3KzG z@)4m3NHe^QuO94Q0%L~$Od}$50-KtxistF5Uqa>#O*Idc7Gc-^Pz~d^@N=hm7M#*891k|j2pg1yXe_k%We zv$PUg|JO|Tn_796PI4@jT4Z9XKShc z>JJz@6i2L7YO2HoD9s2DoZc5$oV;<4q_Hbcq-u{VjesIA%BwID(pa5)`UB}AWX><- zFak?stW8)GY!SL@t{eADOHQXA1?o~TO^kS*1mcw*{=e!_2L~EwDCsG51lm9ts+t0Sooh9K zQrB_0Z`zHSmBOFX=|U%+8-iGbSNh8k1R$h;X$S(NbU@yV4nYk5nDPi>nN%GE&xM}d z&$CIh>>Nf#a+xgX*o_N|a<}E;0yHhgQ%=C(1Xv3{yDP&EpslcBiFq*olRlS9M*U?D z>vv|8Y{^dV_N(Xy?`S5ch3+nZ&H`-(Nh!jj2wQ`D0xRA20^AehMrPd;YAU1jU+@v8 zP}}62h#;Qaw|r)-Wf6AiFB<*)FKRRZk#zGK6{(u>&zS-U&)r+S^u_v^ldsVP(hT@U z{Uc?}<0|Bye@bbAruzaP!Wgt#%pYgxlNR#SzoffG__jZIT)@&b^e0hZC}}a)>gTNB zmWbwPJU(u)MFVwkw8`;4Xe}^kO^Z5X_;9v{89j5{;>KcaIDdiv;DFMfGzm2BOhffo zk`C*ujwfyiha~g!=)*k19kh7_NwyC>d_IL^@8-+c$wlU{{zFXH&t*{=hbvz?@=#k9 z1H^vA92l*SVa{g@G>Icklwf**M*zk^PlmIca&8?wR6f|{RUvkl>|m6DGKDZqnz(

RCSTzXdXJXa^{lWhsOb=kEuqh^TM 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 From 58d7c11940773438df68e66dbe2701c538e6398b Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 2 Oct 2024 12:10:01 +0500 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BC=D0=B8?= =?UTF-8?q?=D0=BD=D0=B8=D0=BC=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20=D0=B8?= =?UTF-8?q?=20=D0=BC=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=B3=D0=BB=D1=83=D0=B1=D0=B8=D0=BD=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D1=83=D1=8E?= =?UTF-8?q?=D1=89=D0=B5=D0=B3=D0=BE=20=D1=80=D0=B0=D1=81=D1=87=D0=B5=D1=82?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B0=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B4=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ITelemetryDataSaubService.cs | 14 ++++++-- .../Services/DataSaubStatServiceTest.cs | 2 +- .../Services/DataSaubStatService.cs | 2 +- .../Services/SAUB/TelemetryDataSaubService.cs | 36 +++++++++++++------ .../Services/Subsystems/SubsystemService.cs | 18 ++++------ 5 files changed, 45 insertions(+), 27 deletions(-) diff --git a/AsbCloudApp/Services/ITelemetryDataSaubService.cs b/AsbCloudApp/Services/ITelemetryDataSaubService.cs index 4a23ee87..72aee988 100644 --- a/AsbCloudApp/Services/ITelemetryDataSaubService.cs +++ b/AsbCloudApp/Services/ITelemetryDataSaubService.cs @@ -15,14 +15,24 @@ public interface ITelemetryDataSaubService : ITelemetryDataService /// Получение телеметрии для РТК статистики ///

- /// + /// /// /// /// /// /// /// - Task> Get(IEnumerable idsTelemetries, bool isBitOnBottom, DateTimeOffset geDate, DateTimeOffset leDate, int take, CancellationToken token); + Task> Get(int idTelemetry, bool isBitOnBottom, DateTimeOffset geDate, DateTimeOffset leDate, int take, CancellationToken token); + + /// + /// Получение минимальных и максимальных глубин скважин на определенную дату для заданных телеметрий + /// + /// + /// + /// + /// + /// + Task> GetMinAndMaxWellDepths(IEnumerable idsTelemetries, DateTimeOffset geDate, DateTimeOffset leDate, CancellationToken token); /// /// усредненная статистика по 1м за весь период diff --git a/AsbCloudInfrastructure.Tests/Services/DataSaubStatServiceTest.cs b/AsbCloudInfrastructure.Tests/Services/DataSaubStatServiceTest.cs index 80783c73..486ddc97 100644 --- a/AsbCloudInfrastructure.Tests/Services/DataSaubStatServiceTest.cs +++ b/AsbCloudInfrastructure.Tests/Services/DataSaubStatServiceTest.cs @@ -220,7 +220,7 @@ public class DataSaubStatServiceTest } dataSaubServiceMock - .Get(Arg.Any>(), Arg.Any(), Arg.Any(), Arg.Any(), Arg.Any(), Arg.Any()) + .Get(Arg.Any(), Arg.Any(), Arg.Any(), Arg.Any(), Arg.Any(), Arg.Any()) .Returns(telemetryDataSaubDtos); dataSaubStatService = new DataSaubStatService( diff --git a/AsbCloudInfrastructure/Services/DataSaubStatService.cs b/AsbCloudInfrastructure/Services/DataSaubStatService.cs index 82ee0416..bdeaf6eb 100644 --- a/AsbCloudInfrastructure/Services/DataSaubStatService.cs +++ b/AsbCloudInfrastructure/Services/DataSaubStatService.cs @@ -78,7 +78,7 @@ public class DataSaubStatService : IDataSaubStatService var geDate = detectedOperations.First().DateStart; var leDate = detectedOperations.OrderByDescending(d => d.DateEnd).First().DateEnd; - var dataSaub = await dataSaubService.Get([idTelemetry], true, geDate, leDate, 100_000, token); + var dataSaub = await dataSaubService.Get(idTelemetry, true, geDate, leDate, 100_000, token); if (!dataSaub.Any()) return 0; diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs index 0abd8fdf..4405d026 100644 --- a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs +++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs @@ -13,8 +13,6 @@ using System.Linq; using System.Text.Csv; using System.Threading; using System.Threading.Tasks; -using AsbCloudApp.Data; -using AsbCloudApp.Requests; namespace AsbCloudInfrastructure.Services.SAUB; @@ -37,19 +35,14 @@ public class TelemetryDataSaubService : TelemetryDataBaseService> Get(IEnumerable idsTelemetries, bool isBitOnBottom, DateTimeOffset geDate, DateTimeOffset leDate, int take, CancellationToken token) + public async Task> Get(int idTelemetry, bool isBitOnBottom, DateTimeOffset geDate, DateTimeOffset leDate, int take, CancellationToken token) { - var offsetDict = new Dictionary(); - foreach (var idTelemetry in idsTelemetries) - { - offsetDict.Add(idTelemetry, telemetryService.GetTimezone(idTelemetry).Offset); - } - + var offset = telemetryService.GetTimezone(idTelemetry).Offset; var geDateUtc = geDate.ToUniversalTime(); var leDateUtc = leDate.ToUniversalTime(); var query = db.Set() - .Where(t => idsTelemetries.Contains(t.IdTelemetry)) + .Where(t => t.IdTelemetry == idTelemetry) .Where(t => t.DateTime >= geDateUtc) .Where(t => t.DateTime <= leDateUtc); @@ -61,10 +54,31 @@ public class TelemetryDataSaubService : TelemetryDataBaseService Convert(e, offsetDict.GetValueOrDefault(e.IdTelemetry).TotalHours)); + + var dtos = entities.Select(e => Convert(e, offset.TotalHours)); return dtos; } + public async Task> GetMinAndMaxWellDepths(IEnumerable idsTelemetries, DateTimeOffset geDate, DateTimeOffset leDate, CancellationToken token) + { + var geDateUtc = geDate.ToUniversalTime(); + var leDateUtc = leDate.ToUniversalTime(); + + var query = db.Set() + .Where(t => idsTelemetries.Contains(t.IdTelemetry)) + .Where(t => t.DateTime >= geDateUtc) + .Where(t => t.DateTime <= leDateUtc) + .GroupBy(t => t.IdTelemetry); + + var result = await query + .ToDictionaryAsync(t => t.Key, t => ( + t.MinBy(x => x.WellDepth)!.WellDepth, + t.MaxBy(x => x.WellDepth)!.WellDepth + )); + + return result; + } + public async Task> GetTelemetryDataStatAsync(int idTelemetry, CancellationToken token) { var timezone = telemetryService.GetTimezone(idTelemetry); diff --git a/AsbCloudInfrastructure/Services/Subsystems/SubsystemService.cs b/AsbCloudInfrastructure/Services/Subsystems/SubsystemService.cs index f5acee31..0292d126 100644 --- a/AsbCloudInfrastructure/Services/Subsystems/SubsystemService.cs +++ b/AsbCloudInfrastructure/Services/Subsystems/SubsystemService.cs @@ -141,26 +141,20 @@ public class SubsystemService : ISubsystemService .GetOrDefaultTelemetriesByIdsWells(request.IdsWell) .ToDictionary(t => t.Id, t => t.IdWell); - var dtNow = DateTimeOffset.UtcNow; var geDate = request.GeDate ?? SubsystemPlanFactRequest.ValidationMinDate; var leDate = request.LeDate ?? DateTimeOffset.UtcNow; - var telemetryDataSaub = await telemetryDataSaubService.Get(telemetriesDict.Keys, false, geDate, leDate, 100_000, token); - - var groupedTelemetryDataSaub = telemetryDataSaub - .GroupBy(t => t.IdTelemetry) - .ToDictionary(t => t.Key, t => new - { - IdWell = telemetriesDict.GetValueOrDefault(t.Key)!, - MinDepth = t.MinBy(x => x.WellDepth)!.WellDepth, - MaxDepth = t.MaxBy(x => x.WellDepth)!.WellDepth - }); + var groupedTelemetryDataSaub = await telemetryDataSaubService.GetMinAndMaxWellDepths(telemetriesDict.Keys, geDate, leDate, token); var result = new List(); foreach (var telemetryDataSaubItem in groupedTelemetryDataSaub) { + var idWell = telemetriesDict.GetValueOrDefault(telemetryDataSaubItem.Key); + if (!idWell.HasValue) + continue; + var telemetryDataSaubInfo = telemetryDataSaubItem.Value; - var requestProcessMapPlan = new ProcessMapPlanBaseRequestWithWell(telemetryDataSaubInfo.IdWell!.Value, telemetryDataSaubInfo.MinDepth, telemetryDataSaubInfo.MaxDepth); + var requestProcessMapPlan = new ProcessMapPlanBaseRequestWithWell(idWell.Value, telemetryDataSaubInfo.MinDepth, telemetryDataSaubInfo.MaxDepth); var processMapPlanSubsystems = await processMapPlanRepository.GetCurrent(requestProcessMapPlan, token); foreach (var processMapPlanSubsystem in processMapPlanSubsystems)