Merge branch 'feature/NewWarehouseTest' into DataLayer

This commit is contained in:
Samuele Locatelli
2024-06-27 18:22:01 +02:00
3 changed files with 43 additions and 29 deletions
@@ -76,8 +76,10 @@ namespace EgtBEAMWALL.DataLayer.Controllers
{
bool answ = false;
// in primis refresh delle view
string sqlCommand = @"CREATE OR REPLACE VIEW v_expProdRaw AS
try
{
// in primis refresh delle view
string sqlCommand = @"CREATE OR REPLACE VIEW v_expProdRaw AS
SELECT DbId, DtEvent, VarValue,
SUBSTRING_INDEX(VarValue, ';', 1) AS Prod,
SUBSTRING_INDEX(SUBSTRING_INDEX(VarValue, ';', 2), ';', -1) AS MachGroupId,
@@ -92,20 +94,26 @@ namespace EgtBEAMWALL.DataLayer.Controllers
FROM v_expProdRaw AS vp
INNER JOIN MachGroupList mgl ON vp.MachGroupId = mgl.Id
INNER JOIN partlist pl ON vp.PartId = pl.Id;";
dbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
Thread.Sleep(100);
dbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
Thread.Sleep(100);
// ora setup parametri x utente
string domain = "%";
// ora setup parametri x utente
string domain = "%";
// ora controllo utente con diritti
answ = doCheckCreate(username, pwd, answ, domain, true);
if (answ)
{
doGrantPriv(username, domain, "USAGE ON *.*");
doGrantPriv(username, domain, $"SELECT ON {dbName}.v_expProd");
// ora controllo utente con diritti
answ = doCheckCreate(username, pwd, answ, domain, true);
if (answ)
{
doGrantPriv(username, domain, "USAGE ON *.*");
doGrantPriv(username, domain, $"SELECT ON {dbName}.v_expProd");
}
}
catch (Exception exc)
{
string errMessage = $"EXCEPTION on DbController.refreshViews: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
return answ;
}
@@ -873,16 +873,19 @@ Public Class LeftPanelVM
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(Time, Map.refSupervisorManagerVM.CurrProd.nProdId, MachGroup.Id, Part.nPartId, 2, DbControllers.SupervisorId))
' se attivo magazzino web, e primo pezzo della barra, aggiorno utilizzo barra da magazzino
If GetMainPrivateProfileInt(S_WAREHOUSE, K_NETWAREHOUSE, 0) = 1 AndAlso MachGroup.PartVMList(0).nPartId = Part.nPartId AndAlso MachGroup.nProduction_State <> ItemState.Scrapped Then
Dim nMaterialId As Integer
If Map.refSupervisorManagerVM.CurrProd.nType = BWType.BEAM Then
nMaterialId = DbControllers.m_MaterialsController.Insert(New MaterialM(MachGroup.dW, MachGroup.dH, 0, MachGroup.sMATERIAL, MachGroup.sWAREHOUSEMATERIAL))
ElseIf Map.refSupervisorManagerVM.CurrProd.nType = BWType.WALL Then
nMaterialId = DbControllers.m_MaterialsController.Insert(New MaterialM(0, MachGroup.dH, 0, MachGroup.sMATERIAL, MachGroup.sWAREHOUSEMATERIAL))
End If
Dim RawPartList = DbControllers.m_RawItemsController.GetFilt(nMaterialId)
Dim RawPart As RawPartM = RawPartList.FirstOrDefault(Function(x) x.dL = MachGroup.dL AndAlso x.Material.dW = MachGroup.dW AndAlso x.Material.dH = MachGroup.dH AndAlso x.Material.sWarehouseMaterial = MachGroup.sWAREHOUSEMATERIAL)
' Dim nMaterialId As Integer
'If Map.refSupervisorManagerVM.CurrProd.nType = BWType.BEAM Then
' ' nMaterialId = DbControllers.m_MaterialsController.Insert(New MaterialM(MachGroup.dW, MachGroup.dH, 0, MachGroup.sMATERIAL, MachGroup.sWAREHOUSEMATERIAL))
' nMaterialId = DbControllers.m_MaterialsController.Insert(MachGroup.RawPartM.Material)
'ElseIf Map.refSupervisorManagerVM.CurrProd.nType = BWType.WALL Then
' nMaterialId = DbControllers.m_MaterialsController.Insert(New MaterialM(0, MachGroup.dH, 0, MachGroup.sMATERIAL, MachGroup.sWAREHOUSEMATERIAL))
'End If
'Dim RawPartList = DbControllers.m_RawItemsController.GetFilt(nMaterialId)
'Dim RawPart As RawPartM = RawPartList.FirstOrDefault(Function(x) x.dL = MachGroup.dL AndAlso x.Material.dW = MachGroup.dW AndAlso x.Material.dH = MachGroup.dH AndAlso x.Material.sWarehouseMaterial = MachGroup.sWAREHOUSEMATERIAL)
'Dim RawDictionary As New Dictionary(Of Integer, Integer)
'RawDictionary.Add(RawPart.nId, 1)
Dim RawDictionary As New Dictionary(Of Integer, Integer)
RawDictionary.Add(RawPart.nId, 1)
RawDictionary.Add(MachGroup.MyMachGroupM.RawPartM.nId, 1)
' forzo aggiornamento eventuali dati non inviati su Db
DbControllers.m_MagmanController.ForceSyncroSend()
DbControllers.m_MagmanController.ResourceSendCons(Map.refSupervisorManagerVM.CurrProd.ProdFileM.nProjCloudId, RawDictionary)
@@ -14,6 +14,9 @@ Public Class MyMachGroupPanelVM
' lista dei RawPart presenti su db
Private m_RawPartDbList As New List(Of RawPartM)
' tolleranza di ricerca delle barre in magazzino
Private m_DimensionRange As Double = 0.1
Public Shadows Property SelectedMachGroup As MyMachGroupVM
Get
Return m_SelectedMachGroup
@@ -264,7 +267,7 @@ Public Class MyMachGroupPanelVM
' aggiornamento materiale
Dim RawPart As RawPartM = Nothing
If bUseList Then
RawPart = m_RawPartDbList.FirstOrDefault(Function(x) x.Material.sMaterial = MachGroup.RawPartM.Material.sMaterial AndAlso x.Material.dW = MachGroup.dW AndAlso x.Material.dH = MachGroup.dH AndAlso x.Material.dL = MachGroup.dL)
RawPart = m_RawPartDbList.FirstOrDefault(Function(x) x.Material.sMaterial = MachGroup.RawPartM.Material.sMaterial AndAlso Math.Abs(x.Material.dW - MachGroup.dW) < m_DimensionRange AndAlso Math.Abs(x.Material.dH - MachGroup.dH) < m_DimensionRange AndAlso Math.Abs(x.Material.dL - MachGroup.dL) < m_DimensionRange)
End If
If Not IsNothing(RawPart) Then
MachGroup.MyMachGroupM.RawPartM.Material.SetId(RawPart.Material.nId)
@@ -280,9 +283,9 @@ Public Class MyMachGroupPanelVM
Select Case SearchMaterial.Tipo
Case DataLayer.Controllers.MaterialsController.SearchResult.TypeFound.ALIAS, DataLayer.Controllers.MaterialsController.SearchResult.TypeFound.MATERIAL
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
Material = SearchMaterial.Result.FirstOrDefault(Function(x) x.dW = MachGroup.dW AndAlso x.dH = MachGroup.dH)
Material = SearchMaterial.Result.FirstOrDefault(Function(x) Math.Abs(x.dW - MachGroup.dW) < m_DimensionRange AndAlso Math.Abs(x.dH - MachGroup.dH) < m_DimensionRange)
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
Material = SearchMaterial.Result.FirstOrDefault(Function(x) x.dH = MachGroup.dH)
Material = SearchMaterial.Result.FirstOrDefault(Function(x) Math.Abs(x.dH - MachGroup.dH) < m_DimensionRange)
End If
Case Else
EgtOutLog("Error! MachGroup material not found!!")
@@ -294,9 +297,9 @@ Public Class MyMachGroupPanelVM
End Select
Dim SearchRawPart As List(Of RawPartM) = DbControllers.m_RawItemsController.GetFilt(Material.nId)
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
RawPart = SearchRawPart.FirstOrDefault(Function(x) x.Material.dW = MachGroup.dW AndAlso x.Material.dH = MachGroup.dH AndAlso x.dL = MachGroup.dL)
RawPart = SearchRawPart.FirstOrDefault(Function(x) Math.Abs(x.Material.dW - MachGroup.dW) < m_DimensionRange AndAlso Math.Abs(x.Material.dH - MachGroup.dH) < m_DimensionRange AndAlso Math.Abs(x.dL - MachGroup.dL) < m_DimensionRange)
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
RawPart = SearchRawPart.FirstOrDefault(Function(x) x.dW = MachGroup.dW AndAlso x.Material.dH = MachGroup.dH AndAlso x.Material.dL = MachGroup.dL)
RawPart = SearchRawPart.FirstOrDefault(Function(x) Math.Abs(x.dW - MachGroup.dW) < m_DimensionRange AndAlso Math.Abs(x.Material.dH - MachGroup.dH) < m_DimensionRange AndAlso Math.Abs(x.dL - MachGroup.dL) < m_DimensionRange)
End If
If Not IsNothing(RawPart) Then
MachGroup.MyMachGroupM.RawPartM.Material.SetId(RawPart.Material.nId)
@@ -311,9 +314,9 @@ Public Class MyMachGroupPanelVM
If nRawPartId > 0 Then
SearchRawPart = DbControllers.m_RawItemsController.GetFilt(Material.nId)
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
RawPart = SearchRawPart.FirstOrDefault(Function(x) x.Material.dW = MachGroup.dW AndAlso x.Material.dH = MachGroup.dH AndAlso x.dL = MachGroup.dL)
RawPart = SearchRawPart.FirstOrDefault(Function(x) Math.Abs(x.Material.dW - MachGroup.dW) < m_DimensionRange AndAlso Math.Abs(x.Material.dH - MachGroup.dH) < m_DimensionRange AndAlso Math.Abs(x.dL - MachGroup.dL) < m_DimensionRange)
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
RawPart = SearchRawPart.FirstOrDefault(Function(x) x.dW = MachGroup.dW AndAlso x.Material.dH = MachGroup.dH AndAlso x.dL = MachGroup.dL)
RawPart = SearchRawPart.FirstOrDefault(Function(x) Math.Abs(x.dW - MachGroup.dW) < m_DimensionRange AndAlso Math.Abs(x.Material.dH - MachGroup.dH) < m_DimensionRange AndAlso Math.Abs(x.dL - MachGroup.dL) < m_DimensionRange)
End If
If IsNothing(RawPart) Then
EgtOutLog("Error! MachGroup material not found!!")