[성현모] JsonConvertTool 추가, 서머리 수량 버그수정

This commit is contained in:
SHM
2024-10-25 13:40:03 +09:00
parent 3c8bece6b6
commit b76569d02f
52 changed files with 1148 additions and 547 deletions

View File

@ -0,0 +1,217 @@
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<UserQueryItem
ID = "ID_IsIssued"
UseFrom = "[dbo].[UIM_INFO_MacAddress];[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "SELECT TOP(1) * FROM @$UseFrom@$[1] AS X WITH(NOLOCK)
INNER JOIN(SELECT TOP(1) * FROM @$UseFrom@$[2] AS Y WITH(NOLOCK) WHERE Y.[ProductID] = '@$PARAM@$[1]') AS Z ON X.No = Z.RelationNo AND X.IsIssued = 1 AND X.IsAbrogate = 0;"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "MacAddress_Check"
UseFrom = "[dbo].[UIM_INFO_MacAddress]" >
<QueryDetail
QueryText = "SELECT TOP(1) * FROM @$UseFrom@$[1] WITH(NOLOCK) WHERE [MACADDRESS1] = '@$PARAM@$[1]' ORDER BY No ASC;"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "MacAddress_IsIssued"
UseFrom = "[dbo].[UIM_INFO_MacAddress]" >
<QueryDetail
QueryText = "SELECT TOP(1) * FROM @$UseFrom@$[1] WITH(NOLOCK) WHERE [MACADDRESS1] = '@$PARAM@$[1]' AND IsIssued = 1 AND IsAbrogate = 0 ORDER BY No ASC;"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "MacAddress_ToBeIssuedCheck"
UseFrom = "[dbo].[UIM_INFO_MacAddress]" >
<QueryDetail
QueryText = "SELECT TOP(1) * FROM @$UseFrom@$[1] WITH(NOLOCK) WHERE No >= @$PARAM@$[1] AND IsIssued = 0 AND IsAbrogate = 0 ORDER BY No ASC;"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "Product_ToBeRegisterCheck"
UseFrom = "[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "SELECT TOP(1) * FROM @$UseFrom@$[1] WHERE No >= @$PARAM@$[1] AND IssuedNumber = 0 ORDER BY No ASC;"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "Check_Mac_Quantity"
UseFrom = "[dbo].[UIM_INFO_Mac_Quantity]" >
<QueryDetail
QueryText = "SELECT [IssuedQuantity] AS 'CUR', [IssueableQuantity] AS 'ALL' FROM @$UseFrom@$[1] WITH(NOLOCK);"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "Set_Mac_Quantity"
UseFrom = "[dbo].[UIM_INFO_Mac_Quantity]" >
<QueryDetail
QueryText = "UPDATE @$UseFrom@$[1] SET [IssuedQuantity] = @$PARAM@$[1];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "Check_Product_Quantity"
UseFrom = "[dbo].[UIM_INFO_Product_Quantity]" >
<QueryDetail
QueryText = "SELECT [RegisterQuantity] AS 'CUR' FROM @$UseFrom@$[1] WITH(NOLOCK);"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "Set_Product_Quantity"
UseFrom = "[dbo].[UIM_INFO_Product_Quantity]" >
<QueryDetail
QueryText = "UPDATE @$UseFrom@$[1] SET [RegisterQuantity] = @$PARAM@$[1];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "LookUpID_ByMacAddress"
UseFrom = "[dbo].[UIM_INFO_Product];[dbo].[UIM_INFO_MacAddress]" >
<QueryDetail
QueryText = "SELECT TOP(1) X.No, X.ProductID, X.UpdateDT, Y.No, Y.MACADDRESS1, Y.UpdateDT
FROM @$UseFrom@$[1] AS X WITH(NOLOCK) INNER JOIN(SELECT TOP (1) *
FROM @$UseFrom@$[2] AS SUB WITH(NOLOCK) WHERE SUB.MACADDRESS1 = '@$PARAM@$[1]') AS Y ON X.No = Y.RelationNo AND Y.IsIssued = 1 AND Y.IsAbrogate = 0;"
ReturnField = "1"
/>
</UserQueryItem>
<UserQueryItem
ID = "LookUpMacAddress_ByID"
UseFrom = "[dbo].[UIM_INFO_MacAddress];[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "SELECT TOP(1) X.No, X.MACADDRESS1, X.UpdateDT, Y.No, Y.ProductID, Y.UpdateDT
FROM @$UseFrom@$[1] AS X WITH(NOLOCK) INNER JOIN(SELECT TOP (1) *
FROM @$UseFrom@$[2] AS SUB WITH(NOLOCK) WHERE SUB.ProductID = '@$PARAM@$[1]') AS Y ON X.No = Y.RelationNo AND X.IsIssued = 1 AND X.IsAbrogate = 0;"
ReturnField = "1"
/>
</UserQueryItem>
<UserQueryItem
ID = "LookUpMacAddress_ByLikeID"
UseFrom = "[dbo].[UIM_INFO_MacAddress];[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "SELECT TOP(1) X.No, X.MACADDRESS1, X.UpdateDT, Y.No, Y.ProductID, Y.UpdateDT
FROM @$UseFrom@$[1] AS X WITH(NOLOCK) INNER JOIN(SELECT TOP (1) *
FROM @$UseFrom@$[2] AS SUB WITH(NOLOCK) WHERE SUB.ProductID LIKE '@$PARAM@$[1]') AS Y ON X.No = Y.RelationNo AND X.IsIssued = 1 AND X.IsAbrogate = 0;"
ReturnField = "1"
/>
</UserQueryItem>
<UserQueryItem
ID = "ChangeIsIssuedState"
UseFrom = "[dbo].[UIM_INFO_MacAddress]" >
<QueryDetail
QueryText = "UPDATE @$UseFrom@$[1] SET IsIssued = 1, UpdateDT = SYSDATETIME() WHERE No = @$PARAM@$[1];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "ChangeIsAbrogateState"
UseFrom = "[dbo].[UIM_INFO_MacAddress]" >
<QueryDetail
QueryText = "UPDATE @$UseFrom@$[1] SET IsAbrogate = 1, UpdateDT = SYSDATETIME() WHERE No = @$PARAM@$[1];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "CheckMacAddressIsItemState"
UseFrom = "[dbo].[UIM_INFO_MacAddress]" >
<QueryDetail
QueryText = "SELECT IsIssued, IsAbrogate, MACADDRESS1 FROM @$UseFrom@$[1] WITH(NOLOCK) WHERE No = @$PARAM@$[1];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "NewUpdateProductIDInfo"
UseFrom = "[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "UPDATE @$UseFrom@$[1] SET ProductID = '@$PARAM@$[1]', IssuedNumber = 1, UpdateDT = SYSDATETIME() WHERE No = @$PARAM@$[2];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "GetProductInfo"
UseFrom = "[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "SELECT TOP(1) * FROM @$UseFrom@$[1] WHERE No = @$PARAM@$[1];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "SetProductIssueInfo"
UseFrom = "[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "UPDATE @$UseFrom@$[1] SET IsReissued = 1, IssuedNumber = @$PARAM@$[1], UpdateDT = SYSDATETIME() WHERE No = @$PARAM@$[2]"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "CheckProductIDInfo"
UseFrom = "[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "SELECT ProductID FROM @$UseFrom@$[1] WITH(NOLOCK) WHERE No = @$PARAM@$[1];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "UpdateMacAddressRelationNumber"
UseFrom = "[dbo].[UIM_INFO_MacAddress]" >
<QueryDetail
QueryText = "UPDATE @$UseFrom@$[1] SET RelationNo = '@$PARAM@$[1]', UpdateDT = SYSDATETIME() WHERE No = @$PARAM@$[2];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "UpdateProductIDRelationNumber"
UseFrom = "[dbo].[UIM_INFO_Product]" >
<QueryDetail
QueryText = "UPDATE @$UseFrom@$[1] SET RelationNo = '@$PARAM@$[1]', UpdateDT = SYSDATETIME() WHERE No = @$PARAM@$[2];"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "PublishSummaryNumberCheck"
UseFrom = "[dbo].[UIM_HIST_Publish]" >
<QueryDetail
QueryText = "SELECT IDENT_CURRENT('@$UseFrom@$[1]') AS LastNo;"
ReturnField = ""
/>
</UserQueryItem>
<UserQueryItem
ID = "PublishSummaryInsert"
UseFrom = "[dbo].[UIM_HIST_Publish]" >
<QueryDetail
QueryText = "INSERT INTO @$UseFrom@$[1] (QueryID, ReferenceNo, HostID, Section, ProductID, Result, Description) VALUES('@$PARAM@$[1]', @$PARAM@$[2], '@$PARAM@$[3]', '@$PARAM@$[4]', '@$PARAM@$[5]', '@$PARAM@$[6]', '@$PARAM@$[7]');"
ReturnField = ""
/>
</UserQueryItem>
</ROOT>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<DBConnInfo>
<MainConnInfo>
<Type>MS_SQL</Type>
<IP>192.168.0.23</IP>
<Port>1433</Port>
<ID>Alis</ID>
<PW>Kefico!@34</PW>
<SCHEMA>CPXV2</SCHEMA>
<MAC_ADDR>-</MAC_ADDR>
<SSPI>True</SSPI>
</MainConnInfo>
<ShortTermInfo>
<Type>MS_SQL</Type>
<IP>192.168.0.23</IP>
<Port>1433</Port>
<ID>Alis</ID>
<PW>Kefico!@34</PW>
<SCHEMA>CPXV2ShortTermLogJson</SCHEMA>
<MAC_ADDR>-</MAC_ADDR>
<SSPI>True</SSPI>
</ShortTermInfo>
<LongTermInfo>
<Type>MS_SQL</Type>
<IP>192.168.0.23</IP>
<Port>1433</Port>
<ID>Alis</ID>
<PW>Kefico!@34</PW>
<SCHEMA>CPXV2LongTermLogJson</SCHEMA>
<MAC_ADDR>-</MAC_ADDR>
<SSPI>True</SSPI>
</LongTermInfo>
</DBConnInfo>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<TableDataDeleteManager USE="False">
<!--<Management1 USE="True" TableName="HIST_TestNgResult" DateDifference="7" />-->
<Management1 USE="True" TableName="HIST_TestResultS" DateDifference="120" />
</TableDataDeleteManager>
<!--
<QueryInfo ID="PH" ProcNo="190" Table="HIST_PreHeating" DetailProcess="True"></QueryInfo>
<QueryInfo ID="PM" ProcNo="190" Table="HIST_PreMeas" DetailProcess="True">
<ExtractionInfo1 MO_Find="True" MO="Measured IP" Step="2140" Name="IP" UpdateTableName="STAT_ProdLoad" ToField = "Val_IP" />
<ExtractionInfo2 MO_Find="True" MO="Measured V" Step="2200" Name="V-Measure" UpdateTableName="STAT_ProdLoad" ToField = "Val_VMeasure" />
</QueryInfo>
-->
</ROOT>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<Configure>
<UseMapLog>True</UseMapLog>
<MapLogEnterMutexName>SharedCPServerX_LogMutex_CPXV2</MapLogEnterMutexName>
<MapLogAccessMutexName>CpServerX_LogAccessMutex_CPXV2</MapLogAccessMutexName>
<MapLogFilePath>D:\CpServerXLogMappedFile_CPXV2\</MapLogFilePath>
<MapLogFileName>CpServerX_LogSharedMemoryMap_CPXV2</MapLogFileName>
<MapLogName>CpServerX_LogSharedData_CPXV2</MapLogName>
<MapInfoLogEnterMutexName>SharedCPServerX_InfoLogMutex_CPXV2</MapInfoLogEnterMutexName>
<MapInfoLogAccessMutexName>CpServerX_InfoLogAccessMutex_CPXV2</MapInfoLogAccessMutexName>
<MapInfoLogFilePath>D:\CpServerXLogMappedFile_CPXV2\</MapInfoLogFilePath>
<MapInfoLogFileName>CpServerX_InfoLogSharedMemoryMap_CPXV2</MapInfoLogFileName>
<MapInfoLogName>CpServerX_InfoLogSharedData_CPXV2</MapInfoLogName>
</Configure>
</ROOT>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<Configure>
<UseIP>192.168.0.46</UseIP>
<Port>-</Port>
<Loopback>True</Loopback>
<Title>CP-Server X</Title>
<ListenCommandPort Start="15050" End="15060" />
<ListenStreamPort Start="17050" End="17060" />
<DistributionCommandPort Start="20000" End="21999" />
<DistributionStreamPort Start="22000" End="23999" />
<UseHostInfo>True</UseHostInfo>
<HostInfoTableName>STAT_Host</HostInfoTableName>
<UserInfoTableName>STAT_User</UserInfoTableName>
<DiskMonitor1>C:\</DiskMonitor1>
<DiskMonitor2>D:\</DiskMonitor2>
<LogFileSavePos>D:\Middleware Data\LOG</LogFileSavePos>
<MESFileSavePos>D:\Middleware Data\MES</MESFileSavePos>
<!-- time.nist.gov -->
<!-- time.windows.com -->
<!-- default Windows time server {52.231.114.183} -->
<!-- default Windows time server {10.224.20.12} -->
<SyncTimeServerAddress Address="52.231.114.183" />
<SyncTimePort Port="123" />
<TimeServer-SyncTime H="2" M="0" S="0" />
<UseFTP>False</UseFTP>
<IPAddressFTP>10.126.20.6</IPAddressFTP>
<PortFTP>2121</PortFTP>
<AccountFTP>ALISFTP</AccountFTP>
<PasswordFTP>Kefico!@34</PasswordFTP>
</Configure>
</ROOT>

