MP-IO
- aggiunta metodo salvataggio HASH table x MachineIobConf - bozza x gestire dati opzionali IOB+Macchina - typo fix vary
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using MapoDb;
|
||||
using MapoSDK;
|
||||
using Newtonsoft.Json;
|
||||
using StackExchange.Redis;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -134,7 +135,7 @@ namespace MP_IO.Controllers
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -426,7 +427,8 @@ namespace MP_IO.Controllers
|
||||
|
||||
/// <summary>
|
||||
/// Sistema ODL giornalieri x impianto indicato, andando a generare 1 ODL giornaliero x ogni
|
||||
/// giornata dall'ultimo ODL aperto alla data corrente + conferma pezzi (es TFT x ODL giornalieri energia)
|
||||
/// giornata dall'ultimo ODL aperto alla data corrente + conferma pezzi (es TFT x ODL
|
||||
/// giornalieri energia)
|
||||
/// es: http://url_site/MP/IO/IOB/fixDailyOdlConfPzCount/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
@@ -607,6 +609,21 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary> Creazione nuovo ODL dato CodArt + numPz
|
||||
/// GET: IOB/forceCreatePOdl/SIMUL_03?CodArt=ABCD_1234&numPz=5 </summary> <param
|
||||
/// name="id"></param> <param name="CodArt"></param> <param name="CodGruppo"></param> <param
|
||||
/// name="numPz"></param> <returns>IdxODL creato</returns>
|
||||
public int forceCreatePOdl(string id, string CodArt, string CodGruppo, int numPz)
|
||||
{
|
||||
int answ = 0;
|
||||
// attenzione! poiché nell'URL il carattere "#" viene filtrato ci aspettiamo il
|
||||
// carattere "|" che poi trasformiamo ora in "#"
|
||||
id = id.Replace("|", "#");
|
||||
DataLayer DataLayerObj = new DataLayer();
|
||||
answ = DataLayerObj.ForceCreatePOdl(id, CodArt, numPz, CodGruppo);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Chiude ODL precedente ed avvia uno nuovo (duplicandolo e sitemando quantità RIMANENTE),
|
||||
/// e CONFERMA produzione...
|
||||
@@ -630,9 +647,12 @@ namespace MP_IO.Controllers
|
||||
///
|
||||
/// GET: IOB/forceSplitOdl/SIMUL_03?doConfirm=true&qtyFromLast=true&roundStep=150&extOrderCode=ABCDE1234
|
||||
///
|
||||
/// </summary> <param name="id">id impianto</param> <param name="doConfirm"></param> <param
|
||||
/// name="qtyFromLast"></param> <param name="roundStep"></param> <param
|
||||
/// name="keyRichiesta">Cod esterno da legare all'ODL x tracciare lotti prod</param>
|
||||
/// </summary>
|
||||
/// <param name="id">id impianto</param>
|
||||
/// <param name="doConfirm"></param>
|
||||
/// <param name="qtyFromLast"></param>
|
||||
/// <param name="roundStep"></param>
|
||||
/// <param name="keyRichiesta">Cod esterno da legare all'ODL x tracciare lotti prod</param>
|
||||
/// <returns>Esito chiamata (OK/vuoto)</returns>
|
||||
public string forceSplitOdlFull(string id, bool doConfirm, bool qtyFromLast, int? roundStep, string keyRichiesta = "")
|
||||
{
|
||||
@@ -670,26 +690,6 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creazione nuovo ODL dato CodArt + numPz
|
||||
/// GET: IOB/forceCreatePOdl/SIMUL_03?CodArt=ABCD_1234&numPz=5
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="CodArt"></param>
|
||||
/// <param name="CodGruppo"></param>
|
||||
/// <param name="numPz"></param>
|
||||
/// <returns>IdxODL creato</returns>
|
||||
public int forceCreatePOdl(string id, string CodArt, string CodGruppo, int numPz)
|
||||
{
|
||||
int answ = 0;
|
||||
// attenzione! poiché nell'URL il carattere "#" viene filtrato ci aspettiamo il
|
||||
// carattere "|" che poi trasformiamo ora in "#"
|
||||
id = id.Replace("|", "#");
|
||||
DataLayer DataLayerObj = new DataLayer();
|
||||
answ = DataLayerObj.ForceCreatePOdl(id, CodArt, numPz, CodGruppo);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera elenco articoli dei PODL correnti:
|
||||
///
|
||||
@@ -837,32 +837,6 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce intera riga dell'odl correntemente in lavorazione sulla macchina...
|
||||
/// GET: IOB/getCurrOdlRow/SIMUL_01
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public string getCurrOdlRow(string id)
|
||||
{
|
||||
// attenzione! poiché nell'URL il carattere "#" viene filtrato ci aspettiamo il
|
||||
// carattere "|" che poi trasformiamo ora in "#"
|
||||
id = id.Replace("|", "#");
|
||||
string answ = "";
|
||||
DS_ProdTempi.ODLDataTable currData = null;
|
||||
// chiamo metodo redis/db...
|
||||
try
|
||||
{
|
||||
DataLayer DataLayerObj = new DataLayer();
|
||||
currData = DataLayerObj.currODLRowTab(id);
|
||||
answ = JsonConvert.SerializeObject(currData);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Eccezione in getCurrOdlRow{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Restituisce la quantità pezzi dell'odl correntemente in lavorazione sulla macchina...
|
||||
/// GET: IOB/getCurrOdlQtaReq/SIMUL_01
|
||||
@@ -893,6 +867,33 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce intera riga dell'odl correntemente in lavorazione sulla macchina...
|
||||
/// GET: IOB/getCurrOdlRow/SIMUL_01
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public string getCurrOdlRow(string id)
|
||||
{
|
||||
// attenzione! poiché nell'URL il carattere "#" viene filtrato ci aspettiamo il
|
||||
// carattere "|" che poi trasformiamo ora in "#"
|
||||
id = id.Replace("|", "#");
|
||||
string answ = "";
|
||||
DS_ProdTempi.ODLDataTable currData = null;
|
||||
// chiamo metodo redis/db...
|
||||
try
|
||||
{
|
||||
DataLayer DataLayerObj = new DataLayer();
|
||||
currData = DataLayerObj.currODLRowTab(id);
|
||||
answ = JsonConvert.SerializeObject(currData);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Eccezione in getCurrOdlRow{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce data-ora inizio dell'odl correntemente in lavorazione sulla macchina...
|
||||
/// es: http://url_site/MP/IO/IOB/getCurrOdlStart/SIMUL_03
|
||||
@@ -1147,7 +1148,7 @@ namespace MP_IO.Controllers
|
||||
///
|
||||
/// GET: IOB/getLastDossArt/cod_articolo
|
||||
/// </summary>
|
||||
/// <param name="id">codice articolo, se vuoto --> non fa nulla</param>
|
||||
/// <param name="id">codice articolo, se vuoto --> non fa nulla</param>
|
||||
/// <returns>Json contenente lista oggetti DOSSIER serializzati</returns>
|
||||
public string getLastDossByMacc(string id)
|
||||
{
|
||||
@@ -1862,6 +1863,55 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio di una Dictionary HashList da salvare in redis
|
||||
/// POST: IOB/saveMachineIobConf/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public string saveMachineIobConf(string id)
|
||||
{
|
||||
string answ = "";
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
answ = "Missing IOB";
|
||||
}
|
||||
else
|
||||
{
|
||||
// questa classe è derivata da Controller.Response... x cui recupero lo stream in
|
||||
// altro modo...
|
||||
string content = "";
|
||||
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
|
||||
using (var reader = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8, true, 4096, true))
|
||||
{
|
||||
content = reader.ReadToEnd();
|
||||
}
|
||||
//Rest
|
||||
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
|
||||
// procedo a deserializzare in blocco l'oggetto dictionary...
|
||||
Dictionary<string, string> currDict = new Dictionary<string, string>();
|
||||
try
|
||||
{
|
||||
// deserializzo.
|
||||
currDict = JsonConvert.DeserializeObject<Dictionary<string, string>>(content);
|
||||
string keyHashDict = DataLayer.hMachineIobConf(id);
|
||||
// se != null --> salvo!
|
||||
if (currDict != null)
|
||||
{
|
||||
bool fatto = memLayer.ML.redSaveHashDict(keyHashDict, currDict);
|
||||
answ = fatto ? "OK" : "KO";
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in saveMachineIobConf{Environment.NewLine}{exc}");
|
||||
answ = "EXC";
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SALVA in blocco un incremento pezzi x macchina restituendo il valore appena inviato o,
|
||||
/// se mancasse chaive redis, del valore da DB
|
||||
@@ -2164,7 +2214,7 @@ namespace MP_IO.Controllers
|
||||
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio di una Dictionary HashList da salvare in redis
|
||||
/// POST: IOB/setObjItems/SIMUL_03
|
||||
/// POST: IOB/setRedisHashDict/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
/// <returns></returns>
|
||||
|
||||
+20
-4
@@ -379,15 +379,31 @@ namespace MapoDb
|
||||
return mHash($"PODLRow:{idxPODL}");
|
||||
}
|
||||
|
||||
/// <summary> Hash dati relativi all'associazione macchina <--> IOB </summary> <param
|
||||
/// name="IdxMacchina">Macchina PRINCIPALE</param> <returns></returns>
|
||||
/// <summary>
|
||||
/// Hash dati relativi all'associazione macchina <--> IOB
|
||||
/// </summary>
|
||||
/// <param name="IdxMacchina">Macchina</param>
|
||||
/// <returns></returns>
|
||||
public static string hIobDict(string IdxMacchina)
|
||||
{
|
||||
return mHash($"IOB:{IdxMacchina}:CurrInfo");
|
||||
}
|
||||
|
||||
/// <summary> Hash dati relativi all'associazione macchina <--> IOB </summary> <param
|
||||
/// name="IdxMacchina">Macchina PRINCIPALE</param> <returns></returns>
|
||||
/// <summary>
|
||||
/// Hash dati relativi a macchina + IOB + conf speciali
|
||||
/// </summary>
|
||||
/// <param name="IdxMacchina">Macchina</param>
|
||||
/// <returns></returns>
|
||||
public static string hMachineIobConf(string IdxMacchina)
|
||||
{
|
||||
return mHash($"IOB:{IdxMacchina}:MachIobConf");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hash dati relativi all'associazione macchina <--> IOB
|
||||
/// </summary>
|
||||
/// <param name="IdxMacchina">Macchina PRINCIPALE</param>
|
||||
/// <returns></returns>
|
||||
public static string hM2IOB(string IdxMacchina)
|
||||
{
|
||||
return mHash(string.Format("hM2IOB:{0}", IdxMacchina));
|
||||
|
||||
@@ -6,14 +6,14 @@ using System.Collections.Generic;
|
||||
namespace MapoDb
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe gestione archivio modelli MTC dei vari IOB
|
||||
/// Classe gestione archivio modelli MTC in MongoDB
|
||||
/// </summary>
|
||||
public class MtcDataModelArchive
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
/// <summary>
|
||||
/// Singleton gestione istanza AlarmsManager
|
||||
/// Singleton gestione istanza condivisa
|
||||
/// </summary>
|
||||
public static MtcDataModelArchive man = new MtcDataModelArchive();
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace MapoDb
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Classe gestione archivio allarmi
|
||||
/// init classe x connessione MongoDB
|
||||
/// </summary>
|
||||
public MtcDataModelArchive()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user