Modifica x gestione errore in caricamento doppio se cache inganna il check orario
This commit is contained in:
@@ -227,13 +227,17 @@ namespace GWMS.Data.Controllers
|
||||
|
||||
public List<PlantDTO> GetPlantsDTO(int maxRecords)
|
||||
{
|
||||
var plantList = dbCtx
|
||||
.DbSetPlant
|
||||
.ToList();
|
||||
List<PlantDTO> dbResult = new List<PlantDTO>();
|
||||
using (GWMSContext dbCtxMult = new GWMSContext(_configuration))
|
||||
{
|
||||
var plantList = dbCtxMult
|
||||
.DbSetPlant
|
||||
.ToList();
|
||||
|
||||
var dbResult = plantList
|
||||
dbResult = plantList
|
||||
.Select(x => PlantDTO(x.PlantId, maxRecords))
|
||||
.ToList();
|
||||
}
|
||||
|
||||
return dbResult;
|
||||
}
|
||||
@@ -353,7 +357,7 @@ namespace GWMS.Data.Controllers
|
||||
public PlantDTO PlantDTO(int PlantId, int maxRecords)
|
||||
{
|
||||
var currPlant = GetPlant(PlantId);
|
||||
|
||||
PlantDTO answ = new PlantDTO();
|
||||
List<TSData> LevelTS = new List<TSData>();
|
||||
Dictionary<string, double> PressAct = new Dictionary<string, double>();
|
||||
Dictionary<string, List<TSData>> PressTS = new Dictionary<string, List<TSData>>();
|
||||
@@ -361,82 +365,87 @@ namespace GWMS.Data.Controllers
|
||||
List<TSData> PressBHTS = new List<TSData>();
|
||||
List<TSData> PressBLTS = new List<TSData>();
|
||||
List<TSData> OrderTS = new List<TSData>();
|
||||
// recupero dal DB
|
||||
var rawLevelData = dbCtx
|
||||
|
||||
using (GWMSContext dbCtxMult = new GWMSContext(_configuration))
|
||||
{
|
||||
// recupero dal DB
|
||||
var rawLevelData = dbCtxMult
|
||||
.DbSetPlantLog
|
||||
.Where(x => x.FluxType == "Level" && x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtEvent)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
|
||||
var rawMainPressData = dbCtx
|
||||
.DbSetPlantLog
|
||||
.Where(x => x.FluxType == "MainPress" && x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtEvent)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
var rawMainPressData = dbCtxMult
|
||||
.DbSetPlantLog
|
||||
.Where(x => x.FluxType == "MainPress" && x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtEvent)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
|
||||
var rawBHPressData = dbCtx
|
||||
.DbSetPlantLog
|
||||
.Where(x => x.FluxType == "PressBH" && x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtEvent)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
var rawBHPressData = dbCtxMult
|
||||
.DbSetPlantLog
|
||||
.Where(x => x.FluxType == "PressBH" && x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtEvent)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
|
||||
var rawBLPressData = dbCtx
|
||||
.DbSetPlantLog
|
||||
.Where(x => x.FluxType == "PressBL" && x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtEvent)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
var rawBLPressData = dbCtxMult
|
||||
.DbSetPlantLog
|
||||
.Where(x => x.FluxType == "PressBL" && x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtEvent)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
|
||||
var rawOrderData = dbCtx
|
||||
.DbSetOrders
|
||||
.Where(x => x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtOrder)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
var rawOrderData = dbCtxMult
|
||||
.DbSetOrders
|
||||
.Where(x => x.PlantId == PlantId)
|
||||
.OrderBy(x => x.DtOrder)
|
||||
.Take(maxRecords)
|
||||
.ToList();
|
||||
|
||||
LevelTS = rawLevelData
|
||||
.Select(x => new TSData() { DtEvent = x.DtEvent, ValDouble = x.ValNumber }).ToList();
|
||||
LevelTS = rawLevelData
|
||||
.Select(x => new TSData() { DtEvent = x.DtEvent, ValDouble = x.ValNumber }).ToList();
|
||||
|
||||
OrderTS = rawOrderData
|
||||
.Select(x => new TSData() { DtEvent = x.DtOrder, ValDouble = x.OrderQty }).ToList();
|
||||
OrderTS = rawOrderData
|
||||
.Select(x => new TSData() { DtEvent = x.DtOrder, ValDouble = x.OrderQty }).ToList();
|
||||
|
||||
PressMainTS = rawMainPressData
|
||||
.Select(x => new TSData() { DtEvent = x.DtEvent, ValDouble = x.ValNumber }).ToList();
|
||||
PressMainTS = rawMainPressData
|
||||
.Select(x => new TSData() { DtEvent = x.DtEvent, ValDouble = x.ValNumber }).ToList();
|
||||
|
||||
PressBHTS = rawBHPressData
|
||||
.Select(x => new TSData() { DtEvent = x.DtEvent, ValDouble = x.ValNumber }).ToList();
|
||||
PressBHTS = rawBHPressData
|
||||
.Select(x => new TSData() { DtEvent = x.DtEvent, ValDouble = x.ValNumber }).ToList();
|
||||
|
||||
PressBLTS = rawBLPressData
|
||||
.Select(x => new TSData() { DtEvent = x.DtEvent, ValDouble = x.ValNumber }).ToList();
|
||||
PressBLTS = rawBLPressData
|
||||
.Select(x => new TSData() { DtEvent = x.DtEvent, ValDouble = x.ValNumber }).ToList();
|
||||
|
||||
PressTS.Add("Main", PressMainTS);
|
||||
PressTS.Add("BH", PressBHTS);
|
||||
PressTS.Add("BL", PressBLTS);
|
||||
PressTS.Add("Main", PressMainTS);
|
||||
PressTS.Add("BH", PressBHTS);
|
||||
PressTS.Add("BL", PressBLTS);
|
||||
|
||||
double actLevel = LevelTS.Count > 0 ? LevelTS.OrderByDescending(x => x.DtEvent).Take(1).FirstOrDefault().ValDouble : 0;
|
||||
double valMain = PressMainTS.Count > 0 ? PressMainTS.OrderByDescending(x => x.DtEvent).Take(1).FirstOrDefault().ValDouble : 0;
|
||||
double valBH = PressBHTS.Count > 0 ? PressBHTS.OrderByDescending(x => x.DtEvent).Take(1).FirstOrDefault().ValDouble : 0;
|
||||
double valBL = PressBLTS.Count > 0 ? PressBLTS.OrderByDescending(x => x.DtEvent).Take(1).FirstOrDefault().ValDouble : 0;
|
||||
double actLevel = LevelTS.Count > 0 ? LevelTS.OrderByDescending(x => x.DtEvent).Take(1).FirstOrDefault().ValDouble : 0;
|
||||
double valMain = PressMainTS.Count > 0 ? PressMainTS.OrderByDescending(x => x.DtEvent).Take(1).FirstOrDefault().ValDouble : 0;
|
||||
double valBH = PressBHTS.Count > 0 ? PressBHTS.OrderByDescending(x => x.DtEvent).Take(1).FirstOrDefault().ValDouble : 0;
|
||||
double valBL = PressBLTS.Count > 0 ? PressBLTS.OrderByDescending(x => x.DtEvent).Take(1).FirstOrDefault().ValDouble : 0;
|
||||
|
||||
PressAct.Add("Main", valMain);
|
||||
PressAct.Add("BH", valBH);
|
||||
PressAct.Add("BL", valBL);
|
||||
PressAct.Add("Main", valMain);
|
||||
PressAct.Add("BH", valBH);
|
||||
PressAct.Add("BL", valBL);
|
||||
|
||||
PlantDTO answ = new PlantDTO()
|
||||
{
|
||||
PlantId = PlantId,
|
||||
PlantCode = currPlant.PlantCode,
|
||||
PlantDesc = currPlant.PlantDesc,
|
||||
LevelAct = actLevel,
|
||||
LevelMax = currPlant.LevelMax,
|
||||
PressAct = PressAct,
|
||||
LevelTS = LevelTS,
|
||||
PressTS = PressTS,
|
||||
OrderTS = OrderTS
|
||||
};
|
||||
// popolo valolri
|
||||
answ = new PlantDTO()
|
||||
{
|
||||
PlantId = PlantId,
|
||||
PlantCode = currPlant.PlantCode,
|
||||
PlantDesc = currPlant.PlantDesc,
|
||||
LevelAct = actLevel,
|
||||
LevelMax = currPlant.LevelMax,
|
||||
PressAct = PressAct,
|
||||
LevelTS = LevelTS,
|
||||
PressTS = PressTS,
|
||||
OrderTS = OrderTS
|
||||
};
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace GWMS.Data
|
||||
new PlantDetailModel { PlantId = 1, PlantCode = "PIZ03", PlantDesc = "Collecchio", LevelMax = 26000, PressMax = 19, PressBHMax = 270, PressBLMax = 270 },
|
||||
new PlantDetailModel { PlantId = 2, PlantCode = "PIZ04", PlantDesc = "Noceto", LevelMax = 28000, PressMax = 19, PressBHMax = 270, PressBLMax = 270 },
|
||||
new PlantDetailModel { PlantId = 3, PlantCode = "PIZ05", PlantDesc = "Baganzola", LevelMax = 24000, PressMax = 19, PressBHMax = 270, PressBLMax = 270 },
|
||||
new PlantDetailModel { PlantId = 4, PlantCode = "PIZ08", PlantDesc = "Pilastrello", LevelMax = 25500, PressMax = 19, PressBHMax = 270, PressBLMax = 270 }
|
||||
new PlantDetailModel { PlantId = 4, PlantCode = "PIZ08", PlantDesc = "Pilastrello", LevelMax = 26000, PressMax = 19, PressBHMax = 270, PressBLMax = 270 }
|
||||
);
|
||||
|
||||
// inizializzazione dei valori di default x Fornitori
|
||||
|
||||
@@ -394,6 +394,7 @@ namespace GWMS.UI.Data
|
||||
|
||||
public async Task<bool> PlantLogInsert(List<PlantLogModel> newItems)
|
||||
{
|
||||
bool fatto = false;
|
||||
// init valori
|
||||
int IntervalMin = 60;
|
||||
int.TryParse(_configuration["IntervalMin"], out IntervalMin);
|
||||
@@ -435,8 +436,19 @@ namespace GWMS.UI.Data
|
||||
}
|
||||
}
|
||||
|
||||
// faccio vero insert
|
||||
return await Task.FromResult(dbController.PlantLogInsertNew(item2insert));
|
||||
// se ho record da inserire...
|
||||
if (item2insert.Count > 0)
|
||||
{
|
||||
// faccio vero insert
|
||||
fatto = dbController.PlantLogInsertNew(item2insert);
|
||||
|
||||
// invalido i vari valori in cache
|
||||
await distributedCache.RemoveAsync($"DATA:PLANTS:LastFlux:{PlantId}");
|
||||
await distributedCache.RemoveAsync($"DATA:PLANTS:ListDTO");
|
||||
}
|
||||
|
||||
// restituisco
|
||||
return await Task.FromResult(fatto);
|
||||
}
|
||||
|
||||
public async Task<List<PlantDTO>> PlantsGetAll()
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace GWMS.UI.Data
|
||||
{
|
||||
#region Private Fields
|
||||
|
||||
private SelectData _detailFilter = SelectData.Init(5, 7);
|
||||
private SelectData _detailFilter = SelectData.Init(5, 15);
|
||||
private string _pageIcon;
|
||||
private string _pageName;
|
||||
private string _searchVal;
|
||||
@@ -33,8 +33,6 @@ namespace GWMS.UI.Data
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public SelectData DDB_Filter { get; set; } = SelectData.Init(5, 3);
|
||||
|
||||
public SelectData DetailFilter
|
||||
{
|
||||
get => _detailFilter;
|
||||
@@ -52,10 +50,7 @@ namespace GWMS.UI.Data
|
||||
}
|
||||
}
|
||||
|
||||
public SelectData KRE_Filter { get; set; } = SelectData.Init(5, 7);
|
||||
public SelectData ODL_Filter { get; set; } = SelectData.Init(5, 7);
|
||||
public SelectData OEE_Filter { get; set; } = SelectData.Init(5, 7);
|
||||
public SelectOrderData Order_Filter { get; set; } = SelectOrderData.Init(5, 7);
|
||||
public SelectOrderData Order_Filter { get; set; } = SelectOrderData.Init(5, 30);
|
||||
|
||||
public string PageIcon
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<Version>1.0.2108.0518</Version>
|
||||
<Version>1.0.2108.0612</Version>
|
||||
<UserSecretsId>95c9f021-52d1-4390-a670-5810b7b777b0</UserSecretsId>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -20,41 +20,7 @@
|
||||
}
|
||||
</div>
|
||||
<div class="col-12">
|
||||
@*<div class="d-flex justify-content-between">
|
||||
<div class="p-2">
|
||||
<h4>Simulazione</h4>
|
||||
</div>
|
||||
<div class="p-2">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">giorni</span>
|
||||
</div>
|
||||
<input @bind-value="@numDays" @bind-value:event="oninput" type="number" class="form-control" title="Giorni" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-2">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">step</span>
|
||||
</div>
|
||||
<input @bind-value="@stepMin" @bind-value:event="oninput" type="number" class="form-control" title="Step sim (minuti)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-2">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">cons orario max</span>
|
||||
</div>
|
||||
<input @bind-value="@maxHourRate" @bind-value:event="oninput" type="number" class="form-control" title="Consumo massimo orario" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-2">
|
||||
<Button id="btnReset" class="btn btn-danger btn-block" Clicked="resetDB">
|
||||
<span class="oi oi-reload"></span> Regen DB Data
|
||||
</Button>
|
||||
</div>
|
||||
</div>*@
|
||||
<SetupSim />
|
||||
@*<SetupSim />*@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>GWMS - Gas Warehouse Management System</i>
|
||||
<h4>Versione: 1.0.2108.0518</h4>
|
||||
<h4>Versione: 1.0.2108.0612</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
1.0.2108.0518
|
||||
1.0.2108.0612
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>1.0.2108.0518</version>
|
||||
<version>1.0.2108.0612</version>
|
||||
<url>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/GWMS.UI.zip</url>
|
||||
<changelog>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
Reference in New Issue
Block a user