View File

@ -734,7 +734,7 @@ namespace SystemX.Net.MiddlewareUI
int nNum = 0;
Random r = new Random((int)(DateTime.Now.Ticks));
Random r = new Random(Guid.NewGuid().GetHashCode());
if (bOnlyPortInfoSend == false)
{

View File

@ -523,7 +523,7 @@ namespace SystemX.Net.MiddlewareUI
this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("MainForm.IconOptions.Icon")));
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "SystemX.Net.Middleware.UI - CPXV2 v240529";
this.Text = "SystemX.Net.Middleware.UI - CPXV2-JSON v240829";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed);

View File

@ -70,7 +70,7 @@ namespace SystemX.Net.MiddlewareUI
/// <summary>
/// Base Variable
/// </summary>
private const int ALL_MANAGE_NUM = 110;
private const int ALL_MANAGE_NUM = 310;
private const int PORT_DISTRIBUTION_NUM = 10;
@ -119,6 +119,9 @@ namespace SystemX.Net.MiddlewareUI
{
bool bFindResult = false;
//Stopwatch stTimeCheck = new Stopwatch();
//stTimeCheck.Start();
foreach (ConnectInfoStore cis in thisConnInfo)
{
if (cis.bHostLoginState == false)
@ -145,6 +148,8 @@ namespace SystemX.Net.MiddlewareUI
}
}
//long lTimeCheck = stTimeCheck.ElapsedMilliseconds;
return bFindResult;
}
@ -282,7 +287,7 @@ namespace SystemX.Net.MiddlewareUI
InitializeComponent();
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") +
@"Use CP-Server[X] Middleware Version for [CPXV2][v240529] " +
@"Use CP-Server[X] Middleware Version for [CPXV2][v240829] " +
"[SystemX.Net.MiddlewareUI : MainForm]", ConsoleColor.Green, LogMessageLevel.FATAL);
EnableMenuItem(GetSystemMenu(this.Handle, false), SC_CLOSE, MF_GRAYED);
@ -648,10 +653,7 @@ namespace SystemX.Net.MiddlewareUI
try
{
thisConnInfo[e.CALL_NUMBER].strCommandEndPointInfo = strGetLocalEndPoint;
//
thisConnInfo[e.CALL_NUMBER].stStreamCheckTime.Restart();
thisConnInfo[e.CALL_NUMBER].ConnectStreamCheck = true;
thisTLLoadInfo[e.CALL_NUMBER].Initialize();
//
stWatchInitialTime[e.CALL_NUMBER].Restart();
m_bInitialCallState[e.CALL_NUMBER] = true;
@ -660,7 +662,12 @@ namespace SystemX.Net.MiddlewareUI
ConnPool[e.CALL_NUMBER].ConnWaitTimerReset();
thisConnInfo[e.CALL_NUMBER].Initialize();
thisConnInfo[e.CALL_NUMBER].ConnInfoClear();
//
thisConnInfo[e.CALL_NUMBER].strCommandEndPointInfo = strGetLocalEndPoint;
thisConnInfo[e.CALL_NUMBER].stStreamCheckTime.Restart();
thisConnInfo[e.CALL_NUMBER].ConnectStreamCheck = true;
thisConnInfo[e.CALL_NUMBER].ClientConnectState = true;
}
catch (Exception ex)
@ -685,10 +692,8 @@ namespace SystemX.Net.MiddlewareUI
thisTLLoadInfo[e.CALL_NUMBER].Initialize();
thisConnInfo[e.CALL_NUMBER].strConnectHostID = "";
thisConnInfo[e.CALL_NUMBER].strConnectSection = "";
thisConnInfo[e.CALL_NUMBER].strCommandEndPointInfo = "";
thisConnInfo[e.CALL_NUMBER].Initialize();
thisConnInfo[e.CALL_NUMBER].ConnInfoClear();
thisConnInfo[e.CALL_NUMBER].stStreamCheckTime.Restart();
thisConnInfo[e.CALL_NUMBER].ConnectStreamCheck = false;
@ -967,6 +972,14 @@ namespace SystemX.Net.MiddlewareUI
dsLongTermLatestVRFYRel = null;
}
public void ConnInfoClear()
{
strConnectHostID = "";
strConnectSection = "";
strCommandEndPointInfo = "";
}
public ConnectInfoStore()
{
//ClientConnectSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);

View File

@ -17,7 +17,7 @@ namespace SystemX.Net.MiddlewareUI
{
bool bCreateProgram = false;
Mutex SetMutex = new Mutex(true, "SystemX.Net.Middleware.UI CPXV2", out bCreateProgram);
Mutex SetMutex = new Mutex(true, "SystemX.Net.Middleware.UI CPXV2-JSON", out bCreateProgram);
if (bCreateProgram)
{

View File

@ -63,6 +63,7 @@ namespace SystemX.Net.MiddlewareUI.UIM.Protocol_Method
thisConnInfo.bHostLoginState = false;
bool bUseExist = true;
bool bExistInformation = true;
if (bGetUseUIM && bGetUseSimpleLookupOption)
bForcePass = true;
@ -78,10 +79,16 @@ namespace SystemX.Net.MiddlewareUI.UIM.Protocol_Method
drFindInfo = dtHostTable.Select($"HostID='{strGetHostID}' AND Section='{strGetSection}'");
bUseExist = Parent_.GetConnectInfoFindHost(strGetHostID, strGetSection, bGetUseUIM);
bExistInformation = (drFindInfo != null ? drFindInfo.Count() > 0 : false);
if(drFindInfo == null)
{
;//
}
}
if (((drFindInfo != null ? drFindInfo.Count() > 0 : false) &&
bUseExist == false) ||
if (bExistInformation ||
bForcePass)
{
string strRegIP = string.Empty;
@ -97,11 +104,9 @@ namespace SystemX.Net.MiddlewareUI.UIM.Protocol_Method
strConnectIP = thisConnInfo.strCommandEndPointInfo;
//TODO : For Test Server Code
if (true || strConnectIP.IndexOf(strRegIP) >= 0 || bGetUseUIM)
if (/* true || */ strConnectIP.IndexOf(strRegIP) >= 0 || bGetUseUIM)
{
;//IP Address Compare Result PASS
//
//
}
else
{
@ -155,7 +160,7 @@ namespace SystemX.Net.MiddlewareUI.UIM.Protocol_Method
}
else
{
if(bUseExist)
if(bUseExist && bExistInformation)
MakeLoginPacket.objMessage[0].Data = $"HostID={strGetHostID} Section={strGetSection} [FAIL] HOST ID already in use.";
else
MakeLoginPacket.objMessage[0].Data = $"HostID={strGetHostID} Section={strGetSection} [FAIL] That information does not exist.";

View File

@ -103,7 +103,7 @@ namespace SystemX.Net.MiddlewareUI.UIM.Protocol_Method
if (string.IsNullOrEmpty(GetTestListCntID) == false)
{
getStreamList = Parent_.QueryStreamProcess(strGetQuery, out ucQueryByteArray, out ds, thisConnInfo.strResultTestListCntID);
getStreamList = Parent_.QueryStreamProcess(strGetQuery, out ucQueryByteArray, out ds, thisConnInfo.strResultTestListCntID, "DOWNLOAD_TL");
break;
}
@ -123,7 +123,7 @@ namespace SystemX.Net.MiddlewareUI.UIM.Protocol_Method
string strGetQuery = cp.QueryFindTestList(ppPacket, true);
getStreamList = Parent_.QueryStreamProcess(strGetQuery, out ucQueryByteArray, out ds);
getStreamList = Parent_.QueryStreamProcess(strGetQuery, out ucQueryByteArray, out ds, "", "CHECK_TL");
nByteListSize = getStreamList.Count;
}

View File

@ -196,6 +196,11 @@
</ItemGroup>
<ItemGroup>
<Content Include="ALIS ICON.ico" />
<Content Include="Cfg\CallMadeQueryInfo.xml" />
<Content Include="Cfg\DBConnInfo.xml" />
<Content Include="Cfg\LogProcessInfo.xml" />
<Content Include="Cfg\MapLogOption.xml" />
<Content Include="Cfg\ServerInformation.xml" />
<None Include="Resources\CI.png" />
<None Include="Resources\Kefico CI.PNG" />
</ItemGroup>