From 38e7f624b102d7561ced3ea7524913e76f3d01cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A4=D1=80=D0=BE=D0=BB=D0=BE=D0=B2?= Date: Mon, 20 Sep 2021 15:25:08 +0500 Subject: [PATCH] fix reports. --- .../CommonLibs/AsbSaubReport.dll | Bin 14336 -> 13824 bytes .../CommonLibs/AsbSaubReportLas.dll | Bin 15872 -> 15360 bytes .../CommonLibs/AsbSaubReportPdf.dll | Bin 1068032 -> 552960 bytes .../CommonLibs/ref/AsbSaubReportLas.dll | Bin 0 -> 6144 bytes .../CommonLibs/ref/AsbSaubReportPdf.dll | Bin 14848 -> 14848 bytes .../ReportDataSourcePgCloud.cs | 27 ++++++++---------- .../Services/ReportService.cs | 20 +++++++++---- AsbCloudWebApi/appsettings.json | 2 +- 8 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 AsbCloudInfrastructure/CommonLibs/ref/AsbSaubReportLas.dll diff --git a/AsbCloudInfrastructure/CommonLibs/AsbSaubReport.dll b/AsbCloudInfrastructure/CommonLibs/AsbSaubReport.dll index 7afa6411071d803af691b589f9436d2414dc8c4f..19620af62711b47b1d1ed42528a3c79d87b6d4e2 100644 GIT binary patch delta 3968 zcmchaX>b(B703VG+8NEx&Ppo|A&`Wm6+$b7UKJJl(6Hl z$OkbwFfcX=<&c74$AxWnA8l`pA$ z$f)$6_j~X4>*?N|?%wS!+naYk5q-LA@mnz0MMU#MA`Xn8!|rzeX6~LB>cu8sh+^xp zIY6CXAcy-)MX~#488h3$POB9O=|GbEbANxY~wT2e~!q13TbuN%|196gF zw5{u)1sMQN=2e2Y2{jyJsGZspi2}^We8RABc^9 zO|WwOOMQUCZ9rCE;8vJ+ZCh*8rgdNEoTDE*`vLETi)--`?TE5#7SF8a{TBs(S8xoA zTn*+~>a)Dp&v0{-Z##lE`@!JUwvdfuTHz@BdAlLh7f*#$^s2qWv2i7JQ_x16)^e@$ zw7#qLtgWKowN=}#-ZkcLVFeqnYqe9A?d$sEp`s7sT9UU@mV%6+Qo(?WfjH{Am=-(} za^cZV!%V!whj_?QIhS3f=X9$^s*8Edv~kN)-7nPsXM>x9E-JLYRo5)TnNT0pSVvto z+=EKkn?F1hP2Ll#;zZg=qa%Xz-mA_yQl6$*SWyr|(IF!EOGr^J=Hn2X|10pS1JVMW zIZbEgqE1t-rYP=5N|9lg1JT#%@Sxy1(L+Q0_HapZvik?2=Z!h1!!z8gy{Oi^F8CEOtyg(Bdr>80-kn%A zV?C7W-4dL3({5?79X-^~gY2QgBr)xFs&&KrNTlDP16DhFXp9vh-QWtKre&agjvv}T z4Hem+l2W+_sMvDGGLUYliLnf18485cWFO=k$_$755KFo-tIj`@RuV~N^M06RQX=-= z^jJ-Y6O)-}HohmFIBAQa1B?y8Hx0eO*Z}M>v^^M;S=eQ0ub)USS@Q{fgK)z5J`cu8 zuNhkC#$+~58ftRmq_+%xYQOTJEL9xSehYF6H6 zM|nsyv_Bk^`N%YMJRB$G8A^IFS%6|gySz9lZfFb#8^u^d(>d5ErW(rT!xv(vp)&t) zq$K$*_EUrn#zL^qhsRD7X6umtui1zY#NB;LD;u#n`)MyO*0 z{vJ>r_qK08!TNUGaR4GXm{)!Lx7i7L=R?T?+> z-b2ksKfS;7)BDS2?a#r_y!pt%@z4?s(e@B+=OD{kM~~9YPv@(pcY(zaibIdSZi6y=_(b*0t@tsPnqX+5d+qSi}V5%7PQIlk|qfNK0} zttYi!^#7Q7E&XCJME`bIMGv~G{VM}TI~PNW;Q7(4DalFLh<$hgUEG)jSCL_!&F_vt z3jYE;P*~jHY#uOzoOBl@%t(YEkl>rNk=omihFj^01>31N14`$(4^!8A9n=|GhkK9H zULM>@EwP!C#71?)pz!yof5RSXi}sXTPt*3D1Jq+$_XU+bOepM-v>n#b z_jI%~to(aDrL%N}a-B0n=RBpO^PkbK-W@*@R!^4`QhHw7v-Jag0pcLlNy# zs>E={15L21P$gzCF8J2p zLwgpI(+IPfCNYNz0&}U7N6eYD7gHtb85g*hDzSudfu&T5`*=td_!?DW85YuBPL({6 z*3w={m1tlMfmKwA)vO_~hAPp>8UkyvG>fo~MFbw8N;I*EzN}$khhOzw@F(RI7Myj}YZAbl`ehqUHW+o3}JHH?=*81+9se#@4n6{mxplKoKqGBTHXIR41e z`)|!$fSdBj!pL2P3y(c=vwG@_E&YFf@XK9e{fd#RMj7Yk4aUjRi3`75@#wLaKYOCd l@A}m~HotwHPY2fBpaf delta 4013 zcmbuCdvH|M9ml`tB=_d--Mh&qz!FJ-WCLXLA{*Y}ArHaGQ{DoGVuXM^bRmQWl(K=T zRIC-@QY#fT)S)vV9hrtzVux5#&=(S4)ZyKXhBfK0se#C=5!})+BIG5^Mxq3j*bJS`h~LG zpDBvna8G6w@EiA^7iFTCzfTm4e*S3@6&HOW+gXj>0pTC3?B6<3j!%ylvuF1;g@Bvr zrp>4_DR%eBqC^k=x>ASN=)g4pLpxu@{N{`$)5xO z87pE=gAXi?F~@CZWm}(2XS3-^j=;`NPjHTIVg~J4FIp9usjf2HPN=lD14qAT3;F7}=CU`%x$Y;_*|M(4Ol_%(sP1JCCG zMQebG?Eo*6_LRnkg-6J%RoY=?*GwBdlE3Lue_x;}7%U+V>}FW3(T+hJ8uMUUGLI5v)EObOVSsWqatx7Jpz@7XH4 z%vOD7dncGbiydsVXuYI$rS3csD!K|MlKk0aDY)(^6%4qz51U;VrGec+7ar|QjK*FL zVvf%Fz*U)tbX7goMQ>)>IBTiHPtyJkfhhs@(f$VAvjV$=IjFHVyK1^EN_aHCJQz*J zg83me$4olHc;DORRFeudg+ht~h+(Y=ik$&MeiLoiSb008LTU zA+0csJPRG-Rj(Km9*0m9PZ6&p6QoV+T@;a+toQVD$3Egx~ zi8~bVn?fbYZtj;tpEu?l301gPQfPqpwcsscs%yM&Qm7MS-tAZkV|VCs@IQj5-PGM5 zXu=&j8cL-z$xt{Y_?p$kOLeR8UqQ$_lWFy1T^QH7sMIO@-a5tD z_l8{i94Ui~RmDcwr$jcg3{9|0&JlAB{>{sjIVdo6!^#+C!I8Ojy*f$FNVGf_-C?W$rd`h!s5eH zot8a3P*-FcS`&)N0z?dL3B^fW4bAgnvJl0FmV0qh+)y4T8^r)aWt?mj!wrFhFT!X; zIsQ+=CCMc`PIoLez7;%9cQhKB&-@-(ZD=(o+XK(G5$|+?V!Wj3WejqvB{v)WIbscR zhRN7%+7cL*LeB-qq|mE=Wp+tYUC|0`=6eyqZ2gXR7O4(SjVEq5F}r}fSs zoiHh2C>(4;A7mTK4~9vd41K{N^+nXsUpb_{C^NLqYeGNtHuRzwCJk;QJ*55^scBR0 z&}49)?2n0e1=Ry}Di^WDSgJq=K1NbKX~;k4gTUZ?Ja6xCu^s0($kH-h?W>Qs)Wma4Y0 zsZd*3wa5tlSk%(Lm8$%;+P@PQoj2L#q{p9HsQqmxuKHa&oXtHb=3<9DES|ySw6oei zuWdg!GPrzrnhMrwU8}W4>vpXNv>w!YHqCz_GElVm2O}N*(~*l=2Lh_}jMf4-=zrF+ zw{swoWmmmkOnS()MIm*?+c_UelhCj_%d=Dq;31u~N{5@ZC-uM!^bkc*4e@<#$Mt~z3FZ0NQCgs*mt19U_BKd|FIkd%cNhPS z`xYlVA&+M>kAISPu8I`$1zI3Vl_(+!-noUeyORXZauMwqNuY!(QOd`r;F&L`T~41s z1y%CFT}Hc-D)}(3pj}0k=tZC4^R<$8pCp}v56vn9AC|QHQzZt_C%8WQ(jG{kz#yvR zlBuRWgeq}AeF8(N62s^dT**UdkDyQB0jlJJ8cur@RpLSV1Zt=f578&MoZI2vuSReF8J760`XFD)1;(q83wV&!$TJ0MlsCp-R-T zPT+B>#9Y=1%%e)w!o-){X1dAIMdpO#-#_@1j4Q96F3UqEfNu}$XP!G-j?Uy~neU6#MiN?%alIH$Ed zTILK@*5vx7iH63J3mfX^HYOTYVfp{?C6>+^wQNP*l7)?{FtH)Aw7!7`SH$Adt>Je* z-oN7Quj|G&54|#Q+=0VGTHBX3rbT|Z*DK-JV6^ z9hd%|(?zTsvA6P9n-@P){D}L&-RB=-Q#|9pEX9I4 diff --git a/AsbCloudInfrastructure/CommonLibs/AsbSaubReportLas.dll b/AsbCloudInfrastructure/CommonLibs/AsbSaubReportLas.dll index 5c4a9da1afe8066b6aecdb6b2279072872610ede..1e5c8d32e1a405ac14c731ef928488420f84b76a 100644 GIT binary patch delta 5951 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 delta 6373 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 diff --git a/AsbCloudInfrastructure/CommonLibs/AsbSaubReportPdf.dll b/AsbCloudInfrastructure/CommonLibs/AsbSaubReportPdf.dll index e72238f5e1f970f358e3e0e45cfb3dce0036116f..5c23bfddbc2a2847aea261c3e3052f3a6ec0e539 100644 GIT binary patch delta 24150 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 N8TrJ%l>c+({{b+fZ~g!P delta 25801 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/CommonLibs/ref/AsbSaubReportPdf.dll b/AsbCloudInfrastructure/CommonLibs/ref/AsbSaubReportPdf.dll index e369f3e52e5dad0c8933e97d160dc5f75ad0e1d6..2f6b16772ae8806b3f830540bcc904d942ee5ed1 100644 GIT binary patch literal 14848 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 UET%|rX5(*gj=xLo*VY672Z0%5-2eap diff --git a/AsbCloudInfrastructure/ReportDataSourcePgCloud.cs b/AsbCloudInfrastructure/ReportDataSourcePgCloud.cs index ecb4285f..446dec51 100644 --- a/AsbCloudInfrastructure/ReportDataSourcePgCloud.cs +++ b/AsbCloudInfrastructure/ReportDataSourcePgCloud.cs @@ -59,26 +59,23 @@ namespace AsbSaubReport public AnalyzeResult Analyze() { - var messagesQuery = from item in context.TelemetryMessages + var messagesStat = (from item in context.TelemetryMessages where item.IdTelemetry == idTelemetry - select item; + group item.Date by item.IdTelemetry into g + select new { min = g.Min(), max = g.Max(), count = g.Count()}) + .FirstOrDefault(); - var messagesCount = messagesQuery.Count(); - var messagesMinDate = messagesQuery.Min(e => e.Date); - var messagesMaxDate = messagesQuery.Max(e => e.Date); - - var dataQuery = from item in context.TelemetryDataSaub - where item.IdTelemetry == idTelemetry - select item; - - var dataMinDate = dataQuery.Min(e => e.Date); - var dataMaxDate = dataQuery.Max(e => e.Date); + var dataStat = (from item in context.TelemetryDataSaub + where item.IdTelemetry == idTelemetry + group item.Date by item.IdTelemetry into g + select new { min = g.Min(), max = g.Max(), count = g.Count() }) + .FirstOrDefault(); var result = new AnalyzeResult { - MaxDate = dataMinDate < messagesMinDate ? dataMinDate : messagesMinDate, - MinDate = dataMaxDate > messagesMaxDate ? dataMaxDate : messagesMaxDate, - MessagesCount = messagesCount, + MinDate = dataStat?.max ?? messagesStat?.min ?? default, + MaxDate = dataStat?.max ?? messagesStat?.min ?? default, + MessagesCount = messagesStat?.count ?? 0, }; return result; diff --git a/AsbCloudInfrastructure/Services/ReportService.cs b/AsbCloudInfrastructure/Services/ReportService.cs index bb62d1cf..4f3f8875 100644 --- a/AsbCloudInfrastructure/Services/ReportService.cs +++ b/AsbCloudInfrastructure/Services/ReportService.cs @@ -50,10 +50,13 @@ namespace AsbCloudInfrastructure.Services { var generator = GetReportGenerator(idWell, begin, end, stepSeconds, format, context); generator.OnProgress += (s, e) => progressHandler.Invoke(e.progress, e.operation, id); - var newReportName = generator.Make(); - if (newReportName is not null) + + var reportFileName = GetReportFileName(context, idWell); + + generator.Make(reportFileName); + if (reportFileName is not null) { - var shorReportName = Path.GetFileName(newReportName); + var shorReportName = Path.GetFileName(reportFileName); reportNameHandler.Invoke(shorReportName, id); var newReportFile = new AsbCloudDb.Model.FileInfo @@ -61,12 +64,11 @@ namespace AsbCloudInfrastructure.Services IdWell = idWell, IdAuthor = idUser, IdCategory = ReportCategoryId, - Name = newReportName, + Name = reportFileName, UploadDate = DateTime.Now, }; context.Files.Add(newReportFile); - context.SaveChanges(); var newReportProperties = new ReportProperty { @@ -85,6 +87,13 @@ namespace AsbCloudInfrastructure.Services return newReportId; } + private string GetReportFileName(AsbCloudDbContext context, int idWell) + { + var well = context.Wells.Include(w => w.Cluster).FirstOrDefault(w => w.Id == idWell); + var fileName = Path.Combine(fileService.RootPath, $"{idWell}", $"{ReportCategoryId}", $"Рапорт куст{well?.Cluster?.Caption} скв{well.Caption}.pdf") ; + return fileName; + } + public int GetReportPagesCount(int idWell, DateTime begin, DateTime end, int stepSeconds, int format) { var generator = GetReportGenerator(idWell, begin, end, stepSeconds, format, (AsbCloudDbContext)db); @@ -180,7 +189,6 @@ namespace AsbCloudInfrastructure.Services break; } - generator.ReportDirectory = Path.Combine(fileService.RootPath, $"{idWell}", $"{ReportCategoryId}"); generator.Begin = begin; generator.End = end; generator.Step = TimeSpan.FromSeconds(stepSeconds); diff --git a/AsbCloudWebApi/appsettings.json b/AsbCloudWebApi/appsettings.json index cf1db760..f360d3d2 100644 --- a/AsbCloudWebApi/appsettings.json +++ b/AsbCloudWebApi/appsettings.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True", + "DefaultConnection": "Host=192.168.1.70;Database=postgres;Username=postgres;Password=q;Persist Security Info=True", "ServerConnection": "Host=192.168.1.70;Database=postgres;Username=postgres;Password=q;Persist Security Info=True", "LocalConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True" },