Finita pag turni

This commit is contained in:
Samuele Locatelli
2023-10-11 08:25:58 +02:00
parent 7730e0d808
commit 8e7380a7ab
11 changed files with 320 additions and 50 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<Version>6.16.2310.1107</Version>
<Version>6.16.2310.1108</Version>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP_TAB_SERV</RootNamespace>
</PropertyGroup>
+1 -2
View File
@@ -12,6 +12,7 @@ namespace MP_TAB_SERV.Pages
#region Protected Fields
protected int dltMinRealtime = 1;
protected bool isProcessing = false;
protected int minAnticipoRicalcolo = 1;
protected bool rdm_ChkOnly = false;
protected int rdm_nEvCheck = 1;
@@ -71,8 +72,6 @@ namespace MP_TAB_SERV.Pages
#region Protected Methods
protected bool isProcessing = false;
/// <summary>
/// Processo registrazione eventi
/// </summary>
+46 -1
View File
@@ -9,6 +9,51 @@ else
<div>
<MachineBlock RecMSE="CurrMSE" FullMode="false"></MachineBlock>
</div>
<ParamsMan></ParamsMan>
<div class="row my-2">
<div class="col-6">
<div class="d-flex justify-content-around">
<div class="form-check form-switch fs-2">
<input class="form-check-input" type="checkbox" @bind="@T1">
<label class="form-check-label" >Turno 1</label>
</div>
</div>
<div class="d-flex justify-content-around">
<div class="form-check form-switch fs-2">
<input class="form-check-input" type="checkbox" @bind="@T2">
<label class="form-check-label" >Turno 2</label>
</div>
</div>
<div class="d-flex justify-content-around">
<div class="form-check form-switch fs-2">
<input class="form-check-input" type="checkbox" @bind="@T3">
<label class="form-check-label" >Turno 3</label>
</div>
</div>
</div>
<div class="col-6 text-center">
<div class="row">
<div class="col-12">
<h2><b>Stato Turni Attivi</b></h2>
</div>
<div class="col-12 fs-5 @cssByState(T1)">
Turno 1
</div>
<div class="col-12 fs-5 @cssByState(T2)">
Turno 2
</div>
<div class="col-12 fs-5 @cssByState(T3)">
Turno 3
</div>
</div>
<div class="row my-2">
<div class="col-6 bg-success text-warning px-2">
Turno Aperto
</div>
<div class="col-6 bg-secondary px-2">
Turno Chiuso
</div>
</div>
</div>
</div>
}
+48
View File
@@ -36,10 +36,58 @@ namespace MP_TAB_SERV.Pages
if (!string.IsNullOrEmpty(IdxMacc))
{
CurrMSE = await MsgServ.GetMachineMse(IdxMacc);
// recupero turni
currTurni = await TabServ.TurnoMacchinaGet(IdxMacc);
}
}
}
protected bool T1
{
get => currTurni.T1;
set
{
if (currTurni.T1 != value)
{
currTurni.T1 = value;
TabServ.TurnoMacchinaToggle(IdxMacc, 1);
}
}
}
protected bool T2
{
get => currTurni.T2;
set
{
if (currTurni.T2 != value)
{
currTurni.T2 = value;
TabServ.TurnoMacchinaToggle(IdxMacc, 2);
}
}
}
protected bool T3
{
get => currTurni.T3;
set
{
if (currTurni.T3 != value)
{
currTurni.T3 = value;
TabServ.TurnoMacchinaToggle(IdxMacc, 3);
}
}
}
protected string cssByState(bool isActive)
{
return isActive ? "bg-success text-warning" : "bg-secondary";
}
[Inject]
protected TabDataService TabServ { get; set; } = null!;
protected TurniMaccModel currTurni { get; set; } = new TurniMaccModel();
#endregion Private Methods
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOSPEC </i>
<h4>Versione: 6.16.2310.1107</h4>
<h4>Versione: 6.16.2310.1108</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2310.1107
6.16.2310.1108
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2310.1107</version>
<version>6.16.2310.1108</version>
<url>https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>
+95 -32
View File
@@ -298,6 +298,38 @@ namespace MP.Data.Controllers
return dbResult;
}
/// <summary>
/// Inserimento record in DDB
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="inizio"></param>
/// <param name="idxStatoStart"></param>
/// <param name="nStepEventi"></param>
/// <param name="nRecCheck"></param>
/// <param name="checkOnly"></param>
/// <returns></returns>
public bool DDB_DoRecalc(string idxMacchina, DateTime inizio, int idxStatoStart, int nStepEventi, int nRecCheck, bool checkOnly)
{
bool fatto = false;
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
var Inizio = new SqlParameter("@inizio", inizio);
var IdxStatoStart = new SqlParameter("@idxStatoStart", idxStatoStart);
var NStepEventi = new SqlParameter("@nStepEventi", nStepEventi);
var NRecCheck = new SqlParameter("@nRecCheck", nRecCheck);
var CheckOnly = new SqlParameter("@CheckOnly", checkOnly);
var result = dbCtx
.Database
.ExecuteSqlRaw("exec man.stp_ricalcolaDatiMacchinaFromDateFork @IdxMacchina, @inizio, @idxStatoStart, @nStepEventi, @nRecCheck, @CheckOnly", IdxMacchina, Inizio, IdxStatoStart, NStepEventi, NRecCheck, CheckOnly);
// indico eseguito!
fatto = result != 0;
}
return fatto;
}
/// <summary>
/// Recupera record successivo da DDB
/// </summary>
@@ -321,6 +353,7 @@ namespace MP.Data.Controllers
}
return dbResult;
}
/// <summary>
/// Inserimento record in DDB
/// </summary>
@@ -355,38 +388,6 @@ namespace MP.Data.Controllers
return fatto;
}
/// <summary>
/// Inserimento record in DDB
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="inizio"></param>
/// <param name="idxStatoStart"></param>
/// <param name="nStepEventi"></param>
/// <param name="nRecCheck"></param>
/// <param name="checkOnly"></param>
/// <returns></returns>
public bool DDB_DoRecalc(string idxMacchina, DateTime inizio, int idxStatoStart, int nStepEventi, int nRecCheck, bool checkOnly)
{
bool fatto = false;
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
var Inizio = new SqlParameter("@inizio", inizio);
var IdxStatoStart = new SqlParameter("@idxStatoStart", idxStatoStart);
var NStepEventi = new SqlParameter("@nStepEventi", nStepEventi);
var NRecCheck = new SqlParameter("@nRecCheck", nRecCheck);
var CheckOnly = new SqlParameter("@CheckOnly", checkOnly);
var result = dbCtx
.Database
.ExecuteSqlRaw("exec man.stp_ricalcolaDatiMacchinaFromDateFork @IdxMacchina, @inizio, @idxStatoStart, @nStepEventi, @nRecCheck, @CheckOnly", IdxMacchina, Inizio, IdxStatoStart, NStepEventi, NRecCheck, CheckOnly);
// indico eseguito!
fatto = result != 0;
}
return fatto;
}
//stp_DDB_getNextByMacchinaFrom
public void Dispose()
@@ -827,6 +828,68 @@ namespace MP.Data.Controllers
return dbResult;
}
/// <summary>
/// Elenco turni macchina (all)
/// </summary>
/// <param name="idxMacchina"></param>
/// <returns></returns>
public TurniMaccModel TurnoMacchinaGet(string idxMacchina)
{
TurniMaccModel dbResult = new TurniMaccModel();
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
dbResult = dbCtx
.DbSetTurniMacc
.FromSqlRaw("exec dbo.stp_turniMacchineByIdxMacc @IdxMacchina", IdxMacchina)
.AsNoTracking()
.AsEnumerable()
.FirstOrDefault();
}
return dbResult;
}
/// <summary>
/// Elenco turni macchina (all)
/// </summary>
/// <returns></returns>
public List<TurniMaccModel> TurnoMacchinaGetAll()
{
List<TurniMaccModel> dbResult = new List<TurniMaccModel>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetTurniMacc
.AsNoTracking()
.ToList();
}
return dbResult;
}
/// <summary>
/// Toggle turno macchina (da numero)
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="numTurno"></param>
/// <returns></returns>
public bool TurnoMacchinaToggle(string idxMacchina, int numTurno)
{
bool answ = false;
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
var NumTurno = new SqlParameter("@numTurno", numTurno);
var result = dbCtx
.Database
.ExecuteSqlRaw("exec dbo.stp_turniMacchineUpdateTurno @IdxMacchina, @numTurno", IdxMacchina, NumTurno);
// indico eseguito!
answ = result > 0;
}
return answ;
}
#endregion Public Methods
#region Private Fields
+32
View File
@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#nullable disable
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace MP.Data.DatabaseModels
{
[Table("TurniMacchina")]
public partial class TurniMaccModel
{
#region Public Properties
[Key, MaxLength(50)]
public string IdxMacchina { get; set; } = "NA";
public bool T1 { get; set; } = false;
public bool T2 { get; set; } = false;
public bool T3 { get; set; } = false;
/// <summary>
/// Navigazione oggetto Machine
/// </summary>
[ForeignKey("IdxMacchina")]
public virtual Macchine MachineNav { get; set; } = null!;
#endregion Public Properties
}
}
+1
View File
@@ -70,6 +70,7 @@ namespace MP.Data
public virtual DbSet<MicroStatoMacchinaModel> DbSetMicroStatoMacc { get; set; }
public virtual DbSet<StatoMacchineModel> DbSetStatoMacc { get; set; }
public virtual DbSet<StatoProdModel> DbSetStatoProd { get; set; }
public virtual DbSet<TurniMaccModel> DbSetTurniMacc { get; set; }
public virtual DbSet<ST_Act> DbSetStAct { get; set; }
public virtual DbSet<ST_ActRow> DbSetStActRow { get; set; }
+93 -11
View File
@@ -291,16 +291,6 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Recupera record successivo da DDB
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="inizioStato"></param>
/// <returns></returns>
public DiarioDiBordoModel DDB_getNext(string idxMacchina, DateTime inizioStato)
{
return dbTabController.DDB_getNext(idxMacchina, inizioStato);
}
/// <summary>
/// Inserimento record in DDB
/// </summary>
@@ -318,6 +308,17 @@ namespace MP.Data.Services
return answ;
}
/// <summary>
/// Recupera record successivo da DDB
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="inizioStato"></param>
/// <returns></returns>
public DiarioDiBordoModel DDB_getNext(string idxMacchina, DateTime inizioStato)
{
return dbTabController.DDB_getNext(idxMacchina, inizioStato);
}
public void Dispose()
{
// Clear database controller
@@ -820,6 +821,88 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Turno macchina
/// </summary>
/// <returns></returns>
public async Task<TurniMaccModel> TurnoMacchinaGet(string idxMacchina)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
TurniMaccModel? result = new TurniMaccModel();
// cerco in redis...
string currKey = $"{redisBaseKey}:TurniMacc:{idxMacchina}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
//if (!string.IsNullOrEmpty($"{rawData}"))
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<TurniMaccModel>($"{rawData}");
source = "REDIS";
}
else
{
result = await Task.FromResult(dbTabController.TurnoMacchinaGet(idxMacchina));
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, LongCache);
}
if (result == null)
{
result = new TurniMaccModel();
}
sw.Stop();
Log.Debug($"TurnoMacchinaGet | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Elenco turni macchina (all)
/// </summary>
/// <returns></returns>
public async Task<List<TurniMaccModel>> TurnoMacchinaGetAll()
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<TurniMaccModel>? result = new List<TurniMaccModel>();
// cerco in redis...
string currKey = $"{redisBaseKey}:TurniMacc:All";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<TurniMaccModel>>($"{rawData}");
source = "REDIS";
}
else
{
result = await Task.FromResult(dbTabController.TurnoMacchinaGetAll());
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, LongCache);
}
if (result == null)
{
result = new List<TurniMaccModel>();
}
sw.Stop();
Log.Debug($"TurnoMacchinaGetAll | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Toggle stato turno
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="numTurno"></param>
/// <returns></returns>
public bool TurnoMacchinaToggle(string idxMacchina, int numTurno)
{
bool answ=dbTabController.TurnoMacchinaToggle(idxMacchina, numTurno);
FlushCache("TurniMacc").ConfigureAwait(false);
return answ;
}
/// <summary>
/// Intera vista v_MSFD
/// </summary>
@@ -834,7 +917,6 @@ namespace MP.Data.Services
// cerco in redis...
string currKey = $"{redisBaseKey}:MSFD:ALL";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
//if (!string.IsNullOrEmpty($"{rawData}"))
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<VMSFDModel>>($"{rawData}");