Aggiornamento modifiche x chiudere ODL e creare nuovo

This commit is contained in:
Samuele Locatelli
2022-10-18 08:41:12 +02:00
parent b2e9ae76d4
commit 77e7e39985
9 changed files with 427 additions and 311 deletions
+99 -100
View File
@@ -3,8 +3,6 @@ using Microsoft.JSInterop;
using MP.Data.DatabaseModels;
using MP.SPEC.Data;
using MP.SPEC.Services;
using System.Reflection.PortableExecutable;
using System.Text;
namespace MP.SPEC.Components
{
@@ -86,83 +84,6 @@ namespace MP.SPEC.Components
await RecordSel.InvokeAsync(newRec);
}
protected async Task startOdl(PODLModel selRec)
{
if (selRec != null)
{
int idxEvento = 0;
string evMess = "";
// verifico ancora NON ci sia ODL corrente/aperto
if (canStartOdl(selRec.IdxMacchina))
{
await callStartSetup(selRec.IdxMacchina);
await Task.Delay(1);
// chiamo stored stp_ODL_inizioSetupPromessa e recupero ODL corrente
var newOdl = await MDService.POdlDoSetup(selRec);
if (newOdl != null)
{
// registro evento...
idxEvento = 2;
evMess = $"Registrata inizio produzione | PODL {selRec.IdxPromessa} | ODL {newOdl.IdxOdl}";
processaEvento(selRec.IdxMacchina, idxEvento, evMess, newOdl.IdxOdl);
//aspetto 1 sec
// idxEv = 1
//// processo chiusura setup
//string evText = "Registrata inizio produzione per ODL {0}";
//StringBuilder sb = new StringBuilder();
//sb.AppendLine(String.Format(evText, idxODLStart));
//processaEvento(idxMacchinaFix, idxEvento, sb.ToString(), idxODLStart);
// richiedo refresh su IOB-WIN:
// DataLayerObj.addTask4Machine(machine.IdxMacchinaSlave, taskType.setParameter, "ForceUpdate");
await callForceUpdate(selRec.IdxMacchina);
await Task.Delay(1);
await callForceUpdate(selRec.IdxMacchina);
await Task.Delay(1);
await callSyncDb(selRec.IdxMacchina);
await Task.Delay(1);
}
}
}
}
/// <summary>
/// processa evento richiesto
/// </summary>
/// <param name="idxMacc"></param>
/// <param name="idxEvento"></param>
/// <param name="userMsg"></param>
/// <param name="idxODL"></param>
private void processaEvento(string idxMacc, int idxEvento, string userMsg, int idxODL)
{
// scrivo evento scriviRigaEventoBarcode
// fixme todo !!! FARE
}
/// <summary>
/// verifica se sia avviabile ODL x macchina
/// </summary>
/// <param name="idxMacchina"></param>
/// <returns></returns>
private bool canStartOdl(string idxMacchina)
{
// fare!!!
bool answ = idxMacchina.Contains("BAG");
return answ;
}
/// <summary>
/// Eliminazione record selezionato (previa conferma)
/// </summary>
@@ -221,6 +142,46 @@ namespace MP.SPEC.Components
await RecordSel.InvokeAsync(selRec);
}
protected async Task startOdl(PODLModel selRec)
{
if (selRec != null)
{
int idxEvento = 0;
string evMess = "";
// verifico ancora NON ci sia ODL corrente/aperto
if (canStartOdl(selRec.IdxMacchina))
{
await callStartSetup(selRec.IdxMacchina);
await Task.Delay(1);
// chiamo stored stp_ODL_inizioSetupPromessa e recupero ODL corrente
var newOdl = await MDService.POdlDoSetup(selRec);
if (newOdl != null)
{
// registro evento...
idxEvento = 2;
evMess = $"Inizio Setup | PODL {selRec.IdxPromessa}";
processaEvento(selRec.IdxMacchina, idxEvento, evMess, newOdl.IdxOdl, newOdl.CodArticolo);
// aspetto 1 sec
await Task.Delay(1000);
// registro inizio produzione
idxEvento = 2;
evMess = $"Registrata inizio Produzione | PODL {selRec.IdxPromessa} | ODL {newOdl.IdxOdl} | ART {newOdl.CodArticolo}";
processaEvento(selRec.IdxMacchina, idxEvento, evMess, newOdl.IdxOdl, newOdl.CodArticolo);
// chiamo task x IOB
await callForceUpdate(selRec.IdxMacchina);
await Task.Delay(1);
await callForceUpdate(selRec.IdxMacchina);
await Task.Delay(1);
await callSyncDb(selRec.IdxMacchina);
await Task.Delay(1);
}
}
}
}
protected async Task UpdateData()
{
currRecord = null;
@@ -274,7 +235,6 @@ namespace MP.SPEC.Components
#region Private Methods
/// <summary>
/// Chiama metodo x chiedere sync DB
/// </summary>
@@ -287,26 +247,6 @@ namespace MP.SPEC.Components
var response = await MpIoApiCall.callMpIoUrlGet(restUrl);
}
/// <summary>
/// Chiama metodo x chiedere sync DB
/// </summary>
/// <param name="IdxMacc"></param>
/// <returns></returns>
private async Task callSyncDb(string IdxMacc)
{
// chiamo aggiunta task SyncDb...
await addTask2Exe(IdxMacc, "syncDbData", "");
#if false
string idxMacc = selRec.IdxMacchina;
string restUrl = $"IOB/addTask2Exe/{idxMacc}?taskName=syncDbData&taskVal=";
var response = await MpIoApiCall.callMpIoUrlGet(restUrl);
#endif
}
/// <summary>
/// Chiama metodo x chiedere force Update
/// </summary>
@@ -329,6 +269,34 @@ namespace MP.SPEC.Components
await addTask2Exe(IdxMacc, "startSetup", $"SPEC|TS:{DateTime.Now:yyMMddHHmmss}");
}
/// <summary>
/// Chiama metodo x chiedere sync DB
/// </summary>
/// <param name="IdxMacc"></param>
/// <returns></returns>
private async Task callSyncDb(string IdxMacc)
{
// chiamo aggiunta task SyncDb...
await addTask2Exe(IdxMacc, "syncDbData", "");
#if false
string idxMacc = selRec.IdxMacchina;
string restUrl = $"IOB/addTask2Exe/{idxMacc}?taskName=syncDbData&taskVal=";
var response = await MpIoApiCall.callMpIoUrlGet(restUrl);
#endif
}
/// <summary>
/// verifica se sia avviabile ODL x macchina
/// </summary>
/// <param name="idxMacchina"></param>
/// <returns></returns>
private bool canStartOdl(string idxMacchina)
{
// fare!!!
bool answ = idxMacchina.Contains("BAG");
return answ;
}
private async void MessageService_EA_PageUpdated()
{
await reloadData();
@@ -345,6 +313,37 @@ namespace MP.SPEC.Components
});
}
/// <summary>
/// processa evento richiesto
/// </summary>
/// <param name="idxMacc"></param>
/// <param name="idxEvento"></param>
/// <param name="userMsg"></param>
/// <param name="idxODL"></param>
private async void processaEvento(string idxMacc, int idxEvento, string userMsg, int idxODL, string codArticolo)
{
// se manca codart calcolo...
if (string.IsNullOrEmpty(codArticolo))
{
var currOdl = await MDService.OdlGetByKey(idxODL);
codArticolo = currOdl.CodArticolo;
}
// scrivo evento scriviRigaEventoBarcode
EventListModel newRec = new EventListModel()
{
IdxMacchina = idxMacc,
InizioStato = DateTime.Now,
IdxTipo = idxEvento,
CodArticolo = codArticolo,
MatrOpr = 0,
pallet = "",
Value = userMsg
};
await MDService.EvListInsert(newRec);
}
private async Task reloadData()
{
isLoading = true;
+31 -10
View File
@@ -440,6 +440,16 @@ namespace MP.SPEC.Data
return Task.FromResult(dbController.ElencoLink());
}
/// <summary>
/// Aggiunta record EventList
/// </summary>
/// <param name="newRec"></param>
/// <returns></returns>
public async Task<bool> EvListInsert(EventListModel newRec)
{
return await dbController.EvListInsert(newRec);
}
public async Task<bool> FlushRedisCache()
{
await Task.Delay(1);
@@ -643,6 +653,17 @@ namespace MP.SPEC.Data
return fatto;
}
/// <summary>
/// Record ODL da chaive
/// </summary>
/// <returns></returns>
public async Task<ODLModel> OdlGetByKey(int IdxOdl)
{
await Task.Delay(1);
var dbResult = dbController.OdlGetByKey(IdxOdl);
return dbResult;
}
/// <summary>
/// Elenco di tutti i parametri filtrati x macchina
/// </summary>
@@ -689,6 +710,16 @@ namespace MP.SPEC.Data
return await dbController.PODLDeleteRecord(currRec);
}
/// <summary>
/// Avvio fase setup per il record selezionato
/// </summary>
/// <param name="currRec"></param>
/// <returns></returns>
public async Task<ODLModel> POdlDoSetup(PODLModel currRec)
{
return await dbController.PODL_startSetup(currRec, 0, 1, 1, "");
}
/// <summary>
/// Aggiornamento record selezionato
/// </summary>
@@ -699,16 +730,6 @@ namespace MP.SPEC.Data
return await dbController.PODLUpdateRecord(currRec);
}
/// <summary>
/// Avvio fase setup per il record selezionato
/// </summary>
/// <param name="currRec"></param>
/// <returns></returns>
public async Task<ODLModel> POdlDoSetup(PODLModel currRec)
{
return await dbController.PODL_startSetup(currRec, 0, 1, 1, ""); ;
}
/// <summary>
/// Statistiche ODL calcolate (da stored stp_STAT_ODL)
/// </summary>
+1 -1
View File
@@ -5,7 +5,7 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP.SPEC</RootNamespace>
<Version>6.16.2210.1720</Version>
<Version>6.16.2210.1808</Version>
</PropertyGroup>
<ItemGroup>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOSPEC </i>
<h4>Versione: 6.16.2210.1720</h4>
<h4>Versione: 6.16.2210.1808</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2210.1720
6.16.2210.1808
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2210.1720</version>
<version>6.16.2210.1808</version>
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>