portato avanti gestione metodi insert batch
This commit is contained in:
@@ -300,7 +300,7 @@ namespace MP.Data.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Intera tabella relazione master/slave in machine (gestione setup master --> slave)
|
||||
/// Intera tabella state machine ingressi 2 eventi
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<TransizioneIngressiModel> StateMachineIngressi(int idxFam)
|
||||
|
||||
@@ -7,6 +7,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using static MP.Data.Objects.Enums;
|
||||
|
||||
namespace MP.Data.Controllers
|
||||
{
|
||||
@@ -24,6 +25,23 @@ namespace MP.Data.Controllers
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce l'anagrafica EVENTI per intero
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<AnagEventiModel> AnagEventiGetAll()
|
||||
{
|
||||
List<AnagEventiModel> dbResult = new List<AnagEventiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetAnagEventi
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce l'anagrafica EVENTI per intero
|
||||
/// </summary>
|
||||
@@ -44,22 +62,7 @@ namespace MP.Data.Controllers
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// Restituisce l'anagrafica EVENTI per intero
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<AnagEventiModel> AnagEventiGetAll()
|
||||
{
|
||||
List<AnagEventiModel> dbResult = new List<AnagEventiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetAnagEventi
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce l'anagrafica STATI per intero
|
||||
/// </summary>
|
||||
@@ -77,6 +80,98 @@ namespace MP.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma
|
||||
/// --> dtEvent)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina da confermare</param>
|
||||
/// <param name="modoConfProd">0=periodo, 1 = giorno, 2 = turno</param>
|
||||
/// <param name="numPzConfermati">qta pezzi BUONI da confermare</param>
|
||||
/// <param name="numPzScarto">qta pezzi SCARTO da confermare</param>
|
||||
/// <param name="DataOraApp">DataOra in cui registrare approvazione</param>
|
||||
/// <param name="MatrOpr">Matricola operatore</param>
|
||||
/// <returns></returns>
|
||||
public bool ConfermaProdMacchina(string idxMacchina, int modoConfProd, int numPzConfermati, int numPzScarto, DateTime DataOraApp, int MatrOpr)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
var rigaProd = StatoProdMacchina(idxMacchina, DateTime.Now);
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
var MatrApp = new SqlParameter("@MatrApp ", MatrOpr);
|
||||
var DataFrom = new SqlParameter("@dataFrom ", rigaProd.DataFrom);
|
||||
var DataTo = new SqlParameter("@dataTo", DataOraApp);
|
||||
var PezziConf = new SqlParameter("@pezziConf", numPzConfermati);
|
||||
var PezziScar = new SqlParameter("@pezziScar", numPzScarto);
|
||||
var TipoConf = new SqlParameter("@TipoConf", modoConfProd);
|
||||
var DtOraApp = new SqlParameter("@DataOraApp", DataOraApp);
|
||||
var TestConferma = new SqlParameter("@TestConferma", true);
|
||||
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_ConfermaProduzCompleta @idxMacchina, @MatrApp, @dataFrom, @dataTo, @pezziConf, @pezziScar, @TipoConf, @DataOraApp, @TestConferma ", IdxMacchina, MatrApp, DataFrom, DataTo, PezziConf, PezziScar, TipoConf, DtOraApp, TestConferma);
|
||||
|
||||
// indico eseguito!
|
||||
answ = result > 0;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in ConfermaProdMacchina:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma
|
||||
/// --> dtEvent)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina da confermare</param>
|
||||
/// <param name="modoConfProd">0=periodo, 1 = giorno, 2 = turno</param>
|
||||
/// <param name="numPzConfermati">qta pezzi BUONI da confermare</param>
|
||||
/// <param name="numPzLasciati">
|
||||
/// qta pezzi LASCIATI alla macchina da confermare (2 eventi 121 rettifica neg/pos)
|
||||
/// </param>
|
||||
/// <param name="numPzScarto">qta pezzi SCARTO da confermare</param>
|
||||
/// <param name="DataOraApp">DataOra in cui registrare approvazione</param>
|
||||
/// <param name="MatrOpr">Matricola operatore</param>
|
||||
/// <returns></returns>
|
||||
public bool ConfermaProdMacchinaFull(string idxMacchina, int modoConfProd, int numPzConfermati, int numPzLasciati, int numPzScarto, DateTime DataOraApp, int MatrOpr)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
var rigaProd = StatoProdMacchina(idxMacchina, DateTime.Now);
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
var MatrApp = new SqlParameter("@MatrApp ", MatrOpr);
|
||||
var DataFrom = new SqlParameter("@dataFrom ", rigaProd.DataFrom);
|
||||
var DataTo = new SqlParameter("@dataTo", DataOraApp);
|
||||
var PezziConf = new SqlParameter("@pezziConf", numPzConfermati);
|
||||
var PezziLasc = new SqlParameter("@pezziLasciati", numPzLasciati);
|
||||
var PezziScar = new SqlParameter("@pezziScar", numPzScarto);
|
||||
var TipoConf = new SqlParameter("@TipoConf", modoConfProd);
|
||||
var DtOraApp = new SqlParameter("@DataOraApp", DataOraApp);
|
||||
var TestConferma = new SqlParameter("@TestConferma", true);
|
||||
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_ConfermaProduzCompletaFull @idxMacchina, @MatrApp, @dataFrom, @dataTo, @pezziConf, @pezziLasciati, @pezziScar, @TipoConf, @DataOraApp, @TestConferma ", IdxMacchina, MatrApp, DataFrom, DataTo, PezziConf, PezziLasc, PezziScar, TipoConf, DtOraApp, TestConferma);
|
||||
|
||||
// indico eseguito!
|
||||
answ = result > 0;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in ConfermaProdMacchinaFull con rett ev121:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco da tabella Config
|
||||
/// </summary>
|
||||
@@ -100,6 +195,215 @@ namespace MP.Data.Controllers
|
||||
_configuration = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aggiunta record EventList
|
||||
/// </summary>
|
||||
/// <param name="newRec"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> EvListInsert(EventListModel newRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var currRec = dbCtx
|
||||
.DbSetEvList
|
||||
.Add(newRec);
|
||||
await dbCtx.SaveChangesAsync();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante EvListInsert{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
await Task.Delay(1);
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MicroStato macchina (da key)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public MicroStatoMacchinaModel MicroStatoMacchina(string idxMacchina)
|
||||
{
|
||||
MicroStatoMacchinaModel dbResult = new MicroStatoMacchinaModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetMicroStatoMacc
|
||||
.Where(x => x.IdxMacchina == idxMacchina)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stato macchina - tutte
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public List<MicroStatoMacchinaModel> MicroStatoMacchinaGetAll()
|
||||
{
|
||||
List<MicroStatoMacchinaModel> dbResult = new List<MicroStatoMacchinaModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetMicroStatoMacc
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aggiornamento record Microstato macchina
|
||||
/// </summary>
|
||||
/// <param name="newRec"></param>
|
||||
/// <returns></returns>
|
||||
public bool MicroStatoMacchinaUpsert(MicroStatoMacchinaModel newRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var actRec = dbCtx
|
||||
.DbSetMicroStatoMacc
|
||||
.Where(x => x.IdxMacchina == newRec.IdxMacchina)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault();
|
||||
if (actRec == null)
|
||||
{
|
||||
dbCtx
|
||||
.DbSetMicroStatoMacc
|
||||
.Add(newRec);
|
||||
}
|
||||
else
|
||||
{
|
||||
actRec.IdxMicroStato = newRec.IdxMicroStato;
|
||||
actRec.InizioStato = newRec.InizioStato;
|
||||
actRec.Value = newRec.Value;
|
||||
|
||||
dbCtx.Entry(actRec).State = EntityState.Modified;
|
||||
}
|
||||
dbCtx.SaveChanges();
|
||||
fatto = true;
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua ricalcolo MSE x macchina indicata
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina da confermare</param>
|
||||
/// <param name="maxAgeSec">Num massimo secondi di "vecchiaia" del dato</param>
|
||||
/// <returns></returns>
|
||||
public bool RicalcMse(string idxMacchina, int maxAgeSec)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
var rigaProd = StatoProdMacchina(idxMacchina, DateTime.Now);
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var MaxAgeSec = new SqlParameter("@maxAgeSec ", maxAgeSec);
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_MSE_recalc @maxAgeSec, @idxMacchina ", MaxAgeSec, IdxMacchina);
|
||||
|
||||
// indico eseguito!
|
||||
answ = result > 0;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in RicalcMse:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Intera tabella state machine eventi 2 stati
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<TransizioneStatiModel> SMES_GetAll()
|
||||
{
|
||||
List<TransizioneStatiModel> dbResult = new List<TransizioneStatiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetSMES
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tabella state machine eventi 2 stati data famiglia
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<TransizioneStatiModel> SMES_GetByFam(int idxFam)
|
||||
{
|
||||
List<TransizioneStatiModel> dbResult = new List<TransizioneStatiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetSMES
|
||||
.Where(x => x.IdxFamiglia == idxFam)
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tabella state machine eventi 2 stati data macchina e tipo evento
|
||||
/// </summary>
|
||||
/// <param name="idxTipo"></param>
|
||||
/// <returns></returns>
|
||||
public List<TransizioneStatiModel> SMES_getUserForced(string idxMacchina, int idxTipo)
|
||||
{
|
||||
List<TransizioneStatiModel> dbResult = new List<TransizioneStatiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var IdxTipo = new SqlParameter("@IdxTipo", idxTipo);
|
||||
dbResult = dbCtx
|
||||
.DbSetSMES
|
||||
.FromSqlRaw("exec dbo.stp_TS_getUserForcedTrans @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo)
|
||||
.AsNoTracking()
|
||||
.AsEnumerable()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tabella state machine eventi 2 stati data macchina e tipo evento
|
||||
/// </summary>
|
||||
/// <param name="idxTipo"></param>
|
||||
/// <returns></returns>
|
||||
public List<TransizioneStatiModel> SMES_getHwTransitions(string idxMacchina, int idxTipo)
|
||||
{
|
||||
List<TransizioneStatiModel> dbResult = new List<TransizioneStatiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var IdxTipo = new SqlParameter("@IdxTipo", idxTipo);
|
||||
dbResult = dbCtx
|
||||
.DbSetSMES
|
||||
.FromSqlRaw("exec dbo.stp_TS_getByIdxMacchIdxTipoEv @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo)
|
||||
.AsNoTracking()
|
||||
.AsEnumerable()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero Righe (Actual) della scheda tecnica da GRUPPO + ODL
|
||||
/// </summary>
|
||||
@@ -150,6 +454,46 @@ namespace MP.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Intera tabella state machine ingressi 2 eventi data famiglia
|
||||
/// </summary>
|
||||
/// <param name="idxFam"></param>
|
||||
/// <returns></returns>
|
||||
public List<TransizioneIngressiModel> StateMachineIngressi(int idxFam)
|
||||
{
|
||||
List<TransizioneIngressiModel> dbResult = new List<TransizioneIngressiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxFamIn = new SqlParameter("@IdxFamigliaIngresso", idxFam);
|
||||
dbResult = dbCtx
|
||||
.DbSetSMI
|
||||
.FromSqlRaw("exec dbo.stp_TRI_getByIdxFamIng @IdxFamigliaIngresso", IdxFamIn)
|
||||
.AsNoTracking()
|
||||
.AsEnumerable()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stato macchina (da key)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public StatoMacchineModel StatoMacchina(string idxMacchina)
|
||||
{
|
||||
StatoMacchineModel dbResult = new StatoMacchineModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetStatoMacc
|
||||
.Where(x => x.IdxMacchina == idxMacchina)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stato prod macchina (completo)
|
||||
/// </summary>
|
||||
@@ -175,220 +519,115 @@ namespace MP.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stato macchina (da key)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public StatoMacchineModel StatoMacchina(string idxMacchina)
|
||||
{
|
||||
StatoMacchineModel dbResult = new StatoMacchineModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetStatoMacc
|
||||
.Where(x => x.IdxMacchina == idxMacchina)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// MicroStato macchina (da key)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public MicroStatoMacchinaModel MicroStatoMacchina(string idxMacchina)
|
||||
{
|
||||
MicroStatoMacchinaModel dbResult = new MicroStatoMacchinaModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetMicroStatoMacc
|
||||
.Where(x => x.IdxMacchina == idxMacchina)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// Stato macchina - tutte
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public List<MicroStatoMacchinaModel> MicroStatoMacchinaGetAll()
|
||||
{
|
||||
List<MicroStatoMacchinaModel> dbResult = new List<MicroStatoMacchinaModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetMicroStatoMacc
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// Aggiornamento record Microstato macchina
|
||||
/// </summary>
|
||||
/// <param name="newRec"></param>
|
||||
/// <returns></returns>
|
||||
public bool MicroStatoMacchinaUpsert(MicroStatoMacchinaModel newRec)
|
||||
#endregion Public Methods
|
||||
|
||||
public bool DDB_InsStatoBatch(string idxMacchina, DateTime inizioStato, int idxStato, string codArt, string value, int matrOpr, string pallet)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var actRec = dbCtx
|
||||
.DbSetMicroStatoMacc
|
||||
.Where(x => x.IdxMacchina == newRec.IdxMacchina)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault();
|
||||
if(actRec==null)
|
||||
{
|
||||
dbCtx
|
||||
.DbSetMicroStatoMacc
|
||||
.Add(newRec);
|
||||
}
|
||||
else
|
||||
{
|
||||
actRec.IdxMicroStato = newRec.IdxMicroStato;
|
||||
actRec.InizioStato = newRec.InizioStato;
|
||||
actRec.Value = newRec.Value;
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var InizioStato = new SqlParameter("@InizioStato", inizioStato);
|
||||
var IdxStato = new SqlParameter("@IdxStato", idxStato);
|
||||
var CodArticolo = new SqlParameter("@CodArticolo", codArt);
|
||||
var Value = new SqlParameter("@Value", value);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", matrOpr);
|
||||
var Pallet = new SqlParameter("@pallet", pallet);
|
||||
|
||||
dbCtx.Entry(actRec).State = EntityState.Modified;
|
||||
}
|
||||
dbCtx.SaveChanges();
|
||||
fatto = true;
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("exec dbo.stp_DDB_InsStatoBatch @IdxMacchina, @InizioStato, @IdxStato, @CodArticolo, @Value, @MatrOpr, @pallet", IdxMacchina, InizioStato, IdxStato, CodArticolo, Value, MatrOpr, Pallet);
|
||||
|
||||
// indico eseguito!
|
||||
fatto = result > 0;
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma
|
||||
/// --> dtEvent)
|
||||
/// Verifica se sia necessario inserire un cambio di stato impianto in modalità batch
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina da confermare</param>
|
||||
/// <param name="modoConfProd">0=periodo, 1 = giorno, 2 = turno</param>
|
||||
/// <param name="numPzConfermati">qta pezzi BUONI da confermare</param>
|
||||
/// <param name="numPzLasciati">
|
||||
/// qta pezzi LASCIATI alla macchina da confermare (2 eventi 121 rettifica neg/pos)
|
||||
/// </param>
|
||||
/// <param name="numPzScarto">qta pezzi SCARTO da confermare</param>
|
||||
/// <param name="DataOraApp">DataOra in cui registrare approvazione</param>
|
||||
/// <param name="MatrOpr">Matricola operatore</param>
|
||||
/// <returns></returns>
|
||||
public bool ConfermaProdMacchinaFull(string idxMacchina, int modoConfProd, int numPzConfermati, int numPzLasciati, int numPzScarto, DateTime DataOraApp, int MatrOpr)
|
||||
/// <param name="tipoInput"></param>
|
||||
/// <param name="IdxMacchina"></param>
|
||||
/// <param name="InizioStato"></param>
|
||||
/// <param name="IdxTipo"></param>
|
||||
/// <param name="CodArt"></param>
|
||||
/// <param name="Value"></param>
|
||||
/// <param name="MatrOpr"></param>
|
||||
/// <param name="pallet"></param>
|
||||
public void CheckCambiaStatoBatch(tipoInputEvento tipoInput, string IdxMacchina, DateTime InizioStato, int IdxTipo, string CodArt, string Value, int MatrOpr, string pallet)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
List<TransizioneStatiModel> tabTransStati = new List<TransizioneStatiModel>();
|
||||
TransizioneStatiModel rigaTransStati = new TransizioneStatiModel();
|
||||
switch (tipoInput)
|
||||
{
|
||||
var rigaProd = StatoProdMacchina(idxMacchina, DateTime.Now);
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
var MatrApp = new SqlParameter("@MatrApp ", MatrOpr);
|
||||
var DataFrom = new SqlParameter("@dataFrom ", rigaProd.DataFrom);
|
||||
var DataTo = new SqlParameter("@dataTo", DataOraApp);
|
||||
var PezziConf = new SqlParameter("@pezziConf", numPzConfermati);
|
||||
var PezziLasc = new SqlParameter("@pezziLasciati", numPzLasciati);
|
||||
var PezziScar = new SqlParameter("@pezziScar", numPzScarto);
|
||||
var TipoConf = new SqlParameter("@TipoConf", modoConfProd);
|
||||
var DtOraApp = new SqlParameter("@DataOraApp", DataOraApp);
|
||||
var TestConferma = new SqlParameter("@TestConferma", true);
|
||||
case tipoInputEvento.barcode:
|
||||
// effettuo cambio stato INDIPENDENTEMENTE da stato precedente
|
||||
try
|
||||
{
|
||||
tabTransStati = SMES_getUserForced(IdxMacchina, IdxTipo);
|
||||
if (tabTransStati != null)
|
||||
{
|
||||
if (tabTransStati.Count > 0)
|
||||
{
|
||||
rigaTransStati = tabTransStati.FirstOrDefault();
|
||||
// solo se cambia stato...
|
||||
if (rigaTransStati.IdxStato != rigaTransStati.next_IdxStato)
|
||||
{
|
||||
DDB_InsStatoBatch(IdxMacchina, InizioStato, rigaTransStati.next_IdxStato, CodArt, Value, MatrOpr, pallet);
|
||||
// aggiorno MSE
|
||||
RicalcMse(IdxMacchina, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Debug($"Non trovata riga per: BARCODE | IdxMacchina: {IdxMacchina} | IdxTipo: {IdxTipo} | CodArt: {CodArt} | Value: {Value} | MatrOpr: {MatrOpr} | pallet: {pallet}");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
// non dovrebbe succedere... input utente da barcode dovrebbero TUTTI essere
|
||||
// inseriti in tab transizione con famiglia 1...
|
||||
Log.Error($"Eccezione controllo transizione stato x evento barcode: BARCODE | IdxMacchina: {IdxMacchina} | IdxTipo: {IdxTipo} | CodArt: {CodArt} | Value: {Value} | MatrOpr: {MatrOpr} | pallet: {pallet}{Environment.NewLine}{exc}");
|
||||
}
|
||||
break;
|
||||
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_ConfermaProduzCompletaFull @idxMacchina, @MatrApp, @dataFrom, @dataTo, @pezziConf, @pezziLasciati, @pezziScar, @TipoConf, @DataOraApp, @TestConferma ", IdxMacchina, MatrApp, DataFrom, DataTo, PezziConf, PezziLasc, PezziScar, TipoConf, DtOraApp, TestConferma);
|
||||
|
||||
// indico eseguito!
|
||||
answ = result > 0;
|
||||
}
|
||||
case tipoInputEvento.hw:
|
||||
// verifico se ci sia necessità di cambio stato
|
||||
try
|
||||
{
|
||||
tabTransStati = SMES_getHwTransitions(IdxMacchina, IdxTipo);
|
||||
if (tabTransStati != null)
|
||||
{
|
||||
if (tabTransStati.Count > 0)
|
||||
{
|
||||
//rigaTransStati = tabTransStati[0];
|
||||
rigaTransStati = tabTransStati.FirstOrDefault();
|
||||
if (rigaTransStati != null)
|
||||
{
|
||||
// solo se cambia stato...
|
||||
if (rigaTransStati.IdxStato != rigaTransStati.next_IdxStato)
|
||||
{
|
||||
DDB_InsStatoBatch(IdxMacchina, InizioStato, rigaTransStati.next_IdxStato, CodArt, Value, MatrOpr, pallet);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Debug($"Non trovata riga per: HW | IdxMacchina: {IdxMacchina} | IdxTipo: {IdxTipo} | CodArt: {CodArt} | Value: {Value} | MatrOpr: {MatrOpr} | pallet: {pallet}");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
// non trovo riga [0]... NON scrivo!
|
||||
Log.Error($"Errore controllo transizione stato x evento barcode: HW | IdxMacchina: {IdxMacchina} | IdxTipo: {IdxTipo} | CodArt: {CodArt} | Value: {Value} | MatrOpr: {MatrOpr} | pallet: {pallet}{Environment.NewLine}{exc}");
|
||||
}
|
||||
break;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in ConfermaProdMacchinaFull con rett ev121:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma
|
||||
/// --> dtEvent)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina da confermare</param>
|
||||
/// <param name="modoConfProd">0=periodo, 1 = giorno, 2 = turno</param>
|
||||
/// <param name="numPzConfermati">qta pezzi BUONI da confermare</param>
|
||||
/// <param name="numPzScarto">qta pezzi SCARTO da confermare</param>
|
||||
/// <param name="DataOraApp">DataOra in cui registrare approvazione</param>
|
||||
/// <param name="MatrOpr">Matricola operatore</param>
|
||||
/// <returns></returns>
|
||||
public bool ConfermaProdMacchina(string idxMacchina, int modoConfProd, int numPzConfermati, int numPzScarto, DateTime DataOraApp, int MatrOpr)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
var rigaProd = StatoProdMacchina(idxMacchina, DateTime.Now);
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
var MatrApp = new SqlParameter("@MatrApp ", MatrOpr);
|
||||
var DataFrom = new SqlParameter("@dataFrom ", rigaProd.DataFrom);
|
||||
var DataTo = new SqlParameter("@dataTo", DataOraApp);
|
||||
var PezziConf = new SqlParameter("@pezziConf", numPzConfermati);
|
||||
var PezziScar = new SqlParameter("@pezziScar", numPzScarto);
|
||||
var TipoConf = new SqlParameter("@TipoConf", modoConfProd);
|
||||
var DtOraApp = new SqlParameter("@DataOraApp", DataOraApp);
|
||||
var TestConferma = new SqlParameter("@TestConferma", true);
|
||||
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_ConfermaProduzCompleta @idxMacchina, @MatrApp, @dataFrom, @dataTo, @pezziConf, @pezziScar, @TipoConf, @DataOraApp, @TestConferma ", IdxMacchina, MatrApp, DataFrom, DataTo, PezziConf, PezziScar, TipoConf, DtOraApp, TestConferma);
|
||||
|
||||
// indico eseguito!
|
||||
answ = result > 0;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in ConfermaProdMacchina:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua ricalcolo MSE x macchina indicata
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina da confermare</param>
|
||||
/// <param name="maxAgeSec">Num massimo secondi di "vecchiaia" del dato</param>
|
||||
/// <returns></returns>
|
||||
public bool RicalcMse(string idxMacchina, int maxAgeSec)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
var rigaProd = StatoProdMacchina(idxMacchina, DateTime.Now);
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var MaxAgeSec = new SqlParameter("@maxAgeSec ", maxAgeSec);
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_MSE_recalc @maxAgeSec, @idxMacchina ", MaxAgeSec, IdxMacchina);
|
||||
|
||||
// indico eseguito!
|
||||
answ = result > 0;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in RicalcMse:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private static IConfiguration _configuration;
|
||||
|
||||
Reference in New Issue
Block a user