Fix e test conferma fermate riqualificate
This commit is contained in:
@@ -88,12 +88,24 @@ namespace MP_TAB_SERV.Components
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
public void doCancel()
|
||||
protected void doCancel()
|
||||
{
|
||||
DoReset();
|
||||
}
|
||||
|
||||
public async Task doSave()
|
||||
/// <summary>
|
||||
/// Forza salvataggio impostando data-ora
|
||||
/// </summary>
|
||||
/// <param name="dtRif"></param>
|
||||
/// <returns></returns>
|
||||
public async Task ForceSave(DateTime dtRif)
|
||||
{
|
||||
DateSel = dtRif;
|
||||
// ora salvo
|
||||
await doSave();
|
||||
}
|
||||
|
||||
protected async Task doSave()
|
||||
{
|
||||
// registro evento
|
||||
EventListModel newRec = new EventListModel()
|
||||
@@ -142,7 +154,7 @@ namespace MP_TAB_SERV.Components
|
||||
/// Determina se insert sia Realtime o batch con DataOra (in base a diff tra DataOra
|
||||
/// selezionata e realtime, se superiore ad X minuti NON � realtime)
|
||||
/// </summary>
|
||||
public bool insRealtime
|
||||
protected bool insRealtime
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>6.16.2310.1016</Version>
|
||||
<Version>6.16.2310.1018</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP_TAB_SERV</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -3,6 +3,7 @@ using MP.Data;
|
||||
using MP.Data.DatabaseModels;
|
||||
using MP.Data.Services;
|
||||
using MP_TAB_SERV.Components;
|
||||
using NLog;
|
||||
|
||||
namespace MP_TAB_SERV.Pages
|
||||
{
|
||||
@@ -11,6 +12,10 @@ namespace MP_TAB_SERV.Pages
|
||||
#region Protected Fields
|
||||
|
||||
protected int dltMinRealtime = 1;
|
||||
protected int minAnticipoRicalcolo = 1;
|
||||
protected bool rdm_ChkOnly = false;
|
||||
protected int rdm_nEvCheck = 1;
|
||||
protected int rdm_nEvStep = 1;
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
@@ -103,74 +108,75 @@ namespace MP_TAB_SERV.Pages
|
||||
}
|
||||
else
|
||||
{
|
||||
// chiamo registrazione commento...
|
||||
if (noteEdit != null)
|
||||
{
|
||||
await noteEdit.doSave();
|
||||
}
|
||||
|
||||
#if false
|
||||
// in primis disabilito insert...
|
||||
DataLayerObj.taStatoMacchine.setInsEnabled(idxMacchina, false);
|
||||
TabServ.MacchinaSetInsEnab(IdxMacc, false);
|
||||
|
||||
// calcolo evento
|
||||
string evento = IdxEv.ToString();
|
||||
string evento = $"{IdxEv}";
|
||||
string commento = "";
|
||||
try
|
||||
{
|
||||
evento = DataLayerObj.taAnagEventi.GetByIdx(IdxEv)[0].Nome.Replace("Barcode - ", "");
|
||||
evento = rigaEvento.Nome.Replace("Barcode - ", "");
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
// genero stringa pseudo-univoca
|
||||
string codRich = string.Format("{0:yyMMddHHmmss}-{1}", DateTime.Now, IdxEv);
|
||||
string codRich = $"{DateTime.Now:yyMMddHHmmss}-{IdxEv}";
|
||||
// x prima cosa scrivo un evento tipo "1" x chiudere la durata appena prima
|
||||
// dell'evento successivo
|
||||
try
|
||||
{
|
||||
// cerco da 1 sec DOPO evento...
|
||||
DS_applicazione.DiarioDiBordoDataTable tabNext = controllerMapo.nextEventoImpiantoFrom(idxMacchina, dataOraEv.AddSeconds(1));
|
||||
var tabNext = TabServ.DDB_getNext(IdxMacc, DtRif.AddSeconds(1));
|
||||
|
||||
DateTime nextEvDT = tabNext != null ? tabNext.InizioStato : DateTime.Now.AddMinutes(-1);
|
||||
|
||||
DateTime nextEvDT = DateTime.Now;
|
||||
if (tabNext.Rows.Count > 0)
|
||||
{
|
||||
nextEvDT = tabNext[0].InizioStato;
|
||||
}
|
||||
// se non trovo chiusura evento inserisco a 1 minuto prima di adesso la chiusura...
|
||||
else
|
||||
{
|
||||
nextEvDT = DateTime.Now.AddMinutes(-1);
|
||||
}
|
||||
// fix salvo la dichiarazione di chiusura
|
||||
commento = string.Format("999 - M.Lav EndEvt: {0} [{1}]", evento, codRich);
|
||||
DataLayerObj.scriviRigaEventoBarcode(idxMacchina, 1, rigaStato.CodArticolo, commento, DataLayerObj.MatrOpr, rigaStato.pallet, nextEvDT.AddSeconds(-1), DateTime.Now); // 1 hard-coded x resettare
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
// update commento!
|
||||
commento = string.Format("999 - Dich StartEvt: {0} [{1}]", evento, codRich);
|
||||
// recupero data/ora evento da inserire (quella selezionata) ed AGGIUNGO 1
|
||||
// sec!!! cos� rimane traccia
|
||||
DataLayerObj.scriviRigaEventoBarcode(idxMacchina, IdxEv, rigaStato.CodArticolo, commento, DataLayerObj.MatrOpr, rigaStato.pallet, dataOraEv.AddSeconds(1), DateTime.Now);
|
||||
// eseguo ricalcolo!
|
||||
DateTime startRicalcolo = dataOraEv.AddMinutes(memLayer.ML.CRI("minAnticipoRicalcolo"));
|
||||
commento = $"999 - M.Lav EndEvt: {evento} [{codRich}]";
|
||||
// 1 hard-coded x resettare
|
||||
EventListModel newRec = new EventListModel()
|
||||
{
|
||||
IdxMacchina = IdxMacc,
|
||||
InizioStato = nextEvDT.AddSeconds(-1),
|
||||
IdxTipo = 1,
|
||||
CodArticolo = rigaStato.CodArticolo,
|
||||
Value = commento,
|
||||
MatrOpr = MatrOpr,
|
||||
pallet = rigaStato.pallet
|
||||
};
|
||||
await TabServ.EvListInsert(newRec, MP.Data.Objects.Enums.tipoInputEvento.barcode);
|
||||
|
||||
// update commento apertura!
|
||||
commento = $"999 - Dich StartEvt: {evento} [{codRich}]";
|
||||
newRec = new EventListModel()
|
||||
{
|
||||
IdxMacchina = IdxMacc,
|
||||
InizioStato = DtRif.AddSeconds(1),
|
||||
IdxTipo = IdxEv,
|
||||
CodArticolo = rigaStato.CodArticolo,
|
||||
Value = commento,
|
||||
MatrOpr = MatrOpr,
|
||||
pallet = rigaStato.pallet
|
||||
};
|
||||
await TabServ.EvListInsert(newRec, MP.Data.Objects.Enums.tipoInputEvento.barcode);
|
||||
// eseguo ricalcolo!
|
||||
DateTime startRicalcolo = DtRif.AddMinutes(minAnticipoRicalcolo);
|
||||
// eseguo ricalcolo periodo..
|
||||
TabServ.DDB_DoRecalc(IdxMacc, startRicalcolo, 1, rdm_nEvStep, rdm_nEvCheck, rdm_ChkOnly);
|
||||
// chiamo registrazione commento...
|
||||
if (noteEdit != null)
|
||||
{
|
||||
await noteEdit.ForceSave(DtRif.AddSeconds(5));
|
||||
DtRif = DateTime.Now;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in fase di riqualifica fermi{Environment.NewLine}{exc}");
|
||||
}
|
||||
|
||||
// leggo parametri x esecuzione...
|
||||
int rdm_nEvStep = memLayer.ML.CRI("rdm_nEvStep");
|
||||
int rdm_nEvCheck = memLayer.ML.CRI("rdm_nEvCheck");
|
||||
bool rdm_ChkOnly = memLayer.ML.CRB("rdm_ChkOnly");
|
||||
DataLayerObj.taComm.stp_ricalcolaDatiMacchinaFromDate(idxMacchina, startRicalcolo, 1, rdm_nEvStep, rdm_nEvCheck, rdm_ChkOnly); // nella stored imposto macchina OFFline e poi ONline, parto da "minAnticipoRicalcolo" minuti prima...
|
||||
// aggiorno
|
||||
// data
|
||||
// evento
|
||||
// x
|
||||
// insert
|
||||
// eventuale
|
||||
// commento
|
||||
// (5 sec...)
|
||||
dataOraEv = dataOraEv.AddSeconds(5);
|
||||
// riabilito insert... anche se non dovrebbe servire x stored ricalcolo precedente...
|
||||
DataLayerObj.taStatoMacchine.setInsEnabled(idxMacchina, true);
|
||||
#endif
|
||||
TabServ.MacchinaSetInsEnab(IdxMacc, true);
|
||||
}
|
||||
// mostro esito
|
||||
alertCss = "alert-succes";
|
||||
@@ -198,6 +204,10 @@ namespace MP_TAB_SERV.Pages
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
dltMinRealtime = SMServ.GetConfInt("dltMinRealtime");
|
||||
minAnticipoRicalcolo = SMServ.GetConfInt("minAnticipoRicalcolo");
|
||||
rdm_nEvStep = SMServ.GetConfInt("rdm_nEvStep");
|
||||
rdm_nEvCheck = SMServ.GetConfInt("rdm_nEvCheck");
|
||||
rdm_ChkOnly = SMServ.GetConfBool("rdm_ChkOnly");
|
||||
// leggo gli altri dati
|
||||
await ReloadData();
|
||||
}
|
||||
@@ -209,6 +219,12 @@ namespace MP_TAB_SERV.Pages
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private static Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
|
||||
private int MatrOpr
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 6.16.2310.1016</h4>
|
||||
<h4>Versione: 6.16.2310.1018</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2310.1016
|
||||
6.16.2310.1018
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2310.1016</version>
|
||||
<version>6.16.2310.1018</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>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using MP.Data.DatabaseModels;
|
||||
using MP.Data.DTO;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -299,6 +298,39 @@ namespace MP.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <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)
|
||||
{
|
||||
DiarioDiBordoModel dbResult = new DiarioDiBordoModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var DataRif = new SqlParameter("@dataRif", inizioStato);
|
||||
|
||||
dbResult = dbCtx
|
||||
.DbSetDDB
|
||||
.FromSqlRaw("exec dbo.stp_DDB_getNextByMacchinaFrom @IdxMacchina, @dataRif", IdxMacchina, DataRif)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// Inserimento record in DDB
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="inizioStato"></param>
|
||||
/// <param name="idxStato"></param>
|
||||
/// <param name="codArt"></param>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="matrOpr"></param>
|
||||
/// <param name="pallet"></param>
|
||||
/// <returns></returns>
|
||||
public bool DDB_InsStatoBatch(string idxMacchina, DateTime inizioStato, int idxStato, string codArt, string value, int matrOpr, string pallet)
|
||||
{
|
||||
bool fatto = false;
|
||||
@@ -322,6 +354,40 @@ 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()
|
||||
{
|
||||
_configuration = null;
|
||||
@@ -336,7 +402,6 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public bool EvListDelete(string idxMacchina, DateTime dtEvento, int idxTipo)
|
||||
{
|
||||
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
@@ -438,6 +503,31 @@ namespace MP.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Imposto abilitazione insert eventi macchina (x fermare/avviare dati da IOB)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">Idx macchina, "*" = tutte</param>
|
||||
/// <param name="insEnabled">Abilitazione insert ev macchina</param>
|
||||
/// <returns></returns>
|
||||
public bool MacchinaSetInsEnab(string idxMacchina, bool insEnabled)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
var InsEnabled = new SqlParameter("@insEnabled", insEnabled);
|
||||
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("exec dbo.stp_STM_setInsEnabled @idxMacchina, @insEnabled", IdxMacchina, InsEnabled);
|
||||
// indico eseguito!
|
||||
fatto = result > 0;
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
//stp_STM_setInsEnabled
|
||||
|
||||
/// <summary>
|
||||
/// MicroStato macchina (da key)
|
||||
/// </summary>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using MP.Data.DatabaseModels;
|
||||
using MP.Data.DTO;
|
||||
using MP.Data.Objects;
|
||||
using Newtonsoft.Json;
|
||||
using NLog;
|
||||
@@ -292,6 +291,31 @@ 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>
|
||||
/// <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)
|
||||
{
|
||||
return dbTabController.DDB_DoRecalc(idxMacchina, inizio, idxStatoStart, nStepEventi, nRecCheck, checkOnly);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// Clear database controller
|
||||
@@ -496,6 +520,18 @@ namespace MP.Data.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua ricalcolo MSE x macchina indicata
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina da confermare</param>
|
||||
/// <param name="insEnabled">Abilitazione insert ev macchina</param>
|
||||
/// <returns></returns>
|
||||
public bool MacchinaSetInsEnab(string idxMacchina, bool insEnabled)
|
||||
{
|
||||
bool answ = dbTabController.MacchinaSetInsEnab(idxMacchina, insEnabled);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resetta (rileggendo) i dati della macchina
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user