common/Ui/GenesisToolBox/FrmMasterMapping.cs
2026-04-23 17:50:07 +02:00

208 lines
7.7 KiB
C#

using Newtonsoft.Json;
using QRCoder;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using Xylem.Common.CommonCore.Configuration;
using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore;
using Xylem.Common.Hardware.WaterMeter.WaterMeterCore;
using Xylem.Common.Logic.ProductionOrderCore.TestResults;
using Xylem.Common.Logic.SoftwareAccessHelper;
namespace Xylem.Common.Ui.GenesisToolBox
{
public partial class FrmMasterMapping : Form
{
public FrmMasterMapping()
{
InitializeComponent();
}
private void button1_Click(Object sender, EventArgs e)
{
var ret = LocalWebRequest.GetRequest("http://10.49.40.25/MeterProcessState/api/Marriage/GetSerialNumberFromOrderDataUnMapped?OrderNumber=" + txtOrder.Text, 80000);
Int32 tmp = 0;
if (int.TryParse(ret.ToString().Trim('\"'), out tmp))
{
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(tmp.ToString(), QRCodeGenerator.ECCLevel.L);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(10);
piBoQr.Image = qrCodeImage;
lblSrn.Text = tmp.ToString();
}
else
{
MessageBox.Show(@"error");
}
}
private void button1_Click_1(Object sender, EventArgs e)
{
var ret = LocalWebRequest.PostRequestAsync("http://10.49.40.25/MeterProcessState/api/ProccesState/SetPickingState?PcbId=" + txtFastPcbid.Text + "&FertigungsauftragsNr=" + txtFastOrder.Text, 80000);
if (ret)
{
var url = ServiceUrls.MeterProcessStateUrl();
url = url + $"SetPressureStateDetailed";
var mutedResult = new PressureResultData()
{
Passed = true,
LeakRate = "",
PcbId = txtFastPcbid.Text,
Remark = "fast Map",
Rev = 0,
TesterName = "pc",
TestPressure = "0",
TestPoints = new System.Collections.Generic.List<PressureTestPoints>() { new PressureTestPoints() { Ident = 1, Input = "0" } }
};
ret = LocalWebRequest.PostRequestAsync(url, json: mutedResult);
if (ret)
{
url = $"{ServiceUrls.MarriageServiceUrl()}SetPcbToSerial?PcbId={txtFastPcbid.Text}&SerialNumber={txtFastSerialnumber.Text}&returnMetroData=0";
var retSeri = LocalWebRequest.GetRequest(url, 18000);
if (retSeri.Contains("store"))
{
MessageBox.Show(@"hat geklappt");
}
}
}
}
public class Root
{
public String PcbId { get; set; }
public Int32? CordonelAssignedPicking_FertigungsAuftragsNr { get; set; }
public Int32? CordonelPressureTest_FertigungsAuftragsNr { get; set; }
public Int32? MapPcbIdToSerialNumber_SerialNumber { get; set; }
}
private void btnConnect_Click(Object sender, EventArgs e)
{
if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem)
{
Int32 slotNR = 0;
lblPcbId.Text = "-";
if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) &&
int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR))
{
var pcb = getPcbId(slotNR);
try
{
var url = $"http://10.49.40.25/MeterProcessState/api/Order/GetCordonelMapping?PcbId={pcb}";
var retSeri = LocalWebRequest.GetRequest(url, 18000);
Root myDeserializedClass = JsonConvert.DeserializeObject<List<Root>>(retSeri).First();
lblPcbId.Text = myDeserializedClass.PcbId;
lblPickingOrder.Text = myDeserializedClass.CordonelAssignedPicking_FertigungsAuftragsNr.HasValue ? myDeserializedClass.CordonelAssignedPicking_FertigungsAuftragsNr.Value.ToString() : "-";
lblPressureOrder.Text = myDeserializedClass.CordonelPressureTest_FertigungsAuftragsNr.HasValue ? myDeserializedClass.CordonelPressureTest_FertigungsAuftragsNr.Value.ToString() : "-";
label8.Text = myDeserializedClass.MapPcbIdToSerialNumber_SerialNumber.HasValue? myDeserializedClass.MapPcbIdToSerialNumber_SerialNumber.Value.ToString() : "-";
//[{"PcbId":"210520272","CordonelAssignedPicking_FertigungsAuftragsNr":3200192,"CordonelPressureTest_FertigungsAuftragsNr":3200192,"MapPcbIdToSerialNumber_SerialNumber":22799122}]
btnRemove.Visible = true;
}
catch (Exception)
{
throw;
}
//load
}
}
}
private GenesisMeter _currentGenesis;
private String _currentPcbId;
private MeterBatch _meterBatch = new MeterBatch();
private String getPcbId(Int32 slotNR)
{
try
{
_meterBatch.RemoveAllMeters();
_currentGenesis = new GenesisMeter();
try
{
_currentGenesis.SetupFromConfigFile(slotNR);
_meterBatch.AddMeter(_currentGenesis);
}
catch (Exception ex)
{
MessageBox.Show($@"Slot #{slotNR} failed: {ex.Message}");
}
return _currentGenesis.GetPcbId();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return "-";
}
private void btnRemove_Click(Object sender, EventArgs e)
{
btnRemoveSure.Visible = true;
btnRemoveSure.Text = "Are you sure to delete mapping for PCB " + lblPcbId.Text + "?";
btnRemove.Visible = false;
}
private void btnRemoveSure_Click(Object sender, EventArgs e)
{
var ipcb = 0;
if (int.TryParse(lblPcbId.Text, out ipcb))
{
var ret = LocalWebRequest.PostRequestAsync($"http://10.49.40.25/MeterProcessState/api/Order/DeleteCordonelMapping?PcbId={ipcb}", 80000);
if (ret)
{
MessageBox.Show(@"succeed. mapping is deleted ");
btnRemoveSure.Visible = false;
}
else
{
MessageBox.Show(@"something went wrong");
}
}
}
private void FrmMasterMapping_FormClosing(Object sender, FormClosingEventArgs e)
{
_currentGenesis?.Logout();
_meterBatch?.RemoveAllMeters();
_meterBatch?.Dispose();
Dispose();
}
private void button2_Click(Object sender, EventArgs e)
{
var ret = LocalWebRequest.PostRequestAsync("http://10.49.40.25/MeterProcessState/api/ProccesState/SetPressureStateHydralic?PcbId=" + txtHyMapPcb.Text + "&FertigungsauftragsNr=" + txtHyMapOrder.Text, 80000);
if (ret)
{
MessageBox.Show(@"Erfogreich");
}
else
{
MessageBox.Show(@"Fehler");
}
}
}
}