forked from ddrilling/AsbCloudServer
#6623067 Изменение методики расчета рейсовой скорости
This commit is contained in:
parent
1f5867e4b3
commit
9d67a7089b
@ -287,10 +287,11 @@ namespace AsbCloudInfrastructure.Services.WellOperationService
|
||||
};
|
||||
while (iterator.MoveNext())
|
||||
{
|
||||
if (iterator.Current.IdCategory == WellOperationService.idOperationTypeRepair)
|
||||
race.Repair += iterator.Current.DurationHours;
|
||||
if (iterator.Current.IdCategory == WellOperationService.idOperationNonProductiveTime)
|
||||
{
|
||||
race.NonProductiveHours += iterator.Current.DurationHours;
|
||||
}
|
||||
|
||||
if (iterator.Current.IdCategory == WellOperationService.idOperationBhaDisassembly)
|
||||
{
|
||||
race.EndDate = iterator.Current.DateStart.ToRemoteDateTime(timezoneOffsetH);
|
||||
@ -311,7 +312,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService
|
||||
var dHours = 0d;
|
||||
foreach (var race in races)
|
||||
{
|
||||
dHours += race.DeltaHoursTimeNoNpt;
|
||||
dHours += race.DeltaHoursTimeNoNptAndRepair;
|
||||
dDepth += race.DeltaDepth;
|
||||
}
|
||||
return dDepth / (dHours + double.Epsilon);
|
||||
|
@ -4,18 +4,50 @@ using System.Collections.Generic;
|
||||
|
||||
namespace AsbCloudInfrastructure.Services.WellOperationService
|
||||
{
|
||||
#nullable enable
|
||||
class Race
|
||||
{
|
||||
/// <summary>
|
||||
/// Дата начала рейса
|
||||
/// </summary>
|
||||
public DateTime StartDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина начала рейса
|
||||
/// </summary>
|
||||
public double StartWellDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата окончания рейса
|
||||
/// </summary>
|
||||
public DateTime EndDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина окончания рейса
|
||||
/// </summary>
|
||||
public double EndWellDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Время рейса, часы
|
||||
/// </summary>
|
||||
public double DrillingTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Время НПВ, часы
|
||||
/// </summary>
|
||||
public double NonProductiveHours { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ремонт
|
||||
/// </summary>
|
||||
public double Repair { get; set; }
|
||||
|
||||
public double DeltaDepth => EndWellDepth - StartWellDepth;
|
||||
public double DeltaHoursTimeNoNpt => (EndDate - StartDate).TotalHours - NonProductiveHours;
|
||||
public double DeltaHoursTimeNoNptAndRepair => DeltaHoursTimeNoNpt - Repair;
|
||||
public double Speed => DeltaDepth / (DeltaHoursTimeNoNpt + double.Epsilon);
|
||||
|
||||
public List<WellOperation> Operations { get; internal set; }
|
||||
public List<WellOperation>? Operations { get; internal set; }
|
||||
}
|
||||
#nullable disable
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService
|
||||
public const int idOperationCasingDown = 1048;
|
||||
public const int idOperationTypePlan = 0;
|
||||
public const int idOperationTypeFact = 1;
|
||||
public const int idOperationTypeRepair = 1031;
|
||||
|
||||
public WellOperationService(IAsbCloudDbContext db, CacheDb cache, IWellService wellService)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user