forked from ddrilling/AsbCloudServer
-Добавлена часть "САУБ"
-Убраны лишние библиотеки из классов реализующие блоки
This commit is contained in:
parent
e16df1f705
commit
0f27809489
@ -1,10 +1,8 @@
|
|||||||
using System;
|
using AsbCloudApp.Data.DailyReport;
|
||||||
using AsbCloudApp.Data.DailyReport;
|
|
||||||
using ClosedXML.Excel;
|
using ClosedXML.Excel;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
||||||
{
|
{
|
||||||
|
|
||||||
class BhaBlock : BlockAbstract
|
class BhaBlock : BlockAbstract
|
||||||
{
|
{
|
||||||
private readonly DailyReportBhaDto blockDto;
|
private readonly DailyReportBhaDto blockDto;
|
||||||
@ -23,8 +21,7 @@ namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
|||||||
public BhaBlock(CellAddress addressBlockBegin, DailyReportBhaDto blockDto)
|
public BhaBlock(CellAddress addressBlockBegin, DailyReportBhaDto blockDto)
|
||||||
{
|
{
|
||||||
this.blockDto = blockDto;
|
this.blockDto = blockDto;
|
||||||
AddressBlockBegin = addressBlockBegin.Copy();
|
AddressBlockBegin = addressBlockBegin.Copy();
|
||||||
AddressBlockBegin.ColumnNumber = 0;
|
|
||||||
AddressBhaDescription = addressBlockBegin + (1,0);
|
AddressBhaDescription = addressBlockBegin + (1,0);
|
||||||
AddressOperationTitle = addressBlockBegin + (3, 0);
|
AddressOperationTitle = addressBlockBegin + (3, 0);
|
||||||
AddressDurationTitle = addressBlockBegin + (3, 5);
|
AddressDurationTitle = addressBlockBegin + (3, 5);
|
||||||
@ -56,11 +53,13 @@ namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
|||||||
AddressBlockEnd = AddressTotaData[4];
|
AddressBlockEnd = AddressTotaData[4];
|
||||||
}
|
}
|
||||||
|
|
||||||
private string FormulaBhaBlock(CellAddress beginTime, CellAddress endTime )
|
private string FormulaBhaBlock(CellAddress beginTime, CellAddress endTime)
|
||||||
{
|
{
|
||||||
return $"IF({endTime}>0,({endTime}-{beginTime})*24, \"\")";
|
return string.Format("IF({0}>0,({1}-{2})*24, \"\")", endTime.ToString(), endTime.ToString(), beginTime.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override void Draw(IXLWorksheet sheet)
|
public override void Draw(IXLWorksheet sheet)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System;
|
using AsbCloudApp.Data.DailyReport;
|
||||||
using AsbCloudApp.Data.DailyReport;
|
|
||||||
using ClosedXML.Excel;
|
using ClosedXML.Excel;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
||||||
@ -56,12 +55,12 @@ namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
|||||||
|
|
||||||
private string FormulaBlockPlan(CellAddress cellTarget)
|
private string FormulaBlockPlan(CellAddress cellTarget)
|
||||||
{
|
{
|
||||||
return $"={cellTarget}/60*{saubBlock.AddressBhaWithFormula}";
|
return $"={cellTarget}/60*{saubBlock.ExtensionsCount}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private string FormulaBlockExcess(CellAddress cellFact, CellAddress cellPlan)
|
private string FormulaBlockExcess(CellAddress cellFact, CellAddress cellPlan)
|
||||||
{
|
{
|
||||||
return $"={cellFact}-{cellPlan}";
|
return string.Format("={0}-{1}", cellFact.ToString(), cellPlan.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw(IXLWorksheet sheet)
|
public override void Draw(IXLWorksheet sheet)
|
||||||
|
@ -82,12 +82,10 @@ namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
|||||||
AddressMetreData[1] = addressBlockBegin + (17, 4);
|
AddressMetreData[1] = addressBlockBegin + (17, 4);
|
||||||
AddressMetreData[2] = addressBlockBegin + (18, 4);
|
AddressMetreData[2] = addressBlockBegin + (18, 4);
|
||||||
AddressBlockEnd = AddressWatchData[3]+(0,1);
|
AddressBlockEnd = AddressWatchData[3]+(0,1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw(IXLWorksheet sheet)
|
public override void Draw(IXLWorksheet sheet)
|
||||||
{
|
{
|
||||||
|
|
||||||
sheet._Range(AddressTitle, AddressTitle + (0, 7))
|
sheet._Range(AddressTitle, AddressTitle + (0, 7))
|
||||||
._SetValue($"Суточная сводка бурения скважины: {blockDto.WellName}, куст: {blockDto.ClusterName}")
|
._SetValue($"Суточная сводка бурения скважины: {blockDto.WellName}, куст: {blockDto.ClusterName}")
|
||||||
.Style.SetH1();
|
.Style.SetH1();
|
||||||
@ -111,9 +109,9 @@ namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
|||||||
._SetValue("До");
|
._SetValue("До");
|
||||||
sheet._Range(AddressPeriodTableDataArray[0], AddressPeriodTableDataArray[0] + (0, 1))
|
sheet._Range(AddressPeriodTableDataArray[0], AddressPeriodTableDataArray[0] + (0, 1))
|
||||||
._SetValue($"{blockDto.ReportDate}");
|
._SetValue($"{blockDto.ReportDate}");
|
||||||
sheet._Range(AddressPeriodTableDataArray[1], AddressPeriodTableDataArray[1] + (0, 1));
|
sheet._Range(AddressPeriodTableDataArray[1], AddressPeriodTableDataArray[1] + (0, 1));
|
||||||
sheet.Cell(AddressPeriodTableDataArray[1])
|
sheet.Cell(AddressPeriodTableDataArray[1])
|
||||||
.SetFormulaA1($"={AddressPeriodTableDataArray[0].ToString()}-1");
|
.SetFormulaA1(string.Format("{0}-1", AddressPeriodTableDataArray[0].ToString()));
|
||||||
sheet._Range(AddressPeriodTableDataArray[2], AddressPeriodTableDataArray[2] + (0, 1))
|
sheet._Range(AddressPeriodTableDataArray[2], AddressPeriodTableDataArray[2] + (0, 1))
|
||||||
._SetValue($"{blockDto.WellDepthIntervalStartDate}");
|
._SetValue($"{blockDto.WellDepthIntervalStartDate}");
|
||||||
sheet._Range(AddressPeriodTableDataArray[3], AddressPeriodTableDataArray[3] + (0, 1))
|
sheet._Range(AddressPeriodTableDataArray[3], AddressPeriodTableDataArray[3] + (0, 1))
|
||||||
|
@ -1,60 +1,225 @@
|
|||||||
using System;
|
using AsbCloudApp.Data.DailyReport;
|
||||||
using AsbCloudApp.Data.DailyReport;
|
|
||||||
using ClosedXML.Excel;
|
using ClosedXML.Excel;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
||||||
{
|
{
|
||||||
|
|
||||||
internal class SaubBlock : BlockAbstract
|
internal class SaubBlock : BlockAbstract
|
||||||
{
|
{
|
||||||
private readonly DailyReportSaubDto blockDto;
|
private readonly DailyReportSaubDto blockDto;
|
||||||
|
private readonly HeadBlock headBlock;
|
||||||
public CellAddress AddressBhaWithFormula { get; }
|
public CellAddress AddressRotorDrilling { get; }
|
||||||
|
public CellAddress AddressSlideDrilling { get; }
|
||||||
|
public CellAddress AddressDrillingTableTitle { get; }
|
||||||
public CellAddress[] AddressPeriodTableDataArray { get; }
|
public CellAddress[] AddressDrillingTableHead { get; }
|
||||||
|
public CellAddress[] AddressDrillingTableData { get; }
|
||||||
/// <summary>
|
public CellAddress AddressSlideTableTitle { get; }
|
||||||
/// Значение нижняя правая ячейка блока
|
public CellAddress[] AddressSlideTableHead { get; }
|
||||||
/// </summary>
|
public CellAddress[] AddressSlideTableData { get; }
|
||||||
public override CellAddress AddressBlockBegin { get; }
|
public CellAddress AddressTotalTableMechanicalSpeed { get; }
|
||||||
|
public CellAddress AddressTotalTableTitle { get; }
|
||||||
/// <summary>
|
public CellAddress[] AddressTotalTableHead { get; }
|
||||||
/// Значение нижняя правая ячейка блока
|
public CellAddress[] AddressTotalTableData { get; }
|
||||||
/// </summary>
|
public CellAddress IncreaseSpeedSection { get; }
|
||||||
|
public CellAddress IncreaseSpeedDay { get; }
|
||||||
|
public CellAddress ReductionTimeDrilling { get; }
|
||||||
|
public CellAddress RotorSlidePercent { get; }
|
||||||
|
public CellAddress MspSection { get; }
|
||||||
|
public CellAddress SectionDrillingTimeTotal { get; }
|
||||||
|
public CellAddress SectionPenetrationTotal { get; }
|
||||||
|
public CellAddress ExtensionsCount { get; }
|
||||||
|
public CellAddress DeviationFromTVD { get; }
|
||||||
|
public CellAddress DeclinesReasonsROP { get; }
|
||||||
|
public CellAddress IncreaseSpeedSectionValue { get; }
|
||||||
|
public CellAddress IncreaseSpeedDayValue { get; }
|
||||||
|
public CellAddress ReductionTimeDrillingValue { get; }
|
||||||
|
public CellAddress RotorSlidePercentValue { get; }
|
||||||
|
public CellAddress MspSectionValue { get; }
|
||||||
|
public CellAddress SectionDrillingTimeTotalValue { get; }
|
||||||
|
public CellAddress SectionPenetrationTotalValue { get; }
|
||||||
|
public CellAddress ExtensionsCountValue { get; }
|
||||||
|
public CellAddress DeviationFromTVDValue { get; }
|
||||||
|
public override CellAddress AddressBlockBegin { get; }
|
||||||
public override CellAddress AddressBlockEnd { get; }
|
public override CellAddress AddressBlockEnd { get; }
|
||||||
|
|
||||||
public SaubBlock(CellAddress addressBlockBegin, DailyReportSaubDto blockDto)
|
public SaubBlock(CellAddress addressBlockBegin, DailyReportSaubDto blockDto)
|
||||||
{
|
{
|
||||||
AddressBlockBegin = addressBlockBegin.Copy();
|
AddressBlockBegin = addressBlockBegin.Copy();
|
||||||
this.blockDto = blockDto;
|
this.blockDto = blockDto;
|
||||||
AddressBhaWithFormula = addressBlockBegin + (0, 0);
|
AddressRotorDrilling = addressBlockBegin + (1, 0);
|
||||||
|
AddressSlideDrilling = addressBlockBegin + (2, 0);
|
||||||
|
AddressDrillingTableTitle = addressBlockBegin + (4, 0);
|
||||||
|
AddressDrillingTableHead = new CellAddress[4];
|
||||||
|
AddressDrillingTableHead[0] = addressBlockBegin + (5, 0);
|
||||||
|
AddressDrillingTableHead[1] = addressBlockBegin + (5, 2);
|
||||||
|
AddressDrillingTableHead[2] = addressBlockBegin + (5, 4);
|
||||||
|
AddressDrillingTableHead[3] = addressBlockBegin + (5, 6);
|
||||||
|
AddressDrillingTableData = new CellAddress[4];
|
||||||
|
AddressDrillingTableData[0] = addressBlockBegin + (6, 0);
|
||||||
|
AddressDrillingTableData[1] = addressBlockBegin + (6, 2);
|
||||||
|
AddressDrillingTableData[2] = addressBlockBegin + (6, 4);
|
||||||
|
AddressDrillingTableData[3] = addressBlockBegin + (6, 6);
|
||||||
|
AddressSlideTableTitle = addressBlockBegin + (8, 0);
|
||||||
|
AddressSlideTableHead = new CellAddress[4];
|
||||||
|
AddressSlideTableHead[0] = addressBlockBegin + (9, 0);
|
||||||
|
AddressSlideTableHead[1] = addressBlockBegin + (9, 2);
|
||||||
|
AddressSlideTableHead[2] = addressBlockBegin + (9, 4);
|
||||||
|
AddressSlideTableHead[3] = addressBlockBegin + (9, 6);
|
||||||
|
AddressSlideTableData = new CellAddress[4];
|
||||||
|
AddressSlideTableData[0] = addressBlockBegin + (10, 0);
|
||||||
|
AddressSlideTableData[1] = addressBlockBegin + (10, 2);
|
||||||
|
AddressSlideTableData[2] = addressBlockBegin + (10, 4);
|
||||||
|
AddressSlideTableData[3] = addressBlockBegin + (10, 6);
|
||||||
|
AddressTotalTableTitle = addressBlockBegin + (12, 0);
|
||||||
|
AddressTotalTableMechanicalSpeed = addressBlockBegin + (12, 6);
|
||||||
|
AddressTotalTableHead = new CellAddress[4];
|
||||||
|
AddressTotalTableHead[0] = addressBlockBegin + (13, 0);
|
||||||
|
AddressTotalTableHead[1] = addressBlockBegin + (13, 2);
|
||||||
|
AddressTotalTableHead[2] = addressBlockBegin + (13, 4);
|
||||||
|
AddressTotalTableData = new CellAddress[4];
|
||||||
|
AddressTotalTableData[0] = addressBlockBegin + (14, 0);
|
||||||
|
AddressTotalTableData[1] = addressBlockBegin + (14, 2);
|
||||||
|
AddressTotalTableData[2] = addressBlockBegin + (14, 4);
|
||||||
|
AddressTotalTableData[3] = addressBlockBegin + (14, 6);
|
||||||
|
IncreaseSpeedSection = addressBlockBegin + (16, 0);
|
||||||
|
IncreaseSpeedSectionValue = addressBlockBegin + (16, 4);
|
||||||
|
IncreaseSpeedDay = addressBlockBegin + (17, 0);
|
||||||
|
IncreaseSpeedDayValue = addressBlockBegin + (17, 4);
|
||||||
|
ReductionTimeDrilling = addressBlockBegin + (18, 0);
|
||||||
|
ReductionTimeDrillingValue = addressBlockBegin + (18, 4);
|
||||||
|
RotorSlidePercent = addressBlockBegin + (19, 0);
|
||||||
|
RotorSlidePercentValue = addressBlockBegin + (19, 4);
|
||||||
|
MspSection = addressBlockBegin + (20, 0);
|
||||||
|
MspSectionValue = addressBlockBegin + (20, 4);
|
||||||
|
SectionDrillingTimeTotal = addressBlockBegin + (21, 0);
|
||||||
|
SectionDrillingTimeTotalValue = addressBlockBegin + (21, 4);
|
||||||
|
SectionPenetrationTotal = addressBlockBegin + (22, 0);
|
||||||
|
SectionPenetrationTotalValue = addressBlockBegin + (22, 4);
|
||||||
|
ExtensionsCount = addressBlockBegin + (23, 0);
|
||||||
|
ExtensionsCountValue = addressBlockBegin + (23, 4);
|
||||||
|
DeviationFromTVD = addressBlockBegin + (24, 0);
|
||||||
|
DeviationFromTVDValue = addressBlockBegin + (24, 4);
|
||||||
|
DeclinesReasonsROP = addressBlockBegin + (25, 0);
|
||||||
|
AddressBlockEnd = DeclinesReasonsROP + (1,7) ;
|
||||||
|
}
|
||||||
|
|
||||||
//AddressExampleData1 = addressBlockBegin + (5, 0);
|
private string FormulaMechanicalSpeed(CellAddress cellSinking, CellAddress cellWatch )
|
||||||
|
{
|
||||||
|
return string.Format("=IF({0}>0,{1}/{2},0)", cellWatch.ToString(), cellSinking.ToString(), cellWatch.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private string FormulaSinking(CellAddress sinkingDrilling, CellAddress sinkingSlide, CellAddress slaughterEnd, CellAddress slaughterBegin)
|
||||||
|
{
|
||||||
//AddressBlockEnd = AddressesExampleDataArray.Last();
|
return string.Format($"=IF(({{0}}+{{1}})<>({{2}}-{{3}});\"ОШИБКА\";({{4}}+{{5}}))", sinkingSlide.ToString(), sinkingDrilling.ToString()
|
||||||
|
, slaughterEnd.ToString(), slaughterBegin.ToString(),
|
||||||
|
sinkingSlide.ToString(), sinkingDrilling.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw(IXLWorksheet sheet)
|
public override void Draw(IXLWorksheet sheet)
|
||||||
{
|
{
|
||||||
|
sheet._Range(AddressRotorDrilling, AddressRotorDrilling + (0, 7))
|
||||||
|
._SetValue($"Бурение в роторе : {blockDto.RotorDrillingModes}");
|
||||||
|
sheet._Range(AddressSlideDrilling, AddressSlideDrilling + (0, 7))
|
||||||
|
._SetValue($"Бурение в слайде : {blockDto.SlideDrillingModes}");
|
||||||
|
sheet._Range(AddressDrillingTableTitle, AddressDrillingTableTitle + (0, 7))
|
||||||
|
._SetValue("Бурение в роторе(за отчетный период) с использование САУБ - 1");
|
||||||
|
sheet._Range(AddressDrillingTableHead[0], AddressDrillingTableHead[0] + (0, 1))
|
||||||
|
._SetValue("Проходка");
|
||||||
|
sheet._Range(AddressDrillingTableHead[1], AddressDrillingTableHead[1] + (0, 1))
|
||||||
|
._SetValue("Часы бурения");
|
||||||
|
sheet._Range(AddressDrillingTableHead[2], AddressDrillingTableHead[2] + (0, 1))
|
||||||
|
._SetValue("Мех. скорость");
|
||||||
|
sheet._Range(AddressDrillingTableHead[3], AddressDrillingTableHead[3] + (0, 1))
|
||||||
|
._SetValue("Среднее диф. Давление");
|
||||||
|
sheet._Range(AddressDrillingTableData[0], AddressDrillingTableData[0] + (0, 1))
|
||||||
|
._SetValue($"{blockDto.PenetrationInRotor}");
|
||||||
|
sheet._Range(AddressDrillingTableData[1], AddressDrillingTableData[1] + (0, 1))
|
||||||
|
._SetValue($"{blockDto.NumberDrillingHours}");
|
||||||
|
sheet._Range(AddressDrillingTableData[2], AddressDrillingTableData[2] + (0, 1));
|
||||||
|
sheet.Cell(AddressDrillingTableData[2])
|
||||||
|
.SetFormulaA1(FormulaMechanicalSpeed(AddressDrillingTableData[0], AddressDrillingTableData[1]));
|
||||||
|
sheet._Range(AddressDrillingTableData[3], AddressDrillingTableData[3] + (0, 1))
|
||||||
|
._SetValue($"{blockDto.AVGDiffDropRotor}");
|
||||||
|
sheet._Range(AddressSlideTableTitle, AddressSlideTableTitle + (0, 7))
|
||||||
|
._SetValue("Бурение в слайде (за отчетный период) с использование САУБ-1");
|
||||||
|
sheet._Range(AddressSlideTableHead[0], AddressSlideTableHead[0] + (0, 1))
|
||||||
|
._SetValue("Проходка");
|
||||||
|
sheet._Range(AddressSlideTableHead[1], AddressSlideTableHead[1] + (0, 1))
|
||||||
|
._SetValue("Часы бурения");
|
||||||
|
sheet._Range(AddressSlideTableHead[2], AddressSlideTableHead[2] + (0, 1))
|
||||||
|
._SetValue("Мех. скорость");
|
||||||
|
sheet._Range(AddressSlideTableHead[3], AddressSlideTableHead[3] + (0, 1))
|
||||||
|
._SetValue("Среднее диф. Давление");
|
||||||
|
sheet._Range(AddressSlideTableData[0], AddressSlideTableData[0] + (0, 1))
|
||||||
|
._SetValue($"{blockDto.PenetrationInSlide}");
|
||||||
|
sheet._Range(AddressSlideTableData[1], AddressSlideTableData[1] + (0, 1))
|
||||||
|
._SetValue($"{blockDto.DrillingTimeInRotor}");
|
||||||
|
sheet._Range(AddressSlideTableData[2], AddressSlideTableData[2] + (0, 1));
|
||||||
|
sheet.Cell(AddressSlideTableData[2])
|
||||||
|
.SetFormulaA1(FormulaMechanicalSpeed(AddressSlideTableData[0], AddressSlideTableData[1]));
|
||||||
|
sheet._Range(AddressSlideTableData[3], AddressSlideTableData[3] + (0, 1))
|
||||||
|
._SetValue($"{blockDto.AVGDiffPressureSlide}");
|
||||||
|
sheet._Range(AddressTotalTableTitle, AddressTotalTableTitle + (0, 5))
|
||||||
|
._SetValue("Итого за отчетный период, использование САУБ-1");
|
||||||
|
sheet._Range(AddressTotalTableMechanicalSpeed, AddressTotalTableMechanicalSpeed + (1, 1))
|
||||||
|
._SetValue("Плановая мех скорость");
|
||||||
|
sheet._Range(AddressTotalTableHead[0], AddressTotalTableHead[0] + (0, 1))
|
||||||
|
._SetValue("Проходка");
|
||||||
|
sheet._Range(AddressTotalTableHead[1], AddressTotalTableHead[1] + (0, 1))
|
||||||
|
._SetValue("Часы бурения");
|
||||||
|
sheet._Range(AddressTotalTableHead[2], AddressTotalTableHead[2] + (0, 1))
|
||||||
|
._SetValue("Мех. скорость");
|
||||||
|
var formulaWatch = string.Format("={0}+{1}",
|
||||||
|
AddressDrillingTableData[1].ToString(), AddressSlideTableData[1].ToString());
|
||||||
|
sheet._Range(AddressTotalTableData[0], AddressTotalTableData[0] + (0, 1));
|
||||||
|
sheet.Cell(AddressTotalTableData[0])
|
||||||
|
.SetFormulaA1(formulaWatch);
|
||||||
|
sheet._Range(AddressTotalTableData[1], AddressTotalTableData[1] + (0, 1));
|
||||||
|
sheet.Cell(AddressTotalTableData[1])
|
||||||
|
.SetFormulaA1(formulaWatch);
|
||||||
|
sheet._Range(AddressTotalTableData[2], AddressTotalTableData[2] + (0, 1))
|
||||||
|
._SetValue("");
|
||||||
|
sheet._Range(AddressTotalTableData[3], AddressTotalTableData[3] + (0, 1))
|
||||||
|
._SetValue($"{blockDto.SectionROPPlan}");
|
||||||
|
sheet._Range(IncreaseSpeedSection, IncreaseSpeedSection + (0, 3))
|
||||||
|
._SetValue("Увеличение мех скорости за секцию %");
|
||||||
|
sheet._Range(IncreaseSpeedSectionValue, IncreaseSpeedSectionValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.IncreaseSpeedSection}");
|
||||||
|
sheet._Range(IncreaseSpeedDay, IncreaseSpeedDay + (0, 3))
|
||||||
|
._SetValue("Увеличение мех скорости за сутки %");
|
||||||
|
sheet._Range(IncreaseSpeedDayValue, IncreaseSpeedDayValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.IncreaseSpeedDay}");
|
||||||
|
sheet._Range(ReductionTimeDrilling, ReductionTimeDrilling + (0, 3))
|
||||||
|
._SetValue("Сокращение времени бурения за секцию, ч");
|
||||||
|
sheet._Range(ReductionTimeDrillingValue, ReductionTimeDrillingValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.ReductionTimeDrilling}");
|
||||||
|
sheet._Range(RotorSlidePercent, RotorSlidePercent + (0, 3))
|
||||||
|
._SetValue("Ротор / слайд, %");
|
||||||
|
sheet._Range(RotorSlidePercentValue, RotorSlidePercentValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.RotorSlidePercent}");
|
||||||
|
sheet._Range(MspSection, MspSection + (0, 3))
|
||||||
|
._SetValue("МСП за секцию м/ч.");
|
||||||
|
sheet._Range(MspSectionValue, MspSectionValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.MspSection}");
|
||||||
|
sheet._Range(SectionDrillingTimeTotal, SectionDrillingTimeTotal + (0, 3))
|
||||||
|
._SetValue("Время бурения за секцию");
|
||||||
|
sheet._Range(SectionDrillingTimeTotalValue, SectionDrillingTimeTotalValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.SectionDrillingTimeTotal}");
|
||||||
|
sheet._Range(SectionPenetrationTotal, SectionPenetrationTotal + (0, 3))
|
||||||
|
._SetValue("Проходка за секцию");
|
||||||
|
sheet._Range(SectionPenetrationTotalValue, SectionPenetrationTotalValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.SectionPenetrationTotal}");
|
||||||
|
sheet._Range(ExtensionsCount, ExtensionsCount + (0, 3))
|
||||||
|
._SetValue("Кол- во наращиваний");
|
||||||
|
sheet._Range(ExtensionsCountValue, ExtensionsCountValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.ExtensionsCount}");
|
||||||
|
sheet._Range(DeviationFromTVD, DeviationFromTVD + (0, 3))
|
||||||
|
._SetValue("Отклонение от ГГД +/-, сут");
|
||||||
|
sheet._Range(DeviationFromTVDValue, DeviationFromTVDValue + (0, 3))
|
||||||
|
._SetValue($"{blockDto.DeviationFromTVD}");
|
||||||
|
sheet._Range(DeclinesReasonsROP, DeclinesReasonsROP + (1, 7))
|
||||||
|
._SetValue($"Примечание: {blockDto.DeclinesReasonsROP}");
|
||||||
|
|
||||||
//sheet.Range(AddressBhaDescription, AddressBhaDescription + (0, 7))
|
|
||||||
// ._SetValue($"{blockDto.BHADescription}");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// sheet._Range(AddressExampleData1, AddressExampleData1 + (0, 4))
|
|
||||||
// ._SetValue(blockDto.BottomholeDepth); // для примера с будущей формулой
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
using System;
|
using AsbCloudApp.Data.DailyReport;
|
||||||
using AsbCloudApp.Data.DailyReport;
|
|
||||||
using ClosedXML.Excel;
|
using ClosedXML.Excel;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
||||||
{
|
{
|
||||||
|
|
||||||
internal class SignBlock : BlockAbstract
|
internal class SignBlock : BlockAbstract
|
||||||
{
|
{
|
||||||
private readonly DailyReportSignDto blockDto;
|
private readonly DailyReportSignDto blockDto;
|
||||||
|
|
||||||
public CellAddress AddressDrillMasterHead { get; }
|
public CellAddress AddressDrillMasterHead { get; }
|
||||||
public CellAddress AddressDrillMaster { get; }
|
public CellAddress AddressDrillMaster { get; }
|
||||||
public CellAddress AddressSupervisorHead { get; }
|
public CellAddress AddressSupervisorHead { get; }
|
||||||
|
@ -1,16 +1,12 @@
|
|||||||
using System;
|
using AsbCloudApp.Data.DailyReport;
|
||||||
using AsbCloudApp.Data.DailyReport;
|
|
||||||
using ClosedXML.Excel;
|
using ClosedXML.Excel;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
namespace AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks
|
||||||
{
|
{
|
||||||
|
|
||||||
class TimeBalanceBlock : BlockAbstract
|
class TimeBalanceBlock : BlockAbstract
|
||||||
{
|
{
|
||||||
private readonly DailyReportTimeBalanceDto blockDto;
|
private readonly DailyReportTimeBalanceDto blockDto;
|
||||||
|
public CellAddress AddressTitle { get; }
|
||||||
public CellAddress AddressTitle { get; }
|
|
||||||
|
|
||||||
public CellAddress AddressDrilling { get; set; }
|
public CellAddress AddressDrilling { get; set; }
|
||||||
public CellAddress AddressFlushing { get; set; }
|
public CellAddress AddressFlushing { get; set; }
|
||||||
public CellAddress AddressBuilding { get; set; }
|
public CellAddress AddressBuilding { get; set; }
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
using AsbCloudApp.Data;
|
using AsbCloudApp.Data;
|
||||||
using AsbCloudApp.Data.DailyReport;
|
|
||||||
using AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks;
|
using AsbCloudInfrastructure.Services.DailyReport.DailyReportBlocks;
|
||||||
using ClosedXML.Excel;
|
using ClosedXML.Excel;
|
||||||
using System;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.DailyReport
|
namespace AsbCloudInfrastructure.Services.DailyReport
|
||||||
{
|
{
|
||||||
public class DailyReportMakerExcel
|
public class DailyReportMakerExcel
|
||||||
@ -26,32 +22,29 @@ namespace AsbCloudInfrastructure.Services.DailyReport
|
|||||||
var addressStart = new CellAddress(sheet, 1, 1);
|
var addressStart = new CellAddress(sheet, 1, 1);
|
||||||
var blockHeader = new HeadBlock(addressStart, dto.HeadDto);
|
var blockHeader = new HeadBlock(addressStart, dto.HeadDto);
|
||||||
addressStart = blockHeader.AddressBlockEnd + (1, 0);
|
addressStart = blockHeader.AddressBlockEnd + (1, 0);
|
||||||
addressStart.ColumnNumber = 0;
|
addressStart.ColumnNumber = 1;
|
||||||
var blockBha = new BhaBlock(addressStart, dto.BhaDto);
|
var blockBha = new BhaBlock(addressStart, dto.BhaDto);
|
||||||
addressStart = blockBha.AddressBlockEnd + (1, 0);
|
addressStart = blockBha.AddressBlockEnd + (1, 0);
|
||||||
addressStart.ColumnNumber = 0;
|
addressStart.ColumnNumber = 1;
|
||||||
var timeBalance = new TimeBalanceBlock(addressStart, dto.TimeBalanceDto);
|
var timeBalance = new TimeBalanceBlock(addressStart, dto.TimeBalanceDto);
|
||||||
addressStart = timeBalance.AddressBlockEnd + (1, 0);
|
addressStart = timeBalance.AddressBlockEnd + (1, 0);
|
||||||
addressStart.ColumnNumber = 0;
|
addressStart.ColumnNumber = 1;
|
||||||
var blockDimensionless = new DimensionlessBlock(addressStart, dto.DimensionlessDto);
|
var blockDimensionless = new DimensionlessBlock(addressStart, dto.DimensionlessDto);
|
||||||
addressStart = blockDimensionless.AddressBlockEnd + (1, 0);
|
addressStart = blockDimensionless.AddressBlockEnd + (1, 0);
|
||||||
addressStart.ColumnNumber = 0;
|
addressStart.ColumnNumber = 1;
|
||||||
|
var blockSaub = new SaubBlock(addressStart, dto.SaubDto);
|
||||||
|
addressStart = blockSaub.AddressBlockEnd + (1, 0);
|
||||||
|
addressStart.ColumnNumber = 1;
|
||||||
var blockSign = new SignBlock(addressStart, dto.SignDto);
|
var blockSign = new SignBlock(addressStart, dto.SignDto);
|
||||||
addressStart = blockSign.AddressBlockEnd + (1, 0);
|
addressStart = blockSign.AddressBlockEnd + (1, 0);
|
||||||
addressStart.ColumnNumber = 0;
|
addressStart.ColumnNumber = 1;
|
||||||
|
|
||||||
|
|
||||||
blockHeader.Draw(sheet);
|
blockHeader.Draw(sheet);
|
||||||
blockBha.Draw(sheet);
|
blockBha.Draw(sheet);
|
||||||
timeBalance.Draw(sheet);
|
timeBalance.Draw(sheet);
|
||||||
blockDimensionless.Draw(sheet);
|
blockDimensionless.Draw(sheet);
|
||||||
|
blockSaub.Draw(sheet);
|
||||||
blockSign.Draw(sheet);
|
blockSign.Draw(sheet);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
using AsbCloudApp.Data.DailyReport;
|
using AsbCloudApp.Data;
|
||||||
|
using AsbCloudApp.Data.DailyReport;
|
||||||
|
using AsbCloudInfrastructure.Services.DailyReport;
|
||||||
using ClosedXML.Excel;
|
using ClosedXML.Excel;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -12,6 +14,8 @@ namespace ConsoleApp1
|
|||||||
// use ServiceFactory to make services
|
// use ServiceFactory to make services
|
||||||
static void Main(/*string[] args*/)
|
static void Main(/*string[] args*/)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
var block = new DailyReportHeadDto()
|
var block = new DailyReportHeadDto()
|
||||||
{
|
{
|
||||||
AzimuthAngle = 12,
|
AzimuthAngle = 12,
|
||||||
@ -28,11 +32,17 @@ namespace ConsoleApp1
|
|||||||
{
|
{
|
||||||
BHADescription = "sadasdasdasdasdasdjlaskjdaksjdlasdlalskdklj"
|
BHADescription = "sadasdasdasdasdasdjlaskjdaksjdlasdlalskdklj"
|
||||||
};
|
};
|
||||||
var block3 = new DailyReportTimeBalanceDto();
|
var block3 = new DailyReportSaubDto();
|
||||||
|
var bloks = new DailyReportDto()
|
||||||
|
{
|
||||||
|
HeadDto = block,
|
||||||
|
SaubDto = block3
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
var service = new DailyReportMakerExcel();
|
var service = new DailyReportMakerExcel();
|
||||||
var stream = service.MakeReportFromBlocks(block, block2, block3,null, null, null);
|
var stream = service.MakeReportFromBlocks(bloks);
|
||||||
var filename = "____.xlsx";
|
var filename = "____.xlsx";
|
||||||
if (File.Exists(filename))
|
if (File.Exists(filename))
|
||||||
File.Delete(filename);
|
File.Delete(filename);
|
||||||
@ -40,7 +50,7 @@ namespace ConsoleApp1
|
|||||||
stream.CopyTo(fileStream);
|
stream.CopyTo(fileStream);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user