8822da5d09
- Gestita dimensione eposizione finestra supervisor - Gestita visibilita' bottone cambio macchina da ini - Introdotto log degli eventi macchina - Disattivo bottoni macchina durante ricalcolo cn in supervisore - Agiunta lettura variabili E80000, E80001, E80002 per Num - Correzioni e migliorie a passaggio barre tra vieoptim e supervisore e vice versa - Corretto stato delle feature su ripartenza - Introduzione configurazione cartelle prod e proj da path per funzionamento in rete - Aggiunta impostazione ccartella condivisa per funzionamento in rete - Interruzione lettura statusmap durante ricaricamento progetto - Modificata finestra di blocco per gestione con salvataggio diretto se versione non di rete - Evidenziazione copie in visualizzazione struttura in visualizzatore - Aggiornamento dei risultati di verifica anche in ottimizzatore quando mandato programma cna alla macchina - Correzione a indica di modifica progetto in pagina view - Correzione aggiornamento titolo prod su salvataggio - Correzione a selezione pezzi su scena
110 lines
6.3 KiB
VB.net
110 lines
6.3 KiB
VB.net
Imports EgtBEAMWALL.Core
|
|
Imports EgtBEAMWALL.DataLayer.DatabaseModels
|
|
|
|
Public Class ViewerOptimizerComm
|
|
|
|
Private m_bTickInExecution As Boolean = False
|
|
|
|
Sub New()
|
|
' imposto in Map
|
|
'Map.SetRefMachManaging(Me)
|
|
End Sub
|
|
|
|
Friend Sub Timer_Tick()
|
|
If Not IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM) AndAlso Map.refProjectVM.SupervisorMachGroupPanelVM.bReloadingProj Then
|
|
EgtUILib.EgtOutLog("Ricaricamento programma in esecuzione!!")
|
|
Return
|
|
End If
|
|
If m_bTickInExecution Then
|
|
EgtUILib.EgtOutLog("Tick gia' in esecuzione!!")
|
|
Return
|
|
End If
|
|
m_bTickInExecution = True
|
|
' se c'e' un progetto aperto o in caricamento
|
|
If IsNothing(Map.refSupervisorManagerVM.CurrProd) OrElse Map.refSupervisorManagerVM.bLoadingProd Then
|
|
m_bTickInExecution = False
|
|
Return
|
|
End If
|
|
' recupero indice modifica del prod
|
|
Dim nModificationIndex As Integer = 0
|
|
Dim ActiveSessionList As List(Of StatusMapModel) = DbControllers.m_StatusMapController.GetProd(m_SupervisorId)
|
|
For Each ActiveSession In ActiveSessionList
|
|
If ActiveSession.ItemId = Map.refSupervisorManagerVM.CurrProd.nProdId Then
|
|
nModificationIndex = ActiveSession.Index
|
|
End If
|
|
Next
|
|
' se indice letto diverso da indice gia' presente
|
|
If nModificationIndex <> Map.refSupervisorManagerVM.CurrProd.nModificationIndex Then
|
|
' recupero elementi modificati
|
|
Dim MachGroupList As List(Of StatusMapModel) = DbControllers.m_StatusMapController.GetFrom(m_SupervisorId, Map.refSupervisorManagerVM.CurrProd.nModificationIndex + 1)
|
|
Dim bReloadFile As Boolean = False
|
|
For Each MachGroupModification In MachGroupList
|
|
If MachGroupModification.ItemType = Core.StatusMapItemType.MachGroup Then
|
|
Select Case MachGroupModification.Operation
|
|
Case Core.StatusMapOpType.MachGroupAdd
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList.Add(MachGroupModification.ItemId, {MachGroupModification.Index, MachGroupModification.Index})
|
|
Case Core.StatusMapOpType.MachGroupMod
|
|
If Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList.ContainsKey(MachGroupModification.ItemId) Then
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList(MachGroupModification.ItemId)(0) = MachGroupModification.Index
|
|
Else
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList.Add(MachGroupModification.ItemId, {MachGroupModification.Index, 0})
|
|
End If
|
|
Case Core.StatusMapOpType.MachGroupRem
|
|
If Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList.ContainsKey(MachGroupModification.ItemId) Then
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList.Remove(MachGroupModification.ItemId)
|
|
End If
|
|
Case Core.StatusMapOpType.MachGroupAssignedToSupervisor
|
|
Dim MachgroupIndexes As Integer() = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList(MachGroupModification.ItemId)
|
|
' se indice di aggiornamento file diverso da indice ultima modifica
|
|
If MachgroupIndexes(0) <> MachgroupIndexes(1) Then
|
|
' devo ricaricare il file
|
|
bReloadFile = True
|
|
' ricarico il progetto
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.ReloadProjectFile()
|
|
' esco aggiornando l'indice a quello corrente
|
|
Map.refSupervisorManagerVM.CurrProd.SetModificationIndex(MachGroupModification.Index)
|
|
Exit For
|
|
Else
|
|
Dim ProdMachGroup As MyMachGroupVM = Map.refProjectVM.ProdMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = MachGroupModification.ItemId)
|
|
If Not IsNothing(ProdMachGroup) Then
|
|
ProdMachGroup.dtStartTime = DateTime.MinValue
|
|
ProdMachGroup.dtEndTime = DateTime.MinValue
|
|
ProdMachGroup.MyMachGroupM.SetProductionState(Core.ItemState.Assigned)
|
|
Dim DBMachGroup As MachGroupModel = DbControllers.m_MachGroupController.FindByMachGroupId(Map.refSupervisorManagerVM.CurrProd.nProdId, ProdMachGroup.Id)
|
|
If Not IsNothing(DBMachGroup) Then ProdMachGroup.SetProductionIndex(DBMachGroup.ProdIndex)
|
|
For Each Part In ProdMachGroup.PartVMList
|
|
Part.dtStartTime = DateTime.MinValue
|
|
Part.dtEndTime = DateTime.MinValue
|
|
Part.nProduction_State = Core.ItemState.Assigned
|
|
Next
|
|
' lo aggiungo alla lista di MachGroup
|
|
Map.refProjectVM.SupervisorMachGroupPanelVM.AddMachGroupToSupervisor(ProdMachGroup)
|
|
End If
|
|
End If
|
|
End Select
|
|
ElseIf MachGroupModification.ItemType = Core.StatusMapItemType.Comm Then
|
|
If MachGroupModification.Operation = Core.StatusMapOpType.ViewOptimStoped Then
|
|
ViewerOptimizerCommThread.SetViewerOptimizerBlocked(True)
|
|
ElseIf MachGroupModification.Operation = Core.StatusMapOpType.ChangeProdInSupervisorRequest Then
|
|
' lo apro
|
|
Map.refSupervisorManagerVM.OpenProjectFromOptimizer(MachGroupModification.ItemId)
|
|
End If
|
|
End If
|
|
Next
|
|
' se devo ricaricare il file
|
|
If bReloadFile Then
|
|
' aggiorno indici in dictionary
|
|
For Each MachGroupModification In Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupFullList.Where(Function(x) x.Value(0) <> x.Value(1))
|
|
MachGroupModification.Value(1) = MachGroupModification.Value(0)
|
|
Next
|
|
End If
|
|
If Not bReloadFile Then
|
|
' aggiorno indice del prod
|
|
Map.refSupervisorManagerVM.CurrProd.SetModificationIndex(nModificationIndex)
|
|
End If
|
|
End If
|
|
m_bTickInExecution = False
|
|
End Sub
|
|
|
|
End Class
|