clear alarms has now all 6 groups

This commit is contained in:
Roland Drabesch 2025-09-15 16:16:07 +02:00
parent 18af494ebf
commit 51de88f1aa
8 changed files with 119 additions and 10 deletions

View File

@ -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))

View File

@ -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);
}

View File

@ -1 +1 @@
89102b0142e574de38a9f47d370f3334e5e6c268
b03dfbada453427a2bb1275645a5f1b525f29900

View File

@ -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"));
}

View File

@ -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() + "<br >" + ex.InnerException.ToString());
}
}
[Route("SyncKitronData")]
public async Task<HttpResponseMessage> 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<HttpResponseMessage> 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);

View File

@ -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);
}

View File

@ -2,7 +2,7 @@
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<NameOfLastUsedPublishProfile>E:\REPO\lab\la_operations\laa_production\Common\Service\MeterProcessState\Properties\PublishProfiles\IISProfile.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>E:\REPO\lab\la_operations\laa_production\Common\Service\MeterProcessState\Properties\PublishProfiles\a.pubxml</NameOfLastUsedPublishProfile>
<UseIISExpress>true</UseIISExpress>
<Use64BitIISExpress />
<IISExpressSSLPort />

View File

@ -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))
{