diff --git a/Common/CordonelAssemblyLine/Model/PickingModel.cs b/Common/CordonelAssemblyLine/Model/PickingModel.cs index fbbbc5cc..1efd84f5 100644 --- a/Common/CordonelAssemblyLine/Model/PickingModel.cs +++ b/Common/CordonelAssemblyLine/Model/PickingModel.cs @@ -821,7 +821,7 @@ namespace CordonelAssemblyLine.Model meter.ReLogin(); } meter.SetProcessState(DisplayCodes.PickingTested); - var url = $"{ServiceUrls.MeterProcessStateUrl()}SetPickingState?PcbID={meter.PcbId}&FertigungsauftragsNr={_order}"; + var url = $"{ServiceUrls.MeterProcessStateUrl()}SetPickingState?PcbID={meter.PcbId}&FertigungsauftragsNr={_order}&successful=1"; var retString = LocalWebRequest.PostRequestAsyncAndGetContent(url); if (bool.TryParse(retString, out var result)) diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs index 7a397501..a14a2316 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs @@ -2114,7 +2114,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore { WriteRegister("SENSUSRADIO_PersistenceGroup5", new Byte[] { 0x00, 0xff, 0x00, 0xff }); } - + if (GetRegistersDic().Any(a => a.Key.RegisterName == "PersistenceGroup6")) + { + WriteRegister("SENSUSRADIO_PersistenceGroup6", new Byte[] { 0x00, 0xff, 0x00, 0xff }); + } WriteRegister("CUSTOMER_AlarmEnableMask", beforeCancelAlarmEnableMask); WriteRegister("CUSTOMER_AlarmBroadcastMask", beforeCancelAlarmBroadcastMask); } diff --git a/Common/Hardware/WaterMeter/WaterMeterCore/WaterMeterRegisters/obj/Debug/WaterMeterRegisters.csproj.CoreCompileInputs.cache b/Common/Hardware/WaterMeter/WaterMeterCore/WaterMeterRegisters/obj/Debug/WaterMeterRegisters.csproj.CoreCompileInputs.cache index 8865d283..39b3fdf8 100644 --- a/Common/Hardware/WaterMeter/WaterMeterCore/WaterMeterRegisters/obj/Debug/WaterMeterRegisters.csproj.CoreCompileInputs.cache +++ b/Common/Hardware/WaterMeter/WaterMeterCore/WaterMeterRegisters/obj/Debug/WaterMeterRegisters.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -89102b0142e574de38a9f47d370f3334e5e6c268 +b03dfbada453427a2bb1275645a5f1b525f29900 diff --git a/Common/Service/MeterProcessState/Controllers/FinalCheckController.cs b/Common/Service/MeterProcessState/Controllers/FinalCheckController.cs index 79c4791a..b3529bc3 100644 --- a/Common/Service/MeterProcessState/Controllers/FinalCheckController.cs +++ b/Common/Service/MeterProcessState/Controllers/FinalCheckController.cs @@ -833,7 +833,7 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers var startInex = St.IndexOf("\"StartDT\":\"") + "\"StartDT\":\"".Length; var datestring = St.Substring(startInex, "29.07.2022 06:47:27".Length); - lastProdDate = DateTime.ParseExact(datestring, "dd.MM.yyyy hh:mm:ss", CultureInfo.CreateSpecificCulture("de-DE")); + lastProdDate = DateTime.ParseExact(datestring, "dd.MM.yyyy HH:mm:ss", CultureInfo.CreateSpecificCulture("de-DE")); } diff --git a/Common/Service/MeterProcessState/Controllers/LUControler.cs b/Common/Service/MeterProcessState/Controllers/LUControler.cs index da05d3af..5baaa6b9 100644 --- a/Common/Service/MeterProcessState/Controllers/LUControler.cs +++ b/Common/Service/MeterProcessState/Controllers/LUControler.cs @@ -1,12 +1,20 @@ -using Oracle.ManagedDataAccess.Client; +using LaaPackages.Features.Cordonel.Models; +using Newtonsoft.Json.Linq; +using Oracle.ManagedDataAccess.Client; +using Service.MeterProcessState; +using Service.MeterProcessState.Data; using System; using System.Collections.Generic; +using System.Data; +using System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder; using System.Globalization; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; +using System.Web.Helpers; using System.Web.Http; +using Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Json; using Xylem.Common.Logic.ServiceCore; @@ -121,7 +129,105 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers return Request.CreateResponse(HttpStatusCode.InternalServerError, ex.ToString() + "
" + ex.InnerException.ToString()); } } + [Route("SyncKitronData")] + public async Task SyncKitronData() + { + StringBuilder query = new StringBuilder(); + query.AppendLine("SELECT TOP (1) ID, Jobname, ActionDate, DoneDate, LastID, DataCount FROM KitronSync where DoneDate is null order by ID "); + using (var dataAccess = new SqlDataAccess(GlobalConfig.connectionString.Value)) + { + var dt = dataAccess.ExecuteQuery(query.ToString()); + foreach (DataRow item in dt.Rows) + { + var LastID = (int)item["LastID"]; + + var DataCount = (int)item["DataCount"]; + var UpdateTillLasID = LastID + DataCount; + var kitronFinals = dataAccess.ExecuteQuery($" sELECT * FROM OPENQUERY (MyOraDB, ' SELECT DS_ID,ID_PCB,ID_TEST,JSON FROM DELTACHEF.GENESIS_PCBFUNCTIONALTEST_PD WHERE DS_ID >= {LastID + 1} and DS_ID <= {LastID+ 1 + DataCount} order by DS_ID asc ');"); + foreach (DataRow kitronItem in kitronFinals.Rows) + { + try + { + var DS_ID = (double)kitronItem["DS_ID"]; + var ID_PCB = kitronItem["ID_PCB"].ToString(); + var ID_TEST = (double)kitronItem["ID_TEST"]; + var JSON = kitronItem["JSON"].ToString(); + var oo = JObject.Parse(JSON); + UpdateTillLasID = (int)DS_ID; + var TestResultPass = false; + var IrDALogonSkeleton = ""; + var FWVersion = ""; + var MaterialNumber = ""; + var StartDT = DateTime.MinValue; + foreach (var oItem in oo.Children().Values()) + { + foreach (JProperty ChildValues in oItem.Children()) + { + switch (ChildValues.Name) + { + case "TestResult": + TestResultPass = (ChildValues.Value.ToString().ToUpper() == "PASS"); + break; + case "IrDA Logon Skeleton": + IrDALogonSkeleton = ChildValues.Value.ToString(); + break; + case "FW Version": + FWVersion = ChildValues.Value.ToString(); + break; + case "MaterialNumber": + MaterialNumber = ChildValues.Value.ToString(); + break; + case "StartDT": + DateTime.TryParseExact(ChildValues.Value.ToString(), "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out StartDT); + break; + default: + break; + } + } + } + if (TestResultPass) + { + int matr = -1; + string remark = ""; + if (!int.TryParse(MaterialNumber, out matr)) + { + matr = -1; + remark = MaterialNumber; + } + + + + + dataAccess.ExecuteQuery($"" + + $" IF not EXISTS (SELECT 1 FROM dbo.[Cordonel_KitronData] WHERE KitronDSId = {DS_ID}) " + + $" Begin" + + $" INSERT INTO [dbo].[Cordonel_KitronData] ([PcbId] ,[KitronDSId] ,[Skeleton] ,[FW] ,[MaterialNumber] ,[ProdDate], [Remark]) " + + $" VALUES ( {ID_PCB},{DS_ID}, '{IrDALogonSkeleton}','{FWVersion}', {matr} , '{StartDT.ToString("yyyyMMdd HH:mm:ss")}', '{remark}')" + + $" end"); + + + + } + + + } + catch (Exception ex) + { + + throw; + } + } + dataAccess.ExecuteQuery($"Update [dbo].KitronSync set LastID = {UpdateTillLasID} "); + } + + } + + + + + return Request.CreateResponse(HttpStatusCode.OK, await Task.Run(() => { return true; })); + } [Route("GetProddate")] public async Task GetProddate(string Seriennumer = "") { @@ -145,7 +251,7 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers - + // create connection @@ -173,7 +279,7 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers var St = ((string)reader["JSON"]); var startInex = St.IndexOf("\"StartDT\":\"") + "\"StartDT\":\"".Length; var datestring = St.Substring(startInex, "29.07.2022 06:47:27".Length); - DateTime.ParseExact(datestring, "dd.MM.yyyy hh:mm:ss", CultureInfo.InvariantCulture); + DateTime.ParseExact(datestring, "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture); diff --git a/Common/Service/MeterProcessState/Controllers/PushControler.cs b/Common/Service/MeterProcessState/Controllers/PushControler.cs index 02007f2c..43c6ba30 100644 --- a/Common/Service/MeterProcessState/Controllers/PushControler.cs +++ b/Common/Service/MeterProcessState/Controllers/PushControler.cs @@ -115,7 +115,7 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers } else { - retC.kitronDate = DateTime.ParseExact(datestring, "dd.MM.yyyy hh:mm:ss", CultureInfo.InvariantCulture); + retC.kitronDate = DateTime.ParseExact(datestring, "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture); } diff --git a/Common/Service/MeterProcessState/MeterProcessState.csproj.user b/Common/Service/MeterProcessState/MeterProcessState.csproj.user index d31c59d6..9b1bfe9a 100644 --- a/Common/Service/MeterProcessState/MeterProcessState.csproj.user +++ b/Common/Service/MeterProcessState/MeterProcessState.csproj.user @@ -2,7 +2,7 @@ Debug|Any CPU - E:\REPO\lab\la_operations\laa_production\Common\Service\MeterProcessState\Properties\PublishProfiles\IISProfile.pubxml + E:\REPO\lab\la_operations\laa_production\Common\Service\MeterProcessState\Properties\PublishProfiles\a.pubxml true diff --git a/Common/Ui/GenesisToolBox/FrmLowLevelTools.cs b/Common/Ui/GenesisToolBox/FrmLowLevelTools.cs index 62aaf728..39c51a51 100644 --- a/Common/Ui/GenesisToolBox/FrmLowLevelTools.cs +++ b/Common/Ui/GenesisToolBox/FrmLowLevelTools.cs @@ -303,7 +303,7 @@ namespace Xylem.Common.Ui.GenesisToolBox MeterPwdDb _pwdContainer = new MeterPwdDb(); var ret = MeterPwdHandlerDb.RequestPwdFileFromDb(_currentGenesis.GetPcbId(), out _pwdContainer); - + // if (_currentGenesis.Login(_pwdContainer.Skeleton)) {